<?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>171323</bug_id>
          
          <creation_ts>2017-04-26 08:28:18 -0700</creation_ts>
          <short_desc>Speedometer: Add a Preact.js TodoMVC implementation</short_desc>
          <delta_ts>2017-05-11 19:45:39 -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>
          
          
          <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>170513</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Addy Osmani">addyo</reporter>
          <assigned_to name="Addy Osmani">addyo</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1301590</commentid>
    <comment_count>0</comment_count>
    <who name="Addy Osmani">addyo</who>
    <bug_when>2017-04-26 08:28:18 -0700</bug_when>
    <thetext>As part of Speedometer 2.0 (https://bugs.webkit.org/show_bug.cgi?id=170513), this tracks adding a TodoMVC implementation of Preact (https://preactjs.com/), a growing in popularity smaller alternative to React. I will also be separately landing an implementation using InfernoJS (another smaller alternative to React that uses different patterns to both React and Preact).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301591</commentid>
    <comment_count>1</comment_count>
      <attachid>308250</attachid>
    <who name="Addy Osmani">addyo</who>
    <bug_when>2017-04-26 08:31:14 -0700</bug_when>
    <thetext>Created attachment 308250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306578</commentid>
    <comment_count>2</comment_count>
      <attachid>308250</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-09 14:37:15 -0700</bug_when>
    <thetext>Comment on attachment 308250
Patch

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

&gt; PerformanceTests/ChangeLog:7
&gt; +        Adds Preact.js TodoMVC implementation to Speedometer

Please add a blank line above this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307585</commentid>
    <comment_count>3</comment_count>
      <attachid>309820</attachid>
    <who name="Addy Osmani">addyo</who>
    <bug_when>2017-05-11 16:40:57 -0700</bug_when>
    <thetext>Created attachment 309820
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307586</commentid>
    <comment_count>4</comment_count>
    <who name="Addy Osmani">addyo</who>
    <bug_when>2017-05-11 16:41:37 -0700</bug_when>
    <thetext>Added a blank line above and dropped extraneous inline comments in the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307593</commentid>
    <comment_count>5</comment_count>
      <attachid>309820</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-11 16:48:49 -0700</bug_when>
    <thetext>Comment on attachment 309820
Patch

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

&gt; PerformanceTests/Speedometer/resources/todomvc/architecture-examples/preact/src/index.html:15
&gt; +        &lt;script src=&quot;app.js&quot;&gt;&lt;/script&gt;

Where is app.js?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307650</commentid>
    <comment_count>6</comment_count>
      <attachid>309838</attachid>
    <who name="Addy Osmani">addyo</who>
    <bug_when>2017-05-11 18:01:43 -0700</bug_when>
    <thetext>Created attachment 309838
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307651</commentid>
    <comment_count>7</comment_count>
    <who name="Addy Osmani">addyo</who>
    <bug_when>2017-05-11 18:02:56 -0700</bug_when>
    <thetext>Good catch on app.js. It appears the `build` directory where the final version gets used was ignored. I&apos;ve renamed it to `dist` and will make sure the runner references that built version instead.

I&apos;ve otherwise added a blank line where requested and dropped extra inline comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307671</commentid>
    <comment_count>8</comment_count>
      <attachid>309838</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-11 19:10:50 -0700</bug_when>
    <thetext>Comment on attachment 309838
Patch

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

&gt; PerformanceTests/ChangeLog:13
&gt; +        * Speedometer/resources/todomvc/architecture-examples/preact/dist/index.html: Added.

Be sure to update the test suites accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307687</commentid>
    <comment_count>9</comment_count>
      <attachid>309838</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-11 19:40:21 -0700</bug_when>
    <thetext>Comment on attachment 309838
Patch

Rejecting attachment 309838 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 309838, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
68f3165ab34cd5764fa
r216713 = 0f39ca8af1438b885163d4e799cd96825430c98e
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
Auto packing the repository in background for optimum performance.
See &quot;git help gc&quot; for manual housekeeping.
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Auto packing the repository in background for optimum performance.
See &quot;git help gc&quot; for manual housekeeping.

Full output: http://webkit-queues.webkit.org/results/3722932</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307690</commentid>
    <comment_count>10</comment_count>
      <attachid>309838</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-11 19:44:27 -0700</bug_when>
    <thetext>Comment on attachment 309838
Patch

Try it again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307691</commentid>
    <comment_count>11</comment_count>
      <attachid>309838</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-11 19:45:38 -0700</bug_when>
    <thetext>Comment on attachment 309838
Patch

Clearing flags on attachment: 309838

Committed r216715: &lt;http://trac.webkit.org/changeset/216715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307692</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-05-11 19:45:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308250</attachid>
            <date>2017-04-26 08:31:14 -0700</date>
            <delta_ts>2017-05-11 16:40:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171323-20170426083113.patch</filename>
            <type>text/plain</type>
            <size>23668</size>
            <attacher name="Addy Osmani">addyo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjNDZiZjNlOGFh
MmIyMTYyMjE3ZWMxNDJiMGMzOWQwYTk5ZGFlZmMuLjZhMzY1NzcxOGZhMGM4YTEyMTlkYjM1MTQ2
NzlkYjhmMjQzZTE4MTIgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTctMDQt
MjYgIEFkZHkgT3NtYW5pICA8YWRkeW9zbWFuaUBnbWFpbC5jb20+CisKKyAgICAgICAgU3BlZWRv
bWV0ZXI6IEFkZCBhIFByZWFjdC5qcyBUb2RvTVZDIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEzMjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgQWRkcyBQcmVhY3QuanMgVG9kb01W
QyBpbXBsZW1lbnRhdGlvbiB0byBTcGVlZG9tZXRlcgorCisgICAgICAgICogU3BlZWRvbWV0ZXIv
cmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC8uYmFiZWxyYzog
QWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0
dXJlLWV4YW1wbGVzL3ByZWFjdC9SRUFETUUubWQ6IEFkZGVkLgorICAgICAgICAqIFNwZWVkb21l
dGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvcGFja2Fn
ZS5qc29uOiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3JvbGx1cC5jb25maWcuanM6IEFkZGVkLgorICAg
ICAgICAqIFNwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxl
cy9wcmVhY3Qvc3JjL2FwcC9mb290ZXIuanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1
bHQuVG9kb0Zvb3Rlci5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0
LlRvZG9Gb290ZXIpOgorICAgICAgICAqIFNwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2Fy
Y2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9pbmRleC5qczogQWRkZWQuCisgICAg
ICAgIChleHBvcnQuZGVmYXVsdC5BcHApOgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQXBwLnBy
b3RvdHlwZS5oYW5kbGVSb3V0ZSk6CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5BcHAucHJvdG90
eXBlLnNhdmUpOgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQXBwLnByb3RvdHlwZS5jYW5jZWwp
OgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuQXBwLnByb3RvdHlwZS5jbGVhckNvbXBsZXRlZCk6
CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5BcHAucHJvdG90eXBlLnJlbmRlcik6CisgICAgICAg
ICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3By
ZWFjdC9zcmMvYXBwL2l0ZW0uanM6IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuVG9k
b0l0ZW0ucHJvdG90eXBlLmhhbmRsZVN1Ym1pdCk6CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5U
b2RvSXRlbS5wcm90b3R5cGUuaGFuZGxlRWRpdCk6CisgICAgICAgIChleHBvcnQuZGVmYXVsdC5U
b2RvSXRlbS5oYW5kbGVLZXlEb3duLmUucHJvdG90eXBlLmVsc2UpOgorICAgICAgICAoZXhwb3J0
LmRlZmF1bHQuVG9kb0l0ZW0ucHJvdG90eXBlLmhhbmRsZURlc3Ryb3kpOgorICAgICAgICAoZXhw
b3J0LmRlZmF1bHQuVG9kb0l0ZW0ucHJvdG90eXBlLmNvbXBvbmVudERpZFVwZGF0ZSk6CisgICAg
ICAgIChleHBvcnQuZGVmYXVsdC5Ub2RvSXRlbS5wcm90b3R5cGUucmVuZGVyKToKKyAgICAgICAg
KGV4cG9ydC5kZWZhdWx0LlRvZG9JdGVtKToKKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJj
ZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvbW9kZWwuanM6
IEFkZGVkLgorICAgICAgICAoZXhwb3J0LmRlZmF1bHQuVG9kb01vZGVsKToKKyAgICAgICAgKGV4
cG9ydC5kZWZhdWx0LlRvZG9Nb2RlbC5wcm90b3R5cGUuaW5mb3JtKToKKyAgICAgICAgKGV4cG9y
dC5kZWZhdWx0LlRvZG9Nb2RlbC5wcm90b3R5cGUuYWRkVG9kbyk6CisgICAgICAgIChleHBvcnQu
ZGVmYXVsdC5Ub2RvTW9kZWwucHJvdG90eXBlLnRvZ2dsZUFsbCk6CisgICAgICAgIChleHBvcnQu
ZGVmYXVsdC5Ub2RvTW9kZWwucHJvdG90eXBlLnRvZ2dsZSk6CisgICAgICAgIChleHBvcnQuZGVm
YXVsdC5Ub2RvTW9kZWwucHJvdG90eXBlLmRlc3Ryb3kpOgorICAgICAgICAoZXhwb3J0LmRlZmF1
bHQuVG9kb01vZGVsLnByb3RvdHlwZS5zYXZlKToKKyAgICAgICAgKGV4cG9ydC5kZWZhdWx0LlRv
ZG9Nb2RlbC5wcm90b3R5cGUuY2xlYXJDb21wbGV0ZWQpOgorICAgICAgICAqIFNwZWVkb21ldGVy
L3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC91
dGlsLmpzOiBBZGRlZC4KKyAgICAgICAgKGV4cG9ydC51dWlkKToKKyAgICAgICAgKGV4cG9ydC5w
bHVyYWxpemUpOgorICAgICAgICAoZXhwb3J0LnN0b3JlKToKKyAgICAgICAgKiBTcGVlZG9tZXRl
ci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9pbmRl
eC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9pbmRleC5qczogQWRkZWQuCisgICAgICAg
ICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3By
ZWFjdC93ZWJwYWNrLmNvbmZpZy5iYWJlbC5qczogQWRkZWQuCisKIDIwMTctMDQtMjEgIFphbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBTaW1wbGUgbGluZSBsYXlvdXQ6
IEFkZCBwZXJmb3JtYW5jZSB0ZXN0IHRvIG1lYXN1cmUgbWlkLXdvcmQgbGluZSBicmVha2luZyB3
aXRoIGxvbmcgdGV4dC4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIv
cmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC8uYmFiZWxyYyBi
L1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0
dXJlLWV4YW1wbGVzL3ByZWFjdC8uYmFiZWxyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjcyZWQxOTg2ZGViNzc3
MGIyNDQyZGYzZWE4NjEwOTU2YWVhZjMxCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMv
cHJlYWN0Ly5iYWJlbHJjCkBAIC0wLDAgKzEsOSBAQAoreworICAicHJlc2V0cyI6IFsKKyAgICAi
ZXMyMDE1LWxvb3NlIiwKKyAgICAic3RhZ2UtMCIKKyAgXSwKKyAgInBsdWdpbnMiOiBbCisgICAg
WyJ0cmFuc2Zvcm0tcmVhY3QtanN4IiwgeyAicHJhZ21hIjoiaCIgfV0KKyAgXQorfQpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNo
aXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L1JFQURNRS5tZCBiL1BlcmZvcm1hbmNlVGVzdHMvU3Bl
ZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9S
RUFETUUubWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA1NDZmMTFhOTljODFkNTEyODEwYmQzNzE2OGFjOWI5ODVi
YTEyYgotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVz
b3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9SRUFETUUubWQKQEAg
LTAsMCArMSwxOSBAQAorIyBQcmVhY3QgVG9kb01WQworCitbKipEZW1vKipdKGh0dHBzOi8vcHJl
YWN0LXRvZG9tdmMuc3VyZ2Uuc2gpCisKK1RvZG9NVkMgZG9uZSBpbiBbUHJlYWN0XS4gVGhlIGFw
cCBpcyA2a2Igb2YgbWluaWZpZWQgKyBnemlwcGVkIEphdmFTY3JpcHQuCisKK1RoaXMgaXMgYW4g
RVM2ICsgUHJlYWN0IHBvcnQgb2YgdGhlIFtFUzUgKyBSZWFjdCBUb2RvTVZDIGV4YW1wbGVdKGh0
dHBzOi8vZ2l0aHViLmNvbS90YXN0ZWpzL3RvZG9tdmMvdHJlZS9naC1wYWdlcy9leGFtcGxlcy9y
ZWFjdCkuCisKK1twcmVhY3RdOiBodHRwczovL2dpdGh1Yi5jb20vZGV2ZWxvcGl0L3ByZWFjdAor
CisjIyBCdWlsZGluZworCitSdW4gYG5wbSBpbnN0YWxsYCBmb2xsb3dlZCBieSBgbnBtIHJ1biBi
dWlsZGAgdG8gYnVpbGQgdGhlIHByb2plY3QuCisKKyMjIFNwZWVkb21ldGVyIGluc3RydWN0aW9u
cworCitUaGUgY29tcGlsZWQgdmVyc2lvbiBvZiB0aGUgYXBwbGljYXRpb24gY2FuIGJlIGZvdW5k
IGluIHRoZSBgYnVpbGRgIGRpcmVjdG9yeS4KK1RoaXMgaXMgd2hhdCB0aGUgYmVuY2htYXJrIHJ1
bm5lciB1c2VzIHdoZW4gcnVubmluZyB0aGUgUHJlYWN0IFRvZG9NVkMgYXMgcGFydAorb2YgYSBi
ZW5jaG1hcmsgcnVuLgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9y
ZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3BhY2thZ2UuanNv
biBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0
ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9wYWNrYWdlLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjNlYmE4N2I3
OTIwZjM4YzRmZGEwNWFjYWM5MzMxMzU3ZmEwNzhjNQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZv
cm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4
YW1wbGVzL3ByZWFjdC9wYWNrYWdlLmpzb24KQEAgLTAsMCArMSw1MiBAQAoreworICAibmFtZSI6
ICJwcmVhY3QtdG9kb212YyIsCisgICJ2ZXJzaW9uIjogIjAuMi4wIiwKKyAgImRlc2NyaXB0aW9u
IjogIlRvZG9NVkMgZG9uZSBpbiBQcmVhY3QiLAorICAibWFpbiI6ICJpbmRleC5qcyIsCisgICJz
Y3JpcHRzIjogeworICAgICJkZXYiOiAid2VicGFjay1kZXYtc2VydmVyIiwKKyAgICAic3RhcnQi
OiAiaHR0cC1zZXJ2ZXIgYnVpbGQgLXAgJHtQT1JUOi04MDgwfSIsCisgICAgInByZXN0YXJ0Ijog
Im5wbSBydW4gYnVpbGQiLAorICAgICJidWlsZCI6ICJucG0gcnVuIC1zIGJ1aWxkOnJvbGx1cCIs
CisgICAgImJ1aWxkOndlYnBhY2siOiAibWtkaXJwIGJ1aWxkICYmIG5jcCBzcmMvaW5kZXguaHRt
bCBidWlsZC9pbmRleC5odG1sICYmIHdlYnBhY2sgLXAiLAorICAgICJidWlsZDpyb2xsdXAiOiAi
cm0gLXJmIGJ1aWxkICYmIG1rZGlycCBidWlsZC90b2RvbXZjLWNvbW1vbiAmJiBuY3Agc3JjL2lu
ZGV4Lmh0bWwgYnVpbGQvaW5kZXguaHRtbCAmJiByb2xsdXAgLWMgcm9sbHVwLmNvbmZpZy5qcyAm
JiBjcCBub2RlX21vZHVsZXMvdG9kb212Yy1jb21tb24vYmFzZS57anMsY3NzfSBidWlsZC90b2Rv
bXZjLWNvbW1vbi8gJiYgY3Agbm9kZV9tb2R1bGVzL3RvZG9tdmMtYXBwLWNzcy9pbmRleC5jc3Mg
YnVpbGQvdG9kb212Yy5jc3MgJiYgbnBtIHJ1biBwb3N0YnVpbGQiLAorICAgICJwb3N0YnVpbGQi
OiAidWdsaWZ5anMgYnVpbGQvYXBwLmpzIC0tcHVyZS1mdW5jcyBjbGFzc0NhbGxDaGVjayBPYmpl
Y3QuZGVmaW5lUHJvcGVydHkgT2JqZWN0LmZyZWV6ZSBpbnZhcmlhbnQgd2FybmluZyAtYyB1bnNh
ZmUsY29sbGFwc2VfdmFycyxldmFsdWF0ZSxzY3Jld19pZTgsbG9vcHMsa2VlcF9mYXJncz1mYWxz
ZSxwdXJlX2dldHRlcnMsdW51c2VkLGRlYWRfY29kZSAtbSAtbyBidWlsZC9hcHAuanMgLXAgcmVs
YXRpdmUgLS1pbi1zb3VyY2UtbWFwIGJ1aWxkL2FwcC5qcy5tYXAgLS1zb3VyY2UtbWFwIGJ1aWxk
L2FwcC5qcy5tYXAiLAorICAgICJkZXBsb3kiOiAiZ2gtcGFnZXMgLWQgYnVpbGQiCisgIH0sCisg
ICJrZXl3b3JkcyI6IFsKKyAgICAicHJlYWN0IgorICBdLAorICAiYXV0aG9yIjogIlRoZSBUb2Rv
TVZDIGF1dGhvcnMiLAorICAibGljZW5zZSI6ICJNSVQiLAorICAiZGV2RGVwZW5kZW5jaWVzIjog
eworICAgICJiYWJlbC1jb3JlIjogIl42LjUuMiIsCisgICAgImJhYmVsLWxvYWRlciI6ICJeNi4y
LjMiLAorICAgICJiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLWNsYXNzLXByb3BlcnRpZXMiOiAiXjYu
NS4yIiwKKyAgICAiYmFiZWwtcGx1Z2luLXRyYW5zZm9ybS1kZWNvcmF0b3JzLWxlZ2FjeSI6ICJe
MS4zLjQiLAorICAgICJiYWJlbC1wbHVnaW4tdHJhbnNmb3JtLXJlYWN0LWpzeCI6ICJeNi41LjIi
LAorICAgICJiYWJlbC1wcmVzZXQtYmFiaWxpIjogIjAuMC45IiwKKyAgICAiYmFiZWwtcHJlc2V0
LWVzMjAxNSI6ICJeNi41LjAiLAorICAgICJiYWJlbC1wcmVzZXQtZXMyMDE1LWxvb3NlIjogIl44
LjAuMCIsCisgICAgImJhYmVsLXByZXNldC1zdGFnZS0wIjogIl42LjUuMCIsCisgICAgImNzcy1s
b2FkZXIiOiAiXjAuMjYuMCIsCisgICAgImV4dHJhY3QtdGV4dC13ZWJwYWNrLXBsdWdpbiI6ICJe
MS4wLjEiLAorICAgICJnaC1wYWdlcyI6ICJeMC4xMi4wIiwKKyAgICAiaHR0cC1zZXJ2ZXIiOiAi
XjAuOS4wIiwKKyAgICAibWtkaXJwIjogIl4wLjUuMSIsCisgICAgIm5jcCI6ICJeMi4wLjAiLAor
ICAgICJyZXBsYWNlLWJ1bmRsZS13ZWJwYWNrLXBsdWdpbiI6ICJeMS4wLjAiLAorICAgICJyb2xs
dXAiOiAiXjAuMzYuNCIsCisgICAgInJvbGx1cC1wbHVnaW4tYmFiZWwiOiAiXjIuNi4xIiwKKyAg
ICAicm9sbHVwLXBsdWdpbi1jb21tb25qcyI6ICJeNS4wLjUiLAorICAgICJyb2xsdXAtcGx1Z2lu
LW5vZGUtcmVzb2x2ZSI6ICJeMi4wLjAiLAorICAgICJzdHlsZS1sb2FkZXIiOiAiXjAuMTMuMCIs
CisgICAgIndlYnBhY2siOiAiXjEuMTIuMTQiLAorICAgICJ3ZWJwYWNrLWRldi1zZXJ2ZXIiOiAi
XjEuMTQuMSIKKyAgfSwKKyAgImRlcGVuZGVuY2llcyI6IHsKKyAgICAicHJlYWN0IjogIl43LjEu
MCIsCisgICAgInByZWFjdC1yb3V0ZXIiOiAiXjIuMy4yIiwKKyAgICAidG9kb212Yy1hcHAtY3Nz
IjogIl4yLjAuMyIsCisgICAgInRvZG9tdmMtY29tbW9uIjogIl4xLjAuMiIKKyAgfQorfQpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3JvbGx1cC5jb25maWcuanMgYi9QZXJmb3JtYW5j
ZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxl
cy9wcmVhY3Qvcm9sbHVwLmNvbmZpZy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OGM1OWFhZDU4NThjMGRiMjM0
OTVmZjM5ZGRlNWJmM2UyZmE3ODhkCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJl
YWN0L3JvbGx1cC5jb25maWcuanMKQEAgLTAsMCArMSwyNyBAQAoraW1wb3J0IG5vZGVSZXNvbHZl
IGZyb20gJ3JvbGx1cC1wbHVnaW4tbm9kZS1yZXNvbHZlJzsKK2ltcG9ydCBjb21tb25qcyBmcm9t
ICdyb2xsdXAtcGx1Z2luLWNvbW1vbmpzJzsKK2ltcG9ydCBiYWJlbCBmcm9tICdyb2xsdXAtcGx1
Z2luLWJhYmVsJzsKKworZXhwb3J0IGRlZmF1bHQgeworICAgIGVudHJ5OiAnc3JjL2luZGV4Lmpz
JywKKyAgICBkZXN0OiAnYnVpbGQvYXBwLmpzJywKKyAgICBmb3JtYXQ6ICdpaWZlJywKKyAgICBz
b3VyY2VNYXA6IHRydWUsCisgICAgZXh0ZXJuYWw6IFtdLAorICAgIHBsdWdpbnM6IFsKKyAgICAg
ICAgYmFiZWwoeworICAgICAgICAgICAgYmFiZWxyYzogZmFsc2UsCisgICAgICAgICAgICBwcmVz
ZXRzOiBbCisgICAgICAgICAgICAgICAgWydlczIwMTUnLCB7IGxvb3NlOnRydWUsIG1vZHVsZXM6
ZmFsc2UgfV0sCisgICAgICAgICAgICAgICAgJ3N0YWdlLTAnCisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgcGx1Z2luczogWworICAgICAgICAgICAgICAgIFsndHJhbnNmb3JtLXJlYWN0LWpz
eCcsIHsgcHJhZ21hOidoJyB9XQorICAgICAgICAgICAgXQorICAgICAgICB9KSwKKyAgICAgICAg
bm9kZVJlc29sdmUoeworICAgICAgICAgICAganNuZXh0OiB0cnVlCisgICAgICAgIH0pLAorICAg
ICAgICBjb21tb25qcygpCisgICAgXQorfTsKZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMv
U3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFj
dC9zcmMvYXBwL2Zvb3Rlci5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3Vy
Y2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2Zvb3Rlci5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41Y2IwZmY1ZDA5ZjljMjY5N2UxNmI2NWE2MDVhMDc2NjZmYzg5NmMzCi0t
LSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMv
dG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvZm9vdGVyLmpzCkBA
IC0wLDAgKzEsMzIgQEAKK2ltcG9ydCB7IGgsIENvbXBvbmVudCB9IGZyb20gJ3ByZWFjdCc7Citp
bXBvcnQgeyBwbHVyYWxpemUgfSBmcm9tICcuL3V0aWwnOworCitleHBvcnQgZGVmYXVsdCBjbGFz
cyBUb2RvRm9vdGVyIGV4dGVuZHMgQ29tcG9uZW50IHsKKyAgICByZW5kZXIoeyBub3dTaG93aW5n
LCBjb3VudCwgY29tcGxldGVkQ291bnQsIG9uQ2xlYXJDb21wbGV0ZWQgfSkgeworICAgICAgICBy
ZXR1cm4gKAorICAgICAgICAgICAgPGZvb3RlciBjbGFzcz0iZm9vdGVyIj4KKyAgICAgICAgICAg
ICAgICA8c3BhbiBjbGFzcz0idG9kby1jb3VudCI+CisgICAgICAgICAgICAgICAgICAgIDxzdHJv
bmc+e2NvdW50fTwvc3Ryb25nPiB7cGx1cmFsaXplKGNvdW50LCAnaXRlbScpfSBsZWZ0CisgICAg
ICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZmlsdGVycyI+
CisgICAgICAgICAgICAgICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhy
ZWY9IiMvIiBjbGFzcz17bm93U2hvd2luZz09J2FsbCcgJiYgJ3NlbGVjdGVkJ30+QWxsPC9hPgor
ICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgICAgICB7JyAnfQorICAg
ICAgICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIj
L2FjdGl2ZSIgY2xhc3M9e25vd1Nob3dpbmc9PSdhY3RpdmUnICYmICdzZWxlY3RlZCd9PkFjdGl2
ZTwvYT4KKyAgICAgICAgICAgICAgICAgICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgeycg
J30KKyAgICAgICAgICAgICAgICAgICAgPGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGEg
aHJlZj0iIy9jb21wbGV0ZWQiIGNsYXNzPXtub3dTaG93aW5nPT0nY29tcGxldGVkJyAmJiAnc2Vs
ZWN0ZWQnfT5Db21wbGV0ZWQ8L2E+CisgICAgICAgICAgICAgICAgICAgIDwvbGk+CisgICAgICAg
ICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICB7IGNvbXBsZXRlZENvdW50ID4gMCAmJiAo
CisgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9ImNsZWFyLWNvbXBsZXRlZCIgb25D
bGljaz17b25DbGVhckNvbXBsZXRlZH0+CisgICAgICAgICAgICAgICAgICAgICAgICBDbGVhciBj
b21wbGV0ZWQKKyAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+CisgICAgICAgICAgICAgICAg
KSB9CisgICAgICAgICAgICA8L2Zvb3Rlcj4KKyAgICAgICAgKTsKKyAgICB9Cit9CmRpZmYgLS1n
aXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hp
dGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9pbmRleC5qcyBiL1BlcmZvcm1hbmNlVGVz
dHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3By
ZWFjdC9zcmMvYXBwL2luZGV4LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc2Zjg3Y2UyOGFiMTYzZTVkM2ZhZDc1
ODgzYmJkZWZlNTM4YmY4MjMKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1Nw
ZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qv
c3JjL2FwcC9pbmRleC5qcwpAQCAtMCwwICsxLDEzMiBAQAoraW1wb3J0IHsgaCwgQ29tcG9uZW50
IH0gZnJvbSAncHJlYWN0JzsKK2ltcG9ydCBUb2RvTW9kZWwgZnJvbSAnLi9tb2RlbCc7CitpbXBv
cnQgVG9kb0Zvb3RlciBmcm9tICcuL2Zvb3Rlcic7CitpbXBvcnQgVG9kb0l0ZW0gZnJvbSAnLi9p
dGVtJzsKKworY29uc3QgRU5URVJfS0VZID0gMTM7CisKK2NvbnN0IEZJTFRFUlMgPSB7CisgICAg
YWxsOiB0b2RvID0+IHRydWUsCisgICAgYWN0aXZlOiB0b2RvID0+ICF0b2RvLmNvbXBsZXRlZCwK
KyAgICBjb21wbGV0ZWQ6IHRvZG8gPT4gdG9kby5jb21wbGV0ZWQKK307CisKK2V4cG9ydCBkZWZh
dWx0IGNsYXNzIEFwcCBleHRlbmRzIENvbXBvbmVudCB7CisgICAgY29uc3RydWN0b3IoKSB7Cisg
ICAgICAgIHN1cGVyKCk7CisgICAgICAgIHRoaXMubW9kZWwgPSBuZXcgVG9kb01vZGVsKCdwcmVh
Y3QtdG9kb3MnLCAoKSA9PiB0aGlzLnNldFN0YXRlKHt9KSApOworICAgICAgICBhZGRFdmVudExp
c3RlbmVyKCdoYXNoY2hhbmdlJywgdGhpcy5oYW5kbGVSb3V0ZS5iaW5kKHRoaXMpKTsKKyAgICAg
ICAgdGhpcy5oYW5kbGVSb3V0ZSgpOworICAgIH0KKworICAgIGhhbmRsZVJvdXRlKCkgeworICAg
ICAgICBsZXQgbm93U2hvd2luZyA9IFN0cmluZyhsb2NhdGlvbi5oYXNofHwnJykuc3BsaXQoJy8n
KS5wb3AoKTsKKyAgICAgICAgaWYgKCFGSUxURVJTW25vd1Nob3dpbmddKSB7CisgICAgICAgICAg
ICBub3dTaG93aW5nID0gJ2FsbCc7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7
IG5vd1Nob3dpbmcgfSk7CisgICAgfQorCisgICAgaGFuZGxlTmV3VG9kb0tleURvd24gPSBlID0+
IHsKKyAgICAgICAgaWYgKGUua2V5Q29kZSE9PUVOVEVSX0tFWSkgcmV0dXJuOworICAgICAgICBl
LnByZXZlbnREZWZhdWx0KCk7CisKKyAgICAgICAgLy8gbGV0IHZhbCA9ICcnOworICAgICAgICAv
LyBpZiAodGhpcy5zdGF0ZS5uZXdUb2RvID09PSB1bmRlZmluZWQpIHsKKyAgICAgICAgLy8gIHZh
bCA9IGUudGFyZ2V0LnZhbHVlLnRyaW0oKTsKKyAgICAgICAgLy8gfQorCisgICAgICAgIGxldCB2
YWwgPSBlLnRhcmdldC52YWx1ZS50cmltKCk7CisKKyAgICAgICAgaWYgKHZhbCkgeworICAgICAg
ICAgICAgdGhpcy5tb2RlbC5hZGRUb2RvKHZhbCk7CisgICAgICAgICAgICB0aGlzLnNldFN0YXRl
KHsgbmV3VG9kbzogJycgfSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgdG9nZ2xlQWxsID0g
ZXZlbnQgPT4geworICAgICAgICBsZXQgY2hlY2tlZCA9IGV2ZW50LnRhcmdldC5jaGVja2VkOwor
ICAgICAgICB0aGlzLm1vZGVsLnRvZ2dsZUFsbChjaGVja2VkKTsKKyAgICB9OworCisgICAgdG9n
Z2xlID0gdG9kbyA9PiB7CisgICAgICAgIHRoaXMubW9kZWwudG9nZ2xlKHRvZG8pOworICAgIH07
CisKKyAgICBkZXN0cm95ID0gdG9kbyA9PiB7CisgICAgICAgIHRoaXMubW9kZWwuZGVzdHJveSh0
b2RvKTsKKyAgICB9OworCisgICAgZWRpdCA9IHRvZG8gPT4geworICAgICAgICB0aGlzLnNldFN0
YXRlKHsgZWRpdGluZzogdG9kby5pZCB9KTsKKyAgICB9OworCisgICAgc2F2ZSA9ICh0b2RvVG9T
YXZlLCB0ZXh0KSA9PiB7CisgICAgICAgIHRoaXMubW9kZWwuc2F2ZSh0b2RvVG9TYXZlLCB0ZXh0
KTsKKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRpbmc6IG51bGwgfSk7CisgICAgfTsKKwor
ICAgIGNhbmNlbCA9ICgpID0+IHsKKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRpbmc6IG51
bGwgfSk7CisgICAgfTsKKworICAgIGNsZWFyQ29tcGxldGVkID0gKCkgPT4geworICAgICAgICB0
aGlzLm1vZGVsLmNsZWFyQ29tcGxldGVkKCk7CisgICAgfTsKKworICAgIHJlbmRlcih7IH0sIHsg
bm93U2hvd2luZz1BTExfVE9ET1MsIG5ld1RvZG8sIGVkaXRpbmcgfSkgeworICAgICAgICBsZXQg
eyB0b2RvcyB9ID0gdGhpcy5tb2RlbCwKKyAgICAgICAgICAgIHNob3duVG9kb3MgPSB0b2Rvcy5m
aWx0ZXIoIEZJTFRFUlNbbm93U2hvd2luZ10gKSwKKyAgICAgICAgICAgIGFjdGl2ZVRvZG9Db3Vu
dCA9IHRvZG9zLnJlZHVjZSggKGEsIHRvZG8pID0+IGEgKyAodG9kby5jb21wbGV0ZWQgPyAwIDog
MSksIDApLAorICAgICAgICAgICAgY29tcGxldGVkQ291bnQgPSB0b2Rvcy5sZW5ndGggLSBhY3Rp
dmVUb2RvQ291bnQ7CisKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAgIDxkaXY+CisgICAg
ICAgICAgICAgICAgPGhlYWRlciBjbGFzcz0iaGVhZGVyIj4KKyAgICAgICAgICAgICAgICAgICAg
PGgxPnRvZG9zPC9oMT4KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0CisgICAgICAgICAgICAg
ICAgICAgICAgICBjbGFzcz0ibmV3LXRvZG8iCisgICAgICAgICAgICAgICAgICAgICAgICBwbGFj
ZWhvbGRlcj0iV2hhdCBuZWVkcyB0byBiZSBkb25lPyIKKyAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlPXtuZXdUb2RvfQorICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlz
LmhhbmRsZU5ld1RvZG9LZXlEb3dufQorICAgICAgICAgICAgICAgICAgICAgICAgb25JbnB1dD17
dGhpcy5saW5rU3RhdGUoJ25ld1RvZG8nKX0KKyAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9G
b2N1cz17dHJ1ZX0KKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICA8L2hl
YWRlcj4KKworICAgICAgICAgICAgICAgIHsgdG9kb3MubGVuZ3RoID8gKAorICAgICAgICAgICAg
ICAgICAgICA8c2VjdGlvbiBjbGFzcz0ibWFpbiI+CisgICAgICAgICAgICAgICAgICAgICAgICA8
aW5wdXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0idG9nZ2xlLWFsbCIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPSJjaGVja2JveCIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50b2dnbGVBbGx9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hlY2tlZD17YWN0aXZlVG9kb0NvdW50ID09PSAwfQorICAgICAgICAgICAg
ICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0idG9kby1s
aXN0Ij4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IHNob3duVG9kb3MubWFwKCB0b2Rv
ID0+ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvZG9JdGVtCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2RvPXt0b2RvfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb25Ub2dnbGU9e3RoaXMudG9nZ2xlfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb25EZXN0cm95PXt0aGlzLmRlc3Ryb3l9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkVkaXQ9e3RoaXMuZWRpdH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRpbmc9e2VkaXRpbmcgPT09IHRvZG8uaWR9
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvblNhdmU9e3RoaXMuc2F2ZX0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2FuY2VsPXt0aGlzLmNhbmNl
bH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICApKSB9CisgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgorICAgICAgICAg
ICAgICAgICAgICA8L3NlY3Rpb24+CisgICAgICAgICAgICAgICAgKSA6IG51bGwgfQorCisgICAg
ICAgICAgICAgICAgeyAoYWN0aXZlVG9kb0NvdW50IHx8IGNvbXBsZXRlZENvdW50KSA/ICgKKyAg
ICAgICAgICAgICAgICAgICAgPFRvZG9Gb290ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgIGNv
dW50PXthY3RpdmVUb2RvQ291bnR9CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0ZWRD
b3VudD17Y29tcGxldGVkQ291bnR9CisgICAgICAgICAgICAgICAgICAgICAgICBub3dTaG93aW5n
PXtub3dTaG93aW5nfQorICAgICAgICAgICAgICAgICAgICAgICAgb25DbGVhckNvbXBsZXRlZD17
dGhpcy5jbGVhckNvbXBsZXRlZH0KKyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAg
ICAgICApIDogbnVsbCB9CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgKTsKKyAgICB9Cit9
CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2Rv
bXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9pdGVtLmpzIGIvUGVyZm9y
bWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhh
bXBsZXMvcHJlYWN0L3NyYy9hcHAvaXRlbS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ODU0MDIyZGFmOTMzMGZm
MGE4NGY5NjMxM2Y4OWM3NWE5NWMyODNhCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VU
ZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMv
cHJlYWN0L3NyYy9hcHAvaXRlbS5qcwpAQCAtMCwwICsxLDg0IEBACitpbXBvcnQgeyBoLCBDb21w
b25lbnQgfSBmcm9tICdwcmVhY3QnOworCitjb25zdCBFU0NBUEVfS0VZID0gMjc7Citjb25zdCBF
TlRFUl9LRVkgPSAxMzsKKworZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9kb0l0ZW0gZXh0ZW5kcyBD
b21wb25lbnQgeworICAgIGhhbmRsZVN1Ym1pdCA9ICgpID0+IHsKKyAgICAgICAgbGV0IHsgb25T
YXZlLCBvbkRlc3Ryb3ksIHRvZG8gfSA9IHRoaXMucHJvcHMsCisgICAgICAgICAgICB2YWwgPSB0
aGlzLnN0YXRlLmVkaXRUZXh0LnRyaW0oKTsKKyAgICAgICAgaWYgKHZhbCkgeworICAgICAgICAg
ICAgb25TYXZlKHRvZG8sIHZhbCk7CisgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZWRpdFRl
eHQ6IHZhbCB9KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIG9uRGVz
dHJveSh0b2RvKTsKKyAgICAgICAgfQorICAgIH07CisKKyAgICBoYW5kbGVFZGl0ID0gKCkgPT4g
eworICAgICAgICBsZXQgeyBvbkVkaXQsIHRvZG8gfSA9IHRoaXMucHJvcHM7CisgICAgICAgIG9u
RWRpdCh0b2RvKTsKKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRUZXh0OiB0b2RvLnRpdGxl
IH0pOworICAgIH07CisKKyAgICB0b2dnbGUgPSBlID0+IHsKKyAgICAgICAgbGV0IHsgb25Ub2dn
bGUsIHRvZG8gfSA9IHRoaXMucHJvcHM7CisgICAgICAgIG9uVG9nZ2xlKHRvZG8pOworICAgICAg
ICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgfTsKKworICAgIGhhbmRsZUtleURvd24gPSBlID0+
IHsKKyAgICAgICAgaWYgKGUud2hpY2g9PT1FU0NBUEVfS0VZKSB7CisgICAgICAgICAgICBsZXQg
eyB0b2RvIH0gPSB0aGlzLnByb3BzOworICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRU
ZXh0OiB0b2RvLnRpdGxlIH0pOworICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCh0b2Rv
KTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlmIChlLndoaWNoPT09RU5URVJfS0VZKSB7Cisg
ICAgICAgICAgICB0aGlzLmhhbmRsZVN1Ym1pdCgpOworICAgICAgICB9CisgICAgfTsKKyAgICAK
KyAgICBoYW5kbGVEZXN0cm95ID0gKCkgPT4geworICAgICAgICB0aGlzLnByb3BzLm9uRGVzdHJv
eSh0aGlzLnByb3BzLnRvZG8pOworICAgIH07CisKKyAgICAvLyBzaG91bGRDb21wb25lbnRVcGRh
dGUoeyB0b2RvLCBlZGl0aW5nLCBlZGl0VGV4dCB9KSB7CisgICAgLy8gIHJldHVybiAoCisgICAg
Ly8gICAgICB0b2RvICE9PSB0aGlzLnByb3BzLnRvZG8gfHwKKyAgICAvLyAgICAgIGVkaXRpbmcg
IT09IHRoaXMucHJvcHMuZWRpdGluZyB8fAorICAgIC8vICAgICAgZWRpdFRleHQgIT09IHRoaXMu
c3RhdGUuZWRpdFRleHQKKyAgICAvLyAgKTsKKyAgICAvLyB9CisKKyAgICBjb21wb25lbnREaWRV
cGRhdGUoKSB7CisgICAgICAgIGxldCBub2RlID0gdGhpcy5iYXNlICYmIHRoaXMuYmFzZS5xdWVy
eVNlbGVjdG9yKCcuZWRpdCcpOworICAgICAgICBpZiAobm9kZSkgbm9kZS5mb2N1cygpOworICAg
IH0KKworICAgIHJlbmRlcih7IHRvZG86eyB0aXRsZSwgY29tcGxldGVkIH0sIG9uVG9nZ2xlLCBv
bkRlc3Ryb3ksIGVkaXRpbmcgfSwgeyBlZGl0VGV4dCB9KSB7CisgICAgICAgIHJldHVybiAoCisg
ICAgICAgICAgICA8bGkgY2xhc3M9e3sgY29tcGxldGVkLCBlZGl0aW5nIH19PgorICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9InZpZXciPgorICAgICAgICAgICAgICAgICAgICA8aW5wdXQKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPSJ0b2dnbGUiCisgICAgICAgICAgICAgICAgICAg
ICAgICB0eXBlPSJjaGVja2JveCIKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2Nv
bXBsZXRlZH0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLnRvZ2dsZX0K
KyAgICAgICAgICAgICAgICAgICAgLz4KKyAgICAgICAgICAgICAgICAgICAgPGxhYmVsIG9uRGJs
Q2xpY2s9e3RoaXMuaGFuZGxlRWRpdH0+e3RpdGxlfTwvbGFiZWw+CisgICAgICAgICAgICAgICAg
ICAgIDxidXR0b24gY2xhc3M9ImRlc3Ryb3kiIG9uQ2xpY2s9e3RoaXMuaGFuZGxlRGVzdHJveX0g
Lz4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgICAgICB7IGVkaXRpbmcgJiYg
KAorICAgICAgICAgICAgICAgICAgICA8aW5wdXQKKyAgICAgICAgICAgICAgICAgICAgICAgIGNs
YXNzPSJlZGl0IgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2VkaXRUZXh0fQorICAg
ICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLmhhbmRsZVN1Ym1pdH0KKyAgICAgICAg
ICAgICAgICAgICAgICAgIG9uSW5wdXQ9e3RoaXMubGlua1N0YXRlKCdlZGl0VGV4dCcpfQorICAg
ICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXt0aGlzLmhhbmRsZUtleURvd259CisgICAg
ICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgKSB9CisgICAgICAgICAgICA8L2xp
PgorICAgICAgICApOworICAgIH0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvU3Bl
ZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9z
cmMvYXBwL21vZGVsLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMv
dG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvbW9kZWwuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmM4YWFlMWQ1MWEwYzQzMWI4YmYyODQ4ZGM0OTlhYjQzNzc2OTQzNQotLS0gL2Rl
di9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9t
dmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL21vZGVsLmpzCkBAIC0wLDAg
KzEsNTQgQEAKK2ltcG9ydCB7IHV1aWQsIHN0b3JlIH0gZnJvbSAnLi91dGlsJzsKKworZXhwb3J0
IGRlZmF1bHQgY2xhc3MgVG9kb01vZGVsIHsKKyAgICBjb25zdHJ1Y3RvcihrZXksIHN1Yikgewor
ICAgICAgICB0aGlzLmtleSA9IGtleTsKKyAgICAgICAgdGhpcy50b2RvcyA9IHN0b3JlKGtleSkg
fHwgW107CisgICAgICAgIHRoaXMub25DaGFuZ2VzID0gW3N1Yl07CisgICAgfQorCisgICAgaW5m
b3JtKCkgeworICAgICAgICBzdG9yZSh0aGlzLmtleSwgdGhpcy50b2Rvcyk7CisgICAgICAgIHRo
aXMub25DaGFuZ2VzLmZvckVhY2goIGNiID0+IGNiKCkgKTsKKyAgICB9CisKKyAgICBhZGRUb2Rv
KHRpdGxlKSB7CisgICAgICAgIHRoaXMudG9kb3MgPSB0aGlzLnRvZG9zLmNvbmNhdCh7CisgICAg
ICAgICAgICBpZDogdXVpZCgpLAorICAgICAgICAgICAgdGl0bGUsCisgICAgICAgICAgICBjb21w
bGV0ZWQ6IGZhbHNlCisgICAgICAgIH0pOworICAgICAgICB0aGlzLmluZm9ybSgpOworICAgIH0K
KworICAgIHRvZ2dsZUFsbChjb21wbGV0ZWQpIHsKKyAgICAgICAgdGhpcy50b2RvcyA9IHRoaXMu
dG9kb3MubWFwKAorICAgICAgICAgICAgdG9kbyA9PiAoeyAuLi50b2RvLCBjb21wbGV0ZWQgfSkK
KyAgICAgICAgKTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsKKyAgICB9CisKKyAgICB0b2dnbGUo
dG9kb1RvVG9nZ2xlKSB7CisgICAgICAgIHRoaXMudG9kb3MgPSB0aGlzLnRvZG9zLm1hcCggdG9k
byA9PiAoCisgICAgICAgICAgICB0b2RvICE9PSB0b2RvVG9Ub2dnbGUgPyB0b2RvIDogKHsgLi4u
dG9kbywgY29tcGxldGVkOiAhdG9kby5jb21wbGV0ZWQgfSkKKyAgICAgICAgKSApOworICAgICAg
ICB0aGlzLmluZm9ybSgpOworICAgIH0KKworICAgIGRlc3Ryb3kodG9kbykgeworICAgICAgICB0
aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5maWx0ZXIoIHQgPT4gdCAhPT0gdG9kbyApOworICAgICAg
ICB0aGlzLmluZm9ybSgpOworICAgIH0KKworICAgIHNhdmUodG9kb1RvU2F2ZSwgdGl0bGUpIHsK
KyAgICAgICAgdGhpcy50b2RvcyA9IHRoaXMudG9kb3MubWFwKCB0b2RvID0+ICgKKyAgICAgICAg
ICAgIHRvZG8gIT09IHRvZG9Ub1NhdmUgPyB0b2RvIDogKHsgLi4udG9kbywgdGl0bGUgfSkKKyAg
ICAgICAgKSk7CisgICAgICAgIHRoaXMuaW5mb3JtKCk7CisgICAgfQorCisgICAgY2xlYXJDb21w
bGV0ZWQoKSB7CisgICAgICAgIHRoaXMudG9kb3MgPSB0aGlzLnRvZG9zLmZpbHRlciggdG9kbyA9
PiAhdG9kby5jb21wbGV0ZWQgKTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsKKyAgICB9Cit9CmRp
ZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZj
L2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC91dGlsLmpzIGIvUGVyZm9ybWFu
Y2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBs
ZXMvcHJlYWN0L3NyYy9hcHAvdXRpbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmUyNzE2YjIyMTBiMGVlYmI1
MjYwODk5ZjQxMThkOTQ3MWRlNDk4Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0
cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJl
YWN0L3NyYy9hcHAvdXRpbC5qcwpAQCAtMCwwICsxLDIzIEBACitleHBvcnQgZnVuY3Rpb24gdXVp
ZCgpIHsKKyAgICBsZXQgdXVpZCA9ICcnOworICAgIGZvciAobGV0IGk9MDsgaTwzMjsgaSsrKSB7
CisgICAgICAgIGxldCByYW5kb20gPSBNYXRoLnJhbmRvbSgpICogMTYgfCAwOworICAgICAgICBp
ZiAoaSA9PT0gOCB8fCBpID09PSAxMiB8fCBpID09PSAxNiB8fCBpID09PSAyMCkgeworICAgICAg
ICAgICAgdXVpZCArPSAnLSc7CisgICAgICAgIH0KKyAgICAgICAgdXVpZCArPSAoaSA9PT0gMTIg
PyA0IDogKGkgPT09IDE2ID8gKHJhbmRvbSAmIDMgfCA4KSA6IHJhbmRvbSkpLnRvU3RyaW5nKDE2
KTsKKyAgICB9CisgICAgcmV0dXJuIHV1aWQ7Cit9CisKK2V4cG9ydCBmdW5jdGlvbiBwbHVyYWxp
emUoY291bnQsIHdvcmQpIHsKKyAgICByZXR1cm4gY291bnQgPT09IDEgPyB3b3JkIDogd29yZCAr
ICdzJzsKK30KKworZXhwb3J0IGZ1bmN0aW9uIHN0b3JlKG5hbWVzcGFjZSwgZGF0YSkgeworICAg
IC8vIGlmIChkYXRhKSByZXR1cm4gbG9jYWxTdG9yYWdlW25hbWVzcGFjZV0gPSBKU09OLnN0cmlu
Z2lmeShkYXRhKTsKKworICAgIC8vIGxldCBzdG9yZSA9IGxvY2FsU3RvcmFnZVtuYW1lc3BhY2Vd
OworICAgIC8vIHJldHVybiBzdG9yZSAmJiBKU09OLnBhcnNlKHN0b3JlKSB8fCBbXTsKKyAgICBy
ZXR1cm4gW107Cit9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jl
c291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2luZGV4Lmh0
bWwgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hp
dGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2luZGV4Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJkNmQ2
YmQ2N2VhMWI4NDI4YWU3ODllMjAxYTg4MzVmZTFlZjJlZgotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJl
LWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguaHRtbApAQCAtMCwwICsxLDE3IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIiBkYXRhLWZyYW1ld29yaz0icHJlYWN0Ij4KKyAgICA8
aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+UHJl
YWN0IOKAoiBUb2RvTVZDPC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSJ0b2RvbXZjLWNvbW1vbi9iYXNlLmNzcyI+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0idG9kb212Yy5jc3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAg
ICAgPHNlY3Rpb24gY2xhc3M9InRvZG9hcHAiPjwvc2VjdGlvbj4KKyAgICAgICAgPGZvb3RlciBj
bGFzcz0iaW5mbyI+CisgICAgICAgICAgICA8cD5Eb3VibGUtY2xpY2sgdG8gZWRpdCBhIHRvZG88
L3A+CisgICAgICAgICAgICA8cD5QYXJ0IG9mIDxhIGhyZWY9Imh0dHA6Ly90b2RvbXZjLmNvbSI+
VG9kb01WQzwvYT48L3A+CisgICAgICAgIDwvZm9vdGVyPgorICAgICAgICA8c2NyaXB0IHNyYz0i
YXBwLmpzIj48L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9QZXJm
b3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1l
eGFtcGxlcy9wcmVhY3Qvc3JjL2luZGV4LmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRl
ci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9pbmRl
eC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41NmJjNTFmZGYxNjBmZjI2ZWIxNWEwMzIwZGEzY2I2ZmM1M2MwMzEz
Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJj
ZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9pbmRleC5qcwpAQCAt
MCwwICsxLDYgQEAKK2ltcG9ydCB7IGgsIHJlbmRlciB9IGZyb20gJ3ByZWFjdCc7CitpbXBvcnQg
QXBwIGZyb20gJy4vYXBwJzsKKy8vIGltcG9ydCAndG9kb212Yy1jb21tb24nOworLy8gaW1wb3J0
ICd0b2RvbXZjLWNvbW1vbi9iYXNlLmNzcyc7CisvLyBpbXBvcnQgJ3RvZG9tdmMtYXBwLWNzcy9p
bmRleC5jc3MnOworcmVuZGVyKDxBcHAgLz4sIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy50b2Rv
YXBwJykpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJj
ZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3dlYnBhY2suY29uZmlnLmJh
YmVsLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3dlYnBhY2suY29uZmlnLmJhYmVsLmpzCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBhNzJlNGM3MDk2YTQ2OGM1Yzg5MzcxMDZlZTEyNTJjNDIyYjg2M2IKLS0tIC9kZXYv
bnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZj
L2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvd2VicGFjay5jb25maWcuYmFiZWwuanMKQEAg
LTAsMCArMSwzOSBAQAoraW1wb3J0IEV4dHJhY3RUZXh0UGx1Z2luIGZyb20gJ2V4dHJhY3QtdGV4
dC13ZWJwYWNrLXBsdWdpbic7CitpbXBvcnQgUmVwbGFjZVBsdWdpbiBmcm9tICdyZXBsYWNlLWJ1
bmRsZS13ZWJwYWNrLXBsdWdpbic7CisKK21vZHVsZS5leHBvcnRzID0geworICAgIGVudHJ5OiB7
CisgICAgICAgIGFwcDogJy4vc3JjL2luZGV4LmpzJywKKyAgICAgICAgJ3RvZG9tdmMtY29tbW9u
JzogJ3RvZG9tdmMtY29tbW9uJworICAgIH0sCisgICAgb3V0cHV0OiB7CisgICAgICAgIHBhdGg6
ICcuL2J1aWxkJywKKyAgICAgICAgZmlsZW5hbWU6ICdbbmFtZV0uanMnCisgICAgfSwKKyAgICBt
b2R1bGU6IHsKKyAgICAgICAgbG9hZGVyczogWworICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHRlc3Q6IC9cLmpzeD8kLywKKyAgICAgICAgICAgICAgICBleGNsdWRlOiAvbm9kZV9tb2R1
bGVzLywKKyAgICAgICAgICAgICAgICBsb2FkZXI6ICdiYWJlbCcKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdDogL1wuY3NzJC8sCisgICAgICAgICAg
ICAgICAgbG9hZGVyOiBFeHRyYWN0VGV4dFBsdWdpbi5leHRyYWN0KCdzdHlsZScsICdjc3M/c291
cmNlTWFwJykKKyAgICAgICAgICAgIH0KKyAgICAgICAgXQorICAgIH0sCisgICAgcGx1Z2luczog
WworICAgICAgICBuZXcgRXh0cmFjdFRleHRQbHVnaW4oJ3N0eWxlLmNzcycsIHsgYWxsQ2h1bmtz
OiB0cnVlIH0pLAorICAgICAgICBuZXcgUmVwbGFjZVBsdWdpbihbeworICAgICAgICAgICAgLy8g
dGhpcyBpcyBhY3R1YWxseSB0aGUgcHJvcGVydHkgbmFtZSBodHRwczovL2dpdGh1Yi5jb20va2lt
aG91L3JlcGxhY2UtYnVuZGxlLXdlYnBhY2stcGx1Z2luL2lzc3Vlcy8xCisgICAgICAgICAgICBw
YXJ0dGVuOiAvdGhyb3dccysobmV3XHMrKT9bYS16QS1aXStFcnJvclxzKlwoL2csCisgICAgICAg
ICAgICByZXBsYWNlbWVudDogKCkgPT4gJ3JldHVybjsoJworICAgICAgICB9XSkKKyAgICBdLAor
ICAgIGRldnRvb2w6ICdzb3VyY2UtbWFwJywKKyAgICBkZXZTZXJ2ZXI6IHsKKyAgICAgICAgcG9y
dDogcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwLAorICAgICAgICBjb250ZW50QmFzZTogJy4vc3Jj
JworICAgIH0KK307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309820</attachid>
            <date>2017-05-11 16:40:57 -0700</date>
            <delta_ts>2017-05-11 18:01:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171323-20170511164056.patch</filename>
            <type>text/plain</type>
            <size>22394</size>
            <attacher name="Addy Osmani">addyo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjNDZiZjNlOGFh
MmIyMTYyMjE3ZWMxNDJiMGMzOWQwYTk5ZGFlZmMuLmFjYjRjYmM5YjY5MGFjNDNmMjMwOWQyMDUz
ZGVjYWFlZTY4YzM2MmMgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDUt
MTEgIEFkZHkgT3NtYW5pICA8YWRkeW9zbWFuaUBnbWFpbC5jb20+CisKKyAgICAgICAgU3BlZWRv
bWV0ZXI6IEFkZCBhIFByZWFjdC5qcyBUb2RvTVZDIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEzMjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIFByZWFjdC5qcyBUb2Rv
TVZDIGltcGxlbWVudGF0aW9uIHRvIFNwZWVkb21ldGVyCisKKyAgICAgICAgKiBTcGVlZG9tZXRl
ci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0Ly5iYWJlbHJj
OiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRl
Y3R1cmUtZXhhbXBsZXMvcHJlYWN0L1JFQURNRS5tZDogQWRkZWQuCisgICAgICAgICogU3BlZWRv
bWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9wYWNr
YWdlLmpzb246IEFkZGVkLgorICAgICAgICAqIFNwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZj
L2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvcm9sbHVwLmNvbmZpZy5qczogQWRkZWQuCisg
ICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1w
bGVzL3ByZWFjdC9zcmMvYXBwL2Zvb3Rlci5qczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0
ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBw
L2luZGV4LmpzOiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212
Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvaXRlbS5qczogQWRkZWQuCisg
ICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1w
bGVzL3ByZWFjdC9zcmMvYXBwL21vZGVsLmpzOiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRl
ci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAv
dXRpbC5qczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMv
YXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguaHRtbDogQWRkZWQuCisgICAg
ICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVz
L3ByZWFjdC9zcmMvaW5kZXguanM6IEFkZGVkLgorICAgICAgICAqIFNwZWVkb21ldGVyL3Jlc291
cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvd2VicGFjay5jb25maWcu
YmFiZWwuanM6IEFkZGVkLgorCiAyMDE3LTA0LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU2ltcGxlIGxpbmUgbGF5b3V0OiBBZGQgcGVyZm9ybWFuY2UgdGVz
dCB0byBtZWFzdXJlIG1pZC13b3JkIGxpbmUgYnJlYWtpbmcgd2l0aCBsb25nIHRleHQuCmRpZmYg
LS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2Fy
Y2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvLmJhYmVscmMgYi9QZXJmb3JtYW5jZVRlc3RzL1Nw
ZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qv
LmJhYmVscmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI3MmVkMTk4NmRlYjc3NzBiMjQ0MmRmM2VhODYxMDk1NmFl
YWYzMQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVz
b3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC8uYmFiZWxyYwpAQCAt
MCwwICsxLDkgQEAKK3sKKyAgInByZXNldHMiOiBbCisgICAgImVzMjAxNS1sb29zZSIsCisgICAg
InN0YWdlLTAiCisgIF0sCisgICJwbHVnaW5zIjogWworICAgIFsidHJhbnNmb3JtLXJlYWN0LWpz
eCIsIHsgInByYWdtYSI6ImgiIH1dCisgIF0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3By
ZWFjdC9SRUFETUUubWQgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90
b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvUkVBRE1FLm1kCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUwNTQ2ZjExYTk5YzgxZDUxMjgxMGJkMzcxNjhhYzliOTg1YmExMmIKLS0tIC9kZXYvbnVsbAor
KysgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hp
dGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTkgQEAKKyMgUHJl
YWN0IFRvZG9NVkMKKworWyoqRGVtbyoqXShodHRwczovL3ByZWFjdC10b2RvbXZjLnN1cmdlLnNo
KQorCitUb2RvTVZDIGRvbmUgaW4gW1ByZWFjdF0uIFRoZSBhcHAgaXMgNmtiIG9mIG1pbmlmaWVk
ICsgZ3ppcHBlZCBKYXZhU2NyaXB0LgorCitUaGlzIGlzIGFuIEVTNiArIFByZWFjdCBwb3J0IG9m
IHRoZSBbRVM1ICsgUmVhY3QgVG9kb01WQyBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vdGFz
dGVqcy90b2RvbXZjL3RyZWUvZ2gtcGFnZXMvZXhhbXBsZXMvcmVhY3QpLgorCitbcHJlYWN0XTog
aHR0cHM6Ly9naXRodWIuY29tL2RldmVsb3BpdC9wcmVhY3QKKworIyMgQnVpbGRpbmcKKworUnVu
IGBucG0gaW5zdGFsbGAgZm9sbG93ZWQgYnkgYG5wbSBydW4gYnVpbGRgIHRvIGJ1aWxkIHRoZSBw
cm9qZWN0LgorCisjIyBTcGVlZG9tZXRlciBpbnN0cnVjdGlvbnMKKworVGhlIGNvbXBpbGVkIHZl
cnNpb24gb2YgdGhlIGFwcGxpY2F0aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgYGJ1aWxkYCBkaXJl
Y3RvcnkuCitUaGlzIGlzIHdoYXQgdGhlIGJlbmNobWFyayBydW5uZXIgdXNlcyB3aGVuIHJ1bm5p
bmcgdGhlIFByZWFjdCBUb2RvTVZDIGFzIHBhcnQKK29mIGEgYmVuY2htYXJrIHJ1bi4KZGlmZiAt
LWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJj
aGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9wYWNrYWdlLmpzb24gYi9QZXJmb3JtYW5jZVRlc3Rz
L1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVh
Y3QvcGFja2FnZS5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZWJhODdiNzkyMGYzOGM0ZmRhMDVhY2FjOTMz
MTM1N2ZhMDc4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21l
dGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvcGFja2Fn
ZS5qc29uCkBAIC0wLDAgKzEsNTIgQEAKK3sKKyAgIm5hbWUiOiAicHJlYWN0LXRvZG9tdmMiLAor
ICAidmVyc2lvbiI6ICIwLjIuMCIsCisgICJkZXNjcmlwdGlvbiI6ICJUb2RvTVZDIGRvbmUgaW4g
UHJlYWN0IiwKKyAgIm1haW4iOiAiaW5kZXguanMiLAorICAic2NyaXB0cyI6IHsKKyAgICAiZGV2
IjogIndlYnBhY2stZGV2LXNlcnZlciIsCisgICAgInN0YXJ0IjogImh0dHAtc2VydmVyIGJ1aWxk
IC1wICR7UE9SVDotODA4MH0iLAorICAgICJwcmVzdGFydCI6ICJucG0gcnVuIGJ1aWxkIiwKKyAg
ICAiYnVpbGQiOiAibnBtIHJ1biAtcyBidWlsZDpyb2xsdXAiLAorICAgICJidWlsZDp3ZWJwYWNr
IjogIm1rZGlycCBidWlsZCAmJiBuY3Agc3JjL2luZGV4Lmh0bWwgYnVpbGQvaW5kZXguaHRtbCAm
JiB3ZWJwYWNrIC1wIiwKKyAgICAiYnVpbGQ6cm9sbHVwIjogInJtIC1yZiBidWlsZCAmJiBta2Rp
cnAgYnVpbGQvdG9kb212Yy1jb21tb24gJiYgbmNwIHNyYy9pbmRleC5odG1sIGJ1aWxkL2luZGV4
Lmh0bWwgJiYgcm9sbHVwIC1jIHJvbGx1cC5jb25maWcuanMgJiYgY3Agbm9kZV9tb2R1bGVzL3Rv
ZG9tdmMtY29tbW9uL2Jhc2Uue2pzLGNzc30gYnVpbGQvdG9kb212Yy1jb21tb24vICYmIGNwIG5v
ZGVfbW9kdWxlcy90b2RvbXZjLWFwcC1jc3MvaW5kZXguY3NzIGJ1aWxkL3RvZG9tdmMuY3NzICYm
IG5wbSBydW4gcG9zdGJ1aWxkIiwKKyAgICAicG9zdGJ1aWxkIjogInVnbGlmeWpzIGJ1aWxkL2Fw
cC5qcyAtLXB1cmUtZnVuY3MgY2xhc3NDYWxsQ2hlY2sgT2JqZWN0LmRlZmluZVByb3BlcnR5IE9i
amVjdC5mcmVlemUgaW52YXJpYW50IHdhcm5pbmcgLWMgdW5zYWZlLGNvbGxhcHNlX3ZhcnMsZXZh
bHVhdGUsc2NyZXdfaWU4LGxvb3BzLGtlZXBfZmFyZ3M9ZmFsc2UscHVyZV9nZXR0ZXJzLHVudXNl
ZCxkZWFkX2NvZGUgLW0gLW8gYnVpbGQvYXBwLmpzIC1wIHJlbGF0aXZlIC0taW4tc291cmNlLW1h
cCBidWlsZC9hcHAuanMubWFwIC0tc291cmNlLW1hcCBidWlsZC9hcHAuanMubWFwIiwKKyAgICAi
ZGVwbG95IjogImdoLXBhZ2VzIC1kIGJ1aWxkIgorICB9LAorICAia2V5d29yZHMiOiBbCisgICAg
InByZWFjdCIKKyAgXSwKKyAgImF1dGhvciI6ICJUaGUgVG9kb01WQyBhdXRob3JzIiwKKyAgImxp
Y2Vuc2UiOiAiTUlUIiwKKyAgImRldkRlcGVuZGVuY2llcyI6IHsKKyAgICAiYmFiZWwtY29yZSI6
ICJeNi41LjIiLAorICAgICJiYWJlbC1sb2FkZXIiOiAiXjYuMi4zIiwKKyAgICAiYmFiZWwtcGx1
Z2luLXRyYW5zZm9ybS1jbGFzcy1wcm9wZXJ0aWVzIjogIl42LjUuMiIsCisgICAgImJhYmVsLXBs
dWdpbi10cmFuc2Zvcm0tZGVjb3JhdG9ycy1sZWdhY3kiOiAiXjEuMy40IiwKKyAgICAiYmFiZWwt
cGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3giOiAiXjYuNS4yIiwKKyAgICAiYmFiZWwtcHJlc2V0
LWJhYmlsaSI6ICIwLjAuOSIsCisgICAgImJhYmVsLXByZXNldC1lczIwMTUiOiAiXjYuNS4wIiwK
KyAgICAiYmFiZWwtcHJlc2V0LWVzMjAxNS1sb29zZSI6ICJeOC4wLjAiLAorICAgICJiYWJlbC1w
cmVzZXQtc3RhZ2UtMCI6ICJeNi41LjAiLAorICAgICJjc3MtbG9hZGVyIjogIl4wLjI2LjAiLAor
ICAgICJleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW4iOiAiXjEuMC4xIiwKKyAgICAiZ2gtcGFn
ZXMiOiAiXjAuMTIuMCIsCisgICAgImh0dHAtc2VydmVyIjogIl4wLjkuMCIsCisgICAgIm1rZGly
cCI6ICJeMC41LjEiLAorICAgICJuY3AiOiAiXjIuMC4wIiwKKyAgICAicmVwbGFjZS1idW5kbGUt
d2VicGFjay1wbHVnaW4iOiAiXjEuMC4wIiwKKyAgICAicm9sbHVwIjogIl4wLjM2LjQiLAorICAg
ICJyb2xsdXAtcGx1Z2luLWJhYmVsIjogIl4yLjYuMSIsCisgICAgInJvbGx1cC1wbHVnaW4tY29t
bW9uanMiOiAiXjUuMC41IiwKKyAgICAicm9sbHVwLXBsdWdpbi1ub2RlLXJlc29sdmUiOiAiXjIu
MC4wIiwKKyAgICAic3R5bGUtbG9hZGVyIjogIl4wLjEzLjAiLAorICAgICJ3ZWJwYWNrIjogIl4x
LjEyLjE0IiwKKyAgICAid2VicGFjay1kZXYtc2VydmVyIjogIl4xLjE0LjEiCisgIH0sCisgICJk
ZXBlbmRlbmNpZXMiOiB7CisgICAgInByZWFjdCI6ICJeNy4xLjAiLAorICAgICJwcmVhY3Qtcm91
dGVyIjogIl4yLjMuMiIsCisgICAgInRvZG9tdmMtYXBwLWNzcyI6ICJeMi4wLjMiLAorICAgICJ0
b2RvbXZjLWNvbW1vbiI6ICJeMS4wLjIiCisgIH0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNl
VGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVz
L3ByZWFjdC9yb2xsdXAuY29uZmlnLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9y
ZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3JvbGx1cC5jb25m
aWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDhjNTlhYWQ1ODU4YzBkYjIzNDk1ZmYzOWRkZTViZjNlMmZhNzg4
ZAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3Vy
Y2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9yb2xsdXAuY29uZmlnLmpz
CkBAIC0wLDAgKzEsMjcgQEAKK2ltcG9ydCBub2RlUmVzb2x2ZSBmcm9tICdyb2xsdXAtcGx1Z2lu
LW5vZGUtcmVzb2x2ZSc7CitpbXBvcnQgY29tbW9uanMgZnJvbSAncm9sbHVwLXBsdWdpbi1jb21t
b25qcyc7CitpbXBvcnQgYmFiZWwgZnJvbSAncm9sbHVwLXBsdWdpbi1iYWJlbCc7CisKK2V4cG9y
dCBkZWZhdWx0IHsKKyAgICBlbnRyeTogJ3NyYy9pbmRleC5qcycsCisgICAgZGVzdDogJ2J1aWxk
L2FwcC5qcycsCisgICAgZm9ybWF0OiAnaWlmZScsCisgICAgc291cmNlTWFwOiB0cnVlLAorICAg
IGV4dGVybmFsOiBbXSwKKyAgICBwbHVnaW5zOiBbCisgICAgICAgIGJhYmVsKHsKKyAgICAgICAg
ICAgIGJhYmVscmM6IGZhbHNlLAorICAgICAgICAgICAgcHJlc2V0czogWworICAgICAgICAgICAg
ICAgIFsnZXMyMDE1JywgeyBsb29zZTp0cnVlLCBtb2R1bGVzOmZhbHNlIH1dLAorICAgICAgICAg
ICAgICAgICdzdGFnZS0wJworICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHBsdWdpbnM6IFsK
KyAgICAgICAgICAgICAgICBbJ3RyYW5zZm9ybS1yZWFjdC1qc3gnLCB7IHByYWdtYTonaCcgfV0K
KyAgICAgICAgICAgIF0KKyAgICAgICAgfSksCisgICAgICAgIG5vZGVSZXNvbHZlKHsKKyAgICAg
ICAgICAgIGpzbmV4dDogdHJ1ZQorICAgICAgICB9KSwKKyAgICAgICAgY29tbW9uanMoKQorICAg
IF0KK307CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNl
cy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9mb290ZXIuanMg
Yi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVj
dHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9mb290ZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNiMGZm
NWQwOWY5YzI2OTdlMTZiNjVhNjA1YTA3NjY2ZmM4OTZjMwotLS0gL2Rldi9udWxsCisrKyBiL1Bl
cmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJl
LWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2Zvb3Rlci5qcwpAQCAtMCwwICsxLDMyIEBACitpbXBv
cnQgeyBoLCBDb21wb25lbnQgfSBmcm9tICdwcmVhY3QnOworaW1wb3J0IHsgcGx1cmFsaXplIH0g
ZnJvbSAnLi91dGlsJzsKKworZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9kb0Zvb3RlciBleHRlbmRz
IENvbXBvbmVudCB7CisgICAgcmVuZGVyKHsgbm93U2hvd2luZywgY291bnQsIGNvbXBsZXRlZENv
dW50LCBvbkNsZWFyQ29tcGxldGVkIH0pIHsKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAgICAg
IDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InRv
ZG8tY291bnQiPgorICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPntjb3VudH08L3N0cm9uZz4g
e3BsdXJhbGl6ZShjb3VudCwgJ2l0ZW0nKX0gbGVmdAorICAgICAgICAgICAgICAgIDwvc3Bhbj4K
KyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImZpbHRlcnMiPgorICAgICAgICAgICAgICAgICAg
ICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjLyIgY2xhc3M9e25vd1No
b3dpbmc9PSdhbGwnICYmICdzZWxlY3RlZCd9PkFsbDwvYT4KKyAgICAgICAgICAgICAgICAgICAg
PC9saT4KKyAgICAgICAgICAgICAgICAgICAgeycgJ30KKyAgICAgICAgICAgICAgICAgICAgPGxp
PgorICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIy9hY3RpdmUiIGNsYXNzPXtub3dT
aG93aW5nPT0nYWN0aXZlJyAmJiAnc2VsZWN0ZWQnfT5BY3RpdmU8L2E+CisgICAgICAgICAgICAg
ICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgIHsnICd9CisgICAgICAgICAgICAgICAg
ICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMvY29tcGxldGVkIiBj
bGFzcz17bm93U2hvd2luZz09J2NvbXBsZXRlZCcgJiYgJ3NlbGVjdGVkJ30+Q29tcGxldGVkPC9h
PgorICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+CisgICAg
ICAgICAgICAgICAgeyBjb21wbGV0ZWRDb3VudCA+IDAgJiYgKAorICAgICAgICAgICAgICAgICAg
ICA8YnV0dG9uIGNsYXNzPSJjbGVhci1jb21wbGV0ZWQiIG9uQ2xpY2s9e29uQ2xlYXJDb21wbGV0
ZWR9PgorICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIgY29tcGxldGVkCisgICAgICAgICAg
ICAgICAgICAgIDwvYnV0dG9uPgorICAgICAgICAgICAgICAgICkgfQorICAgICAgICAgICAgPC9m
b290ZXI+CisgICAgICAgICk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0
cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJl
YWN0L3NyYy9hcHAvaW5kZXguanMgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291
cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9pbmRleC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NmY4N2NlMjhhYjE2M2U1ZDNmYWQ3NTg4M2JiZGVmZTUzOGJmODIzCi0t
LSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMv
dG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvaW5kZXguanMKQEAg
LTAsMCArMSwxMzIgQEAKK2ltcG9ydCB7IGgsIENvbXBvbmVudCB9IGZyb20gJ3ByZWFjdCc7Citp
bXBvcnQgVG9kb01vZGVsIGZyb20gJy4vbW9kZWwnOworaW1wb3J0IFRvZG9Gb290ZXIgZnJvbSAn
Li9mb290ZXInOworaW1wb3J0IFRvZG9JdGVtIGZyb20gJy4vaXRlbSc7CisKK2NvbnN0IEVOVEVS
X0tFWSA9IDEzOworCitjb25zdCBGSUxURVJTID0geworICAgIGFsbDogdG9kbyA9PiB0cnVlLAor
ICAgIGFjdGl2ZTogdG9kbyA9PiAhdG9kby5jb21wbGV0ZWQsCisgICAgY29tcGxldGVkOiB0b2Rv
ID0+IHRvZG8uY29tcGxldGVkCit9OworCitleHBvcnQgZGVmYXVsdCBjbGFzcyBBcHAgZXh0ZW5k
cyBDb21wb25lbnQgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICBzdXBlcigpOworICAg
ICAgICB0aGlzLm1vZGVsID0gbmV3IFRvZG9Nb2RlbCgncHJlYWN0LXRvZG9zJywgKCkgPT4gdGhp
cy5zZXRTdGF0ZSh7fSkgKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5nZScs
IHRoaXMuaGFuZGxlUm91dGUuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuaGFuZGxlUm91dGUo
KTsKKyAgICB9CisKKyAgICBoYW5kbGVSb3V0ZSgpIHsKKyAgICAgICAgbGV0IG5vd1Nob3dpbmcg
PSBTdHJpbmcobG9jYXRpb24uaGFzaHx8JycpLnNwbGl0KCcvJykucG9wKCk7CisgICAgICAgIGlm
ICghRklMVEVSU1tub3dTaG93aW5nXSkgeworICAgICAgICAgICAgbm93U2hvd2luZyA9ICdhbGwn
OworICAgICAgICB9CisgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBub3dTaG93aW5nIH0pOworICAg
IH0KKworICAgIGhhbmRsZU5ld1RvZG9LZXlEb3duID0gZSA9PiB7CisgICAgICAgIGlmIChlLmtl
eUNvZGUhPT1FTlRFUl9LRVkpIHJldHVybjsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwor
CisgICAgICAgIC8vIGxldCB2YWwgPSAnJzsKKyAgICAgICAgLy8gaWYgKHRoaXMuc3RhdGUubmV3
VG9kbyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIC8vICB2YWwgPSBlLnRhcmdldC52YWx1ZS50
cmltKCk7CisgICAgICAgIC8vIH0KKworICAgICAgICBsZXQgdmFsID0gZS50YXJnZXQudmFsdWUu
dHJpbSgpOworCisgICAgICAgIGlmICh2YWwpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWwuYWRk
VG9kbyh2YWwpOworICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5ld1RvZG86ICcnIH0pOwor
ICAgICAgICB9CisgICAgfTsKKworICAgIHRvZ2dsZUFsbCA9IGV2ZW50ID0+IHsKKyAgICAgICAg
bGV0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDsKKyAgICAgICAgdGhpcy5tb2RlbC50
b2dnbGVBbGwoY2hlY2tlZCk7CisgICAgfTsKKworICAgIHRvZ2dsZSA9IHRvZG8gPT4geworICAg
ICAgICB0aGlzLm1vZGVsLnRvZ2dsZSh0b2RvKTsKKyAgICB9OworCisgICAgZGVzdHJveSA9IHRv
ZG8gPT4geworICAgICAgICB0aGlzLm1vZGVsLmRlc3Ryb3kodG9kbyk7CisgICAgfTsKKworICAg
IGVkaXQgPSB0b2RvID0+IHsKKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRpbmc6IHRvZG8u
aWQgfSk7CisgICAgfTsKKworICAgIHNhdmUgPSAodG9kb1RvU2F2ZSwgdGV4dCkgPT4geworICAg
ICAgICB0aGlzLm1vZGVsLnNhdmUodG9kb1RvU2F2ZSwgdGV4dCk7CisgICAgICAgIHRoaXMuc2V0
U3RhdGUoeyBlZGl0aW5nOiBudWxsIH0pOworICAgIH07CisKKyAgICBjYW5jZWwgPSAoKSA9PiB7
CisgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0aW5nOiBudWxsIH0pOworICAgIH07CisKKyAg
ICBjbGVhckNvbXBsZXRlZCA9ICgpID0+IHsKKyAgICAgICAgdGhpcy5tb2RlbC5jbGVhckNvbXBs
ZXRlZCgpOworICAgIH07CisKKyAgICByZW5kZXIoeyB9LCB7IG5vd1Nob3dpbmc9QUxMX1RPRE9T
LCBuZXdUb2RvLCBlZGl0aW5nIH0pIHsKKyAgICAgICAgbGV0IHsgdG9kb3MgfSA9IHRoaXMubW9k
ZWwsCisgICAgICAgICAgICBzaG93blRvZG9zID0gdG9kb3MuZmlsdGVyKCBGSUxURVJTW25vd1No
b3dpbmddICksCisgICAgICAgICAgICBhY3RpdmVUb2RvQ291bnQgPSB0b2Rvcy5yZWR1Y2UoIChh
LCB0b2RvKSA9PiBhICsgKHRvZG8uY29tcGxldGVkID8gMCA6IDEpLCAwKSwKKyAgICAgICAgICAg
IGNvbXBsZXRlZENvdW50ID0gdG9kb3MubGVuZ3RoIC0gYWN0aXZlVG9kb0NvdW50OworCisgICAg
ICAgIHJldHVybiAoCisgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgIDxoZWFkZXIg
Y2xhc3M9ImhlYWRlciI+CisgICAgICAgICAgICAgICAgICAgIDxoMT50b2RvczwvaDE+CisgICAg
ICAgICAgICAgICAgICAgIDxpbnB1dAorICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9Im5l
dy10b2RvIgorICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IldoYXQgbmVlZHMg
dG8gYmUgZG9uZT8iCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3VG9kb30KKyAg
ICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17dGhpcy5oYW5kbGVOZXdUb2RvS2V5RG93
bn0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9uSW5wdXQ9e3RoaXMubGlua1N0YXRlKCduZXdU
b2RvJyl9CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9CisgICAgICAg
ICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9oZWFkZXI+CisKKyAgICAgICAgICAg
ICAgICB7IHRvZG9zLmxlbmd0aCA/ICgKKyAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xh
c3M9Im1haW4iPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1hbGwiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdHlwZT0iY2hlY2tib3giCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFu
Z2U9e3RoaXMudG9nZ2xlQWxsfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9
e2FjdGl2ZVRvZG9Db3VudCA9PT0gMH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8+CisgICAg
ICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRvZG8tbGlzdCI+CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyBzaG93blRvZG9zLm1hcCggdG9kbyA9PiAoCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDxUb2RvSXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG9kbz17dG9kb30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9uVG9nZ2xlPXt0aGlzLnRvZ2dsZX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9uRGVzdHJveT17dGhpcy5kZXN0cm95fQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb25FZGl0PXt0aGlzLmVkaXR9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlZGl0aW5nPXtlZGl0aW5nID09PSB0b2RvLmlkfQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb25TYXZlPXt0aGlzLnNhdmV9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5jYW5jZWx9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkgfQorICAg
ICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9u
PgorICAgICAgICAgICAgICAgICkgOiBudWxsIH0KKworICAgICAgICAgICAgICAgIHsgKGFjdGl2
ZVRvZG9Db3VudCB8fCBjb21wbGV0ZWRDb3VudCkgPyAoCisgICAgICAgICAgICAgICAgICAgIDxU
b2RvRm9vdGVyCisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD17YWN0aXZlVG9kb0NvdW50
fQorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkQ291bnQ9e2NvbXBsZXRlZENvdW50
fQorICAgICAgICAgICAgICAgICAgICAgICAgbm93U2hvd2luZz17bm93U2hvd2luZ30KKyAgICAg
ICAgICAgICAgICAgICAgICAgIG9uQ2xlYXJDb21wbGV0ZWQ9e3RoaXMuY2xlYXJDb21wbGV0ZWR9
CisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgKSA6IG51bGwgfQorICAg
ICAgICAgICAgPC9kaXY+CisgICAgICAgICk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhh
bXBsZXMvcHJlYWN0L3NyYy9hcHAvaXRlbS5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0
ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBw
L2l0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg1NDAyMmRhZjkzMzBmZjBhODRmOTYzMTNmODljNzVhOTVj
MjgzYQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVz
b3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2l0ZW0u
anMKQEAgLTAsMCArMSw4NCBAQAoraW1wb3J0IHsgaCwgQ29tcG9uZW50IH0gZnJvbSAncHJlYWN0
JzsKKworY29uc3QgRVNDQVBFX0tFWSA9IDI3OworY29uc3QgRU5URVJfS0VZID0gMTM7CisKK2V4
cG9ydCBkZWZhdWx0IGNsYXNzIFRvZG9JdGVtIGV4dGVuZHMgQ29tcG9uZW50IHsKKyAgICBoYW5k
bGVTdWJtaXQgPSAoKSA9PiB7CisgICAgICAgIGxldCB7IG9uU2F2ZSwgb25EZXN0cm95LCB0b2Rv
IH0gPSB0aGlzLnByb3BzLAorICAgICAgICAgICAgdmFsID0gdGhpcy5zdGF0ZS5lZGl0VGV4dC50
cmltKCk7CisgICAgICAgIGlmICh2YWwpIHsKKyAgICAgICAgICAgIG9uU2F2ZSh0b2RvLCB2YWwp
OworICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRUZXh0OiB2YWwgfSk7CisgICAgICAg
IH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvbkRlc3Ryb3kodG9kbyk7CisgICAgICAg
IH0KKyAgICB9OworCisgICAgaGFuZGxlRWRpdCA9ICgpID0+IHsKKyAgICAgICAgbGV0IHsgb25F
ZGl0LCB0b2RvIH0gPSB0aGlzLnByb3BzOworICAgICAgICBvbkVkaXQodG9kbyk7CisgICAgICAg
IHRoaXMuc2V0U3RhdGUoeyBlZGl0VGV4dDogdG9kby50aXRsZSB9KTsKKyAgICB9OworCisgICAg
dG9nZ2xlID0gZSA9PiB7CisgICAgICAgIGxldCB7IG9uVG9nZ2xlLCB0b2RvIH0gPSB0aGlzLnBy
b3BzOworICAgICAgICBvblRvZ2dsZSh0b2RvKTsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgp
OworICAgIH07CisKKyAgICBoYW5kbGVLZXlEb3duID0gZSA9PiB7CisgICAgICAgIGlmIChlLndo
aWNoPT09RVNDQVBFX0tFWSkgeworICAgICAgICAgICAgbGV0IHsgdG9kbyB9ID0gdGhpcy5wcm9w
czsKKyAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0VGV4dDogdG9kby50aXRsZSB9KTsK
KyAgICAgICAgICAgIHRoaXMucHJvcHMub25DYW5jZWwodG9kbyk7CisgICAgICAgIH0KKyAgICAg
ICAgZWxzZSBpZiAoZS53aGljaD09PUVOVEVSX0tFWSkgeworICAgICAgICAgICAgdGhpcy5oYW5k
bGVTdWJtaXQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgaGFuZGxlRGVzdHJveSA9
ICgpID0+IHsKKyAgICAgICAgdGhpcy5wcm9wcy5vbkRlc3Ryb3kodGhpcy5wcm9wcy50b2RvKTsK
KyAgICB9OworCisgICAgLy8gc2hvdWxkQ29tcG9uZW50VXBkYXRlKHsgdG9kbywgZWRpdGluZywg
ZWRpdFRleHQgfSkgeworICAgIC8vICByZXR1cm4gKAorICAgIC8vICAgICAgdG9kbyAhPT0gdGhp
cy5wcm9wcy50b2RvIHx8CisgICAgLy8gICAgICBlZGl0aW5nICE9PSB0aGlzLnByb3BzLmVkaXRp
bmcgfHwKKyAgICAvLyAgICAgIGVkaXRUZXh0ICE9PSB0aGlzLnN0YXRlLmVkaXRUZXh0CisgICAg
Ly8gICk7CisgICAgLy8gfQorCisgICAgY29tcG9uZW50RGlkVXBkYXRlKCkgeworICAgICAgICBs
ZXQgbm9kZSA9IHRoaXMuYmFzZSAmJiB0aGlzLmJhc2UucXVlcnlTZWxlY3RvcignLmVkaXQnKTsK
KyAgICAgICAgaWYgKG5vZGUpIG5vZGUuZm9jdXMoKTsKKyAgICB9CisKKyAgICByZW5kZXIoeyB0
b2RvOnsgdGl0bGUsIGNvbXBsZXRlZCB9LCBvblRvZ2dsZSwgb25EZXN0cm95LCBlZGl0aW5nIH0s
IHsgZWRpdFRleHQgfSkgeworICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgPGxpIGNsYXNz
PXt7IGNvbXBsZXRlZCwgZWRpdGluZyB9fT4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJ2
aWV3Ij4KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0CisgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzcz0idG9nZ2xlIgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iY2hlY2tib3gi
CisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb21wbGV0ZWR9CisgICAgICAgICAg
ICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50b2dnbGV9CisgICAgICAgICAgICAgICAgICAg
IC8+CisgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBvbkRibENsaWNrPXt0aGlzLmhhbmRsZUVk
aXR9Pnt0aXRsZX08L2xhYmVsPgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJk
ZXN0cm95IiBvbkNsaWNrPXt0aGlzLmhhbmRsZURlc3Ryb3l9IC8+CisgICAgICAgICAgICAgICAg
PC9kaXY+CisgICAgICAgICAgICAgICAgeyBlZGl0aW5nICYmICgKKyAgICAgICAgICAgICAgICAg
ICAgPGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZWRpdCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbHVlPXtlZGl0VGV4dH0KKyAgICAgICAgICAgICAgICAgICAgICAg
IG9uQmx1cj17dGhpcy5oYW5kbGVTdWJtaXR9CisgICAgICAgICAgICAgICAgICAgICAgICBvbklu
cHV0PXt0aGlzLmxpbmtTdGF0ZSgnZWRpdFRleHQnKX0KKyAgICAgICAgICAgICAgICAgICAgICAg
IG9uS2V5RG93bj17dGhpcy5oYW5kbGVLZXlEb3dufQorICAgICAgICAgICAgICAgICAgICAvPgor
ICAgICAgICAgICAgICAgICkgfQorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgKTsKKyAgICB9
Cit9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90
b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9tb2RlbC5qcyBiL1Bl
cmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJl
LWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL21vZGVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjOGFhZTFkNTFh
MGM0MzFiOGJmMjg0OGRjNDk5YWI0Mzc3Njk0MzUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3Jt
YW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFt
cGxlcy9wcmVhY3Qvc3JjL2FwcC9tb2RlbC5qcwpAQCAtMCwwICsxLDU0IEBACitpbXBvcnQgeyB1
dWlkLCBzdG9yZSB9IGZyb20gJy4vdXRpbCc7CisKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIFRvZG9N
b2RlbCB7CisgICAgY29uc3RydWN0b3Ioa2V5LCBzdWIpIHsKKyAgICAgICAgdGhpcy5rZXkgPSBr
ZXk7CisgICAgICAgIHRoaXMudG9kb3MgPSBzdG9yZShrZXkpIHx8IFtdOworICAgICAgICB0aGlz
Lm9uQ2hhbmdlcyA9IFtzdWJdOworICAgIH0KKworICAgIGluZm9ybSgpIHsKKyAgICAgICAgc3Rv
cmUodGhpcy5rZXksIHRoaXMudG9kb3MpOworICAgICAgICB0aGlzLm9uQ2hhbmdlcy5mb3JFYWNo
KCBjYiA9PiBjYigpICk7CisgICAgfQorCisgICAgYWRkVG9kbyh0aXRsZSkgeworICAgICAgICB0
aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5jb25jYXQoeworICAgICAgICAgICAgaWQ6IHV1aWQoKSwK
KyAgICAgICAgICAgIHRpdGxlLAorICAgICAgICAgICAgY29tcGxldGVkOiBmYWxzZQorICAgICAg
ICB9KTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsKKyAgICB9CisKKyAgICB0b2dnbGVBbGwoY29t
cGxldGVkKSB7CisgICAgICAgIHRoaXMudG9kb3MgPSB0aGlzLnRvZG9zLm1hcCgKKyAgICAgICAg
ICAgIHRvZG8gPT4gKHsgLi4udG9kbywgY29tcGxldGVkIH0pCisgICAgICAgICk7CisgICAgICAg
IHRoaXMuaW5mb3JtKCk7CisgICAgfQorCisgICAgdG9nZ2xlKHRvZG9Ub1RvZ2dsZSkgeworICAg
ICAgICB0aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5tYXAoIHRvZG8gPT4gKAorICAgICAgICAgICAg
dG9kbyAhPT0gdG9kb1RvVG9nZ2xlID8gdG9kbyA6ICh7IC4uLnRvZG8sIGNvbXBsZXRlZDogIXRv
ZG8uY29tcGxldGVkIH0pCisgICAgICAgICkgKTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsKKyAg
ICB9CisKKyAgICBkZXN0cm95KHRvZG8pIHsKKyAgICAgICAgdGhpcy50b2RvcyA9IHRoaXMudG9k
b3MuZmlsdGVyKCB0ID0+IHQgIT09IHRvZG8gKTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsKKyAg
ICB9CisKKyAgICBzYXZlKHRvZG9Ub1NhdmUsIHRpdGxlKSB7CisgICAgICAgIHRoaXMudG9kb3Mg
PSB0aGlzLnRvZG9zLm1hcCggdG9kbyA9PiAoCisgICAgICAgICAgICB0b2RvICE9PSB0b2RvVG9T
YXZlID8gdG9kbyA6ICh7IC4uLnRvZG8sIHRpdGxlIH0pCisgICAgICAgICkpOworICAgICAgICB0
aGlzLmluZm9ybSgpOworICAgIH0KKworICAgIGNsZWFyQ29tcGxldGVkKCkgeworICAgICAgICB0
aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5maWx0ZXIoIHRvZG8gPT4gIXRvZG8uY29tcGxldGVkICk7
CisgICAgICAgIHRoaXMuaW5mb3JtKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFu
Y2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBs
ZXMvcHJlYWN0L3NyYy9hcHAvdXRpbC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIv
cmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL3V0
aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTJlMjcxNmIyMjEwYjBlZWJiNTI2MDg5OWY0MTE4ZDk0NzFkZTQ5
OAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3Vy
Y2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL3V0aWwuanMK
QEAgLTAsMCArMSwyMyBAQAorZXhwb3J0IGZ1bmN0aW9uIHV1aWQoKSB7CisgICAgbGV0IHV1aWQg
PSAnJzsKKyAgICBmb3IgKGxldCBpPTA7IGk8MzI7IGkrKykgeworICAgICAgICBsZXQgcmFuZG9t
ID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMDsKKyAgICAgICAgaWYgKGkgPT09IDggfHwgaSA9PT0g
MTIgfHwgaSA9PT0gMTYgfHwgaSA9PT0gMjApIHsKKyAgICAgICAgICAgIHV1aWQgKz0gJy0nOwor
ICAgICAgICB9CisgICAgICAgIHV1aWQgKz0gKGkgPT09IDEyID8gNCA6IChpID09PSAxNiA/IChy
YW5kb20gJiAzIHwgOCkgOiByYW5kb20pKS50b1N0cmluZygxNik7CisgICAgfQorICAgIHJldHVy
biB1dWlkOworfQorCitleHBvcnQgZnVuY3Rpb24gcGx1cmFsaXplKGNvdW50LCB3b3JkKSB7Cisg
ICAgcmV0dXJuIGNvdW50ID09PSAxID8gd29yZCA6IHdvcmQgKyAncyc7Cit9CisKK2V4cG9ydCBm
dW5jdGlvbiBzdG9yZShuYW1lc3BhY2UsIGRhdGEpIHsKKyAgICAvLyBpZiAoZGF0YSkgcmV0dXJu
IGxvY2FsU3RvcmFnZVtuYW1lc3BhY2VdID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CisKKyAgICAv
LyBsZXQgc3RvcmUgPSBsb2NhbFN0b3JhZ2VbbmFtZXNwYWNlXTsKKyAgICAvLyByZXR1cm4gc3Rv
cmUgJiYgSlNPTi5wYXJzZShzdG9yZSkgfHwgW107CisgICAgcmV0dXJuIFtdOworfQpkaWZmIC0t
Z2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNo
aXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9pbmRleC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0
cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJl
YWN0L3NyYy9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDZkNmJkNjdlYTFiODQyOGFlNzg5ZTIw
MWE4ODM1ZmUxZWYyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVk
b21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3Jj
L2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBsYW5n
PSJlbiIgZGF0YS1mcmFtZXdvcms9InByZWFjdCI+CisgICAgPGhlYWQ+CisgICAgICAgIDxtZXRh
IGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlByZWFjdCDigKIgVG9kb01WQzwvdGl0
bGU+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idG9kb212Yy1jb21tb24v
YmFzZS5jc3MiPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRvZG9tdmMu
Y3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzZWN0aW9uIGNsYXNzPSJ0
b2RvYXBwIj48L3NlY3Rpb24+CisgICAgICAgIDxmb290ZXIgY2xhc3M9ImluZm8iPgorICAgICAg
ICAgICAgPHA+RG91YmxlLWNsaWNrIHRvIGVkaXQgYSB0b2RvPC9wPgorICAgICAgICAgICAgPHA+
UGFydCBvZiA8YSBocmVmPSJodHRwOi8vdG9kb212Yy5jb20iPlRvZG9NVkM8L2E+PC9wPgorICAg
ICAgICA8L2Zvb3Rlcj4KKyAgICAgICAgPHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9t
ZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9p
bmRleC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMv
YXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZi
YzUxZmRmMTYwZmYyNmViMTVhMDMyMGRhM2NiNmZjNTNjMDMxMwotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0
dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguanMKQEAgLTAsMCArMSw2IEBACitpbXBvcnQg
eyBoLCByZW5kZXIgfSBmcm9tICdwcmVhY3QnOworaW1wb3J0IEFwcCBmcm9tICcuL2FwcCc7Cisv
LyBpbXBvcnQgJ3RvZG9tdmMtY29tbW9uJzsKKy8vIGltcG9ydCAndG9kb212Yy1jb21tb24vYmFz
ZS5jc3MnOworLy8gaW1wb3J0ICd0b2RvbXZjLWFwcC1jc3MvaW5kZXguY3NzJzsKK3JlbmRlcig8
QXBwIC8+LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudG9kb2FwcCcpKTsKZGlmZiAtLWdpdCBh
L1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0
dXJlLWV4YW1wbGVzL3ByZWFjdC93ZWJwYWNrLmNvbmZpZy5iYWJlbC5qcyBiL1BlcmZvcm1hbmNl
VGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVz
L3ByZWFjdC93ZWJwYWNrLmNvbmZpZy5iYWJlbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTcyZTRjNzA5NmE0
NjhjNWM4OTM3MTA2ZWUxMjUyYzQyMmI4NjNiCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFu
Y2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBs
ZXMvcHJlYWN0L3dlYnBhY2suY29uZmlnLmJhYmVsLmpzCkBAIC0wLDAgKzEsMzkgQEAKK2ltcG9y
dCBFeHRyYWN0VGV4dFBsdWdpbiBmcm9tICdleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW4nOwor
aW1wb3J0IFJlcGxhY2VQbHVnaW4gZnJvbSAncmVwbGFjZS1idW5kbGUtd2VicGFjay1wbHVnaW4n
OworCittb2R1bGUuZXhwb3J0cyA9IHsKKyAgICBlbnRyeTogeworICAgICAgICBhcHA6ICcuL3Ny
Yy9pbmRleC5qcycsCisgICAgICAgICd0b2RvbXZjLWNvbW1vbic6ICd0b2RvbXZjLWNvbW1vbicK
KyAgICB9LAorICAgIG91dHB1dDogeworICAgICAgICBwYXRoOiAnLi9idWlsZCcsCisgICAgICAg
IGZpbGVuYW1lOiAnW25hbWVdLmpzJworICAgIH0sCisgICAgbW9kdWxlOiB7CisgICAgICAgIGxv
YWRlcnM6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0OiAvXC5qc3g/JC8s
CisgICAgICAgICAgICAgICAgZXhjbHVkZTogL25vZGVfbW9kdWxlcy8sCisgICAgICAgICAgICAg
ICAgbG9hZGVyOiAnYmFiZWwnCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIHRlc3Q6IC9cLmNzcyQvLAorICAgICAgICAgICAgICAgIGxvYWRlcjogRXh0cmFj
dFRleHRQbHVnaW4uZXh0cmFjdCgnc3R5bGUnLCAnY3NzP3NvdXJjZU1hcCcpCisgICAgICAgICAg
ICB9CisgICAgICAgIF0KKyAgICB9LAorICAgIHBsdWdpbnM6IFsKKyAgICAgICAgbmV3IEV4dHJh
Y3RUZXh0UGx1Z2luKCdzdHlsZS5jc3MnLCB7IGFsbENodW5rczogdHJ1ZSB9KSwKKyAgICAgICAg
bmV3IFJlcGxhY2VQbHVnaW4oW3sKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgYWN0dWFsbHkgdGhl
IHByb3BlcnR5IG5hbWUgaHR0cHM6Ly9naXRodWIuY29tL2tpbWhvdS9yZXBsYWNlLWJ1bmRsZS13
ZWJwYWNrLXBsdWdpbi9pc3N1ZXMvMQorICAgICAgICAgICAgcGFydHRlbjogL3Rocm93XHMrKG5l
d1xzKyk/W2EtekEtWl0rRXJyb3JccypcKC9nLAorICAgICAgICAgICAgcmVwbGFjZW1lbnQ6ICgp
ID0+ICdyZXR1cm47KCcKKyAgICAgICAgfV0pCisgICAgXSwKKyAgICBkZXZ0b29sOiAnc291cmNl
LW1hcCcsCisgICAgZGV2U2VydmVyOiB7CisgICAgICAgIHBvcnQ6IHByb2Nlc3MuZW52LlBPUlQg
fHwgODA4MCwKKyAgICAgICAgY29udGVudEJhc2U6ICcuL3NyYycKKyAgICB9Cit9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309838</attachid>
            <date>2017-05-11 18:01:43 -0700</date>
            <delta_ts>2017-05-11 19:45:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171323-20170511180142.patch</filename>
            <type>text/plain</type>
            <size>60986</size>
            <attacher name="Addy Osmani">addyo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgzCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjNDZiZjNlOGFh
MmIyMTYyMjE3ZWMxNDJiMGMzOWQwYTk5ZGFlZmMuLjBjOWY5ZGM0ZDc5MGE1NDJhYjc2ODZiNWYw
NGQ4NjA0ODg0MjYzN2QgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTctMDUt
MTEgIEFkZHkgT3NtYW5pICA8YWRkeW9zbWFuaUBnbWFpbC5jb20+CisKKyAgICAgICAgU3BlZWRv
bWV0ZXI6IEFkZCBhIFByZWFjdC5qcyBUb2RvTVZDIGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEzMjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIFByZWFjdC5qcyBUb2Rv
TVZDIGltcGxlbWVudGF0aW9uIHRvIFNwZWVkb21ldGVyCisKKyAgICAgICAgKiBTcGVlZG9tZXRl
ci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0Ly5iYWJlbHJj
OiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRl
Y3R1cmUtZXhhbXBsZXMvcHJlYWN0L1JFQURNRS5tZDogQWRkZWQuCisgICAgICAgICogU3BlZWRv
bWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9kaXN0
L2FwcC5qczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMv
YXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9kaXN0L2luZGV4Lmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIFNwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxl
cy9wcmVhY3QvZGlzdC90b2RvbXZjLWNvbW1vbi9iYXNlLmNzczogQWRkZWQuCisgICAgICAgICog
U3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFj
dC9kaXN0L3RvZG9tdmMtY29tbW9uL2Jhc2UuanM6IEFkZGVkLgorICAgICAgICAqIFNwZWVkb21l
dGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvZGlzdC90
b2RvbXZjLmNzczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9t
dmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9wYWNrYWdlLmpzb246IEFkZGVkLgorICAg
ICAgICAqIFNwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxl
cy9wcmVhY3Qvcm9sbHVwLmNvbmZpZy5qczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIv
cmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2Zv
b3Rlci5qczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMv
YXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2luZGV4LmpzOiBBZGRlZC4KKyAg
ICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBs
ZXMvcHJlYWN0L3NyYy9hcHAvaXRlbS5qczogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIv
cmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL21v
ZGVsLmpzOiBBZGRlZC4KKyAgICAgICAgKiBTcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvdXRpbC5qczogQWRkZWQuCisgICAg
ICAgICogU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVz
L3ByZWFjdC9zcmMvaW5kZXguaHRtbDogQWRkZWQuCisgICAgICAgICogU3BlZWRvbWV0ZXIvcmVz
b3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguanM6
IEFkZGVkLgorICAgICAgICAqIFNwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVj
dHVyZS1leGFtcGxlcy9wcmVhY3Qvd2VicGFjay5jb25maWcuYmFiZWwuanM6IEFkZGVkLgorCiAy
MDE3LTA0LTIxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgU2lt
cGxlIGxpbmUgbGF5b3V0OiBBZGQgcGVyZm9ybWFuY2UgdGVzdCB0byBtZWFzdXJlIG1pZC13b3Jk
IGxpbmUgYnJlYWtpbmcgd2l0aCBsb25nIHRleHQuCmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9w
cmVhY3QvLmJhYmVscmMgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90
b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvLmJhYmVscmMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWI3MmVkMTk4NmRlYjc3NzBiMjQ0MmRmM2VhODYxMDk1NmFlYWYzMQotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0
ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC8uYmFiZWxyYwpAQCAtMCwwICsxLDkgQEAKK3sKKyAgInBy
ZXNldHMiOiBbCisgICAgImVzMjAxNS1sb29zZSIsCisgICAgInN0YWdlLTAiCisgIF0sCisgICJw
bHVnaW5zIjogWworICAgIFsidHJhbnNmb3JtLXJlYWN0LWpzeCIsIHsgInByYWdtYSI6ImgiIH1d
CisgIF0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3Vy
Y2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9SRUFETUUubWQgYi9QZXJm
b3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1l
eGFtcGxlcy9wcmVhY3QvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwNTQ2ZjExYTk5YzgxZDUxMjgx
MGJkMzcxNjhhYzliOTg1YmExMmIKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVh
Y3QvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTkgQEAKKyMgUHJlYWN0IFRvZG9NVkMKKworWyoqRGVt
byoqXShodHRwczovL3ByZWFjdC10b2RvbXZjLnN1cmdlLnNoKQorCitUb2RvTVZDIGRvbmUgaW4g
W1ByZWFjdF0uIFRoZSBhcHAgaXMgNmtiIG9mIG1pbmlmaWVkICsgZ3ppcHBlZCBKYXZhU2NyaXB0
LgorCitUaGlzIGlzIGFuIEVTNiArIFByZWFjdCBwb3J0IG9mIHRoZSBbRVM1ICsgUmVhY3QgVG9k
b01WQyBleGFtcGxlXShodHRwczovL2dpdGh1Yi5jb20vdGFzdGVqcy90b2RvbXZjL3RyZWUvZ2gt
cGFnZXMvZXhhbXBsZXMvcmVhY3QpLgorCitbcHJlYWN0XTogaHR0cHM6Ly9naXRodWIuY29tL2Rl
dmVsb3BpdC9wcmVhY3QKKworIyMgQnVpbGRpbmcKKworUnVuIGBucG0gaW5zdGFsbGAgZm9sbG93
ZWQgYnkgYG5wbSBydW4gYnVpbGRgIHRvIGJ1aWxkIHRoZSBwcm9qZWN0LgorCisjIyBTcGVlZG9t
ZXRlciBpbnN0cnVjdGlvbnMKKworVGhlIGNvbXBpbGVkIHZlcnNpb24gb2YgdGhlIGFwcGxpY2F0
aW9uIGNhbiBiZSBmb3VuZCBpbiB0aGUgYGJ1aWxkYCBkaXJlY3RvcnkuCitUaGlzIGlzIHdoYXQg
dGhlIGJlbmNobWFyayBydW5uZXIgdXNlcyB3aGVuIHJ1bm5pbmcgdGhlIFByZWFjdCBUb2RvTVZD
IGFzIHBhcnQKK29mIGEgYmVuY2htYXJrIHJ1bi4KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3By
ZWFjdC9kaXN0L2FwcC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2Vz
L3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9kaXN0L2FwcC5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44YmFlZDM2MTFiZGY5NTRhZGE4NGMwNTQ3YWQzYmU5NGE1MTczZjJhCi0tLSAvZGV2L251
bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L2Rpc3QvYXBwLmpzCkBAIC0wLDAgKzEsMiBAQAor
IWZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUoZSx0LG4pe3RoaXMubm9kZU5hbWU9
ZSx0aGlzLmF0dHJpYnV0ZXM9dCx0aGlzLmNoaWxkcmVuPW4sdGhpcy5rZXk9dCYmdC5rZXl9ZnVu
Y3Rpb24gdCh0LG4pe3ZhciBvPVtdLHI9dm9pZCAwLGk9dm9pZCAwLGw9dm9pZCAwLGE9dm9pZCAw
O2ZvcihhPWFyZ3VtZW50cy5sZW5ndGg7YS0tID4yOylZLnB1c2goYXJndW1lbnRzW2FdKTtmb3Io
biYmbi5jaGlsZHJlbiYmKFkubGVuZ3RofHxZLnB1c2gobi5jaGlsZHJlbiksZGVsZXRlIG4uY2hp
bGRyZW4pO1kubGVuZ3RoOylpZigoaT1ZLnBvcCgpKWluc3RhbmNlb2YgQXJyYXkpZm9yKGE9aS5s
ZW5ndGg7YS0tOylZLnB1c2goaVthXSk7ZWxzZSBudWxsIT1pJiZpIT09ITEmJigibnVtYmVyIiE9
dHlwZW9mIGkmJmkhPT0hMHx8KGkrPSIiKSxsPSJzdHJpbmciPT10eXBlb2YgaSxsJiZyP29bby5s
ZW5ndGgtMV0rPWk6KG8ucHVzaChpKSxyPWwpKTt2YXIgcz1uZXcgZSh0LG58fHZvaWQgMCxvKTty
ZXR1cm4gWC52bm9kZSYmWC52bm9kZShzKSxzfWZ1bmN0aW9uIG4oZSx0KXtpZih0KWZvcih2YXIg
biBpbiB0KWVbbl09dFtuXTtyZXR1cm4gZX1mdW5jdGlvbiBvKGUpe3JldHVybiBuKHt9LGUpfWZ1
bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49dC5zcGxpdCgiLiIpLG89MDtvPG4ubGVuZ3RoJiZlO28r
KyllPWVbbltvXV07cmV0dXJuIGV9ZnVuY3Rpb24gaShlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBl
b2YgZX1mdW5jdGlvbiBsKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZX1mdW5jdGlvbiBhKGUp
e3ZhciB0PSIiO2Zvcih2YXIgbiBpbiBlKWVbbl0mJih0JiYodCs9IiAiKSx0Kz1uKTtyZXR1cm4g
dH1mdW5jdGlvbiBzKGUsdCxuKXt2YXIgbz10LnNwbGl0KCIuIik7cmV0dXJuIGZ1bmN0aW9uKHQp
e2Zvcih2YXIgaT10JiZ0LnRhcmdldHx8dGhpcyxhPXt9LHM9YSxjPWwobik/cih0LG4pOmkubm9k
ZU5hbWU/aS50eXBlLm1hdGNoKC9eY2hlfHJhZC8pP2kuY2hlY2tlZDppLnZhbHVlOnQsdT0wO3U8
by5sZW5ndGgtMTt1Kyspcz1zW29bdV1dfHwoc1tvW3VdXT0hdSYmZS5zdGF0ZVtvW3VdXXx8e30p
O3Nbb1t1XV09YyxlLnNldFN0YXRlKGEpfX1mdW5jdGlvbiBjKGUpeyFlLl9kaXJ0eSYmKGUuX2Rp
cnR5PSEwKSYmMT09dWUucHVzaChlKSYmKFguZGVib3VuY2VSZW5kZXJpbmd8fHRlKSh1KX1mdW5j
dGlvbiB1KCl7dmFyIGU9dm9pZCAwLHQ9dWU7Zm9yKHVlPVtdO2U9dC5wb3AoKTspZS5fZGlydHkm
JmooZSl9ZnVuY3Rpb24gZihlKXt2YXIgdD1lJiZlLm5vZGVOYW1lO3JldHVybiB0JiZpKHQpJiYh
KHQucHJvdG90eXBlJiZ0LnByb3RvdHlwZS5yZW5kZXIpfWZ1bmN0aW9uIGQoZSx0KXtyZXR1cm4g
ZS5ub2RlTmFtZShtKGUpLHR8fGxlKX1mdW5jdGlvbiBwKGUsdCl7cmV0dXJuIGwodCk/ZSBpbnN0
YW5jZW9mIFRleHQ6bCh0Lm5vZGVOYW1lKT8hZS5fY29tcG9uZW50Q29uc3RydWN0b3ImJmgoZSx0
Lm5vZGVOYW1lKTppKHQubm9kZU5hbWUpPyFlLl9jb21wb25lbnRDb25zdHJ1Y3Rvcnx8ZS5fY29t
cG9uZW50Q29uc3RydWN0b3I9PT10Lm5vZGVOYW1lfHxmKHQpOnZvaWQgMH1mdW5jdGlvbiBoKGUs
dCl7cmV0dXJuIGUubm9ybWFsaXplZE5vZGVOYW1lPT09dHx8JChlLm5vZGVOYW1lKT09PSQodCl9
ZnVuY3Rpb24gbShlKXt2YXIgdD1vKGUuYXR0cmlidXRlcyk7dC5jaGlsZHJlbj1lLmNoaWxkcmVu
O3ZhciBuPWUubm9kZU5hbWUuZGVmYXVsdFByb3BzO2lmKG4pZm9yKHZhciByIGluIG4pdm9pZCAw
PT09dFtyXSYmKHRbcl09bltyXSk7cmV0dXJuIHR9ZnVuY3Rpb24gdihlKXt2YXIgdD1lLnBhcmVu
dE5vZGU7dCYmdC5yZW1vdmVDaGlsZChlKX1mdW5jdGlvbiB5KGUsdCxuLG8scil7aWYoImNsYXNz
TmFtZSI9PT10JiYodD0iY2xhc3MiKSwiY2xhc3MiPT09dCYmbyYmIm9iamVjdCI9PT0odm9pZCAw
PT09bz8idW5kZWZpbmVkIjpmZShvKSkmJihvPWEobykpLCJrZXkiPT09dCk7ZWxzZSBpZigiY2xh
c3MiIT09dHx8cilpZigic3R5bGUiPT09dCl7aWYoKCFvfHxsKG8pfHxsKG4pKSYmKGUuc3R5bGUu
Y3NzVGV4dD1vfHwiIiksbyYmIm9iamVjdCI9PT0odm9pZCAwPT09bz8idW5kZWZpbmVkIjpmZShv
KSkpe2lmKCFsKG4pKWZvcih2YXIgcyBpbiBuKXMgaW4gb3x8KGUuc3R5bGVbc109IiIpO2Zvcih2
YXIgYyBpbiBvKWUuc3R5bGVbY109Im51bWJlciIhPXR5cGVvZiBvW2NdfHxzZVtjXT9vW2NdOm9b
Y10rInB4In19ZWxzZSBpZigiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiPT09dCllLmlubmVySFRN
TD1vJiZvLl9faHRtbHx8IiI7ZWxzZSBpZigibyI9PXRbMF0mJiJuIj09dFsxXSl7dmFyIHU9ZS5f
bGlzdGVuZXJzfHwoZS5fbGlzdGVuZXJzPXt9KTt0PSQodC5zdWJzdHJpbmcoMikpLG8/dVt0XXx8
ZS5hZGRFdmVudExpc3RlbmVyKHQsZywhIWNlW3RdKTp1W3RdJiZlLnJlbW92ZUV2ZW50TGlzdGVu
ZXIodCxnLCEhY2VbdF0pLHVbdF09b31lbHNlIGlmKCJsaXN0IiE9PXQmJiJ0eXBlIiE9PXQmJiFy
JiZ0IGluIGUpYihlLHQsbnVsbD09bz8iIjpvKSxudWxsIT1vJiZvIT09ITF8fGUucmVtb3ZlQXR0
cmlidXRlKHQpO2Vsc2V7dmFyIGY9ciYmdC5tYXRjaCgvXnhsaW5rXDo/KC4rKS8pO251bGw9PW98
fG89PT0hMT9mP2UucmVtb3ZlQXR0cmlidXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxp
bmsiLCQoZlsxXSkpOmUucmVtb3ZlQXR0cmlidXRlKHQpOiJvYmplY3QiPT09KHZvaWQgMD09PW8/
InVuZGVmaW5lZCI6ZmUobykpfHxpKG8pfHwoZj9lLnNldEF0dHJpYnV0ZU5TKCJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hsaW5rIiwkKGZbMV0pLG8pOmUuc2V0QXR0cmlidXRlKHQsbykpfWVsc2Ug
ZS5jbGFzc05hbWU9b3x8IiJ9ZnVuY3Rpb24gYihlLHQsbil7dHJ5e2VbdF09bn1jYXRjaChlKXt9
fWZ1bmN0aW9uIGcoZSl7cmV0dXJuIHRoaXMuX2xpc3RlbmVyc1tlLnR5cGVdKFguZXZlbnQmJlgu
ZXZlbnQoZSl8fGUpfWZ1bmN0aW9uIF8oZSl7aWYodihlKSxlIGluc3RhbmNlb2YgRWxlbWVudCl7
ZS5fY29tcG9uZW50PWUuX2NvbXBvbmVudENvbnN0cnVjdG9yPW51bGw7dmFyIHQ9ZS5ub3JtYWxp
emVkTm9kZU5hbWV8fCQoZS5ub2RlTmFtZSk7KGRlW3RdfHwoZGVbdF09W10pKS5wdXNoKGUpfX1m
dW5jdGlvbiB3KGUsdCl7dmFyIG49JChlKSxvPWRlW25dJiZkZVtuXS5wb3AoKXx8KHQ/ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsZSk6ZG9jdW1l
bnQuY3JlYXRlRWxlbWVudChlKSk7cmV0dXJuIG8ubm9ybWFsaXplZE5vZGVOYW1lPW4sb31mdW5j
dGlvbiBDKCl7Zm9yKHZhciBlPXZvaWQgMDtlPXBlLnBvcCgpOylYLmFmdGVyTW91bnQmJlguYWZ0
ZXJNb3VudChlKSxlLmNvbXBvbmVudERpZE1vdW50JiZlLmNvbXBvbmVudERpZE1vdW50KCl9ZnVu
Y3Rpb24geChlLHQsbixvLHIsaSl7aGUrK3x8KG1lPXIgaW5zdGFuY2VvZiBTVkdFbGVtZW50LHZl
PWUmJiEoYWUgaW4gZSkpO3ZhciBsPVMoZSx0LG4sbyk7cmV0dXJuIHImJmwucGFyZW50Tm9kZSE9
PXImJnIuYXBwZW5kQ2hpbGQobCksLS1oZXx8KHZlPSExLGl8fEMoKSksbH1mdW5jdGlvbiBTKGUs
dCxuLG8pe2Zvcih2YXIgcj10JiZ0LmF0dHJpYnV0ZXM7Zih0KTspdD1kKHQsbik7aWYobnVsbD09
dCYmKHQ9IiIpLGwodCkpcmV0dXJuIGUmJmUgaW5zdGFuY2VvZiBUZXh0P2Uubm9kZVZhbHVlIT10
JiYoZS5ub2RlVmFsdWU9dCk6KGUmJk4oZSksZT1kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0KSks
ZVthZV09ITAsZTtpZihpKHQubm9kZU5hbWUpKXJldHVybiBQKGUsdCxuLG8pO3ZhciBhPWUscz10
Lm5vZGVOYW1lKyIiLGM9bWUsdT10LmNoaWxkcmVuO2lmKG1lPSJzdmciPT09c3x8ImZvcmVpZ25P
YmplY3QiIT09cyYmbWUsZSl7aWYoIWgoZSxzKSl7Zm9yKGE9dyhzLG1lKTtlLmZpcnN0Q2hpbGQ7
KWEuYXBwZW5kQ2hpbGQoZS5maXJzdENoaWxkKTtlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5y
ZXBsYWNlQ2hpbGQoYSxlKSxOKGUpfX1lbHNlIGE9dyhzLG1lKTt2YXIgcD1hLmZpcnN0Q2hpbGQs
bT1hW2FlXTtpZighbSl7YVthZV09bT17fTtmb3IodmFyIHY9YS5hdHRyaWJ1dGVzLHk9di5sZW5n
dGg7eS0tOyltW3ZbeV0ubmFtZV09dlt5XS52YWx1ZX1yZXR1cm4gVChhLHQuYXR0cmlidXRlcyxt
KSwhdmUmJnUmJjE9PT11Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB1WzBdJiZwJiZwIGluc3Rh
bmNlb2YgVGV4dCYmIXAubmV4dFNpYmxpbmc/cC5ub2RlVmFsdWUhPXVbMF0mJihwLm5vZGVWYWx1
ZT11WzBdKToodSYmdS5sZW5ndGh8fHApJiZrKGEsdSxuLG8pLHImJiJmdW5jdGlvbiI9PXR5cGVv
ZiByLnJlZiYmKG0ucmVmPXIucmVmKShhKSxtZT1jLGF9ZnVuY3Rpb24gayhlLHQsbixvKXt2YXIg
cj1lLmNoaWxkTm9kZXMsaT1bXSxsPXt9LGE9MCxzPTAsYz1yLmxlbmd0aCx1PTAsZj10JiZ0Lmxl
bmd0aCxkPXZvaWQgMCxoPXZvaWQgMCxtPXZvaWQgMCx5PXZvaWQgMDtpZihjKWZvcih2YXIgYj0w
O2I8YztiKyspe3ZhciBnPXJbYl0sXz1nW2FlXSx3PWY/KGg9Zy5fY29tcG9uZW50KT9oLl9fa2V5
Ol8/Xy5rZXk6bnVsbDpudWxsO251bGwhPXc/KGErKyxsW3ddPWcpOih2ZXx8XykmJihpW3UrK109
Zyl9aWYoZilmb3IodmFyIEM9MDtDPGY7QysrKXttPXRbQ10seT1udWxsO3ZhciB4PW0ua2V5O2lm
KG51bGwhPXgpYSYmeCBpbiBsJiYoeT1sW3hdLGxbeF09dm9pZCAwLGEtLSk7ZWxzZSBpZigheSYm
czx1KWZvcihkPXM7ZDx1O2QrKylpZihoPWlbZF0saCYmcChoLG0pKXt5PWgsaVtkXT12b2lkIDAs
ZD09PXUtMSYmdS0tLGQ9PT1zJiZzKys7YnJlYWt9eT1TKHksbSxuLG8pLHkmJnkhPT1lJiYoQz49
Yz9lLmFwcGVuZENoaWxkKHkpOnkhPT1yW0NdJiYoeT09PXJbQysxXSYmdihyW0NdKSxlLmluc2Vy
dEJlZm9yZSh5LHJbQ118fG51bGwpKSl9aWYoYSlmb3IodmFyIGsgaW4gbClsW2tdJiZOKGxba10p
O2Zvcig7czw9dTspeT1pW3UtLV0seSYmTih5KX1mdW5jdGlvbiBOKGUsdCl7dmFyIG49ZS5fY29t
cG9uZW50O2lmKG4pVShuLCF0KTtlbHNle2VbYWVdJiZlW2FlXS5yZWYmJmVbYWVdLnJlZihudWxs
KSx0fHxfKGUpO2Zvcih2YXIgbz12b2lkIDA7bz1lLmxhc3RDaGlsZDspTihvLHQpfX1mdW5jdGlv
biBUKGUsdCxuKXtmb3IodmFyIG8gaW4gbil0JiZvIGluIHR8fG51bGw9PW5bb118fHkoZSxvLG5b
b10sbltvXT12b2lkIDAsbWUpO2lmKHQpZm9yKHZhciByIGluIHQpImNoaWxkcmVuIj09PXJ8fCJp
bm5lckhUTUwiPT09cnx8ciBpbiBuJiZ0W3JdPT09KCJ2YWx1ZSI9PT1yfHwiY2hlY2tlZCI9PT1y
P2Vbcl06bltyXSl8fHkoZSxyLG5bcl0sbltyXT10W3JdLG1lKX1mdW5jdGlvbiBFKGUpe3ZhciB0
PWUuY29uc3RydWN0b3IubmFtZSxuPXllW3RdO24/bi5wdXNoKGUpOnllW3RdPVtlXX1mdW5jdGlv
biBPKGUsdCxuKXt2YXIgbz1uZXcgZSh0LG4pLHI9eWVbZS5uYW1lXTtpZihBLmNhbGwobyx0LG4p
LHIpZm9yKHZhciBpPXIubGVuZ3RoO2ktLTspaWYocltpXS5jb25zdHJ1Y3Rvcj09PWUpe28ubmV4
dEJhc2U9cltpXS5uZXh0QmFzZSxyLnNwbGljZShpLDEpO2JyZWFrfXJldHVybiBvfWZ1bmN0aW9u
IEQoZSx0LG4sbyxyKXtlLl9kaXNhYmxlfHwoZS5fZGlzYWJsZT0hMCwoZS5fX3JlZj10LnJlZikm
JmRlbGV0ZSB0LnJlZiwoZS5fX2tleT10LmtleSkmJmRlbGV0ZSB0LmtleSwhZS5iYXNlfHxyP2Uu
Y29tcG9uZW50V2lsbE1vdW50JiZlLmNvbXBvbmVudFdpbGxNb3VudCgpOmUuY29tcG9uZW50V2ls
bFJlY2VpdmVQcm9wcyYmZS5jb21wb25lbnRXaWxsUmVjZWl2ZVByb3BzKHQsbyksbyYmbyE9PWUu
Y29udGV4dCYmKGUucHJldkNvbnRleHR8fChlLnByZXZDb250ZXh0PWUuY29udGV4dCksZS5jb250
ZXh0PW8pLGUucHJldlByb3BzfHwoZS5wcmV2UHJvcHM9ZS5wcm9wcyksZS5wcm9wcz10LGUuX2Rp
c2FibGU9ITEsbiE9PW5lJiYobiE9PW9lJiZYLnN5bmNDb21wb25lbnRVcGRhdGVzPT09ITEmJmUu
YmFzZT9jKGUpOmooZSxvZSxyKSksZS5fX3JlZiYmZS5fX3JlZihlKSl9ZnVuY3Rpb24gaihlLHQs
cixsKXtpZighZS5fZGlzYWJsZSl7dmFyIGE9dm9pZCAwLHM9dm9pZCAwLGM9ZS5wcm9wcyx1PWUu
c3RhdGUscD1lLmNvbnRleHQsaD1lLnByZXZQcm9wc3x8Yyx2PWUucHJldlN0YXRlfHx1LHk9ZS5w
cmV2Q29udGV4dHx8cCxiPWUuYmFzZSxnPWUubmV4dEJhc2UsXz1ifHxnLHc9ZS5fY29tcG9uZW50
LFM9dm9pZCAwLGs9dm9pZCAwO2lmKGImJihlLnByb3BzPWgsZS5zdGF0ZT12LGUuY29udGV4dD15
LHQhPT1yZSYmZS5zaG91bGRDb21wb25lbnRVcGRhdGUmJmUuc2hvdWxkQ29tcG9uZW50VXBkYXRl
KGMsdSxwKT09PSExP2E9ITA6ZS5jb21wb25lbnRXaWxsVXBkYXRlJiZlLmNvbXBvbmVudFdpbGxV
cGRhdGUoYyx1LHApLGUucHJvcHM9YyxlLnN0YXRlPXUsZS5jb250ZXh0PXApLGUucHJldlByb3Bz
PWUucHJldlN0YXRlPWUucHJldkNvbnRleHQ9ZS5uZXh0QmFzZT1udWxsLGUuX2RpcnR5PSExLCFh
KXtmb3IoZS5yZW5kZXImJihzPWUucmVuZGVyKGMsdSxwKSksZS5nZXRDaGlsZENvbnRleHQmJihw
PW4obyhwKSxlLmdldENoaWxkQ29udGV4dCgpKSk7ZihzKTspcz1kKHMscCk7dmFyIFQ9cyYmcy5u
b2RlTmFtZSxFPXZvaWQgMCxQPXZvaWQgMDtpZihpKFQpKXt2YXIgQT1tKHMpO1M9dyxTJiZTLmNv
bnN0cnVjdG9yPT09VCYmQS5rZXk9PVMuX19rZXk/RChTLEEsb2UscCk6KEU9UyxTPU8oVCxBLHAp
LFMubmV4dEJhc2U9Uy5uZXh0QmFzZXx8ZyxTLl9wYXJlbnRDb21wb25lbnQ9ZSxlLl9jb21wb25l
bnQ9UyxEKFMsQSxuZSxwKSxqKFMsb2UsciwhMCkpLFA9Uy5iYXNlfWVsc2Ugaz1fLEU9dyxFJiYo
az1lLl9jb21wb25lbnQ9bnVsbCksKF98fHQ9PT1vZSkmJihrJiYoay5fY29tcG9uZW50PW51bGwp
LFA9eChrLHMscCxyfHwhYixfJiZfLnBhcmVudE5vZGUsITApKTtpZihfJiZQIT09XyYmUyE9PXcp
e3ZhciBCPV8ucGFyZW50Tm9kZTtCJiZQIT09QiYmKEIucmVwbGFjZUNoaWxkKFAsXyksRXx8KF8u
X2NvbXBvbmVudD1udWxsLE4oXykpKX1pZihFJiZVKEUsUCE9PV8pLGUuYmFzZT1QLFAmJiFsKXtm
b3IodmFyIE09ZSxXPWU7Vz1XLl9wYXJlbnRDb21wb25lbnQ7KShNPVcpLmJhc2U9UDtQLl9jb21w
b25lbnQ9TSxQLl9jb21wb25lbnRDb25zdHJ1Y3Rvcj1NLmNvbnN0cnVjdG9yfX0hYnx8cj9wZS51
bnNoaWZ0KGUpOmF8fChlLmNvbXBvbmVudERpZFVwZGF0ZSYmZS5jb21wb25lbnREaWRVcGRhdGUo
aCx2LHkpLFguYWZ0ZXJVcGRhdGUmJlguYWZ0ZXJVcGRhdGUoZSkpO3ZhciBMPWUuX3JlbmRlckNh
bGxiYWNrcyxSPXZvaWQgMDtpZihMKWZvcig7Uj1MLnBvcCgpOylSLmNhbGwoZSk7aGV8fGx8fEMo
KX19ZnVuY3Rpb24gUChlLHQsbixvKXtmb3IodmFyIHI9ZSYmZS5fY29tcG9uZW50LGk9ZSxsPXIm
JmUuX2NvbXBvbmVudENvbnN0cnVjdG9yPT09dC5ub2RlTmFtZSxhPWwscz1tKHQpO3ImJiFhJiYo
cj1yLl9wYXJlbnRDb21wb25lbnQpOylhPXIuY29uc3RydWN0b3I9PT10Lm5vZGVOYW1lO3JldHVy
biByJiZhJiYoIW98fHIuX2NvbXBvbmVudCk/KEQocixzLGllLG4sbyksZT1yLmJhc2UpOihyJiYh
bCYmKFUociwhMCksZT1pPW51bGwpLHI9Tyh0Lm5vZGVOYW1lLHMsbiksZSYmIXIubmV4dEJhc2Um
JihyLm5leHRCYXNlPWUsaT1udWxsKSxEKHIscyxvZSxuLG8pLGU9ci5iYXNlLGkmJmUhPT1pJiYo
aS5fY29tcG9uZW50PW51bGwsTihpKSkpLGV9ZnVuY3Rpb24gVShlLHQpe1guYmVmb3JlVW5tb3Vu
dCYmWC5iZWZvcmVVbm1vdW50KGUpO3ZhciBuPWUuYmFzZTtlLl9kaXNhYmxlPSEwLGUuY29tcG9u
ZW50V2lsbFVubW91bnQmJmUuY29tcG9uZW50V2lsbFVubW91bnQoKSxlLmJhc2U9bnVsbDt2YXIg
bz1lLl9jb21wb25lbnQ7aWYobylVKG8sdCk7ZWxzZSBpZihuKXtuW2FlXSYmblthZV0ucmVmJiZu
W2FlXS5yZWYobnVsbCksZS5uZXh0QmFzZT1uLHQmJih2KG4pLEUoZSkpO2Zvcih2YXIgcj12b2lk
IDA7cj1uLmxhc3RDaGlsZDspTihyLCF0KX1lLl9fcmVmJiZlLl9fcmVmKG51bGwpLGUuY29tcG9u
ZW50RGlkVW5tb3VudCYmZS5jb21wb25lbnREaWRVbm1vdW50KCl9ZnVuY3Rpb24gQShlLHQpe3Ro
aXMuX2RpcnR5PSEwLHRoaXMuY29udGV4dD10LHRoaXMucHJvcHM9ZSx0aGlzLnN0YXRlfHwodGhp
cy5zdGF0ZT17fSl9ZnVuY3Rpb24gQihlLHQsbil7cmV0dXJuIHgobixlLHt9LCExLHQpfWZ1bmN0
aW9uIE0oKXtmb3IodmFyIGU9IiIsdD0wO3Q8MzI7dCsrKXt2YXIgbj0xNipNYXRoLnJhbmRvbSgp
fDA7OCE9PXQmJjEyIT09dCYmMTYhPT10JiYyMCE9PXR8fChlKz0iLSIpLGUrPSgxMj09PXQ/NDox
Nj09PXQ/MyZufDg6bikudG9TdHJpbmcoMTYpfXJldHVybiBlfWZ1bmN0aW9uIFcoZSx0KXtyZXR1
cm4gMT09PWU/dDp0KyJzIn1mdW5jdGlvbiBMKCl7cmV0dXJuW119ZnVuY3Rpb24gUihlLHQpe2lm
KCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xh
c3MgYXMgYSBmdW5jdGlvbiIpfWZ1bmN0aW9uIHooZSx0KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0
aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1m
dW5jdGlvbiBLKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJlZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24n
dCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNuJ3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4h
dHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24iIT10eXBlb2YgdD9lOnR9ZnVuY3Rpb24g
VihlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZudWxsIT09dCl0aHJvdyBuZXcgVHlwZUVy
cm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiwg
bm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUs
e2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJh
YmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBlT2Y/T2JqZWN0LnNldFByb3RvdHlwZU9m
KGUsdCk6ZS5fX3Byb3RvX189dCl9ZnVuY3Rpb24gSChlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQp
KXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIp
fWZ1bmN0aW9uIEkoZSx0KXtpZighZSl0aHJvdyBuZXcgUmVmZXJlbmNlRXJyb3IoInRoaXMgaGFz
bid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZCIpO3JldHVy
biF0fHwib2JqZWN0IiE9dHlwZW9mIHQmJiJmdW5jdGlvbiIhPXR5cGVvZiB0P2U6dH1mdW5jdGlv
biBGKGUsdCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQmJm51bGwhPT10KXRocm93IG5ldyBUeXBl
RXJyb3IoIlN1cGVyIGV4cHJlc3Npb24gbXVzdCBlaXRoZXIgYmUgbnVsbCBvciBhIGZ1bmN0aW9u
LCBub3QgIit0eXBlb2YgdCk7ZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlw
ZSx7Y29uc3RydWN0b3I6e3ZhbHVlOmUsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1
cmFibGU6ITB9fSksdCYmKE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBl
T2YoZSx0KTplLl9fcHJvdG9fXz10KX1mdW5jdGlvbiBHKGUpe2lmKG51bGw9PWUpdGhyb3cgbmV3
IFR5cGVFcnJvcigiQ2Fubm90IGRlc3RydWN0dXJlIHVuZGVmaW5lZCIpfWZ1bmN0aW9uIHEoZSx0
KXtpZighKGUgaW5zdGFuY2VvZiB0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDYW5ub3QgY2FsbCBh
IGNsYXNzIGFzIGEgZnVuY3Rpb24iKX1mdW5jdGlvbiBKKGUsdCl7aWYoIWUpdGhyb3cgbmV3IFJl
ZmVyZW5jZUVycm9yKCJ0aGlzIGhhc24ndCBiZWVuIGluaXRpYWxpc2VkIC0gc3VwZXIoKSBoYXNu
J3QgYmVlbiBjYWxsZWQiKTtyZXR1cm4hdHx8Im9iamVjdCIhPXR5cGVvZiB0JiYiZnVuY3Rpb24i
IT10eXBlb2YgdD9lOnR9ZnVuY3Rpb24gUShlLHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0JiZu
dWxsIT09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVy
IGJlIG51bGwgb3IgYSBmdW5jdGlvbiwgbm90ICIrdHlwZW9mIHQpO2UucHJvdG90eXBlPU9iamVj
dC5jcmVhdGUodCYmdC5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTplLGVudW1lcmFibGU6
ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLHQmJihPYmplY3Quc2V0UHJvdG90eXBl
T2Y/T2JqZWN0LnNldFByb3RvdHlwZU9mKGUsdCk6ZS5fX3Byb3RvX189dCl9dmFyIFg9e30sWT1b
XSxaPXt9LCQ9ZnVuY3Rpb24oZSl7cmV0dXJuIFpbZV18fChaW2VdPWUudG9Mb3dlckNhc2UoKSl9
LGVlPSJ1bmRlZmluZWQiIT10eXBlb2YgUHJvbWlzZSYmUHJvbWlzZS5yZXNvbHZlKCksdGU9ZWU/
ZnVuY3Rpb24oZSl7ZWUudGhlbihlKX06c2V0VGltZW91dCxuZT0wLG9lPTEscmU9MixpZT0zLGxl
PXt9LGFlPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sP1N5bWJvbC5mb3IoInByZWFjdGF0dHIi
KToiX19wcmVhY3RhdHRyXyIsc2U9e2JveEZsZXg6MSxib3hGbGV4R3JvdXA6MSxjb2x1bW5Db3Vu
dDoxLGZpbGxPcGFjaXR5OjEsZmxleDoxLGZsZXhHcm93OjEsZmxleFBvc2l0aXZlOjEsZmxleFNo
cmluazoxLGZsZXhOZWdhdGl2ZToxLGZvbnRXZWlnaHQ6MSxsaW5lQ2xhbXA6MSxsaW5lSGVpZ2h0
OjEsb3BhY2l0eToxLG9yZGVyOjEsb3JwaGFuczoxLHN0cm9rZU9wYWNpdHk6MSx3aWRvd3M6MSx6
SW5kZXg6MSx6b29tOjF9LGNlPXtibHVyOjEsZXJyb3I6MSxmb2N1czoxLGxvYWQ6MSxyZXNpemU6
MSxzY3JvbGw6MX0sdWU9W10sZmU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9
PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5j
dGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rv
cj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LGRlPXt9
LHBlPVtdLGhlPTAsbWU9ITEsdmU9ITEseWU9e307bihBLnByb3RvdHlwZSx7bGlua1N0YXRlOmZ1
bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fbGlua2VkU3RhdGVzfHwodGhpcy5fbGlua2VkU3RhdGVz
PXt9KTtyZXR1cm4gbltlK3RdfHwobltlK3RdPXModGhpcyxlLHQpKX0sc2V0U3RhdGU6ZnVuY3Rp
b24oZSx0KXt2YXIgcj10aGlzLnN0YXRlO3RoaXMucHJldlN0YXRlfHwodGhpcy5wcmV2U3RhdGU9
byhyKSksbihyLGkoZSk/ZShyLHRoaXMucHJvcHMpOmUpLHQmJih0aGlzLl9yZW5kZXJDYWxsYmFj
a3M9dGhpcy5fcmVuZGVyQ2FsbGJhY2tzfHxbXSkucHVzaCh0KSxjKHRoaXMpfSxmb3JjZVVwZGF0
ZTpmdW5jdGlvbigpe2oodGhpcyxyZSl9LHJlbmRlcjpmdW5jdGlvbigpe319KTt2YXIgYmU9T2Jq
ZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTE7dDxhcmd1bWVudHMubGVuZ3RoO3Qr
Kyl7dmFyIG49YXJndW1lbnRzW3RdO2Zvcih2YXIgbyBpbiBuKU9iamVjdC5wcm90b3R5cGUuaGFz
T3duUHJvcGVydHkuY2FsbChuLG8pJiYoZVtvXT1uW29dKX1yZXR1cm4gZX0sZ2U9ZnVuY3Rpb24o
KXtmdW5jdGlvbiBlKHQsbil7Uih0aGlzLGUpLHRoaXMua2V5PXQsdGhpcy50b2Rvcz1MKHQpfHxb
XSx0aGlzLm9uQ2hhbmdlcz1bbl19cmV0dXJuIGUucHJvdG90eXBlLmluZm9ybT1mdW5jdGlvbigp
e0wodGhpcy5rZXksdGhpcy50b2RvcyksdGhpcy5vbkNoYW5nZXMuZm9yRWFjaChmdW5jdGlvbihl
KXtyZXR1cm4gZSgpfSl9LGUucHJvdG90eXBlLmFkZFRvZG89ZnVuY3Rpb24oZSl7dGhpcy50b2Rv
cz10aGlzLnRvZG9zLmNvbmNhdCh7aWQ6TSgpLHRpdGxlOmUsY29tcGxldGVkOiExfSksdGhpcy5p
bmZvcm0oKX0sZS5wcm90b3R5cGUudG9nZ2xlQWxsPWZ1bmN0aW9uKGUpe3RoaXMudG9kb3M9dGhp
cy50b2Rvcy5tYXAoZnVuY3Rpb24odCl7cmV0dXJuIGJlKHt9LHQse2NvbXBsZXRlZDplfSl9KSx0
aGlzLmluZm9ybSgpfSxlLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oZSl7dGhpcy50b2Rvcz10
aGlzLnRvZG9zLm1hcChmdW5jdGlvbih0KXtyZXR1cm4gdCE9PWU/dDpiZSh7fSx0LHtjb21wbGV0
ZWQ6IXQuY29tcGxldGVkfSl9KSx0aGlzLmluZm9ybSgpfSxlLnByb3RvdHlwZS5kZXN0cm95PWZ1
bmN0aW9uKGUpe3RoaXMudG9kb3M9dGhpcy50b2Rvcy5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJu
IHQhPT1lfSksdGhpcy5pbmZvcm0oKX0sZS5wcm90b3R5cGUuc2F2ZT1mdW5jdGlvbihlLHQpe3Ro
aXMudG9kb3M9dGhpcy50b2Rvcy5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4hPT1lP246YmUoe30s
bix7dGl0bGU6dH0pfSksdGhpcy5pbmZvcm0oKX0sZS5wcm90b3R5cGUuY2xlYXJDb21wbGV0ZWQ9
ZnVuY3Rpb24oKXt0aGlzLnRvZG9zPXRoaXMudG9kb3MuZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVy
biFlLmNvbXBsZXRlZH0pLHRoaXMuaW5mb3JtKCl9LGV9KCksX2U9ZnVuY3Rpb24oZSl7ZnVuY3Rp
b24gbigpe3JldHVybiB6KHRoaXMsbiksSyh0aGlzLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX1y
ZXR1cm4gVihuLGUpLG4ucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihlKXt2YXIgbj1lLm5vd1No
b3dpbmcsbz1lLmNvdW50LHI9ZS5jb21wbGV0ZWRDb3VudCxpPWUub25DbGVhckNvbXBsZXRlZDty
ZXR1cm4gdCgiZm9vdGVyIix7Y2xhc3M6ImZvb3RlciJ9LHQoInNwYW4iLHtjbGFzczoidG9kby1j
b3VudCJ9LHQoInN0cm9uZyIsbnVsbCxvKSwiICIsVyhvLCJpdGVtIiksIiBsZWZ0IiksdCgidWwi
LHtjbGFzczoiZmlsdGVycyJ9LHQoImxpIixudWxsLHQoImEiLHtocmVmOiIjLyIsY2xhc3M6ImFs
bCI9PW4mJiJzZWxlY3RlZCJ9LCJBbGwiKSksIiAiLHQoImxpIixudWxsLHQoImEiLHtocmVmOiIj
L2FjdGl2ZSIsY2xhc3M6ImFjdGl2ZSI9PW4mJiJzZWxlY3RlZCJ9LCJBY3RpdmUiKSksIiAiLHQo
ImxpIixudWxsLHQoImEiLHtocmVmOiIjL2NvbXBsZXRlZCIsY2xhc3M6ImNvbXBsZXRlZCI9PW4m
JiJzZWxlY3RlZCJ9LCJDb21wbGV0ZWQiKSkpLHI+MCYmdCgiYnV0dG9uIix7Y2xhc3M6ImNsZWFy
LWNvbXBsZXRlZCIsb25DbGljazppfSwiQ2xlYXIgY29tcGxldGVkIikpfSxufShBKSx3ZT0yNyxD
ZT0xMyx4ZT1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKCl7dmFyIHQsbyxyO0godGhpcyxuKTtmb3Io
dmFyIGk9YXJndW1lbnRzLmxlbmd0aCxsPUFycmF5KGkpLGE9MDthPGk7YSsrKWxbYV09YXJndW1l
bnRzW2FdO3JldHVybiB0PW89SSh0aGlzLGUuY2FsbC5hcHBseShlLFt0aGlzXS5jb25jYXQobCkp
KSxvLmhhbmRsZVN1Ym1pdD1mdW5jdGlvbigpe3ZhciBlPW8ucHJvcHMsdD1lLm9uU2F2ZSxuPWUu
b25EZXN0cm95LHI9ZS50b2RvLGk9by5zdGF0ZS5lZGl0VGV4dC50cmltKCk7aT8odChyLGkpLG8u
c2V0U3RhdGUoe2VkaXRUZXh0Oml9KSk6bihyKX0sby5oYW5kbGVFZGl0PWZ1bmN0aW9uKCl7dmFy
IGU9by5wcm9wcyx0PWUub25FZGl0LG49ZS50b2RvO3Qobiksby5zZXRTdGF0ZSh7ZWRpdFRleHQ6
bi50aXRsZX0pfSxvLnRvZ2dsZT1mdW5jdGlvbihlKXt2YXIgdD1vLnByb3BzOygwLHQub25Ub2dn
bGUpKHQudG9kbyksZS5wcmV2ZW50RGVmYXVsdCgpfSxvLmhhbmRsZUtleURvd249ZnVuY3Rpb24o
ZSl7aWYoZS53aGljaD09PXdlKXt2YXIgdD1vLnByb3BzLnRvZG87by5zZXRTdGF0ZSh7ZWRpdFRl
eHQ6dC50aXRsZX0pLG8ucHJvcHMub25DYW5jZWwodCl9ZWxzZSBlLndoaWNoPT09Q2UmJm8uaGFu
ZGxlU3VibWl0KCl9LG8uaGFuZGxlRGVzdHJveT1mdW5jdGlvbigpe28ucHJvcHMub25EZXN0cm95
KG8ucHJvcHMudG9kbyl9LHI9dCxJKG8scil9cmV0dXJuIEYobixlKSxuLnByb3RvdHlwZS5jb21w
b25lbnREaWRVcGRhdGU9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmJhc2UmJnRoaXMuYmFzZS5xdWVy
eVNlbGVjdG9yKCIuZWRpdCIpO2UmJmUuZm9jdXMoKX0sbi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0
aW9uKGUsbil7dmFyIG89ZS50b2RvLHI9by50aXRsZSxpPW8uY29tcGxldGVkLGw9ZS5lZGl0aW5n
LGE9bi5lZGl0VGV4dDtyZXR1cm4gdCgibGkiLHtjbGFzczp7Y29tcGxldGVkOmksZWRpdGluZzps
fX0sdCgiZGl2Iix7Y2xhc3M6InZpZXcifSx0KCJpbnB1dCIse2NsYXNzOiJ0b2dnbGUiLHR5cGU6
ImNoZWNrYm94IixjaGVja2VkOmksb25DaGFuZ2U6dGhpcy50b2dnbGV9KSx0KCJsYWJlbCIse29u
RGJsQ2xpY2s6dGhpcy5oYW5kbGVFZGl0fSxyKSx0KCJidXR0b24iLHtjbGFzczoiZGVzdHJveSIs
b25DbGljazp0aGlzLmhhbmRsZURlc3Ryb3l9KSksbCYmdCgiaW5wdXQiLHtjbGFzczoiZWRpdCIs
dmFsdWU6YSxvbkJsdXI6dGhpcy5oYW5kbGVTdWJtaXQsb25JbnB1dDp0aGlzLmxpbmtTdGF0ZSgi
ZWRpdFRleHQiKSxvbktleURvd246dGhpcy5oYW5kbGVLZXlEb3dufSkpfSxufShBKSxTZT17YWxs
OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGFjdGl2ZTpmdW5jdGlvbihlKXtyZXR1cm4hZS5jb21wbGV0
ZWR9LGNvbXBsZXRlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5jb21wbGV0ZWR9fTtCKHQoZnVuY3Rp
b24oZSl7ZnVuY3Rpb24gbigpe3EodGhpcyxuKTt2YXIgdD1KKHRoaXMsZS5jYWxsKHRoaXMpKTty
ZXR1cm4gdC5oYW5kbGVOZXdUb2RvS2V5RG93bj1mdW5jdGlvbihlKXtpZigxMz09PWUua2V5Q29k
ZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBuPWUudGFyZ2V0LnZhbHVlLnRyaW0oKTtuJiYodC5t
b2RlbC5hZGRUb2RvKG4pLHQuc2V0U3RhdGUoe25ld1RvZG86IiJ9KSl9fSx0LnRvZ2dsZUFsbD1m
dW5jdGlvbihlKXt0Lm1vZGVsLnRvZ2dsZUFsbChlLnRhcmdldC5jaGVja2VkKX0sdC50b2dnbGU9
ZnVuY3Rpb24oZSl7dC5tb2RlbC50b2dnbGUoZSl9LHQuZGVzdHJveT1mdW5jdGlvbihlKXt0Lm1v
ZGVsLmRlc3Ryb3koZSl9LHQuZWRpdD1mdW5jdGlvbihlKXt0LnNldFN0YXRlKHtlZGl0aW5nOmUu
aWR9KX0sdC5zYXZlPWZ1bmN0aW9uKGUsbil7dC5tb2RlbC5zYXZlKGUsbiksdC5zZXRTdGF0ZSh7
ZWRpdGluZzpudWxsfSl9LHQuY2FuY2VsPWZ1bmN0aW9uKCl7dC5zZXRTdGF0ZSh7ZWRpdGluZzpu
dWxsfSl9LHQuY2xlYXJDb21wbGV0ZWQ9ZnVuY3Rpb24oKXt0Lm1vZGVsLmNsZWFyQ29tcGxldGVk
KCl9LHQubW9kZWw9bmV3IGdlKCJwcmVhY3QtdG9kb3MiLGZ1bmN0aW9uKCl7cmV0dXJuIHQuc2V0
U3RhdGUoe30pfSksYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsdC5oYW5kbGVSb3V0ZS5i
aW5kKHQpKSx0LmhhbmRsZVJvdXRlKCksdH1yZXR1cm4gUShuLGUpLG4ucHJvdG90eXBlLmhhbmRs
ZVJvdXRlPWZ1bmN0aW9uKCl7dmFyIGU9KChsb2NhdGlvbi5oYXNofHwiIikrIiIpLnNwbGl0KCIv
IikucG9wKCk7U2VbZV18fChlPSJhbGwiKSx0aGlzLnNldFN0YXRlKHtub3dTaG93aW5nOmV9KX0s
bi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKGUsbil7dmFyIG89dGhpcyxyPW4ubm93U2hvd2lu
ZyxpPXZvaWQgMD09PXI/QUxMX1RPRE9TOnIsbD1uLm5ld1RvZG8sYT1uLmVkaXRpbmc7RyhlKTt2
YXIgcz10aGlzLm1vZGVsLnRvZG9zLGM9cy5maWx0ZXIoU2VbaV0pLHU9cy5yZWR1Y2UoZnVuY3Rp
b24oZSx0KXtyZXR1cm4gZSsodC5jb21wbGV0ZWQ/MDoxKX0sMCksZj1zLmxlbmd0aC11O3JldHVy
biB0KCJkaXYiLG51bGwsdCgiaGVhZGVyIix7Y2xhc3M6ImhlYWRlciJ9LHQoImgxIixudWxsLCJ0
b2RvcyIpLHQoImlucHV0Iix7Y2xhc3M6Im5ldy10b2RvIixwbGFjZWhvbGRlcjoiV2hhdCBuZWVk
cyB0byBiZSBkb25lPyIsdmFsdWU6bCxvbktleURvd246dGhpcy5oYW5kbGVOZXdUb2RvS2V5RG93
bixvbklucHV0OnRoaXMubGlua1N0YXRlKCJuZXdUb2RvIiksYXV0b0ZvY3VzOiEwfSkpLHMubGVu
Z3RoP3QoInNlY3Rpb24iLHtjbGFzczoibWFpbiJ9LHQoImlucHV0Iix7Y2xhc3M6InRvZ2dsZS1h
bGwiLHR5cGU6ImNoZWNrYm94IixvbkNoYW5nZTp0aGlzLnRvZ2dsZUFsbCxjaGVja2VkOjA9PT11
fSksdCgidWwiLHtjbGFzczoidG9kby1saXN0In0sYy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIHQo
eGUse3RvZG86ZSxvblRvZ2dsZTpvLnRvZ2dsZSxvbkRlc3Ryb3k6by5kZXN0cm95LG9uRWRpdDpv
LmVkaXQsZWRpdGluZzphPT09ZS5pZCxvblNhdmU6by5zYXZlLG9uQ2FuY2VsOm8uY2FuY2VsfSl9
KSkpOm51bGwsdXx8Zj90KF9lLHtjb3VudDp1LGNvbXBsZXRlZENvdW50OmYsbm93U2hvd2luZzpp
LG9uQ2xlYXJDb21wbGV0ZWQ6dGhpcy5jbGVhckNvbXBsZXRlZH0pOm51bGwpfSxufShBKSxudWxs
KSxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudG9kb2FwcCIpKX0oKTsKKy8vIyBzb3VyY2VNYXBw
aW5nVVJMPWFwcC5qcy5tYXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVj
dHVyZS1leGFtcGxlcy9wcmVhY3QvZGlzdC9pbmRleC5odG1sIGIvUGVyZm9ybWFuY2VUZXN0cy9T
cGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0
L2Rpc3QvaW5kZXguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OGU1ZGZmODA3YTVkNDg3N2QxYmZhNGZhNWYz
Zjg4MGU4ZGE2NDIyCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9t
ZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L2Rpc3Qv
aW5kZXguaHRtbApAQCAtMCwwICsxLDE4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sIGxhbmc9
ImVuIiBkYXRhLWZyYW1ld29yaz0icHJlYWN0Ij4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+UHJlYWN0IOKAoiBUb2RvTVZDPC90aXRs
ZT4KKyAgICAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ0b2RvbXZjLWNvbW1vbi9i
YXNlLmNzcyI+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idG9kb212Yy5j
c3MiPgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHNlY3Rpb24gY2xhc3M9InRv
ZG9hcHAiPjwvc2VjdGlvbj4KKyAgICAgICAgPGZvb3RlciBjbGFzcz0iaW5mbyI+CisgICAgICAg
ICAgICA8cD5Eb3VibGUtY2xpY2sgdG8gZWRpdCBhIHRvZG88L3A+CisgICAgICAgICAgICA8cD5D
cmVhdGVkIGJ5IDxhIGhyZWY9Imh0dHA6Ly9naXRodWIuY29tL3BldGVodW50LyI+cGV0ZWh1bnQ8
L2E+PC9wPgorICAgICAgICAgICAgPHA+UGFydCBvZiA8YSBocmVmPSJodHRwOi8vdG9kb212Yy5j
b20iPlRvZG9NVkM8L2E+PC9wPgorICAgICAgICA8L2Zvb3Rlcj4KKyAgICAgICAgPHNjcmlwdCBz
cmM9ImFwcC5qcyI+PC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
UGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1
cmUtZXhhbXBsZXMvcHJlYWN0L2Rpc3QvdG9kb212Yy1jb21tb24vYmFzZS5jc3MgYi9QZXJmb3Jt
YW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFt
cGxlcy9wcmVhY3QvZGlzdC90b2RvbXZjLWNvbW1vbi9iYXNlLmNzcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDI1
ZDNjODRhYzZjNmFlZjI2Yjk2ODNhMmJjMTBjNjFmOTYwYzhmCi0tLSAvZGV2L251bGwKKysrIGIv
UGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1
cmUtZXhhbXBsZXMvcHJlYWN0L2Rpc3QvdG9kb212Yy1jb21tb24vYmFzZS5jc3MKQEAgLTAsMCAr
MSwxNDEgQEAKK2hyIHsKKyAgICBtYXJnaW46IDIwcHggMDsKKyAgICBib3JkZXI6IDA7CisgICAg
Ym9yZGVyLXRvcDogMXB4IGRhc2hlZCAjYzVjNWM1OworICAgIGJvcmRlci1ib3R0b206IDFweCBk
YXNoZWQgI2Y3ZjdmNzsKK30KKworLmxlYXJuIGEgeworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7
CisgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICAgIGNvbG9yOiAjYjgzZjQ1OworfQorCisu
bGVhcm4gYTpob3ZlciB7CisgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CisgICAgY29s
b3I6ICM3ODdlN2U7Cit9CisKKy5sZWFybiBoMywKKy5sZWFybiBoNCwKKy5sZWFybiBoNSB7Cisg
ICAgbWFyZ2luOiAxMHB4IDA7CisgICAgZm9udC13ZWlnaHQ6IDUwMDsKKyAgICBsaW5lLWhlaWdo
dDogMS4yOworICAgIGNvbG9yOiAjMDAwOworfQorCisubGVhcm4gaDMgeworICAgIGZvbnQtc2l6
ZTogMjRweDsKK30KKworLmxlYXJuIGg0IHsKKyAgICBmb250LXNpemU6IDE4cHg7Cit9CisKKy5s
ZWFybiBoNSB7CisgICAgbWFyZ2luLWJvdHRvbTogMDsKKyAgICBmb250LXNpemU6IDE0cHg7Cit9
CisKKy5sZWFybiB1bCB7CisgICAgcGFkZGluZzogMDsKKyAgICBtYXJnaW46IDAgMCAzMHB4IDI1
cHg7Cit9CisKKy5sZWFybiBsaSB7CisgICAgbGluZS1oZWlnaHQ6IDIwcHg7Cit9CisKKy5sZWFy
biBwIHsKKyAgICBmb250LXNpemU6IDE1cHg7CisgICAgZm9udC13ZWlnaHQ6IDMwMDsKKyAgICBs
aW5lLWhlaWdodDogMS4zOworICAgIG1hcmdpbi10b3A6IDA7CisgICAgbWFyZ2luLWJvdHRvbTog
MDsKK30KKworI2lzc3VlLWNvdW50IHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCisucXVvdGUg
eworICAgIGJvcmRlcjogbm9uZTsKKyAgICBtYXJnaW46IDIwcHggMCA2MHB4IDA7Cit9CisKKy5x
dW90ZSBwIHsKKyAgICBmb250LXN0eWxlOiBpdGFsaWM7Cit9CisKKy5xdW90ZSBwOmJlZm9yZSB7
CisgICAgY29udGVudDogJ+KAnCc7CisgICAgZm9udC1zaXplOiA1MHB4OworICAgIG9wYWNpdHk6
IC4xNTsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAtMjBweDsKKyAgICBsZWZ0
OiAzcHg7Cit9CisKKy5xdW90ZSBwOmFmdGVyIHsKKyAgICBjb250ZW50OiAn4oCdJzsKKyAgICBm
b250LXNpemU6IDUwcHg7CisgICAgb3BhY2l0eTogLjE1OworICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKKyAgICBib3R0b206IC00MnB4OworICAgIHJpZ2h0OiAzcHg7Cit9CisKKy5xdW90ZSBmb290
ZXIgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICBib3R0b206IC00MHB4OworICAgIHJp
Z2h0OiAwOworfQorCisucXVvdGUgZm9vdGVyIGltZyB7CisgICAgYm9yZGVyLXJhZGl1czogM3B4
OworfQorCisucXVvdGUgZm9vdGVyIGEgeworICAgIG1hcmdpbi1sZWZ0OiA1cHg7CisgICAgdmVy
dGljYWwtYWxpZ246IG1pZGRsZTsKK30KKworLnNwZWVjaC1idWJibGUgeworICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICBwYWRkaW5nOiAxMHB4OworICAgIGJhY2tncm91bmQ6IHJnYmEoMCwg
MCwgMCwgLjA0KTsKKyAgICBib3JkZXItcmFkaXVzOiA1cHg7Cit9CisKKy5zcGVlY2gtYnViYmxl
OmFmdGVyIHsKKyAgICBjb250ZW50OiAnJzsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAxMDAlOworICAgIHJpZ2h0OiAzMHB4OworICAgIGJvcmRlcjogMTNweCBzb2xpZCB0cmFu
c3BhcmVudDsKKyAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDAsIDAsIDAsIC4wNCk7Cit9CisK
Ky5sZWFybi1iYXIgPiAubGVhcm4geworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB3aWR0
aDogMjcycHg7CisgICAgdG9wOiA4cHg7CisgICAgbGVmdDogLTMwMHB4OworICAgIHBhZGRpbmc6
IDEwcHg7CisgICAgYm9yZGVyLXJhZGl1czogNXB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHJn
YmEoMjU1LCAyNTUsIDI1NSwgLjYpOworICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IGxlZnQ7Cisg
ICAgdHJhbnNpdGlvbi1kdXJhdGlvbjogNTAwbXM7Cit9CisKK0BtZWRpYSAobWluLXdpZHRoOiA4
OTlweCkgeworICAgIC5sZWFybi1iYXIgeworICAgICAgICB3aWR0aDogYXV0bzsKKyAgICAgICAg
cGFkZGluZy1sZWZ0OiAzMDBweDsKKyAgICB9CisKKyAgICAubGVhcm4tYmFyID4gLmxlYXJuIHsK
KyAgICAgICAgbGVmdDogOHB4OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVz
dHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3By
ZWFjdC9kaXN0L3RvZG9tdmMtY29tbW9uL2Jhc2UuanMgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVk
b21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvZGlz
dC90b2RvbXZjLWNvbW1vbi9iYXNlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxZTAwNmJjNTAyZGRjNGM3NGY0
N2JkMTNhODM5MjI3N2Y4MzBkYjgKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3Rz
L1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVh
Y3QvZGlzdC90b2RvbXZjLWNvbW1vbi9iYXNlLmpzCkBAIC0wLDAgKzEsMjQ5IEBACisvKiBnbG9i
YWwgXyAqLworKGZ1bmN0aW9uICgpIHsKKyAgICAndXNlIHN0cmljdCc7CisKKyAgICAvKiBqc2hp
bnQgaWdub3JlOnN0YXJ0ICovCisgICAgLy8gVW5kZXJzY29yZSdzIFRlbXBsYXRlIE1vZHVsZQor
ICAgIC8vIENvdXJ0ZXN5IG9mIHVuZGVyc2NvcmVqcy5vcmcKKyAgICB2YXIgXyA9IChmdW5jdGlv
biAoXykgeworICAgICAgICBfLmRlZmF1bHRzID0gZnVuY3Rpb24gKG9iamVjdCkgeworICAgICAg
ICAgICAgaWYgKCFvYmplY3QpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0OworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZm9yICh2YXIgYXJnc0luZGV4ID0gMSwgYXJnc0xlbmd0
aCA9IGFyZ3VtZW50cy5sZW5ndGg7IGFyZ3NJbmRleCA8IGFyZ3NMZW5ndGg7IGFyZ3NJbmRleCsr
KSB7CisgICAgICAgICAgICAgICAgdmFyIGl0ZXJhYmxlID0gYXJndW1lbnRzW2FyZ3NJbmRleF07
CisgICAgICAgICAgICAgICAgaWYgKGl0ZXJhYmxlKSB7CisgICAgICAgICAgICAgICAgICAgIGZv
ciAodmFyIGtleSBpbiBpdGVyYWJsZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9i
amVjdFtrZXldID09IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3Rb
a2V5XSA9IGl0ZXJhYmxlW2tleV07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4gb2JqZWN0OworICAgICAgICB9CisKKyAgICAgICAgLy8gQnkgZGVmYXVsdCwg
VW5kZXJzY29yZSB1c2VzIEVSQi1zdHlsZSB0ZW1wbGF0ZSBkZWxpbWl0ZXJzLCBjaGFuZ2UgdGhl
CisgICAgICAgIC8vIGZvbGxvd2luZyB0ZW1wbGF0ZSBzZXR0aW5ncyB0byB1c2UgYWx0ZXJuYXRp
dmUgZGVsaW1pdGVycy4KKyAgICAgICAgXy50ZW1wbGF0ZVNldHRpbmdzID0geworICAgICAgICAg
ICAgZXZhbHVhdGUgICAgOiAvPCUoW1xzXFNdKz8pJT4vZywKKyAgICAgICAgICAgIGludGVycG9s
YXRlIDogLzwlPShbXHNcU10rPyklPi9nLAorICAgICAgICAgICAgZXNjYXBlICAgICAgOiAvPCUt
KFtcc1xTXSs/KSU+L2cKKyAgICAgICAgfTsKKworICAgICAgICAvLyBXaGVuIGN1c3RvbWl6aW5n
IGB0ZW1wbGF0ZVNldHRpbmdzYCwgaWYgeW91IGRvbid0IHdhbnQgdG8gZGVmaW5lIGFuCisgICAg
ICAgIC8vIGludGVycG9sYXRpb24sIGV2YWx1YXRpb24gb3IgZXNjYXBpbmcgcmVnZXgsIHdlIG5l
ZWQgb25lIHRoYXQgaXMKKyAgICAgICAgLy8gZ3VhcmFudGVlZCBub3QgdG8gbWF0Y2guCisgICAg
ICAgIHZhciBub01hdGNoID0gLyguKV4vOworCisgICAgICAgIC8vIENlcnRhaW4gY2hhcmFjdGVy
cyBuZWVkIHRvIGJlIGVzY2FwZWQgc28gdGhhdCB0aGV5IGNhbiBiZSBwdXQgaW50byBhCisgICAg
ICAgIC8vIHN0cmluZyBsaXRlcmFsLgorICAgICAgICB2YXIgZXNjYXBlcyA9IHsKKyAgICAgICAg
ICAgICInIjogICAgICAiJyIsCisgICAgICAgICAgICAnXFwnOiAgICAgJ1xcJywKKyAgICAgICAg
ICAgICdccic6ICAgICAncicsCisgICAgICAgICAgICAnXG4nOiAgICAgJ24nLAorICAgICAgICAg
ICAgJ1x0JzogICAgICd0JywKKyAgICAgICAgICAgICdcdTIwMjgnOiAndTIwMjgnLAorICAgICAg
ICAgICAgJ1x1MjAyOSc6ICd1MjAyOScKKyAgICAgICAgfTsKKworICAgICAgICB2YXIgZXNjYXBl
ciA9IC9cXHwnfFxyfFxufFx0fFx1MjAyOHxcdTIwMjkvZzsKKworICAgICAgICAvLyBKYXZhU2Ny
aXB0IG1pY3JvLXRlbXBsYXRpbmcsIHNpbWlsYXIgdG8gSm9obiBSZXNpZydzIGltcGxlbWVudGF0
aW9uLgorICAgICAgICAvLyBVbmRlcnNjb3JlIHRlbXBsYXRpbmcgaGFuZGxlcyBhcmJpdHJhcnkg
ZGVsaW1pdGVycywgcHJlc2VydmVzIHdoaXRlc3BhY2UsCisgICAgICAgIC8vIGFuZCBjb3JyZWN0
bHkgZXNjYXBlcyBxdW90ZXMgd2l0aGluIGludGVycG9sYXRlZCBjb2RlLgorICAgICAgICBfLnRl
bXBsYXRlID0gZnVuY3Rpb24odGV4dCwgZGF0YSwgc2V0dGluZ3MpIHsKKyAgICAgICAgICAgIHZh
ciByZW5kZXI7CisgICAgICAgICAgICBzZXR0aW5ncyA9IF8uZGVmYXVsdHMoe30sIHNldHRpbmdz
LCBfLnRlbXBsYXRlU2V0dGluZ3MpOworCisgICAgICAgICAgICAvLyBDb21iaW5lIGRlbGltaXRl
cnMgaW50byBvbmUgcmVndWxhciBleHByZXNzaW9uIHZpYSBhbHRlcm5hdGlvbi4KKyAgICAgICAg
ICAgIHZhciBtYXRjaGVyID0gbmV3IFJlZ0V4cChbCisgICAgICAgICAgICAgICAgKHNldHRpbmdz
LmVzY2FwZSB8fCBub01hdGNoKS5zb3VyY2UsCisgICAgICAgICAgICAgICAgKHNldHRpbmdzLmlu
dGVycG9sYXRlIHx8IG5vTWF0Y2gpLnNvdXJjZSwKKyAgICAgICAgICAgICAgICAoc2V0dGluZ3Mu
ZXZhbHVhdGUgfHwgbm9NYXRjaCkuc291cmNlCisgICAgICAgICAgICBdLmpvaW4oJ3wnKSArICd8
JCcsICdnJyk7CisKKyAgICAgICAgICAgIC8vIENvbXBpbGUgdGhlIHRlbXBsYXRlIHNvdXJjZSwg
ZXNjYXBpbmcgc3RyaW5nIGxpdGVyYWxzIGFwcHJvcHJpYXRlbHkuCisgICAgICAgICAgICB2YXIg
aW5kZXggPSAwOworICAgICAgICAgICAgdmFyIHNvdXJjZSA9ICJfX3ArPSciOworICAgICAgICAg
ICAgdGV4dC5yZXBsYWNlKG1hdGNoZXIsIGZ1bmN0aW9uKG1hdGNoLCBlc2NhcGUsIGludGVycG9s
YXRlLCBldmFsdWF0ZSwgb2Zmc2V0KSB7CisgICAgICAgICAgICAgICAgc291cmNlICs9IHRleHQu
c2xpY2UoaW5kZXgsIG9mZnNldCkKKyAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoZXNjYXBl
ciwgZnVuY3Rpb24obWF0Y2gpIHsgcmV0dXJuICdcXCcgKyBlc2NhcGVzW21hdGNoXTsgfSk7CisK
KyAgICAgICAgICAgICAgICBpZiAoZXNjYXBlKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZSArPSAiJytcbigoX190PSgiICsgZXNjYXBlICsgIikpPT1udWxsPycnOl8uZXNjYXBlKF9fdCkp
K1xuJyI7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGlmIChpbnRlcnBvbGF0
ZSkgeworICAgICAgICAgICAgICAgICAgICBzb3VyY2UgKz0gIicrXG4oKF9fdD0oIiArIGludGVy
cG9sYXRlICsgIikpPT1udWxsPycnOl9fdCkrXG4nIjsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgaWYgKGV2YWx1YXRlKSB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZSAr
PSAiJztcbiIgKyBldmFsdWF0ZSArICJcbl9fcCs9JyI7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIGluZGV4ID0gb2Zmc2V0ICsgbWF0Y2gubGVuZ3RoOworICAgICAgICAgICAg
ICAgIHJldHVybiBtYXRjaDsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgc291cmNlICs9
ICInO1xuIjsKKworICAgICAgICAgICAgLy8gSWYgYSB2YXJpYWJsZSBpcyBub3Qgc3BlY2lmaWVk
LCBwbGFjZSBkYXRhIHZhbHVlcyBpbiBsb2NhbCBzY29wZS4KKyAgICAgICAgICAgIGlmICghc2V0
dGluZ3MudmFyaWFibGUpIHNvdXJjZSA9ICd3aXRoKG9ianx8e30pe1xuJyArIHNvdXJjZSArICd9
XG4nOworCisgICAgICAgICAgICBzb3VyY2UgPSAidmFyIF9fdCxfX3A9JycsX19qPUFycmF5LnBy
b3RvdHlwZS5qb2luLCIgKworICAgICAgICAgICAgICAgICJwcmludD1mdW5jdGlvbigpe19fcCs9
X19qLmNhbGwoYXJndW1lbnRzLCcnKTt9O1xuIiArCisgICAgICAgICAgICAgICAgc291cmNlICsg
InJldHVybiBfX3A7XG4iOworCisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHJl
bmRlciA9IG5ldyBGdW5jdGlvbihzZXR0aW5ncy52YXJpYWJsZSB8fCAnb2JqJywgJ18nLCBzb3Vy
Y2UpOworICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGUuc291cmNl
ID0gc291cmNlOworICAgICAgICAgICAgICAgIHRocm93IGU7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGlmIChkYXRhKSByZXR1cm4gcmVuZGVyKGRhdGEsIF8pOworICAgICAgICAgICAg
dmFyIHRlbXBsYXRlID0gZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgIHJldHVybiBy
ZW5kZXIuY2FsbCh0aGlzLCBkYXRhLCBfKTsKKyAgICAgICAgICAgIH07CisKKyAgICAgICAgICAg
IC8vIFByb3ZpZGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uIHNvdXJjZSBhcyBhIGNvbnZlbmllbmNl
IGZvciBwcmVjb21waWxhdGlvbi4KKyAgICAgICAgICAgIHRlbXBsYXRlLnNvdXJjZSA9ICdmdW5j
dGlvbignICsgKHNldHRpbmdzLnZhcmlhYmxlIHx8ICdvYmonKSArICcpe1xuJyArIHNvdXJjZSAr
ICd9JzsKKworICAgICAgICAgICAgcmV0dXJuIHRlbXBsYXRlOworICAgICAgICB9OworCisgICAg
ICAgIHJldHVybiBfOworICAgIH0pKHt9KTsKKworICAgIGlmIChsb2NhdGlvbi5ob3N0bmFtZSA9
PT0gJ3RvZG9tdmMuY29tJykgeworICAgICAgICAoZnVuY3Rpb24oaSxzLG8sZyxyLGEsbSl7aVsn
R29vZ2xlQW5hbHl0aWNzT2JqZWN0J109cjtpW3JdPWlbcl18fGZ1bmN0aW9uKCl7CisgICAgICAg
IChpW3JdLnE9aVtyXS5xfHxbXSkucHVzaChhcmd1bWVudHMpfSxpW3JdLmw9MSpuZXcgRGF0ZSgp
O2E9cy5jcmVhdGVFbGVtZW50KG8pLAorICAgICAgICBtPXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUo
bylbMF07YS5hc3luYz0xO2Euc3JjPWc7bS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLG0pCisg
ICAgICAgIH0pKHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly93d3cuZ29vZ2xlLWFu
YWx5dGljcy5jb20vYW5hbHl0aWNzLmpzJywnZ2EnKTsKKyAgICAgICAgZ2EoJ2NyZWF0ZScsICdV
QS0zMTA4MTA2Mi0xJywgJ2F1dG8nKTsKKyAgICAgICAgZ2EoJ3NlbmQnLCAncGFnZXZpZXcnKTsK
KyAgICB9CisgICAgLyoganNoaW50IGlnbm9yZTplbmQgKi8KKworICAgIGZ1bmN0aW9uIHJlZGly
ZWN0KCkgeworICAgICAgICBpZiAobG9jYXRpb24uaG9zdG5hbWUgPT09ICd0YXN0ZWpzLmdpdGh1
Yi5pbycpIHsKKyAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5ocmVmLnJlcGxh
Y2UoJ3Rhc3RlanMuZ2l0aHViLmlvL3RvZG9tdmMnLCAndG9kb212Yy5jb20nKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGZ1bmN0aW9uIGZpbmRSb290KCkgeworICAgICAgICB2YXIgYmFzZSA9
IGxvY2F0aW9uLmhyZWYuaW5kZXhPZignZXhhbXBsZXMvJyk7CisgICAgICAgIHJldHVybiBsb2Nh
dGlvbi5ocmVmLnN1YnN0cigwLCBiYXNlKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRGaWxl
KGZpbGUsIGNhbGxiYWNrKSB7CisgICAgICAgIGlmICghbG9jYXRpb24uaG9zdCkgeworICAgICAg
ICAgICAgcmV0dXJuIGNvbnNvbGUuaW5mbygnTWlzcyB0aGUgaW5mbyBiYXI/IFJ1biBUb2RvTVZD
IGZyb20gYSBzZXJ2ZXIgdG8gYXZvaWQgYSBjcm9zcy1vcmlnaW4gZXJyb3IuJyk7CisgICAgICAg
IH0KKworICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisKKyAgICAgICAg
eGhyLm9wZW4oJ0dFVCcsIGZpbmRSb290KCkgKyBmaWxlLCB0cnVlKTsKKyAgICAgICAgeGhyLnNl
bmQoKTsKKworICAgICAgICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkgeworICAgICAgICAgICAg
aWYgKHhoci5zdGF0dXMgPT09IDIwMCAmJiBjYWxsYmFjaykgeworICAgICAgICAgICAgICAgIGNh
bGxiYWNrKHhoci5yZXNwb25zZVRleHQpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAg
IH0KKworICAgIGZ1bmN0aW9uIExlYXJuKGxlYXJuSlNPTiwgY29uZmlnKSB7CisgICAgICAgIGlm
ICghKHRoaXMgaW5zdGFuY2VvZiBMZWFybikpIHsKKyAgICAgICAgICAgIHJldHVybiBuZXcgTGVh
cm4obGVhcm5KU09OLCBjb25maWcpOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHRlbXBsYXRl
LCBmcmFtZXdvcms7CisKKyAgICAgICAgaWYgKHR5cGVvZiBsZWFybkpTT04gIT09ICdvYmplY3Qn
KSB7CisgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGxlYXJuSlNPTiA9IEpTT04u
cGFyc2UobGVhcm5KU09OKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBpZiAoY29u
ZmlnKSB7CisgICAgICAgICAgICB0ZW1wbGF0ZSA9IGNvbmZpZy50ZW1wbGF0ZTsKKyAgICAgICAg
ICAgIGZyYW1ld29yayA9IGNvbmZpZy5mcmFtZXdvcms7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoIXRlbXBsYXRlICYmIGxlYXJuSlNPTi50ZW1wbGF0ZXMpIHsKKyAgICAgICAgICAgIHRlbXBs
YXRlID0gbGVhcm5KU09OLnRlbXBsYXRlcy50b2RvbXZjOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFmcmFtZXdvcmsgJiYgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtZnJhbWV3b3Jr
XScpKSB7CisgICAgICAgICAgICBmcmFtZXdvcmsgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdb
ZGF0YS1mcmFtZXdvcmtdJykuZGF0YXNldC5mcmFtZXdvcms7CisgICAgICAgIH0KKworICAgICAg
ICB0aGlzLnRlbXBsYXRlID0gdGVtcGxhdGU7CisKKyAgICAgICAgaWYgKGxlYXJuSlNPTi5iYWNr
ZW5kKSB7CisgICAgICAgICAgICB0aGlzLmZyYW1ld29ya0pTT04gPSBsZWFybkpTT04uYmFja2Vu
ZDsKKyAgICAgICAgICAgIHRoaXMuZnJhbWV3b3JrSlNPTi5pc3N1ZUxhYmVsID0gZnJhbWV3b3Jr
OworICAgICAgICAgICAgdGhpcy5hcHBlbmQoeworICAgICAgICAgICAgICAgIGJhY2tlbmQ6IHRy
dWUKKyAgICAgICAgICAgIH0pOworICAgICAgICB9IGVsc2UgaWYgKGxlYXJuSlNPTltmcmFtZXdv
cmtdKSB7CisgICAgICAgICAgICB0aGlzLmZyYW1ld29ya0pTT04gPSBsZWFybkpTT05bZnJhbWV3
b3JrXTsKKyAgICAgICAgICAgIHRoaXMuZnJhbWV3b3JrSlNPTi5pc3N1ZUxhYmVsID0gZnJhbWV3
b3JrOworICAgICAgICAgICAgdGhpcy5hcHBlbmQoKTsKKyAgICAgICAgfQorCisgICAgICAgIHRo
aXMuZmV0Y2hJc3N1ZUNvdW50KCk7CisgICAgfQorCisgICAgTGVhcm4ucHJvdG90eXBlLmFwcGVu
ZCA9IGZ1bmN0aW9uIChvcHRzKSB7CisgICAgICAgIHZhciBhc2lkZSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2FzaWRlJyk7CisgICAgICAgIGFzaWRlLmlubmVySFRNTCA9IF8udGVtcGxhdGUo
dGhpcy50ZW1wbGF0ZSwgdGhpcy5mcmFtZXdvcmtKU09OKTsKKyAgICAgICAgYXNpZGUuY2xhc3NO
YW1lID0gJ2xlYXJuJzsKKworICAgICAgICBpZiAob3B0cyAmJiBvcHRzLmJhY2tlbmQpIHsKKyAg
ICAgICAgICAgIC8vIFJlbW92ZSBkZW1vIGxpbmsKKyAgICAgICAgICAgIHZhciBzb3VyY2VMaW5r
cyA9IGFzaWRlLnF1ZXJ5U2VsZWN0b3IoJy5zb3VyY2UtbGlua3MnKTsKKyAgICAgICAgICAgIHZh
ciBoZWFkaW5nID0gc291cmNlTGlua3MuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAgICB2
YXIgc291cmNlTGluayA9IHNvdXJjZUxpbmtzLmxhc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAg
ICAvLyBDb3JyZWN0IGxpbmsgcGF0aAorICAgICAgICAgICAgdmFyIGhyZWYgPSBzb3VyY2VMaW5r
LmdldEF0dHJpYnV0ZSgnaHJlZicpOworICAgICAgICAgICAgc291cmNlTGluay5zZXRBdHRyaWJ1
dGUoJ2hyZWYnLCBocmVmLnN1YnN0cihocmVmLmxhc3RJbmRleE9mKCdodHRwJykpKTsKKyAgICAg
ICAgICAgIHNvdXJjZUxpbmtzLmlubmVySFRNTCA9IGhlYWRpbmcub3V0ZXJIVE1MICsgc291cmNl
TGluay5vdXRlckhUTUw7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBMb2NhbGl6
ZSBkZW1vIGxpbmtzCisgICAgICAgICAgICB2YXIgZGVtb0xpbmtzID0gYXNpZGUucXVlcnlTZWxl
Y3RvckFsbCgnLmRlbW8tbGluaycpOworICAgICAgICAgICAgQXJyYXkucHJvdG90eXBlLmZvckVh
Y2guY2FsbChkZW1vTGlua3MsIGZ1bmN0aW9uIChkZW1vTGluaykgeworICAgICAgICAgICAgICAg
IGlmIChkZW1vTGluay5nZXRBdHRyaWJ1dGUoJ2hyZWYnKS5zdWJzdHIoMCwgNCkgIT09ICdodHRw
JykgeworICAgICAgICAgICAgICAgICAgICBkZW1vTGluay5zZXRBdHRyaWJ1dGUoJ2hyZWYnLCBm
aW5kUm9vdCgpICsgZGVtb0xpbmsuZ2V0QXR0cmlidXRlKCdocmVmJykpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisKKyAgICAgICAgZG9jdW1lbnQuYm9k
eS5jbGFzc05hbWUgPSAoZG9jdW1lbnQuYm9keS5jbGFzc05hbWUgKyAnIGxlYXJuLWJhcicpLnRy
aW0oKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5pbnNlcnRBZGphY2VudEhUTUwoJ2FmdGVyQmVn
aW4nLCBhc2lkZS5vdXRlckhUTUwpOworICAgIH07CisKKyAgICBMZWFybi5wcm90b3R5cGUuZmV0
Y2hJc3N1ZUNvdW50ID0gZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIgaXNzdWVMaW5rID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lzc3VlLWNvdW50LWxpbmsnKTsKKyAgICAgICAgaWYgKGlz
c3VlTGluaykgeworICAgICAgICAgICAgdmFyIHVybCA9IGlzc3VlTGluay5ocmVmLnJlcGxhY2Uo
J2h0dHBzOi8vZ2l0aHViLmNvbScsICdodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zJyk7Cisg
ICAgICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgICAgICB4
aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTsKKyAgICAgICAgICAgIHhoci5vbmxvYWQgPSBmdW5j
dGlvbiAoZSkgeworICAgICAgICAgICAgICAgIHZhciBwYXJzZWRSZXNwb25zZSA9IEpTT04ucGFy
c2UoZS50YXJnZXQucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgICAgICAgICBpZiAocGFyc2VkUmVz
cG9uc2UgaW5zdGFuY2VvZiBBcnJheSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgY291bnQg
PSBwYXJzZWRSZXNwb25zZS5sZW5ndGg7CisgICAgICAgICAgICAgICAgICAgIGlmIChjb3VudCAh
PT0gMCkgeworICAgICAgICAgICAgICAgICAgICAgICAgaXNzdWVMaW5rLmlubmVySFRNTCA9ICdU
aGlzIGFwcCBoYXMgJyArIGNvdW50ICsgJyBvcGVuIGlzc3Vlcyc7CisgICAgICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXNzdWUtY291bnQnKS5zdHlsZS5kaXNw
bGF5ID0gJ2lubGluZSc7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9OworICAgICAgICAgICAgeGhyLnNlbmQoKTsKKyAgICAgICAgfQorICAg
IH07CisKKyAgICByZWRpcmVjdCgpOworICAgIGdldEZpbGUoJ2xlYXJuLmpzb24nLCBMZWFybik7
Cit9KSgpOwpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJj
ZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L2Rpc3QvdG9kb212Yy5jc3Mg
Yi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVj
dHVyZS1leGFtcGxlcy9wcmVhY3QvZGlzdC90b2RvbXZjLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGUzZDJm
NmI3OTNkNDJjYjRlMjBhZWVhNDhhM2I1Y2ViNDg2ZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvUGVy
Zm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUt
ZXhhbXBsZXMvcHJlYWN0L2Rpc3QvdG9kb212Yy5jc3MKQEAgLTAsMCArMSwzNzAgQEAKK2h0bWws
Citib2R5IHsKKyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKK30KKworYnV0dG9uIHsK
KyAgICBtYXJnaW46IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBib3JkZXI6IDA7CisgICAgYmFj
a2dyb3VuZDogbm9uZTsKKyAgICBmb250LXNpemU6IDEwMCU7CisgICAgdmVydGljYWwtYWxpZ246
IGJhc2VsaW5lOworICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0OworICAgIGZvbnQtd2VpZ2h0OiBp
bmhlcml0OworICAgIGNvbG9yOiBpbmhlcml0OworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9u
ZTsKKyAgICBhcHBlYXJhbmNlOiBub25lOworICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFu
dGlhbGlhc2VkOworICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cit9CisK
K2JvZHkgeworICAgIGZvbnQ6IDE0cHggJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlh
bCwgc2Fucy1zZXJpZjsKKyAgICBsaW5lLWhlaWdodDogMS40ZW07CisgICAgYmFja2dyb3VuZDog
I2Y1ZjVmNTsKKyAgICBjb2xvcjogIzRkNGQ0ZDsKKyAgICBtaW4td2lkdGg6IDIzMHB4OworICAg
IG1heC13aWR0aDogNTUwcHg7CisgICAgbWFyZ2luOiAwIGF1dG87CisgICAgLXdlYmtpdC1mb250
LXNtb290aGluZzogYW50aWFsaWFzZWQ7CisgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdy
YXlzY2FsZTsKKyAgICBmb250LXdlaWdodDogMzAwOworfQorCis6Zm9jdXMgeworICAgIG91dGxp
bmU6IDA7Cit9CisKKy5oaWRkZW4geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKKy50b2RvYXBw
IHsKKyAgICBiYWNrZ3JvdW5kOiAjZmZmOworICAgIG1hcmdpbjogMTMwcHggMCA0MHB4IDA7Cisg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCAwIHJnYmEo
MCwgMCwgMCwgMC4yKSwKKyAgICAgICAgICAgICAgICAwIDI1cHggNTBweCAwIHJnYmEoMCwgMCwg
MCwgMC4xKTsKK30KKworLnRvZG9hcHAgaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIg
eworICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgICBmb250LXdlaWdodDogMzAwOworICAgIGNv
bG9yOiAjZTZlNmU2OworfQorCisudG9kb2FwcCBpbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7Cisg
ICAgZm9udC1zdHlsZTogaXRhbGljOworICAgIGZvbnQtd2VpZ2h0OiAzMDA7CisgICAgY29sb3I6
ICNlNmU2ZTY7Cit9CisKKy50b2RvYXBwIGlucHV0OjppbnB1dC1wbGFjZWhvbGRlciB7CisgICAg
Zm9udC1zdHlsZTogaXRhbGljOworICAgIGZvbnQtd2VpZ2h0OiAzMDA7CisgICAgY29sb3I6ICNl
NmU2ZTY7Cit9CisKKy50b2RvYXBwIGgxIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
dG9wOiAtMTU1cHg7CisgICAgd2lkdGg6IDEwMCU7CisgICAgZm9udC1zaXplOiAxMDBweDsKKyAg
ICBmb250LXdlaWdodDogMTAwOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBjb2xvcjog
cmdiYSgxNzUsIDQ3LCA0NywgMC4xNSk7CisgICAgLXdlYmtpdC10ZXh0LXJlbmRlcmluZzogb3B0
aW1pemVMZWdpYmlsaXR5OworICAgIC1tb3otdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJp
bGl0eTsKKyAgICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OworfQorCisubmV3
LXRvZG8sCisuZWRpdCB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIG1hcmdpbjogMDsK
KyAgICB3aWR0aDogMTAwJTsKKyAgICBmb250LXNpemU6IDI0cHg7CisgICAgZm9udC1mYW1pbHk6
IGluaGVyaXQ7CisgICAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7CisgICAgbGluZS1oZWlnaHQ6IDEu
NGVtOworICAgIGJvcmRlcjogMDsKKyAgICBjb2xvcjogaW5oZXJpdDsKKyAgICBwYWRkaW5nOiA2
cHg7CisgICAgYm9yZGVyOiAxcHggc29saWQgIzk5OTsKKyAgICBib3gtc2hhZG93OiBpbnNldCAw
IC0xcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpOworICAgIGJveC1zaXppbmc6IGJvcmRlci1i
b3g7CisgICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CisgICAgLW1vei1v
c3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsKK30KKworLm5ldy10b2RvIHsKKyAgICBwYWRk
aW5nOiAxNnB4IDE2cHggMTZweCA2MHB4OworICAgIGJvcmRlcjogbm9uZTsKKyAgICBiYWNrZ3Jv
dW5kOiByZ2JhKDAsIDAsIDAsIDAuMDAzKTsKKyAgICBib3gtc2hhZG93OiBpbnNldCAwIC0ycHgg
MXB4IHJnYmEoMCwwLDAsMC4wMyk7Cit9CisKKy5tYWluIHsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgei1pbmRleDogMjsKKyAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2U2ZTZlNjsK
K30KKworbGFiZWxbZm9yPSd0b2dnbGUtYWxsJ10geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisK
Ky50b2dnbGUtYWxsIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAtNTVweDsK
KyAgICBsZWZ0OiAtMTJweDsKKyAgICB3aWR0aDogNjBweDsKKyAgICBoZWlnaHQ6IDM0cHg7Cisg
ICAgdGV4dC1hbGlnbjogY2VudGVyOworICAgIGJvcmRlcjogbm9uZTsgLyogTW9iaWxlIFNhZmFy
aSAqLworfQorCisudG9nZ2xlLWFsbDpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICfina8nOworICAg
IGZvbnQtc2l6ZTogMjJweDsKKyAgICBjb2xvcjogI2U2ZTZlNjsKKyAgICBwYWRkaW5nOiAxMHB4
IDI3cHggMTBweCAyN3B4OworfQorCisudG9nZ2xlLWFsbDpjaGVja2VkOmJlZm9yZSB7CisgICAg
Y29sb3I6ICM3MzczNzM7Cit9CisKKy50b2RvLWxpc3QgeworICAgIG1hcmdpbjogMDsKKyAgICBw
YWRkaW5nOiAwOworICAgIGxpc3Qtc3R5bGU6IG5vbmU7Cit9CisKKy50b2RvLWxpc3QgbGkgewor
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBmb250LXNpemU6IDI0cHg7CisgICAgYm9yZGVy
LWJvdHRvbTogMXB4IHNvbGlkICNlZGVkZWQ7Cit9CisKKy50b2RvLWxpc3QgbGk6bGFzdC1jaGls
ZCB7CisgICAgYm9yZGVyLWJvdHRvbTogbm9uZTsKK30KKworLnRvZG8tbGlzdCBsaS5lZGl0aW5n
IHsKKyAgICBib3JkZXItYm90dG9tOiBub25lOworICAgIHBhZGRpbmc6IDA7Cit9CisKKy50b2Rv
LWxpc3QgbGkuZWRpdGluZyAuZWRpdCB7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgd2lkdGg6
IDUwNnB4OworICAgIHBhZGRpbmc6IDEycHggMTZweDsKKyAgICBtYXJnaW46IDAgMCAwIDQzcHg7
Cit9CisKKy50b2RvLWxpc3QgbGkuZWRpdGluZyAudmlldyB7CisgICAgZGlzcGxheTogbm9uZTsK
K30KKworLnRvZG8tbGlzdCBsaSAudG9nZ2xlIHsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cisg
ICAgd2lkdGg6IDQwcHg7CisgICAgLyogYXV0bywgc2luY2Ugbm9uLVdlYktpdCBicm93c2VycyBk
b2Vzbid0IHN1cHBvcnQgaW5wdXQgc3R5bGluZyAqLworICAgIGhlaWdodDogYXV0bzsKKyAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiAwOworICAgIGJvdHRvbTogMDsKKyAgICBtYXJn
aW46IGF1dG8gMDsKKyAgICBib3JkZXI6IG5vbmU7IC8qIE1vYmlsZSBTYWZhcmkgKi8KKyAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CisgICAgYXBwZWFyYW5jZTogbm9uZTsKK30KKworLnRv
ZG8tbGlzdCBsaSAudG9nZ2xlOmFmdGVyIHsKKyAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uv
c3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0
aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9Ii0xMCAtMTggMTAwIDEzNSI+PGNpcmNsZSBjeD0i
NTAiIGN5PSI1MCIgcj0iNTAiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2VkZWRlZCIgc3Ryb2tlLXdp
ZHRoPSIzIi8+PC9zdmc+Jyk7Cit9CisKKy50b2RvLWxpc3QgbGkgLnRvZ2dsZTpjaGVja2VkOmFm
dGVyIHsKKyAgICBjb250ZW50OiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1s
bnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZp
ZXdCb3g9Ii0xMCAtMTggMTAwIDEzNSI+PGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iNTAiIGZp
bGw9Im5vbmUiIHN0cm9rZT0iI2JkZGFkNSIgc3Ryb2tlLXdpZHRoPSIzIi8+PHBhdGggZmlsbD0i
IzVkYzJhZiIgZD0iTTcyIDI1TDQyIDcxIDI3IDU2bC00IDQgMjAgMjAgMzQtNTJ6Ii8+PC9zdmc+
Jyk7Cit9CisKKy50b2RvLWxpc3QgbGkgbGFiZWwgeworICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFs
bDsKKyAgICBwYWRkaW5nOiAxNXB4IDYwcHggMTVweCAxNXB4OworICAgIG1hcmdpbi1sZWZ0OiA0
NXB4OworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIGxpbmUtaGVpZ2h0OiAxLjI7CisgICAgdHJh
bnNpdGlvbjogY29sb3IgMC40czsKK30KKworLnRvZG8tbGlzdCBsaS5jb21wbGV0ZWQgbGFiZWwg
eworICAgIGNvbG9yOiAjZDlkOWQ5OworICAgIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdo
OworfQorCisudG9kby1saXN0IGxpIC5kZXN0cm95IHsKKyAgICBkaXNwbGF5OiBub25lOworICAg
IHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICB0b3A6IDA7CisgICAgcmlnaHQ6IDEwcHg7CisgICAg
Ym90dG9tOiAwOworICAgIHdpZHRoOiA0MHB4OworICAgIGhlaWdodDogNDBweDsKKyAgICBtYXJn
aW46IGF1dG8gMDsKKyAgICBmb250LXNpemU6IDMwcHg7CisgICAgY29sb3I6ICNjYzlhOWE7Cisg
ICAgbWFyZ2luLWJvdHRvbTogMTFweDsKKyAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzIGVhc2Ut
b3V0OworfQorCisudG9kby1saXN0IGxpIC5kZXN0cm95OmhvdmVyIHsKKyAgICBjb2xvcjogI2Fm
NWI1ZTsKK30KKworLnRvZG8tbGlzdCBsaSAuZGVzdHJveTphZnRlciB7CisgICAgY29udGVudDog
J8OXJzsKK30KKworLnRvZG8tbGlzdCBsaTpob3ZlciAuZGVzdHJveSB7CisgICAgZGlzcGxheTog
YmxvY2s7Cit9CisKKy50b2RvLWxpc3QgbGkgLmVkaXQgeworICAgIGRpc3BsYXk6IG5vbmU7Cit9
CisKKy50b2RvLWxpc3QgbGkuZWRpdGluZzpsYXN0LWNoaWxkIHsKKyAgICBtYXJnaW4tYm90dG9t
OiAtMXB4OworfQorCisuZm9vdGVyIHsKKyAgICBjb2xvcjogIzc3NzsKKyAgICBwYWRkaW5nOiAx
MHB4IDE1cHg7CisgICAgaGVpZ2h0OiAyMHB4OworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAg
ICBib3JkZXItdG9wOiAxcHggc29saWQgI2U2ZTZlNjsKK30KKworLmZvb3RlcjpiZWZvcmUgewor
ICAgIGNvbnRlbnQ6ICcnOworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICByaWdodDogMDsK
KyAgICBib3R0b206IDA7CisgICAgbGVmdDogMDsKKyAgICBoZWlnaHQ6IDUwcHg7CisgICAgb3Zl
cmZsb3c6IGhpZGRlbjsKKyAgICBib3gtc2hhZG93OiAwIDFweCAxcHggcmdiYSgwLCAwLCAwLCAw
LjIpLAorICAgICAgICAgICAgICAgIDAgOHB4IDAgLTNweCAjZjZmNmY2LAorICAgICAgICAgICAg
ICAgIDAgOXB4IDFweCAtM3B4IHJnYmEoMCwgMCwgMCwgMC4yKSwKKyAgICAgICAgICAgICAgICAw
IDE2cHggMCAtNnB4ICNmNmY2ZjYsCisgICAgICAgICAgICAgICAgMCAxN3B4IDJweCAtNnB4IHJn
YmEoMCwgMCwgMCwgMC4yKTsKK30KKworLnRvZG8tY291bnQgeworICAgIGZsb2F0OiBsZWZ0Owor
ICAgIHRleHQtYWxpZ246IGxlZnQ7Cit9CisKKy50b2RvLWNvdW50IHN0cm9uZyB7CisgICAgZm9u
dC13ZWlnaHQ6IDMwMDsKK30KKworLmZpbHRlcnMgeworICAgIG1hcmdpbjogMDsKKyAgICBwYWRk
aW5nOiAwOworICAgIGxpc3Qtc3R5bGU6IG5vbmU7CisgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgIHJpZ2h0OiAwOworICAgIGxlZnQ6IDA7Cit9CisKKy5maWx0ZXJzIGxpIHsKKyAgICBkaXNw
bGF5OiBpbmxpbmU7Cit9CisKKy5maWx0ZXJzIGxpIGEgeworICAgIGNvbG9yOiBpbmhlcml0Owor
ICAgIG1hcmdpbjogM3B4OworICAgIHBhZGRpbmc6IDNweCA3cHg7CisgICAgdGV4dC1kZWNvcmF0
aW9uOiBub25lOworICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50OworICAgIGJvcmRl
ci1yYWRpdXM6IDNweDsKK30KKworLmZpbHRlcnMgbGkgYTpob3ZlciB7CisgICAgYm9yZGVyLWNv
bG9yOiByZ2JhKDE3NSwgNDcsIDQ3LCAwLjEpOworfQorCisuZmlsdGVycyBsaSBhLnNlbGVjdGVk
IHsKKyAgICBib3JkZXItY29sb3I6IHJnYmEoMTc1LCA0NywgNDcsIDAuMik7Cit9CisKKy5jbGVh
ci1jb21wbGV0ZWQsCitodG1sIC5jbGVhci1jb21wbGV0ZWQ6YWN0aXZlIHsKKyAgICBmbG9hdDog
cmlnaHQ7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGxpbmUtaGVpZ2h0OiAyMHB4Owor
ICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBjdXJzb3I6IHBvaW50ZXI7Cit9CisKKy5j
bGVhci1jb21wbGV0ZWQ6aG92ZXIgeworICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOwor
fQorCisuaW5mbyB7CisgICAgbWFyZ2luOiA2NXB4IGF1dG8gMDsKKyAgICBjb2xvcjogI2JmYmZi
ZjsKKyAgICBmb250LXNpemU6IDEwcHg7CisgICAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgy
NTUsIDI1NSwgMjU1LCAwLjUpOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKworLmluZm8g
cCB7CisgICAgbGluZS1oZWlnaHQ6IDE7Cit9CisKKy5pbmZvIGEgeworICAgIGNvbG9yOiBpbmhl
cml0OworICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKKyAgICBmb250LXdlaWdodDogNDAwOwor
fQorCisuaW5mbyBhOmhvdmVyIHsKKyAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsKK30K
KworLyoKKyAgICBIYWNrIHRvIHJlbW92ZSBiYWNrZ3JvdW5kIGZyb20gTW9iaWxlIFNhZmFyaS4K
KyAgICBDYW4ndCB1c2UgaXQgZ2xvYmFsbHkgc2luY2UgaXQgZGVzdHJveXMgY2hlY2tib3hlcyBp
biBGaXJlZm94CisqLworQG1lZGlhIHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhl
bC1yYXRpbzowKSB7CisgICAgLnRvZ2dsZS1hbGwsCisgICAgLnRvZG8tbGlzdCBsaSAudG9nZ2xl
IHsKKyAgICAgICAgYmFja2dyb3VuZDogbm9uZTsKKyAgICB9CisKKyAgICAudG9kby1saXN0IGxp
IC50b2dnbGUgeworICAgICAgICBoZWlnaHQ6IDQwcHg7CisgICAgfQorCisgICAgLnRvZ2dsZS1h
bGwgeworICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsKKyAgICAgICAg
dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpOworICAgICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5v
bmU7CisgICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7CisgICAgfQorfQorCitAbWVkaWEgKG1heC13
aWR0aDogNDMwcHgpIHsKKyAgICAuZm9vdGVyIHsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAg
IH0KKworICAgIC5maWx0ZXJzIHsKKyAgICAgICAgYm90dG9tOiAxMHB4OworICAgIH0KK30KZGlm
ZiAtLWdpdCBhL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMv
YXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9wYWNrYWdlLmpzb24gYi9QZXJmb3JtYW5jZVRl
c3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9w
cmVhY3QvcGFja2FnZS5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZWJhODdiNzkyMGYzOGM0ZmRhMDVhY2Fj
OTMzMTM1N2ZhMDc4YzUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVk
b21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3QvcGFj
a2FnZS5qc29uCkBAIC0wLDAgKzEsNTIgQEAKK3sKKyAgIm5hbWUiOiAicHJlYWN0LXRvZG9tdmMi
LAorICAidmVyc2lvbiI6ICIwLjIuMCIsCisgICJkZXNjcmlwdGlvbiI6ICJUb2RvTVZDIGRvbmUg
aW4gUHJlYWN0IiwKKyAgIm1haW4iOiAiaW5kZXguanMiLAorICAic2NyaXB0cyI6IHsKKyAgICAi
ZGV2IjogIndlYnBhY2stZGV2LXNlcnZlciIsCisgICAgInN0YXJ0IjogImh0dHAtc2VydmVyIGJ1
aWxkIC1wICR7UE9SVDotODA4MH0iLAorICAgICJwcmVzdGFydCI6ICJucG0gcnVuIGJ1aWxkIiwK
KyAgICAiYnVpbGQiOiAibnBtIHJ1biAtcyBidWlsZDpyb2xsdXAiLAorICAgICJidWlsZDp3ZWJw
YWNrIjogIm1rZGlycCBidWlsZCAmJiBuY3Agc3JjL2luZGV4Lmh0bWwgYnVpbGQvaW5kZXguaHRt
bCAmJiB3ZWJwYWNrIC1wIiwKKyAgICAiYnVpbGQ6cm9sbHVwIjogInJtIC1yZiBidWlsZCAmJiBt
a2RpcnAgYnVpbGQvdG9kb212Yy1jb21tb24gJiYgbmNwIHNyYy9pbmRleC5odG1sIGJ1aWxkL2lu
ZGV4Lmh0bWwgJiYgcm9sbHVwIC1jIHJvbGx1cC5jb25maWcuanMgJiYgY3Agbm9kZV9tb2R1bGVz
L3RvZG9tdmMtY29tbW9uL2Jhc2Uue2pzLGNzc30gYnVpbGQvdG9kb212Yy1jb21tb24vICYmIGNw
IG5vZGVfbW9kdWxlcy90b2RvbXZjLWFwcC1jc3MvaW5kZXguY3NzIGJ1aWxkL3RvZG9tdmMuY3Nz
ICYmIG5wbSBydW4gcG9zdGJ1aWxkIiwKKyAgICAicG9zdGJ1aWxkIjogInVnbGlmeWpzIGJ1aWxk
L2FwcC5qcyAtLXB1cmUtZnVuY3MgY2xhc3NDYWxsQ2hlY2sgT2JqZWN0LmRlZmluZVByb3BlcnR5
IE9iamVjdC5mcmVlemUgaW52YXJpYW50IHdhcm5pbmcgLWMgdW5zYWZlLGNvbGxhcHNlX3ZhcnMs
ZXZhbHVhdGUsc2NyZXdfaWU4LGxvb3BzLGtlZXBfZmFyZ3M9ZmFsc2UscHVyZV9nZXR0ZXJzLHVu
dXNlZCxkZWFkX2NvZGUgLW0gLW8gYnVpbGQvYXBwLmpzIC1wIHJlbGF0aXZlIC0taW4tc291cmNl
LW1hcCBidWlsZC9hcHAuanMubWFwIC0tc291cmNlLW1hcCBidWlsZC9hcHAuanMubWFwIiwKKyAg
ICAiZGVwbG95IjogImdoLXBhZ2VzIC1kIGJ1aWxkIgorICB9LAorICAia2V5d29yZHMiOiBbCisg
ICAgInByZWFjdCIKKyAgXSwKKyAgImF1dGhvciI6ICJUaGUgVG9kb01WQyBhdXRob3JzIiwKKyAg
ImxpY2Vuc2UiOiAiTUlUIiwKKyAgImRldkRlcGVuZGVuY2llcyI6IHsKKyAgICAiYmFiZWwtY29y
ZSI6ICJeNi41LjIiLAorICAgICJiYWJlbC1sb2FkZXIiOiAiXjYuMi4zIiwKKyAgICAiYmFiZWwt
cGx1Z2luLXRyYW5zZm9ybS1jbGFzcy1wcm9wZXJ0aWVzIjogIl42LjUuMiIsCisgICAgImJhYmVs
LXBsdWdpbi10cmFuc2Zvcm0tZGVjb3JhdG9ycy1sZWdhY3kiOiAiXjEuMy40IiwKKyAgICAiYmFi
ZWwtcGx1Z2luLXRyYW5zZm9ybS1yZWFjdC1qc3giOiAiXjYuNS4yIiwKKyAgICAiYmFiZWwtcHJl
c2V0LWJhYmlsaSI6ICIwLjAuOSIsCisgICAgImJhYmVsLXByZXNldC1lczIwMTUiOiAiXjYuNS4w
IiwKKyAgICAiYmFiZWwtcHJlc2V0LWVzMjAxNS1sb29zZSI6ICJeOC4wLjAiLAorICAgICJiYWJl
bC1wcmVzZXQtc3RhZ2UtMCI6ICJeNi41LjAiLAorICAgICJjc3MtbG9hZGVyIjogIl4wLjI2LjAi
LAorICAgICJleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW4iOiAiXjEuMC4xIiwKKyAgICAiZ2gt
cGFnZXMiOiAiXjAuMTIuMCIsCisgICAgImh0dHAtc2VydmVyIjogIl4wLjkuMCIsCisgICAgIm1r
ZGlycCI6ICJeMC41LjEiLAorICAgICJuY3AiOiAiXjIuMC4wIiwKKyAgICAicmVwbGFjZS1idW5k
bGUtd2VicGFjay1wbHVnaW4iOiAiXjEuMC4wIiwKKyAgICAicm9sbHVwIjogIl4wLjM2LjQiLAor
ICAgICJyb2xsdXAtcGx1Z2luLWJhYmVsIjogIl4yLjYuMSIsCisgICAgInJvbGx1cC1wbHVnaW4t
Y29tbW9uanMiOiAiXjUuMC41IiwKKyAgICAicm9sbHVwLXBsdWdpbi1ub2RlLXJlc29sdmUiOiAi
XjIuMC4wIiwKKyAgICAic3R5bGUtbG9hZGVyIjogIl4wLjEzLjAiLAorICAgICJ3ZWJwYWNrIjog
Il4xLjEyLjE0IiwKKyAgICAid2VicGFjay1kZXYtc2VydmVyIjogIl4xLjE0LjEiCisgIH0sCisg
ICJkZXBlbmRlbmNpZXMiOiB7CisgICAgInByZWFjdCI6ICJeNy4xLjAiLAorICAgICJwcmVhY3Qt
cm91dGVyIjogIl4yLjMuMiIsCisgICAgInRvZG9tdmMtYXBwLWNzcyI6ICJeMi4wLjMiLAorICAg
ICJ0b2RvbXZjLWNvbW1vbiI6ICJeMS4wLjIiCisgIH0KK30KZGlmZiAtLWdpdCBhL1BlcmZvcm1h
bmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1w
bGVzL3ByZWFjdC9yb2xsdXAuY29uZmlnLmpzIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRl
ci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3JvbGx1cC5j
b25maWcuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDhjNTlhYWQ1ODU4YzBkYjIzNDk1ZmYzOWRkZTViZjNlMmZh
Nzg4ZAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVz
b3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9yb2xsdXAuY29uZmln
LmpzCkBAIC0wLDAgKzEsMjcgQEAKK2ltcG9ydCBub2RlUmVzb2x2ZSBmcm9tICdyb2xsdXAtcGx1
Z2luLW5vZGUtcmVzb2x2ZSc7CitpbXBvcnQgY29tbW9uanMgZnJvbSAncm9sbHVwLXBsdWdpbi1j
b21tb25qcyc7CitpbXBvcnQgYmFiZWwgZnJvbSAncm9sbHVwLXBsdWdpbi1iYWJlbCc7CisKK2V4
cG9ydCBkZWZhdWx0IHsKKyAgICBlbnRyeTogJ3NyYy9pbmRleC5qcycsCisgICAgZGVzdDogJ2J1
aWxkL2FwcC5qcycsCisgICAgZm9ybWF0OiAnaWlmZScsCisgICAgc291cmNlTWFwOiB0cnVlLAor
ICAgIGV4dGVybmFsOiBbXSwKKyAgICBwbHVnaW5zOiBbCisgICAgICAgIGJhYmVsKHsKKyAgICAg
ICAgICAgIGJhYmVscmM6IGZhbHNlLAorICAgICAgICAgICAgcHJlc2V0czogWworICAgICAgICAg
ICAgICAgIFsnZXMyMDE1JywgeyBsb29zZTp0cnVlLCBtb2R1bGVzOmZhbHNlIH1dLAorICAgICAg
ICAgICAgICAgICdzdGFnZS0wJworICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIHBsdWdpbnM6
IFsKKyAgICAgICAgICAgICAgICBbJ3RyYW5zZm9ybS1yZWFjdC1qc3gnLCB7IHByYWdtYTonaCcg
fV0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSksCisgICAgICAgIG5vZGVSZXNvbHZlKHsKKyAg
ICAgICAgICAgIGpzbmV4dDogdHJ1ZQorICAgICAgICB9KSwKKyAgICAgICAgY29tbW9uanMoKQor
ICAgIF0KK307CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291
cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9mb290ZXIu
anMgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hp
dGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9mb290ZXIuanMKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNi
MGZmNWQwOWY5YzI2OTdlMTZiNjVhNjA1YTA3NjY2ZmM4OTZjMwotLS0gL2Rldi9udWxsCisrKyBi
L1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0
dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2Zvb3Rlci5qcwpAQCAtMCwwICsxLDMyIEBACitp
bXBvcnQgeyBoLCBDb21wb25lbnQgfSBmcm9tICdwcmVhY3QnOworaW1wb3J0IHsgcGx1cmFsaXpl
IH0gZnJvbSAnLi91dGlsJzsKKworZXhwb3J0IGRlZmF1bHQgY2xhc3MgVG9kb0Zvb3RlciBleHRl
bmRzIENvbXBvbmVudCB7CisgICAgcmVuZGVyKHsgbm93U2hvd2luZywgY291bnQsIGNvbXBsZXRl
ZENvdW50LCBvbkNsZWFyQ29tcGxldGVkIH0pIHsKKyAgICAgICAgcmV0dXJuICgKKyAgICAgICAg
ICAgIDxmb290ZXIgY2xhc3M9ImZvb3RlciI+CisgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9
InRvZG8tY291bnQiPgorICAgICAgICAgICAgICAgICAgICA8c3Ryb25nPntjb3VudH08L3N0cm9u
Zz4ge3BsdXJhbGl6ZShjb3VudCwgJ2l0ZW0nKX0gbGVmdAorICAgICAgICAgICAgICAgIDwvc3Bh
bj4KKyAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImZpbHRlcnMiPgorICAgICAgICAgICAgICAg
ICAgICA8bGk+CisgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjLyIgY2xhc3M9e25v
d1Nob3dpbmc9PSdhbGwnICYmICdzZWxlY3RlZCd9PkFsbDwvYT4KKyAgICAgICAgICAgICAgICAg
ICAgPC9saT4KKyAgICAgICAgICAgICAgICAgICAgeycgJ30KKyAgICAgICAgICAgICAgICAgICAg
PGxpPgorICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIy9hY3RpdmUiIGNsYXNzPXtu
b3dTaG93aW5nPT0nYWN0aXZlJyAmJiAnc2VsZWN0ZWQnfT5BY3RpdmU8L2E+CisgICAgICAgICAg
ICAgICAgICAgIDwvbGk+CisgICAgICAgICAgICAgICAgICAgIHsnICd9CisgICAgICAgICAgICAg
ICAgICAgIDxsaT4KKyAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMvY29tcGxldGVk
IiBjbGFzcz17bm93U2hvd2luZz09J2NvbXBsZXRlZCcgJiYgJ3NlbGVjdGVkJ30+Q29tcGxldGVk
PC9hPgorICAgICAgICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgICAgIDwvdWw+Cisg
ICAgICAgICAgICAgICAgeyBjb21wbGV0ZWRDb3VudCA+IDAgJiYgKAorICAgICAgICAgICAgICAg
ICAgICA8YnV0dG9uIGNsYXNzPSJjbGVhci1jb21wbGV0ZWQiIG9uQ2xpY2s9e29uQ2xlYXJDb21w
bGV0ZWR9PgorICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYXIgY29tcGxldGVkCisgICAgICAg
ICAgICAgICAgICAgIDwvYnV0dG9uPgorICAgICAgICAgICAgICAgICkgfQorICAgICAgICAgICAg
PC9mb290ZXI+CisgICAgICAgICk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VU
ZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMv
cHJlYWN0L3NyYy9hcHAvaW5kZXguanMgYi9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jl
c291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9pbmRl
eC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NmY4N2NlMjhhYjE2M2U1ZDNmYWQ3NTg4M2JiZGVmZTUzOGJmODIz
Ci0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJj
ZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvaW5kZXguanMK
QEAgLTAsMCArMSwxMzIgQEAKK2ltcG9ydCB7IGgsIENvbXBvbmVudCB9IGZyb20gJ3ByZWFjdCc7
CitpbXBvcnQgVG9kb01vZGVsIGZyb20gJy4vbW9kZWwnOworaW1wb3J0IFRvZG9Gb290ZXIgZnJv
bSAnLi9mb290ZXInOworaW1wb3J0IFRvZG9JdGVtIGZyb20gJy4vaXRlbSc7CisKK2NvbnN0IEVO
VEVSX0tFWSA9IDEzOworCitjb25zdCBGSUxURVJTID0geworICAgIGFsbDogdG9kbyA9PiB0cnVl
LAorICAgIGFjdGl2ZTogdG9kbyA9PiAhdG9kby5jb21wbGV0ZWQsCisgICAgY29tcGxldGVkOiB0
b2RvID0+IHRvZG8uY29tcGxldGVkCit9OworCitleHBvcnQgZGVmYXVsdCBjbGFzcyBBcHAgZXh0
ZW5kcyBDb21wb25lbnQgeworICAgIGNvbnN0cnVjdG9yKCkgeworICAgICAgICBzdXBlcigpOwor
ICAgICAgICB0aGlzLm1vZGVsID0gbmV3IFRvZG9Nb2RlbCgncHJlYWN0LXRvZG9zJywgKCkgPT4g
dGhpcy5zZXRTdGF0ZSh7fSkgKTsKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcignaGFzaGNoYW5n
ZScsIHRoaXMuaGFuZGxlUm91dGUuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuaGFuZGxlUm91
dGUoKTsKKyAgICB9CisKKyAgICBoYW5kbGVSb3V0ZSgpIHsKKyAgICAgICAgbGV0IG5vd1Nob3dp
bmcgPSBTdHJpbmcobG9jYXRpb24uaGFzaHx8JycpLnNwbGl0KCcvJykucG9wKCk7CisgICAgICAg
IGlmICghRklMVEVSU1tub3dTaG93aW5nXSkgeworICAgICAgICAgICAgbm93U2hvd2luZyA9ICdh
bGwnOworICAgICAgICB9CisgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBub3dTaG93aW5nIH0pOwor
ICAgIH0KKworICAgIGhhbmRsZU5ld1RvZG9LZXlEb3duID0gZSA9PiB7CisgICAgICAgIGlmIChl
LmtleUNvZGUhPT1FTlRFUl9LRVkpIHJldHVybjsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgp
OworCisgICAgICAgIC8vIGxldCB2YWwgPSAnJzsKKyAgICAgICAgLy8gaWYgKHRoaXMuc3RhdGUu
bmV3VG9kbyA9PT0gdW5kZWZpbmVkKSB7CisgICAgICAgIC8vICB2YWwgPSBlLnRhcmdldC52YWx1
ZS50cmltKCk7CisgICAgICAgIC8vIH0KKworICAgICAgICBsZXQgdmFsID0gZS50YXJnZXQudmFs
dWUudHJpbSgpOworCisgICAgICAgIGlmICh2YWwpIHsKKyAgICAgICAgICAgIHRoaXMubW9kZWwu
YWRkVG9kbyh2YWwpOworICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IG5ld1RvZG86ICcnIH0p
OworICAgICAgICB9CisgICAgfTsKKworICAgIHRvZ2dsZUFsbCA9IGV2ZW50ID0+IHsKKyAgICAg
ICAgbGV0IGNoZWNrZWQgPSBldmVudC50YXJnZXQuY2hlY2tlZDsKKyAgICAgICAgdGhpcy5tb2Rl
bC50b2dnbGVBbGwoY2hlY2tlZCk7CisgICAgfTsKKworICAgIHRvZ2dsZSA9IHRvZG8gPT4gewor
ICAgICAgICB0aGlzLm1vZGVsLnRvZ2dsZSh0b2RvKTsKKyAgICB9OworCisgICAgZGVzdHJveSA9
IHRvZG8gPT4geworICAgICAgICB0aGlzLm1vZGVsLmRlc3Ryb3kodG9kbyk7CisgICAgfTsKKwor
ICAgIGVkaXQgPSB0b2RvID0+IHsKKyAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRpbmc6IHRv
ZG8uaWQgfSk7CisgICAgfTsKKworICAgIHNhdmUgPSAodG9kb1RvU2F2ZSwgdGV4dCkgPT4gewor
ICAgICAgICB0aGlzLm1vZGVsLnNhdmUodG9kb1RvU2F2ZSwgdGV4dCk7CisgICAgICAgIHRoaXMu
c2V0U3RhdGUoeyBlZGl0aW5nOiBudWxsIH0pOworICAgIH07CisKKyAgICBjYW5jZWwgPSAoKSA9
PiB7CisgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0aW5nOiBudWxsIH0pOworICAgIH07CisK
KyAgICBjbGVhckNvbXBsZXRlZCA9ICgpID0+IHsKKyAgICAgICAgdGhpcy5tb2RlbC5jbGVhckNv
bXBsZXRlZCgpOworICAgIH07CisKKyAgICByZW5kZXIoeyB9LCB7IG5vd1Nob3dpbmc9QUxMX1RP
RE9TLCBuZXdUb2RvLCBlZGl0aW5nIH0pIHsKKyAgICAgICAgbGV0IHsgdG9kb3MgfSA9IHRoaXMu
bW9kZWwsCisgICAgICAgICAgICBzaG93blRvZG9zID0gdG9kb3MuZmlsdGVyKCBGSUxURVJTW25v
d1Nob3dpbmddICksCisgICAgICAgICAgICBhY3RpdmVUb2RvQ291bnQgPSB0b2Rvcy5yZWR1Y2Uo
IChhLCB0b2RvKSA9PiBhICsgKHRvZG8uY29tcGxldGVkID8gMCA6IDEpLCAwKSwKKyAgICAgICAg
ICAgIGNvbXBsZXRlZENvdW50ID0gdG9kb3MubGVuZ3RoIC0gYWN0aXZlVG9kb0NvdW50OworCisg
ICAgICAgIHJldHVybiAoCisgICAgICAgICAgICA8ZGl2PgorICAgICAgICAgICAgICAgIDxoZWFk
ZXIgY2xhc3M9ImhlYWRlciI+CisgICAgICAgICAgICAgICAgICAgIDxoMT50b2RvczwvaDE+Cisg
ICAgICAgICAgICAgICAgICAgIDxpbnB1dAorICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9
Im5ldy10b2RvIgorICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9IldoYXQgbmVl
ZHMgdG8gYmUgZG9uZT8iCisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17bmV3VG9kb30K
KyAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17dGhpcy5oYW5kbGVOZXdUb2RvS2V5
RG93bn0KKyAgICAgICAgICAgICAgICAgICAgICAgIG9uSW5wdXQ9e3RoaXMubGlua1N0YXRlKCdu
ZXdUb2RvJyl9CisgICAgICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM9e3RydWV9CisgICAg
ICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgPC9oZWFkZXI+CisKKyAgICAgICAg
ICAgICAgICB7IHRvZG9zLmxlbmd0aCA/ICgKKyAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24g
Y2xhc3M9Im1haW4iPgorICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xhc3M9InRvZ2dsZS1hbGwiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZT0iY2hlY2tib3giCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25D
aGFuZ2U9e3RoaXMudG9nZ2xlQWxsfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNr
ZWQ9e2FjdGl2ZVRvZG9Db3VudCA9PT0gMH0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8+Cisg
ICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InRvZG8tbGlzdCI+CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyBzaG93blRvZG9zLm1hcCggdG9kbyA9PiAoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDxUb2RvSXRlbQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdG9kbz17dG9kb30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9uVG9nZ2xlPXt0aGlzLnRvZ2dsZX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9uRGVzdHJveT17dGhpcy5kZXN0cm95fQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb25FZGl0PXt0aGlzLmVkaXR9CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlZGl0aW5nPXtlZGl0aW5nID09PSB0b2RvLmlkfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb25TYXZlPXt0aGlzLnNhdmV9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5jYW5jZWx9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkgfQor
ICAgICAgICAgICAgICAgICAgICAgICAgPC91bD4KKyAgICAgICAgICAgICAgICAgICAgPC9zZWN0
aW9uPgorICAgICAgICAgICAgICAgICkgOiBudWxsIH0KKworICAgICAgICAgICAgICAgIHsgKGFj
dGl2ZVRvZG9Db3VudCB8fCBjb21wbGV0ZWRDb3VudCkgPyAoCisgICAgICAgICAgICAgICAgICAg
IDxUb2RvRm9vdGVyCisgICAgICAgICAgICAgICAgICAgICAgICBjb3VudD17YWN0aXZlVG9kb0Nv
dW50fQorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGVkQ291bnQ9e2NvbXBsZXRlZENv
dW50fQorICAgICAgICAgICAgICAgICAgICAgICAgbm93U2hvd2luZz17bm93U2hvd2luZ30KKyAg
ICAgICAgICAgICAgICAgICAgICAgIG9uQ2xlYXJDb21wbGV0ZWQ9e3RoaXMuY2xlYXJDb21wbGV0
ZWR9CisgICAgICAgICAgICAgICAgICAgIC8+CisgICAgICAgICAgICAgICAgKSA6IG51bGwgfQor
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUt
ZXhhbXBsZXMvcHJlYWN0L3NyYy9hcHAvaXRlbS5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRv
bWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMv
YXBwL2l0ZW0uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg1NDAyMmRhZjkzMzBmZjBhODRmOTYzMTNmODljNzVh
OTVjMjgzYQotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIv
cmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL2l0
ZW0uanMKQEAgLTAsMCArMSw4NCBAQAoraW1wb3J0IHsgaCwgQ29tcG9uZW50IH0gZnJvbSAncHJl
YWN0JzsKKworY29uc3QgRVNDQVBFX0tFWSA9IDI3OworY29uc3QgRU5URVJfS0VZID0gMTM7CisK
K2V4cG9ydCBkZWZhdWx0IGNsYXNzIFRvZG9JdGVtIGV4dGVuZHMgQ29tcG9uZW50IHsKKyAgICBo
YW5kbGVTdWJtaXQgPSAoKSA9PiB7CisgICAgICAgIGxldCB7IG9uU2F2ZSwgb25EZXN0cm95LCB0
b2RvIH0gPSB0aGlzLnByb3BzLAorICAgICAgICAgICAgdmFsID0gdGhpcy5zdGF0ZS5lZGl0VGV4
dC50cmltKCk7CisgICAgICAgIGlmICh2YWwpIHsKKyAgICAgICAgICAgIG9uU2F2ZSh0b2RvLCB2
YWwpOworICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGVkaXRUZXh0OiB2YWwgfSk7CisgICAg
ICAgIH0KKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvbkRlc3Ryb3kodG9kbyk7CisgICAg
ICAgIH0KKyAgICB9OworCisgICAgaGFuZGxlRWRpdCA9ICgpID0+IHsKKyAgICAgICAgbGV0IHsg
b25FZGl0LCB0b2RvIH0gPSB0aGlzLnByb3BzOworICAgICAgICBvbkVkaXQodG9kbyk7CisgICAg
ICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0VGV4dDogdG9kby50aXRsZSB9KTsKKyAgICB9OworCisg
ICAgdG9nZ2xlID0gZSA9PiB7CisgICAgICAgIGxldCB7IG9uVG9nZ2xlLCB0b2RvIH0gPSB0aGlz
LnByb3BzOworICAgICAgICBvblRvZ2dsZSh0b2RvKTsKKyAgICAgICAgZS5wcmV2ZW50RGVmYXVs
dCgpOworICAgIH07CisKKyAgICBoYW5kbGVLZXlEb3duID0gZSA9PiB7CisgICAgICAgIGlmIChl
LndoaWNoPT09RVNDQVBFX0tFWSkgeworICAgICAgICAgICAgbGV0IHsgdG9kbyB9ID0gdGhpcy5w
cm9wczsKKyAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBlZGl0VGV4dDogdG9kby50aXRsZSB9
KTsKKyAgICAgICAgICAgIHRoaXMucHJvcHMub25DYW5jZWwodG9kbyk7CisgICAgICAgIH0KKyAg
ICAgICAgZWxzZSBpZiAoZS53aGljaD09PUVOVEVSX0tFWSkgeworICAgICAgICAgICAgdGhpcy5o
YW5kbGVTdWJtaXQoKTsKKyAgICAgICAgfQorICAgIH07CisgICAgCisgICAgaGFuZGxlRGVzdHJv
eSA9ICgpID0+IHsKKyAgICAgICAgdGhpcy5wcm9wcy5vbkRlc3Ryb3kodGhpcy5wcm9wcy50b2Rv
KTsKKyAgICB9OworCisgICAgLy8gc2hvdWxkQ29tcG9uZW50VXBkYXRlKHsgdG9kbywgZWRpdGlu
ZywgZWRpdFRleHQgfSkgeworICAgIC8vICByZXR1cm4gKAorICAgIC8vICAgICAgdG9kbyAhPT0g
dGhpcy5wcm9wcy50b2RvIHx8CisgICAgLy8gICAgICBlZGl0aW5nICE9PSB0aGlzLnByb3BzLmVk
aXRpbmcgfHwKKyAgICAvLyAgICAgIGVkaXRUZXh0ICE9PSB0aGlzLnN0YXRlLmVkaXRUZXh0Cisg
ICAgLy8gICk7CisgICAgLy8gfQorCisgICAgY29tcG9uZW50RGlkVXBkYXRlKCkgeworICAgICAg
ICBsZXQgbm9kZSA9IHRoaXMuYmFzZSAmJiB0aGlzLmJhc2UucXVlcnlTZWxlY3RvcignLmVkaXQn
KTsKKyAgICAgICAgaWYgKG5vZGUpIG5vZGUuZm9jdXMoKTsKKyAgICB9CisKKyAgICByZW5kZXIo
eyB0b2RvOnsgdGl0bGUsIGNvbXBsZXRlZCB9LCBvblRvZ2dsZSwgb25EZXN0cm95LCBlZGl0aW5n
IH0sIHsgZWRpdFRleHQgfSkgeworICAgICAgICByZXR1cm4gKAorICAgICAgICAgICAgPGxpIGNs
YXNzPXt7IGNvbXBsZXRlZCwgZWRpdGluZyB9fT4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNz
PSJ2aWV3Ij4KKyAgICAgICAgICAgICAgICAgICAgPGlucHV0CisgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzcz0idG9nZ2xlIgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT0iY2hlY2ti
b3giCisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtjb21wbGV0ZWR9CisgICAgICAg
ICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy50b2dnbGV9CisgICAgICAgICAgICAgICAg
ICAgIC8+CisgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBvbkRibENsaWNrPXt0aGlzLmhhbmRs
ZUVkaXR9Pnt0aXRsZX08L2xhYmVsPgorICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNz
PSJkZXN0cm95IiBvbkNsaWNrPXt0aGlzLmhhbmRsZURlc3Ryb3l9IC8+CisgICAgICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgICAgICAgICAgeyBlZGl0aW5nICYmICgKKyAgICAgICAgICAgICAg
ICAgICAgPGlucHV0CisgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz0iZWRpdCIKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHZhbHVlPXtlZGl0VGV4dH0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9uQmx1cj17dGhpcy5oYW5kbGVTdWJtaXR9CisgICAgICAgICAgICAgICAgICAgICAgICBv
bklucHV0PXt0aGlzLmxpbmtTdGF0ZSgnZWRpdFRleHQnKX0KKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9uS2V5RG93bj17dGhpcy5oYW5kbGVLZXlEb3dufQorICAgICAgICAgICAgICAgICAgICAv
PgorICAgICAgICAgICAgICAgICkgfQorICAgICAgICAgICAgPC9saT4KKyAgICAgICAgKTsKKyAg
ICB9Cit9CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNl
cy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9tb2RlbC5qcyBi
L1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0
dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL21vZGVsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjOGFhZTFk
NTFhMGM0MzFiOGJmMjg0OGRjNDk5YWI0Mzc3Njk0MzUKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJm
b3JtYW5jZVRlc3RzL1NwZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1l
eGFtcGxlcy9wcmVhY3Qvc3JjL2FwcC9tb2RlbC5qcwpAQCAtMCwwICsxLDU0IEBACitpbXBvcnQg
eyB1dWlkLCBzdG9yZSB9IGZyb20gJy4vdXRpbCc7CisKK2V4cG9ydCBkZWZhdWx0IGNsYXNzIFRv
ZG9Nb2RlbCB7CisgICAgY29uc3RydWN0b3Ioa2V5LCBzdWIpIHsKKyAgICAgICAgdGhpcy5rZXkg
PSBrZXk7CisgICAgICAgIHRoaXMudG9kb3MgPSBzdG9yZShrZXkpIHx8IFtdOworICAgICAgICB0
aGlzLm9uQ2hhbmdlcyA9IFtzdWJdOworICAgIH0KKworICAgIGluZm9ybSgpIHsKKyAgICAgICAg
c3RvcmUodGhpcy5rZXksIHRoaXMudG9kb3MpOworICAgICAgICB0aGlzLm9uQ2hhbmdlcy5mb3JF
YWNoKCBjYiA9PiBjYigpICk7CisgICAgfQorCisgICAgYWRkVG9kbyh0aXRsZSkgeworICAgICAg
ICB0aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5jb25jYXQoeworICAgICAgICAgICAgaWQ6IHV1aWQo
KSwKKyAgICAgICAgICAgIHRpdGxlLAorICAgICAgICAgICAgY29tcGxldGVkOiBmYWxzZQorICAg
ICAgICB9KTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsKKyAgICB9CisKKyAgICB0b2dnbGVBbGwo
Y29tcGxldGVkKSB7CisgICAgICAgIHRoaXMudG9kb3MgPSB0aGlzLnRvZG9zLm1hcCgKKyAgICAg
ICAgICAgIHRvZG8gPT4gKHsgLi4udG9kbywgY29tcGxldGVkIH0pCisgICAgICAgICk7CisgICAg
ICAgIHRoaXMuaW5mb3JtKCk7CisgICAgfQorCisgICAgdG9nZ2xlKHRvZG9Ub1RvZ2dsZSkgewor
ICAgICAgICB0aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5tYXAoIHRvZG8gPT4gKAorICAgICAgICAg
ICAgdG9kbyAhPT0gdG9kb1RvVG9nZ2xlID8gdG9kbyA6ICh7IC4uLnRvZG8sIGNvbXBsZXRlZDog
IXRvZG8uY29tcGxldGVkIH0pCisgICAgICAgICkgKTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsK
KyAgICB9CisKKyAgICBkZXN0cm95KHRvZG8pIHsKKyAgICAgICAgdGhpcy50b2RvcyA9IHRoaXMu
dG9kb3MuZmlsdGVyKCB0ID0+IHQgIT09IHRvZG8gKTsKKyAgICAgICAgdGhpcy5pbmZvcm0oKTsK
KyAgICB9CisKKyAgICBzYXZlKHRvZG9Ub1NhdmUsIHRpdGxlKSB7CisgICAgICAgIHRoaXMudG9k
b3MgPSB0aGlzLnRvZG9zLm1hcCggdG9kbyA9PiAoCisgICAgICAgICAgICB0b2RvICE9PSB0b2Rv
VG9TYXZlID8gdG9kbyA6ICh7IC4uLnRvZG8sIHRpdGxlIH0pCisgICAgICAgICkpOworICAgICAg
ICB0aGlzLmluZm9ybSgpOworICAgIH0KKworICAgIGNsZWFyQ29tcGxldGVkKCkgeworICAgICAg
ICB0aGlzLnRvZG9zID0gdGhpcy50b2Rvcy5maWx0ZXIoIHRvZG8gPT4gIXRvZG8uY29tcGxldGVk
ICk7CisgICAgICAgIHRoaXMuaW5mb3JtKCk7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvUGVyZm9y
bWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhh
bXBsZXMvcHJlYWN0L3NyYy9hcHAvdXRpbC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0
ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBw
L3V0aWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTJlMjcxNmIyMjEwYjBlZWJiNTI2MDg5OWY0MTE4ZDk0NzFk
ZTQ5OAotLS0gL2Rldi9udWxsCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVz
b3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvYXBwL3V0aWwu
anMKQEAgLTAsMCArMSwyMyBAQAorZXhwb3J0IGZ1bmN0aW9uIHV1aWQoKSB7CisgICAgbGV0IHV1
aWQgPSAnJzsKKyAgICBmb3IgKGxldCBpPTA7IGk8MzI7IGkrKykgeworICAgICAgICBsZXQgcmFu
ZG9tID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMDsKKyAgICAgICAgaWYgKGkgPT09IDggfHwgaSA9
PT0gMTIgfHwgaSA9PT0gMTYgfHwgaSA9PT0gMjApIHsKKyAgICAgICAgICAgIHV1aWQgKz0gJy0n
OworICAgICAgICB9CisgICAgICAgIHV1aWQgKz0gKGkgPT09IDEyID8gNCA6IChpID09PSAxNiA/
IChyYW5kb20gJiAzIHwgOCkgOiByYW5kb20pKS50b1N0cmluZygxNik7CisgICAgfQorICAgIHJl
dHVybiB1dWlkOworfQorCitleHBvcnQgZnVuY3Rpb24gcGx1cmFsaXplKGNvdW50LCB3b3JkKSB7
CisgICAgcmV0dXJuIGNvdW50ID09PSAxID8gd29yZCA6IHdvcmQgKyAncyc7Cit9CisKK2V4cG9y
dCBmdW5jdGlvbiBzdG9yZShuYW1lc3BhY2UsIGRhdGEpIHsKKyAgICAvLyBpZiAoZGF0YSkgcmV0
dXJuIGxvY2FsU3RvcmFnZVtuYW1lc3BhY2VdID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7CisKKyAg
ICAvLyBsZXQgc3RvcmUgPSBsb2NhbFN0b3JhZ2VbbmFtZXNwYWNlXTsKKyAgICAvLyByZXR1cm4g
c3RvcmUgJiYgSlNPTi5wYXJzZShzdG9yZSkgfHwgW107CisgICAgcmV0dXJuIFtdOworfQpkaWZm
IC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9h
cmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3NyYy9pbmRleC5odG1sIGIvUGVyZm9ybWFuY2VU
ZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMv
cHJlYWN0L3NyYy9pbmRleC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZDZkNmJkNjdlYTFiODQyOGFlNzg5
ZTIwMWE4ODM1ZmUxZWYyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9QZXJmb3JtYW5jZVRlc3RzL1Nw
ZWVkb21ldGVyL3Jlc291cmNlcy90b2RvbXZjL2FyY2hpdGVjdHVyZS1leGFtcGxlcy9wcmVhY3Qv
c3JjL2luZGV4Lmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbCBs
YW5nPSJlbiIgZGF0YS1mcmFtZXdvcms9InByZWFjdCI+CisgICAgPGhlYWQ+CisgICAgICAgIDxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPlByZWFjdCDigKIgVG9kb01WQzwv
dGl0bGU+CisgICAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0idG9kb212Yy1jb21t
b24vYmFzZS5jc3MiPgorICAgICAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9InRvZG9t
dmMuY3NzIj4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzZWN0aW9uIGNsYXNz
PSJ0b2RvYXBwIj48L3NlY3Rpb24+CisgICAgICAgIDxmb290ZXIgY2xhc3M9ImluZm8iPgorICAg
ICAgICAgICAgPHA+RG91YmxlLWNsaWNrIHRvIGVkaXQgYSB0b2RvPC9wPgorICAgICAgICAgICAg
PHA+UGFydCBvZiA8YSBocmVmPSJodHRwOi8vdG9kb212Yy5jb20iPlRvZG9NVkM8L2E+PC9wPgor
ICAgICAgICA8L2Zvb3Rlcj4KKyAgICAgICAgPHNjcmlwdCBzcmM9ImFwcC5qcyI+PC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvUGVyZm9ybWFuY2VUZXN0cy9TcGVl
ZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhhbXBsZXMvcHJlYWN0L3Ny
Yy9pbmRleC5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9t
dmMvYXJjaGl0ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NTZiYzUxZmRmMTYwZmYyNmViMTVhMDMyMGRhM2NiNmZjNTNjMDMxMwotLS0gL2Rldi9udWxsCisr
KyBiL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0
ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC9zcmMvaW5kZXguanMKQEAgLTAsMCArMSw2IEBACitpbXBv
cnQgeyBoLCByZW5kZXIgfSBmcm9tICdwcmVhY3QnOworaW1wb3J0IEFwcCBmcm9tICcuL2FwcCc7
CisvLyBpbXBvcnQgJ3RvZG9tdmMtY29tbW9uJzsKKy8vIGltcG9ydCAndG9kb212Yy1jb21tb24v
YmFzZS5jc3MnOworLy8gaW1wb3J0ICd0b2RvbXZjLWFwcC1jc3MvaW5kZXguY3NzJzsKK3JlbmRl
cig8QXBwIC8+LCBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcudG9kb2FwcCcpKTsKZGlmZiAtLWdp
dCBhL1BlcmZvcm1hbmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0
ZWN0dXJlLWV4YW1wbGVzL3ByZWFjdC93ZWJwYWNrLmNvbmZpZy5iYWJlbC5qcyBiL1BlcmZvcm1h
bmNlVGVzdHMvU3BlZWRvbWV0ZXIvcmVzb3VyY2VzL3RvZG9tdmMvYXJjaGl0ZWN0dXJlLWV4YW1w
bGVzL3ByZWFjdC93ZWJwYWNrLmNvbmZpZy5iYWJlbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYTcyZTRjNzA5
NmE0NjhjNWM4OTM3MTA2ZWUxMjUyYzQyMmI4NjNiCi0tLSAvZGV2L251bGwKKysrIGIvUGVyZm9y
bWFuY2VUZXN0cy9TcGVlZG9tZXRlci9yZXNvdXJjZXMvdG9kb212Yy9hcmNoaXRlY3R1cmUtZXhh
bXBsZXMvcHJlYWN0L3dlYnBhY2suY29uZmlnLmJhYmVsLmpzCkBAIC0wLDAgKzEsMzkgQEAKK2lt
cG9ydCBFeHRyYWN0VGV4dFBsdWdpbiBmcm9tICdleHRyYWN0LXRleHQtd2VicGFjay1wbHVnaW4n
OworaW1wb3J0IFJlcGxhY2VQbHVnaW4gZnJvbSAncmVwbGFjZS1idW5kbGUtd2VicGFjay1wbHVn
aW4nOworCittb2R1bGUuZXhwb3J0cyA9IHsKKyAgICBlbnRyeTogeworICAgICAgICBhcHA6ICcu
L3NyYy9pbmRleC5qcycsCisgICAgICAgICd0b2RvbXZjLWNvbW1vbic6ICd0b2RvbXZjLWNvbW1v
bicKKyAgICB9LAorICAgIG91dHB1dDogeworICAgICAgICBwYXRoOiAnLi9idWlsZCcsCisgICAg
ICAgIGZpbGVuYW1lOiAnW25hbWVdLmpzJworICAgIH0sCisgICAgbW9kdWxlOiB7CisgICAgICAg
IGxvYWRlcnM6IFsKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0OiAvXC5qc3g/
JC8sCisgICAgICAgICAgICAgICAgZXhjbHVkZTogL25vZGVfbW9kdWxlcy8sCisgICAgICAgICAg
ICAgICAgbG9hZGVyOiAnYmFiZWwnCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIHRlc3Q6IC9cLmNzcyQvLAorICAgICAgICAgICAgICAgIGxvYWRlcjogRXh0
cmFjdFRleHRQbHVnaW4uZXh0cmFjdCgnc3R5bGUnLCAnY3NzP3NvdXJjZU1hcCcpCisgICAgICAg
ICAgICB9CisgICAgICAgIF0KKyAgICB9LAorICAgIHBsdWdpbnM6IFsKKyAgICAgICAgbmV3IEV4
dHJhY3RUZXh0UGx1Z2luKCdzdHlsZS5jc3MnLCB7IGFsbENodW5rczogdHJ1ZSB9KSwKKyAgICAg
ICAgbmV3IFJlcGxhY2VQbHVnaW4oW3sKKyAgICAgICAgICAgIC8vIHRoaXMgaXMgYWN0dWFsbHkg
dGhlIHByb3BlcnR5IG5hbWUgaHR0cHM6Ly9naXRodWIuY29tL2tpbWhvdS9yZXBsYWNlLWJ1bmRs
ZS13ZWJwYWNrLXBsdWdpbi9pc3N1ZXMvMQorICAgICAgICAgICAgcGFydHRlbjogL3Rocm93XHMr
KG5ld1xzKyk/W2EtekEtWl0rRXJyb3JccypcKC9nLAorICAgICAgICAgICAgcmVwbGFjZW1lbnQ6
ICgpID0+ICdyZXR1cm47KCcKKyAgICAgICAgfV0pCisgICAgXSwKKyAgICBkZXZ0b29sOiAnc291
cmNlLW1hcCcsCisgICAgZGV2U2VydmVyOiB7CisgICAgICAgIHBvcnQ6IHByb2Nlc3MuZW52LlBP
UlQgfHwgODA4MCwKKyAgICAgICAgY29udGVudEJhc2U6ICcuL3NyYycKKyAgICB9Cit9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>