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 5FC19CAC593 for ; Mon, 15 Sep 2025 11:08:03 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uy70u-0005Vs-Mt; Mon, 15 Sep 2025 07:04:52 -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 1uy70n-0005V8-Qa for grub-devel@gnu.org; Mon, 15 Sep 2025 07:04:45 -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 1uy70X-0004no-O2 for grub-devel@gnu.org; Mon, 15 Sep 2025 07:04:44 -0400 Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58F9PBm0020678; Mon, 15 Sep 2025 11:04:21 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=6pDj1D DlZPhg4y8sOFboFe17awEL6M5c5NteTmHPl5k=; b=tOxRylYPrOV661NiavFpOP aop35n6pDW5uG5GeQvpXnOmHlxLbmBkNUFkZz0v5abCb+2uERZxkyb0bhOBcixkd knLOr7VCM1NtmgO/m5Q/OQEgQagZ0SpNpbOM72+0vLHo8VE75f4W0FOTiR9R+wte 9otgdVg25ACfjIoCiiQ6MuQuNu1B+kPSsyK2wu4flybD7IntXdRk6foyKCvhFHj+ y79X4NukLxPUtJlJpQe20A88CW6LZVgEBmEmHHM+fbv5wyr/yRVXUY3WRe3l7ktc l1YzKGqU8TiAQ5m65c/lj3JEsPdkOCo5rAYoKQciv31isoK52i1G9fcDFQTm3xLw == Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 496g530frj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 11:04:21 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58FAf3fM005981; Mon, 15 Sep 2025 11:04:20 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 495jxtx86a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 15 Sep 2025 11:04:20 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58FB4G3q28180856 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 15 Sep 2025 11:04:16 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B9B7D20043; Mon, 15 Sep 2025 11:04:16 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 3A56A20040; Mon, 15 Sep 2025 11:04:13 +0000 (GMT) Received: from localhost.localdomain (unknown [9.79.204.18]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 15 Sep 2025 11:04:12 +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 v11 15/22] appended signatures: GRUB commands to manage the certificates Date: Mon, 15 Sep 2025 16:31:22 +0530 Message-Id: <20250915110129.20898-16-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250915110129.20898-1-sudhakar@linux.ibm.com> References: <20250915110129.20898-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: qlQGXy88fhzH57MLIody3v3pUFwxQHYb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE1MDA4NiBTYWx0ZWRfX1y1TRZqRtGop LI0cyfe4TCi6w4WxUH/aUyNEoBe6JJgvq6+/w1FXcneuBJfLCAOHBI1TrLVRn5m/Etj2EK7scC0 SkE84OkGXLsBRZdkJ7frBIzOxcHaRJANYgxdxRco2gQJd4ilOj5ppwxK8f6ibqelRhdsu9DdqEn 3aeqDlMHAFfMHm6v0muDwhlTeV6J0VceEMdD8CoFql22gWO8bFAIbMbzbR9JNHoRf8ZsJPyVI9z Ylf0WD9Yy/GI5f53q5fjrTDzxCKgKkENI4NunPVyaS/ma8G0gid5GJ9yCCEFBXVbrvXNjWAp9Bs 4ndufeRpvKkbq9gwJLKrcuuAQyZatrm+enlXcmuN6Q6IVQAD90qL9xxXmb8CPUipjfpWlmoZafC LbHagYmE X-Proofpoint-ORIG-GUID: qlQGXy88fhzH57MLIody3v3pUFwxQHYb X-Authority-Analysis: v=2.4 cv=UJ7dHDfy c=1 sm=1 tr=0 ts=68c7f2b5 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=JuTF4qcAAAAA:8 a=VnNF1IyMAAAA:8 a=yPCof4ZbAAAA:8 a=whMUrVYoL-Kk2JtUh_oA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=WlT8qwTXB_Kj6um4hl3b:22 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-15_04,2025-09-12_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 bulkscore=0 impostorscore=0 spamscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509150086 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01 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 IChjaGVja19hcHBlbmRlZF9zaWduYXR1cmUpIGlzIHNldCB0byBlbmZvcmNlLAp0aGUgYXBwZW5k X2FkZF9kYl9jZXJ0IGFuZCBhcHBlbmRfYWRkX2RieF9jZXJ0IGNvbW1hbmRzIG9ubHkgYWNjZXB0 IHRoZQpmaWxlIOKAmFg1MDlfY2VydGlmaWNhdGXigJkgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBh cHBlbmRlZCBzaWduYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0 ZW5zLm5ldD4KU2lnbmVkLW9mZi1ieTogU3VkaGFrYXIgS3VwcHVzYW15IDxzdWRoYWthckBsaW51 eC5pYm0uY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xl LmNvbT4KLS0tCiBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyB8 IDMxOSArKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzE5IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRz aWcuYyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCmluZGV4 IDEwODk5YjQ5NS4uNWVhZTU2MjM3IDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvYXBw ZW5kZWRzaWcvYXBwZW5kZWRzaWcuYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRz aWcvYXBwZW5kZWRzaWcuYwpAQCAtMTIyLDYgKzEyMiw5IEBAIHN0YXRpYyBib29sIGFwcGVuZF9r ZXlfbWdtdCA9IGZhbHNlOwogLyogUGxhdGZvcm0gS2V5U3RvcmUgZGIgYW5kIGRieC4gKi8KIHN0 YXRpYyBncnViX3Brc190ICpwa3Nfa2V5c3RvcmU7CiAKKy8qIEFwcGVuZGVkIHNpZ25hdHVyZSBz aXplLiAqLworc3RhdGljIGdydWJfc2l6ZV90IGFwcGVuZF9zaWdfbGVuID0gMDsKKwogc3RhdGlj IGdydWJfc3NpemVfdAogcHNldWRvX3JlYWQgKHN0cnVjdCBncnViX2ZpbGUgKmZpbGUsIGNoYXIg KmJ1ZiwgZ3J1Yl9zaXplX3QgbGVuKQogewpAQCAtMTM1LDYgKzEzOCw2NCBAQCBzdGF0aWMgc3Ry dWN0IGdydWJfZnMgcHNldWRvX2ZzID0gewogICAuZnNfcmVhZCA9IHBzZXVkb19yZWFkCiB9Owog CisvKgorICogV2UgY2Fubm90IHVzZSBoZXhkdW1wKCkgdG8gZGlzcGxheSBoYXNoIGRhdGEgYmVj YXVzZSBpdCBpcyB0eXBpY2FsbHkKKyAqIGRpc3BsYXllZCBpbiBoZXhhZGVjaW1hbCBmb3JtYXQs IGFsb25nIHdpdGggYW4gQVNDSUkgcmVwcmVzZW50YXRpb24gb2YKKyAqIHRoZSBzYW1lIGRhdGEu CisgKiBFeGFtcGxlOiBzaGEyNTYgaGFzaCBkYXRhCisgKiAwMDAwMDAwMCAgNTIgYjUgOTAgNDkg NjQgZGUgMjIgZDcgIDRlIDVmIDRmIGI0IDFiIDUxIDljIDM0ICB8Ui4uSWQuIi5OX08uLlEuNHwK KyAqIDAwMDAwMDEwICBiMSA5NiAyMSA3YyA5MSA3OCBhNSAwZCAgMjAgOGMgZTkgNWMgMjIgNTQg NTMgZjcgIHwuLiF8LnguLiAuLlwiVFMufAorICoKKyAqIEFuIGFwcGVuZGVkIHNpZ25hdHVyZSBv bmx5IHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIGhleGFkZWNpbWFsIG9mIHRoZSBoYXNoIGRhdGEK KyAqIGJ5IHNlcGFyYXRpbmcgZWFjaCBieXRlIHdpdGggIjoiLiBTbywgd2UgaW50cm9kdWNlZCBh IG5ldyBtZXRob2QgaGV4ZHVtcF9jb2xvbgorICogdG8gZGlzcGxheSBpdC4KKyAqIEV4YW1wbGU6 IFNoYTI1NiBoYXNoIGRhdGEKKyAqICA1MjpiNTo5MDo0OTo2NDpkZToyMjpkNzo0ZTo1Zjo0Zjpi NDoxYjo1MTo5YzozNDoKKyAqICBiMTo5NjoyMTo3Yzo5MTo3ODphNTowZDoyMDo4YzplOTo1Yzoy Mjo1NDo1MzpmNworICovCitzdGF0aWMgdm9pZAoraGV4ZHVtcF9jb2xvbiAoY29uc3QgZ3J1Yl91 aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBsZW5ndGgpCit7CisgIGdydWJfc2l6ZV90 IGksIGNvdW50ID0gMDsKKworICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgaSsrKQorICAg IHsKKyAgICAgIGdydWJfcHJpbnRmICgiJTAyeDoiLCBkYXRhW2ldKTsKKyAgICAgIGNvdW50Kys7 CisgICAgICBpZiAoY291bnQgPT0gMTYpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50 ZiAoIlxuICAgICAgICAgIik7CisgICAgICAgICAgY291bnQgPSAwOworICAgICAgICB9CisgICAg fQorCisgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgZGF0YVtpXSk7Cit9CisKK3N0YXRpYyB2b2lk CitwcmludF9jZXJ0aWZpY2F0ZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydCwgY29uc3Qg Z3J1Yl91aW50MzJfdCBjZXJ0X251bSkKK3sKKyAgZ3J1Yl91aW50MzJfdCBpOworCisgIGdydWJf cHJpbnRmICgiXG5DZXJ0aWZpY2F0ZTogJXVcbiIsIGNlcnRfbnVtKTsKKyAgZ3J1Yl9wcmludGYg KCIgICAgRGF0YTpcbiIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgVmVyc2lvbjogJXUgKDB4 JXUpXG4iLCBjZXJ0LT52ZXJzaW9uICsgMSwgY2VydC0+dmVyc2lvbik7CisgIGdydWJfcHJpbnRm ICgiICAgICAgICBTZXJpYWwgTnVtYmVyOlxuICAgICAgICAgICAgICIpOworCisgIGZvciAoaSA9 IDA7IGkgPCBjZXJ0LT5zZXJpYWxfbGVuIC0gMTsgaSsrKQorICAgIGdydWJfcHJpbnRmICgiJTAy eDoiLCBjZXJ0LT5zZXJpYWxbaV0pOworCisgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgY2VydC0+ c2VyaWFsW2NlcnQtPnNlcmlhbF9sZW4gLSAxXSk7CisgIGdydWJfcHJpbnRmICgiICAgICAgICBJ c3N1ZXI6ICVzXG4iLCBjZXJ0LT5pc3N1ZXIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgU3Vi amVjdDogJXNcbiIsIGNlcnQtPnN1YmplY3QpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgU3Vi amVjdCBQdWJsaWMgS2V5IEluZm86XG4iKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgICAgICBQ dWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvblxuIik7CisgIGdydWJfcHJpbnRmICgi ICAgICAgICAgICAgICAgIFJTQSBQdWJsaWMtS2V5OiAoJWQgYml0KVxuIiwgY2VydC0+bW9kdWx1 c19zaXplKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgRmluZ2VycHJpbnQ6IHNoYTI1NlxuICAgICAg ICAgIik7CisgIGhleGR1bXBfY29sb24gKCZjZXJ0LT5maW5nZXJwcmludFtHUlVCX0ZJTkdFUlBS SU5UX1NIQTI1Nl1bMF0sCisgICAgICAgICAgICAgICAgIGdydWJfc3RybGVuICgoY2hhciAqKSBj ZXJ0LT5maW5nZXJwcmludFtHUlVCX0ZJTkdFUlBSSU5UX1NIQTI1Nl0pKTsKK30KKwogLyoKICAq IEdVSUQgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoaW5nIGZ1bmN0aW9uIGFuZAog ICogZ2VuZXJhdGUgdGhlIGhhc2ggdXNpbmcgZGV0ZXJtaW5lZCBoYXNoaW5nIGZ1bmN0aW9uLgpA QCAtNDMwLDYgKzQ5MSw2MSBAQCBhZGRfY2VydGlmaWNhdGUgKGNvbnN0IGdydWJfdWludDhfdCAq ZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLAogICByZXR1cm4gcmM7CiB9CiAKK3N0 YXRpYyB2b2lkCitfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAq Y2VydCkKK3sKKyAgZ3J1Yl91aW50MzJfdCBpID0gMTsKKyAgZ3J1Yl94NTA5X2NlcnRfdCAqY3Vy cl9jZXJ0LCAqcHJldl9jZXJ0OworCisgIGZvciAoY3Vycl9jZXJ0ID0gcHJldl9jZXJ0ID0gZGIu Y2VydHM7IGN1cnJfY2VydCAhPSBOVUxMOyBjdXJyX2NlcnQgPSBjdXJyX2NlcnQtPm5leHQsIGkr KykKKyAgICB7CisgICAgICBpZiAoaXNfY2VydF9tYXRjaCAoY3Vycl9jZXJ0LCBjZXJ0KSA9PSB0 cnVlKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGkgPT0gMSkgLyogTWF0Y2ggd2l0aCBmaXJz dCBjZXJ0aWZpY2F0ZSBpbiB0aGUgZGIgbGlzdC4gKi8KKyAgICAgICAgICAgIGRiLmNlcnRzID0g Y3Vycl9jZXJ0LT5uZXh0OworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByZXZfY2VydC0+ bmV4dCA9IGN1cnJfY2VydC0+bmV4dDsKKworICAgICAgICAgIGdydWJfZHByaW50ZiAoImFwcGVu ZGVkc2lnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZW1vdmVkIGRpc3RydXN0ZWQgY2Vy dGlmaWNhdGUgd2l0aCBDTjogJXMgZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAgICAgICAg ICAgICAgICAgIGN1cnJfY2VydC0+c3ViamVjdCk7CisgICAgICAgICAgY3Vycl9jZXJ0LT5uZXh0 ID0gTlVMTDsKKyAgICAgICAgICBncnViX3g1MDlfY2VydF9yZWxlYXNlIChjdXJyX2NlcnQpOwor ICAgICAgICAgIGdydWJfZnJlZSAoY3Vycl9jZXJ0KTsKKyAgICAgICAgICBicmVhazsKKyAgICAg ICAgfQorICAgICAgZWxzZQorICAgICAgICBwcmV2X2NlcnQgPSBjdXJyX2NlcnQ7CisgICAgfQor fQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl91 aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3NpemUpCit7CisgIGdydWJfZXJy X3QgcmM7CisgIGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQ7CisKKyAgaWYgKGRhdGEgPT0gTlVMTCB8 fCBkYXRhX3NpemUgPT0gMCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VUX09G X1JBTkdFLCAiY2VydGlmaWNhdGUgZGF0YSBvciBzaXplIGlzIG5vdCBhdmFpbGFibGUiKTsKKwor ICBjZXJ0ID0gZ3J1Yl96YWxsb2MgKHNpemVvZiAoZ3J1Yl94NTA5X2NlcnRfdCkpOworICBpZiAo Y2VydCA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0ZfTUVN T1JZLCAib3V0IG9mIG1lbW9yeSIpOworCisgIHJjID0gZ3J1Yl94NTA5X2NlcnRfcGFyc2UgKGRh dGEsIGRhdGFfc2l6ZSwgY2VydCk7CisgIGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQorICAgIHsK KyAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgImNhbm5vdCByZW1vdmUgYW4gaW52 YWxpZCBjZXJ0aWZpY2F0ZSBmcm9tIHRoZSBkYiBsaXN0XG4iKTsKKyAgICAgIGdydWJfZnJlZSAo Y2VydCk7CisgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgIC8qIFJlbW92ZSBjZXJ0aWZpY2F0 ZSBmcm9tIHRoZSBkYiBsaXN0LiAqLworICBfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY2VydCk7CisK KyAgcmV0dXJuIHJjOworfQorCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZmlsZV9yZWFkX3dob2xlIChn cnViX2ZpbGVfdCBmaWxlLCBncnViX3VpbnQ4X3QgKipidWYsIGdydWJfc2l6ZV90ICpsZW4pCiB7 CkBAIC02NTAsNiArNzY2LDcgQEAgZ3J1Yl92ZXJpZnlfYXBwZW5kZWRfc2lnbmF0dXJlIChjb25z dCBncnViX3VpbnQ4X3QgKmJ1ZiwgZ3J1Yl9zaXplX3QgYnVmc2l6ZSkKICAgaWYgKGVyciAhPSBH UlVCX0VSUl9OT05FKQogICAgIHJldHVybiBlcnI7CiAKKyAgYXBwZW5kX3NpZ19sZW4gPSBzaWcu c2lnbmF0dXJlX2xlbjsKICAgZGF0YXNpemUgPSBidWZzaXplIC0gc2lnLnNpZ25hdHVyZV9sZW47 CiAKICAgLyoKQEAgLTcxNiw2ICs4MzMsMTkzIEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3NpZ25h dHVyZSAoY29uc3QgZ3J1Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAgIHJl dHVybiBlcnI7CiB9CiAKK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF92ZXJpZnlfc2lnbmF0 dXJlIChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQgYXJn YywgY2hhciAqKmFyZ3MpCit7CisgIGdydWJfZmlsZV90IHNpZ25lZF9maWxlOworICBncnViX2Vy cl90IGVycjsKKyAgZ3J1Yl91aW50OF90ICpzaWduZWRfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6 ZV90IHNpZ25lZF9kYXRhX3NpemUgPSAwOworCisgIGlmIChhcmdjICE9IDEpCisgICAgcmV0dXJu IGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgICAgICAg ICAgImEgc2lnbmVkIGZpbGUgaXMgZXhwZWN0ZWRcbkV4YW1wbGU6XG5cdGFwcGVuZF92ZXJpZnkg PFNJR05FRCBGSUxFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1swXSkpCisgICAg cmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3Npbmcgc2lnbmVk IGZpbGUiKTsKKworICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ2ZXJpZnlpbmcgJXNc biIsIGFyZ3NbMF0pOworCisgIHNpZ25lZF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0s IEdSVUJfRklMRV9UWVBFX1ZFUklGWV9TSUdOQVRVUkUpOworICBpZiAoc2lnbmVkX2ZpbGUgPT0g TlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfRklMRV9OT1RfRk9VTkQsICJj b3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwgYXJnc1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3do b2xlIChzaWduZWRfZmlsZSwgJnNpZ25lZF9kYXRhLCAmc2lnbmVkX2RhdGFfc2l6ZSk7CisgIGlm IChlcnIgPT0gR1JVQl9FUlJfTk9ORSkKKyAgICBlcnIgPSBncnViX3ZlcmlmeV9hcHBlbmRlZF9z aWduYXR1cmUgKHNpZ25lZF9kYXRhLCBzaWduZWRfZGF0YV9zaXplKTsKKworICBncnViX2ZpbGVf Y2xvc2UgKHNpZ25lZF9maWxlKTsKKyAgZ3J1Yl9mcmVlIChzaWduZWRfZGF0YSk7CisKKyAgcmV0 dXJuIGVycjsKK30KKworLyoKKyAqIENoZWNrcyB0aGUgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBhZ2Fp bnN0IGRieCBsaXN0IGlmIGR5bmFtaWMga2V5IG1hbmFnZW1lbnQgaXMgZW5hYmxlZC4KKyAqIEFu ZCBhZGQgaXQgdG8gdGhlIGRiIGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudC4KKyAq IE5vdGU6LSBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwgdGhpcyBjb21t YW5kIG9ubHkgYWNjZXB0cyB0aGUKKyAqIHRydXN0ZWQgY2VydGlmaWNhdGUgdGhhdCBpcyBzaWdu ZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlzIHZlcmlm aWVkIGJ5IHRoZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywK KyAqIHRoZSBjZXJ0aWZpY2F0ZSBpcyBhZGRlZCB0byB0aGUgZGIgbGlzdC4gT3RoZXJ3aXNlLCBh biBlcnJvciBpcyBwb3N0ZWQgYW5kCisgKiB0aGUgY2VydGlmaWNhdGUgaXMgbm90IGFkZGVkLgor ICogV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGRpc2FibGVkLCBpdCBhY2NlcHRzIHRo ZSB0cnVzdGVkIGNlcnRpZmljYXRlIHdpdGhvdXQKKyAqIGFuIGFwcGVuZGVkIHNpZ25hdHVyZSBh bmQgYWRkIGl0IHRvIHRoZSBkYiBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgYWRk aW5nIG9mIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHVzaW5nIHRoaXMgY29tbWFuZCBkb2VzCisg KiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QKK2dy dWJfY21kX2RiX2NlcnQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2Vk KSksIGludCBhcmdjLCBjaGFyICoqYXJncykKK3sKKyAgZ3J1Yl9lcnJfdCBlcnI7CisgIGdydWJf ZmlsZV90IGNlcnRfZmlsZTsKKyAgZ3J1Yl91aW50OF90ICpjZXJ0X2RhdGEgPSBOVUxMOworICBn cnViX3NpemVfdCBjZXJ0X2RhdGFfc2l6ZSA9IDA7CisKKyAgaWYgKGFyZ2MgIT0gMSkKKyAgICBy ZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0FSR1VNRU5ULAorICAgICAgICAgICAgICAg ICAgICAgICAiYSB0cnVzdGVkIFguNTA5IGNlcnRpZmljYXRlIGZpbGUgaXMgZXhwZWN0ZWQgaW4g REVSIGZvcm1hdFxuIgorICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5k X2FkZF9kYl9jZXJ0IDxYNTA5X0NFUlRJRklDQVRFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxl biAoYXJnc1swXSkpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFN RSwgIm1pc3NpbmcgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIik7CisKKyAgY2VydF9m aWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBHUlVCX0ZJTEVfVFlQRV9DRVJUSUZJQ0FURV9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05P X0RFQ09NUFJFU1MpOworICBpZiAoY2VydF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJf ZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFX1RZUEUsICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwg YXJnc1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChjZXJ0X2ZpbGUsICZjZXJ0X2Rh dGEsICZjZXJ0X2RhdGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoY2VydF9maWxlKTsKKyAg aWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgLyoKKyAgICog SWYgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFj dHVhbCBjZXJ0aWZpY2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAgKiBz aWduYXR1cmUgc2l6ZSBmcm9tIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UKKyAgICogdGhl IGNlcnRpZmljYXRlIGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVhbCBj ZXJ0aWZpY2F0ZSBzaXplIGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0 ZS4KKyAgICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUg LT0gYXBwZW5kX3NpZ19sZW47CisKKyAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2RhdGEs IGNlcnRfZGF0YV9zaXplLCAmZGIpOworICBncnViX2ZyZWUgKGNlcnRfZGF0YSk7CisgIGlmIChl cnIgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICByZXR1cm4gZXJyOworCisgIHJldHVybiBHUlVCX0VS Ul9OT05FOworfQorCisvKgorICogUmVtb3ZlIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlIGZy b20gdGhlIGRiIGxpc3QgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50LgorICogQW5kIGFkZCBpdCB0 byB0aGUgZGJ4IGxpc3QgaWYgbm90IHByZXNlbnQgd2hlbiBkeW5hbWljIGtleSBtYW5hZ2VtZW50 IGlzCisgKiBlbmFibGVkLgorICogTm90ZTotIFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBp cyBlbmFibGVkLCB0aGlzIGNvbW1hbmQgb25seSBhY2NlcHRzIHRoZQorICogZGlzdHJ1c3RlZCBj ZXJ0aWZpY2F0ZSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFwcGVuZGVkIHNpZ25hdHVyZS4KKyAq IFRoZSBzaWduYXR1cmUgaXMgdmVyaWZpZWQgYnkgdGhlIGFwcGVuZGVkIHNpZyBtb2R1bGUuIElm IHZlcmlmaWNhdGlvbiBzdWNjZWVkcywKKyAqIHRoZSBjZXJ0aWZpY2F0ZSBpcyByZW1vdmVkIGZy b20gdGhlIGRiIGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFuZAorICogdGhl IGNlcnRpZmljYXRlIGlzIG5vdCByZW1vdmVkLgorICogV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0 aW9uIGlzIGRpc2FibGVkLCBpdCBhY2NlcHRzIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlCisg KiB3aXRob3V0IGFuIGFwcGVuZGVkIHNpZ25hdHVyZSBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBk YiBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgcmVtb3ZhbCBvZiB0aGUgZGlzdHJ1 c3RlZCBjZXJ0aWZpY2F0ZSB1c2luZyB0aGlzIGNvbW1hbmQKKyAqIGRvZXMgbm90IHBlcnNpc3Qg YWNyb3NzIHJlYm9vdHMuCisgKi8KK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF9kYnhfY2Vy dCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2Ms IGNoYXIgKiphcmdzKQoreworICBncnViX2Vycl90IGVycjsKKyAgZ3J1Yl9maWxlX3QgY2VydF9m aWxlOworICBncnViX3VpbnQ4X3QgKmNlcnRfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGNl cnRfZGF0YV9zaXplID0gMDsKKworICBpZiAoYXJnYyAhPSAxKQorICAgIHJldHVybiBncnViX2Vy cm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJhIGRp c3RydXN0ZWQgWC41MDkgY2VydGlmaWNhdGUgZmlsZSBpcyBleHBlY3RlZCBpbiBERVIgZm9ybWF0 XG4iCisgICAgICAgICAgICAgICAgICAgICAgICJFeGFtcGxlOlxuXHRhcHBlbmRfYWRkX2RieF9j ZXJ0IDxYNTA5X0NFUlRJRklDQVRFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1sw XSkpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3Np bmcgZGlzdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIik7CisKKyAgY2VydF9maWxlID0g Z3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH UlVCX0ZJTEVfVFlQRV9DRVJUSUZJQ0FURV9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05PX0RFQ09N UFJFU1MpOworICBpZiAoY2VydF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3Ig KEdSVUJfRVJSX0JBRF9GSUxFX1RZUEUsICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwgYXJnc1sw XSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChjZXJ0X2ZpbGUsICZjZXJ0X2RhdGEsICZj ZXJ0X2RhdGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoY2VydF9maWxlKTsKKyAgaWYgKGVy ciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgLyoKKyAgICogSWYgc2ln bmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFjdHVhbCBj ZXJ0aWZpY2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAgKiBzaWduYXR1 cmUgc2l6ZSBmcm9tIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UKKyAgICogdGhlIGNlcnRp ZmljYXRlIGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVhbCBjZXJ0aWZp Y2F0ZSBzaXplIGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZS4KKyAg ICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUgLT0gYXBw ZW5kX3NpZ19sZW47CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUgZnJvbSB0 aGUgZGIgbGlzdCBpZiBwcmVzZW50LiAqLworICBlcnIgPSByZW1vdmVfY2VydF9mcm9tX2RiIChj ZXJ0X2RhdGEsIGNlcnRfZGF0YV9zaXplKTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQor ICAgIHsKKyAgICAgIGdydWJfZnJlZSAoY2VydF9kYXRhKTsKKyAgICAgIHJldHVybiBlcnI7Cisg ICAgfQorCisgIC8qIE9ubHkgYWRkIHRoZSBjZXJ0aWZpY2F0ZSB0byB0aGUgZGJ4IGxpc3QgaWYg ZHluYW1pYyBrZXkgbWFuYWdlbWVudCBpcyBlbmFibGVkLiAqLworICBpZiAoYXBwZW5kX2tleV9t Z210ID09IHRydWUpCisgICAgeworICAgICAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2Rh dGEsIGNlcnRfZGF0YV9zaXplLCAmZGJ4KTsKKyAgICAgIGlmIChlcnIgIT0gR1JVQl9FUlJfTk9O RSkKKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisKKyAgZ3J1Yl9mcmVlIChjZXJ0X2RhdGEp OworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1 Yl9jbWRfbGlzdF9kYiAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQp KSwgaW50IGFyZ2MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAgICAgICAgICAg Y2hhciAqKmFyZ3MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQoreworICBzdHJ1Y3QgeDUwOV9j ZXJ0aWZpY2F0ZSAqY2VydDsKKyAgZ3J1Yl91aW50MzJfdCBpLCBjZXJ0X251bSA9IDE7CisKKyAg Zm9yIChjZXJ0ID0gZGIuY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNl cnRfbnVtKyspCisgICAgcHJpbnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKworICBp ZiAoYXBwZW5kX2tleV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBHUlVCX0VSUl9OT05FOwor CisgIGZvciAoaSA9IDA7IGkgPCBkYi5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAgICBp ZiAoZGIuaGFzaGVzW2ldICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50 ZiAoIlxuQmluYXJ5IGhhc2g6ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1Yl9wcmludGYg KCIgICAgSGFzaDogc2hhJSIgUFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBkYi5oYXNoX3Np emVzW2ldICogOCk7CisgICAgICAgICAgaGV4ZHVtcF9jb2xvbiAoZGIuaGFzaGVzW2ldLCBkYi5o YXNoX3NpemVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICByZXR1cm4gR1JVQl9FUlJfTk9O RTsKK30KKwogLyogQWRkIHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZXMvYmluYXJ5IGhhc2ggdG8gdGhl IGRiIGxpc3QgZnJvbSBQS1MuICovCiBzdGF0aWMgZ3J1Yl9lcnJfdAogbG9hZF9wa3MyZGIgKHZv aWQpCkBAIC0xMDI5LDYgKzEzMzMsOCBAQCBzdHJ1Y3QgZ3J1Yl9maWxlX3ZlcmlmaWVyIGdydWJf YXBwZW5kZWRzaWdfdmVyaWZpZXIgPSB7CiAgIC53cml0ZSA9IGFwcGVuZGVkc2lnX3dyaXRlLAog fTsKIAorc3RhdGljIGdydWJfY29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0X2RiLCBjbWRf ZGJ4X2NlcnQsIGNtZF9kYl9jZXJ0OworCiBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykKIHsK ICAgZ3J1Yl9pbnQzMl90IHJjOwpAQCAtMTA5Nyw2ICsxNDAzLDE1IEBAIEdSVUJfTU9EX0lOSVQg KGFwcGVuZGVkc2lnKQogICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOwogICAg IH0KIAorICBjbWRfdmVyaWZ5ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX3Zlcmlm eSIsIGdydWJfY21kX3ZlcmlmeV9zaWduYXR1cmUsIE5fKCI8U0lHTkVEX0ZJTEU+IiksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJWZXJpZnkgU0lHTkVEX0ZJTEUg YWdhaW5zdCB0aGUgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgaW4gdGhlIGRiIGxpc3QiKSk7 CisgIGNtZF9saXN0X2RiID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2xpc3RfZGIi LCBncnViX2NtZF9saXN0X2RiLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTl8oIlNob3cgdGhlIGxpc3Qgb2YgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgZnJv bSB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2RiX2NlcnQgPSBncnViX3JlZ2lzdGVyX2NvbW1hbmQg KCJhcHBlbmRfYWRkX2RiX2NlcnQiLCBncnViX2NtZF9kYl9jZXJ0LCBOXygiPFg1MDlfQ0VSVElG SUNBVEU+IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygiQWRk IHRydXN0ZWQgWDUwOV9DRVJUSUZJQ0FURSB0byB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2RieF9j ZXJ0ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYnhfY2VydCIsIGdydWJf Y21kX2RieF9jZXJ0LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTl8oIkFkZCBkaXN0cnVzdGVkIFg1MDlfQ0VSVElGSUNB VEUgdG8gdGhlIGRieCBsaXN0IikpOworCiAgIGdydWJfdmVyaWZpZXJfcmVnaXN0ZXIgKCZncnVi X2FwcGVuZGVkc2lnX3ZlcmlmaWVyKTsKICAgZ3J1Yl9kbF9zZXRfcGVyc2lzdGVudCAobW9kKTsK IH0KQEAgLTExMTUsNCArMTQzMCw4IEBAIEdSVUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQogICBn cnViX3JlZ2lzdGVyX3ZhcmlhYmxlX2hvb2sgKCJhcHBlbmRlZHNpZ19rZXlfbWdtdCIsIE5VTEws IE5VTEwpOwogICBncnViX2Vudl91bnNldCAoImFwcGVuZGVkc2lnX2tleV9tZ210Iik7CiAgIGdy dWJfdmVyaWZpZXJfdW5yZWdpc3RlciAoJmdydWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIpOworICBn cnViX3VucmVnaXN0ZXJfY29tbWFuZCAoY21kX3ZlcmlmeSk7CisgIGdydWJfdW5yZWdpc3Rlcl9j b21tYW5kIChjbWRfbGlzdF9kYik7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJf Y2VydCk7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOwogfQotLSAK Mi4zOS41IChBcHBsZSBHaXQtMTU0KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9y ZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==