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 1D5F3CAC598 for ; Wed, 17 Sep 2025 10:44:12 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uypdO-0005uQ-Mz; Wed, 17 Sep 2025 06:43:34 -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 1uypdJ-0005sP-Og for grub-devel@gnu.org; Wed, 17 Sep 2025 06:43:29 -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 1uypdG-0007jk-E9 for grub-devel@gnu.org; Wed, 17 Sep 2025 06:43:28 -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 58GLmYjP020839; Wed, 17 Sep 2025 10:43:25 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=UCYWqW kYM8I+aCa34Pmwp4pzIbQlCRS3rP94BxJt3sI=; b=QvC2gy0E9UiIpgm5p5OSlG YZSmp3vZvi7hacyuCXvM1GQljcjwQAGW0uLxj3npiCHFtIvfnMPSx0hff/On7tlF p9cWcetQZaITsno7RofBNuyBaH4tXRC1/WeHzUeaEytfA3faN37fhsYmOA+xkd2b P78Zh9JBEf+3oxquzauQodetydrIA+pQwfcUDyPSeltZK4+ivQJjEe21ON+JYi+M g7xncmTEa9Y8VJsu78Q9lGTCOh/EmME3C/bL5lYlMnq56yOBXX3NAZ1hQN9fAwvF IEnlApIsZaHutgemRcimyTToux3LhQBFSBAmzRiixG2041dqCRLxGTaa8YYM8/Qw == Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 497g4m2wvx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Sep 2025 10:43:24 +0000 (GMT) Received: from m0353725.ppops.net (m0353725.ppops.net [127.0.0.1]) by pps.reinject (8.18.1.12/8.18.0.8) with ESMTP id 58HAhON5020926; Wed, 17 Sep 2025 10:43:24 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 497g4m2wvu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Sep 2025 10:43:24 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58H7n2nV018620; Wed, 17 Sep 2025 10:43:23 GMT Received: from smtprelay06.wdc07v.mail.ibm.com ([172.16.1.73]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 495n5mgkq2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 17 Sep 2025 10:43:23 +0000 Received: from smtpav03.wdc07v.mail.ibm.com (smtpav03.wdc07v.mail.ibm.com [10.39.53.230]) by smtprelay06.wdc07v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58HAhM2d14090846 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 17 Sep 2025 10:43:22 GMT Received: from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B283D5805D; Wed, 17 Sep 2025 10:43:22 +0000 (GMT) Received: from smtpav03.wdc07v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4552058054; Wed, 17 Sep 2025 10:43:22 +0000 (GMT) Received: from ltc.linux.ibm.com (unknown [9.5.196.140]) by smtpav03.wdc07v.mail.ibm.com (Postfix) with ESMTP; Wed, 17 Sep 2025 10:43:22 +0000 (GMT) MIME-Version: 1.0 Date: Wed, 17 Sep 2025 16:13:21 +0530 From: Avnish Chouhan To: mchang@suse.com Cc: grub-devel@gnu.org, ngompa13@gmail.com, mlewando@redhat.com Subject: Re: [PATCH v2 2/9] util/grub-editenv: add fs_envblk open helper In-Reply-To: References: Message-ID: <87c0dd8f4b1f0f2841099548ebc8863a@linux.ibm.com> X-Sender: avnish@linux.ibm.com X-TM-AS-GCONF: 00 X-Proofpoint-GUID: qDXkPW84aocjp9p5SjqYryWdYV7oV-Qb X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE2MDIwNCBTYWx0ZWRfX/0tNdmPsB9wY ppk9Jx5GffnLsOo3+sV34nPADagk0JNNfAqPvZwga5F/HsOXMEcbP742qx8e/ivUO6Wxh4WgQ6w 4hiJ7JrzsN89bZ2l0KT30sYfGLZ89Qey6D0WLJpISCg9q2xmY2mf1/P98IgTHDgm8GC+8UBvFoJ WljISXyWngvsdd5ekFKIstmlmcs+7KzME4FKAUaR3L5Rlu4mxL+Rira0kiYCAePXUXH0bdm38PE PtJP7jUVWp5Xk3uB+VJFjwOH7qI9ahk6Z4TXhMrzQ97f2c7opMD7OkbOpX6fgZpgydbwhuaLHFE 8P1NKuSpGGJ54bx5H+Ow+zIOZAUAUh1FRaYQA7cbvk7kMeVLSHO+3/gU8UDSW/RdBFFIojOhKNZ jC4acOno X-Proofpoint-ORIG-GUID: _g0HtaSxMtMre8Yvpogez7ynrS_8bFQN X-Authority-Analysis: v=2.4 cv=QrNe3Uyd c=1 sm=1 tr=0 ts=68ca90cc cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=kj9zAlcOel0A:10 a=yJojWOMRYYMA:10 a=mDV3o1hIAAAA:8 a=iox4zFpeAAAA:8 a=pGLkceISAAAA:8 a=20KFwNOVAAAA:8 a=JubU35schHSHj8flPbwA:9 a=CjuIK1q_8ugA:10 a=WzC6qhA0u3u7Ye7llzcV: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-17_01,2025-09-17_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 phishscore=0 clxscore=1015 bulkscore=0 impostorscore=0 priorityscore=1501 suspectscore=0 spamscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509160204 Received-SPF: pass client-ip=148.163.158.5; envelope-from=avnish@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-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org T24gMjAyNS0wOS0xNSAxNDozOSwgZ3J1Yi1kZXZlbC1yZXF1ZXN0QGdudS5vcmcgd3JvdGU6Cj4g TWVzc2FnZTogMwo+IERhdGU6IE1vbiwgMTUgU2VwIDIwMjUgMTc6MDg6NDEgKzA4MDAKPiBGcm9t OiBNaWNoYWVsIENoYW5nIDxtY2hhbmdAc3VzZS5jb20+Cj4gVG86IFRoZSBkZXZlbG9wbWVudCBv ZiBHTlUgR1JVQiA8Z3J1Yi1kZXZlbEBnbnUub3JnPgo+IENjOiBOZWFsIEdvbXBhIDxuZ29tcGEx M0BnbWFpbC5jb20+LAlNYXJ0YSBMZXdhbmRvd3NrYQo+IAk8bWxld2FuZG9AcmVkaGF0LmNvbT4K PiBTdWJqZWN0OiBbUEFUQ0ggdjIgMi85XSB1dGlsL2dydWItZWRpdGVudjogYWRkIGZzX2VudmJs ayBvcGVuIGhlbHBlcgo+IE1lc3NhZ2UtSUQ6IDwyMDI1MDkxNTA5MDg0OC4xMzE5MzctMy1tY2hh bmdAc3VzZS5jb20+Cj4gCj4gVGhpcyBwYXRjaCBhZGRzIHRoZSBsb2dpYyB0byBsb2NhdGUgYW5k IG9wZW4gYW4gZW52aXJvbm1lbnQgYmxvY2sgdGhhdAo+IGlzIHN0b3JlZCBpbiBhIHJlc2VydmVk IGFyZWEgb24gdGhlIGRldmljZS4gSXQgaW50cm9kdWNlcyB0aGUgZnVuY3Rpb24KPiBmc19lbnZi bGtfb3BlbiB0b2dldGhlciB3aXRoIGhlbHBlciByb3V0aW5lcyB0byByZWFkIHRoZSBibG9jayBw b2ludGVkCj4gdG8gYnkgdGhlIGVudl9ibG9jayB2YXJpYWJsZSwgYW5kIHRvIGNyZWF0ZSB0aGUg YmxvY2sgb24gZGlzayB3aGVuIGl0Cj4gZG9lcyBub3QgeWV0IGV4aXN0LiBXaGVuIGEgYmxvY2sg aXMgY3JlYXRlZCwgdGhlIGNvZGUgcmVjb3JkcyBpdHMKPiBsb2NhdGlvbiBpbnNpZGUgdGhlIGZp bGUgYmFzZWQgZW52YmxrIGJ5IHNldHRpbmcgZW52X2Jsb2NrIGluIGJsb2NrIAo+IGxpc3QKPiBz eW50YXggb2Ygb2Zmc2V0IHBsdXMgc2l6ZSBpbiBzZWN0b3JzLgo+IAo+IFRoZSBlbnZfYmxvY2sg dmFyaWFibGUgYWN0cyBhcyBhIGxpbmsgZnJvbSB0aGUgZmlsZSBlbnZibGsgdG8gdGhlIHJhdwo+ IGRpc2sgcmVnaW9uIHNvIHRoYXQgbGF0ZXIgcnVucyBvZiBncnViIGVkaXRlbnYgY2FuIGZvbGxv dyBpdCBhbmQgYWNjZXNzCj4gdGhlIGV4dGVybmFsIGJsb2NrLiBUaGUgaGVscGVyIGlzIGV4cG9z ZWQgdGhyb3VnaCBhIHNtYWxsIG9wcyB0YWJsZQo+IGF0dGFjaGVkIHRvIGZzX2VudmJsayBzbyB0 aGF0IGxhdGVyIHBhdGNoZXMgY2FuIGNhbGwKPiBmc19lbnZibGstPm9wcy0+b3BlbiB3aXRob3V0 IHRvdWNoaW5nIGNvcmUgY29kZSBhZ2Fpbi4gQXQgdGhpcyBzdGFnZQo+IHZhcmlhYmxlcyBhcmUg c3RpbGwgc3RvcmVkIGluIHRoZSBmaWxlIGVudmJsayBhbmQgbm8gcmVkaXJlY3Rpb24gaGFzCj4g YmVlbiBhcHBsaWVkLgo+IAo+IFNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgQ2hhbmcgPG1jaGFuZ0Bz dXNlLmNvbT4KPiAtLS0KPiAgdXRpbC9ncnViLWVkaXRlbnYuYyB8IDEyOCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAxIGZpbGUgY2hhbmdlZCwgMTI4IGlu c2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvdXRpbC9ncnViLWVkaXRlbnYuYyBiL3V0aWwv Z3J1Yi1lZGl0ZW52LmMKPiBpbmRleCAyMzAyYTZhY2YuLjRlNWRmZmE4NiAxMDA2NDQKPiAtLS0g YS91dGlsL2dydWItZWRpdGVudi5jCj4gKysrIGIvdXRpbC9ncnViLWVkaXRlbnYuYwo+IEBAIC0x MzAsMTIgKzEzMCwyMyBAQCBzdHJ1Y3QgZnNfZW52YmxrX3NwZWMgewo+ICB9Owo+ICB0eXBlZGVm IHN0cnVjdCBmc19lbnZibGtfc3BlYyAqZnNfZW52YmxrX3NwZWNfdDsKPiAKPiArc3RhdGljIGdy dWJfZW52YmxrX3QgZnNfZW52YmxrX29wZW4gKGdydWJfZW52YmxrX3QgZW52YmxrKTsKPiArCj4g K3N0cnVjdCBmc19lbnZibGtfb3BzIHsKPiArICBncnViX2VudmJsa190ICgqb3BlbikgKGdydWJf ZW52YmxrX3QpOwo+ICt9Owo+ICsKPiAgc3RydWN0IGZzX2VudmJsayB7Cj4gICAgc3RydWN0IGZz X2VudmJsa19zcGVjICpzcGVjOwo+ICsgIHN0cnVjdCBmc19lbnZibGtfb3BzICpvcHM7Cj4gICAg Y29uc3QgY2hhciAqZGV2Owo+ICB9Owo+ICB0eXBlZGVmIHN0cnVjdCBmc19lbnZibGsgKmZzX2Vu dmJsa190Owo+IAo+ICtzdGF0aWMgc3RydWN0IGZzX2VudmJsa19vcHMgZnNfZW52YmxrX29wcyA9 IHsKPiArICAub3BlbiA9IGZzX2VudmJsa19vcGVuCj4gK307Cj4gKwo+ICBzdGF0aWMgc3RydWN0 IGZzX2VudmJsa19zcGVjIGZzX2VudmJsa19zcGVjW10gPSB7Cj4gICAgeyAiYnRyZnMiLCBFTlZf QlRSRlNfT0ZGU0VULCBHUlVCX0RJU0tfU0VDVE9SX1NJWkUgfSwKPiAgICB7IE5VTEwsIDAsIDAg fQo+IEBAIC0xNDMsNiArMTU0LDEyMiBAQCBzdGF0aWMgc3RydWN0IGZzX2VudmJsa19zcGVjIGZz X2VudmJsa19zcGVjW10gPSB7Cj4gCj4gIHN0YXRpYyBmc19lbnZibGtfdCBmc19lbnZibGsgPSBO VUxMOwo+IAo+ICtzdGF0aWMgaW50Cj4gK3JlYWRfZW52YmxrX2ZzIChjb25zdCBjaGFyICp2YXJu YW1lLCBjb25zdCBjaGFyICp2YWx1ZSwgdm9pZCAKPiAqaG9va19kYXRhKQo+ICt7Cj4gKyAgZ3J1 Yl9lbnZibGtfdCAqcF9lbnZibGsgPSAoZ3J1Yl9lbnZibGtfdCAqKWhvb2tfZGF0YTsKPiArICBv ZmZfdCBvZmY7Cj4gKyAgc2l6ZV90IHN6Owo+ICsgIGNoYXIgKnAsICpidWY7Cj4gKyAgRklMRSAq ZnA7Cj4gKwo+ICsgIGlmIChwX2VudmJsayA9PSBOVUxMIHx8IGZzX2VudmJsayA9PSBOVUxMKQo+ ICsgICAgcmV0dXJuIDE7Cj4gKwo+ICsgIGlmIChzdHJjbXAgKHZhcm5hbWUsICJlbnZfYmxvY2si KSAhPSAwKQo+ICsgICAgcmV0dXJuIDA7Cj4gKwo+ICsgIG9mZiA9IHN0cnRvbCAodmFsdWUsICZw LCAxMCk7Cj4gKyAgaWYgKCpwID09ICcrJykKPiArICAgIHN6ID0gc3RydG9sIChwKzEsICZwLCAx MCk7Cj4gKyAgZWxzZQo+ICsgICAgcmV0dXJuIDA7Cj4gKwo+ICsgIGlmICgqcCAhPSAnXDAnIHx8 IHN6ID09IDApCj4gKyAgICByZXR1cm4gMDsKPiArCj4gKyAgb2ZmIDw8PSBHUlVCX0RJU0tfU0VD VE9SX0JJVFM7Cj4gKyAgc3ogPDw9IEdSVUJfRElTS19TRUNUT1JfQklUUzsKPiArCj4gKyAgZnAg PSBncnViX3V0aWxfZm9wZW4gKGZzX2VudmJsay0+ZGV2LCAicmIiKTsKPiArICBpZiAoISBmcCkK CkhpIE1pY2hhZWwsCgooZnAgPT0gTlVMTCkgd291bGQgYmUgYmV0dGVyIGhlcmUhCgo+ICsgICAg Z3J1Yl91dGlsX2Vycm9yIChfKCJjYW5ub3Qgb3BlbiBgJXMnOiAlcyIpLCBmc19lbnZibGstPmRl diwKPiArCQkJc3RyZXJyb3IgKGVycm5vKSk7Cj4gKwo+ICsgIGlmIChmc2VlayAoZnAsIG9mZiwg U0VFS19TRVQpIDwgMCkKCmZjbG9zZSAoZnApIHNlZW1zIG1pc3NpbmcgaGVyZS4KCj4gKyAgICBn cnViX3V0aWxfZXJyb3IgKF8oImNhbm5vdCBzZWVrIGAlcyc6ICVzIiksIGZzX2VudmJsay0+ZGV2 LAo+ICsJCQlzdHJlcnJvciAoZXJybm8pKTsKPiArCj4gKyAgYnVmID0geG1hbGxvYyAoc3opOwo+ ICsgIGlmICgoZnJlYWQgKGJ1ZiwgMSwgc3osIGZwKSkgIT0gc3opCgpmY2xvc2UgKGZwKSBzZWVt cyBtaXNzaW5nIGFzIHdlbGwgYXMgZ3J1Yl9mcmVlIChidWYpLgoKPiArICAgIGdydWJfdXRpbF9l cnJvciAoXygiY2Fubm90IHJlYWQgYCVzJzogJXMiKSwgZnNfZW52YmxrLT5kZXYsCj4gKwkJCXN0 cmVycm9yIChlcnJubykpOwo+ICsKPiArICBmY2xvc2UgKGZwKTsKPiArCj4gKyAgKnBfZW52Ymxr ID0gZ3J1Yl9lbnZibGtfb3BlbiAoYnVmLCBzeik7Cj4gKwo+ICsgIHJldHVybiAxOwo+ICt9Cj4g Kwo+ICtzdGF0aWMgdm9pZAo+ICtjcmVhdGVfZW52YmxrX2ZzICh2b2lkKQo+ICt7Cj4gKyAgRklM RSAqZnA7Cj4gKyAgY2hhciAqYnVmOwo+ICsgIGNvbnN0IGNoYXIgKmRldmljZTsKPiArICBvZmZf dCBvZmZzZXQ7Cj4gKyAgc2l6ZV90IHNpemU7Cj4gKwo+ICsgIGlmIChmc19lbnZibGsgPT0gTlVM TCkKPiArICAgIHJldHVybjsKPiArCj4gKyAgZGV2aWNlID0gZnNfZW52YmxrLT5kZXY7Cj4gKyAg b2Zmc2V0ID0gZnNfZW52YmxrLT5zcGVjLT5vZmZzZXQ7Cj4gKyAgc2l6ZSA9IGZzX2VudmJsay0+ c3BlYy0+c2l6ZTsKPiArCj4gKyAgZnAgPSBncnViX3V0aWxfZm9wZW4gKGRldmljZSwgInIrYiIp Owo+ICsgIGlmIChmcCA9PSBOVUxMKQo+ICsgICAgZ3J1Yl91dGlsX2Vycm9yIChfKCJjYW5ub3Qg b3BlbiBgJXMnOiAlcyIpLCBkZXZpY2UsIHN0cmVycm9yIAo+IChlcnJubykpOwo+ICsKPiArICBi dWYgPSB4bWFsbG9jIChzaXplKTsKPiArICBtZW1jcHkgKGJ1ZiwgR1JVQl9FTlZCTEtfU0lHTkFU VVJFLCBzaXplb2YgKEdSVUJfRU5WQkxLX1NJR05BVFVSRSkgLSAKPiAxKTsKPiArICBtZW1zZXQg KGJ1ZiArIHNpemVvZiAoR1JVQl9FTlZCTEtfU0lHTkFUVVJFKSAtIDEsICcjJywgc2l6ZSAtCj4g c2l6ZW9mIChHUlVCX0VOVkJMS19TSUdOQVRVUkUpICsgMSk7Cj4gKwo+ICsgIGlmIChmc2VlayAo ZnAsIG9mZnNldCwgU0VFS19TRVQpIDwgMCkKCmZjbG9zZSAoZnApIHNlZW1zIG1pc3NpbmcgYXMg d2VsbCBhcyBncnViX2ZyZWUgKGJ1ZikuCgo+ICsgICAgZ3J1Yl91dGlsX2Vycm9yIChfKCJjYW5u b3Qgc2VlayBgJXMnOiAlcyIpLCBkZXZpY2UsIHN0cmVycm9yIAo+IChlcnJubykpOwo+ICsKPiAr ICBpZiAoZndyaXRlIChidWYsIDEsIHNpemUsIGZwKSAhPSBzaXplKQoKZmNsb3NlIChmcCkgc2Vl bXMgbWlzc2luZyBhcyB3ZWxsIGFzIGdydWJfZnJlZSAoYnVmKS4KCj4gKyAgICBncnViX3V0aWxf ZXJyb3IgKF8oImNhbm5vdCB3cml0ZSB0byBgJXMnOiAlcyIpLCBkZXZpY2UsIHN0cmVycm9yIAo+ IChlcnJubykpOwo+ICsKPiArICBncnViX3V0aWxfZmlsZV9zeW5jIChmcCk7Cj4gKyAgZnJlZSAo YnVmKTsKPiArICBmY2xvc2UgKGZwKTsKPiArfQo+ICsKPiArc3RhdGljIGdydWJfZW52YmxrX3QK PiArZnNfZW52YmxrX29wZW4gKGdydWJfZW52YmxrX3QgZW52YmxrKQo+ICt7Cj4gKyAgZ3J1Yl9l bnZibGtfdCBlbnZibGtfZnMgPSBOVUxMOwo+ICsgIGNoYXIgKnZhbDsKPiArICBvZmZfdCBvZmZz ZXQ7Cj4gKyAgc2l6ZV90IHNpemU7Cj4gKwo+ICsgIGlmIChlbnZibGsgPT0gTlVMTCkKPiArICAg IHJldHVybiBOVUxMOwo+ICsKPiArICBvZmZzZXQgPSBmc19lbnZibGstPnNwZWMtPm9mZnNldDsK PiArICBzaXplID0gZnNfZW52YmxrLT5zcGVjLT5zaXplOwo+ICsKPiArICBncnViX2VudmJsa19p dGVyYXRlIChlbnZibGssICZlbnZibGtfZnMsIHJlYWRfZW52YmxrX2ZzKTsKPiArCj4gKyAgaWYg KGVudmJsa19mcyAmJiBncnViX2VudmJsa19zaXplIChlbnZibGtfZnMpID09IHNpemUpCj4gKyAg ICByZXR1cm4gZW52YmxrX2ZzOwo+ICsKPiArICBjcmVhdGVfZW52YmxrX2ZzICgpOwo+ICsKPiAr ICBvZmZzZXQgPSBvZmZzZXQgPj4gR1JVQl9ESVNLX1NFQ1RPUl9CSVRTOwo+ICsgIHNpemUgPSAg KHNpemUgKyBHUlVCX0RJU0tfU0VDVE9SX1NJWkUgLSAxKSA+PiBHUlVCX0RJU0tfU0VDVE9SX0JJ VFM7Cj4gKwo+ICsgIHZhbCA9IHhhc3ByaW50ZiAoIiVsZCslbHUiLCBvZmZzZXQsIHNpemUpOwo+ ICsgIGlmICghIGdydWJfZW52YmxrX3NldCAoZW52YmxrLCAiZW52X2Jsb2NrIiwgdmFsKSkKCmdy dWJfZnJlZSAodmFsKSBtaXNzaW5nIGhlcmUuCgpUaGFuayB5b3UhCgpSZWdhcmRzLApBdm5pc2gg Q2hvdWhhbgoKPiArICAgIGdydWJfdXRpbF9lcnJvciAoIiVzIiwgXygiZW52aXJvbm1lbnQgYmxv Y2sgdG9vIHNtYWxsIikpOwo+ICsgIGdydWJfZW52YmxrX2l0ZXJhdGUgKGVudmJsaywgJmVudmJs a19mcywgcmVhZF9lbnZibGtfZnMpOwo+ICsgIGZyZWUgKHZhbCk7Cj4gKwo+ICsgIHJldHVybiBl bnZibGtfZnM7Cj4gK30KPiArCj4gIHN0YXRpYyBncnViX2VudmJsa190Cj4gIG9wZW5fZW52Ymxr X2ZpbGUgKGNvbnN0IGNoYXIgKm5hbWUpCj4gIHsKPiBAQCAtMzkyLDYgKzUxOSw3IEBAIHByb2Jl X2ZzX2VudmJsayAoZnNfZW52YmxrX3NwZWNfdCBzcGVjKQo+ICAJICBmc19lbnZibGsgPSB4bWFs bG9jIChzaXplb2YgKGZzX2VudmJsa190KSk7Cj4gIAkgIGZzX2VudmJsay0+c3BlYyA9IHA7Cj4g IAkgIGZzX2VudmJsay0+ZGV2ID0gZGV2bmFtZTsKPiArCSAgZnNfZW52YmxrLT5vcHMgPSAmZnNf ZW52YmxrX29wczsKPiAgCSAgcmV0dXJuIGZzX2VudmJsazsKPiAgCX0KPiAgICAgIH0KPiAtLQo+ IDIuNTEuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K R3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0dHBzOi8vbGlzdHMu Z251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK