From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pbs-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id C5E381FF15F
	for <inbox@lore.proxmox.com>; Mon,  2 Dec 2024 15:23:04 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id ADD191A199;
	Mon,  2 Dec 2024 15:23:09 +0100 (CET)
Mime-Version: 1.0
Date: Mon, 02 Dec 2024 15:22:31 +0100
Message-Id: <D61A64DEHUEY.3QXCMBLLZ0ST9@proxmox.com>
From: "Shannon Sterz" <s.sterz@proxmox.com>
To: "Shannon Sterz" <s.sterz@proxmox.com>, <pbs-devel@lists.proxmox.com>
X-Mailer: aerc 0.18.2-0-ge037c095a049-dirty
References: <20241202141655.254472-1-s.sterz@proxmox.com>
In-Reply-To: <20241202141655.254472-1-s.sterz@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.039 Adjusted score from AWL reputation of From: address
 BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
 DMARC_MISSING             0.1 Missing DMARC policy
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to
 Validity was blocked. See
 https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more
 information.
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: Re: [pbs-devel] [PATCH proxmox v3 1/4] sendmail: add sendmail crate
X-BeenThere: pbs-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox Backup Server development discussion
 <pbs-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pbs-devel/>
List-Post: <mailto:pbs-devel@lists.proxmox.com>
List-Help: <mailto:pbs-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel>, 
 <mailto:pbs-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox Backup Server development discussion
 <pbs-devel@lists.proxmox.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

T24gTW9uIERlYyAyLCAyMDI0IGF0IDM6MTYgUE0gQ0VULCBTaGFubm9uIFN0ZXJ6IHdyb3RlOgo+
IGFkZCB0aGUgYHByb3htb3gtc2VuZG1haWxgIGNyYXRlIHRoYXQgbWFrZXMgaXQgZWFzaWVyIHRv
IHNlbmQgbWFpbHMgdmlhCj4gdGhlIGBzZW5kbWFpbGAgdXRpbGl0eS4gZmVhdHVyZXMgaW5jbHVk
ZToKPgo+IC0gbXVsdGlwYXJ0L2FsdGVybmF0aXZlIHN1cHBvcnQgZm9yIGh0bWwrcGxhaW4gdGV4
dCBtYWlscwo+IC0gbXVsdGlwYXJ0L21peGVkIHN1cHBvcnQgZm9yIG1haWxzIHdpdGggYXR0YWNo
bWVudHMKPiAtIGF1dG9tYXRpYyBuZXN0aW5nIG9mIG11bHRpcGFydC9hbHRlcm5hdGl2ZSBhbmQg
bXVsdGlwYXJ0L21peGVkIHBhcnRzCj4gLSBtYXNrcyBtdWx0aXBsZSByZWNlaXZlcnMgYnkgZGVm
YXVsdCwgY2FuIGJlIGRpc2FibGVkCj4gLSBlbmNvZGluZyBTdWJqZWN0LCBUbywgRnJvbSwgYW5k
IGF0dGFjaG1lbnQgZmlsZSBuYW1lcyBjb3JyZWN0bHkKPiAtIGFkZGluZyBhbiBgQXV0by1TdWJt
aXR0ZWRgIGhlYWRlciB0byBhdm9pZCB0cmlnZ2VyaW5nIGF1dG9tYXRlZCBtYWlscwo+Cj4gYWxz
byBpbmNsdWRlcyBzZXZlcmFsIHRlc3RzIHRvIGVuc3VyZSB0aGF0IG1haWxzIGFyZSBmb3JtYXR0
ZWQKPiBjb3JyZWN0bHkuIGRlYmlhbiBwYWNrYWdpbmcgaXMgYWxzbyBwcm92aWRlZC4KPgo+IFNp
Z25lZC1vZmYtYnk6IFNoYW5ub24gU3RlcnogPHMuc3RlcnpAcHJveG1veC5jb20+Cgpmb3Jnb3Qg
dG8gYWRkIHRoaXMgaW4gdGhlIHYyIGFscmVhZHksIGJ1dCBzaW5jZSB0aGF0IGlzIG5vdyBvYnNv
bGV0ZSwKYnV0IHVubGVzcyBMdWthcyBvYmplY3RzIHRoaXMgc2hvdWxkIHByb2JhYmx5IGluY2x1
ZGU6CgpUZXN0ZWQtYnk6IEx1a2FzIFdhZ25lciA8bC53YWduZXJAcHJveG1veC5jb20+ClJldmll
d2VkLWJ5OiBMdWthcyBXYWduZXIgPGwud2FnbmVyQHByb3htb3guY29tPgoKanVzdCB0aG91Z2h0
IGknZCBxdWlja2x5IG1lbnRpb24gdGhpcyBiZWZvcmUgaXQgZ2V0cyBsb3N0Cgo+IC0tLQo+Cj4g
Y2hhbmdlcyBzaW5jZSB2MiAodGhhbmtzIEAgTHVrYXMgV2FnbmVyIDxsLndhZ25lckBwcm94bW94
LmNvbT4pCj4gICAgIC0gYWRkZWQgZGViaWFuIHBhY2thZ2luZwo+ICAgICAtIGNoYW5nZSBpbnN0
YW5jZXMgb2YgYHB1c2hfc3RyKCZmb3JtYXQhKC4uKWAgb3ZlciB0byBgd3JpdGVsbiEoLi4pYAo+
ICAgICAgIGFuZCBgd3JpdGUhKC4uKWAKPgo+IGNoYW5nZXMgc2luY2UgdjEgKHRoYW5rcyBAIEx1
a2FzIFdhZ25lciA8bC53YWduZXJAcHJveG1veC5jb20+KToKPiAgICAgLSBtYWtlIGl0IHBvc3Np
YmxlIHRvIGRpc2FibGUgcmVjZWl2ZXIgcmVkYWN0aW9uCj4gICAgIC0gcmUtc3RydWN0dXJlIHRo
ZSBtYWwgZm9ybWF0dGluZyBjb2RlOyBtYWlubHkgc3BsaXQgaXQgaW50bwo+ICAgICAgIG11bHRp
cGxlIGZ1bmN0aW9ucyAoYGZvcm1hdF9oZWFkZXJgLCBgZm9ybWF0X2JvZHlgLAo+ICAgICAgIGBm
b3JtYXRfYXR0YWNobWVudGAgZXRjLikKPiAgICAgLSBmaXggbXVsdGlwbGUgdHlwb3MKPgo+ICBD
YXJnby50b21sICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKPiAgcHJveG1veC1z
ZW5kbWFpbC9DYXJnby50b21sICAgICAgICAgICB8ICAxNiArCj4gIHByb3htb3gtc2VuZG1haWwv
ZGViaWFuL2NoYW5nZWxvZyAgICAgfCAgIDUgKwo+ICBwcm94bW94LXNlbmRtYWlsL2RlYmlhbi9j
b250cm9sICAgICAgIHwgIDQzICsrCj4gIHByb3htb3gtc2VuZG1haWwvZGViaWFuL2NvcHlyaWdo
dCAgICAgfCAgMTggKwo+ICBwcm94bW94LXNlbmRtYWlsL2RlYmlhbi9kZWJjYXJnby50b21sIHwg
ICA3ICsKPiAgcHJveG1veC1zZW5kbWFpbC9zcmMvbGliLnJzICAgICAgICAgICB8IDc3OSArKysr
KysrKysrKysrKysrKysrKysrKysrKwo+ICA3IGZpbGVzIGNoYW5nZWQsIDg3MCBpbnNlcnRpb25z
KCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBwcm94bW94LXNlbmRtYWlsL0NhcmdvLnRvbWwKPiAg
Y3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtc2VuZG1haWwvZGViaWFuL2NoYW5nZWxvZwo+ICBj
cmVhdGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY29udHJvbAo+ICBjcmVh
dGUgbW9kZSAxMDA2NDQgcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY29weXJpZ2h0Cj4gIGNyZWF0
ZSBtb2RlIDEwMDY0NCBwcm94bW94LXNlbmRtYWlsL2RlYmlhbi9kZWJjYXJnby50b21sCj4gIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBwcm94bW94LXNlbmRtYWlsL3NyYy9saWIucnMKPgo+IGRpZmYgLS1n
aXQgYS9DYXJnby50b21sIGIvQ2FyZ28udG9tbAo+IGluZGV4IDg0ZmJlOTc5Li5iNjJmY2Q1MCAx
MDA2NDQKPiAtLS0gYS9DYXJnby50b21sCj4gKysrIGIvQ2FyZ28udG9tbAo+IEBAIC0zMyw2ICsz
Myw3IEBAIG1lbWJlcnMgPSBbCj4gICAgICAicHJveG1veC1ycmQtYXBpLXR5cGVzIiwKPiAgICAg
ICJwcm94bW94LXNjaGVtYSIsCj4gICAgICAicHJveG1veC1zZWN0aW9uLWNvbmZpZyIsCj4gKyAg
ICAicHJveG1veC1zZW5kbWFpbCIsCj4gICAgICAicHJveG1veC1zZXJkZSIsCj4gICAgICAicHJv
eG1veC1zaGFyZWQtY2FjaGUiLAo+ICAgICAgInByb3htb3gtc2hhcmVkLW1lbW9yeSIsCj4gQEAg
LTEzOCw2ICsxMzksNyBAQCBwcm94bW94LXJlc3Qtc2VydmVyID0geyB2ZXJzaW9uID0gIjAuOC4w
IiwgcGF0aCA9ICJwcm94bW94LXJlc3Qtc2VydmVyIiB9Cj4gIHByb3htb3gtcm91dGVyID0geyB2
ZXJzaW9uID0gIjMuMC4wIiwgcGF0aCA9ICJwcm94bW94LXJvdXRlciIgfQo+ICBwcm94bW94LXNj
aGVtYSA9IHsgdmVyc2lvbiA9ICIzLjEuMiIsIHBhdGggPSAicHJveG1veC1zY2hlbWEiIH0KPiAg
cHJveG1veC1zZWN0aW9uLWNvbmZpZyA9IHsgdmVyc2lvbiA9ICIyLjEuMCIsIHBhdGggPSAicHJv
eG1veC1zZWN0aW9uLWNvbmZpZyIgfQo+ICtwcm94bW94LXNlbmRtYWlsID0geyB2ZXJzaW9uID0g
IjAuMS4wIiwgcGF0aCA9ICJwcm94bW94LXNlbmRtYWlsIiB9Cj4gIHByb3htb3gtc2VyZGUgPSB7
IHZlcnNpb24gPSAiMC4xLjEiLCBwYXRoID0gInByb3htb3gtc2VyZGUiLCBmZWF0dXJlcyA9IFsg
InNlcmRlX2pzb24iIF0gfQo+ICBwcm94bW94LXNoYXJlZC1tZW1vcnkgPSB7IHZlcnNpb24gPSAi
MC4zLjAiLCBwYXRoID0gInByb3htb3gtc2hhcmVkLW1lbW9yeSIgfQo+ICBwcm94bW94LXNvcnRh
YmxlLW1hY3JvID0geyB2ZXJzaW9uID0gIjAuMS4zIiwgcGF0aCA9ICJwcm94bW94LXNvcnRhYmxl
LW1hY3JvIiB9Cj4gZGlmZiAtLWdpdCBhL3Byb3htb3gtc2VuZG1haWwvQ2FyZ28udG9tbCBiL3By
b3htb3gtc2VuZG1haWwvQ2FyZ28udG9tbAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg
MDAwMDAwMDAuLjc5MGIzMjRiCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Byb3htb3gtc2VuZG1h
aWwvQ2FyZ28udG9tbAo+IEBAIC0wLDAgKzEsMTYgQEAKPiArW3BhY2thZ2VdCj4gK25hbWUgPSAi
cHJveG1veC1zZW5kbWFpbCIKPiArdmVyc2lvbiA9ICIwLjEuMCIKPiArYXV0aG9ycy53b3Jrc3Bh
Y2UgPSB0cnVlCj4gK2VkaXRpb24ud29ya3NwYWNlID0gdHJ1ZQo+ICtsaWNlbnNlLndvcmtzcGFj
ZSA9IHRydWUKPiArcmVwb3NpdG9yeS53b3Jrc3BhY2UgPSB0cnVlCj4gK2hvbWVwYWdlLndvcmtz
cGFjZSA9IHRydWUKPiArZXhjbHVkZS53b3Jrc3BhY2UgPSB0cnVlCj4gK3J1c3QtdmVyc2lvbi53
b3Jrc3BhY2UgPSB0cnVlCj4gKwo+ICtbZGVwZW5kZW5jaWVzXQo+ICthbnlob3cgPSB7IHdvcmtz
cGFjZSA9IHRydWUgfQo+ICtiYXNlNjQgPSB7IHdvcmtzcGFjZSA9IHRydWUgfQo+ICtwZXJjZW50
LWVuY29kaW5nID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KPiArcHJveG1veC10aW1lID0geyB3b3Jr
c3BhY2UgPSB0cnVlIH0KPiBkaWZmIC0tZ2l0IGEvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY2hh
bmdlbG9nIGIvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY2hhbmdlbG9nCj4gbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMC4uNzFkN2M5ZjgKPiAtLS0gL2Rldi9udWxsCj4gKysr
IGIvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY2hhbmdlbG9nCj4gQEAgLTAsMCArMSw1IEBACj4g
K3J1c3QtcHJveG1veC1zZW5kbWFpbCAoMC4xLjAtMSkgYm9va3dvcm07IHVyZ2VuY3k9bWVkaXVt
Cj4gKwo+ICsgICogSW5pdGlhbCByZWxlYXNlLgo+ICsKPiArIC0tIFByb3htb3ggU3VwcG9ydCBU
ZWFtIDxzdXBwb3J0QHByb3htb3guY29tPiAgTW9uLCAwMiBEZWMgMjAyNCAxNDo0Nzo0MiArMDEw
MAo+IGRpZmYgLS1naXQgYS9wcm94bW94LXNlbmRtYWlsL2RlYmlhbi9jb250cm9sIGIvcHJveG1v
eC1zZW5kbWFpbC9kZWJpYW4vY29udHJvbAo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXgg
MDAwMDAwMDAuLmRmYzhiOWJmCj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL3Byb3htb3gtc2VuZG1h
aWwvZGViaWFuL2NvbnRyb2wKPiBAQCAtMCwwICsxLDQzIEBACj4gK1NvdXJjZTogcnVzdC1wcm94
bW94LXNlbmRtYWlsCj4gK1NlY3Rpb246IHJ1c3QKPiArUHJpb3JpdHk6IG9wdGlvbmFsCj4gK0J1
aWxkLURlcGVuZHM6IGRlYmhlbHBlci1jb21wYXQgKD0gMTMpLAo+ICsgZGgtc2VxdWVuY2UtY2Fy
Z28sCj4gKyBjYXJnbzpuYXRpdmUgPCFub2NoZWNrPiwKPiArIHJ1c3RjOm5hdGl2ZSAoPj0gMS44
MCkgPCFub2NoZWNrPiwKPiArIGxpYnN0ZC1ydXN0LWRldiA8IW5vY2hlY2s+LAo+ICsgbGlicnVz
dC1hbnlob3ctMStkZWZhdWx0LWRldiA8IW5vY2hlY2s+LAo+ICsgbGlicnVzdC1iYXNlNjQtMC4x
MytkZWZhdWx0LWRldiA8IW5vY2hlY2s+LAo+ICsgbGlicnVzdC1wZXJjZW50LWVuY29kaW5nLTIr
ZGVmYXVsdC1kZXYgKD49IDIuMS1+fikgPCFub2NoZWNrPiwKPiArIGxpYnJ1c3QtcHJveG1veC10
aW1lLTIrZGVmYXVsdC1kZXYgPCFub2NoZWNrPgo+ICtNYWludGFpbmVyOiBQcm94bW94IFN1cHBv
cnQgVGVhbSA8c3VwcG9ydEBwcm94bW94LmNvbT4KPiArU3RhbmRhcmRzLVZlcnNpb246IDQuNy4w
Cj4gK1Zjcy1HaXQ6IGdpdDovL2dpdC5wcm94bW94LmNvbS9naXQvcHJveG1veC5naXQKPiArVmNz
LUJyb3dzZXI6IGh0dHBzOi8vZ2l0LnByb3htb3guY29tLz9wPXByb3htb3guZ2l0Cj4gK0hvbWVw
YWdlOiBodHRwczovL3Byb3htb3guY29tCj4gK1gtQ2FyZ28tQ3JhdGU6IHByb3htb3gtc2VuZG1h
aWwKPiArUnVsZXMtUmVxdWlyZXMtUm9vdDogbm8KPiArCj4gK1BhY2thZ2U6IGxpYnJ1c3QtcHJv
eG1veC1zZW5kbWFpbC1kZXYKPiArQXJjaGl0ZWN0dXJlOiBhbnkKPiArTXVsdGktQXJjaDogc2Ft
ZQo+ICtEZXBlbmRzOgo+ICsgJHttaXNjOkRlcGVuZHN9LAo+ICsgbGlicnVzdC1hbnlob3ctMStk
ZWZhdWx0LWRldiwKPiArIGxpYnJ1c3QtYmFzZTY0LTAuMTMrZGVmYXVsdC1kZXYsCj4gKyBsaWJy
dXN0LXBlcmNlbnQtZW5jb2RpbmctMitkZWZhdWx0LWRldiAoPj0gMi4xLX5+KSwKPiArIGxpYnJ1
c3QtcHJveG1veC10aW1lLTIrZGVmYXVsdC1kZXYKPiArUHJvdmlkZXM6Cj4gKyBsaWJydXN0LXBy
b3htb3gtc2VuZG1haWwrZGVmYXVsdC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAo+ICsgbGli
cnVzdC1wcm94bW94LXNlbmRtYWlsK21haWwtZm9yd2FyZGVyLWRldiAoPSAke2JpbmFyeTpWZXJz
aW9ufSksCj4gKyBsaWJydXN0LXByb3htb3gtc2VuZG1haWwtMC1kZXYgKD0gJHtiaW5hcnk6VmVy
c2lvbn0pLAo+ICsgbGlicnVzdC1wcm94bW94LXNlbmRtYWlsLTArZGVmYXVsdC1kZXYgKD0gJHti
aW5hcnk6VmVyc2lvbn0pLAo+ICsgbGlicnVzdC1wcm94bW94LXNlbmRtYWlsLTArbWFpbC1mb3J3
YXJkZXItZGV2ICg9ICR7YmluYXJ5OlZlcnNpb259KSwKPiArIGxpYnJ1c3QtcHJveG1veC1zZW5k
bWFpbC0wLjEtZGV2ICg9ICR7YmluYXJ5OlZlcnNpb259KSwKPiArIGxpYnJ1c3QtcHJveG1veC1z
ZW5kbWFpbC0wLjErZGVmYXVsdC1kZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAo+ICsgbGlicnVz
dC1wcm94bW94LXNlbmRtYWlsLTAuMSttYWlsLWZvcndhcmRlci1kZXYgKD0gJHtiaW5hcnk6VmVy
c2lvbn0pLAo+ICsgbGlicnVzdC1wcm94bW94LXNlbmRtYWlsLTAuMS4wLWRldiAoPSAke2JpbmFy
eTpWZXJzaW9ufSksCj4gKyBsaWJydXN0LXByb3htb3gtc2VuZG1haWwtMC4xLjArZGVmYXVsdC1k
ZXYgKD0gJHtiaW5hcnk6VmVyc2lvbn0pLAo+ICsgbGlicnVzdC1wcm94bW94LXNlbmRtYWlsLTAu
MS4wK21haWwtZm9yd2FyZGVyLWRldiAoPSAke2JpbmFyeTpWZXJzaW9ufSkKPiArRGVzY3JpcHRp
b246IFJ1c3QgY3JhdGUgInByb3htb3gtc2VuZG1haWwiIC0gUnVzdCBzb3VyY2UgY29kZQo+ICsg
U291cmNlIGNvZGUgZm9yIERlYmlhbml6ZWQgUnVzdCBjcmF0ZSAicHJveG1veC1zZW5kbWFpbCIK
PiBkaWZmIC0tZ2l0IGEvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vY29weXJpZ2h0IGIvcHJveG1v
eC1zZW5kbWFpbC9kZWJpYW4vY29weXJpZ2h0Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl
eCAwMDAwMDAwMC4uMGQ5ZWFiM2UKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvcHJveG1veC1zZW5k
bWFpbC9kZWJpYW4vY29weXJpZ2h0Cj4gQEAgLTAsMCArMSwxOCBAQAo+ICtGb3JtYXQ6IGh0dHBz
Oi8vd3d3LmRlYmlhbi5vcmcvZG9jL3BhY2thZ2luZy1tYW51YWxzL2NvcHlyaWdodC1mb3JtYXQv
MS4wLwo+ICsKPiArRmlsZXM6Cj4gKyAqCj4gK0NvcHlyaWdodDogMjAxOSAtIDIwMjMgUHJveG1v
eCBTZXJ2ZXIgU29sdXRpb25zIEdtYkggPHN1cHBvcnRAcHJveG1veC5jb20+Cj4gK0xpY2Vuc2U6
IEFHUEwtMy4wLW9yLWxhdGVyCj4gKyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcgo+ICsgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlCj4gKyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueQo+ICsgbGF0ZXIgdmVyc2lvbi4KPiAr
IC4KPiArIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo+ICsgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MKPiArIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gU2VlIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUKPiArIGRldGFpbHMuCj4gKyAuCj4gKyBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
YWxvbmcKPiArIHdpdGggdGhpcyBwcm9ncmFtLiBJZiBub3QsIHNlZSA8aHR0cHM6Ly93d3cuZ251
Lm9yZy9saWNlbnNlcy8+Lgo+IGRpZmYgLS1naXQgYS9wcm94bW94LXNlbmRtYWlsL2RlYmlhbi9k
ZWJjYXJnby50b21sIGIvcHJveG1veC1zZW5kbWFpbC9kZWJpYW4vZGViY2FyZ28udG9tbAo+IG5l
dyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAuLmI3ODY0Y2RiCj4gLS0tIC9kZXYv
bnVsbAo+ICsrKyBiL3Byb3htb3gtc2VuZG1haWwvZGViaWFuL2RlYmNhcmdvLnRvbWwKPiBAQCAt
MCwwICsxLDcgQEAKPiArb3ZlcmxheSA9ICIuIgo+ICtjcmF0ZV9zcmNfcGF0aCA9ICIuLiIKPiAr
bWFpbnRhaW5lciA9ICJQcm94bW94IFN1cHBvcnQgVGVhbSA8c3VwcG9ydEBwcm94bW94LmNvbT4i
Cj4gKwo+ICtbc291cmNlXQo+ICt2Y3NfZ2l0ID0gImdpdDovL2dpdC5wcm94bW94LmNvbS9naXQv
cHJveG1veC5naXQiCj4gK3Zjc19icm93c2VyID0gImh0dHBzOi8vZ2l0LnByb3htb3guY29tLz9w
PXByb3htb3guZ2l0Igo+IGRpZmYgLS1naXQgYS9wcm94bW94LXNlbmRtYWlsL3NyYy9saWIucnMg
Yi9wcm94bW94LXNlbmRtYWlsL3NyYy9saWIucnMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGlu
ZGV4IDAwMDAwMDAwLi5lNmNiMjU4ZQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9wcm94bW94LXNl
bmRtYWlsL3NyYy9saWIucnMKPiBAQCAtMCwwICsxLDc3OSBAQAo+ICsvLyEKPiArLy8hIFRoaXMg
bGlicmFyeSBpbXBsZW1lbnRzIHRoZSBbYE1haWxgXSB0cmFpdCB3aGljaCBtYWtlcyBpdCBlYXN5
IHRvIHNlbmQgZW1haWxzIHdpdGggYXR0YWNobWVudHMKPiArLy8hIGFuZCBhbHRlcm5hdGl2ZSBo
dG1sIHBhcnRzIHRvIG9uZSBvciBtdWx0aXBsZSByZWNlaXZlcnMgdmlhIGBgc2VuZG1haWxgYC4K
PiArLy8hCj4gKwo+ICt1c2Ugc3RkOjppbzo6V3JpdGU7Cj4gK3VzZSBzdGQ6OnByb2Nlc3M6OntD
b21tYW5kLCBTdGRpb307Cj4gKwo+ICt1c2UgYW55aG93Ojp7YmFpbCwgQ29udGV4dCwgRXJyb3J9
Owo+ICt1c2UgcGVyY2VudF9lbmNvZGluZzo6e3V0ZjhfcGVyY2VudF9lbmNvZGUsIEFzY2lpU2V0
LCBDT05UUk9MU307Cj4gKwo+ICsvLyBDaGFyYWN0ZXJzIGluIHRoaXMgc2V0IHdpbGwgYmUgZW5j
b2RlZCwgc28gcmVwcm9kdWNlIHRoZSBpbnZlcnNlIG9mIHRoZSBzZXQgZGVzY3JpYmVkIGJ5IFJG
QzU5ODcKPiArLy8gU2VjdGlvbiAzLjIuMSBgYXR0ci1jaGFyYCwgYXMgdGhhdCBkZXNjcmliZXMg
YWxsIGNoYXJhY3RlcnMgdGhhdCAqKmRvbid0KiogbmVlZCBlbmNvZGluZzoKPiArLy8KPiArLy8g
aHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM1OTg3I3NlY3Rpb24tMy4y
LjEKPiArLy8KPiArLy8gYENPTlRST0xTYCBjb250YWlucyBhbGwgY29udHJvbCBjaGFyYWN0ZXJz
IDB4MDAgLSAweDFmIGFuZCAweDdmIGFzIHdlbGwgYXMgYWxsIG5vbi1hc2NpaQo+ICsvLyBjaGFy
YWN0ZXJzLCBzbyB3ZSBuZWVkIHRvIGFkZCBhbGwgY2hhcmFjdGVycyBoZXJlIHRoYXQgYXJlbid0
IGRlc2NyaWJlZCBpbiBgYXR0ci1jaGFyYCB0aGF0IGFyZQo+ICsvLyBpbiB0aGUgcmFuZ2UgMHgy
MC0weDdlCj4gK2NvbnN0IFJGQzU5ODdTRVQ6ICZBc2NpaVNldCA9ICZDT05UUk9MUwo+ICsgICAg
LmFkZChiJyAnKQo+ICsgICAgLmFkZChiJyInKQo+ICsgICAgLmFkZChiJyUnKQo+ICsgICAgLmFk
ZChiJyYnKQo+ICsgICAgLmFkZChiJ1wnJykKPiArICAgIC5hZGQoYicoJykKPiArICAgIC5hZGQo
YicpJykKPiArICAgIC5hZGQoYicqJykKPiArICAgIC5hZGQoYicsJykKPiArICAgIC5hZGQoYicv
JykKPiArICAgIC5hZGQoYic6JykKPiArICAgIC5hZGQoYic7JykKPiArICAgIC5hZGQoYic8JykK
PiArICAgIC5hZGQoYic9JykKPiArICAgIC5hZGQoYic+JykKPiArICAgIC5hZGQoYic/JykKPiAr
ICAgIC5hZGQoYidAJykKPiArICAgIC5hZGQoYidbJykKPiArICAgIC5hZGQoYidcXCcpCj4gKyAg
ICAuYWRkKGInXScpCj4gKyAgICAuYWRkKGIneycpCj4gKyAgICAuYWRkKGInfScpOwo+ICsKPiAr
c3RydWN0IFJlY2lwaWVudCB7Cj4gKyAgICBuYW1lOiBPcHRpb248U3RyaW5nPiwKPiArICAgIGVt
YWlsOiBTdHJpbmcsCj4gK30KPiArCj4gK2ltcGwgUmVjaXBpZW50IHsKPiArICAgIC8vIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgbmFtZSBvZiB0aGUgcmVjaXBpZW50IGlzIHVuZGVmaW5lZCBvciBjb250
YWlucyBvbmx5IGFzY2lpIGNoYXJhY3RlcnMKPiArICAgIGZuIGlzX2FzY2lpKCZzZWxmKSAtPiBi
b29sIHsKPiArICAgICAgICBzZWxmLm5hbWUuYXNfcmVmKCkubWFwKHxufCBuLmlzX2FzY2lpKCkp
LnVud3JhcF9vcih0cnVlKQo+ICsgICAgfQo+ICsKPiArICAgIGZuIGZvcm1hdF9yZWNpcGllbnQo
JnNlbGYpIC0+IFN0cmluZyB7Cj4gKyAgICAgICAgaWYgbGV0IFNvbWUobmFtZSkgPSAmc2VsZi5u
YW1lIHsKPiArICAgICAgICAgICAgaWYgIW5hbWUuaXNfYXNjaWkoKSB7Cj4gKyAgICAgICAgICAg
ICAgICBmb3JtYXQhKCI9P3V0Zi04P0I/e30/PSA8e30+IiwgYmFzZTY0OjplbmNvZGUobmFtZSks
IHNlbGYuZW1haWwpCj4gKyAgICAgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgICAgICBm
b3JtYXQhKCJ7bmFtZX0gPHt9PiIsIHNlbGYuZW1haWwpCj4gKyAgICAgICAgICAgIH0KPiArICAg
ICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICBzZWxmLmVtYWlsLnRvX3N0cmluZygpCj4gKyAg
ICAgICAgfQo+ICsgICAgfQo+ICt9Cj4gKwo+ICtzdHJ1Y3QgQXR0YWNobWVudDwnYT4gewo+ICsg
ICAgZmlsZW5hbWU6IFN0cmluZywKPiArICAgIG1pbWU6IFN0cmluZywKPiArICAgIGNvbnRlbnQ6
ICYnYSBbdThdLAo+ICt9Cj4gKwo+ICtpbXBsPCdhPiBBdHRhY2htZW50PCdhPiB7Cj4gKyAgICBm
biBmb3JtYXRfYXR0YWNobWVudCgmc2VsZiwgZmlsZV9ib3VuZGFyeTogJnN0cikgLT4gU3RyaW5n
IHsKPiArICAgICAgICB1c2Ugc3RkOjpmbXQ6OldyaXRlOwo+ICsKPiArICAgICAgICBsZXQgbXV0
IGF0dGFjaG1lbnQgPSBTdHJpbmc6Om5ldygpOwo+ICsKPiArICAgICAgICBsZXQgXyA9IHdyaXRl
bG4hKGF0dGFjaG1lbnQsICJcbi0te2ZpbGVfYm91bmRhcnl9Iik7Cj4gKyAgICAgICAgbGV0IF8g
PSB3cml0ZWxuISgKPiArICAgICAgICAgICAgYXR0YWNobWVudCwKPiArICAgICAgICAgICAgIkNv
bnRlbnQtVHlwZToge307IG5hbWU9XCJ7fVwiIiwKPiArICAgICAgICAgICAgc2VsZi5taW1lLCBz
ZWxmLmZpbGVuYW1lCj4gKyAgICAgICAgKTsKPiArCj4gKyAgICAgICAgLy8gYm90aCBgZmlsZW5h
bWVgIGFuZCBgZmlsZW5hbWUqYCBhcmUgaW5jbHVkZWQgZm9yIGFkZGl0aW9uYWwgY29tcGF0YWJp
bGl0eQo+ICsgICAgICAgIGxldCBfID0gd3JpdGVsbiEoCj4gKyAgICAgICAgICAgIGF0dGFjaG1l
bnQsCj4gKyAgICAgICAgICAgICJDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxl
bmFtZT1cInt9XCI7IGZpbGVuYW1lKj1VVEYtOCcne30iLAo+ICsgICAgICAgICAgICBzZWxmLmZp
bGVuYW1lLAo+ICsgICAgICAgICAgICB1dGY4X3BlcmNlbnRfZW5jb2RlKCZzZWxmLmZpbGVuYW1l
LCBSRkM1OTg3U0VUKQo+ICsgICAgICAgICk7Cj4gKyAgICAgICAgYXR0YWNobWVudC5wdXNoX3N0
cigiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0XG5cbiIpOwo+ICsKPiArICAgICAg
ICAvLyBiYXNlNjQgZW5jb2RlIHRoZSBhdHRhY2htZW50IGFuZCBoYXJkLXdyYXAgdGhlIGJhc2U2
NCBlbmNvZGVkIHN0cmluZyBldmVyeSA3Mgo+ICsgICAgICAgIC8vIGNoYXJhY3RlcnMuIHRoaXMg
aW1wcm92ZXMgY29tcGF0YWJpbGl0eS4KPiArICAgICAgICBhdHRhY2htZW50LnB1c2hfc3RyKAo+
ICsgICAgICAgICAgICAmYmFzZTY0OjplbmNvZGUoc2VsZi5jb250ZW50KQo+ICsgICAgICAgICAg
ICAgICAgLmNoYXJzKCkKPiArICAgICAgICAgICAgICAgIC5lbnVtZXJhdGUoKQo+ICsgICAgICAg
ICAgICAgICAgLmZsYXRfbWFwKHwoaSwgYyl8IHsKPiArICAgICAgICAgICAgICAgICAgICBpZiBp
ICE9IDAgJiYgaSAlIDcyID09IDAgewo+ICsgICAgICAgICAgICAgICAgICAgICAgICBTb21lKCdc
bicpCj4gKyAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgICAgICAg
ICAgICAgTm9uZQo+ICsgICAgICAgICAgICAgICAgICAgIH0KPiArICAgICAgICAgICAgICAgICAg
ICAuaW50b19pdGVyKCkKPiArICAgICAgICAgICAgICAgICAgICAuY2hhaW4oc3RkOjppdGVyOjpv
bmNlKGMpKQo+ICsgICAgICAgICAgICAgICAgfSkKPiArICAgICAgICAgICAgICAgIC5jb2xsZWN0
Ojo8U3RyaW5nPigpLAo+ICsgICAgICAgICk7Cj4gKwo+ICsgICAgICAgIGF0dGFjaG1lbnQKPiAr
ICAgIH0KPiArfQo+ICsKPiArLy8vIFRoaXMgc3RydWN0IGlzIHVzZWQgdG8gZGVmaW5lIG1haWxz
IHRoYXQgYXJlIHRvIGJlIHNlbnQgdmlhIHRoZSBgc2VuZG1haWxgIGNvbW1hbmQuCj4gK3B1YiBz
dHJ1Y3QgTWFpbDwnYT4gewo+ICsgICAgbWFpbF9hdXRob3I6IFN0cmluZywKPiArICAgIG1haWxf
ZnJvbTogU3RyaW5nLAo+ICsgICAgc3ViamVjdDogU3RyaW5nLAo+ICsgICAgdG86IFZlYzxSZWNp
cGllbnQ+LAo+ICsgICAgYm9keV90eHQ6IFN0cmluZywKPiArICAgIGJvZHlfaHRtbDogT3B0aW9u
PFN0cmluZz4sCj4gKyAgICBhdHRhY2htZW50czogVmVjPEF0dGFjaG1lbnQ8J2E+PiwKPiArICAg
IG1hc2tfcGFydGljaXBhbnRzOiBib29sLAo+ICt9Cj4gKwo+ICtpbXBsPCdhPiBNYWlsPCdhPiB7
Cj4gKyAgICAvLy8gQ3JlYXRlcyBhIG5ldyBtYWlsIHdpdGggYSBtYWlsIGF1dGhvciwgZnJvbSBh
ZGRyZXNzLCBzdWJqZWN0IGxpbmUgYW5kIGEgcGxhaW4gdGV4dCBib2R5Lgo+ICsgICAgLy8vCj4g
KyAgICAvLy8gTm90ZTogSWYgdGhlIGF1dGhvcidzIG5hbWUgb3IgdGhlIHN1YmplY3QgbGluZSBj
b250YWlucyBVVEYtOCBjaGFyYWN0ZXJzIHRoZXkgd2lsbCBiZQo+ICsgICAgLy8vIGFwcHJvcHJp
YXRlbHkgZW5jb2RlZC4KPiArICAgIHB1YiBmbiBuZXcobWFpbF9hdXRob3I6ICZzdHIsIG1haWxf
ZnJvbTogJnN0ciwgc3ViamVjdDogJnN0ciwgYm9keV90eHQ6ICZzdHIpIC0+IFNlbGYgewo+ICsg
ICAgICAgIFNlbGYgewo+ICsgICAgICAgICAgICBtYWlsX2F1dGhvcjogbWFpbF9hdXRob3IudG9f
c3RyaW5nKCksCj4gKyAgICAgICAgICAgIG1haWxfZnJvbTogbWFpbF9mcm9tLnRvX3N0cmluZygp
LAo+ICsgICAgICAgICAgICBzdWJqZWN0OiBzdWJqZWN0LnRvX3N0cmluZygpLAo+ICsgICAgICAg
ICAgICB0bzogVmVjOjpuZXcoKSwKPiArICAgICAgICAgICAgYm9keV90eHQ6IGJvZHlfdHh0LnRv
X3N0cmluZygpLAo+ICsgICAgICAgICAgICBib2R5X2h0bWw6IE5vbmUsCj4gKyAgICAgICAgICAg
IGF0dGFjaG1lbnRzOiBWZWM6Om5ldygpLAo+ICsgICAgICAgICAgICBtYXNrX3BhcnRpY2lwYW50
czogdHJ1ZSwKPiArICAgICAgICB9Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEFkZHMgYSByZWNp
cGllbnQgdG8gdGhlIG1haWwgd2l0aG91dCBzcGVjaWZ5aW5nIGEgbmFtZSBzZXBhcmF0ZWx5Lgo+
ICsgICAgLy8vCj4gKyAgICAvLy8gTm90ZTogTm8gZm9ybWF0dGluZyBvciBlbmNvZGluZyB3aWxs
IGJlIGRvbmUgaGVyZSwgdGhlIHZhbHVlIHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBgVG86YAo+ICsg
ICAgLy8vIGhlYWRlciBkaXJlY3RseS4KPiArICAgIHB1YiBmbiBhZGRfcmVjaXBpZW50KCZtdXQg
c2VsZiwgZW1haWw6ICZzdHIpIHsKPiArICAgICAgICBzZWxmLnRvLnB1c2goUmVjaXBpZW50IHsK
PiArICAgICAgICAgICAgbmFtZTogTm9uZSwKPiArICAgICAgICAgICAgZW1haWw6IGVtYWlsLnRv
X3N0cmluZygpLAo+ICsgICAgICAgIH0pOwo+ICsgICAgfQo+ICsKPiArICAgIC8vLyBCdWlsZGVy
LXBhdHRlcm4gbWV0aG9kIHRvIGNvbnZlbmllbnRseSBhZGQgYSByZWNpcGllbnQgdG8gYW4gZW1h
aWwgd2l0aG91dCBzcGVjaWZ5aW5nIGEKPiArICAgIC8vLyBuYW1lIHNlcGFyYXRlbHkuCj4gKyAg
ICAvLy8KPiArICAgIC8vLyBOb3RlOiBObyBmb3JtYXR0aW5nIG9yIGVuY29kaW5nIHdpbGwgYmUg
ZG9uZSBoZXJlLCB0aGUgdmFsdWUgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpgCj4gKyAgICAv
Ly8gaGVhZGVyIGRpcmVjdGx5Lgo+ICsgICAgcHViIGZuIHdpdGhfcmVjaXBpZW50KG11dCBzZWxm
LCBlbWFpbDogJnN0cikgLT4gU2VsZiB7Cj4gKyAgICAgICAgc2VsZi5hZGRfcmVjaXBpZW50KGVt
YWlsKTsKPiArICAgICAgICBzZWxmCj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEFkZHMgYSByZWNp
cGllbnQgdG8gdGhlIG1haWwgd2l0aCBhIG5hbWUuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3Rl
czoKPiArICAgIC8vLwo+ICsgICAgLy8vIC0gSWYgdGhlIG5hbWUgY29udGFpbnMgVVRGLTggY2hh
cmFjdGVycyBpdCB3aWxsIGJlIGVuY29kZWQuIFRoZW4gdGhlIHBvc3NpYmx5IGVuY29kZWQgbmFt
ZQo+ICsgICAgLy8vICAgYW5kIG5vbi1lbmNvZGVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBiZSBwYXNz
ZWQgdG8gdGhlIGBUbzpgIGhlYWRlciBpbiB0aGlzIGZvcm1hdDoKPiArICAgIC8vLyAgIGB7ZW5j
b2RlZF9uYW1lfSA8e2VtYWlsfT5gCj4gKyAgICAvLy8gLSBJZiBtdWx0aXBsZSByZWNlaXZlcnMg
YXJlIHNwZWNpZmllZCwgdGhleSB3aWxsIGJlIG1hc2tlZCBzbyBhcyBub3QgdG8gZGlzY2xvc2Ug
dGhlbSB0bwo+ICsgICAgLy8vICAgb3RoZXIgcmVjZWl2ZXJzLiBUaGlzIGNhbiBiZSBkaXNhYmxl
ZCB2aWEgW2BNYWlsOjp1bm1hc2tfcmVjaXBpZW50c2BdIG9yCj4gKyAgICAvLy8gICBbYE1haWw6
OndpdGhfdW5tYXNrZWRfcmVjaXBpZW50c2BdLgo+ICsgICAgcHViIGZuIGFkZF9yZWNpcGllbnRf
YW5kX25hbWUoJm11dCBzZWxmLCBuYW1lOiAmc3RyLCBlbWFpbDogJnN0cikgewo+ICsgICAgICAg
IHNlbGYudG8ucHVzaChSZWNpcGllbnQgewo+ICsgICAgICAgICAgICBuYW1lOiBTb21lKG5hbWUu
dG9fc3RyaW5nKCkpLAo+ICsgICAgICAgICAgICBlbWFpbDogZW1haWwudG9fc3RyaW5nKCksCj4g
KyAgICAgICAgfSk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEJ1aWxkZXItc3R5bGUgbWV0aG9k
IHRvIGNvbnZlbmllbnRseSBhZGQgYSByZWNpcGllbnQgd2l0aCBhIG5hbWUgdG8gYW4gZW1haWwu
Cj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3RlczoKPiArICAgIC8vLwo+ICsgICAgLy8vIC0gSWYg
dGhlIG5hbWUgY29udGFpbnMgVVRGLTggY2hhcmFjdGVycyBpdCB3aWxsIGJlIGVuY29kZWQuIFRo
ZW4gdGhlIHBvc3NpYmx5IGVuY29kZWQgbmFtZQo+ICsgICAgLy8vICAgYW5kIG5vbi1lbmNvZGVk
IGVtYWlsIGFkZHJlc3Mgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpgIGhlYWRlciBpbiB0aGlz
IGZvcm1hdDoKPiArICAgIC8vLyAgIGB7ZW5jb2RlZF9uYW1lfSA8e2VtYWlsfT5gCj4gKyAgICAv
Ly8gLSBJZiBtdWx0aXBsZSByZWNlaXZlcnMgYXJlIHNwZWNpZmllZCwgdGhleSB3aWxsIGJlIG1h
c2tlZCBzbyBhcyBub3QgdG8gZGlzY2xvc2UgdGhlbSB0bwo+ICsgICAgLy8vICAgb3RoZXIgcmVj
ZWl2ZXJzLiBUaGlzIGNhbiBiZSBkaXNhYmxlZCB2aWEgW2BNYWlsOjp1bm1hc2tfcmVjaXBpZW50
c2BdIG9yCj4gKyAgICAvLy8gICBbYE1haWw6OndpdGhfdW5tYXNrZWRfcmVjaXBpZW50c2BdLgo+
ICsgICAgcHViIGZuIHdpdGhfcmVjaXBpZW50X2FuZF9uYW1lKG11dCBzZWxmLCBuYW1lOiAmc3Ry
LCBlbWFpbDogJnN0cikgLT4gU2VsZiB7Cj4gKyAgICAgICAgc2VsZi5hZGRfcmVjaXBpZW50X2Fu
ZF9uYW1lKG5hbWUsIGVtYWlsKTsKPiArICAgICAgICBzZWxmCj4gKyAgICB9Cj4gKwo+ICsgICAg
Ly8vIEFkZHMgYW4gYXR0YWNobWVudCB3aXRoIGEgc3BlY2lmaWVkIGZpbGUgbmFtZSBhbmQgbWlt
ZS10eXBlIHRvIGFuIGVtYWlsLgo+ICsgICAgLy8vCj4gKyAgICAvLy8gTm90ZTogQWRkaW5nIGF0
dGFjaG1lbnRzIHRyaWdnZXJzIGBtdWx0aXBhcnQvbWl4ZWRgIG1vZGUuCj4gKyAgICBwdWIgZm4g
YWRkX2F0dGFjaG1lbnQoJm11dCBzZWxmLCBmaWxlbmFtZTogJnN0ciwgbWltZV90eXBlOiAmc3Ry
LCBjb250ZW50OiAmJ2EgW3U4XSkgewo+ICsgICAgICAgIHNlbGYuYXR0YWNobWVudHMucHVzaChB
dHRhY2htZW50IHsKPiArICAgICAgICAgICAgZmlsZW5hbWU6IGZpbGVuYW1lLnRvX3N0cmluZygp
LAo+ICsgICAgICAgICAgICBtaW1lOiBtaW1lX3R5cGUudG9fc3RyaW5nKCksCj4gKyAgICAgICAg
ICAgIGNvbnRlbnQsCj4gKyAgICAgICAgfSk7Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEJ1aWxk
ZXItc3R5bGUgbWV0aG9kIHRvIGNvbnZlbmllbnRseSBhZGQgYW4gYXR0YWNobWVudCB3aXRoIGEg
c3BlY2lmaWMgZmlsZW5hbWUgYW5kCj4gKyAgICAvLy8gbWltZS10eXBlIHRvIGFuIGVtYWlsLgo+
ICsgICAgLy8vCj4gKyAgICAvLy8gTm90ZTogQWRkaW5nIGF0dGFjaGVtZW50cyB0cmlnZ2VycyBg
bXVsdGlwYXJ0L21peGVkYCBtb2RlLgo+ICsgICAgcHViIGZuIHdpdGhfYXR0YWNobWVudChtdXQg
c2VsZiwgZmlsZW5hbWU6ICZzdHIsIG1pbWVfdHlwZTogJnN0ciwgY29udGVudDogJidhIFt1OF0p
IC0+IFNlbGYgewo+ICsgICAgICAgIHNlbGYuYWRkX2F0dGFjaG1lbnQoZmlsZW5hbWUsIG1pbWVf
dHlwZSwgY29udGVudCk7Cj4gKyAgICAgICAgc2VsZgo+ICsgICAgfQo+ICsKPiArICAgIC8vLyBT
ZXQgYW4gYWx0ZXJuYXRpdmUgSFRNTCBwYXJ0Lgo+ICsgICAgLy8vCj4gKyAgICAvLy8gTm90ZTog
VGhpcyB0cmlnZ2VycyBgbXVsdGlwYXJ0L2FsdGVybmF0aXZlYCBtb2RlLiBJZiBib3RoIGFuIEhU
TUwgcGFydCBhbmQgYXQgbGVhc3Qgb25lCj4gKyAgICAvLy8gYXR0YWNobWVudCBhcmUgc3BlY2lm
aWVkLCB0aGUgYG11bHRpcGFydC9hbHRlcm5hdGl2ZWAgcGFydCB3aWxsIGJlIG5lc3RlZCB3aXRo
aW4gdGhlIGZpcnN0Cj4gKyAgICAvLy8gYG11bHRpcGFydC9taXhlZGAgcGFydC4gVGhpcyBzaG91
bGQgZW5zdXJlIHRoYXQgdGhlIEhUTUwgaXMgZGlzcGxheWVkIHByb3Blcmx5IGJ5IGNsaWVudCdz
Cj4gKyAgICAvLy8gdGhhdCBwcmlvcml0aXplIGl0IG92ZXIgdGhlIHBsYWluIHRleHQgcGFydCAo
c2hvdWxkIGJlIHRoZSBkZWZhdWx0IGZvciBtb3N0IGNsaWVudHMpIHdoaWxlCj4gKyAgICAvLy8g
YWxzbyBwcm9wZXJseSBkaXNwbGF5aW5nIHRoZSBhdHRhY2htZW50cy4KPiArICAgIHB1YiBmbiBz
ZXRfaHRtbF9hbHQoJm11dCBzZWxmLCBib2R5X2h0bWw6ICZzdHIpIHsKPiArICAgICAgICBzZWxm
LmJvZHlfaHRtbC5yZXBsYWNlKGJvZHlfaHRtbC50b19zdHJpbmcoKSk7Cj4gKyAgICB9Cj4gKwo+
ICsgICAgLy8vIEJ1aWxkZXItc3R5bGUgbWV0aG9kIHRvIGFkZCBhbiBhbHRlcm5hdGl2ZSBIVE1M
IHBhcnQuCj4gKyAgICAvLy8KPiArICAgIC8vLyBOb3RlOiBUaGlzIHRyaWdnZXJzIGBtdWx0aXBh
cnQvYWx0ZXJuYXRpdmVgIG1vZGUuIElmIGJvdGggYW4gSFRNTCBwYXJ0IGFuZCBhdCBsZWFzdCBv
bmUKPiArICAgIC8vLyBhdHRhY2htZW50IGFyZSBzcGVjaWZpZWQsIHRoZSBgbXVsdGlwYXJ0L2Fs
dGVybmF0aXZlYCBwYXJ0IHdpbGwgYmUgbmVzdGVkIHdpdGhpbiB0aGUgZmlyc3QKPiArICAgIC8v
LyBgbXVsdGlwYXJ0L21peGVkYCBwYXJ0LiBUaGlzIHNob3VsZCBlbnN1cmUgdGhhdCB0aGUgSFRN
TCBpcyBkaXNwbGF5ZWQgcHJvcGVybHkgYnkgY2xpZW50J3MKPiArICAgIC8vLyB0aGF0IHByaW9y
aXRpemUgaXQgb3ZlciB0aGUgcGxhaW4gdGV4dCBwYXJ0IChzaG91bGQgYmUgdGhlIGRlZmF1bHQg
Zm9yIG1vc3QgY2xpZW50cykgd2hpbGUKPiArICAgIC8vLyBhbHNvIHByb3Blcmx5IGRpc3BsYXlp
bmcgdGhlIGF0dGFjaG1lbnRzLgo+ICsgICAgcHViIGZuIHdpdGhfaHRtbF9hbHQobXV0IHNlbGYs
IGJvZHlfaHRtbDogJnN0cikgLT4gU2VsZiB7Cj4gKyAgICAgICAgc2VsZi5zZXRfaHRtbF9hbHQo
Ym9keV9odG1sKTsKPiArICAgICAgICBzZWxmCj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIFRoaXMg
ZnVuY3Rpb24gZW5zdXJlcyB0aGF0IHJlY2lwaWVudHMgb2YgdGhlIG1haWwgYXJlIG5vdCBtYXNr
ZWQuIEJlaW5nIGFibGUgdG8gc2VlIGFsbAo+ICsgICAgLy8vIHJlY2lwaWVudHMgb2YgYSBtYWls
IGNhbiBiZSBoZWxwZnVsIGluLCBmb3IgZXhhbXBsZSwgbm90aWZpY2F0aW9uIHNjZW5hcmlvcy4K
PiArICAgIHB1YiBmbiB1bm1hc2tfcmVjaXBpZW50cygmbXV0IHNlbGYpIHsKPiArICAgICAgICBz
ZWxmLm1hc2tfcGFydGljaXBhbnRzID0gZmFsc2U7Cj4gKyAgICB9Cj4gKwo+ICsgICAgLy8vIEJ1
aWxkZXItc3R5bGUgZnVuY3Rpb24gdGhhdCBlbnN1cmVzIHRoYXQgcmVjaXBpZW50cyBvZiB0aGUg
bWFpbCBhcmUgbm90IG1hc2tlZC4gQmVpbmcgYWJsZQo+ICsgICAgLy8vIHRvIHNlZSBhbGwgcmVj
aXBpZW50cyBvZiBhIG1haWwgY2FuIGJlIGhlbHBmdWwgaW4sIGZvciBleGFtcGxlLCBub3RpZmlj
YXRpb24gc2NlbmFyaW9zLgo+ICsgICAgcHViIGZuIHdpdGhfdW5tYXNrZWRfcmVjaXBpZW50cyht
dXQgc2VsZikgLT4gU2VsZiB7Cj4gKyAgICAgICAgc2VsZi51bm1hc2tfcmVjaXBpZW50cygpOwo+
ICsgICAgICAgIHNlbGYKPiArICAgIH0KPiArCj4gKyAgICAvLy8gU2VuZHMgdGhlIGVtYWlsLiBU
aGlzIHdpbGwgZmFpbCBpZiBubyByZWNpcGllbnRzIGhhdmUgYmVlbiBhZGRlZC4KPiArICAgIC8v
Lwo+ICsgICAgLy8vIE5vdGU6IEFuIGBBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWRgIGhl
YWRlciBpcyBhZGRlZCB0byBhdm9pZCB0cmlnZ2VyaW5nIE9PTyBhbmQKPiArICAgIC8vLyBzaW1p
bGFyIG1haWxzLgo+ICsgICAgcHViIGZuIHNlbmQoJnNlbGYpIC0+IFJlc3VsdDwoKSwgRXJyb3I+
IHsKPiArICAgICAgICBpZiBzZWxmLnRvLmlzX2VtcHR5KCkgewo+ICsgICAgICAgICAgICBiYWls
ISgibm8gcmVjaXBpZW50cyBwcm92aWRlZCBmb3IgdGhlIG1haWwsIGNhbm5vdCBzZW5kIGl0LiIp
Owo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgbGV0IG5vdyA9IHByb3htb3hfdGltZTo6ZXBv
Y2hfaTY0KCk7Cj4gKyAgICAgICAgbGV0IGJvZHkgPSBzZWxmLmZvcm1hdF9tYWlsKG5vdyk/Owo+
ICsKPiArICAgICAgICBsZXQgbXV0IHNlbmRtYWlsX3Byb2Nlc3MgPSBDb21tYW5kOjpuZXcoIi91
c3Ivc2Jpbi9zZW5kbWFpbCIpCj4gKyAgICAgICAgICAgIC5hcmcoIi1CIikKPiArICAgICAgICAg
ICAgLmFyZygiOEJJVE1JTUUiKQo+ICsgICAgICAgICAgICAuYXJnKCItZiIpCj4gKyAgICAgICAg
ICAgIC5hcmcoJnNlbGYubWFpbF9mcm9tKQo+ICsgICAgICAgICAgICAuYXJnKCItLSIpCj4gKyAg
ICAgICAgICAgIC5hcmdzKHNlbGYudG8uaXRlcigpLm1hcCh8cHwgJnAuZW1haWwpLmNvbGxlY3Q6
OjxWZWM8JlN0cmluZz4+KCkpCj4gKyAgICAgICAgICAgIC5zdGRpbihTdGRpbzo6cGlwZWQoKSkK
PiArICAgICAgICAgICAgLnNwYXduKCkKPiArICAgICAgICAgICAgLndpdGhfY29udGV4dCh8fCAi
Y291bGQgbm90IHNwYXduIHNlbmRtYWlsIHByb2Nlc3MiKT87Cj4gKwo+ICsgICAgICAgIHNlbmRt
YWlsX3Byb2Nlc3MKPiArICAgICAgICAgICAgLnN0ZGluCj4gKyAgICAgICAgICAgIC5hc19yZWYo
KQo+ICsgICAgICAgICAgICAudW53cmFwKCkKPiArICAgICAgICAgICAgLndyaXRlX2FsbChib2R5
LmFzX2J5dGVzKCkpCj4gKyAgICAgICAgICAgIC53aXRoX2NvbnRleHQofHwgImNvdWxkbid0IHdy
aXRlIHRvIHNlbmRtYWlsIHN0ZGluIik/Owo+ICsKPiArICAgICAgICBzZW5kbWFpbF9wcm9jZXNz
Cj4gKyAgICAgICAgICAgIC53YWl0KCkKPiArICAgICAgICAgICAgLndpdGhfY29udGV4dCh8fCAi
c2VuZG1haWwgZGlkIG5vdCBleGl0IHN1Y2Nlc3NmdWxseSIpPzsKPiArCj4gKyAgICAgICAgT2so
KCkpCj4gKyAgICB9Cj4gKwo+ICsgICAgZm4gZm9ybWF0X21haWwoJnNlbGYsIG5vdzogaTY0KSAt
PiBSZXN1bHQ8U3RyaW5nLCBFcnJvcj4gewo+ICsgICAgICAgIHVzZSBzdGQ6OmZtdDo6V3JpdGU7
Cj4gKwo+ICsgICAgICAgIGxldCBmaWxlX2JvdW5kYXJ5ID0gZm9ybWF0ISgiLS0tLV89X05leHRQ
YXJ0XzAwMV97bm93fSIpOwo+ICsgICAgICAgIGxldCBodG1sX2JvdW5kYXJ5ID0gZm9ybWF0ISgi
LS0tLV89X05leHRQYXJ0XzAwMl97bm93fSIpOwo+ICsKPiArICAgICAgICBsZXQgbXV0IG1haWwg
PSBzZWxmLmZvcm1hdF9oZWFkZXIobm93LCAmZmlsZV9ib3VuZGFyeSwgJmh0bWxfYm91bmRhcnkp
PzsKPiArICAgICAgICBtYWlsLnB1c2hfc3RyKCZzZWxmLmZvcm1hdF9ib2R5KCZmaWxlX2JvdW5k
YXJ5LCAmaHRtbF9ib3VuZGFyeSk/KTsKPiArCj4gKyAgICAgICAgaWYgIXNlbGYuYXR0YWNobWVu
dHMuaXNfZW1wdHkoKSB7Cj4gKyAgICAgICAgICAgIG1haWwucHVzaF9zdHIoCj4gKyAgICAgICAg
ICAgICAgICAmc2VsZgo+ICsgICAgICAgICAgICAgICAgICAgIC5hdHRhY2htZW50cwo+ICsgICAg
ICAgICAgICAgICAgICAgIC5pdGVyKCkKPiArICAgICAgICAgICAgICAgICAgICAubWFwKHxhfCBh
LmZvcm1hdF9hdHRhY2htZW50KCZmaWxlX2JvdW5kYXJ5KSkKPiArICAgICAgICAgICAgICAgICAg
ICAuY29sbGVjdDo6PFN0cmluZz4oKSwKPiArICAgICAgICAgICAgKTsKPiArCj4gKyAgICAgICAg
ICAgIHdyaXRlIShtYWlsLCAiXG4tLXtmaWxlX2JvdW5kYXJ5fS0tIik/Owo+ICsgICAgICAgIH0K
PiArCj4gKyAgICAgICAgT2sobWFpbCkKPiArICAgIH0KPiArCj4gKyAgICBmbiBmb3JtYXRfaGVh
ZGVyKAo+ICsgICAgICAgICZzZWxmLAo+ICsgICAgICAgIG5vdzogaTY0LAo+ICsgICAgICAgIGZp
bGVfYm91bmRhcnk6ICZzdHIsCj4gKyAgICAgICAgaHRtbF9ib3VuZGFyeTogJnN0ciwKPiArICAg
ICkgLT4gUmVzdWx0PFN0cmluZywgRXJyb3I+IHsKPiArICAgICAgICB1c2Ugc3RkOjpmbXQ6Oldy
aXRlOwo+ICsKPiArICAgICAgICBsZXQgbXV0IGhlYWRlciA9IFN0cmluZzo6bmV3KCk7Cj4gKwo+
ICsgICAgICAgIGxldCBlbmNvZGVkX3RvID0gaWYgc2VsZi50by5sZW4oKSA+IDEgJiYgc2VsZi5t
YXNrX3BhcnRpY2lwYW50cyB7Cj4gKyAgICAgICAgICAgIC8vIGlmIHRoZSByZWNlaXZlcnMgYXJl
IG1hc2tlZCwgd2Uga25vdyB0aGF0IHRoZXkgZG9uJ3QgbmVlZCB0byBiZSBlbmNvZGVkCj4gKyAg
ICAgICAgICAgIGZhbHNlCj4gKyAgICAgICAgfSBlbHNlIHsKPiArICAgICAgICAgICAgLy8gY2hl
Y2sgaWYgdGhlcmUgaXMgYSByZWNpcGllbnQgdGhhdCBuZWVkcyBlbmNvZGluZwo+ICsgICAgICAg
ICAgICBzZWxmLnRvLml0ZXIoKS5hbnkofHJ8ICFyLmlzX2FzY2lpKCkpCj4gKyAgICAgICAgfTsK
PiArCj4gKyAgICAgICAgaWYgIXNlbGYuYXR0YWNobWVudHMuaXNfZW1wdHkoKSB7Cj4gKyAgICAg
ICAgICAgIGhlYWRlci5wdXNoX3N0cigiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7XG4i
KTsKPiArICAgICAgICAgICAgd3JpdGVsbiEoaGVhZGVyLCAiXHRib3VuZGFyeT1cIntmaWxlX2Jv
dW5kYXJ5fVwiIik/Owo+ICsgICAgICAgICAgICBoZWFkZXIucHVzaF9zdHIoIk1JTUUtVmVyc2lv
bjogMS4wXG4iKTsKPiArICAgICAgICB9IGVsc2UgaWYgc2VsZi5ib2R5X2h0bWwuaXNfc29tZSgp
IHsKPiArICAgICAgICAgICAgaGVhZGVyLnB1c2hfc3RyKCJDb250ZW50LVR5cGU6IG11bHRpcGFy
dC9hbHRlcm5hdGl2ZTtcbiIpOwo+ICsgICAgICAgICAgICB3cml0ZWxuIShoZWFkZXIsICJcdGJv
dW5kYXJ5PVwie2h0bWxfYm91bmRhcnl9XCIiKT87Cj4gKyAgICAgICAgICAgIGhlYWRlci5wdXNo
X3N0cigiTUlNRS1WZXJzaW9uOiAxLjBcbiIpOwo+ICsgICAgICAgIH0gZWxzZSBpZiAhc2VsZi5z
dWJqZWN0LmlzX2FzY2lpKCkgfHwgIXNlbGYubWFpbF9hdXRob3IuaXNfYXNjaWkoKSB8fCBlbmNv
ZGVkX3RvIHsKPiArICAgICAgICAgICAgaGVhZGVyLnB1c2hfc3RyKCJNSU1FLVZlcnNpb246IDEu
MFxuIik7Cj4gKyAgICAgICAgfQo+ICsKPiArICAgICAgICBpZiAhc2VsZi5zdWJqZWN0LmlzX2Fz
Y2lpKCkgewo+ICsgICAgICAgICAgICB3cml0ZWxuISgKPiArICAgICAgICAgICAgICAgIGhlYWRl
ciwKPiArICAgICAgICAgICAgICAgICJTdWJqZWN0OiA9P3V0Zi04P0I/e30/PSIsCj4gKyAgICAg
ICAgICAgICAgICBiYXNlNjQ6OmVuY29kZSgmc2VsZi5zdWJqZWN0KQo+ICsgICAgICAgICAgICAp
PzsKPiArICAgICAgICB9IGVsc2Ugewo+ICsgICAgICAgICAgICB3cml0ZWxuIShoZWFkZXIsICJT
dWJqZWN0OiB7fSIsIHNlbGYuc3ViamVjdCk/Owo+ICsgICAgICAgIH07Cj4gKwo+ICsgICAgICAg
IGlmICFzZWxmLm1haWxfYXV0aG9yLmlzX2FzY2lpKCkgewo+ICsgICAgICAgICAgICB3cml0ZWxu
ISgKPiArICAgICAgICAgICAgICAgIGhlYWRlciwKPiArICAgICAgICAgICAgICAgICJGcm9tOiA9
P3V0Zi04P0I/e30/PSA8e30+IiwKPiArICAgICAgICAgICAgICAgIGJhc2U2NDo6ZW5jb2RlKCZz
ZWxmLm1haWxfYXV0aG9yKSwKPiArICAgICAgICAgICAgICAgIHNlbGYubWFpbF9mcm9tCj4gKyAg
ICAgICAgICAgICk/Owo+ICsgICAgICAgIH0gZWxzZSB7Cj4gKyAgICAgICAgICAgIHdyaXRlbG4h
KGhlYWRlciwgIkZyb206IHt9IDx7fT4iLCBzZWxmLm1haWxfYXV0aG9yLCBzZWxmLm1haWxfZnJv
bSk/Owo+ICsgICAgICAgIH0KPiArCj4gKyAgICAgICAgbGV0IHRvID0gaWYgc2VsZi50by5sZW4o
KSA+IDEgJiYgc2VsZi5tYXNrX3BhcnRpY2lwYW50cyB7Cj4gKyAgICAgICAgICAgIC8vIGRvbid0
IGRpc2Nsb3NlIGFsbCByZWNpcGllbnRzIGlmIHRoZSBtYWlsIGdvZXMgb3V0IHRvIG11bHRpcGxl
Cj4gKyAgICAgICAgICAgIGxldCByZWNpcGllbnQgPSBSZWNpcGllbnQgewo+ICsgICAgICAgICAg
ICAgICAgbmFtZTogU29tZSgiVW5kaXNjbG9zZWQiLnRvX3N0cmluZygpKSwKPiArICAgICAgICAg
ICAgICAgIGVtYWlsOiAibm9yZXBseSIudG9fc3RyaW5nKCksCj4gKyAgICAgICAgICAgIH07Cj4g
Kwo+ICsgICAgICAgICAgICByZWNpcGllbnQuZm9ybWF0X3JlY2lwaWVudCgpCj4gKyAgICAgICAg
fSBlbHNlIHsKPiArICAgICAgICAgICAgc2VsZi50bwo+ICsgICAgICAgICAgICAgICAgLml0ZXIo
KQo+ICsgICAgICAgICAgICAgICAgLm1hcChSZWNpcGllbnQ6OmZvcm1hdF9yZWNpcGllbnQpCj4g
KyAgICAgICAgICAgICAgICAuY29sbGVjdDo6PFZlYzxTdHJpbmc+PigpCj4gKyAgICAgICAgICAg
ICAgICAuam9pbigiLCAiKQo+ICsgICAgICAgIH07Cj4gKwo+ICsgICAgICAgIHdyaXRlbG4hKGhl
YWRlciwgIlRvOiB7dG99Iik/Owo+ICsKPiArICAgICAgICBsZXQgcmZjMjgyMl9kYXRlID0gcHJv
eG1veF90aW1lOjplcG9jaF90b19yZmMyODIyKG5vdykKPiArICAgICAgICAgICAgLndpdGhfY29u
dGV4dCh8fCAiY291bGQgbm90IGNvbnZlcnQgZXBvY2ggdG8gcmZjMjgyMiBkYXRlIik/Owo+ICsg
ICAgICAgIHdyaXRlbG4hKGhlYWRlciwgIkRhdGU6IHtyZmMyODIyX2RhdGV9Iik/Owo+ICsgICAg
ICAgIGhlYWRlci5wdXNoX3N0cigiQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkO1xuIik7
Cj4gKwo+ICsgICAgICAgIE9rKGhlYWRlcikKPiArICAgIH0KPiArCj4gKyAgICBmbiBmb3JtYXRf
Ym9keSgmc2VsZiwgZmlsZV9ib3VuZGFyeTogJnN0ciwgaHRtbF9ib3VuZGFyeTogJnN0cikgLT4g
UmVzdWx0PFN0cmluZywgRXJyb3I+IHsKPiArICAgICAgICB1c2Ugc3RkOjpmbXQ6OldyaXRlOwo+
ICsKPiArICAgICAgICBsZXQgbXV0IGJvZHkgPSBTdHJpbmc6Om5ldygpOwo+ICsKPiArICAgICAg
ICBpZiBzZWxmLmJvZHlfaHRtbC5pc19zb21lKCkgJiYgIXNlbGYuYXR0YWNobWVudHMuaXNfZW1w
dHkoKSB7Cj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIlxuVGhpcyBpcyBhIG11bHRpLXBh
cnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC5cbiIpOwo+ICsgICAgICAgICAgICB3cml0ZWxuIShi
b2R5LCAiXG4tLXtmaWxlX2JvdW5kYXJ5fSIpPzsKPiArICAgICAgICAgICAgd3JpdGVsbiEoCj4g
KyAgICAgICAgICAgICAgICBib2R5LAo+ICsgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZTog
bXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT1cIntodG1sX2JvdW5kYXJ5fVwiIgo+ICsg
ICAgICAgICAgICApPzsKPiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiTUlNRS1WZXJzaW9u
OiAxLjBcbiIpOwo+ICsgICAgICAgICAgICB3cml0ZWxuIShib2R5LCAiXG4tLXtodG1sX2JvdW5k
YXJ5fSIpPzsKPiArICAgICAgICB9IGVsc2UgaWYgc2VsZi5ib2R5X2h0bWwuaXNfc29tZSgpIHsK
PiArICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiXG5UaGlzIGlzIGEgbXVsdGktcGFydCBtZXNz
YWdlIGluIE1JTUUgZm9ybWF0LlxuIik7Cj4gKyAgICAgICAgICAgIHdyaXRlbG4hKGJvZHksICJc
bi0te2h0bWxfYm91bmRhcnl9Iik/Owo+ICsgICAgICAgIH0gZWxzZSBpZiBzZWxmLmJvZHlfaHRt
bC5pc19ub25lKCkgJiYgIXNlbGYuYXR0YWNobWVudHMuaXNfZW1wdHkoKSB7Cj4gKyAgICAgICAg
ICAgIGJvZHkucHVzaF9zdHIoIlxuVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1F
IGZvcm1hdC5cbiIpOwo+ICsgICAgICAgICAgICB3cml0ZWxuIShib2R5LCAiXG4tLXtmaWxlX2Jv
dW5kYXJ5fSIpPzsKPiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIGJvZHkucHVzaF9zdHIoIkNv
bnRlbnQtVHlwZTogdGV4dC9wbGFpbjtcbiIpOwo+ICsgICAgICAgIGJvZHkucHVzaF9zdHIoIlx0
Y2hhcnNldD1cIlVURi04XCJcbiIpOwo+ICsgICAgICAgIGJvZHkucHVzaF9zdHIoIkNvbnRlbnQt
VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcblxuIik7Cj4gKyAgICAgICAgYm9keS5wdXNoX3N0cigm
c2VsZi5ib2R5X3R4dCk7Cj4gKwo+ICsgICAgICAgIGlmIGxldCBTb21lKGh0bWwpID0gJnNlbGYu
Ym9keV9odG1sIHsKPiArICAgICAgICAgICAgd3JpdGVsbiEoYm9keSwgIlxuLS17aHRtbF9ib3Vu
ZGFyeX0iKT87Cj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIkNvbnRlbnQtVHlwZTogdGV4
dC9odG1sO1xuIik7Cj4gKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIlx0Y2hhcnNldD1cIlVU
Ri04XCJcbiIpOwo+ICsgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCJDb250ZW50LVRyYW5zZmVy
LUVuY29kaW5nOiA4Yml0XG5cbiIpOwo+ICsgICAgICAgICAgICBib2R5LnB1c2hfc3RyKGh0bWwp
Owo+ICsgICAgICAgICAgICB3cml0ZSEoYm9keSwgIlxuLS17aHRtbF9ib3VuZGFyeX0tLSIpPzsK
PiArICAgICAgICB9Cj4gKwo+ICsgICAgICAgIE9rKGJvZHkpCj4gKyAgICB9Cj4gK30KPiArCj4g
KyNbY2ZnKHRlc3QpXQo+ICttb2QgdGVzdCB7Cj4gKyAgICB1c2Ugc3VwZXI6Oio7Cj4gKwo+ICsg
ICAgI1t0ZXN0XQo+ICsgICAgZm4gZW1haWxfd2l0aG91dF9yZWNpcGllbnRzX2ZhaWxzKCkgewo+
ICsgICAgICAgIGxldCByZXN1bHQgPSBNYWlsOjpuZXcoIlNlbmRlciIsICJtYWlsQGV4YW1wbGUu
Y29tIiwgImhpIiwgImJvZHkiKS5zZW5kKCk7Cj4gKyAgICAgICAgYXNzZXJ0IShyZXN1bHQuaXNf
ZXJyKCkpOwo+ICsgICAgfQo+ICsKPiArICAgICNbdGVzdF0KPiArICAgIGZuIHNpbXBsZV9hc2Np
aV90ZXh0X21haWwoKSB7Cj4gKyAgICAgICAgbGV0IG1haWwgPSBNYWlsOjpuZXcoCj4gKyAgICAg
ICAgICAgICJTZW5kZXIgTmFtZSIsCj4gKyAgICAgICAgICAgICJtYWlsZnJvbUBleGFtcGxlLmNv
bSIsCj4gKyAgICAgICAgICAgICJTdWJqZWN0IExpbmUiLAo+ICsgICAgICAgICAgICAiVGhpcyBp
cyBqdXN0IGFzY2lpIHRleHQuXG5Ob3RoaW5nIHRvbyBzcGVjaWFsLiIsCj4gKyAgICAgICAgKQo+
ICsgICAgICAgIC53aXRoX3JlY2lwaWVudF9hbmRfbmFtZSgiUmVjZWl2ZXIgTmFtZSIsICJyZWNl
aXZlckBleGFtcGxlLmNvbSIpOwo+ICsKPiArICAgICAgICBsZXQgYm9keSA9IG1haWwuZm9ybWF0
X21haWwoMCkuZXhwZWN0KCJjb3VsZCBub3QgZm9ybWF0IG1haWwiKTsKPiArCj4gKyAgICAgICAg
YXNzZXJ0X2VxISgKPiArICAgICAgICAgICAgYm9keSwKPiArICAgICAgICAgICAgciMiU3ViamVj
dDogU3ViamVjdCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1lIDxtYWlsZnJvbUBleGFtcGxlLmNv
bT4KPiArVG86IFJlY2VpdmVyIE5hbWUgPHJlY2VpdmVyQGV4YW1wbGUuY29tPgo+ICtEYXRlOiBU
aHUsIDAxIEphbiAxOTcwIDAxOjAwOjAwICswMTAwCj4gK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdl
bmVyYXRlZDsKPiArQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0iVVRGLTgi
Cj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gK1RoaXMgaXMganVzdCBh
c2NpaSB0ZXh0Lgo+ICtOb3RoaW5nIHRvbyBzcGVjaWFsLiIjCj4gKyAgICAgICAgKQo+ICsgICAg
fQo+ICsKPiArICAgICNbdGVzdF0KPiArICAgIGZuIG11bHRpcGxlX3JlY2VpdmVyX21hc2tlZCgp
IHsKPiArICAgICAgICBsZXQgbWFpbCA9IE1haWw6Om5ldygKPiArICAgICAgICAgICAgIlNlbmRl
ciBOYW1lIiwKPiArICAgICAgICAgICAgIm1haWxmcm9tQGV4YW1wbGUuY29tIiwKPiArICAgICAg
ICAgICAgIlN1YmplY3QgTGluZSIsCj4gKyAgICAgICAgICAgICJUaGlzIGlzIGp1c3QgYXNjaWkg
dGV4dC5cbk5vdGhpbmcgdG9vIHNwZWNpYWwuIiwKPiArICAgICAgICApCj4gKyAgICAgICAgLndp
dGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZlciBOYW1lIiwgInJlY2VpdmVyQGV4YW1wbGUu
Y29tIikKPiArICAgICAgICAud2l0aF9yZWNpcGllbnQoInR3b0BleGFtcGxlLmNvbSIpCj4gKyAg
ICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJtw6R4IG3DvHN0ZXJtw6RubiIsICJtbUBl
eGFtcGxlLmNvbSIpOwo+ICsKPiArICAgICAgICBsZXQgYm9keSA9IG1haWwuZm9ybWF0X21haWwo
MCkuZXhwZWN0KCJjb3VsZCBub3QgZm9ybWF0IG1haWwiKTsKPiArCj4gKyAgICAgICAgYXNzZXJ0
X2VxISgKPiArICAgICAgICAgICAgYm9keSwKPiArICAgICAgICAgICAgciMiU3ViamVjdDogU3Vi
amVjdCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1lIDxtYWlsZnJvbUBleGFtcGxlLmNvbT4KPiAr
VG86IFVuZGlzY2xvc2VkIDxub3JlcGx5Pgo+ICtEYXRlOiBUaHUsIDAxIEphbiAxOTcwIDAxOjAw
OjAwICswMTAwCj4gK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVyYXRlZDsKPiArQ29udGVudC1U
eXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXIt
RW5jb2Rpbmc6IDhiaXQKPiArCj4gK1RoaXMgaXMganVzdCBhc2NpaSB0ZXh0Lgo+ICtOb3RoaW5n
IHRvbyBzcGVjaWFsLiIjCj4gKyAgICAgICAgKQo+ICsgICAgfQo+ICsKPiArICAgICNbdGVzdF0K
PiArICAgIGZuIG11bHRpcGxlX3JlY2VpdmVyX3VubWFza2VkKCkgewo+ICsgICAgICAgIGxldCBt
YWlsID0gTWFpbDo6bmV3KAo+ICsgICAgICAgICAgICAiU2VuZGVyIE5hbWUiLAo+ICsgICAgICAg
ICAgICAibWFpbGZyb21AZXhhbXBsZS5jb20iLAo+ICsgICAgICAgICAgICAiU3ViamVjdCBMaW5l
IiwKPiArICAgICAgICAgICAgIlRoaXMgaXMganVzdCBhc2NpaSB0ZXh0LlxuTm90aGluZyB0b28g
c3BlY2lhbC4iLAo+ICsgICAgICAgICkKPiArICAgICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25h
bWUoIlJlY2VpdmVyIE5hbWUiLCAicmVjZWl2ZXJAZXhhbXBsZS5jb20iKQo+ICsgICAgICAgIC53
aXRoX3JlY2lwaWVudCgidHdvQGV4YW1wbGUuY29tIikKPiArICAgICAgICAud2l0aF9yZWNpcGll
bnRfYW5kX25hbWUoIm3DpHggbcO8c3Rlcm3DpG5uIiwgIm1tQGV4YW1wbGUuY29tIikKPiArICAg
ICAgICAud2l0aF91bm1hc2tlZF9yZWNpcGllbnRzKCk7Cj4gKwo+ICsgICAgICAgIGxldCBib2R5
ID0gbWFpbC5mb3JtYXRfbWFpbCgwKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+
ICsKPiArICAgICAgICBhc3NlcnRfZXEhKAo+ICsgICAgICAgICAgICBib2R5LAo+ICsgICAgICAg
ICAgICByIyJNSU1FLVZlcnNpb246IDEuMAo+ICtTdWJqZWN0OiBTdWJqZWN0IExpbmUKPiArRnJv
bTogU2VuZGVyIE5hbWUgPG1haWxmcm9tQGV4YW1wbGUuY29tPgo+ICtUbzogUmVjZWl2ZXIgTmFt
ZSA8cmVjZWl2ZXJAZXhhbXBsZS5jb20+LCB0d29AZXhhbXBsZS5jb20sID0/dXRmLTg/Qj9iY09r
ZUNCdHc3eHpkR1Z5YmNPa2JtND0/PSA8bW1AZXhhbXBsZS5jb20+Cj4gK0RhdGU6IFRodSwgMDEg
SmFuIDE5NzAgMDE6MDA6MDAgKzAxMDAKPiArQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVk
Owo+ICtDb250ZW50LVR5cGU6IHRleHQvcGxhaW47Cj4gKwljaGFyc2V0PSJVVEYtOCIKPiArQ29u
dGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAo+ICsKPiArVGhpcyBpcyBqdXN0IGFzY2lpIHRl
eHQuCj4gK05vdGhpbmcgdG9vIHNwZWNpYWwuIiMKPiArICAgICAgICApCj4gKyAgICB9Cj4gKwo+
ICsgICAgI1t0ZXN0XQo+ICsgICAgZm4gc2ltcGxlX3V0ZjhfdGV4dF9tYWlsKCkgewo+ICsgICAg
ICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAo+ICsgICAgICAgICAgICAiVVRGLTggU2VuZGVyIE5h
bWUg8J+TpyIsCj4gKyAgICAgICAgICAgICJkaWZmZXJlbnRmcm9tQGV4YW1wbGUuY29tIiwKPiAr
ICAgICAgICAgICAgIlN1YmplY3QgTGluZSDwn6eRIiwKPiArICAgICAgICAgICAgIlRoaXMgdXRm
LTggZW1haWwgc2hvdWxkIGhhbmRsZSBlbW9qaXNcbvCfp5Hwn5OnXG5hbmQgd2VpcmQgZ2VybWFu
IGNoYXJhY3RlcnM6IMO2w6TDvMOfXG5hbmQgbW9yZS4iLAo+ICsgICAgICAgICkKPiArICAgICAg
ICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIlJlY2VpdmVyIE5hbWXwn5OpIiwgInJlY2VpdmVy
QGV4YW1wbGUuY29tIik7Cj4gKwo+ICsgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFp
bCgxNzMyODA2MjUxKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+ICsKPiArICAg
ICAgICBhc3NlcnRfZXEhKAo+ICsgICAgICAgICAgICBib2R5LAo+ICsgICAgICAgICAgICByIyJN
SU1FLVZlcnNpb246IDEuMAo+ICtTdWJqZWN0OiA9P3V0Zi04P0I/VTNWaWFtVmpkQ0JNYVc1bElQ
Q2ZwNUU9Pz0KPiArRnJvbTogPT91dGYtOD9CP1ZWUkdMVGdnVTJWdVpHVnlJRTVoYldVZzhKK1Rw
dz09Pz0gPGRpZmZlcmVudGZyb21AZXhhbXBsZS5jb20+Cj4gK1RvOiA9P3V0Zi04P0I/VW1WalpX
bDJaWElnVG1GdFpmQ2ZrNms9Pz0gPHJlY2VpdmVyQGV4YW1wbGUuY29tPgo+ICtEYXRlOiBUaHUs
IDI4IE5vdiAyMDI0IDE2OjA0OjExICswMTAwCj4gK0F1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVy
YXRlZDsKPiArQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4g
K0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gK1RoaXMgdXRmLTggZW1haWwg
c2hvdWxkIGhhbmRsZSBlbW9qaXMKPiAr8J+nkfCfk6cKPiArYW5kIHdlaXJkIGdlcm1hbiBjaGFy
YWN0ZXJzOiDDtsOkw7zDnwo+ICthbmQgbW9yZS4iIwo+ICsgICAgICAgICkKPiArICAgIH0KPiAr
Cj4gKyAgICAjW3Rlc3RdCj4gKyAgICBmbiBtdWx0aXBhcnRfaHRtbF9hbHRlcm5hdGl2ZSgpIHsK
PiArICAgICAgICBsZXQgbWFpbCA9IE1haWw6Om5ldygKPiArICAgICAgICAgICAgIlNlbmRlciBO
YW1lIiwKPiArICAgICAgICAgICAgImZyb21AZXhhbXBsZS5jb20iLAo+ICsgICAgICAgICAgICAi
U3ViamVjdCBMaW5lIiwKPiArICAgICAgICAgICAgIkxvcmVtIElwc3VtIERvbG9yIFNpdFxuQW1l
dCIsCj4gKyAgICAgICAgKQo+ICsgICAgICAgIC53aXRoX3JlY2lwaWVudCgicmVjZWl2ZXJAZXhh
bXBsZS5jb20iKQo+ICsgICAgICAgIC53aXRoX2h0bWxfYWx0KCI8aHRtbCBsYW5nPVwiZGUtYXRc
Ij48aGVhZD48L2hlYWQ+PGJvZHk+XG5cdDxwcmU+XG5cdFx0TG9yZW0gSXBzdW0gRG9sb3IgU2l0
IEFtZXRcblx0PC9wcmU+XG48L2JvZHk+PC9odG1sPiIpOwo+ICsgICAgICAgIGxldCBib2R5ID0g
bWFpbC5mb3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFp
bCIpOwo+ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAgICAgICAgICAgIGJvZHksCj4gKyAgICAg
ICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOwo+ICsJYm91bmRh
cnk9Ii0tLS1fPV9OZXh0UGFydF8wMDJfMTczMjgwNjI1MSIKPiArTUlNRS1WZXJzaW9uOiAxLjAK
PiArU3ViamVjdDogU3ViamVjdCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1lIDxmcm9tQGV4YW1w
bGUuY29tPgo+ICtUbzogcmVjZWl2ZXJAZXhhbXBsZS5jb20KPiArRGF0ZTogVGh1LCAyOCBOb3Yg
MjAyNCAxNjowNDoxMSArMDEwMAo+ICtBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWQ7Cj4g
Kwo+ICtUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0Lgo+ICsKPiAr
LS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEKPiArQ29udGVudC1UeXBlOiB0ZXh0L3Bs
YWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi
aXQKPiArCj4gK0xvcmVtIElwc3VtIERvbG9yIFNpdAo+ICtBbWV0Cj4gKy0tLS0tLV89X05leHRQ
YXJ0XzAwMl8xNzMyODA2MjUxCj4gK0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOwo+ICsJY2hhcnNl
dD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gKzxodG1s
IGxhbmc9ImRlLWF0Ij48aGVhZD48L2hlYWQ+PGJvZHk+Cj4gKwk8cHJlPgo+ICsJCUxvcmVtIElw
c3VtIERvbG9yIFNpdCBBbWV0Cj4gKwk8L3ByZT4KPiArPC9ib2R5PjwvaHRtbD4KPiArLS0tLS0t
Xz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEtLSIjCj4gKyAgICAgICAgKQo+ICsgICAgfQo+ICsK
PiArICAgICNbdGVzdF0KPiArICAgIGZuIG11bHRpcGFydF9wbGFpbl90ZXh0X2F0dGFjaG1lbnRz
X21peGVkKCkgewo+ICsgICAgICAgIGxldCBiaW46IFt1ODsgNjJdID0gWwo+ICsgICAgICAgICAg
ICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAw
eGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAw
eGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVm
LCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRl
LCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+
ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAw
eGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAw
eGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLAo+ICsgICAgICAgIF07Cj4gKwo+ICsg
ICAgICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAo+ICsgICAgICAgICAgICAiU2VuZGVyIE5hbWUi
LAo+ICsgICAgICAgICAgICAiZnJvbUBleGFtcGxlLmNvbSIsCj4gKyAgICAgICAgICAgICJTdWJq
ZWN0IExpbmUiLAo+ICsgICAgICAgICAgICAiTG9yZW0gSXBzdW0gRG9sb3IgU2l0XG5BbWV0IiwK
PiArICAgICAgICApCj4gKyAgICAgICAgLndpdGhfcmVjaXBpZW50X2FuZF9uYW1lKCJSZWNlaXZl
ciBOYW1lIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIikKPiArICAgICAgICAud2l0aF9hdHRhY2ht
ZW50KCJkZWFkYmVlZi5iaW4iLCAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgJmJpbik7Cj4g
Kwo+ICsgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBl
Y3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwo+ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAg
ICAgICAgICAgIGJvZHksCj4gKyAgICAgICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0
L21peGVkOwo+ICsJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MSIKPiAr
TUlNRS1WZXJzaW9uOiAxLjAKPiArU3ViamVjdDogU3ViamVjdCBMaW5lCj4gK0Zyb206IFNlbmRl
ciBOYW1lIDxmcm9tQGV4YW1wbGUuY29tPgo+ICtUbzogUmVjZWl2ZXIgTmFtZSA8cmVjZWl2ZXJA
ZXhhbXBsZS5jb20+Cj4gK0RhdGU6IFRodSwgMjggTm92IDIwMjQgMTY6MDQ6MTEgKzAxMDAKPiAr
QXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOwo+ICsKPiArVGhpcyBpcyBhIG11bHRpLXBh
cnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KPiArCj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMV8x
NzMyODA2MjUxCj4gK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKPiArCWNoYXJzZXQ9IlVURi04
Igo+ICtDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0Cj4gKwo+ICtMb3JlbSBJcHN1bSBE
b2xvciBTaXQKPiArQW1ldAo+ICstLS0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MQo+ICtD
b250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgbmFtZT0iZGVhZGJlZWYuYmlu
Igo+ICtDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFtZT0iZGVhZGJlZWYu
YmluIjsgZmlsZW5hbWUqPVVURi04JydkZWFkYmVlZi5iaW4KPiArQ29udGVudC1UcmFuc2Zlci1F
bmNvZGluZzogYmFzZTY0Cj4gKwo+ICszcTIrNzk2dHZ1L2VyYjd2M3EzZXJiN3YzcTIrNzk2dHZ1
L2VyZDZ0dnUvZXJiN3YzcTIrNzk2dDNxMis3OTZ0dnUvZXJiN3YKPiArM3EyKzc5NnR2dTg9Cj4g
Ky0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxLS0iIwo+ICsgICAgICAgICkKPiArICAg
IH0KPiArCj4gKyAgICAjW3Rlc3RdCj4gKyAgICBmbiBtdWx0aXBhcnRfcGxhaW5fdGV4dF9odG1s
X2FsdGVybmF0aXZlX2F0dGFjaG1lbnRzKCkgewo+ICsgICAgICAgIGxldCBiaW46IFt1ODsgNjJd
ID0gWwo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAw
eGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAg
ICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRl
LCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFk
LCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAw
eGVmLCAweGRlLCAweGFkLAo+ICsgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAw
eGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFk
LAo+ICsgICAgICAgICAgICAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLAo+ICsg
ICAgICAgIF07Cj4gKwo+ICsgICAgICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAo+ICsgICAgICAg
ICAgICAiU2VuZGVyIE5hbWUiLAo+ICsgICAgICAgICAgICAiZnJvbUBleGFtcGxlLmNvbSIsCj4g
KyAgICAgICAgICAgICJTdWJqZWN0IExpbmUiLAo+ICsgICAgICAgICAgICAiTG9yZW0gSXBzdW0g
RG9sb3IgU2l0XG5BbWV0IiwKPiArICAgICAgICApCj4gKyAgICAgICAgLndpdGhfcmVjaXBpZW50
X2FuZF9uYW1lKCJSZWNlaXZlciBOYW1lIiwgInJlY2VpdmVyQGV4YW1wbGUuY29tIikKPiArICAg
ICAgICAud2l0aF9hdHRhY2htZW50KCJkZWFkYmVlZi5iaW4iLCAiYXBwbGljYXRpb24vb2N0ZXQt
c3RyZWFtIiwgJmJpbikKPiArICAgICAgICAud2l0aF9hdHRhY2htZW50KCLwn5CE8J+SgC5iaW4i
LCAiaW1hZ2UvYm1wIiwgJmJpbikKPiArICAgICAgICAud2l0aF9odG1sX2FsdCgiPGh0bWwgbGFu
Zz1cImRlLWF0XCI+PGhlYWQ+PC9oZWFkPjxib2R5PlxuXHQ8cHJlPlxuXHRcdExvcmVtIElwc3Vt
IERvbG9yIFNpdCBBbWV0XG5cdDwvcHJlPlxuPC9ib2R5PjwvaHRtbD4iKTsKPiArCj4gKyAgICAg
ICAgbGV0IGJvZHkgPSBtYWlsLmZvcm1hdF9tYWlsKDE3MzI4MDYyNTEpLmV4cGVjdCgiY291bGQg
bm90IGZvcm1hdCBtYWlsIik7Cj4gKwo+ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAgICAgICAg
ICAgIGJvZHksCj4gKyAgICAgICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVk
Owo+ICsJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFydF8wMDFfMTczMjgwNjI1MSIKPiArTUlNRS1W
ZXJzaW9uOiAxLjAKPiArU3ViamVjdDogU3ViamVjdCBMaW5lCj4gK0Zyb206IFNlbmRlciBOYW1l
IDxmcm9tQGV4YW1wbGUuY29tPgo+ICtUbzogUmVjZWl2ZXIgTmFtZSA8cmVjZWl2ZXJAZXhhbXBs
ZS5jb20+Cj4gK0RhdGU6IFRodSwgMjggTm92IDIwMjQgMTY6MDQ6MTEgKzAxMDAKPiArQXV0by1T
dWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOwo+ICsKPiArVGhpcyBpcyBhIG11bHRpLXBhcnQgbWVz
c2FnZSBpbiBNSU1FIGZvcm1hdC4KPiArCj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2
MjUxCj4gK0NvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlOyBib3VuZGFyeT0iLS0t
LV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUxIgo+ICtNSU1FLVZlcnNpb246IDEuMAo+ICsKPiAr
LS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEKPiArQ29udGVudC1UeXBlOiB0ZXh0L3Bs
YWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhi
aXQKPiArCj4gK0xvcmVtIElwc3VtIERvbG9yIFNpdAo+ICtBbWV0Cj4gKy0tLS0tLV89X05leHRQ
YXJ0XzAwMl8xNzMyODA2MjUxCj4gK0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOwo+ICsJY2hhcnNl
dD0iVVRGLTgiCj4gK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gKzxodG1s
IGxhbmc9ImRlLWF0Ij48aGVhZD48L2hlYWQ+PGJvZHk+Cj4gKwk8cHJlPgo+ICsJCUxvcmVtIElw
c3VtIERvbG9yIFNpdCBBbWV0Cj4gKwk8L3ByZT4KPiArPC9ib2R5PjwvaHRtbD4KPiArLS0tLS0t
Xz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEtLQo+ICstLS0tLS1fPV9OZXh0UGFydF8wMDFfMTcz
MjgwNjI1MQo+ICtDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgbmFtZT0i
ZGVhZGJlZWYuYmluIgo+ICtDb250ZW50LURpc3Bvc2l0aW9uOiBhdHRhY2htZW50OyBmaWxlbmFt
ZT0iZGVhZGJlZWYuYmluIjsgZmlsZW5hbWUqPVVURi04JydkZWFkYmVlZi5iaW4KPiArQ29udGVu
dC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0Cj4gKwo+ICszcTIrNzk2dHZ1L2VyYjd2M3EzZXJi
N3YzcTIrNzk2dHZ1L2VyZDZ0dnUvZXJiN3YzcTIrNzk2dDNxMis3OTZ0dnUvZXJiN3YKPiArM3Ey
Kzc5NnR2dTg9Cj4gKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCj4gK0NvbnRlbnQt
VHlwZTogaW1hZ2UvYm1wOyBuYW1lPSLwn5CE8J+SgC5iaW4iCj4gK0NvbnRlbnQtRGlzcG9zaXRp
b246IGF0dGFjaG1lbnQ7IGZpbGVuYW1lPSLwn5CE8J+SgC5iaW4iOyBmaWxlbmFtZSo9VVRGLTgn
JyVGMCU5RiU5MCU4NCVGMCU5RiU5MiU4MC5iaW4KPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogYmFzZTY0Cj4gKwo+ICszcTIrNzk2dHZ1L2VyYjd2M3EzZXJiN3YzcTIrNzk2dHZ1L2VyZDZ0
dnUvZXJiN3YzcTIrNzk2dDNxMis3OTZ0dnUvZXJiN3YKPiArM3EyKzc5NnR2dTg9Cj4gKy0tLS0t
LV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxLS0iIwo+ICsgICAgICAgICkKPiArICAgIH0KPiAr
Cj4gKyAgICAjW3Rlc3RdCj4gKyAgICBmbiB0ZXN0X2Zvcm1hdF9tYWlsX211bHRpcGFydCgpIHsK
PiArICAgICAgICBsZXQgbWFpbCA9IE1haWw6Om5ldygKPiArICAgICAgICAgICAgIkZyZWQgT29i
YXIiLAo+ICsgICAgICAgICAgICAiZm9vYmFyQGV4YW1wbGUuY29tIiwKPiArICAgICAgICAgICAg
IlRoaXMgaXMgdGhlIHN1YmplY3QiLAo+ICsgICAgICAgICAgICAiVGhpcyBpcyB0aGUgcGxhaW4g
Ym9keSIsCj4gKyAgICAgICAgKQo+ICsgICAgICAgIC53aXRoX3JlY2lwaWVudF9hbmRfbmFtZSgi
VG9ueSBFc3QiLCAidGVzdEBleGFtcGxlLmNvbSIpCj4gKyAgICAgICAgLndpdGhfaHRtbF9hbHQo
Ijxib2R5PlRoaXMgaXMgdGhlIEhUTUwgYm9keTwvYm9keT4iKTsKPiArCj4gKyAgICAgICAgbGV0
IGJvZHkgPSBtYWlsLmZvcm1hdF9tYWlsKDE3MTg5Nzc4NTApLmV4cGVjdCgiY291bGQgbm90IGZv
cm1hdCBtYWlsIik7Cj4gKwo+ICsgICAgICAgIGFzc2VydF9lcSEoCj4gKyAgICAgICAgICAgIGJv
ZHksCj4gKyAgICAgICAgICAgIHIjIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZl
Owo+ICsJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFydF8wMDJfMTcxODk3Nzg1MCIKPiArTUlNRS1W
ZXJzaW9uOiAxLjAKPiArU3ViamVjdDogVGhpcyBpcyB0aGUgc3ViamVjdAo+ICtGcm9tOiBGcmVk
IE9vYmFyIDxmb29iYXJAZXhhbXBsZS5jb20+Cj4gK1RvOiBUb255IEVzdCA8dGVzdEBleGFtcGxl
LmNvbT4KPiArRGF0ZTogRnJpLCAyMSBKdW4gMjAyNCAxNTo1MDo1MCArMDIwMAo+ICtBdXRvLVN1
Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWQ7Cj4gKwo+ICtUaGlzIGlzIGEgbXVsdGktcGFydCBtZXNz
YWdlIGluIE1JTUUgZm9ybWF0Lgo+ICsKPiArLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MTg5Nzc4
NTAKPiArQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOwo+ICsJY2hhcnNldD0iVVRGLTgiCj4gK0Nv
bnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKPiArCj4gK1RoaXMgaXMgdGhlIHBsYWluIGJv
ZHkKPiArLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MTg5Nzc4NTAKPiArQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWw7Cj4gKwljaGFyc2V0PSJVVEYtOCIKPiArQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogOGJpdAo+ICsKPiArPGJvZHk+VGhpcyBpcyB0aGUgSFRNTCBib2R5PC9ib2R5Pgo+ICstLS0t
LS1fPV9OZXh0UGFydF8wMDJfMTcxODk3Nzg1MC0tIiMKPiArICAgICAgICApOwo+ICsgICAgfQo+
ICt9Cj4gLS0KPiAyLjM5LjUKCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1v
eC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8v
cGJzLWRldmVsCg==