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 434601FF143 for ; Mon, 19 Jan 2026 13:55:19 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 19FF11E383; Mon, 19 Jan 2026 13:55:26 +0100 (CET) Message-ID: <4e0c865f-9181-4ba4-a99e-4f2f5e489560@proxmox.com> Date: Mon, 19 Jan 2026 13:54:50 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: pbs-devel@lists.proxmox.com References: <20260109173548.301653-1-r.obkircher@proxmox.com> <20260109173548.301653-2-r.obkircher@proxmox.com> <1768390129.t2gtpb8x7e.astroid@yuna.none> <845335b1-78b7-4710-805a-d2ff464ceba0@proxmox.com> <176857369362.137827.9885953475732630098@yuna.proxmox.com> Content-Language: en-US, de-AT From: Robert Obkircher In-Reply-To: <176857369362.137827.9885953475732630098@yuna.proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1768827237638 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 Subject: Re: [pbs-devel] [PATCH v3 proxmox-backup 1/5] fix #3847: datastore: support writing fidx files of unknown size X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Ck9uIDEvMTYvMjYgMTU6MjgsIEZhYmlhbiBHcsO8bmJpY2hsZXIgd3JvdGU6Cj4gUXVvdGluZyBS b2JlcnQgT2JraXJjaGVyICgyMDI2LTAxLTE2IDEzOjQyOjM2KQo+PiBPbiAxLzE0LzI2IDE0OjEz LCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+Pj4gT24gSmFudWFyeSA5LCAyMDI2IDY6MzUg cG0sIFJvYmVydCBPYmtpcmNoZXIgd3JvdGU6Cj4+Pj4gVXNlIG1yZW1hcCBhbmQgZnRydW5jYXRl IHRvIHN1cHBvcnQgZ3Jvd2FibGUgRml4ZWRJbmRleFdyaXRlcnMuIEdyb3cKPj4+PiBleHBvbmVu dGlhbGx5IGZyb20gYSBzbWFsbCBpbml0aWFsIGluZGV4IHNpemUgZm9yIGVmZmljaWVuY3kuIFRy dW5jYXRlCj4+Pj4gZXhjZXNzaXZlIGNhcGFjaXR5IGFmdGVyIGVuY291bnRlcmluZyBhIG5vbi1m dWxsIGJsb2NrIG9yIG9uIGNsb3NlLgo+Pj4+Cj4+Pj4gU2lnbmVkLW9mZi1ieTogUm9iZXJ0IE9i a2lyY2hlcjxyLm9ia2lyY2hlckBwcm94bW94LmNvbT4KPj4+PiAtLS0KPj4+PiAgICBwYnMtZGF0 YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMgICB8ICAgMiArLQo+Pj4+ICAgIHBicy1kYXRhc3RvcmUv c3JjL2ZpeGVkX2luZGV4LnJzIHwgMTIwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K Pj4+PiAgICAyIGZpbGVzIGNoYW5nZWQsIDExNyBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygt KQo+Pj4+Cj4+Pj4gZGlmZiAtLWdpdCBhL3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycyBi L3Bicy1kYXRhc3RvcmUvc3JjL2RhdGFzdG9yZS5ycwo+Pj4+IGluZGV4IDljNTdhYWFjLi5hZjcx MjcyNiAxMDA2NDQKPj4+PiAtLS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPj4+ PiArKysgYi9wYnMtZGF0YXN0b3JlL3NyYy9kYXRhc3RvcmUucnMKPj4+PiBAQCAtNTkxLDcgKzU5 MSw3IEBAIGltcGwgRGF0YVN0b3JlIHsKPj4+PiAgICAgICAgcHViIGZuIGNyZWF0ZV9maXhlZF93 cml0ZXI8UDogQXNSZWY8UGF0aD4+KAo+Pj4+ICAgICAgICAgICAgJnNlbGYsCj4+Pj4gICAgICAg ICAgICBmaWxlbmFtZTogUCwKPj4+PiAtICAgICAgICBzaXplOiB1c2l6ZSwKPj4+PiArICAgICAg ICBzaXplOiBPcHRpb248dXNpemU+LAo+Pj4+ICAgICAgICAgICAgY2h1bmtfc2l6ZTogdXNpemUs Cj4+Pj4gICAgICAgICkgLT4gUmVzdWx0PEZpeGVkSW5kZXhXcml0ZXIsIEVycm9yPiB7Cj4+Pj4g ICAgICAgICAgICBsZXQgaW5kZXggPSBGaXhlZEluZGV4V3JpdGVyOjpjcmVhdGUoCj4+Pj4gZGlm ZiAtLWdpdCBhL3Bicy1kYXRhc3RvcmUvc3JjL2ZpeGVkX2luZGV4LnJzIGIvcGJzLWRhdGFzdG9y ZS9zcmMvZml4ZWRfaW5kZXgucnMKPj4+PiBpbmRleCA2YzNiZTJkNC4uODAzNmE1MTkgMTAwNjQ0 Cj4+Pj4gLS0tIGEvcGJzLWRhdGFzdG9yZS9zcmMvZml4ZWRfaW5kZXgucnMKPj4+PiArKysgYi9w YnMtZGF0YXN0b3JlL3NyYy9maXhlZF9pbmRleC5ycwo+Pj4+IEBAIC0yMTksOSArMjE5LDEyIEBA IHB1YiBzdHJ1Y3QgRml4ZWRJbmRleFdyaXRlciB7Cj4+Pj4gICAgICAgIGNodW5rX3NpemU6IHVz aXplLAo+Pj4+ICAgICAgICBzaXplOiB1c2l6ZSwKPj4+PiAgICAgICAgaW5kZXhfbGVuZ3RoOiB1 c2l6ZSwKPj4+PiArICAgIGluZGV4X2NhcGFjaXR5OiB1c2l6ZSwKPj4+IGNodW5rX3NpemUgYW5k IHNpemUgZWZmZWN0aXZlbHkgYWxyZWFkeSBnaXZlIHlvdSBpbmRleF9sZW5ndGggKGFzIGluLAo+ Pj4gaG93IG1hbnkgInNsb3RzIiBhcmUgYWxsb3dlZCB0byBiZSB1c2VkKSwgc28gaW5kZXggbGVu Z3RoIGFuZCBpbmRleAo+Pj4gY2FwYWNpdHkgY2FuIGJlIGEgc2luZ2xlIGZpZWxkLiBpZiB5b3Ug d2FudCB0byByZW5hbWUgaXQgdG8gc2lnbmlmeSB0aGF0Cj4+PiBpdCBtaWdodCBub3cgYmUgYmln Z2VyIHRoYW4gY2VpbChzaXplL2NodW5rX3NpemUpLCB0aGF0J3MgZmluZSwgYnV0IEkKPj4+IGRv bid0IHRoaW5rIHdlIG5lZWQgdG8gZHVwbGljYXRlIGl0IGFuZCBjb21wbGljYXRlIHRoZSBjb2Rl IGJlbG93Li4KPj4gQnkgdGhhdCBsb2dpYyAoY2h1bmtfc2l6ZSwgc2l6ZSwgZ3Jvd2FibGVfc2l6 ZSkgYWxzbyBnaXZlIG1lIHRoZSBjYXBhY2l0eSwKPj4gc28gYm90aCBmaWVsZHMgY291bGQgYmUg cmVtb3ZlZC4KPiB0aGF0J3MgdHJ1ZSA6KQo+Cj4+IEkga2VwdCB0aGVtIGFzIHNlcGFyYXRlIGZp ZWxkcyBiZWNhdXNlIHRoYXQgaXMgd2hhdCB0aGUgb3JpZ2luYWwgY29kZSBhbmQKPj4gdGhlIFJl YWRlciBkbywgc3VwcG9zZWRseSB0byBhdm9pZCB0aGUgZGl2aXNpb24gZm9yIHRoZSBib3VuZHMg Y2hlY2suCj4gd2UgZWZmZWN0aXZlbHkgZG8gdGhhdCBib3VuZHMgY2hlY2sgdHdpY2UgdGhvdWdo IC0gb25jZSBmb3Igc2l6ZSAoaW4KPiBjaGVja19jaHVua19hbGlnbm1lbnQpIGFuZCBhZ2FpbiBm b3IgaW5kZXhfbGVuZ3RoICh3aGljaCBpcyBkZXJpdmVkIDE6MSBmcm9tCj4gc2l6ZSBhbmQgY2h1 bmtfc2l6ZSkgaW4gYWRkX2RpZ2VzdC4uIGFuZCB0aGUgYmFja3VwIGVudiBjYWxscwo+IGNoZWNr X2NodW5rX2FsaWdubWVudCByaWdodCBiZWZvcmUgY2FsbGluZyBhZGRfZGlnZXN0LiB3aGVuIGNv cHlpbmcgZnJvbSBhCj4gcmVhZGVyIGRpcmVjdGx5IHRvIHRoZSB3cml0ZXIgdGhhdCBkb2VzIG5v dCBoYXBwZW4sIGJ1dCBpbiB0aGF0IGNhc2Ugd2UgYWxyZWFkeQo+IGNoZWNrZWQgdGhhdCB0aGUg aW5kZXggYW5kIGNodW5rIHNpemVzIG1hdGNoIGJlZm9yZSB3ZSBzdGFydCBhZGRpbmcgdGhlIGZp cnN0Cj4gZGlnZXN0LCBzbyB0aGUgY2hlY2sgaW4gYWRkX2RpZ2VzdCBpcyByZWR1bmRhbnQgdGhl cmUgYXMgd2VsbC4uCkkgdHJ1c3QgdGhlIGluZGV4X2xlbmd0aCBjaGVjayBtb3JlIHRoYW4gdGhl IHNpemUgY2hlY2suIEZvciBleGFtcGxlLAppZiBzaXplIHdhcyBjaGFuZ2VkIHRvIHU2NCAobGlr ZSBpbiB0aGUgUmVhZGVyKSB0aGF0IGNvdWxkIHRoZW9yZXRpY2FsbHkKb3ZlcmZsb3cgdGhlIHVz aXplIGNhcGFjaXR5IG9uIDMyLWJpdCBzeXN0ZW1zIGFuZCBsZWFkIHRvIG91dCBvZiBib3VuZHMK d3JpdGVzIGlmIHJlc2l6aW5nIHdhc24ndCBoYW5kbGVkIGNvcnJlY3RseS4KClJlZ2FyZGluZyBj bG9uZV9kYXRhX2Zyb206IEkndmUgbm90aWNlZCB0aGF0IHRoaXMgb25seSBjb21wYXJlcyB0aGUK aW5kZXhfbGVuZ3RoIGFuZCBub3QgdGhlIHNpemUuIFRoaXMgYWxsb3dzIHRoZSBjcmVhdGlvbiBv ZiBpbnZhbGlkIGZpbGVzCmlmIHRoZSBjbGllbnQgbGllcyBhYm91dCB0aGUgc2l6ZSBhbmQgZG9l c24ndCBvdmVyd3JpdGUgdGhlIGxhc3QgY2h1bmsuIEknbQpub3Qgc3VyZSBpZiB0aGlzIGlzIGEg YnVnIG9yIGEgZmVhdHVyZSB0aGF0IGFsbG93cyBhcHBlbmRpbmcuIFRoZSBjb2RlIGluCnByb3ht b3gtYmFja3VwLXFlbXUgdXNlcyB0aGUgc2FtZSBjaGVjayB3aGVuIGl0IHNldHMgcmV1c2UtY3N1 bS4KCj4KPiBJIG5vdyB3b25kZXIgd2UgY291bGQgY29tYmluZSBjaGVja19jaHVua19hbGlnbm1l bnQgYW5kIGdyb3dfdG9fc2l6ZSwgc2luY2UKPiB0aGV5IGhhbmRsZSBxdWl0ZSBzaW1pbGFyIGFz cGVjdHMgYW5kIGJvdGggb25seSBoYXZlIGEgc2luZ2xlIGNhbGwgc2l0ZSBvdXRzaWRlCj4gb2Yg dGVzdHMsIHdoaWNoIGlzIHJpZ2h0IG5leHQgdG8gZWFjaG90aGVyLi4gb3IgKHNlZSBiZWxvdykK CkluIHRoZSB2ZXJ5IGZpcnN0IHZlcnNpb24gSSBhY3R1YWxseSBwdXQgdGhlIHJlc2l6aW5nIGlu IApjaGVja19jaHVua19hbGlnbm1lbnQsCmJ1dCBzZXBhcmF0aW5nIHRoZW0gc2VlbWVkIHNsaWdo dGx5IG5pY2VyLCBiZWNhdXNlIHRoZSBhbGlnbm1lbnQgY2hlY2sKZG9lc24ndCBuZWVkICZtdXQg c2VsZi4KCj4KPj4gVGhpcyBhbHNvIG1ha2VzIGl0IG11Y2ggbW9yZSBleHBsaWNpdCB3aGF0IGlz IGdvaW5nIG9uIGFuZCBzaW5jZSB0aGUKPj4gaW5kZXhfbGVuZ3RoIGhhcyB0byBiZSBjb21wdXRl ZCBhbnl3YXkgd2hpbGUgcmVzaXppbmcsIEkgZG9uJ3Qgc2VlIGhvdwo+PiBzdG9yaW5nIHRoYXQg dmFsdWUgZm9yIGxhdGVyIGlzIG1vcmUgY29tcGxpY2F0ZWQgdGhhbiByZWNvbXB1dGluZyBpdC4K Pj4KPj4+PiAgICAgICAgaW5kZXg6ICptdXQgdTgsCj4+Pj4gICAgICAgIHB1YiB1dWlkOiBbdTg7 IDE2XSwKPj4+PiAgICAgICAgcHViIGN0aW1lOiBpNjQsCj4+Pj4gKyAgICBncm93YWJsZV9zaXpl OiBib29sLAo+Pj4+ICsgICAgd3JpdGVfc2l6ZV9vbl9jbG9zZTogYm9vbCwKPj4+PiAgICB9Cj4+ Pj4gICAgCj4+Pj4gICAgLy8gYGluZGV4YCBpcyBtbWFwKCllZCB3aGljaCBjYW5ub3QgYmUgdGhy ZWFkLWxvY2FsIHNvIHNob3VsZCBiZSBzZW5kYWJsZQo+Pj4+IEBAIC0yMzcsMTIgKzI0MCwxOCBA QCBpbXBsIERyb3AgZm9yIEZpeGVkSW5kZXhXcml0ZXIgewo+Pj4+ICAgIH0KPj4+PiAgICAKPj4+ PiAgICBpbXBsIEZpeGVkSW5kZXhXcml0ZXIgewo+Pj4+ICsgICAgLy8vIFRoZSBpbml0aWFsIGNh cGFjaXR5LCBpZiB0aGUgdG90YWwgc2l6ZSBpcyB1bmtub3duLgo+Pj4+ICsgICAgLy8vCj4+Pj4g KyAgICAvLy8gVGhpcyBjYXBhY2l0eSB0YWtlcyB1cCB0aGUgc2FtZSBhbW91bnQgb2Ygc3BhY2Ug YXMgdGhlIGhlYWRlcgo+Pj4+ICsgICAgLy8vIGFuZCBjYW4gcmVmZXIgdG8gMTI4IEJsb2NrcyAq IDQgTWlCL0Jsb2NrID0gNTEyIE1pQiBvZiBjb250ZW50Lgo+Pj4+ICsgICAgY29uc3QgSU5JVElB TF9DQVBBQ0lUWTogdXNpemUgPSA0MDk2IC8gMzI7Cj4+PiBtaWdodCBtYWtlIHNlbnNlIHRvIG1h a2UgdGhpcyBtb3JlIGV4cGxpY2l0IC0gd2UgY2FuIG9ubHkgbWFwIHVzaW5nIHBhZ2UKPj4+IGdy YW51bGFyaXR5LCB0aGUgaGVhZGVyIGlzIG9uZSBwYWdlLCBzbyB0aGUgZmlyc3QgcGFydCBuZWVk cyB0byBiZSBhCj4+PiBwYWdlIGFzIHdlbGwsIGFuZCBpZiB0aGVuIGFsd2F5cyBkb3VibGUgaXQg d2hlbiByZXNpemluZyB3ZSBzdGF5IGFsaWduZWQKPj4+IHRvIHBhZ2UgYm91bmRhcmllcy4KPj4g VGhlcmUgaXMgYWN0dWFsbHkgbm8gc3RyaWN0IHJlcXVpcmVtZW50IGZvciB0aGUgbWFwcGVkIGxl bmd0aCB0byBiZQo+PiBhIG11bHRpcGxlIG9mIHRoZSBwYWdlIHNpemUsIHNvIEkgZGlkbid0IHdh bnQgdG8gZ3VhcmFudGVlIHRvbyBtdWNoLgo+PiBIb3dldmVyLCB0aGUgb2Zmc2V0IGludG8gdGhl IGZpbGUgbXVzdCBiZSBhbGlnbmVkLCBzbyBhIHBhZ2Ugc2l6ZQo+PiBsYXJnZXIgdGhhbiB0aGUg aGVhZGVyIHdvdWxkIGJyZWFrIGFueXdheS4KPiB5b3UgYXJlIHJpZ2h0LCBzb3JyeSEKPgo+PiBJ IHRoaW5rIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8ganVzdCBtYXAgdGhlIGZpbGUgZnJvbSB0aGUg c3RhcnQsIGJlY2F1c2UKPj4gdGhhdCB3b3VsZCBzaW1wbGlmeSBteSBvdGhlciBmaXggWzFdIGFu ZCB0aGUgc2l6ZS9jaGVja3N1bSB1cGRhdGUgaW4KPj4gY2xvc2UoKS4KPiBnaXZlbiB0aGF0IHdl IGFscmVhZHkgaGFkIGEgcmVwb3J0IGFib3V0IFBCUyBub3Qgd29ya2luZyBvbiAxNmsgcGFnZSBr ZXJuZWxzLAo+IGFuZCB0aGVyZSBhcmUgb3RoZXIgcGxhdGZvcm1zIHdpdGggNjRrIHBhZ2VzLCBp dCBtaWdodCBiZSBuaWNlIHRvIGZpeCB0aGlzIHVwCj4gaWYgaXQgZG9lc24ndCBjYXVzZSB0b28g bXVjaCBhbm5veWFuY2UuCj4KPiBJSVJDIGJlc2lkZXMgdGhlIGluZGV4IGNvZGUsIG9ubHkgb3Vy IHNoYXJlZCBtZW1vcnkgaGVscGVyIChmb3IgY29uZmlnIGNhY2hpbmcKPiBhbmQgcmF0ZSBsaW1p dGluZykgdXNlIG1tYXAuIGluIHRob3NlIGNhc2VzIHRoZSBtYXBwZWQgZGF0YSBpcyBwYWRkZWQg dG8gYQo+IHNpbmdsZSA0ayBwYWdlIGF0bSwgYW5kIHdoZW4gbWFwcGluZyB3ZSByb3VuZCB1cCB0 byBhIHBhZ2UgYXMgd2VsbCwgYWx0aG91Z2gKPiB0aGUgaGVscGVyIGZvciB0aGF0IGhhcyBhIEZJ WE1FIGNhbGxpbmcgZm9yIGl0IHRvIGFjdHVhbGx5IHF1ZXJ5IHRoZSBwYWdlIHNpemUKPiBpbnN0 ZWFkIG9mIGFzc3VtaW5nIGl0J3MgNGsgOykKPgo+IHNvIHllYWgsIHRob3NlIGFsbCBzb3VuZCBs aWtlIHRoZXkgY291bGQgYmUgZml4ZWQgdXAgd2l0aG91dCB0b28gbXVjaCBlZmZvcnQKPiBhbmQg d2l0aG91dCBtdWNoIGFkZGl0aW9uYWwgY29zdCAoZm9yIHRoZSBpbmRleCBhY2Nlc3MsIGl0IGJv aWxzIGRvd24gdG8gb25lCj4gZXh0cmEgcG9pbnRlciBhZGRpdGlvbiBmb3IgdGhlIGhlYWRlci10 by1wYXlsb2FkLW9mZnNldD8pLgpJJ2xsIHdvcmsgb24gdGhhdCBzZXBhcmF0ZWx5Lgo+Cj4+IFsx XQo+PiBodHRwczovL2xvcmUucHJveG1veC5jb20vcGJzLWRldmVsLzIwMjYwMTA5MTc1OTQ1LjMw OTkxMy0zLXIub2JraXJjaGVyQHByb3htb3guY29tLwo+Pgo+Pj4+ICsKPj4+PiAgICAgICAgI1th bGxvdyhjbGlwcHk6OmNhc3RfcHRyX2FsaWdubWVudCldCj4+Pj4gICAgICAgIC8vIFJlcXVpcmVz IG9idGFpbmluZyBhIHNoYXJlZCBjaHVuayBzdG9yZSBsb2NrIGJlZm9yZWhhbmQKPj4+PiAgICAg ICAgcHViIGZuIGNyZWF0ZSgKPj4+PiAgICAgICAgICAgIHN0b3JlOiBBcmM8Q2h1bmtTdG9yZT4s Cj4+Pj4gICAgICAgICAgICBwYXRoOiAmUGF0aCwKPj4+PiAtICAgICAgICBzaXplOiB1c2l6ZSwK Pj4+PiArICAgICAgICBrbm93bl9zaXplOiBPcHRpb248dXNpemU+LAo+Pj4+ICAgICAgICAgICAg Y2h1bmtfc2l6ZTogdXNpemUsCj4+Pj4gICAgICAgICkgLT4gUmVzdWx0PFNlbGYsIEVycm9yPiB7 Cj4+Pj4gICAgICAgICAgICBsZXQgZnVsbF9wYXRoID0gc3RvcmUucmVsYXRpdmVfcGF0aChwYXRo KTsKPj4+PiBAQCAtMjY0LDYgKzI3Myw3IEBAIGltcGwgRml4ZWRJbmRleFdyaXRlciB7Cj4+Pj4g ICAgICAgICAgICB9Cj4+Pj4gICAgCj4+Pj4gICAgICAgICAgICBsZXQgY3RpbWUgPSBwcm94bW94 X3RpbWU6OmVwb2NoX2k2NCgpOwo+Pj4+ICsgICAgICAgIGxldCBzaXplID0ga25vd25fc2l6ZS51 bndyYXBfb3IoMCk7Cj4+Pj4gICAgCj4+Pj4gICAgICAgICAgICBsZXQgdXVpZCA9IFV1aWQ6Omdl bmVyYXRlKCk7Cj4+Pj4gICAgCj4+Pj4gQEAgLTI4MCw4ICsyOTAsMTIgQEAgaW1wbCBGaXhlZElu ZGV4V3JpdGVyIHsKPj4+PiAgICAKPj4+PiAgICAgICAgICAgIGZpbGUud3JpdGVfYWxsKCZidWZm ZXIpPzsKPj4+PiAgICAKPj4+PiAtICAgICAgICBsZXQgaW5kZXhfbGVuZ3RoID0gc2l6ZS5kaXZf Y2VpbChjaHVua19zaXplKTsKPj4+PiAtICAgICAgICBsZXQgaW5kZXhfc2l6ZSA9IGluZGV4X2xl bmd0aCAqIDMyOwo+Pj4+ICsgICAgICAgIGxldCAoaW5kZXhfbGVuZ3RoLCBpbmRleF9jYXBhY2l0 eSkgPSBrbm93bl9zaXplCj4+Pj4gKyAgICAgICAgICAgIC5tYXAofHN8IHMuZGl2X2NlaWwoY2h1 bmtfc2l6ZSkpCj4+Pj4gKyAgICAgICAgICAgIC5tYXAofGxlbnwgKGxlbiwgbGVuKSkKPj4+PiAr ICAgICAgICAgICAgLnVud3JhcF9vcigoMCwgU2VsZjo6SU5JVElBTF9DQVBBQ0lUWSkpOwo+Pj4+ ICsKPj4+PiArICAgICAgICBsZXQgaW5kZXhfc2l6ZSA9IGluZGV4X2NhcGFjaXR5ICogMzI7Cj4+ Pj4gICAgICAgICAgICBuaXg6OnVuaXN0ZDo6ZnRydW5jYXRlKCZmaWxlLCAoaGVhZGVyX3NpemUg KyBpbmRleF9zaXplKSBhcyBpNjQpPzsKPj4+PiAgICAKPj4+PiAgICAgICAgICAgIGxldCBkYXRh ID0gdW5zYWZlIHsKPj4+PiBAQCAtMzA1LDEyICszMTksODcgQEAgaW1wbCBGaXhlZEluZGV4V3Jp dGVyIHsKPj4+PiAgICAgICAgICAgICAgICBjaHVua19zaXplLAo+Pj4+ICAgICAgICAgICAgICAg IHNpemUsCj4+Pj4gICAgICAgICAgICAgICAgaW5kZXhfbGVuZ3RoLAo+Pj4+ICsgICAgICAgICAg ICBpbmRleF9jYXBhY2l0eSwKPj4+PiAgICAgICAgICAgICAgICBpbmRleDogZGF0YSwKPj4+PiAg ICAgICAgICAgICAgICBjdGltZSwKPj4+PiAgICAgICAgICAgICAgICB1dWlkOiAqdXVpZC5hc19i eXRlcygpLAo+Pj4+ICsgICAgICAgICAgICBncm93YWJsZV9zaXplOiBrbm93bl9zaXplLmlzX25v bmUoKSwKPj4+PiArICAgICAgICAgICAgd3JpdGVfc2l6ZV9vbl9jbG9zZToga25vd25fc2l6ZS5p c19ub25lKCksCj4+Pj4gKyAgICAgICAgfSkKPj4+PiArICAgIH0KPj4+PiArCj4+Pj4gKyAgICAv Ly8gSWYgdGhpcyByZXR1cm5zIGFuIGVycm9yLCB0aGUgc2l6ZXMgbWF5IGJlIG91dCBvZiBzeW5j LAo+Pj4+ICsgICAgLy8vIHdoaWNoIGlzIGVzcGVjaWFsbHkgYmFkIGlmIHRoZSBjYXBhY2l0eSB3 YXMgcmVkdWNlZC4KPj4+PiArICAgIGZuIHNldF9pbmRleF9jYXBhY2l0eSgmbXV0IHNlbGYsIG5l d19jYXBhY2l0eTogdXNpemUpIC0+IFJlc3VsdDwoKSwgRXJyb3I+IHsKPj4+PiArICAgICAgICBp ZiBuZXdfY2FwYWNpdHkgPT0gc2VsZi5pbmRleF9jYXBhY2l0eSB7Cj4+Pj4gKyAgICAgICAgICAg IHJldHVybiBPaygoKSk7Cj4+Pj4gKyAgICAgICAgfQo+Pj4+ICsgICAgICAgIGxldCBvbGRfaW5k ZXhfc2l6ZSA9IHNlbGYuaW5kZXhfY2FwYWNpdHkgKiAzMjsKPj4+PiArICAgICAgICBsZXQgbmV3 X2luZGV4X3NpemUgPSBuZXdfY2FwYWNpdHkgKiAzMjsKPj4+PiArICAgICAgICBsZXQgbmV3X2Zp bGVfc2l6ZSA9IChzaXplX29mOjo8Rml4ZWRJbmRleEhlYWRlcj4oKSArIG5ld19pbmRleF9zaXpl KSBhcyBpNjQ7Cj4+Pj4gKwo+Pj4+ICsgICAgICAgIGxldCBpbmRleF9hZGRyID0gTm9uTnVsbDo6 bmV3KHNlbGYuaW5kZXggYXMgKm11dCBzdGQ6OmZmaTo6Y192b2lkKS5va19vcl9lbHNlKHx8IHsK Pj4+PiArICAgICAgICAgICAgZm9ybWF0X2VyciEoIkNhbid0IHJlc2l6ZSBGaXhlZEluZGV4V3Jp dGVyIGluZGV4IGJlY2F1c2UgdGhlIGluZGV4IHBvaW50ZXIgaXMgbnVsbC4iKQo+Pj4+ICsgICAg ICAgIH0pPzsKPj4+PiArCj4+Pj4gKyAgICAgICAgbml4Ojp1bmlzdGQ6OmZ0cnVuY2F0ZSgmc2Vs Zi5maWxlLCBuZXdfZmlsZV9zaXplKT87Cj4+Pj4gKwo+Pj4+ICsgICAgICAgIGxldCBuZXdfaW5k ZXggPSB1bnNhZmUgewo+Pj4+ICsgICAgICAgICAgICBuaXg6OnN5czo6bW1hbjo6bXJlbWFwKAo+ Pj4+ICsgICAgICAgICAgICAgICAgaW5kZXhfYWRkciwKPj4+PiArICAgICAgICAgICAgICAgIG9s ZF9pbmRleF9zaXplLAo+Pj4+ICsgICAgICAgICAgICAgICAgbmV3X2luZGV4X3NpemUsCj4+Pj4g KyAgICAgICAgICAgICAgICBuaXg6OnN5czo6bW1hbjo6TVJlbWFwRmxhZ3M6Ok1SRU1BUF9NQVlN T1ZFLAo+Pj4+ICsgICAgICAgICAgICAgICAgTm9uZSwKPj4+PiArICAgICAgICAgICAgKQo+Pj4+ ICsgICAgICAgIH0/Owo+Pj4+ICsKPj4+PiArICAgICAgICBzZWxmLmluZGV4ID0gbmV3X2luZGV4 LmFzX3B0cigpLmNhc3Q6Ojx1OD4oKTsKPj4+PiArICAgICAgICBzZWxmLmluZGV4X2NhcGFjaXR5 ID0gbmV3X2NhcGFjaXR5Owo+Pj4+ICsgICAgICAgIE9rKCgpKQo+Pj4+ICsgICAgfQo+Pj4+ICsK Pj4+PiArICAgIC8vLyBVbm1hcHBpbmcgZW5zdXJlcyBmdXR1cmUgYWRkIGFuZCBjbG9zZSBvcGVy YXRpb25zIGZhaWwuCj4+Pj4gKyAgICBmbiBzZXRfaW5kZXhfY2FwYWNpdHlfb3JfdW5tYXAoJm11 dCBzZWxmLCBuZXdfY2FwYWNpdHk6IHVzaXplKSAtPiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+Pj4g KyAgICAgICAgc2VsZi5zZXRfaW5kZXhfY2FwYWNpdHkobmV3X2NhcGFjaXR5KS5tYXBfZXJyKHxl fCB7Cj4+Pj4gKyAgICAgICAgICAgIGxldCB1bm1hcF9yZXN1bHQgPSBzZWxmLnVubWFwKCk7Cj4+ Pj4gKyAgICAgICAgICAgIGxldCBtZXNzYWdlID0gZm9ybWF0ISgKPj4+PiArICAgICAgICAgICAg ICAgICJmYWlsZWQgdG8gcmVzaXplIGluZGV4IGNhcGFjaXR5IGZyb20ge30gdG8ge25ld19jYXBh Y2l0eX0gd2l0aCBiYWNraW5nIGZpbGU6IHs6P30iLAo+Pj4+ICsgICAgICAgICAgICAgICAgc2Vs Zi5pbmRleF9jYXBhY2l0eSwgc2VsZi50bXBfZmlsZW5hbWUKPj4+PiArICAgICAgICAgICAgKTsK Pj4+PiArICAgICAgICAgICAgYXNzZXJ0IShzZWxmLmluZGV4LmlzX251bGwoKSwgInttZXNzYWdl fSB7dW5tYXBfcmVzdWx0Oj99Iik7Cj4+Pj4gKyAgICAgICAgICAgIGUuY29udGV4dChtZXNzYWdl KQo+Pj4+ICAgICAgICAgICAgfSkKPj4+PiAgICAgICAgfQo+Pj4+ICAgIAo+Pj4+ICsgICAgLy8v IEluY3JlYXNlIHRoZSBjb250ZW50IHNpemUgdG8gYmUgYXQgbGVhc3QgYHJlcXVlc3RlZF9zaXpl YCBhbmQKPj4+PiArICAgIC8vLyBlbnN1cmUgdGhlcmUgaXMgZW5vdWdoIGNhcGFjaXR5Lgo+Pj4+ ICsgICAgLy8vCj4+Pj4gKyAgICAvLy8gT25seSB3cml0ZXJzIHRoYXQgd2VyZSBjcmVhdGVkIHdp dGhvdXQgYSBrbm93biBzaXplIGNhbiBncm93Lgo+Pj4+ICsgICAgLy8vIFRoZSBzaXplIGFsc28g YmVjb21lcyBmaXhlZCBhcyBzb29uIGFzIGl0IGlzIG5vIGxvbmdlciBkaXZpc2libGUKPj4+PiAr ICAgIC8vLyBieSB0aGUgYmxvY2sgc2l6ZSwgdG8gZW5zdXJlIHRoYXQgb25seSB0aGUgbGFzdCBi bG9jayBjYW4gYmUKPj4+PiArICAgIC8vLyBzbWFsbGVyLgo+Pj4+ICsgICAgcHViIGZuIGdyb3df dG9fc2l6ZSgmbXV0IHNlbGYsIHJlcXVlc3RlZF9zaXplOiB1c2l6ZSkgLT4gUmVzdWx0PCgpLCBF cnJvcj4gewo+Pj4+ICsgICAgICAgIGlmIHNlbGYuc2l6ZSA8IHJlcXVlc3RlZF9zaXplIHsKPj4+ PiArICAgICAgICAgICAgaWYgIXNlbGYuZ3Jvd2FibGVfc2l6ZSB7Cj4+Pj4gKyAgICAgICAgICAg ICAgICBiYWlsISgicmVmdXNpbmcgdG8gcmVzaXplIGZyb20ge30gdG8ge3JlcXVlc3RlZF9zaXpl fSIsIHNlbGYuc2l6ZSk7Cj4+Pj4gKyAgICAgICAgICAgIH0KPj4+PiArICAgICAgICAgICAgbGV0 IG5ld19sZW4gPSByZXF1ZXN0ZWRfc2l6ZS5kaXZfY2VpbChzZWxmLmNodW5rX3NpemUpOwo+Pj4+ ICsgICAgICAgICAgICBpZiBuZXdfbGVuICogc2VsZi5jaHVua19zaXplICE9IHJlcXVlc3RlZF9z aXplIHsKPj4+PiArICAgICAgICAgICAgICAgIC8vIG5vdCBhIGZ1bGwgY2h1bmssIHNvIHRoaXMg bXVzdCBiZSB0aGUgbGFzdCBvbmUKPj4+PiArICAgICAgICAgICAgICAgIHNlbGYuZ3Jvd2FibGVf c2l6ZSA9IGZhbHNlOwo+Pj4+ICsgICAgICAgICAgICAgICAgc2VsZi5zZXRfaW5kZXhfY2FwYWNp dHlfb3JfdW5tYXAobmV3X2xlbik/Owo+Pj4+ICsgICAgICAgICAgICB9IGVsc2UgaWYgbmV3X2xl biA+IHNlbGYuaW5kZXhfY2FwYWNpdHkgewo+Pj4+ICsgICAgICAgICAgICAgICAgc2VsZi5zZXRf aW5kZXhfY2FwYWNpdHlfb3JfdW5tYXAobmV3X2xlbi5uZXh0X3Bvd2VyX29mX3R3bygpKT87Cj4+ Pj4gKyAgICAgICAgICAgIH07Cj4+Pj4gKyAgICAgICAgICAgIGFzc2VydCEobmV3X2xlbiA8PSBz ZWxmLmluZGV4X2NhcGFjaXR5KTsKPj4+PiArICAgICAgICAgICAgc2VsZi5pbmRleF9sZW5ndGgg PSBuZXdfbGVuOwo+Pj4+ICsgICAgICAgICAgICBzZWxmLnNpemUgPSByZXF1ZXN0ZWRfc2l6ZTsK Pj4+PiArICAgICAgICB9Cj4+PiBzaG91bGQgd2UgaGFuZGxlIHRoZSBlbHNlIHBhcnQgaGVyZT8g aS5lLiwgZXJyb3Igb3V0IGlmIHNocmlua2luZyBpcwo+Pj4gcmVxdWVzdGVkPwo+PiBUaGUgZWxz ZSBwYXJ0IGlzIGV4cGVjdGVkIHRvIHN1Y2NlZWQuIEkgY29uc2lkZXJlZCByZW5hbWluZyB0aGUg bWV0aG9kIHRvCj4+IHNvbWV0aGluZyBsaWtlIGdyb3dfaWZfc21hbGxlciBvciBlbnN1cmVfY2Fw YWNpdHkgdG8gbWFrZSB0aGlzIGNsZWFyLCBidXQKPj4gSSdtIG5vdCBxdWl0ZSBoYXBweSB3aXRo IHRob3NlIG5hbWVzIGVpdGhlci4KPiB3ZSBjb3VsZAo+IC0gY2FsbCBpdCByZXNpemUsIG1vdmUg dGhlIHNpemUgY2hlY2sgdG8gdGhlIChvbmx5KSBjYWxsIHNpdGUsIGFuZCBhbGxvdwo+ICAgIHNo cmlua2luZwo+IC0gY2FsbCBpdCByZXNlcnZlLCBtYWtlIGl0IG9ubHkgaGFuZGxlIGNhcGFjaXR5 LCBhbmQgbW92ZSB0aGUgc2l6ZSB1cGRhdGUgdG8gYQo+ICAgIChyZW5hbWVkKSBjaGVja19jaHVu a19hbGlnbm1lbnQKPiAtIGNvbWJpbmUgZ3Jvd190b19zaXplIGFuZCBjaGVja19jaHVua19hbGln bm1lbnQgYW5kIGZpbmQgYSBmaXR0aW5nIG5hbWUgZm9yCj4gICAgd2hhdCBpdCBkb2VzIDotUAo+ IC0ga2VlcCBpdCBhcyBpcywgYnV0IGZpbmQgYSBiZXR0ZXIgbmFtZQoKQW5vdGhlciBvcHRpb24g d291bGQgYmUgYSBzaW5nbGUgYWRkX2NodW5rKCZtdXQgc2VsZiwgb2Zmc2V0LCBzaXplLCBkaWdl c3QpCm1ldGhvZCB0aGF0IGRvZXMgZXZlcnl0aGluZywgc28gdGhlIGJhZGx5IG5hbWVkIHJlc2l6 ZSBtZXRob2QgY2FuCnNpbXBseSBzdGF5IHByaXZhdGUuCgo+Cj4KPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IHBicy1kZXZlbCBtYWlsaW5nIGxpc3QK PiBwYnMtZGV2ZWxAbGlzdHMucHJveG1veC5jb20KPiBodHRwczovL2xpc3RzLnByb3htb3guY29t L2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwYnMtZGV2ZWwgbWFpbGluZyBsaXN0CnBicy1k ZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3guY29tL2NnaS1iaW4v bWFpbG1hbi9saXN0aW5mby9wYnMtZGV2ZWwK