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 A53AF1FF16B for <inbox@lore.proxmox.com>; Thu, 3 Apr 2025 12:36:12 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 72CC33CBB8; Thu, 3 Apr 2025 12:35:28 +0200 (CEST) From: Markus Frank <m.frank@proxmox.com> To: pve-devel@lists.proxmox.com Date: Thu, 3 Apr 2025 12:34:38 +0200 Message-Id: <20250403103442.136958-9-m.frank@proxmox.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250403103442.136958-1-m.frank@proxmox.com> References: <20250403103442.136958-1-m.frank@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -1.005 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 KAM_MAILER 2 Automated Mailer Tag Left in Email 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 manager v15 08/12] api: add resource map api endpoints for directories 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> UmV2aWV3ZWQtYnk6IEZpb25hIEVibmVyIDxmLmVibmVyQHByb3htb3guY29tPgpSZXZpZXdlZC1i eTogTGF1cmVuyJtpdSBMZWFodS1WbMSDZHVjdSA8bC5sZWFodS12bGFkdWN1QHByb3htb3guY29t ClJldmlld2VkLWJ5OiBEYW5pZWwgS3JhbCA8ZC5rcmFsQHByb3htb3guY29tPgpUZXN0ZWQtYnk6 IExhdXJlbsibaXUgTGVhaHUtVmzEg2R1Y3UgPGwubGVhaHUtdmxhZHVjdUBwcm94bW94LmNvbT4K VGVzdGVkLWJ5OiBEYW5pZWwgS3JhbCA8ZC5rcmFsQHByb3htb3guY29tPgpTaWduZWQtb2ZmLWJ5 OiBNYXJrdXMgRnJhbmsgPG0uZnJhbmtAcHJveG1veC5jb20+Ci0tLQpubyBjaGFuZ2VzIGluIHYx NQoKIFBWRS9BUEkyL0NsdXN0ZXIvTWFwcGluZy5wbSAgICAgICB8ICAgNyArCiBQVkUvQVBJMi9D bHVzdGVyL01hcHBpbmcvRGlyLnBtICAgfCAzMDggKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrCiBQVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUgfCAgIDEgKwogMyBmaWxlcyBj aGFuZ2VkLCAzMTYgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IFBWRS9BUEkyL0Ns dXN0ZXIvTWFwcGluZy9EaXIucG0KCmRpZmYgLS1naXQgYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBp bmcucG0gYi9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcucG0KaW5kZXggNDAzODY1NzkuLjlmMGRj ZDJiIDEwMDY0NAotLS0gYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcucG0KKysrIGIvUFZFL0FQ STIvQ2x1c3Rlci9NYXBwaW5nLnBtCkBAIC0zLDExICszLDE3IEBAIHBhY2thZ2UgUFZFOjpBUEky OjpDbHVzdGVyOjpNYXBwaW5nOwogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsKIAordXNlIFBW RTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6RGlyOwogdXNlIFBWRTo6QVBJMjo6Q2x1c3Rlcjo6 TWFwcGluZzo6UENJOwogdXNlIFBWRTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6VVNCOwogCiB1 c2UgYmFzZSBxdyhQVkU6OlJFU1RIYW5kbGVyKTsKIAorX19QQUNLQUdFX18tPnJlZ2lzdGVyX21l dGhvZCAoeworICAgIHN1YmNsYXNzID0+ICJQVkU6OkFQSTI6OkNsdXN0ZXI6Ok1hcHBpbmc6OkRp ciIsCisgICAgcGF0aCA9PiAnZGlyJywKK30pOworCiBfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0 aG9kICh7CiAgICAgc3ViY2xhc3MgPT4gIlBWRTo6QVBJMjo6Q2x1c3Rlcjo6TWFwcGluZzo6UENJ IiwKICAgICBwYXRoID0+ICdwY2knLApAQCAtNDEsNiArNDcsNyBAQCBfX1BBQ0tBR0VfXy0+cmVn aXN0ZXJfbWV0aG9kICh7CiAJbXkgKCRwYXJhbSkgPSBAXzsKIAogCW15ICRyZXN1bHQgPSBbCisJ ICAgIHsgbmFtZSA9PiAnZGlyJyB9LAogCSAgICB7IG5hbWUgPT4gJ3BjaScgfSwKIAkgICAgeyBu YW1lID0+ICd1c2InIH0sCiAJXTsKZGlmZiAtLWdpdCBhL1BWRS9BUEkyL0NsdXN0ZXIvTWFwcGlu Zy9EaXIucG0gYi9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvRGlyLnBtCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5mOTA1Y2VmMwotLS0gL2Rldi9udWxsCisrKyBiL1BWRS9B UEkyL0NsdXN0ZXIvTWFwcGluZy9EaXIucG0KQEAgLTAsMCArMSwzMDggQEAKK3BhY2thZ2UgUFZF OjpBUEkyOjpDbHVzdGVyOjpNYXBwaW5nOjpEaXI7CisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2Fybmlu Z3M7CisKK3VzZSBTdG9yYWJsZSBxdyhkY2xvbmUpOworCit1c2UgUFZFOjpJTm90aWZ5OwordXNl IFBWRTo6SlNPTlNjaGVtYSBxdyhnZXRfc3RhbmRhcmRfb3B0aW9uKTsKK3VzZSBQVkU6Ok1hcHBp bmc6OkRpciAoKTsKK3VzZSBQVkU6OlJQQ0Vudmlyb25tZW50OwordXNlIFBWRTo6U2VjdGlvbkNv bmZpZzsKK3VzZSBQVkU6OlRvb2xzIHF3KGV4dHJhY3RfcGFyYW0pOworCit1c2UgYmFzZSBxdyhQ VkU6OlJFU1RIYW5kbGVyKTsKKworX19QQUNLQUdFX18tPnJlZ2lzdGVyX21ldGhvZCAoeworICAg IG5hbWUgPT4gJ2luZGV4JywKKyAgICBwYXRoID0+ICcnLAorICAgIG1ldGhvZCA9PiAnR0VUJywK KyAgICAjIG9ubHkgcHJveHkgaWYgd2UgZ2l2ZSB0aGUgJ2NoZWNrLW5vZGUnIHBhcmFtZXRlcgor ICAgIHByb3h5dG9fY2FsbGJhY2sgPT4gc3ViIHsKKwlteSAoJHJwY2VudiwgJHByb3h5dG8sICRw YXJhbSkgPSBAXzsKKwlyZXR1cm4gJHBhcmFtLT57J2NoZWNrLW5vZGUnfSAvLyAnbG9jYWxob3N0 JzsKKyAgICB9LAorICAgIGRlc2NyaXB0aW9uID0+ICJMaXN0IGRpcmVjdG9yeSBtYXBwaW5nIiwK KyAgICBwZXJtaXNzaW9ucyA9PiB7CisJZGVzY3JpcHRpb24gPT4gIk9ubHkgbGlzdHMgZW50cmll cyB3aGVyZSB5b3UgaGF2ZSAnTWFwcGluZy5Nb2RpZnknLCAnTWFwcGluZy5Vc2UnIG9yIgorCSAg ICAuIiAnTWFwcGluZy5BdWRpdCcgcGVybWlzc2lvbnMgb24gJy9tYXBwaW5nL2Rpci88aWQ+Jy4i LAorCXVzZXIgPT4gJ2FsbCcsCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IHsKKwlhZGRpdGlv bmFsUHJvcGVydGllcyA9PiAwLAorCXByb3BlcnRpZXMgPT4geworCSAgICAnY2hlY2stbm9kZScg PT4gZ2V0X3N0YW5kYXJkX29wdGlvbigncHZlLW5vZGUnLCB7CisJCWRlc2NyaXB0aW9uID0+ICJJ ZiBnaXZlbiwgY2hlY2tzIHRoZSBjb25maWd1cmF0aW9ucyBvbiB0aGUgZ2l2ZW4gbm9kZSBmb3Ii CisJCSAgICAuIiBjb3JyZWN0bmVzcywgYW5kIGFkZHMgcmVsZXZhbnQgZGlhZ25vc3RpY3MgZm9y IHRoZSBkaXJlY3RvcnkgdG8gdGhlIHJlc3BvbnNlLiIsCisJCW9wdGlvbmFsID0+IDEsCisJICAg IH0pLAorCX0sCisgICAgfSwKKyAgICByZXR1cm5zID0+IHsKKwl0eXBlID0+ICdhcnJheScsCisJ aXRlbXMgPT4geworCSAgICB0eXBlID0+ICJvYmplY3QiLAorCSAgICBwcm9wZXJ0aWVzID0+IHsK KwkJaWQgPT4geworCQkgICAgdHlwZSA9PiAnc3RyaW5nJywKKwkJICAgIGRlc2NyaXB0aW9uID0+ ICJUaGUgbG9naWNhbCBJRCBvZiB0aGUgbWFwcGluZy4iCisJCX0sCisJCW1hcCA9PiB7CisJCSAg ICB0eXBlID0+ICdhcnJheScsCisJCSAgICBkZXNjcmlwdGlvbiA9PiAiVGhlIGVudHJpZXMgb2Yg dGhlIG1hcHBpbmcuIiwKKwkJICAgIGl0ZW1zID0+IHsKKwkJCXR5cGUgPT4gJ3N0cmluZycsCisJ CQlkZXNjcmlwdGlvbiA9PiAiQSBtYXBwaW5nIGZvciBhIG5vZGUuIiwKKwkJICAgIH0sCisJCX0s CisJCWRlc2NyaXB0aW9uID0+IHsKKwkJICAgIHR5cGUgPT4gJ3N0cmluZycsCisJCSAgICBkZXNj cmlwdGlvbiA9PiAiQSBkZXNjcmlwdGlvbiBvZiB0aGUgbG9naWNhbCBtYXBwaW5nLiIsCisJCX0s CisJCWNoZWNrcyA9PiB7CisJCSAgICB0eXBlID0+ICJhcnJheSIsCisJCSAgICBvcHRpb25hbCA9 PiAxLAorCQkgICAgZGVzY3JpcHRpb24gPT4gIkEgbGlzdCBvZiBjaGVja3MsIG9ubHkgcHJlc2Vu dCBpZiAnY2hlY2stbm9kZScgaXMgc2V0LiIsCisJCSAgICBpdGVtcyA9PiB7CisJCQl0eXBlID0+ ICdvYmplY3QnLAorCQkJcHJvcGVydGllcyA9PiB7CisJCQkgICAgc2V2ZXJpdHkgPT4geworCQkJ CXR5cGUgPT4gInN0cmluZyIsCisJCQkJZW51bSA9PiBbJ3dhcm5pbmcnLCAnZXJyb3InXSwKKwkJ CQlkZXNjcmlwdGlvbiA9PiAiVGhlIHNldmVyaXR5IG9mIHRoZSBlcnJvciIsCisJCQkgICAgfSwK KwkJCSAgICBtZXNzYWdlID0+IHsKKwkJCQl0eXBlID0+ICJzdHJpbmciLAorCQkJCWRlc2NyaXB0 aW9uID0+ICJUaGUgbWVzc2FnZSBvZiB0aGUgZXJyb3IiLAorCQkJICAgIH0sCisJCQl9LAorCQkg ICAgfQorCQl9LAorCSAgICB9LAorCX0sCisJbGlua3MgPT4gWyB7IHJlbCA9PiAnY2hpbGQnLCBo cmVmID0+ICJ7aWR9IiB9IF0sCisgICAgfSwKKyAgICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJh bSkgPSBAXzsKKworCW15ICRycGNlbnYgPSBQVkU6OlJQQ0Vudmlyb25tZW50OjpnZXQoKTsKKwlt eSAkYXV0aHVzZXIgPSAkcnBjZW52LT5nZXRfdXNlcigpOworCisJbXkgJGNoZWNrX25vZGUgPSAk cGFyYW0tPnsnY2hlY2stbm9kZSd9OworCW15ICRsb2NhbF9ub2RlID0gUFZFOjpJTm90aWZ5Ojpu b2RlbmFtZSgpOworCisJZGllICJ3cm9uZyBub2RlIHRvIGNoZWNrIC0gJGNoZWNrX25vZGUgIT0g JGxvY2FsX25vZGVcbiIKKwkgICAgaWYgZGVmaW5lZCgkY2hlY2tfbm9kZSkgJiYgJGNoZWNrX25v ZGUgbmUgJ2xvY2FsaG9zdCcgJiYgJGNoZWNrX25vZGUgbmUgJGxvY2FsX25vZGU7CisKKwlteSAk Y2ZnID0gUFZFOjpNYXBwaW5nOjpEaXI6OmNvbmZpZygpOworCisJbXkgJGNhbl9zZWVfbWFwcGlu Z19wcml2cyA9IFsnTWFwcGluZy5Nb2RpZnknLCAnTWFwcGluZy5Vc2UnLCAnTWFwcGluZy5BdWRp dCddOworCisJbXkgJHJlcyA9IFtdOworCWZvciBteSAkaWQgKGtleXMgJGNmZy0+e2lkc30tPiUq KSB7CisJICAgIG5leHQgaWYgISRycGNlbnYtPmNoZWNrX2FueSgkYXV0aHVzZXIsICIvbWFwcGlu Zy9kaXIvJGlkIiwgJGNhbl9zZWVfbWFwcGluZ19wcml2cywgMSk7CisJICAgIG5leHQgaWYgISRj ZmctPntpZHN9LT57JGlkfTsKKworCSAgICBteSAkZW50cnkgPSBkY2xvbmUoJGNmZy0+e2lkc30t PnskaWR9KTsKKwkgICAgJGVudHJ5LT57aWR9ID0gJGlkOworCSAgICAkZW50cnktPntkaWdlc3R9 ID0gJGNmZy0+e2RpZ2VzdH07CisKKwkgICAgaWYgKGRlZmluZWQoJGNoZWNrX25vZGUpKSB7CisJ CSRlbnRyeS0+e2NoZWNrc30gPSBbXTsKKwkJaWYgKG15ICRtYXBwaW5ncyA9IFBWRTo6TWFwcGlu Zzo6RGlyOjpnZXRfbm9kZV9tYXBwaW5nKCRjZmcsICRpZCwgJGNoZWNrX25vZGUpKSB7CisJCSAg ICBpZiAoIXNjYWxhcigkbWFwcGluZ3MtPkAqKSkgeworCQkJcHVzaCAkZW50cnktPntjaGVja3N9 LT5AKiwgeworCQkJICAgIHNldmVyaXR5ID0+ICd3YXJuaW5nJywKKwkJCSAgICBtZXNzYWdlID0+ ICJObyBtYXBwaW5nIGZvciBub2RlICRjaGVja19ub2RlLiIsCisJCQl9OworCQkgICAgfQorCQkg ICAgZm9yIG15ICRtYXBwaW5nICgkbWFwcGluZ3MtPkAqKSB7CisJCQlldmFsIHsgUFZFOjpNYXBw aW5nOjpEaXI6OmFzc2VydF92YWxpZCgkbWFwcGluZykgfTsKKwkJCWlmIChteSAkZXJyID0gJEAp IHsKKwkJCSAgICBwdXNoICRlbnRyeS0+e2NoZWNrc30tPkAqLCB7CisJCQkJc2V2ZXJpdHkgPT4g J2Vycm9yJywKKwkJCQltZXNzYWdlID0+ICJJbnZhbGlkIGNvbmZpZ3VyYXRpb246ICRlcnIiLAor CQkJICAgIH07CisJCQl9CisJCSAgICB9CisJCX0KKwkgICAgfQorCisJICAgIHB1c2ggQCRyZXMs ICRlbnRyeTsKKwl9CisKKwlyZXR1cm4gJHJlczsKKyAgICB9LAorfSk7CisKK19fUEFDS0FHRV9f LT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+ICdnZXQnLAorICAgIHByb3RlY3RlZCA9 PiAxLAorICAgIHBhdGggPT4gJ3tpZH0nLAorICAgIG1ldGhvZCA9PiAnR0VUJywKKyAgICBkZXNj cmlwdGlvbiA9PiAiR2V0IGRpcmVjdG9yeSBtYXBwaW5nLiIsCisgICAgcGVybWlzc2lvbnMgPT4g eworCWNoZWNrID0+WydvcicsCisJICAgIFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScsIFsn TWFwcGluZy5Vc2UnXV0sCisJICAgIFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScsIFsnTWFw cGluZy5Nb2RpZnknXV0sCisJICAgIFsncGVybScsICcvbWFwcGluZy9kaXIve2lkfScsIFsnTWFw cGluZy5BdWRpdCddXSwKKwldLAorICAgIH0sCisgICAgcGFyYW1ldGVycyA9PiB7CisJYWRkaXRp b25hbFByb3BlcnRpZXMgPT4gMCwKKwlwcm9wZXJ0aWVzID0+IHsKKwkgICAgaWQgPT4geworCQl0 eXBlID0+ICdzdHJpbmcnLAorCQlmb3JtYXQgPT4gJ3B2ZS1jb25maWdpZCcsCisJICAgIH0sCisJ fQorICAgIH0sCisgICAgcmV0dXJucyA9PiB7IHR5cGUgPT4gJ29iamVjdCcgfSwKKyAgICBjb2Rl ID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsKKworCW15ICRjZmcgPSBQVkU6Ok1hcHBpbmc6 OkRpcjo6Y29uZmlnKCk7CisJbXkgJGlkID0gJHBhcmFtLT57aWR9OworCisJbXkgJGVudHJ5ID0g JGNmZy0+e2lkc30tPnskaWR9OworCWRpZSAibWFwcGluZyAnJHBhcmFtLT57aWR9JyBub3QgZm91 bmRcbiIgaWYgIWRlZmluZWQoJGVudHJ5KTsKKworCW15ICRkYXRhID0gZGNsb25lKCRlbnRyeSk7 CisKKwkkZGF0YS0+e2RpZ2VzdH0gPSAkY2ZnLT57ZGlnZXN0fTsKKworCXJldHVybiAkZGF0YTsK KyAgICB9fSk7CisKK19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+ ICdjcmVhdGUnLAorICAgIHByb3RlY3RlZCA9PiAxLAorICAgIHBhdGggPT4gJycsCisgICAgbWV0 aG9kID0+ICdQT1NUJywKKyAgICBkZXNjcmlwdGlvbiA9PiAiQ3JlYXRlIGEgbmV3IGRpcmVjdG9y eSBtYXBwaW5nLiIsCisgICAgcGVybWlzc2lvbnMgPT4geworCWNoZWNrID0+IFsncGVybScsICcv bWFwcGluZy9kaXInLCBbJ01hcHBpbmcuTW9kaWZ5J11dLAorICAgIH0sCisgICAgcGFyYW1ldGVy cyA9PiBQVkU6Ok1hcHBpbmc6OkRpci0+Y3JlYXRlU2NoZW1hKDEpLAorICAgIHJldHVybnMgPT4g eworCXR5cGUgPT4gJ251bGwnLAorICAgIH0sCisgICAgY29kZSA9PiBzdWIgeworCW15ICgkcGFy YW0pID0gQF87CisKKwlteSAkaWQgPSBleHRyYWN0X3BhcmFtKCRwYXJhbSwgJ2lkJyk7CisKKwlt eSAkcGx1Z2luID0gUFZFOjpNYXBwaW5nOjpEaXItPmxvb2t1cCgnZGlyJyk7CisJbXkgJG9wdHMg PSAkcGx1Z2luLT5jaGVja19jb25maWcoJGlkLCAkcGFyYW0sIDEsIDEpOworCisJbXkgJG1hcF9s aXN0ID0gJG9wdHMtPnttYXB9OworCVBWRTo6TWFwcGluZzo6RGlyOjphc3NlcnRfdmFsaWRfbWFw X2xpc3QoJG1hcF9saXN0KTsKKworCVBWRTo6TWFwcGluZzo6RGlyOjpsb2NrX2Rpcl9jb25maWco c3ViIHsKKwkgICAgbXkgJGNmZyA9IFBWRTo6TWFwcGluZzo6RGlyOjpjb25maWcoKTsKKworCSAg ICBkaWUgImRpciBJRCAnJGlkJyBhbHJlYWR5IGRlZmluZWRcbiIgaWYgZGVmaW5lZCgkY2ZnLT57 aWRzfS0+eyRpZH0pOworCisJICAgICRjZmctPntpZHN9LT57JGlkfSA9ICRvcHRzOworCisJICAg IFBWRTo6TWFwcGluZzo6RGlyOjp3cml0ZV9kaXJfY29uZmlnKCRjZmcpOworCisJfSwgImNyZWF0 ZSBkaXJlY3RvcnkgbWFwcGluZyBmYWlsZWQiKTsKKworCXJldHVybjsKKyAgICB9LAorfSk7CisK K19fUEFDS0FHRV9fLT5yZWdpc3Rlcl9tZXRob2QgKHsKKyAgICBuYW1lID0+ICd1cGRhdGUnLAor ICAgIHByb3RlY3RlZCA9PiAxLAorICAgIHBhdGggPT4gJ3tpZH0nLAorICAgIG1ldGhvZCA9PiAn UFVUJywKKyAgICBkZXNjcmlwdGlvbiA9PiAiVXBkYXRlIGEgZGlyZWN0b3J5IG1hcHBpbmcuIiwK KyAgICBwZXJtaXNzaW9ucyA9PiB7CisJY2hlY2sgPT4gWydwZXJtJywgJy9tYXBwaW5nL2Rpci97 aWR9JywgWydNYXBwaW5nLk1vZGlmeSddXSwKKyAgICB9LAorICAgIHBhcmFtZXRlcnMgPT4gUFZF OjpNYXBwaW5nOjpEaXItPnVwZGF0ZVNjaGVtYSgpLAorICAgIHJldHVybnMgPT4geworCXR5cGUg PT4gJ251bGwnLAorICAgIH0sCisgICAgY29kZSA9PiBzdWIgeworCW15ICgkcGFyYW0pID0gQF87 CisKKwlteSAkZGlnZXN0ID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0sICdkaWdlc3QnKTsKKwlteSAk ZGVsZXRlID0gZXh0cmFjdF9wYXJhbSgkcGFyYW0sICdkZWxldGUnKTsKKwlteSAkaWQgPSBleHRy YWN0X3BhcmFtKCRwYXJhbSwgJ2lkJyk7CisKKwlpZiAoJGRlbGV0ZSkgeworCSAgICAkZGVsZXRl ID0gWyBQVkU6OlRvb2xzOjpzcGxpdF9saXN0KCRkZWxldGUpIF07CisJfQorCisJUFZFOjpNYXBw aW5nOjpEaXI6OmxvY2tfZGlyX2NvbmZpZyhzdWIgeworCSAgICBteSAkY2ZnID0gUFZFOjpNYXBw aW5nOjpEaXI6OmNvbmZpZygpOworCisJICAgIFBWRTo6VG9vbHM6OmFzc2VydF9pZl9tb2RpZmll ZCgkY2ZnLT57ZGlnZXN0fSwgJGRpZ2VzdCkgaWYgZGVmaW5lZCgkZGlnZXN0KTsKKworCSAgICBk aWUgImRpciBJRCAnJGlkJyBkb2VzIG5vdCBleGlzdFxuIiBpZiAhZGVmaW5lZCgkY2ZnLT57aWRz fS0+eyRpZH0pOworCisJICAgIG15ICRwbHVnaW4gPSBQVkU6Ok1hcHBpbmc6OkRpci0+bG9va3Vw KCdkaXInKTsKKwkgICAgbXkgJG9wdHMgPSAkcGx1Z2luLT5jaGVja19jb25maWcoJGlkLCAkcGFy YW0sIDEsIDEpOworCisJICAgIG15ICRtYXBfbGlzdCA9ICRvcHRzLT57bWFwfTsKKwkgICAgUFZF OjpNYXBwaW5nOjpEaXI6OmFzc2VydF92YWxpZF9tYXBfbGlzdCgkbWFwX2xpc3QpOworCisJICAg IG15ICRkYXRhID0gJGNmZy0+e2lkc30tPnskaWR9OworCisJICAgIG15ICRvcHRpb25zID0gJHBs dWdpbi0+cHJpdmF0ZSgpLT57b3B0aW9uc30tPntkaXJ9OworCSAgICBQVkU6OlNlY3Rpb25Db25m aWc6OmRlbGV0ZV9mcm9tX2NvbmZpZygkZGF0YSwgJG9wdGlvbnMsICRvcHRzLCAkZGVsZXRlKTsK KworCSAgICAkZGF0YS0+eyRffSA9ICRvcHRzLT57JF99IGZvciBrZXlzICRvcHRzLT4lKjsKKwor CSAgICBQVkU6Ok1hcHBpbmc6OkRpcjo6d3JpdGVfZGlyX2NvbmZpZygkY2ZnKTsKKworCX0sICJ1 cGRhdGUgZGlyZWN0b3J5IG1hcHBpbmcgZmFpbGVkIik7CisKKwlyZXR1cm47CisgICAgfSwKK30p OworCitfX1BBQ0tBR0VfXy0+cmVnaXN0ZXJfbWV0aG9kICh7CisgICAgbmFtZSA9PiAnZGVsZXRl JywKKyAgICBwcm90ZWN0ZWQgPT4gMSwKKyAgICBwYXRoID0+ICd7aWR9JywKKyAgICBtZXRob2Qg PT4gJ0RFTEVURScsCisgICAgZGVzY3JpcHRpb24gPT4gIlJlbW92ZSBkaXJlY3RvcnkgbWFwcGlu Zy4iLAorICAgIHBlcm1pc3Npb25zID0+IHsKKwljaGVjayA9PiBbICdwZXJtJywgJy9tYXBwaW5n L2RpcicsIFsnTWFwcGluZy5Nb2RpZnknXV0sCisgICAgfSwKKyAgICBwYXJhbWV0ZXJzID0+IHsK KwlhZGRpdGlvbmFsUHJvcGVydGllcyA9PiAwLAorCXByb3BlcnRpZXMgPT4geworCSAgICBpZCA9 PiB7CisJCXR5cGUgPT4gJ3N0cmluZycsCisJCWZvcm1hdCA9PiAncHZlLWNvbmZpZ2lkJywKKwkg ICAgfSwKKwl9CisgICAgfSwKKyAgICByZXR1cm5zID0+IHsgdHlwZSA9PiAnbnVsbCcgfSwKKyAg ICBjb2RlID0+IHN1YiB7CisJbXkgKCRwYXJhbSkgPSBAXzsKKworCW15ICRpZCA9ICRwYXJhbS0+ e2lkfTsKKworCVBWRTo6TWFwcGluZzo6RGlyOjpsb2NrX2Rpcl9jb25maWcoc3ViIHsKKwkgICAg bXkgJGNmZyA9IFBWRTo6TWFwcGluZzo6RGlyOjpjb25maWcoKTsKKworCSAgICBpZiAoJGNmZy0+ e2lkc30tPnskaWR9KSB7CisJCWRlbGV0ZSAkY2ZnLT57aWRzfS0+eyRpZH07CisJICAgIH0KKwor CSAgICBQVkU6Ok1hcHBpbmc6OkRpcjo6d3JpdGVfZGlyX2NvbmZpZygkY2ZnKTsKKworCX0sICJk ZWxldGUgZGlyIG1hcHBpbmcgZmFpbGVkIik7CisKKwlyZXR1cm47CisgICAgfQorfSk7CisKKzE7 CmRpZmYgLS1naXQgYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUgYi9QVkUvQVBJ Mi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUKaW5kZXggZTczNDVhYjQuLjVkYmIzZjVjIDEwMDY0 NAotLS0gYS9QVkUvQVBJMi9DbHVzdGVyL01hcHBpbmcvTWFrZWZpbGUKKysrIGIvUFZFL0FQSTIv Q2x1c3Rlci9NYXBwaW5nL01ha2VmaWxlCkBAIC0zLDYgKzMsNyBAQCBpbmNsdWRlIC4uLy4uLy4u Ly4uL2RlZmluZXMubWsKICMgZm9yIG5vZGUgaW5kZXBlbmRlbnQsIGNsdXN0ZXItd2lkZSBhcHBs aWNhYmxlLCBBUEkgZW5kcG9pbnRzCiAjIGVuc3VyZSB3ZSBkbyBub3QgY29uZmxpY3Qgd2l0aCBm aWxlcyBzaGlwcGVkIGJ5IHB2ZS1jbHVzdGVyISEKIFBFUkxTT1VSQ0U9IAlcCisJRGlyLnBtICBc CiAJUENJLnBtCVwKIAlVU0IucG0KIAotLSAKMi4zOS41CgoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCnB2ZS1kZXZlbCBtYWlsaW5nIGxpc3QKcHZlLWRl dmVsQGxpc3RzLnByb3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9t YWlsbWFuL2xpc3RpbmZvL3B2ZS1kZXZlbAo=