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 7A4D21FF164
	for <inbox@lore.proxmox.com>; Fri,  9 May 2025 14:59:32 +0200 (CEST)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 4C2373DF10;
	Fri,  9 May 2025 14:59:51 +0200 (CEST)
Message-ID: <39b85c49-8a09-4702-8a76-2d7bdbc500e5@proxmox.com>
Date: Fri, 9 May 2025 14:59:16 +0200
MIME-Version: 1.0
User-Agent: Mozilla Thunderbird
To: Proxmox Backup Server development discussion <pbs-devel@lists.proxmox.com>,
 =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= <f.gruenbichler@proxmox.com>
References: <20250508130555.494782-1-c.ebner@proxmox.com>
 <20250508130555.494782-19-c.ebner@proxmox.com>
 <1746793013.k8qdvp27bh.astroid@yuna.none>
Content-Language: en-US, de-DE
From: Christian Ebner <c.ebner@proxmox.com>
In-Reply-To: <1746793013.k8qdvp27bh.astroid@yuna.none>
X-SPAM-LEVEL: Spam detection results:  0
 AWL -0.522 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_ASCII_DIVIDERS 0.8 Email that uses ascii formatting dividers and possible
 spam tricks
 KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
 POISEN_SPAM_PILL          0.1 Meta: its spam
 POISEN_SPAM_PILL_1        0.1 random spam to be learned in bayes
 POISEN_SPAM_PILL_3        0.1 random spam to be learned in bayes
 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. [datastore.rs, proxmox.com]
Subject: Re: [pbs-devel] [RFC v2 proxmox-backup 18/21] api: admin: implement
 endpoints to restore trashed contents
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>

VGhhbmtzIGZvciBmZWVkYmFjaywgd2lsbCBoYXZlIGEgY2xvc2VyIGxvb2sgbmV4dCB3ZWVrLgoK
QWxsb3cgbWUgdHdvIHF1aWNrIHF1ZXN0aW9ucyBpbmxpbmUgdGhvdWdoLi4uCgpPbiA1LzkvMjUg
MTQ6MjcsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gT24gTWF5IDgsIDIwMjUgMzowNSBw
bSwgQ2hyaXN0aWFuIEVibmVyIHdyb3RlOgo+PiBJbXBsZW1lbnRzIHRoZSBhcGkgZW5kcG9pbnRz
IHRvIHJlc3RvcmUgdHJhc2hlZCBjb250ZW50cyBjb250YWluZWQKPj4gd2l0aGluIG5hbWVzcGFj
ZXMsIGJhY2t1cCBncm91cHMgb3IgaW5kaXZpZHVhbCBzbmFwc2hvdHMuCj4+Cj4+IFNpZ25lZC1v
ZmYtYnk6IENocmlzdGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KPj4gLS0tCj4+ICAg
c3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzIHwgMTczICsrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAxNzIgaW5zZXJ0aW9ucygrKSwgMSBk
ZWxldGlvbigtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJz
IGIvc3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4+IGluZGV4IGNiZDI0YzcyOS4uZWIwMzNj
M2ZjIDEwMDY0NAo+PiAtLS0gYS9zcmMvYXBpMi9hZG1pbi9kYXRhc3RvcmUucnMKPj4gKysrIGIv
c3JjL2FwaTIvYWRtaW4vZGF0YXN0b3JlLnJzCj4+IEBAIC01MSw3ICs1MSw3IEBAIHVzZSBwYnNf
YXBpX3R5cGVzOjp7Cj4+ICAgfTsKPj4gICB1c2UgcGJzX2NsaWVudDo6cHhhcjo6e2NyZWF0ZV90
YXIsIGNyZWF0ZV96aXB9Owo+PiAgIHVzZSBwYnNfY29uZmlnOjpDYWNoZWRVc2VySW5mbzsKPj4g
LXVzZSBwYnNfZGF0YXN0b3JlOjpiYWNrdXBfaW5mbzo6e0JhY2t1cEluZm8sIExpc3RCYWNrdXBG
aWx0ZXJ9Owo+PiArdXNlIHBic19kYXRhc3RvcmU6OmJhY2t1cF9pbmZvOjp7QmFja3VwSW5mbywg
TGlzdEJhY2t1cEZpbHRlciwgVFJBU0hfTUFSS0VSX0ZJTEVOQU1FfTsKPj4gICB1c2UgcGJzX2Rh
dGFzdG9yZTo6Y2FjaGVkX2NodW5rX3JlYWRlcjo6Q2FjaGVkQ2h1bmtSZWFkZXI7Cj4+ICAgdXNl
IHBic19kYXRhc3RvcmU6OmNhdGFsb2c6OntBcmNoaXZlRW50cnksIENhdGFsb2dSZWFkZXJ9Owo+
PiAgIHVzZSBwYnNfZGF0YXN0b3JlOjpkYXRhX2Jsb2I6OkRhdGFCbG9iOwo+PiBAQCAtMjcyNyw2
ICsyNzI3LDE2NSBAQCBwdWIgYXN5bmMgZm4gdW5tb3VudChzdG9yZTogU3RyaW5nLCBycGNlbnY6
ICZtdXQgZHluIFJwY0Vudmlyb25tZW50KSAtPiBSZXN1bHQ8Vgo+PiAgICAgICBPayhqc29uISh1
cGlkKSkKPj4gICB9Cj4+ICAgCj4+ICsjW2FwaSgKPj4gKyAgICBpbnB1dDogewo+PiArICAgICAg
ICBwcm9wZXJ0aWVzOiB7Cj4+ICsgICAgICAgICAgICBzdG9yZTogeyBzY2hlbWE6IERBVEFTVE9S
RV9TQ0hFTUEgfSwKPj4gKyAgICAgICAgICAgIG5zOiB7IHR5cGU6IEJhY2t1cE5hbWVzcGFjZSwg
fSwKPj4gKyAgICAgICAgfSwKPj4gKyAgICB9LAo+PiArICAgIGFjY2Vzczogewo+PiArICAgICAg
ICBwZXJtaXNzaW9uOiAmUGVybWlzc2lvbjo6QW55Ym9keSwKPj4gKyAgICAgICAgZGVzY3JpcHRp
b246ICJSZXF1aXJlcyBvbiAvZGF0YXN0b3JlL3tzdG9yZX1bL3tuYW1lc3BhY2V9XSBlaXRoZXIg
REFUQVNUT1JFX01PRElGWSBmb3IgYW55IFwKPj4gKyAgICAgICAgICAgIG9yIERBVEFTVE9SRV9C
QUNLVVAgYW5kIGJlaW5nIHRoZSBvd25lciBvZiB0aGUgZ3JvdXAiLAo+PiArICAgIH0sCj4+ICsp
XQo+PiArLy8vIFJlY292ZXIgdHJhc2hlZCBjb250ZW50cyBvZiBhIG5hbWVzcGFjZS4KPj4gK3B1
YiBmbiByZWNvdmVyX25hbWVzcGFjZSgKPj4gKyAgICBzdG9yZTogU3RyaW5nLAo+PiArICAgIG5z
OiBCYWNrdXBOYW1lc3BhY2UsCj4+ICsgICAgcnBjZW52OiAmbXV0IGR5biBScGNFbnZpcm9ubWVu
dCwKPj4gKykgLT4gUmVzdWx0PCgpLCBFcnJvcj4gewo+PiArICAgIGxldCBhdXRoX2lkOiBBdXRo
aWQgPSBycGNlbnYuZ2V0X2F1dGhfaWQoKS51bndyYXAoKS5wYXJzZSgpPzsKPj4gKyAgICBsZXQg
bGltaXRlZCA9IGNoZWNrX25zX3ByaXZzX2Z1bGwoCj4+ICsgICAgICAgICZzdG9yZSwKPj4gKyAg
ICAgICAgJm5zLAo+PiArICAgICAgICAmYXV0aF9pZCwKPj4gKyAgICAgICAgUFJJVl9EQVRBU1RP
UkVfTU9ESUZZLAo+PiArICAgICAgICBQUklWX0RBVEFTVE9SRV9CQUNLVVAsCj4+ICsgICAgKT87
Cj4+ICsKPj4gKyAgICBsZXQgZGF0YXN0b3JlID0gRGF0YVN0b3JlOjpsb29rdXBfZGF0YXN0b3Jl
KCZzdG9yZSwgU29tZShPcGVyYXRpb246OldyaXRlKSk/Owo+PiArCj4+ICsgICAgZm9yIGJhY2t1
cF9ncm91cCBpbiBkYXRhc3RvcmUuaXRlcl9iYWNrdXBfZ3JvdXBzKG5zLmNsb25lKCkpPyB7Cj4+
ICsgICAgICAgIGxldCBiYWNrdXBfZ3JvdXAgPSBiYWNrdXBfZ3JvdXA/Owo+PiArICAgICAgICBp
ZiBsaW1pdGVkIHsKPj4gKyAgICAgICAgICAgIGxldCBvd25lciA9IGRhdGFzdG9yZS5nZXRfb3du
ZXIoJm5zLCBiYWNrdXBfZ3JvdXAuZ3JvdXAoKSk/Owo+PiArICAgICAgICAgICAgaWYgY2hlY2tf
YmFja3VwX293bmVyKCZvd25lciwgJmF1dGhfaWQpLmlzX2VycigpIHsKPj4gKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKPj4gKyAgICAgICAgICAgIH0KPj4gKyAgICAgICAgfQo+PiArICAgICAg
ICBkb19yZWNvdmVyX2dyb3VwKCZiYWNrdXBfZ3JvdXApPzsKPj4gKyAgICB9Cj4+ICsKPj4gKyAg
ICBPaygoKSkKPj4gK30KPj4gKwo+PiArI1thcGkoCj4+ICsgICAgaW5wdXQ6IHsKPj4gKyAgICAg
ICAgcHJvcGVydGllczogewo+PiArICAgICAgICAgICAgc3RvcmU6IHsgc2NoZW1hOiBEQVRBU1RP
UkVfU0NIRU1BIH0sCj4+ICsgICAgICAgICAgICBncm91cDogewo+PiArICAgICAgICAgICAgICAg
IHR5cGU6IHBic19hcGlfdHlwZXM6OkJhY2t1cEdyb3VwLAo+PiArICAgICAgICAgICAgICAgIGZs
YXR0ZW46IHRydWUsCj4+ICsgICAgICAgICAgICB9LAo+PiArICAgICAgICAgICAgbnM6IHsKPj4g
KyAgICAgICAgICAgICAgICB0eXBlOiBCYWNrdXBOYW1lc3BhY2UsCj4+ICsgICAgICAgICAgICAg
ICAgb3B0aW9uYWw6IHRydWUsCj4+ICsgICAgICAgICAgICB9LAo+PiArICAgICAgICB9LAo+PiAr
ICAgIH0sCj4+ICsgICAgYWNjZXNzOiB7Cj4+ICsgICAgICAgIHBlcm1pc3Npb246ICZQZXJtaXNz
aW9uOjpBbnlib2R5LAo+PiArICAgICAgICBkZXNjcmlwdGlvbjogIlJlcXVpcmVzIG9uIC9kYXRh
c3RvcmUve3N0b3JlfVsve25hbWVzcGFjZX1dIGVpdGhlciBEQVRBU1RPUkVfTU9ESUZZIGZvciBh
bnkgXAo+PiArICAgICAgICAgICAgb3IgREFUQVNUT1JFX0JBQ0tVUCBhbmQgYmVpbmcgdGhlIG93
bmVyIG9mIHRoZSBncm91cCIsCj4+ICsgICAgfSwKPj4gKyldCj4+ICsvLy8gUmVjb3ZlciB0cmFz
aGVkIGNvbnRlbnRzIG9mIGEgYmFja3VwIGdyb3VwLgo+PiArcHViIGZuIHJlY292ZXJfZ3JvdXAo
Cj4+ICsgICAgc3RvcmU6IFN0cmluZywKPj4gKyAgICBncm91cDogcGJzX2FwaV90eXBlczo6QmFj
a3VwR3JvdXAsCj4+ICsgICAgbnM6IE9wdGlvbjxCYWNrdXBOYW1lc3BhY2U+LAo+PiArICAgIHJw
Y2VudjogJm11dCBkeW4gUnBjRW52aXJvbm1lbnQsCj4+ICspIC0+IFJlc3VsdDwoKSwgRXJyb3I+
IHsKPj4gKyAgICBsZXQgYXV0aF9pZDogQXV0aGlkID0gcnBjZW52LmdldF9hdXRoX2lkKCkudW53
cmFwKCkucGFyc2UoKT87Cj4+ICsgICAgbGV0IG5zID0gbnMudW53cmFwX29yX2RlZmF1bHQoKTsK
Pj4gKyAgICBsZXQgZGF0YXN0b3JlID0gY2hlY2tfcHJpdnNfYW5kX2xvYWRfc3RvcmUoCj4+ICsg
ICAgICAgICZzdG9yZSwKPj4gKyAgICAgICAgJm5zLAo+PiArICAgICAgICAmYXV0aF9pZCwKPj4g
KyAgICAgICAgUFJJVl9EQVRBU1RPUkVfTU9ESUZZLAo+PiArICAgICAgICBQUklWX0RBVEFTVE9S
RV9CQUNLVVAsCj4+ICsgICAgICAgIFNvbWUoT3BlcmF0aW9uOjpXcml0ZSksCj4+ICsgICAgICAg
ICZncm91cCwKPj4gKyAgICApPzsKPj4gKwo+PiArICAgIGxldCBiYWNrdXBfZ3JvdXAgPSBkYXRh
c3RvcmUuYmFja3VwX2dyb3VwKG5zLCBncm91cCk7Cj4+ICsgICAgZG9fcmVjb3Zlcl9ncm91cCgm
YmFja3VwX2dyb3VwKT87Cj4+ICsKPj4gKyAgICBPaygoKSkKPj4gK30KPj4gKwo+PiArZm4gZG9f
cmVjb3Zlcl9ncm91cChiYWNrdXBfZ3JvdXA6ICZCYWNrdXBHcm91cCkgLT4gUmVzdWx0PCgpLCBF
cnJvcj4gewo+IAo+IG1pc3NpbmcgbG9ja2luZyBmb3IgdGhlIGdyb3VwPwoKTm90IHN1cmUgYWJv
dXQgdGhhdCBvbmUuIEFmdGVyIGFsbCB0aGUgZ3JvdXAgaXMgdHJhc2hlZCBhdCBsZWFzdCBhcyBs
b25nIAphcyBhbGwgdGhlIHNuYXBzaG90cyBhcmUgdHJhc2hlZC4gQW5kIEdDIHdpbGwgb25seSBl
dmVyIGNsZWFuIHVwIHRoZSAKZ3JvdXAgZm9sZGVyIGlmIHRoZSB0cmFzaCBtYXJrZXIgaXMgbm90
IHNldC4gU28gSSBkbyBub3Qgc2VlIGEgcmVhc29uIAp3aHkgdGhpcyBzaG91bGQgYmUgbG9ja2Vk
LgoKPiAKPj4gKyAgICBsZXQgdHJhc2hlZF9zbmFwc2hvdHMgPSBiYWNrdXBfZ3JvdXAubGlzdF9i
YWNrdXBzKExpc3RCYWNrdXBGaWx0ZXI6OlRyYXNoZWQpPzsKPj4gKyAgICBmb3Igc25hcHNob3Qg
aW4gdHJhc2hlZF9zbmFwc2hvdHMgewo+PiArICAgICAgICBkb19yZWNvdmVyX3NuYXBzaG90KCZz
bmFwc2hvdC5iYWNrdXBfZGlyKT87Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgbGV0IGdyb3VwX3Ry
YXNoX3BhdGggPSBiYWNrdXBfZ3JvdXAuZnVsbF9ncm91cF9wYXRoKCkuam9pbihUUkFTSF9NQVJL
RVJfRklMRU5BTUUpOwo+PiArICAgIGlmIGxldCBFcnIoZXJyKSA9IHN0ZDo6ZnM6OnJlbW92ZV9m
aWxlKCZncm91cF90cmFzaF9wYXRoKSB7Cj4+ICsgICAgICAgIGlmIGVyci5raW5kKCkgIT0gc3Rk
Ojppbzo6RXJyb3JLaW5kOjpOb3RGb3VuZCB7Cj4+ICsgICAgICAgICAgICBiYWlsISgiZmFpbGVk
IHRvIHJlbW92ZSBncm91cCB0cmFzaCBmaWxlIHtncm91cF90cmFzaF9wYXRoOj99IC0ge2Vycn0i
KTsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKyAgICBPaygoKSkKPj4gK30KPj4gKwo+PiAr
I1thcGkoCj4+ICsgICAgaW5wdXQ6IHsKPj4gKyAgICAgICAgcHJvcGVydGllczogewo+PiArICAg
ICAgICAgICAgc3RvcmU6IHsgc2NoZW1hOiBEQVRBU1RPUkVfU0NIRU1BIH0sCj4+ICsgICAgICAg
ICAgICBiYWNrdXBfZGlyOiB7Cj4+ICsgICAgICAgICAgICAgICAgdHlwZTogcGJzX2FwaV90eXBl
czo6QmFja3VwRGlyLAo+PiArICAgICAgICAgICAgICAgIGZsYXR0ZW46IHRydWUsCj4+ICsgICAg
ICAgICAgICB9LAo+PiArICAgICAgICAgICAgbnM6IHsKPj4gKyAgICAgICAgICAgICAgICB0eXBl
OiBCYWNrdXBOYW1lc3BhY2UsCj4+ICsgICAgICAgICAgICAgICAgb3B0aW9uYWw6IHRydWUsCj4+
ICsgICAgICAgICAgICB9LAo+PiArICAgICAgICB9LAo+PiArICAgIH0sCj4+ICsgICAgYWNjZXNz
OiB7Cj4+ICsgICAgICAgIHBlcm1pc3Npb246ICZQZXJtaXNzaW9uOjpBbnlib2R5LAo+PiArICAg
ICAgICBkZXNjcmlwdGlvbjogIlJlcXVpcmVzIG9uIC9kYXRhc3RvcmUve3N0b3JlfVsve25hbWVz
cGFjZX1dIGVpdGhlciBEQVRBU1RPUkVfTU9ESUZZIGZvciBhbnkgXAo+PiArICAgICAgICAgICAg
b3IgREFUQVNUT1JFX0JBQ0tVUCBhbmQgYmVpbmcgdGhlIG93bmVyIG9mIHRoZSBncm91cCIsCj4+
ICsgICAgfSwKPj4gKyldCj4+ICsvLy8gUmVjb3ZlciB0cmFzaGVkIGNvbnRlbnRzIG9mIGEgYmFj
a3VwIHNuYXBzaG90Lgo+PiArcHViIGZuIHJlY292ZXJfc25hcHNob3QoCj4+ICsgICAgc3RvcmU6
IFN0cmluZywKPj4gKyAgICBiYWNrdXBfZGlyOiBwYnNfYXBpX3R5cGVzOjpCYWNrdXBEaXIsCj4+
ICsgICAgbnM6IE9wdGlvbjxCYWNrdXBOYW1lc3BhY2U+LAo+PiArICAgIHJwY2VudjogJm11dCBk
eW4gUnBjRW52aXJvbm1lbnQsCj4+ICspIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4gKyAgICBs
ZXQgYXV0aF9pZDogQXV0aGlkID0gcnBjZW52LmdldF9hdXRoX2lkKCkudW53cmFwKCkucGFyc2Uo
KT87Cj4+ICsgICAgbGV0IG5zID0gbnMudW53cmFwX29yX2RlZmF1bHQoKTsKPj4gKyAgICBsZXQg
ZGF0YXN0b3JlID0gY2hlY2tfcHJpdnNfYW5kX2xvYWRfc3RvcmUoCj4+ICsgICAgICAgICZzdG9y
ZSwKPj4gKyAgICAgICAgJm5zLAo+PiArICAgICAgICAmYXV0aF9pZCwKPj4gKyAgICAgICAgUFJJ
Vl9EQVRBU1RPUkVfTU9ESUZZLAo+PiArICAgICAgICBQUklWX0RBVEFTVE9SRV9CQUNLVVAsCj4+
ICsgICAgICAgIFNvbWUoT3BlcmF0aW9uOjpXcml0ZSksCj4+ICsgICAgICAgICZiYWNrdXBfZGly
Lmdyb3VwLAo+PiArICAgICk/Owo+PiArCj4+ICsgICAgbGV0IHNuYXBzaG90ID0gZGF0YXN0b3Jl
LmJhY2t1cF9kaXIobnMsIGJhY2t1cF9kaXIpPzsKPj4gKyAgICBkb19yZWNvdmVyX3NuYXBzaG90
KCZzbmFwc2hvdCk/Owo+PiArCj4+ICsgICAgT2soKCkpCj4+ICt9Cj4+ICsKPj4gK2ZuIGRvX3Jl
Y292ZXJfc25hcHNob3Qoc25hcHNob3RfZGlyOiAmQmFja3VwRGlyKSAtPiBSZXN1bHQ8KCksIEVy
cm9yPiB7Cj4gCj4gbWlzc2luZyBsb2NraW5nIGZvciB0aGUgc25hcHNob3Q/CgpXaHk/IHJlbW92
ZV9maWxlKCkgc2hvdWxkIGJlIGF0b21pYz8KCj4gCj4+ICsgICAgbGV0IHRyYXNoX3BhdGggPSBz
bmFwc2hvdF9kaXIuZnVsbF9wYXRoKCkuam9pbihUUkFTSF9NQVJLRVJfRklMRU5BTUUpOwo+PiAr
ICAgIGlmIGxldCBFcnIoZXJyKSA9IHN0ZDo6ZnM6OnJlbW92ZV9maWxlKCZ0cmFzaF9wYXRoKSB7
Cj4+ICsgICAgICAgIGlmIGVyci5raW5kKCkgIT0gc3RkOjppbzo6RXJyb3JLaW5kOjpOb3RGb3Vu
ZCB7Cj4+ICsgICAgICAgICAgICBiYWlsISgiZmFpbGVkIHRvIHJlbW92ZSB0cmFzaCBmaWxlIHt0
cmFzaF9wYXRoOj99IC0ge2Vycn0iKTsKPj4gKyAgICAgICAgfQo+PiArICAgIH0KPj4gKyAgICBP
aygoKSkKPj4gK30KPj4gKwo+PiAgICNbc29ydGFibGVdCj4+ICAgY29uc3QgREFUQVNUT1JFX0lO
Rk9fU1VCRElSUzogU3ViZGlyTWFwID0gJlsKPj4gICAgICAgKAo+PiBAQCAtMjc5Miw2ICsyOTUx
LDE4IEBAIGNvbnN0IERBVEFTVE9SRV9JTkZPX1NVQkRJUlM6IFN1YmRpck1hcCA9ICZbCj4+ICAg
ICAgICAgICAicHhhci1maWxlLWRvd25sb2FkIiwKPj4gICAgICAgICAgICZSb3V0ZXI6Om5ldygp
LmRvd25sb2FkKCZBUElfTUVUSE9EX1BYQVJfRklMRV9ET1dOTE9BRCksCj4+ICAgICAgICksCj4+
ICsgICAgKAo+PiArICAgICAgICAicmVjb3Zlci1ncm91cCIsCj4+ICsgICAgICAgICZSb3V0ZXI6
Om5ldygpLnBvc3QoJkFQSV9NRVRIT0RfUkVDT1ZFUl9HUk9VUCksCj4gCj4gSSBhbSBub3Qgc3Vy
ZSB3aGV0aGVyIHRob3NlIHNob3VsZCBiZSBQT1NUIG9yIFBVVCwgdGhleSBhcmUgbW9kaWZ5aW5n
IGFuCj4gZXhpc3RpbmcgKHRyYXNoZWQpIGdyb3VwL3NuYXBzaG90Ly4uIGFmdGVyIGFsbD8KPiAK
Pj4gKyAgICApLAo+PiArICAgICgKPj4gKyAgICAgICAgInJlY292ZXItbmFtZXNwYWNlIiwKPj4g
KyAgICAgICAgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJX01FVEhPRF9SRUNPVkVSX05BTUVTUEFD
RSksCj4+ICsgICAgKSwKPj4gKyAgICAoCj4+ICsgICAgICAgICJyZWNvdmVyLXNuYXBzaG90IiwK
Pj4gKyAgICAgICAgJlJvdXRlcjo6bmV3KCkucG9zdCgmQVBJX01FVEhPRF9SRUNPVkVSX1NOQVBT
SE9UKSwKPj4gKyAgICApLAo+PiAgICAgICAoInJyZCIsICZSb3V0ZXI6Om5ldygpLmdldCgmQVBJ
X01FVEhPRF9HRVRfUlJEX1NUQVRTKSksCj4+ICAgICAgICgKPj4gICAgICAgICAgICJzbmFwc2hv
dHMiLAo+PiAtLSAKPj4gMi4zOS41Cj4+Cj4+Cj4+Cj4+IF9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCj4+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QKPj4gcGJz
LWRldmVsQGxpc3RzLnByb3htb3guY29tCj4+IGh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dp
LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo+Pgo+Pgo+Pgo+IAo+IAo+IF9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcGJzLWRldmVsIG1haWxp
bmcgbGlzdAo+IHBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJv
eG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo+IAo+IAoKCgpfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFp
bGluZyBsaXN0CnBicy1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3ht
b3guY29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK