From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id A84FCCCA471 for ; Tue, 30 Sep 2025 11:51:04 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v3Ypi-0001Ri-Ad; Tue, 30 Sep 2025 07:47:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3Yoj-0000zS-El for grub-devel@gnu.org; Tue, 30 Sep 2025 07:46:50 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v3Yoe-0006P7-EM for grub-devel@gnu.org; Tue, 30 Sep 2025 07:46:48 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58U7ZpJd008978; Tue, 30 Sep 2025 11:46:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=nNorVG bDMVzEZL+Iz0sBScIAfbfan/7gkDwBz5AT+S8=; b=QnQJVuUXivB6cmJ25eRlgh FtnKaxUZMCR1FBEHwoWHd6EEH+9N0gMbT5CL1IAQ7138qPQNCuHI73E54jNJTTvH PteWqkdd58tXUAlSmLifCEwSEeR7r8RBbOIgPVleOH3Jmd4PjeQF/8ktYsm0NURe fapUWzVh/9cMjCVR1embvybKxZSq424A8AJ4g8grXu5b1hVVmMZRWBq2iuVZvc2H E/4/l4aOlmSAi0FI9KBn399UdwLmhwZtdWF3U6JnPz0sHv4QIUClEx9R0eAa6nmq pY23WKN9gBN6VKJ71ve4J0iaMfmaU6MxPVRvkvEX8z+KgC9BS+Steikna7kypf7w == Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 49e5bqrc43-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Sep 2025 11:46:40 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58U9P21W026795; Tue, 30 Sep 2025 11:46:39 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49eu8mu53t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 30 Sep 2025 11:46:39 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58UBka5448628200 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 30 Sep 2025 11:46:36 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id EA72420043; Tue, 30 Sep 2025 11:46:35 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 374EA20040; Tue, 30 Sep 2025 11:46:33 +0000 (GMT) Received: from localhost.localdomain (unknown [9.39.16.143]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 30 Sep 2025 11:46:33 +0000 (GMT) From: Sudhakar Kuppusamy To: grub-devel@gnu.org Cc: dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, msuchanek@suse.com, mlewando@redhat.com, stefanb@linux.ibm.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com, Sudhakar Kuppusamy , sridharm@linux.ibm.com, Daniel Kiper Subject: [PATCH v13 15/20] appended signatures: GRUB commands to manage the certificates Date: Tue, 30 Sep 2025 17:10:09 +0530 Message-ID: <20250930114018.78215-16-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250930114018.78215-1-sudhakar@linux.ibm.com> References: <20250930114018.78215-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTI2MDIxNCBTYWx0ZWRfX1ZjvkD9Ge2u0 R8ml1WUDSbqs/j8J9s3d7WSJL+PvaCU9iNETr3SaLK5xSHMe1yNwW0WWXQ8QynHurfCnYxNUCPt xex+qgPBKEsdqX8uMwyDU9Ij7Jysi0cFH68lZ/sPxspGWQoha4HCOpih98YeuPFI0czr7+i+auP lRjWdw8cdvwMrHwNH9ajL/D/PruXXr9QgdS1dY/i9dU+wnONjfgsiMCLfGZ9xw2h/LhfrxsurgC t8VCE165dTa6znpDQiZ5PPBKNmiQiz5cMLYOCRe7mXlb+wwqgxLJITdx5uZCVpzh0BfvV7tw1om de5DyXT2jHGBjclcpMbyxTeE3+CCNiwOj4HinxHShe97mPZeYgkkOLZm+QKQebv6XRGqUJuHoNx ZGgDKNklc5U8KWc9xcRGTcD9bzAb1Q== X-Proofpoint-GUID: QAnMp-RFRU-oIkiQTDIq2SEBNhuoZ1Xb X-Authority-Analysis: v=2.4 cv=LLZrgZW9 c=1 sm=1 tr=0 ts=68dbc320 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=JuTF4qcAAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=RMYmVPlx0xnhtRZVaPQA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=WlT8qwTXB_Kj6um4hl3b:22 a=cPQSjfK2_nFv0Q5t_7PE:22 X-Proofpoint-ORIG-GUID: QAnMp-RFRU-oIkiQTDIq2SEBNhuoZ1Xb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-30_02,2025-09-29_04,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 impostorscore=0 bulkscore=0 malwarescore=0 suspectscore=0 clxscore=1015 priorityscore=1501 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2509150000 definitions=main-2509260214 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org SW50cm9kdWNpbmcgdGhlIGZvbGxvd2luZyBHUlVCIGNvbW1hbmRzIHRvIG1hbmFnZSB0aGUgY2Vy dGlmaWNhdGVzLgoKIDEuIGFwcGVuZF9saXN0X2RiOgogICAgICBTaG93IHRoZSBsaXN0IG9mIHRy dXN0ZWQgY2VydGlmaWNhdGVzIGZyb20gdGhlIGRiIGxpc3QKIDIuIGFwcGVuZF9hZGRfZGJfY2Vy dDoKICAgICAgQWRkIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHRvIHRoZSBkYiBsaXN0CiAzLiBh cHBlbmRfYWRkX2RieF9jZXJ0OgogICAgICBBZGQgdGhlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUg dG8gdGhlIGRieCBsaXN0CiA0LiBhcHBlbmRfdmVyaWZ5OgogICAgICBWZXJpZnkgdGhlIHNpZ25l ZCBmaWxlIHVzaW5nIGRiIGxpc3QKCk5vdGUgdGhhdCBpZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9u IChjaGVja19hcHBlbmRlZF9zaWduYXR1cmVzKSBpcyBzZXQgdG8geWVzLAp0aGUgYXBwZW5kX2Fk ZF9kYl9jZXJ0IGFuZCBhcHBlbmRfYWRkX2RieF9jZXJ0IGNvbW1hbmRzIG9ubHkgYWNjZXB0IHRo ZSBmaWxlCuKAmFg1MDlfY2VydGlmaWNhdGXigJkgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBhcHBl bmRlZCBzaWduYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0ZW5z Lm5ldD4KU2lnbmVkLW9mZi1ieTogU3VkaGFrYXIgS3VwcHVzYW15IDxzdWRoYWthckBsaW51eC5p Ym0uY29tPgpSZXZpZXdlZC1ieTogQXZuaXNoIENob3VoYW4gPGF2bmlzaEBsaW51eC5pYm0uY29t PgpSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xlLmNvbT4KLS0t CiBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyB8IDMyMCArKysr KysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzIwIGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyBiL2dy dWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCmluZGV4IGI0YjllNGNk My4uZDA0YWFmMWUyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcv YXBwZW5kZWRzaWcuYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5k ZWRzaWcuYwpAQCAtMTIzLDYgKzEyMyw5IEBAIHN0YXRpYyBib29sIGFwcGVuZF9rZXlfbWdtdCA9 IGZhbHNlOwogLyogUGxhdGZvcm0gS2V5U3RvcmUgZGIgYW5kIGRieC4gKi8KIHN0YXRpYyBncnVi X3Brc190ICpwa3Nfa2V5c3RvcmU7CiAKKy8qIEFwcGVuZGVkIHNpZ25hdHVyZSBzaXplLiAqLwor c3RhdGljIGdydWJfc2l6ZV90IGFwcGVuZF9zaWdfbGVuID0gMDsKKwogc3RhdGljIGdydWJfc3Np emVfdAogcHNldWRvX3JlYWQgKHN0cnVjdCBncnViX2ZpbGUgKmZpbGUsIGNoYXIgKmJ1ZiwgZ3J1 Yl9zaXplX3QgbGVuKQogewpAQCAtMTM2LDYgKzEzOSw2NSBAQCBzdGF0aWMgc3RydWN0IGdydWJf ZnMgcHNldWRvX2ZzID0gewogICAuZnNfcmVhZCA9IHBzZXVkb19yZWFkCiB9OwogCisvKgorICog V2UgY2Fubm90IHVzZSBoZXhkdW1wKCkgdG8gZGlzcGxheSBoYXNoIGRhdGEgYmVjYXVzZSBpdCBp cyB0eXBpY2FsbHkgZGlzcGxheWVkCisgKiBpbiBoZXhhZGVjaW1hbCBmb3JtYXQsIGFsb25nIHdp dGggYW4gQVNDSUkgcmVwcmVzZW50YXRpb24gb2YgdGhlIHNhbWUgZGF0YS4KKyAqCisgKiBFeGFt cGxlOiBzaGEyNTYgaGFzaCBkYXRhCisgKiAwMDAwMDAwMCAgNTIgYjUgOTAgNDkgNjQgZGUgMjIg ZDcgIDRlIDVmIDRmIGI0IDFiIDUxIDljIDM0ICB8Ui4uSWQuIi5OX08uLlEuNHwKKyAqIDAwMDAw MDEwICBiMSA5NiAyMSA3YyA5MSA3OCBhNSAwZCAgMjAgOGMgZTkgNWMgMjIgNTQgNTMgZjcgIHwu LiF8LnguLiAuLlwiVFMufAorICoKKyAqIEFuIGFwcGVuZGVkIHNpZ25hdHVyZSBvbmx5IHJlcXVp cmVkIHRvIGRpc3BsYXkgdGhlIGhleGFkZWNpbWFsIG9mIHRoZSBoYXNoIGRhdGEKKyAqIGJ5IHNl cGFyYXRpbmcgZWFjaCBieXRlIHdpdGggIjoiLiBTbywgd2UgaW50cm9kdWNlZCBhIG5ldyBtZXRo b2QgaGV4ZHVtcF9jb2xvbgorICogdG8gZGlzcGxheSBpdC4KKyAqCisgKiBFeGFtcGxlOiBTaGEy NTYgaGFzaCBkYXRhCisgKiAgNTI6YjU6OTA6NDk6NjQ6ZGU6MjI6ZDc6NGU6NWY6NGY6YjQ6MWI6 NTE6OWM6MzQ6CisgKiAgYjE6OTY6MjE6N2M6OTE6Nzg6YTU6MGQ6MjA6OGM6ZTk6NWM6MjI6NTQ6 NTM6ZjcKKyAqLworc3RhdGljIHZvaWQKK2hleGR1bXBfY29sb24gKGNvbnN0IGdydWJfdWludDhf dCAqZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgbGVuZ3RoKQoreworICBncnViX3NpemVfdCBpLCBj b3VudCA9IDA7CisKKyAgZm9yIChpID0gMDsgaSA8IGxlbmd0aCAtIDE7IGkrKykKKyAgICB7Cisg ICAgICBncnViX3ByaW50ZiAoIiUwMng6IiwgZGF0YVtpXSk7CisgICAgICBjb3VudCsrOworICAg ICAgaWYgKGNvdW50ID09IDE2KQorICAgICAgICB7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCJc biAgICAgICAgICIpOworICAgICAgICAgIGNvdW50ID0gMDsKKyAgICAgICAgfQorICAgIH0KKwor ICBncnViX3ByaW50ZiAoIiUwMnhcbiIsIGRhdGFbaV0pOworfQorCitzdGF0aWMgdm9pZAorcHJp bnRfY2VydGlmaWNhdGUgKGNvbnN0IGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQsIGNvbnN0IGdydWJf dWludDMyX3QgY2VydF9udW0pCit7CisgIGdydWJfdWludDMyX3QgaTsKKworICBncnViX3ByaW50 ZiAoIlxuQ2VydGlmaWNhdGU6ICV1XG4iLCBjZXJ0X251bSk7CisgIGdydWJfcHJpbnRmICgiICAg IERhdGE6XG4iKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgIFZlcnNpb246ICV1ICgweCV1KVxu IiwgY2VydC0+dmVyc2lvbiArIDEsIGNlcnQtPnZlcnNpb24pOworICBncnViX3ByaW50ZiAoIiAg ICAgICAgU2VyaWFsIE51bWJlcjpcbiAgICAgICAgICAgICAiKTsKKworICBmb3IgKGkgPSAwOyBp IDwgY2VydC0+c2VyaWFsX2xlbiAtIDE7IGkrKykKKyAgICBncnViX3ByaW50ZiAoIiUwMng6Iiwg Y2VydC0+c2VyaWFsW2ldKTsKKworICBncnViX3ByaW50ZiAoIiUwMnhcbiIsIGNlcnQtPnNlcmlh bFtjZXJ0LT5zZXJpYWxfbGVuIC0gMV0pOworICBncnViX3ByaW50ZiAoIiAgICAgICAgSXNzdWVy OiAlc1xuIiwgY2VydC0+aXNzdWVyKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgIFN1YmplY3Q6 ICVzXG4iLCBjZXJ0LT5zdWJqZWN0KTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgIFN1YmplY3Qg UHVibGljIEtleSBJbmZvOlxuIik7CisgIGdydWJfcHJpbnRmICgiICAgICAgICAgICAgUHVibGlj IEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb25cbiIpOworICBncnViX3ByaW50ZiAoIiAgICAg ICAgICAgICAgICBSU0EgUHVibGljLUtleTogKCVkIGJpdClcbiIsIGNlcnQtPm1vZHVsdXNfc2l6 ZSk7CisgIGdydWJfcHJpbnRmICgiICAgIEZpbmdlcnByaW50OiBzaGEyNTZcbiAgICAgICAgICIp OworICBoZXhkdW1wX2NvbG9uICgmY2VydC0+ZmluZ2VycHJpbnRbR1JVQl9GSU5HRVJQUklOVF9T SEEyNTZdWzBdLAorICAgICAgICAgICAgICAgICBncnViX3N0cmxlbiAoKGNoYXIgKikgY2VydC0+ ZmluZ2VycHJpbnRbR1JVQl9GSU5HRVJQUklOVF9TSEEyNTZdKSk7Cit9CisKIC8qCiAgKiBHVUlE IGNhbiBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgaGFzaGluZyBmdW5jdGlvbiBhbmQgZ2VuZXJh dGUgdGhlIGhhc2ggdXNpbmcKICAqIGRldGVybWluZWQgaGFzaGluZyBmdW5jdGlvbi4KQEAgLTQy OSw2ICs0OTEsNjEgQEAgYWRkX2NlcnRpZmljYXRlIChjb25zdCBncnViX3VpbnQ4X3QgKmRhdGEs IGNvbnN0IGdydWJfc2l6ZV90IGRhdGFfc2l6ZSwKICAgcmV0dXJuIHJjOwogfQogCitzdGF0aWMg dm9pZAorX3JlbW92ZV9jZXJ0X2Zyb21fZGIgKGNvbnN0IGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQp Cit7CisgIGdydWJfdWludDMyX3QgaSA9IDE7CisgIGdydWJfeDUwOV9jZXJ0X3QgKmN1cnJfY2Vy dCwgKnByZXZfY2VydDsKKworICBmb3IgKGN1cnJfY2VydCA9IHByZXZfY2VydCA9IGRiLmNlcnRz OyBjdXJyX2NlcnQgIT0gTlVMTDsgY3Vycl9jZXJ0ID0gY3Vycl9jZXJ0LT5uZXh0LCBpKyspCisg ICAgeworICAgICAgaWYgKGlzX2NlcnRfbWF0Y2ggKGN1cnJfY2VydCwgY2VydCkgPT0gdHJ1ZSkK KyAgICAgICAgeworICAgICAgICAgIGlmIChpID09IDEpIC8qIE1hdGNoIHdpdGggZmlyc3QgY2Vy dGlmaWNhdGUgaW4gdGhlIGRiIGxpc3QuICovCisgICAgICAgICAgICBkYi5jZXJ0cyA9IGN1cnJf Y2VydC0+bmV4dDsKKyAgICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmV2X2NlcnQtPm5leHQg PSBjdXJyX2NlcnQtPm5leHQ7CisKKyAgICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNp ZyIsCisgICAgICAgICAgICAgICAgICAgICAgICAicmVtb3ZlZCBkaXN0cnVzdGVkIGNlcnRpZmlj YXRlIHdpdGggQ046ICVzIGZyb20gdGhlIGRiIGxpc3RcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgICBjdXJyX2NlcnQtPnN1YmplY3QpOworICAgICAgICAgIGN1cnJfY2VydC0+bmV4dCA9IE5V TEw7CisgICAgICAgICAgZ3J1Yl94NTA5X2NlcnRfcmVsZWFzZSAoY3Vycl9jZXJ0KTsKKyAgICAg ICAgICBncnViX2ZyZWUgKGN1cnJfY2VydCk7CisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K KyAgICAgIGVsc2UKKyAgICAgICAgcHJldl9jZXJ0ID0gY3Vycl9jZXJ0OworICAgIH0KK30KKwor c3RhdGljIGdydWJfZXJyX3QKK3JlbW92ZV9jZXJ0X2Zyb21fZGIgKGNvbnN0IGdydWJfdWludDhf dCAqZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplKQoreworICBncnViX2Vycl90IHJj OworICBncnViX3g1MDlfY2VydF90ICpjZXJ0OworCisgIGlmIChkYXRhID09IE5VTEwgfHwgZGF0 YV9zaXplID09IDApCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9SQU5H RSwgImNlcnRpZmljYXRlIGRhdGEgb3Igc2l6ZSBpcyBub3QgYXZhaWxhYmxlIik7CisKKyAgY2Vy dCA9IGdydWJfemFsbG9jIChzaXplb2YgKGdydWJfeDUwOV9jZXJ0X3QpKTsKKyAgaWYgKGNlcnQg PT0gTlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VUX09GX01FTU9SWSwg Im91dCBvZiBtZW1vcnkiKTsKKworICByYyA9IGdydWJfeDUwOV9jZXJ0X3BhcnNlIChkYXRhLCBk YXRhX3NpemUsIGNlcnQpOworICBpZiAocmMgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICB7CisgICAg ICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJjYW5ub3QgcmVtb3ZlIGFuIGludmFsaWQg Y2VydGlmaWNhdGUgZnJvbSB0aGUgZGIgbGlzdFxuIik7CisgICAgICBncnViX2ZyZWUgKGNlcnQp OworICAgICAgcmV0dXJuIHJjOworICAgIH0KKworICAvKiBSZW1vdmUgY2VydGlmaWNhdGUgZnJv bSB0aGUgZGIgbGlzdC4gKi8KKyAgX3JlbW92ZV9jZXJ0X2Zyb21fZGIgKGNlcnQpOworCisgIHJl dHVybiByYzsKK30KKwogc3RhdGljIGdydWJfZXJyX3QKIGZpbGVfcmVhZF93aG9sZSAoZ3J1Yl9m aWxlX3QgZmlsZSwgZ3J1Yl91aW50OF90ICoqYnVmLCBncnViX3NpemVfdCAqbGVuKQogewpAQCAt NjQ5LDYgKzc2Niw3IEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3NpZ25hdHVyZSAoY29uc3QgZ3J1 Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAgIGlmIChlcnIgIT0gR1JVQl9F UlJfTk9ORSkKICAgICByZXR1cm4gZXJyOwogCisgIGFwcGVuZF9zaWdfbGVuID0gc2lnLnNpZ25h dHVyZV9sZW47CiAgIGRhdGFzaXplID0gYnVmc2l6ZSAtIHNpZy5zaWduYXR1cmVfbGVuOwogCiAg IC8qCkBAIC03MDksNiArODI3LDE5MyBAQCBncnViX3ZlcmlmeV9hcHBlbmRlZF9zaWduYXR1cmUg KGNvbnN0IGdydWJfdWludDhfdCAqYnVmLCBncnViX3NpemVfdCBidWZzaXplKQogICByZXR1cm4g ZXJyOwogfQogCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfdmVyaWZ5X3NpZ25hdHVyZSAo Z3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MsIGNo YXIgKiphcmdzKQoreworICBncnViX2ZpbGVfdCBzaWduZWRfZmlsZTsKKyAgZ3J1Yl9lcnJfdCBl cnI7CisgIGdydWJfdWludDhfdCAqc2lnbmVkX2RhdGEgPSBOVUxMOworICBncnViX3NpemVfdCBz aWduZWRfZGF0YV9zaXplID0gMDsKKworICBpZiAoYXJnYyAhPSAxKQorICAgIHJldHVybiBncnVi X2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJh IHNpZ25lZCBmaWxlIGlzIGV4cGVjdGVkXG5FeGFtcGxlOlxuXHRhcHBlbmRfdmVyaWZ5IDxTSUdO RUQgRklMRT5cbiIpOworCisgIGlmICghZ3J1Yl9zdHJsZW4gKGFyZ3NbMF0pKQorICAgIHJldHVy biBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfRklMRU5BTUUsICJtaXNzaW5nIHNpZ25lZCBmaWxl Iik7CisKKyAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidmVyaWZ5aW5nICVzXG4iLCBh cmdzWzBdKTsKKworICBzaWduZWRfZmlsZSA9IGdydWJfZmlsZV9vcGVuIChhcmdzWzBdLCBHUlVC X0ZJTEVfVFlQRV9WRVJJRllfU0lHTkFUVVJFKTsKKyAgaWYgKHNpZ25lZF9maWxlID09IE5VTEwp CisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0ZJTEVfTk9UX0ZPVU5ELCAiY291bGQg bm90IG9wZW4gJXMgZmlsZSIsIGFyZ3NbMF0pOworCisgIGVyciA9IGZpbGVfcmVhZF93aG9sZSAo c2lnbmVkX2ZpbGUsICZzaWduZWRfZGF0YSwgJnNpZ25lZF9kYXRhX3NpemUpOworICBpZiAoZXJy ID09IEdSVUJfRVJSX05PTkUpCisgICAgZXJyID0gZ3J1Yl92ZXJpZnlfYXBwZW5kZWRfc2lnbmF0 dXJlIChzaWduZWRfZGF0YSwgc2lnbmVkX2RhdGFfc2l6ZSk7CisKKyAgZ3J1Yl9maWxlX2Nsb3Nl IChzaWduZWRfZmlsZSk7CisgIGdydWJfZnJlZSAoc2lnbmVkX2RhdGEpOworCisgIHJldHVybiBl cnI7Cit9CisKKy8qCisgKiBDaGVja3MgdGhlIHRydXN0ZWQgY2VydGlmaWNhdGUgYWdhaW5zdCBk YnggbGlzdCBpZiBkeW5hbWljIGtleSBtYW5hZ2VtZW50IGlzCisgKiBlbmFibGVkLiBBbmQgYWRk IGl0IHRvIHRoZSBkYiBsaXN0IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHByZXNlbnQuCisgKgorICog Tm90ZTogV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY29tbWFu ZCBvbmx5IGFjY2VwdHMgdGhlCisgKiB0cnVzdGVkIGNlcnRpZmljYXRlIHRoYXQgaXMgc2lnbmVk IHdpdGggYW4gYXBwZW5kZWQgc2lnbmF0dXJlLgorICogVGhlIHNpZ25hdHVyZSBpcyB2ZXJpZmll ZCBieSB0aGUgYXBwZW5kZWRzaWcgbW9kdWxlLiBJZiB2ZXJpZmljYXRpb24gc3VjY2VlZHMsCisg KiB0aGUgY2VydGlmaWNhdGUgaXMgYWRkZWQgdG8gdGhlIGRiIGxpc3QuIE90aGVyd2lzZSwgYW4g ZXJyb3IgaXMgcG9zdGVkIGFuZAorICogdGhlIGNlcnRpZmljYXRlIGlzIG5vdCBhZGRlZC4KKyAq IFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBkaXNhYmxlZCwgaXQgYWNjZXB0cyB0aGUg dHJ1c3RlZCBjZXJ0aWZpY2F0ZQorICogd2l0aG91dCBhbiBhcHBlbmRlZCBzaWduYXR1cmUgYW5k IGFkZCBpdCB0byB0aGUgZGIgbGlzdC4KKyAqCisgKiBBbHNvLCBub3RlIHRoYXQgdGhlIGFkZGlu ZyBvZiB0aGUgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSB1c2luZyB0aGlzIGNvbW1hbmQgZG9lcworICog bm90IHBlcnNpc3QgYWNyb3NzIHJlYm9vdHMuCisgKi8KK3N0YXRpYyBncnViX2Vycl90CitncnVi X2NtZF9kYl9jZXJ0IChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkp LCBpbnQgYXJnYywgY2hhciAqKmFyZ3MpCit7CisgIGdydWJfZXJyX3QgZXJyOworICBncnViX2Zp bGVfdCBjZXJ0X2ZpbGU7CisgIGdydWJfdWludDhfdCAqY2VydF9kYXRhID0gTlVMTDsKKyAgZ3J1 Yl9zaXplX3QgY2VydF9kYXRhX3NpemUgPSAwOworCisgIGlmIChhcmdjICE9IDEpCisgICAgcmV0 dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgICAg ICAgICAgImEgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIGlzIGV4cGVjdGVkIGluIERF UiBmb3JtYXRcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgIkV4YW1wbGU6XG5cdGFwcGVuZF9h ZGRfZGJfY2VydCA8WDUwOV9DRVJUSUZJQ0FURT5cbiIpOworCisgIGlmICghZ3J1Yl9zdHJsZW4g KGFyZ3NbMF0pKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfRklMRU5BTUUs ICJtaXNzaW5nIHRydXN0ZWQgWC41MDkgY2VydGlmaWNhdGUgZmlsZSIpOworCisgIGNlcnRfZmls ZSA9IGdydWJfZmlsZV9vcGVuIChhcmdzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR1JVQl9GSUxFX1RZUEVfQ0VSVElGSUNBVEVfVFJVU1QgfCBHUlVCX0ZJTEVfVFlQRV9OT19E RUNPTVBSRVNTKTsKKyAgaWYgKGNlcnRfZmlsZSA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9CQURfRklMRV9UWVBFLCAiY291bGQgbm90IG9wZW4gJXMgZmlsZSIsIGFy Z3NbMF0pOworCisgIGVyciA9IGZpbGVfcmVhZF93aG9sZSAoY2VydF9maWxlLCAmY2VydF9kYXRh LCAmY2VydF9kYXRhX3NpemUpOworICBncnViX2ZpbGVfY2xvc2UgKGNlcnRfZmlsZSk7CisgIGlm IChlcnIgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICByZXR1cm4gZXJyOworCisgIC8qCisgICAqIElm IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCAoY2hlY2tfc2lncyBpcyBzZXQgdG8g dHJ1ZSksIG9idGFpbgorICAgKiB0aGUgYWN0dWFsIGNlcnRpZmljYXRlIHNpemUgYnkgc3VidHJh Y3RpbmcgdGhlIGFwcGVuZGVkIHNpZ25hdHVyZSBzaXplIGZyb20KKyAgICogdGhlIGNlcnRpZmlj YXRlIHNpemUgYmVjYXVzZSB0aGUgY2VydGlmaWNhdGUgaGFzIGFuIGFwcGVuZGVkIHNpZ25hdHVy ZSwgYW5kCisgICAqIHRoaXMgYWN0dWFsIGNlcnRpZmljYXRlIHNpemUgaXMgdXNlZCB0byBnZXQg dGhlIFguNTA5IGNlcnRpZmljYXRlLgorICAgKi8KKyAgaWYgKGNoZWNrX3NpZ3MgPT0gdHJ1ZSkK KyAgICBjZXJ0X2RhdGFfc2l6ZSAtPSBhcHBlbmRfc2lnX2xlbjsKKworICBlcnIgPSBhZGRfY2Vy dGlmaWNhdGUgKGNlcnRfZGF0YSwgY2VydF9kYXRhX3NpemUsICZkYik7CisgIGdydWJfZnJlZSAo Y2VydF9kYXRhKTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7 CisKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKKy8qCisgKiBSZW1vdmUgdGhlIGRpc3Ry dXN0ZWQgY2VydGlmaWNhdGUgZnJvbSB0aGUgZGIgbGlzdCBpZiBpdCBpcyBhbHJlYWR5IHByZXNl bnQuCisgKiBBbmQgYWRkIGl0IHRvIHRoZSBkYnggbGlzdCBpZiBub3QgcHJlc2VudCB3aGVuIGR5 bmFtaWMga2V5IG1hbmFnZW1lbnQgaXMKKyAqIGVuYWJsZWQuCisgKgorICogTm90ZTogV2hlbiBz aWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY29tbWFuZCBvbmx5IGFjY2Vw dHMgdGhlCisgKiBkaXN0cnVzdGVkIGNlcnRpZmljYXRlIHRoYXQgaXMgc2lnbmVkIHdpdGggYW4g YXBwZW5kZWQgc2lnbmF0dXJlLgorICogVGhlIHNpZ25hdHVyZSBpcyB2ZXJpZmllZCBieSB0aGUg YXBwZW5kZWQgc2lnIG1vZHVsZS4gSWYgdmVyaWZpY2F0aW9uCisgKiBzdWNjZWVkcywgdGhlIGNl cnRpZmljYXRlIGlzIHJlbW92ZWQgZnJvbSB0aGUgZGIgbGlzdC4gT3RoZXJ3aXNlLCBhbiBlcnJv cgorICogaXMgcG9zdGVkIGFuZCB0aGUgY2VydGlmaWNhdGUgaXMgbm90IHJlbW92ZWQuCisgKiBX aGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZGlzYWJsZWQsIGl0IGFjY2VwdHMgdGhlIGRp c3RydXN0ZWQgY2VydGlmaWNhdGUKKyAqIHdpdGhvdXQgYW4gYXBwZW5kZWQgc2lnbmF0dXJlIGFu ZCByZW1vdmVzIGl0IGZyb20gdGhlIGRiIGxpc3QuCisgKgorICogQWxzbywgbm90ZSB0aGF0IHRo ZSByZW1vdmFsIG9mIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlIHVzaW5nIHRoaXMgY29tbWFu ZAorICogZG9lcyBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAqLworc3RhdGljIGdydWJf ZXJyX3QKK2dydWJfY21kX2RieF9jZXJ0IChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVf XyAoKHVudXNlZCkpLCBpbnQgYXJnYywgY2hhciAqKmFyZ3MpCit7CisgIGdydWJfZXJyX3QgZXJy OworICBncnViX2ZpbGVfdCBjZXJ0X2ZpbGU7CisgIGdydWJfdWludDhfdCAqY2VydF9kYXRhID0g TlVMTDsKKyAgZ3J1Yl9zaXplX3QgY2VydF9kYXRhX3NpemUgPSAwOworCisgIGlmIChhcmdjICE9 IDEpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAg ICAgICAgICAgICAgICAgICAgImEgZGlzdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIGlz IGV4cGVjdGVkIGluIERFUiBmb3JtYXRcbiIKKyAgICAgICAgICAgICAgICAgICAgICAgIkV4YW1w bGU6XG5cdGFwcGVuZF9hZGRfZGJ4X2NlcnQgPFg1MDlfQ0VSVElGSUNBVEU+XG4iKTsKKworICBp ZiAoIWdydWJfc3RybGVuIChhcmdzWzBdKSkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfQkFEX0ZJTEVOQU1FLCAibWlzc2luZyBkaXN0cnVzdGVkIFguNTA5IGNlcnRpZmljYXRlIGZp bGUiKTsKKworICBjZXJ0X2ZpbGUgPSBncnViX2ZpbGVfb3BlbiAoYXJnc1swXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEdSVUJfRklMRV9UWVBFX0NFUlRJRklDQVRFX1RSVVNUIHwg R1JVQl9GSUxFX1RZUEVfTk9fREVDT01QUkVTUyk7CisgIGlmIChjZXJ0X2ZpbGUgPT0gTlVMTCkK KyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0ZJTEVfVFlQRSwgImNvdWxkIG5v dCBvcGVuICVzIGZpbGUiLCBhcmdzWzBdKTsKKworICBlcnIgPSBmaWxlX3JlYWRfd2hvbGUgKGNl cnRfZmlsZSwgJmNlcnRfZGF0YSwgJmNlcnRfZGF0YV9zaXplKTsKKyAgZ3J1Yl9maWxlX2Nsb3Nl IChjZXJ0X2ZpbGUpOworICBpZiAoZXJyICE9IEdSVUJfRVJSX05PTkUpCisgICAgcmV0dXJuIGVy cjsKKworICAvKgorICAgKiBJZiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQgKGNo ZWNrX3NpZ3MgaXMgc2V0IHRvIHRydWUpLCBvYnRhaW4KKyAgICogdGhlIGFjdHVhbCBjZXJ0aWZp Y2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZCBzaWduYXR1cmUgc2l6ZSBmcm9t CisgICAqIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UgdGhlIGNlcnRpZmljYXRlIGhhcyBh biBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZAorICAgKiB0aGlzIGFjdHVhbCBjZXJ0aWZpY2F0ZSBz aXplIGlzIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZS4KKyAgICovCisgIGlmIChj aGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUgLT0gYXBwZW5kX3NpZ19sZW47 CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUgZnJvbSB0aGUgZGIgbGlzdCBp ZiBwcmVzZW50LiAqLworICBlcnIgPSByZW1vdmVfY2VydF9mcm9tX2RiIChjZXJ0X2RhdGEsIGNl cnRfZGF0YV9zaXplKTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHsKKyAgICAg IGdydWJfZnJlZSAoY2VydF9kYXRhKTsKKyAgICAgIHJldHVybiBlcnI7CisgICAgfQorCisgIC8q IE9ubHkgYWRkIHRoZSBjZXJ0aWZpY2F0ZSB0byB0aGUgZGJ4IGxpc3QgaWYgZHluYW1pYyBrZXkg bWFuYWdlbWVudCBpcyBlbmFibGVkLiAqLworICBpZiAoYXBwZW5kX2tleV9tZ210ID09IHRydWUp CisgICAgeworICAgICAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2RhdGEsIGNlcnRfZGF0 YV9zaXplLCAmZGJ4KTsKKyAgICAgIGlmIChlcnIgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICAgICAg cmV0dXJuIGVycjsKKyAgICB9CisKKyAgZ3J1Yl9mcmVlIChjZXJ0X2RhdGEpOworCisgIHJldHVy biBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfbGlzdF9k YiAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2Mg X19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAgY2hhciAqKmFyZ3Mg X19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQoreworICBzdHJ1Y3QgeDUwOV9jZXJ0aWZpY2F0ZSAq Y2VydDsKKyAgZ3J1Yl91aW50MzJfdCBpLCBjZXJ0X251bSA9IDE7CisKKyAgZm9yIChjZXJ0ID0g ZGIuY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNlcnRfbnVtKyspCisg ICAgcHJpbnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKworICBpZiAoYXBwZW5kX2tl eV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBHUlVCX0VSUl9OT05FOworCisgIGZvciAoaSA9 IDA7IGkgPCBkYi5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBpZiAoZGIuaGFzaGVz W2ldICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAoIlxuQmluYXJ5 IGhhc2g6ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1Yl9wcmludGYgKCIgICAgSGFzaDog c2hhJSIgUFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBkYi5oYXNoX3NpemVzW2ldICogOCk7 CisgICAgICAgICAgaGV4ZHVtcF9jb2xvbiAoZGIuaGFzaGVzW2ldLCBkYi5oYXNoX3NpemVzW2ld KTsKKyAgICAgICAgfQorICAgIH0KKworICByZXR1cm4gR1JVQl9FUlJfTk9ORTsKK30KKwogLyog QWRkIHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZXMvYmluYXJ5IGhhc2ggdG8gdGhlIGRiIGxpc3QgZnJv bSBQS1MuICovCiBzdGF0aWMgZ3J1Yl9lcnJfdAogbG9hZF9wa3MyZGIgKHZvaWQpCkBAIC0xMDMy LDYgKzEzMzcsOCBAQCBzdHJ1Y3QgZ3J1Yl9maWxlX3ZlcmlmaWVyIGdydWJfYXBwZW5kZWRzaWdf dmVyaWZpZXIgPSB7CiAgIC53cml0ZSA9IGFwcGVuZGVkc2lnX3dyaXRlLAogfTsKIAorc3RhdGlj IGdydWJfY29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0X2RiLCBjbWRfZGJ4X2NlcnQsIGNt ZF9kYl9jZXJ0OworCiBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKIHsKICAgZ3J1Yl9pbnQz Ml90IHJjOwpAQCAtMTEwMSw2ICsxNDA4LDE1IEBAIEdSVUJfTU9EX0lOSVQgKGFwcGVuZGVkc2ln KQogICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOwogICAgIH0KIAorICBjbWRf dmVyaWZ5ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX3ZlcmlmeSIsIGdydWJfY21k X3ZlcmlmeV9zaWduYXR1cmUsIE5fKCI8U0lHTkVEX0ZJTEU+IiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5fKCJWZXJpZnkgU0lHTkVEX0ZJTEUgYWdhaW5zdCB0aGUg dHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgaW4gdGhlIGRiIGxpc3QiKSk7CisgIGNtZF9saXN0 X2RiID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2xpc3RfZGIiLCBncnViX2NtZF9s aXN0X2RiLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTl8oIlNo b3cgdGhlIGxpc3Qgb2YgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgZnJvbSB0aGUgZGIgbGlz dCIpKTsKKyAgY21kX2RiX2NlcnQgPSBncnViX3JlZ2lzdGVyX2NvbW1hbmQgKCJhcHBlbmRfYWRk X2RiX2NlcnQiLCBncnViX2NtZF9kYl9jZXJ0LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygiQWRkIHRydXN0ZWQgWDUw OV9DRVJUSUZJQ0FURSB0byB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2RieF9jZXJ0ID0gZ3J1Yl9y ZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYnhfY2VydCIsIGdydWJfY21kX2RieF9jZXJ0 LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTl8oIkFkZCBkaXN0cnVzdGVkIFg1MDlfQ0VSVElGSUNBVEUgdG8gdGhlIGRi eCBsaXN0IikpOworCiAgIGdydWJfdmVyaWZpZXJfcmVnaXN0ZXIgKCZncnViX2FwcGVuZGVkc2ln X3ZlcmlmaWVyKTsKICAgZ3J1Yl9kbF9zZXRfcGVyc2lzdGVudCAobW9kKTsKIH0KQEAgLTExMTks NCArMTQzNSw4IEBAIEdSVUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQogICBncnViX3JlZ2lzdGVy X3ZhcmlhYmxlX2hvb2sgKCJhcHBlbmRlZHNpZ19rZXlfbWdtdCIsIE5VTEwsIE5VTEwpOwogICBn cnViX2Vudl91bnNldCAoImFwcGVuZGVkc2lnX2tleV9tZ210Iik7CiAgIGdydWJfdmVyaWZpZXJf dW5yZWdpc3RlciAoJmdydWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIpOworICBncnViX3VucmVnaXN0 ZXJfY29tbWFuZCAoY21kX3ZlcmlmeSk7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRf bGlzdF9kYik7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJfY2VydCk7CisgIGdy dWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOwogfQotLSAKMi41MC4xIChBcHBs ZSBHaXQtMTU1KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xp c3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==