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 E7C431FF163
	for <inbox@lore.proxmox.com>; Thu, 21 Nov 2024 20:17:48 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 96F804CF0;
	Thu, 21 Nov 2024 20:17:56 +0100 (CET)
Date: Thu, 21 Nov 2024 20:17:51 +0100 (CET)
From: =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
To: Gabriel Goller <g.goller@proxmox.com>, pbs-devel@lists.proxmox.com
Message-ID: <2086615808.8058.1732216671890@webmail.proxmox.com>
In-Reply-To: <20241121133509.289419-2-g.goller@proxmox.com>
References: <20241121133509.289419-1-g.goller@proxmox.com>
 <20241121133509.289419-2-g.goller@proxmox.com>
MIME-Version: 1.0
X-Priority: 3
Importance: Normal
X-Mailer: Open-Xchange Mailer v7.10.6-Rev69
X-Originating-Client: open-xchange-appsuite
X-SPAM-LEVEL: Spam detection results:  0
 AWL 0.047 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. [manifest.rs, mod.rs, datastore.rs, verify.rs]
Subject: Re: [pbs-devel] [PATCH proxmox-backup v4 1/4] snapshot: add helper
 function to retrieve verify_state
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>

Cj4gR2FicmllbCBHb2xsZXIgPGcuZ29sbGVyQHByb3htb3guY29tPiBoYXQgYW0gMjEuMTEuMjAy
NCAxNDozNSBDRVQgZ2VzY2hyaWViZW46Cj4gCj4gIAo+IEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRv
IHJldHJpZXZlIHRoZSB2ZXJpZnlfc3RhdGUgZnJvbSB0aGUgbWFuaWZlc3Qgb2YgYQo+IHNuYXBz
aG90LiBSZXBsYWNlZCBhbGwgdGhlIG1hbnVhbCAidmVyaWZ5X3N0YXRlIiBwYXJzaW5nIHdpdGgg
dGhlIGhlbHBlcgo+IGZ1bmN0aW9uLgo+IAo+IFN1Z2dlc3RlZC1ieTogRmFiaWFuIEdyw7xuYmlj
aGxlciA8Zi5ncnVlbmJpY2hsZXJAcHJveG1veC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogR2Ficmll
bCBHb2xsZXIgPGcuZ29sbGVyQHByb3htb3guY29tPgo+IC0tLQo+ICBwYnMtZGF0YXN0b3JlL3Ny
Yy9iYWNrdXBfaW5mby5ycyB8IDE1ICsrKysrKysrKysrKystLQo+ICBwYnMtZGF0YXN0b3JlL3Ny
Yy9tYW5pZmVzdC5ycyAgICB8IDE0ICsrKysrKysrKysrKystCj4gIHNyYy9hcGkyL2FkbWluL2Rh
dGFzdG9yZS5ycyAgICAgIHwgMTYgKysrKysrKy0tLS0tLS0tLQo+ICBzcmMvYXBpMi9iYWNrdXAv
bW9kLnJzICAgICAgICAgICB8IDEzICsrKysrKy0tLS0tLS0KPiAgc3JjL2JhY2t1cC92ZXJpZnku
cnMgICAgICAgICAgICAgfCAgNyArKystLS0tCj4gIDUgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0
aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Bicy1kYXRhc3RvcmUv
c3JjL2JhY2t1cF9pbmZvLnJzIGIvcGJzLWRhdGFzdG9yZS9zcmMvYmFja3VwX2luZm8ucnMKPiBp
bmRleCA2MmQxMmIxMTgzZGYuLjJkOGUwYTZkOTJkYSAxMDA2NDQKPiAtLS0gYS9wYnMtZGF0YXN0
b3JlL3NyYy9iYWNrdXBfaW5mby5ycwo+ICsrKyBiL3Bicy1kYXRhc3RvcmUvc3JjL2JhY2t1cF9p
bmZvLnJzCj4gQEAgLTgsOCArOCw4IEBAIHVzZSBhbnlob3c6OntiYWlsLCBmb3JtYXRfZXJyLCBF
cnJvcn07Cj4gIHVzZSBwcm94bW94X3N5czo6ZnM6Ontsb2NrX2Rpcl9ub2Jsb2NrLCByZXBsYWNl
X2ZpbGUsIENyZWF0ZU9wdGlvbnN9Owo+ICAKPiAgdXNlIHBic19hcGlfdHlwZXM6OnsKPiAtICAg
IEF1dGhpZCwgQmFja3VwR3JvdXBEZWxldGVTdGF0cywgQmFja3VwTmFtZXNwYWNlLCBCYWNrdXBU
eXBlLCBHcm91cEZpbHRlciwgQkFDS1VQX0RBVEVfUkVHRVgsCj4gLSAgICBCQUNLVVBfRklMRV9S
RUdFWCwKPiArICAgIEF1dGhpZCwgQmFja3VwR3JvdXBEZWxldGVTdGF0cywgQmFja3VwTmFtZXNw
YWNlLCBCYWNrdXBUeXBlLCBHcm91cEZpbHRlciwgVmVyaWZ5U3RhdGUsCj4gKyAgICBCQUNLVVBf
REFURV9SRUdFWCwgQkFDS1VQX0ZJTEVfUkVHRVgsCj4gIH07Cj4gIHVzZSBwYnNfY29uZmlnOjp7
b3Blbl9iYWNrdXBfbG9ja2ZpbGUsIEJhY2t1cExvY2tHdWFyZH07Cj4gIAo+IEBAIC01NTUsNiAr
NTU1LDE3IEBAIGltcGwgQmFja3VwRGlyIHsKPiAgCj4gICAgICAgICAgT2soKCkpCj4gICAgICB9
Cj4gKwo+ICsgICAgLy8vIExvYWQgdGhlIHZlcmlmeSBzdGF0ZSBmcm9tIHRoZSBtYW5pZmVzdC4K
PiArICAgIHB1YiBmbiB2ZXJpZnlfc3RhdGUoJnNlbGYpIC0+IFJlc3VsdDxPcHRpb248VmVyaWZ5
U3RhdGU+LCBhbnlob3c6OkVycm9yPiB7Cj4gKyAgICAgICAgbGV0IG1hbmlmZXN0ID0gc2VsZi5s
b2FkX21hbmlmZXN0KCk/Owo+ICsgICAgICAgIE9rKG1hbmlmZXN0Cj4gKyAgICAgICAgICAgIC4w
Cj4gKyAgICAgICAgICAgIC52ZXJpZnlfc3RhdGUoKQo+ICsgICAgICAgICAgICAub2soKQo+ICsg
ICAgICAgICAgICAuZmxhdHRlbigpCj4gKyAgICAgICAgICAgIC5tYXAofHN2c3wgc3ZzLnN0YXRl
KSkKCnRoaXMgc3RpbGwgbG9va3Mgc2xpZ2h0bHkgd3JvbmcgdG8gbWUgLSBpZiB2ZXJpZnlfc3Rh
dGUoKSByZXR1cm5zIGFuIGVycm9yLCBpdCdzIG1hcHBlZCB0byBOb25lIChieSB0aGUgY2FsbCB0
byBgb2soKWApLCB3aGljaCB3b3VsZCBoaWRlIGFuIGlubmVyIHBhcnNlIGVycm9yIGZvciB0aGUg
dmVyaWZpY2F0aW9uIHN0YXRlPwoKSSB0aGluayB0aGUgZm9sbG93aW5nIHNob3VsZCBiZSBjb3Jy
ZWN0bHkgYnViYmxlIHVwIGVycm9ycyB3aGVuIGxvYWRpbmcgdGhlIG1hbmlmZXN0IG9yIHdoZW4g
cGFyc2luZyB0aGUgY29udGFpbmVkIHZlcmlmeSBzdGF0ZSB3aGlsZSByZXR1cm5pbmcgT2soTm9u
ZSkgaWYgbm8gc3RhdGUgaXMgY29udGFpbmVkIGluIHRoZSBtYW5pZmVzdDoKCk9rKHNlbGYubG9h
ZF9tYW5pZmVzdCgpPy4wLnZlcmlmeV9zdGF0ZSgpPy5tYXAofHN2c3wgc3ZzLnN0YXRlKSkKCj4g
KyAgICB9Cj4gIH0KPiAgCj4gIGltcGwgQXNSZWY8cGJzX2FwaV90eXBlczo6QmFja3VwTmFtZXNw
YWNlPiBmb3IgQmFja3VwRGlyIHsKPiBkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMvbWFu
aWZlc3QucnMgYi9wYnMtZGF0YXN0b3JlL3NyYy9tYW5pZmVzdC5ycwo+IGluZGV4IGMzZGYwMTQy
NzJhMC4uMzAxM2ZhYjk3MjIxIDEwMDY0NAo+IC0tLSBhL3Bicy1kYXRhc3RvcmUvc3JjL21hbmlm
ZXN0LnJzCj4gKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvbWFuaWZlc3QucnMKPiBAQCAtNSw3ICs1
LDcgQEAgdXNlIGFueWhvdzo6e2JhaWwsIGZvcm1hdF9lcnIsIEVycm9yfTsKPiAgdXNlIHNlcmRl
Ojp7RGVzZXJpYWxpemUsIFNlcmlhbGl6ZX07Cj4gIHVzZSBzZXJkZV9qc29uOjp7anNvbiwgVmFs
dWV9Owo+ICAKPiAtdXNlIHBic19hcGlfdHlwZXM6OntCYWNrdXBUeXBlLCBDcnlwdE1vZGUsIEZp
bmdlcnByaW50fTsKPiArdXNlIHBic19hcGlfdHlwZXM6OntCYWNrdXBUeXBlLCBDcnlwdE1vZGUs
IEZpbmdlcnByaW50LCBTbmFwc2hvdFZlcmlmeVN0YXRlfTsKPiAgdXNlIHBic190b29sczo6Y3J5
cHRfY29uZmlnOjpDcnlwdENvbmZpZzsKPiAgCj4gIHB1YiBjb25zdCBNQU5JRkVTVF9CTE9CX05B
TUU6ICZzdHIgPSAiaW5kZXguanNvbi5ibG9iIjsKPiBAQCAtMjQyLDYgKzI0MiwxOCBAQCBpbXBs
IEJhY2t1cE1hbmlmZXN0IHsKPiAgICAgICAgICBsZXQgbWFuaWZlc3Q6IEJhY2t1cE1hbmlmZXN0
ID0gc2VyZGVfanNvbjo6ZnJvbV92YWx1ZShqc29uKT87Cj4gICAgICAgICAgT2sobWFuaWZlc3Qp
Cj4gICAgICB9Cj4gKwo+ICsgICAgLy8vIEdldCB0aGUgdmVyaWZ5IHN0YXRlIG9mIHRoZSBzbmFw
c2hvdAo+ICsgICAgLy8vCj4gKyAgICAvLy8gTm90ZTogTmV3IHNuYXBzaG90cywgd2hpY2ggaGF2
ZSBub3QgYmVlbiB2ZXJpZmllZCB5ZXQsIGRvIG5vdCBoYXZlIGEgc3RhdHVzIGFuZCB0aGlzCj4g
KyAgICAvLy8gZnVuY3Rpb24gd2lsbCByZXR1cm4gYE9rKE5vbmUpYC4KPiArICAgIHB1YiBmbiB2
ZXJpZnlfc3RhdGUoJnNlbGYpIC0+IFJlc3VsdDxPcHRpb248U25hcHNob3RWZXJpZnlTdGF0ZT4s
IGFueWhvdzo6RXJyb3I+IHsKPiArICAgICAgICBsZXQgdmVyaWZ5ID0gc2VsZi51bnByb3RlY3Rl
ZFsidmVyaWZ5X3N0YXRlIl0uY2xvbmUoKTsKPiArICAgICAgICBpZiB2ZXJpZnkuaXNfbnVsbCgp
IHsKPiArICAgICAgICAgICAgcmV0dXJuIE9rKE5vbmUpOwo+ICsgICAgICAgIH0KPiArICAgICAg
ICBPayhTb21lKHNlcmRlX2pzb246OmZyb21fdmFsdWU6OjxTbmFwc2hvdFZlcmlmeVN0YXRlPih2
ZXJpZnkpPykpCgp0aGlzIGxvb2tzIGdvb2QgdG8gbWUgbm93ISA6KQoKPiArICAgIH0KPiAgfQo+
ICAKPiAgaW1wbCBUcnlGcm9tPHN1cGVyOjpEYXRhQmxvYj4gZm9yIEJhY2t1cE1hbmlmZXN0IHsK
PiBkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzIGIvc3JjL2FwaTIvYWRt
aW4vZGF0YXN0b3JlLnJzCj4gaW5kZXggOTliNTc5ZjAyYzUwLi4zNjI0ZGJhNDExOTkgMTAwNjQ0
Cj4gLS0tIGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4gKysrIGIvc3JjL2FwaTIvYWRt
aW4vZGF0YXN0b3JlLnJzCj4gQEAgLTUzNywxNSArNTM3LDEzIEBAIHVuc2FmZSBmbiBsaXN0X3Nu
YXBzaG90c19ibG9ja2luZygKPiAgICAgICAgICAgICAgICAgICAgICB9Cj4gICAgICAgICAgICAg
ICAgICB9Owo+ICAKPiAtICAgICAgICAgICAgICAgIGxldCB2ZXJpZmljYXRpb24gPSBtYW5pZmVz
dC51bnByb3RlY3RlZFsidmVyaWZ5X3N0YXRlIl0uY2xvbmUoKTsKPiAtICAgICAgICAgICAgICAg
IGxldCB2ZXJpZmljYXRpb246IE9wdGlvbjxTbmFwc2hvdFZlcmlmeVN0YXRlPiA9Cj4gLSAgICAg
ICAgICAgICAgICAgICAgbWF0Y2ggc2VyZGVfanNvbjo6ZnJvbV92YWx1ZSh2ZXJpZmljYXRpb24p
IHsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgT2sodmVyaWZ5KSA9PiB2ZXJpZnksCj4gLSAg
ICAgICAgICAgICAgICAgICAgICAgIEVycihlcnIpID0+IHsKPiAtICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVwcmludGxuISgiZXJyb3IgcGFyc2luZyB2ZXJpZmljYXRpb24gc3RhdGUgOiAn
e30nIiwgZXJyKTsKPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUKPiAtICAgICAg
ICAgICAgICAgICAgICAgICAgfQo+IC0gICAgICAgICAgICAgICAgICAgIH07Cj4gKyAgICAgICAg
ICAgICAgICBsZXQgdmVyaWZpY2F0aW9uOiBPcHRpb248U25hcHNob3RWZXJpZnlTdGF0ZT4gPSBt
YXRjaCBtYW5pZmVzdC52ZXJpZnlfc3RhdGUoKSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgT2so
dmVyaWZ5KSA9PiB2ZXJpZnksCj4gKyAgICAgICAgICAgICAgICAgICAgRXJyKGVycikgPT4gewo+
ICsgICAgICAgICAgICAgICAgICAgICAgICBlcHJpbnRsbiEoImVycm9yIHBhcnNpbmcgdmVyaWZp
Y2F0aW9uIHN0YXRlIDogJ3t9JyIsIGVycik7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgIE5v
bmUKPiArICAgICAgICAgICAgICAgICAgICB9Cj4gKyAgICAgICAgICAgICAgICB9OwoKdGhpcyBh
cyB3ZWxsIQoKPiAgCj4gICAgICAgICAgICAgICAgICBsZXQgc2l6ZSA9IFNvbWUoZmlsZXMuaXRl
cigpLm1hcCh8eHwgeC5zaXplLnVud3JhcF9vcigwKSkuc3VtKCkpOwo+ICAKPiBkaWZmIC0tZ2l0
IGEvc3JjL2FwaTIvYmFja3VwL21vZC5ycyBiL3NyYy9hcGkyL2JhY2t1cC9tb2QucnMKPiBpbmRl
eCBlYTBkMDI5MmVjNTguLjYwNWM3NWUyZGZhOSAxMDA2NDQKPiAtLS0gYS9zcmMvYXBpMi9iYWNr
dXAvbW9kLnJzCj4gKysrIGIvc3JjL2FwaTIvYmFja3VwL21vZC5ycwo+IEBAIC0xOSw5ICsxOSw5
IEBAIHVzZSBwcm94bW94X3NvcnRhYmxlX21hY3JvOjpzb3J0YWJsZTsKPiAgdXNlIHByb3htb3hf
c3lzOjpmczo6bG9ja19kaXJfbm9ibG9ja19zaGFyZWQ7Cj4gIAo+ICB1c2UgcGJzX2FwaV90eXBl
czo6ewo+IC0gICAgQXV0aGlkLCBCYWNrdXBOYW1lc3BhY2UsIEJhY2t1cFR5cGUsIE9wZXJhdGlv
biwgU25hcHNob3RWZXJpZnlTdGF0ZSwgVmVyaWZ5U3RhdGUsCj4gLSAgICBCQUNLVVBfQVJDSElW
RV9OQU1FX1NDSEVNQSwgQkFDS1VQX0lEX1NDSEVNQSwgQkFDS1VQX05BTUVTUEFDRV9TQ0hFTUEs
IEJBQ0tVUF9USU1FX1NDSEVNQSwKPiAtICAgIEJBQ0tVUF9UWVBFX1NDSEVNQSwgQ0hVTktfRElH
RVNUX1NDSEVNQSwgREFUQVNUT1JFX1NDSEVNQSwgUFJJVl9EQVRBU1RPUkVfQkFDS1VQLAo+ICsg
ICAgQXV0aGlkLCBCYWNrdXBOYW1lc3BhY2UsIEJhY2t1cFR5cGUsIE9wZXJhdGlvbiwgVmVyaWZ5
U3RhdGUsIEJBQ0tVUF9BUkNISVZFX05BTUVfU0NIRU1BLAo+ICsgICAgQkFDS1VQX0lEX1NDSEVN
QSwgQkFDS1VQX05BTUVTUEFDRV9TQ0hFTUEsIEJBQ0tVUF9USU1FX1NDSEVNQSwgQkFDS1VQX1RZ
UEVfU0NIRU1BLAo+ICsgICAgQ0hVTktfRElHRVNUX1NDSEVNQSwgREFUQVNUT1JFX1NDSEVNQSwg
UFJJVl9EQVRBU1RPUkVfQkFDS1VQLAo+ICB9Owo+ICB1c2UgcGJzX2NvbmZpZzo6Q2FjaGVkVXNl
ckluZm87Cj4gIHVzZSBwYnNfZGF0YXN0b3JlOjppbmRleDo6SW5kZXhGaWxlOwo+IEBAIC0xNTks
MTMgKzE1OSwxMiBAQCBmbiB1cGdyYWRlX3RvX2JhY2t1cF9wcm90b2NvbCgKPiAgICAgICAgICAg
ICAgbGV0IGluZm8gPSBiYWNrdXBfZ3JvdXAubGFzdF9iYWNrdXAodHJ1ZSkudW53cmFwX29yKE5v
bmUpOwo+ICAgICAgICAgICAgICBpZiBsZXQgU29tZShpbmZvKSA9IGluZm8gewo+ICAgICAgICAg
ICAgICAgICAgbGV0IChtYW5pZmVzdCwgXykgPSBpbmZvLmJhY2t1cF9kaXIubG9hZF9tYW5pZmVz
dCgpPzsKPiAtICAgICAgICAgICAgICAgIGxldCB2ZXJpZnkgPSBtYW5pZmVzdC51bnByb3RlY3Rl
ZFsidmVyaWZ5X3N0YXRlIl0uY2xvbmUoKTsKPiAtICAgICAgICAgICAgICAgIG1hdGNoIHNlcmRl
X2pzb246OmZyb21fdmFsdWU6OjxTbmFwc2hvdFZlcmlmeVN0YXRlPih2ZXJpZnkpIHsKPiAtICAg
ICAgICAgICAgICAgICAgICBPayh2ZXJpZnkpID0+IG1hdGNoIHZlcmlmeS5zdGF0ZSB7Cj4gKyAg
ICAgICAgICAgICAgICBtYXRjaCBtYW5pZmVzdC52ZXJpZnlfc3RhdGUoKSB7Cj4gKyAgICAgICAg
ICAgICAgICAgICAgT2soU29tZSh2ZXJpZnkpKSA9PiBtYXRjaCB2ZXJpZnkuc3RhdGUgewo+ICAg
ICAgICAgICAgICAgICAgICAgICAgICBWZXJpZnlTdGF0ZTo6T2sgPT4gU29tZShpbmZvKSwKPiAg
ICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZ5U3RhdGU6OkZhaWxlZCA9PiBOb25lLAo+ICAg
ICAgICAgICAgICAgICAgICAgIH0sCj4gLSAgICAgICAgICAgICAgICAgICAgRXJyKF8pID0+IHsK
PiArICAgICAgICAgICAgICAgICAgICBPayhOb25lKSB8IEVycihfKSA9PiB7Cj4gICAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIG5vIHZlcmlmeSBzdGF0ZSBmb3VuZCwgdHJlYXQgYXMgdmFsaWQK
CnRoaXMgYXMgd2VsbCwgYWx0aG91Z2ggaXQgbWlnaHQgbWFrZSBzZW5zZSB0byBsb2cgdGhpcyBo
ZXJlIGFzIHdlbGwgKHByZS1leGlzdGluZykKCj4gICAgICAgICAgICAgICAgICAgICAgICAgIFNv
bWUoaW5mbykKPiAgICAgICAgICAgICAgICAgICAgICB9Cj4gZGlmZiAtLWdpdCBhL3NyYy9iYWNr
dXAvdmVyaWZ5LnJzIGIvc3JjL2JhY2t1cC92ZXJpZnkucnMKPiBpbmRleCA2ZWY3ZThlYjNlYmIu
LjIwYzYwNWM0ZGRlNiAxMDA2NDQKPiAtLS0gYS9zcmMvYmFja3VwL3ZlcmlmeS5ycwo+ICsrKyBi
L3NyYy9iYWNrdXAvdmVyaWZ5LnJzCj4gQEAgLTU1MywxMCArNTUzLDkgQEAgcHViIGZuIHZlcmlm
eV9maWx0ZXIoCj4gICAgICAgICAgcmV0dXJuIHRydWU7Cj4gICAgICB9Cj4gIAo+IC0gICAgbGV0
IHJhd192ZXJpZnlfc3RhdGUgPSBtYW5pZmVzdC51bnByb3RlY3RlZFsidmVyaWZ5X3N0YXRlIl0u
Y2xvbmUoKTsKPiAtICAgIG1hdGNoIHNlcmRlX2pzb246OmZyb21fdmFsdWU6OjxTbmFwc2hvdFZl
cmlmeVN0YXRlPihyYXdfdmVyaWZ5X3N0YXRlKSB7Cj4gLSAgICAgICAgRXJyKF8pID0+IHRydWUs
IC8vIG5vIGxhc3QgdmVyaWZpY2F0aW9uLCBhbHdheXMgaW5jbHVkZQo+IC0gICAgICAgIE9rKGxh
c3RfdmVyaWZ5KSA9PiB7Cj4gKyAgICBtYXRjaCBtYW5pZmVzdC52ZXJpZnlfc3RhdGUoKSB7Cj4g
KyAgICAgICAgT2soTm9uZSkgfCBFcnIoXykgPT4gdHJ1ZSwgLy8gbm8gbGFzdCB2ZXJpZmljYXRp
b24sIGFsd2F5cyBpbmNsdWRlCgpzYW1lIGhlcmUhIEkgdGhpbmsvaG9wZSB0aGUgRXJyIHBhdGgg
Zm9yIHRoZXNlIHNob3VsZCBvbmx5IHRyaWdnZXIgd2hlbiBzb21lYm9keSBtZXNzZXMgdXAgbWFu
aWZlc3RzLCBidXQuLgoKPiArICAgICAgICBPayhTb21lKGxhc3RfdmVyaWZ5KSkgPT4gewo+ICAg
ICAgICAgICAgICBtYXRjaCBvdXRkYXRlZF9hZnRlciB7Cj4gICAgICAgICAgICAgICAgICBOb25l
ID0+IGZhbHNlLCAvLyBuZXZlciByZS12ZXJpZnkgaWYgaWdub3JlZCBhbmQgbm8gbWF4IGFnZQo+
ICAgICAgICAgICAgICAgICAgU29tZShtYXhfYWdlKSA9PiB7Cj4gLS0gCj4gMi4zOS41CgoKX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcGJzLWRldmVsIG1h
aWxpbmcgbGlzdApwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0cy5wcm94
bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCg==