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 E3ED41FF16E for ; Mon, 3 Mar 2025 16:23:53 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 245F9ED9E; Mon, 3 Mar 2025 16:23:50 +0100 (CET) Message-ID: <55eb0814-8237-43d5-bd3e-b1d771bbfab9@proxmox.com> Date: Mon, 3 Mar 2025 16:23:14 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: Proxmox Backup Server development discussion , =?UTF-8?Q?Fabian_Gr=C3=BCnbichler?= References: <20250219164847.757184-1-c.ebner@proxmox.com> <20250219164847.757184-5-c.ebner@proxmox.com> <1741007036.5kgeh44pj2.astroid@yuna.none> Content-Language: en-US, de-DE From: Christian Ebner In-Reply-To: <1741007036.5kgeh44pj2.astroid@yuna.none> X-SPAM-LEVEL: Spam detection results: 0 AWL -0.371 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 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 proxmox-backup 4/9] fix #5982: garbage collection: check atime updates are honored 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" T24gMy8zLzI1IDE0OjUxLCBGYWJpYW4gR3LDvG5iaWNobGVyIHdyb3RlOgo+IE9uIEZlYnJ1YXJ5 IDE5LCAyMDI1IDU6NDggcG0sIENocmlzdGlhbiBFYm5lciB3cm90ZToKPj4gQ2hlY2sgaWYgdGhl IGZpbGVzeXN0ZW0gYmFja2luZyB0aGUgY2h1bmsgc3RvcmUgYWN0dWFsbHkgdXBkYXRlcyB0aGUK Pj4gYXRpbWUgdG8gYXZvaWQgcG90ZW50aWFsIGRhdGEgbG9zcyBpbiBwaGFzZSAyIG9mIGdhcmJh Z2UgY29sbGVjdGlvbgo+PiBpbiBjYXNlIHRoZSBhdGltZSB1cGRhdGUgaXMgbm90IGhvbm9yZWQu Cj4+Cj4+IFBlcmZvcm0gdGhlIGNoZWNrIGJlZm9yZSBwaGFzZSAxIG9mIGdhcmJhZ2UgY29sbGVj dGlvbiwgYXMgd2VsbCBhcwo+PiBvbiBkYXRhc3RvcmUgY3JlYXRpb24uIFRoZSBsYXR0ZXIgdG8g ZWFybHkgZGV0ZWN0IGFuZCBkaXNhbGxvdwo+PiBkYXRhc3RvcmUgY3JlYXRpb24gb24gZmlsZXN5 c3RlbSBjb25maWd1cmF0aW9ucyB3aGljaCBvdGhlcndpc2UgbW9zdAo+PiBsaWtlbHkgd291bGQg bGVhZCB0byBkYXRhIGxvc3Nlcy4KPj4KPj4gRW5hYmxlIHRoZSBhdGltZSB1cGRhdGUgY2hlY2sg YnkgZGVmYXVsdCwgYnV0IGFsbG93IHRvIG9wdC1vdXQgYnkKPj4gc2V0dGluZyBhIGRhdGFzdG9y ZSB0dW5pbmcgcGFyYW1ldGVyIGZsYWcgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5Lgo+PiBU aGlzIGlzIGhvbm9yZWQgYnkgYm90aCwgZ2FyYmFnZSBjb2xsZWN0aW9uIGFuZCBkYXRhc3RvcmUg Y3JlYXRpb24uCj4+Cj4+IFRoZSBjaGVjayB1c2VzIGEgNCBNaUIgZml4ZWQgc2l6ZWQsIHVuZW5j eXB0ZWQgYW5kIGNvbXByZXNzZWQgY2h1bmsKPj4gYXMgdGVzdCBtYXJrZXIsIGluc2VydGVkIGlm IG5vdCBwcmVzZW50LiBUaGlzIGFsbCB6ZXJvLWNodW5rIGlzIHZlcnkKPj4gbGlrZWx5IGFueXdh eXMgZm9yIHVuZW5jcnlwdGVkIGJhY2t1cCBjb250ZW50cyB3aXRoIGxhcmdlIGFsbC16ZXJvCj4+ IHJlZ2lvbnMgdXNpbmcgZml4ZWQgc2l6ZSBjaHVua2luZyAoZS5nLiBWTXMpLgo+Pgo+PiBUaGUg Y2hlY2sgc2V0cyB0aGUgY2h1bmsncyBhdGltZSB0d2ljZSwgb25jZSB0byBzZXQgaXQgdG8gMSBz ZWNvbmQKPj4gaW50byB0aGUgcGFzdCwgYW5kIG9uY2UgdG8gc2V0IGl0IHRvIG5vdy4gQnkgdGhp cyBvbmUgY2FuIGRldGVjdCBpZgo+PiB0aGUgYXRpbWUgaXMgc2V0IGF0IGFsbCBhbmQgaWYgaXQg YWxzbyBzZXQgaWYgdGhlIGZpbGVzeXN0ZW0gaXMgZS5nLgo+PiBtb3VudGVkIHZpYSByZWxhdGlt ZSwgd2hpY2ggaXMgaW50ZW5kZWQgdG8gZGVmZXJyIHRoZSBhdGltZSB1cGRhdGUuCj4gCj4gdGhh dCdzIG5vdCBob3cgcmVsYXRpbWUgd29ya3M/IHNlZSBiZWxvdy4uCj4gCj4+Cj4+IEZpeGVzOiBo dHRwczovL2J1Z3ppbGxhLnByb3htb3guY29tL3Nob3dfYnVnLmNnaT9pZD01OTgyCj4+IFNpZ25l ZC1vZmYtYnk6IENocmlzdGlhbiBFYm5lciA8Yy5lYm5lckBwcm94bW94LmNvbT4KPj4gLS0tCj4+ IGNoYW5nZXMgc2luY2UgdmVyc2lvbiAxOgo+PiAtIFVzZSBhbGwtemVybyBmaXhlZCBzaXplIGNo dW5rIGZvciBhdGltZSB1cGRhdGUgdGVzdAo+PiAtIFRlc3Qgb24gZGF0YXN0b3JlIGNyZWF0aW9u IGFuZCBiZWZvcmUgZ2FyYmFnZSBjb2xsZWN0aW9uIHBoYXNlIDEKPj4gLSBmYWlsIGRhdGFzdG9y ZSBjcmVhdGlvbiBhbmQgZ2FyYmFnZSBjb2xsZWN0aW9uIGpvYnMgaWYgY2hlY2sgZmFpbHMsCj4+ ICAgIGJ1dCBrZWVwIG9wdC1vdXQKPj4KPj4gICBwYnMtZGF0YXN0b3JlL3NyYy9jaHVua19zdG9y ZS5ycyB8IDgwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tCj4+ICAgcGJzLWRhdGFz dG9yZS9zcmMvZGF0YXN0b3JlLnJzICAgfCAxMCArKysrCj4+ICAgc3JjL2FwaTIvY29uZmlnL2Rh dGFzdG9yZS5ycyAgICAgfCAgMSArCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCA4NiBpbnNlcnRpb25z KCspLCA1IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMv Y2h1bmtfc3RvcmUucnMgYi9wYnMtZGF0YXN0b3JlL3NyYy9jaHVua19zdG9yZS5ycwo+PiBpbmRl eCA3YmRjYjAyOTcuLmJlNTdlM2M4NyAxMDA2NDQKPj4gLS0tIGEvcGJzLWRhdGFzdG9yZS9zcmMv Y2h1bmtfc3RvcmUucnMKPj4gKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvY2h1bmtfc3RvcmUucnMK Pj4gQEAgLTEsNiArMSw3IEBACj4+ICAgdXNlIHN0ZDo6b3M6OnVuaXg6OmlvOjpBc1Jhd0ZkOwo+ PiAgIHVzZSBzdGQ6OnBhdGg6OntQYXRoLCBQYXRoQnVmfTsKPj4gICB1c2Ugc3RkOjpzeW5jOjp7 QXJjLCBNdXRleH07Cj4+ICt1c2Ugc3RkOjp0aW1lOjp7RHVyYXRpb24sIFN5c3RlbVRpbWUsIFVO SVhfRVBPQ0h9Owo+PiAgIAo+PiAgIHVzZSBhbnlob3c6OntiYWlsLCBmb3JtYXRfZXJyLCBFcnJv cn07Cj4+ICAgdXNlIHRyYWNpbmc6OmluZm87Cj4+IEBAIC0xMyw2ICsxNCw3IEBAIHVzZSBwcm94 bW94X3N5czo6cHJvY2Vzc19sb2NrZXI6OnsKPj4gICB9Owo+PiAgIHVzZSBwcm94bW94X3dvcmtl cl90YXNrOjpXb3JrZXJUYXNrQ29udGV4dDsKPj4gICAKPj4gK3VzZSBjcmF0ZTo6ZGF0YV9ibG9i OjpEYXRhQ2h1bmtCdWlsZGVyOwo+PiAgIHVzZSBjcmF0ZTo6ZmlsZV9mb3JtYXRzOjp7Cj4+ICAg ICAgIENPTVBSRVNTRURfQkxPQl9NQUdJQ18xXzAsIEVOQ1JZUFRFRF9CTE9CX01BR0lDXzFfMCwg VU5DT01QUkVTU0VEX0JMT0JfTUFHSUNfMV8wLAo+PiAgIH07Cj4+IEBAIC05Niw2ICs5OCw3IEBA IGltcGwgQ2h1bmtTdG9yZSB7Cj4+ICAgICAgICAgICB1aWQ6IG5peDo6dW5pc3RkOjpVaWQsCj4+ ICAgICAgICAgICBnaWQ6IG5peDo6dW5pc3RkOjpHaWQsCj4+ICAgICAgICAgICBzeW5jX2xldmVs OiBEYXRhc3RvcmVGU3luY0xldmVsLAo+PiArICAgICAgICBhdGltZV91cGRhdGVfY2hlY2s6IGJv b2wsCj4+ICAgICAgICkgLT4gUmVzdWx0PFNlbGYsIEVycm9yPgo+PiAgICAgICB3aGVyZQo+PiAg ICAgICAgICAgUDogSW50bzxQYXRoQnVmPiwKPj4gQEAgLTE1MCw3ICsxNTMsMTYgQEAgaW1wbCBD aHVua1N0b3JlIHsKPj4gICAgICAgICAgICAgICB9Cj4+ICAgICAgICAgICB9Cj4+ICAgCj4+IC0g ICAgICAgIFNlbGY6Om9wZW4obmFtZSwgYmFzZSwgc3luY19sZXZlbCkKPj4gKyAgICAgICAgbGV0 IGNodW5rX3N0b3JlID0gU2VsZjo6b3BlbihuYW1lLCBiYXNlLCBzeW5jX2xldmVsKT87Cj4+ICsg ICAgICAgIGlmIGF0aW1lX3VwZGF0ZV9jaGVjayB7Cj4+ICsgICAgICAgICAgICBjaHVua19zdG9y ZQo+PiArICAgICAgICAgICAgICAgIC5jaGVja19mc19hdGltZV91cGRhdGUoKQo+PiArICAgICAg ICAgICAgICAgIC5tYXAofCgpfCBpbmZvISgiYXRpbWUgdXBkYXRlIGNoZWNrIHN1Y2Nlc3NmdWwu IikpPzsKPj4gKyAgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAgIGluZm8hKCJhdGltZSB1 cGRhdGUgY2hlY2sgc2tpcHBlZC4iKTsKPj4gKyAgICAgICAgfQo+PiArCj4+ICsgICAgICAgIE9r KGNodW5rX3N0b3JlKQo+PiAgICAgICB9Cj4+ICAgCj4+ICAgICAgIGZuIGxvY2tmaWxlX3BhdGg8 UDogSW50bzxQYXRoQnVmPj4oYmFzZTogUCkgLT4gUGF0aEJ1ZiB7Cj4+IEBAIC00NDUsNiArNDU3 LDUxIEBAIGltcGwgQ2h1bmtTdG9yZSB7Cj4+ICAgICAgICAgICBPaygoKSkKPj4gICAgICAgfQo+ PiAgIAo+PiArICAgIC8vLyBDaGVjayBpZiBhdGltZSB1cGRhdGVzIGFyZSBob25vcmVkIGJ5IHRo ZSBmaWxlc3lzdGVtIGJhY2tpbmcgdGhlIGNodW5rIHN0b3JlLgo+PiArICAgIC8vLwo+PiArICAg IC8vLyBTZXRzIHRoZSBhdGltZSB0d2ljZSwgb25jZSBpbnRvIHRoZSBwYXN0IGJ5IG9uZSBzZWNv bmQsIGNoZWNraW5nIHRoYXQgdGhpcyB3YXMgaG9ub3JlZCBhbmQKPj4gKyAgICAvLy8gdGhlbiB0 byBub3cgYWdhaW4sIGFzIG90aGVyd2lzZSBpdCBpcyBub3QgZ3VhcmFudGVlZCB0byBhbHNvIGNv dmVyIHRpbWUgcmFuZ2VzIGJ5IGByZWxhdGltZWAuCj4+ICsgICAgLy8vIFVzZXMgYSA0IE1pQiBm aXhlZCBzaXplLCBjb21wcmVzc2VkIGJ1dCB1bmVuY3J5cHRlZCBjaHVuayB0byB0ZXN0LiBUaGUg Y2h1bmsgaXMgaW5zZXJ0ZWQgaW4KPj4gKyAgICAvLy8gdGhlIGNodW5rIHN0b3JlIGlmIG5vdCB5 ZXQgcHJlc2VudC4KPj4gKyAgICBwdWIgZm4gY2hlY2tfZnNfYXRpbWVfdXBkYXRlKCZzZWxmKSAt PiBSZXN1bHQ8KCksIEVycm9yPiB7Cj4+ICsgICAgICAgIGxldCAoemVyb19jaHVuaywgZGlnZXN0 KSA9IERhdGFDaHVua0J1aWxkZXI6OmJ1aWxkX3plcm9fY2h1bmsoTm9uZSwgNDA5NiAqIDEwMjQs IHRydWUpPzsKPj4gKyAgICAgICAgc2VsZi5pbnNlcnRfY2h1bmsoJnplcm9fY2h1bmssICZkaWdl c3QpPzsKPj4gKwo+PiArICAgICAgICBsZXQgcGFzdCA9IFN5c3RlbVRpbWU6Om5vdygpLmR1cmF0 aW9uX3NpbmNlKFVOSVhfRVBPQ0gpPyAtIER1cmF0aW9uOjpmcm9tX3NlY3MoMSk7Cj4+ICsgICAg ICAgIGxldCB0aW1lczogW2xpYmM6OnRpbWVzcGVjOyAyXSA9IFsKPj4gKyAgICAgICAgICAgIGxp YmM6OnRpbWVzcGVjIHsKPj4gKyAgICAgICAgICAgICAgICB0dl9zZWM6IHBhc3QuYXNfc2Vjcygp LnRyeV9pbnRvKCk/LAo+PiArICAgICAgICAgICAgICAgIHR2X25zZWM6IHBhc3Quc3Vic2VjX25h bm9zKCkuaW50bygpLAo+PiArICAgICAgICAgICAgfSwKPj4gKyAgICAgICAgICAgIGxpYmM6OnRp bWVzcGVjIHsKPj4gKyAgICAgICAgICAgICAgICB0dl9zZWM6IDAsCj4+ICsgICAgICAgICAgICAg ICAgdHZfbnNlYzogVVRJTUVfT01JVCwKPj4gKyAgICAgICAgICAgIH0sCj4+ICsgICAgICAgIF07 Cj4gCj4gdGhpcyBzZXRzICphdGltZSogb25lIHNlY29uZCBpbiB0aGUgcGFzdCwgd2hpbGUgbm90 IHRvdWNoaW5nICptdGltZSouCj4gdGhpcyBpcyBub3Qgc29tZXRoaW5nIHdlIGV2ZXIgbmVlZD8g aWYgdGhpcyBmYWlscywgc29tZXRoaW5nIGlzIHdlaXJkLAo+IGJ1dCBpdCB3b3VsZG4ndCBtZWFu IHRoYXQgYXRpbWUgaGFuZGxpbmcgd2FzIGJyb2tlbiBmb3Igb3VyIHVzZSBjYXNlLi4KPiAKPj4g Kwo+PiArICAgICAgICB1c2Ugbml4OjpOaXhQYXRoOwo+PiArICAgICAgICBsZXQgKHBhdGgsIF9k aWdlc3QpID0gc2VsZi5jaHVua19wYXRoKCZkaWdlc3QpOwo+PiArICAgICAgICBwYXRoLndpdGhf bml4X3BhdGgofGNzdHJ8IHVuc2FmZSB7Cj4+ICsgICAgICAgICAgICBsZXQgdG1wID0gbGliYzo6 dXRpbWVuc2F0KC0xLCBjc3RyLmFzX3B0cigpLCAmdGltZXNbMF0sIGxpYmM6OkFUX1NZTUxJTktf Tk9GT0xMT1cpOwo+PiArICAgICAgICAgICAgbml4OjplcnJubzo6RXJybm86OnJlc3VsdCh0bXAp Cj4+ICsgICAgICAgIH0pPz87Cj4+ICsKPj4gKyAgICAgICAgbGV0IG1ldGFkYXRhX3Bhc3QgPSBz dGQ6OmZzOjptZXRhZGF0YSgmcGF0aCkubWFwX2VycihFcnJvcjo6ZnJvbSk/Owo+PiArICAgICAg ICBsZXQgYXRpbWVfcGFzdCA9IG1ldGFkYXRhX3Bhc3QuYWNjZXNzZWQoKT87Cj4+ICsgICAgICAg IGlmIHBhc3QgIT0gYXRpbWVfcGFzdC5kdXJhdGlvbl9zaW5jZShVTklYX0VQT0NIKT8gewo+PiAr ICAgICAgICAgICAgYmFpbCEoInNldHRpbmcgYXRpbWUgdG8gdGhlIHBhc3QgZmFpbGVkLCBpcyBh dGltZSBzdXBwb3J0IGVuYWJsZWQgb24gZGF0YXN0b3JlIGJhY2tpbmcgZmlsZXN5c3RlbT8iKTsK Pj4gKyAgICAgICAgfQo+PiArCj4+ICsgICAgICAgIHNlbGYuY29uZF90b3VjaF9jaHVuaygmZGln ZXN0LCB0cnVlKT87Cj4+ICsKPj4gKyAgICAgICAgbGV0IG1ldGFkYXRhX25vdyA9IHN0ZDo6ZnM6 Om1ldGFkYXRhKCZwYXRoKS5tYXBfZXJyKEVycm9yOjpmcm9tKT87Cj4+ICsgICAgICAgIGxldCBh dGltZV9ub3cgPSBtZXRhZGF0YV9ub3cuYWNjZXNzZWQoKT87Cj4+ICsgICAgICAgIGlmIGF0aW1l X3Bhc3QgPj0gYXRpbWVfbm93IHsKPj4gKyAgICAgICAgICAgIGJhaWwhKCJhdGltZSB1cGRhdGUg Y2hlY2sgZmFpbGVkLCBpcyBhdGltZSBzdXBwb3J0IGVuYWJsZWQgb24gZGF0YXN0b3JlIGJhY2tp bmcgZmlsZXN5c3RlbT8iKTsKPj4gKyAgICAgICAgfQo+IAo+IGlmIHNvbWV0aGluZyBpbXBsZW1l bnRzIGV4cGxpY2l0IHRpbWVzdGFtcCB1cGRhdGVzIHRvIHdvcmsgbGlrZSByZWxhdGltZQo+IGRv ZXMgZm9yIHJlYWQtdHJpZ2dlcmVkIHVwZGF0ZXMsIHRoaXMgd291bGQgc3RpbGwgcG90ZW50aWFs bHkgZmFpbCAtCj4gcmVsYXRpbWUgY292ZXJzIGNoZWNraW5nICptdGltZSogKHdoaWNoIHdlIGhh dmVuJ3QgdXBkYXRlZCBhYm92ZSEpIGZpcnN0Cj4gdG8gc2VlIGlmICphdGltZSogc2hvdWxkIGJl IHVwZGF0ZWQgd2hlbiBkb2luZyByZWFkcy4gaXQncyBiYXNpY2FsbHkgYQo+IHBlcmZvcm1hbmNl IG9wdGltaXphdGlvbiAoc2tpcCBtb3N0IGF0aW1lIHVwZGF0ZXMgZm9yIHJlYWQtaGVhdnkgd29y awo+IGxvYWRzKSB3aXRob3V0IGJyZWFraW5nIGEgdmVyeSBzcGVjaWZpYyB1c2UgY2FzZSAodGhh dCBvZiBtdXR0IGFidXNpbmcKPiBhdGltZSB0byBrbm93IHdoZW4gaXQgbGFzdCByZWFkIGEgbG9j YWwgbWFpbGJveFswXSwgd2hpY2ggd291bGQgYnJlYWsgaWYKPiBhdGltZSB3ZXJlIG5ldmVyIHVw ZGF0ZWQgb24gcmVhZHMpLgoKVGhhbmtzIGEgbG90IGZvciB0aGUgcG9pbnRlciEgTmVlZCB0byBk aWcgYSBiaXQgZGVlcGVyIGludG8gaG93IHJlbGF0aW1lIAp3b3JrcywgYXMgbXkgdW5kZXJzdGFu ZGluZyBvZiBpdCBpcyBjbGVhcmx5IGZsYXdlZC4KCj4gSSB0aGluayB3aGF0IHdlIGFjdHVhbGx5 IHdhbnQgdG8gZG8gYXQgR0MgdGltZSBpczoKPiAKPiAocG90ZW50aWFsbHkpIGluc2VydCB0aGUg Y2h1bmsKPiBzdGF0IHRoZSBjaHVuawo+IHRvdWNoIHRoZSBjaHVuayAocmVndWxhcmx5KQo+IHN0 YXQgdGhlIGNodW5rIGFnYWluCj4gY29tcGFyZSB0aGUgdGltZXN0YW1wcwoKVGhhdCB3YXMgbXkg aW5pdGlhbCBhcHByb2FjaCwgd2hpY2ggZmFpbGVkIGJlY2F1c2Ugb2YgdGhlIHRpbWVzdGFtcCAK Z3JhbnVsYXJpdHkgYW5kIHNpbmNlIEkgZGlkbid0IHdhbnQgdG8gd2FpdCBpbi1iZXR3ZWVuIHRo ZSBzdGF0IGFuZCAKdG91Y2ggdGhlIGFwcHJvYWNoIHdpdGggc2V0dGluZyB0aGUgYXRpbWUgaW50 byB0aGUgcGFzdCBmaXJzdCBjYW1lIHRvIAptaW5kLCB0aGVyZWZvcmUgbXkgaW1wbGVtZW50YXRp b24uIEJ1dCBJIHNlZSB0aGF0IHRoaXMgZG9lcyBub3Qgd29yayAKYmFzZWQgb24geW91ciBmZWVk YmFjay4KCj4gd2Ugbm93IGhhdmUgdGhyZWUgY2FzZXM6Cj4gCj4gQSkgdGhlIG9sZCBhdGltZSBp cyBiZWZvcmUgdGhlIG5ldyBhdGltZSA9PiB0aGUgc3RvcmFnZSBkb2Vzbid0IGRpc2NhcmQKPiAq YWxsKiBhdGltZSB1cGRhdGVzIGFuZCB3ZSBjYW4gcHJvY2VlZAo+IEIpIHRoZSBvbGQgYXRpbWUg YW5kIHRoZSBuZXcgYXRpbWUgYXJlIGlkZW50aWNhbCBhbmQgYXRpbWUgaXMgKmJlZm9yZSoKPiBt dGltZSBhbmQgY3RpbWUgPT4gYXRpbWUgc2hvdWxkIGhhdmUgYmVlbiB1cGRhdGVkIGV2ZW4gdW5k ZXIKPiAicmVsYXRpbWUtbGlrZSIgc2VtYW50aWNzLCB2ZXJ5IGxpa2VseSB0aGlzIHN0b3JhZ2Ug aXMgZGlzY2FyZGluZyBhbGwKPiBhdGltZSB1cGRhdGVzLCB3ZSBzaG91bGQgYWJvcnQgd2l0aCBh biBlcnJvcgo+IEMpIHRoZSBvbGQgYXRpbWUgYW5kIHRoZSBuZXcgYXRpbWUgYXJlIGlkZW50aWNh bCwgYnV0IGF0aW1lIGlzICphZnRlcioKPiBjdGltZS9tdGltZSA9PiB3ZSBuZWVkIHRvIGNoZWNr IHdoZXRoZXIgd2UganVzdCByYW4gaW50byByZWxhdGltZS1saWtlCj4gYmVoYXZpb3VyCj4gCj4g QyBtZWFucyB3ZSBlaXRoZXIgYWJvcnQgYXMgd2VsbCAoaWYgd2UgZG9uJ3Qgd2FudCB0byBzdXBw b3J0IHN1Y2gKPiBzZXR1cHMpLCBvciB3ZSB0cnkgdG8gZGV0ZWN0IGlmIHNldHRpbmcgYm90aCBt dGltZSBhbmQgYXRpbWUgd29ya3MsIGFuZAo+IGZvcmNlIHRoZSBHQyBpbnRvIGRvaW5nIHRoYXQK PiAKPiB3ZSBtaWdodCB3YW50IHRvIGFkZCBhICJ3YWl0IGEgc2Vjb25kIiBiZXR3ZWVuIHRoZSBm aXJzdCBzdGF0IGFuZCB0aGUKPiB0b3VjaGluZyB0byBhY2NvdW50IGZvciBmaWxlc3lzdGVtcyB3 aXRoIG1vcmUgZ3JhbnVsYXIgdGltZXN0YW1wcwo+IChpbnNlcnRpbmcgdG91Y2hlcywgYW5kIG90 aGVyIHRhc2tzIG1pZ2h0IHRvdWNoIGF0ICJ0aGUgc2FtZSB0aW1lIiBhcwo+IHdlbGwgYnkgYWNj aWRlbnQpLCBzaW5jZSB0aGUgcmVxdWVzdGVkIHRpbWVzdGFtcHMgbWlnaHQgYmUgbW9kaWZpZWQg dG8KPiBiZWNvbWUgInRoZSBncmVhdGVzdCB2YWx1ZSBzdXBwb3J0ZWQgYnkgdGhlIGZpbGVzeXN0 ZW0gdGhhdCBpcyBub3QKPiBncmVhdGVyIHRoYW4gdGhlIHNwZWNpZmllZCB0aW1lIiAodXRpbWVu c2F0KDIpKSwgYW5kIG9uZSBzZWNvbmQgZG9lc24ndAo+IHJlYWxseSBodXJ0IGlzIGluIHRoZSBz Y29wZSBvZiBhIEdDLi4KPiAKPiBub3RlIHRoYXQgdGhlIDI0aCBncmFjZSBwZXJpb2QgaXMgdG90 YWxseSBpbmRlcGVuZGVudCBvZiB0aGlzIC0gaXQgY29tZXMKPiBmcm9tIGxhenl0aW1lIGFuZCBy ZWxhdGVzIHRvIGhvdyBvZnRlbiBjaGFuZ2VzIG9mIHRpbWVzdGFtcHMgYXJlCj4gKnBlcnNpc3Rl ZCBvbiBkaXNrKi4gdGhhdCBzaG91bGRuJ3QgYWZmZWN0IHVzIGZvciBsb2NhbCBzdG9yYWdlcyAo c2luY2UKPiB3ZSB0YWxrIHRvIHRoZSBrZXJuZWwgYW5kIGFsd2F5cyBnZXQgdGhlIHVwZGF0ZWQg dmlldyBhbnl3YXksIG5vIG1hdHRlcgo+IGlmIGl0IGlzIGluLW1lbW9yeSBvciBvbi1kaXNrLiBp ZiB0aGUgUEJTIHN5c3RlbSBjcmFzaGVzIEdDIGlzIGdvbmUgYXMKPiB3ZWxsIGFuZCBuZWVkcyB0 byBzdGFydCBvdmVyLCBubyByaXNrIG9mIGluY29uc2lzdGVuY3kpLgo+IAo+IHdlIG1pZ2h0IGhh dmUgYSBwcm9ibGVtIGlmIHRoZSBzdG9yYWdlIHVzZXMgbGF6eXRpbWUgaW50ZXJuYWxseSBhbmQK PiBsaXZlcyBzb21ld2hlcmUgZWxzZQo+IC0gR0Mgc3RhcnRzIHBoYXNlMQo+IC0gdXBkYXRlcyBh IGZldyBhdGltZXMKPiAtIHN0b3JhZ2UgY3Jhc2hlcyBhbmQgbG9zZXMgc29tZSBvZiB0aGUgdXBk YXRlcyB3aGlsZSBJL08gdG8gaXQgYmxvY2tzCj4gLSBzdG9yYWdlIGNvbWVzIGJhY2sgdXAKPiAt IEdDIGNvbnRpbnVlcyBub3Qga25vd2luZyB0aGF0IHNvbWUgb2YgdGhlIGF0aW1lIHVwZGF0ZXMg aGF2ZSBiZWVuIGxvc3QKPiAgICBpbiB0aGUgZXRoZXIKPiAtIEdDIGVudGVycyBwaGFzZTIKPiAt IGNodW5rIHRpbWVzdGFtcCBtYWtlcyBpdCBlbGlnaWJsZSBmb3IgZGVsZXRpb24sIGV2ZW4gdGhv dWdoIGl0IHdhcwo+ICAgIHRvdWNoZWQgaW4gcGhhc2UxCj4gLSBkYXRhIGxvc3MKPiAKPiBJIGRv bid0IHRoaW5rIHdlIGNhbiByZWFsbHkgcHJldmVudCB0aGlzIG90aGVyIHRoYW4gYnkgZGl0Y2hp bmcgdGhlCj4gd2hvbGUgYXRpbWUgbWVjaGFuaXNtIGFuZCBpbnN0ZWFkIGtlZXAgYSBsaXN0IG9m IHdyaXR0ZW4gY2h1bmtzIGluIGVhY2gKPiBiYWNrdXAgd3JpdGVyLCBhbmQgZ2VuZXJhdGUgc3Vj aCBhIGxpc3QgaW4gcGhhc2UxLCBtZXJnaW5nIHRoZW0gYWxsIGFuZAo+IHVzaW5nIHRoYXQgZm9y IHBoYXNlMiAod2hpY2ggaXMgcmVhbGx5IGV4cGVuc2l2ZSBhcyBpdCBzY2FsZXMgd2l0aCB0aGUK PiBudW1iZXIgb2YgdG91Y2hlZCBjaHVua3MgYW5kIHdvdWxkIHJlcXVpcmUgc3luY2luZyB1cCB3 cml0ZXJzIGFuZCBHQykuCj4gdGhhbmtmdWxseSBJJ2QgZXhwZWN0IG1vc3Qgc3VjaCBmYWlsdXJl IHNjZW5hcmlvcyB0byBhY3R1YWxseSBhYm9ydCB0aGUKPiBHQyBhbnl3YXkgZm9yIEkvTyBlcnJv ciByZWFzb25zLi4KCk1heWJlIG9uZSBjb3VsZCB1c2UgYHN0YXRtb3VudGAgdG8gZGV0ZXJtaW5l IGlmIHRoZSBgU0JfTEFaWVRJTUVgIGZsYWcgCmluIGBzbWJ1Zi5zYl9mbGFnc2AgaXMgc2V0PyBC dXQgSSBhc3N1bWUgdGhhdCB5b3UgbWVhbnQgdGhlIGlzc3VlIGJlaW5nIAp0aGlzIG5vdCBleHBv c2VkIGJ5IHRoZSBmaWxlc3lzdGVtLi4uCgo+IGF0IGRhdGFzdG9yZSBjcmVhdGlvbiB3ZSBjb3Vs ZCBkbyBtb3JlIGluLWRlcHRoIGNoZWNrcyAoaW5jbHVkaW5nCj4gImZha2luZyIgcGFzdCB0aW1l c3RhbXBzIGFuZCBzZWVpbmcgaWYgdXBkYXRlcyBhcmUgaG9ub3JlZCBmb3IgdGhvc2UgaWYKPiB0 aGV5IGFyZSBub3QgaG9ub3JlZCB3aGVuIGRvaW5nIHRoZSBzaW1wbGUgdGVzdHMpIC0gaWYgd2Ug dGhpbmsgd2UgZ2Fpbgo+IHNvbWV0aGluZyBmcm9tIHRoYXQ/Cj4gCj4gMDogaHR0cDovL3d3dy5t dXR0Lm9yZy9kb2MvbWFudWFsLyNuZXctbWFpbC1mb3JtYXRzCj4gCj4+ICsgICAgICAgIE9rKCgp KQo+PiArICAgIH0KPj4gKwo+PiAgICAgICBwdWIgZm4gaW5zZXJ0X2NodW5rKCZzZWxmLCBjaHVu azogJkRhdGFCbG9iLCBkaWdlc3Q6ICZbdTg7IDMyXSkgLT4gUmVzdWx0PChib29sLCB1NjQpLCBF cnJvcj4gewo+PiAgICAgICAgICAgLy8gdW53cmFwOiBvbmx5IGBOb25lYCBpbiB1bml0IHRlc3Rz Cj4+ICAgICAgICAgICBhc3NlcnQhKHNlbGYubG9ja2VyLmlzX3NvbWUoKSk7Cj4+IEBAIC02MzEs OCArNjg4LDE1IEBAIGZuIHRlc3RfY2h1bmtfc3RvcmUxKCkgewo+PiAgICAgICBsZXQgdXNlciA9 IG5peDo6dW5pc3RkOjpVc2VyOjpmcm9tX3VpZChuaXg6OnVuaXN0ZDo6VWlkOjpjdXJyZW50KCkp Cj4+ICAgICAgICAgICAudW53cmFwKCkKPj4gICAgICAgICAgIC51bndyYXAoKTsKPj4gLSAgICBs ZXQgY2h1bmtfc3RvcmUgPQo+PiAtICAgICAgICBDaHVua1N0b3JlOjpjcmVhdGUoInRlc3QiLCAm cGF0aCwgdXNlci51aWQsIHVzZXIuZ2lkLCBEYXRhc3RvcmVGU3luY0xldmVsOjpOb25lKS51bndy YXAoKTsKPj4gKyAgICBsZXQgY2h1bmtfc3RvcmUgPSBDaHVua1N0b3JlOjpjcmVhdGUoCj4+ICsg ICAgICAgICJ0ZXN0IiwKPj4gKyAgICAgICAgJnBhdGgsCj4+ICsgICAgICAgIHVzZXIudWlkLAo+ PiArICAgICAgICB1c2VyLmdpZCwKPj4gKyAgICAgICAgRGF0YXN0b3JlRlN5bmNMZXZlbDo6Tm9u ZSwKPj4gKyAgICAgICAgdHJ1ZSwKPj4gKyAgICApCj4+ICsgICAgLnVud3JhcCgpOwo+PiAgIAo+ PiAgICAgICBsZXQgKGNodW5rLCBkaWdlc3QpID0gY3JhdGU6OmRhdGFfYmxvYjo6RGF0YUNodW5r QnVpbGRlcjo6bmV3KCZbMHU4LCAxdThdKQo+PiAgICAgICAgICAgLmJ1aWxkKCkKPj4gQEAgLTY0 NCw4ICs3MDgsMTQgQEAgZm4gdGVzdF9jaHVua19zdG9yZTEoKSB7Cj4+ICAgICAgIGxldCAoZXhp c3RzLCBfKSA9IGNodW5rX3N0b3JlLmluc2VydF9jaHVuaygmY2h1bmssICZkaWdlc3QpLnVud3Jh cCgpOwo+PiAgICAgICBhc3NlcnQhKGV4aXN0cyk7Cj4+ICAgCj4+IC0gICAgbGV0IGNodW5rX3N0 b3JlID0KPj4gLSAgICAgICAgQ2h1bmtTdG9yZTo6Y3JlYXRlKCJ0ZXN0IiwgJnBhdGgsIHVzZXIu dWlkLCB1c2VyLmdpZCwgRGF0YXN0b3JlRlN5bmNMZXZlbDo6Tm9uZSk7Cj4+ICsgICAgbGV0IGNo dW5rX3N0b3JlID0gQ2h1bmtTdG9yZTo6Y3JlYXRlKAo+PiArICAgICAgICAidGVzdCIsCj4+ICsg ICAgICAgICZwYXRoLAo+PiArICAgICAgICB1c2VyLnVpZCwKPj4gKyAgICAgICAgdXNlci5naWQs Cj4+ICsgICAgICAgIERhdGFzdG9yZUZTeW5jTGV2ZWw6Ok5vbmUsCj4+ICsgICAgICAgIHRydWUs Cj4+ICsgICAgKTsKPj4gICAgICAgYXNzZXJ0IShjaHVua19zdG9yZS5pc19lcnIoKSk7Cj4+ICAg Cj4+ICAgICAgIGlmIGxldCBFcnIoX2UpID0gc3RkOjpmczo6cmVtb3ZlX2Rpcl9hbGwoIi50ZXN0 ZGlyIikgeyAvKiBpZ25vcmUgKi8gfQo+PiBkaWZmIC0tZ2l0IGEvcGJzLWRhdGFzdG9yZS9zcmMv ZGF0YXN0b3JlLnJzIGIvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCj4+IGluZGV4IDc1 YzBjMTZhYi4uOWIwMTc5MGNjIDEwMDY0NAo+PiAtLS0gYS9wYnMtZGF0YXN0b3JlL3NyYy9kYXRh c3RvcmUucnMKPj4gKysrIGIvcGJzLWRhdGFzdG9yZS9zcmMvZGF0YXN0b3JlLnJzCj4+IEBAIC0x MTcwLDYgKzExNzAsMTYgQEAgaW1wbCBEYXRhU3RvcmUgewo+PiAgICAgICAgICAgICAgICAgICB1 cGlkOiBTb21lKHVwaWQudG9fc3RyaW5nKCkpLAo+PiAgICAgICAgICAgICAgICAgICAuLkRlZmF1 bHQ6OmRlZmF1bHQoKQo+PiAgICAgICAgICAgICAgIH07Cj4+ICsgICAgICAgICAgICBsZXQgdHVu aW5nOiBEYXRhc3RvcmVUdW5pbmcgPSBzZXJkZV9qc29uOjpmcm9tX3ZhbHVlKAo+PiArICAgICAg ICAgICAgICAgIERhdGFzdG9yZVR1bmluZzo6QVBJX1NDSEVNQQo+PiArICAgICAgICAgICAgICAg ICAgICAucGFyc2VfcHJvcGVydHlfc3RyaW5nKGdjX3N0b3JlX2NvbmZpZy50dW5pbmcuYXNfZGVy ZWYoKS51bndyYXBfb3IoIiIpKT8sCj4+ICsgICAgICAgICAgICApPzsKPj4gKyAgICAgICAgICAg IGlmIHR1bmluZy5nY19hdGltZV9jaGVjay51bndyYXBfb3IodHJ1ZSkgewo+PiArICAgICAgICAg ICAgICAgIHNlbGYuaW5uZXIuY2h1bmtfc3RvcmUuY2hlY2tfZnNfYXRpbWVfdXBkYXRlKCk/Owo+ PiArICAgICAgICAgICAgICAgIGluZm8hKCJGaWxlc3lzdGVtIGF0aW1lIHVwZGF0ZSBjaGVjayBz dWNjZXNzZnVsLiIpOwo+PiArICAgICAgICAgICAgfSBlbHNlIHsKPj4gKyAgICAgICAgICAgICAg ICBpbmZvISgiRmlsZXN5c3RlbSBhdGltZSB1cGRhdGUgY2hlY2sgZGlzYWJsZWQgYnkgZGF0YXN0 b3JlIHR1bmluZyBvcHRpb25zLiIpOwo+PiArICAgICAgICAgICAgfQo+PiAgIAo+PiAgICAgICAg ICAgICAgIGluZm8hKCJTdGFydCBHQyBwaGFzZTEgKG1hcmsgdXNlZCBjaHVua3MpIik7Cj4+ICAg Cj4+IGRpZmYgLS1naXQgYS9zcmMvYXBpMi9jb25maWcvZGF0YXN0b3JlLnJzIGIvc3JjL2FwaTIv Y29uZmlnL2RhdGFzdG9yZS5ycwo+PiBpbmRleCBmZTMyNjBmNmQuLjFjZDM4ZjJkYiAxMDA2NDQK Pj4gLS0tIGEvc3JjL2FwaTIvY29uZmlnL2RhdGFzdG9yZS5ycwo+PiArKysgYi9zcmMvYXBpMi9j b25maWcvZGF0YXN0b3JlLnJzCj4+IEBAIC0xMTksNiArMTE5LDcgQEAgcHViKGNyYXRlKSBmbiBk b19jcmVhdGVfZGF0YXN0b3JlKAo+PiAgICAgICAgICAgICAgICAgICBiYWNrdXBfdXNlci51aWQs Cj4+ICAgICAgICAgICAgICAgICAgIGJhY2t1cF91c2VyLmdpZCwKPj4gICAgICAgICAgICAgICAg ICAgdHVuaW5nLnN5bmNfbGV2ZWwudW53cmFwX29yX2RlZmF1bHQoKSwKPj4gKyAgICAgICAgICAg ICAgICB0dW5pbmcuZ2NfYXRpbWVfY2hlY2sudW53cmFwX29yKHRydWUpLAo+PiAgICAgICAgICAg ICAgICkKPj4gICAgICAgICAgICAgICAubWFwKHxffCAoKSkKPj4gICAgICAgICAgIH0gZWxzZSB7 Cj4+IC0tIAo+PiAyLjM5LjUKPj4KPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KPj4gcGJzLWRldmVsIG1haWxpbmcgbGlzdAo+PiBwYnMtZGV2 ZWxAbGlzdHMucHJveG1veC5jb20KPj4gaHR0cHM6Ly9saXN0cy5wcm94bW94LmNvbS9jZ2ktYmlu L21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCj4+Cj4+Cj4+Cj4gCj4gCj4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBwYnMtZGV2ZWwgbWFpbGluZyBs aXN0Cj4gcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCj4gaHR0cHM6Ly9saXN0cy5wcm94bW94 LmNvbS9jZ2ktYmluL21haWxtYW4vbGlzdGluZm8vcGJzLWRldmVsCj4gCj4gCgoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5n IGxpc3QKcGJzLWRldmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5j b20vY2dpLWJpbi9tYWlsbWFuL2xpc3RpbmZvL3Bicy1kZXZlbAo=