From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-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 0C5D51FF16B
	for <inbox@lore.proxmox.com>; Thu,  9 Jan 2025 13:57:05 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id D865FEC8E;
	Thu,  9 Jan 2025 13:56:49 +0100 (CET)
Mime-Version: 1.0
Date: Thu, 09 Jan 2025 13:56:15 +0100
Message-Id: <D6XK4S035SMX.29YOUT77ZCCA0@proxmox.com>
To: "Wolfgang Bumiller" <w.bumiller@proxmox.com>
From: "Max Carrara" <m.carrara@proxmox.com>
X-Mailer: aerc 0.18.2-0-ge037c095a049
References: <20241220185207.519912-1-m.carrara@proxmox.com>
 <20241220185207.519912-2-m.carrara@proxmox.com>
 <s7he5i3khrtkja3ozl34tgoue7m4xnrvqhydnhcg67xp54zrgw@dnd37ovkjfqt>
 <D6XGAZ0XA9IZ.2CIB4A13ERV1Z@proxmox.com>
 <ipkh37upodgful7xzaschqfyupvy4yb454vljll7v2ab6ury62@u2nksoadgcc2>
In-Reply-To: <ipkh37upodgful7xzaschqfyupvy4yb454vljll7v2ab6ury62@u2nksoadgcc2>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -2.451 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
 KAM_SOMETLD_ARE_BAD_TLD      5 .bar, .beauty, .buzz, .cam, .casa, .cfd, .club,
 .date, .guru, .link, .live, .monster, .online, .press, .pw, .quest, .rest,
 .sbs, .shop, .stream, .top, .trade, .wiki, .work, .xyz TLD abuse
 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
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [python.org, cppreference.com, rust-lang.org, foo.bar]
Subject: Re: [pve-devel] [PATCH v2 pve-common 01/12] introduce PVE::Path
X-BeenThere: pve-devel@lists.proxmox.com
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
List-Post: <mailto:pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
Cc: pve-devel@lists.proxmox.com
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

T24gVGh1IEphbiA5LCAyMDI1IGF0IDEyOjA2IFBNIENFVCwgV29sZmdhbmcgQnVtaWxsZXIgd3Jv
dGU6Cj4gT24gVGh1LCBKYW4gMDksIDIwMjUgYXQgMTA6NTY6MTZBTSArMDEwMCwgTWF4IENhcnJh
cmEgd3JvdGU6Cj4gPiBPbiBXZWQgSmFuIDgsIDIwMjUgYXQgMzowNSBQTSBDRVQsIFdvbGZnYW5n
IEJ1bWlsbGVyIHdyb3RlOgo+ID4gPiBPbiBGcmksIERlYyAyMCwgMjAyNCBhdCAwNzo1MTo1NlBN
ICswMTAwLCBNYXggQ2FycmFyYSB3cm90ZToKPiA+ID4gPiArbXkgc3ViIF9wYXRoX2ZpbGVfc3Vm
Zml4ZXMgOiBwcm90b3R5cGUoJCkgewo+ID4gPiA+ICsgICAgbXkgKCRmaWxlX25hbWVfbm9fcHJl
Zml4KSA9IEBfOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgIGNvbmZlc3MgIlwkZmlsZV9uYW1lX25v
X3ByZWZpeCBpcyB1bmRlZiIgaWYgIWRlZmluZWQoJGZpbGVfbmFtZV9ub19wcmVmaXgpOwo+ID4g
PiA+ICsKPiA+ID4gPiArICAgICMgU3VmZml4ZXMgYXJlIGV4dHJhY3RlZCAibWFudWFsbHkiIGJl
Y2F1c2Ugam9pbigpaW5nIHRoZSByZXN1bHQgb2Ygc3BsaXQoKQo+ID4gPiA+ICsgICAgIyByZXN1
bHRzIGluIGEgZGlmZmVyZW50IGZpbGUgbmFtZSB0aGFuIHRoZSBvcmlnaW5hbC4gTGV0J3Mgc2F5
IHlvdSBoYXZlIGEKPiA+ID4gPiArICAgICMgZmlsZSBuYW1lZCAiZm9vLmJhci4iLiBUaGUgY29y
cmVjdCBzdWZmaXhlcyB3b3VsZCBiZSAoImJhciIsICIiKS4KPiA+ID4gPiArICAgICMgV2l0aCBz
cGxpdCwgeW91IGdldCB0aGUgZm9sbG93aW5nOgo+ID4gPiA+ICsgICAgIyAgICAgc3BsaXQoL1wu
LywgIi5iYXIuIikgICAgIC0tPiAoIiIsICJiYXIiKSAgICAgLS0+IGpvaW4oKWVkIHRvICJmb28u
LmJhciIKPiA+ID4gPiArICAgICMgICAgIHNwbGl0KC9cLi8sICIuYmFyLiIsIC0xKSAtLT4gKCIi
LCAiYmFyIiwgIiIpIC0tPiBqb2luKCllZCB0byAiZm9vLi5iYXIuIgo+ID4gPiA+ICsgICAgbXkg
QHN1ZmZpeGVzID0gKCk7Cj4gPiA+ID4gKyAgICB3aGlsZSAoJGZpbGVfbmFtZV9ub19wcmVmaXgg
PX4gc3xeKFwuW15cLl0qKXx8KSB7Cj4gPiA+ID4gKwlteSAkc3VmZml4ID0gJDE7Cj4gPiA+ID4g
Kwkkc3VmZml4ID1+IHN8XlwufHw7Cj4gPiA+ID4gKwlwdXNoKEBzdWZmaXhlcywgJHN1ZmZpeCk7
Cj4gPiA+ID4gKyAgICB9Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgcmV0dXJuIEBzdWZmaXhlczsK
PiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArPWhlYWQzIHBhdGhfZmlsZV9zdWZmaXhlcygk
cGF0aCkKPiA+ID4gPiArCj4gPiA+ID4gK1JldHVybnMgdGhlIHN1ZmZpeGVzIG9mIHRoZSBDPCRw
YXRoPidzIGZpbGUgbmFtZSBhcyBhIGxpc3QuIElmIHRoZSBDPCRwYXRoPiBkb2VzCj4gPiA+ID4g
K25vdCBoYXZlIGEgdmFsaWQgZmlsZSBuYW1lLCBhbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlu
c3RlYWQuCj4gPiA+ID4gKwo+ID4gPiA+ICtJbiBzY2FsYXIgY29udGV4dCwgcmV0dXJucyBhIHJl
ZmVyZW5jZSB0byBhIGxpc3QuCj4gPiA+Cj4gPiA+ICheIElzbid0IHRoaXMgYSBiaXQgYXdrd2Fy
ZD8pCj4gPiAKPiA+IFdlbGwsIGRvIHlvdSB0aGluayBpdCBpcz8gSSd2ZSBiZWVuIHVzaW5nIHRo
YXQga2luZCBvZiAicmV0dXJuIHN0eWxlIgo+ID4gaGVyZSBhbmQgdGhlcmUgYW5kIGhhdmUgYmVl
biBsaWtpbmcgaXQsIGJ1dCBpZiBpdCdzIHdlaXJkIHRvIG90aGVycywgSQo+ID4gY2FuIGFkYXB0
IGl0LiA6UAo+Cj4gSWYgeW91IHJlbW92ZSB0aGUgZGlzdGluY3Rpb24gYW5kIGFsd2F5cyByZXR1
cm4gdGhlIGxpc3QsIHRoZSBzY2FsYXIKPiBjb250ZXh0IHdvdWxkIGdpdmUgeW91IHRoZSBmaW5h
bCBlbGVtZW50LCB3aGljaCB3b3VsZCBiZSAidGhlIGV4dGVuc2lvbiIKPiAoJ2d6Jywgbm90ICd0
YXIuZ3onIDpQKSwgd2hpY2ggd291bGQgYWxzbyBiZSBhIG5pY2Ugc2hvcnRjdXQgZm9yIHdoYXQK
PiBJJ2QgYW50aWNpcGF0ZSB0byBiZSBvbmUgb2YgdGhlIG1vc3QgY29tbW9uKD8pIHVzZXMuCgpT
dXJlLCB0aGF0J3MgZmluZSBieSBtZSEKClRob3VnaCwgSSBzdGlsbCB3YW5uYSBrZWVwIHBhdGhf
ZmlsZV9zdWZmaXgoKSBhcm91bmQsIGFzIHRoYXQgcmV0dXJucwpvbmx5IHRoZSBsYXN0IHN1ZmZp
eCAodGhlIGV4dGVuc2lvbiksIGFzIHRoYXQncyBhIGJpdCBtb3JlIGV4cGxpY2l0LgoKVGhlcmUg
YXJlIGEgZmV3IG90aGVyIGZ1bmN0aW9ucyB0aGF0IHJldHVybiBhIGxpc3RyZWYgaW4gc2NhbGFy
IGNvbnRleHQKdGhvdWdoOyBJJ2QgcHJlZmVyIHRvIGFkYXB0IHRob3NlIHRvbyB0aGVuLCBmb3Ig
Y29uc2lzdGVuY3kncyBzYWtlIGFuZAphbGwgdGhhdC4gKFNpbmNlIHRoaXMgaXMgYSBmcmVzaCBs
aWJyYXJ5LCBJIHdhbnQgaXQgdG8gaGF2ZSBubyBzdXJwcmlzZXMKYWJvdXQgaXRzIHVzYWdlIDtQ
ICkKCkknbGwgaGF2ZSB0byBhZGFwdCB0aGUgdGVzdHMgYSBsaXR0bGUgZm9yIHRoaXMsIGJ1dCBv
dGhlcndpc2UgdGhpcwpzaG91bGRuJ3QgYmUgbXVjaCBvZiBhIGhhc3NsZSB0byBjaGFuZ2UuCgo+
Cj4gPiAKPiA+ID4KPiA+ID4gPiArCj4gPiA+ID4gK1RoZSBzdWZmaXhlcyBvZiBhIHBhdGggYXJl
IGVzc2VudGlhbGx5IHRoZSBmaWxlIG5hbWUncyBleHRlbnNpb25zLCB0aGUgcGFydHMKPiA+ID4g
PiArdGhhdCBjb21lIGFmdGVyIHRoZSBMPDwgcHJlZml4fC8icGF0aF9maWxlX3ByZWZpeCgkcGF0
aCkiID4+Lgo+ID4gPiA+ICsKPiA+ID4gPiArICAgIG15IEBzdWZmaXhlcyA9IHBhdGhfZmlsZV9z
dWZmaXhlcygiL2V0Yy9yZXNvbHYuY29uZiIpOwo+ID4gPiA+ICsgICAgIyAoImNvbmYiKQo+ID4g
PiA+ICsKPiA+ID4gPiArICAgIG15ICRzdWZmaXhlcyA9IHBhdGhfZmlsZV9wcmVmaXgoIi90bXAv
YXJjaGl2ZS50YXIuenN0Iik7Cj4gPiA+ID4gKyAgICAjIFsidGFyIiwgInpzdCJdCj4gPiA+ID4g
Kwo+ID4gPiA+ICtUaHJvd3MgYW4gZXhjZXB0aW9uIGlmIEM8JHBhdGg+IGlzIEM8dW5kZWY+Lgo+
ID4gPiA+ICsKPiA+ID4gPiArPWN1dAo+ID4gPiA+ICsKPiA+ID4gPiArc3ViIHBhdGhfZmlsZV9z
dWZmaXhlcyA6IHByb3RvdHlwZSgkKSB7Cj4gPiA+ID4gKyAgICBteSAoJHBhdGgpID0gQF87Cj4g
PiA+ID4gKwo+ID4gPiA+ICsgICAgY3JvYWsgIlwkcGF0aCBpcyB1bmRlZiIgaWYgIWRlZmluZWQo
JHBhdGgpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgIG15ICRmaWxlX25hbWUgPSBwYXRoX2ZpbGVf
bmFtZSgkcGF0aCk7Cj4gPiA+ID4gKyAgICBpZiAoIWRlZmluZWQoJGZpbGVfbmFtZSkpIHsKPiA+
ID4gPiArCXJldHVybiB3YW50YXJyYXkgPyAoKSA6IFtdOwo+ID4gPiA+ICsgICAgfQo+ID4gPiA+
ICsKPiA+ID4gPiArICAgICh1bmRlZiwgJGZpbGVfbmFtZSkgPSBfcGF0aF9maWxlX3ByZWZpeCgk
ZmlsZV9uYW1lKTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICBteSBAc3VmZml4ZXMgPSBfcGF0aF9m
aWxlX3N1ZmZpeGVzKCRmaWxlX25hbWUpOwo+ID4gPiA+ICsKPiA+ID4gPiArICAgIHJldHVybiB3
YW50YXJyYXkgPyBAc3VmZml4ZXMgOiBcQHN1ZmZpeGVzOwo+ID4gPiA+ICt9Cj4gPiA+ID4gKwo+
ID4gPiA+ICs9aGVhZDMgcGF0aF93aXRoX2ZpbGVfc3VmZml4ZXMoJHBhdGgsIEBzdWZmaXhlcykK
PiA+ID4gPiArCj4gPiA+ID4gK1JldHVybnMgQzwkcGF0aD4gd2l0aCBuZXcgQzxAc3VmZml4ZXM+
LiBUaGlzIGlzIHNpbWlsYXIgdG8KPiA+ID4gPiArQzxMPDwgcGF0aF93aXRoX2ZpbGVfbmFtZSgp
fC8icGF0aF93aXRoX2ZpbGVfbmFtZSgkcGF0aCwgJGZpbGVfbmFtZSkiID4+PiwKPiA+ID4gPiAr
ZXhjZXB0IHRoYXQgdGhlIHN1ZmZpeGVzIG9mIHRoZSBmaWxlIG5hbWUgYXJlIHJlcGxhY2VkLgo+
ID4gPiA+ICsKPiA+ID4gPiArSWYgdGhlIEM8JHBhdGg+IGRvZXMgbm90IGhhdmUgYSBmaWxlIG5h
bWUsIEM8dW5kZWY+IGlzIHJldHVybmVkLgo+ID4gPiA+ICsKPiA+ID4gPiArICAgIG15ICRuZXdf
cGF0aCA9IHBhdGhfd2l0aF9maWxlX3N1ZmZpeGVzKCIvdG1wL2FyY2hpdmUudGFyLnpzdCIsICJw
eGFyIiwgImd6Iik7Cj4gPiA+ID4gKyAgICAjIC90bXAvYXJjaGl2ZS5weGFyLmd6Cj4gPiA+ID4g
Kwo+ID4gPiA+ICsgICAgbXkgJG5ld19wYXRoID0gcGF0aF93aXRoX2ZpbGVfc3VmZml4ZXMoIi90
bXAvYXJjaGl2ZS50YXIuenN0IiwgImd6Iik7Cj4gPiA+ID4gKyAgICAjIC90bXAvYXJjaGl2ZS5n
ego+ID4gPiA+ICsKPiA+ID4gPiArSWYgdGhlIGZpbGUgbmFtZSBoYXMgbm8gc3VmZml4ZXMsIHRo
ZSBDPEBzdWZmaXhlcz4gYXJlIGFwcGVuZGVkIGluc3RlYWQ6Cj4gPiA+ID4gKwo+ID4gPiA+ICsg
ICAgbXkgJG5ld19wYXRoID0gcGF0aF93aXRoX2ZpbGVfc3VmZml4ZXMoIi9ldGMvcmVzb2x2Iiwg
ImNvbmYiKTsKPiA+ID4gPiArICAgICMgL2V0Yy9yZXNvbHYuY29uZgo+ID4gPiA+ICsKPiA+ID4g
PiArICAgIG15ICRuZXdfcGF0aCA9IHBhdGhfd2l0aF9maWxlX3N1ZmZpeGVzKCIvZXRjL3Jlc29s
diIsICJjb25mIiwgInpzdCIpOwo+ID4gPiA+ICsgICAgIyAvZXRjL3Jlc29sdi5jb25mLnpzdAo+
ID4gPiA+ICsKPiA+ID4gPiArSWYgdGhlcmUgYXJlIG5vIEM8QHN1ZmZpeGVzPiBwcm92aWRlZCwg
dGhlIGZpbGUgbmFtZSdzIHN1ZmZpeGVzIHdpbGwKPiA+ID4gPiArYmUgcmVtb3ZlZCAoaWYgdGhl
cmUgYXJlIGFueSk6Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgbXkgJG5ld19wYXRoID0gcGF0aF93
aXRoX2ZpbGVfc3VmZml4ZXMoIi90bXAvYXJjaGl2ZS50YXIuenN0Iik7Cj4gPiA+ID4gKyAgICAj
IC90bXAvYXJjaGl2ZQo+ID4gPiA+ICsKPiA+ID4gPiArTm90ZSB0aGF0IGFuIGVtcHR5IHN0cmlu
ZyBpcyBzdGlsbCBhIHZhbGlkIHN1ZmZpeCAoYW4gImVtcHR5IiBmaWxlIGVuZGluZyk6Cj4gPiA+
ID4gKwo+ID4gPiA+ICsgICAgbXkgJG5ld19wYXRoID0gcGF0aF93aXRoX2ZpbGVfc3VmZml4ZXMo
Ii90bXAvYXJjaGl2ZS50YXIuenN0IiwgIiIsICIiLCAiIiwgInpzdCIpOwo+ID4gPiA+ICsgICAg
IyAvdG1wL2FyY2hpdmUuLi4uenN0Cj4gPiA+ID4gKwo+ID4gPiA+ICtUaHJvd3MgYW4gZXhjZXB0
aW9uIGlmIEM8JHBhdGg+IG9yIGFueSBvZiB0aGUgQzxAc3VmZml4ZXM+IGlzIEM8dW5kZWY+LCBv
cgo+ID4gPiA+ICtpZiBhbnkgc3VmZml4IGNvbnRhaW5zIGEgcGF0aCBzZXBhcmF0b3IgKEM8Lz4p
IG9yIGEgQzwuPi4KPiA+ID4gPiArCj4gPiA+ID4gKz1jdXQKPiA+ID4gPiArCj4gPiA+ID4gK3N1
YiBwYXRoX3dpdGhfZmlsZV9zdWZmaXhlcyA6IHByb3RvdHlwZSgkQCkgewo+ID4gPiA+ICsgICAg
bXkgKCRwYXRoLCBAc3VmZml4ZXMpID0gQF87Cj4gPiA+Cj4gPiA+IEkgYW0gcXVlc3Rpb25pbmcg
YSBiaXQgdGhlIHNhbml0eSBvZiBoYXZpbmcgInN1ZmZpeGVzIiB0aHJvdWdob3V0IHRoaXMKPiA+
ID4gbW9kdWxlIGluc3RlYWQgb2Ygc2ltcGx5IGFuICJleHRlbnNpb24iIHRoYXQgY292ZXJzIHRo
ZW0gYWxsIGFuZCBjYW4gYmUKPiA+ID4gc3BsaXQgaWYgbmVlZGVkLi4uCj4gPiA+Cj4gPiA+IERv
IHdlIGhhdmUvYW50aWNpcGF0ZSBwYXJ0aWN1bGFyIHVzZSBjYXNlcyB3aGVyZSB0aGlzIGlzIG1v
cmUKPiA+ID4gY29udmVuaWVudD8KPiA+IAo+ID4gVG8gYmUgcmVhbGx5IGhvbmVzdCwgaXQgd2Fz
IDUwLzUwIG9uIHRoZSAiZXh0ZW5zaW9uIiB2cyAic3VmZml4ZXMiCj4gPiBkZWNpc2lvbi4gSSB0
aGVuIG9wdGVkIGZvciBzdWZmaXhlcyBpbnN0ZWFkLCBiZWNhdXNlIHRoZXkgc2VlbWVkIHRvIGJl
Cj4gPiBsZXNzIGFtYmlndW91cyB0aGFuIGFuICJleHRlbnNpb24iLiBMZXQgbWUgZWxhYm9yYXRl
Lgo+ID4gCj4gPiBMZXQncyBzYXkgd2UgaGF2ZSBhIGZpbGUgY2FsbGVkICJmb28udGFyLmd6IiAt
LSB3aGF0IHdvdWxkIGl0cyBleHRlbnNpb24KPiA+IGJlPyBTb21lIG1pZ2h0IHNheSB0aGF0ICIu
dGFyLmd6IiBpcyBpdHMgZXh0ZW5zaW9uLCB3aGlsZSBzb21lIG90aGVycwo+ID4gbWlnaHQgc2F5
ICIuZ3oiOyBib3RoIGhhdmUgZGlmZmVyZW50IHJlYXNvbmluZ3MgYnV0IGFyZW4ndCBuZWNlc3Nh
cmlseQo+ID4gbW9yZSBvciBsZXNzIGNvcnJlY3QgdGhhbiB0aGUgb3RoZXIuCj4gPiAKPiA+IElu
IG91ciBjYXNlLCBib3RoIHlvdSBhbmQgSSB3b3VsZCBzYXkgdGhhdCAiLnRhci5neiIgaXMgdGhl
IGV4dGVuc2lvbiwKPiA+IGJ1dC4uLgo+ID4gCj4gPiBSdXN0J3Mgc3RkOjpwYXRoOjpQYXRoOjpl
eHRlbnNpb24gWzFdIHdvdWxkIHJldHVybiAiZ3oiIGZvciB0aGUgYWJvdmUsCj4gPiB3aGlsZSBD
KysncyBzdGQ6OmZpbGVzeXN0ZW06OnBhdGg6OmV4dGVuc2lvbiBbMl0gcmV0dXJucyAiLmd6IiAo
YnV0IHRoZXkKPiA+IGRvbid0IGhhdmUgc3VjaCBhIGNhc2UgaW4gdGhlaXIgZG9jcyEpLiBKYXZh
IGhhcyBqYXZhLm5pby5maWxlLlBhdGgsIGJ1dAo+ID4gY29udmVuaWVudGx5IGRvZXNuJ3QgY2Fy
ZSBhYm91dCBleHRlbnNpb25zLiBLb3RsaW4gZml4ZXN0IGhpcyBieSBhZGRpbmcKPiA+IGFuICJl
eHRlbnNpb24iIHByb3BlcnR5IHRvIHRoYXQgY2xhc3MsIHdoaWNoIHJldHVybnMgImd6IiBbM10u
Cj4gPiAKPiA+IFB5dGhvbidzIHBhdGhsaWIgaXMgdGhlIG9ubHkgb25lIEkndmUgc2VlbiBnbyB0
aGUgInN1ZmZpeCByb3V0ZSIgYW5kCj4gPiBwcm92aWRlcyB0aGUgcGF0aGxpYi5QdXJlUGF0aC5z
dWZmaXggYW5kIC5zdWZmaXhlcyBtZXRob2RzIFs0XS4gVGhpcwo+ID4gdHlwZSBvZiBhcHByb2Fj
aCBhbHNvIGNhbWUgdXAgb24gdGhlIChSdXN0KSB0cmFja2luZyBpc3N1ZSBmb3IKPiA+IFBhdGg6
OmZpbGVfcHJlZml4IFs1XS4KPiA+IAo+ID4gV2hlbiBJIHdhcyBsb29raW5nIHVwIGFsbCB0aGF0
LCBJIGRlY2lkZWQgdG8gZ28gZm9yIHRoZSBwcmVmaXggKwo+ID4gc3VmZml4KGVzKSByb3V0ZSwg
YXMgdGhhdCBqdXN0IHNlZW1lZCB0byBiZSB0aGUgbW9zdCB1bmFtYmlndW91cy4KPiA+IENvbnZl
bmllbmNlIHdhc24ndCByZWFsbHkgYSBmYWN0b3IgaGVyZSwgYmVjYXVzZSB0aGVyZSdzIHRoZQo+
ID4gInBhdGhfd2l0aF9maWxlXyogZmFtaWx5IiBvZiBmdW5jdGlvbnMgdGhhdCBzaG91bGQgaGFu
ZGxlIG1vc3Qgb2YgdGhlCj4gPiByZXBsYWNlbWVudCBjYXNlcy4KPiA+IAo+ID4gKEJlc2lkZXMs
IEkgZm91bmQgaXQgcXVpdGUgbmljZSB0aGF0IEkgY291bGQgam9pbigpIG9uIHRoZSBwcmVmaXgg
Kwo+ID4gc3VmZml4ZXMgKGUuZy4gam9pbigiLiIsICJmb28iLCAidGFyIiwgImd6IikpIHRoYXQg
SSBmaXJzdCBleHRyYWN0ZWQKPiA+IHdpdGggcGF0aF9maWxlX3ByZWZpeCgpIGFuZCBwYXRoX2Zp
bGVfc3VmZml4ZXMoKTsgSSBsaWtlIHRoYXQgdGhlcmUncyBhbgo+ID4gImludmVyc2UiIG9wZXJh
dGlvbi4pCj4gPiAKPiA+ICpCdXQsKiBJIHdvdWxkbid0IGJlIG9wcG9zZWQgdG8gYWRkaW5nIGEg
ZnVuY3Rpb24gdGhhdCBqdXN0IHJldHVybnMKPiA+ICJ0YXIuZ3oiIGZvciB0aGUgYWJvdmUgY2Fz
ZS4gUGVyaGFwcyB3aXRoIGEgZGlmZmVyZW50IG5hbWUgdGhvdWdoIDpQCj4gPiAKPiA+IFsxXSBo
dHRwczovL2RvYy5ydXN0LWxhbmcub3JnL3N0ZC9wYXRoL3N0cnVjdC5QYXRoLmh0bWwjbWV0aG9k
LmV4dGVuc2lvbgo+ID4gWzJdIGh0dHBzOi8vZW4uY3BwcmVmZXJlbmNlLmNvbS93L2NwcC9maWxl
c3lzdGVtL3BhdGgvZXh0ZW5zaW9uCj4gPiBbM10gaHR0cHM6Ly9naXRodWIuY29tL0pldEJyYWlu
cy9rb3RsaW4vYmxvYi9ycnIvMi4xLjAvY29yZS1kb2NzL2xpYnJhcmllcy9zdGRsaWIvamRrNy9z
cmMva290bGluL2lvL3BhdGgvUGF0aFV0aWxzLmt0I0w0Ngo+ID4gWzRdIGh0dHBzOi8vZG9jcy5w
eXRob24ub3JnLzMvbGlicmFyeS9wYXRobGliLmh0bWwjcGF0aGxpYi5QdXJlUGF0aC5zdWZmaXgK
PiA+IFs1XSBodHRwczovL2dpdGh1Yi5jb20vcnVzdC1sYW5nL3J1c3QvaXNzdWVzLzg2MzE5Cj4K
PiBUQkggSSB3b3VsZG4ndCBjYXJlIGlmIGl0IHJldHVybmVkICJ0YXIuZ3oiLCAiLnRhci5neiIs
ICJneiIgb3IgIi5neiIKPiBhcyBsb25nIGFzIGl0J3MgZG9jdW1lbnRlZCA7LSkuCj4KPiBCdXQg
eWVhaCwgSSBndWVzcyBzdWZmaXhlcyBtYWtlcyBzZW5zZSAtICJmb3JjZXMiKPCfpKopIHlvdSB0
byBub3QgaWdub3JlCj4gaXQgaW4geW91ciBjb2RlLi4uCgpBQ0sgLS0gd2lsbCBrZWVwIGl0IHRo
YXQgd2F5IHRoZW4uCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29t
Cmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1k
ZXZlbAo=