<?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>193782</bug_id>
          
          <creation_ts>2019-01-24 14:20:20 -0800</creation_ts>
          <short_desc>Complete the implementation of generate-xcfilelists</short_desc>
          <delta_ts>2019-01-25 14:24:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Rollin">krollin</reporter>
          <assigned_to name="Keith Rollin">krollin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jeffm</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1497955</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-01-24 14:20:20 -0800</bug_when>
    <thetext>A preliminary version of generate-xcfilelists was added in r238008. It needs to be updated in order to:

* Support checking of .xcfilelists
* Perform better execution of `make DerivedSources.make` by relaunching generate-xcfilelists under xcodebuild
* Support incremental generation and checking of .xcfilelists
* Support supplementary .xcfilelists files from WebKitAdditions
* Support being wrapped by parallel version of generate-xcfilelists in Internal that adds support for (re)generating WebKit projects in that repo.
* Support builds that have been performed in WebKitBuild as well as ~/Library/Developer/code/DerivedData
* Increase robustness and debugging facilities.


&lt;rdar://problem/47201505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498037</commentid>
    <comment_count>1</comment_count>
      <attachid>360051</attachid>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-01-24 16:49:24 -0800</bug_when>
    <thetext>Created attachment 360051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498432</commentid>
    <comment_count>2</comment_count>
      <attachid>360051</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-25 13:48:22 -0800</bug_when>
    <thetext>Comment on attachment 360051
Patch

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

Nothing jumps out as horribly wrong.

&gt; Tools/Scripts/generate-xcfilelists:1
&gt; +#!/bin/bash

bash?!?!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498442</commentid>
    <comment_count>3</comment_count>
    <who name="Keith Rollin">krollin</who>
    <bug_when>2019-01-25 13:54:12 -0800</bug_when>
    <thetext>As opposed to /bin/sh? We effectively use bash features in our other scripts that say /bin/sh, so I figured be clear about it. Also, it helps with my editor&apos;s highlighting if it knows that this is bash code and not plain old sh.

Or as opposed to Python/Perl/Ruby? I guess I started in bash and got carried away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498443</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-01-25 13:55:06 -0800</bug_when>
    <thetext>(In reply to Keith Rollin from comment #3)
&gt; Or as opposed to Python/Perl/Ruby? I guess I started in bash and got carried
&gt; away.
Seriously.  You should&apos;ve used the most elegant language, which is of course Perl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498470</commentid>
    <comment_count>5</comment_count>
      <attachid>360051</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-25 14:24:00 -0800</bug_when>
    <thetext>Comment on attachment 360051
Patch

Clearing flags on attachment: 360051

Committed r240510: &lt;https://trac.webkit.org/changeset/240510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498471</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-01-25 14:24:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360051</attachid>
            <date>2019-01-24 16:49:24 -0800</date>
            <delta_ts>2019-01-25 14:24:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193782-20190124164923.patch</filename>
            <type>text/plain</type>
            <size>64328</size>
            <attacher name="Keith Rollin">krollin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDU0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjRmZjhjYTkzYzYwNzE0NWRmN2MwOGNjMzQ4Nzk2NTdj
N2JhMTgxMy4uZDQ0ZmRiYzcyZDRiYjFkN2Q1MTQxMzFhNTEyMDRlYzVmNDkyYWVhMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDE5LTAxLTI0ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KKworICAg
ICAgICBDb21wbGV0ZSB0aGUgaW1wbGVtZW50YXRpb24gb2YgZ2VuZXJhdGUteGNmaWxlbGlzdHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mzc4Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgcHJlbGlt
aW5hcnkgdmVyc2lvbiBvZiBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyB3YXMgYWRkZWQgaW4gcjIzODAw
OC4KKyAgICAgICAgVGhpcyBwYXRjaCB1cGRhdGVzIHRoYXQgc2NyaXB0IGluIG9yZGVyIHRvOgor
CisgICAgICAgIC0gU3VwcG9ydCBjaGVja2luZyBvZiAueGNmaWxlbGlzdHMKKyAgICAgICAgLSBQ
ZXJmb3JtIGJldHRlciBleGVjdXRpb24gb2YgYG1ha2UgRGVyaXZlZFNvdXJjZXMubWFrZWAgYnkK
KyAgICAgICAgICByZWxhdW5jaGluZyBnZW5lcmF0ZS14Y2ZpbGVsaXN0cyB1bmRlciB4Y29kZWJ1
aWxkCisgICAgICAgIC0gU3VwcG9ydCBpbmNyZW1lbnRhbCBnZW5lcmF0aW9uIGFuZCBjaGVja2lu
ZyBvZiAueGNmaWxlbGlzdHMKKyAgICAgICAgLSBTdXBwb3J0IHN1cHBsZW1lbnRhcnkgLnhjZmls
ZWxpc3RzIGZpbGVzIGZyb20gV2ViS2l0QWRkaXRpb25zCisgICAgICAgIC0gU3VwcG9ydCBiZWlu
ZyB3cmFwcGVkIGJ5IHBhcmFsbGVsIHZlcnNpb24gb2YgZ2VuZXJhdGUteGNmaWxlbGlzdHMgaW4K
KyAgICAgICAgICBJbnRlcm5hbCB0aGF0IGFkZHMgc3VwcG9ydCBmb3IgKHJlKWdlbmVyYXRpbmcg
V2ViS2l0IHByb2plY3RzIGluCisgICAgICAgICAgdGhhdCByZXBvLgorICAgICAgICAtIFN1cHBv
cnQgYnVpbGRzIHRoYXQgaGF2ZSBiZWVuIHBlcmZvcm1lZCBpbiBXZWJLaXRCdWlsZCBhcyB3ZWxs
IGFzCisgICAgICAgICAgfi9MaWJyYXJ5L0RldmVsb3Blci9jb2RlL0Rlcml2ZWREYXRhCisgICAg
ICAgIC0gSW5jcmVhc2Ugcm9idXN0bmVzcyBhbmQgZGVidWdnaW5nIGZhY2lsaXRpZXMuCisKKyAg
ICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLXhjZmlsZWxpc3RzOgorCiAyMDE5LTAxLTI0ICBLZWl0
aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgWGNvZGUgcHJv
amVjdHMgd2l0aCAiQXBwbHkgQ29uZmlndXJhdGlvbiB0byBYQ0ZpbGVMaXN0cyIgYnVpbGQgdGFy
Z2V0CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLXhjZmlsZWxpc3RzIGIvVG9v
bHMvU2NyaXB0cy9nZW5lcmF0ZS14Y2ZpbGVsaXN0cwppbmRleCBiMmY1NTBlMTgwYmMxYzdiMjlh
NmNkZGEwMzk2M2E1OWNiN2NlMTY3Li4wNDI3N2M3ZTUyYWU2YWZhZmMwMjgwOTY1MGU2ZDg2NDZh
NmFmYmU2IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLXhjZmlsZWxpc3RzCisr
KyBiL1Rvb2xzL1NjcmlwdHMvZ2VuZXJhdGUteGNmaWxlbGlzdHMKQEAgLTEsNiArMSw2IEBACi0j
IS9iaW4vc2gKKyMhL2Jpbi9iYXNoCiAjCi0jIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNyw0MzYgKzM3LDEzMzkgQEAKICMgVW5pZmllZFNvdXJjZXMqLmNwcC9tbSBmaWxlcywgYWxi
ZWl0IGluIGEgbW9kZSB0aGF0IHByb2R1Y2VzIC54Y2ZpbGVsaXN0CiAjIGZpbGVzIGluc3RlYWQu
CiAjCi0jIFRoZSBnZW5lcmF0ZWQgRGVyaXZlZFNvdXJjZXMubWFrZSAueGNmaWxlbGlzdCBmaWxl
cyBhcmUgY3JlYXRlZCBpbiBpbiB0aGUKLSMgc2FtZSBkaXJlY3RvcnkgYXMgdGhlIERlcml2ZWRT
b3VyY2VzLm1ha2UgZmlsZS4gVGhlIGdlbmVyYXRlZCBVbmlmaWVkU291cmNlcwotIyAueGNmaWxl
bGlzdCBmaWxlcyBhcmUgY3JlYXRlZCBpbiAke1BST0pFQ1RfRElSfS4KKyMgVGhpcyBzY3JpcHQg
bm90IG9ubHkgZ2VuZXJhdGVzIC54Y2ZpbGVsaXN0cywgYnV0IC0tIHdoZW4gZ2l2ZW4gYSAiY2hl
Y2siCisjIGNvbW1hbmQgLS0gaXQgYWxzbyBjaGVja3MgdGhhdCB0aGV5IGFyZSB1cC10by1kYXRl
LiBJbiB0aGlzIG1vZGUsIHRoZQorIyAueGNmaWxlbGlzdCBmaWxlcyBhcmUgY3JlYXRlZCBpbiBh
IHRlbXBvcmFyeSBsb2NhdGlvbiBhbmQgYXJlIHRoZW4gY29tcGFyZWQKKyMgdG8gdGhlIHZlcnNp
b25zIGNoZWNrZWQgaW50byB0aGUgcmVwb3NpdG9yeS4gSWYgdGhlcmUgYXJlIGRpZmZlcmVuY2Vz
LCB0aGUKKyMgdXNlciBpcyBub3RpZmllZCBzbyB0aGF0IHRoZXkga25vdyB0aGF0IHRoZSAueGNm
aWxlbGlzdCBmaWxlcyBuZWVkIHRvIGJlCisjIHJlZ2VuZXJhdGVkLiBUaGlzIGZhY2lsaXR5IGNh
biBiZSBpbmNvcnBvcmF0ZWQgaW50byBhIGJ1aWxkIHBoYXNlLCBhIGNoZWNrLWluCisjIGhvb2ss
IG9yIGludG8gdGhlIEVXUyAocGVyaGFwcyBhcyBwYXJ0IG9mIGNoZWNrLXdlYmtpdC1zdHlsZSku
CiAjCi0jIFRoaXMgc2NyaXB0IGFzc3VtZXMgdGhhdCB0aGUgZ2VuZXJhdGVkL2Rlcml2ZWQgc291
cmNlcyBhcmUgY3JlYXRlZCBpbiB0aGUKLSMgZm9sbG93aW5nIGxvY2F0aW9uLCBhbmQgaW5jb3Jw
b3JhdGVzIHRoYXQgcGF0aCBpbnRvIHRoZSBwYXRocyBpdCBzdG9yZXMgaW4KLSMgdGhlIC54Y2Zp
bGVsaXN0czoKLSMKLSMgICAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvJHtQ
Uk9KRUNUX05BTUV9LwotIwotIyBTb21ldGltZXMgdGhlIGdlbmVyYXRlZCBmaWxlcyBhcmUgc3Rv
cmVkIGluIHN1Yi1kaXJlY3RvcmllcywgYXMgd2l0aAotIyB1bmlmaWVkLXNvdXJjZXMuIEluIG90
aGVyIGNhc2VzLCB3ZSBuZWVkIHRvIHRha2UgaW50byBhY2NvdW50IHRoZSBmYWN0IHRoYXQKLSMg
Z2VuZXJhdGVkL2Rlcml2ZWQgZmlsZXMgYXJlIHN0b3JlZCBpbiBhIGRpcmVjdG9yeSB3aXRoIGEg
bGVnYWN5IG5hbWUuIEZvcgotIyBpbnN0YW5jZSwgV2ViS2l0IGZpbGVzIGFyZSBzdG9yZWQgaW4g
YSBXZWJLaXQyIGRpcmVjdG9yeSwgYW5kIFdlYktpdExlZ2FjeQotIyBmaWxlcyBhcmUgc3RvcmVk
IGluIGEgV2ViS2l0IGRpcmVjdG9yeS4gVGhpcyBkaXNjcmVwYW5jeSBzaG91bGQgcHJvYmFibHkg
YmUKLSMgY2xlYW5lZCB1cCBzb21lIGRheS4KLSMKLSMgVGhpcyBzY3JpcHQgbm90IG9ubHkgZ2Vu
ZXJhdGVzIC54Y2ZpbGVsaXN0cywgYnV0IC0tIHdoZW4gZ2l2ZW4gYSAtLWNoZWNrCi0jIGNvbW1h
bmQgbGluZSBwYXJhbWV0ZXJzIC0tIGl0IGFsc28gY2hlY2tzIHRoYXQgdGhleSBhcmUgdXAtdG8t
ZGF0ZS4gSW4gdGhpcwotIyBtb2RlLCB0aGUgLnhjZmlsZWxpc3QgZmlsZXMgYXJlIGNyZWF0ZWQg
aW4gYSB0ZW1wb3JhcnkgbG9jYXRpb24gYW5kIGFyZSB0aGVuCi0jIGNvbXBhcmVkIHRvIHRoZSB2
ZXJzaW9ucyBjaGVja2VkIGludG8gdGhlIHJlcG9zaXRvcnkuIElmIHRoZXJlIGFyZQotIyBkaWZm
ZXJlbmNlcywgdGhlIHVzZXIgaXMgbm90aWZpZWQgc28gdGhhdCB0aGV5IGtub3cgdGhhdCB0aGUg
LnhjZmlsZWxpc3QKLSMgZmlsZXMgbmVlZCB0byBiZSByZWdlbmVyYXRlZC4gVGhpcyBmYWNpbGl0
eSBjYW4gYmUgaW5jb3Jwb3JhdGVkIGludG8gYQotIyBidWlsZCBwaGFzZSwgYSBjaGVjay1pbiBo
b29rLCBvciBpbnRvIHRoZSBFV1MgKHBlcmhhcHMgYXMgcGFydCBvZgotIyBjaGVjay13ZWJraXQt
c3R5bGUpLgorIyBBcyBwYXJ0IG9mIGl0cyBvcGVyYXRpb24sIHRoaXMgc2NyaXB0IGNhbiBzdWIt
bGF1bmNoIGl0c2VsZiB1bmRlciBYY29kZS4gSXQKKyMgZG9lcyB0aGlzIGluIG9yZGVyIHRvIGVz
dGFibGlzaCB0aGUgY29udGV4dCBpbiB3aGljaCBidWlsZHMgb2NjdXIuIEluCisjIHBhcnRpY3Vs
YXIsIGl0IGRvZXMgdGhpcyBpbiBvcmRlciB0byBzZXQgbmVlZGVkIGVudmlyb25tZW50IHZhcmlh
Ymxlcy4gSW4KKyMgb3JkZXIgdG8gcHJvdGVjdCBhZ2FpbnN0IGVudmlyb25tZW50IHZhcmlhYmxl
IG5hbWUgY29sbGlzaW9uLCBhbGwgdmFyaWFibGUKKyMgbmFtZXMgaW4gdGhpcyBzY3JpcHQgc3Rh
cnQgd2l0aCAiR1hfIi4KKworCitmdW5jdGlvbiBzdGRvdXQoKQoreworICAgICgoICR7R1hfUVVJ
RVR9ICkpIHx8IGVjaG8gIiRAIiA+JjEKK30KKworCitmdW5jdGlvbiBzdGRlcnIoKQoreworICAg
IGVjaG8gIiRAIiA+JjIKK30KKworCitmdW5jdGlvbiByZW1vdmVfZXh0cmFfc3BhY2VzKCkKK3sK
KyAgICBlY2hvICQxCit9CisKK2Z1bmN0aW9uIHByaW50X29wdGlvbigpCit7CisgICAgbG9jYWwg
R1hfT1BUSU9OPSIkMSIKKyAgICBsb2NhbCBHWF9NRVNTQUdFPSIkKHJlbW92ZV9leHRyYV9zcGFj
ZXMgIiQyIikiCisKKyAgICBsb2NhbCBHWF9MSU5FCisgICAgbG9jYWwgR1hfTElORV9XSURUSD05
MAorICAgIGxvY2FsIEdYX09QVElPTl9XSURUSD0xNworCisgICAgaWYgKCggJHsjR1hfT1BUSU9O
fSA8PSBHWF9PUFRJT05fV0lEVEggKSkKKyAgICB0aGVuCisgICAgICAgIGxvY2FsIEdYX01FU1NB
R0VfQ0FURU5BVEVEPSQocHJpbnRmICIgICUtJHtHWF9PUFRJT05fV0lEVEh9cyAlcyIgIiRHWF9P
UFRJT04iICIkR1hfTUVTU0FHRSIpCisgICAgICAgIGlmICgoICR7I0dYX01FU1NBR0VfQ0FURU5B
VEVEfSA8PSBHWF9MSU5FX1dJRFRIICkpCisgICAgICAgIHRoZW4KKyAgICAgICAgICAgIHN0ZGVy
ciAiJHtHWF9NRVNTQUdFX0NBVEVOQVRFRH0iCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAg
ZmkKKworICAgICAgICBsb2NhbCBHWF9NRVNTQUdFX0ZJUlNUX0xJTkU9IiR7R1hfTUVTU0FHRV9D
QVRFTkFURUQ6MDoke0dYX0xJTkVfV0lEVEh9fSIgICAgIyBHZXQgdGhlIGZpcnN0IDgwIGNoYXJh
Y3RlcnMKKyAgICAgICAgR1hfTUVTU0FHRV9GSVJTVF9MSU5FPSIke0dYX01FU1NBR0VfRklSU1Rf
TElORSUgKn0iICAgICAgICAgICAgICAgICAgICAgICAgICMgVHJpbSBiYWNrIHRvIHRoZSBsYXN0
IHNwYWNlCisgICAgICAgIEdYX01FU1NBR0U9IiR7R1hfTUVTU0FHRV9DQVRFTkFURUQ6JHsjR1hf
TUVTU0FHRV9GSVJTVF9MSU5FfSsxfSIgICAgICAgICAgICAjIEdldCB0aGUgcmVzdCBhZnRlciB0
aGF0IHNwYWNlCisKKyAgICAgICAgc3RkZXJyICIke0dYX01FU1NBR0VfRklSU1RfTElORX0iCisg
ICAgZWxzZQorICAgICAgICBzdGRlcnIgIiAgJHtHWF9PUFRJT059IgorICAgIGZpCisKKyAgICB3
aGlsZSBJRlM9JycgcmVhZCAtciBHWF9MSU5FCisgICAgZG8KKyAgICAgICAgR1hfTElORT0kKHBy
aW50ZiAiICAlJHtHWF9PUFRJT05fV0lEVEh9cyAlcyIgIiIgIiRHWF9MSU5FIikKKyAgICAgICAg
c3RkZXJyICIke0dYX0xJTkV9IgorICAgIGRvbmUgPCA8KGVjaG8gIiR7R1hfTUVTU0FHRX0iIHwg
Zm9sZCAtdyAkKCggR1hfTElORV9XSURUSCAtIEdYX09QVElPTl9XSURUSCAtIDMpKSAtcykKK30K
IAogCi1IRVJFPSIkKGNkICIkKGRpcm5hbWUgIiQwIikiICYmIHB3ZCAtUCkiCitmdW5jdGlvbiBq
b2luX2J5KCkKK3sKKyAgICBsb2NhbCBHWF9ERUxJTT0kMQorICAgIHNoaWZ0CiAKKyAgICBlY2hv
IC1uICIkMSIKKyAgICBzaGlmdAorCisgICAgcHJpbnRmICIlcyIgIiR7QC8jLyR7R1hfREVMSU19
fSIKK30KKworCitmdW5jdGlvbiB1c2FnZSgpCit7CisgICAgbG9jYWwgR1hfSk9JTkVEX1BST0pF
Q1RfVEFHUz0kKGpvaW5fYnkgIiwgIiAiJHtHWF9QUk9KRUNUX1RBR1NbQF19IikKKworICAgIHN0
ZGVyciAiVXNhZ2U6ICQoYmFzZW5hbWUgIiR7R1hfTUV9IikgW09QVElPTi4uLl0gQ09NTUFORCBb
UEFSQU1FVEVSLi4uXSIKKyAgICBzdGRlcnIgIiIKKyAgICBzdGRlcnIgIkdlbmVyYXRlIG9yIGNo
ZWNrIC54Y2ZpbGVsaXN0IGZpbGVzIgorICAgIHN0ZGVyciAiIgorICAgIHN0ZGVyciAiQ29tbWFu
ZHM6IgorICAgIHN0ZGVyciAiIgorICAgIHByaW50X29wdGlvbiAiZ2VuZXJhdGUiICJHZW5lcmF0
ZSBhIGNvbXBsZXRlIGFuZCB1cC10by1kYXRlIHNldCBvZgorICAgICAgICAueGNmaWxlbGlzdCBm
aWxlcyBhbmQgY29weSB0aGVtIHRvIHRoZWlyIGFwcHJvcHJpYXRlIHBsYWNlcyBpbiB0aGUKKyAg
ICAgICAgcHJvamVjdCBkaXJlY3Rvcmllcy4iCisgICAgcHJpbnRfb3B0aW9uICJnZW5lcmF0ZS14
Y29kZSIgIkdlbmVyYXRlIC54Y2ZpbGVsaXN0IGZpbGVzIGZvciB0aGUgY3VycmVudAorICAgICAg
ICB0YXJnZXQgY29uZmlndXJhdGlvbiBhbiBjb3B5IHRoZW0gdG8gdGhlaXIgYXBwcm9wcmlhdGUg
cGxhY2VzIGluIHRoZQorICAgICAgICBwcm9qZWN0IGRpcmVjdG9yaWVzLiBJbnZva2VkIGZyb20g
d2l0aGluZyBYY29kZSB0byB1cGRhdGUgdGhlIGN1cnJlbnQKKyAgICAgICAgYnVpbGQgaWYgbmVl
ZGVkLiIKKyAgICBwcmludF9vcHRpb24gImNoZWNrIiAiR2VuZXJhdGUgYSBjb21wbGV0ZSBhbmQg
dXAtdG8tZGF0ZSBzZXQgb2YgLnhjZmlsZWxpc3QKKyAgICAgICAgZmlsZXMgYW5kIGNvbXBhcmUg
dGhlbSB0byB0aGVpciBjb3VudGVycGFydHMgaW4gdGhlIHByb2plY3QKKyAgICAgICAgZGlyZWN0
b3JpZXMuIgorICAgIHByaW50X29wdGlvbiAiY2hlY2steGNvZGUiICJHZW5lcmF0ZSAueGNmaWxl
bGlzdCBmaWxlcyBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgdGFyZ2V0IGNvbmZpZ3VyYXRpb24g
YW5kIHNlZSBpZiBhbnkgZmlsZXMgYXBwZWFyIHRoYXQgYXJlbid0IGluIHRoZQorICAgICAgICBj
aGVja2VkLWluIC54Y2ZpbGVsaXN0IGZpbGVzLiBJbnZva2VkIGZyb20gd2l0aGluIFhjb2RlIHRv
IHZhbGlkYXRlIHRoZQorICAgICAgICBjdXJyZW50IGJ1aWxkLiIKKyAgICBwcmludF9vcHRpb24g
InN1YmdlbmVyYXRlIiAiR2VuZXJhdGUgYW4gLnhjZmlsZWxpc3QgZmlsZSBmb3IgYSBwYXJ0aWN1
bGFyCisgICAgICAgIGNvbWJpbmF0aW9uIG9mIHByb2plY3QsIHBsYXRmb3JtLCBhbmQgY29uZmln
dXJhdGlvbi4gVGhpcyBvcGVyYXRpb24gaXMKKyAgICAgICAgcGVyZm9ybWVkIGluIHRoZSBjb250
ZXh0IG9mIGFuIFhjb2RlIGJ1aWxkIGluIG9yZGVyIHRvIGluaGVyaXQgdGhlIHNhbWUKKyAgICAg
ICAgZW52aXJvbm1lbnQgYXMgdGhhdCBidWlsZC4iCisgICAgcHJpbnRfb3B0aW9uICJoZWxwIiAi
UHJpbnQgdGhpcyB0ZXh0IGFuZCBleGl0LiIKKyAgICBzdGRlcnIgIiIKKyAgICBzdGRlcnIgIk9w
dGlvbnM6IgorICAgIHN0ZGVyciAiIgorICAgIHByaW50X29wdGlvbiAiLS1wcm9qZWN0IDxwcm9q
ZWN0PiIgIlNwZWNpZnkgd2hpY2ggcHJvamVjdCBmb3Igd2hpY2ggdG8KKyAgICAgICAgZ2VuZXJh
dGUgLnhjZmlsZWxpc3QgZmlsZXMgb3IgdG8gY2hlY2suIFBvc3NpYmxlIHZhbHVlcyBhcmUKKyAg
ICAgICAgKCR7R1hfSk9JTkVEX1BST0pFQ1RfVEFHU30pLiBEZWZhdWx0IGlzIHRvIGl0ZXJhdGUg
b3ZlciBhbGwgcHJvamVjdHMuIgorICAgIHByaW50X29wdGlvbiAiLS1wbGF0Zm9ybSA8cGxhdGZv
cm0+IiAiU3BlY2lmeSB3aGljaCBwbGF0Zm9ybSBmb3Igd2hpY2ggdG8KKyAgICAgICAgZ2VuZXJh
dGUgLnhjZmlsZWxpc3QgZmlsZXMgb3IgdG8gY2hlY2suIFBvc3NpYmxlIHZhbHVlcyBhcmUgKG1h
Y29zeCwKKyAgICAgICAgaXBob25lb3MpLiBEZWZhdWx0IGlzIHRvIGl0ZXJhdGUgb3ZlciBhbGwg
cGxhdGZvcm1zLCBmaWx0ZXJlZCB0byB0aG9zZQorICAgICAgICBwbGF0Zm9ybXMgdGhhdCBhIHBh
cnRpY3VsYXIgcHJvamVjdCBzdXBwb3J0cyAoZS5nLiwgeW91IGNhbid0IHNwZWNpZnkKKyAgICAg
ICAgJ2lwaG9uZW9zJyBmb3IgV2ViS2l0VGVzdFJ1bm5lcikuIgorICAgIHByaW50X29wdGlvbiAi
LS1jb25maWd1cmF0aW9uIDxjb25maWd1cmF0aW9uPiIgIlNwZWNpZnkgd2hpY2ggY29uZmlndXJh
dGlvbgorICAgICAgICBmb3Igd2hpY2ggdG8gZ2VuZXJhdGUgLnhjZmlsZWxpc3QgZmlsZXMgb3Ig
dG8gY2hlY2ssIFBvc3NpYmxlIHZhbHVlcworICAgICAgICBhcmUgKHJlbGVhc2UsIGRlYnVnKS4g
RGVmYXVsdCBpcyB0byBpdGVyYXRlIG92ZXIgYWxsIGNvbmZpZ3VyYXRpb25zLiIKKyAgICBwcmlu
dF9vcHRpb24gIi0teGNvZGUiICJTcGVjaWZ5IHRoYXQgZXhpc3RpbmcgYnVpbGQgb3V0cHV0IGNh
biBiZSBmb3VuZCBpbgorICAgICAgICB0aGUgZGlyZWN0b3J5IGNyZWF0ZWQgYnkgdGhlIFhjb2Rl
IElERSAoaW4gfi9MaWJyYXJ5L0RldmVsb3Blci9YY29kZSkuIgorICAgIHByaW50X29wdGlvbiAi
LS13ZWJraXRidWlsZCIgIlNwZWNpZnkgdGhhdCBleGlzdGluZyBidWlsZCBvdXRwdXQgY2FuIGJl
CisgICAgICAgIGZvdW5kIGluIHRoZSBkaXJlY3RvcnkgdXNlZCBieSB0aGUgV2ViS2l0IG1ha2Ug
ZmlsZXMgb3IgdGhlCisgICAgICAgIGJ1aWxkLXdlYmtpdCBzY3JpcHQgKHRoYXQgaXMsIGluIFdl
YktpdEJ1aWxkIG9yIGluIHRoZSBkaXJlY3RvcnkKKyAgICAgICAgaWRlbnRpZmllZCBieSBXRUJL
SVRfT1VUUFVURElSKS4gVGhpcyBvcHRpb24gaXMgdGhlIGRlZmF1bHQsIHNvIGl0CisgICAgICAg
IGRvZXNuJ3QgcmVhbGx5IGdldCB5b3UgYW55dGhpbmcgYnkgc3BlY2lmeWluZyB0aGlzIG9wdGlv
biAob3IgYnkgbXkKKyAgICAgICAgaW1wbGVtZW50aW5nIGl0KS4iCisgICAgcHJpbnRfb3B0aW9u
ICItLW5vY2xlYW51cCIgIkRpc2FibGUgY2xlYW5pbmcgdXAgdGVtcG9yYXJ5IGZpbGVzIGFmdGVy
IGEKKyAgICAgICAgc3ViZ2VuZXJhdGUgb3BlcmF0aW9uLiBOb3JtYWxseSB0aGVzZSBhcmUgY2xl
YW5lZCB1cCwgYnV0IGlmCisgICAgICAgICdzdWJnZW5lcmF0ZScgaXMgcGFydCBvZiBhbiBvdmVy
YWxsICdnZW5lcmF0ZScgb3BlcmF0aW9uLCB0aGVuIHRoZQorICAgICAgICAnZ2VuZXJhdGUnIG9w
ZXJhdGlvbiBuZWVkcyB0byBrZWVwIGFyb3VuZCB0aGUgdGVtcG9yYXJ5IGZpbGVzIHVudGlsIGl0
CisgICAgICAgIGNhbiBjb21wbGV0ZSBhZ2dyZWdhdGluZyB0aGVtLiIKKyAgICBzdGRlcnIgIiIK
KyAgICBwcmludF9vcHRpb24gIi0tZHJ5LXJ1biIgIldoZW4gcnVubmluZyB0aHJvdWdoIHRoZSBy
ZXF1ZXN0ZWQgcHJvY2VzcywgZG9uJ3QKKyAgICAgICAgbWFrZSBhbnkgbWF0ZXJpYWwgY2hhbmdl
cy4gRm9yIGV4YW1wbGUsIGZvciAnZ2VuZXJhdGUnLCBjcmVhdGUgdGhlIG5ldworICAgICAgICAu
eGNmaWxlbGlzdCBmaWxlcywgYnV0IGRvbid0IGNvcHkgdGhlbSBpbnRvIHRoZWlyIGZpbmFsIGxv
Y2F0aW9ucyIKKyAgICBwcmludF9vcHRpb24gIi0tZGVidWciICJQcm92aWRlIHZlcmJvc2Ugb3V0
cHV0LiIKKyAgICBwcmludF9vcHRpb24gIi0tcXVpZXQiICJEb24ndCBwcmludCBhbnkgc3RkIG91
dHB1dC4iCisgICAgcHJpbnRfb3B0aW9uICItLWhlbHAiICJQcmludCB0aGlzIHRleHQgYW5kIGV4
aXQuIgorICAgIHN0ZGVyciAiIgorfQorCisKK2Z1bmN0aW9uIGNsZWFudXAoKQoreworICAgIGlm
ICgoICR7R1hfRE9fQ0xFQU5VUH0gKSkgJiYgKCggJHtHWF9ERUZFUlJFRF9FWElUX0NPREV9ID09
IDAgKSkKKyAgICB0aGVuCisgICAgICAgIHJtIC1yZiAiJHtHWF9URU1QfSIgJj4gL2Rldi9udWxs
CisgICAgZmkKK30KKworCitmdW5jdGlvbiBteV9leGl0KCkKK3sKKyAgICBsb2NhbCBHWF9FUlI9
JDEKKyAgICBleGl0ICRHWF9FUlIKK30KIAotIyBQcmludCBhbiBlcnJvciBtZXNzYWdlIGFuZCBl
eGl0LgogCiBmdW5jdGlvbiBkaWUoKQogewotICAgIGVjaG8gIiMjIyAkQCIgMT4mMgotICAgIGV4
aXQgMQorICAgIGxvY2FsIEdYX0VSUj0kMgorICAgIFtbICIkR1hfRVJSIiA9PSAiIiBdXSAmJiBH
WF9FUlI9MQorICAgIHN0ZGVyciAiIyMjICgke0ZVTkNOQU1FW0BdfSkgJDEiCisgICAgbXlfZXhp
dCAkR1hfRVJSCit9CisKKworZnVuY3Rpb24gbG9nX2RlYnVnKCkKK3sKKyAgICAoKCAiJHtHWF9E
RUJVR30iID4gMCApKSAmJiBzdGRlcnIgIi4uLiAkQCIKK30KKworCitmdW5jdGlvbiBsb2dfZGVi
dWdfdmFyKCkKK3sKKyAgICBsb2NhbCBHWF9WQVJfTkFNRT0kMQorICAgIGxvY2FsIEdYX0lTX0FS
UkFZPSQoZGVjbGFyZSAtcCAke0dYX1ZBUl9OQU1FfSAyPiAvZGV2L251bGwgfCBncmVwIC1xICde
ZGVjbGFyZSAtYScgJiYgZWNobyAxIHx8IGVjaG8gMCkKKworICAgIGlmICgoICRHWF9JU19BUlJB
WSApKQorICAgIHRoZW4KKyAgICAgICAgbG9nX2RlYnVnICQocHJpbnRmICIlLTQ3cyA9ICglcyki
ICRHWF9WQVJfTkFNRSAiJChldmFsIGVjaG8gXCRceyR7R1hfVkFSX05BTUV9XFtcQFxdXH0pIikK
KyAgICBlbHNlCisgICAgICAgIGxvZ19kZWJ1ZyAkKHByaW50ZiAiJS00N3MgPSAlcyIgJEdYX1ZB
Ul9OQU1FICIkKGV2YWwgZWNobyBcJFx7JHtHWF9WQVJfTkFNRX1cfSkiKQorICAgIGZpCit9CisK
KworZnVuY3Rpb24gbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycygpCit7CisgICAgaWYgKCgg
IiR7R1hfREVCVUd9IiA+ICIxIiApKQorICAgIHRoZW4KKyAgICAgICAgbG9jYWwgR1hfQVJHUz0o
IiRAIikKKyAgICAgICAgbG9jYWwgR1hfQ0FMTFNUQUNLPSgiJHtGVU5DTkFNRVtAXX0iKQorICAg
ICAgICB1bnNldCBHWF9DQUxMU1RBQ0tbMF0KKyAgICAgICAgc3RkZXJyICIuLi4gKCR7R1hfQ0FM
TFNUQUNLW0BdfSk6ICR7R1hfQVJHU1tAXX0iCisgICAgZmkKK30KKworCitmdW5jdGlvbiBsb2df
cHJvZ3Jlc3MoKQoreworICAgIHN0ZG91dCAiLi4uICRAIgorfQorCisKK2Z1bmN0aW9uIGxvZ19w
cm9ncmVzc19sb25nKCkKK3sKKyAgICBsb2NhbCBHWF9NRVNTQUdFPSIkKHJlbW92ZV9leHRyYV9z
cGFjZXMgIiQxIikiCisgICAgbG9jYWwgR1hfTElORQorICAgIHdoaWxlIElGUz0nJyByZWFkIC1y
IEdYX0xJTkUKKyAgICBkbworICAgICAgICBsb2dfcHJvZ3Jlc3MgJEdYX0xJTkUKKyAgICBkb25l
IDwgPChlY2hvICIke0dYX01FU1NBR0V9IiB8IGZvbGQgLXcgODYgLXMpCit9CisKKworZnVuY3Rp
b24gbm9ybWFsaXplX2RpcmVjdG9yeV9wYXRoKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9w
YXJhbWV0ZXJzICIkQCIKKworICAgIFtbIC16ICIkMSIgXV0gJiYgeyBlY2hvICIkMSI7IHJldHVy
bjsgfQorICAgIGNkICIkMSIgMj4gL2Rldi9udWxsIHx8IHsgZWNobyAiJDEiOyByZXR1cm47IH0K
KyAgICBwd2QgLVAKK30KKworCitmdW5jdGlvbiBub3JtYWxpemVfZmlsZV9wYXRoKCkKK3sKKyAg
ICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKworICAgIFtbIC16ICIkMSIgXV0g
JiYgeyBlY2hvICIkMSI7IHJldHVybjsgfQorICAgIGVjaG8gJChub3JtYWxpemVfZGlyZWN0b3J5
X3BhdGggIiQoZGlybmFtZSAiJDEiKSIpLyQoYmFzZW5hbWUgIiQxIikKK30KKworCitmdW5jdGlv
biBjYWxsKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKworICAg
IGxvY2FsIEdYX0ZOPSIkMSIKKyAgICBbWyAiJCh0eXBlIC10ICR7R1hfRk59KSIgPT0gImZ1bmN0
aW9uIiBdXSB8fCByZXR1cm4gJD8KKyAgICBldmFsICIke0dYX0ZOfSIKK30KKworCitmdW5jdGlv
biBzZXRfcHJvamVjdF9zcGVjaWZpY19zZXR0aW5nc19mb3JfSmF2YVNjcmlwdENvcmUoKQorewor
ICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgR1hfUFNfUFJPSkVD
VF9GSUxFX1BBVEg9IiR7R1hfT1BFTlNPVVJDRV9ESVJ9L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2oiICMgQ2FuJ3QgdXNlIFBST0pFQ1RfRklMRV9QQVRIIGJl
Y2F1c2UgdGhpcyBpcyB1c2VkIHByZS1YY29kZS4KKyAgICBHWF9QU19ERVJJVkVEU09VUkNFU19H
RU5FUkFUT1JfUkVMQVRJVkVfUEFUSD0iU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMu
c2giCisgICAgR1hfUFNfVU5JRklFRFNPVVJDRVNfR0VORVJBVE9SX1JFTEFUSVZFX1BBVEg9IlNj
cmlwdHMvZ2VuZXJhdGUtdW5pZmllZC1zb3VyY2VzLnNoIgorICAgIEdYX1BTX1BMQVRGT1JNX05B
TUVTPShtYWNvc3ggaXBob25lb3MpCit9CisKKworZnVuY3Rpb24gc2V0X3Byb2plY3Rfc3BlY2lm
aWNfc2V0dGluZ3NfZm9yX1dlYkNvcmUoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFt
ZXRlcnMgIiRAIgorCisgICAgR1hfUFNfUFJPSkVDVF9GSUxFX1BBVEg9IiR7R1hfT1BFTlNPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qIiAjIENhbid0IHVzZSBQUk9K
RUNUX0ZJTEVfUEFUSCBiZWNhdXNlIHRoaXMgaXMgdXNlZCBwcmUtWGNvZGUuCisgICAgR1hfUFNf
REVSSVZFRFNPVVJDRVNfR0VORVJBVE9SX1JFTEFUSVZFX1BBVEg9IlNjcmlwdHMvZ2VuZXJhdGUt
ZGVyaXZlZC1zb3VyY2VzLnNoIgorICAgIEdYX1BTX1VOSUZJRURTT1VSQ0VTX0dFTkVSQVRPUl9S
RUxBVElWRV9QQVRIPSJTY3JpcHRzL2dlbmVyYXRlLXVuaWZpZWQtc291cmNlcy5zaCIKKyAgICBH
WF9QU19QTEFURk9STV9OQU1FUz0obWFjb3N4IGlwaG9uZW9zKQorfQorCisKK2Z1bmN0aW9uIHNl
dF9wcm9qZWN0X3NwZWNpZmljX3NldHRpbmdzX2Zvcl9XZWJLaXQoKQoreworICAgIGxvZ19jYWxs
c3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgR1hfUFNfUFJPSkVDVF9GSUxFX1BBVEg9
IiR7R1hfT1BFTlNPVVJDRV9ESVJ9L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvaiIgIyBD
YW4ndCB1c2UgUFJPSkVDVF9GSUxFX1BBVEggYmVjYXVzZSB0aGlzIGlzIHVzZWQgcHJlLVhjb2Rl
LgorICAgIEdYX1BTX0RFUklWRURfU09VUkNFU19ESVI9IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9E
ZXJpdmVkU291cmNlcy9XZWJLaXQyIgorICAgIEdYX1BTX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRP
Ul9SRUxBVElWRV9QQVRIPSJTY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaCIKKyAg
ICBHWF9QU19VTklGSUVEU09VUkNFU19HRU5FUkFUT1JfUkVMQVRJVkVfUEFUSD0iU2NyaXB0cy9n
ZW5lcmF0ZS11bmlmaWVkLXNvdXJjZXMuc2giCisgICAgR1hfUFNfUExBVEZPUk1fTkFNRVM9KG1h
Y29zeCBpcGhvbmVvcykKK30KKworCitmdW5jdGlvbiBzZXRfcHJvamVjdF9zcGVjaWZpY19zZXR0
aW5nc19mb3JfRHVtcFJlbmRlclRyZWUoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFt
ZXRlcnMgIiRAIgorCisgICAgR1hfUFNfUFJPSkVDVF9GSUxFX1BBVEg9IiR7R1hfT1BFTlNPVVJD
RV9ESVJ9L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvaiIgIyBD
YW4ndCB1c2UgUFJPSkVDVF9GSUxFX1BBVEggYmVjYXVzZSB0aGlzIGlzIHVzZWQgcHJlLVhjb2Rl
LgorICAgIEdYX1BTX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRPUl9SRUxBVElWRV9QQVRIPSJTY3Jp
cHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaCIKKyAgICBHWF9QU19QTEFURk9STV9OQU1F
Uz0obWFjb3N4KQorfQorCisKK2Z1bmN0aW9uIHNldF9wcm9qZWN0X3NwZWNpZmljX3NldHRpbmdz
X2Zvcl9XZWJLaXRUZXN0UnVubmVyKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0
ZXJzICIkQCIKKworICAgIEdYX1BTX1BST0pFQ1RfRklMRV9QQVRIPSIke0dYX09QRU5TT1VSQ0Vf
RElSfS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qIiAj
IENhbid0IHVzZSBQUk9KRUNUX0ZJTEVfUEFUSCBiZWNhdXNlIHRoaXMgaXMgdXNlZCBwcmUtWGNv
ZGUuCisgICAgR1hfUFNfREVSSVZFRFNPVVJDRVNfR0VORVJBVE9SX1JFTEFUSVZFX1BBVEg9IlNj
cmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoIgorICAgIEdYX1BTX1BMQVRGT1JNX05B
TUVTPShtYWNvc3gpCit9CisKKworZnVuY3Rpb24gc2V0X3Byb2plY3Rfc3BlY2lmaWNfc2V0dGlu
Z3MoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgIyBV
bnNldCB0aGUgdmFyaWFibGVzIHRoYXQgdGhlIHNldF9wcm9qZWN0X3NwZWNpZmljX3NldHRpbmdz
X2Zvcl9GT08KKyAgICAjIGZ1bmN0aW9ucyBzZXQuIFdlIG5lZWQgdG8gZG8gdGhpcyBpbiBjYXNl
IHRoZSBmdW5jdGlvbiBmb3IgcHJvamVjdCBCQVIKKyAgICAjIGRvZXNuJ3QgZGVmaW5lIG9uZSBv
ciBtb3JlIG9mIHRoZW0sIGNhdXNpbmcgaXQgdG8gaW5oZXJpdCB0aGUgc2V0dGluZ3MKKyAgICAj
IGZvciBhIHByZXZpb3VzIHByb2plY3QgRk9PLgorICAgICMKKyAgICAjIFRvIGFjaGlldmUgdGhp
cyB1bnNldHRpbmcsIHdlIHByZWZpeCBhbGwgdGhlIHZhcmlhYmxlcyB3ZSB3YW50IHRvIHVuc2V0
CisgICAgIyB3aXRoICJHWF9QU18iICgiUFMgZm9yICJwcm9qZWN0IHNwZWNpZmljIikuIFdlIGNh
biB0aGVuIGdhdGhlciBhbGwKKyAgICAjIHZhcmlhYmxlcyB0aGF0IHN0YXJ0IHdpdGggdGhpcyBw
cmVmaXggYW5kIHVuc2V0IHRoZW0uCisKKyAgICB1bnNldCAkeyFHWF9QU18qfQorCisgICAgW1sg
LW4gIiR7R1hfUFJPSkVDVF9UQUd9IiBdXSB8fCBkaWUgIkdYX1BST0pFQ1RfVEFHIGlzIG5vdCBk
ZWZpbmVkLiIKKworICAgIGNhbGwgc2V0X3Byb2plY3Rfc3BlY2lmaWNfc2V0dGluZ3NfZm9yXyR7
R1hfUFJPSkVDVF9UQUd9IHx8IGRpZSAiQ291bGQgbm90IHNldCBidWlsZCB2YXJpYWJsZXMgZm9y
ICR7R1hfUFJPSkVDVF9UQUd9LiIKK30KKworCitmdW5jdGlvbiBzZXRfY29tbW9uX3Byb2plY3Rf
c2V0dGluZ3MoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisg
ICAgbG9jYWwgR1hfRUZGRUNUSVZFX1BST0pFQ1RfRklMRV9QQVRIPSIke0dYX1BTX1BST0pFQ1Rf
RklMRV9QQVRIfSIKKyAgICBsb2NhbCBHWF9FRkZFQ1RJVkVfUFJPSkVDVF9ESVI9JChkaXJuYW1l
ICIke0dYX0VGRkVDVElWRV9QUk9KRUNUX0ZJTEVfUEFUSH0iKQorCisgICAgW1sgLW4gIiR7R1hf
RUZGRUNUSVZFX1BST0pFQ1RfRklMRV9QQVRIfSIgXV0gfHwgZGllICJHWF9FRkZFQ1RJVkVfUFJP
SkVDVF9GSUxFX1BBVEggaXMgbm90IGRlZmluZWQuIgorICAgIFtbIC1kICIke0dYX0VGRkVDVElW
RV9QUk9KRUNUX0ZJTEVfUEFUSH0iIF1dIHx8IGRpZSAiJHtHWF9FRkZFQ1RJVkVfUFJPSkVDVF9G
SUxFX1BBVEh9IGlzIG5vdCBhIGRpcmVjdG9yeS4iCisgICAgW1sgLW4gIiR7R1hfRUZGRUNUSVZF
X1BST0pFQ1RfRElSfSIgXV0gfHwgZGllICJHWF9FRkZFQ1RJVkVfUFJPSkVDVF9ESVIgaXMgbm90
IGRlZmluZWQuIgorICAgIFtbIC1kICIke0dYX0VGRkVDVElWRV9QUk9KRUNUX0RJUn0iIF1dIHx8
IGRpZSAiJHtHWF9FRkZFQ1RJVkVfUFJPSkVDVF9ESVJ9IGlzIG5vdCBhIGRpcmVjdG9yeS4iCisK
KyAgICAjIEdldCB0aGUgcGF0aHMgdG8gdGhlIHNjcmlwdHMgdGhhdCBkcml2ZSB0aGUgZ2VuZXJh
dGlvbiBvZiB0aGUKKyAgICAjIC54Y2ZpbGVsaXN0cyBvciB0aGUgZGF0YSBnb2luZyBpbnRvIHRo
ZSAueGNmaWxlbGlzdHMuCisKKyAgICBHWF9ERVJJVkVEU09VUkNFU19HRU5FUkFUT1I9IiR7R1hf
UFNfREVSSVZFRFNPVVJDRVNfR0VORVJBVE9SX1JFTEFUSVZFX1BBVEg6KyR7R1hfRUZGRUNUSVZF
X1BST0pFQ1RfRElSfS8ke0dYX1BTX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRPUl9SRUxBVElWRV9Q
QVRIfX0iCisgICAgR1hfVU5JRklFRFNPVVJDRVNfR0VORVJBVE9SPSIke0dYX1BTX1VOSUZJRURT
T1VSQ0VTX0dFTkVSQVRPUl9SRUxBVElWRV9QQVRIOiske0dYX0VGRkVDVElWRV9QUk9KRUNUX0RJ
Un0vJHtHWF9QU19VTklGSUVEU09VUkNFU19HRU5FUkFUT1JfUkVMQVRJVkVfUEFUSH19IgorCisg
ICAgW1sgLW4gIiR7R1hfREVSSVZFRFNPVVJDRVNfR0VORVJBVE9SfSIgXV0gJiYgeyBbWyAtZiAi
JHtHWF9ERVJJVkVEU09VUkNFU19HRU5FUkFUT1J9IiBdXSB8fCBkaWUgIiR7R1hfREVSSVZFRFNP
VVJDRVNfR0VORVJBVE9SfSBkb2VzIG5vdCBleGlzdC4iOyB9CisgICAgW1sgLW4gIiR7R1hfVU5J
RklFRFNPVVJDRVNfR0VORVJBVE9SfSIgXV0gJiYgeyBbWyAtZiAiJHtHWF9VTklGSUVEU09VUkNF
U19HRU5FUkFUT1J9IiBdXSB8fCBkaWUgIiR7R1hfVU5JRklFRFNPVVJDRVNfR0VORVJBVE9SfSBk
b2VzIG5vdCBleGlzdC4iOyB9CisKKyAgICAjIEdldCB0aGUgcGF0aHMgdG8gdGhlIGxvY2F0aW9u
cyBvZiB0aGUgZmluYWwgLnhjZmlsZWxpc3QgZmlsZXMuCisKKyAgICBsb2NhbCBHWF9CQVNFX1BB
VEg9IiR7R1hfRUZGRUNUSVZFX1BST0pFQ1RfRElSfS8ke0dYX1BTX1hDRklMRUxJU1RfUkVMQVRJ
VkVfUEFUSH0iCisgICAgR1hfSU5QVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfUEFUSD0i
JHtHWF9CQVNFX1BBVEh9L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QiCisgICAgR1hf
T1VUUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9KRUNUX1BBVEg9IiR7R1hfQkFTRV9QQVRIfS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCIKKyAgICBHWF9JTlBVVF9VTklGSUVEX1hD
RklMRUxJU1RfUFJPSkVDVF9QQVRIPSIke0dYX0JBU0VfUEFUSH0vVW5pZmllZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCIKKyAgICBHWF9PVVRQVVRfVU5JRklFRF9YQ0ZJTEVMSVNUX1BST0pFQ1Rf
UEFUSD0iJHtHWF9CQVNFX1BBVEh9L1VuaWZpZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Igor
CisgICAgIyBHZXQgdGhlIHBhdGhzIHRvIHRoZSBsb2NhdGlvbnMgb2YgdGhlIHRlbXBvcmFyeSAu
eGNmaWxlbGlzdCBmaWxlcyAodGhlCisgICAgIyBvbmVzIGJlaW5nIGJ1aWx0IHVwIGJlZm9yZSBi
ZWluZyBtb3ZlZCB0byB0aGVpciBmaW5hbCBsb2NhdGlvbnMpLgorCisgICAgR1hfSU5QVVRfREVS
SVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfVEVNUF9QQVRIPSIke0dYX1RFTVB9LyR7R1hfSU5QVVRf
REVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfUEFUSH0iCisgICAgR1hfT1VUUFVUX0RFUklWRURf
WENGSUxFTElTVF9QUk9KRUNUX1RFTVBfUEFUSD0iJHtHWF9URU1QfS8ke0dYX09VVFBVVF9ERVJJ
VkVEX1hDRklMRUxJU1RfUFJPSkVDVF9QQVRIfSIKKyAgICBHWF9JTlBVVF9VTklGSUVEX1hDRklM
RUxJU1RfUFJPSkVDVF9URU1QX1BBVEg9IiR7R1hfVEVNUH0vJHtHWF9JTlBVVF9VTklGSUVEX1hD
RklMRUxJU1RfUFJPSkVDVF9QQVRIfSIKKyAgICBHWF9PVVRQVVRfVU5JRklFRF9YQ0ZJTEVMSVNU
X1BST0pFQ1RfVEVNUF9QQVRIPSIke0dYX1RFTVB9LyR7R1hfT1VUUFVUX1VOSUZJRURfWENGSUxF
TElTVF9QUk9KRUNUX1BBVEh9IgorCisgICAgIyBDb2xsZWN0IHRoZSBkZWZhdWx0IHBlci1wcm9q
ZWN0IGNvbW1hbmRzIHRvIGV4ZWN1dGUgZHVyaW5nIHRoZSBnZW5lcmF0ZSwKKyAgICAjIG1lcmdl
LCBhbmQgY29tcGFyZSBzdGFnZXMuCisKKyAgICBHWF9TVUJHRU5FUkFURV9BQ1RJT05TPSgpCisg
ICAgR1hfTUVSR0VfQUNUSU9OUz0oKQorICAgIEdYX0NIRUNLX0FDVElPTlM9KCkKKworICAgIGlm
IFtbIC1uICIke0dYX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRPUn0iIF1dCisgICAgdGhlbgorICAg
ICAgICBHWF9TVUJHRU5FUkFURV9BQ1RJT05TKz0oZ2VuZXJhdGVfZGVyaXZlZHNvdXJjZXNfeGNm
aWxlbGlzdHMpCisgICAgICAgIEdYX01FUkdFX0FDVElPTlMrPShtZXJnZV9kZXJpdmVkc291cmNl
c194Y2ZpbGVsaXN0cykKKyAgICAgICAgR1hfQ0hFQ0tfQUNUSU9OUys9KGNoZWNrX2Rlcml2ZWRz
b3VyY2VzX3hjZmlsZWxpc3RzKQorICAgIGZpCisKKyAgICBpZiBbWyAtbiAiJHtHWF9VTklGSUVE
U09VUkNFU19HRU5FUkFUT1J9IiBdXQorICAgIHRoZW4KKyAgICAgICAgR1hfU1VCR0VORVJBVEVf
QUNUSU9OUys9KGdlbmVyYXRlX3VuaWZpZWRzb3VyY2VzX3hjZmlsZWxpc3RzKQorICAgICAgICBH
WF9NRVJHRV9BQ1RJT05TKz0obWVyZ2VfdW5pZmllZHNvdXJjZXNfeGNmaWxlbGlzdHMpCisgICAg
ICAgIEdYX0NIRUNLX0FDVElPTlMrPShjaGVja191bmlmaWVkc291cmNlc194Y2ZpbGVsaXN0cykK
KyAgICBmaQorCisgICAgW1sgLXogIiR7R1hfUFNfREVSSVZFRF9TT1VSQ0VTX0RJUn0iIF1dICYm
IEdYX1BTX0RFUklWRURfU09VUkNFU19ESVI9IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVk
U291cmNlcy8ke1BST0pFQ1RfTkFNRX0iCisKKyAgICBHWF9URU1QX0lOUFVUX1hDRklMRUxJU1Q9
IiR7R1hfVEVNUH0vaW5wdXQueGNmaWxlbGlzdCIKKyAgICBHWF9URU1QX09VVFBVVF9YQ0ZJTEVM
SVNUPSIke0dYX1RFTVB9L291dHB1dC54Y2ZpbGVsaXN0IgorfQorCisKK2Z1bmN0aW9uIGR1bXBf
cHJvamVjdF9zZXR0aW5ncygpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAi
JEAiCisKKyAgICBsb2dfZGVidWdfdmFyIEJVSUxEX1NDUklQVFNfRElSCisgICAgbG9nX2RlYnVn
X3ZhciBCVUlMVF9QUk9EVUNUU19ESVIKKyAgICBsb2dfZGVidWdfdmFyIENPTkZJR1VSQVRJT04K
KyAgICBsb2dfZGVidWdfdmFyIERFUklWRURfU09VUkNFU19ESVIKKyAgICBsb2dfZGVidWdfdmFy
IEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIKKyAgICBsb2dfZGVidWdfdmFyIFBS
T0pFQ1RfRElSCisgICAgbG9nX2RlYnVnX3ZhciBQUk9KRUNUX0ZJTEVfUEFUSAorICAgIGxvZ19k
ZWJ1Z192YXIgUFJPSkVDVF9OQU1FCisgICAgbG9nX2RlYnVnX3ZhciBXRUJDT1JFX1BSSVZBVEVf
SEVBREVSU19ESVIKKyAgICBsb2dfZGVidWdfdmFyIFdFQktJVDJfUFJJVkFURV9IRUFERVJTX0RJ
UgorICAgIGxvZ19kZWJ1ZworICAgIGxvZ19kZWJ1Z192YXIgR1hfUFNfUFJPSkVDVF9GSUxFX1BB
VEgKKyAgICBsb2dfZGVidWdfdmFyIEdYX1BTX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRPUl9SRUxB
VElWRV9QQVRICisgICAgbG9nX2RlYnVnX3ZhciBHWF9QU19VTklGSUVEU09VUkNFU19HRU5FUkFU
T1JfUkVMQVRJVkVfUEFUSAorICAgIGxvZ19kZWJ1Z192YXIgR1hfUFNfWENGSUxFTElTVF9SRUxB
VElWRV9QQVRICisgICAgbG9nX2RlYnVnX3ZhciBHWF9QU19QTEFURk9STV9OQU1FUworICAgIGxv
Z19kZWJ1ZworICAgIGxvZ19kZWJ1Z192YXIgR1hfUFJPSkVDVF9UQUcKKyAgICBsb2dfZGVidWdf
dmFyIEdYX1BMQVRGT1JNX05BTUUKKyAgICBsb2dfZGVidWdfdmFyIEdYX0NPTkZJR1VSQVRJT04K
KyAgICBsb2dfZGVidWcKKyAgICBsb2dfZGVidWdfdmFyIEdYX0VGRkVDVElWRV9QUk9KRUNUX0ZJ
TEVfUEFUSAorICAgIGxvZ19kZWJ1Z192YXIgR1hfRUZGRUNUSVZFX1BST0pFQ1RfRElSCisgICAg
bG9nX2RlYnVnCisgICAgbG9nX2RlYnVnX3ZhciBHWF9ERVJJVkVEU09VUkNFU19HRU5FUkFUT1IK
KyAgICBsb2dfZGVidWdfdmFyIEdYX1VOSUZJRURTT1VSQ0VTX0dFTkVSQVRPUgorICAgIGxvZ19k
ZWJ1ZworICAgIGxvZ19kZWJ1Z192YXIgR1hfSU5QVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pF
Q1RfVEVNUF9QQVRICisgICAgbG9nX2RlYnVnX3ZhciBHWF9PVVRQVVRfREVSSVZFRF9YQ0ZJTEVM
SVNUX1BST0pFQ1RfVEVNUF9QQVRICisgICAgbG9nX2RlYnVnX3ZhciBHWF9JTlBVVF9VTklGSUVE
X1hDRklMRUxJU1RfUFJPSkVDVF9URU1QX1BBVEgKKyAgICBsb2dfZGVidWdfdmFyIEdYX09VVFBV
VF9VTklGSUVEX1hDRklMRUxJU1RfUFJPSkVDVF9URU1QX1BBVEgKKyAgICBsb2dfZGVidWcKKyAg
ICBsb2dfZGVidWdfdmFyIEdYX0lOUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9KRUNUX1BBVEgK
KyAgICBsb2dfZGVidWdfdmFyIEdYX09VVFBVVF9ERVJJVkVEX1hDRklMRUxJU1RfUFJPSkVDVF9Q
QVRICisgICAgbG9nX2RlYnVnX3ZhciBHWF9JTlBVVF9VTklGSUVEX1hDRklMRUxJU1RfUFJPSkVD
VF9QQVRICisgICAgbG9nX2RlYnVnX3ZhciBHWF9PVVRQVVRfVU5JRklFRF9YQ0ZJTEVMSVNUX1BS
T0pFQ1RfUEFUSAorICAgIGxvZ19kZWJ1ZworICAgIGxvZ19kZWJ1Z192YXIgR1hfUFNfREVSSVZF
RF9TT1VSQ0VTX0RJUgorICAgIGxvZ19kZWJ1ZworICAgIGxvZ19kZWJ1Z192YXIgR1hfU1VCR0VO
RVJBVEVfQUNUSU9OUworICAgIGxvZ19kZWJ1Z192YXIgR1hfTUVSR0VfQUNUSU9OUworICAgIGxv
Z19kZWJ1Z192YXIgR1hfQ0hFQ0tfQUNUSU9OUworfQorCisKK2Z1bmN0aW9uIHNldF9wcm9qZWN0
X3NldHRpbmdzKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKwor
ICAgIFtbIC16ICIke0dYX1BST0pFQ1RfVEFHfSIgXV0gJiYgcmV0dXJuCisKKyAgICBzZXRfcHJv
amVjdF9zcGVjaWZpY19zZXR0aW5ncworICAgIHNldF9jb21tb25fcHJvamVjdF9zZXR0aW5ncwor
ICAgIGR1bXBfcHJvamVjdF9zZXR0aW5ncwogfQogCiAKLSMgVXRpbGl0eTogcmVwbGFjZSBvbmUg
c3RyaW5nIHdpdGggYW5vdGhlciBpbiBhIGZpbGUuCitmdW5jdGlvbiBlbnN1cmVfZGlyZWN0b3Jp
ZXNfZXhpc3QoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisg
ICAgbG9jYWwgR1hfRElSCisgICAgZm9yIEdYX0RJUiBpbiAiJEAiCisgICAgZG8KKyAgICAgICAg
bG9nX2RlYnVnICJDcmVhdGluZyAke0dYX0RJUn0iCisgICAgICAgIG1rZGlyIC1wICIke0dYX0RJ
Un0iICY+IC9kZXYvbnVsbCB8fCBkaWUgIlVuYWJsZSB0byBjcmVhdGUgIiR7R1hfRElSfSIuIgor
ICAgIGRvbmUKK30KKworCitmdW5jdGlvbiBjcmVhdGVfZW1wdHlfZmlsZXMoKQoreworICAgIGxv
Z19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgbG9jYWwgR1hfRklMRQorICAg
IGZvciBHWF9GSUxFIGluICIkQCIKKyAgICBkbworICAgICAgICBlbnN1cmVfZGlyZWN0b3JpZXNf
ZXhpc3QgIiQoZGlybmFtZSAiJHtHWF9GSUxFfSIpIgorCisgICAgICAgIGxvZ19kZWJ1ZyAiQ3Jl
YXRpbmcgJHtHWF9GSUxFfSIKKyAgICAgICAgZWNobyAtbiAnJyA+ICIke0dYX0ZJTEV9IgorICAg
IGRvbmUKK30KKworCitmdW5jdGlvbiBhcHBlbmRfeGNmaWxlbGlzdF9oZWFkZXIoKQoreworICAg
IGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgbG9jYWwgR1hfRklMRQor
ICAgIGZvciBHWF9GSUxFIGluICIkQCIKKyAgICBkbworICAgICAgICBlY2hvICcjIFRoaXMgZmls
ZSBpcyBnZW5lcmF0ZWQgYnkgdGhlIGdlbmVyYXRlLXhjZmlsZWxpc3RzIHNjcmlwdC4nID4+ICIk
e0dYX0ZJTEV9IgorICAgIGRvbmUKK30KKworCitmdW5jdGlvbiBzb3J0X2FuZF91bmlxdWVfaW5f
cGxhY2UoKQoreworICAgIHNvcnQgLXUgIiQxIiAtbyAiJDEiCit9CisKIAogZnVuY3Rpb24gcmVw
bGFjZSgpCiB7Ci0gICAgRklMRT0iJDEiCi0gICAgUEFUVEVSTj0iJDIiCi0gICAgUkVQTEFDRU1F
TlQ9IiQzIgorICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgbG9j
YWwgR1hfRklMRT0iJDEiCisgICAgbG9jYWwgR1hfUEFUVEVSTj0iJDIiCisgICAgbG9jYWwgR1hf
UkVQTEFDRU1FTlQ9IiQzIgorCisgICAgW1sgLW4gIiR7R1hfRklMRX0iIF1dIHx8IGRpZSAiR1hf
RklMRSBpcyBub3QgZGVmaW5lZC4iCisgICAgW1sgLWYgIiR7R1hfRklMRX0iIF1dIHx8IGRpZSAi
JHtHWF9GSUxFfSBkb2VzIG5vdCBleGlzdC4iCiAKLSAgICBzZWQgLUUgLWUgInN8XiR7UEFUVEVS
Tn0vfCR7UkVQTEFDRU1FTlR9L3wiIC1pICcnICIke0ZJTEV9IgorICAgIHNlZCAtRSAtZSAic3wk
e0dYX1BBVFRFUk59fCR7R1hfUkVQTEFDRU1FTlR9fCIgLWkgJycgIiR7R1hfRklMRX0iCiB9CiAK
LSMgR2l2ZW4gYW4gLnhjZmlsZWxpc3QgbGlzdCBmaWxlIGNvbnRhaW5pbmcgcGFydGlhbCBwYXRo
cyB0byB0aGUgZ2VuZXJhdGVkCi0jIGZpbGVzLCBtb2RpZnkgZWFjaCBwYXRoIHRvIGFsc28gaW5j
bHVkZSB0aGUgYWN0dWFsIGxvY2F0aW9uIG9mIGdlbmVyYXRlZAotIyBmaWxlcyBmb3IgdGhlIGdp
dmVuIHByb2plY3QuIEZvciBpbnN0YW5jZSwgbW9kaWZ5ICJVbmlmaWVkU291cmNlczEuY3BwIiB0
bwotIyAiJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL015UHJvamVjdC9Vbmlm
aWVkU291cmNlczEuY3BwIi4KIAotZnVuY3Rpb24gcHJlcGVuZF9wcmVmaXhfdG9fYWxsX3BhdGhz
KCkKK2Z1bmN0aW9uIHVuZXhwYW5kKCkKIHsKLSAgICBGSUxFPSIkMSIKLSAgICBzZWQgLUUgLWUg
InN8Xnwke0RFUklWRURfU09VUkNFU19ESVJ9L3wiIC1pICcnICIke0ZJTEV9IgorICAgIGxvZ19j
YWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgbG9jYWwgR1hfRklMRT0iJDEiCisg
ICAgbG9jYWwgR1hfVkFSPSIkMiIKKyAgICBsb2NhbCBHWF9WQUxVRT0kKGV2YWwgZWNobyBcJCR7
R1hfVkFSfSkKKworICAgIFtbIC1uICIke0dYX1ZBTFVFfSIgXV0gJiYgcmVwbGFjZSAiJHtHWF9G
SUxFfSIgIl4ke0dYX1ZBTFVFfS8iICJcJFwoJEdYX1ZBUlwpLyIKIH0KIAogCi0jIFV0aWxpdHk6
IGdpdmVuIGEgbGlzdCBvZiBkaXJlY3RvcmllcywgcmV0dXJuIHRoZSBmaXJzdCBvbmUgdGhhdCBh
Y3R1YWxseQotIyBleGlzdHMuCitmdW5jdGlvbiBmaW5kX2FkZGl0aW9ucygpCit7CisgICAgIyBG
aW5kIGFkZGl0aW9ucyBhbmQgcmVtb3ZhbHMgc28gdGhhdCB3ZSBjYW4gcmVwb3J0IHRoZW0uCisg
ICAgIworICAgICMgVVBEQVRFOiBXZSBjYW4ndCByZWFsbHkgcmVwb3J0IHJlbW92YWxzLiBJdCdz
IHBvc3NpYmxlIC0tIGV2ZW4KKyAgICAjIG92ZXJ3aGVsbWluZ2x5IGxpa2VseSAtLSB0aGF0IHdl
IGFyZSBnZW5lcmF0aW5nIC54Y2ZpbGVsaXN0IGluZm9ybWF0aW9uCisgICAgIyBmb3Igb25seSBh
IHN1YnNldCBvZiB0aGUgcG9zc2libGUgY29uZmlndXJhdGlvbnMgZm9yIHdoaWNoIHdlIGJ1aWxk
LiBGb3IKKyAgICAjIGV4YW1wbGUsIGEgZGV2ZWxvcGVyIG1heSBiZSBidWlsZGluZyBmb3IgbWFj
T1MgYW5kIGlPUywgYnV0IG5vdCB3YXRjaE9TLgorICAgICMgSW4gc2l0dWF0aW9ucyBsaWtlIHRo
aXMsIHdlJ2xsIGJlIGdlbmVyYXRpbmcgdGhlIC54Y2ZpbGVsaXN0IGZvciB0aG9zZQorICAgICMg
dHdvIHBsYXRmb3JtcywgYnV0IGFueSBmaWxlcyBzcGVjaWZpYyB0byB3YXRjaE9TIHdpbGwgbm90
IGJlIGRpc2NvdmVyZWQKKyAgICAjIGFuZCB3b24ndCBiZSBpbmNsdWRlZCBpbiB0aGUgLnhjZmls
ZWxpc3RzLiBJZiB3ZSB3ZXJlIHRvIHJlcG9ydCB0aG9zZQorICAgICMgd2F0Y2hPUyBmaWxlcyBh
cyBmaWxlcyB0aGF0IHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIC54Y2ZpbGVsaXN0cywgdGhl
bgorICAgICMgdGhlIHdhdGNoT1MgYnVpbGQgbWF5IGZhaWwuIFNvLCBmb3Igbm93LCBsZXQgYW55
IG9ic29sZXRlIGZpbGVzCisgICAgIyBhY2N1bXVsYXRlIGluIHRoZSAueGNmaWxlbGlzdCBmaWxl
czsgdGhleSdyZSBtb3N0bHkgaGFybWxlc3MuCisKKyAgICBsb2NhbCBHWF9ORVc9IiQxIgorICAg
IGxvY2FsIEdYX09SSUc9IiQyIgorICAgIGxvY2FsIEdYX0FERElUSU9OUz0iJDMiCisKKyAgICBb
WyAtZiAiJHtHWF9ORVd9IiBdXSB8fCBkaWUgIiR7R1hfTkVXfSBkb2VzIG5vdCBleGlzdC4iCisg
ICAgW1sgLWYgIiR7R1hfT1JJR30iIF1dIHx8IGRpZSAiJHtHWF9PUklHfSBkb2VzIG5vdCBleGlz
dC4iCisKKyAgICBjb21tIC0yIC0zIDwoc29ydCAiJHtHWF9ORVd9IikgPChzb3J0ICIke0dYX09S
SUd9IikgPiAiJHtHWF9BRERJVElPTlN9IgorfQorCiAKLWZ1bmN0aW9uIGZpbmRfZmlyc3RfZXhp
c3RpbmcoKQorZnVuY3Rpb24gZ2V0X3Nka3MoKQogewotICAgIElURU1TPSgiJEAiKQotICAgIGZv
ciBJVEVNIGluICIke0lURU1TW0BdfSIKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJz
ICIkQCIKKworICAgICgoICR7I0dYX1NES1NbQF19ICkpICYmIHJldHVybgorCisgICAgR1hfU0RL
Uz0oJCgKKyAgICAgICAgeGNvZGVidWlsZCAtc2hvd3Nka3MgXAorICAgICAgICB8IGdyZXAgLWUg
J1xzLXNka1xzJyBcCisgICAgICAgIHwgc2VkIC1FIFwKKyAgICAgICAgICAgIC1lICdzLy4qLXNk
ayAoW15bOmRpZ2l0Ol1dKykkL1wxLycgXAorICAgICAgICAgICAgLWUgJ3MvLiotc2RrIChbXls6
ZGlnaXQ6XV0rKShbWzpkaWdpdDpdXC5dKykkL1wxLycgXAorICAgICAgICAgICAgLWUgJ3MvLiot
c2RrIChbXls6ZGlnaXQ6XV0rKShbWzpkaWdpdDpdXC5dKykoW15bOmRpZ2l0Ol1dKykkL1wxLlwz
LycgXAorICAgICAgICB8IHNvcnQgLXUKKyAgICApKQorCisgICAgKCggJHsjR1hfU0RLU1tAXX0g
KSkgfHwgZGllICJVbmFibGUgdG8gZmluZCBhbnkgU0RLcy4iCit9CisKKworZnVuY3Rpb24gZ2V0
X2Nhbm9uaWNhbF9jb25maWd1cmF0aW9uKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJh
bWV0ZXJzICIkQCIKKworICAgIGxvY2FsIEdYX1BST1ZJU0lPTkFMX0NPTkZJR1VSQVRJT049JChl
Y2hvICIkMSIgfCB0ciAnWzp1cHBlcjpdJyAnWzpsb3dlcjpdJykKKworICAgIFtbICIke0dYX1BS
T1ZJU0lPTkFMX0NPTkZJR1VSQVRJT059IiA9PSAiIiBdXSAmJiB7IGVjaG8gIiI7IHJldHVybjsg
fQorCisgICAgW1sgIiR7R1hfUFJPVklTSU9OQUxfQ09ORklHVVJBVElPTn0iID09ICJkZWJ1ZyIg
XV0gJiYgeyBlY2hvICJEZWJ1ZyI7IHJldHVybjsgfQorICAgIFtbICIke0dYX1BST1ZJU0lPTkFM
X0NPTkZJR1VSQVRJT059IiA9PSAicmVsZWFzZSIgXV0gJiYgeyBlY2hvICJSZWxlYXNlIjsgcmV0
dXJuOyB9CisgICAgW1sgIiR7R1hfUFJPVklTSU9OQUxfQ09ORklHVVJBVElPTn0iID09ICJwcm9k
dWN0aW9uIiBdXSAmJiB7IGVjaG8gIlByb2R1Y3Rpb24iOyByZXR1cm47IH0KKyAgICBbWyAiJHtH
WF9QUk9WSVNJT05BTF9DT05GSUdVUkFUSU9OfSIgPT0gInByb2ZpbGluZyIgXV0gJiYgeyBlY2hv
ICJQcm9maWxpbmciOyByZXR1cm47IH0KKworICAgIGRpZSAiVW5yZWNvZ25pemVkIGNvbmZpZ3Vy
YXRpb246ICQxIgorfQorCisKK2Z1bmN0aW9uIGdldF9jYW5vbmljYWxfcGxhdGZvcm1fbmFtZSgp
Cit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAiJEAiCisKKyAgICBsb2NhbCBH
WF9QUk9WSVNJT05BTF9QTEFURk9STV9OQU1FPSQoZWNobyAiJDEiIHwgdHIgJ1s6dXBwZXI6XScg
J1s6bG93ZXI6XScpCisKKyAgICBbWyAiJHtHWF9QUk9WSVNJT05BTF9QTEFURk9STV9OQU1FfSIg
PT0gIiIgXV0gJiYgeyBlY2hvICIiOyByZXR1cm47IH0KKworICAgIFtbICIke0dYX1BST1ZJU0lP
TkFMX1BMQVRGT1JNX05BTUV9IiA9PSAiaW9zIiBdXSAmJiB7IGVjaG8gImlwaG9uZW9zIjsgcmV0
dXJuOyB9CisgICAgW1sgIiR7R1hfUFJPVklTSU9OQUxfUExBVEZPUk1fTkFNRX0iID09ICJpcGhv
bmUiIF1dICYmIHsgZWNobyAiaXBob25lb3MiOyByZXR1cm47IH0KKyAgICBbWyAiJHtHWF9QUk9W
SVNJT05BTF9QTEFURk9STV9OQU1FfSIgPT0gImlwYWQiIF1dICYmIHsgZWNobyAiaXBob25lb3Mi
OyByZXR1cm47IH0KKyAgICBbWyAiJHtHWF9QUk9WSVNJT05BTF9QTEFURk9STV9OQU1FfSIgPT0g
ImlwaG9uZW9zIiBdXSAmJiB7IGVjaG8gImlwaG9uZW9zIjsgcmV0dXJuOyB9CisKKyAgICBbWyAi
JHtHWF9QUk9WSVNJT05BTF9QTEFURk9STV9OQU1FfSIgPT0gIm1hYyIgXV0gJiYgeyBlY2hvICJt
YWNvc3giOyByZXR1cm47IH0KKyAgICBbWyAiJHtHWF9QUk9WSVNJT05BTF9QTEFURk9STV9OQU1F
fSIgPT0gIm9zeCIgXV0gJiYgeyBlY2hvICJtYWNvc3giOyByZXR1cm47IH0KKyAgICBbWyAiJHtH
WF9QUk9WSVNJT05BTF9QTEFURk9STV9OQU1FfSIgPT0gIm1hY29zIiBdXSAmJiB7IGVjaG8gIm1h
Y29zeCI7IHJldHVybjsgfQorICAgIFtbICIke0dYX1BST1ZJU0lPTkFMX1BMQVRGT1JNX05BTUV9
IiA9PSAibWFjb3N4IiBdXSAmJiB7IGVjaG8gIm1hY29zeCI7IHJldHVybjsgfQorCisgICAgZGll
ICJVbnJlY29nbml6ZWQgcGxhdGZvcm0gbmFtZTogJDEiCit9CisKKworZnVuY3Rpb24gZ2V0X3Nk
a19uYW1lKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKworICAg
IGxvY2FsIEdYX1NESz0kKGdldF9jYW5vbmljYWxfcGxhdGZvcm1fbmFtZSAiJDEiKQorICAgIGxv
Y2FsIEdYX0lOVEVSTkFMX1NESz0iJHtHWF9TREt9LmludGVybmFsIgorCisgICAgZ2V0X3Nka3MK
KworICAgICMgUHJlZmVyIGFuIGludGVybmFsIFNESyBpZiBvbmUgZXhpc3RzLgorCisgICAgW1sg
IiAke0dYX1NES1NbQF19ICIgPX4gIiAke0dYX0lOVEVSTkFMX1NES30gIiBdXSAmJiB7IGVjaG8g
IiR7R1hfSU5URVJOQUxfU0RLfSI7IHJldHVybjsgfQorICAgIFtbICIgJHtHWF9TREtTW0BdfSAi
ID1+ICIgJHtHWF9TREt9ICIgXV0gJiYgeyBlY2hvICIke0dYX1NES30iOyByZXR1cm47IH0KKwor
ICAgIGRpZSAiVW5zdXBwb3J0ZWQgU0RLOiAke0dYX1NES30uIgorfQorCisKK2Z1bmN0aW9uIGlu
dm9rZV9lYWNoX2FjdGlvbigpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAi
JEAiCisKKyAgICBsb2NhbCBHWF9BQ1RJT04KKyAgICBmb3IgR1hfQUNUSU9OIGluICIkQCIKICAg
ICBkbwotICAgICAgICBbWyAtZSAiJHtJVEVNfSIgXV0gJiYgeyBlY2hvICIke0lURU19IjsgcmV0
dXJuIDA7IH0KKyAgICAgICAgZXZhbCAiJHtHWF9BQ1RJT059IgogICAgIGRvbmUKLSAgICByZXR1
cm4gMQogfQogCiAKLSMgR2l2ZW4gYSBjaGVja2VkLWluIC54Y2ZpbGVsaXN0IGFuZCBhIG5ld2x5
LWdlbmVyYXRlZCBvbmUgc3RvcmVkIGluIGEKLSMgdGVtcG9yYXJ5IGxvY2F0aW9uLCBjb21wYXJl
IHRoZSB0d28gdG8gc2VlIGlmIHRoZXJlIGFyZSBhbnkgY2hhbmdlcyB0aGF0IG5lZWQKLSMgdG8g
YmUgYWNjb3VudGVkIGZvci4gSWYgdGhlcmUgYXJlIGRpZmZlcmVuY2VzLCBwcmludCBvdXQgYSBu
b3RpY2UgYW5kIHByZXAKLSMgdGhlIHNjcmlwdCB0byBleGl0IHdpdGggY29kZSAyLgorZnVuY3Rp
b24gZm9yX2VhY2hfY29uZmlndXJhdGlvbigpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFy
YW1ldGVycyAiJEAiCisKKyAgICBpZiBbWyAteiAiJHtHWF9DT05GSUdVUkFUSU9OfSIgXV0KKyAg
ICB0aGVuCisgICAgICAgIGZvciBHWF9DT05GSUdVUkFUSU9OIGluICIke0dYX0NPTkZJR1VSQVRJ
T05TW0BdfSIKKyAgICAgICAgZG8KKyAgICAgICAgICAgIGV2YWwgIiRAIgorICAgICAgICBkb25l
CisKKyAgICAgICAgR1hfQ09ORklHVVJBVElPTj0KKyAgICBlbHNlCisgICAgICAgIGV2YWwgIiRA
IgorICAgIGZpCit9CisKKworZnVuY3Rpb24gZm9yX2VhY2hfcGxhdGZvcm0oKQoreworICAgIGxv
Z19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgogCi1mdW5jdGlvbiBjaGVja194Y2ZpbGVs
aXN0KCkKKyAgICBpZiBbWyAteiAiJHtHWF9QTEFURk9STV9OQU1FfSIgXV0KKyAgICB0aGVuCisg
ICAgICAgIGZvciBHWF9QTEFURk9STV9OQU1FIGluICIke0dYX1BTX1BMQVRGT1JNX05BTUVTW0Bd
fSIKKyAgICAgICAgZG8KKyAgICAgICAgICAgIGV2YWwgIiRAIgorICAgICAgICBkb25lCisKKyAg
ICAgICAgR1hfUExBVEZPUk1fTkFNRT0KKyAgICBlbHNlCisgICAgICAgIGV2YWwgIiRAIgorICAg
IGZpCit9CisKKworZnVuY3Rpb24gZm9yX2VhY2hfcHJvamVjdCgpCiB7Ci0gICAgbG9jYWwgT1JJ
Rz0iJDEiCi0gICAgbG9jYWwgVEVNUD0iJDIiCisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1l
dGVycyAiJEAiCisKKyAgICBpZiBbWyAteiAiJHtHWF9QUk9KRUNUX1RBR30iIF1dCisgICAgdGhl
bgorICAgICAgICBmb3IgR1hfUFJPSkVDVF9UQUcgaW4gIiR7R1hfUFJPSkVDVF9UQUdTW0BdfSIK
KyAgICAgICAgZG8KKyAgICAgICAgICAgIHNldF9wcm9qZWN0X3NldHRpbmdzCisgICAgICAgICAg
ICBldmFsICIkQCIKKyAgICAgICAgZG9uZQorCisgICAgICAgIEdYX1BST0pFQ1RfVEFHPQorICAg
IGVsc2UKKyAgICAgICAgc2V0X3Byb2plY3Rfc2V0dGluZ3MKKyAgICAgICAgZXZhbCAiJEAiCisg
ICAgZmkKK30KKworCitmdW5jdGlvbiBnZW5lcmF0ZV9kZXJpdmVkc291cmNlc194Y2ZpbGVsaXN0
cygpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAiJEAiCisKKyAgICBjcmVh
dGVfZW1wdHlfZmlsZXMgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJTEVMSVNUfSIgIiR7R1hfVEVNUF9P
VVRQVVRfWENGSUxFTElTVH0iCisKKyAgICBsb2NhbCBHWF9ERVJJVkVEU09VUkNFU19FWFRSQUNU
T1I9IiR7R1hfSEVSRX0vZXh0cmFjdC1kZXBlbmRlbmNpZXMtZnJvbS1tYWtlZmlsZSIKKworICAg
IFtbIC1uICIke0dYX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRPUn0iIF1dIHx8IGRpZSAiR1hfREVS
SVZFRFNPVVJDRVNfR0VORVJBVE9SIGlzIG5vdCBkZWZpbmVkLiIKKyAgICBbWyAteCAiJHtHWF9E
RVJJVkVEU09VUkNFU19HRU5FUkFUT1J9IiBdXSB8fCBkaWUgIiR7R1hfREVSSVZFRFNPVVJDRVNf
R0VORVJBVE9SfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgZXhlY3V0YWJsZS4iCisgICAgW1sg
LXggIiR7R1hfREVSSVZFRFNPVVJDRVNfRVhUUkFDVE9SfSIgXV0gfHwgZGllICIke0dYX0RFUklW
RURTT1VSQ0VTX0VYVFJBQ1RPUn0gZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGV4ZWN1dGFibGUu
IgorCisgICAgbG9nX2RlYnVnICJDcmVhdGluZyBkZXJpdmVkIC54Y2ZpbGVsaXN0cyBmb3IgJHtQ
Uk9KRUNUX05BTUV9LyR7UExBVEZPUk1fTkFNRX0vJHtDT05GSUdVUkFUSU9OfSIKKworICAgICIk
e0dYX0RFUklWRURTT1VSQ0VTX0dFTkVSQVRPUn0iIFwKKyAgICAgICAgTk9fU1VQUExFTUVOVEFM
X0ZJTEVTPTEgXAorICAgICAgICAtLW5vLWJ1aWx0aW4tcnVsZXMgXAorICAgICAgICAtLWRyeS1y
dW4gXAorICAgICAgICAtLWFsd2F5cy1tYWtlIFwKKyAgICAgICAgLS1kZWJ1Zz1hYnZpam0gYWxs
IFwKKyAgICAgICAgMT4gIiR7R1hfVEVNUH0vc3RkLm91dCIgMj4gIiR7R1hfVEVNUH0vc3RkLmVy
ciIKKyAgICBsb2NhbCBHWF9SRVNVTFQ9JD8KIAotICAgIGlmICEgZGlmZiAtcSAiJHtPUklHfSIg
IiR7VEVNUH0iICY+IC9kZXYvbnVsbAorICAgIGlmICgoICR7R1hfUkVTVUxUfSApKQogICAgIHRo
ZW4KLSAgICAgICAgZWNobyAiIyMjIHhjZmlsZWxpc3QgY2hhbmdlZDoiCi0gICAgICAgIGRpZmYg
LXUgIiR7T1JJR30iICIke1RFTVB9IgotICAgICAgICBERUZFUlJFRF9FWElUX0NPREU9MgorICAg
ICAgICBzZWQgLUUgLWUgJ3MvXi8uLi4gLycgPCAiJHtHWF9URU1QfS9zdGQuZXJyIgorICAgICAg
ICBkaWUgIkVycm9yIGdlbmVyYXRpbmcgZGVyaXZlZCBzb3VyY2VzOiBlcnJvciA9ICR7R1hfUkVT
VUxUfSIgJHtHWF9SRVNVTFR9CiAgICAgZmkKIAotICAgIHJtICIke1RFTVB9IgorICAgIGNhdCAi
JHtHWF9URU1QfS9zdGQub3V0IiBcCisgICAgfCAiJHtHWF9ERVJJVkVEU09VUkNFU19FWFRSQUNU
T1J9IiBcCisgICAgICAgIC0taW5wdXQgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJTEVMSVNUfSIgXAor
ICAgICAgICAtLW91dHB1dCAiJHtHWF9URU1QX09VVFBVVF9YQ0ZJTEVMSVNUfSIKKyAgICBsb2Nh
bCBHWF9SRVNVTFQ9JD8KKworICAgICgoICR7R1hfUkVTVUxUfSApKSAmJiBkaWUgIkVycm9yIGV4
dHJhY3RpbmcgZGVwZW5kZW5jaWVzIGZyb20gRGVyaXZlZFNvdXJjZXMubWFrZTogZXJyb3IgPSAk
e0dYX1JFU1VMVH0iCisgICAgW1sgLWYgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJTEVMSVNUfSIgXV0g
fHwgZGllICIke0dYX1RFTVBfSU5QVVRfWENGSUxFTElTVH0gd2FzIG5vdCBnZW5lcmF0ZWQuIgor
ICAgIFtbIC1mICIke0dYX1RFTVBfT1VUUFVUX1hDRklMRUxJU1R9IiBdXSB8fCBkaWUgIiR7R1hf
VEVNUF9PVVRQVVRfWENGSUxFTElTVH0gd2FzIG5vdCBnZW5lcmF0ZWQuIgorCisgICAgcmVwbGFj
ZSAiJHtHWF9URU1QX0lOUFVUX1hDRklMRUxJU1R9IiAnXldlYkNvcmUvJyAgICAgICAgICAgICAg
ICAgICAgICAnJChQUk9KRUNUX0RJUikvJworICAgIHJlcGxhY2UgIiR7R1hfVEVNUF9JTlBVVF9Y
Q0ZJTEVMSVNUfSIgJ15KYXZhU2NyaXB0Q29yZS8nICAgICAgICAgICAgICAgJyQoUFJPSkVDVF9E
SVIpLycKKyAgICByZXBsYWNlICIke0dYX1RFTVBfSU5QVVRfWENGSUxFTElTVH0iICdeSmF2YVNj
cmlwdENvcmVQcml2YXRlSGVhZGVycy8nICckKEpBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVS
U19ESVIpLycKKyAgICByZXBsYWNlICIke0dYX1RFTVBfSU5QVVRfWENGSUxFTElTVH0iICdeV2Vi
S2l0MlByaXZhdGVIZWFkZXJzLycgICAgICAgICckKFdFQktJVDJfUFJJVkFURV9IRUFERVJTX0RJ
UikvJworICAgIHVuZXhwYW5kICIke0dYX1RFTVBfSU5QVVRfWENGSUxFTElTVH0iIFBST0pFQ1Rf
RElSCisgICAgdW5leHBhbmQgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJTEVMSVNUfSIgV0VCS0lUQURE
SVRJT05TX0hFQURFUlNfRk9MREVSX1BBVEgKKyAgICB1bmV4cGFuZCAiJHtHWF9URU1QX0lOUFVU
X1hDRklMRUxJU1R9IiBXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVIKKyAgICB1bmV4cGFuZCAi
JHtHWF9URU1QX0lOUFVUX1hDRklMRUxJU1R9IiBXRUJLSVQyX1BSSVZBVEVfSEVBREVSU19ESVIK
KyAgICB1bmV4cGFuZCAiJHtHWF9URU1QX0lOUFVUX1hDRklMRUxJU1R9IiBKQVZBU0NSSVBUQ09S
RV9QUklWQVRFX0hFQURFUlNfRElSCisgICAgdW5leHBhbmQgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJ
TEVMSVNUfSIgQlVJTFRfUFJPRFVDVFNfRElSCisKKyAgICByZXBsYWNlICIke0dYX1RFTVBfT1VU
UFVUX1hDRklMRUxJU1R9IiAiXiIgIiR7R1hfUFNfREVSSVZFRF9TT1VSQ0VTX0RJUn0vIgorICAg
IHVuZXhwYW5kICIke0dYX1RFTVBfT1VUUFVUX1hDRklMRUxJU1R9IiBCVUlMVF9QUk9EVUNUU19E
SVIKKworICAgIG1lcmdlX3hjZmlsZWxpc3RzX2hlbHBlciAiJHtHWF9URU1QX0lOUFVUX1hDRklM
RUxJU1R9IiAiJHtHWF9JTlBVVF9ERVJJVkVEX1hDRklMRUxJU1RfUFJPSkVDVF9URU1QX1BBVEh9
IgorICAgIG1lcmdlX3hjZmlsZWxpc3RzX2hlbHBlciAiJHtHWF9URU1QX09VVFBVVF9YQ0ZJTEVM
SVNUfSIgIiR7R1hfT1VUUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9KRUNUX1RFTVBfUEFUSH0i
CiB9CiAKLQotZnVuY3Rpb24gc2V0X2J1aWxkX3ZhcmlhYmxlc19mb3JfSmF2YVNjcmlwdENvcmUo
KQotewotICAgIFBST0pFQ1RfTkFNRT1KYXZhU2NyaXB0Q29yZQotICAgIFBST0pFQ1RfRElSPSIk
e09QRU5TT1VSQ0VfRElSfS9Tb3VyY2UvJHtQUk9KRUNUX05BTUV9IgotICAgIEdFTkVSQVRPUj0i
JHtQUk9KRUNUX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2giCi0gICAg
REVSSVZFRF9TT1VSQ0VTX01BS0U9IiR7UFJPSkVDVF9ESVJ9L0Rlcml2ZWRTb3VyY2VzLm1ha2Ui
Ci0gICAgREVSSVZFRF9TT1VSQ0VTX0RJUj0iJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRT
b3VyY2VzLyR7UFJPSkVDVF9OQU1FfSIKLQotICAgIGV4cG9ydCBGUkFNRVdPUktfU0VBUkNIX1BB
VEhTPQotICAgIGV4cG9ydCBIRUFERVJfU0VBUkNIX1BBVEhTPSIKLSAgICAgICAgJHtCVUlMVF9Q
Uk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3JlCi0gICAgICAgIC4KLSAg
ICAgICAgJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRlIgotICAgIGV4cG9y
dCBTWVNURU1fRlJBTUVXT1JLX1NFQVJDSF9QQVRIUz0iCi0gICAgICAgICR7U0RLUk9PVH0vU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MiCi0gICAgZXhwb3J0IFNZU1RFTV9IRUFERVJf
U0VBUkNIX1BBVEhTPQotfQotCi0KLWZ1bmN0aW9uIHNldF9idWlsZF92YXJpYWJsZXNfZm9yX1dl
YkNvcmUoKQotewotICAgIFBST0pFQ1RfTkFNRT1XZWJDb3JlCi0gICAgUFJPSkVDVF9ESVI9IiR7
T1BFTlNPVVJDRV9ESVJ9L1NvdXJjZS8ke1BST0pFQ1RfTkFNRX0iCi0gICAgR0VORVJBVE9SPSIk
e1BST0pFQ1RfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWRlcml2ZWQtc291cmNlcy5zaCIKLSAgICBE
RVJJVkVEX1NPVVJDRVNfTUFLRT0iJHtQUk9KRUNUX0RJUn0vRGVyaXZlZFNvdXJjZXMubWFrZSIK
LSAgICBERVJJVkVEX1NPVVJDRVNfRElSPSIke0JVSUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNv
dXJjZXMvJHtQUk9KRUNUX05BTUV9IgotCi0gICAgZXhwb3J0IEZSQU1FV09SS19TRUFSQ0hfUEFU
SFM9IgotICAgICAgICAke0JVSUxUX1BST0RVQ1RTX0RJUn0iCi0gICAgZXhwb3J0IEhFQURFUl9T
RUFSQ0hfUEFUSFM9IgotICAgICAgICBQQUwKLSAgICAgICAgRm9yd2FyZGluZ0hlYWRlcnMKLSAg
ICAgICAgL3Vzci9pbmNsdWRlL2xpYnhzbHQKLSAgICAgICAgL3Vzci9pbmNsdWRlL2xpYnhtbDIK
LSAgICAgICAgJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUKLSAg
ICAgICAgJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRlCi0gICAgICAgICR7
QlVJTFRfUFJPRFVDVFNfRElSfS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMKLSAg
ICAgICAgJHtTREtST09UfS91c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMKLSAgICAg
ICAgJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNsdWRlL3dlYnJ0YwotICAgICAg
ICAke1NES1JPT1R9L3Vzci9sb2NhbC9pbmNsdWRlL3dlYnJ0YwotICAgICAgICAke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2luY2x1ZGUvd2VicnRjL3Nkay9vYmpjL0ZyYW1ld29yay9I
ZWFkZXJzCi0gICAgICAgICR7U0RLUk9PVH0vdXNyL2xvY2FsL2luY2x1ZGUvd2VicnRjL3Nkay9v
YmpjL0ZyYW1ld29yay9IZWFkZXJzCi0gICAgICAgICR7UFJPSkVDVF9ESVJ9IgotICAgIGV4cG9y
dCBTWVNURU1fRlJBTUVXT1JLX1NFQVJDSF9QQVRIUz0iCi0gICAgICAgICR7U0RLUk9PVH0vU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MKLSAgICAgICAgJHtTREtST09UfS9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzIgotICAgIGV4cG9ydCBTWVNURU1fSEVBREVSX1NFQVJDSF9QQVRI
Uz0KLX0KLQotCi1mdW5jdGlvbiBzZXRfYnVpbGRfdmFyaWFibGVzX2Zvcl9XZWJLaXQoKQotewot
ICAgIFBST0pFQ1RfTkFNRT1XZWJLaXQKLSAgICBQUk9KRUNUX0RJUj0iJHtPUEVOU09VUkNFX0RJ
Un0vU291cmNlLyR7UFJPSkVDVF9OQU1FfSIKLSAgICBHRU5FUkFUT1I9IiR7UFJPSkVDVF9ESVJ9
L1NjcmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoIgotICAgIERFUklWRURfU09VUkNF
U19NQUtFPSIke1BST0pFQ1RfRElSfS9EZXJpdmVkU291cmNlcy5tYWtlIgotICAgIERFUklWRURf
U09VUkNFU19ESVI9IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9XZWJLaXQy
IgotCi0gICAgZXhwb3J0IEZSQU1FV09SS19TRUFSQ0hfUEFUSFM9IgotICAgICAgICAke0JVSUxU
X1BST0RVQ1RTX0RJUn0iCi0gICAgZXhwb3J0IEhFQURFUl9TRUFSQ0hfUEFUSFM9IgotICAgICAg
ICAke0JVSUxUX1BST0RVQ1RTX0RJUn0vdXNyL2xvY2FsL2luY2x1ZGUKLSAgICAgICAgJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L1dlYkNvcmUuZnJhbWV3b3JrL1ByaXZhdGVIZWFkZXJzL0ZvcndhcmRp
bmdIZWFkZXJzCi0gICAgICAgICR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9X
ZWJLaXQyCi0gICAgICAgICR7QlVJTFRfUFJPRFVDVFNfRElSfS91c3IvbG9jYWwvaW5jbHVkZS9X
ZWJLaXRBZGRpdGlvbnMKLSAgICAgICAgJHtTREtST09UfS91c3IvbG9jYWwvaW5jbHVkZS9XZWJL
aXRBZGRpdGlvbnMKLSAgICAgICAgJHtCVUlMVF9QUk9EVUNUU19ESVJ9L3Vzci9sb2NhbC9pbmNs
dWRlL3dlYnJ0YwotICAgICAgICAke1NES1JPT1R9L3Vzci9sb2NhbC9pbmNsdWRlL3dlYnJ0Ywot
ICAgICAgICAke1BST0pFQ1RfRElSfSIKLSAgICBleHBvcnQgU1lTVEVNX0ZSQU1FV09SS19TRUFS
Q0hfUEFUSFM9IgotICAgICAgICAke1NES1JPT1R9L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzCi0gICAgICAgICR7U0RLUk9PVH0vU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyIKLSAg
ICBleHBvcnQgU1lTVEVNX0hFQURFUl9TRUFSQ0hfUEFUSFM9CisKK2Z1bmN0aW9uIGdlbmVyYXRl
X3VuaWZpZWRzb3VyY2VzX3hjZmlsZWxpc3RzKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9w
YXJhbWV0ZXJzICIkQCIKKworICAgIGNyZWF0ZV9lbXB0eV9maWxlcyAiJHtHWF9URU1QX0lOUFVU
X1hDRklMRUxJU1R9IiAiJHtHWF9URU1QX09VVFBVVF9YQ0ZJTEVMSVNUfSIKKworICAgIFtbIC1u
ICIke0dYX1VOSUZJRURTT1VSQ0VTX0dFTkVSQVRPUn0iIF1dIHx8IGRpZSAiR1hfVU5JRklFRFNP
VVJDRVNfR0VORVJBVE9SIGlzIG5vdCBkZWZpbmVkLiIKKyAgICBbWyAteCAiJHtHWF9VTklGSUVE
U09VUkNFU19HRU5FUkFUT1J9IiBdXSB8fCBkaWUgIiR7R1hfVU5JRklFRFNPVVJDRVNfR0VORVJB
VE9SfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgZXhlY3V0YWJsZS4iCisKKyAgICBsb2NhbCBH
WF9CVUlMRF9TQ1JJUFRTX0RJUj0iJHtHWF9PUEVOU09VUkNFX0RJUn0vU291cmNlL1dURi9TY3Jp
cHRzIgorICAgIFtbIC1kICIke0dYX0JVSUxEX1NDUklQVFNfRElSfSIgXV0gfHwgZGllICIke0dY
X0JVSUxEX1NDUklQVFNfRElSfSBkb2VzIG5vdCBleGlzdCBvciBpcyBub3QgYSBkaXJlY3Rvcnku
IgorICAgIFtbIC1mICIke0dYX0JVSUxEX1NDUklQVFNfRElSfS9nZW5lcmF0ZS11bmlmaWVkLXNv
dXJjZS1idW5kbGVzLnJiIiBdXSB8fCBkaWUgIiR7R1hfQlVJTERfU0NSSVBUU19ESVJ9L2dlbmVy
YXRlLXVuaWZpZWQtc291cmNlLWJ1bmRsZXMucmIgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGEg
ZmlsZS4iCisKKyAgICBsb2dfZGVidWcgIkNyZWF0aW5nIHVuaWZpZWQgLnhjZmlsZWxpc3RzIGZv
ciAke1BST0pFQ1RfTkFNRX0vJHtQTEFURk9STV9OQU1FfS8ke0NPTkZJR1VSQVRJT059IgorCisg
ICAgQlVJTERfU0NSSVBUU19ESVI9IiR7R1hfQlVJTERfU0NSSVBUU19ESVJ9IiBcCisgICAgIiR7
R1hfVU5JRklFRFNPVVJDRVNfR0VORVJBVE9SfSIgXAorICAgICAgICAtLWdlbmVyYXRlLXhjZmls
ZWxpc3RzIFwKKyAgICAgICAgLS1pbnB1dC14Y2ZpbGVsaXN0LXBhdGggIiR7R1hfVEVNUF9JTlBV
VF9YQ0ZJTEVMSVNUfSIgXAorICAgICAgICAtLW91dHB1dC14Y2ZpbGVsaXN0LXBhdGggIiR7R1hf
VEVNUF9PVVRQVVRfWENGSUxFTElTVH0iCisgICAgR1hfUkVTVUxUPSQ/CisKKyAgICAoKCAke0dY
X1JFU1VMVH0gKSkgJiYgZGllICJFcnJvciBnZW5lcmF0aW5nIHVuaWZpZWQgc291cmNlczogZXJy
b3IgPSAke0dYX1JFU1VMVH0iCisgICAgW1sgLWYgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJTEVMSVNU
fSIgXV0gfHwgZGllICIke0dYX1RFTVBfSU5QVVRfWENGSUxFTElTVH0gd2FzIG5vdCBnZW5lcmF0
ZWQuIgorICAgIFtbIC1mICIke0dYX1RFTVBfT1VUUFVUX1hDRklMRUxJU1R9IiBdXSB8fCBkaWUg
IiR7R1hfVEVNUF9PVVRQVVRfWENGSUxFTElTVH0gd2FzIG5vdCBnZW5lcmF0ZWQuIgorCisgICAg
dW5leHBhbmQgIiR7R1hfVEVNUF9JTlBVVF9YQ0ZJTEVMSVNUfSIgQlVJTFRfUFJPRFVDVFNfRElS
CisgICAgdW5leHBhbmQgIiR7R1hfVEVNUF9PVVRQVVRfWENGSUxFTElTVH0iIEJVSUxUX1BST0RV
Q1RTX0RJUgorCisgICAgbWVyZ2VfeGNmaWxlbGlzdHNfaGVscGVyICIke0dYX1RFTVBfSU5QVVRf
WENGSUxFTElTVH0iICIke0dYX0lOUFVUX1VOSUZJRURfWENGSUxFTElTVF9QUk9KRUNUX1RFTVBf
UEFUSH0iCisgICAgbWVyZ2VfeGNmaWxlbGlzdHNfaGVscGVyICIke0dYX1RFTVBfT1VUUFVUX1hD
RklMRUxJU1R9IiAiJHtHWF9PVVRQVVRfVU5JRklFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfVEVNUF9Q
QVRIfSIKIH0KIAogCi1mdW5jdGlvbiBzZXRfYnVpbGRfdmFyaWFibGVzX2Zvcl9EdW1wUmVuZGVy
VHJlZSgpCitmdW5jdGlvbiBzdWJnZW5lcmF0ZV94Y2ZpbGVsaXN0cygpCiB7Ci0gICAgUFJPSkVD
VF9OQU1FPUR1bXBSZW5kZXJUcmVlCi0gICAgUFJPSkVDVF9ESVI9IiR7T1BFTlNPVVJDRV9ESVJ9
L1Rvb2xzLyR7UFJPSkVDVF9OQU1FfSIKLSAgICBHRU5FUkFUT1I9IiR7UFJPSkVDVF9ESVJ9L1Nj
cmlwdHMvZ2VuZXJhdGUtZGVyaXZlZC1zb3VyY2VzLnNoIgotICAgIERFUklWRURfU09VUkNFU19N
QUtFPSIke1BST0pFQ1RfRElSfS9EZXJpdmVkU291cmNlcy5tYWtlIgotICAgIERFUklWRURfU09V
UkNFU19ESVI9IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy8ke1BST0pFQ1Rf
TkFNRX0iCisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAiJEAiCiAKLSAgICBleHBv
cnQgRlJBTUVXT1JLX1NFQVJDSF9QQVRIUz0KLSAgICBleHBvcnQgSEVBREVSX1NFQVJDSF9QQVRI
Uz0KLSAgICBleHBvcnQgU1lTVEVNX0ZSQU1FV09SS19TRUFSQ0hfUEFUSFM9Ci0gICAgZXhwb3J0
IFNZU1RFTV9IRUFERVJfU0VBUkNIX1BBVEhTPQorICAgIGludm9rZV9lYWNoX2FjdGlvbiAiJHtH
WF9TVUJHRU5FUkFURV9BQ1RJT05TW0BdfSIKIH0KIAotZnVuY3Rpb24gc2V0X2J1aWxkX3Zhcmlh
Ymxlc19mb3JfV2ViS2l0VGVzdFJ1bm5lcigpCisKK2Z1bmN0aW9uIHN1YmxhdW5jaF91bmRlcl94
Y29kZSgpCiB7Ci0gICAgUFJPSkVDVF9OQU1FPVdlYktpdFRlc3RSdW5uZXIKLSAgICBQUk9KRUNU
X0RJUj0iJHtPUEVOU09VUkNFX0RJUn0vVG9vbHMvJHtQUk9KRUNUX05BTUV9IgotICAgIEdFTkVS
QVRPUj0iJHtQUk9KRUNUX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1kZXJpdmVkLXNvdXJjZXMuc2gi
Ci0gICAgREVSSVZFRF9TT1VSQ0VTX01BS0U9IiR7UFJPSkVDVF9ESVJ9L0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UiCi0gICAgREVSSVZFRF9TT1VSQ0VTX0RJUj0iJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rl
cml2ZWRTb3VyY2VzLyR7UFJPSkVDVF9OQU1FfSIKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJh
bWV0ZXJzICIkQCIKKworICAgICMgU3VibGF1bmNoIHRoZSBzY3JpcHQgZm9yIHRoZSBnaXZlbiBw
cm9qZWN0LCBmb3IgZWFjaCBwbGF0Zm9ybSBmb3Igd2hpY2gKKyAgICAjIHRoZSBwcm9qZWN0IGlz
IGJ1aWx0LCBhbmQgZm9yIERlYnVnIGFuZCBSZWxlYXNlIGNvbmZpZ3VyYXRpb25zLgorCisgICAg
bG9jYWwgR1hfQVJHUz0oIiRAIikKKyAgICAoKCAke0dYX0RSWV9SVU59ICkpICYmIEdYX0FSR1Mr
PSgiLS1kcnktcnVuIikKKyAgICAoKCAke0dYX0RFQlVHfSApKSAmJiB7IGZvciBuIGluICQoc2Vx
ICRHWF9ERUJVRyk7IGRvIEdYX0FSR1MrPSgiLS1kZWJ1ZyIpOyBkb25lOyB9CisgICAgKCggJHtH
WF9RVUlFVH0gKSkgJiYgR1hfQVJHUys9KCItLXF1aWV0IikKKworICAgIGxvY2FsIEdYX1NES19O
QU1FPSQoZ2V0X3Nka19uYW1lICIke0dYX1BMQVRGT1JNX05BTUV9IikKKworICAgIGxvZ19kZWJ1
ZyAiU3VibGF1bmNoaW5nIGZvcjogJHtHWF9QUk9KRUNUX1RBR30vJHtHWF9QTEFURk9STV9OQU1F
fS8ke0dYX0NPTkZJR1VSQVRJT059IgorCisgICAgbG9jYWwgR1hfWENPREVfUEFSQU1FVEVSUz0o
CisgICAgICAgIC1wcm9qZWN0ICIke0dYX1BTX1BST0pFQ1RfRklMRV9QQVRIfSIKKyAgICAgICAg
LXNkayAiJHtHWF9TREtfTkFNRX0iCisgICAgICAgIC1jb25maWd1cmF0aW9uICIke0dYX0NPTkZJ
R1VSQVRJT059IgorICAgICAgICAtdGFyZ2V0ICJBcHBseSBDb25maWd1cmF0aW9uIHRvIFhDRmls
ZUxpc3RzIgorICAgICkKKworICAgIGlmICgoICR7R1hfVVNFX1dFQktJVEJVSUxEX0JVSUxEX09V
VFBVVH0gKSkKKyAgICB0aGVuCisgICAgICAgIGxvY2FsIEdYX1dFQktJVEJVSUxEX0RJUj0iJHtX
RUJLSVRfT1VUUFVURElSOi0ke0dYX09QRU5TT1VSQ0VfRElSfS9XZWJLaXRCdWlsZH0iCisgICAg
ICAgIFtbIC1kICIke0dYX1dFQktJVEJVSUxEX0RJUn0iIF1dIHx8IGRpZSAiJHtHWF9XRUJLSVRC
VUlMRF9ESVJ9IGRvZXMgbm90IGV4aXN0LiIKKworICAgICAgICBHWF9YQ09ERV9QQVJBTUVURVJT
Kz0oCisgICAgICAgICAgICBTWU1ST09UPSIke0dYX1dFQktJVEJVSUxEX0RJUn0iCisgICAgICAg
ICAgICBPQkpST09UPSIke0dYX1dFQktJVEJVSUxEX0RJUn0iCisgICAgICAgICAgICBTSEFSRURf
UFJFQ09NUFNfRElSPSIke0dYX1dFQktJVEJVSUxEX0RJUn0vUHJlY29tcGlsZWRIZWFkZXJzIgor
ICAgICAgICApCisgICAgZmkKKworICAgIGlmICgoICRHWF9ERUJVRyA+IDAgKSkKKyAgICB0aGVu
CisgICAgICAgIFdLX1NVQkxBVU5DSF9TQ1JJUFRfUEFSQU1FVEVSUz0oIiR7R1hfQVJHU1tAXX0i
KSB4Y29kZWJ1aWxkICIke0dYX1hDT0RFX1BBUkFNRVRFUlNbQF19IgorICAgIGVsc2UKKyAgICAg
ICAgV0tfU1VCTEFVTkNIX1NDUklQVF9QQVJBTUVURVJTPSgiJHtHWF9BUkdTW0BdfSIpIHhjb2Rl
YnVpbGQgIiR7R1hfWENPREVfUEFSQU1FVEVSU1tAXX0iIHwgZ3JlcCAnXlwuXC5cLiAnCisgICAg
ZmkKKworICAgIGxvY2FsIEdYX1JFU1VMVD0ke1BJUEVTVEFUVVNbMF19CisgICAgKCggJHtHWF9S
RVNVTFR9ICkpICYmIGRpZSAiRXJyb3Igc3ViLWxhdW5jaGluZyB1bmRlciB4Y29kZTogZXJyb3Ig
PSAke0dYX1JFU1VMVH0iCit9CisKIAotICAgIGV4cG9ydCBGUkFNRVdPUktfU0VBUkNIX1BBVEhT
PQotICAgIGV4cG9ydCBIRUFERVJfU0VBUkNIX1BBVEhTPQotICAgIGV4cG9ydCBTWVNURU1fRlJB
TUVXT1JLX1NFQVJDSF9QQVRIUz0KLSAgICBleHBvcnQgU1lTVEVNX0hFQURFUl9TRUFSQ0hfUEFU
SFM9Ci19Ci0KLQotZnVuY3Rpb24gZHVtcF92YXJpYWJsZXMoKQorZnVuY3Rpb24gcmVzZXRfcHJv
amVjdF9zcGVjaWZpY190ZW1wX2ZpbGVzKCkKIHsKLSAgICBlY2hvICJBQ1RJT04gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA9ICR7QUNUSU9OfSIKLSAgICBlY2hvICJPUyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9ICR7T1N9IgotICAgIGVjaG8gIlBMQVRGT1JNX05BTUUg
ICAgICAgICAgICAgICAgICAgICAgID0gJHtQTEFURk9STV9OQU1FfSIKLSAgICBlY2hvICJTREtS
T09UICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9ICR7U0RLUk9PVH0iCi0gICAgZWNobyAi
U1JDUk9PVCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAke1NSQ1JPT1R9IgotICAgIGVj
aG8gIkJVSUxEX1NDUklQVFNfRElSICAgICAgICAgICAgICAgICAgID0gJHtCVUlMRF9TQ1JJUFRT
X0RJUn0iCi0gICAgZWNobyAiQlVJTFRfUFJPRFVDVFNfRElSICAgICAgICAgICAgICAgICAgPSAk
e0JVSUxUX1BST0RVQ1RTX0RJUn0iCi0gICAgZWNobyAiV0VCQ09SRV9QUklWQVRFX0hFQURFUlNf
RElSICAgICAgICAgPSAke1dFQkNPUkVfUFJJVkFURV9IRUFERVJTX0RJUn0iCi0gICAgZWNobyAi
V0VCS0lUMl9QUklWQVRFX0hFQURFUlNfRElSICAgICAgICAgPSAke1dFQktJVDJfUFJJVkFURV9I
RUFERVJTX0RJUn0iCi0gICAgZWNobyAiSkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJ
UiAgPSAke0pBVkFTQ1JJUFRDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9IgotICAgIGVjaG8gIldF
QktJVEFERElUSU9OU19IRUFERVJfU0VBUkNIX1BBVEhTID0gJHtXRUJLSVRBRERJVElPTlNfSEVB
REVSX1NFQVJDSF9QQVRIU30iCi0gICAgZWNobyAiIgotICAgIGVjaG8gIlBST0pFQ1RfTkFNRSAg
ICAgICAgICAgICAgICAgICAgICAgID0gJHtQUk9KRUNUX05BTUV9IgotICAgIGVjaG8gIlBST0pF
Q1RfRElSICAgICAgICAgICAgICAgICAgICAgICAgID0gJHtQUk9KRUNUX0RJUn0iCi0gICAgZWNo
byAiR0VORVJBVE9SICAgICAgICAgICAgICAgICAgICAgICAgICAgPSAke0dFTkVSQVRPUn0iCi0g
ICAgZWNobyAiREVSSVZFRF9TT1VSQ0VTX01BS0UgICAgICAgICAgICAgICAgPSAke0RFUklWRURf
U09VUkNFU19NQUtFfSIKLSAgICBlY2hvICJERVJJVkVEX1NPVVJDRVNfRElSICAgICAgICAgICAg
ICAgICA9ICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCi0gICAgZWNobyAiIgotICAgIGVjaG8gIkZS
QU1FV09SS19TRUFSQ0hfUEFUSFMgICAgICAgICAgICAgID0gJHtGUkFNRVdPUktfU0VBUkNIX1BB
VEhTfSIKLSAgICBlY2hvICJIRUFERVJfU0VBUkNIX1BBVEhTICAgICAgICAgICAgICAgICA9ICR7
SEVBREVSX1NFQVJDSF9QQVRIU30iCi0gICAgZWNobyAiU1lTVEVNX0ZSQU1FV09SS19TRUFSQ0hf
UEFUSFMgICAgICAgPSAke1NZU1RFTV9GUkFNRVdPUktfU0VBUkNIX1BBVEhTfSIKLX0KKyAgICBs
b2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKworICAgIGNyZWF0ZV9lbXB0eV9maWxl
cyBcCisgICAgICAgICIke0dYX0lOUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9KRUNUX1RFTVBf
UEFUSH0iICIke0dYX09VVFBVVF9ERVJJVkVEX1hDRklMRUxJU1RfUFJPSkVDVF9URU1QX1BBVEh9
IiBcCisgICAgICAgICIke0dYX0lOUFVUX1VOSUZJRURfWENGSUxFTElTVF9QUk9KRUNUX1RFTVBf
UEFUSH0iICIke0dYX09VVFBVVF9VTklGSUVEX1hDRklMRUxJU1RfUFJPSkVDVF9URU1QX1BBVEh9
IgorfQogCiAKLWZ1bmN0aW9uIHNldF9idWlsZF92YXJpYWJsZXMoKQorZnVuY3Rpb24gZ2VuZXJh
dGVfeGNmaWxlbGlzdHMoKQogewotICAgIFBST0pFQ1RfVEFHPSIkMSIKKyAgICBsb2dfY2FsbHN0
YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKIAotICAgIGV4cG9ydCBBQ1RJT049YnVpbGQKLSAgICBl
eHBvcnQgT1M9TUFDT1MKLSAgICBleHBvcnQgUExBVEZPUk1fTkFNRT1tYWNvc3gKLSAgICBleHBv
cnQgU0RLUk9PVD0iJCh4Y3J1biAtc2hvdy1zZGstcGF0aCkiCi0gICAgZXhwb3J0IEJVSUxEX1ND
UklQVFNfRElSPSIke09QRU5TT1VSQ0VfRElSfS9Tb3VyY2UvV1RGL1NjcmlwdHMiCi0gICAgZXhw
b3J0IEJVSUxUX1BST0RVQ1RTX0RJUj0iJChmaW5kX2ZpcnN0X2V4aXN0aW5nICIke09QRU5TT1VS
Q0VfRElSfS9XZWJLaXRCdWlsZC8ie0RlYnVnLFJlbGVhc2V9KikiCi0gICAgW1sgLW4gIiR7U0RL
Uk9PVH0iIF1dIHx8IGRpZSAiU0RLUk9PVCBpcyBub3QgZGVmaW5lZCIKLSAgICBbWyAtZSAiJHtC
VUlMRF9TQ1JJUFRTX0RJUn0iIF1dIHx8IGRpZSAiJEJVSUxEX1NDUklQVFNfRElSIGRvZXMgbm90
IGV4aXN0IgotICAgIFtbIC1uICIke0JVSUxUX1BST0RVQ1RTX0RJUn0iIF1dIHx8IGRpZSAiQlVJ
TFRfUFJPRFVDVFNfRElSIGlzIG5vdCBkZWZpbmVkLiBZb3UgbWF5IG5lZWQgdG8gYnVpbGQgV2Vi
S2l0IGZpcnN0LiIKKyAgICByZXNldF9wcm9qZWN0X3NwZWNpZmljX3RlbXBfZmlsZXMKKworICAg
IGZvcl9lYWNoX3BsYXRmb3JtIFwKKyAgICAgICAgZm9yX2VhY2hfY29uZmlndXJhdGlvbiBcCisg
ICAgICAgICAgICBzdWJsYXVuY2hfdW5kZXJfeGNvZGUgXAorICAgICAgICAgICAgICAgICIke0dY
X1NVQkVYRUNVVEVfU0NSSVBUfSIgc3ViZ2VuZXJhdGUgLS1ub2NsZWFudXAgLS1wcm9qZWN0ICIk
e0dYX1BST0pFQ1RfVEFHfSIKK30KIAotICAgIGV4cG9ydCBXRUJDT1JFX1BSSVZBVEVfSEVBREVS
U19ESVI9IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9XZWJDb3JlLmZyYW1ld29yay9Qcml2YXRlSGVh
ZGVycyIKLSAgICBleHBvcnQgV0VCS0lUMl9QUklWQVRFX0hFQURFUlNfRElSPSIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vV2ViS2l0LmZyYW1ld29yay9Qcml2YXRlSGVhZGVycyIKLSAgICBleHBvcnQg
SkFWQVNDUklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUj0iJHtCVUlMVF9QUk9EVUNUU19ESVJ9
L0phdmFTY3JpcHRDb3JlLmZyYW1ld29yay9Qcml2YXRlSGVhZGVycyIKLSAgICBleHBvcnQgV0VC
S0lUQURESVRJT05TX0hFQURFUl9TRUFSQ0hfUEFUSFM9IiR7QlVJTFRfUFJPRFVDVFNfRElSfS91
c3IvbG9jYWwvaW5jbHVkZS9XZWJLaXRBZGRpdGlvbnMgJHtTREtST09UfS91c3IvbG9jYWwvaW5j
bHVkZS9XZWJLaXRBZGRpdGlvbnMiCi0gICAgW1sgLWUgIiR7V0VCQ09SRV9QUklWQVRFX0hFQURF
UlNfRElSfSIgXV0gfHwgZGllICIkV0VCQ09SRV9QUklWQVRFX0hFQURFUlNfRElSIGRvZXMgbm90
IGV4aXN0LiBZb3UgbWF5IG5lZWQgdG8gYnVpbGQgV2ViS2l0IGZpcnN0LiIKLSAgICBbWyAtZSAi
JHtKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElSfSIgXV0gfHwgZGllICIkSkFWQVND
UklQVENPUkVfUFJJVkFURV9IRUFERVJTX0RJUiBkb2VzIG5vdCBleGlzdC4gWW91IG1heSBuZWVk
IHRvIGJ1aWxkIFdlYktpdCBmaXJzdC4iCi0gICAgIyBbWyAtZSAiJHtXRUJLSVRBRERJVElPTlNf
SEVBREVSX1NFQVJDSF9QQVRIU30iIF1dIHx8IGRpZSAiJFdFQktJVEFERElUSU9OU19IRUFERVJf
U0VBUkNIX1BBVEhTIGRvZXMgbm90IGV4aXN0LiBZb3UgbWF5IG5lZWQgdG8gYnVpbGQgV2ViS2l0
IGZpcnN0LiIKIAotICAgIGxvY2FsIEZOPXNldF9idWlsZF92YXJpYWJsZXNfZm9yXyR7UFJPSkVD
VF9UQUd9Ci0gICAgbG9jYWwgSVNfRlVOQ1RJT049JCh0eXBlIC10ICRGTikKLSAgICBbWyAiJHtJ
U19GVU5DVElPTn0iID09ICJmdW5jdGlvbiIgXV0gJiYgZXZhbCAkRk4gfHwgZGllICJDb3VsZCBu
b3Qgc2V0IGJ1aWxkIHZhcmlhYmxlcyBmb3IgJHtQUk9KRUNUX1RBR30iCitmdW5jdGlvbiBtZXJn
ZV94Y2ZpbGVsaXN0c19oZWxwZXIoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRl
cnMgIiRAIgogCi0gICAgIyBEbyB0aGVzZSBhZnRlciBwcm9qZWN0LXNwZWNpZmljIGluaXRpYWxp
emF0aW9uLgorICAgIGxvY2FsIEdYX1NPVVJDRT0iJDEiCisgICAgbG9jYWwgR1hfREVTVD0iJDIi
CisgICAgbG9jYWwgR1hfQURESVRJT05TPSIke0dYX1RFTVB9L2RpZmZfYWRkZWQudG1wIgogCi0g
ICAgZXhwb3J0IFNSQ1JPT1Q9IiR7UFJPSkVDVF9ESVJ9IgorICAgIGFwcGVuZF94Y2ZpbGVsaXN0
X2hlYWRlciAiJHtHWF9TT1VSQ0V9IgorICAgIHNvcnRfYW5kX3VuaXF1ZV9pbl9wbGFjZSAiJHtH
WF9TT1VSQ0V9IgogCi0gICAgW1sgLWUgIiR7UFJPSkVDVF9ESVJ9IiBdXSB8fCBkaWUgIiRQUk9K
RUNUX0RJUiBkb2VzIG5vdCBleGlzdCIKLSAgICBbWyAtZSAiJHtHRU5FUkFUT1J9IiBdXSB8fCBk
aWUgIiRHRU5FUkFUT1IgZG9lcyBub3QgZXhpc3QiCi0gICAgW1sgLWUgIiR7REVSSVZFRF9TT1VS
Q0VTX01BS0V9IiBdXSB8fCBkaWUgIiRERVJJVkVEX1NPVVJDRVNfTUFLRSBkb2VzIG5vdCBleGlz
dCIKLSAgICBbWyAtZSAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIgXV0gfHwgZGllICIkREVSSVZF
RF9TT1VSQ0VTX0RJUiBkb2VzIG5vdCBleGlzdCIKKyAgICBmaW5kX2FkZGl0aW9ucyAiJHtHWF9T
T1VSQ0V9IiAiJHtHWF9ERVNUfSIgIiR7R1hfQURESVRJT05TfSIKIAotICAgICMgZHVtcF92YXJp
YWJsZXMKKyAgICBpZiBbWyAtcyAiJHtHWF9BRERJVElPTlN9IiBdXQorICAgIHRoZW4KKyAgICAg
ICAgY2F0ICIke0dYX1NPVVJDRX0iID4+ICIke0dYX0RFU1R9IgorICAgICAgICBzb3J0X2FuZF91
bmlxdWVfaW5fcGxhY2UgIiR7R1hfREVTVH0iCisgICAgICAgIHJldHVybiAwCisgICAgZmkKKwor
ICAgIHJldHVybiAxCiB9CiAKIAotZnVuY3Rpb24gc29ydF9maWxlcygpCitmdW5jdGlvbiBtZXJn
ZV9kZXJpdmVkc291cmNlc194Y2ZpbGVsaXN0cygpCiB7Ci0gICAgc29ydCAiJHtJTlBVVF9YQ0ZJ
TEVMSVNUX1BBVEh9IiAtbyAiJHtJTlBVVF9YQ0ZJTEVMSVNUX1BBVEh9IgotICAgIHNvcnQgIiR7
T1VUUFVUX1hDRklMRUxJU1RfUEFUSH0iIC1vICIke09VVFBVVF9YQ0ZJTEVMSVNUX1BBVEh9Igor
ICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgbG9nX2RlYnVnICJN
ZXJnaW5nICR7R1hfSU5QVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfVEVNUF9QQVRIfSBp
bnRvICR7R1hfSU5QVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfUEFUSH0iCisgICAgbG9n
X2RlYnVnICJNZXJnaW5nICR7R1hfT1VUUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9KRUNUX1RF
TVBfUEFUSH0gaW50byAke0dYX09VVFBVVF9ERVJJVkVEX1hDRklMRUxJU1RfUFJPSkVDVF9QQVRI
fSIKKworICAgIGlmICgoICEgJHtHWF9EUllfUlVOfSApKQorICAgIHRoZW4KKyAgICAgICAgbWVy
Z2VfeGNmaWxlbGlzdHNfaGVscGVyICIke0dYX0lOUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9K
RUNUX1RFTVBfUEFUSH0iICIke0dYX0lOUFVUX0RFUklWRURfWENGSUxFTElTVF9QUk9KRUNUX1BB
VEh9IiAmJiBHWF9ERUZFUlJFRF9FWElUX0NPREU9MworICAgICAgICBsb2dfZGVidWcgIkdYX0RF
RkVSUkVEX0VYSVRfQ09ERSA9ICRHWF9ERUZFUlJFRF9FWElUX0NPREUiCisKKyAgICAgICAgbWVy
Z2VfeGNmaWxlbGlzdHNfaGVscGVyICIke0dYX09VVFBVVF9ERVJJVkVEX1hDRklMRUxJU1RfUFJP
SkVDVF9URU1QX1BBVEh9IiAiJHtHWF9PVVRQVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1Rf
UEFUSH0iICYmIEdYX0RFRkVSUkVEX0VYSVRfQ09ERT0zCisgICAgICAgIGxvZ19kZWJ1ZyAiR1hf
REVGRVJSRURfRVhJVF9DT0RFID0gJEdYX0RFRkVSUkVEX0VYSVRfQ09ERSIKKyAgICBmaQogfQog
CiAKLSMgSWYgd2UncmUgZG9pbmcgYSBjaGVjayAoYXMgb3Bwb3NlZCB0byBnZW5lcmF0aW5nIHRo
ZSBmaWxlcyksIHRoZW4gcmVkaXJlY3QKLSMgdGhlIHNjcmlwdCB0byBnZW5lcmF0ZSB0aGUgZmls
ZXMgaW4gYSB0ZW1wb3JhcnkgbG9jYXRpb24gKHNvIHRoYXQgd2UgY2FuCi0jIGNvbXBhcmUgdGhv
c2UgdG8gdGhlIG9yaWdpbmFscyBsYXRlcikuCitmdW5jdGlvbiBtZXJnZV91bmlmaWVkc291cmNl
c194Y2ZpbGVsaXN0cygpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAiJEAi
CisKKyAgICBsb2dfZGVidWcgIk1lcmdpbmcgJHtHWF9JTlBVVF9VTklGSUVEX1hDRklMRUxJU1Rf
UFJPSkVDVF9URU1QX1BBVEh9IGludG8gJHtHWF9JTlBVVF9VTklGSUVEX1hDRklMRUxJU1RfUFJP
SkVDVF9QQVRIfSIKKyAgICBsb2dfZGVidWcgIk1lcmdpbmcgJHtHWF9PVVRQVVRfVU5JRklFRF9Y
Q0ZJTEVMSVNUX1BST0pFQ1RfVEVNUF9QQVRIfSBpbnRvICR7R1hfT1VUUFVUX1VOSUZJRURfWENG
SUxFTElTVF9QUk9KRUNUX1BBVEh9IgorCisgICAgaWYgKCggISAke0dYX0RSWV9SVU59ICkpCisg
ICAgdGhlbgorICAgICAgICBtZXJnZV94Y2ZpbGVsaXN0c19oZWxwZXIgIiR7R1hfSU5QVVRfVU5J
RklFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfVEVNUF9QQVRIfSIgIiR7R1hfSU5QVVRfVU5JRklFRF9Y
Q0ZJTEVMSVNUX1BST0pFQ1RfUEFUSH0iICYmIEdYX0RFRkVSUkVEX0VYSVRfQ09ERT0zCisgICAg
ICAgIGxvZ19kZWJ1ZyAiR1hfREVGRVJSRURfRVhJVF9DT0RFID0gJEdYX0RFRkVSUkVEX0VYSVRf
Q09ERSIKKworICAgICAgICBtZXJnZV94Y2ZpbGVsaXN0c19oZWxwZXIgIiR7R1hfT1VUUFVUX1VO
SUZJRURfWENGSUxFTElTVF9QUk9KRUNUX1RFTVBfUEFUSH0iICIke0dYX09VVFBVVF9VTklGSUVE
X1hDRklMRUxJU1RfUFJPSkVDVF9QQVRIfSIgJiYgR1hfREVGRVJSRURfRVhJVF9DT0RFPTMKKyAg
ICAgICAgbG9nX2RlYnVnICJHWF9ERUZFUlJFRF9FWElUX0NPREUgPSAkR1hfREVGRVJSRURfRVhJ
VF9DT0RFIgorICAgIGZpCit9CisKIAotZnVuY3Rpb24gY2hlY2tfcHJvbG9nKCkKK2Z1bmN0aW9u
IG1lcmdlX3hjZmlsZWxpc3RzKCkKIHsKLSAgICBpZiAoKCAke0RPX0NIRUNLfSApKQorICAgIGxv
Z19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgaW52b2tlX2VhY2hfYWN0aW9u
ICIke0dYX01FUkdFX0FDVElPTlNbQF19IgorCisgICAgbG9nX2RlYnVnICJHWF9ERUZFUlJFRF9F
WElUX0NPREUgPSAkR1hfREVGRVJSRURfRVhJVF9DT0RFIgorfQorCisKK2Z1bmN0aW9uIGNoZWNr
X3hjZmlsZWxpc3RzX2hlbHBlcigpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVy
cyAiJEAiCisKKyAgICBsb2NhbCBHWF9ORVc9IiQxIgorICAgIGxvY2FsIEdYX09SSUc9IiQyIgor
ICAgIGxvY2FsIEdYX0FERElUSU9OUz0iJHtHWF9URU1QfS9kaWZmX2FkZGVkLnRtcCIKKworICAg
IGxvZ19kZWJ1ZyAiQ2hlY2tpbmcgJHtHWF9ORVd9IGFnYWluc3QgJHtHWF9PUklHfSIKKworICAg
IGZpbmRfYWRkaXRpb25zICIke0dYX05FV30iICIke0dYX09SSUd9IiAiJHtHWF9BRERJVElPTlN9
IgorCisgICAgaWYgW1sgLXMgIiR7R1hfQURESVRJT05TfSIgXV0KICAgICB0aGVuCi0gICAgICAg
IElOUFVUX1hDRklMRUxJU1RfUEFUSF9PUklHPSIke0lOUFVUX1hDRklMRUxJU1RfUEFUSH0iCi0g
ICAgICAgIElOUFVUX1hDRklMRUxJU1RfUEFUSD0iL3RtcC8ke0lOUFVUX1hDRklMRUxJU1RfUEFU
SCMjL30iCi0gICAgICAgIE9VVFBVVF9YQ0ZJTEVMSVNUX1BBVEhfT1JJRz0iJHtPVVRQVVRfWENG
SUxFTElTVF9QQVRIfSIKLSAgICAgICAgT1VUUFVUX1hDRklMRUxJU1RfUEFUSD0iL3RtcC8ke09V
VFBVVF9YQ0ZJTEVMSVNUX1BBVEgjIy99IgotICAgICAgICBta2RpciAtcCAiJChkaXJuYW1lICIk
e0lOUFVUX1hDRklMRUxJU1RfUEFUSH0iKSIKLSAgICAgICAgbWtkaXIgLXAgIiQoZGlybmFtZSAi
JHtPVVRQVVRfWENGSUxFTElTVF9QQVRIfSIpIgotICAgIGVsc2UKLSAgICAgICAgZWNobyAiIyMj
IEdlbmVyYXRpbmc6ICR7SU5QVVRfWENGSUxFTElTVF9QQVRIfSIKLSAgICAgICAgZWNobyAiIyMj
IEdlbmVyYXRpbmc6ICR7T1VUUFVUX1hDRklMRUxJU1RfUEFUSH0iCisgICAgICAgIGxvZ19wcm9n
cmVzcworICAgICAgICBsb2dfcHJvZ3Jlc3MgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKKyAgICAg
ICAgbG9nX3Byb2dyZXNzICJGb3VuZCBhZGRlZCBmaWxlcyBmb3IgJHtHWF9PUklHfToiCisgICAg
ICAgIGxvZ19wcm9ncmVzcyAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIgorCisgICAgICAgIGxvY2Fs
IEdYX0xJTkUKKyAgICAgICAgd2hpbGUgSUZTPScnIHJlYWQgLXIgR1hfTElORQorICAgICAgICBk
bworICAgICAgICAgICAgbG9nX3Byb2dyZXNzICIke0dYX0xJTkV9IgorICAgICAgICBkb25lIDwg
IiR7R1hfQURESVRJT05TfSIKKworICAgICAgICBsb2dfcHJvZ3Jlc3MgIi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSIKKworICAgICAgICBHWF9ERUZFUlJFRF9FWElUX0NPREU9MgogICAgIGZpCiB9CiAK
IAotIyBJZiB3ZSdyZSBkb2luZyBhIGNoZWNrLCB0aGVuIGRpZmYgdGhlIG5ldyBmaWxlcyBhZ2Fp
bnN0IHRoZSBvcmlnaW5hbHMuCitmdW5jdGlvbiBjaGVja19kZXJpdmVkc291cmNlc194Y2ZpbGVs
aXN0cygpCit7CisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAiJEAiCisKKyAgICBj
aGVja194Y2ZpbGVsaXN0c19oZWxwZXIgIiR7R1hfSU5QVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BS
T0pFQ1RfVEVNUF9QQVRIfSIgIiR7R1hfSU5QVVRfREVSSVZFRF9YQ0ZJTEVMSVNUX1BST0pFQ1Rf
UEFUSH0iCisgICAgY2hlY2tfeGNmaWxlbGlzdHNfaGVscGVyICIke0dYX09VVFBVVF9ERVJJVkVE
X1hDRklMRUxJU1RfUFJPSkVDVF9URU1QX1BBVEh9IiAiJHtHWF9PVVRQVVRfREVSSVZFRF9YQ0ZJ
TEVMSVNUX1BST0pFQ1RfUEFUSH0iCit9CisKKworZnVuY3Rpb24gY2hlY2tfdW5pZmllZHNvdXJj
ZXNfeGNmaWxlbGlzdHMoKQoreworICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRA
IgorCisgICAgY2hlY2tfeGNmaWxlbGlzdHNfaGVscGVyICIke0dYX0lOUFVUX1VOSUZJRURfWENG
SUxFTElTVF9QUk9KRUNUX1RFTVBfUEFUSH0iICIke0dYX0lOUFVUX1VOSUZJRURfWENGSUxFTElT
VF9QUk9KRUNUX1BBVEh9IgorICAgIGNoZWNrX3hjZmlsZWxpc3RzX2hlbHBlciAiJHtHWF9PVVRQ
VVRfVU5JRklFRF9YQ0ZJTEVMSVNUX1BST0pFQ1RfVEVNUF9QQVRIfSIgIiR7R1hfT1VUUFVUX1VO
SUZJRURfWENGSUxFTElTVF9QUk9KRUNUX1BBVEh9IgorfQorCisKK2Z1bmN0aW9uIGNoZWNrX3hj
ZmlsZWxpc3RzKCkKK3sKKyAgICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKwor
ICAgIGludm9rZV9lYWNoX2FjdGlvbiAiJHtHWF9DSEVDS19BQ1RJT05TW0BdfSIKK30KKwogCi1m
dW5jdGlvbiBjaGVja19lcGlsb2coKQorZnVuY3Rpb24gcmVwb3J0X21lcmdlX3Jlc3VsdHMoKQog
ewotICAgIGlmICgoICR7RE9fQ0hFQ0t9ICkpCisgICAgbG9nX2NhbGxzdGFja19hbmRfcGFyYW1l
dGVycyAiJEAiCisKKyAgICBsb2dfZGVidWcgIkdYX0RFRkVSUkVEX0VYSVRfQ09ERSA9ICRHWF9E
RUZFUlJFRF9FWElUX0NPREUiCisKKyAgICBpZiAoKCAke0dYX0RFRkVSUkVEX0VYSVRfQ09ERX0g
KSkKICAgICB0aGVuCi0gICAgICAgIGVjaG8gIiMjIyBDaGVja2luZzogJHtJTlBVVF9YQ0ZJTEVM
SVNUX1BBVEh9IgotICAgICAgICBjaGVja194Y2ZpbGVsaXN0ICIke0lOUFVUX1hDRklMRUxJU1Rf
UEFUSF9PUklHfSIgIiR7SU5QVVRfWENGSUxFTElTVF9QQVRIfSIKKyAgICAgICAgbG9nX3Byb2dy
ZXNzCiAKLSAgICAgICAgZWNobyAiIyMjIENoZWNraW5nOiAke09VVFBVVF9YQ0ZJTEVMSVNUX1BB
VEh9IgotICAgICAgICBjaGVja194Y2ZpbGVsaXN0ICIke09VVFBVVF9YQ0ZJTEVMSVNUX1BBVEhf
T1JJR30iICIke09VVFBVVF9YQ0ZJTEVMSVNUX1BBVEh9IgorICAgICAgICBsb2NhbCBHWF9NRVNT
QUdFPSciLnhjZmlsZWxpc3QiIGZpbGVzIHRlbGwgdGhlIGJ1aWxkIHN5c3RlbSB3aGF0IGZpbGVz
CisgICAgICAgICAgICBhcmUgY29uc3VtZWQgYW5kIHByb2R1Y2VkIGJ5IHRoZSAiUnVuIFNjcmlw
dCIgYnVpbGQgcGhhc2VzIGluCisgICAgICAgICAgICBYY29kZS4gQXQgbGVhc3Qgb25lIG9mIHRo
ZXNlIC54Y2ZpbGVsaXN0IGZpbGVzIHdhcyBvdXQgb2YgZGF0ZSBhbmQKKyAgICAgICAgICAgIGhh
cyBiZWVuIHVwZGF0ZWQuIFlvdSBub3cgbmVlZCB0byByZXN0YXJ0IHlvdXIgYnVpbGQuJworCisg
ICAgICAgIGxvZ19wcm9ncmVzc19sb25nICIke0dYX01FU1NBR0V9IgogICAgIGZpCiB9CiAKIAot
IyBHZW5lcmF0ZSAueGNmaWxlbGlzdCBmaWxlcyBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIERlcml2
ZWRTb3VyY2VzLm1ha2Ugd2hlbgotIyBpbnZva2VkIHRvIHByaW50IG91dCBpdHMgZGVwZW5kZW5j
eSBsaXN0LgorZnVuY3Rpb24gcmVwb3J0X3JlbWVkaWF0aW9uX3N0ZXBzKCkKK3sKKyAgICBsb2df
Y2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKIAotZnVuY3Rpb24gZ2VuZXJhdGVfeGNmaWxl
bGlzdHNfZnJvbV9kZXJpdmVkc291cmNlcygpCisgICAgaWYgKCggJHtHWF9ERUZFUlJFRF9FWElU
X0NPREV9ICkpCisgICAgdGhlbgorICAgICAgICBsb2dfcHJvZ3Jlc3MKKworICAgICAgICAjIFdl
IGNhbiBlaXRoZXIgYmUgY2FsbGVkIGZyb20gd2l0aGluIGFuIHhjb2RlYnVpbGQgY29udGV4dCAo
bWVhbmluZworICAgICAgICAjIHRoYXQgd2UgYXJlIGJlaW5nIGNhbGxlZCBkdXJpbmcgYSBidWls
ZCB0byB2YWxpZGF0ZSB0aGUgLnhjZmlsZWxpc3RzCisgICAgICAgICMgZm9yIHRoZSBjdXJyZW50
IGJ1aWxkIGNvbmZpZ3VyYXRpb24pIG9yIGZyb20gdGhlIGNvbW1hbmQgbGluZSAodG8KKyAgICAg
ICAgIyB2YWxpZGF0ZSBhbGwgLnhjZmlsZWxpc3RzKS4gV2UnbGwgZGV0ZXJtaW5lIHdoaWNoIG9m
IHRoZXNlIGlzIHRoZQorICAgICAgICAjIGNhc2UgYnkgY2hlY2tpbmcgJEdYX1BST0pFQ1RfVEFH
ICh3aGljaCB3aWxsIGhhdmUgYmVlbiBzZXQgdmlhIHRoZQorICAgICAgICAjIC0tcHJvamVjdCA8
VEFHPiBvcHRpb24gcGFzc2VkIGluIHRvIHVzIHdoZW4gd2UncmUgaW52b2tlZCBpbiB0aGlzCisg
ICAgICAgICMgY29udGV4dCkuCisgICAgICAgICMKKyAgICAgICAgIyBGdXJ0aGVyLCBpZiBjYWxs
ZWQgZnJvbSB3aXRoaW4geGNvZGVidWlsZCwgaXQncyBpbXBvcnRhbnQgdG8ga25vdyBpZgorICAg
ICAgICAjIHdlJ3JlIGJlaW5nIGNhbGxlZCBmcm9tIHdpdGhpbiBYY29kZSBvciBiZWluZyBpbnZv
a2VkIGJ5IGEgTWFrZWZpbGUuCisgICAgICAgICMgSWYgdGhlIGZvcm1lciwgdGhlIG91dHB1dC9i
dWlsZCBmaWxlcyB3ZSBhcmUgbG9va2luZyBmb3IgYXJlIGZvdW5kIGluCisgICAgICAgICMgfi9M
aWJyYXJ5L0RldmVsb3Blci9YY29kZS9EZXJpdmVkRGF0YS4gT3RoZXJ3aXNlLCB0aGV5J2xsIGJl
IGZvdW5kIGluCisgICAgICAgICMgT3BlblNvdXJjZS9XZWJLaXRCdWlsZCAob3Igd2hhdGV2ZXIg
JFdFQktJVF9PVVRQVVRESVIgcG9pbnRzIHRvKS4gV2UKKyAgICAgICAgIyBuZWVkIHRvIGRpc3Rp
bmd1aXNoIGJldHdlZW4gdGhlc2Ugc28gdGhhdCB3ZSBjYW4gdGVsbCB0aGUgdXNlciBob3cgdG8K
KyAgICAgICAgIyBpbnZva2UgdXMgaW4gYSB3YXkgdGhhdCBmaW5kcyB0aGUgcmlnaHQgb3V0cHV0
L2J1aWxkIGZpbGVzLgorICAgICAgICAjCisgICAgICAgICMgSWYgaW52b2tlZCBmcm9tIHRoZSBj
b21tYW5kIGxpbmUsIHdlIHJlYWxseSBjYW4ndCB0ZWxsIHdoZXJlIHRoZQorICAgICAgICAjIG91
dHB1dCBmaWxlcyBhcmUsIHNvIGdpdmUgdGhlIHVzZXIgYWR2aWNlIGluIHRoaXMgYXJlYS4KKwor
ICAgICAgICBsb2NhbCBHWF9NRVNTQUdFPSciLnhjZmlsZWxpc3QiIGZpbGVzIHRlbGwgdGhlIGJ1
aWxkIHN5c3RlbSB3aGF0IGZpbGVzCisgICAgICAgICAgICBhcmUgY29uc3VtZWQgYW5kIHByb2R1
Y2VkIGJ5IHRoZSAiUnVuIFNjcmlwdCIgYnVpbGQgcGhhc2VzIGluCisgICAgICAgICAgICBYY29k
ZS4gQXQgbGVhc3Qgb25lIG9mIHRoZXNlIC54Y2ZpbGVsaXN0IGZpbGVzIGFyZSBvdXQgb2YgZGF0
ZSBhbmQKKyAgICAgICAgICAgIG5lZWQgdG8gYmUgcmVnZW5lcmF0ZWQuIFJlZ2VuZXJhdGUgdGhl
c2UgZmlsZXMgYnkgcnVubmluZworICAgICAgICAgICAgYFRvb2xzL1NjcmlwdHMvZ2VuZXJhdGUt
eGNmaWxlbGlzdHMgZ2VuZXJhdGUnCisKKyAgICAgICAgaWYgW1sgLW4gIiR7R1hfUFJPSkVDVF9U
QUd9IiBdXQorICAgICAgICB0aGVuCisgICAgICAgICAgICBsb2NhbCBHWF9NRVNTQUdFKz0iIC0t
cHJvamVjdCAke0dYX1BST0pFQ1RfVEFHfSIKKyAgICAgICAgICAgIGlmIFtbICIke1NZTVJPT1R9
IiA9fiBMaWJyYXJ5L0RldmVsb3Blci9YY29kZS9EZXJpdmVkRGF0YSBdXQorICAgICAgICAgICAg
dGhlbgorICAgICAgICAgICAgICAgIGxvY2FsIEdYX01FU1NBR0UrPSIgLS14Y29kZSIKKyAgICAg
ICAgICAgIGZpCisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlmICgoICR7R1hfVVNFX1hDT0RF
X0JVSUxEX09VVFBVVH0gKSkKKyAgICAgICAgICAgIHRoZW4KKyAgICAgICAgICAgICAgICBsb2Nh
bCBHWF9NRVNTQUdFKz0iIC0teGNvZGUiCisgICAgICAgICAgICBmaQorICAgICAgICBmaQorCisg
ICAgICAgIGxvY2FsIEdYX01FU1NBR0UrPSdgLCBvciBtYW51YWxseSBhZGQgdGhlIGZpbGUgb3Ig
ZmlsZXMgc2hvd24gYWJvdmUgdG8KKyAgICAgICAgdGhlIGluZGljYXRlZCAueGNmaWxlbGlzdCBm
aWxlcy4gVGhlbiByZXN0YXJ0IHlvdXIgYnVpbGQuIFdoZW4KKyAgICAgICAgc3VibWl0dGluZywg
aW5jbHVkZSB0aGUgdXBkYXRlZCAueGNmaWxlbGlzdCBmaWxlcy4nCisKKyAgICAgICAgbG9nX3By
b2dyZXNzX2xvbmcgIiR7R1hfTUVTU0FHRX0iCisgICAgZmkKK30KKworCitmdW5jdGlvbiBkb19n
ZW5lcmF0ZSgpCiB7Ci0gICAgc2V0X2J1aWxkX3ZhcmlhYmxlcyAiJDEiCisgICAgIyBJbnZva2Vk
IGZyb20gdGhlIGNvbW1hbmQgbGluZSB0byBnZW5lcmF0ZSAueGNmaWxlbGlzdCBmaWxlcy4gVXNl
IGFueQorICAgICMgc3BlY2lmaWVkIHByb2plY3QsIHBsYXRmb3JtLCBhbmQvb3IgY29uZmlndXJh
dGlvbi4gQW55IG9mIHRob3NlIHRoYXQKKyAgICAjIGFyZW4ndCBzcGVjaWZpZWQgcmVzdWx0cyBp
biBvdXIgaXRlcmF0aW5nIG92ZXIgYWxsIHBvc3NpYmxlIHZhbHVlcyBmb3IKKyAgICAjIHRoZSB1
bnNwZWNpZmllZCB2YWx1ZS4KIAotICAgIGxvY2FsIERFUklWRURfU09VUkNFU19NQUtFX1BBVEg9
IiQoZGlybmFtZSAiJHtERVJJVkVEX1NPVVJDRVNfTUFLRX0iKSIKLSAgICBJTlBVVF9YQ0ZJTEVM
SVNUX1BBVEg9IiR7REVSSVZFRF9TT1VSQ0VTX01BS0VfUEFUSH0vRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCIKLSAgICBPVVRQVVRfWENGSUxFTElTVF9QQVRIPSIke0RFUklWRURfU09V
UkNFU19NQUtFX1BBVEh9L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IgorICAgIGxv
Z19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgogCi0gICAgIyBTZWUgY29tbWVudHMgaW4g
Z2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV91bmlmaWVkc291cmNlcyBmb3Igd2hhdCB3ZSdyZQot
ICAgICMgdHJ5aW5nIHRvIGFjaGlldmUgd2l0aCBGRUFUVVJFX0RFRklORVMuCisgICAgaWYgW1sg
LXogIiR7R1hfUFJPSkVDVF9UQUd9IiBdXQorICAgIHRoZW4KKyAgICAgICAgbG9nX3Byb2dyZXNz
ICI9PT0gR2VuZXJhdGluZyBhbGwgLnhjZmlsZWxpc3RzID09PSIKKyAgICBlbHNlCisgICAgICAg
IGxvZ19wcm9ncmVzcyAiPT09IEdlbmVyYXRpbmcgLnhjZmlsZWxpc3RzIGZvciAke0dYX1BST0pF
Q1RfVEFHfSA9PT0iCisgICAgZmkKIAotICAgIGV4cG9ydCBGRUFUVVJFX0RFRklORVM9IiQoZ3Jl
cCAnaWZlcS4qZmluZHN0cmluZyAuKkZFQVRVUkVfREVGSU5FUy4qJyAiJHtERVJJVkVEX1NPVVJD
RVNfTUFLRX0iIHwgc2VkIC1FIC1lICdzLy4qLCAoLiopXCkvXDEvJykiCisgICAgZm9yX2VhY2hf
cHJvamVjdCBcCisgICAgICAgIGdlbmVyYXRlX3hjZmlsZWxpc3RzCit9CiAKLSAgICAjIEdlbmVy
YXRlIHRoZSAueGNmaWxlbGlzdCBmaWxlcy4KIAotICAgIGNoZWNrX3Byb2xvZworZnVuY3Rpb24g
ZG9fbWVyZ2UoKQoreworICAgICMgSW1wbGljaXRseSBpbnZva2VkIGZvciBnZW5lcmF0ZSBhbmQg
Z2VuZXJhdGUteGNvZGUgb3BlcmF0aW9ucyB0byBtb3ZlIHRoZQorICAgICMgdGVtcG9yYXJ5IHJl
c3VsdHMgaW50byB0aGUgWGNvZGUgcHJvamVjdC4KIAotICAgICIke0dFTkVSQVRPUn0iIE5PX1NV
UFBMRU1FTlRBTF9GSUxFUz0xIC0tbm8tYnVpbHRpbi1ydWxlcyAtLWRyeS1ydW4gLS1hbHdheXMt
bWFrZSAtLWRlYnVnPWFidmlqbSBhbGwgfAotICAgICAgICAiJHtPUEVOU09VUkNFX0RJUn0iL1Rv
b2xzL1NjcmlwdHMvZXh0cmFjdC1kZXBlbmRlbmNpZXMtZnJvbS1tYWtlZmlsZSAtLWlucHV0ICIk
e0lOUFVUX1hDRklMRUxJU1RfUEFUSH0iIC0tb3V0cHV0ICIke09VVFBVVF9YQ0ZJTEVMSVNUX1BB
VEh9IgorICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgogCi0gICAgcmVwbGFj
ZSAiJHtJTlBVVF9YQ0ZJTEVMSVNUX1BBVEh9IiAnV2ViQ29yZScgJyQoUFJPSkVDVF9ESVIpJwot
ICAgIHJlcGxhY2UgIiR7SU5QVVRfWENGSUxFTElTVF9QQVRIfSIgJ0phdmFTY3JpcHRDb3JlJyAn
JChQUk9KRUNUX0RJUiknCi0gICAgcmVwbGFjZSAiJHtJTlBVVF9YQ0ZJTEVMSVNUX1BBVEh9IiAn
SmF2YVNjcmlwdENvcmVQcml2YXRlSGVhZGVycycgJyQoSkFWQVNDUklQVENPUkVfUFJJVkFURV9I
RUFERVJTX0RJUiknCi0gICAgcmVwbGFjZSAiJHtJTlBVVF9YQ0ZJTEVMSVNUX1BBVEh9IiAnV2Vi
S2l0MlByaXZhdGVIZWFkZXJzJyAnJChXRUJLSVQyX1BSSVZBVEVfSEVBREVSU19ESVIpJwotICAg
IHJlcGxhY2UgIiR7SU5QVVRfWENGSUxFTElTVF9QQVRIfSIgIiR7UFJPSkVDVF9ESVJ9IiAnJChQ
Uk9KRUNUX0RJUiknCi0gICAgcmVwbGFjZSAiJHtJTlBVVF9YQ0ZJTEVMSVNUX1BBVEh9IiAiJHtX
RUJDT1JFX1BSSVZBVEVfSEVBREVSU19ESVJ9IiAnJChXRUJDT1JFX1BSSVZBVEVfSEVBREVSU19E
SVIpJwotICAgIHJlcGxhY2UgIiR7SU5QVVRfWENGSUxFTElTVF9QQVRIfSIgIiR7V0VCS0lUMl9Q
UklWQVRFX0hFQURFUlNfRElSfSIgJyQoV0VCS0lUMl9QUklWQVRFX0hFQURFUlNfRElSKScKLSAg
ICByZXBsYWNlICIke0lOUFVUX1hDRklMRUxJU1RfUEFUSH0iICIke0pBVkFTQ1JJUFRDT1JFX1BS
SVZBVEVfSEVBREVSU19ESVJ9IiAnJChKQVZBU0NSSVBUQ09SRV9QUklWQVRFX0hFQURFUlNfRElS
KScKLSAgICByZXBsYWNlICIke0lOUFVUX1hDRklMRUxJU1RfUEFUSH0iICIke0JVSUxUX1BST0RV
Q1RTX0RJUn0iICckKEJVSUxUX1BST0RVQ1RTX0RJUiknCisgICAgaWYgW1sgLXogIiR7R1hfUFJP
SkVDVF9UQUd9IiBdXQorICAgIHRoZW4KKyAgICAgICAgbG9nX3Byb2dyZXNzICI9PT0gTWVyZ2lu
ZyBhbGwgLnhjZmlsZWxpc3RzIGludG8gcGxhY2UgPT09IgorICAgIGVsc2UKKyAgICAgICAgbG9n
X3Byb2dyZXNzICI9PT0gTWVyZ2luZyAueGNmaWxlbGlzdHMgZm9yICR7R1hfUFJPSkVDVF9UQUd9
ID09PSIKKyAgICBmaQogCi0gICAgcHJlcGVuZF9wcmVmaXhfdG9fYWxsX3BhdGhzICIke09VVFBV
VF9YQ0ZJTEVMSVNUX1BBVEh9IgotICAgIHJlcGxhY2UgIiR7T1VUUFVUX1hDRklMRUxJU1RfUEFU
SH0iICIke0JVSUxUX1BST0RVQ1RTX0RJUn0iICckKEJVSUxUX1BST0RVQ1RTX0RJUiknCisgICAg
Zm9yX2VhY2hfcHJvamVjdCBcCisgICAgICAgIG1lcmdlX3hjZmlsZWxpc3RzCiAKLSAgICBzb3J0
X2ZpbGVzCi0gICAgY2hlY2tfZXBpbG9nCisgICAgbG9nX2RlYnVnICJHWF9ERUZFUlJFRF9FWElU
X0NPREUgPSAkR1hfREVGRVJSRURfRVhJVF9DT0RFIgogfQogCiAKLSMgR2VuZXJhdGUgLnhjZmls
ZWxpc3QgZmlsZXMgZm9yICJ1bmlmaWVkIHNvdXJjZXMiIGRlcml2ZWQgZmlsZXMuIFdlIGdlbmVy
YXRlCi0jIHR3byBmaWxlczogVW5pZmllZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCAodGhlIG9y
aWdpbmFsIHNvdXJjZSBmaWxlcyB0aGF0Ci0jIGdldCBidW5kbGVkIGludG8gdGhlIHZhcmlvdXMg
VW5pZmllZFNvdXJjZSouY3BwL21tIGZpbGVzKSBhbmQKLSMgVW5pZmllZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QgKHRoZSBsaXN0IG9mIFVuaWZpZWRTb3VyY2UqLmNwcC9tbSBmaWxlcykuCi0j
IEJvdGggb2YgdGhlc2UgYXJlIGdlbmVyYXRlZCBmcm9tIHRoZSBzYW1lIFNvdXJjZXMqLnR4dCBm
aWxlcyB1c2VkIGJ5Ci0jIGdlbmVyYXRlLXVuaWZpZWQtc291cmNlLWJ1bmRsZXMucmIuIFRoZSAu
eGNmaWxlbGlzdCBmaWxlcyBhcmUgd3JpdHRlbiBpbnRvCi0jIHRoZSBhc3NvY2lhdGVkIHByb2pl
Y3QgZGlyZWN0b3J5LgorZnVuY3Rpb24gZG9fY2hlY2soKQoreworICAgICMgSW1wbGljaXRseSBp
bnZva2VkIGZvciBjaGVjayBhbmQgY2hlY2steGNvZGUgb3BlcmF0aW9ucyB0byBjaGVjayB0aGUK
KyAgICAjIHRlbXBvcmFyeSByZXN1bHRzIGFnYWluc3QgdGhlIFhjb2RlIHByb2plY3QuCisKKyAg
ICBsb2dfY2FsbHN0YWNrX2FuZF9wYXJhbWV0ZXJzICIkQCIKKworICAgICMgQmVpbmcgaW52b2tl
ZCBmcm9tIHRoZSBjb21tYW5kLWxpbmUgdG8gY2hlY2sgZXZlcnl0aGluZy4KIAotZnVuY3Rpb24g
Z2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV91bmlmaWVkc291cmNlcygpCisgICAgaWYgW1sgLXog
IiR7R1hfUFJPSkVDVF9UQUd9IiBdXQorICAgIHRoZW4KKyAgICAgICAgbG9nX3Byb2dyZXNzICI9
PT0gQ2hlY2tpbmcgYWxsIC54Y2ZpbGVsaXN0cyA9PT0iCisgICAgZWxzZQorICAgICAgICBsb2df
cHJvZ3Jlc3MgIj09PSBDaGVja2luZyAueGNmaWxlbGlzdHMgZm9yICR7R1hfUFJPSkVDVF9UQUd9
ID09PSIKKyAgICBmaQorCisgICAgZm9yX2VhY2hfcHJvamVjdCBcCisgICAgICAgIGNoZWNrX3hj
ZmlsZWxpc3RzCit9CisKKworZnVuY3Rpb24gZG9fc3ViZ2VuZXJhdGUoKQogewotICAgIHNldF9i
dWlsZF92YXJpYWJsZXMgIiQxIgorICAgICMgSW52b2tlZCBmcm9tIHdpdGhpbiBhbiBYY29kZSBj
b250ZXh0IHRvIGdlbmVyYXRlIC54Y2ZpbGVsaXN0IGZpbGVzLiBVc2UKKyAgICAjIHRoZSBwcm9q
ZWN0LCBwbGF0Zm9ybSwgYW4gY29uZmlndXJhdGlvbiBlc3RhYmxpc2hlZCBpbiB0aGUgZW52aXJv
bm1lbnQuCiAKLSAgICBJTlBVVF9YQ0ZJTEVMSVNUX1BBVEg9IiR7UFJPSkVDVF9ESVJ9L1VuaWZp
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QiCi0gICAgT1VUUFVUX1hDRklMRUxJU1RfUEFUSD0i
JHtQUk9KRUNUX0RJUn0vVW5pZmllZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QiCisgICAgbG9n
X2NhbGxzdGFja19hbmRfcGFyYW1ldGVycyAiJEAiCiAKLSAgICAjIERlZmluZSBGRUFUVVJFX0RF
RklORVMgaW4gb3JkZXIgdG8gZW5hYmxlIGV2ZXJ5IHBvc3NpYmxlIGZlYXR1cmUsIHRodXMKLSAg
ICAjIGluY2x1ZGluZyBldmVyeSBwb3NzaWJsZSBpbnB1dCBmaWxlIGludG8gdGhlIGdlbmVyYXRl
ZCAueGNmaWxlbGlzdCBmaWxlLgotICAgICMgVGhpcyBtYXkgb3Zlci1zcGVjaWZ5IHRoZSBpbnB1
dCAtLSB0aGF0IGlzLCBpbmNsdWRlIGZpbGVzIHRoYXQgYXJlbid0Ci0gICAgIyBhY3R1YWxseSBp
bmNsdWRlZCBpbiB0aGUgVW5pZmllZFNvdXJjZXMgZmlsZXMgLS0gYnV0IHRoYXQncyBPSy4gVGhl
IHdvcnN0Ci0gICAgIyB0aGF0IHdpbGwgaGFwcGVuIGlzIHRoYXQgb25lIG9mIHRoZXNlIGV4dHJh
IGZpbGVzIHdpbGwgZ2V0IG1vZGlmaWVkIGFuZAotICAgICMgd2UnbGwgdW5uZWNlc3NhcmlseSBn
byB0aHJvdWdoIHRoZSBHZW5lcmF0ZSBVbmlmaWVkIFNvdXJjZXMgcGhhc2UuIFRoaXMKLSAgICAj
IHdpbGwgdW5uZWNlc3NhcmlseSBnbyB0aHJvdWdoIHRoZSBwcm9jZXNzIG9mIGdlbmVyYXRpbmcg
dGhlCi0gICAgIyBVbmlmaWVkU291cmNlcywgYnV0IHNpbmNlIHRoYXQgcHJvY2VzcyB3cml0ZXMv
dXBkYXRlcyB0aGUgVW5pZmllZFNvdXJjZXMKLSAgICAjIGZpbGVzIG9ubHkgaWYgdGhlaXIgY29u
dGVudHMgYWN0dWFsbHkgY2hhbmdlLCB3ZSB3b24ndCBlbmQgdXAgY2hhbmdpbmcKLSAgICAjIGFu
eSBVbmlmaWVkU291cmNlcyBmaWxlcyBhbmQgbm90aGluZyBnZXRzIHVubmVjZXNzYXJpbHkgcmVj
b21waWxlZC4KKyAgICBbWyAtbiAiJHtHWF9QUk9KRUNUX1RBR30iIF1dIHx8IGRpZSAiR1hfUFJP
SkVDVF9UQUcgaXMgbm90IGRlZmluZWQuIgorICAgIFtbIC1uICIke1BST0pFQ1RfTkFNRX0iIF1d
IHx8IGRpZSAic3ViZ2VuZXJhdGUgc2hvdWxkIG9ubHkgYmUgaW52b2tlZCBpbiBhbiBYY29kZSBj
b250ZXh0LiIKIAotICAgIGV4cG9ydCBGRUFUVVJFX0RFRklORVM9IiQoY2QgIiR7UFJPSkVDVF9E
SVJ9IjsgZ3JlcCAnI2lmJyAkKGZpbmQgLiAtbmFtZSAnU291cmNlcyoudHh0JykgfCBzZWQgLUUg
LWUgJ3MvLippZiAoRU5BQkxFLiopL1wxLycpIgorICAgIGxvZ19wcm9ncmVzcyAiPT09IEdlbmVy
YXRpbmcgLnhjZmlsZWxpc3RzIGZvciAke1BST0pFQ1RfTkFNRX0vJHtQTEFURk9STV9OQU1FfS8k
e0NPTkZJR1VSQVRJT059ID09PSIKIAotICAgICMgR2VuZXJhdGUgdGhlIC54Y2ZpbGVsaXN0IGZp
bGVzLgorICAgIHNldF9wcm9qZWN0X3NldHRpbmdzCiAKLSAgICBjaGVja19wcm9sb2cKKyAgICAj
IFdlJ3JlIGNhbGxlZCBkdXJpbmcgZ2VuZXJhdGUteGNvZGUsIGNoZWNrLXhjb2RlLCBhbmQgc3Vi
Z2VuZXJhdGUKKyAgICAjIG9wZXJhdGlvbnMuIFdlIG5lZWQgdG8gcmVzZXQgb3VyIHByb2plY3Qt
c3BlY2lmaWMgdGVtcCBmaWxlcyBmb3IgdGhlCisgICAgIyBmaXJzdCB0d28sIGJ1dCBub3QgdGhl
IGxhc3Qgb25lLgogCi0gICAgIiR7UFJPSkVDVF9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtdW5pZmll
ZC1zb3VyY2VzLnNoIiBcCi0gICAgICAgIC0tZ2VuZXJhdGUteGNmaWxlbGlzdHMgXAotICAgICAg
ICAtLWlucHV0LXhjZmlsZWxpc3QtcGF0aCAiJHtJTlBVVF9YQ0ZJTEVMSVNUX1BBVEh9IiBcCi0g
ICAgICAgIC0tb3V0cHV0LXhjZmlsZWxpc3QtcGF0aCAiJHtPVVRQVVRfWENGSUxFTElTVF9QQVRI
fSIKKyAgICAoKCAke0dYX0RPX1NVQkdFTkVSQVRFfSApKSB8fCByZXNldF9wcm9qZWN0X3NwZWNp
ZmljX3RlbXBfZmlsZXMKKworICAgIHN1YmdlbmVyYXRlX3hjZmlsZWxpc3RzCit9CiAKLSAgICBy
ZXBsYWNlICIke0lOUFVUX1hDRklMRUxJU1RfUEFUSH0iICIke0JVSUxUX1BST0RVQ1RTX0RJUn0i
ICckKEJVSUxUX1BST0RVQ1RTX0RJUiknCi0gICAgcmVwbGFjZSAiJHtPVVRQVVRfWENGSUxFTElT
VF9QQVRIfSIgIiR7QlVJTFRfUFJPRFVDVFNfRElSfSIgJyQoQlVJTFRfUFJPRFVDVFNfRElSKScK
IAotICAgIHNvcnRfZmlsZXMKLSAgICBjaGVja19lcGlsb2cKK2Z1bmN0aW9uIG1haW4oKQorewor
ICAgIGxvZ19jYWxsc3RhY2tfYW5kX3BhcmFtZXRlcnMgIiRAIgorCisgICAgbG9nX2RlYnVnX3Zh
ciBHWF9NRQorICAgIGxvZ19kZWJ1Z192YXIgR1hfSEVSRQorICAgIGxvZ19kZWJ1Z192YXIgR1hf
Uk9PVF9ESVIKKyAgICBsb2dfZGVidWdfdmFyIEdYX09QRU5TT1VSQ0VfRElSCisgICAgbG9nX2Rl
YnVnX3ZhciBHWF9URU1QCisgICAgbG9nX2RlYnVnX3ZhciBHWF9QUk9KRUNUX1RBR1MKKyAgICBs
b2dfZGVidWdfdmFyIEdYX0NPTkZJR1VSQVRJT05TCisgICAgbG9nX2RlYnVnX3ZhciBHWF9TVUJF
WEVDVVRFX1NDUklQVAorICAgIGxvZ19kZWJ1Z192YXIgR1hfRE9fR0VORVJBVEUKKyAgICBsb2df
ZGVidWdfdmFyIEdYX0RPX0dFTkVSQVRFX1hDT0RFCisgICAgbG9nX2RlYnVnX3ZhciBHWF9ET19D
SEVDSworICAgIGxvZ19kZWJ1Z192YXIgR1hfRE9fQ0hFQ0tfWENPREUKKyAgICBsb2dfZGVidWdf
dmFyIEdYX0RPX1NVQkdFTkVSQVRFCisgICAgbG9nX2RlYnVnX3ZhciBHWF9ET19DTEVBTlVQCisg
ICAgbG9nX2RlYnVnX3ZhciBHWF9VU0VfWENPREVfQlVJTERfT1VUUFVUCisgICAgbG9nX2RlYnVn
X3ZhciBHWF9VU0VfV0VCS0lUQlVJTERfQlVJTERfT1VUUFVUCisgICAgbG9nX2RlYnVnX3ZhciBH
WF9EUllfUlVOCisgICAgbG9nX2RlYnVnX3ZhciBHWF9ERUJVRworICAgIGxvZ19kZWJ1Z192YXIg
R1hfUVVJRVQKKyAgICBsb2dfZGVidWdfdmFyIEdYX09SSUdfQVJHUworCisgICAgaWYgKCggJHtH
WF9ET19IRUxQfSApKQorICAgIHRoZW4KKyAgICAgICAgdXNhZ2UKKyAgICAgICAgbXlfZXhpdCAw
CisgICAgZmkKKworICAgIGlmICgoIEdYX0RPX0dFTkVSQVRFICsgR1hfRE9fR0VORVJBVEVfWENP
REUgKyBHWF9ET19DSEVDSyArIEdYX0RPX0NIRUNLX1hDT0RFICsgR1hfRE9fU1VCR0VORVJBVEUg
KyBHWF9ET19IRUxQIDwgMSApKQorICAgIHRoZW4KKyAgICAgICAgc3RkZXJyICIjIyMgT25lIG9m
IGdlbmVyYXRlLCBnZW5lcmF0ZS14Y29kZSwgY2hlY2ssIGNoZWNrLXhjb2RlLCBzdWJnZW5lcmF0
ZSwgb3IgLS1oZWxwIG11c3QgYmUgc3BlY2lmaWVkLiIKKyAgICAgICAgbXlfZXhpdCAxCisgICAg
ZmkKKworICAgIGlmICgoIEdYX0RPX0dFTkVSQVRFICsgR1hfRE9fR0VORVJBVEVfWENPREUgKyBH
WF9ET19DSEVDSyArIEdYX0RPX0NIRUNLX1hDT0RFICsgR1hfRE9fU1VCR0VORVJBVEUgKyBHWF9E
T19IRUxQID4gMSApKQorICAgIHRoZW4KKyAgICAgICAgc3RkZXJyICIjIyMgT25seSBvbmUgb2Yg
Z2VuZXJhdGUsIGdlbmVyYXRlLXhjb2RlLCBjaGVjaywgY2hlY2steGNvZGUsIHN1YmdlbmVyYXRl
LCBvciAtLWhlbHAgY2FuIGJlIHNwZWNpZmllZC4iCisgICAgICAgIG15X2V4aXQgMQorICAgIGZp
CisKKyAgICBbWyAteiAiJHtHWF9QUk9KRUNUX1RBR30iIHx8ICggIiAke0dYX1BST0pFQ1RfVEFH
U1tAXX0gIiA9fiAiICR7R1hfUFJPSkVDVF9UQUd9ICIgKSBdXSB8fCB7IGRpZSAiVW5yZWNvZ25p
emVkIHByb2plY3Q6ICR7R1hfUFJPSkVDVF9UQUd9IjsgIH0KKyAgICBHWF9QTEFURk9STV9OQU1F
PSQoZ2V0X2Nhbm9uaWNhbF9wbGF0Zm9ybV9uYW1lICIke0dYX1BMQVRGT1JNX05BTUV9IikKKyAg
ICBHWF9DT05GSUdVUkFUSU9OPSQoZ2V0X2Nhbm9uaWNhbF9jb25maWd1cmF0aW9uICIke0dYX0NP
TkZJR1VSQVRJT059IikKKworICAgIGlmICgoICR7R1hfRE9fR0VORVJBVEV9ICkpCisgICAgdGhl
bgorICAgICAgICBkb19nZW5lcmF0ZQorICAgICAgICBjYWxsIHBvc3RfZ2VuZXJhdGVfaG9vawor
CisgICAgICAgIGRvX21lcmdlCisgICAgICAgIGNhbGwgcG9zdF9tZXJnZV9ob29rCisKKyAgICAg
ICAgcmVwb3J0X21lcmdlX3Jlc3VsdHMKKyAgICBlbGlmICgoICR7R1hfRE9fR0VORVJBVEVfWENP
REV9ICkpCisgICAgdGhlbgorICAgICAgICBkb19zdWJnZW5lcmF0ZQorICAgICAgICBjYWxsIHBv
c3RfZ2VuZXJhdGVfaG9vaworCisgICAgICAgIGRvX21lcmdlCisgICAgICAgIGNhbGwgcG9zdF9t
ZXJnZV9ob29rCisKKyAgICAgICAgcmVwb3J0X21lcmdlX3Jlc3VsdHMKKyAgICBlbGlmICgoICR7
R1hfRE9fQ0hFQ0t9ICkpCisgICAgdGhlbgorICAgICAgICBkb19nZW5lcmF0ZQorICAgICAgICBj
YWxsIHBvc3RfZ2VuZXJhdGVfaG9vaworCisgICAgICAgIGRvX2NoZWNrCisgICAgICAgIGNhbGwg
cG9zdF9jaGVja19ob29rCisKKyAgICAgICAgcmVwb3J0X3JlbWVkaWF0aW9uX3N0ZXBzCisgICAg
ZWxpZiAoKCAke0dYX0RPX0NIRUNLX1hDT0RFfSApKQorICAgIHRoZW4KKyAgICAgICAgZG9fc3Vi
Z2VuZXJhdGUKKyAgICAgICAgY2FsbCBwb3N0X2dlbmVyYXRlX2hvb2sKKworICAgICAgICBkb19j
aGVjaworICAgICAgICBjYWxsIHBvc3RfY2hlY2tfaG9vaworCisgICAgICAgIHJlcG9ydF9yZW1l
ZGlhdGlvbl9zdGVwcworICAgIGVsaWYgKCggJHtHWF9ET19TVUJHRU5FUkFURX0gKSkKKyAgICB0
aGVuCisgICAgICAgIGRvX3N1YmdlbmVyYXRlCisgICAgZWxzZQorICAgICAgICBzdGRlcnIgIiMj
IyBObyBzdWJjb21tYW5kIHByb3ZpZGVkIgorICAgICAgICB1c2FnZQorICAgICAgICBteV9leGl0
IDEKKyAgICBmaQorCisgICAgbXlfZXhpdCAke0dYX0RFRkVSUkVEX0VYSVRfQ09ERX0KIH0KIAog
Ci0jIFByb2Nlc3MgY29tbWFuZC1saW5lIHBhcmFtZXRlcnMuCisjIEluaXRpYWxpemUgYW5kIHNh
bml0eSBjaGVjaworCitHWF9PUklHX0FSR1M9KCIkQCIpCisKK0dYX0RPX0dFTkVSQVRFPTAKK0dY
X0RPX0dFTkVSQVRFX1hDT0RFPTAKK0dYX0RPX0NIRUNLPTAKK0dYX0RPX0NIRUNLX1hDT0RFPTAK
K0dYX0RPX1NVQkdFTkVSQVRFPTAKK0dYX0RPX0hFTFA9MAorR1hfRE9fQ0xFQU5VUD0wCitHWF9V
U0VfWENPREVfQlVJTERfT1VUUFVUPTAKK0dYX1VTRV9XRUJLSVRCVUlMRF9CVUlMRF9PVVRQVVQ9
MQorR1hfRFJZX1JVTj0wCitHWF9ERUJVRz0wCitHWF9RVUlFVD0wCiAKLVJPT1RfRElSPSIkKGNk
ICIke0hFUkV9Ly4uLy4uLy4uIiAmJiBwd2QgLVApIgotT1BFTlNPVVJDRV9ESVI9IiR7Uk9PVF9E
SVJ9L09wZW5Tb3VyY2UiCi1bWyAtbiAiJHtST09UX0RJUn0iIF1dIHx8IGRpZSAiQ291bGQgbm90
IGZpbmQgUk9PVF9ESVIiCi1bWyAtbiAiJHtPUEVOU09VUkNFX0RJUn0iIF1dIHx8IGRpZSAiQ291
bGQgbm90IGZpbmQgT1BFTlNPVVJDRV9ESVIiCi1bWyAtZSAiJHtPUEVOU09VUkNFX0RJUn0iIF1d
IHx8IGRpZSAiJE9QRU5TT1VSQ0VfRElSIGRvZXMgbm90IGV4aXN0IgorR1hfREVGRVJSRURfRVhJ
VF9DT0RFPTAKK0dYX1BST0pFQ1RfVEFHPQorR1hfUExBVEZPUk1fTkFNRT0KK0dYX0NPTkZJR1VS
QVRJT049CitHWF9TREtTPSgpCiAKLURPX0NIRUNLPTAKLURFRkVSUkVEX0VYSVRfQ09ERT0wCitH
WF9NRT0kKG5vcm1hbGl6ZV9maWxlX3BhdGggIiR7QkFTSF9TT1VSQ0VbMF19IikKK0dYX0hFUkU9
JChkaXJuYW1lICIke0dYX01FfSIpCitHWF9ST09UX0RJUj0kKG5vcm1hbGl6ZV9kaXJlY3Rvcnlf
cGF0aCAiJHtHWF9IRVJFfS8uLi8uLi8uLiIpCitHWF9PUEVOU09VUkNFX0RJUj0iJHtHWF9ST09U
X0RJUn0vT3BlblNvdXJjZSIKK0dYX1RFTVA9JChub3JtYWxpemVfZGlyZWN0b3J5X3BhdGggL3Rt
cC9nZW5lcmF0ZS14Y2ZpbGVsaXN0cykKK0dYX1BST0pFQ1RfVEFHUz0oSmF2YVNjcmlwdENvcmUg
V2ViQ29yZSBXZWJLaXQgRHVtcFJlbmRlclRyZWUgV2ViS2l0VGVzdFJ1bm5lcikKK0dYX0NPTkZJ
R1VSQVRJT05TPShSZWxlYXNlIERlYnVnKQorR1hfU1VCRVhFQ1VURV9TQ1JJUFQ9IiR7R1hfTUV9
IgorCitbWyAtbiAiJHtHWF9ST09UX0RJUn0iIF1dIHx8IGRpZSAiQ291bGQgbm90IGZpbmQgR1hf
Uk9PVF9ESVIuIgorW1sgLW4gIiR7R1hfT1BFTlNPVVJDRV9ESVJ9IiBdXSB8fCBkaWUgIkNvdWxk
IG5vdCBmaW5kIEdYX09QRU5TT1VSQ0VfRElSLiIKK1tbIC1kICIke0dYX1JPT1RfRElSfSIgXV0g
fHwgZGllICIke0dYX1JPT1RfRElSfSBkb2VzIG5vdCBleGlzdC4iCitbWyAtZCAiJHtHWF9PUEVO
U09VUkNFX0RJUn0iIF1dIHx8IGRpZSAiJHtHWF9PUEVOU09VUkNFX0RJUn0gZG9lcyBub3QgZXhp
c3QuIgorCit0cmFwIGNsZWFudXAgRVhJVAorCitlbnN1cmVfZGlyZWN0b3JpZXNfZXhpc3QgIiR7
R1hfVEVNUH0iCisKKworIyBQcm9jZXNzIGNvbW1hbmQtbGluZSBwYXJhbWV0ZXJzLgogCiB3aGls
ZSBbWyAiJHsxOit4fSIgXV0KIGRvCiAgICAgY2FzZSAiJHsxfSIgaW4KLSAgICAgICAgLS1jaGVj
aykgICAgRE9fQ0hFQ0s9MTsgOzsKLSAgICAgICAgKikgICAgICAgICAgZWNobyAiIyMjIFVua25v
d24gcGFyYW1ldGVyOiAkezF9IjsgZXhpdCAxOyA7OworICAgICAgICBnZW5lcmF0ZSkgICAgICAg
R1hfRE9fR0VORVJBVEU9MSA7OworICAgICAgICBnZW5lcmF0ZS14Y29kZSkgR1hfRE9fR0VORVJB
VEVfWENPREU9MSA7OworICAgICAgICBjaGVjaykgICAgICAgICAgR1hfRE9fQ0hFQ0s9MSA7Owor
ICAgICAgICBjaGVjay14Y29kZSkgICAgR1hfRE9fQ0hFQ0tfWENPREU9MSA7OworICAgICAgICBz
dWJnZW5lcmF0ZSkgICAgR1hfRE9fU1VCR0VORVJBVEU9MSA7OworICAgICAgICBoZWxwKSAgICAg
ICAgICAgR1hfRE9fSEVMUD0xIDs7CisKKyAgICAgICAgLS1wcm9qZWN0KSAgICAgIHNoaWZ0OyBH
WF9QUk9KRUNUX1RBRz0iJDEiIDs7CisgICAgICAgIC0tcGxhdGZvcm0pICAgICBzaGlmdDsgR1hf
UExBVEZPUk1fTkFNRT0iJDEiIDs7CisgICAgICAgIC0tY29uZmlndXJhdGlvbilzaGlmdDsgR1hf
Q09ORklHVVJBVElPTj0iJDEiIDs7CisgICAgICAgIC0teGNvZGUpICAgICAgICBHWF9VU0VfWENP
REVfQlVJTERfT1VUUFVUPTE7IEdYX1VTRV9XRUJLSVRCVUlMRF9CVUlMRF9PVVRQVVQ9MCA7Owor
ICAgICAgICAtLXdlYmtpdGJ1aWxkKSAgR1hfVVNFX1hDT0RFX0JVSUxEX09VVFBVVD0wOyBHWF9V
U0VfV0VCS0lUQlVJTERfQlVJTERfT1VUUFVUPTEgOzsKKyAgICAgICAgLS1ub2NsZWFudXApICAg
IEdYX0RPX0NMRUFOVVA9MCA7OworCisgICAgICAgIC1uIHwgLS1kcnktcnVuKSBHWF9EUllfUlVO
PTEgOzsKKyAgICAgICAgLWQgfCAtLWRlYnVnKSAgIEdYX0RFQlVHPSQoKCAkR1hfREVCVUcgKyAx
ICkpIDs7CisgICAgICAgIC1xIHwgLS1xdWlldCkgICBHWF9RVUlFVD0xIDs7CisgICAgICAgIC1o
IHwgLS1oZWxwKSAgICBHWF9ET19IRUxQPTEgOzsKKworICAgICAgICAqKSAgICAgICAgICAgICAg
c3RkZXJyICIjIyMgVW5rbm93biBjb21tYW5kOiAkMSIKKyAgICAgICAgICAgICAgICAgICAgICAg
IHVzYWdlCisgICAgICAgICAgICAgICAgICAgICAgICBteV9leGl0IDEgOzsKICAgICBlc2FjCiAg
ICAgc2hpZnQKIGRvbmUKIAotZ2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV9kZXJpdmVkc291cmNl
cyBKYXZhU2NyaXB0Q29yZQotZ2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV9kZXJpdmVkc291cmNl
cyBXZWJDb3JlCi1nZW5lcmF0ZV94Y2ZpbGVsaXN0c19mcm9tX2Rlcml2ZWRzb3VyY2VzIFdlYktp
dAotZ2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV9kZXJpdmVkc291cmNlcyBEdW1wUmVuZGVyVHJl
ZQotZ2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV9kZXJpdmVkc291cmNlcyBXZWJLaXRUZXN0UnVu
bmVyCiAKLWdlbmVyYXRlX3hjZmlsZWxpc3RzX2Zyb21fdW5pZmllZHNvdXJjZXMgSmF2YVNjcmlw
dENvcmUKLWdlbmVyYXRlX3hjZmlsZWxpc3RzX2Zyb21fdW5pZmllZHNvdXJjZXMgV2ViQ29yZQot
Z2VuZXJhdGVfeGNmaWxlbGlzdHNfZnJvbV91bmlmaWVkc291cmNlcyBXZWJLaXQKLQotCi1TT1VS
Q0VEPSQoW1sgIiQwIiA9PSAiJHtCQVNIX1NPVVJDRVtAXX0iIF1dICYmIGVjaG8gMCB8fCBlY2hv
IDEpCi1pZiAoKCAhICRTT1VSQ0VEICkpCitHWF9TT1VSQ0VEPSQoW1sgIiQwIiA9PSAiJHtCQVNI
X1NPVVJDRVtAXX0iIF1dICYmIGVjaG8gMCB8fCBlY2hvIDEpCitpZiAoKCAhICR7R1hfU09VUkNF
RH0gKSkKIHRoZW4KLSAgICBleGl0ICR7REVGRVJSRURfRVhJVF9DT0RFfQorICAgIEdYX0lOVEVS
TkFMX01FPSIke0dYX1JPT1RfRElSfS9JbnRlcm5hbC9Ub29scy9TY3JpcHRzL2dlbmVyYXRlLXhj
ZmlsZWxpc3RzIgorICAgIGlmIFtbIC14ICIke0dYX0lOVEVSTkFMX01FfSIgXV0KKyAgICB0aGVu
CisgICAgICAgICIke0dYX0lOVEVSTkFMX01FfSIgIiR7R1hfT1JJR19BUkdTW0BdfSIKKyAgICBl
bHNlCisgICAgICAgIG1haW4KKyAgICBmaQogZmkKLQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>