From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from galahad.ideasonboard.com ([185.26.127.97]:33632 "EHLO galahad.ideasonboard.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753158AbeCTM3N (ORCPT ); Tue, 20 Mar 2018 08:29:13 -0400 From: Laurent Pinchart To: jacopo mondi Cc: Andrzej Hajda , Jacopo Mondi , architt@codeaurora.org, airlied@linux.ie, horms@verge.net.au, magnus.damm@gmail.com, geert@linux-m68k.org, niklas.soderlund@ragnatech.se, sergei.shtylyov@cogentembedded.com, robh+dt@kernel.org, mark.rutland@arm.com, dri-devel@lists.freedesktop.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3 1/3] dt-bindings: display: bridge: Document THC63LVD1024 LVDS decoder Date: Tue, 20 Mar 2018 14:30:18 +0200 Message-ID: <2298402.U9ahAbaIat@avalon> In-Reply-To: <20180314090651.GA16424@w540> References: <1520951425-13843-1-git-send-email-jacopo+renesas@jmondi.org> <20180314090651.GA16424@w540> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" Sender: linux-renesas-soc-owner@vger.kernel.org List-ID: Hi Jacopo, On Wednesday, 14 March 2018 11:06:51 EET jacopo mondi wrote: > Hi Andrzej, > sorry for the mess :( > > On Wed, Mar 14, 2018 at 09:15:42AM +0100, Andrzej Hajda wrote: > > On 13.03.2018 15:30, Jacopo Mondi wrote: > > > Document Thine THC63LVD1024 LVDS decoder device tree bindings. > > > > > > Signed-off-by: Jacopo Mondi > > > --- > > > > > > .../bindings/display/bridge/thine,thc63lvd1024.txt | 63 +++++++++++++++ > > > 1 file changed, 63 insertions(+) > > > create mode 100644 > > > Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.tx > > > t > > > diff --git > > > a/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.t > > > xt > > > b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.t > > > xt new file mode 100644 > > > index 0000000..5b5afcd > > > --- /dev/null > > > +++ > > > b/Documentation/devicetree/bindings/display/bridge/thine,thc63lvd1024.t > > > xt @@ -0,0 +1,63 @@ > > > +Thine Electronics THC63LVD1024 LVDS decoder > > > +------------------------------------------- > > > + > > > +The THC63LVD1024 is a dual link LVDS receiver designed to convert LVDS > > > streams +to parallel data outputs. The chip supports single/dual > > > input/output modes, +handling up to two two input LVDS stream and up to > > > two digital CMOS/TTL outputs. + > > > +Required properties: > > > +- compatible: Shall be "thine,thc63lvd1024", > > > + > > > +Optional properties: > > > +- vcc-supply: Power supply for TTL output and digital circuitry > > > +- cvcc-supply: Power supply for TTL CLOCKOUT signal > > > +- lvcc-supply: Power supply for LVDS inputs > > > +- pvcc-supply: Power supply for PLL circuitry > > > > I wonder if it wouldn't be better to make them required (at least VCC) - > > it is closer to reality. > > In cases like our Eagle board, where VCC is directly connected to the > powering rail and not through a controllable regulator, I feel like > making this mandatory requires more effort (not much, I agree, just a > "fixed-regulator" more) with no additional benefits. > > But I understand your point, and I'm open to whatever fits better with > the already existing DRM bridges bindings I still haven't made up my mind on this topic. I like making the VCC power supply mandatory as it is mandatory, but you're right that it creates additional complexity in DT without much added benefit (although it might simplify the driver as bit). In that case I'd make the other supplies mandatory too. I'm tempted to specify a single power supply in DT though, as I'd be quite surprised to see a system with individually controllable supplies for the different power rails (they all use the same voltage), but surprises happen. We've had similar cases in other bindings before (I'm afraid I can't recall which) where Rob was fine having a single supply. Maybe we could apply the same logic with a single vcc supply, and add the other supplies later as optional properties if we ever need to specify them separately ? > > > +- pwnd-gpios: Power down GPIO signal. Active low. > > > > As I said before, specs[1] says about "/PDWN" pin. Is it your typo, or > > different docs? > > I didn't notice the typo in first review, and I thought you were referring > to the initial '/' which I found weird to be part of the gpio name... Then > I now realized I badly typed in "pwnd" in place of "pwdn", which is not > even correct because it has to be "pdwn"... Sorry about this mess, I will > fix in v4 > > > Moreover there are already bindings for THC63LVDM83D with the same > > dichotomy [2]. > > Seems like this is 'wrong' as well.. The chip manual says the pin is > named "pdwn" here too.. > > > Out of curiosity I have googled for "pwnd pin" and it looks like some > > vendors use this form. > > For me both forms are quite misleading: power down signal, active low, > > why they couldn't call it just 'enable, active high'. > > It's not much the actual physical active level that bugs me, but the fact > that the GPIO name defines if it has to be set to "active" or > "inactive" logical state in enable/disable routines that I don't > like.. > > > [1]: http://www.thine.co.jp/files/topics/179_ext_12_0.pdf > > [2]: https://elixir.bootlin.com/linux/v4.16-rc5/source/Documentation/ > > devicetree/bindings/display/bridge/thine,thc63lvdm83d.txt> > > > +- oe-gpios: Output enable GPIO signal. Active high. > > > + > > > +The THC63LVD1024 video port connections are modeled according > > > +to OF graph bindings specified by > > > Documentation/devicetree/bindings/graph.txt > > > + > > > +Required video port nodes: > > > +- Port@0: First LVDS input port > > > +- Port@2: First digital CMOS/TTL parallel output > > > + > > > +Optional video port nodes: > > > +- Port@1: Second LVDS input port > > > +- Port@3: Second digital CMOS/TTL parallel output > > > + > > > +Example: > > > +-------- > > > + > > > + thc63lvd1024: lvds-decoder { > > > + compatible = "thine,thc63lvd1024"; > > > + > > > + vcc-supply = <®_lvds_vcc>; > > > + lvcc-supply = <®_lvds_lvcc>; > > > + > > > + pwdn-gpio = <&gpio4 15 GPIO_ACTIVE_LOW>; > > > > And here another variation :), should be pdwn-gpios. > > Next time it will be "pndw".. Is there a prize if I do insert all > permutations of the same name in a single bindings document? :) > > Will fix this shortly. -- Regards, Laurent Pinchart From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v3 1/3] dt-bindings: display: bridge: Document THC63LVD1024 LVDS decoder Date: Tue, 20 Mar 2018 14:30:18 +0200 Message-ID: <2298402.U9ahAbaIat@avalon> References: <1520951425-13843-1-git-send-email-jacopo+renesas@jmondi.org> <20180314090651.GA16424@w540> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20180314090651.GA16424@w540> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: jacopo mondi Cc: mark.rutland@arm.com, devicetree@vger.kernel.org, sergei.shtylyov@cogentembedded.com, airlied@linux.ie, magnus.damm@gmail.com, linux-kernel@vger.kernel.org, robh+dt@kernel.org, linux-renesas-soc@vger.kernel.org, horms@verge.net.au, Jacopo Mondi , dri-devel@lists.freedesktop.org, niklas.soderlund@ragnatech.se, geert@linux-m68k.org List-Id: devicetree@vger.kernel.org SGkgSmFjb3BvLAoKT24gV2VkbmVzZGF5LCAxNCBNYXJjaCAyMDE4IDExOjA2OjUxIEVFVCBqYWNv cG8gbW9uZGkgd3JvdGU6Cj4gSGkgQW5kcnplaiwKPiAgICAgc29ycnkgZm9yIHRoZSBtZXNzIDoo Cj4gCj4gT24gV2VkLCBNYXIgMTQsIDIwMTggYXQgMDk6MTU6NDJBTSArMDEwMCwgQW5kcnplaiBI YWpkYSB3cm90ZToKPiA+IE9uIDEzLjAzLjIwMTggMTU6MzAsIEphY29wbyBNb25kaSB3cm90ZToK PiA+ID4gRG9jdW1lbnQgVGhpbmUgVEhDNjNMVkQxMDI0IExWRFMgZGVjb2RlciBkZXZpY2UgdHJl ZSBiaW5kaW5ncy4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEphY29wbyBNb25kaSA8amFj b3BvK3JlbmVzYXNAam1vbmRpLm9yZz4KPiA+ID4gLS0tCj4gPiA+IAo+ID4gPiAgLi4uL2JpbmRp bmdzL2Rpc3BsYXkvYnJpZGdlL3RoaW5lLHRoYzYzbHZkMTAyNC50eHQgfCA2MyArKysrKysrKysr KysrKysKPiA+ID4gIDEgZmlsZSBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspCj4gPiA+ICBjcmVh dGUgbW9kZSAxMDA2NDQKPiA+ID4gIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9k aXNwbGF5L2JyaWRnZS90aGluZSx0aGM2M2x2ZDEwMjQudHgKPiA+ID4gIHQKPiA+ID4gZGlmZiAt LWdpdAo+ID4gPiBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2Jy aWRnZS90aGluZSx0aGM2M2x2ZDEwMjQudAo+ID4gPiB4dAo+ID4gPiBiL0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9kaXNwbGF5L2JyaWRnZS90aGluZSx0aGM2M2x2ZDEwMjQudAo+ ID4gPiB4dCBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gPiBpbmRleCAwMDAwMDAwLi41YjVhZmNk Cj4gPiA+IC0tLSAvZGV2L251bGwKPiA+ID4gKysrCj4gPiA+IGIvRG9jdW1lbnRhdGlvbi9kZXZp Y2V0cmVlL2JpbmRpbmdzL2Rpc3BsYXkvYnJpZGdlL3RoaW5lLHRoYzYzbHZkMTAyNC50Cj4gPiA+ IHh0IEBAIC0wLDAgKzEsNjMgQEAKPiA+ID4gK1RoaW5lIEVsZWN0cm9uaWNzIFRIQzYzTFZEMTAy NCBMVkRTIGRlY29kZXIKPiA+ID4gKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KPiA+ID4gKwo+ID4gPiArVGhlIFRIQzYzTFZEMTAyNCBpcyBhIGR1YWwgbGluayBM VkRTIHJlY2VpdmVyIGRlc2lnbmVkIHRvIGNvbnZlcnQgTFZEUwo+ID4gPiBzdHJlYW1zICt0byBw YXJhbGxlbCBkYXRhIG91dHB1dHMuIFRoZSBjaGlwIHN1cHBvcnRzIHNpbmdsZS9kdWFsCj4gPiA+ IGlucHV0L291dHB1dCBtb2RlcywgK2hhbmRsaW5nIHVwIHRvIHR3byB0d28gaW5wdXQgTFZEUyBz dHJlYW0gYW5kIHVwIHRvCj4gPiA+IHR3byBkaWdpdGFsIENNT1MvVFRMIG91dHB1dHMuICsKPiA+ ID4gK1JlcXVpcmVkIHByb3BlcnRpZXM6Cj4gPiA+ICstIGNvbXBhdGlibGU6IFNoYWxsIGJlICJ0 aGluZSx0aGM2M2x2ZDEwMjQiLAo+ID4gPiArCj4gPiA+ICtPcHRpb25hbCBwcm9wZXJ0aWVzOgo+ ID4gPiArLSB2Y2Mtc3VwcGx5OiBQb3dlciBzdXBwbHkgZm9yIFRUTCBvdXRwdXQgYW5kIGRpZ2l0 YWwgY2lyY3VpdHJ5Cj4gPiA+ICstIGN2Y2Mtc3VwcGx5OiBQb3dlciBzdXBwbHkgZm9yIFRUTCBD TE9DS09VVCBzaWduYWwKPiA+ID4gKy0gbHZjYy1zdXBwbHk6IFBvd2VyIHN1cHBseSBmb3IgTFZE UyBpbnB1dHMKPiA+ID4gKy0gcHZjYy1zdXBwbHk6IFBvd2VyIHN1cHBseSBmb3IgUExMIGNpcmN1 aXRyeQo+ID4gCj4gPiBJIHdvbmRlciBpZiBpdCB3b3VsZG4ndCBiZSBiZXR0ZXIgdG8gbWFrZSB0 aGVtIHJlcXVpcmVkIChhdCBsZWFzdCBWQ0MpIC0KPiA+IGl0IGlzIGNsb3NlciB0byByZWFsaXR5 Lgo+IAo+IEluIGNhc2VzIGxpa2Ugb3VyIEVhZ2xlIGJvYXJkLCB3aGVyZSBWQ0MgaXMgZGlyZWN0 bHkgY29ubmVjdGVkIHRvIHRoZQo+IHBvd2VyaW5nIHJhaWwgYW5kIG5vdCB0aHJvdWdoIGEgY29u dHJvbGxhYmxlIHJlZ3VsYXRvciwgSSBmZWVsIGxpa2UKPiBtYWtpbmcgdGhpcyBtYW5kYXRvcnkg cmVxdWlyZXMgbW9yZSBlZmZvcnQgKG5vdCBtdWNoLCBJIGFncmVlLCBqdXN0IGEKPiAiZml4ZWQt cmVndWxhdG9yIiBtb3JlKSB3aXRoIG5vIGFkZGl0aW9uYWwgYmVuZWZpdHMuCj4gCj4gQnV0IEkg dW5kZXJzdGFuZCB5b3VyIHBvaW50LCBhbmQgSSdtIG9wZW4gdG8gd2hhdGV2ZXIgZml0cyBiZXR0 ZXIgd2l0aAo+IHRoZSBhbHJlYWR5IGV4aXN0aW5nIERSTSBicmlkZ2VzIGJpbmRpbmdzCgpJIHN0 aWxsIGhhdmVuJ3QgbWFkZSB1cCBteSBtaW5kIG9uIHRoaXMgdG9waWMuIEkgbGlrZSBtYWtpbmcg dGhlIFZDQyBwb3dlciAKc3VwcGx5IG1hbmRhdG9yeSBhcyBpdCBpcyBtYW5kYXRvcnksIGJ1dCB5 b3UncmUgcmlnaHQgdGhhdCBpdCBjcmVhdGVzIAphZGRpdGlvbmFsIGNvbXBsZXhpdHkgaW4gRFQg d2l0aG91dCBtdWNoIGFkZGVkIGJlbmVmaXQgKGFsdGhvdWdoIGl0IG1pZ2h0IApzaW1wbGlmeSB0 aGUgZHJpdmVyIGFzIGJpdCkuIEluIHRoYXQgY2FzZSBJJ2QgbWFrZSB0aGUgb3RoZXIgc3VwcGxp ZXMgCm1hbmRhdG9yeSB0b28uIEknbSB0ZW1wdGVkIHRvIHNwZWNpZnkgYSBzaW5nbGUgcG93ZXIg c3VwcGx5IGluIERUIHRob3VnaCwgYXMgCkknZCBiZSBxdWl0ZSBzdXJwcmlzZWQgdG8gc2VlIGEg c3lzdGVtIHdpdGggaW5kaXZpZHVhbGx5IGNvbnRyb2xsYWJsZSBzdXBwbGllcyAKZm9yIHRoZSBk aWZmZXJlbnQgcG93ZXIgcmFpbHMgKHRoZXkgYWxsIHVzZSB0aGUgc2FtZSB2b2x0YWdlKSwgYnV0 IHN1cnByaXNlcyAKaGFwcGVuLiBXZSd2ZSBoYWQgc2ltaWxhciBjYXNlcyBpbiBvdGhlciBiaW5k aW5ncyBiZWZvcmUgKEknbSBhZnJhaWQgSSBjYW4ndCAKcmVjYWxsIHdoaWNoKSB3aGVyZSBSb2Ig d2FzIGZpbmUgaGF2aW5nIGEgc2luZ2xlIHN1cHBseS4gTWF5YmUgd2UgY291bGQgYXBwbHkgCnRo ZSBzYW1lIGxvZ2ljIHdpdGggYSBzaW5nbGUgdmNjIHN1cHBseSwgYW5kIGFkZCB0aGUgb3RoZXIg c3VwcGxpZXMgbGF0ZXIgYXMgCm9wdGlvbmFsIHByb3BlcnRpZXMgaWYgd2UgZXZlciBuZWVkIHRv IHNwZWNpZnkgdGhlbSBzZXBhcmF0ZWx5ID8KCj4gPiA+ICstIHB3bmQtZ3Bpb3M6IFBvd2VyIGRv d24gR1BJTyBzaWduYWwuIEFjdGl2ZSBsb3cuCj4gPiAKPiA+IEFzIEkgc2FpZCBiZWZvcmUsIHNw ZWNzWzFdIHNheXMgYWJvdXQgIi9QRFdOIiBwaW4uIElzIGl0IHlvdXIgdHlwbywgb3IKPiA+IGRp ZmZlcmVudCBkb2NzPwo+IAo+IEkgZGlkbid0IG5vdGljZSB0aGUgdHlwbyBpbiBmaXJzdCByZXZp ZXcsIGFuZCBJIHRob3VnaHQgeW91IHdlcmUgcmVmZXJyaW5nCj4gdG8gdGhlIGluaXRpYWwgJy8n IHdoaWNoIEkgZm91bmQgd2VpcmQgdG8gYmUgcGFydCBvZiB0aGUgZ3BpbyBuYW1lLi4uIFRoZW4K PiBJIG5vdyByZWFsaXplZCBJIGJhZGx5IHR5cGVkIGluICJwd25kIiBpbiBwbGFjZSBvZiAicHdk biIsIHdoaWNoIGlzIG5vdAo+IGV2ZW4gY29ycmVjdCBiZWNhdXNlIGl0IGhhcyB0byBiZSAicGR3 biIuLi4gU29ycnkgYWJvdXQgdGhpcyBtZXNzLCBJIHdpbGwKPiBmaXggaW4gdjQKPiAKPiA+IE1v cmVvdmVyIHRoZXJlIGFyZSBhbHJlYWR5IGJpbmRpbmdzIGZvciBUSEM2M0xWRE04M0Qgd2l0aCB0 aGUgc2FtZQo+ID4gZGljaG90b215IFsyXS4KPiAKPiBTZWVtcyBsaWtlIHRoaXMgaXMgJ3dyb25n JyBhcyB3ZWxsLi4gVGhlIGNoaXAgbWFudWFsIHNheXMgdGhlIHBpbiBpcwo+IG5hbWVkICJwZHdu IiBoZXJlIHRvby4uCj4gCj4gPiBPdXQgb2YgY3VyaW9zaXR5IEkgaGF2ZSBnb29nbGVkIGZvciAi cHduZCBwaW4iIGFuZCBpdCBsb29rcyBsaWtlIHNvbWUKPiA+IHZlbmRvcnMgdXNlIHRoaXMgZm9y bS4KPiA+IEZvciBtZSBib3RoIGZvcm1zIGFyZSBxdWl0ZSBtaXNsZWFkaW5nOiBwb3dlciBkb3du IHNpZ25hbCwgYWN0aXZlIGxvdywKPiA+IHdoeSB0aGV5IGNvdWxkbid0IGNhbGwgaXQganVzdCAn ZW5hYmxlLCBhY3RpdmUgaGlnaCcuCj4gCj4gSXQncyBub3QgbXVjaCB0aGUgYWN0dWFsIHBoeXNp Y2FsIGFjdGl2ZSBsZXZlbCB0aGF0IGJ1Z3MgbWUsIGJ1dCB0aGUgZmFjdAo+IHRoYXQgdGhlIEdQ SU8gbmFtZSBkZWZpbmVzIGlmIGl0IGhhcyB0byBiZSBzZXQgdG8gImFjdGl2ZSIgb3IKPiAiaW5h Y3RpdmUiIGxvZ2ljYWwgc3RhdGUgaW4gZW5hYmxlL2Rpc2FibGUgcm91dGluZXMgdGhhdCBJIGRv bid0Cj4gbGlrZS4uCj4gCj4gPiBbMV06IGh0dHA6Ly93d3cudGhpbmUuY28uanAvZmlsZXMvdG9w aWNzLzE3OV9leHRfMTJfMC5wZGYKPiA+IFsyXTogaHR0cHM6Ly9lbGl4aXIuYm9vdGxpbi5jb20v bGludXgvdjQuMTYtcmM1L3NvdXJjZS9Eb2N1bWVudGF0aW9uLwo+ID4gZGV2aWNldHJlZS9iaW5k aW5ncy9kaXNwbGF5L2JyaWRnZS90aGluZSx0aGM2M2x2ZG04M2QudHh0PiAKPiA+ID4gKy0gb2Ut Z3Bpb3M6IE91dHB1dCBlbmFibGUgR1BJTyBzaWduYWwuIEFjdGl2ZSBoaWdoLgo+ID4gPiArCj4g PiA+ICtUaGUgVEhDNjNMVkQxMDI0IHZpZGVvIHBvcnQgY29ubmVjdGlvbnMgYXJlIG1vZGVsZWQg YWNjb3JkaW5nCj4gPiA+ICt0byBPRiBncmFwaCBiaW5kaW5ncyBzcGVjaWZpZWQgYnkKPiA+ID4g RG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dyYXBoLnR4dAo+ID4gPiArCj4gPiA+ ICtSZXF1aXJlZCB2aWRlbyBwb3J0IG5vZGVzOgo+ID4gPiArLSBQb3J0QDA6IEZpcnN0IExWRFMg aW5wdXQgcG9ydAo+ID4gPiArLSBQb3J0QDI6IEZpcnN0IGRpZ2l0YWwgQ01PUy9UVEwgcGFyYWxs ZWwgb3V0cHV0Cj4gPiA+ICsKPiA+ID4gK09wdGlvbmFsIHZpZGVvIHBvcnQgbm9kZXM6Cj4gPiA+ ICstIFBvcnRAMTogU2Vjb25kIExWRFMgaW5wdXQgcG9ydAo+ID4gPiArLSBQb3J0QDM6IFNlY29u ZCBkaWdpdGFsIENNT1MvVFRMIHBhcmFsbGVsIG91dHB1dAo+ID4gPiArCj4gPiA+ICtFeGFtcGxl Ogo+ID4gPiArLS0tLS0tLS0KPiA+ID4gKwo+ID4gPiArCXRoYzYzbHZkMTAyNDogbHZkcy1kZWNv ZGVyIHsKPiA+ID4gKwkJY29tcGF0aWJsZSA9ICJ0aGluZSx0aGM2M2x2ZDEwMjQiOwo+ID4gPiAr Cj4gPiA+ICsJCXZjYy1zdXBwbHkgPSA8JnJlZ19sdmRzX3ZjYz47Cj4gPiA+ICsJCWx2Y2Mtc3Vw cGx5ID0gPCZyZWdfbHZkc19sdmNjPjsKPiA+ID4gKwo+ID4gPiArCQlwd2RuLWdwaW8gPSA8Jmdw aW80IDE1IEdQSU9fQUNUSVZFX0xPVz47Cj4gPiAKPiA+IEFuZCBoZXJlIGFub3RoZXIgdmFyaWF0 aW9uIDopLCBzaG91bGQgYmUgcGR3bi1ncGlvcy4KPiAKPiBOZXh0IHRpbWUgaXQgd2lsbCBiZSAi cG5kdyIuLiBJcyB0aGVyZSBhIHByaXplIGlmIEkgZG8gaW5zZXJ0IGFsbAo+IHBlcm11dGF0aW9u cyBvZiB0aGUgc2FtZSBuYW1lIGluIGEgc2luZ2xlIGJpbmRpbmdzIGRvY3VtZW50PyA6KQo+IAo+ IFdpbGwgZml4IHRoaXMgc2hvcnRseS4KCi0tIApSZWdhcmRzLAoKTGF1cmVudCBQaW5jaGFydAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVs IG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==