From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 08/60] drm/bridge: Extend bridge API to disable connector creation Date: Wed, 14 Aug 2019 10:18:40 +0200 Message-ID: <20190814081840.GA7444@phenom.ffwll.local> References: <20190707180852.5512-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-1-laurent.pinchart@ideasonboard.com> <20190707181937.6250-5-laurent.pinchart@ideasonboard.com> <8b51b540-61ec-435e-e87a-da0dfbbc70a6@samsung.com> <20190808142525.GL6055@pendragon.ideasonboard.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id B50616E434 for ; Wed, 14 Aug 2019 08:18:44 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id s49so74374047edb.1 for ; Wed, 14 Aug 2019 01:18:44 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: Maxime Ripard , Sebastian Reichel , dri-devel@lists.freedesktop.org, Tomi Valkeinen , Laurent Pinchart , Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBBdWcgMDgsIDIwMTkgYXQgMDc6MzY6NDlQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3 cm90ZToKPiBPbiAwOC4wOC4yMDE5IDE2OjI1LCBMYXVyZW50IFBpbmNoYXJ0IHdyb3RlOgo+ID4g SGkgQW5kcnplaiwKPiA+Cj4gPiBPbiBXZWQsIEp1bCAxNywgMjAxOSBhdCAwODozOTo0N0FNICsw MjAwLCBBbmRyemVqIEhhamRhIHdyb3RlOgo+ID4+IE9uIDA3LjA3LjIwMTkgMjA6MTgsIExhdXJl bnQgUGluY2hhcnQgd3JvdGU6Cj4gPj4+IE1vc3QgYnJpZGdlIGRyaXZlcnMgY3JlYXRlIGEgRFJN IGNvbm5lY3RvciB0byBtb2RlbCB0aGUgY29ubmVjdG9yIGF0IHRoZQo+ID4+PiBvdXRwdXQgb2Yg dGhlIGJyaWRnZS4gVGhpcyBtb2RlbCBpcyBoaXN0b3JpY2FsIGFuZCBoYXMgd29ya2VkIHByZXR0 eQo+ID4+PiB3ZWxsIHNvIGZhciwgYnV0IGNhdXNlcyBzZXZlcmFsIGlzc3VlczoKPiA+Pj4KPiA+ Pj4gLSBJdCBwcmV2ZW50cyBzdXBwb3J0aW5nIG1vcmUgY29tcGxleCBkaXNwbGF5IHBpcGVsaW5l cyB3aGVyZSBEUk0KPiA+Pj4gY29ubmVjdG9yIG9wZXJhdGlvbnMgYXJlIHNwbGl0IG92ZXIgbXVs dGlwbGUgY29tcG9uZW50cy4gRm9yIGluc3RhbmNlIGEKPiA+Pj4gcGlwZWxpbmUgd2l0aCBhIGJy aWRnZSBjb25uZWN0ZWQgdG8gdGhlIEREQyBzaWduYWxzIHRvIHJlYWQgRURJRCBkYXRhLAo+ID4+ PiBhbmQgYW5vdGhlciBvbmUgY29ubmVjdGVkIHRvIHRoZSBIUEQgc2lnbmFsIHRvIGRldGVjdCBj b25uZWN0aW9uIGFuZAo+ID4+PiBkaXNjb25uZWN0aW9uLCB3aWxsIG5vdCBiZSBwb3NzaWJsZSB0 byBzdXBwb3J0IHRocm91Z2ggdGhpcyBtb2RlbC4KPiA+Pj4KPiA+Pj4gLSBJdCByZXF1aXJlcyBl dmVyeSBicmlkZ2UgZHJpdmVyIHRvIGltcGxlbWVudCBzaW1pbGFyIGNvbm5lY3Rvcgo+ID4+PiBo YW5kbGluZyBjb2RlLCByZXN1bHRpbmcgaW4gY29kZSBkdXBsaWNhdGlvbi4KPiA+Pj4KPiA+Pj4g LSBJdCBhc3N1bWVzIHRoYXQgYSBicmlkZ2Ugd2lsbCBlaXRoZXIgYmUgd2lyZWQgdG8gYSBjb25u ZWN0b3Igb3IgdG8KPiA+Pj4gYW5vdGhlciBicmlkZ2UsIGJ1dCBkb2Vzbid0IHN1cHBvcnQgYnJp ZGdlcyB0aGF0IGNhbiBiZSB1c2VkIGluIGJvdGgKPiA+Pj4gcG9zaXRpb25zIHZlcnkgd2VsbCAo YWx0aG91Z2ggdGhlcmUgaXMgc29tZSBhZC1ob2Mgc3VwcG9ydCBmb3IgdGhpcyBpbgo+ID4+PiB0 aGUgYW5hbG9naXhfZHAgYnJpZGdlIGRyaXZlcikuCj4gPj4+Cj4gPj4+IEluIG9yZGVyIHRvIHNv bHZlIHRoZXNlIGlzc3Vlcywgb3duZXJzaGlwIG9mIHRoZSBjb25uZWN0b3Igc2hvdWxkIGJlCj4g Pj4+IG1vdmVkIHRvIHRoZSBkaXNwbGF5IGNvbnRyb2xsZXIgZHJpdmVyICh3aGVyZSBpdCBjYW4g YmUgaW1wbGVtZW50ZWQKPiA+Pj4gdXNpbmcgaGVscGVycyBwcm92aWRlZCBieSB0aGUgY29yZSku Cj4gPj4+Cj4gPj4+IEV4dGVuZCB0aGUgYnJpZGdlIEFQSSB0byBhbGxvdyBkaXNhYmxpbmcgY29u bmVjdG9yIGNyZWF0aW9uIGluIGJyaWRnZQo+ID4+PiBkcml2ZXJzIGFzIGEgZmlyc3Qgc3RlcCB0 b3dhcmRzIHRoZSBuZXcgbW9kZWwuIFRoZSBuZXcgY3JlYXRlX2Nvbm5lY3Rvcgo+ID4+PiBhcmd1 bWVudCB0byB0aGUgYnJpZGdlIC5hdHRhY2goKSBvcGVyYXRpb24gdGVsbHMgdGhlIGJyaWRnZSBk cml2ZXIKPiA+Pj4gd2hldGhlciB0byBjcmVhdGUgYSBjb25uZWN0b3IuIFNldCB0aGUgYXJndW1l bnQgdG8gdHJ1ZSB1bmNvbmRpdGlvbmFsbHksCj4gPj4+IGFuZCBtb2RpZnkgYWxsIGV4aXN0aW5n IGJyaWRnZSBkcml2ZXJzIHRvIHJldHVybiBhbiBlcnJvciB3aGVuIGNvbm5lY3Rvcgo+ID4+PiBj cmVhdGlvbiBpcyBub3QgcmVxdWVzdGVkIGFzIHRoZXkgZG9uJ3Qgc3VwcG9ydCB0aGlzIGZlYXR1 cmUgeWV0Lgo+ID4+Pgo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBMYXVyZW50IFBpbmNoYXJ0IDxsYXVy ZW50LnBpbmNoYXJ0QGlkZWFzb25ib2FyZC5jb20+Cj4gPj4+IC0tLQo+ID4+PiAgZHJpdmVycy9n cHUvZHJtL2FyYy9hcmNwZ3VfaGRtaS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4g Pj4+ICBkcml2ZXJzL2dwdS9kcm0vYXRtZWwtaGxjZGMvYXRtZWxfaGxjZGNfb3V0cHV0LmMgICAg ICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvYWR2NzUxMS9hZHY3NTEx X2Rydi5jICAgICAgICAgICAgIHwgNiArKysrKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9icmlk Z2UvYW5hbG9naXgtYW54Nzh4eC5jICAgICAgICAgICAgICAgIHwgNiArKysrKy0KPiA+Pj4gIGRy aXZlcnMvZ3B1L2RybS9icmlkZ2UvYW5hbG9naXgvYW5hbG9naXhfZHBfY29yZS5jICAgICAgIHwg OCArKysrKystLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9jZG5zLWRzaS5jICAgICAg ICAgICAgICAgICAgICAgICAgfCA2ICsrKystLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9sdmRzLWVuY29kZXIuYyAgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KPiA+Pj4gIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvbWVnYWNoaXBzLXN0ZHB4eHh4LWdlLWI4NTB2My1mdy5jIHwgNiAr KysrKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvbnhwLXB0bjM0NjAuYyAgICAgICAg ICAgICAgICAgICAgIHwgNiArKysrKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcGFu ZWwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNSArKysrLQo+ID4+PiAgZHJpdmVycy9n cHUvZHJtL2JyaWRnZS9wYXJhZGUtcHM4NjIyLmMgICAgICAgICAgICAgICAgICAgfCA1ICsrKyst Cj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpaTkwMnguYyAgICAgICAgICAgICAgICAg ICAgICAgICB8IDYgKysrKystCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3NpbC1zaWk4 NjIwLmMgICAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2Uvc2ltcGxlLWJyaWRnZS5jICAgICAgICAgICAgICAgICAgIHwgNiArKysrKy0KPiA+Pj4g IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jICAgICAgICAgICAgICAg IHwgOCArKysrKystLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9kdy1t aXBpLWRzaS5jICAgICAgICAgICAgfCA4ICsrKysrLS0tCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3RjMzU4NzY0LmMgICAgICAgICAgICAgICAgICAgICAgICB8IDUgKysrKy0KPiA+Pj4g IGRyaXZlcnMvZ3B1L2RybS9icmlkZ2UvdGMzNTg3NjcuYyAgICAgICAgICAgICAgICAgICAgICAg IHwgNSArKysrLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2JyaWRnZS90aGM2M2x2ZDEwMjQuYyAg ICAgICAgICAgICAgICAgICAgfCA1ICsrKy0tCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vYnJpZGdl L3RpLXNuNjVkc2k4Ni5jICAgICAgICAgICAgICAgICAgICB8IDUgKysrKy0KPiA+Pj4gIGRyaXZl cnMvZ3B1L2RybS9icmlkZ2UvdGktdGZwNDEwLmMgICAgICAgICAgICAgICAgICAgICAgIHwgNSAr KysrLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9icmlkZ2UuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCA1ICsrKy0tCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX3NpbXBsZV9r bXNfaGVscGVyLmMgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2Ry bS9leHlub3MvZXh5bm9zX2RwLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KPiA+Pj4g IGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kc2kuYyAgICAgICAgICAgICAgICAg IHwgNCArKy0tCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMgICAg ICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9mc2wtZGN1L2Zz bF9kY3VfZHJtX3JnYi5jICAgICAgICAgICAgICAgIHwgMiArLQo+ID4+PiAgZHJpdmVycy9ncHUv ZHJtL2hpc2lsaWNvbi9raXJpbi9kd19kcm1fZHNpLmMgICAgICAgICAgICAgfCAyICstCj4gPj4+ ICBkcml2ZXJzL2dwdS9kcm0vaTJjL3RkYTk5OHhfZHJ2LmMgICAgICAgICAgICAgICAgICAgICAg ICB8IDggKysrKysrLS0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9pbXgvaW14LWxkYi5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL2lteC9w YXJhbGxlbC1kaXNwbGF5LmMgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPj4+ICBkcml2ZXJz L2dwdS9kcm0vbWNkZS9tY2RlX2RzaS5jICAgICAgICAgICAgICAgICAgICAgICAgICB8IDYgKysr KystCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jICAgICAgICAgICAg ICAgICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHNp LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL21l ZGlhdGVrL210a19oZG1pLmMgICAgICAgICAgICAgICAgICAgICAgfCA4ICsrKysrKy0tCj4gPj4+ ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2RzaS9kc2lfbWFuYWdlci5jICAgICAgICAgICAgICAgICAg ICB8IDQgKystLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9lZHAvZWRwX2JyaWRnZS5jICAg ICAgICAgICAgICAgICAgICAgfCAyICstCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2hkbWkv aGRtaV9icmlkZ2UuYyAgICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1 L2RybS9vbWFwZHJtL29tYXBfZHJ2LmMgICAgICAgICAgICAgICAgICAgICAgIHwgMyArKy0KPiA+ Pj4gIGRyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfZW5jb2Rlci5jICAgICAgICAgICAg ICAgIHwgMiArLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9sdmRzLmMgICAg ICAgICAgICAgICAgICAgICAgfCA3ICsrKysrLS0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9sdmRzLmMgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4+PiAgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3JnYi5jICAgICAgICAgICAgICAgICAgfCAyICst Cj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9kdm8uYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkYS5jICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL3N0aS9z dGlfaGRtaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPj4+ICBkcml2ZXJz L2dwdS9kcm0vc3RtL2x0ZGMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDIgKy0K PiA+Pj4gIGRyaXZlcnMvZ3B1L2RybS9zdW40aS9zdW40aV9sdmRzLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgMiArLQo+ID4+PiAgZHJpdmVycy9ncHUvZHJtL3N1bjRpL3N1bjRpX3JnYi5jICAg ICAgICAgICAgICAgICAgICAgICAgfCAyICstCj4gPj4+ICBkcml2ZXJzL2dwdS9kcm0vdGlsY2Rj L3RpbGNkY19leHRlcm5hbC5jICAgICAgICAgICAgICAgICB8IDIgKy0KPiA+Pj4gIGRyaXZlcnMv Z3B1L2RybS92YzQvdmM0X2RwaS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMiArLQo+ ID4+PiAgZHJpdmVycy9ncHUvZHJtL3ZjNC92YzRfZHNpLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAyICstCj4gPj4+ICBpbmNsdWRlL2RybS9kcm1fYnJpZGdlLmggICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IDQgKystLQo+ID4+PiAgNTMgZmlsZXMgY2hhbmdlZCwgMTQw IGluc2VydGlvbnMoKyksIDY3IGRlbGV0aW9ucygtKQo+ID4+Pgo+ID4+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2FyYy9h cmNwZ3VfaGRtaS5jCj4gPj4+IGluZGV4IDk4YWFjNzQzY2MyNi4uNzM5ZjIzNThmMWQ1IDEwMDY0 NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vYXJjL2FyY3BndV9oZG1pLmMKPiA+Pj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2FyYy9hcmNwZ3VfaGRtaS5jCj4gPj4+IEBAIC0zOSw3ICszOSw3 IEBAIGludCBhcmNwZ3VfZHJtX2hkbWlfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLCBzdHJ1 Y3QgZGV2aWNlX25vZGUgKm5wKQo+ID4+PiAgCQlyZXR1cm4gcmV0Owo+ID4+PiAgCj4gPj4+ICAJ LyogTGluayBkcm1fYnJpZGdlIHRvIGVuY29kZXIgKi8KPiA+Pj4gLQlyZXQgPSBkcm1fYnJpZGdl X2F0dGFjaChlbmNvZGVyLCBicmlkZ2UsIE5VTEwpOwo+ID4+PiArCXJldCA9IGRybV9icmlkZ2Vf YXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCwgdHJ1ZSk7Cj4gPj4gRmV3IHN1Z2dlc3Rpb25z Ogo+ID4+Cj4gPj4gMS4gTWF5YmUgaXQgd291bGQgYmUgbW9yZSBjb252ZW5pZW50IHRvIGFkZCBm bGFncyBhcmd1bWVudCBpbnN0ZWFkIG9mIGJvb2w6Cj4gPj4KPiA+PiAtIGNvZGUgc2hvdWxkIGJl IG1vcmUgcmVhZGFibGU6IHJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwK PiA+PiBOVUxMLCBEUk1fQlJJREdFX0ZMQUdfTk9fQ09OTkVDVE9SKQo+ID4+Cj4gPj4gLSBpdCBj YW4gYmUgZWFzaWx5IGV4cGFuZGVkIGxhdGVyIHdpdGggb3RoZXIgZmxhZ3MsIHRoZXJlIGF0IGxl YXN0IHR3bwo+ID4+IGRyaXZlcnMgd2hpY2ggd291bGQgYmVuZWZpdCBmcm9tIERSTV9CUklER0Vf RkxBR19OT19DSEFJTklORyBmbGFnLgo+ID4gUGxlYXNlIG5vdGUgdGhhdCBJIHRoaW5rIHRoaXMg ZmxhZyBzaG91bGQgZGlzYXBwZWFyIG9uY2UgZHJpdmVycyBnZXQKPiA+IGNvbnZlcnRlZCB0byB0 aGUgbmV3IG1vZGVsLiBUaGlzIHdpbGwgaG93ZXZlciB0YWtlIHNvbWUgdGltZS4gSSdtIG5vdAo+ ID4gb3Bwb3NlZCB0byB0dXJuaW5nIHRoZSBib29rIGludG8gYSBmbGFnIHRob3VnaC4gSSB3YXMg aG9waW5nIHRvIHJlY2VpdmUKPiA+IG1vcmUgcmV2aWV3IGNvbW1lbnRzIG9uIHRoaXMgcGFydGlj dWxhciBwYXRjaCwgYnV0IGFzIHRoYXQncyBub3QgdGhlCj4gPiBjYXNlLCBJIGNhbiBhbHJlYWR5 IHByb2NlZWQgd2l0aCB0aGUgY2hhbmdlLgo+ID4KPiA+IFdoYXQgd291bGQgdGhlIERSTV9CUklE R0VfRkxBR19OT19DSEFJTklORyBmbGFnIGJlIHVzZWQgZm9yID8KPiAKPiAKPiBUbyBhdm9pZCBz ZXR0aW5nIGVuY29kZXItPmJyaWRnZSBvciBwcmV2aW91c19icmlkZ2UtPm5leHQgZmllbGQgdG8K PiBhdHRhY2hlZCBicmlkZ2UgKGxhc3QgbGluZXMgb2YgZHJtX2JyaWRnZV9hdHRhY2ggY29kZSku Cj4gCj4gVGhpcyBpcyBmb3Igc3VyZSB0aGUgY2FzZSBvZiBleHlub3NfZHNpIGFuZCB2YzRfZHNp LCBidXQgSSBndWVzcyBpdCBjYW4KPiBhZmZlY3Qgb3RoZXIgZHJpdmVycyBhcyB3ZWxsLCBwcm9i YWJseSB0aGV5IGp1c3QgdXNlIG90aGVyIHdvcmthcm91bmRzCj4gb3IgaGF2ZSBtb3JlIGZsZXhp YmxlIGhhcmR3YXJlLgo+IAo+IEdlbmVyYWxseSBpZGVhIHRoYXQgb3JkZXIgb2YgY2FsbGluZwo+ IHByZV9lbmFibGUvZW5hYmxlL2Rpc2FibGUvcG9zdF9kaXNhYmxlIGNhbGxiYWNrcyBpbiBjaGFp bmVkCj4gZW5jb2Rlci9icmlkZ2VzIGlzIGZpeGVkIGlzIHdyb25nIElNSE8sIG9ubHkgdmlkZW8g c291cmNlIGNvbXBvbmVudAo+IGtub3dzIGluIHdoaWNoIG1vbWVudCBpdCBzaG91bGQgZW5hYmxl IGl0cyBzaW5rIGFuZCBpZiBpdCBzaG91bGQgZG8KPiBzb21ldGhpbmcgYWZ0ZXIuIEFuZCBpdCBk b2VzIG5vdCB3b3JrIGF0IGFsbCB3aXRoIHNvdXJjZXMvc2lua3MgaGF2aW5nCj4gbW9yZSB0aGFu IG9uZSBvdXRwdXQvaW5wdXQuCgpUaGlzIGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBtZSAuLi4gaWYg eW91IGRvbid0IHdhbnQgdG8gaGF2ZSBhIGNoYWluZWQKYnJpZGdlLCBkb24ndCBhdHRhY2ggaXQ/ IFlvdSBjYW4ganVzdCBvcGVuLWNvZGUgdGhlIGF0dGFjaCBhbmQgY2FsbCB0aGUKYnJpZGdlIGZ1 bmN0aW9ucyBkaXJlY3RseSB3aGVuIGFwcHJvcHJpYXRlLiBJIHRoaW5rIHRoYXQncyB0aGUgYmV0 dGVyCmxvbmctdGVybSBwbGFuIHRoYW4gdHJ5aW5nIHRvIGhhdmUgZmxhZ3MgZm9yIGV2ZXJ5IHBv c3NpYmxlIHRvcG9sb2d5CmV4aXN0aW5nIG91dCB0aGVyZSAuLi4KLURhbmllbAoKPiAKPiAKPiA+ Cj4gPj4gMi4gSWYgdGhlIHBhdGNoIGNhbiBiZSBhcHBsaWVkIGF0b21pY2FsbHkgaXQgaXMgT0sg YXMgaXMsIGlmIG5vdCB5b3UgY2FuCj4gPj4gdXNlIHByZXByb2Nlc3NvciB2YXJhcmcgbWFnaWMg dG8gc3VwcG9ydCBuZXcgYW5kIG9sZCBzeW50YXgsIHN0aCBsaWtlOgo+ID4+Cj4gPj4gI2RlZmlu ZSBfZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBwcmV2LCBmbGFncywgb3B0YXJn Li4uKQo+ID4+IF9fZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBwcmV2LCBmbGFn cykKPiA+Pgo+ID4+ICNkZWZpbmUgZHJtX2JyaWRnZV9hdHRhY2goZW5jb2RlciwgYnJpZGdlLCBw cmV2LCBvcHRhcmcuLi4pCj4gPj4gX2RybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwg cHJldiwgIyNvcHRhcmcsIDApCj4gPiBHb29kIHBvaW50LiBJJ2xsIHRyeSB0byBkbyB0aGlzIGF0 b21pY2FsbHksIGJ1dCBpZiBpdCBmYWlscyBJJ2xsIGZvbGxvdwo+ID4geW91ciBzdWdnZXN0aW9u Lgo+ID4KPiA+PiAzLiBNYXliZSBtb3JlIGNvbnZlbmllbnQgd291bGQgYmUgdG8ganVzdCBzZXQg dGhlIGZsYWdzIGRpcmVjdGx5IGJlZm9yZQo+ID4+IGF0dGFjaG1lbnQ6Cj4gPj4KPiA+PiDCoMKg wqAgYnJpZGdlLT5kb250X2NyZWF0ZV9jb25uZWN0b3IgPSB0cnVlOwo+ID4+Cj4gPj4gwqDCoMKg IHJldCA9IGRybV9icmlkZ2VfYXR0YWNoKGVuY29kZXIsIGJyaWRnZSwgTlVMTCk7Cj4gPj4KPiA+ PiDCoMKgwqAgVGhpcyB3YXkgaXQgd2lsbCBiZSBzdGlsbCBleHBhbmRhYmxlLCBhbmQgbGVzcyBj aGFuZ2VzLgo+ID4gQnJpZGdlcyB0aGF0IGFyZSBjaGFpbmVkIHdvdWxkIG5lZWQgdG8gc2V0IHRo ZSBkb250X2NyZWF0ZV9jb25uZWN0b3IKPiA+IGZsYWcgb2YgdGhlIG5leHQgYnJpZGdlLiBJdCB3 b3VsZCBiZSBhIGJpdCB1Z2x5LCBidXQgd291bGQgbWFrZSB0aGlzCj4gPiBwYXRjaCBzbWFsbGVy LiBPbiB0aGUgb3RoZXIgaGFuZCB3ZSB3b3VsZCBuZWVkIHRvIGtlZXAgdGhlIGlmCj4gPiAoIWNy ZWF0ZV9jb25uZWN0b3IpIGNoZWNrIGluIHRoZSAuYXR0YWNoKCkgaGFuZGxlcnMsIGFuZCBpdCB3 b3VsZCBiZQo+ID4gZWFzaWVyIHRvIG1pc3MgaXQgaW4gYnJpZGdlIGRyaXZlcnMgKGN1cnJlbnQg b3IgbmV3KSB0aGFuIHdpdGggYW4KPiA+IGV4cGxpY2l0IGFyZ3VtZW50IHRvIHRoZSAuYXR0YWNo KCkgb3BlcmF0aW9uLiBJIHdvdWxkIHRodXMgaGF2ZSBhCj4gPiBwcmVmZXJlbmNlIGZvciB0aGUg bmV3IGFyZ3VtZW50IHRvIC5hdHRhY2goKS4gRXNwZWNpYWxseSBpZiBpdCBjYW4gaGVscAo+ID4g eW91IHdpdGggRFJNX0JSSURHRV9GTEFHX05PX0NIQUlOSU5HIDotKQo+IAo+IGJyaWRnZS0+ZG9u dF9jaGFpbiB3b3VsZCB3b3JrIGFzIHdlbGwgOikKPiAKPiBCdHcgSSB3b25kZXIgaWYgaXQgY291 bGQgYmUgcG9zc2libGUgdG8gZGlzYWxsb3cgY3JlYXRpbmcgY29ubmVjdG9ycyBhdCBhbGwgYnkg bmV3IGJyaWRnZXMgLSBpdCB3b3VsZCBzcGVlZC11cCB0cmFuc2l0aW9uLgo+IAo+IAo+IEFub3Ro ZXIgbG9uZyB0ZXJtIGlkZWEuIFNpbmNlIGJyaWRnZXMgY2FuIGJlIGF0dGFjaGVkIHRvOgo+IC0g ZW5jb2RlciwKPiAtIGFub3RoZXIgYnJpZGdlLAo+IC0gY3J0YyAoSSBoYXZlIG9uZSBleGFtcGxl LCBidXQgSSBndWVzcyB0aGVyZSBjb3VsZCBiZSBtb3JlKSwKPiAtIGV2ZW4gYmVmb3JlIGNydGMg KGltYWdlIHBvc3Rwcm9jZXNzaW5nKQo+IEFuZCBzaW5jZSBicmlkZ2Ugb3V0cHV0IGdvZXMgdG86 Cj4gLSBhbm90aGVyIGJyaWRnZSwKPiAtIHBhbmVsLgo+IAo+IFdvdWxkbid0IGJlIGJldHRlciB0 byBjcmVhdGUgZHJtX3NvdXJjZSBhbmQgZHJtX3NpbmsgKGRvIG5vdCByZXNwb25kIHdpdGggeGtj ZCBwaWN0dXJlIDopICk6Cj4gLSBkcm1fc291cmNlIHdpbGwgYmUgZW1iZWRkZWQgaW4gc291cmNl IGRldmljZSBjb250ZXh0LAo+IC0gZHJtX3Npbmsgd2lsbCBiZSBlbWJlZGRlZCBpbiBzaW5rIGRl dmljZSBjb250ZXh0Lgo+IFdlIGNvdWxkIG1ha2UgdGhlbiB0cmFuc2l0aW9ucyBvZiBicmlkZ2Vz IHRvIGRybV9zaW5rIHdpdGggZHJtX3NvdXJjZSBlbWJlZGVkIGluIGl0cyBjb250ZXh0LCBhbmQg cGFuZWxzIHRvIGRybV9zaW5rLgo+IFRoaXMgd2F5IHdlIGNvdWxkIGRyb3AgdGhlc2UgY3Jhenkg Y29uc3RydWN0czoKPiAtIGlmIHNpbmsgaXMgcGFuZWwgdGhlbiBkbyBzdGgsIGVsc2lmIGlzIGJy aWRnZSB0aGVuIGRvIHN0aF9lbHNlLAo+IC0gaWYgc3JjIGlzIGJyaWRnZSB0aGVuIGRvIHN0aCwg ZWxzaWYgaXMgZW5jb2RlciAuLi4gZWxzaWYgLi4uLgo+IC0gaGVscGVycyBvZl9maW5kX3BhbmVs X29yX2JyaWRnZSwKPiAtIGRybV9wYW5lbF9icmlkZ2UsCj4gQWxzbyB3ZSBjb3VsZCBpbXBsZW1l bnQgZWFzaWx5IG11bHRpIGlucHV0L291dHB1dCBicmlkZ2VzL3BhbmVscy9jcnRjcyB3aGF0ZXZl ci4KPiBBbmQgaHBkIGNhbGxiYWNrcyB5b3UgaGF2ZSBwcm9wb3NlZCBpbiBhbm90aGVyIHBhdGNo IHdvdWxkIGZpdCBiZXR0ZXIgdG8gZHJtX3NvdXJjZS5vcHMuCj4gLi4uCj4gCj4gCj4gUmVnYXJk cwo+IEFuZHJ6ZWoKPiAKPiAKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJ bnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=