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 [IPv6:2a01:7e0:0:424::9])
	by lore.proxmox.com (Postfix) with ESMTPS id 5F8BB1FF16F
	for <inbox@lore.proxmox.com>; Fri, 29 Nov 2024 11:53:43 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 913DF16B5F;
	Fri, 29 Nov 2024 11:53:45 +0100 (CET)
From: Shannon Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Date: Fri, 29 Nov 2024 11:53:18 +0100
Message-Id: <20241129105321.143877-1-s.sterz@proxmox.com>
X-Mailer: git-send-email 2.39.5
MIME-Version: 1.0
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
 SPF_HELO_NONE           0.001 SPF: HELO does not publish an SPF Record
 SPF_PASS               -0.001 SPF: sender matches SPF record
Subject: [pbs-devel] [PATCH proxmox 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>

YWRkIHRoZSBgcHJveG1veC1zZW5kbWFpbGAgY3JhdGUgdGhhdCBtYWtlcyBpdCBlYXNpZXIgdG8g
c2VuZCBtYWlscyB2aWEKdGhlIGBzZW5kbWFpbGAgdXRpbGl0eS4gZmVhdHVyZXMgaW5jbHVkZToK
Ci0gbXVsdGlwYXJ0L2FsdGVybmF0aXZlIHN1cHBvcnQgZm9yIGh0bWwrcGxhaW4gdGV4dCBtYWls
cwotIG11bGl0cGFydC9taXhlZCBzdXBwb3J0IGZvciBtYWlscyB3aXRoIGF0dGFjaG1lbnRzCi0g
YXV0b21hdGljIG5lc3Rpbmcgb2YgbXVsdGlwYXJ0L2FsdGVybmF0aXZlIGFuZCBtdWx0aXBhcnQv
bWl4ZWQgcGFydHMKLSBtYXNraW5nIHJlY2lwaWVudHMgdG8gYXZvaWQgZGlzY2xvc2luZyB0aGVt
IHRvIGV2ZXJ5b25lCi0gZW5jb2RpbmcgU3ViamVjdCwgVG8sIEZyb20sIGFuZCBhdHRhY2htZW50
IGZpbGUgbmFtZXMgY29ycmVjdGx5Ci0gYWRkaW5nIGFuIGBBdXRvLVN1Ym1pdHRlZGAgaGVhZGVy
IHRvIGF2b2lkIHRyaWdnZXJpbmcgYXV0b21hdGVkIG1haWxzCgphbHNvIGluY2x1ZGVzIHNldmVy
YWwgdGVzdHMgdG8gZW5zdXJlIHRoYXQgbWFpbHMgYXJlIGZvcm1hdHRlZApjb3JyZWN0bHkuCgpT
aWduZWQtb2ZmLWJ5OiBTaGFubm9uIFN0ZXJ6IDxzLnN0ZXJ6QHByb3htb3guY29tPgotLS0KIENh
cmdvLnRvbWwgICAgICAgICAgICAgICAgICB8ICAgMiArCiBwcm94bW94LXNlbmRtYWlsL0Nhcmdv
LnRvbWwgfCAgMTYgKwogcHJveG1veC1zZW5kbWFpbC9zcmMvbGliLnJzIHwgNjY0ICsrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA2ODIgaW5zZXJ0
aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtc2VuZG1haWwvQ2FyZ28udG9tbAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gtc2VuZG1haWwvc3JjL2xpYi5ycwoKZGlmZiAtLWdp
dCBhL0NhcmdvLnRvbWwgYi9DYXJnby50b21sCmluZGV4IDg0ZmJlOTc5Li5iNjJmY2Q1MCAxMDA2
NDQKLS0tIGEvQ2FyZ28udG9tbAorKysgYi9DYXJnby50b21sCkBAIC0zMyw2ICszMyw3IEBAIG1l
bWJlcnMgPSBbCiAgICAgInByb3htb3gtcnJkLWFwaS10eXBlcyIsCiAgICAgInByb3htb3gtc2No
ZW1hIiwKICAgICAicHJveG1veC1zZWN0aW9uLWNvbmZpZyIsCisgICAgInByb3htb3gtc2VuZG1h
aWwiLAogICAgICJwcm94bW94LXNlcmRlIiwKICAgICAicHJveG1veC1zaGFyZWQtY2FjaGUiLAog
ICAgICJwcm94bW94LXNoYXJlZC1tZW1vcnkiLApAQCAtMTM4LDYgKzEzOSw3IEBAIHByb3htb3gt
cmVzdC1zZXJ2ZXIgPSB7IHZlcnNpb24gPSAiMC44LjAiLCBwYXRoID0gInByb3htb3gtcmVzdC1z
ZXJ2ZXIiIH0KIHByb3htb3gtcm91dGVyID0geyB2ZXJzaW9uID0gIjMuMC4wIiwgcGF0aCA9ICJw
cm94bW94LXJvdXRlciIgfQogcHJveG1veC1zY2hlbWEgPSB7IHZlcnNpb24gPSAiMy4xLjIiLCBw
YXRoID0gInByb3htb3gtc2NoZW1hIiB9CiBwcm94bW94LXNlY3Rpb24tY29uZmlnID0geyB2ZXJz
aW9uID0gIjIuMS4wIiwgcGF0aCA9ICJwcm94bW94LXNlY3Rpb24tY29uZmlnIiB9Citwcm94bW94
LXNlbmRtYWlsID0geyB2ZXJzaW9uID0gIjAuMS4wIiwgcGF0aCA9ICJwcm94bW94LXNlbmRtYWls
IiB9CiBwcm94bW94LXNlcmRlID0geyB2ZXJzaW9uID0gIjAuMS4xIiwgcGF0aCA9ICJwcm94bW94
LXNlcmRlIiwgZmVhdHVyZXMgPSBbICJzZXJkZV9qc29uIiBdIH0KIHByb3htb3gtc2hhcmVkLW1l
bW9yeSA9IHsgdmVyc2lvbiA9ICIwLjMuMCIsIHBhdGggPSAicHJveG1veC1zaGFyZWQtbWVtb3J5
IiB9CiBwcm94bW94LXNvcnRhYmxlLW1hY3JvID0geyB2ZXJzaW9uID0gIjAuMS4zIiwgcGF0aCA9
ICJwcm94bW94LXNvcnRhYmxlLW1hY3JvIiB9CmRpZmYgLS1naXQgYS9wcm94bW94LXNlbmRtYWls
L0NhcmdvLnRvbWwgYi9wcm94bW94LXNlbmRtYWlsL0NhcmdvLnRvbWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAuLjc5MGIzMjRiCi0tLSAvZGV2L251bGwKKysrIGIvcHJveG1v
eC1zZW5kbWFpbC9DYXJnby50b21sCkBAIC0wLDAgKzEsMTYgQEAKK1twYWNrYWdlXQorbmFtZSA9
ICJwcm94bW94LXNlbmRtYWlsIgordmVyc2lvbiA9ICIwLjEuMCIKK2F1dGhvcnMud29ya3NwYWNl
ID0gdHJ1ZQorZWRpdGlvbi53b3Jrc3BhY2UgPSB0cnVlCitsaWNlbnNlLndvcmtzcGFjZSA9IHRy
dWUKK3JlcG9zaXRvcnkud29ya3NwYWNlID0gdHJ1ZQoraG9tZXBhZ2Uud29ya3NwYWNlID0gdHJ1
ZQorZXhjbHVkZS53b3Jrc3BhY2UgPSB0cnVlCitydXN0LXZlcnNpb24ud29ya3NwYWNlID0gdHJ1
ZQorCitbZGVwZW5kZW5jaWVzXQorYW55aG93ID0geyB3b3Jrc3BhY2UgPSB0cnVlIH0KK2Jhc2U2
NCA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CitwZXJjZW50LWVuY29kaW5nID0geyB3b3Jrc3BhY2Ug
PSB0cnVlIH0KK3Byb3htb3gtdGltZSA9IHsgd29ya3NwYWNlID0gdHJ1ZSB9CmRpZmYgLS1naXQg
YS9wcm94bW94LXNlbmRtYWlsL3NyYy9saWIucnMgYi9wcm94bW94LXNlbmRtYWlsL3NyYy9saWIu
cnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLmM5N2MzMTg2Ci0tLSAvZGV2
L251bGwKKysrIGIvcHJveG1veC1zZW5kbWFpbC9zcmMvbGliLnJzCkBAIC0wLDAgKzEsNjY0IEBA
CisvLyEKKy8vISBUaGlzIGxpYnJhcnkgaW1wbGVtZW50cyB0aGUgW2BNYWlsYF0gdHJhaXQgd2hp
Y2ggbWFrZXMgaXQgZWFzeSB0byBzZW5kIGVtYWlscyB3aXRoIGF0dGFjaG1lbnRzCisvLyEgYW5k
IGFsdGVybmF0aXZlIGh0bWwgcGFydHMgdG8gb25lIG9yIG11bHRpcGxlIHJlY2VpdmVycyB2aWEg
YGBzZW5kbWFpbGBgLgorLy8hCisKK3VzZSBzdGQ6OmlvOjpXcml0ZTsKK3VzZSBzdGQ6OnByb2Nl
c3M6OntDb21tYW5kLCBTdGRpb307CisKK3VzZSBhbnlob3c6OntiYWlsLCBDb250ZXh0LCBFcnJv
cn07Cit1c2UgcGVyY2VudF9lbmNvZGluZzo6e3V0ZjhfcGVyY2VudF9lbmNvZGUsIEFzY2lpU2V0
LCBDT05UUk9MU307CisKKy8vIENoYXJhY3RlcnMgaW4gdGhpcyBzZXQgd2lsbCBiZSBlbmNvZGVk
LCBzbyByZXByb2R1Y2UgdGhlIGludmVyc2Ugb2YgdGhlIHNldCBkZXNjcmliZWQgYnkgUkZDNTk4
NworLy8gU2VjdGlvbiAzLjIuMSBgYXR0ci1jaGFyYCwgYXMgdGhhdCBkZXNjcmliZXMgYWxsIGNo
YXJhY3RlcnMgdGhhdCAqKmRvbid0KiogbmVlZCBlbmNvZGluZzoKKy8vCisvLyBodHRwczovL2Rh
dGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL3JmYzU5ODcjc2VjdGlvbi0zLjIuMQorLy8KKy8v
IGBDT05UUk9MU2AgY29udGFpbnMgYWxsIGNvbnRyb2wgY2hhcmFjdGVycyAweDAwIC0gMHgxZiBh
bmQgMHg3ZiBhcyB3ZWxsIGFzIGFsbCBub24tYXNjaWkKKy8vIGNoYXJhY3RlcnMsIHNvIHdlIG5l
ZWQgdG8gYWRkIGFsbCBjaGFyYWN0ZXJzIGhlcmUgdGhhdCBhcmVuJ3QgZGVzY3JpYmVkIGluIGBh
dHRyLWNoYXJgIHRoYXQgYXJlCisvLyBpbiB0aGUgcmFuZ2UgMHgyMC0weDdlCitjb25zdCBSRkM1
OTg3U0VUOiAmQXNjaWlTZXQgPSAmQ09OVFJPTFMKKyAgICAuYWRkKGInICcpCisgICAgLmFkZChi
JyInKQorICAgIC5hZGQoYiclJykKKyAgICAuYWRkKGInJicpCisgICAgLmFkZChiJ1wnJykKKyAg
ICAuYWRkKGInKCcpCisgICAgLmFkZChiJyknKQorICAgIC5hZGQoYicqJykKKyAgICAuYWRkKGIn
LCcpCisgICAgLmFkZChiJy8nKQorICAgIC5hZGQoYic6JykKKyAgICAuYWRkKGInOycpCisgICAg
LmFkZChiJzwnKQorICAgIC5hZGQoYic9JykKKyAgICAuYWRkKGInPicpCisgICAgLmFkZChiJz8n
KQorICAgIC5hZGQoYidAJykKKyAgICAuYWRkKGInWycpCisgICAgLmFkZChiJ1xcJykKKyAgICAu
YWRkKGInXScpCisgICAgLmFkZChiJ3snKQorICAgIC5hZGQoYid9Jyk7CisKK3N0cnVjdCBSZWNp
cGllbnQgeworICAgIG5hbWU6IE9wdGlvbjxTdHJpbmc+LAorICAgIGVtYWlsOiBTdHJpbmcsCit9
CisKK3N0cnVjdCBBdHRhY2htZW50PCdhPiB7CisgICAgZmlsZW5hbWU6IFN0cmluZywKKyAgICBt
aW1lOiBTdHJpbmcsCisgICAgY29udGVudDogJidhIFt1OF0sCit9CisKK3B1YiBzdHJ1Y3QgTWFp
bDwnYT4geworICAgIG1haWxfYXV0aG9yOiBTdHJpbmcsCisgICAgbWFpbF9mcm9tOiBTdHJpbmcs
CisgICAgc3ViamVjdDogU3RyaW5nLAorICAgIHRvOiBWZWM8UmVjaXBpZW50PiwKKyAgICBib2R5
X3R4dDogU3RyaW5nLAorICAgIGJvZHlfaHRtbDogT3B0aW9uPFN0cmluZz4sCisgICAgYXR0YWNo
bWVudHM6IFZlYzxBdHRhY2htZW50PCdhPj4sCit9CisKK2ltcGw8J2E+IE1haWw8J2E+IHsKKyAg
ICAvLy8gQ3JlYXRlcyBhIG5ldyBtYWlsIHdpdGggYSBtYWlsIGF1dGhvciwgZnJvbSBhZGRyZXNz
LCBzdWJqZWN0IGxpbmUgYW5kIGEgcGxhaW4gdGV4dCBib2R5LgorICAgIC8vLworICAgIC8vLyBO
b3RlOiBJZiB0aGUgYXV0aG9yJ3MgbmFtZSBvciB0aGUgc3ViamVjdCBsaW5lIGNvbnRhaW5zIFVU
Ri04IGNoYXJhY3RlcnMgdGhleSB3aWxsIGJlCisgICAgLy8vIGFwcHJvcHJpYXRlbGx5IGVuY29k
ZWQuCisgICAgcHViIGZuIG5ldyhtYWlsX2F1dGhvcjogJnN0ciwgbWFpbF9mcm9tOiAmc3RyLCBz
dWJqZWN0OiAmc3RyLCBib2R5X3R4dDogJnN0cikgLT4gU2VsZiB7CisgICAgICAgIFNlbGYgewor
ICAgICAgICAgICAgbWFpbF9hdXRob3I6IG1haWxfYXV0aG9yLnRvX3N0cmluZygpLAorICAgICAg
ICAgICAgbWFpbF9mcm9tOiBtYWlsX2Zyb20udG9fc3RyaW5nKCksCisgICAgICAgICAgICBzdWJq
ZWN0OiBzdWJqZWN0LnRvX3N0cmluZygpLAorICAgICAgICAgICAgdG86IFZlYzo6bmV3KCksCisg
ICAgICAgICAgICBib2R5X3R4dDogYm9keV90eHQudG9fc3RyaW5nKCksCisgICAgICAgICAgICBi
b2R5X2h0bWw6IE5vbmUsCisgICAgICAgICAgICBhdHRhY2htZW50czogVmVjOjpuZXcoKSwKKyAg
ICAgICAgfQorICAgIH0KKworICAgIC8vLyBBZGRzIGEgcmVjaXBpZW50IHRvIHRoZSBtYWlsIHdp
dGhvdXQgc3BlY2lmeWluZyBhIG5hbWUgc2VwYXJhdGVseS4KKyAgICAvLy8KKyAgICAvLy8gTm90
ZTogTm8gZm9ybWF0dGluZyBvciBlbmNvZGluZyB3aWxsIGJlIGRvbmUgaGVyZSwgdGhlIHZhbHVl
IHdpbGwgYmUgcGFzc2VkIHRvIHRoZSBgVG86YAorICAgIC8vLyBoZWFkZXIgZGlyZWN0bHkuCisg
ICAgcHViIGZuIGFkZF9yZWNpcGllbnQoJm11dCBzZWxmLCBlbWFpbDogJnN0cikgeworICAgICAg
ICBzZWxmLnRvLnB1c2goUmVjaXBpZW50IHsKKyAgICAgICAgICAgIG5hbWU6IE5vbmUsCisgICAg
ICAgICAgICBlbWFpbDogZW1haWwudG9fc3RyaW5nKCksCisgICAgICAgIH0pOworICAgIH0KKwor
ICAgIC8vLyBCdWlsZGVyLXBhdHRlcm4gbWV0aG9kIHRvIGNvbnZlbmllbnRseSBhZGQgYSByZWNp
cGllbnQgdG8gYW4gZW1haWwgd2l0aG91dCBzcGVjaWZ5aW5nIGEKKyAgICAvLy8gbmFtZSBzZXBh
cmF0ZWx5LgorICAgIC8vLworICAgIC8vLyBOb3RlOiBObyBmb3JtYXR0aW5nIG9yIGVuY29kaW5n
IHdpbGwgYmUgZG9uZSBoZXJlLCB0aGUgdmFsdWUgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpg
CisgICAgLy8vIGhlYWRlciBkaXJlY3RseS4KKyAgICBwdWIgZm4gd2l0aF9yZWNpcGllbnQobXV0
IHNlbGYsIGVtYWlsOiAmc3RyKSAtPiBTZWxmIHsKKyAgICAgICAgc2VsZi5hZGRfcmVjaXBpZW50
KGVtYWlsKTsKKyAgICAgICAgc2VsZgorICAgIH0KKworICAgIC8vLyBBZGRzIGEgcmVjaXBpZW50
IHRvIHRoZSBtYWlsIHdpdGggYSBuYW1lLgorICAgIC8vLworICAgIC8vLyBOb3RlczoKKyAgICAv
Ly8KKyAgICAvLy8gLSBJZiB0aGUgbmFtZSBjb250YWlucyBVVEYtOCBjaGFyYWN0ZXJzIGl0IHdp
bGwgYmUgZW5jb2RlZC4gVGhlbiB0aGUgcG9zc2libHkgZW5jb2RlZCBuYW1lCisgICAgLy8vICAg
YW5kIG5vbi1lbmNvZGVkIGVtYWlsIGFkZHJlc3Mgd2lsbCBiZSBwYXNzZWQgdG8gdGhlIGBUbzpg
IGhlYWRlciBpbiB0aGlzIGZvcm1hdDoKKyAgICAvLy8gICBge2VuY29kZWRfbmFtZX0gPHtlbWFp
bH0+YAorICAgIC8vLyAtIElmIG11bHRpcGxlIHJlY2VpdmVycyBhcmUgc3BlY2lmaWVkLCB0aGV5
IHdpbGwgYmUgbWFza2VkIHNvIGFzIG5vdCB0byBkaXNjbG9zZSB0aGVtIHRvCisgICAgLy8vICAg
b3RoZXIgcmVjZWl2ZXJzLgorICAgIHB1YiBmbiBhZGRfcmVjaXBpZW50X2FuZF9uYW1lKCZtdXQg
c2VsZiwgbmFtZTogJnN0ciwgZW1haWw6ICZzdHIpIHsKKyAgICAgICAgc2VsZi50by5wdXNoKFJl
Y2lwaWVudCB7CisgICAgICAgICAgICBuYW1lOiBTb21lKG5hbWUudG9fc3RyaW5nKCkpLAorICAg
ICAgICAgICAgZW1haWw6IGVtYWlsLnRvX3N0cmluZygpLAorICAgICAgICB9KTsKKyAgICB9CisK
KyAgICAvLy8gQnVpbGRlci1zdHlsZSBtZXRob2QgdG8gY29udmVuaWVudGx5IGFkZCBhIHJlY2ll
cGllbnQgd2l0aCBhIG5hbWUgdG8gYW4gZW1haWwuCisgICAgLy8vCisgICAgLy8vIE5vdGVzOgor
ICAgIC8vLworICAgIC8vLyAtIElmIHRoZSBuYW1lIGNvbnRhaW5zIFVURi04IGNoYXJhY3RlcnMg
aXQgd2lsbCBiZSBlbmNvZGVkLiBUaGVuIHRoZSBwb3NzaWJseSBlbmNvZGVkIG5hbWUKKyAgICAv
Ly8gICBhbmQgbm9uLWVuY29kZWQgZW1haWwgYWRkcmVzcyB3aWxsIGJlIHBhc3NlZCB0byB0aGUg
YFRvOmAgaGVhZGVyIGluIHRoaXMgZm9ybWF0OgorICAgIC8vLyAgIGB7ZW5jb2RlZF9uYW1lfSA8
e2VtYWlsfT5gCisgICAgLy8vIC0gSWYgbXVsdGlwbGUgcmVjZWl2ZXJzIGFyZSBzcGVjaWZpZWQs
IHRoZXkgd2lsbCBiZSBtYXNrZWQgc28gYXMgbm90IHRvIGRpc2Nsb3NlIHRoZW0gdG8KKyAgICAv
Ly8gICBvdGhlciByZWNlaXZlcnMuCisgICAgcHViIGZuIHdpdGhfcmVjaXBpZW50X2FuZF9uYW1l
KG11dCBzZWxmLCBuYW1lOiAmc3RyLCBlbWFpbDogJnN0cikgLT4gU2VsZiB7CisgICAgICAgIHNl
bGYuYWRkX3JlY2lwaWVudF9hbmRfbmFtZShuYW1lLCBlbWFpbCk7CisgICAgICAgIHNlbGYKKyAg
ICB9CisKKyAgICAvLy8gQWRkcyBhbiBhdHRhY2htZW50IHdpdGggYSBzcGVjaWZpZWQgZmlsZSBu
YW1lIGFuZCBtaW1lLXR5cGUgdG8gYW4gZW1haWwuCisgICAgLy8vCisgICAgLy8vIE5vdGU6IEFk
ZGluZyBhdHRhY2hlbWVudHMgdHJpZ2dlcnMgYG11bHRpcGFydC9taXhlZGAgbW9kZS4KKyAgICBw
dWIgZm4gYWRkX2F0dGFjaG1lbnQoJm11dCBzZWxmLCBmaWxlbmFtZTogJnN0ciwgbWltZV90eXBl
OiAmc3RyLCBjb250ZW50OiAmJ2EgW3U4XSkgeworICAgICAgICBzZWxmLmF0dGFjaG1lbnRzLnB1
c2goQXR0YWNobWVudCB7CisgICAgICAgICAgICBmaWxlbmFtZTogZmlsZW5hbWUudG9fc3RyaW5n
KCksCisgICAgICAgICAgICBtaW1lOiBtaW1lX3R5cGUudG9fc3RyaW5nKCksCisgICAgICAgICAg
ICBjb250ZW50LAorICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLy8gQnVpbGRlci1zdHlsZSBt
ZXRob2QgdG8gY29udmVuaWVudGx5IGFkZCBhbiBhdHRhY2htZW50IHdpdGggYSBzcGVjaWZpYyBm
aWxlbmFtZSBhbmQKKyAgICAvLy8gbWltZS10eXBlIHRvIGFuIGVtYWlsLgorICAgIC8vLworICAg
IC8vLyBOb3RlOiBBZGRpbmcgYXR0YWNoZW1lbnRzIHRyaWdnZXJzIGBtdWx0aXBhcnQvbWl4ZWRg
IG1vZGUuCisgICAgcHViIGZuIHdpdGhfYXR0YWNobWVudChtdXQgc2VsZiwgZmlsZW5hbWU6ICZz
dHIsIG1pbWVfdHlwZTogJnN0ciwgY29udGVudDogJidhIFt1OF0pIC0+IFNlbGYgeworICAgICAg
ICBzZWxmLmFkZF9hdHRhY2htZW50KGZpbGVuYW1lLCBtaW1lX3R5cGUsIGNvbnRlbnQpOworICAg
ICAgICBzZWxmCisgICAgfQorCisgICAgLy8vIFNldCBhbiBhbHRlcm5hdGl2ZSBIVE1MIHBhcnQu
CisgICAgLy8vCisgICAgLy8vIE5vdGU6IFRoaXMgdHJpZ2dlcnMgYG11bHRpcGFydC9hbHRlcm5h
dGl2ZWAgbW9kZS4gSWYgYm90aCBhbiBIVE1MIHBhcnQgYW5kIGF0IGxlYXN0IG9uZQorICAgIC8v
LyBhdHRhY2hlbWVudCBhcmUgc3BlY2lmaWVkLCB0aGUgYG11bHRpcGFydC9hbHRlcm5hdGl2ZWAg
cGFydCB3aWxsIGJlIG5lc3RlZCB3aXRoaW4gdGhlIGZpcnN0CisgICAgLy8vIGBtdWx0aXBhcnQv
bWl4ZWRgIHBhcnQuIFRoaXMgc2hvdWxkIGVuc3VyZSB0aGF0IHRoZSBIVE1MIGlzIGRpc3BsYXll
ZCBwcm9wZXJseSBieSBjbGllbnQncworICAgIC8vLyB0aGF0IHByaW9yaXRpemUgaXQgb3ZlciB0
aGUgcGxhaW4gdGV4dCBwYXJ0IChzaG91bGQgYmUgdGhlIGRlZmF1bHQgZm9yIG1vc3QgY2xpZW50
cykgd2hpbGUKKyAgICAvLy8gYWxzbyBwcm9wZXJseSBkaXNwbGF5aW5nIHRoZSBhdHRhY2htZW50
cy4KKyAgICBwdWIgZm4gc2V0X2h0bWxfYWx0KCZtdXQgc2VsZiwgYm9keV9odG1sOiAmc3RyKSB7
CisgICAgICAgIHNlbGYuYm9keV9odG1sLnJlcGxhY2UoYm9keV9odG1sLnRvX3N0cmluZygpKTsK
KyAgICB9CisKKyAgICAvLy8gQnVpbGRlci1zdHlsZSBtZXRob2QgdG8gYWRkIGFuIGFsdGVybmF0
aXZlIEhUTUwgcGFydC4KKyAgICAvLy8KKyAgICAvLy8gTm90ZTogVGhpcyB0cmlnZ2VycyBgbXVs
dGlwYXJ0L2FsdGVybmF0aXZlYCBtb2RlLiBJZiBib3RoIGFuIEhUTUwgcGFydCBhbmQgYXQgbGVh
c3Qgb25lCisgICAgLy8vIGF0dGFjaGVtZW50IGFyZSBzcGVjaWZpZWQsIHRoZSBgbXVsdGlwYXJ0
L2FsdGVybmF0aXZlYCBwYXJ0IHdpbGwgYmUgbmVzdGVkIHdpdGhpbiB0aGUgZmlyc3QKKyAgICAv
Ly8gYG11bHRpcGFydC9taXhlZGAgcGFydC4gVGhpcyBzaG91bGQgZW5zdXJlIHRoYXQgdGhlIEhU
TUwgaXMgZGlzcGxheWVkIHByb3Blcmx5IGJ5IGNsaWVudCdzCisgICAgLy8vIHRoYXQgcHJpb3Jp
dGl6ZSBpdCBvdmVyIHRoZSBwbGFpbiB0ZXh0IHBhcnQgKHNob3VsZCBiZSB0aGUgZGVmYXVsdCBm
b3IgbW9zdCBjbGllbnRzKSB3aGlsZQorICAgIC8vLyBhbHNvIHByb3Blcmx5IGRpc3BsYXlpbmcg
dGhlIGF0dGFjaG1lbnRzLgorICAgIHB1YiBmbiB3aXRoX2h0bWxfYWx0KG11dCBzZWxmLCBib2R5
X2h0bWw6ICZzdHIpIC0+IFNlbGYgeworICAgICAgICBzZWxmLnNldF9odG1sX2FsdChib2R5X2h0
bWwpOworICAgICAgICBzZWxmCisgICAgfQorCisgICAgLy8vIFNlbmRzIHRoZSBlbWFpbC4gVGhp
cyB3aWxsIGZhaWwgaWYgbm8gcmVjaWVwaWVudCdzIGhhdmUgYmVlbiBhZGRlZC4KKyAgICAvLy8K
KyAgICAvLy8gTm90ZTogQW4gYEF1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVyYXRlZGAgaGVhZGVy
IGlzIGFkZGVkIHRvIGF2b2lkIHRyaWdnZXJpbmcgT09PIGFuZAorICAgIC8vLyBzaW1pbGFyIG1h
aWxzLgorICAgIHB1YiBmbiBzZW5kKCZzZWxmKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7CisgICAg
ICAgIGlmIHNlbGYudG8uaXNfZW1wdHkoKSB7CisgICAgICAgICAgICBiYWlsISgibm8gcmVjaXBp
ZW50cyBwcm92aWRlZCBmb3IgdGhlIG1haWwsIGNhbm5vdCBzZW5kIGl0LiIpOworICAgICAgICB9
CisKKyAgICAgICAgbGV0IG5vdyA9IHByb3htb3hfdGltZTo6ZXBvY2hfaTY0KCk7CisgICAgICAg
IGxldCBib2R5ID0gc2VsZi5mb3JtYXRfbWFpbChub3cpPzsKKworICAgICAgICBsZXQgbXV0IHNl
bmRtYWlsX3Byb2Nlc3MgPSBDb21tYW5kOjpuZXcoIi91c3Ivc2Jpbi9zZW5kbWFpbCIpCisgICAg
ICAgICAgICAuYXJnKCItQiIpCisgICAgICAgICAgICAuYXJnKCI4QklUTUlNRSIpCisgICAgICAg
ICAgICAuYXJnKCItZiIpCisgICAgICAgICAgICAuYXJnKCZzZWxmLm1haWxfZnJvbSkKKyAgICAg
ICAgICAgIC5hcmcoIi0tIikKKyAgICAgICAgICAgIC5hcmdzKHNlbGYudG8uaXRlcigpLm1hcCh8
cHwgJnAuZW1haWwpLmNvbGxlY3Q6OjxWZWM8JlN0cmluZz4+KCkpCisgICAgICAgICAgICAuc3Rk
aW4oU3RkaW86OnBpcGVkKCkpCisgICAgICAgICAgICAuc3Bhd24oKQorICAgICAgICAgICAgLndp
dGhfY29udGV4dCh8fCAiY291bGQgbm90IHNwYXduIHNlbmRtYWlsIHByb2Nlc3MiKT87CisKKyAg
ICAgICAgc2VuZG1haWxfcHJvY2VzcworICAgICAgICAgICAgLnN0ZGluCisgICAgICAgICAgICAu
YXNfcmVmKCkKKyAgICAgICAgICAgIC51bndyYXAoKQorICAgICAgICAgICAgLndyaXRlX2FsbChi
b2R5LmFzX2J5dGVzKCkpCisgICAgICAgICAgICAud2l0aF9jb250ZXh0KHx8ICJjb3VsZG4ndCB3
cml0ZSB0byBzZW5kbWFpbCBzdGRpbiIpPzsKKworICAgICAgICBzZW5kbWFpbF9wcm9jZXNzCisg
ICAgICAgICAgICAud2FpdCgpCisgICAgICAgICAgICAud2l0aF9jb250ZXh0KHx8ICJzZW5kbWFp
bCBkaWQgbm90IGV4aXQgc3VjY2Vzc2Z1bGx5Iik/OworCisgICAgICAgIE9rKCgpKQorICAgIH0K
KworICAgIGZuIGZvcm1hdF9tYWlsKCZzZWxmLCBub3c6IGk2NCkgLT4gUmVzdWx0PFN0cmluZywg
RXJyb3I+IHsKKyAgICAgICAgbGV0IG11dCBib2R5ID0gU3RyaW5nOjpuZXcoKTsKKyAgICAgICAg
bGV0IGZpbGVfYm91bmRhcnkgPSBmb3JtYXQhKCItLS0tXz1fTmV4dFBhcnRfMDAxX3t9Iiwgbm93
KTsKKyAgICAgICAgbGV0IGh0bWxfYm91bmRhcnkgPSBmb3JtYXQhKCItLS0tXz1fTmV4dFBhcnRf
MDAyX3t9Iiwgbm93KTsKKworICAgICAgICBsZXQgdG8gPSBpZiBzZWxmLnRvLmxlbigpID4gMSB7
CisgICAgICAgICAgICAvLyBkb24ndCBkaXNjbG9zZSBhbGwgcmVjaXBpZW50cyBpZiB0aGUgbWFp
bCBnb2VzIG91dCB0byBtdWx0aXBsZQorICAgICAgICAgICAgJlJlY2lwaWVudCB7CisgICAgICAg
ICAgICAgICAgbmFtZTogU29tZSgiVW5kaXNjbG9zZWQiLnRvX3N0cmluZygpKSwKKyAgICAgICAg
ICAgICAgICBlbWFpbDogIm5vcmVwbHkiLnRvX3N0cmluZygpLAorICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2VsZi50bworICAgICAgICAgICAgICAgIC5maXJz
dCgpCisgICAgICAgICAgICAgICAgLmV4cGVjdCgidGhlIGNoZWNrcyBiZWZvcmUgbWFrZSBzdXJl
IHRoZXJlIGlzIGF0IGxlYXN0IG9uZSByZWNpcGllbnQiKQorICAgICAgICB9OworCisgICAgICAg
IGlmICFzZWxmLmF0dGFjaG1lbnRzLmlzX2VtcHR5KCkgeworICAgICAgICAgICAgYm9keS5wdXNo
X3N0cigiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7XG4iKTsKKyAgICAgICAgICAgIGJv
ZHkucHVzaF9zdHIoJmZvcm1hdCEoIlx0Ym91bmRhcnk9XCJ7ZmlsZV9ib3VuZGFyeX1cIlxuIikp
OworICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiTUlNRS1WZXJzaW9uOiAxLjBcbiIpOworICAg
ICAgICB9IGVsc2UgaWYgc2VsZi5ib2R5X2h0bWwuaXNfc29tZSgpIHsKKyAgICAgICAgICAgIGJv
ZHkucHVzaF9zdHIoIkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2FsdGVybmF0aXZlO1xuIik7Cisg
ICAgICAgICAgICBib2R5LnB1c2hfc3RyKCZmb3JtYXQhKCJcdGJvdW5kYXJ5PVwie2h0bWxfYm91
bmRhcnl9XCJcbiIpKTsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIk1JTUUtVmVyc2lvbjog
MS4wXG4iKTsKKyAgICAgICAgfSBlbHNlIGlmICFzZWxmLnN1YmplY3QuaXNfYXNjaWkoKQorICAg
ICAgICAgICAgfHwgIXNlbGYubWFpbF9hdXRob3IuaXNfYXNjaWkoKQorICAgICAgICAgICAgfHwg
IXRvLm5hbWUuYXNfcmVmKCkubWFwKHx0fCB0LmlzX2FzY2lpKCkpLnVud3JhcF9vcih0cnVlKQor
ICAgICAgICB7CisgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCJNSU1FLVZlcnNpb246IDEuMFxu
Iik7CisgICAgICAgIH0KKworICAgICAgICBsZXQgc3ViamVjdCA9IGlmICFzZWxmLnN1YmplY3Qu
aXNfYXNjaWkoKSB7CisgICAgICAgICAgICBmb3JtYXQhKCJTdWJqZWN0OiA9P3V0Zi04P0I/e30/
PVxuIiwgYmFzZTY0OjplbmNvZGUoJnNlbGYuc3ViamVjdCkpCisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICBmb3JtYXQhKCJTdWJqZWN0OiB7fVxuIiwgc2VsZi5zdWJqZWN0KQorICAgICAg
ICB9OworCisgICAgICAgIGJvZHkucHVzaF9zdHIoJnN1YmplY3QpOworCisgICAgICAgIGxldCBm
cm9tID0gaWYgIXNlbGYubWFpbF9hdXRob3IuaXNfYXNjaWkoKSB7CisgICAgICAgICAgICBmb3Jt
YXQhKAorICAgICAgICAgICAgICAgICJGcm9tOiA9P3V0Zi04P0I/e30/PSA8e30+XG4iLAorICAg
ICAgICAgICAgICAgIGJhc2U2NDo6ZW5jb2RlKCZzZWxmLm1haWxfYXV0aG9yKSwKKyAgICAgICAg
ICAgICAgICBzZWxmLm1haWxfZnJvbQorICAgICAgICAgICAgKQorICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgZm9ybWF0ISgiRnJvbToge30gPHt9PlxuIiwgc2VsZi5tYWlsX2F1dGhvciwg
c2VsZi5tYWlsX2Zyb20pCisgICAgICAgIH07CisKKyAgICAgICAgYm9keS5wdXNoX3N0cigmZnJv
bSk7CisKKyAgICAgICAgbGV0IHRvID0gaWYgbGV0IFNvbWUobmFtZSkgPSAmdG8ubmFtZSB7Cisg
ICAgICAgICAgICBpZiAhbmFtZS5pc19hc2NpaSgpIHsKKyAgICAgICAgICAgICAgICBmb3JtYXQh
KCJUbzogPT91dGYtOD9CP3t9Pz0gPHt9PlxuIiwgYmFzZTY0OjplbmNvZGUoJm5hbWUpLCB0by5l
bWFpbCkKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgZm9ybWF0ISgiVG86
IHt9IDx7fT5cbiIsIG5hbWUsIHRvLmVtYWlsKQorICAgICAgICAgICAgfQorICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgZm9ybWF0ISgiVG86IHt9XG4iLCB0by5lbWFpbCkKKyAgICAgICAg
fTsKKworICAgICAgICBib2R5LnB1c2hfc3RyKCZ0byk7CisKKyAgICAgICAgbGV0IHJmYzI4MjJf
ZGF0ZSA9IHByb3htb3hfdGltZTo6ZXBvY2hfdG9fcmZjMjgyMihub3cpCisgICAgICAgICAgICAu
d2l0aF9jb250ZXh0KHx8ICJjb3VsZCBub3QgY29udmVydCBlcG9jaCB0byByZmMyODIyIGRhdGUi
KT87CisgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEoIkRhdGU6IHtyZmMyODIyX2RhdGV9
XG4iKSk7CisgICAgICAgIGJvZHkucHVzaF9zdHIoIkF1dG8tU3VibWl0dGVkOiBhdXRvLWdlbmVy
YXRlZDtcbiIpOworCisgICAgICAgIGlmIHNlbGYuYm9keV9odG1sLmlzX3NvbWUoKSAmJiAhc2Vs
Zi5hdHRhY2htZW50cy5pc19lbXB0eSgpIHsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIlxu
VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC5cbiIpOworICAgICAg
ICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgiXG4tLXtmaWxlX2JvdW5kYXJ5fVxuIikpOwor
ICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgKKyAgICAgICAgICAgICAgICAiQ29u
dGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PVwie2h0bWxfYm91bmRh
cnl9XCJcbiIKKyAgICAgICAgICAgICkpOworICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiTUlN
RS1WZXJzaW9uOiAxLjBcbiIpOworICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgi
XG4tLXtodG1sX2JvdW5kYXJ5fVxuIikpOworICAgICAgICB9IGVsc2UgaWYgc2VsZi5ib2R5X2h0
bWwuaXNfc29tZSgpIHsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIlxuVGhpcyBpcyBhIG11
bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC5cbiIpOworICAgICAgICAgICAgYm9keS5w
dXNoX3N0cigmZm9ybWF0ISgiXG4tLXtodG1sX2JvdW5kYXJ5fVxuIikpOworICAgICAgICB9IGVs
c2UgaWYgc2VsZi5ib2R5X2h0bWwuaXNfbm9uZSgpICYmICFzZWxmLmF0dGFjaG1lbnRzLmlzX2Vt
cHR5KCkgeworICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiXG5UaGlzIGlzIGEgbXVsdGktcGFy
dCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LlxuIik7CisgICAgICAgICAgICBib2R5LnB1c2hfc3Ry
KCZmb3JtYXQhKCJcbi0te2ZpbGVfYm91bmRhcnl9XG4iKSk7CisgICAgICAgIH0KKworICAgICAg
ICBib2R5LnB1c2hfc3RyKCJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47XG4iKTsKKyAgICAgICAg
Ym9keS5wdXNoX3N0cigiXHRjaGFyc2V0PVwiVVRGLThcIlxuIik7CisgICAgICAgIGJvZHkucHVz
aF9zdHIoIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcblxuIik7CisgICAgICAgIGJv
ZHkucHVzaF9zdHIoJnNlbGYuYm9keV90eHQpOworCisgICAgICAgIGlmIGxldCBTb21lKGh0bWwp
ID0gJnNlbGYuYm9keV9odG1sIHsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEo
IlxuLS17aHRtbF9ib3VuZGFyeX1cbiIpKTsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIkNv
bnRlbnQtVHlwZTogdGV4dC9odG1sO1xuIik7CisgICAgICAgICAgICBib2R5LnB1c2hfc3RyKCJc
dGNoYXJzZXQ9XCJVVEYtOFwiXG4iKTsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoIkNvbnRl
bnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcblxuIik7CisgICAgICAgICAgICBib2R5LnB1c2hf
c3RyKGh0bWwpOworICAgICAgICAgICAgYm9keS5wdXNoX3N0cigmZm9ybWF0ISgiXG4tLXtodG1s
X2JvdW5kYXJ5fS0tIikpOworICAgICAgICB9CisKKyAgICAgICAgZm9yIGF0dGFjaG1lbnQgaW4g
JnNlbGYuYXR0YWNobWVudHMgeworICAgICAgICAgICAgbGV0IGZpbGVuYW1lID0gJmF0dGFjaG1l
bnQuZmlsZW5hbWU7CisKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEoIlxuLS17
ZmlsZV9ib3VuZGFyeX1cbiIpKTsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEo
CisgICAgICAgICAgICAgICAgIkNvbnRlbnQtVHlwZToge307IG5hbWU9XCJ7ZmlsZW5hbWV9XCJc
biIsCisgICAgICAgICAgICAgICAgYXR0YWNobWVudC5taW1lCisgICAgICAgICAgICApKTsKKwor
ICAgICAgICAgICAgLy8gYm90aCBgZmlsZW5hbWVgIGFuZCBgZmlsZW5hbWUqYCBhcmUgaW5jbHVk
ZWQgZm9yIGFkZGl0aW9uYWwgY29tcGF0YWJpbGl0eQorICAgICAgICAgICAgYm9keS5wdXNoX3N0
cigmZm9ybWF0ISgKKyAgICAgICAgICAgICAgICAiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNo
bWVudDsgZmlsZW5hbWU9XCJ7ZmlsZW5hbWV9XCI7IGZpbGVuYW1lKj1VVEYtOCcne31cbiIsCisg
ICAgICAgICAgICAgICAgdXRmOF9wZXJjZW50X2VuY29kZShmaWxlbmFtZSwgUkZDNTk4N1NFVCkK
KyAgICAgICAgICAgICkpOworICAgICAgICAgICAgYm9keS5wdXNoX3N0cigiQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogYmFzZTY0XG5cbiIpOworCisgICAgICAgICAgICAvLyB3cmFwIHRoZSBi
YXNlNjQgc3RyaW5nIGV2ZXJ5IDcyIGNoYXJhY3RlcnMuIHRoaXMgaW1wcm92ZXMgY29tcGF0YWJp
bGl0eQorICAgICAgICAgICAgbGV0IGJhc2U2NCA9IGJhc2U2NDo6ZW5jb2RlKGF0dGFjaG1lbnQu
Y29udGVudCkKKyAgICAgICAgICAgICAgICAuY2hhcnMoKQorICAgICAgICAgICAgICAgIC5lbnVt
ZXJhdGUoKQorICAgICAgICAgICAgICAgIC5mbGF0X21hcCh8KGksIGMpfCB7CisgICAgICAgICAg
ICAgICAgICAgIGlmIGkgIT0gMCAmJiBpICUgNzIgPT0gMCB7CisgICAgICAgICAgICAgICAgICAg
ICAgICBTb21lKCdcbicpCisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBOb25lCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICAgICAgLmludG9faXRlcigpCisgICAgICAgICAgICAgICAgICAgIC5jaGFpbihzdGQ6Oml0ZXI6
Om9uY2UoYykpCisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICAuY29sbGVjdDo6
PFN0cmluZz4oKTsKKyAgICAgICAgICAgIGJvZHkucHVzaF9zdHIoJmJhc2U2NCk7CisgICAgICAg
IH0KKworICAgICAgICBpZiAhc2VsZi5hdHRhY2htZW50cy5pc19lbXB0eSgpIHsKKyAgICAgICAg
ICAgIGJvZHkucHVzaF9zdHIoJmZvcm1hdCEoIlxuLS17ZmlsZV9ib3VuZGFyeX0tLSIpKTsKKyAg
ICAgICAgfQorCisgICAgICAgIE9rKGJvZHkpCisgICAgfQorfQorCisjW2NmZyh0ZXN0KV0KK21v
ZCB0ZXN0IHsKKyAgICB1c2Ugc3VwZXI6Oio7CisKKyAgICAjW3Rlc3RdCisgICAgZm4gZW1haWxf
d2l0aG91dF9yZWNpcGllbnRzX2ZhaWxzKCkgeworICAgICAgICBsZXQgcmVzdWx0ID0gTWFpbDo6
bmV3KCJTZW5kZXIiLCAibWFpbEBleGFtcGxlLmNvbSIsICJoaSIsICJib2R5Iikuc2VuZCgpOwor
ICAgICAgICBhc3NlcnQhKHJlc3VsdC5pc19lcnIoKSk7CisgICAgfQorCisgICAgI1t0ZXN0XQor
ICAgIGZuIHNpbXBsZV9hc2NpaV90ZXh0X21haWwoKSB7CisgICAgICAgIGxldCBtYWlsID0gTWFp
bDo6bmV3KAorICAgICAgICAgICAgIlNlbmRlciBOYW1lIiwKKyAgICAgICAgICAgICJtYWlsZnJv
bUBleGFtcGxlLmNvbSIsCisgICAgICAgICAgICAiU3ViamVjdCBMaW5lIiwKKyAgICAgICAgICAg
ICJUaGlzIGlzIGp1c3QgYXNjaWkgdGV4dC5cbk5vdGhpbmcgdG9vIHNwZWNpYWwuIiwKKyAgICAg
ICAgKQorICAgICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIlJlY2VpdmVyIE5hbWUiLCAi
cmVjZWl2ZXJAZXhhbXBsZS5jb20iKTsKKworICAgICAgICBsZXQgYm9keSA9IG1haWwuZm9ybWF0
X21haWwoMCkuZXhwZWN0KCJjb3VsZCBub3QgZm9ybWF0IG1haWwiKTsKKworICAgICAgICBhc3Nl
cnRfZXEhKAorICAgICAgICAgICAgYm9keSwKKyAgICAgICAgICAgIHIjIlN1YmplY3Q6IFN1Ympl
Y3QgTGluZQorRnJvbTogU2VuZGVyIE5hbWUgPG1haWxmcm9tQGV4YW1wbGUuY29tPgorVG86IFJl
Y2VpdmVyIE5hbWUgPHJlY2VpdmVyQGV4YW1wbGUuY29tPgorRGF0ZTogVGh1LCAwMSBKYW4gMTk3
MCAwMTowMDowMCArMDEwMAorQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOworQ29udGVu
dC1UeXBlOiB0ZXh0L3BsYWluOworCWNoYXJzZXQ9IlVURi04IgorQ29udGVudC1UcmFuc2Zlci1F
bmNvZGluZzogOGJpdAorCitUaGlzIGlzIGp1c3QgYXNjaWkgdGV4dC4KK05vdGhpbmcgdG9vIHNw
ZWNpYWwuIiMKKyAgICAgICAgKQorICAgIH0KKworICAgICNbdGVzdF0KKyAgICBmbiBtdWx0aXBs
ZV9yZWNlaXZlcl9yZWRhY3Rpb24oKSB7CisgICAgICAgIGxldCBtYWlsID0gTWFpbDo6bmV3KAor
ICAgICAgICAgICAgIlNlbmRlciBOYW1lIiwKKyAgICAgICAgICAgICJtYWlsZnJvbUBleGFtcGxl
LmNvbSIsCisgICAgICAgICAgICAiU3ViamVjdCBMaW5lIiwKKyAgICAgICAgICAgICJUaGlzIGlz
IGp1c3QgYXNjaWkgdGV4dC5cbk5vdGhpbmcgdG9vIHNwZWNpYWwuIiwKKyAgICAgICAgKQorICAg
ICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIlJlY2VpdmVyIE5hbWUiLCAicmVjZWl2ZXJA
ZXhhbXBsZS5jb20iKQorICAgICAgICAud2l0aF9yZWNpcGllbnQoInR3b0BleGFtcGxlLmNvbSIp
OworCisgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgwKS5leHBlY3QoImNvdWxk
IG5vdCBmb3JtYXQgbWFpbCIpOworCisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAgICAgICBi
b2R5LAorICAgICAgICAgICAgciMiU3ViamVjdDogU3ViamVjdCBMaW5lCitGcm9tOiBTZW5kZXIg
TmFtZSA8bWFpbGZyb21AZXhhbXBsZS5jb20+CitUbzogVW5kaXNjbG9zZWQgPG5vcmVwbHk+CitE
YXRlOiBUaHUsIDAxIEphbiAxOTcwIDAxOjAwOjAwICswMTAwCitBdXRvLVN1Ym1pdHRlZDogYXV0
by1nZW5lcmF0ZWQ7CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CisJY2hhcnNldD0iVVRGLTgi
CitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoaXMgaXMganVzdCBhc2NpaSB0
ZXh0LgorTm90aGluZyB0b28gc3BlY2lhbC4iIworICAgICAgICApCisgICAgfQorCisgICAgI1t0
ZXN0XQorICAgIGZuIHNpbXBsZV91dGY4X3RleHRfbWFpbCgpIHsKKyAgICAgICAgbGV0IG1haWwg
PSBNYWlsOjpuZXcoCisgICAgICAgICAgICAiVVRGLTggU2VuZGVyIE5hbWUg8J+TpyIsCisgICAg
ICAgICAgICAiZGlmZmVyZW50ZnJvbUBleGFtcGxlLmNvbSIsCisgICAgICAgICAgICAiU3ViamVj
dCBMaW5lIPCfp5EiLAorICAgICAgICAgICAgIlRoaXMgdXRmLTggZW1haWwgc2hvdWxkIGhhbmRs
ZSBlbW9qaXNcbvCfp5Hwn5OnXG5hbmQgd2VpcmQgZ2VybWFuIGNoYXJhY3RlcnM6IMO2w6TDvMOf
XG5hbmQgbW9yZS4iLAorICAgICAgICApCisgICAgICAgIC53aXRoX3JlY2lwaWVudF9hbmRfbmFt
ZSgiUmVjZWl2ZXIgTmFtZfCfk6kiLCAicmVjZWl2ZXJAZXhhbXBsZS5jb20iKTsKKworICAgICAg
ICBsZXQgYm9keSA9IG1haWwuZm9ybWF0X21haWwoMTczMjgwNjI1MSkuZXhwZWN0KCJjb3VsZCBu
b3QgZm9ybWF0IG1haWwiKTsKKworICAgICAgICBhc3NlcnRfZXEhKAorICAgICAgICAgICAgYm9k
eSwKKyAgICAgICAgICAgIHIjIk1JTUUtVmVyc2lvbjogMS4wCitTdWJqZWN0OiA9P3V0Zi04P0I/
VTNWaWFtVmpkQ0JNYVc1bElQQ2ZwNUU9Pz0KK0Zyb206ID0/dXRmLTg/Qj9WVlJHTFRnZ1UyVnVa
R1Z5SUU1aGJXVWc4SitUcHc9PT89IDxkaWZmZXJlbnRmcm9tQGV4YW1wbGUuY29tPgorVG86ID0/
dXRmLTg/Qj9VbVZqWldsMlpYSWdUbUZ0WmZDZms2az0/PSA8cmVjZWl2ZXJAZXhhbXBsZS5jb20+
CitEYXRlOiBUaHUsIDI4IE5vdiAyMDI0IDE2OjA0OjExICswMTAwCitBdXRvLVN1Ym1pdHRlZDog
YXV0by1nZW5lcmF0ZWQ7CitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CisJY2hhcnNldD0iVVRG
LTgiCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK1RoaXMgdXRmLTggZW1haWwg
c2hvdWxkIGhhbmRsZSBlbW9qaXMKK/Cfp5Hwn5OnCithbmQgd2VpcmQgZ2VybWFuIGNoYXJhY3Rl
cnM6IMO2w6TDvMOfCithbmQgbW9yZS4iIworICAgICAgICApCisgICAgfQorCisgICAgI1t0ZXN0
XQorICAgIGZuIG11bHRpcGFydF9odG1sX2FsdGVybmF0aXZlKCkgeworICAgICAgICBsZXQgbWFp
bCA9IE1haWw6Om5ldygKKyAgICAgICAgICAgICJTZW5kZXIgTmFtZSIsCisgICAgICAgICAgICAi
ZnJvbUBleGFtcGxlLmNvbSIsCisgICAgICAgICAgICAiU3ViamVjdCBMaW5lIiwKKyAgICAgICAg
ICAgICJMb3JlbSBJcHN1bSBEb2xvciBTaXRcbkFtZXQiLAorICAgICAgICApCisgICAgICAgIC53
aXRoX3JlY2lwaWVudCgicmVjZWl2ZXJAZXhhbXBsZS5jb20iKQorICAgICAgICAud2l0aF9odG1s
X2FsdCgiPGh0bWwgbGFuZz1cImRlLWF0XCI+PGhlYWQ+PC9oZWFkPjxib2R5PlxuXHQ8cHJlPlxu
XHRcdExvcmVtIElwc3VtIERvbG9yIFNpdCBBbWV0XG5cdDwvcHJlPlxuPC9ib2R5PjwvaHRtbD4i
KTsKKyAgICAgICAgbGV0IGJvZHkgPSBtYWlsLmZvcm1hdF9tYWlsKDE3MzI4MDYyNTEpLmV4cGVj
dCgiY291bGQgbm90IGZvcm1hdCBtYWlsIik7CisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAg
ICAgICBib2R5LAorICAgICAgICAgICAgciMiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJu
YXRpdmU7CisJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFydF8wMDJfMTczMjgwNjI1MSIKK01JTUUt
VmVyc2lvbjogMS4wCitTdWJqZWN0OiBTdWJqZWN0IExpbmUKK0Zyb206IFNlbmRlciBOYW1lIDxm
cm9tQGV4YW1wbGUuY29tPgorVG86IHJlY2VpdmVyQGV4YW1wbGUuY29tCitEYXRlOiBUaHUsIDI4
IE5vdiAyMDI0IDE2OjA0OjExICswMTAwCitBdXRvLVN1Ym1pdHRlZDogYXV0by1nZW5lcmF0ZWQ7
CisKK1RoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuCisKKy0tLS0t
LV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUxCitDb250ZW50LVR5cGU6IHRleHQvcGxhaW47CisJ
Y2hhcnNldD0iVVRGLTgiCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CisKK0xvcmVt
IElwc3VtIERvbG9yIFNpdAorQW1ldAorLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEK
K0NvbnRlbnQtVHlwZTogdGV4dC9odG1sOworCWNoYXJzZXQ9IlVURi04IgorQ29udGVudC1UcmFu
c2Zlci1FbmNvZGluZzogOGJpdAorCis8aHRtbCBsYW5nPSJkZS1hdCI+PGhlYWQ+PC9oZWFkPjxi
b2R5PgorCTxwcmU+CisJCUxvcmVtIElwc3VtIERvbG9yIFNpdCBBbWV0CisJPC9wcmU+Cis8L2Jv
ZHk+PC9odG1sPgorLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEtLSIjCisgICAgICAg
ICkKKyAgICB9CisKKyAgICAjW3Rlc3RdCisgICAgZm4gbXVsdGlwYXJ0X3BsYWluX3RleHRfYXR0
YWNobWVudHNfbWl4ZWQoKSB7CisgICAgICAgIGxldCBiaW46IFt1ODsgNjJdID0gWworICAgICAg
ICAgICAgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhk
ZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwKKyAgICAgICAgICAgIDB4ZGUsIDB4YWQs
IDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4
ZWYsIDB4ZGUsIDB4YWQsCisgICAgICAgICAgICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRl
LCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAor
ICAgICAgICAgICAgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhl
ZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwKKyAgICAgICAgICAgIDB4YmUs
IDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsCisgICAgICAgIF07CisKKyAgICAgICAgbGV0
IG1haWwgPSBNYWlsOjpuZXcoCisgICAgICAgICAgICAiU2VuZGVyIE5hbWUiLAorICAgICAgICAg
ICAgImZyb21AZXhhbXBsZS5jb20iLAorICAgICAgICAgICAgIlN1YmplY3QgTGluZSIsCisgICAg
ICAgICAgICAiTG9yZW0gSXBzdW0gRG9sb3IgU2l0XG5BbWV0IiwKKyAgICAgICAgKQorICAgICAg
ICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIlJlY2VpdmVyIE5hbWUiLCAicmVjZWl2ZXJAZXhh
bXBsZS5jb20iKQorICAgICAgICAud2l0aF9hdHRhY2htZW50KCJkZWFkYmVlZi5iaW4iLCAiYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgJmJpbik7CisKKyAgICAgICAgbGV0IGJvZHkgPSBtYWls
LmZvcm1hdF9tYWlsKDE3MzI4MDYyNTEpLmV4cGVjdCgiY291bGQgbm90IGZvcm1hdCBtYWlsIik7
CisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAgICAgICBib2R5LAorICAgICAgICAgICAgciMi
Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7CisJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFy
dF8wMDFfMTczMjgwNjI1MSIKK01JTUUtVmVyc2lvbjogMS4wCitTdWJqZWN0OiBTdWJqZWN0IExp
bmUKK0Zyb206IFNlbmRlciBOYW1lIDxmcm9tQGV4YW1wbGUuY29tPgorVG86IFJlY2VpdmVyIE5h
bWUgPHJlY2VpdmVyQGV4YW1wbGUuY29tPgorRGF0ZTogVGh1LCAyOCBOb3YgMjAyNCAxNjowNDox
MSArMDEwMAorQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOworCitUaGlzIGlzIGEgbXVs
dGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgorCistLS0tLS1fPV9OZXh0UGFydF8wMDFf
MTczMjgwNjI1MQorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOworCWNoYXJzZXQ9IlVURi04Igor
Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitMb3JlbSBJcHN1bSBEb2xvciBTaXQK
K0FtZXQKKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCitDb250ZW50LVR5cGU6IGFw
cGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgbmFtZT0iZGVhZGJlZWYuYmluIgorQ29udGVudC1EaXNw
b3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9ImRlYWRiZWVmLmJpbiI7IGZpbGVuYW1lKj1V
VEYtOCcnZGVhZGJlZWYuYmluCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQKKwor
M3EyKzc5NnR2dS9lcmI3djNxM2VyYjd2M3EyKzc5NnR2dS9lcmQ2dHZ1L2VyYjd2M3EyKzc5NnQz
cTIrNzk2dHZ1L2VyYjd2CiszcTIrNzk2dHZ1OD0KKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMy
ODA2MjUxLS0iIworICAgICAgICApCisgICAgfQorCisgICAgI1t0ZXN0XQorICAgIGZuIG11bHRp
cGFydF9wbGFpbl90ZXh0X2h0bWxfYWx0ZXJuYXRpdmVfYXR0YWNobWVudHMoKSB7CisgICAgICAg
IGxldCBiaW46IFt1ODsgNjJdID0gWworICAgICAgICAgICAgMHhkZSwgMHhhZCwgMHhiZSwgMHhl
ZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwg
MHhhZCwKKyAgICAgICAgICAgIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4
YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsCisgICAgICAgICAg
ICAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLCAweGJlLCAweGVmLCAweGRlLCAw
eGFkLCAweGJlLCAweGVmLCAweGRlLCAweGFkLAorICAgICAgICAgICAgMHhkZSwgMHhhZCwgMHhi
ZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwgMHhkZSwgMHhhZCwgMHhiZSwgMHhlZiwg
MHhkZSwgMHhhZCwKKyAgICAgICAgICAgIDB4YmUsIDB4ZWYsIDB4ZGUsIDB4YWQsIDB4YmUsIDB4
ZWYsCisgICAgICAgIF07CisKKyAgICAgICAgbGV0IG1haWwgPSBNYWlsOjpuZXcoCisgICAgICAg
ICAgICAiU2VuZGVyIE5hbWUiLAorICAgICAgICAgICAgImZyb21AZXhhbXBsZS5jb20iLAorICAg
ICAgICAgICAgIlN1YmplY3QgTGluZSIsCisgICAgICAgICAgICAiTG9yZW0gSXBzdW0gRG9sb3Ig
U2l0XG5BbWV0IiwKKyAgICAgICAgKQorICAgICAgICAud2l0aF9yZWNpcGllbnRfYW5kX25hbWUo
IlJlY2VpdmVyIE5hbWUiLCAicmVjZWl2ZXJAZXhhbXBsZS5jb20iKQorICAgICAgICAud2l0aF9h
dHRhY2htZW50KCJkZWFkYmVlZi5iaW4iLCAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiwgJmJp
bikKKyAgICAgICAgLndpdGhfYXR0YWNobWVudCgi8J+QhPCfkoAuYmluIiwgImltYWdlL2JtcCIs
ICZiaW4pCisgICAgICAgIC53aXRoX2h0bWxfYWx0KCI8aHRtbCBsYW5nPVwiZGUtYXRcIj48aGVh
ZD48L2hlYWQ+PGJvZHk+XG5cdDxwcmU+XG5cdFx0TG9yZW0gSXBzdW0gRG9sb3IgU2l0IEFtZXRc
blx0PC9wcmU+XG48L2JvZHk+PC9odG1sPiIpOworCisgICAgICAgIGxldCBib2R5ID0gbWFpbC5m
b3JtYXRfbWFpbCgxNzMyODA2MjUxKS5leHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOwor
CisgICAgICAgIGFzc2VydF9lcSEoCisgICAgICAgICAgICBib2R5LAorICAgICAgICAgICAgciMi
Q29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7CisJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFy
dF8wMDFfMTczMjgwNjI1MSIKK01JTUUtVmVyc2lvbjogMS4wCitTdWJqZWN0OiBTdWJqZWN0IExp
bmUKK0Zyb206IFNlbmRlciBOYW1lIDxmcm9tQGV4YW1wbGUuY29tPgorVG86IFJlY2VpdmVyIE5h
bWUgPHJlY2VpdmVyQGV4YW1wbGUuY29tPgorRGF0ZTogVGh1LCAyOCBOb3YgMjAyNCAxNjowNDox
MSArMDEwMAorQXV0by1TdWJtaXR0ZWQ6IGF1dG8tZ2VuZXJhdGVkOworCitUaGlzIGlzIGEgbXVs
dGktcGFydCBtZXNzYWdlIGluIE1JTUUgZm9ybWF0LgorCistLS0tLS1fPV9OZXh0UGFydF8wMDFf
MTczMjgwNjI1MQorQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5
PSItLS0tXz1fTmV4dFBhcnRfMDAyXzE3MzI4MDYyNTEiCitNSU1FLVZlcnNpb246IDEuMAorCist
LS0tLS1fPV9OZXh0UGFydF8wMDJfMTczMjgwNjI1MQorQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu
OworCWNoYXJzZXQ9IlVURi04IgorQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdAorCitM
b3JlbSBJcHN1bSBEb2xvciBTaXQKK0FtZXQKKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2
MjUxCitDb250ZW50LVR5cGU6IHRleHQvaHRtbDsKKwljaGFyc2V0PSJVVEYtOCIKK0NvbnRlbnQt
VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworPGh0bWwgbGFuZz0iZGUtYXQiPjxoZWFkPjwvaGVh
ZD48Ym9keT4KKwk8cHJlPgorCQlMb3JlbSBJcHN1bSBEb2xvciBTaXQgQW1ldAorCTwvcHJlPgor
PC9ib2R5PjwvaHRtbD4KKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzMyODA2MjUxLS0KKy0tLS0t
LV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCitDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL29j
dGV0LXN0cmVhbTsgbmFtZT0iZGVhZGJlZWYuYmluIgorQ29udGVudC1EaXNwb3NpdGlvbjogYXR0
YWNobWVudDsgZmlsZW5hbWU9ImRlYWRiZWVmLmJpbiI7IGZpbGVuYW1lKj1VVEYtOCcnZGVhZGJl
ZWYuYmluCitDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQKKworM3EyKzc5NnR2dS9l
cmI3djNxM2VyYjd2M3EyKzc5NnR2dS9lcmQ2dHZ1L2VyYjd2M3EyKzc5NnQzcTIrNzk2dHZ1L2Vy
Yjd2CiszcTIrNzk2dHZ1OD0KKy0tLS0tLV89X05leHRQYXJ0XzAwMV8xNzMyODA2MjUxCitDb250
ZW50LVR5cGU6IGltYWdlL2JtcDsgbmFtZT0i8J+QhPCfkoAuYmluIgorQ29udGVudC1EaXNwb3Np
dGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9IvCfkITwn5KALmJpbiI7IGZpbGVuYW1lKj1VVEYt
OCcnJUYwJTlGJTkwJTg0JUYwJTlGJTkyJTgwLmJpbgorQ29udGVudC1UcmFuc2Zlci1FbmNvZGlu
ZzogYmFzZTY0CisKKzNxMis3OTZ0dnUvZXJiN3YzcTNlcmI3djNxMis3OTZ0dnUvZXJkNnR2dS9l
cmI3djNxMis3OTZ0M3EyKzc5NnR2dS9lcmI3dgorM3EyKzc5NnR2dTg9CistLS0tLS1fPV9OZXh0
UGFydF8wMDFfMTczMjgwNjI1MS0tIiMKKyAgICAgICAgKQorICAgIH0KKworICAgICNbdGVzdF0K
KyAgICBmbiB0ZXN0X2Zvcm1hdF9tYWlsX211bHRpcGFydCgpIHsKKyAgICAgICAgbGV0IG1haWwg
PSBNYWlsOjpuZXcoCisgICAgICAgICAgICAiRnJlZCBPb2JhciIsCisgICAgICAgICAgICAiZm9v
YmFyQGV4YW1wbGUuY29tIiwKKyAgICAgICAgICAgICJUaGlzIGlzIHRoZSBzdWJqZWN0IiwKKyAg
ICAgICAgICAgICJUaGlzIGlzIHRoZSBwbGFpbiBib2R5IiwKKyAgICAgICAgKQorICAgICAgICAu
d2l0aF9yZWNpcGllbnRfYW5kX25hbWUoIlRvbnkgRXN0IiwgInRlc3RAZXhhbXBsZS5jb20iKQor
ICAgICAgICAud2l0aF9odG1sX2FsdCgiPGJvZHk+VGhpcyBpcyB0aGUgSFRNTCBib2R5PC9ib2R5
PiIpOworCisgICAgICAgIGxldCBib2R5ID0gbWFpbC5mb3JtYXRfbWFpbCgxNzE4OTc3ODUwKS5l
eHBlY3QoImNvdWxkIG5vdCBmb3JtYXQgbWFpbCIpOworCisgICAgICAgIGFzc2VydF9lcSEoCisg
ICAgICAgICAgICBib2R5LAorICAgICAgICAgICAgciMiQ29udGVudC1UeXBlOiBtdWx0aXBhcnQv
YWx0ZXJuYXRpdmU7CisJYm91bmRhcnk9Ii0tLS1fPV9OZXh0UGFydF8wMDJfMTcxODk3Nzg1MCIK
K01JTUUtVmVyc2lvbjogMS4wCitTdWJqZWN0OiBUaGlzIGlzIHRoZSBzdWJqZWN0CitGcm9tOiBG
cmVkIE9vYmFyIDxmb29iYXJAZXhhbXBsZS5jb20+CitUbzogVG9ueSBFc3QgPHRlc3RAZXhhbXBs
ZS5jb20+CitEYXRlOiBGcmksIDIxIEp1biAyMDI0IDE1OjUwOjUwICswMjAwCitBdXRvLVN1Ym1p
dHRlZDogYXV0by1nZW5lcmF0ZWQ7CisKK1RoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4g
TUlNRSBmb3JtYXQuCisKKy0tLS0tLV89X05leHRQYXJ0XzAwMl8xNzE4OTc3ODUwCitDb250ZW50
LVR5cGU6IHRleHQvcGxhaW47CisJY2hhcnNldD0iVVRGLTgiCitDb250ZW50LVRyYW5zZmVyLUVu
Y29kaW5nOiA4Yml0CisKK1RoaXMgaXMgdGhlIHBsYWluIGJvZHkKKy0tLS0tLV89X05leHRQYXJ0
XzAwMl8xNzE4OTc3ODUwCitDb250ZW50LVR5cGU6IHRleHQvaHRtbDsKKwljaGFyc2V0PSJVVEYt
OCIKK0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKKworPGJvZHk+VGhpcyBpcyB0aGUg
SFRNTCBib2R5PC9ib2R5PgorLS0tLS0tXz1fTmV4dFBhcnRfMDAyXzE3MTg5Nzc4NTAtLSIjCisg
ICAgICAgICk7CisgICAgfQorfQotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVs
QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls
bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=