From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <pve-devel-bounces@lists.proxmox.com> Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 35E7E1FF164 for <inbox@lore.proxmox.com>; Fri, 23 May 2025 18:00:44 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 5C5291E532; Fri, 23 May 2025 18:00:35 +0200 (CEST) From: Aaron Lauterer <a.lauterer@proxmox.com> To: pve-devel@lists.proxmox.com Date: Fri, 23 May 2025 18:00:14 +0200 Message-Id: <20250523160029.404400-5-a.lauterer@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250523160029.404400-1-a.lauterer@proxmox.com> References: <20250523160029.404400-1-a.lauterer@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.431 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 SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH cluster 1/1] status: introduce new pve9- rrd and metric format X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com> List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe> List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/> List-Post: <mailto:pve-devel@lists.proxmox.com> List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help> List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe> Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com> V2UgYWRkIHNldmVyYWwgbmV3IGNvbHVtbnMgdG8gbm9kZXMgYW5kIFZNcyAoZ3Vlc3QpIFJSRHMu IFNlZSBmdXRoZXIKZG93biBmb3IgZGV0YWlscy4gQWRkaXRpb25hbGx5IHdlIGNoYW5nZSB0aGUg UlJBIGRlZmluaXRpb25zIG9uIGhvdyB3ZQphZ2dyZWdhdGUgdGhlIGRhdGEgdG8gbWF0Y2ggaG93 IHdlIGRvIGl0IGZvciB0aGUgUHJveG1veCBCYWNrdXAgU2VydmVyClswXS4KClRoZSBtaWdyYXRp b24gb2YgYW4gZXhpc3RpbmcgaW5zdGFsbGF0aW9uIGlzIGhhbmRsZWQgYnkgYSBkZWRpY2F0ZWQK dG9vbC4gT25seSBvbmNlIHRoYXQgaGFzIGhhcHBlbmVkLCB3aWxsIHdlIHN0b3JlIG5ldyBkYXRh IGluIHRoZSBuZXcKZm9ybWF0LgpUaGlzIGxlYXZlcyB1cyB3aXRoIGEgZmV3IGNhc2VzIHRvIGhh bmRsZToKCiAgZGF0YSByZWN2IOKGkiAgICAgICAgICBvbGQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuZXcKICDihpMgcnJkIGZpbGVzCiAtLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg bm9uZSAgICAgICAgfCBjaGVjayBpZiBkaXJlY3RvcmllcyBleGlzdHM6CiAgICAgICAgICAgICAg fCAgICAgbmVpdGhlciBvbGQgb3IgbmV3IC0+IG5ldwoJICAgICAgfCAgICAgbmV3ICAgICAgICAg ICAgICAgIC0+IG5ldwoJICAgICAgfCAgICAgb2xkIG9ubHkgICAgICAgICAgIC0+IG9sZAotLS0t LS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIG9ubHkgb2xkICAgIHwgdXNlIG9sZCBmaWxlIGFzIGlzICAg ICAgICB8IGN1dCBuZXcgY29sdW1ucyBhbmQgdXNlIG9sZCBmaWxlCi0tLS0tLS0tLS0tLS0tfC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgbmV3IHByZXNlbnQgfCBwYWQgZGF0YSB0byBtYXRjaCBuZXcgZm10IHwgdXNlIG5l dyBmaWxlIGFzIGlzIGFuZCBwYXNzIGRhdGEKClRvIGhhbmRsZSB0aGUgcGFkZGluZyBhbmQgY3V0 dGluZyBvZiB0aGUgZGF0YSwgd2UgdXNlIGEgYnVmZmVyLgoKV2UgYWRkIHRoZSBmb2xsb3dpbmcg bmV3IGNvbHVtbnM6CgpOb2RlczoKKiBtZW1mcmVlCiogbWVtYnVmZmVycwoqIG1lbWNhY2hlZAoq IGFyY3NpemUKKiBwcmVzc3VyZXM6CiAgKiBjcHUgc29tZQogICogaW8gc29tZQogICogaW8gZnVs bAogICogbWVtIHNvbWUKICAqIG1lbSBmdWxsCgpWTXM6CiogbWVtaG9zdCAobWVtb3J5IGNvbnN1 bXB0aW9uIG9mIGFsbCBwcm9jZXNzZXMgaW4gdGhlIGd1ZXN0cyBjZ3JvdXAsIGhvc3QgdmlldykK KiBwcmVzc3VyZXM6CiAgKiBjcHUgc29tZQogICogY3B1IGZ1bGwKICAqIGlvIHNvbWUKICAqIGlv IGZ1bGwKICAqIG1lbSBzb21lCiAgKiBtZW0gZnVsbAoKWzBdIGh0dHBzOi8vZ2l0LnByb3htb3gu Y29tLz9wPXByb3htb3gtYmFja3VwLmdpdDthPWJsb2I7Zj1zcmMvc2VydmVyL21ldHJpY19jb2xs ZWN0aW9uL3JyZC5ycztoPWVkMzljYzk0ZWUwNTY5MjRiN2FkYmMyMWI4NGMwMjA5NDc4YmNmNDI7 aGI9ZGMzMjQ3MTZhNjg4YTY3ZDcwMGZhMTMzNzI1NzQwYWM1ZDM3OTVjZSNsNzYKClNpZ25lZC1v ZmYtYnk6IEFhcm9uIExhdXRlcmVyIDxhLmxhdXRlcmVyQHByb3htb3guY29tPgotLS0KIHNyYy9w bXhjZnMvc3RhdHVzLmMgfCAyNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMTcgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL3BteGNmcy9zdGF0dXMuYyBiL3NyYy9wbXhjZnMvc3RhdHVz LmMKaW5kZXggM2ZkYjE3OS4uNGYyNThmNiAxMDA2NDQKLS0tIGEvc3JjL3BteGNmcy9zdGF0dXMu YworKysgYi9zcmMvcG14Y2ZzL3N0YXR1cy5jCkBAIC0xMTI5LDYgKzExMjksMjEgQEAga3ZlbnRy eV9oYXNoX3NldCgKIAlyZXR1cm4gVFJVRTsKIH0KIAorLy8gUlJBcyBhcmUgZGVmaW5lZCBpbiB0 aGUgZm9sbG93aW5nIHdheToKKy8vCisvLyBSUkE6Q0Y6eGZmOnN0ZXA6cm93cworLy8gQ0Y6IEFW RVJBR0Ugb3IgTUFYCisvLyB4ZmY6IDAuNQorLy8gc3RlcHM6IHN0ZXBzaXplIGlzIGRlZmluZWQg b24gcnJkIGZpbGUgY3JlYXRpb24hIGV4YW1wbGU6IHdpdGggNjAgc2Vjb25kcyBzdGVwIHNpemU6 CisvLwllLmcuIDEgPT4gNjAgc2VjLCAzMCA9PiAxODAwIHNlY29uZHMgb3IgMzAgbWluCisvLyBy b3dzOiBob3cgbWFueSBhZ2dyZWdhdGVkIHJvd3MgYXJlIGtlcHQsIGFzIGluIGhvdyBmYXIgYmFj ayBpbiB0aW1lIHdlIHN0b3JlIGRhdGEKKy8vCisvLyBob3cgbWFueSBzZWNvbmRzIGFyZSBhZ2dy ZWdhdGVkIHBlciBSUkE6IHN0ZXBzICogc3RlcHNpemUgKiByb3dzCisvLyBob3cgbWFueSBob3Vy cyBhcmUgYWdncmVnYXRlZCBwZXIgUlJBOiBzdGVwcyAqIHN0ZXBzaXplICogcm93cyAvIDM2MDAK Ky8vIGhvdyBtYW55IGRheXMgYXJlIGFnZ3JlZ2F0ZWQgcGVyIFJSQTogc3RlcHMgKiBzdGVwc2l6 ZSAqIHJvd3MgLyAzNjAwIC8gMjQKKy8vIGh0dHBzOi8vb3NzLm9ldGlrZXIuY2gvcnJkdG9vbC90 dXQvcnJkLWJlZ2lubmVycy5lbi5odG1sI1VuZGVyc3RhbmRpbmdfYnlfYW5fZXhhbXBsZQorCisv LyBUaW1lIHN0ZXAgc2l6ZSA2MCBzZWNvbmRzCiBzdGF0aWMgY29uc3QgY2hhciAqcnJkX2RlZl9u b2RlW10gPSB7CiAJIkRTOmxvYWRhdmc6R0FVR0U6MTIwOjA6VSIsCiAJIkRTOm1heGNwdTpHQVVH RToxMjA6MDpVIiwKQEAgLTExNTcsNiArMTE3Miw0MyBAQCBzdGF0aWMgY29uc3QgY2hhciAqcnJk X2RlZl9ub2RlW10gPSB7CiAJTlVMTCwKIH07CiAKKy8vIFRpbWUgc3RlcCBzaXplIDEwIHNlY29u ZHMKK3N0YXRpYyBjb25zdCBjaGFyICpycmRfZGVmX25vZGVfcHZlOVtdID0geworCSJEUzpsb2Fk YXZnOkdBVUdFOjEyMDowOlUiLAorCSJEUzptYXhjcHU6R0FVR0U6MTIwOjA6VSIsCisJIkRTOmNw dTpHQVVHRToxMjA6MDpVIiwKKwkiRFM6aW93YWl0OkdBVUdFOjEyMDowOlUiLAorCSJEUzptZW10 b3RhbDpHQVVHRToxMjA6MDpVIiwKKwkiRFM6bWVtdXNlZDpHQVVHRToxMjA6MDpVIiwKKwkiRFM6 c3dhcHRvdGFsOkdBVUdFOjEyMDowOlUiLAorCSJEUzpzd2FwdXNlZDpHQVVHRToxMjA6MDpVIiwK KwkiRFM6cm9vdHRvdGFsOkdBVUdFOjEyMDowOlUiLAorCSJEUzpyb290dXNlZDpHQVVHRToxMjA6 MDpVIiwKKwkiRFM6bmV0aW46REVSSVZFOjEyMDowOlUiLAorCSJEUzpuZXRvdXQ6REVSSVZFOjEy MDowOlUiLAorCSJEUzptZW1mcmVlOkdBVUdFOjEyMDowOlUiLAorCSJEUzptZW1idWZmZXJzOkdB VUdFOjEyMDowOlUiLAorCSJEUzptZW1jYWNoZWQ6R0FVR0U6MTIwOjA6VSIsCisJIkRTOmFyY3Np emU6R0FVR0U6MTIwOjA6VSIsCisJIkRTOnByZXNzdXJlY3B1c29tZTpHQVVHRToxMjA6MDpVIiwK KwkiRFM6cHJlc3N1cmVpb3NvbWU6R0FVR0U6MTIwOjA6VSIsCisJIkRTOnByZXNzdXJlaW9mdWxs OkdBVUdFOjEyMDowOlUiLAorCSJEUzpwcmVzc3VyZW1lbW9yeXNvbWU6R0FVR0U6MTIwOjA6VSIs CisJIkRTOnByZXNzdXJlbWVtb3J5ZnVsbDpHQVVHRToxMjA6MDpVIiwKKworCSJSUkE6QVZFUkFH RTowLjU6MToxNDQwIiwgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisJIlJSQTpBVkVSQUdFOjAu NTozMDoxNDQwIiwgLy8gMzAgbWluICogMTQ0MCA9PiAzMCBkYXkKKwkiUlJBOkFWRVJBR0U6MC41 OjM2MDoxNDQwIiwgLy8gNiBob3VycyAqIDE0NDAgPT4gMzYwIGRheSB+MSB5ZWFyCisJIlJSQTpB VkVSQUdFOjAuNToxMDA4MDo1NzAiLCAvLyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisKKwki UlJBOk1BWDowLjU6MToxNDQwIiwgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisJIlJSQTpNQVg6 MC41OjMwOjE0NDAiLCAvLyAzMCBtaW4gKiAxNDQwID0+IDMwIGRheQorCSJSUkE6TUFYOjAuNToz NjA6MTQ0MCIsIC8vIDYgaG91cnMgKiAxNDQwID0+IDM2MCBkYXkgfjEgeWVhcgorCSJSUkE6TUFY OjAuNToxMDA4MDo1NzAiLCAvLyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisJTlVMTCwKK307 CisKKy8vIFRpbWUgc3RlcCBzaXplIDYwIHNlY29uZHMKIHN0YXRpYyBjb25zdCBjaGFyICpycmRf ZGVmX3ZtW10gPSB7CiAJIkRTOm1heGNwdTpHQVVHRToxMjA6MDpVIiwKIAkiRFM6Y3B1OkdBVUdF OjEyMDowOlUiLApAQCAtMTE4Myw2ICsxMjM1LDM5IEBAIHN0YXRpYyBjb25zdCBjaGFyICpycmRf ZGVmX3ZtW10gPSB7CiAJTlVMTCwKIH07CiAKKy8vIFRpbWUgc3RlcCBzaXplIDYwIHNlY29uZHMK K3N0YXRpYyBjb25zdCBjaGFyICpycmRfZGVmX3ZtX3B2ZTlbXSA9IHsKKwkiRFM6bWF4Y3B1OkdB VUdFOjEyMDowOlUiLAorCSJEUzpjcHU6R0FVR0U6MTIwOjA6VSIsCisJIkRTOm1heG1lbTpHQVVH RToxMjA6MDpVIiwKKwkiRFM6bWVtOkdBVUdFOjEyMDowOlUiLAorCSJEUzptYXhkaXNrOkdBVUdF OjEyMDowOlUiLAorCSJEUzpkaXNrOkdBVUdFOjEyMDowOlUiLAorCSJEUzpuZXRpbjpERVJJVkU6 MTIwOjA6VSIsCisJIkRTOm5ldG91dDpERVJJVkU6MTIwOjA6VSIsCisJIkRTOmRpc2tyZWFkOkRF UklWRToxMjA6MDpVIiwKKwkiRFM6ZGlza3dyaXRlOkRFUklWRToxMjA6MDpVIiwKKwkiRFM6bWVt aG9zdDpHQVVHRToxMjA6MDpVIiwKKwkiRFM6cHJlc3N1cmVjcHVzb21lOkdBVUdFOjEyMDowOlUi LAorCSJEUzpwcmVzc3VyZWNwdWZ1bGw6R0FVR0U6MTIwOjA6VSIsCisJIkRTOnByZXNzdXJlaW9z b21lOkdBVUdFOjEyMDowOlUiLAorCSJEUzpwcmVzc3VyZWlvZnVsbDpHQVVHRToxMjA6MDpVIiwK KwkiRFM6cHJlc3N1cmVtZW1vcnlzb21lOkdBVUdFOjEyMDowOlUiLAorCSJEUzpwcmVzc3VyZW1l bW9yeWZ1bGw6R0FVR0U6MTIwOjA6VSIsCisKKwkiUlJBOkFWRVJBR0U6MC41OjE6MTQ0MCIsIC8v IDEgbWluICogMTQ0MCA9PiAxIGRheQorCSJSUkE6QVZFUkFHRTowLjU6MzA6MTQ0MCIsIC8vIDMw IG1pbiAqIDE0NDAgPT4gMzAgZGF5CisJIlJSQTpBVkVSQUdFOjAuNTozNjA6MTQ0MCIsIC8vIDYg aG91cnMgKiAxNDQwID0+IDM2MCBkYXkgfjEgeWVhcgorCSJSUkE6QVZFUkFHRTowLjU6MTAwODA6 NTcwIiwgLy8gMSB3ZWVrICogNTcwID0+IH4xMCB5ZWFycworCisJIlJSQTpNQVg6MC41OjE6MTQ0 MCIsIC8vIDEgbWluICogMTQ0MCA9PiAxIGRheQorCSJSUkE6TUFYOjAuNTozMDoxNDQwIiwgLy8g MzAgbWluICogMTQ0MCA9PiAzMCBkYXkKKwkiUlJBOk1BWDowLjU6MzYwOjE0NDAiLCAvLyA2IGhv dXJzICogMTQ0MCA9PiAzNjAgZGF5IH4xIHllYXIKKwkiUlJBOk1BWDowLjU6MTAwODA6NTcwIiwg Ly8gMSB3ZWVrICogNTcwID0+IH4xMCB5ZWFycworCU5VTEwsCit9OworCisvLyBUaW1lIHN0ZXAg c2l6ZSA2MCBzZWNvbmRzCiBzdGF0aWMgY29uc3QgY2hhciAqcnJkX2RlZl9zdG9yYWdlW10gPSB7 CiAJIkRTOnRvdGFsOkdBVUdFOjEyMDowOlUiLAogCSJEUzp1c2VkOkdBVUdFOjEyMDowOlUiLApA QCAtMTIwMCw2ICsxMjg1LDIzIEBAIHN0YXRpYyBjb25zdCBjaGFyICpycmRfZGVmX3N0b3JhZ2Vb XSA9IHsKIAkiUlJBOk1BWDowLjU6MTAwODA6NzAiLCAvLyA3IGRheSBtYXggLSBvbnkgeWVhcgog CU5VTEwsCiB9OworLy8KKy8vIFRpbWUgc3RlcCBzaXplIDYwIHNlY29uZHMKK3N0YXRpYyBjb25z dCBjaGFyICpycmRfZGVmX3N0b3JhZ2VfcHZlOVtdID0geworCSJEUzp0b3RhbDpHQVVHRToxMjA6 MDpVIiwKKwkiRFM6dXNlZDpHQVVHRToxMjA6MDpVIiwKKworCSJSUkE6QVZFUkFHRTowLjU6MTox NDQwIiwgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisJIlJSQTpBVkVSQUdFOjAuNTozMDoxNDQw IiwgLy8gMzAgbWluICogMTQ0MCA9PiAzMCBkYXkKKwkiUlJBOkFWRVJBR0U6MC41OjM2MDoxNDQw IiwgLy8gNiBob3VycyAqIDE0NDAgPT4gMzYwIGRheSB+MSB5ZWFyCisJIlJSQTpBVkVSQUdFOjAu NToxMDA4MDo1NzAiLCAvLyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisKKwkiUlJBOk1BWDow LjU6MToxNDQwIiwgLy8gMSBtaW4gKiAxNDQwID0+IDEgZGF5CisJIlJSQTpNQVg6MC41OjMwOjE0 NDAiLCAvLyAzMCBtaW4gKiAxNDQwID0+IDMwIGRheQorCSJSUkE6TUFYOjAuNTozNjA6MTQ0MCIs IC8vIDYgaG91cnMgKiAxNDQwID0+IDM2MCBkYXkgfjEgeWVhcgorCSJSUkE6TUFYOjAuNToxMDA4 MDo1NzAiLCAvLyAxIHdlZWsgKiA1NzAgPT4gfjEwIHllYXJzCisJTlVMTCwKK307CiAKICNkZWZp bmUgUlJERElSICIvdmFyL2xpYi9ycmRjYWNoZWQvZGIiCiAKQEAgLTEyNjAsMzUgKzEzNjIsNzAg QEAgdXBkYXRlX3JyZF9kYXRhKAogCWlmICghcnJkX2Zvcm1hdF91cGRhdGVfYnVmZmVyKSB7CiAJ ICAgIHJyZF9mb3JtYXRfdXBkYXRlX2J1ZmZlciA9IChjaGFyKiltYWxsb2MoUlJEX0ZPUk1BVF9C VUZGRVJfU0laRSk7CiAJfQorCXN0YXRpYyBjb25zdCBjaGFyKiBwdmU5X25vZGVfcGFkZGluZyA9 ICJVOlU6VTpVOlU6VTpVOlU6VSI7CisJc3RhdGljIGNvbnN0IGNoYXIqIHB2ZTlfdm1fcGFkZGlu ZyA9ICJVOlU6VTpVOlU6VTpVIjsKKworCWNvbnN0IGNoYXIgKnBhZGRpbmcgPSBOVUxMOwogCiAJ aW50IHNraXAgPSAwOwogCWludCBkYXRhX2N1dG9mZiA9IDA7IC8vIGhvdyBtYW55IGNvbHVtbnMg YWZ0ZXIgaW5pdGlhbCBza2lwIHNob3VsZCBiZSBhIGN1dC1vZmYKIAorCS8vIFRPRE8gZHJvcCBw dmUyLSBkYXRhIGhhbmRsaW5nIHdoZW4gbm90IG5lZWRlZCBhbnltb3JlCiAJaWYgKHN0cm5jbXAo a2V5LCAicHZlMi1ub2RlLyIsIDEwKSA9PSAwIHx8CiAJCXN0cm5jbXAoa2V5LCAicHZlOS1ub2Rl LyIsIDEwKSA9PSAwKSB7CiAJCWNvbnN0IGNoYXIgKm5vZGUgPSBrZXkgKyAxMDsKIAotCQlza2lw ID0gMjsKLQogCQlpZiAoc3RyY2hyKG5vZGUsICcvJykgIT0gTlVMTCkKIAkJCWdvdG8ga2V5ZXJy b3I7CiAKIAkJaWYgKHN0cmxlbihub2RlKSA8IDEpCiAJCQlnb3RvIGtleWVycm9yOwogCi0JCWlm IChzdHJuY21wKGtleSwgInB2ZTktbm9kZS8iLCAxMCkgPT0gMCkgewotCQkgICAgZGF0YV9jdXRv ZmYgPSAxMzsKLQkJfQorCQlmaWxlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZihSUkRESVIgIi9wdmU5 LW5vZGUvJXMiLCBub2RlKTsKKwkJY2hhciAqZmlsZW5hbWVfcHZlMiA9IGdfc3RyZHVwX3ByaW50 ZihSUkRESVIgIi9wdmUyLW5vZGUvJXMiLCBub2RlKTsKIAotCQlmaWxlbmFtZSA9IGdfc3RyZHVw X3ByaW50ZihSUkRESVIgIi9wdmUyLW5vZGUvJXMiLCBub2RlKTsKKwkJaW50IHVzZV9wdmUyX2Zp bGUgPSAwOwogCi0JCWlmICghZ19maWxlX3Rlc3QoZmlsZW5hbWUsIEdfRklMRV9URVNUX0VYSVNU UykpIHsKLQotCQkJbWtkaXIoUlJERElSICIvcHZlMi1ub2RlIiwgMDc1NSk7CisJCS8vIGNoZWNr IGV4aXN0aW5nIHJyZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKKwkJaWYgKGdfZmlsZV90ZXN0KGZp bGVuYW1lLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7CisJCSAgICAvLyBuZXcgZmlsZSBleGlzdHMs IHdlIHVzZSB0aGF0CisJCSAgICAvLyBUT0RPOiBnZXQgY29uZGl0aW9ucyBzbyB0aGF0IHdlIGRv IG5vdCBoYXZlIHRoaXMgZW1wdHkgb25lCisJCX0gZWxzZSBpZiAoZ19maWxlX3Rlc3QoZmlsZW5h bWVfcHZlMiwgR19GSUxFX1RFU1RfRVhJU1RTKSkgeworCQkgICAgLy8gb2xkIGZpbGUgZXhpc3Rz LCB1c2UgdGhhdAorCQkgICAgdXNlX3B2ZTJfZmlsZSA9IDE7CisJCSAgICBmaWxlbmFtZSA9IGdf c3RyZHVwX3ByaW50ZigiJXMiLCBmaWxlbmFtZV9wdmUyKTsKKwkJfSBlbHNlIHsKKwkJICAgIC8v IG5laXRoZXIgZmlsZSBleGlzdHMsIGNoZWNrIGZvciBkaXJlY3RvcmllcyB0byBkZWNpZGUgYW5k IGNyZWF0ZSBmaWxlCisJCSAgICBjaGFyICpkaXJfcHZlMiA9IGdfc3RyZHVwX3ByaW50ZihSUkRE SVIgIi9wdmUyLW5vZGUiKTsKKwkJICAgIGNoYXIgKmRpcl9wdmU5ID0gZ19zdHJkdXBfcHJpbnRm KFJSRERJUiAiL3B2ZTktbm9kZSIpOworCisJCSAgICBpZiAoZ19maWxlX3Rlc3QoZGlyX3B2ZTks R19GSUxFX1RFU1RfSVNfRElSKSkgeworCQkJaW50IGFyZ2NvdW50ID0gc2l6ZW9mKHJyZF9kZWZf bm9kZV9wdmU5KS9zaXplb2Yodm9pZCopIC0gMTsKKwkJCWNyZWF0ZV9ycmRfZmlsZShmaWxlbmFt ZSwgYXJnY291bnQsIHJyZF9kZWZfbm9kZV9wdmU5KTsKKwkJICAgIH0gZWxzZSBpZiAoZ19maWxl X3Rlc3QoZGlyX3B2ZTIsIEdfRklMRV9URVNUX0lTX0RJUikpIHsKKwkJCXVzZV9wdmUyX2ZpbGUg PSAxOworCQkJZmlsZW5hbWUgPSBnX3N0cmR1cF9wcmludGYoIiVzIiwgZmlsZW5hbWVfcHZlMik7 CiAJCQlpbnQgYXJnY291bnQgPSBzaXplb2YocnJkX2RlZl9ub2RlKS9zaXplb2Yodm9pZCopIC0g MTsKIAkJCWNyZWF0ZV9ycmRfZmlsZShmaWxlbmFtZSwgYXJnY291bnQsIHJyZF9kZWZfbm9kZSk7 CisJCSAgICB9IGVsc2UgeworCQkJLy8gbm8gZGlyIGV4aXN0cyB5ZXQsIHVzZSBuZXcgcHZlOQor CQkJbWtkaXIoUlJERElSICIvcHZlOS1ub2RlIiwgMDc1NSk7CisJCQlpbnQgYXJnY291bnQgPSBz aXplb2YocnJkX2RlZl9ub2RlX3B2ZTkpL3NpemVvZih2b2lkKikgLSAxOworCQkJY3JlYXRlX3Jy ZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl9ub2RlX3B2ZTkpOworCQkgICAgfQor CQkgICAgZ19mcmVlKGRpcl9wdmUyKTsKKwkJICAgIGdfZnJlZShkaXJfcHZlOSk7CisJCX0KKwor CQlza2lwID0gMjsKKworCQlpZiAoc3RybmNtcChrZXksICJwdmUyLW5vZGUvIiwgMTApID09IDAg JiYgIXVzZV9wdmUyX2ZpbGUpIHsKKwkJICAgIHBhZGRpbmcgPSBwdmU5X25vZGVfcGFkZGluZzsK KwkJfSBlbHNlIGlmIChzdHJuY21wKGtleSwgInB2ZTktbm9kZS8iLCAxMCkgPT0gMCAmJiB1c2Vf cHZlMl9maWxlKSB7CisJCSAgICBkYXRhX2N1dG9mZiA9IDEzOwogCQl9CiAKKwkJZ19mcmVlKGZp bGVuYW1lX3B2ZTIpOwogCX0gZWxzZSBpZiAoc3RybmNtcChrZXksICJwdmUyLjMtdm0vIiwgMTAp ID09IDAgfHwKIAkJc3RybmNtcChrZXksICJwdmU5LXZtLyIsIDgpID09IDApIHsKIApAQCAtMTI5 OSwyNyArMTQzNiw1NyBAQCB1cGRhdGVfcnJkX2RhdGEoCiAJCSAgICB2bWlkID0ga2V5ICsgODsK IAkJfQogCi0JCXNraXAgPSA0OwotCiAJCWlmIChzdHJjaHIodm1pZCwgJy8nKSAhPSBOVUxMKQog CQkJZ290byBrZXllcnJvcjsKIAogCQlpZiAoc3RybGVuKHZtaWQpIDwgMSkKIAkJCWdvdG8ga2V5 ZXJyb3I7CiAKLQkJaWYgKHN0cm5jbXAoa2V5LCAicHZlOS12bS8iLCA4KSA9PSAwKSB7Ci0JCSAg ICBkYXRhX2N1dG9mZiA9IDExOwotCQl9CisJCWZpbGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmKFJS RERJUiAiL3B2ZTktdm0vJXMiLCB2bWlkKTsKKwkJY2hhciAqZmlsZW5hbWVfcHZlMiA9IGdfc3Ry ZHVwX3ByaW50ZihSUkRESVIgIi9wdmUyLXZtLyVzIiwgdm1pZCk7CiAKLQkJZmlsZW5hbWUgPSBn X3N0cmR1cF9wcmludGYoUlJERElSICIvJXMvJXMiLCAicHZlMi12bSIsIHZtaWQpOworCQlpbnQg dXNlX3B2ZTJfZmlsZSA9IDA7CiAKLQkJaWYgKCFnX2ZpbGVfdGVzdChmaWxlbmFtZSwgR19GSUxF X1RFU1RfRVhJU1RTKSkgewotCi0JCQlta2RpcihSUkRESVIgIi9wdmUyLXZtIiwgMDc1NSk7CisJ CS8vIGNoZWNrIGV4aXN0aW5nIHJyZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMKKwkJaWYgKGdfZmls ZV90ZXN0KGZpbGVuYW1lLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7CisJCSAgICAvLyBuZXcgZmls ZSBleGlzdHMsIHdlIHVzZSB0aGF0CisJCSAgICAvLyBUT0RPOiBnZXQgY29uZGl0aW9ucyBzbyB0 aGF0IHdlIGRvIG5vdCBoYXZlIHRoaXMgZW1wdHkgb25lCisJCX0gZWxzZSBpZiAoZ19maWxlX3Rl c3QoZmlsZW5hbWVfcHZlMiwgR19GSUxFX1RFU1RfRVhJU1RTKSkgeworCQkgICAgLy8gb2xkIGZp bGUgZXhpc3RzLCB1c2UgdGhhdAorCQkgICAgdXNlX3B2ZTJfZmlsZSA9IDE7CisJCSAgICBmaWxl bmFtZSA9IGdfc3RyZHVwX3ByaW50ZigiJXMiLCBmaWxlbmFtZV9wdmUyKTsKKwkJfSBlbHNlIHsK KwkJICAgIC8vIG5laXRoZXIgZmlsZSBleGlzdHMsIGNoZWNrIGZvciBkaXJlY3RvcmllcyB0byBk ZWNpZGUgYW5kIGNyZWF0ZSBmaWxlCisJCSAgICBjaGFyICpkaXJfcHZlMiA9IGdfc3RyZHVwX3By aW50ZihSUkRESVIgIi9wdmUyLXZtIik7CisJCSAgICBjaGFyICpkaXJfcHZlOSA9IGdfc3RyZHVw X3ByaW50ZihSUkRESVIgIi9wdmU5LXZtIik7CisKKwkJICAgIGlmIChnX2ZpbGVfdGVzdChkaXJf cHZlOSxHX0ZJTEVfVEVTVF9JU19ESVIpKSB7CisJCQlpbnQgYXJnY291bnQgPSBzaXplb2YocnJk X2RlZl92bV9wdmU5KS9zaXplb2Yodm9pZCopIC0gMTsKKwkJCWNyZWF0ZV9ycmRfZmlsZShmaWxl bmFtZSwgYXJnY291bnQsIHJyZF9kZWZfdm1fcHZlOSk7CisJCSAgICB9IGVsc2UgaWYgKGdfZmls ZV90ZXN0KGRpcl9wdmUyLCBHX0ZJTEVfVEVTVF9JU19ESVIpKSB7CisJCQl1c2VfcHZlMl9maWxl ID0gMTsKKwkJCWZpbGVuYW1lID0gZ19zdHJkdXBfcHJpbnRmKCIlcyIsIGZpbGVuYW1lX3B2ZTIp OwogCQkJaW50IGFyZ2NvdW50ID0gc2l6ZW9mKHJyZF9kZWZfdm0pL3NpemVvZih2b2lkKikgLSAx OwogCQkJY3JlYXRlX3JyZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl92bSk7CisJ CSAgICB9IGVsc2UgeworCQkJLy8gbm8gZGlyIGV4aXN0cyB5ZXQsIHVzZSBuZXcgcHZlOQorCQkJ bWtkaXIoUlJERElSICIvcHZlOS12bSIsIDA3NTUpOworCQkJaW50IGFyZ2NvdW50ID0gc2l6ZW9m KHJyZF9kZWZfdm1fcHZlOSkvc2l6ZW9mKHZvaWQqKSAtIDE7CisJCQljcmVhdGVfcnJkX2ZpbGUo ZmlsZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVmX3ZtX3B2ZTkpOworCQkgICAgfQorCQkgICAgZ19m cmVlKGRpcl9wdmUyKTsKKwkJICAgIGdfZnJlZShkaXJfcHZlOSk7CiAJCX0KIAorCQlza2lwID0g NDsKKworCQlpZiAoc3RybmNtcChrZXksICJwdmUyLjMtdm0vIiwgMTApID09IDAgJiYgIXVzZV9w dmUyX2ZpbGUpIHsKKwkJICAgIHBhZGRpbmcgPSBwdmU5X3ZtX3BhZGRpbmc7CisJCX0gZWxzZSBp ZiAoc3RybmNtcChrZXksICJwdmU5LXZtLyIsIDgpID09IDAgJiYgdXNlX3B2ZTJfZmlsZSkgewor CQkgICAgZGF0YV9jdXRvZmYgPSAxMTsKKwkJfQorCisJCWdfZnJlZShmaWxlbmFtZV9wdmUyKTsK IAl9IGVsc2UgaWYgKHN0cm5jbXAoa2V5LCAicHZlMi1zdG9yYWdlLyIsIDEzKSA9PSAwIHx8CiAJ CXN0cm5jbXAoa2V5LCAicHZlOS1zdG9yYWdlLyIsIDEzKSA9PSAwKSB7CiAJCWNvbnN0IGNoYXIg Km5vZGUgPSBrZXkgKyAxMzsKQEAgLTEzMzksMjAgKzE1MDYsNDMgQEAgdXBkYXRlX3JyZF9kYXRh KAogCQlpZiAoc3RybGVuKHN0b3JhZ2UpIDwgMSkKIAkJCWdvdG8ga2V5ZXJyb3I7CiAKLQkJZmls ZW5hbWUgPSBnX3N0cmR1cF9wcmludGYoUlJERElSICIvcHZlMi1zdG9yYWdlLyVzIiwgbm9kZSk7 Ci0KLQkJaWYgKCFnX2ZpbGVfdGVzdChmaWxlbmFtZSwgR19GSUxFX1RFU1RfRVhJU1RTKSkgewor CQlmaWxlbmFtZSA9IGdfc3RyZHVwX3ByaW50ZihSUkRESVIgIi9wdmU5LXN0b3JhZ2UvJXMiLCBu b2RlKTsKKwkJY2hhciAqZmlsZW5hbWVfcHZlMiA9IGdfc3RyZHVwX3ByaW50ZihSUkRESVIgIi9w dmUyLXN0b3JhZ2UvJXMiLCBub2RlKTsKIAotCQkJbWtkaXIoUlJERElSICIvcHZlMi1zdG9yYWdl IiwgMDc1NSk7CisJCS8vIGNoZWNrIGV4aXN0aW5nIHJyZCBmaWxlcyBhbmQgZGlyZWN0b3JpZXMK KwkJaWYgKGdfZmlsZV90ZXN0KGZpbGVuYW1lLCBHX0ZJTEVfVEVTVF9FWElTVFMpKSB7CisJCSAg ICAvLyBuZXcgZmlsZSBleGlzdHMsIHdlIHVzZSB0aGF0CisJCSAgICAvLyBUT0RPOiBnZXQgY29u ZGl0aW9ucyBzbyB0aGF0IHdlIGRvIG5vdCBoYXZlIHRoaXMgZW1wdHkgb25lCisJCX0gZWxzZSBp ZiAoZ19maWxlX3Rlc3QoZmlsZW5hbWVfcHZlMiwgR19GSUxFX1RFU1RfRVhJU1RTKSkgeworCQkg ICAgLy8gb2xkIGZpbGUgZXhpc3RzLCB1c2UgdGhhdAorCQkgICAgZmlsZW5hbWUgPSBnX3N0cmR1 cF9wcmludGYoIiVzIiwgZmlsZW5hbWVfcHZlMik7CisJCX0gZWxzZSB7CisJCSAgICAvLyBuZWl0 aGVyIGZpbGUgZXhpc3RzLCBjaGVjayBmb3IgZGlyZWN0b3JpZXMgdG8gZGVjaWRlIGFuZCBjcmVh dGUgZmlsZQorCQkgICAgY2hhciAqZGlyX3B2ZTIgPSBnX3N0cmR1cF9wcmludGYoUlJERElSICIv cHZlMi1zdG9yYWdlIik7CisJCSAgICBjaGFyICpkaXJfcHZlOSA9IGdfc3RyZHVwX3ByaW50ZihS UkRESVIgIi9wdmU5LXN0b3JhZ2UiKTsKKworCQkgICAgaWYgKGdfZmlsZV90ZXN0KGRpcl9wdmU5 LEdfRklMRV9URVNUX0lTX0RJUikpIHsKKwkJCWludCBhcmdjb3VudCA9IHNpemVvZihycmRfZGVm X3N0b3JhZ2VfcHZlOSkvc2l6ZW9mKHZvaWQqKSAtIDE7CisJCQljcmVhdGVfcnJkX2ZpbGUoZmls ZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVmX3N0b3JhZ2VfcHZlOSk7CisJCSAgICB9IGVsc2UgaWYg KGdfZmlsZV90ZXN0KGRpcl9wdmUyLCBHX0ZJTEVfVEVTVF9JU19ESVIpKSB7CisJCQlmaWxlbmFt ZSA9IGdfc3RyZHVwX3ByaW50ZigiJXMiLCBmaWxlbmFtZV9wdmUyKTsKKwkJCWludCBhcmdjb3Vu dCA9IHNpemVvZihycmRfZGVmX3N0b3JhZ2UpL3NpemVvZih2b2lkKikgLSAxOworCQkJY3JlYXRl X3JyZF9maWxlKGZpbGVuYW1lLCBhcmdjb3VudCwgcnJkX2RlZl9zdG9yYWdlKTsKKwkJICAgIH0g ZWxzZSB7CisJCQkvLyBubyBkaXIgZXhpc3RzIHlldCwgdXNlIG5ldyBwdmU5CisJCQlta2RpcihS UkRESVIgIi9wdmU5LXN0b3JhZ2UiLCAwNzU1KTsKIAogCQkJY2hhciAqZGlyID0gZ19wYXRoX2dl dF9kaXJuYW1lKGZpbGVuYW1lKTsKIAkJCW1rZGlyKGRpciwgMDc1NSk7CiAJCQlnX2ZyZWUoZGly KTsKIAotCQkJaW50IGFyZ2NvdW50ID0gc2l6ZW9mKHJyZF9kZWZfc3RvcmFnZSkvc2l6ZW9mKHZv aWQqKSAtIDE7Ci0JCQljcmVhdGVfcnJkX2ZpbGUoZmlsZW5hbWUsIGFyZ2NvdW50LCBycmRfZGVm X3N0b3JhZ2UpOworCQkJaW50IGFyZ2NvdW50ID0gc2l6ZW9mKHJyZF9kZWZfc3RvcmFnZV9wdmU5 KS9zaXplb2Yodm9pZCopIC0gMTsKKwkJCWNyZWF0ZV9ycmRfZmlsZShmaWxlbmFtZSwgYXJnY291 bnQsIHJyZF9kZWZfc3RvcmFnZV9wdmU5KTsKKwkJICAgIH0KKwkJICAgIGdfZnJlZShkaXJfcHZl Mik7CisJCSAgICBnX2ZyZWUoZGlyX3B2ZTkpOwogCQl9Ci0KKwkJZ19mcmVlKGZpbGVuYW1lX3B2 ZTIpOwogCX0gZWxzZSB7CiAJCWdvdG8ga2V5ZXJyb3I7CiAJfQpAQCAtMTM2Myw2ICsxNTUzLDgg QEAgdXBkYXRlX3JyZF9kYXRhKAogCSAgICBjb25zdCBjaGFyICpjdXQgPSBycmRfc2tpcF9kYXRh KGRwLCBkYXRhX2N1dG9mZik7CiAJICAgIGNvbnN0IGludCBkYXRhX2xlbiA9IGN1dCAtIGRwIC0g MTsgLy8gLTEgdG8gcmVtb3ZlIGxhc3QgY29sb24KIAkgICAgc25wcmludGYocnJkX2Zvcm1hdF91 cGRhdGVfYnVmZmVyLCBSUkRfRk9STUFUX0JVRkZFUl9TSVpFLCAiJS4qcyIsIGRhdGFfbGVuLCBk cCk7CisJfSBlbHNlIGlmIChwYWRkaW5nKSB7CisJICAgIHNucHJpbnRmKHJyZF9mb3JtYXRfdXBk YXRlX2J1ZmZlciwgUlJEX0ZPUk1BVF9CVUZGRVJfU0laRSwgIiVzOiVzIiwgZHAsIHBhZGRpbmcp OwogCX0gZWxzZSB7CiAJICAgIHNucHJpbnRmKHJyZF9mb3JtYXRfdXBkYXRlX2J1ZmZlciwgUlJE X0ZPUk1BVF9CVUZGRVJfU0laRSwgIiVzIiwgZHApOwogCX0KLS0gCjIuMzkuNQoKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpwdmUtZGV2ZWwgbWFpbGlu ZyBsaXN0CnB2ZS1kZXZlbEBsaXN0cy5wcm94bW94LmNvbQpodHRwczovL2xpc3RzLnByb3htb3gu Y29tL2NnaS1iaW4vbWFpbG1hbi9saXN0aW5mby9wdmUtZGV2ZWwK