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 14A1A1FF15C
	for <inbox@lore.proxmox.com>; Fri, 30 May 2025 13:45:45 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 7D0FD2DA21;
	Fri, 30 May 2025 13:46:00 +0200 (CEST)
Message-ID: <9b24918c-0f4a-489d-8bf8-d3e2a423749b@proxmox.com>
Date: Fri, 30 May 2025 13:45:26 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Christian Ebner <c.ebner@proxmox.com>,
 Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com>
References: <20250515124138.55436-1-h.laimer@proxmox.com>
 <20250515124138.55436-5-h.laimer@proxmox.com>
 <4566b2e4-1736-4a30-bd65-0a457d6efd59@proxmox.com>
Content-Language: en-US
From: Hannes Laimer <h.laimer@proxmox.com>
In-Reply-To: <4566b2e4-1736-4a30-bd65-0a457d6efd59@proxmox.com>
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.024 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-backup v2 4/8] api: admin: run
 configured sync jobs when a datastore is mounted
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-Transfer-Encoding: base64
Content-Type: text/plain; charset="utf-8"; Format="flowed"
Errors-To: pbs-devel-bounces@lists.proxmox.com
Sender: "pbs-devel" <pbs-devel-bounces@lists.proxmox.com>

YWRkZWQgc29tZSBpbmxpbmUgY29tbWVudHMsIEknbGwgcHJvYmFibHkgc2VuZCBhIHYzIGFkZHJl
c3Npbmcgc29tZSBvZgp0aGUgdGhpbmdzIHlvdSBtZW50aW9uZWQKCk9uIDUvMzAvMjUgMTI6MDIs
IENocmlzdGlhbiBFYm5lciB3cm90ZToKPiBwbGVhc2Ugc2VlIHNvbWUgY29tbWVudHMgaW5saW5l
Cj4gCj4gT24gNS8xNS8yNSAxNDo0MSwgSGFubmVzIExhaW1lciB3cm90ZToKPj4gV2hlbiBhIGRh
dGFzdG9yZSBpcyBtb3VudGVkLCBzcGF3biBhIG5ldyB0YXNrIHRvIHJ1biBhbGwgc3luYyBqb2Jz
Cj4+IG1hcmtlZCB3aXRoIGBydW4tb24tbW91bnRgLiBUaGVzZSBqb2JzIHJ1biBzZXF1ZW50aWFs
bHkgYW5kIGluY2x1ZGUKPj4gYW55IGpvYiBmb3Igd2hpY2ggdGhlIG1vdW50ZWQgZGF0YXN0b3Jl
IGlzOgo+Pgo+PiAtIFRoZSBzb3VyY2Ugb3IgdGFyZ2V0IGluIGEgbG9jYWwgcHVzaC9wdWxsIGpv
Ygo+PiAtIFRoZSBzb3VyY2UgaW4gYSBwdXNoIGpvYiB0byBhIHJlbW90ZSBkYXRhc3RvcmUKPj4g
LSBUaGUgdGFyZ2V0IGluIGEgcHVsbCBqb2IgZnJvbSBhIHJlbW90ZSBkYXRhc3RvcmUKPj4KPj4g
U2lnbmVkLW9mZi1ieTogSGFubmVzIExhaW1lciA8aC5sYWltZXJAcHJveG1veC5jb20+Cj4+IC0t
LQo+PiDCoCBzcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMgfCA5MSArKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tCj4+IMKgIHNyYy9hcGkyL2FkbWluL3N5bmMucnPCoMKgwqDC
oMKgIHzCoCAyICstCj4+IMKgIHNyYy9zZXJ2ZXIvc3luYy5yc8KgwqDCoMKgwqDCoMKgwqDCoCB8
wqAgNyArLS0KPj4gwqAgMyBmaWxlcyBjaGFuZ2VkLCA5MSBpbnNlcnRpb25zKCspLCA5IGRlbGV0
aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzIGIv
c3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4+IGluZGV4IDM5MjQ5NDQ4OC4uODQ2M2FkYjZh
IDEwMDY0NAo+PiAtLS0gYS9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPj4gKysrIGIvc3Jj
L2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4+IEBAIC00Miw4ICs0Miw4IEBAIHVzZSBwYnNfYXBp
X3R5cGVzOjp7Cj4+IMKgwqDCoMKgwqAgRGF0YVN0b3JlQ29uZmlnLCBEYXRhU3RvcmVMaXN0SXRl
bSwgRGF0YVN0b3JlTW91bnRTdGF0dXMsIAo+PiBEYXRhU3RvcmVTdGF0dXMsCj4+IMKgwqDCoMKg
wqAgR2FyYmFnZUNvbGxlY3Rpb25Kb2JTdGF0dXMsIEdyb3VwTGlzdEl0ZW0sIEpvYlNjaGVkdWxl
U3RhdHVzLCAKPj4gS2VlcE9wdGlvbnMsIE1haW50ZW5hbmNlTW9kZSwKPj4gwqDCoMKgwqDCoCBN
YWludGVuYW5jZVR5cGUsIE9wZXJhdGlvbiwgUHJ1bmVKb2JPcHRpb25zLCBTbmFwc2hvdExpc3RJ
dGVtLCAKPj4gU25hcHNob3RWZXJpZnlTdGF0ZSwKPj4gLcKgwqDCoCBCQUNLVVBfQVJDSElWRV9O
QU1FX1NDSEVNQSwgQkFDS1VQX0lEX1NDSEVNQSwgCj4+IEJBQ0tVUF9OQU1FU1BBQ0VfU0NIRU1B
LCBCQUNLVVBfVElNRV9TQ0hFTUEsCj4+IC3CoMKgwqAgQkFDS1VQX1RZUEVfU0NIRU1BLCBDQVRB
TE9HX05BTUUsIENMSUVOVF9MT0dfQkxPQl9OQU1FLCAKPj4gREFUQVNUT1JFX1NDSEVNQSwKPj4g
K8KgwqDCoCBTeW5jSm9iQ29uZmlnLCBCQUNLVVBfQVJDSElWRV9OQU1FX1NDSEVNQSwgQkFDS1VQ
X0lEX1NDSEVNQSwgCj4+IEJBQ0tVUF9OQU1FU1BBQ0VfU0NIRU1BLAo+PiArwqDCoMKgIEJBQ0tV
UF9USU1FX1NDSEVNQSwgQkFDS1VQX1RZUEVfU0NIRU1BLCBDQVRBTE9HX05BTUUsIAo+PiBDTElF
TlRfTE9HX0JMT0JfTkFNRSwgREFUQVNUT1JFX1NDSEVNQSwKPj4gwqDCoMKgwqDCoCBJR05PUkVf
VkVSSUZJRURfQkFDS1VQU19TQ0hFTUEsIE1BTklGRVNUX0JMT0JfTkFNRSwgCj4+IE1BWF9OQU1F
U1BBQ0VfREVQVEgsIE5TX01BWF9ERVBUSF9TQ0hFTUEsCj4+IMKgwqDCoMKgwqAgUFJJVl9EQVRB
U1RPUkVfQVVESVQsIFBSSVZfREFUQVNUT1JFX0JBQ0tVUCwgCj4+IFBSSVZfREFUQVNUT1JFX01P
RElGWSwgUFJJVl9EQVRBU1RPUkVfUFJVTkUsCj4+IMKgwqDCoMKgwqAgUFJJVl9EQVRBU1RPUkVf
UkVBRCwgUFJJVl9EQVRBU1RPUkVfVkVSSUZZLCBQUklWX1NZU19NT0RJRlksIAo+PiBVUElELCBV
UElEX1NDSEVNQSwKPj4gQEAgLTI1MTAsNiArMjUxMCw1MSBAQCBwdWIgZm4gZG9fbW91bnRfZGV2
aWNlKGRhdGFzdG9yZTogCj4+IERhdGFTdG9yZUNvbmZpZykgLT4gUmVzdWx0PCgpLCBFcnJvcj4g
ewo+PiDCoMKgwqDCoMKgIE9rKCgpKQo+PiDCoCB9Cj4+ICthc3luYyBmbiBkb19zeW5jX2pvYnMo
Cj4+ICvCoMKgwqAgam9ic190b19ydW46IFZlYzxTeW5jSm9iQ29uZmlnPiwKPj4gK8KgwqDCoCB3
b3JrZXI6IEFyYzxXb3JrZXJUYXNrPiwKPj4gKykgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiAr
wqDCoMKgIGxldCBjb3VudCA9IGpvYnNfdG9fcnVuLmxlbigpOwo+PiArwqDCoMKgIGluZm8hKAo+
PiArwqDCoMKgwqDCoMKgwqAgIndpbGwgcnVuIHt9IHN5bmMgam9iczoge30iLAo+PiArwqDCoMKg
wqDCoMKgwqAgY291bnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBqb2JzX3RvX3J1bgo+PiArwqDCoMKg
wqDCoMKgwqDCoMKgwqDCoCAuaXRlcigpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5tYXAo
fGp8IGouaWQuY2xvbmUoKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmNvbGxlY3Q6OjxW
ZWM8U3RyaW5nPj4oKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAuam9pbigiLCAiKQo+PiAr
wqDCoMKgICk7Cj4gCj4gbml0Ogo+IAo+IGFib3ZlIGNhbiBiZSByZXdyaXR0ZW4gd2l0aG91dCBj
bG9uaW5nIHRoZSBqb2IgaWRzIGFuZCBgY291bnRgIGluLWxpbmVkIGFzOgo+IGBgYAo+ICDCoMKg
wqAgaW5mbyEoCj4gIMKgwqDCoMKgwqDCoMKgICJ3aWxsIHJ1biB7Y291bnR9IHN5bmMgam9iczog
e30iLAo+ICDCoMKgwqDCoMKgwqDCoCBqb2JzX3RvX3J1bgo+ICDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgIC5pdGVyKCkKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAubWFwKHxzeW5jX2pvYl9jb25m
aWd8IHN5bmNfam9iX2NvbmZpZy5pZC5hc19zdHIoKSkKPiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oCAuY29sbGVjdDo6PFZlYzwmc3RyPj4oKQo+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5qb2lu
KCIsICIpCj4gIMKgwqDCoCApOwo+IGBgYAo+IAo+PiArCj4+ICvCoMKgwqAgZm9yIChpLCBqb2Jf
Y29uZmlnKSBpbiBqb2JzX3RvX3J1bi5pbnRvX2l0ZXIoKS5lbnVtZXJhdGUoKSB7Cj4+ICvCoMKg
wqDCoMKgwqDCoCBpZiB3b3JrZXIuYWJvcnRfcmVxdWVzdGVkKCkgewo+PiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBiYWlsISgiYWJvcnRlZCBkdWUgdG8gdXNlciByZXF1ZXN0Iik7Cj4+ICvCoMKg
wqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgam9iX2lkID0gam9iX2NvbmZpZy5p
ZC5jbG9uZSgpOwo+PiArwqDCoMKgwqDCoMKgwqAgbGV0IE9rKGpvYikgPSBKb2I6Om5ldygic3lu
Y2pvYiIsICZqb2JfaWQpIGVsc2Ugewo+IAo+IG5pdDogdGhpcyBzaG91bGQgbG9nIGFuIGVycm9y
L3dhcm5pbmcgYW5kIHRoZSBzdGF0dXMgcHJvZ3Jlc3MsIGFzIHRoaXMgCj4gd2lsbCBmYWlsIGlm
IHRoZSBqb2IgbG9jayBjYW5ub3QgYmUgYWNxdWlyZWQuIFRoYXQgaXMgc29tZXRoaW5nIHdoaWNo
IGlzIAo+IG9mIGludGVyZXN0IGZvciBkZWJ1Z2dpbmcuCj4gCm1ha2VzIHNlbnNlLCB3aWxsIGRv
Cgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb250aW51ZTsKPj4gK8KgwqDCoMKgwqDCoMKg
IH07Cj4+ICvCoMKgwqDCoMKgwqDCoCBsZXQgYXV0aF9pZCA9IEF1dGhpZDo6cm9vdF9hdXRoX2lk
KCkuY2xvbmUoKTsKPiAKPiBuaXQ6IGF1dGhfaWQgZG9lcyBub3QgbmVlZCB0byBiZSBjbG9uZWQg
aGVyZSAuLi4KPiAKPj4gK8KgwqDCoMKgwqDCoMKgIGluZm8hKCJbe30ve2NvdW50fV0gc3RhcnRp
bmcgJ3tqb2JfaWR9Jy4uLiIsIGkgKyAxKTsKPj4gK8KgwqDCoMKgwqDCoMKgIG1hdGNoIGNyYXRl
OjpzZXJ2ZXI6OmRvX3N5bmNfam9iKAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBqb2IsCj4+
ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGpvYl9jb25maWcsCj4+ICvCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgICZhdXRoX2lkLAo+IAo+IC4uLiBzaW5jZSBvbmx5IHBhc3NlZCBhcyByZWZlcmVuY2Ug
aGVyZS4KPiAKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgU29tZSgibW91bnQiLnRvX3N0cmlu
ZygpKSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDC
oCApIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgT2soKF91cGlkLCBoYW5kbGUpKSA9PiB7
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG9raW86OnNlbGVjdCEgewo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3luY19kb25lID0gaGFuZGxl
LmZ1c2UoKSA9PiBpZiBsZXQgRXJyKGVycikgPSAKPj4gc3luY19kb25lIHsgd2FybiEoImNvdWxk
IG5vdCB3YWl0IGZvciBqb2IgdG8gZmluaXNoOiB7ZXJyfSIpOyB9LAo+IAo+IHF1ZXN0aW9uOiBz
aG91bGQgdGhpcyBiZSBsb2dnZWQgYXMgZXJyb3IgcmF0aGVyIHRoYW4gYSB3YXJuaW5nIC4uLgo+
IAoKaG1tLCBtYXliZS4gQnV0IGl0IGRvZXNuJ3QgbWVhbiBhbnl0aGluZyBuZWNlc3NhcmlseSBm
YWlsZWQsIHRoZSBzeW5jCml0c2VsZiB3aWxsIGNvbnRpbnVlLiBXZSdsbCBqdXN0IHN0YXJ0IHRo
ZSBuZXh0IG9uZSB3aXRob3V0IHdhaXRpbmcuCgpCdXQgSSdtIG5vdCBzdXBlciBzdXJlIGV4YWN0
bHkgd2hlbiB0aGlzIHdvdWxkIGZhaWwsIG1heWJlIHRoZXJlIGFyZQpzb21lIGNhc2VzIHdoZXJl
IGFuIGVycm9yIHdvdWxkIGJlIHdhcnJhbnRlZC4gQnV0IHdpdGggbXkgY3VycmVudAp1bmRlcnN0
YW5kaW5nIGl0IGlzIG5vdCByZWFsbHkuCgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgX2Fib3J0ID0gd29ya2VyLmFib3J0X2Z1dHVyZSgpID0+IGJhaWwhKCJhYm9y
dGVkIAo+PiBkdWUgdG8gdXNlciByZXF1ZXN0IiksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoCBFcnIoZXJyKSA9PiB3YXJuISgidW5hYmxlIHRvIHN0YXJ0IHN5bmMgam9iIHtq
b2JfaWR9IC0gCj4+IHtlcnJ9IiksCj4gCj4gLi4uIHNhbWUgaGVyZT8KPiAKCmluIG15IGhlYWQg
ZXJyb3IgbWVhbnMgdGFzayBjb3VsZCBub3QgY29udGludWUsIHdoaWNoIGlzIG5vdCB0aGUgY2Fz
ZQpoZXJlLCB3ZSdsbCBqdXN0IHNraXAgdGhpcyBqb2JzLiBCdXQgbm8gaGFyZCBmZWVsaW5ncywg
Y291bGQgYWxzbyBtYWtlCmFuIGVycm9yIGhlcmUuCgo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiAr
wqDCoMKgIH0KPj4gKwo+PiArwqDCoMKgIE9rKCgpKQo+PiArfQo+PiArCj4+IMKgICNbYXBpKAo+
PiDCoMKgwqDCoMKgIHByb3RlY3RlZDogdHJ1ZSwKPj4gwqDCoMKgwqDCoCBpbnB1dDogewo+PiBA
QCAtMjU0MSwxMiArMjU4Niw0OCBAQCBwdWIgZm4gbW91bnQoc3RvcmU6IFN0cmluZywgcnBjZW52
OiAmbXV0IGR5biAKPj4gUnBjRW52aXJvbm1lbnQpIC0+IFJlc3VsdDxWYWx1ZSwgRXIKPj4gwqDC
oMKgwqDCoCBsZXQgYXV0aF9pZDogQXV0aGlkID0gcnBjZW52LmdldF9hdXRoX2lkKCkudW53cmFw
KCkucGFyc2UoKT87Cj4+IMKgwqDCoMKgwqAgbGV0IHRvX3N0ZG91dCA9IHJwY2Vudi5lbnZfdHlw
ZSgpID09IFJwY0Vudmlyb25tZW50VHlwZTo6Q0xJOwo+PiAtwqDCoMKgIGxldCB1cGlkID0gV29y
a2VyVGFzazo6bmV3X3RocmVhZCgKPj4gK8KgwqDCoCBsZXQgdXBpZCA9IFdvcmtlclRhc2s6OnNw
YXduKAo+IAo+IHF1ZXN0aW9uOiBpcyBpdCBva2F5IHRvIHJ1biB0aGlzIG9uIHRoZSBzYW1lIHRo
cmVhZCBoZXJlPyAKPiBgZG9fbW91bnRfZGV2aWNlYCBkb2VzIHNvbWUgYmxvY2tpbmcgY2FsbHMg
YWZ0ZXIgYWxsPwo+IAoKeWVzLCB0aGVyZSdzIG5vIHJlYWwgcmVhc29uIHRvIGxvb2sgZm9yIGpv
YiBjb25maWdzIHVubGVzcyBtb3VudGluZyBpcwpzdWNjZXNzZnVsIGFuZCBkb25lLiBTbyB0aGUg
YmxvY2tpbmcgaXMgbm90IGEgcHJvYmxlbSwgYWN0dWFsbHkgcXVpdGUKdGhlIG9wcG9zaXRlLgoK
Pj4gwqDCoMKgwqDCoMKgwqDCoMKgICJtb3VudC1kZXZpY2UiLAo+PiAtwqDCoMKgwqDCoMKgwqAg
U29tZShzdG9yZSksCj4+ICvCoMKgwqDCoMKgwqDCoCBTb21lKHN0b3JlLmNsb25lKCkpLAo+PiDC
oMKgwqDCoMKgwqDCoMKgwqAgYXV0aF9pZC50b19zdHJpbmcoKSwKPj4gwqDCoMKgwqDCoMKgwqDC
oMKgIHRvX3N0ZG91dCwKPj4gLcKgwqDCoMKgwqDCoMKgIG1vdmUgfF93b3JrZXJ8IGRvX21vdW50
X2RldmljZShkYXRhc3RvcmUpLAo+PiArwqDCoMKgwqDCoMKgwqAgbW92ZSB8X3dvcmtlcnwgYXN5
bmMgbW92ZSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRvX21vdW50X2RldmljZShkYXRh
c3RvcmUuY2xvbmUoKSk/Owo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBsZXQgT2soKHN5bmNf
Y29uZmlnLCBfZGlnZXN0KSkgPSAKPj4gcGJzX2NvbmZpZzo6c3luYzo6Y29uZmlnKCkgZWxzZSB7
Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd2FybiEoInVuYWJsZSB0byByZWFk
IHN5bmMgam9iIGNvbmZpZywgd29uJ3QgcnVuIGFueSAKPj4gc3luYyBqb2JzIik7Cj4+ICvCoMKg
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE9rKCgpKTsKPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IE9rKGxpc3QpID0g
c3luY19jb25maWcuY29udmVydF90b190eXBlZF9hcnJheSgic3luYyIpIAo+PiBlbHNlIHsKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3YXJuISgidW5hYmxlIHRvIHBhcnNlIHN5
bmMgam9iIGNvbmZpZywgd29uJ3QgcnVuIGFueSAKPj4gc3luYyBqb2JzIik7Cj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIE9rKCgpKTsKPj4gK8KgwqDCoMKgwqDCoMKg
wqDCoMKgwqAgfTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IGpvYnNfdG9fcnVuOiBW
ZWM8U3luY0pvYkNvbmZpZz4gPSBsaXN0Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqAgLmludG9faXRlcigpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLmZpbHRl
cih8am9iOiAmU3luY0pvYkNvbmZpZ3wgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgLy8gYWRkIGpvYiBpZmYgKHJ1bm5pbmcgb24gbW91bnQgaXMgZW5hYmxlZCBh
bmQpIAo+PiBhbnkgb2YgdGhlc2UgYXBwbHkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIC8vwqDCoCAtIHRoZSBqb2JzIGlzIGxvY2FsIGFuZCB3ZSBhcmUgc291cmNl
IG9yIHRhcmdldAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLy/C
oMKgIC0gd2UgYXJlIHRoZSBzb3VyY2Ugb2YgYSBwdXNoIHRvIGEgcmVtb3RlCj4+ICvCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvL8KgwqAgLSB3ZSBhcmUgdGhlIHRhcmdl
dCBvZiBhIHB1bGwgZnJvbSBhIHJlbW90ZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqAgLy8KPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg
IC8vIGBqb2Iuc3RvcmUgPT0gZGF0YXN0b3JlLm5hbWVgIGlmZiB3ZSBhcmUgdGhlIAo+PiB0YXJn
ZXQgZm9yIHB1bGwgZnJvbSByZW1vdGUgb3Igd2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgIC8vIGFyZSB0aGUgc291cmNlIGZvciBwdXNoIHRvIHJlbW90ZSwgdGhl
cmVmb3JlIAo+PiB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrIGZvciB0aGUKPj4gK8KgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIGRpcmVjdGlvbiBvZiB0aGUgam9iLgo+PiAr
wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgam9iLnJ1bl9vbl9tb3VudC51
bndyYXBfb3IoZmFsc2UpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgICYmIChqb2IucmVtb3RlLmlzX25vbmUoKSAmJiBqb2IucmVtb3RlX3N0b3JlIAo+
PiA9PSBkYXRhc3RvcmUubmFtZQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHx8IGpvYi5zdG9yZSA9PSBkYXRhc3RvcmUubmFtZSkKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9KQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg
wqDCoMKgwqDCoMKgIC5jb2xsZWN0KCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICFq
b2JzX3RvX3J1bi5pc19lbXB0eSgpIHsKPiAKPiBjb21tZW50OiBhbiBhZGRpdGlvbmFsIGxvZyBp
bmZvIHRvIHRoZSBtb3VudCB0YXNrIGxvZyB3b3VsZCBiZSBuaWNlLCBzbyAKPiBvbmUgc2VlcyBm
cm9tIGl0IGFzIHdlbGwgdGhhdCBzb21lIHN5bmMgam9icyB3ZXJlIHRyaWdnZXJlZC4KPiAKCnN1
cmUKCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbGV0IF8gPSBXb3JrZXJUYXNr
OjpzcGF3bigKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJtb3Vu
dC1zeW5jLWpvYnMiLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg
U29tZShzdG9yZSksCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBh
dXRoX2lkLnRvX3N0cmluZygpLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC
oMKgwqAgZmFsc2UsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBt
b3ZlIHx3b3JrZXJ8IGFzeW5jIG1vdmUgCj4+IHsgZG9fc3luY19qb2JzKGpvYnNfdG9fcnVuLCB3
b3JrZXIpLmF3YWl0IH0sCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKTsKPj4g
K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBPaygo
KSkKPj4gK8KgwqDCoMKgwqDCoMKgIH0sCj4gCj4gY29tbWVudDogYWxsIG9mIGFib3ZlIGlzIGV4
ZWN1dGVkIHdpdGhpbiBhIGFwaSBlbmRwb2ludCBmbGFnZ2VkIGFzIAo+IHByb3RlY3RlZCEgVGhp
cyBob3dldmVyIGxlYWRzIHRvIHRoZSBzeW5jIGpvYiB0byBiZSBleGVjdXRlZCBieSB0aGUgCj4g
cHJveG1veC1iYWNrdXAtcHJveHksIGFsbCB0aGUgc3luY2VkIGNvbnRlbnRzIHRoZXJlZm9yZSB3
cml0dGVuIGFuZCAKPiBvd25lciBieSB0aGUgcm9vdCB1c2VyIGluc3RlYWQgb2YgdGhlIGJhY2t1
cCB1c2VyLgo+IAoKYWN0dWFsbHkgdHJ1ZSwgZ29vZCBjYXRjaCEgSSBkaWRuJ3QgZXZlbiBjaGVj
ayB0aGF0LCBJIGp1c3QgYXNzdW1lZCB3ZSdkIApleHBsaWNpdGx5IHNldCB0aGUgb3duZXIgd2hl
bmV2ZXIgd2UgY3JlYXRlIGRpcnMvZmlsZXMgZHVyaW5nIHN5bmMuIFdlIApkbyB0aGlzIGZvciBn
YXJiYWdlIGNvbGxlY3Rpb24gYW5kIGluIGJhc2ljYWxseSBhbGwgb3RoZXIgcGxhY2VzIElJUkMu
CgpTbywgSSB0aGluayB3ZSBzaG91bGQgYWxzbyBkbyB0aGF0IGZvciBzeW5jcywgY2FuIHlvdSB0
aGluayBvZiBhIHJlYXNvbgp0byBub3QgZG8gdGhhdD8gSWYgbm90LCBJJ2xsIHByZXBhcmUgYSBw
YXRjaCBmb3IgdGhhdC4KCj4+IMKgwqDCoMKgwqAgKT87Cj4+IMKgwqDCoMKgwqAgT2soanNvbiEo
dXBpZCkpCj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9hZG1pbi9zeW5jLnJzIGIvc3JjL2FwaTIv
YWRtaW4vc3luYy5ycwo+PiBpbmRleCA2NzIyZWJlYTAuLjAxZGVhNTEyNiAxMDA2NDQKPj4gLS0t
IGEvc3JjL2FwaTIvYWRtaW4vc3luYy5ycwo+PiArKysgYi9zcmMvYXBpMi9hZG1pbi9zeW5jLnJz
Cj4+IEBAIC0xNjEsNyArMTYxLDcgQEAgcHViIGZuIHJ1bl9zeW5jX2pvYigKPj4gwqDCoMKgwqDC
oCBsZXQgdG9fc3Rkb3V0ID0gcnBjZW52LmVudl90eXBlKCkgPT0gUnBjRW52aXJvbm1lbnRUeXBl
OjpDTEk7Cj4+IC3CoMKgwqAgbGV0IHVwaWRfc3RyID0gZG9fc3luY19qb2Ioam9iLCBzeW5jX2pv
YiwgJmF1dGhfaWQsIE5vbmUsIAo+PiB0b19zdGRvdXQpPzsKPj4gK8KgwqDCoCBsZXQgKHVwaWRf
c3RyLCBfKSA9IGRvX3N5bmNfam9iKGpvYiwgc3luY19qb2IsICZhdXRoX2lkLCBOb25lLCAKPj4g
dG9fc3Rkb3V0KT87Cj4+IMKgwqDCoMKgwqAgT2sodXBpZF9zdHIpCj4+IMKgIH0KPj4gZGlmZiAt
LWdpdCBhL3NyYy9zZXJ2ZXIvc3luYy5ycyBiL3NyYy9zZXJ2ZXIvc3luYy5ycwo+PiBpbmRleCAw
OTgxNGVmMGMuLmM0NWE4OTc1ZSAxMDA2NDQKPj4gLS0tIGEvc3JjL3NlcnZlci9zeW5jLnJzCj4+
ICsrKyBiL3NyYy9zZXJ2ZXIvc3luYy5ycwo+PiBAQCAtMTIsNiArMTIsNyBAQCB1c2UgZnV0dXJl
czo6e2Z1dHVyZTo6RnV0dXJlRXh0LCBzZWxlY3R9Owo+PiDCoCB1c2UgaHlwZXI6Omh0dHA6OlN0
YXR1c0NvZGU7Cj4+IMKgIHVzZSBwYnNfY29uZmlnOjpCYWNrdXBMb2NrR3VhcmQ7Cj4+IMKgIHVz
ZSBzZXJkZV9qc29uOjpqc29uOwo+PiArdXNlIHRva2lvOjp0YXNrOjpKb2luSGFuZGxlOwo+PiDC
oCB1c2UgdHJhY2luZzo6e2luZm8sIHdhcm59Owo+PiDCoCB1c2UgcHJveG1veF9odW1hbl9ieXRl
OjpIdW1hbkJ5dGU7Cj4+IEBAIC01OTgsNyArNTk5LDcgQEAgcHViIGZuIGRvX3N5bmNfam9iKAo+
PiDCoMKgwqDCoMKgIGF1dGhfaWQ6ICZBdXRoaWQsCj4+IMKgwqDCoMKgwqAgc2NoZWR1bGU6IE9w
dGlvbjxTdHJpbmc+LAo+PiDCoMKgwqDCoMKgIHRvX3N0ZG91dDogYm9vbCwKPj4gLSkgLT4gUmVz
dWx0PFN0cmluZywgRXJyb3I+IHsKPj4gKykgLT4gUmVzdWx0PChTdHJpbmcsIEpvaW5IYW5kbGU8
KCk+KSwgRXJyb3I+IHsKPj4gwqDCoMKgwqDCoCBsZXQgam9iX2lkID0gZm9ybWF0ISgKPj4gwqDC
oMKgwqDCoMKgwqDCoMKgICJ7fTp7fTp7fTp7fTp7fSIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBz
eW5jX2pvYi5yZW1vdGUuYXNfZGVyZWYoKS51bndyYXBfb3IoIi0iKSwKPj4gQEAgLTYxNCw3ICs2
MTUsNyBAQCBwdWIgZm4gZG9fc3luY19qb2IoCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBiYWlsISgi
Y2FuJ3Qgc3luYyB0byBzYW1lIGRhdGFzdG9yZSIpOwo+PiDCoMKgwqDCoMKgIH0KPj4gLcKgwqDC
oCBsZXQgdXBpZF9zdHIgPSBXb3JrZXJUYXNrOjpzcGF3bigKPj4gK8KgwqDCoCBsZXQgKHVwaWRf
c3RyLCBoYW5kbGUpID0gV29ya2VyVGFzazo6c3Bhd25fd2l0aF9oYW5kbGUoCj4+IMKgwqDCoMKg
wqDCoMKgwqDCoCAmd29ya2VyX3R5cGUsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBTb21lKGpvYl9p
ZC5jbG9uZSgpKSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGF1dGhfaWQudG9fc3RyaW5nKCksCj4+
IEBAIC03MzAsNyArNzMxLDcgQEAgcHViIGZuIGRvX3N5bmNfam9iKAo+PiDCoMKgwqDCoMKgwqDC
oMKgwqAgfSwKPj4gwqDCoMKgwqDCoCApPzsKPj4gLcKgwqDCoCBPayh1cGlkX3N0cikKPj4gK8Kg
wqDCoCBPaygodXBpZF9zdHIsIGhhbmRsZSkpCj4+IMKgIH0KPj4gwqAgcHViKHN1cGVyKSBmbiBp
Z25vcmVfbm90X3ZlcmlmaWVkX29yX2VuY3J5cHRlZCgKPiAKCgoKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1haWxpbmcgbGlzdApwYnMt
ZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmlu
L21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==