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 A99A3CAC583 for ; Tue, 9 Sep 2025 11:49:11 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uvwqP-00009b-Of; Tue, 09 Sep 2025 07:49:06 -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 1uvwpZ-0007a1-4C for grub-devel@gnu.org; Tue, 09 Sep 2025 07:48:13 -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 1uvwpQ-0000vD-Eu for grub-devel@gnu.org; Tue, 09 Sep 2025 07:48:11 -0400 Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 5898YELL017175; Tue, 9 Sep 2025 11:47:57 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=Hx2v54 +ws3n1geqEaE4TjoO9wnd/SGA+gKW5JKeXzEs=; b=TWUmowjO8bb84SkHvMJ+y8 jN8vUh212e3fuh6xFm6/80BAWXOhVc74Uq12rmV59HhZO8h3bnHWYvmVC7R2sVBB 3Huz0nHV4VzjKGIBE3S7NAwFKCAPyynn9t1l6Wk7ekTWJ53m46HuJ7rer+K6G5iZ TKVOSkUU/E2wOYukiARC6ukPur3fVG2yEPAO1JfwcftNjGLj3gvLHv4f/CGcmv9j Y7FCRl6U3gEYG1rD88rHeP7s8UjuImdPJiomm6sZC0xLlTNNzkgvZgehZPAlO8I8 2KBUu4Fjj/zQCf30DE0OpUKXlGugYJRFBCjDC9/8QrmSjBarSm5YRvWhsSWX4R/g == 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 490bcsq7jg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 11:47:56 +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 5899v8WA007982; Tue, 9 Sep 2025 11:47:56 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 49109pjx9v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 09 Sep 2025 11:47:56 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 589BlqHG22938008 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 9 Sep 2025 11:47:52 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 48CF520043; Tue, 9 Sep 2025 11:47:52 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7E99720040; Tue, 9 Sep 2025 11:47:47 +0000 (GMT) Received: from localhost.localdomain (unknown [9.39.16.56]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 9 Sep 2025 11:47:47 +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 v10 15/22] appended signatures: GRUB commands to manage the certificates Date: Tue, 9 Sep 2025 17:15:23 +0530 Message-Id: <20250909114530.36863-16-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250909114530.36863-1-sudhakar@linux.ibm.com> References: <20250909114530.36863-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTA2MDAxMCBTYWx0ZWRfX03bw5TTEdrh6 RhqJEHDplgW0qslz/FfXcKLpdcVR3f5LGHAJIsSMwNx/cZ5jtUZQsezOnuiPWDlhItLUVU5g0o2 QV3QXEscq24WjfLKezDq7Ua68LeaCUVSfWRJPYfk5MM4K5wR42qd6YcUtbWkijrvl8Kb2b/SQko GBMzISqQqJcYhSUonH0EphkFcihfajrtYX6WjR6l7RFCKzs22YQZahtR6di8nrxpk/JoJM8vykX pQOuj1Si/MYgY+gZ1S/rb3UlhgWBJDtKKIrD74tBOBdsXLLdcxIS5L/8IDiLZbTNTiZP6E32C5Z Ubff6d8vjuXiFB7YA+VdqpmNU4Tz0O3yL3fk6QeYsbOndBg2NS9YtLurf6ZHBSyQJu5Gfb+av+k GK7BzPxB X-Authority-Analysis: v=2.4 cv=SKNCVPvH c=1 sm=1 tr=0 ts=68c013ed 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=whMUrVYoL-Kk2JtUh_oA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=WlT8qwTXB_Kj6um4hl3b:22 X-Proofpoint-GUID: o3pyLvBmgQv7aq3LkjRWWjY4Y2iV5a2C X-Proofpoint-ORIG-GUID: o3pyLvBmgQv7aq3LkjRWWjY4Y2iV5a2C 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-09_01,2025-09-08_02,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 adultscore=0 suspectscore=0 impostorscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509060010 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_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 IChjaGVja19hcHBlbmRlZF9zaWduYXR1cmUpIGlzIHNldCB0byBlbmZvcmNlLAp0aGUgYXBwZW5k X2FkZF9kYl9jZXJ0IGFuZCBhcHBlbmRfYWRkX2RieF9jZXJ0IGNvbW1hbmRzIG9ubHkgYWNjZXB0 IHRoZQpmaWxlIOKAmFg1MDlfY2VydGlmaWNhdGXigJkgdGhhdCBpcyBzaWduZWQgd2l0aCBhbiBh cHBlbmRlZCBzaWduYXR1cmUuCgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgQXh0ZW5zIDxkamFAYXh0 ZW5zLm5ldD4KU2lnbmVkLW9mZi1ieTogU3VkaGFrYXIgS3VwcHVzYW15IDxzdWRoYWthckBsaW51 eC5pYm0uY29tPgpSZXZpZXdlZC1ieTogRGFuaWVsIEtpcGVyIDxkYW5pZWwua2lwZXJAb3JhY2xl LmNvbT4KLS0tCiBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRzaWcuYyB8 IDMxOSArKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMzE5IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5kZWRz aWcuYyBiL2dydWItY29yZS9jb21tYW5kcy9hcHBlbmRlZHNpZy9hcHBlbmRlZHNpZy5jCmluZGV4 IDI2OGU4MDc2My4uOThiOWU0MmRiIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvY29tbWFuZHMvYXBw ZW5kZWRzaWcvYXBwZW5kZWRzaWcuYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRz aWcvYXBwZW5kZWRzaWcuYwpAQCAtMTIyLDYgKzEyMiw5IEBAIHN0YXRpYyBib29sIGFwcGVuZF9r ZXlfbWdtdCA9IGZhbHNlOwogLyogUGxhdGZvcm0gS2V5U3RvcmUgZGIgYW5kIGRieC4gKi8KIHN0 YXRpYyBncnViX3Brc190ICpwa3Nfa2V5c3RvcmU7CiAKKy8qIEFwcGVuZGVkIHNpZ25hdHVyZSBz aXplLiAqLworc3RhdGljIGdydWJfc2l6ZV90IGFwcGVuZF9zaWdfbGVuID0gMDsKKwogc3RhdGlj IGdydWJfc3NpemVfdAogcHNldWRvX3JlYWQgKHN0cnVjdCBncnViX2ZpbGUgKmZpbGUsIGNoYXIg KmJ1ZiwgZ3J1Yl9zaXplX3QgbGVuKQogewpAQCAtMTM1LDYgKzEzOCw2NCBAQCBzdGF0aWMgc3Ry dWN0IGdydWJfZnMgcHNldWRvX2ZzID0gewogICAuZnNfcmVhZCA9IHBzZXVkb19yZWFkCiB9Owog CisvKgorICogV2UgY2Fubm90IHVzZSBoZXhkdW1wKCkgdG8gZGlzcGxheSBoYXNoIGRhdGEgYmVj YXVzZSBpdCBpcyB0eXBpY2FsbHkKKyAqIGRpc3BsYXllZCBpbiBoZXhhZGVjaW1hbCBmb3JtYXQs IGFsb25nIHdpdGggYW4gQVNDSUkgcmVwcmVzZW50YXRpb24gb2YKKyAqIHRoZSBzYW1lIGRhdGEu CisgKiBFeGFtcGxlOiBzaGEyNTYgaGFzaCBkYXRhCisgKiAwMDAwMDAwMCAgNTIgYjUgOTAgNDkg NjQgZGUgMjIgZDcgIDRlIDVmIDRmIGI0IDFiIDUxIDljIDM0ICB8Ui4uSWQuIi5OX08uLlEuNHwK KyAqIDAwMDAwMDEwICBiMSA5NiAyMSA3YyA5MSA3OCBhNSAwZCAgMjAgOGMgZTkgNWMgMjIgNTQg NTMgZjcgIHwuLiF8LnguLiAuLlwiVFMufAorICoKKyAqIEFuIGFwcGVuZGVkIHNpZ25hdHVyZSBv bmx5IHJlcXVpcmVkIHRvIGRpc3BsYXkgdGhlIGhleGFkZWNpbWFsIG9mIHRoZSBoYXNoIGRhdGEK KyAqIGJ5IHNlcGFyYXRpbmcgZWFjaCBieXRlIHdpdGggIjoiLiBTbywgd2UgaW50cm9kdWNlZCBh IG5ldyBtZXRob2QgZHVtcF9kYXRhX3RvX2hleAorICogdG8gZGlzcGxheSBpdC4KKyAqIEV4YW1w bGU6IFNoYTI1NiBoYXNoIGRhdGEKKyAqICA1MjpiNTo5MDo0OTo2NDpkZToyMjpkNzo0ZTo1Zjo0 ZjpiNDoxYjo1MTo5YzozNDoKKyAqICBiMTo5NjoyMTo3Yzo5MTo3ODphNTowZDoyMDo4YzplOTo1 YzoyMjo1NDo1MzpmNworICovCitzdGF0aWMgdm9pZAoraGV4ZHVtcF9jb2xvbiAoY29uc3QgZ3J1 Yl91aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBsZW5ndGgpCit7CisgIGdydWJfc2l6 ZV90IGksIGNvdW50ID0gMDsKKworICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoIC0gMTsgaSsrKQor ICAgIHsKKyAgICAgIGdydWJfcHJpbnRmICgiJTAyeDoiLCBkYXRhW2ldKTsKKyAgICAgIGNvdW50 Kys7CisgICAgICBpZiAoY291bnQgPT0gMTYpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3By aW50ZiAoIlxuICAgICAgICAgIik7CisgICAgICAgICAgY291bnQgPSAwOworICAgICAgICB9Cisg ICAgfQorCisgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgZGF0YVtpXSk7Cit9CisKK3N0YXRpYyB2 b2lkCitwcmludF9jZXJ0aWZpY2F0ZSAoY29uc3QgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydCwgY29u c3QgZ3J1Yl91aW50MzJfdCBjZXJ0X251bSkKK3sKKyAgZ3J1Yl91aW50MzJfdCBpOworCisgIGdy dWJfcHJpbnRmICgiXG5DZXJ0aWZpY2F0ZTogJXVcbiIsIGNlcnRfbnVtKTsKKyAgZ3J1Yl9wcmlu dGYgKCIgICAgRGF0YTpcbiIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAgVmVyc2lvbjogJXUg KDB4JXUpXG4iLCBjZXJ0LT52ZXJzaW9uICsgMSwgY2VydC0+dmVyc2lvbik7CisgIGdydWJfcHJp bnRmICgiICAgICAgICBTZXJpYWwgTnVtYmVyOlxuICAgICAgICAgICAgICIpOworCisgIGZvciAo aSA9IDA7IGkgPCBjZXJ0LT5zZXJpYWxfbGVuIC0gMTsgaSsrKQorICAgIGdydWJfcHJpbnRmICgi JTAyeDoiLCBjZXJ0LT5zZXJpYWxbaV0pOworCisgIGdydWJfcHJpbnRmICgiJTAyeFxuIiwgY2Vy dC0+c2VyaWFsW2NlcnQtPnNlcmlhbF9sZW4gLSAxXSk7CisgIGdydWJfcHJpbnRmICgiICAgICAg ICBJc3N1ZXI6ICVzXG4iLCBjZXJ0LT5pc3N1ZXIpOworICBncnViX3ByaW50ZiAoIiAgICAgICAg U3ViamVjdDogJXNcbiIsIGNlcnQtPnN1YmplY3QpOworICBncnViX3ByaW50ZiAoIiAgICAgICAg U3ViamVjdCBQdWJsaWMgS2V5IEluZm86XG4iKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgICAgICAg ICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvblxuIik7CisgIGdydWJfcHJpbnRm ICgiICAgICAgICAgICAgICAgIFJTQSBQdWJsaWMtS2V5OiAoJWQgYml0KVxuIiwgY2VydC0+bW9k dWx1c19zaXplKTsKKyAgZ3J1Yl9wcmludGYgKCIgICAgRmluZ2VycHJpbnQ6IHNoYTI1NlxuICAg ICAgICAgIik7CisgIGhleGR1bXBfY29sb24gKCZjZXJ0LT5maW5nZXJwcmludFtHUlVCX0ZJTkdF UlBSSU5UX1NIQTI1Nl1bMF0sCisgICAgICAgICAgICAgICAgIGdydWJfc3RybGVuICgoY2hhciAq KSBjZXJ0LT5maW5nZXJwcmludFtHUlVCX0ZJTkdFUlBSSU5UX1NIQTI1Nl0pKTsKK30KKwogLyoK ICAqIEdVSUQgY2FuIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBoYXNoaW5nIGZ1bmN0aW9uIGFu ZAogICogZ2VuZXJhdGUgdGhlIGhhc2ggdXNpbmcgZGV0ZXJtaW5lZCBoYXNoaW5nIGZ1bmN0aW9u LgpAQCAtNDMwLDYgKzQ5MSw2MSBAQCBhZGRfY2VydGlmaWNhdGUgKGNvbnN0IGdydWJfdWludDhf dCAqZGF0YSwgY29uc3QgZ3J1Yl9zaXplX3QgZGF0YV9zaXplLAogICByZXR1cm4gcmM7CiB9CiAK K3N0YXRpYyB2b2lkCitfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1Yl94NTA5X2NlcnRf dCAqY2VydCkKK3sKKyAgZ3J1Yl91aW50MzJfdCBpID0gMTsKKyAgZ3J1Yl94NTA5X2NlcnRfdCAq Y3Vycl9jZXJ0LCAqcHJldl9jZXJ0OworCisgIGZvciAoY3Vycl9jZXJ0ID0gcHJldl9jZXJ0ID0g ZGIuY2VydHM7IGN1cnJfY2VydCAhPSBOVUxMOyBjdXJyX2NlcnQgPSBjdXJyX2NlcnQtPm5leHQs IGkrKykKKyAgICB7CisgICAgICBpZiAoaXNfY2VydF9tYXRjaCAoY3Vycl9jZXJ0LCBjZXJ0KSA9 PSB0cnVlKQorICAgICAgICB7CisgICAgICAgICAgaWYgKGkgPT0gMSkgLyogTWF0Y2ggd2l0aCBm aXJzdCBjZXJ0aWZpY2F0ZSBpbiB0aGUgZGIgbGlzdC4gKi8KKyAgICAgICAgICAgIGRiLmNlcnRz ID0gY3Vycl9jZXJ0LT5uZXh0OworICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByZXZfY2Vy dC0+bmV4dCA9IGN1cnJfY2VydC0+bmV4dDsKKworICAgICAgICAgIGdydWJfZHByaW50ZiAoImFw cGVuZGVkc2lnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICJyZW1vdmVkIGRpc3RydXN0ZWQg Y2VydGlmaWNhdGUgd2l0aCBDTjogJXMgZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGN1cnJfY2VydC0+c3ViamVjdCk7CisgICAgICAgICAgY3Vycl9jZXJ0LT5u ZXh0ID0gTlVMTDsKKyAgICAgICAgICBncnViX3g1MDlfY2VydF9yZWxlYXNlIChjdXJyX2NlcnQp OworICAgICAgICAgIGdydWJfZnJlZSAoY3Vycl9jZXJ0KTsKKyAgICAgICAgICBicmVhazsKKyAg ICAgICAgfQorICAgICAgZWxzZQorICAgICAgICBwcmV2X2NlcnQgPSBjdXJyX2NlcnQ7CisgICAg fQorfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAorcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY29uc3QgZ3J1 Yl91aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3NpemUpCit7CisgIGdydWJf ZXJyX3QgcmM7CisgIGdydWJfeDUwOV9jZXJ0X3QgKmNlcnQ7CisKKyAgaWYgKGRhdGEgPT0gTlVM TCB8fCBkYXRhX3NpemUgPT0gMCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfT1VU X09GX1JBTkdFLCAiY2VydGlmaWNhdGUgZGF0YSBvciBzaXplIGlzIG5vdCBhdmFpbGFibGUiKTsK KworICBjZXJ0ID0gZ3J1Yl96YWxsb2MgKHNpemVvZiAoZ3J1Yl94NTA5X2NlcnRfdCkpOworICBp ZiAoY2VydCA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0Zf TUVNT1JZLCAib3V0IG9mIG1lbW9yeSIpOworCisgIHJjID0gZ3J1Yl94NTA5X2NlcnRfcGFyc2Ug KGRhdGEsIGRhdGFfc2l6ZSwgY2VydCk7CisgIGlmIChyYyAhPSBHUlVCX0VSUl9OT05FKQorICAg IHsKKyAgICAgIGdydWJfZHByaW50ZiAoImFwcGVuZGVkc2lnIiwgImNhbm5vdCByZW1vdmUgYW4g aW52YWxpZCBjZXJ0aWZpY2F0ZSBmcm9tIHRoZSBkYiBsaXN0XG4iKTsKKyAgICAgIGdydWJfZnJl ZSAoY2VydCk7CisgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgIC8qIFJlbW92ZSBjZXJ0aWZp Y2F0ZSBmcm9tIHRoZSBkYiBsaXN0LiAqLworICBfcmVtb3ZlX2NlcnRfZnJvbV9kYiAoY2VydCk7 CisKKyAgcmV0dXJuIHJjOworfQorCiBzdGF0aWMgZ3J1Yl9lcnJfdAogZmlsZV9yZWFkX3dob2xl IChncnViX2ZpbGVfdCBmaWxlLCBncnViX3VpbnQ4X3QgKipidWYsIGdydWJfc2l6ZV90ICpsZW4p CiB7CkBAIC02NTAsNiArNzY2LDcgQEAgZ3J1Yl92ZXJpZnlfYXBwZW5kZWRfc2lnbmF0dXJlIChj b25zdCBncnViX3VpbnQ4X3QgKmJ1ZiwgZ3J1Yl9zaXplX3QgYnVmc2l6ZSkKICAgaWYgKGVyciAh PSBHUlVCX0VSUl9OT05FKQogICAgIHJldHVybiBlcnI7CiAKKyAgYXBwZW5kX3NpZ19sZW4gPSBz aWcuc2lnbmF0dXJlX2xlbjsKICAgZGF0YXNpemUgPSBidWZzaXplIC0gc2lnLnNpZ25hdHVyZV9s ZW47CiAKICAgLyoKQEAgLTcxNiw2ICs4MzMsMTkzIEBAIGdydWJfdmVyaWZ5X2FwcGVuZGVkX3Np Z25hdHVyZSAoY29uc3QgZ3J1Yl91aW50OF90ICpidWYsIGdydWJfc2l6ZV90IGJ1ZnNpemUpCiAg IHJldHVybiBlcnI7CiB9CiAKK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF92ZXJpZnlfc2ln bmF0dXJlIChncnViX2NvbW1hbmRfdCBjbWQgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLCBpbnQg YXJnYywgY2hhciAqKmFyZ3MpCit7CisgIGdydWJfZmlsZV90IHNpZ25lZF9maWxlOworICBncnVi X2Vycl90IGVycjsKKyAgZ3J1Yl91aW50OF90ICpzaWduZWRfZGF0YSA9IE5VTEw7CisgIGdydWJf c2l6ZV90IHNpZ25lZF9kYXRhX3NpemUgPSAwOworCisgIGlmIChhcmdjICE9IDEpCisgICAgcmV0 dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9BUkdVTUVOVCwKKyAgICAgICAgICAgICAgICAg ICAgICAgImEgc2lnbmVkIGZpbGUgaXMgZXhwZWN0ZWRcbkV4YW1wbGU6XG5cdGFwcGVuZF92ZXJp ZnkgPFNJR05FRCBGSUxFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1swXSkpCisg ICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3Npbmcgc2ln bmVkIGZpbGUiKTsKKworICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJ2ZXJpZnlpbmcg JXNcbiIsIGFyZ3NbMF0pOworCisgIHNpZ25lZF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3Nb MF0sIEdSVUJfRklMRV9UWVBFX1ZFUklGWV9TSUdOQVRVUkUpOworICBpZiAoc2lnbmVkX2ZpbGUg PT0gTlVMTCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfRklMRV9OT1RfRk9VTkQs ICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwgYXJnc1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFk X3dob2xlIChzaWduZWRfZmlsZSwgJnNpZ25lZF9kYXRhLCAmc2lnbmVkX2RhdGFfc2l6ZSk7Cisg IGlmIChlcnIgPT0gR1JVQl9FUlJfTk9ORSkKKyAgICBlcnIgPSBncnViX3ZlcmlmeV9hcHBlbmRl ZF9zaWduYXR1cmUgKHNpZ25lZF9kYXRhLCBzaWduZWRfZGF0YV9zaXplKTsKKworICBncnViX2Zp bGVfY2xvc2UgKHNpZ25lZF9maWxlKTsKKyAgZ3J1Yl9mcmVlIChzaWduZWRfZGF0YSk7CisKKyAg cmV0dXJuIGVycjsKK30KKworLyoKKyAqIENoZWNrcyB0aGUgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBh Z2FpbnN0IGRieCBsaXN0IGlmIGR5bmFtaWMga2V5IG1hbmFnZW1lbnQgaXMgZW5hYmxlZC4KKyAq IEFuZCBhZGQgaXQgdG8gdGhlIGRiIGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudC4K KyAqIE5vdGU6LSBXaGVuIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwgdGhpcyBj b21tYW5kIG9ubHkgYWNjZXB0cyB0aGUKKyAqIHRydXN0ZWQgY2VydGlmaWNhdGUgdGhhdCBpcyBz aWduZWQgd2l0aCBhbiBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlzIHZl cmlmaWVkIGJ5IHRoZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVk cywKKyAqIHRoZSBjZXJ0aWZpY2F0ZSBpcyBhZGRlZCB0byB0aGUgZGIgbGlzdC4gT3RoZXJ3aXNl LCBhbiBlcnJvciBpcyBwb3N0ZWQgYW5kCisgKiB0aGUgY2VydGlmaWNhdGUgaXMgbm90IGFkZGVk LgorICogV2hlbiBzaWduYXR1cmUgdmVyaWZpY2F0aW9uIGlzIGRpc2FibGVkLCBpdCBhY2NlcHRz IHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHdpdGhvdXQKKyAqIGFuIGFwcGVuZGVkIHNpZ25hdHVy ZSBhbmQgYWRkIGl0IHRvIHRoZSBkYiBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUg YWRkaW5nIG9mIHRoZSB0cnVzdGVkIGNlcnRpZmljYXRlIHVzaW5nIHRoaXMgY29tbWFuZCBkb2Vz CisgKiBub3QgcGVyc2lzdCBhY3Jvc3MgcmVib290cy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QK K2dydWJfY21kX2RiX2NlcnQgKGdydWJfY29tbWFuZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51 c2VkKSksIGludCBhcmdjLCBjaGFyICoqYXJncykKK3sKKyAgZ3J1Yl9lcnJfdCBlcnI7CisgIGdy dWJfZmlsZV90IGNlcnRfZmlsZTsKKyAgZ3J1Yl91aW50OF90ICpjZXJ0X2RhdGEgPSBOVUxMOwor ICBncnViX3NpemVfdCBjZXJ0X2RhdGFfc2l6ZSA9IDA7CisKKyAgaWYgKGFyZ2MgIT0gMSkKKyAg ICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0FSR1VNRU5ULAorICAgICAgICAgICAg ICAgICAgICAgICAiYSB0cnVzdGVkIFguNTA5IGNlcnRpZmljYXRlIGZpbGUgaXMgZXhwZWN0ZWQg aW4gREVSIGZvcm1hdFxuIgorICAgICAgICAgICAgICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBw ZW5kX2FkZF9kYl9jZXJ0IDxYNTA5X0NFUlRJRklDQVRFPlxuIik7CisKKyAgaWYgKCFncnViX3N0 cmxlbiAoYXJnc1swXSkpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxF TkFNRSwgIm1pc3NpbmcgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIik7CisKKyAgY2Vy dF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBHUlVCX0ZJTEVfVFlQRV9DRVJUSUZJQ0FURV9UUlVTVCB8IEdSVUJfRklMRV9UWVBF X05PX0RFQ09NUFJFU1MpOworICBpZiAoY2VydF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdy dWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFX1RZUEUsICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxl IiwgYXJnc1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChjZXJ0X2ZpbGUsICZjZXJ0 X2RhdGEsICZjZXJ0X2RhdGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoY2VydF9maWxlKTsK KyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgLyoKKyAg ICogSWYgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhl IGFjdHVhbCBjZXJ0aWZpY2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAg KiBzaWduYXR1cmUgc2l6ZSBmcm9tIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UKKyAgICog dGhlIGNlcnRpZmljYXRlIGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVh bCBjZXJ0aWZpY2F0ZSBzaXplIGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZp Y2F0ZS4KKyAgICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3Np emUgLT0gYXBwZW5kX3NpZ19sZW47CisKKyAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0X2Rh dGEsIGNlcnRfZGF0YV9zaXplLCAmZGIpOworICBncnViX2ZyZWUgKGNlcnRfZGF0YSk7CisgIGlm IChlcnIgIT0gR1JVQl9FUlJfTk9ORSkKKyAgICByZXR1cm4gZXJyOworCisgIHJldHVybiBHUlVC X0VSUl9OT05FOworfQorCisvKgorICogUmVtb3ZlIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRl IGZyb20gdGhlIGRiIGxpc3QgaWYgaXQgaXMgYWxyZWFkeSBwcmVzZW50LgorICogQW5kIGFkZCBp dCB0byB0aGUgZGJ4IGxpc3QgaWYgbm90IHByZXNlbnQgd2hlbiBkeW5hbWljIGtleSBtYW5hZ2Vt ZW50IGlzCisgKiBlbmFibGVkLgorICogTm90ZTotIFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlv biBpcyBlbmFibGVkLCB0aGlzIGNvbW1hbmQgb25seSBhY2NlcHRzIHRoZQorICogZGlzdHJ1c3Rl ZCBjZXJ0aWZpY2F0ZSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFwcGVuZGVkIHNpZ25hdHVyZS4K KyAqIFRoZSBzaWduYXR1cmUgaXMgdmVyaWZpZWQgYnkgdGhlIGFwcGVuZGVkIHNpZyBtb2R1bGUu IElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywKKyAqIHRoZSBjZXJ0aWZpY2F0ZSBpcyByZW1vdmVk IGZyb20gdGhlIGRiIGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFuZAorICog dGhlIGNlcnRpZmljYXRlIGlzIG5vdCByZW1vdmVkLgorICogV2hlbiBzaWduYXR1cmUgdmVyaWZp Y2F0aW9uIGlzIGRpc2FibGVkLCBpdCBhY2NlcHRzIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRl CisgKiB3aXRob3V0IGFuIGFwcGVuZGVkIHNpZ25hdHVyZSBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRo ZSBkYiBsaXN0LgorICoKKyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgcmVtb3ZhbCBvZiB0aGUgZGlz dHJ1c3RlZCBjZXJ0aWZpY2F0ZSB1c2luZyB0aGlzIGNvbW1hbmQKKyAqIGRvZXMgbm90IHBlcnNp c3QgYWNyb3NzIHJlYm9vdHMuCisgKi8KK3N0YXRpYyBncnViX2Vycl90CitncnViX2NtZF9kYnhf Y2VydCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFy Z2MsIGNoYXIgKiphcmdzKQoreworICBncnViX2Vycl90IGVycjsKKyAgZ3J1Yl9maWxlX3QgY2Vy dF9maWxlOworICBncnViX3VpbnQ4X3QgKmNlcnRfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90 IGNlcnRfZGF0YV9zaXplID0gMDsKKworICBpZiAoYXJnYyAhPSAxKQorICAgIHJldHVybiBncnVi X2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsCisgICAgICAgICAgICAgICAgICAgICAgICJh IGRpc3RydXN0ZWQgWC41MDkgY2VydGlmaWNhdGUgZmlsZSBpcyBleHBlY3RlZCBpbiBERVIgZm9y bWF0XG4iCisgICAgICAgICAgICAgICAgICAgICAgICJFeGFtcGxlOlxuXHRhcHBlbmRfYWRkX2Ri eF9jZXJ0IDxYNTA5X0NFUlRJRklDQVRFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJn c1swXSkpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1p c3NpbmcgZGlzdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZSBmaWxlIik7CisKKyAgY2VydF9maWxl ID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBHUlVCX0ZJTEVfVFlQRV9DRVJUSUZJQ0FURV9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05PX0RF Q09NUFJFU1MpOworICBpZiAoY2VydF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJy b3IgKEdSVUJfRVJSX0JBRF9GSUxFX1RZUEUsICJjb3VsZCBub3Qgb3BlbiAlcyBmaWxlIiwgYXJn c1swXSk7CisKKyAgZXJyID0gZmlsZV9yZWFkX3dob2xlIChjZXJ0X2ZpbGUsICZjZXJ0X2RhdGEs ICZjZXJ0X2RhdGFfc2l6ZSk7CisgIGdydWJfZmlsZV9jbG9zZSAoY2VydF9maWxlKTsKKyAgaWYg KGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiBlcnI7CisKKyAgLyoKKyAgICogSWYg c2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFjdHVh bCBjZXJ0aWZpY2F0ZSBzaXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAgKiBzaWdu YXR1cmUgc2l6ZSBmcm9tIHRoZSBjZXJ0aWZpY2F0ZSBzaXplIGJlY2F1c2UKKyAgICogdGhlIGNl cnRpZmljYXRlIGhhcyBhbiBhcHBlbmRlZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVhbCBjZXJ0 aWZpY2F0ZSBzaXplIGlzCisgICAqIHVzZWQgdG8gZ2V0IHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZS4K KyAgICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUpCisgICAgY2VydF9kYXRhX3NpemUgLT0g YXBwZW5kX3NpZ19sZW47CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUgZnJv bSB0aGUgZGIgbGlzdCBpZiBwcmVzZW50LiAqLworICBlcnIgPSByZW1vdmVfY2VydF9mcm9tX2Ri IChjZXJ0X2RhdGEsIGNlcnRfZGF0YV9zaXplKTsKKyAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05F KQorICAgIHsKKyAgICAgIGdydWJfZnJlZSAoY2VydF9kYXRhKTsKKyAgICAgIHJldHVybiBlcnI7 CisgICAgfQorCisgIC8qIE9ubHkgYWRkIHRoZSBjZXJ0aWZpY2F0ZSB0byB0aGUgZGJ4IGxpc3Qg aWYgZHluYW1pYyBrZXkgbWFuYWdlbWVudCBpcyBlbmFibGVkLiAqLworICBpZiAoYXBwZW5kX2tl eV9tZ210ID09IHRydWUpCisgICAgeworICAgICAgZXJyID0gYWRkX2NlcnRpZmljYXRlIChjZXJ0 X2RhdGEsIGNlcnRfZGF0YV9zaXplLCAmZGJ4KTsKKyAgICAgIGlmIChlcnIgIT0gR1JVQl9FUlJf Tk9ORSkKKyAgICAgICAgcmV0dXJuIGVycjsKKyAgICB9CisKKyAgZ3J1Yl9mcmVlIChjZXJ0X2Rh dGEpOworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCitzdGF0aWMgZ3J1Yl9lcnJfdAor Z3J1Yl9jbWRfbGlzdF9kYiAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVz ZWQpKSwgaW50IGFyZ2MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpLAorICAgICAgICAgICAgICAg ICAgY2hhciAqKmFyZ3MgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQoreworICBzdHJ1Y3QgeDUw OV9jZXJ0aWZpY2F0ZSAqY2VydDsKKyAgZ3J1Yl91aW50MzJfdCBpLCBjZXJ0X251bSA9IDE7CisK KyAgZm9yIChjZXJ0ID0gZGIuY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQs IGNlcnRfbnVtKyspCisgICAgcHJpbnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKwor ICBpZiAoYXBwZW5kX2tleV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBHUlVCX0VSUl9OT05F OworCisgIGZvciAoaSA9IDA7IGkgPCBkYi5oYXNoX2VudHJpZXM7IGkrKykKKyAgICB7CisgICAg ICBpZiAoZGIuaGFzaGVzW2ldICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3By aW50ZiAoIlxuQmluYXJ5IGhhc2g6ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1Yl9wcmlu dGYgKCIgICAgSGFzaDogc2hhJSIgUFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBkYi5oYXNo X3NpemVzW2ldICogOCk7CisgICAgICAgICAgaGV4ZHVtcF9jb2xvbiAoZGIuaGFzaGVzW2ldLCBk Yi5oYXNoX3NpemVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICByZXR1cm4gR1JVQl9FUlJf Tk9ORTsKK30KKwogLyogQWRkIHRoZSBYLjUwOSBjZXJ0aWZpY2F0ZXMvYmluYXJ5IGhhc2ggdG8g dGhlIGRiIGxpc3QgZnJvbSBQS1MuICovCiBzdGF0aWMgZ3J1Yl9lcnJfdAogbG9hZF9wa3MyZGIg KHZvaWQpCkBAIC0xMDI5LDYgKzEzMzMsOCBAQCBzdHJ1Y3QgZ3J1Yl9maWxlX3ZlcmlmaWVyIGdy dWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIgPSB7CiAgIC53cml0ZSA9IGFwcGVuZGVkc2lnX3dyaXRl LAogfTsKIAorc3RhdGljIGdydWJfY29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0X2RiLCBj bWRfZGJ4X2NlcnQsIGNtZF9kYl9jZXJ0OworCiBHUlVCX01PRF9JTklUIChhcHBlbmRlZHNpZykK IHsKICAgZ3J1Yl9pbnQzMl90IHJjOwpAQCAtMTA5Nyw2ICsxNDAzLDE1IEBAIEdSVUJfTU9EX0lO SVQgKGFwcGVuZGVkc2lnKQogICAgICAgICAgICAgICAgICAgICBkYi5jZXJ0X2VudHJpZXMpOwog ICAgIH0KIAorICBjbWRfdmVyaWZ5ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX3Zl cmlmeSIsIGdydWJfY21kX3ZlcmlmeV9zaWduYXR1cmUsIE5fKCI8U0lHTkVEX0ZJTEU+IiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJWZXJpZnkgU0lHTkVEX0ZJ TEUgYWdhaW5zdCB0aGUgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMgaW4gdGhlIGRiIGxpc3Qi KSk7CisgIGNtZF9saXN0X2RiID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2xpc3Rf ZGIiLCBncnViX2NtZF9saXN0X2RiLCAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTl8oIlNob3cgdGhlIGxpc3Qgb2YgdHJ1c3RlZCBYLjUwOSBjZXJ0aWZpY2F0ZXMg ZnJvbSB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2RiX2NlcnQgPSBncnViX3JlZ2lzdGVyX2NvbW1h bmQgKCJhcHBlbmRfYWRkX2RiX2NlcnQiLCBncnViX2NtZF9kYl9jZXJ0LCBOXygiPFg1MDlfQ0VS VElGSUNBVEU+IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOXygi QWRkIHRydXN0ZWQgWDUwOV9DRVJUSUZJQ0FURSB0byB0aGUgZGIgbGlzdCIpKTsKKyAgY21kX2Ri eF9jZXJ0ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2FkZF9kYnhfY2VydCIsIGdy dWJfY21kX2RieF9jZXJ0LCBOXygiPFg1MDlfQ0VSVElGSUNBVEU+IiksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTl8oIkFkZCBkaXN0cnVzdGVkIFg1MDlfQ0VSVElG SUNBVEUgdG8gdGhlIGRieCBsaXN0IikpOworCiAgIGdydWJfdmVyaWZpZXJfcmVnaXN0ZXIgKCZn cnViX2FwcGVuZGVkc2lnX3ZlcmlmaWVyKTsKICAgZ3J1Yl9kbF9zZXRfcGVyc2lzdGVudCAobW9k KTsKIH0KQEAgLTExMTUsNCArMTQzMCw4IEBAIEdSVUJfTU9EX0ZJTkkgKGFwcGVuZGVkc2lnKQog ICBncnViX3JlZ2lzdGVyX3ZhcmlhYmxlX2hvb2sgKCJhcHBlbmRlZHNpZ19rZXlfbWdtdCIsIE5V TEwsIE5VTEwpOwogICBncnViX2Vudl91bnNldCAoImFwcGVuZGVkc2lnX2tleV9tZ210Iik7CiAg IGdydWJfdmVyaWZpZXJfdW5yZWdpc3RlciAoJmdydWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIpOwor ICBncnViX3VucmVnaXN0ZXJfY29tbWFuZCAoY21kX3ZlcmlmeSk7CisgIGdydWJfdW5yZWdpc3Rl cl9jb21tYW5kIChjbWRfbGlzdF9kYik7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRf ZGJfY2VydCk7CisgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOwogfQot LSAKMi4zOS41IChBcHBsZSBHaXQtMTU0KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251 Lm9yZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==