From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail-wr0-f195.google.com ([209.85.128.195]:33590 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932134AbdC2RsD (ORCPT ); Wed, 29 Mar 2017 13:48:03 -0400 Received: by mail-wr0-f195.google.com with SMTP id u18so5090968wrc.0 for ; Wed, 29 Mar 2017 10:48:02 -0700 (PDT) Date: Wed, 29 Mar 2017 19:47:58 +0200 From: Daniel Vetter To: Hans Verkuil Cc: linux-media@vger.kernel.org, linux-samsung-soc@vger.kernel.org, Russell King , Krzysztof Kozlowski , Javier Martinez Canillas , dri-devel@lists.freedesktop.org, Daniel Vetter , Marek Szyprowski Subject: Re: [PATCHv5 00/11] video/exynos/sti/cec: add CEC notifier & use in drivers Message-ID: <20170329174758.55vasy2gxqpg3yb5@phenom.ffwll.local> References: <20170329141543.32935-1-hverkuil@xs4all.nl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20170329141543.32935-1-hverkuil@xs4all.nl> Sender: linux-media-owner@vger.kernel.org List-ID: On Wed, Mar 29, 2017 at 04:15:32PM +0200, Hans Verkuil wrote: > From: Hans Verkuil > > This patch series adds the CEC physical address notifier code, based on > Russell's code: > > https://patchwork.kernel.org/patch/9277043/ > > It adds support for it to the exynos_hdmi drm driver, adds support for > it to the CEC framework and finally adds support to the s5p-cec driver, > which now can be moved out of staging. > > Also included is similar code for the STI platform, contributed by > Benjamin Gaignard. > > Tested the exynos code with my Odroid U3 exynos4 devboard. > > After discussions with Daniel Vetter and Russell King I have removed > the EDID/ELD/HPD connect/disconnect events from the notifier and now > just use it to report the CEC physical address. This also means that > it is now renamed to CEC notifier instead of HPD notifier and that > it is now in drivers/media. The block_notifier was dropped as well > and instead a simple callback is registered. This means that the > relationship between HDMI and CEC is now 1:1 and no longer 1:n, but > should this be needed in the future, then that can easily be added > back. > > Daniel, regarding your suggestions here: > > http://www.spinics.net/lists/dri-devel/msg133907.html > > this patch series maps to your mail above as follows: > > struct cec_pin == struct cec_notifier > cec_(un)register_pin == cec_notifier_get/put > cec_set_address == cec_notifier_set_phys_addr > cec_(un)register_callbacks == cec_notifier_(un)register > > Comments are welcome. I'd like to get this in for the 4.12 kernel as > this is a missing piece needed to integrate CEC drivers. > > Regards, > > Hans > > Changes since v4: > - Dropped EDID/ELD/connect/disconnect support. Instead, just report the > CEC physical address (and use INVALID when disconnecting). > - Since this is now completely CEC specific, move it to drivers/media > and rename to cec-notifier. > - Drop block_notifier. Instead just set a callback for the notifier. > - Use 'hdmi-phandle' in the bindings for both exynos and sti. So no > vendor prefix and 'hdmi-phandle' instead of 'hdmi-handle'. > - Make struct cec_notifier opaque. Add a helper function to get the > physical address from a cec_notifier struct. > - Provide dummy functions in cec-notifier.h so it can be used when > CONFIG_MEDIA_CEC_NOTIFIER is undefined. > - Don't select the CEC notifier in the HDMI drivers. It should only > be enabled by actual CEC drivers. I just quickly scaned through it, but this seems to address all my concerns fully. Thanks for respinning. On the entire pile (or just the core cec notifier bits): Acked-by: Daniel Vetter > > Changes since v3: > - Added the STI patches > - Split the exynos4 binding patches in one for documentation and one > for the dts change itself, also use the correct subject and CC to > the correct mailinglists (I hope ) > > Changes since v2: > - Split off the dts changes of the s5p-cec patch into a separate patch > - Renamed HPD_NOTIFIERS to HPD_NOTIFIER to be consistent with the name > of the source. > > Changes since v1: > > Renamed HDMI notifier to HPD (hotplug detect) notifier since this code is > not HDMI specific, but is interesting for any video source that has to > deal with hotplug detect and EDID/ELD (HDMI, DVI, VGA, DP, ....). > Only the use with CEC adapters is HDMI specific, but the HPD notifier > is more generic. > > > > > Benjamin Gaignard (4): > sti: hdmi: add CEC notifier support > stih-cec.txt: document new hdmi phandle > stih-cec: add CEC notifier support > arm: sti: update sti-cec for CEC notifier support > > Hans Verkuil (7): > cec-edid: rename cec_get_edid_phys_addr > media: add CEC notifier support > cec: integrate CEC notifier support > exynos_hdmi: add CEC notifier support > ARM: dts: exynos: add HDMI controller phandle to exynos4.dtsi > s5p-cec.txt: document the HDMI controller phandle > s5p-cec: add cec-notifier support, move out of staging > > .../devicetree/bindings/media/s5p-cec.txt | 2 + > .../devicetree/bindings/media/stih-cec.txt | 2 + > MAINTAINERS | 4 +- > arch/arm/boot/dts/exynos4.dtsi | 1 + > arch/arm/boot/dts/stih407-family.dtsi | 12 --- > arch/arm/boot/dts/stih410.dtsi | 13 +++ > drivers/gpu/drm/exynos/exynos_hdmi.c | 20 +++- > drivers/gpu/drm/sti/sti_hdmi.c | 11 ++ > drivers/gpu/drm/sti/sti_hdmi.h | 3 + > drivers/media/Kconfig | 3 + > drivers/media/Makefile | 4 + > drivers/media/cec-edid.c | 15 ++- > drivers/media/cec-notifier.c | 116 +++++++++++++++++++++ > drivers/media/cec/cec-core.c | 21 ++++ > drivers/media/i2c/adv7511.c | 5 +- > drivers/media/i2c/adv7604.c | 3 +- > drivers/media/i2c/adv7842.c | 2 +- > drivers/media/platform/Kconfig | 28 +++++ > drivers/media/platform/Makefile | 2 + > .../media => media/platform}/s5p-cec/Makefile | 0 > .../platform}/s5p-cec/exynos_hdmi_cec.h | 0 > .../platform}/s5p-cec/exynos_hdmi_cecctrl.c | 0 > .../media => media/platform}/s5p-cec/regs-cec.h | 0 > .../media => media/platform}/s5p-cec/s5p_cec.c | 35 ++++++- > .../media => media/platform}/s5p-cec/s5p_cec.h | 3 + > .../st-cec => media/platform/sti/cec}/Makefile | 0 > .../st-cec => media/platform/sti/cec}/stih-cec.c | 31 +++++- > drivers/media/platform/vivid/vivid-vid-cap.c | 3 +- > drivers/staging/media/Kconfig | 4 - > drivers/staging/media/Makefile | 2 - > drivers/staging/media/s5p-cec/Kconfig | 9 -- > drivers/staging/media/s5p-cec/TODO | 7 -- > drivers/staging/media/st-cec/Kconfig | 8 -- > drivers/staging/media/st-cec/TODO | 7 -- > include/media/cec-edid.h | 17 ++- > include/media/cec-notifier.h | 93 +++++++++++++++++ > include/media/cec.h | 6 ++ > 37 files changed, 421 insertions(+), 71 deletions(-) > create mode 100644 drivers/media/cec-notifier.c > rename drivers/{staging/media => media/platform}/s5p-cec/Makefile (100%) > rename drivers/{staging/media => media/platform}/s5p-cec/exynos_hdmi_cec.h (100%) > rename drivers/{staging/media => media/platform}/s5p-cec/exynos_hdmi_cecctrl.c (100%) > rename drivers/{staging/media => media/platform}/s5p-cec/regs-cec.h (100%) > rename drivers/{staging/media => media/platform}/s5p-cec/s5p_cec.c (89%) > rename drivers/{staging/media => media/platform}/s5p-cec/s5p_cec.h (97%) > rename drivers/{staging/media/st-cec => media/platform/sti/cec}/Makefile (100%) > rename drivers/{staging/media/st-cec => media/platform/sti/cec}/stih-cec.c (93%) > delete mode 100644 drivers/staging/media/s5p-cec/Kconfig > delete mode 100644 drivers/staging/media/s5p-cec/TODO > delete mode 100644 drivers/staging/media/st-cec/Kconfig > delete mode 100644 drivers/staging/media/st-cec/TODO > create mode 100644 include/media/cec-notifier.h > > -- > 2.11.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCHv5 00/11] video/exynos/sti/cec: add CEC notifier & use in drivers Date: Wed, 29 Mar 2017 19:47:58 +0200 Message-ID: <20170329174758.55vasy2gxqpg3yb5@phenom.ffwll.local> References: <20170329141543.32935-1-hverkuil@xs4all.nl> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20170329141543.32935-1-hverkuil@xs4all.nl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hans Verkuil Cc: linux-samsung-soc@vger.kernel.org, Russell King , dri-devel@lists.freedesktop.org, Javier Martinez Canillas , Krzysztof Kozlowski , Daniel Vetter , Marek Szyprowski , linux-media@vger.kernel.org List-Id: linux-samsung-soc@vger.kernel.org T24gV2VkLCBNYXIgMjksIDIwMTcgYXQgMDQ6MTU6MzJQTSArMDIwMCwgSGFucyBWZXJrdWlsIHdy b3RlOgo+IEZyb206IEhhbnMgVmVya3VpbCA8aGFucy52ZXJrdWlsQGNpc2NvLmNvbT4KPiAKPiBU aGlzIHBhdGNoIHNlcmllcyBhZGRzIHRoZSBDRUMgcGh5c2ljYWwgYWRkcmVzcyBub3RpZmllciBj b2RlLCBiYXNlZCBvbgo+IFJ1c3NlbGwncyBjb2RlOgo+IAo+IGh0dHBzOi8vcGF0Y2h3b3JrLmtl cm5lbC5vcmcvcGF0Y2gvOTI3NzA0My8KPiAKPiBJdCBhZGRzIHN1cHBvcnQgZm9yIGl0IHRvIHRo ZSBleHlub3NfaGRtaSBkcm0gZHJpdmVyLCBhZGRzIHN1cHBvcnQgZm9yCj4gaXQgdG8gdGhlIENF QyBmcmFtZXdvcmsgYW5kIGZpbmFsbHkgYWRkcyBzdXBwb3J0IHRvIHRoZSBzNXAtY2VjIGRyaXZl ciwKPiB3aGljaCBub3cgY2FuIGJlIG1vdmVkIG91dCBvZiBzdGFnaW5nLgo+IAo+IEFsc28gaW5j bHVkZWQgaXMgc2ltaWxhciBjb2RlIGZvciB0aGUgU1RJIHBsYXRmb3JtLCBjb250cmlidXRlZCBi eQo+IEJlbmphbWluIEdhaWduYXJkLgo+IAo+IFRlc3RlZCB0aGUgZXh5bm9zIGNvZGUgd2l0aCBt eSBPZHJvaWQgVTMgZXh5bm9zNCBkZXZib2FyZC4KPiAKPiBBZnRlciBkaXNjdXNzaW9ucyB3aXRo IERhbmllbCBWZXR0ZXIgYW5kIFJ1c3NlbGwgS2luZyBJIGhhdmUgcmVtb3ZlZAo+IHRoZSBFRElE L0VMRC9IUEQgY29ubmVjdC9kaXNjb25uZWN0IGV2ZW50cyBmcm9tIHRoZSBub3RpZmllciBhbmQg bm93Cj4ganVzdCB1c2UgaXQgdG8gcmVwb3J0IHRoZSBDRUMgcGh5c2ljYWwgYWRkcmVzcy4gVGhp cyBhbHNvIG1lYW5zIHRoYXQKPiBpdCBpcyBub3cgcmVuYW1lZCB0byBDRUMgbm90aWZpZXIgaW5z dGVhZCBvZiBIUEQgbm90aWZpZXIgYW5kIHRoYXQKPiBpdCBpcyBub3cgaW4gZHJpdmVycy9tZWRp YS4gVGhlIGJsb2NrX25vdGlmaWVyIHdhcyBkcm9wcGVkIGFzIHdlbGwKPiBhbmQgaW5zdGVhZCBh IHNpbXBsZSBjYWxsYmFjayBpcyByZWdpc3RlcmVkLiBUaGlzIG1lYW5zIHRoYXQgdGhlCj4gcmVs YXRpb25zaGlwIGJldHdlZW4gSERNSSBhbmQgQ0VDIGlzIG5vdyAxOjEgYW5kIG5vIGxvbmdlciAx Om4sIGJ1dAo+IHNob3VsZCB0aGlzIGJlIG5lZWRlZCBpbiB0aGUgZnV0dXJlLCB0aGVuIHRoYXQg Y2FuIGVhc2lseSBiZSBhZGRlZAo+IGJhY2suCj4gCj4gRGFuaWVsLCByZWdhcmRpbmcgeW91ciBz dWdnZXN0aW9ucyBoZXJlOgo+IAo+IGh0dHA6Ly93d3cuc3Bpbmljcy5uZXQvbGlzdHMvZHJpLWRl dmVsL21zZzEzMzkwNy5odG1sCj4gCj4gdGhpcyBwYXRjaCBzZXJpZXMgbWFwcyB0byB5b3VyIG1h aWwgYWJvdmUgYXMgZm9sbG93czoKPiAKPiBzdHJ1Y3QgY2VjX3BpbiA9PSBzdHJ1Y3QgY2VjX25v dGlmaWVyCj4gY2VjXyh1bilyZWdpc3Rlcl9waW4gPT0gY2VjX25vdGlmaWVyX2dldC9wdXQKPiBj ZWNfc2V0X2FkZHJlc3MgPT0gY2VjX25vdGlmaWVyX3NldF9waHlzX2FkZHIKPiBjZWNfKHVuKXJl Z2lzdGVyX2NhbGxiYWNrcyA9PSBjZWNfbm90aWZpZXJfKHVuKXJlZ2lzdGVyCj4gCj4gQ29tbWVu dHMgYXJlIHdlbGNvbWUuIEknZCBsaWtlIHRvIGdldCB0aGlzIGluIGZvciB0aGUgNC4xMiBrZXJu ZWwgYXMKPiB0aGlzIGlzIGEgbWlzc2luZyBwaWVjZSBuZWVkZWQgdG8gaW50ZWdyYXRlIENFQyBk cml2ZXJzLgo+IAo+IFJlZ2FyZHMsCj4gCj4gCUhhbnMKPiAKPiBDaGFuZ2VzIHNpbmNlIHY0Ogo+ IC0gRHJvcHBlZCBFRElEL0VMRC9jb25uZWN0L2Rpc2Nvbm5lY3Qgc3VwcG9ydC4gSW5zdGVhZCwg anVzdCByZXBvcnQgdGhlCj4gICBDRUMgcGh5c2ljYWwgYWRkcmVzcyAoYW5kIHVzZSBJTlZBTElE IHdoZW4gZGlzY29ubmVjdGluZykuCj4gLSBTaW5jZSB0aGlzIGlzIG5vdyBjb21wbGV0ZWx5IENF QyBzcGVjaWZpYywgbW92ZSBpdCB0byBkcml2ZXJzL21lZGlhCj4gICBhbmQgcmVuYW1lIHRvIGNl Yy1ub3RpZmllci4KPiAtIERyb3AgYmxvY2tfbm90aWZpZXIuIEluc3RlYWQganVzdCBzZXQgYSBj YWxsYmFjayBmb3IgdGhlIG5vdGlmaWVyLgo+IC0gVXNlICdoZG1pLXBoYW5kbGUnIGluIHRoZSBi aW5kaW5ncyBmb3IgYm90aCBleHlub3MgYW5kIHN0aS4gU28gbm8KPiAgIHZlbmRvciBwcmVmaXgg YW5kICdoZG1pLXBoYW5kbGUnIGluc3RlYWQgb2YgJ2hkbWktaGFuZGxlJy4KPiAtIE1ha2Ugc3Ry dWN0IGNlY19ub3RpZmllciBvcGFxdWUuIEFkZCBhIGhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhl Cj4gICBwaHlzaWNhbCBhZGRyZXNzIGZyb20gYSBjZWNfbm90aWZpZXIgc3RydWN0Lgo+IC0gUHJv dmlkZSBkdW1teSBmdW5jdGlvbnMgaW4gY2VjLW5vdGlmaWVyLmggc28gaXQgY2FuIGJlIHVzZWQg d2hlbgo+ICAgQ09ORklHX01FRElBX0NFQ19OT1RJRklFUiBpcyB1bmRlZmluZWQuCj4gLSBEb24n dCBzZWxlY3QgdGhlIENFQyBub3RpZmllciBpbiB0aGUgSERNSSBkcml2ZXJzLiBJdCBzaG91bGQg b25seQo+ICAgYmUgZW5hYmxlZCBieSBhY3R1YWwgQ0VDIGRyaXZlcnMuCgpJIGp1c3QgcXVpY2ts eSBzY2FuZWQgdGhyb3VnaCBpdCwgYnV0IHRoaXMgc2VlbXMgdG8gYWRkcmVzcyBhbGwgbXkKY29u Y2VybnMgZnVsbHkuIFRoYW5rcyBmb3IgcmVzcGlubmluZy4gT24gdGhlIGVudGlyZSBwaWxlIChv ciBqdXN0IHRoZQpjb3JlIGNlYyBub3RpZmllciBiaXRzKToKCkFja2VkLWJ5OiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKPiAKPiBDaGFuZ2VzIHNpbmNlIHYzOgo+IC0g QWRkZWQgdGhlIFNUSSBwYXRjaGVzCj4gLSBTcGxpdCB0aGUgZXh5bm9zNCBiaW5kaW5nIHBhdGNo ZXMgaW4gb25lIGZvciBkb2N1bWVudGF0aW9uIGFuZCBvbmUKPiAgIGZvciB0aGUgZHRzIGNoYW5n ZSBpdHNlbGYsIGFsc28gdXNlIHRoZSBjb3JyZWN0IHN1YmplY3QgYW5kIENDIHRvCj4gICB0aGUg Y29ycmVjdCBtYWlsaW5nbGlzdHMgKEkgaG9wZSAgKQo+IAo+IENoYW5nZXMgc2luY2UgdjI6Cj4g LSBTcGxpdCBvZmYgdGhlIGR0cyBjaGFuZ2VzIG9mIHRoZSBzNXAtY2VjIHBhdGNoIGludG8gYSBz ZXBhcmF0ZSBwYXRjaAo+IC0gUmVuYW1lZCBIUERfTk9USUZJRVJTIHRvIEhQRF9OT1RJRklFUiB0 byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIG5hbWUKPiAgIG9mIHRoZSBzb3VyY2UuCj4gCj4gQ2hh bmdlcyBzaW5jZSB2MToKPiAKPiBSZW5hbWVkIEhETUkgbm90aWZpZXIgdG8gSFBEIChob3RwbHVn IGRldGVjdCkgbm90aWZpZXIgc2luY2UgdGhpcyBjb2RlIGlzCj4gbm90IEhETUkgc3BlY2lmaWMs IGJ1dCBpcyBpbnRlcmVzdGluZyBmb3IgYW55IHZpZGVvIHNvdXJjZSB0aGF0IGhhcyB0bwo+IGRl YWwgd2l0aCBob3RwbHVnIGRldGVjdCBhbmQgRURJRC9FTEQgKEhETUksIERWSSwgVkdBLCBEUCwg Li4uLikuCj4gT25seSB0aGUgdXNlIHdpdGggQ0VDIGFkYXB0ZXJzIGlzIEhETUkgc3BlY2lmaWMs IGJ1dCB0aGUgSFBEIG5vdGlmaWVyCj4gaXMgbW9yZSBnZW5lcmljLgo+IAo+IAo+IAo+IAo+IEJl bmphbWluIEdhaWduYXJkICg0KToKPiAgIHN0aTogaGRtaTogYWRkIENFQyBub3RpZmllciBzdXBw b3J0Cj4gICBzdGloLWNlYy50eHQ6IGRvY3VtZW50IG5ldyBoZG1pIHBoYW5kbGUKPiAgIHN0aWgt Y2VjOiBhZGQgQ0VDIG5vdGlmaWVyIHN1cHBvcnQKPiAgIGFybTogc3RpOiB1cGRhdGUgc3RpLWNl YyBmb3IgQ0VDIG5vdGlmaWVyIHN1cHBvcnQKPiAKPiBIYW5zIFZlcmt1aWwgKDcpOgo+ICAgY2Vj LWVkaWQ6IHJlbmFtZSBjZWNfZ2V0X2VkaWRfcGh5c19hZGRyCj4gICBtZWRpYTogYWRkIENFQyBu b3RpZmllciBzdXBwb3J0Cj4gICBjZWM6IGludGVncmF0ZSBDRUMgbm90aWZpZXIgc3VwcG9ydAo+ ICAgZXh5bm9zX2hkbWk6IGFkZCBDRUMgbm90aWZpZXIgc3VwcG9ydAo+ICAgQVJNOiBkdHM6IGV4 eW5vczogYWRkIEhETUkgY29udHJvbGxlciBwaGFuZGxlIHRvIGV4eW5vczQuZHRzaQo+ICAgczVw LWNlYy50eHQ6IGRvY3VtZW50IHRoZSBIRE1JIGNvbnRyb2xsZXIgcGhhbmRsZQo+ICAgczVwLWNl YzogYWRkIGNlYy1ub3RpZmllciBzdXBwb3J0LCBtb3ZlIG91dCBvZiBzdGFnaW5nCj4gCj4gIC4u Li9kZXZpY2V0cmVlL2JpbmRpbmdzL21lZGlhL3M1cC1jZWMudHh0ICAgICAgICAgIHwgICAyICsK PiAgLi4uL2RldmljZXRyZWUvYmluZGluZ3MvbWVkaWEvc3RpaC1jZWMudHh0ICAgICAgICAgfCAg IDIgKwo+ICBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQo+ICBhcmNoL2FybS9ib290L2R0cy9leHlub3M0LmR0c2kgICAgICAgICAgICAg ICAgICAgICB8ICAgMSArCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL3N0aWg0MDctZmFtaWx5LmR0c2kg ICAgICAgICAgICAgIHwgIDEyIC0tLQo+ICBhcmNoL2FybS9ib290L2R0cy9zdGloNDEwLmR0c2kg ICAgICAgICAgICAgICAgICAgICB8ICAxMyArKysKPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfaGRtaS5jICAgICAgICAgICAgICAgfCAgMjAgKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0v c3RpL3N0aV9oZG1pLmMgICAgICAgICAgICAgICAgICAgICB8ICAxMSArKwo+ICBkcml2ZXJzL2dw dS9kcm0vc3RpL3N0aV9oZG1pLmggICAgICAgICAgICAgICAgICAgICB8ICAgMyArCj4gIGRyaXZl cnMvbWVkaWEvS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKPiAg ZHJpdmVycy9tZWRpYS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQg Kwo+ICBkcml2ZXJzL21lZGlhL2NlYy1lZGlkLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAxNSArKy0KPiAgZHJpdmVycy9tZWRpYS9jZWMtbm90aWZpZXIuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrCj4gIGRyaXZlcnMvbWVkaWEvY2VjL2Nl Yy1jb3JlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDIxICsrKysKPiAgZHJpdmVycy9tZWRp YS9pMmMvYWR2NzUxMS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKy0KPiAgZHJpdmVy cy9tZWRpYS9pMmMvYWR2NzYwNC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KPiAg ZHJpdmVycy9tZWRpYS9pMmMvYWR2Nzg0Mi5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIg Ky0KPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAg fCAgMjggKysrKysKPiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgICAgfCAgIDIgKwo+ICAuLi4vbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMv TWFrZWZpbGUgICAgICB8ICAgMAo+ICAuLi4vcGxhdGZvcm19L3M1cC1jZWMvZXh5bm9zX2hkbWlf Y2VjLmggICAgICAgICAgICB8ICAgMAo+ICAuLi4vcGxhdGZvcm19L3M1cC1jZWMvZXh5bm9zX2hk bWlfY2VjY3RybC5jICAgICAgICB8ICAgMAo+ICAuLi4vbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19 L3M1cC1jZWMvcmVncy1jZWMuaCAgICB8ICAgMAo+ICAuLi4vbWVkaWEgPT4gbWVkaWEvcGxhdGZv cm19L3M1cC1jZWMvczVwX2NlYy5jICAgICB8ICAzNSArKysrKystCj4gIC4uLi9tZWRpYSA9PiBt ZWRpYS9wbGF0Zm9ybX0vczVwLWNlYy9zNXBfY2VjLmggICAgIHwgICAzICsKPiAgLi4uL3N0LWNl YyA9PiBtZWRpYS9wbGF0Zm9ybS9zdGkvY2VjfS9NYWtlZmlsZSAgICAgfCAgIDAKPiAgLi4uL3N0 LWNlYyA9PiBtZWRpYS9wbGF0Zm9ybS9zdGkvY2VjfS9zdGloLWNlYy5jICAgfCAgMzEgKysrKyst Cj4gIGRyaXZlcnMvbWVkaWEvcGxhdGZvcm0vdml2aWQvdml2aWQtdmlkLWNhcC5jICAgICAgIHwg ICAzICstCj4gIGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9LY29uZmlnICAgICAgICAgICAgICAgICAg ICAgIHwgICA0IC0KPiAgZHJpdmVycy9zdGFnaW5nL21lZGlhL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgfCAgIDIgLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvczVwLWNlYy9LY29uZmln ICAgICAgICAgICAgICB8ICAgOSAtLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvczVwLWNlYy9U T0RPICAgICAgICAgICAgICAgICB8ICAgNyAtLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVkaWEvc3Qt Y2VjL0tjb25maWcgICAgICAgICAgICAgICB8ICAgOCAtLQo+ICBkcml2ZXJzL3N0YWdpbmcvbWVk aWEvc3QtY2VjL1RPRE8gICAgICAgICAgICAgICAgICB8ICAgNyAtLQo+ICBpbmNsdWRlL21lZGlh L2NlYy1lZGlkLmggICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxNyArKy0KPiAgaW5jbHVk ZS9tZWRpYS9jZWMtbm90aWZpZXIuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgOTMgKysrKysr KysrKysrKysrKysKPiAgaW5jbHVkZS9tZWRpYS9jZWMuaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDYgKysKPiAgMzcgZmlsZXMgY2hhbmdlZCwgNDIxIGluc2VydGlvbnMoKyks IDcxIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZWRpYS9jZWMt bm90aWZpZXIuYwo+ICByZW5hbWUgZHJpdmVycy97c3RhZ2luZy9tZWRpYSA9PiBtZWRpYS9wbGF0 Zm9ybX0vczVwLWNlYy9NYWtlZmlsZSAoMTAwJSkKPiAgcmVuYW1lIGRyaXZlcnMve3N0YWdpbmcv bWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMvZXh5bm9zX2hkbWlfY2VjLmggKDEwMCUp Cj4gIHJlbmFtZSBkcml2ZXJzL3tzdGFnaW5nL21lZGlhID0+IG1lZGlhL3BsYXRmb3JtfS9zNXAt Y2VjL2V4eW5vc19oZG1pX2NlY2N0cmwuYyAoMTAwJSkKPiAgcmVuYW1lIGRyaXZlcnMve3N0YWdp bmcvbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMvcmVncy1jZWMuaCAoMTAwJSkKPiAg cmVuYW1lIGRyaXZlcnMve3N0YWdpbmcvbWVkaWEgPT4gbWVkaWEvcGxhdGZvcm19L3M1cC1jZWMv czVwX2NlYy5jICg4OSUpCj4gIHJlbmFtZSBkcml2ZXJzL3tzdGFnaW5nL21lZGlhID0+IG1lZGlh L3BsYXRmb3JtfS9zNXAtY2VjL3M1cF9jZWMuaCAoOTclKQo+ICByZW5hbWUgZHJpdmVycy97c3Rh Z2luZy9tZWRpYS9zdC1jZWMgPT4gbWVkaWEvcGxhdGZvcm0vc3RpL2NlY30vTWFrZWZpbGUgKDEw MCUpCj4gIHJlbmFtZSBkcml2ZXJzL3tzdGFnaW5nL21lZGlhL3N0LWNlYyA9PiBtZWRpYS9wbGF0 Zm9ybS9zdGkvY2VjfS9zdGloLWNlYy5jICg5MyUpCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL3N0YWdpbmcvbWVkaWEvczVwLWNlYy9LY29uZmlnCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvczVwLWNlYy9UT0RPCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL3N0YWdpbmcvbWVkaWEvc3QtY2VjL0tjb25maWcKPiAgZGVsZXRlIG1vZGUgMTAwNjQ0 IGRyaXZlcnMvc3RhZ2luZy9tZWRpYS9zdC1jZWMvVE9ETwo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg aW5jbHVkZS9tZWRpYS9jZWMtbm90aWZpZXIuaAo+IAo+IC0tIAo+IDIuMTEuMAo+IAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=