From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 59F1A1FF15F for ; Mon, 23 Sep 2024 13:48:00 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D989F1C26B; Mon, 23 Sep 2024 13:48:10 +0200 (CEST) Message-ID: <5f6413c9-0749-4f4f-9ec7-965aa8e66a51@proxmox.com> Date: Mon, 23 Sep 2024 13:48:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: pve-devel@lists.proxmox.com References: <20240919095202.1375181-1-d.csapak@proxmox.com> <21f250b8-a59c-426d-96de-11606cbb0e42@proxmox.com> <01449bce-3356-44a3-915b-47b6871b5b39@proxmox.com> Content-Language: en-US From: Filip Schauer In-Reply-To: <01449bce-3356-44a3-915b-47b6871b5b39@proxmox.com> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.053 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: [pve-devel] [RFC PATCH pve-cluster] fix #5728: pmxcfs: allow bigger writes than 4k for fuse 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 Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" SSBhbHNvIHJhbiBzb21lIGJlbmNobWFya3Mgd2l0aCB0aGUgc2FtZSBzY3JpcHQuCgpJIGNyZWF0 ZWQgYSBWTSB3aXRoIHR3byB2aXJ0dWFsIGRpc2tzLCAoYm90aCBvbiBhbiBMVk0gVGhpbiBzdG9y YWdlKQppbnN0YWxsZWQgUFZFIG9uIG9uZSBkaXNrIGFuZCBzZXQgdXAgYW4gZXh0NCBwYXJ0aXRp b24gb24gdGhlIG90aGVyLgoKSSBzdG9wcGVkIHB2ZXN0YXRkIGFuZCBwdmUtY2x1c3RlciwKCmBg YApzeXN0ZW1jdGwgc3RvcCBwdmVzdGF0ZApzeXN0ZW1jdGwgc3RvcCBwdmUtY2x1c3RlcgpgYGAK Cm1vdmVkIHRoZSBwbXhjZnMgZGF0YWJhc2UgZmlsZSB0byBpdHMgb3duIGRpc2sKCmBgYAptdiAv dmFyL2xpYi9wdmUtY2x1c3Rlci9jb25maWcuZGIgL3RtcC8KbW91bnQgL2Rldi9zZGIxIC92YXIv bGliL3B2ZS1jbHVzdGVyCm12IC90bXAvY29uZmlnLmRiIC92YXIvbGliL3B2ZS1jbHVzdGVyLwpg YGAKCmFuZCBzdGFydGVkIHB2ZS1jbHVzdGVyIGFnYWluLgoKYGBgCnN5c3RlbWN0bCBzdGFydCBw dmUtY2x1c3RlcgpgYGAKClRoZXNlIGFyZSBteSByZXN1bHRzIGJlZm9yZSBhbmQgYWZ0ZXIgYXBw bHlpbmcgdGhlIHBhdGNoOgoKZGF0YSBzaXplwqAgd3JpdHRlbiAob2xkKcKgIGFtcGxpZmljYXRp b24gKG9sZCnCoCB3cml0dGVuIChuZXcpIAphbXBsaWZpY2F0aW9uIChuZXcpCjHCoMKgwqDCoMKg wqDCoMKgwqAgNDjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNDjCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgNDXCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgNDUKMsKgwqDCoMKg wqDCoMKgwqDCoCA0OMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyNMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCA0NcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAyMwo0wqDCoMKg wqDCoMKgwqDCoMKgIDgywqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIxwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDgwwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIwCjjCoMKg wqDCoMKgwqDCoMKgwqAgMTIxwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA5MMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMQoxNsKg wqDCoMKgwqDCoMKgwqAgMjE3wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNDbCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDkKMzLCoMKg wqDCoMKgwqDCoMKgIDUwNsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTbCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgMzE0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMAo2NMKgwqDC oMKgwqDCoMKgwqAgMTQ3MsKgwqDCoMKgwqDCoMKgwqDCoMKgIDIzwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIDgyNsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTMKMTI4wqDCoMKg wqDCoMKgwqAgNTU4NcKgwqDCoMKgwqDCoMKgwqDCoMKgIDQ0wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDM3NjXCoMKgwqDCoMKgwqDCoMKgwqDCoCAyOQoyNTbCoMKgwqDCoMKg wqDCoCAyMDQyNMKgwqDCoMKgwqDCoMKgwqDCoCA4MMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAxMDc0M8KgwqDCoMKgwqDCoMKgwqDCoCA0Mgo1MTLCoMKgwqDCoMKgwqDCoCA4 NjcxNcKgwqDCoMKgwqDCoMKgwqDCoCAxNjnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIDQzNjUwwqDCoMKgwqDCoMKgwqDCoMKgIDg1CjEwMjTCoMKgwqDCoMKgwqAgMzY5NTY4wqDC oMKgwqDCoMKgwqDCoCAzNjHCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDE4NzQ5 NsKgwqDCoMKgwqDCoMKgwqAgMTgzCgpBcyBjYW4gYmUgc2VlbiwgbXkgcmVzdWx0cyBhcmUgc2lt aWxhciB3aXRoIGFtcGxpZmljYXRpb24gcmVhbGx5IHBpY2tpbmcKdXAgYXQgMTI4ay4gVGhlIHBh dGNoIHNlZW1zIHRvIGN1dCB3cml0ZSBhbXBsaWZpY2F0aW9uIGluIGhhbGYgd2l0aCBiaWcKZmls ZXMsIHdoaWxlIG1ha2luZyB2aXJ0dWFsbHkgbm8gZGlmZmVyZW5jZSB3aXRoIGZpbGVzIHVwIHRv IDRrLgoKT24gMjMvMDkvMjAyNCAxMToxNywgRG9taW5payBDc2FwYWsgd3JvdGU6Cj4gT24gOS8x OS8yNCAxNjo1NywgVGhvbWFzIExhbXByZWNodCB3cm90ZToKPj4gQW0gMTkvMDkvMjAyNCB1bSAx NDo0NSBzY2hyaWViIERvbWluaWsgQ3NhcGFrOgo+Pj4gT24gOS8xOS8yNCAxNDowMSwgVGhvbWFz IExhbXByZWNodCB3cm90ZToKPj4+PiBBbSAxOS8wOS8yMDI0IHVtIDExOjUyIHNjaHJpZWIgRG9t aW5payBDc2FwYWs6Cj4+Pj4+IGJ5IGRlZmF1bHQgbGliZnVzZTIgbGltaXRzIHdyaXRlcyB0byA0 ayBzaXplLCB3aGljaCBtZWFucyB0aGF0IG9uIAo+Pj4+PiB3cml0ZXMKPj4+Pj4gYmlnZ2VyIHRo YW4gdGhhdCwgd2UgZG8gYSB3aG9sZSB3cml0ZSBjeWNsZSBmb3IgZWFjaCA0ayBibG9jayB0aGF0 IAo+Pj4+PiBjb21lcwo+Pj4+PiBpbi4gVG8gYXZvaWQgdGhhdCwgYWRkIHRoZSBvcHRpb24gJ2Jp Z193cml0ZXMnIHRvIGFsbG93IHdyaXRlcyBiaWdnZXIKPj4+Pj4gdGhhbiA0ayBhdCBvbmNlLgo+ Pj4+Pgo+Pj4+PiBUaGlzIHNob3VsZCBpbXByb3ZlIHBteGNmcyBwZXJmb3JtYW5jZSBmb3Igc2l0 dWF0aW9ucyB3aGVyZSB3ZSBvZnRlbgo+Pj4+PiB3cml0ZSBsYXJnZSBmaWxlcyAoZS5nLiBiaWcg aGEgc3RhdHVzKSBhbmQgbWF5YmUgcmVkdWNlIHdyaXRlcyB0byAKPj4+Pj4gZGlzay4KPj4+Pgo+ Pj4+IFNob3VsZD8gU29tZXRoaW5nIGxpa2UgYmVmb3JlL2FmdGVyIGZvciBiZW5jaG1hcmsgbnVt YmVycywgZmxhbWVncmFwaHMKPj4+PiB3b3VsZCBiZSByZWFsbHkgZ29vZCB0byBoYXZlLCB3aXRo b3V0IHRob3NlIGl0J3MgcmF0aGVyIGhhcmQgdG8gCj4+Pj4gZGlzY3Vzcwo+Pj4+IHRoaXMsIGFu ZCBJJ2QgbGlrZSB0byBhdm9pZCBoYXZpbmcgdG8gZG8gdGhvc2UsIG9yIGNoZWNrIHRoZSBpbm5l ciAKPj4+PiB3b3JraW5ncwo+Pj4+IG9mIHRoZSBhZmZlY3RlZCBmdXNlIHVzZXJzcGFjZS9rZXJu ZWwgY29kZSBwYXRocyBoZXJlIG15c2VsZi4KPj4+Cj4+PiB3ZWxsIEkgbWVhbiB0aGUgY29kZSBj aGFuZ2UgaXMgcmVsYXRpdmVseSBzbWFsbCBhbmQgdGhlIHJlc3VsdCBpcyAKPj4+IHJhdGhlciBj bGVhcjoKPj4KPj4gV2VsbCBzdXJlIHRoZSBjb2RlIGNoYW5nZSBpcyBqdXN0IHNldHRpbmcgYW4g b3B0aW9uLi4uIEJ1dCB0aGUgYWN0dWFsIAo+PiBjaGFuZ2UgaXMKPj4gYWJzdHJhY3RlZCBhd2F5 IGFuZCB3b3VsZCBiZW5lZml0IGZyb20gYWN0dWFsbHkgbG9va2luZyBpbnRvLi4KPj4KPj4+IGlu IHRoZSBjdXJyZW50IGNhc2Ugd2UgaGF2ZSB0aGUgZm9sbG93aW5nIGNhbGxzIGZyb20gcG14Y2Zz IAo+Pj4gKHNob3J0ZW5lZCBmb3IgZS1tYWlsKQo+Pj4gd2hlbiB3cml0aW5nIGEgc2luZ2xlIDEy OGsgYmxvY2s6Cj4+PiAoZGQgaWY9Li4uIG9mPS9ldGMvcHZlL3Rlc3QgYnM9MTI4ayBjb3VudD0x KQo+Pgo+PiBCZXR0ZXIgdGhhbiBub3RoaW5nIGJ1dCBzdGlsbCBubyBhY3R1YWwgbnVtYmVycyAo cmVkdWNlZCB0aW1lLCAKPj4gcmVkdWNlZCB3cml0ZSBhbXAKPj4gaW4gY29tYmluYXRpb24gd2l0 aCBzcWxpdGUsIC4uLiksIHNvbWUgYmFzaWMgYW5hbHlzaXMgb3ZlciBmaWxlL3dyaXRlIAo+PiBz aXplIGRpc3RyaWJ1dGlvbgo+PiBvbiBhIHNpbmdsZSBub2RlIGFuZCAoZS5nLiB0aHJlZSBub2Rl KSBjbHVzdGVyLCAuLi4KPj4gSWYgdGhhdCdzIGFsbCBvYnZpb3VzIGZvciB5b3UgdGhlbiBncmVh dCwgYnV0IGFzIGFscmVhZHkgbWVudGlvbmVkIGluIAo+PiB0aGUgcGFzdCwgSQo+PiB3YW50IGFj dHVhbCBkYXRhIGluIGNvbW1pdCBtZXNzYWdlcyBmb3Igc3VjaCBzdHVmZiwgYW5kIEkgY2Fubm90 IAo+PiByZWFsbHkgc2VlIGEgZG93bnNpZGUKPj4gb2YgaGF2aW5nIHN1Y2ggbnVtYmVycy4KPj4K Pj4gQWdhaW4sIGFzIGlzIEknbSBub3QgcmVhbGx5IHNlZWluZyB3aGF0J3MgdG8gZGlzY3Vzcywg eW91IHNlbmQgaXQgYXMgCj4+IFJGQyBhZnRlcgo+PiBhbGwuCj4+Cj4+PiBbLi4uXQo+Pj4gc28g YSBmYWN0b3Igb2YgMzIgbGVzcyBjYWxscyB0byBjZnNfZnVzZV93cml0ZSAoaW5jbHVkaW5nIG1l bWRiX3B3cml0ZSkKPj4KPj4gVGhhdCBjYW4gYmUgaHVnZSBvciBub3Qgc28gYmlnIGF0IGFsbCwg aS5lLiBhcyBtZW50aW9uZWQgYWJvdmUsIGl0IAo+PiB3b3VsZCB3ZSBnb29kIHRvCj4+IG1lYXN1 cmUgdGhlIGltcGFjdCB0aHJvdWdoIHNvbWUgb3RoZXIgbWV0cmljcy4KPj4KPj4gQW5kIEZXSVcs IEkgdXNlZCBicGZ0cmFjZSB0byBjb3VudCBbMF0gd2l0aCBhbiB1bnBhdGNoZWQgcG14Y2ZzLCAK Pj4gdGhlcmUgSSBnZXQKPj4gdGhlIDMyIGNhbGxzIHRvIGNmc19mdXNlX3dyaXRlIG9ubHkgZm9y IGEgbmV3IGZpbGUsIG92ZXJ3cml0aW5nIHRoZSAKPj4gZXhpc3RpbmcKPj4gZmlsZSBhZ2FpbiB3 aXRoIHRoZSBzYW1lIGFtb3VudCBvZiBkYXRhICgxMjhrKSBqdXN0IGNhdXNlcyBhIHNpbmdsZSAK Pj4gY2FsbC4KPj4gSSB0cmllZCB1c2luZyBtb3JlIGRhdGEgKGUuZy4gZnJvbSAxMjhrIGluaXRp YWxseSB0byAyNTZrIG9yIDUxMmspIAo+PiBhbmQgaXQncwo+PiBhbHdheXMgdGhlIGRhdGEgZGl2 aWRlZCBieSAxMjhrIChldmVuIGlmIHRoZSBmaXJzdCBmaWxlIGhhcyBhIAo+PiBkaWZmZXJlbnQg c2l6ZSkKPj4KPj4gV2UgZG8gbm90IG92ZXJyaWRlIGV4aXN0aW5nIGZpbGVzIG9mdGVuLCBidXQg cmF0aGVyIHdyaXRlIHRvIGEgbmV3IAo+PiBmaWxlIGFuZAo+PiB0aGVuIHJlbmFtZSwgYnV0IHN0 aWxsIHF1aXRlIGludGVyZXN0aW5nIGFuZCBJTU8gcmVhbGx5IHNob3dpbmcgdGhhdCAKPj4ganVz dAo+PiBiZWNhdXNlIHRoaXMgaXMgMSArLTEgbGluZSBjaGFuZ2UgaXQgZG9lc24ndCBuZWNlc3Nh cmlseSBoYXZlIHRvIGJlIAo+PiB0cml2aWFsCj4+IGFuZCBvYnZpb3VzIGluIGl0cyBlZmZlY3Rz Lgo+Pgo+PiBbMF06IGJwZnRyYWNlIC1lICd1OmNmc19mdXNlX3dyaXRlIC9zdHIoYXJncy0+cGF0 aCkgPT0gIi90ZXN0Ii8ge0AgPSAKPj4gY291bnQoKTt9IEVORCB7IHByaW50KEApIH0nIC1wICIk KHBpZG9mIHBteGNmcykiCj4+Cj4+Cj4+Pj4+IElmIHdlJ2QgY2hhbmdlIHRvIGxpYmZ1c2UzLCB0 aGlzIHdvdWxkIGJlIGEgbm9uLWlzc3VlLCBzaW5jZSB0aGF0IAo+Pj4+PiBvcHRpb24KPj4+Pj4g Z290IHJlbW92ZWQgYW5kIGlzIHRoZSBkZWZhdWx0IHRoZXJlLgo+Pj4+Cj4+Pj4gSSdkIHByZWZl ciB0aGF0LiBBdCBsZWFzdCBpZiBkb25lIHdpdGggdGhlIGZ1dHVyZSBQVkUgOS4wLCBhcyBJIGRv IAo+Pj4+IG5vdCB0aGluawo+Pj4+IGl0J3MgYSBnb29kIGlkZWEgaW4gdGhlIG1pZGRsZSBvZiBh IHN0YWJsZSByZWxlYXNlIGN5Y2xlLgo+Pj4KPj4+IHdoeSBub3QgdGhpcyBjaGFuZ2Ugbm93LCBh bmQgdGhlIHJld3JpdGUgdG8gbGliZnVzZTMgbGF0ZXI/IHRoYXQgd2F5IAo+Pj4gd2UgY2FuCj4+ PiBoYXZlIHNvbWUgaW1wcm92ZW1lbnRzIG5vdyB0b28uLi4KPj4KPj4gQmVjYXVzZSBJIHdhbnQg c29tZSBhY3R1YWwgZGF0YSBhbmQgcmVhc29uaW5nIGZpcnN0LCBldmVuIGlmIGl0J3MgCj4+IHF1 aXRlIGxpa2VseQo+PiB0aGF0IHRoaXMgaW1wcm92ZXMgdGhpbmdzIFNvbWVob3fihKIsIEknZCBs aWtlIHRvIGFjdHVhbGx5IGtub3cgaW4gd2hhdCAKPj4gbWV0cmljcwo+PiBhbmQgYnkgaG93IG11 Y2ggKGV2ZW4gaWYganVzdCBhbiB1cHBlciBib3VuZCBkdWUgdG8gdGhlIGJlbmNobWFyayBvciAK Pj4gc29tZQo+PiBtZWFzdXJlbWVudCBiZWluZyByYXRoZXIgYXJ0aWZpY2lhbCkuCj4+Cj4+IEkg bWVhbiB5b3UgbmFtZSB0aGUgYmlnIEhBIHN0YXR1cywgd2h5IG5vdCBtZWFzdXJlIHRoYXQgZm9y IHJlYWw/IAo+PiBsaWtlLCBwcm9iYWJseQo+PiBhbW9uZyBvdGhlciB0aGluZ3MsIGluIHRlcm1z IG9mIGJ5dGVzIGhpdHRpbmcgdGhlIGJsb2NrIGxheWVyLCBpLmUuIAo+PiB0aGUgYWN0dWFsCj4+ IGJhY2tpbmcgZGlzayBmcm9tIHRob3NlIHJlcXVlc3RzIGFzIHRoZW4gd2UnZCBrbm93IGZvciBy ZWFsIGlmIHRoaXMgCj4+IGNhbiByZWR1Y2UKPj4gdGhlIHdyaXRlIGxvYWQgdGhlcmUsIG5vdCBq dXN0IHRoYXQgaXQgbWF5YmUgc2hvdWxkLgo+Cj4KPiBoaSwKPgo+IGZpcnN0IGkganVzdCB3YW50 ZWQgdG8gc2F5IEknbSBzb3JyeSBmb3IgbXkgc25hcmt5IGNvbW1lbnQgYWJvdXQgbm90IAo+IG5l ZWRpbmcgdG8gdGVzdAo+IHBlcmZvcm1hbmNlIGZvciBzdWNoIGNvZGUuIFlvdSdyZSByaWdodCwg YW55IGluc2lnaHQgd2UgY2FuIGdhaW4gdGhlcmUKPiBpcyBnb29kIGFuZCB3ZSAoSSEpIHNob3Vs ZCB0YWtlIHRoZSB0aW1lIHRvIGRvIHRoYXQsIGV2ZW4gaWYgdGhlCj4gY2hhbmdlIGxvb2tzICJv YnZpb3VzIiBsaWtlIGl0IGRvZXMgaGVyZQo+Cj4gc28gaSBkaWQgc29tZSBiZW5jaG1hcmtzICht b3N0bHkgZGlzayB3cml0ZXMpIGFuZCB3cm90ZSB0aGUgc2hvcnQgCj4gc2NyaXB0IGJlbG93Cj4g KG1heWJlIHdlIGNhbiByZXVzZSB0aGF0PykKPgo+IC0tLS04PC0tLS0KPiB1c2Ugc3RyaWN0Owo+ IHVzZSB3YXJuaW5nczsKPgo+IHVzZSBQVkU6OlRvb2xzOwo+Cj4gbXkgJHNpemUgPSBzaGlmdDsK Pgo+IHN1YiBnZXRfYnl0ZXNfd3JpdHRlbiB7Cj4gwqDCoMKgwqDCoMKgwqAgbXkgJGZoID0gSU86 OkZpbGUtPm5ldygiL3Byb2MvZGlza3N0YXRzIiwgInIiKTsKPiDCoMKgwqDCoMKgwqDCoCBkaWUg aWYgISRmaDsKPiDCoMKgwqDCoMKgwqDCoCBteSAkYnl0ZXMgPSB1bmRlZjsKPiDCoMKgwqDCoMKg wqDCoCB3aGlsZSAoZGVmaW5lZChteSAkbGluZSA9IDwkZmg+KSkgewo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpZiAoJGxpbmUgPX4gbS9zZGIvKSB7Cj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBteSBAZmllbGRzID0gc3BsaXQoL1xzKy8s ICRsaW5lKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICRieXRlcyA9ICRmaWVsZHNbMTBdICogNTEyOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB9Cj4gwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKgwqDCoMKgIHJldHVybiAkYnl0ZXM7 Cj4gfQo+Cj4gc3ViIHRlc3Rfd3JpdGUgewo+IMKgwqDCoMKgwqDCoMKgIG15ICgkaykgPSBAXzsK PiDCoMKgwqDCoMKgwqDCoCBzeXN0ZW0oInJtIC9ldGMvcHZlL3Rlc3RmaWxlIik7Cj4gwqDCoMKg wqDCoMKgwqAgbXkgJGRhdGEgPSAiYSJ4KCRrKjEwMjQpOwo+IMKgwqDCoMKgwqDCoMKgIHN5c3Rl bSgic3luYzsgZWNobyAtbiAzPiAvcHJvYy9zeXMvdm0vZHJvcF9jYWNoZXMiKTsKPiDCoMKgwqDC oMKgwqDCoCBteSAkYnl0ZXNfYmVmb3JlID0gZ2V0X2J5dGVzX3dyaXR0ZW4oKTsKPiDCoMKgwqDC oMKgwqDCoCBQVkU6OlRvb2xzOjpmaWxlX3NldF9jb250ZW50cygiL2V0Yy9wdmUvdGVzdGZpbGUi LCAkZGF0YSk7Cj4gwqDCoMKgwqDCoMKgwqAgc3lzdGVtKCJzeW5jOyBlY2hvIC1uIDM+IC9wcm9j L3N5cy92bS9kcm9wX2NhY2hlcyIpOwo+IMKgwqDCoMKgwqDCoMKgIG15ICRieXRlc19hZnRlciA9 IGdldF9ieXRlc193cml0dGVuKCk7Cj4gwqDCoMKgwqDCoMKgwqAgcmV0dXJuICRieXRlc19hZnRl ciAtICRieXRlc19iZWZvcmU7Cj4gfQo+Cj4gJHNpemUgLy89IDEyODsKPgo+IG15ICR3cml0dGVu ID0gdGVzdF93cml0ZSgkc2l6ZSkgLyAxMDI0Owo+IHByaW50KCIkd3JpdHRlblxuIik7Cj4gLS0t LT44LS0tLQo+Cj4gdG8gc2ltdWxhdGUgb3VyIHJlYWwgd3JpdGUgcGF0dGVybnMgd2l0aCB2YXJ5 aW5nIGZpbGUgc2l6ZXMKPgo+IGkgaW5zdGFsbGVkIGEgZnJlc2ggcHZlLCB0dXJuZWQgb2ZmIHB2 ZXN0YXRkIGFuZCBwdXQgCj4gL3Zhci9saWIvcHZlLWNsdXN0ZXIgb24gaXQncyBvd24gZGlzawo+ ICgvZGV2L3NkYiksIHNvIGRpc2tzdGF0cyBvbmx5IGNvbnRhaW5zIHdyaXRlcyBmcm9tIHRoZSBw bXhjZnMKPgo+IHRoZSByZXN1bHRzIGFyZSBiZWxvdyAoYWxsIHNpemVzIGFyZSBrYnl0ZXMsIHJh biB0aGVtIG11bHRpcGxlIHRpbWVzLCAKPiBidXQgdGhleQo+IHNlZW0gdG8gYmUgY29uc2lzdGVu dCkKPgo+IGRhdGEgc2l6ZcKgIHdyaXR0ZW4gKG9sZCnCoCBhbXBsaWZpY2F0aW9uIChvbGQpwqAg d3JpdHRlbiAobmV3KSAKPiBhbXBsaWZpY2F0aW9uIChuZXcpCj4gMcKgwqDCoMKgwqDCoMKgwqDC oCA1NsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1NsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCA1NsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA1Ngo+IDLCoMKgwqDCoMKgwqDC oMKgwqAgNzLCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMzbCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgNzbCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMzgKPiA0wqDCoMKgwqDC oMKgwqDCoMKgIDg0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIxwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIDg4wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDIyCj4gOMKgwqDC oMKgwqDCoMKgwqDCoCAxNDTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDE4wqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEwNMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTMKPiAxNsKg wqDCoMKgwqDCoMKgwqAgMjM2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxNjDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDEwCj4gMzLC oMKgwqDCoMKgwqDCoMKgIDUzMsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMTbCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMzI0wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMAo+IDY0 wqDCoMKgwqDCoMKgwqDCoCAxNDk2wqDCoMKgwqDCoMKgwqDCoMKgwqAgMjPCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgODM2wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMwo+IDEy OMKgwqDCoMKgwqDCoMKgIDY2MTbCoMKgwqDCoMKgwqDCoMKgwqDCoCA1McKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAzODQ4wqDCoMKgwqDCoMKgwqDCoMKgwqAgMzAKPiAyNTbC oMKgwqDCoMKgwqDCoCAyMDYwMMKgwqDCoMKgwqDCoMKgwqDCoCA4MMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAxMDU2OMKgwqDCoMKgwqDCoMKgwqDCoCA0MQo+IDUxMsKgwqDC oMKgwqDCoMKgIDg3Mjk2wqDCoMKgwqDCoMKgwqDCoMKgIDE3MMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgNDM0MTbCoMKgwqDCoMKgwqDCoMKgwqAgODQKPiAxMDI0wqDCoMKgwqDC oMKgIDM4ODQ2MMKgwqDCoMKgwqDCoMKgwqAgMzc5wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAxOTcwMzLCoMKgwqDCoMKgwqDCoMKgIDE5Mgo+Cj4gZm9yIHNtYWxsZXIgd3JpdGVz IHRoZXJlIHNlZW1zIHRvIGJlIGEgbWluaW11bSBvdmVyaGVhZCBvZiB+NTAtMTAwIGtieXRlcwo+ IGZvciBiaWcgZmlsZXMgd2l0aCBoYXZlIGEgbWFzc2l2ZSBhbXBsaWZpY2F0aW9uIG9mID4gMTAw eAo+Cj4gbXkgcGF0Y2ggZG9lcyBzZWVtIHRvIG1ha2UgYSBkaWZmZXJlbmNlIGZvciBmaWxlcyA+ NGsKPgo+IGJ1dCB0aGUgYmlnZ2VzdCBzdXJwcmlzZSBoZXJlIGlzIHRoYXQgdGhlIHdyaXRlIGFt cGxpZmljYXRpb24KPiBpcyBub3QgbGluZWFyLCBidXQgaW5jcmVhc2VzIHdpdGggYW4gaW5jcmVh c2UgaW4gYnl0ZXMgd2Ugd2FudCB0byB3cml0ZQo+IHNvIGUuZy4gZ29pbmcgZnJvbSAxMjhrIC0+ IDI1NmsgZmlsZSB3cml0ZSB3ZSBkb24ndCBqdXN0IHdyaXRlIGRvdWJsZSAKPiB0aGUgYW1vdW50 LAo+IGJ1dCAzeCB0byA0eCBhcyBtdWNoLgo+Cj4gaSBhbHNvIHByb2R1Y2VkIGEgZmxhbWVncmFw aCBhY2NvcmRpbmcgdG8gCj4gaHR0cHM6Ly93d3cuYnJlbmRhbmdyZWdnLmNvbS9GbGFtZUdyYXBo cy9jcHVmbGFtZWdyYXBocy5odG1sLCBidXQgdGhhdCAKPiBzaG93ZWQgdmlydHVhbGx5IG5vIGNo YW5nZSBiZXR3ZWVuIHZlcnNpb25zIHdpdGhvdXQKPiBhbmQgd2l0aCBteSBwYXRjaCAoaWYgb25l IGhhcyBhIGdvb2Qgc3ZnIGhvc3RlciwgaSBjYW4gcG9zdCB0aGVtIG9mYykKPgo+IHNvLCB0bDtk cgo+Cj4gZm9yIHNtYWxsIHdyaXRlcyBkb2VzIG5vdCBtYWtlIHRoYXQgbXVjaCBvZiBhIGRpZmZl cmVuY2UsIGJ1dAo+IHdlIGNhbiBzYXZlIH5oYWxmIHRoZSB3cml0ZXMgZm9yIGxhcmdlIGZpbGVz IGluIHRoZSBwbXhjZnMKPiAod2hpY2ggZS5nLiBhIGhhLXN0YXRlIGZpbGUgY291bGQgZG8pCj4K Pgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBw dmUtZGV2ZWwgbWFpbGluZyBsaXN0Cj4gcHZlLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4gaHR0 cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVs CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KcHZlLWRl dmVsIG1haWxpbmcgbGlzdApwdmUtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KaHR0cHM6Ly9saXN0 cy5wcm94bW94LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcHZlLWRldmVsCg==