From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pandora.armlinux.org.uk (pandora.armlinux.org.uk [78.32.30.218]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4F2821869 for ; Fri, 2 Sep 2022 14:45:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=AO8KeFGumuDOkycAFRx7cX+B9R2KpEIhnAOpRbm75m8=; b=zTcjenlKl0V1uJJsEZtvWxtTfP FO1MKH34JkqWzIfWIjCrecm6E4G6F3qipp0RzVfRPVCMfBuhsuB3Zeq+gGB9YzXFOhv8qiX2nlhuz 21Is4EWsFDrgQ6TfzU5wjUTMaFZ7pno7R2fih2iebRCkf1YSKGwe4msO73S4XcxvSr8CA9UnZys4X H1/LpdF4eI4AC0i5KUsd45kZUrGIreX3+RcxjUDrpf+vgKou9O0NbU9p/MrOqCt6zgAaD/jmX3l7X qms36iYXKRPuNFHhP1wX3Td0ZyM1SJXFhJoEgxjFdhc4uNrfL0MrM6F6SUAmbBPCH5Yj72w2xdibS jHKC1IOQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:34066) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1oU7vO-0007bt-E9; Fri, 02 Sep 2022 15:45:38 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1oU7vK-0004Vp-9A; Fri, 02 Sep 2022 15:45:34 +0100 Date: Fri, 2 Sep 2022 15:45:34 +0100 From: "Russell King (Oracle)" To: Martin =?utf-8?Q?Povi=C5=A1er?= , Andy Shevchenko Cc: Lee Jones , Linus Walleij , Alyssa Rosenzweig , asahi@lists.linux.dev, Bartosz Golaszewski , Hector Martin , linux-arm-kernel , "open list:GPIO SUBSYSTEM" , Sven Peter Subject: Re: [PATCH 5/6] gpio: Add new gpio-macsmc driver for Apple Macs Message-ID: References: <3B649A66-8116-432D-B88A-B5CE493EF930@cutebit.org> <85AE2F3E-6A1D-4AA0-9205-3E3DE5C6D79F@cutebit.org> Precedence: bulk X-Mailing-List: asahi@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <85AE2F3E-6A1D-4AA0-9205-3E3DE5C6D79F@cutebit.org> Sender: Russell King (Oracle) On Fri, Sep 02, 2022 at 03:37:27PM +0200, Martin Povišer wrote: > > > On 2. 9. 2022, at 15:33, Andy Shevchenko wrote: > > > > On Fri, Sep 2, 2022 at 2:12 PM Martin Povišer wrote: > >>> On 2. 9. 2022, at 12:23, Andy Shevchenko wrote: > >>> On Fri, Sep 2, 2022 at 12:47 PM Martin Povišer wrote: > >>>>> On 2. 9. 2022, at 8:31, Andy Shevchenko wrote: > >>>>> On Fri, Sep 2, 2022 at 12:52 AM Martin Povišer wrote: > > > > ... > > > >>>>> I don't see why we need that. The %.4s (0x%08x) is repeating that with > >>>>> the existing codebase. (I do understand why v4l2/drm have it). Ideally > >>>>> the first should use %4pE, but it might not be suitable in some cases. > >>>> > >>>> Just from a superficial understanding of things: %p4ch on little-endian > >>>> will print in a reversed order to %.4s. As I see it the handling of > >>>> endianness is the value proposition of the new specifiers. > >>> > >>> So, what prevents you from adding this to %pE? > >>> The preferred way is not adding a specifier for a single user with a > >>> particular case, esp. when it's covered by the existing ones. > >> > >> Adding the endianness conversion into %pE as, ehm, an ‘escaping flag’? > >> If you think that would be accepted... > >> > >> I guess this was added on the assumption that keys like this will > >> be a common occurrence in interaction with Apple firmware. Though > >> greping the ‘asahi’ staging tree for ‘%p4ch’ I only see it in the > >> SMC code (9 times): > >> > >> ./drivers/power/reset/macsmc-reboot.c > >> ./drivers/platform/apple/smc_core.c > >> ./drivers/gpio/gpio-macsmc.c > > > >>>> %p4ch - interpret as an u32, print the character in most significant byte first > >>> > >>> %.4s + be32_to_cpu() > >> > >> Well, AIUI instead of > >> > >> printk(“%p4ch = ...\n”, &key); > >> > >> you need to do > >> > >> u32 key_be = cpu_to_be32(key); > >> printk(“%.4s = ...\n”, &key_be); > >> > >> in at least 9 places now, the number of which will probably grow. > >> Just to make the case for *some* printk helper. > > > > Wouldn't this be one line > > > > printk(“%.4s = ...\n”, &cpu_to_be32(key)); > > > > ? > > That would compile? I thought that’s not valid C, taking an > address of function’s return value. It isn't legal C. int foo(int bar); int blah(int *v); int test(int v) { return blah(&foo(v)); } t.c: In function ‘test’: t.c:7:14: error: lvalue required as unary ‘&’ operand And just to make sure that it's not just my test that is wrong, and there's something magical about cpu_to_be32()... In file included from include/linux/device.h:15, from drivers/gpio/gpio-macsmc.c:11: drivers/gpio/gpio-macsmc.c: In function 'macsmc_gpio_probe': drivers/gpio/gpio-macsmc.c:356:49: error: lvalue required as unary '&' operand 356 | dev_info(smcgp->dev, "First GPIO key: %.4s\n", &cpu_to_be32(key)); | ^ include/linux/dev_printk.h:110:23: note: in definition of macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ drivers/gpio/gpio-macsmc.c:356:2: note: in expansion of macro 'dev_info' 356 | dev_info(smcgp->dev, "First GPIO key: %.4s\n", &cpu_to_be32(key)); | ^~~~~~~~ make[3]: *** [scripts/Makefile.build:249: drivers/gpio/gpio-macsmc.o] Error 1 make[2]: *** [scripts/Makefile.build:466: drivers/gpio] Error 2 make[1]: *** [Makefile:1843: drivers] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:219: __sub-make] Error 2 So, sorry Andy, but this suggestion does not appear to be legal C. This also applies to your suggestion in the other sub-thread of: ret = hex2bin(&result, (char *)&cpu_to_le16(key), 1); As we've now discovered that this is not legal C, can we back up *both* discussions and start again on these points. -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last! 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 B79F8ECAAD5 for ; Fri, 2 Sep 2022 14:50:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=uU24y08HnZkCL+mp8CflCc6Vs1U6of5uIS/W2VMcwKw=; b=PxrwaSQKGtqduM fcXyAO/wQClArxdgjJknftALC0BvhIGZ0LycPdNYQM63+GOQ1CnGdntGt25EF3S3I2Xl4/lXrxoQb L+1qCl3MlJeMHQZJd//fwdVbAkBaPfNc52V8OadcCGnXnYBQHCLMBm7DSchHKamdymvc6671HgBmM Wb10MkRztKbWg2PtGPGPnw1SmzIr7Dwbh/QRfY5bj2FRd8kQPi/QfK+7iUKztyUHYN6so25jZYI0F 3bL8kY9AfcRj8gbDLG4Oct6Tlsy0j0IL7sZl982sHeAAPrURjYkUa4yjTEY+WmZRaOqttjSRmdI/L vKwoICsPItOjwBZ0y7BA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1oU7ys-005laN-Pm; Fri, 02 Sep 2022 14:49:15 +0000 Received: from pandora.armlinux.org.uk ([2001:4d48:ad52:32c8:5054:ff:fe00:142]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1oU7xZ-005it3-NP for linux-arm-kernel@lists.infradead.org; Fri, 02 Sep 2022 14:47:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2019; h=Sender:In-Reply-To: Content-Transfer-Encoding:Content-Type:MIME-Version:References:Message-ID: Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=AO8KeFGumuDOkycAFRx7cX+B9R2KpEIhnAOpRbm75m8=; b=zTcjenlKl0V1uJJsEZtvWxtTfP FO1MKH34JkqWzIfWIjCrecm6E4G6F3qipp0RzVfRPVCMfBuhsuB3Zeq+gGB9YzXFOhv8qiX2nlhuz 21Is4EWsFDrgQ6TfzU5wjUTMaFZ7pno7R2fih2iebRCkf1YSKGwe4msO73S4XcxvSr8CA9UnZys4X H1/LpdF4eI4AC0i5KUsd45kZUrGIreX3+RcxjUDrpf+vgKou9O0NbU9p/MrOqCt6zgAaD/jmX3l7X qms36iYXKRPuNFHhP1wX3Td0ZyM1SJXFhJoEgxjFdhc4uNrfL0MrM6F6SUAmbBPCH5Yj72w2xdibS jHKC1IOQ==; Received: from shell.armlinux.org.uk ([fd8f:7570:feb6:1:5054:ff:fe00:4ec]:34066) by pandora.armlinux.org.uk with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1oU7vO-0007bt-E9; Fri, 02 Sep 2022 15:45:38 +0100 Received: from linux by shell.armlinux.org.uk with local (Exim 4.94.2) (envelope-from ) id 1oU7vK-0004Vp-9A; Fri, 02 Sep 2022 15:45:34 +0100 Date: Fri, 2 Sep 2022 15:45:34 +0100 From: "Russell King (Oracle)" To: Martin =?utf-8?Q?Povi=C5=A1er?= , Andy Shevchenko Cc: Lee Jones , Linus Walleij , Alyssa Rosenzweig , asahi@lists.linux.dev, Bartosz Golaszewski , Hector Martin , linux-arm-kernel , "open list:GPIO SUBSYSTEM" , Sven Peter Subject: Re: [PATCH 5/6] gpio: Add new gpio-macsmc driver for Apple Macs Message-ID: References: <3B649A66-8116-432D-B88A-B5CE493EF930@cutebit.org> <85AE2F3E-6A1D-4AA0-9205-3E3DE5C6D79F@cutebit.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <85AE2F3E-6A1D-4AA0-9205-3E3DE5C6D79F@cutebit.org> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220902_074754_609104_558C06FD X-CRM114-Status: GOOD ( 31.93 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gRnJpLCBTZXAgMDIsIDIwMjIgYXQgMDM6Mzc6MjdQTSArMDIwMCwgTWFydGluIFBvdmnFoWVy IHdyb3RlOgo+IAo+ID4gT24gMi4gOS4gMjAyMiwgYXQgMTU6MzMsIEFuZHkgU2hldmNoZW5rbyA8 YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPiAKPiA+IE9uIEZyaSwgU2VwIDIs IDIwMjIgYXQgMjoxMiBQTSBNYXJ0aW4gUG92acWhZXIgPHBvdmlrQGN1dGViaXQub3JnPiB3cm90 ZToKPiA+Pj4gT24gMi4gOS4gMjAyMiwgYXQgMTI6MjMsIEFuZHkgU2hldmNoZW5rbyA8YW5keS5z aGV2Y2hlbmtvQGdtYWlsLmNvbT4gd3JvdGU6Cj4gPj4+IE9uIEZyaSwgU2VwIDIsIDIwMjIgYXQg MTI6NDcgUE0gTWFydGluIFBvdmnFoWVyIDxwb3Zpa0BjdXRlYml0Lm9yZz4gd3JvdGU6Cj4gPj4+ Pj4gT24gMi4gOS4gMjAyMiwgYXQgODozMSwgQW5keSBTaGV2Y2hlbmtvIDxhbmR5LnNoZXZjaGVu a29AZ21haWwuY29tPiB3cm90ZToKPiA+Pj4+PiBPbiBGcmksIFNlcCAyLCAyMDIyIGF0IDEyOjUy IEFNIE1hcnRpbiBQb3ZpxaFlciA8cG92aWtAY3V0ZWJpdC5vcmc+IHdyb3RlOgo+ID4gCj4gPiAu Li4KPiA+IAo+ID4+Pj4+IEkgZG9uJ3Qgc2VlIHdoeSB3ZSBuZWVkIHRoYXQuIFRoZSAlLjRzICgw eCUwOHgpIGlzIHJlcGVhdGluZyB0aGF0IHdpdGgKPiA+Pj4+PiB0aGUgZXhpc3RpbmcgY29kZWJh c2UuIChJIGRvIHVuZGVyc3RhbmQgd2h5IHY0bDIvZHJtIGhhdmUgaXQpLiBJZGVhbGx5Cj4gPj4+ Pj4gdGhlIGZpcnN0IHNob3VsZCB1c2UgJTRwRSwgYnV0IGl0IG1pZ2h0IG5vdCBiZSBzdWl0YWJs ZSBpbiBzb21lIGNhc2VzLgo+ID4+Pj4gCj4gPj4+PiBKdXN0IGZyb20gYSBzdXBlcmZpY2lhbCB1 bmRlcnN0YW5kaW5nIG9mIHRoaW5nczogJXA0Y2ggb24gbGl0dGxlLWVuZGlhbgo+ID4+Pj4gd2ls bCBwcmludCBpbiBhIHJldmVyc2VkIG9yZGVyIHRvICUuNHMuIEFzIEkgc2VlIGl0IHRoZSBoYW5k bGluZyBvZgo+ID4+Pj4gZW5kaWFubmVzcyBpcyB0aGUgdmFsdWUgcHJvcG9zaXRpb24gb2YgdGhl IG5ldyBzcGVjaWZpZXJzLgo+ID4+PiAKPiA+Pj4gU28sIHdoYXQgcHJldmVudHMgeW91IGZyb20g YWRkaW5nIHRoaXMgdG8gJXBFPwo+ID4+PiBUaGUgcHJlZmVycmVkIHdheSBpcyBub3QgYWRkaW5n IGEgc3BlY2lmaWVyIGZvciBhIHNpbmdsZSB1c2VyIHdpdGggYQo+ID4+PiBwYXJ0aWN1bGFyIGNh c2UsIGVzcC4gd2hlbiBpdCdzIGNvdmVyZWQgYnkgdGhlIGV4aXN0aW5nIG9uZXMuCj4gPj4gCj4g Pj4gQWRkaW5nIHRoZSBlbmRpYW5uZXNzIGNvbnZlcnNpb24gaW50byAlcEUgYXMsIGVobSwgYW4g 4oCYZXNjYXBpbmcgZmxhZ+KAmT8KPiA+PiBJZiB5b3UgdGhpbmsgdGhhdCB3b3VsZCBiZSBhY2Nl cHRlZC4uLgo+ID4+IAo+ID4+IEkgZ3Vlc3MgdGhpcyB3YXMgYWRkZWQgb24gdGhlIGFzc3VtcHRp b24gdGhhdCBrZXlzIGxpa2UgdGhpcyB3aWxsCj4gPj4gYmUgYSBjb21tb24gb2NjdXJyZW5jZSBp biBpbnRlcmFjdGlvbiB3aXRoIEFwcGxlIGZpcm13YXJlLiBUaG91Z2gKPiA+PiBncmVwaW5nIHRo ZSDigJhhc2FoaeKAmSBzdGFnaW5nIHRyZWUgZm9yIOKAmCVwNGNo4oCZIEkgb25seSBzZWUgaXQg aW4gdGhlCj4gPj4gU01DIGNvZGUgKDkgdGltZXMpOgo+ID4+IAo+ID4+IC4vZHJpdmVycy9wb3dl ci9yZXNldC9tYWNzbWMtcmVib290LmMKPiA+PiAuL2RyaXZlcnMvcGxhdGZvcm0vYXBwbGUvc21j X2NvcmUuYwo+ID4+IC4vZHJpdmVycy9ncGlvL2dwaW8tbWFjc21jLmMKPiA+IAo+ID4+Pj4gJXA0 Y2ggLSBpbnRlcnByZXQgYXMgYW4gdTMyLCBwcmludCB0aGUgY2hhcmFjdGVyIGluIG1vc3Qgc2ln bmlmaWNhbnQgYnl0ZSBmaXJzdAo+ID4+PiAKPiA+Pj4gJS40cyArIGJlMzJfdG9fY3B1KCkKPiA+ PiAKPiA+PiBXZWxsLCBBSVVJIGluc3RlYWQgb2YKPiA+PiAKPiA+PiAgcHJpbnRrKOKAnCVwNGNo ID0gLi4uXG7igJ0sICZrZXkpOwo+ID4+IAo+ID4+IHlvdSBuZWVkIHRvIGRvCj4gPj4gCj4gPj4g IHUzMiBrZXlfYmUgPSBjcHVfdG9fYmUzMihrZXkpOwo+ID4+ICBwcmludGso4oCcJS40cyA9IC4u Llxu4oCdLCAma2V5X2JlKTsKPiA+PiAKPiA+PiBpbiBhdCBsZWFzdCA5IHBsYWNlcyBub3csIHRo ZSBudW1iZXIgb2Ygd2hpY2ggd2lsbCBwcm9iYWJseSBncm93Lgo+ID4+IEp1c3QgdG8gbWFrZSB0 aGUgY2FzZSBmb3IgKnNvbWUqIHByaW50ayBoZWxwZXIuCj4gPiAKPiA+IFdvdWxkbid0IHRoaXMg YmUgb25lIGxpbmUKPiA+IAo+ID4gIHByaW50ayjigJwlLjRzID0gLi4uXG7igJ0sICZjcHVfdG9f YmUzMihrZXkpKTsKPiA+IAo+ID4gPwo+IAo+IFRoYXQgd291bGQgY29tcGlsZT8gSSB0aG91Z2h0 IHRoYXTigJlzIG5vdCB2YWxpZCBDLCB0YWtpbmcgYW4KPiBhZGRyZXNzIG9mIGZ1bmN0aW9u4oCZ cyByZXR1cm4gdmFsdWUuCgpJdCBpc24ndCBsZWdhbCBDLgoKaW50IGZvbyhpbnQgYmFyKTsKCmlu dCBibGFoKGludCAqdik7CgppbnQgdGVzdChpbnQgdikKewogICAgICAgIHJldHVybiBibGFoKCZm b28odikpOwp9Cgp0LmM6IEluIGZ1bmN0aW9uIOKAmHRlc3TigJk6CnQuYzo3OjE0OiBlcnJvcjog bHZhbHVlIHJlcXVpcmVkIGFzIHVuYXJ5IOKAmCbigJkgb3BlcmFuZAoKQW5kIGp1c3QgdG8gbWFr ZSBzdXJlIHRoYXQgaXQncyBub3QganVzdCBteSB0ZXN0IHRoYXQgaXMgd3JvbmcsIGFuZAp0aGVy ZSdzIHNvbWV0aGluZyBtYWdpY2FsIGFib3V0IGNwdV90b19iZTMyKCkuLi4KCkluIGZpbGUgaW5j bHVkZWQgZnJvbSBpbmNsdWRlL2xpbnV4L2RldmljZS5oOjE1LAogICAgICAgICAgICAgICAgIGZy b20gZHJpdmVycy9ncGlvL2dwaW8tbWFjc21jLmM6MTE6CmRyaXZlcnMvZ3Bpby9ncGlvLW1hY3Nt Yy5jOiBJbiBmdW5jdGlvbiAnbWFjc21jX2dwaW9fcHJvYmUnOgpkcml2ZXJzL2dwaW8vZ3Bpby1t YWNzbWMuYzozNTY6NDk6IGVycm9yOiBsdmFsdWUgcmVxdWlyZWQgYXMgdW5hcnkgJyYnIG9wZXJh bmQKICAzNTYgfCAgZGV2X2luZm8oc21jZ3AtPmRldiwgIkZpcnN0IEdQSU8ga2V5OiAlLjRzXG4i LCAmY3B1X3RvX2JlMzIoa2V5KSk7CiAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgppbmNsdWRlL2xpbnV4L2Rldl9wcmludGsuaDoxMTA6MjM6 IG5vdGU6IGluIGRlZmluaXRpb24gb2YgbWFjcm8gJ2Rldl9wcmludGtfaW5kZXhfd3JhcCcKICAx MTAgfCAgIF9wX2Z1bmMoZGV2LCBmbXQsICMjX19WQV9BUkdTX18pOyAgIFwKICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn4KZHJpdmVycy9ncGlvL2dwaW8tbWFjc21jLmM6 MzU2OjI6IG5vdGU6IGluIGV4cGFuc2lvbiBvZiBtYWNybyAnZGV2X2luZm8nCiAgMzU2IHwgIGRl dl9pbmZvKHNtY2dwLT5kZXYsICJGaXJzdCBHUElPIGtleTogJS40c1xuIiwgJmNwdV90b19iZTMy KGtleSkpOwogICAgICB8ICBefn5+fn5+fgptYWtlWzNdOiAqKiogW3NjcmlwdHMvTWFrZWZpbGUu YnVpbGQ6MjQ5OiBkcml2ZXJzL2dwaW8vZ3Bpby1tYWNzbWMub10gRXJyb3IgMQptYWtlWzJdOiAq KiogW3NjcmlwdHMvTWFrZWZpbGUuYnVpbGQ6NDY2OiBkcml2ZXJzL2dwaW9dIEVycm9yIDIKbWFr ZVsxXTogKioqIFtNYWtlZmlsZToxODQzOiBkcml2ZXJzXSBFcnJvciAyCm1ha2VbMV06ICoqKiBX YWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6MjE5OiBf X3N1Yi1tYWtlXSBFcnJvciAyCgpTbywgc29ycnkgQW5keSwgYnV0IHRoaXMgc3VnZ2VzdGlvbiBk b2VzIG5vdCBhcHBlYXIgdG8gYmUgbGVnYWwgQy4KClRoaXMgYWxzbyBhcHBsaWVzIHRvIHlvdXIg c3VnZ2VzdGlvbiBpbiB0aGUgb3RoZXIgc3ViLXRocmVhZCBvZjoKCiAgICAgICAgIHJldCA9IGhl eDJiaW4oJnJlc3VsdCwgKGNoYXIgKikmY3B1X3RvX2xlMTYoa2V5KSwgMSk7CgpBcyB3ZSd2ZSBu b3cgZGlzY292ZXJlZCB0aGF0IHRoaXMgaXMgbm90IGxlZ2FsIEMsIGNhbiB3ZSBiYWNrIHVwICpi b3RoKgpkaXNjdXNzaW9ucyBhbmQgc3RhcnQgYWdhaW4gb24gdGhlc2UgcG9pbnRzLgoKLS0gClJN SydzIFBhdGNoIHN5c3RlbTogaHR0cHM6Ly93d3cuYXJtbGludXgub3JnLnVrL2RldmVsb3Blci9w YXRjaGVzLwpGVFRQIGlzIGhlcmUhIDQwTWJwcyBkb3duIDEwTWJwcyB1cC4gRGVjZW50IGNvbm5l Y3Rpdml0eSBhdCBsYXN0IQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBs aXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlz dGluZm8vbGludXgtYXJtLWtlcm5lbAo=