From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 9CEB11FF17A for ; Tue, 9 Dec 2025 14:52:04 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 80C372552; Tue, 9 Dec 2025 14:52:43 +0100 (CET) Mime-Version: 1.0 Date: Tue, 09 Dec 2025 14:52:09 +0100 Message-Id: From: "Shan Shaji" Cc: "pdm-devel" To: "Proxmox Datacenter Manager development discussion" X-Mailer: aerc 0.20.0 References: <20251205180447.441371-1-s.shaji@proxmox.com> <20251205180447.441371-6-s.shaji@proxmox.com> In-Reply-To: X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1765288323297 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.109 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. [config.rs, proxmox.com, mod.rs] Subject: Re: [pdm-devel] [PATCH datacenter-manager 5/5] fix: ui: add remove confirmation dialog with optional token deletion X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" T24gVHVlIERlYyA5LCAyMDI1IGF0IDI6MzggUE0gQ0VULCBNaWNoYWVsIEvDtnBwbCB3cm90ZToK PiA0IGNvbW1lbnRzIGlubGluZQo+Cj4gT24gRnJpIERlYyA1LCAyMDI1IGF0IDc6MDQgUE0gQ0VU LCBTaGFuIFNoYWppIHdyb3RlOgo+PiBQcmV2aW91c2x5LCByZW1vdmluZyBhIHJlbW90ZSBkaWQg bm90IHJlbW92ZSBpdCdzIHRva2VuLCB3aGljaAo+Cj4gbml0OiBzL2l0XCdzL2l0cwo+Cj4+IHBy ZXZlbnRlZCB1c2VycyBmcm9tIHJlLWFkZGluZyB0aGUgc2FtZSByZW1vdGUgbGF0ZXIgd2l0aCB0 aGUgc2FtZSB0b2tlbgo+PiBuYW1lLiBUbyBmaXggaXQgIGEgbmV3IGNoZWNrYm94IG9wdGlvbiBo YXMgYmVlbiBhZGRlZCB0byB3aGljaCB3aGVuCj4+IGVuYWJsZWQgdGhlIHRva2VuIHdpbGwgYmUg ZGVsZXRlZCBmcm9tIHRoZSByZW1vdGUuCj4KPiBuaXQ6IHdhcyBhIGJpdCBkaWZmaWN1bHQgdG8g Z3Jhc3AgZm9yIG1lLiBNYXliZSBzb21ldGhpbmcgbGlrZSAiVG8gZml4Cj4gdGhpcywgYWRkIGEg bmV3IGNoZWNrYm94IHRoYXQgbGV0cyB1c2VycyBjaG9vc2UgdG8gYWxzbyBkZWxldGUgdGhlCj4g dG9rZW4gd2hlbiBkZWxldGluZyB0aGUgcmVtb3RlIi4KCldpbGwgdXBkYXRlIGl0LiBUaGFuayB5 b3UhCgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBTaGFuIFNoYWppIDxzLnNoYWppQHByb3htb3guY29t Pgo+PiAtLS0KPj4gIHVpL3NyYy9yZW1vdGVzL2NvbmZpZy5ycyAgICAgICAgfCAgNDIgKysrKysr Ky0tLS0KPj4gIHVpL3NyYy9yZW1vdGVzL21vZC5ycyAgICAgICAgICAgfCAgIDMgKwo+PiAgdWkv c3JjL3JlbW90ZXMvcmVtb3ZlX3JlbW90ZS5ycyB8IDEyMiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwo+PiAgMyBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMTMgZGVs ZXRpb25zKC0pCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQgdWkvc3JjL3JlbW90ZXMvcmVtb3ZlX3Jl bW90ZS5ycwo+Pgo+PiBkaWZmIC0tZ2l0IGEvdWkvc3JjL3JlbW90ZXMvY29uZmlnLnJzIGIvdWkv c3JjL3JlbW90ZXMvY29uZmlnLnJzCj4+IGluZGV4IGFjM2MwZjEuLjg2Y2IzZDYgMTAwNjQ0Cj4+ IC0tLSBhL3VpL3NyYy9yZW1vdGVzL2NvbmZpZy5ycwo+PiArKysgYi91aS9zcmMvcmVtb3Rlcy9j b25maWcucnMKPj4gQEAgLTcsNiArNyw3IEBAIHVzZSBhbnlob3c6OkVycm9yOwo+PiAgdXNlIHBy b3htb3hfc2NoZW1hOjpwcm9wZXJ0eV9zdHJpbmc6OlByb3BlcnR5U3RyaW5nOwo+PiAgCj4+ICB1 c2UgY3JhdGU6OnJlbW90ZXM6OmVkaXRfcmVtb3RlOjpFZGl0UmVtb3RlOwo+PiArdXNlIGNyYXRl OjpyZW1vdGVzOjpyZW1vdmVfcmVtb3RlOjpSZW1vdmVSZW1vdGU7Cj4+ICAvL3VzZSBwd3Q6Ondp ZGdldDo6Zm9ybTo6e0ZpZWxkLCBGb3JtQ29udGV4dCwgSW5wdXRUeXBlfTsKPj4gIAo+PiAgdXNl IHBkbV9hcGlfdHlwZXM6OnJlbW90ZXM6OlJlbW90ZTsKPj4gQEAgLTE3LDcgKzE4LDcgQEAgdXNl IHByb3htb3hfeWV3X2NvbXA6OnBlcmNlbnRfZW5jb2Rpbmc6OnBlcmNlbnRfZW5jb2RlX2NvbXBv bmVudDsKPj4gIAo+PiAgLy91c2UgcHJveG1veF9zY2hlbWE6OmFwaV90eXBlczo6e0NFUlRfRklO R0VSUFJJTlRfU0hBMjU2X1NDSEVNQSwgRE5TX05BTUVfT1JfSVBfU0NIRU1BfTsKPj4gIAo+PiAt dXNlIHNlcmRlX2pzb246OlZhbHVlOwo+PiArdXNlIHNlcmRlX2pzb246Ontqc29uLCBWYWx1ZX07 Cj4+ICB1c2UgeWV3Ojp2aXJ0dWFsX2RvbTo6e0tleSwgVkNvbXAsIFZOb2RlfTsKPj4gIAo+PiAg dXNlIHB3dDo6cHJlbHVkZTo6KjsKPj4gQEAgLTMxLDkgKzMyLDcgQEAgdXNlIHB3dDo6d2lkZ2V0 Ojp7Cj4+ICAvL3VzZSBwd3Q6OndpZGdldDo6SW5wdXRQYW5lbDsKPj4gIAo+PiAgLy91c2UgcHJv eG1veF95ZXdfY29tcDo6RWRpdFdpbmRvdzsKPj4gLXVzZSBwcm94bW94X3lld19jb21wOjp7Cj4+ IC0gICAgQ29uZmlybUJ1dHRvbiwgTG9hZGFibGVDb21wb25lbnQsIExvYWRhYmxlQ29tcG9uZW50 Q29udGV4dCwgTG9hZGFibGVDb21wb25lbnRNYXN0ZXIsCj4+IC19Owo+PiArdXNlIHByb3htb3hf eWV3X2NvbXA6OntMb2FkYWJsZUNvbXBvbmVudCwgTG9hZGFibGVDb21wb25lbnRDb250ZXh0LCBM b2FkYWJsZUNvbXBvbmVudE1hc3Rlcn07Cj4+ICAKPj4gIHVzZSBwZG1fYXBpX3R5cGVzOjpyZW1v dGVzOjp7Tm9kZVVybCwgUmVtb3RlVHlwZX07Cj4+ICAKPj4gQEAgLTQxLDEwICs0MCwxMyBAQCBh c3luYyBmbiBsb2FkX3JlbW90ZXMoKSAtPiBSZXN1bHQ8VmVjPFJlbW90ZT4sIEVycm9yPiB7Cj4+ ICAgICAgcHJveG1veF95ZXdfY29tcDo6aHR0cF9nZXQoIi9yZW1vdGVzL3JlbW90ZSIsIE5vbmUp LmF3YWl0Cj4+ICB9Cj4+ICAKPj4gLWFzeW5jIGZuIGRlbGV0ZV9pdGVtKGtleTogS2V5KSAtPiBS ZXN1bHQ8KCksIEVycm9yPiB7Cj4+ICthc3luYyBmbiBkZWxldGVfaXRlbShrZXk6IEtleSwgZGVs ZXRlX3Rva2VuOiBib29sKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+ICAgICAgbGV0IGlkID0g a2V5LnRvX3N0cmluZygpOwo+PiAtICAgIGxldCB1cmwgPSBmb3JtYXQhKCIvcmVtb3Rlcy9yZW1v dGUve30iLCBwZXJjZW50X2VuY29kZV9jb21wb25lbnQoJmlkKSk7Cj4+IC0gICAgcHJveG1veF95 ZXdfY29tcDo6aHR0cF9kZWxldGUoJnVybCwgTm9uZSkuYXdhaXQ/Owo+PiArICAgIGxldCBwYXJh bSA9IFNvbWUoanNvbiEoewo+PiArICAgICAgICAiZGVsZXRlLXRva2VuIjogZGVsZXRlX3Rva2Vu LAo+PiArICAgIH0pKTsKPj4gKyAgICBsZXQgdXJsID0gZm9ybWF0ISgiL3JlbW90ZXMvcmVtb3Rl L3t9IiwgcGVyY2VudF9lbmNvZGVfY29tcG9uZW50KCZpZCksKTsKPgo+IG5pdDogaXMgdGhlcmUg YSByZWFzb24gZm9yIHRoaXMgYWRkZWQgY29tbWEgYXQgdGhlIGVuZD8KCkl0IHdhcyBub3QgaW50 ZW5kZWQuIFdpbGwgcmVtb3ZlIGl0LiAKCj4+ICsgICAgcHJveG1veF95ZXdfY29tcDo6aHR0cF9k ZWxldGUoJnVybCwgcGFyYW0pLmF3YWl0PzsKPj4gICAgICBPaygoKSkKPj4gIH0KPj4gIAo+PiBA QCAtOTksMTEgKzEwMSwxMiBAQCBpbXBsIFJlbW90ZUNvbmZpZ1BhbmVsIHsKPj4gIHB1YiBlbnVt IFZpZXdTdGF0ZSB7Cj4+ICAgICAgQWRkKFJlbW90ZVR5cGUpLAo+PiAgICAgIEVkaXQsCj4+ICsg ICAgUmVtb3ZlLAo+PiAgfQo+PiAgCj4+ICBwdWIgZW51bSBNc2cgewo+PiAgICAgIFNlbGVjdGlv bkNoYW5nZSwKPj4gLSAgICBSZW1vdmVJdGVtLAo+PiArICAgIFJlbW92ZUl0ZW0oYm9vbCksCj4+ ICB9Cj4+ICAKPj4gIHB1YiBzdHJ1Y3QgUGJzUmVtb3RlQ29uZmlnUGFuZWwgewo+PiBAQCAtMTQ2 LDExICsxNDksMTEgQEAgaW1wbCBMb2FkYWJsZUNvbXBvbmVudCBmb3IgUGJzUmVtb3RlQ29uZmln UGFuZWwgewo+PiAgICAgIGZuIHVwZGF0ZSgmbXV0IHNlbGYsIGN0eDogJkxvYWRhYmxlQ29tcG9u ZW50Q29udGV4dDxTZWxmPiwgbXNnOiBTZWxmOjpNZXNzYWdlKSAtPiBib29sIHsKPj4gICAgICAg ICAgbWF0Y2ggbXNnIHsKPj4gICAgICAgICAgICAgIE1zZzo6U2VsZWN0aW9uQ2hhbmdlID0+IHRy dWUsCj4+IC0gICAgICAgICAgICBNc2c6OlJlbW92ZUl0ZW0gPT4gewo+PiArICAgICAgICAgICAg TXNnOjpSZW1vdmVJdGVtKHYpID0+IHsKPj4gICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShr ZXkpID0gc2VsZi5zZWxlY3Rpb24uc2VsZWN0ZWRfa2V5KCkgewo+PiAgICAgICAgICAgICAgICAg ICAgICBsZXQgbGluayA9IGN0eC5saW5rKCk7Cj4+ICAgICAgICAgICAgICAgICAgICAgIGxpbmsu Y2xvbmUoKS5zcGF3bihhc3luYyBtb3ZlIHsKPj4gLSAgICAgICAgICAgICAgICAgICAgICAgIGlm IGxldCBFcnIoZXJyKSA9IGRlbGV0ZV9pdGVtKGtleSkuYXdhaXQgewo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgaWYgbGV0IEVycihlcnIpID0gZGVsZXRlX2l0ZW0oa2V5LCB2KS5hd2FpdCB7 Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay5zaG93X2Vycm9yKHRyISgiVW5h YmxlIHRvIGRlbGV0ZSBpdGVtIiksIGVyciwgdHJ1ZSk7Cj4+ICAgICAgICAgICAgICAgICAgICAg ICAgICB9Cj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rLnNlbmRfcmVsb2FkKCk7Cj4+ IEBAIC0xOTUsMTAgKzE5OCw5IEBAIGltcGwgTG9hZGFibGVDb21wb25lbnQgZm9yIFBic1JlbW90 ZUNvbmZpZ1BhbmVsIHsKPj4gICAgICAgICAgICAgICAgICAgICAgLm9uY2xpY2sobGluay5jaGFu Z2Vfdmlld19jYWxsYmFjayh8X3wgU29tZShWaWV3U3RhdGU6OkVkaXQpKSksCj4+ICAgICAgICAg ICAgICApCj4+ICAgICAgICAgICAgICAud2l0aF9jaGlsZCgKPj4gLSAgICAgICAgICAgICAgICBD b25maXJtQnV0dG9uOjpuZXcodHIhKCJSZW1vdmUiKSkKPj4gLSAgICAgICAgICAgICAgICAgICAg LmNvbmZpcm1fbWVzc2FnZSh0ciEoIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZW1vdmUgdGhp cyByZW1vdGU/IikpCj4+ICsgICAgICAgICAgICAgICAgQnV0dG9uOjpuZXcodHIhKCJSZW1vdmUi KSkKPj4gICAgICAgICAgICAgICAgICAgICAgLmRpc2FibGVkKGRpc2FibGVkKQo+PiAtICAgICAg ICAgICAgICAgICAgICAub25fYWN0aXZhdGUobGluay5jYWxsYmFjayh8X3wgTXNnOjpSZW1vdmVJ dGVtKSksCj4+ICsgICAgICAgICAgICAgICAgICAgIC5vbmNsaWNrKGxpbmsuY2hhbmdlX3ZpZXdf Y2FsbGJhY2sofF98IFNvbWUoVmlld1N0YXRlOjpSZW1vdmUpKSksCj4+ICAgICAgICAgICAgICAp Cj4+ICAgICAgICAgICAgICAud2l0aF9mbGV4X3NwYWNlcigpCj4+ICAgICAgICAgICAgICAud2l0 aF9jaGlsZCh7Cj4+IEBAIC0yMzMsNiArMjM1LDcgQEAgaW1wbCBMb2FkYWJsZUNvbXBvbmVudCBm b3IgUGJzUmVtb3RlQ29uZmlnUGFuZWwgewo+PiAgICAgICAgICAgICAgICAgIC5zZWxlY3Rpb24K Pj4gICAgICAgICAgICAgICAgICAuc2VsZWN0ZWRfa2V5KCkKPj4gICAgICAgICAgICAgICAgICAu bWFwKHxrZXl8IHNlbGYuY3JlYXRlX2VkaXRfZGlhbG9nKGN0eCwga2V5KSksCj4+ICsgICAgICAg ICAgICBWaWV3U3RhdGU6OlJlbW92ZSA9PiBTb21lKHNlbGYuY3JlYXRlX3JlbW92ZV9yZW1vdGVf ZGlhbG9nKGN0eCkpLAo+PiAgICAgICAgICB9Cj4+ICAgICAgfQo+PiAgfQo+PiBAQCAtMjkzLDYg KzI5NiwxOSBAQCBpbXBsIFBic1JlbW90ZUNvbmZpZ1BhbmVsIHsKPj4gICAgICAgICAgICAgIC5v bl9kb25lKGN0eC5saW5rKCkuY2hhbmdlX3ZpZXdfY2FsbGJhY2sofF98IE5vbmUpKQo+PiAgICAg ICAgICAgICAgLmludG8oKQo+PiAgICAgIH0KPj4gKwo+PiArICAgIGZuIGNyZWF0ZV9yZW1vdmVf cmVtb3RlX2RpYWxvZygmc2VsZiwgY3R4OiAmTG9hZGFibGVDb21wb25lbnRDb250ZXh0PFNlbGY+ KSAtPiBIdG1sIHsKPj4gKyAgICAgICAgbGV0IGxpbmsgPSBjdHgubGluaygpOwo+PiArICAgICAg ICBsZXQgY2xvc2UgPSBsaW5rLmNoYW5nZV92aWV3X2NhbGxiYWNrKHxffCBOb25lKTsKPj4gKwo+ PiArICAgICAgICBSZW1vdmVSZW1vdGU6Om5ldygpCj4+ICsgICAgICAgICAgICAub25fZGlzbWlz cyhjbG9zZS5jbG9uZSgpKQo+PiArICAgICAgICAgICAgLm9uX2NvbmZpcm0oQ2FsbGJhY2s6OmZy b20obW92ZSB8dnwgewo+PiArICAgICAgICAgICAgICAgIGxpbmsuc2VuZF9tZXNzYWdlKE1zZzo6 UmVtb3ZlSXRlbSh2KSk7Cj4+ICsgICAgICAgICAgICAgICAgbGluay5jaGFuZ2VfdmlldyhOb25l KTsKPj4gKyAgICAgICAgICAgIH0pKQo+PiArICAgICAgICAgICAgLmludG8oKQo+PiArICAgIH0K Pj4gIH0KPj4gIAo+PiAgaW1wbCBGcm9tPFJlbW90ZUNvbmZpZ1BhbmVsPiBmb3IgVk5vZGUgewo+ PiBkaWZmIC0tZ2l0IGEvdWkvc3JjL3JlbW90ZXMvbW9kLnJzIGIvdWkvc3JjL3JlbW90ZXMvbW9k LnJzCj4+IGluZGV4IDYwMzA3N2MuLjY5MTJjYTkgMTAwNjQ0Cj4+IC0tLSBhL3VpL3NyYy9yZW1v dGVzL21vZC5ycwo+PiArKysgYi91aS9zcmMvcmVtb3Rlcy9tb2QucnMKPj4gQEAgLTI3LDYgKzI3 LDkgQEAgcHViIHVzZSB0YXNrczo6UmVtb3RlVGFza0xpc3Q7Cj4+ICBtb2QgdXBkYXRlczsKPj4g IHB1YiB1c2UgdXBkYXRlczo6VXBkYXRlVHJlZTsKPj4gIAo+PiArbW9kIHJlbW92ZV9yZW1vdGU7 Cj4+ICtwdWIgdXNlIHJlbW92ZV9yZW1vdGU6OlJlbW92ZVJlbW90ZTsKPj4gKwo+PiAgbW9kIGZp cmV3YWxsOwo+PiAgcHViIHVzZSBmaXJld2FsbDo6RmlyZXdhbGxUcmVlOwo+PiAgCj4+IGRpZmYg LS1naXQgYS91aS9zcmMvcmVtb3Rlcy9yZW1vdmVfcmVtb3RlLnJzIGIvdWkvc3JjL3JlbW90ZXMv cmVtb3ZlX3JlbW90ZS5ycwo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAw Li5lMjZkNTYzCj4+IC0tLSAvZGV2L251bGwKPj4gKysrIGIvdWkvc3JjL3JlbW90ZXMvcmVtb3Zl X3JlbW90ZS5ycwo+PiBAQCAtMCwwICsxLDEyMiBAQAo+PiArdXNlIHN0ZDo6cmM6OlJjOwo+PiAr Cj4+ICt1c2UgeWV3Ojp7Cj4+ICsgICAgaHRtbDo6SW50b0V2ZW50Q2FsbGJhY2ssCj4+ICsgICAg cHJlbHVkZTo6KiwKPj4gKyAgICB2aXJ0dWFsX2RvbTo6e1ZDb21wLCBWTm9kZX0sCj4+ICt9Owo+ PiArCj4+ICt1c2UgcHd0Ojp7Cj4+ICsgICAgY3NzOjp7QWxpZ25JdGVtcywgRm9udENvbG9yLCBK dXN0aWZ5Q29udGVudH0sCj4+ICsgICAgcHJvcHM6OnsKPj4gKyAgICAgICAgQ29udGFpbmVyQnVp bGRlciwgQ3NzUGFkZGluZ0J1aWxkZXIsIEV2ZW50U3Vic2NyaWJlciwgV2lkZ2V0QnVpbGRlciwg V2lkZ2V0U3R5bGVCdWlsZGVyLAo+PiArICAgIH0sCj4+ICsgICAgdHIsCj4+ICsgICAgd2lkZ2V0 Ojp7Zm9ybTo6Q2hlY2tib3gsIEJ1dHRvbiwgQ29sdW1uLCBDb250YWluZXIsIERpYWxvZywgRmEs IFJvd30sCj4+ICt9Owo+PiArdXNlIHB3dF9tYWNyb3M6OmJ1aWxkZXI7Cj4+ICsKPj4gKyNbZGVy aXZlKFBhcnRpYWxFcSwgUHJvcGVydGllcyldCj4+ICsjW2J1aWxkZXJdCj4+ICtwdWIgc3RydWN0 IFJlbW92ZVJlbW90ZSB7Cj4+ICsgICAgLy8vIEEgY2FsbGJhY2sgZm9yIGFuIGFjdGlvbiB0aGF0 IG5lZWRzIHRvIGJlIGNvbmZpcm1lZCBieSB0aGUgdXNlci4KPj4gKyAgICAjW3Byb3Bfb3JfZGVm YXVsdF0KPj4gKyAgICAjW2J1aWxkZXJfY2IoSW50b0V2ZW50Q2FsbGJhY2ssIGludG9fZXZlbnRf Y2FsbGJhY2ssIGJvb2wpXQo+PiArICAgIHB1YiBvbl9jb25maXJtOiBPcHRpb248Q2FsbGJhY2s8 Ym9vbD4+LAo+PiArCj4+ICsgICAgLy8vIEEgY2FsbGJhY2sgdGhhdCB3aWxsIHRyaWdnZXIgaWYg dGhlIHVzZXIgZGlzbWlzc2VzIHRoZSBhY3Rpb24uCj4+ICsgICAgI1twcm9wX29yX2RlZmF1bHRd Cj4+ICsgICAgI1tidWlsZGVyX2NiKEludG9FdmVudENhbGxiYWNrLCBpbnRvX2V2ZW50X2NhbGxi YWNrLCAoKSldCj4+ICsgICAgcHViIG9uX2Rpc21pc3M6IE9wdGlvbjxDYWxsYmFjazwoKT4+LAo+ PiArfQo+PiArCj4+ICtpbXBsIFJlbW92ZVJlbW90ZSB7Cj4+ICsgICAgcHViIGZuIG5ldygpIC0+ IFNlbGYgewo+PiArICAgICAgICB5ZXc6OnByb3BzIShTZWxmIHt9KQo+PiArICAgIH0KPj4gK30K Pj4gKwo+PiArcHViIGVudW0gTXNnIHsKPj4gKyAgICBTZWxlY3RDaGVja0JveChib29sKSwKPj4g K30KPj4gKwo+PiArcHViIHN0cnVjdCBQZG1SZW1vdmVSZW1vdGUgewo+PiArICAgIGRlbGV0ZV90 b2tlbjogYm9vbCwKPj4gK30KPj4gKwo+PiAraW1wbCBDb21wb25lbnQgZm9yIFBkbVJlbW92ZVJl bW90ZSB7Cj4+ICsgICAgdHlwZSBNZXNzYWdlID0gTXNnOwo+PiArCj4+ICsgICAgdHlwZSBQcm9w ZXJ0aWVzID0gUmVtb3ZlUmVtb3RlOwo+PiArCj4+ICsgICAgZm4gY3JlYXRlKF9jdHg6ICZDb250 ZXh0PFNlbGY+KSAtPiBTZWxmIHsKPj4gKyAgICAgICAgU2VsZiB7Cj4+ICsgICAgICAgICAgICBk ZWxldGVfdG9rZW46IGZhbHNlLAo+PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiArCj4+ICsgICAg Zm4gdXBkYXRlKCZtdXQgc2VsZiwgX2N0eDogJkNvbnRleHQ8U2VsZj4sIG1zZzogU2VsZjo6TWVz c2FnZSkgLT4gYm9vbCB7Cj4+ICsgICAgICAgIG1hdGNoIG1zZyB7Cj4+ICsgICAgICAgICAgICBN c2c6OlNlbGVjdENoZWNrQm94KHYpID0+IHsKPj4gKyAgICAgICAgICAgICAgICBzZWxmLmRlbGV0 ZV90b2tlbiA9IHY7Cj4+ICsgICAgICAgICAgICAgICAgdHJ1ZQo+PiArICAgICAgICAgICAgfQo+ PiArICAgICAgICB9Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgZm4gdmlldygmc2VsZiwgY3R4OiAm Q29udGV4dDxTZWxmPikgLT4gSHRtbCB7Cj4+ICsgICAgICAgIGxldCBwcm9wcyA9IGN0eC5wcm9w cygpOwo+PiArICAgICAgICBsZXQgZGVsZXRlX3Rva2VuID0gc2VsZi5kZWxldGVfdG9rZW4uY2xv bmUoKTsKPgo+IHRoZSBjbG9uZSgpIGhlcmUgaXMgdW5uZWNlc3NhcnkKCnRoYW5rcyB3aWxsIHVk cGF0ZSBpdC4gCgo+PiArCj4+ICsgICAgICAgIGxldCBvbl9jb25maXJtID0gcHJvcHMub25fY29u ZmlybS5jbG9uZSgpOwo+PiArICAgICAgICBsZXQgb25fZGlzbWlzcyA9IHByb3BzLm9uX2Rpc21p c3MuY2xvbmUoKTsKPj4gKwo+PiArICAgICAgICBEaWFsb2c6Om5ldyh0ciEoIkNvbmZpcm0iKSkK Pj4gKyAgICAgICAgICAgIC5vbl9jbG9zZShvbl9kaXNtaXNzLmNsb25lKCkpCj4+ICsgICAgICAg ICAgICAubWluX2hlaWdodCgxMDApCj4+ICsgICAgICAgICAgICAud2l0aF9jaGlsZCgKPj4gKyAg ICAgICAgICAgICAgICBDb2x1bW46Om5ldygpCj4+ICsgICAgICAgICAgICAgICAgICAgIC5wYWRk aW5nKDQpCj4+ICsgICAgICAgICAgICAgICAgICAgIC5nYXAoMikKPj4gKyAgICAgICAgICAgICAg ICAgICAgLndpdGhfY2hpbGQoCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICBSb3c6Om5ldygp Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdhcCgyKQo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgIC5jbGFzcyhBbGlnbkl0ZW1zOjpDZW50ZXIpCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLndpdGhfY2hpbGQoQ29udGFpbmVyOjpuZXcoKS5jbGFzcygicHd0 LW1lc3NhZ2Utc2lnbiIpLndpdGhfY2hpbGQoCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEZhOjpuZXcoImV4Y2xhbWF0aW9uLXRyaWFuZ2xlIikuY2xhc3MoRm9udENvbG9yOjpF cnJvciksCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKPj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAud2l0aF9jaGlsZCh0ciEoIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0 byByZW1vdmUgdGhpcyByZW1vdGU/IikpLAo+PiArICAgICAgICAgICAgICAgICAgICApCj4+ICsg ICAgICAgICAgICAgICAgICAgIC53aXRoX2NoaWxkKAo+PiArICAgICAgICAgICAgICAgICAgICAg ICAgQ2hlY2tib3g6Om5ldygpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlZmF1 bHQoZmFsc2UpCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmJveF9sYWJlbCh0ciEo IkRlbGV0ZSBBUEkgdG9rZW4gZnJvbSByZW1vdGUiKSkKPj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAuY2hlY2tlZChzZWxmLmRlbGV0ZV90b2tlbikKPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAub25fY2hhbmdlKGN0eC5saW5rKCkuY2FsbGJhY2sofHZ8IE1zZzo6U2VsZWN0 Q2hlY2tCb3godikpKSwKPj4gKyAgICAgICAgICAgICAgICAgICAgKQo+PiArICAgICAgICAgICAg ICAgICAgICAud2l0aF9jaGlsZCgKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgIFJvdzo6bmV3 KCkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2FwKDIpCj4+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLmNsYXNzKEp1c3RpZnlDb250ZW50OjpDZW50ZXIpCj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLndpdGhfY2hpbGQoQnV0dG9uOjpuZXcodHIhKCJZZXMi KSkub25jbGljayhtb3ZlIHxffCB7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIGxldCBTb21lKG9uX2NvbmZpcm0pID0gJm9uX2NvbmZpcm0gewo+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb25fY29uZmlybS5lbWl0KGRlbGV0ZV90b2tlbik7Cj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9KSkKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAud2l0aF9jaGls ZChCdXR0b246Om5ldyh0ciEoIk5vIikpLm9uY2xpY2sobW92ZSB8X3wgewo+PiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiBsZXQgU29tZShvbl9kaXNtaXNzKSA9ICZvbl9kaXNt aXNzIHsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uX2Rpc21pc3Mu ZW1pdCgoKSk7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KPj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9KSksCj4+ICsgICAgICAgICAgICAgICAgICAgICksCj4+ ICsgICAgICAgICAgICApCj4+ICsgICAgICAgICAgICAuaW50bygpCj4+ICsgICAgfQo+PiArfQo+ PiArCj4+ICtpbXBsIEZyb208UmVtb3ZlUmVtb3RlPiBmb3IgVk5vZGUgewo+PiArICAgIGZuIGZy b20odmFsOiBSZW1vdmVSZW1vdGUpIC0+IFNlbGYgewo+PiArICAgICAgICBsZXQgY29tcCA9IFZD b21wOjpuZXc6OjxQZG1SZW1vdmVSZW1vdGU+KFJjOjpuZXcodmFsKSwgTm9uZSk7Cj4+ICsgICAg ICAgIFZOb2RlOjpmcm9tKGNvbXApCj4+ICsgICAgfQo+PiArfQo+Cj4KPgo+IF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gcGRtLWRldmVsIG1haWxpbmcg bGlzdAo+IHBkbS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQo+IGh0dHBzOi8vbGlzdHMucHJveG1v eC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3BkbS1kZXZlbAoKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwZG0tZGV2ZWwgbWFpbGluZyBsaXN0 CnBkbS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2Nn aS1iaW4vbWFpbG1hbi9saXN0aW5mby9wZG0tZGV2ZWwK