From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id E8EC21FF12E for ; Sun, 02 Aug 2026 05:21:08 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id D3CF120833; Sun, 02 Aug 2026 05:21:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; t=1785640851; cv=none; d=google.com; s=arc-20260327; b=iv0q4fScj7lfyeo5aAY2kQiE3Sesh+bDjd0aXlzq6G+gLxzsP3zxH0+d1EjzLtc28t asketi4obUvti0oyHeD82n9h1M3LLpoX0eDq/k4vivq2zDzfNZSFbg3JAqUcQObnN1U4 kwLP+MS7R6i9cxmoShTEQqG/OBzZFkZ3BQgGUN+w02IuCWbeDLribLEFUwYKDRDqRWkj nvx9gScQLTC+GGDS/rgQSsv+hXntHyM1YdkBEKg3mlrPbJf6gvo2VbEo1a5BG2aSA4jQ YDaA31TtqKBSonEkKirr4N7tqXuziaX0/Qptjcf+C2k61pjC1rmRZOeDBA2yDS3GJzTt rztw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=Iqxa2KP89AfHfxdOKoj/Q1g5BGQz8td67eIU+NwOSD4=; fh=WZNwi5xyp6XHfHQ+NTY/et6Q7A9rOMKicxiReYKp0PA=; b=iB0Xwg4IFfyqO9zLkxOMHhaapgoRxKlHQPU5Q+ENP9gf5su3XfdRrDdZk/Mm46fFeL FtzE/gHHEMttTaff/TUoxo1/3OZQZA8jvgYFetJAx10C3XwamAs6ei26NNvRxrYciUxj dhe9CxQq20PC4SlmaCvM+Dd7JHxXo1r7nGiW7Jr45qXYbcE4vNEfbXqRPCMZk9YzDaKQ 7KoS5qhuWbb6AzPwjVRmodRNF4uIqQxmNGNTFz0FLpYbp8AmuOoLqo11MiPibeqhAXal ql3EakxBbmBpqZH+SrGTS3e8UzEpqYDqoj51nT9NvJNrOEdf/7VKfC+7uZ7QsgZqJ4T0 uBnw==; darn=lists.proxmox.com ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=neatech-ar.20251104.gappssmtp.com; s=20251104; t=1785640851; x=1786245651; darn=lists.proxmox.com; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=Iqxa2KP89AfHfxdOKoj/Q1g5BGQz8td67eIU+NwOSD4=; b=rN/U0HgNofeDHPXR1kzCEv8ULqHUtu1/qt/KhpfQf3+KzAtC7llc+2yYMCkY9D6G/+ CuBCPuTqduJ2DH+8ZMaWo2Lvn0iPml8HSvE9QeiU+qMzKezB3ZwmXkEfWOcpHnsLgGJM W/KaUh7/NO7mFwfmlH01TOp8RmgaogdpaUhz2GB/bcdCcyx9r/xDwVeFpmmqUWs6YyP0 q06QlZuQbt67polmLsGFkUdn0mnWTJtSG1qVwaIQNTpAK2E2+OgzGzfkn3RpGOrvajZG c5RDoxbxRY0WtR/1e1poZJtABjzjosxXpy9ws/jVDnVNPQ3pgGWb/2/fD6g5IvkpuLxt R8WQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785640851; x=1786245651; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=Iqxa2KP89AfHfxdOKoj/Q1g5BGQz8td67eIU+NwOSD4=; b=Tkl9IRg0vuiT/XAigebV10YPYamoTSjs/ElVAnKNOKn7MplxViakUKAFEvwi+L6B6W +zA4p1hDySsgpWufNPCVZcdyCINx9csxsjgxfQTLxkQed88PQIp24G2cyM2SgawTYpoh iRucRchIDtskcP8Xa+joMoXhwGMJJcCL/tU4qsNrM0+MYNzzi0/5fVA7iLv7wsN7d7nj KG69z0Meg3lwuJ8JdMVqpDtEL6uWVsyy+eD7y1SpgT0UyXtzMr7T+sLkFO0J2sV7ZWOp 7uv56bwARThVft6Sls48x2VHytTEjZddkJPiFDdkDxoh8REqUvrhygOQ+XeOJl+l8ABE +olg== X-Gm-Message-State: AOJu0YzPsaEzYm54e/RLPk6S/oTjwJO5RA/dixTAJ728n5qDgSdOaplz u9DJjCuLl5atCBBZjFgorTM9vaNsPxtJOsh407GZkLJk3OVLqk1tR76wQyY3jt0S40cWXxR6PoR 6qJFXrs81memakJztsf81BGsu4kaH7OzdRX/a8QgjQQ== X-Gm-Gg: AR+sD120h6zDfwUjtikvETeB+8Y115NnzS4vfpifM8JcEr9B2Bb1gCzkw3lAT6upTOz Op+qHLjjldfVH+4Y1wzWSWmi4+oLx6vkvPKNL9vJxv34DANqbFbr/orR5mPe5lJfvJPlnf+kx5y lSoUaq2m5JjsDerJi29uEDkn6oaFTJAvpDogfdhp4MTRpEPGHIRc1O82pyhq6Mm/N+s7JDMtQvo dmflP4LhQ6Kjr+YXrLZW9BZ8miTfvYfZN170FaGLIwr4f/zH99qBopT9Lt5O9MkKEBPHh9fWQi9 i2fUrmCzvN9ZI8xzU8qiaISY2MWh1Npd5v0waMXVyCo= X-Received: by 2002:a05:6214:5d88:b0:907:bdb6:9e82 with SMTP id 6a1803df08f44-90849833af8mr90419626d6.3.1785640850867; Sat, 01 Aug 2026 20:20:50 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Joaquin Varela Date: Sun, 2 Aug 2026 00:20:41 -0300 X-Gm-Features: AUfX_mxNOKZaHdf7C-yxgKfXV9wByyaaB71U0hjtS3yr7WSgK_QwEY-qMU9WPog Message-ID: Subject: Re: [RFC] Native ZFS over NVMe/TCP storage backend for Proxmox VE To: "Max R. Carrara" X-SPAM-LEVEL: Spam detection results: 0 AWL 0.042 Adjusted score from AWL reputation of From: address DKIM_SIGNED 0.1 Message has a DKIM or DK signature, not necessarily valid DKIM_VALID -0.1 Message has at least one valid DKIM or DK signature DMARC_PASS -0.1 DMARC pass policy HTML_MESSAGE 0.001 HTML included in message RCVD_IN_DNSWL_NONE -0.0001 Sender listed at https://www.dnswl.org/, no trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: TPTQBBY4QZYZ2QJPAD6OLOHQSFX6AO3Q X-Message-ID-Hash: TPTQBBY4QZYZ2QJPAD6OLOHQSFX6AO3Q X-MailFrom: joaquinvarela@neatech.ar X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 3.3.10 CC: pve-devel@lists.proxmox.com X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: SGkgTWF4LA0KDQpzb3JyeSBmb3IgdGhlIGRlbGF5ZWQgcmVwbHkuIEdtYWlsIGhhZCBncm91cGVk IHlvdXIgcmVzcG9uc2UgaW50byB0aGUNCm9yaWdpbmFsIFJGQyBjb252ZXJzYXRpb24gYW5kIEkg bWlzc2VkIGl0IGF0IHRoZSB0aW1lLg0KDQpUaGFuayB5b3UgdmVyeSBtdWNoIGZvciB0YWtpbmcg dGhlIHRpbWUgdG8gcmV2aWV3IHRoZSByZXBvc2l0b3JpZXMgYW5kDQpmb3IgdGhlIGVuY291cmFn aW5nIGZlZWRiYWNrLg0KDQpJIHNpZ25lZCBhbmQgc3VibWl0dGVkIHRoZSBQcm94bW94IEluZGl2 aWR1YWwgQ0xBIG9uIEp1bHkgMTUuDQoNCkkgaGF2ZSBub3cgYXBwbGllZCB0aGUgc3R5bGUgY2hh bmdlcyB5b3Ugc3VnZ2VzdGVkOg0KDQotIHRoZSBuZXcgUGVybCBtb2R1bGVzIHVzZSBgdXNlIHY1 LjM2YDsNCi0gdGhlIHJlbGV2YW50IHJlZ3VsYXIgZXhwcmVzc2lvbnMgYXJlIGRlY2xhcmVkIGFz IGNvbnN0YW50cyBhbmQgdXNlDQogIHRoZSBgbmAgYW5kIGB4YC9geHhgIG1vZGlmaWVycyB3aXRo IG5hbWVkIGNhcHR1cmUgZ3JvdXBzOw0KLSBpbnRlcm5hbCBoZWxwZXJzIHVzZSBsZXhpY2FsIGBt eSBzdWJgIGRlY2xhcmF0aW9ucyB3aGVyZSBhcHByb3ByaWF0ZTsNCi0gdGhlIG5ldyBjb2RlIHVz ZXMgcG9zdGZpeCBkZXJlZmVyZW5jaW5nOw0KLSB0aGUgc3VibWlzc2lvbiBicmFuY2hlcyBkbyBu b3QgY29udGFpbiBkZWJpYW4vY2hhbmdlbG9nIGVudHJpZXMuDQoNClJlZ2FyZGluZyB0aGUgc3Rv cmFnZSBiYWNrZW5kIHVzZWQgZm9yIHZhbGlkYXRpb24sIHRoZSB0YXJnZXQgd2FzIGENCmRlZGlj YXRlZCBVYnVudHUgMjQuMDQgdmlydHVhbCBtYWNoaW5lIHJ1bm5pbmc6DQoNCi0ga2VybmVsIDYu OC4wLTEzNi1nZW5lcmljOw0KLSBaRlMgMi4yLjI7DQotIExpbnV4IG52bWV0Ow0KLSBudm1lLWNs aSAyLjg7DQotIGEgWkZTIHBvb2wgbmFtZWQgYHRhbmtgOw0KLSB0d28gaW5kZXBlbmRlbnQgTlZN ZS9UQ1AgcG9ydGFscy4NCg0KVGhlIGluaXRpYXRvcnMgd2VyZSBhIHR3by1ub2RlIG5lc3RlZCBQ cm94bW94IFZFIDkuMiBjbHVzdGVyIHJ1bm5pbmcNCmtlcm5lbCA3LjAuMTQtOC1wdmUgYW5kIG52 bWUtY2xpIDIuMTMuIEVhY2ggbm9kZSBoYWQgdHdvIGluZGVwZW5kZW50DQpOVk1lL1RDUCBwYXRo cyBhbmQgbmF0aXZlIGtlcm5lbCBtdWx0aXBhdGggZW5hYmxlZC4NCg0KVGhlIHRlc3RzIGNvdmVy ZWQgdGhpbiBwcm92aXNpb25pbmcgYW5kIGRpc2NhcmQsIHNuYXBzaG90cywgY2xvbmVzLA0KY29u Y3VycmVudCBuYW1lc3BhY2UgYWxsb2NhdGlvbiwgcGF0aCBmYWlsdXJlcywgYWxsLXBhdGggbG9z cyBwb2xpY2llcywNCnRhcmdldCByZWJvb3QgcmVjb25zdHJ1Y3Rpb24sIGJpZGlyZWN0aW9uYWwg bGl2ZSBtaWdyYXRpb24gdW5kZXIgZ3Vlc3QNCkkvTywgbWlncmF0aW9uIHRvIGEgZGVncmFkZWQg ZGVzdGluYXRpb24sIEhBIGZlbmNpbmcsIGEgbGl2ZSBjb3Jvc3luYw0KcGFydGl0aW9uIGFuZCBl eHBsaWNpdCBkdWFsLXdyaXRlciBkZXRlY3Rpb24uDQoNClRoZSB0YXJnZXQtcmVib290IHRlc3Rp bmcgYWxzbyB1bmNvdmVyZWQgYW4gQUNMIHB1YmxpY2F0aW9uIHJhY2UuIFRoZQ0KYmFja2VuZCBu b3cgcmVzdG9yZXMgZXZlcnkgY29uZmlndXJlZCBIb3N0IE5RTiwgREgtSE1BQy1DSEFQIGtleSBh bmQNCm5hbWVzcGFjZSBiZWZvcmUgbGlua2luZyB0aGUgc3Vic3lzdGVtIHRvIGl0cyBOVk1lL1RD UCBwb3J0cy4NCg0KVGhlIGNvbXBsZXRlIHRlc3QgcmVwb3J0LCBtYWNoaW5lLXJlYWRhYmxlIHJl c3VsdHMgYW5kIHJhdyBsb2dzIGFyZQ0KYXZhaWxhYmxlIGhlcmU6DQoNCmh0dHBzOi8vZ2l0aHVi LmNvbS9qb2FxdWludjk4L3B2ZS1zdG9yYWdlL3RyZWUvZmVhdHVyZS96ZnMtbnZtZS10Y3ANCg0K VGhlIGNsZWFuIGJyYW5jaGVzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhdGNoIHNlcmllcyBhcmU6 DQoNCmh0dHBzOi8vZ2l0aHViLmNvbS9qb2FxdWludjk4L3B2ZS1zdG9yYWdlL3RyZWUvc3VibWlz c2lvbi96ZnMtbnZtZS10Y3AtcmZjLXYyDQpodHRwczovL2dpdGh1Yi5jb20vam9hcXVpbnY5OC9w dmUtbWFuYWdlci90cmVlL3N1Ym1pc3Npb24vemZzLW52bWUtdGNwLXJmYy12Mg0KaHR0cHM6Ly9n aXRodWIuY29tL2pvYXF1aW52OTgvcHZlLWRvY3MvdHJlZS9zdWJtaXNzaW9uL3pmcy1udm1lLXRj cC1yZmMtdjINCg0KSSBoYXZlIHByZXBhcmVkIHRoZSBmb3JtYWwgcHZlLXN0b3JhZ2UsIHB2ZS1t YW5hZ2VyIGFuZCBwdmUtZG9jcyBwYXRjaA0Kc2VyaWVzIGFuZCB3aWxsIHNlbmQgdGhlbSB0byBw dmUtZGV2ZWwgYXMgc2VwYXJhdGUgdGhyZWFkcyBzaG9ydGx5Lg0KDQpUaGFuayB5b3UgYWdhaW4g Zm9yIHlvdXIgcmV2aWV3Lg0KDQpLaW5kIHJlZ2FyZHMsDQpKb2FxdWluIFZhcmVsYQ0KDQpPbiBU dWUsIEp1bCAyMSwgMjAyNiBhdCA4OjQ24oCvQU0gTWF4IFIuIENhcnJhcmEgPG0uY2FycmFyYUBw cm94bW94LmNvbT4NCndyb3RlOg0KDQo+IE9uIFdlZCBKdWwgMTUsIDIwMjYgYXQgNjoyMyBQTSBD RVNULCBKb2FxdWluIFZhcmVsYSB3cm90ZToNCj4gPiBIZWxsbywNCj4gPg0KPiA+IEkgaGF2ZSBp bXBsZW1lbnRlZCBhbiBpbi10cmVlIFByb3htb3ggVkUgc3RvcmFnZSBiYWNrZW5kIG5hbWVkIGB6 ZnNudm1lYC4NCj4gPiBJdCBmb2xsb3dzIHRoZSByZW1vdGUgWkZTIGxpZmVjeWNsZSBtb2RlbCB1 c2VkIGJ5IFpGUyBvdmVyIGlTQ1NJLCBidXQNCj4gdXNlcw0KPiA+IExpbnV4IG52bWV0LCBOVk1l L1RDUCBhbmQgbmF0aXZlIGtlcm5lbCBtdWx0aXBhdGguDQo+DQo+IEhlbGxvIQ0KPg0KPiBUaGlz IHNvdW5kcyBsaWtlIGEgZ3JlYXQgY29udHJpYnV0aW9uISBVc2luZyB0aGUgZXhpc3RpbmcgZmxv dyBvZiB0aGUNCj4gWkZTLW92ZXItaVNDU0kgcGx1Z2luIGlzIGFsc28gYSBnb29kIGlkZWEuDQo+ DQo+ID4NCj4gPiBUaGUgWkZTIGRhdGFzZXQgaXMgdGhlIGR1cmFibGUgc291cmNlIG9mIHRydXRo LiBFYWNoIG93bmVkIHp2b2wgc3RvcmVzDQo+IGl0cw0KPiA+IHN1YnN5c3RlbSBOUU4sIE5TSUQg YW5kIG5hbWVzcGFjZSBVVUlEIGFzIFpGUyB1c2VyIHByb3BlcnRpZXMuIENvbmZpZ2ZzDQo+IGlz DQo+ID4gcmVjb25jaWxlZCBmcm9tIHRob3NlIHByb3BlcnRpZXMsIGFuZCB0aGUgbmFtZXNwYWNl IFVVSUQgcHJvdmlkZXMgdGhlDQo+IHN0YWJsZQ0KPiA+IGJ5LWlkIHBhdGggdXNlZCBieSBRRU1V Lg0KPiA+DQo+ID4gVGhlIGltcGxlbWVudGF0aW9uIGluY2x1ZGVzOg0KPiA+DQo+ID4gLSBvbmUg TlZNZS9UQ1AgY29ubmVjdGlvbiBwZXIgY29uZmlndXJlZCBwb3J0YWwgYW5kIGhvc3QgaW50ZXJm YWNlOw0KPiA+IC0gbmF0aXZlIG11bHRpcGF0aCBhbmQgQU5BIHN0YXRlIGhhbmRsaW5nOw0KPiA+ IC0gREgtSE1BQy1DSEFQIHdpdGhvdXQgZXhwb3NpbmcgdGhlIGtleSBpbiBwcm9jZXNzIGFyZ3Vt ZW50czsNCj4gPiAtIHRoaW4gcHJvdmlzaW9uaW5nLCBkaXNjYXJkLCBzbmFwc2hvdHMsIHJvbGxi YWNrIGFuZCBsaW5rZWQgY2xvbmVzOw0KPiA+IC0gc2FmZSB0ZWFyZG93biBhbmQgZm9yZWlnbi16 dm9sIGlkZW50aXR5IGNoZWNrczsNCj4gPiAtIGFuIGV4cGxpY2l0IHF1ZXVlLXZlcnN1cy1mYXN0 LWZhaWwgcG9saWN5IGZvciBjb21wbGV0ZSBwYXRoIGxvc3M7DQo+ID4gLSBwdmUtbWFuYWdlciBh bmQgcHZlLWRvY3MgaW50ZWdyYXRpb24uDQo+ID4NCj4gPiBWYWxpZGF0aW9uIGNvdmVyZWQgdGhl IGNvbXBsZXRlIHB2ZS1zdG9yYWdlIHRlc3Qgc3VpdGUgKDU5MyBhc3NlcnRpb25zKSwNCj4gPiB0 d28tbm9kZSBsaXZlIG1pZ3JhdGlvbiB1bmRlciBndWVzdCBJL08sIG1pZ3JhdGlvbiB0byBhIGRl Z3JhZGVkDQo+ID4gZGVzdGluYXRpb24sDQo+ID4gcmVhbCBBTkEgdHJhbnNpdGlvbnMsIHNpbXVs dGFuZW91cyBhbGxvY2F0aW9ucyBmcm9tIGJvdGggY2x1c3RlciBub2RlcywNCj4gPiBzaW5nbGUg YW5kIGR1YWwgcGF0aCBsb3NzLCBjb25maWdmcyByZWNvbnN0cnVjdGlvbiwgd2F0Y2hkb2cgSEEg YW5kIGENCj4gbGl2ZQ0KPiA+IENvcm9zeW5jL1FEZXZpY2UgcGFydGl0aW9uLiBObyBzb3VyY2Uv ZGVzdGluYXRpb24gUUVNVSBvdmVybGFwIHdhcw0KPiBvYnNlcnZlZA0KPiA+IGluDQo+ID4gdGhl IGxpdmUgcGFydGl0aW9uIHRlc3QuDQo+ID4NCj4gPiBUaGUgaW1wbGVtZW50YXRpb24gYW5kIGRl dGFpbGVkIHZhbGlkYXRpb24gcmVwb3J0IGFyZSBhdmFpbGFibGUgaGVyZToNCj4gPg0KPiA+IGh0 dHBzOi8vZ2l0aHViLmNvbS9qb2FxdWludjk4L3B2ZS1zdG9yYWdlL3RyZWUvZmVhdHVyZS96ZnMt bnZtZS10Y3ANCj4gPiBodHRwczovL2dpdGh1Yi5jb20vam9hcXVpbnY5OC9wdmUtbWFuYWdlci90 cmVlL2ZlYXR1cmUvemZzLW52bWUtdGNwDQo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2pvYXF1aW52 OTgvcHZlLWRvY3MvdHJlZS9mZWF0dXJlL3pmcy1udm1lLXRjcA0KPiA+DQo+ID4gVGhlIGxhYiBy ZXN1bHRzIGFyZSBub3QgcHJlc2VudGVkIGFzIGhhcmR3YXJlIGNlcnRpZmljYXRpb24uIFRMUywg b25saW5lDQo+ID4gcmVzaXplIGFuZCB0YXJnZXQgY29udHJvbC1wbGFuZSBIQSByZW1haW4gZXhw bGljaXQgbGltaXRhdGlvbnMuDQo+ID4NCj4gPiBJIGhhdmUgcHJlcGFyZWQgc2lnbmVkIHBhdGNo IHNlcmllcyBmb3IgcHZlLXN0b3JhZ2UsIHB2ZS1tYW5hZ2VyIGFuZA0KPiA+IHB2ZS1kb2NzLg0K PiA+IEJlZm9yZSBwb3N0aW5nIHRoZSBmdWxsIHNlcmllcywgSSB3b3VsZCBhcHByZWNpYXRlIGZl ZWRiYWNrIG9uIHdoZXRoZXINCj4gdGhpcw0KPiA+IGluLXRyZWUgYmFja2VuZCBhbmQgaXRzIGFy Y2hpdGVjdHVyZSBhcmUgYWNjZXB0YWJsZSBmb3IgdXBzdHJlYW0gcmV2aWV3Lg0KPg0KPiBJIGhh dmUgc2tpbW1lZCB0aHJvdWdoIHRoZSByZXNwZWN0aXZlIGJyYW5jaGVzIG9uIHlvdXIgcmVwb3Np dG9yaWVzDQo+IGFib3ZlLCBhbmQgZnJvbSB3aGF0IEkgY2FuIHRlbGwsIHRoZSBjb21taXRzIGxv b2sgcHJldHR5IGRlY2VudC4NCj4NCj4gSSBkbyBoYXZlIHNvbWUgcmVtYXJrcyB1cCBmcm9udCB0 aGF0IHlvdSBtYXkgd2FudCB0byBjb25zaWRlciBiZWZvcmUNCj4gc2VuZGluZyB0aGlzIGluIGFz IGEgcGF0Y2ggc2VyaWVzIC0tIG1vc3RseSB0byBzYXZlIHlvdSBzb21lIHRpbWU6DQo+DQo+IC0g SWYgeW91IGhhdmVuJ3QgYWxyZWFkeSwgcGxlYXNlIHNpZ24gb3VyIENMQS4gWW91IGNhbiBmaW5k IHRoZQ0KPiAgIHJlc3BlY3RpdmUgc2VjdGlvbiBoZXJlOg0KPiBodHRwczovL3Byb3htb3guY29t L2VuL2Fib3V0L29wZW4tc291cmNlL2RldmVsb3BlcnMNCj4NCj4gLSBGcm9tIHdoYXQgSSBjYW4g dGVsbCwgeW91J3JlIGFscmVhZHkgYWRoZXJpbmcgcXVpdGUgd2VsbCB0byBvdXIgc3R5bGUNCj4g ICBndWlkZSwgd2hpY2ggaXMgZ3JlYXQhIEEgZmV3IHJlbWFya3M6DQo+DQo+ICAgKiBJIHN1Z2dl c3QgdXNpbmcgYHVzZSB2NS4zNjtgIGZvciBuZXcgUGVybCBtb2R1bGVzIGluc3RlYWQgb2YNCj4g ICAgIGB1c2Ugc3RyaWN0OyB1c2Ugd2FybmluZ3M7YCwgYXMgdGhhdCBlbmFibGVzIHN1YnJvdXRp bmUgc2lnbmF0dXJlcw0KPiAgICAgYnkgZGVmYXVsdC4gSGVscHMgbW9kZXJuaXppbmcgdGhlIGNv ZGUgYmFzZSBvdmVyYWxsLg0KPiAgICAgU2VlIG91ciBzdHlsZSBndWlkZSBmb3IgbW9yZSBkZXRh aWxzOg0KPiBodHRwczovL3B2ZS5wcm94bW94LmNvbS93aWtpL1BlcmxfU3R5bGVfR3VpZGUNCj4N Cj4gICAqIFdoaWxlIG5vdCBpbiB0aGUgc3R5bGUgZ3VpZGUsIEkgY2FuIHBlcnNvbmFsbHkgcmVj b21tZW5kIHVzaW5nIHRoZQ0KPiAgICAgYG5gIGFuZCBgeGAvYHh4YCBtb2RpZmllcnMgZm9yIHlv dXIgcmVnZXhlcywgYW5kIGRlY2xhcmluZyBhbnkNCj4gICAgIGlubGluZSByZWdleGVzIGFzIGNv bnN0YW50cyAoPT4gYG15ICRSRV9OVk1FX0ZPTyA9IHFyLy4uLi9ueHhgKQ0KPiAgICAgaW4gYSBs aXR0bGUgc2VjdGlvbiBhdCB0aGUgdG9wIG9mIHlvdXIgbW9kdWxlLiBUaGVzZSBmbGFncyBoZWxw DQo+ICAgICBmdXR1cmUgcmVhZGVycyB0byB1bmRlcnN0YW5kIHlvdXIgcmVnZXhlcyBhIGxpdHRs ZSBlYXNpZXIsIGFuZCBzaW5jZQ0KPiAgICAgYG5gIGZvcmNlcyB0aGUgdXNlIG9mIG5hbWVkIGNh cHR1cmUgZ3JvdXBzLCB0aGV5J2xsIGFsc28gbW9yZSBsaWtlbHkNCj4gICAgIHRvIGJlICJzZWxm LWRvY3VtZW50aW5nIiBpbiBhIHNlbnNlLg0KPg0KPiAgICogRm9yIHN1YnJvdXRpbmVzIHRoYXQg YXJlIG5vdCBwYXJ0IG9mIHRoZSBzdG9yYWdlIHBsdWdpbiBBUEksIGkuZS4NCj4gICAgIGhlbHBl cnMsIHV0aWx0cywgZXRjLiBzcGVjaWZpYyB0byB5b3VyIG1vZHVsZSwgcHJlZmVyIGRlY2xhcmlu ZyB0aGVtDQo+ICAgICB1c2luZyBgbXkgc3ViYCBpbnN0ZWFkIG9mIGEgcGxhaW4gYHN1YmAsIGFz IHRoYXQga2VlcHMgdGhlbSB2aXNpYmxlDQo+ICAgICBpbnNpZGUgdGhlIG1vZHVsZSBvbmx5ICg9 PiAicHJpdmF0ZSIgaW4gb3RoZXIgbGFuZ3VhZ2VzKS4gVGhhdA0KPiAgICAgcHJldmVudHMgb3Ro ZXIgcGxhY2VzIGZyb20gdXNpbmcgdGhlc2UgaGVscGVycy4NCj4NCj4gICAgIFlvdSBjYW4gdGhl biBhbHNvIGRyb3AgdGhlIGBfYCBwcmVmaXggaW4gdGhhdCBjYXNlIChpZiB5b3UgcHJlZmVyKS4N Cj4NCj4gICAqIEkgYWxzbyBzdWdnZXN0IHVzaW5nIHBvc3RmaXggZGVyZWZlcmVuY2luZyBpbnN0 ZWFkIG9mIHRoZQ0KPiAgICAgInRyYWRpdGlvbmFsIiBkZXJlZmVyZW5jaW5nIHN5bnRheCwgdGhh dCBpcywgYCRoYXNocmVmLT4lKmAgaW5zdGVhZA0KPiAgICAgb2YgYCUkaGFzaHJlZmAsIGZvciBl eGFtcGxlLiBJdCdzIGEgbGl0dGxlIG1vcmUgbGVnaWJsZSBhbmQgbWFrZXMNCj4gICAgIG5lc3Rl ZCBoYXNoIGFjY2VzcyBhIGxpdHRsZSBlYXNpZXIgdG8gZm9sbG93IGFzIHdlbGwuIE5vdGUgdGhh dCB0aGlzDQo+ICAgICBpc24ndCBleHBsaWNpdGx5IHN0YXRlZCBpbiBvdXIgc3R5bGUgZ3VpZGUg ZWl0aGVyICh3ZSBvbmx5IGhhdmUgaXQNCj4gICAgIHRoZXJlIGZvciBzdWJyZWYgY2FsbHMsIGhh c2ggYW5kIGFycmF5IGFjY2Vzc2luZyksIHNvIG5vIGhhcmQNCj4gICAgIGZlZWxpbmdzLg0KPg0K PiAtIFdoZW4geW91IHN1Ym1pdCB5b3VyIHNlcmllcywgcGxlYXNlIGRvIG5vdCBhbnkgZW50cmll cyBpbg0KPiAgIGBkZWJpYW4vY2hhbmdlbG9nYCAtLSB0aG91Z2ggaXQncyBuaWNlIHRvIHNlZSB0 aGF0IHlvdSd2ZSBiZWVuDQo+ICAgdGhvcm91Z2ggdGhlcmUhDQo+DQo+IFRoYXQncyBhbGwgSSBj YW4gdGhpbmsgb2YgLyBmaW5kIGF0IHRoZSBtb21lbnQgd2l0aG91dCBnaXZpbmcgaXQgYQ0KPiBw cm9wZXIgaW4tZGVwdGggcmV2aWV3LiBJJ2xsIGhhcHBpbHkgcmV2aWV3IHlvdXIgc2VyaWVzIG9u Y2UgeW91IHNlbmQgaXQNCj4gaW4uDQo+DQo+IEknZCBhbHNvIGJlIGludGVyZXN0ZWQgaW4gd2hh dCBraW5kIG9mIHN0b3JhZ2UgYmFja2VuZCB5b3Ugd2VyZSB1c2luZw0KPiBmb3IgeW91ciB0ZXN0 cywgc28gdGhhdCBJIGNhbiByZXBsaWNhdGUgeW91ciBzZXR1cCBteXNlbGYuIEkgaGF2ZQ0KPiBz a2ltbWVkIHRocm91Z2ggeW91ciBkb2NzIGFuZCB2YWxpZGF0aW9uIHJlcG9ydHMsIGJ1dCBoYXZl bid0IGZvdW5kDQo+IGFueXRoaW5nIHNwZWNpZmljIC0tIG1heWJlIEkganVzdCBtaXNzZWQgaXQu DQo+DQo+ID4NCj4gPiBLaW5kIHJlZ2FyZHMsDQo+DQo+IFRoYW5rcyBhIGxvdCBmb3IgeW91ciBp bnRlcmVzdCBpbiBjb250cmlidXRpbmcgYW5kIHlvdXIgd29yayBhbHJlYWR5LA0KPiBpdCdzIG11 Y2ggYXBwcmVjaWF0ZWQhDQo+DQo+IEtpbmQgcmVnYXJkcywNCj4gTWF4DQo+DQo+DQo+DQoNCi0t IA0KSm9hcXVpbiBWYXJlbGENCg==