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 B53DB1FF172
	for <inbox@lore.proxmox.com>; Wed, 16 Apr 2025 13:37:20 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 437DD34A23;
	Wed, 16 Apr 2025 13:37:19 +0200 (CEST)
References: <20250326144410.430616-1-m.sandoval@proxmox.com>
 <yyqjnapm4rgrl6mle3wtxl3xafhecxnkyjrdoa6f2bifjhccj5@q5kujnnpexo2>
User-agent: mu4e 1.10.8; emacs 30.1
From: Maximiliano Sandoval <m.sandoval@proxmox.com>
To: Wolfgang Bumiller <w.bumiller@proxmox.com>
Date: Wed, 16 Apr 2025 13:36:52 +0200
In-reply-to: <yyqjnapm4rgrl6mle3wtxl3xafhecxnkyjrdoa6f2bifjhccj5@q5kujnnpexo2>
Message-ID: <s8o34e8gwwl.fsf@proxmox.com>
MIME-Version: 1.0
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.095 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
 URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See
 http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more
 information. [lib.rs, proxmox.com]
Subject: Re: [pbs-devel] [PATCH proxmox] proxmox-client: add query builder
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>
Cc: 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>

CldvbGZnYW5nIEJ1bWlsbGVyIDx3LmJ1bWlsbGVyQHByb3htb3guY29tPiB3cml0ZXM6Cgo+IE9u
IFdlZCwgTWFyIDI2LCAyMDI1IGF0IDAzOjQ0OjEwUE0gKzAxMDAsIE1heGltaWxpYW5vIFNhbmRv
dmFsIHdyb3RlOgo+PiBBIGJpZyBwcm9wb3J0aW9uIG9mIHRoZSBjb25zdW1lcnMgb2YgdGhpcyBB
UEkgdXNlIHRoZSBgZm9ybWF0IWAgbWFjcm8gdG8KPj4gZGVmaW5lIHRoZSBiYXNlIG9mIHRoZSB1
cmwsIGhlbmNlIHdlIHVzZSBhIGBDb3c8J18sIHN0cj5gIG9uIHRoZQo+PiBjb25zdHJ1Y3RvciB0
byBwcmV2ZW50IHVubmVjZXNzYXJ5IGFsbG9jYXRpb25zLgo+PiAKPj4gQSBgcGVybC1hcGktcGF0
aC1idWlsZGVyYCBmZWF0dXJlIHdhcyBhZGRlZCB0byBzYXRpc2Z5IHRoZSBuZWVkcyBvZgo+PiBw
dmUtYXBpLXR5cGVzLgo+PiAKPj4gU2lnbmVkLW9mZi1ieTogTWF4aW1pbGlhbm8gU2FuZG92YWwg
PG0uc2FuZG92YWxAcHJveG1veC5jb20+Cj4+IC0tLQo+PiAKPj4gVGhpcyBpcyBhIGZvbGxvdy11
cCBvZiBbMV0uIEkgd2lsbCBzZW5kIHRoZSBmb2xsb3ctdXBzIHNlcGFyYXRlbHkuCj4+IAo+PiBE
aWZmZXJlbmNlcyBmcm9tIHRoZSBSRkM6Cj4+ICAtIE1vcmUgZG9jcwo+PiAgLSBNb3JlIHRlc3Rz
Cj4+ICAtIE1vdmVkIGludG8gcHJveG1veC1jbGllbnQKPj4gCj4+IFsxXSBodHRwczovL2xvcmUu
cHJveG1veC5jb20vcGRtLWRldmVsLzdxaDVrY2htcmc0cmxhdmtvd3F4NDRqaWFtY3puYXJ4bjRr
b254d3cyNHpqN21zdXV2QGdzaHFwcjRsZHh1aS9ULyN1Cj4+IAo+PiAgcHJveG1veC1jbGllbnQv
Q2FyZ28udG9tbCAgICAgICAgICAgICAgfCAgIDUgKwo+PiAgcHJveG1veC1jbGllbnQvc3JjL2Fw
aV9wYXRoX2J1aWxkZXIucnMgfCAyNDIgKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgcHJv
eG1veC1jbGllbnQvc3JjL2xpYi5ycyAgICAgICAgICAgICAgfCAgIDQgKwo+PiAgMyBmaWxlcyBj
aGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKQo+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHByb3htb3gt
Y2xpZW50L3NyYy9hcGlfcGF0aF9idWlsZGVyLnJzCj4+IAo+PiBkaWZmIC0tZ2l0IGEvcHJveG1v
eC1jbGllbnQvQ2FyZ28udG9tbCBiL3Byb3htb3gtY2xpZW50L0NhcmdvLnRvbWwKPj4gaW5kZXgg
Zjg5MDUwMWUuLjAyN2ZiZTNlIDEwMDY0NAo+PiAtLS0gYS9wcm94bW94LWNsaWVudC9DYXJnby50
b21sCj4+ICsrKyBiL3Byb3htb3gtY2xpZW50L0NhcmdvLnRvbWwKPj4gQEAgLTE0LDYgKzE0LDcg
QEAgcmVwb3NpdG9yeS53b3Jrc3BhY2UgPSB0cnVlCj4+ICBhbnlob3cud29ya3NwYWNlID0gdHJ1
ZQo+PiAgaGV4LndvcmtzcGFjZSA9IHRydWUKPj4gIGh0dHAud29ya3NwYWNlID0gdHJ1ZQo+PiAr
cGVyY2VudC1lbmNvZGluZy53b3Jrc3BhY2UgPSB0cnVlCj4+ICBzZXJkZS53b3Jrc3BhY2UgPSB0
cnVlCj4+ICBzZXJkZV9qc29uLndvcmtzcGFjZSA9IHRydWUKPj4gIAo+PiBAQCAtMjYsNyArMjcs
MTEgQEAgcHJveG1veC1sb2dpbiA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgZmVhdHVyZXMgPSBbICJo
dHRwIiBdIH0KPj4gIHByb3htb3gtaHR0cCA9IHsgd29ya3NwYWNlID0gdHJ1ZSwgb3B0aW9uYWwg
PSB0cnVlLCBmZWF0dXJlcyA9IFsgImNsaWVudCIgXSB9Cj4+ICBoeXBlciA9IHsgd29ya3NwYWNl
ID0gdHJ1ZSwgb3B0aW9uYWwgPSB0cnVlIH0KPj4gIAo+PiArW2Rldi1kZXBlbmRlbmNpZXNdCj4+
ICtzZXJkZV9wbGFpbi53b3Jrc3BhY2UgPSB0cnVlCj4+ICsKPj4gIFtmZWF0dXJlc10KPj4gIGRl
ZmF1bHQgPSBbXQo+PiAgaHlwZXItY2xpZW50ID0gWyAiZGVwOm9wZW5zc2wiLCAiZGVwOmh5cGVy
IiwgImRlcDpwcm94bW94LWh0dHAiLCAiZGVwOmxvZyIgXQo+PiArcGVybC1hcGktcGF0aC1idWls
ZGVyID0gW10KPj4gIHdlYmF1dGhuID0gWyAicHJveG1veC1sb2dpbi93ZWJhdXRobiIgXQo+PiBk
aWZmIC0tZ2l0IGEvcHJveG1veC1jbGllbnQvc3JjL2FwaV9wYXRoX2J1aWxkZXIucnMgYi9wcm94
bW94LWNsaWVudC9zcmMvYXBpX3BhdGhfYnVpbGRlci5ycwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0
NAo+PiBpbmRleCAwMDAwMDAwMC4uYmMyZGZkZTQKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9w
cm94bW94LWNsaWVudC9zcmMvYXBpX3BhdGhfYnVpbGRlci5ycwo+PiBAQCAtMCwwICsxLDI0MiBA
QAo+PiArdXNlIHN0ZDo6Ym9ycm93OjpDb3c7Cj4+ICsKPj4gKy8vLyBCdWlsZGVyIGZvciBBUEkg
cGF0aHMgd2l0aCBhIHF1ZXJ5Lgo+PiArLy8vCj4+ICsvLy8gVGhlIFtTZWxmOjphcmddIG1ldGhv
ZCBjYW4gYmUgdXNlZCB0byBhZGQgbXVsdGlwbGUgYXJndW1lbnRzIHRvIHRoZSBxdWVyeS4KPgo+
IE1pc3NpbmcgYGJhY2t0aWNrc2AgYXJvdW5kIGBTZWxmOjphcmdgLgo+Cj4gQWxzbywgbWF5YmUg
dXNlICJbYGFyZ2BdKFNlbGY6OmFyZygpKSIgaW5zdGVhZD8KPgo+IFRoaXMgaGFwcGVucyB0aHJv
dWdob3V0IHRoZSBjb2RlIGJlbG93Lgo+Cj4+ICsvLy8KPj4gKy8vLyBgYGBydXN0Cj4+ICsvLy8g
dXNlIHByb3htb3hfY2xpZW50OjpBcGlQYXRoQnVpbGRlcjsKPj4gKy8vLwo+PiArLy8vIGxldCBz
dG9yYWdlID0gIm15LXN0b3JhZ2UiOwo+PiArLy8vIGxldCB0YXJnZXQgPSAibXktdGFyZ2V0IjsK
Pj4gKy8vLyBsZXQgbm9kZSA9ICJwdmUwMSI7Cj4+ICsvLy8gbGV0IHF1ZXJ5ID0gQXBpUGF0aEJ1
aWxkZXI6Om5ldyhmb3JtYXQhKCIvYXBpMi9leHRqcy9ub2Rlcy97bm9kZX0vc3RvcmFnZSIpKQo+
PiArLy8vICAgICAuYXJnKCJzdG9yYWdlIiwgc3RvcmFnZSkKPj4gKy8vLyAgICAgLmFyZygidGFy
Z2V0IiwgdGFyZ2V0KQo+PiArLy8vICAgICAuYnVpbGQoKTsKPj4gKy8vLwo+PiArLy8vIGFzc2Vy
dF9lcSEoJnF1ZXJ5LCAiL2FwaTIvZXh0anMvbm9kZXMvcHZlMDEvc3RvcmFnZT9zdG9yYWdlPW15
JTJEc3RvcmFnZSZ0YXJnZXQ9bXklMkR0YXJnZXQiKTsKPj4gKy8vLyBgYGAKPj4gKy8vLwo+PiAr
Ly8vICMjIENvbXBhdGliaWxpdHkgd2l0aCBwZXJsIEhUVFAgc2VydmVycwo+PiArLy8vCj4+ICsv
Ly8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSBhZGRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRo
IHBlcmwgSFRUUCBzZXJ2ZXJzLgo+PiArLy8vCj4+ICsvLy8gLSBgYm9vbF9hcmdgOiB0cmFuc2xh
dGVzIGJvb2xlYW5zIHRvIGAiMCJgL2AiMSJgCj4+ICsvLy8gLSBgbGlzdF9hcmdgOiBzcGxpdCBs
aXN0cyBzbyB0aGF0IHRoZXkgY2FuIGJlIGZlZWQgdG8gcGVybCdzIGBzcGxpdF9saXN0KClgCj4+
ICsvLy8KPj4gKy8vLyBUaGVzZSBtZXRob2RzIHJlcXVpcmUgdGhlIGBwZXJsLWFwaS1wYXRoLWJ1
aWxkZXJgIGZlYXR1cmUuCj4+ICtwdWIgc3RydWN0IEFwaVBhdGhCdWlsZGVyIHsKPj4gKyAgICB1
cmw6IFN0cmluZywKPj4gKyAgICBzZXBhcmF0b3I6IGNoYXIsCj4+ICt9Cj4+ICsKPj4gK2ltcGwg
QXBpUGF0aEJ1aWxkZXIgewo+PiArICAgIC8vLyBDcmVhdGVzIGEgbmV3IGJ1aWxkZXIgZnJvbSBh
IGJhc2UgcGF0aC4KPj4gKyAgICBwdWIgZm4gbmV3PCdhPihiYXNlOiBpbXBsIEludG88Q293PCdh
LCBzdHI+PikgLT4gU2VsZiB7Cj4+ICsgICAgICAgIFNlbGYgewo+PiArICAgICAgICAgICAgdXJs
OiBiYXNlLmludG8oKS5pbnRvX293bmVkKCksCj4+ICsgICAgICAgICAgICBzZXBhcmF0b3I6ICc/
JywKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKwo+PiArICAgIC8vLyBBZGRzIGFuIGFyZ3Vt
ZW50IHRvIHRoZSBxdWVyeS4KPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gVGhlIG5hbWUgYW5kIHZh
bHVlIHdpbGwgYmUgcGVyY2VudC1lbmNvZGVkLgo+PiArICAgIHB1YiBmbiBhcmc8VDogc3RkOjpm
bXQ6OkRpc3BsYXk+KG11dCBzZWxmLCBuYW1lOiAmc3RyLCB2YWx1ZTogVCkgLT4gU2VsZiB7Cj4+
ICsgICAgICAgIHNlbGYucHVzaF9zZXBhcmF0b3JfYW5kX25hbWUobmFtZSk7Cj4+ICsgICAgICAg
IHNlbGYucHVzaF9lbmNvZGVkKHZhbHVlLnRvX3N0cmluZygpLmFzX2J5dGVzKCkpOwo+PiArICAg
ICAgICBzZWxmCj4+ICsgICAgfQo+PiArCj4+ICsgICAgLy8vIEFkZHMgYW4gb3B0aW9uYWwgYXJn
dW1lbnQgdG8gdGhlIHF1ZXJ5Lgo+PiArICAgIC8vLwo+PiArICAgIC8vLyBEb2VzIG5vdGhpbmcg
aWYgdGhlIHZhbHVlIGlzIGBOb25lYC4gU2VlIFtTZWxmOjphcmddIGZvciBtb3JlIGRldGFpbHMu
Cj4+ICsgICAgcHViIGZuIG1heWJlX2FyZzxUOiBzdGQ6OmZtdDo6RGlzcGxheT4obXV0IHNlbGYs
IG5hbWU6ICZzdHIsIHZhbHVlOiAmT3B0aW9uPFQ+KSAtPiBTZWxmIHsKPj4gKyAgICAgICAgaWYg
bGV0IFNvbWUodmFsdWUpID0gdmFsdWUgewo+PiArICAgICAgICAgICAgc2VsZiA9IHNlbGYuYXJn
KG5hbWUsIHZhbHVlKTsKPj4gKyAgICAgICAgfQo+PiArICAgICAgICBzZWxmCj4+ICsgICAgfQo+
PiArCj4+ICsgICAgLy8vIEJ1aWxkcyB0aGUgdXJsLgo+PiArICAgIHB1YiBmbiBidWlsZChzZWxm
KSAtPiBTdHJpbmcgewo+PiArICAgICAgICBzZWxmLnVybAo+PiArICAgIH0KPj4gKwo+PiArICAg
IGZuIHB1c2hfc2VwYXJhdG9yX2FuZF9uYW1lKCZtdXQgc2VsZiwgbmFtZTogJnN0cikgewo+PiAr
ICAgICAgICBzZWxmLnVybC5wdXNoKHNlbGYuc2VwYXJhdG9yKTsKPj4gKyAgICAgICAgc2VsZi5z
ZXBhcmF0b3IgPSAnJic7Cj4+ICsgICAgICAgIHNlbGYucHVzaF9lbmNvZGVkKG5hbWUuYXNfYnl0
ZXMoKSk7Cj4+ICsgICAgICAgIHNlbGYudXJsLnB1c2goJz0nKTsKPj4gKyAgICB9Cj4+ICsKPj4g
KyAgICBmbiBwdXNoX2VuY29kZWQoJm11dCBzZWxmLCB2YWx1ZTogJlt1OF0pIHsKPj4gKyAgICAg
ICAgbGV0IGVuY192YWx1ZSA9IHBlcmNlbnRfZW5jb2Rpbmc6OnBlcmNlbnRfZW5jb2RlKHZhbHVl
LCBwZXJjZW50X2VuY29kaW5nOjpOT05fQUxQSEFOVU1FUklDKTsKPj4gKyAgICAgICAgc2VsZi51
cmwuZXh0ZW5kKGVuY192YWx1ZSk7Cj4+ICsgICAgfQo+PiArfQo+PiArCj4+ICsjW2NmZyhmZWF0
dXJlID0gInBlcmwtYXBpLXBhdGgtYnVpbGRlciIpXQo+PiAraW1wbCBBcGlQYXRoQnVpbGRlciB7
Cj4+ICsgICAgLy8vIEFkZHMgYSBib29sZWFuIGFyZyBpbiBhIHBlcmwtZnJpZW5kbHkgZmFzaGlv
bi4KPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYGBgcnVzdAo+PiArICAgIC8vLyB1c2UgcHJveG1v
eF9jbGllbnQ6OkFwaVBhdGhCdWlsZGVyOwo+PiArICAgIC8vLwo+PiArICAgIC8vLyBsZXQgbm9k
ZSA9ICJwdmUwMSI7Cj4+ICsgICAgLy8vIGxldCBxdWVyeSA9IEFwaVBhdGhCdWlsZGVyOjpuZXco
Zm9ybWF0ISgiL2FwaTIvZXh0anMvbm9kZXMve25vZGV9L3N0b3JhZ2UiKSkKPj4gKyAgICAvLy8g
ICAgIC5ib29sX2FyZygiZW5hYmxlZCIsIHRydWUpCj4+ICsgICAgLy8vICAgICAuYnVpbGQoKTsK
Pj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYXNzZXJ0X2VxISgmcXVlcnksICIvYXBpMi9leHRqcy9u
b2Rlcy9wdmUwMS9zdG9yYWdlP2VuYWJsZWQ9MSIpOwo+PiArICAgIC8vLyBgYGAKPj4gKyAgICAv
Ly8KPj4gKyAgICAvLy8gYHRydWVgIHdpbGwgYmUgY29udmVydGVkIGludG8gYCIxImAgYW5kIGBm
YWxzZWAgdG8gYCIwImAuCj4+ICsgICAgcHViIGZuIGJvb2xfYXJnKG11dCBzZWxmLCBuYW1lOiAm
c3RyLCB2YWx1ZTogYm9vbCkgLT4gU2VsZiB7Cj4+ICsgICAgICAgIHNlbGYucHVzaF9zZXBhcmF0
b3JfYW5kX25hbWUobmFtZSk7Cj4+ICsgICAgICAgIGlmIHZhbHVlIHsKPj4gKyAgICAgICAgICAg
IHNlbGYudXJsLnB1c2goJzEnKTsKPj4gKyAgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAg
IHNlbGYudXJsLnB1c2goJzAnKTsKPj4gKyAgICAgICAgfTsKPj4gKyAgICAgICAgc2VsZgo+PiAr
ICAgIH0KPj4gKwo+PiArICAgIC8vLyBBZGRzIGFuIG9wdGlvbmFsIGJvb2xlYW4gYXJnIGluIGEg
cGVybC1mcmllbmRseSBmYXNoaW9uLgo+PiArICAgIC8vLwo+PiArICAgIC8vLyBEb2VzIG5vdGhp
bmcgaWYgYHZhbHVlYCBpcyBgTm9uZWAuIFNlZSBbU2VsZjo6Ym9vbF9hcmddIGZvciBtb3JlCj4+
ICsgICAgLy8vIGRldGFpbHMuCj4+ICsgICAgcHViIGZuIG1heWJlX2Jvb2xfYXJnKG11dCBzZWxm
LCBuYW1lOiAmc3RyLCB2YWx1ZTogT3B0aW9uPGJvb2w+KSAtPiBTZWxmIHsKPj4gKyAgICAgICAg
aWYgbGV0IFNvbWUodmFsdWUpID0gdmFsdWUgewo+PiArICAgICAgICAgICAgc2VsZiA9IHNlbGYu
Ym9vbF9hcmcobmFtZSwgdmFsdWUpOwo+PiArICAgICAgICB9Cj4+ICsgICAgICAgIHNlbGYKPj4g
KyAgICB9Cj4+ICsKPj4gKyAgICAvLy8gSGVscGVyIGZvciBidWlsZGluZyBwZXJsLWZyaWVuZGx5
IHF1ZXJpZXMuCj4+ICsgICAgLy8vCj4+ICsgICAgLy8vIEZvciBgPHR5cGU+LWxpc3RgIGVudHJp
ZXMgd2UgdHVybiBhbiBhcnJheSBpbnRvIGEgc3RyaW5nIHJlYWR5IGZvcgo+PiArICAgIC8vLyBw
ZXJsJ3MgYHNwbGl0X2xpc3QoKWAgY2FsbC4KPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYGBgcnVz
dAo+PiArICAgIC8vLyB1c2UgcHJveG1veF9jbGllbnQ6OmFwaV9wYXRoX2J1aWxkZXI6OkFwaVBh
dGhCdWlsZGVyOwo+PiArICAgIC8vLwo+PiArICAgIC8vLyBsZXQgY29udGVudCA9IHZlYyFbImJh
Y2t1cCIsICJpbWFnZXMiXTsKPj4gKyAgICAvLy8gbGV0IG5vZGUgPSAibXlfbm9kZSI7Cj4+ICsg
ICAgLy8vIGxldCBxdWVyeSA9ICZwcm94bW94X2NsaWVudDo6QXBpUGF0aEJ1aWxkZXI6Om5ldyhm
b3JtYXQhKCIvYXBpMi9leHRqcy9ub2Rlcy97bm9kZX0vc3RvcmFnZSIpKQo+PiArICAgIC8vLyAg
ICAgLm1heWJlX2xpc3RfYXJnKCJjb250ZW50IiwgJmNvbnRlbnQpCj4+ICsgICAgLy8vICAgICAu
YXJnKCJ0eXBlIiwgInZtIikKPgo+IF4gQ29udGFpbnMgdHlwZT12bQo+Cj4+ICsgICAgLy8vICAg
ICAuYnVpbGQoKTsKPj4gKyAgICAvLy8KPj4gKyAgICAvLy8gYXNzZXJ0X2VxISgmcXVlcnksICIv
YXBpMi9leHRqcy9ub2Rlcy9teV9ub2RlL3N0b3JhZ2U/Y29udGVudD1iYWNrdXAlMDBpbWFnZXNz
Iik7Cj4KPiBeIGRvZXMgbm90IGNvbnRhaW4gdHlwZT12bS4uLgo+Cj4gaW93LiB0aGUgdGVzdCBz
dWl0ZSBmYWlscyB3aXRoIGAtLWFsbC1mZWF0dXJlc2AKPgo+PiArICAgIC8vLyBgYGAKPj4gKyAg
ICAvLy8KPj4gKyAgICAvLy8gVGhlIG5hbWUgYW5kIHZhbHVlcyB3aWxsIGJlIHBlcmNlbnQtZW5j
b2RlZC4KPj4gKyAgICBwdWIgZm4gbGlzdF9hcmc8VDogc3RkOjpmbXQ6OkRpc3BsYXksIEk6IElu
dG9JdGVyYXRvcjxJdGVtID0gVD4+KAo+Cj4gXiBUaGlzIGlzIHF1aXRlIGxvbmcsIHBsZWFzZSBt
b3ZlIGl0IGludG8gYSB3aGVyZSBjYWx1c2UuCj4gQWxzbywgeW91IGNhbiBza2lwIGBUYCB2aWE6
Cj4KPiAgICAgd2hlcmUKPiAgICAgICAgIEk6IEludG9JdGVyYXRvciwKPiAgICAgICAgIEk6Okl0
ZW06IERpc3BsYXksCj4KPiBBbmQgc2luY2UgMS43OSBhc3NvY2lhdGVkIHR5cGUgYm91bmRzIGFy
ZSBzdGFibGUsIHNvIHlvdSBjYW4gYWN0dWFsbHkKPiBkbzoKPiAgICAgd2hlcmUKPiAgICAgICAg
IEk6IEludG9JdGVyYXRvcjxJdGVtOiBEaXNwbGF5PiwKPgo+Cj4KPj4gKyAgICAgICAgbXV0IHNl
bGYsCj4+ICsgICAgICAgIG5hbWU6ICZzdHIsCj4+ICsgICAgICAgIHZhbHVlczogSSwKPj4gKyAg
ICApIC0+IFNlbGYgewo+PiArICAgICAgICBzZWxmLnB1c2hfc2VwYXJhdG9yX2FuZF9uYW1lKG5h
bWUpOwo+PiArICAgICAgICBsZXQgbXV0IGxpc3Rfc2VwYXJhdG9yID0gIiI7Cj4+ICsgICAgICAg
IGZvciBlbnRyeSBpbiB2YWx1ZXMuaW50b19pdGVyKCkgewo+PiArICAgICAgICAgICAgc2VsZi51
cmwucHVzaF9zdHIobGlzdF9zZXBhcmF0b3IpOwo+PiArICAgICAgICAgICAgbGlzdF9zZXBhcmF0
b3IgPSAiJTAwIjsKPj4gKyAgICAgICAgICAgIHNlbGYucHVzaF9lbmNvZGVkKGVudHJ5LnRvX3N0
cmluZygpLmFzX2J5dGVzKCkpOwo+PiArICAgICAgICB9Cj4+ICsgICAgICAgIHNlbGYKPj4gKyAg
ICB9Cj4+ICsKPj4gKyAgICAvLy8gSGVscGVyIGZvciBidWlsZGluZyBwZXJsLWZyaWVuZGx5IHF1
ZXJpZXMuCj4+ICsgICAgLy8vCj4+ICsgICAgLy8vIFNlZSBbU2VsZjo6bGlzdF9hcmddIGZvciBt
b3JlIGRldGFpbHMuCj4+ICsgICAgcHViIGZuIG1heWJlX2xpc3RfYXJnPFQ6IHN0ZDo6Zm10OjpE
aXNwbGF5PigKPj4gKyAgICAgICAgbXV0IHNlbGYsCj4+ICsgICAgICAgIG5hbWU6ICZzdHIsCj4+
ICsgICAgICAgIHZhbHVlczogJk9wdGlvbjxWZWM8VD4+LAo+PiArICAgICkgLT4gU2VsZiB7Cj4K
PiBPaCBJIHNvIHdpc2gKPiAgICAgd2hlcmUgZm9yPCdhPiAmJ2EgSTogSW50b0l0ZXJhdG9yPFQ6
IERpc3BsYXk+Cj4gd291bGQgYWN0dWFsbHkgKndvcmsqICh0byByZXBsYWNlIGBWZWM8VD5gIHdp
dGggYW4gYElgLCBidXQgaXQgZG9lc24ndAo+IHJpZ2h0IG5vdy4uLgo+Cj4+ICsgICAgICAgIGlm
IGxldCBTb21lKHZhbHVlcykgPSB2YWx1ZXMgewo+PiArICAgICAgICAgICAgc2VsZiA9IHNlbGYu
bGlzdF9hcmcobmFtZSwgdmFsdWVzLml0ZXIoKSk7Cj4+ICsgICAgICAgIH07Cj4+ICsgICAgICAg
IHNlbGYKPj4gKyAgICB9Cj4+ICt9Cj4+ICsKPj4gKyNbY2ZnKHRlc3QpXQo+PiArbW9kIHRlc3Rz
IHsKPj4gKyAgICB1c2Ugc3VwZXI6Oio7Cj4+ICsKPj4gKyAgICAvLyBTZWUgcGRtX2FwaV90eXBl
czo6Q29uZmlndXJhdGlvblN0YXRlLgo+PiArICAgICNbZGVyaXZlKHNlcmRlOjpTZXJpYWxpemUp
XQo+PiArICAgICNbc2VyZGUocmVuYW1lX2FsbCA9ICJrZWJhYi1jYXNlIildCj4+ICsgICAgZW51
bSBDb25maWd1cmF0aW9uU3RhdGUgewo+PiArICAgICAgICBBY3RpdmUsCj4+ICsgICAgfQo+PiAr
ICAgIHNlcmRlX3BsYWluOjpkZXJpdmVfZGlzcGxheV9mcm9tX3NlcmlhbGl6ZSEoQ29uZmlndXJh
dGlvblN0YXRlKTsKPj4gKwo+PiArICAgIC8vIFNlZSBwdmVfYXBpX3R5cGVzOjpDbHVzdGVyUmVz
b3VyY2VLaW5kLgo+PiArICAgICNbZGVyaXZlKHNlcmRlOjpTZXJpYWxpemUpXQo+PiArICAgIGVu
dW0gQ2x1c3RlclJlc291cmNlS2luZCB7Cj4+ICsgICAgICAgICNbc2VyZGUocmVuYW1lID0gInZt
IildCj4+ICsgICAgICAgIFZtLAo+PiArICAgIH0KPj4gKyAgICBzZXJkZV9wbGFpbjo6ZGVyaXZl
X2Rpc3BsYXlfZnJvbV9zZXJpYWxpemUhKENsdXN0ZXJSZXNvdXJjZUtpbmQpOwo+PiArCj4+ICsg
ICAgI1t0ZXN0XQo+PiArICAgIGZuIHRlc3RfYnVpbGRlcigpIHsKPj4gKyAgICAgICAgbGV0IGV4
cGVjdGVkID0gIi9hcGkyL2V4dGpzL2NsdXN0ZXIvcmVzb3VyY2VzP3R5cGU9dm0iOwo+PiArICAg
ICAgICBsZXQgdHkgPSBDbHVzdGVyUmVzb3VyY2VLaW5kOjpWbTsKPj4gKwo+PiArICAgICAgICBs
ZXQgcXVlcnkgPSBBcGlQYXRoQnVpbGRlcjo6bmV3KCIvYXBpMi9leHRqcy9jbHVzdGVyL3Jlc291
cmNlcyIpCj4+ICsgICAgICAgICAgICAuYXJnKCJ0eXBlIiwgdHkpCj4+ICsgICAgICAgICAgICAu
YnVpbGQoKTsKPj4gKwo+PiArICAgICAgICBhc3NlcnRfZXEhKCZxdWVyeSwgZXhwZWN0ZWQpOwo+
PiArCj4+ICsgICAgICAgIGxldCBzZWNvbmRfZXhwZWN0ZWQgPQo+PiArICAgICAgICAgICAgIi9h
cGkyL2V4dGpzL3B2ZS9yZW1vdGVzL3NvbWUtcmVtb3RlL3FlbXUvMTAwL2NvbmZpZz9zdGF0ZT1h
Y3RpdmUmbm9kZT1teU5vZGUiOwo+PiArICAgICAgICBsZXQgc3RhdGUgPSBDb25maWd1cmF0aW9u
U3RhdGU6OkFjdGl2ZTsKPj4gKyAgICAgICAgbGV0IG5vZGUgPSAibXlOb2RlIjsKPj4gKyAgICAg
ICAgbGV0IHNuYXBzaG90ID0gTm9uZTo6PCZzdHI+Owo+PiArCj4+ICsgICAgICAgIGxldCBzZWNv
bmRfcXVlcnkgPQo+PiArICAgICAgICAgICAgQXBpUGF0aEJ1aWxkZXI6Om5ldygiL2FwaTIvZXh0
anMvcHZlL3JlbW90ZXMvc29tZS1yZW1vdGUvcWVtdS8xMDAvY29uZmlnIikKPj4gKyAgICAgICAg
ICAgICAgICAuYXJnKCJzdGF0ZSIsIHN0YXRlKQo+PiArICAgICAgICAgICAgICAgIC5hcmcoIm5v
ZGUiLCBub2RlKQo+PiArICAgICAgICAgICAgICAgIC5tYXliZV9hcmcoInNuYXBzaG90IiwgJnNu
YXBzaG90KQo+PiArICAgICAgICAgICAgICAgIC5idWlsZCgpOwo+PiArCj4+ICsgICAgICAgIGFz
c2VydF9lcSEoJnNlY29uZF9xdWVyeSwgJnNlY29uZF9leHBlY3RlZCk7Cj4+ICsgICAgfQo+PiAr
fQo+PiArCj4+ICsjW2NmZyhhbGwodGVzdCwgZmVhdHVyZSA9ICJwZXJsLWFwaS1wYXRoLWJ1aWxk
ZXIiKSldCj4+ICttb2QgcGVybF90ZXN0cyB7Cj4+ICsgICAgdXNlIHN1cGVyOjoqOwo+PiArCj4+
ICsgICAgI1t0ZXN0XQo+PiArICAgIGZuIHRlc3RfcGVybF9idWlsZGVyKCkgewo+PiArICAgICAg
ICBsZXQgaGlzdG9yeSA9IHRydWU7Cj4+ICsgICAgICAgIGxldCBsb2NhbF9vbmx5ID0gZmFsc2U7
Cj4+ICsgICAgICAgIGxldCBzdGFydF90aW1lID0gMTAwMDsKPj4gKwo+PiArICAgICAgICBsZXQg
ZXhwZWN0ZWRfdXJsID0KPj4gKyAgICAgICAgICAgICIvYXBpMi9leHRqcy9jbHVzdGVyL21ldHJp
Y3MvZXhwb3J0P2hpc3Rvcnk9MSZsb2NhbCUyRG9ubHk9MCZzdGFydCUyRHRpbWU9MTAwMCI7Cj4+
ICsKPj4gKyAgICAgICAgbGV0IHF1ZXJ5ID0gQXBpUGF0aEJ1aWxkZXI6Om5ldygiL2FwaTIvZXh0
anMvY2x1c3Rlci9tZXRyaWNzL2V4cG9ydCIpCj4+ICsgICAgICAgICAgICAuYm9vbF9hcmcoImhp
c3RvcnkiLCBoaXN0b3J5KQo+PiArICAgICAgICAgICAgLmJvb2xfYXJnKCJsb2NhbC1vbmx5Iiwg
bG9jYWxfb25seSkKPj4gKyAgICAgICAgICAgIC5hcmcoInN0YXJ0LXRpbWUiLCBzdGFydF90aW1l
KQo+PiArICAgICAgICAgICAgLmJ1aWxkKCk7Cj4+ICsgICAgICAgIGFzc2VydF9lcSEoZXhwZWN0
ZWRfdXJsLCBxdWVyeSk7Cj4+ICsKPj4gKyAgICAgICAgbGV0IHF1ZXJ5X3dpdGhfbWF5YmUgPSBB
cGlQYXRoQnVpbGRlcjo6bmV3KCIvYXBpMi9leHRqcy9jbHVzdGVyL21ldHJpY3MvZXhwb3J0IikK
Pj4gKyAgICAgICAgICAgIC5tYXliZV9ib29sX2FyZygiaGlzdG9yeSIsIFNvbWUoaGlzdG9yeSkp
Cj4+ICsgICAgICAgICAgICAubWF5YmVfYm9vbF9hcmcoImxvY2FsLW9ubHkiLCBTb21lKGxvY2Fs
X29ubHkpKQo+PiArICAgICAgICAgICAgLm1heWJlX2FyZygic3RhcnQtdGltZSIsICZTb21lKHN0
YXJ0X3RpbWUpKQo+PiArICAgICAgICAgICAgLmJ1aWxkKCk7Cj4+ICsKPj4gKyAgICAgICAgYXNz
ZXJ0X2VxIShleHBlY3RlZF91cmwsIHF1ZXJ5X3dpdGhfbWF5YmUpOwo+PiArICAgIH0KPj4gK30K
Pj4gZGlmZiAtLWdpdCBhL3Byb3htb3gtY2xpZW50L3NyYy9saWIucnMgYi9wcm94bW94LWNsaWVu
dC9zcmMvbGliLnJzCj4+IGluZGV4IDAwYzQ4NjY1Li41OTc4ZDUwMSAxMDA2NDQKPj4gLS0tIGEv
cHJveG1veC1jbGllbnQvc3JjL2xpYi5ycwo+PiArKysgYi9wcm94bW94LWNsaWVudC9zcmMvbGli
LnJzCj4+IEBAIC0xNCw2ICsxNCwxMCBAQCBwdWIgdXNlIGVycm9yOjpFcnJvcjsKPj4gIHB1YiB1
c2UgcHJveG1veF9sb2dpbjo6dGZhOjpUZmFDaGFsbGVuZ2U7Cj4+ICBwdWIgdXNlIHByb3htb3hf
bG9naW46OntBdXRoZW50aWNhdGlvbiwgVGlja2V0fTsKPj4gIAo+PiArcHViIG1vZCBhcGlfcGF0
aF9idWlsZGVyOwo+Cj4g4oaRIERyb3AgdGhlIGBwdWJgIGhlcmUKPiBBbmQgdGhlIG5ld2xpbmUg
4oaTCj4KPj4gKwo+PiArcHViIHVzZSBhcGlfcGF0aF9idWlsZGVyOjpBcGlQYXRoQnVpbGRlcjsK
Pj4gKwo+PiAgcHViKGNyYXRlKSBtb2QgYXV0aDsKPj4gIHB1YiB1c2UgYXV0aDo6e0F1dGhlbnRp
Y2F0aW9uS2luZCwgVG9rZW59Owo+PiAgCj4+IC0tIAo+PiAyLjM5LjUKCgpTdXBlcnNlZGVkIGJ5
IGh0dHBzOi8vbG9yZS5wcm94bW94LmNvbS9wYnMtZGV2ZWwvMjAyNTA0MTYxMTM2MDEuMjU2ODI5
LTEtbS5zYW5kb3ZhbEBwcm94bW94LmNvbS9ULyN1LgoKCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVs
QGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWls
bWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=