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 AF6CA1FF183 for ; Wed, 30 Jul 2025 10:52:29 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6F27C36CAC; Wed, 30 Jul 2025 10:53:53 +0200 (CEST) Date: Wed, 30 Jul 2025 10:53:48 +0200 From: Wolfgang Bumiller To: Fabian =?utf-8?Q?Gr=C3=BCnbichler?= Message-ID: References: <20250729111557.136012-1-w.bumiller@proxmox.com> <20250729111557.136012-11-w.bumiller@proxmox.com> <1753861192.t7ef8q26xn.astroid@yuna.none> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1753861192.t7ef8q26xn.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1753865618520 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.075 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. [lvmplugin.pm, plugin.pm, esxiplugin.pm, iscsiplugin.pm, zfspoolplugin.pm, lvmthinplugin.pm, rbdplugin.pm, iscsidirectplugin.pm] Subject: Re: [pve-devel] [PATCH storage 10/26] plugins: update volname parsing for new naming convention X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Cc: Proxmox VE development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" T24gV2VkLCBKdWwgMzAsIDIwMjUgYXQgMTA6Mzc6MjdBTSArMDIwMCwgRmFiaWFuIEdyw7xuYmlj aGxlciB3cm90ZToKPiBPbiBKdWx5IDI5LCAyMDI1IDE6MTUgcG0sIFdvbGZnYW5nIEJ1bWlsbGVy IHdyb3RlOgo+ID4gLSBFU1hpLCBJU0NTSURpcmVjdCwgSVNDU0k6Cj4gPiAgIFZvbHVtZXMgYXJl IGFsd2F5cyB2bSB2b2x1bWVzLgo+ID4gLSBMVk06Cj4gPiAgIE5ldyB2b2x1bWVzIHVzZSBhIGB2 b2wtdm0tYCBvciBgdm9sLWN0LWAgcHJlZml4Lgo+ID4gLSBEaXIgYmFzZWQsIEx2bVRoaW4sIFJC RDoKPiA+ICAgTGlrZSBMVk0sIGJ1dCBmb3IgYmFzZSBpbWFnZXMgYSBgYmFzZS1gIHByZWZpeCBp cyBhZGRlZAo+ID4gICAqYWRkaXRpb25hbGx5KiwgaW5zdGVhZCBvZiAqcmVwbGFjaW5nKiB0aGUg YHZtLWAgcG9ydGlvbiBsaWtlIHdlCj4gPiAgIHVzZWQgdG8uCj4gPiAtIFpGUzoKPiA+ICAgVk1z OiBgdm9sLXZtLWAgcHJlZml4Lgo+ID4gICBDb250YWluZXJzOiBgc3Vidm9sLWN0LWAgcHJlZml4 Lgo+IAo+IHdlIGNvdWxkIGdldCByaWQgb2YgdGhpcyBoaXN0b3JpYyBhbm9tYWx5IHdoaWxlIHdl J3JlIGF0IGl0LCBhbmQgbWFrZQo+IHRoZSBuZXcgdnR5cGUganVzdCBlbmNvZGVkIGFzIHZvbC1j dCBmb3IgY29uc2lzdGVuY3kgLSB0aGF0IHRob3NlIGFyZQo+IGFsd2F5cyBmaWxlc3lzdGVtIGRh dGFzZXRzLCBhbmQgdGhlIHZvbC12bSBvbmVzIGFsd2F5cyB6dm9scyBpcyBhbgo+IGltcGxlbWVu dGF0aW9uIGRldGFpbCB0aGVuPwoKQnV0IHRoaXMgd291bGQgYWxzbyBtYWtlIGl0IGRpZmZpY3Vs dCBpZiB3ZSBldmVyIHdhbnQgdG8gYWxsb3cgenZvbHMKd2l0aCBmaWxlIHN5c3RlbXMuIEFuZCBn aXZlbiB0aGF0IHRoZSBjb2RlIGZhbGxzIHRocm91Z2ggdG8gUGx1Z2luLnBtIGluCnNvbWUgcGxh Y2VzIChhbmQgZGlyIHBsdWdpbnMgY2FuIHRoZW9yZXRpY2FsbHkgaGF2ZSBzaXplPTAgY29udGFp bmVycwpkaXJzKSwgaXQgc2VlbWVkIG11Y2ggc2FmZXIgdG8gc3RpY2sgd2l0aCBhIHNjaGVtZSB0 aGF0IHdvcmtzIGFjcm9zcwptb3JlIHN0b3JhZ2UgdHlwZXMuIEVnLiB3ZSBmYWxsIHRocm91Z2gg dG8gUGx1Z2luLnBtIHZpYQpgZ2V0X25leHRfdm1fZGlza25hbWUoKWAgd2hpY2ggaXMgdGhlIHRo aW5nIHRoYXQgY2F1c2VzIHRoZSAic3Vidm9sLWN0LSIKcHJlZml4IGZvciAiZm9ybWF0ID09IHN1 YnZvbCIuIEFuZCB1bmxpa2UgZGlyIHBsdWdpbnMsIG91ciBaRlMgcGx1Z2luCmRvZXMgbm90IGhh dmUgYSBkaXN0aW5ndWlzaGluZyBmb3JtYXQgc3VmZml4IGZvciB0aGlzLi4uCgo+IAo+ID4gICBC b3RoIGFsc28gZ2V0IGFuIG9wdGlvbmFsIGFkZGl0aW9uYWwgYGJhc2UtYCBwcmVmaXggZm9yIGJh c2UKPiA+ICAgdm9sdW1lcy4KPiA+IAo+ID4gTm90ZTogYWxsIG5ldyBiYXNlLSBwcmVmaXggY29t ZSBpbiBmcm9udCBvZiB0aGUgYChzdWIpdm9sLSpgIHByZWZpeGVzLgo+ID4gCj4gPiBTaWduZWQt b2ZmLWJ5OiBXb2xmZ2FuZyBCdW1pbGxlciA8dy5idW1pbGxlckBwcm94bW94LmNvbT4KPiA+IC0t LQo+ID4gIHNyYy9QVkUvU3RvcmFnZS9FU1hpUGx1Z2luLnBtICAgICAgICB8ICAyICstCj4gPiAg c3JjL1BWRS9TdG9yYWdlL0lTQ1NJRGlyZWN0UGx1Z2luLnBtIHwgIDIgKy0KPiA+ICBzcmMvUFZF L1N0b3JhZ2UvSVNDU0lQbHVnaW4ucG0gICAgICAgfCAgMiArLQo+ID4gIHNyYy9QVkUvU3RvcmFn ZS9MVk1QbHVnaW4ucG0gICAgICAgICB8IDE5ICsrKysrKysrLS0tCj4gPiAgc3JjL1BWRS9TdG9y YWdlL0x2bVRoaW5QbHVnaW4ucG0gICAgIHwgMTMgKysrKysrKysKPiA+ICBzcmMvUFZFL1N0b3Jh Z2UvUGx1Z2luLnBtICAgICAgICAgICAgfCA0OCArKysrKysrKysrKysrKysrKysrKystLS0tLS0t Cj4gPiAgc3JjL1BWRS9TdG9yYWdlL1JCRFBsdWdpbi5wbSAgICAgICAgIHwgNDUgKysrKysrKysr KysrKysrKysrKysrKysrLS0KPiA+ICBzcmMvUFZFL1N0b3JhZ2UvWkZTUG9vbFBsdWdpbi5wbSAg ICAgfCAzNCArKysrKysrKysrKysrKysrLS0tLQo+ID4gIDggZmlsZXMgY2hhbmdlZCwgMTM4IGlu c2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvc3JjL1BW RS9TdG9yYWdlL0VTWGlQbHVnaW4ucG0gYi9zcmMvUFZFL1N0b3JhZ2UvRVNYaVBsdWdpbi5wbQo+ ID4gaW5kZXggZWViNmE0OC4uZWEyZjhmOSAxMDA2NDQKPiA+IC0tLSBhL3NyYy9QVkUvU3RvcmFn ZS9FU1hpUGx1Z2luLnBtCj4gPiArKysgYi9zcmMvUFZFL1N0b3JhZ2UvRVNYaVBsdWdpbi5wbQo+ ID4gQEAgLTQyMSw3ICs0MjEsNyBAQCBzdWIgcGFyc2Vfdm9sbmFtZSB7Cj4gPiAgCj4gPiAgICAg IG15ICRmb3JtYXQgPSAncmF3JzsKPiA+ICAgICAgJGZvcm1hdCA9ICd2bWRrJyBpZiAkdm9sbmFt ZSA9fiAvXC52bWRrJC87Cj4gPiAtICAgIHJldHVybiAoJ2ltYWdlcycsICR2b2xuYW1lLCAwLCB1 bmRlZiwgdW5kZWYsIHVuZGVmLCAkZm9ybWF0KTsKPiA+ICsgICAgcmV0dXJuICgndm0tdm9sJywg JHZvbG5hbWUsIDAsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3JtYXQpOwo+ID4gIH0KPiA+ICAK PiA+ICBzdWIgbGlzdF9pbWFnZXMgewo+ID4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9J U0NTSURpcmVjdFBsdWdpbi5wbSBiL3NyYy9QVkUvU3RvcmFnZS9JU0NTSURpcmVjdFBsdWdpbi5w bQo+ID4gaW5kZXggMDY5YTQxZi4uZjViNDY2ZSAxMDA2NDQKPiA+IC0tLSBhL3NyYy9QVkUvU3Rv cmFnZS9JU0NTSURpcmVjdFBsdWdpbi5wbQo+ID4gKysrIGIvc3JjL1BWRS9TdG9yYWdlL0lTQ1NJ RGlyZWN0UGx1Z2luLnBtCj4gPiBAQCAtODcsNyArODcsNyBAQCBzdWIgcGFyc2Vfdm9sbmFtZSB7 Cj4gPiAgICAgIG15ICgkY2xhc3MsICR2b2xuYW1lKSA9IEBfOwo+ID4gIAo+ID4gICAgICBpZiAo JHZvbG5hbWUgPX4gbS9ebHVuKFxkKykkLykgewo+ID4gLSAgICAgICAgcmV0dXJuICgnaW1hZ2Vz JywgJDEsIHVuZGVmLCB1bmRlZiwgdW5kZWYsIHVuZGVmLCAncmF3Jyk7Cj4gPiArICAgICAgICBy ZXR1cm4gKCd2bS12b2wnLCAkMSwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICdyYXcnKTsK PiA+ICAgICAgfQo+ID4gIAo+ID4gICAgICBkaWUgInVuYWJsZSB0byBwYXJzZSBpc2NzaSB2b2x1 bWUgbmFtZSAnJHZvbG5hbWUnXG4iOwo+ID4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9J U0NTSVBsdWdpbi5wbSBiL3NyYy9QVkUvU3RvcmFnZS9JU0NTSVBsdWdpbi5wbQo+ID4gaW5kZXgg N2IzMDk1NS4uNDg3NWExZiAxMDA2NDQKPiA+IC0tLSBhL3NyYy9QVkUvU3RvcmFnZS9JU0NTSVBs dWdpbi5wbQo+ID4gKysrIGIvc3JjL1BWRS9TdG9yYWdlL0lTQ1NJUGx1Z2luLnBtCj4gPiBAQCAt MzcxLDcgKzM3MSw3IEBAIHN1YiBwYXJzZV92b2xuYW1lIHsKPiA+ICAgICAgbXkgKCRjbGFzcywg JHZvbG5hbWUpID0gQF87Cj4gPiAgCj4gPiAgICAgIGlmICgkdm9sbmFtZSA9fiBtIV5cZCtcLlxk K1wuXGQrXC4oW14vXHNdKykkISkgewo+ID4gLSAgICAgICAgcmV0dXJuICgnaW1hZ2VzJywgJDEs IHVuZGVmLCB1bmRlZiwgdW5kZWYsIHVuZGVmLCAncmF3Jyk7Cj4gPiArICAgICAgICByZXR1cm4g KCd2bS12b2wnLCAkMSwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgdW5kZWYsICdyYXcnKTsKPiA+ICAg ICAgfQo+ID4gIAo+ID4gICAgICBkaWUgInVuYWJsZSB0byBwYXJzZSBpc2NzaSB2b2x1bWUgbmFt ZSAnJHZvbG5hbWUnXG4iOwo+ID4gZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9MVk1QbHVn aW4ucG0gYi9zcmMvUFZFL1N0b3JhZ2UvTFZNUGx1Z2luLnBtCj4gPiBpbmRleCA2Njk0Y2YyLi45 Yjg4YzZhIDEwMDY0NAo+ID4gLS0tIGEvc3JjL1BWRS9TdG9yYWdlL0xWTVBsdWdpbi5wbQo+ID4g KysrIGIvc3JjL1BWRS9TdG9yYWdlL0xWTVBsdWdpbi5wbQo+ID4gQEAgLTQ1MiwxMSArNDUyLDIy IEBAIHN1YiBwYXJzZV92b2xuYW1lIHsKPiA+ICAKPiA+ICAgICAgUFZFOjpTdG9yYWdlOjpQbHVn aW46OnBhcnNlX2x2bV9uYW1lKCR2b2xuYW1lKTsKPiA+ICAKPiA+IC0gICAgaWYgKCR2b2xuYW1l ID1+IG0vXih2bS0oXGQrKS1cUyspJC8pIHsKPiA+IC0gICAgICAgIG15ICRuYW1lID0gJDE7Cj4g PiAtICAgICAgICBteSAkdm1pZCA9ICQyOwo+ID4gKyAgICBpZiAoCj4gPiArICAgICAgICAkdm9s bmFtZSA9fiBtIV4oPzxuYW1lPgo+ID4gKyAgICAgICAgKAo+ID4gKyAgICAgICAgICAgICMgTmV3 IHN0eWxlIHZvbHVtZXMgaGF2ZSBhIHZ0eXBlOgo+ID4gKyAgICAgICAgICAgICAgdm9sLSg/PHZ0 eXBlPnZtfGN0KQo+ID4gKwo+ID4gKyAgICAgICAgICAgICMgT2xkIHN0eWxlOgo+ID4gKyAgICAg ICAgICAgIHwgdm0KPiA+ICsgICAgICAgICkKPiA+ICsgICAgICAgIC0oPzx2bWlkPlxkKyktXFMr Cj4gPiArICAgICAgICApJCF4bgo+ID4gKyAgICApIHsKPiA+ICsgICAgICAgIG15ICgkbmFtZSwg JHZtaWQsICR2dHlwZSkgPSBAK3txdyhuYW1lIHZtaWQgdnR5cGUpfTsKPiA+ICsgICAgICAgICR2 dHlwZSA9ICR2dHlwZSA/ICIkdnR5cGUtdm9sIiA6ICdpbWFnZXMnOwo+ID4gICAgICAgICAgbXkg JGZvcm1hdCA9ICR2b2xuYW1lID1+IG0vXC5xY293MiQvID8gJ3Fjb3cyJyA6ICdyYXcnOwo+ID4g LSAgICAgICAgcmV0dXJuICgnaW1hZ2VzJywgJG5hbWUsICR2bWlkLCB1bmRlZiwgdW5kZWYsIHVu ZGVmLCAkZm9ybWF0KTsKPiA+ICsgICAgICAgIHJldHVybiAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQs IHVuZGVmLCB1bmRlZiwgdW5kZWYsICRmb3JtYXQpOwo+ID4gICAgICB9Cj4gPiAgCj4gPiAgICAg IGRpZSAidW5hYmxlIHRvIHBhcnNlIGx2bSB2b2x1bWUgbmFtZSAnJHZvbG5hbWUnXG4iOwo+ID4g ZGlmZiAtLWdpdCBhL3NyYy9QVkUvU3RvcmFnZS9Mdm1UaGluUGx1Z2luLnBtIGIvc3JjL1BWRS9T dG9yYWdlL0x2bVRoaW5QbHVnaW4ucG0KPiA+IGluZGV4IGNkZjBmZDAuLjc1MWJkN2IgMTAwNjQ0 Cj4gPiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvTHZtVGhpblBsdWdpbi5wbQo+ID4gKysrIGIvc3Jj L1BWRS9TdG9yYWdlL0x2bVRoaW5QbHVnaW4ucG0KPiA+IEBAIC03Nyw2ICs3NywxOSBAQCBzdWIg cGFyc2Vfdm9sbmFtZSB7Cj4gPiAgCj4gPiAgICAgIFBWRTo6U3RvcmFnZTo6UGx1Z2luOjpwYXJz ZV9sdm1fbmFtZSgkdm9sbmFtZSk7Cj4gPiAgCj4gPiArICAgICMgTmV3IG5hbWluZyBjb252ZW50 aW9uOgo+ID4gKyAgICBpZiAoCj4gPiArICAgICAgICAkdm9sbmFtZSA9fiBtL14oPzxuYW1lPgo+ ID4gKyAgICAgICAgKD88aXNiYXNlPmJhc2UtKT8KPiA+ICsgICAgICAgICg/OnZvbC0oPzx2dHlw ZT4gdm18Y3QpKS0KPiA+ICsgICAgICAgICg/PHZtaWQ+XGQrKS0KPiA+ICsgICAgICAgIFxTKykk L3huCj4gPiArICAgICkgewo+ID4gKyAgICAgICAgbXkgKCRuYW1lLCAkdm1pZCwgJHZ0eXBlLCAk aXNiYXNlKSA9IEAre3F3KG5hbWUgdm1pZCB2dHlwZSBpc2Jhc2UpfTsKPiA+ICsgICAgICAgIHJl dHVybiAoJHZ0eXBlIC4gJy12b2wnLCAkbmFtZSwgJHZtaWQsIHVuZGVmLCB1bmRlZiwgISEkaXNi YXNlLCAncmF3Jyk7Cj4gPiArICAgIH0KPiA+ICsKPiA+ICsgICAgIyBPbGQgbmFtaW5nIGNvbnZl bnRpb246Cj4gPiAgICAgIGlmICgkdm9sbmFtZSA9fiBtL14oKHZtfGJhc2UpLShcZCspLVxTKykk Lykgewo+ID4gICAgICAgICAgcmV0dXJuICgnaW1hZ2VzJywgJDEsICQzLCB1bmRlZiwgdW5kZWYs ICQyIGVxICdiYXNlJywgJ3JhdycpOwo+ID4gICAgICB9Cj4gPiBkaWZmIC0tZ2l0IGEvc3JjL1BW RS9TdG9yYWdlL1BsdWdpbi5wbSBiL3NyYy9QVkUvU3RvcmFnZS9QbHVnaW4ucG0KPiA+IGluZGV4 IGFlOWQ2NzMuLjc3YmNmYzcgMTAwNjQ0Cj4gPiAtLS0gYS9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2lu LnBtCj4gPiArKysgYi9zcmMvUFZFL1N0b3JhZ2UvUGx1Z2luLnBtCj4gPiBAQCAtNzExLDE5ICs3 MTEsNDYgQEAgc3ViIGNsdXN0ZXJfbG9ja19zdG9yYWdlIHsKPiA+ICBteSBzdWIgcGFyc2Vfc25h cF9uYW1lIHsKPiA+ICAgICAgbXkgKCRuYW1lKSA9IEBfOwo+ID4gIAo+ID4gKyAgICBpZiAoJG5h bWUgPX4gbS9ec25hcC0oLiopLXZvbC0oPzp2bXxjdCkoLiopJC8pIHsKPiA+ICsgICAgICAgIHJl dHVybiAkMTsKPiA+ICsgICAgfQo+ID4gKwo+ID4gICAgICBpZiAoJG5hbWUgPX4gbS9ec25hcC0o LiopLXZtKC4qKSQvKSB7Cj4gPiAgICAgICAgICByZXR1cm4gJDE7Cj4gPiAgICAgIH0KPiA+ICsK PiA+ICsgICAgcmV0dXJuOwo+ID4gIH0KPiA+ICAKPiA+ICtvdXIgJERJU0tfTkFNRV9SRUdFWCA9 IHFyIQo+ID4gKyAgICAoPzxuYW1lPgo+ID4gKyAgICAgICAgKAo+ID4gKyAgICAgICAgICAgICMg TmV3IGNvbnZlbnRpb246ICdiYXNlLScgcHJlZml4LCAndm9sLXZtJyBhbmQgJ3N1YnZvbC1jdCcu Cj4gPiArICAgICAgICAgICAgICAoPzxpc3Jhdz4gKD88aXNiYXNlPmJhc2UtKT8gdm9sLSAgICAo Pzx2dHlwZT4gdm18Y3QpKQo+ID4gKyAgICAgICAgICAgIHwgKD88aXNzdWI+ICg/PGlzYmFzZT5i YXNlLSk/IHN1YnZvbC0gKD88dnR5cGU+IGN0KSkKPiA+ICsKPiA+ICsgICAgICAgICAgICAjIE9s ZCBjb252ZW50aW9uOiAidm0iIHZzICJiYXNlIiBhbmQgInN1YnZvbCIgdnMgImJhc2V2b2wiCj4g PiArICAgICAgICAgICAgfCAoPzxpc3Jhdz4gdm0pCj4gCj4gYGlzcmF3YCBpcyBhIHdlaXJkIGlk ZW50aWZpZXIgaGVyZS4gaXQncyBhbHNvIG5vdCB1c2VkIGFueXdoZXJlLCBzbwo+IG1heWJlIHdl IGNvdWxkIGRyb3AgaXQgZm9yIG5vdyBhbmQgdGhpbmsgb2YgYSBiZXR0ZXIgbmFtZSBpZiB3ZSBl dmVyCj4gbmVlZCBpdD8KCihZZWFoLi4uIEkganVzdCBsZWZ0IGl0IGluIGZvciBiZXR0ZXIgYWxp Z25tZW50L2RvY3VtZW50YXRpb24gOlApCgo+IAo+ID4gKyAgICAgICAgICAgIHwgKD88aXNzdWI+ IHN1YnZvbCkKPiA+ICsgICAgICAgICAgICB8ICg/PGlzcmF3PiAoPzxpc2Jhc2U+YmFzZSkpCj4g PiArICAgICAgICAgICAgfCAoPzxpc3N1Yj4gKD88aXNiYXNlPmJhc2V2b2wpKQo+IAo+IHRoZSBv bGQgY29udmVudGlvbiB3YXMgYWN0dWFsbHkgYSBsb3QgbW9yZSBsb29zZSwgc2VlIGJlbG93Li4K CklNTyB0aGUgbW9yZSBsb29zZSBwYXJ0IHNob3VsZCBiZSBpbiBhbiBgZWxzZWAgaW4gYHBhcnNl X25hbWVfZGlyYC4KVGhpcyByZWdleCBpcyB1c2VkIGluIG90aGVyIHBsdWdpbnMgYW5kIEkgZG9u J3Qgd2FudCB0aGlzIHJlZ2V4IHRvIGFsbG93Cnp2b2xzIG5hbWVkIGDwn5KpYC4KCj4gCj4gd2Ug cHJvYmFibHkgc2hvdWxkIGFkZCBhIHdhcm5pbmcgdG8gcHZlOHRvOSBmb3Igdm9sdW1lcyBvbiBi dWlsdGluCj4gc3RvcmFnZSB0eXBlcyB0aGF0IGRvbid0IG1hdGNoIHRoaXMgc3RyaWN0IHNjaGVt ZSBhdCBsZWFzdD8KPiAKPiA+ICsgICAgICAgICkKPiA+ICsgICAgICAgIC0KPiA+ICsgICAgICAg ICg/PHZtaWQ+XGQrKQo+ID4gKyAgICAgICAgLQo+ID4gKyAgICAgICAgKD88bGFiZWw+W14vXHNd KykKPiA+ICsgICAgKQo+ID4gKyF4bjsKPiA+ICsKPiA+ICBzdWIgcGFyc2VfbmFtZV9kaXIgewo+ ID4gLSAgICBteSAkbmFtZSA9IHNoaWZ0Owo+ID4gKyAgICBteSAoJG5hbWUpID0gQF87Cj4gPiAg Cj4gPiAtICAgIGlmICgkbmFtZSA9fiBtIV4oKHZtLXxiYXNlLXxzdWJ2b2wtKShcZCspLVteL1xz XStcLihyYXd8cWNvdzJ8dm1ka3xzdWJ2b2wpKSQhKSB7Cj4gPiAtICAgICAgICBteSAkaXNiYXNl ID0gJDIgZXEgJ2Jhc2UtJyA/ICQyIDogdW5kZWY7Cj4gPiAtICAgICAgICByZXR1cm4gKCQxLCAk NCwgJGlzYmFzZSk7ICMgKG5hbWUsIGZvcm1hdCwgaXNCYXNlKQo+ID4gKyAgICBpZiAoJG5hbWUg PX4gbSFeJERJU0tfTkFNRV9SRUdFWFwuKD88Zm9ybWF0PnJhd3xxY293Mnx2bWRrfHN1YnZvbCkk IXhuKSB7Cj4gPiArICAgICAgICBteSAoJG5hbWUsICRpc3JhdywgJGlzc3ViLCAkaXNiYXNlLCAk dm1pZCwgJHZ0eXBlLCAkbGFiZWwsICRmb3JtYXQpID0KPiA+ICsgICAgICAgICAgICBAK3txdyhu YW1lIGlzcmF3IGlzc3ViIGlzYmFzZSB2bWlkIHZ0eXBlIGxhYmVsIGZvcm1hdCl9Owo+ID4gKyAg ICAgICAgcmV0dXJuICgkbmFtZSwgJGZvcm1hdCwgISEkaXNiYXNlLCAkdnR5cGUgPyAiJHZ0eXBl LXZvbCIgOiAiaW1hZ2VzIik7Cj4gPiAgICAgIH0gZWxzaWYgKCRuYW1lID1+IG0hXigoYmFzZS0p P1teL1xzXStcLihyYXd8cWNvdzJ8dm1ka3xzdWJ2b2wpKSQhKSB7Cj4gPiAtICAgICAgICB3YXJu ICJ0aGlzIHZvbHVtZSBuYW1lIGAkbmFtZWAgaXMgbm90IHN1cHBvcnRlZCBhbnltb3JlXG4iIGlm ICFwYXJzZV9zbmFwX25hbWUoJG5hbWUpOwo+ID4gKyAgICAgICAgZGllICJ0aGlzIHZvbHVtZSBu YW1lIGAkbmFtZWAgaXMgbm90IHN1cHBvcnRlZCBhbnltb3JlXG4iOwo+IAo+IGFzIGRpc2N1c3Nl ZCBvZmYgbGlzdCwgdGhpcyByZWdyZXNzZWQgcmVjZW50bHkgYW5kIG5lZWRzIHRvIGJlIGZpeGVk IC0KPiB3ZSBvbmx5IHdhbnQgdG8gc2tpcCBzbmFwc2hvdCB2b2x1bWVzLCBhbmQgYWxsb3cgb3Ro ZXIgdGhpbmdzIGZvciB0aGUKPiBsZWdhY3kgdHlwZXMuLgo+IAo+ID4gICAgICB9Cj4gPiAgCj4g PiAgICAgIGRpZSAidW5hYmxlIHRvIHBhcnNlIHZvbHVtZSBmaWxlbmFtZSAnJG5hbWUnXG4iOwo+ ID4gQEAgLTczMywxNSArNzYwLDE0IEBAIHN1YiBwYXJzZV92b2xuYW1lIHsKPiA+ICAgICAgbXkg KCRjbGFzcywgJHZvbG5hbWUpID0gQF87Cj4gPiAgCj4gPiAgICAgIGlmICgkdm9sbmFtZSA9fiBt IV4oXGQrKS8oXFMrKS8oXGQrKS8oXFMrKSQhKSB7Cj4gPiAtICAgICAgICBteSAoJGJhc2Vkdm1p ZCwgJGJhc2VuYW1lKSA9ICgkMSwgJDIpOwo+ID4gKyAgICAgICAgbXkgKCRiYXNlZHZtaWQsICRi YXNlbmFtZSwgJHZtaWQsICRuYW1lKSA9ICgkMSwgJDIsICQzLCAkNCk7Cj4gPiAgICAgICAgICBw YXJzZV9uYW1lX2RpcigkYmFzZW5hbWUpOwo+ID4gLSAgICAgICAgbXkgKCR2bWlkLCAkbmFtZSkg PSAoJDMsICQ0KTsKPiA+IC0gICAgICAgIG15ICh1bmRlZiwgJGZvcm1hdCwgJGlzQmFzZSkgPSBw YXJzZV9uYW1lX2RpcigkbmFtZSk7Cj4gPiAtICAgICAgICByZXR1cm4gKCdpbWFnZXMnLCAkbmFt ZSwgJHZtaWQsICRiYXNlbmFtZSwgJGJhc2Vkdm1pZCwgJGlzQmFzZSwgJGZvcm1hdCk7Cj4gPiAr ICAgICAgICBteSAodW5kZWYsICRmb3JtYXQsICRpc0Jhc2UsICR2dHlwZSkgPSBwYXJzZV9uYW1l X2RpcigkbmFtZSk7Cj4gPiArICAgICAgICByZXR1cm4gKCR2dHlwZSwgJG5hbWUsICR2bWlkLCAk YmFzZW5hbWUsICRiYXNlZHZtaWQsICRpc0Jhc2UsICRmb3JtYXQpOwo+ID4gICAgICB9IGVsc2lm ICgkdm9sbmFtZSA9fiBtIV4oXGQrKS8oXFMrKSQhKSB7Cj4gPiAgICAgICAgICBteSAoJHZtaWQs ICRuYW1lKSA9ICgkMSwgJDIpOwo+ID4gLSAgICAgICAgbXkgKHVuZGVmLCAkZm9ybWF0LCAkaXNC YXNlKSA9IHBhcnNlX25hbWVfZGlyKCRuYW1lKTsKPiA+IC0gICAgICAgIHJldHVybiAoJ2ltYWdl cycsICRuYW1lLCAkdm1pZCwgdW5kZWYsIHVuZGVmLCAkaXNCYXNlLCAkZm9ybWF0KTsKPiA+ICsg ICAgICAgIG15ICh1bmRlZiwgJGZvcm1hdCwgJGlzQmFzZSwgJHZ0eXBlKSA9IHBhcnNlX25hbWVf ZGlyKCRuYW1lKTsKPiA+ICsgICAgICAgIHJldHVybiAoJHZ0eXBlLCAkbmFtZSwgJHZtaWQsIHVu ZGVmLCB1bmRlZiwgJGlzQmFzZSwgJGZvcm1hdCk7Cj4gPiAgICAgIH0gZWxzaWYgKCR2b2xuYW1l ID1+IG0hXmlzby8oW14vXSskUFZFOjpTdG9yYWdlOjpJU09fRVhUX1JFXzApJCEpIHsKPiA+ICAg ICAgICAgIHJldHVybiAoJ2lzbycsICQxLCB1bmRlZiwgdW5kZWYsIHVuZGVmLCB1bmRlZiwgJ3Jh dycpOwo+ID4gICAgICB9IGVsc2lmICgkdm9sbmFtZSA9fiBtIV52enRtcGwvKFteL10rJFBWRTo6 U3RvcmFnZTo6VlpUTVBMX0VYVF9SRV8xKSQhKSB7Cj4gCj4gWy4uXQoKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QK cHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dp LWJpbi9tYWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=