From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 1/5] drm: Add helpers to kick off self refresh mode in drivers Date: Fri, 29 Mar 2019 14:10:11 -0400 Message-ID: <20190329181011.GP114153@art_vandelay> References: <20190326204509.96515-1-sean@poorly.run> <20190327181500.GP2665@phenom.ffwll.local> <20190328210303.GM114153@art_vandelay> <20190329082110.GA2665@phenom.ffwll.local> <20190329131659.GO114153@art_vandelay> <20190329153632.GP2665@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x843.google.com (mail-qt1-x843.google.com [IPv6:2607:f8b0:4864:20::843]) by gabe.freedesktop.org (Postfix) with ESMTPS id ECA7F6E929 for ; Fri, 29 Mar 2019 18:10:13 +0000 (UTC) Received: by mail-qt1-x843.google.com with SMTP id h39so3667633qte.2 for ; Fri, 29 Mar 2019 11:10:13 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20190329153632.GP2665@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Zain Wang , David Airlie , Jose Souza , Tomasz Figa , Maxime Ripard , Sean Paul , dri-devel@lists.freedesktop.org, Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBNYXIgMjksIDIwMTkgYXQgMDQ6MzY6MzJQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIE1hciAyOSwgMjAxOSBhdCAwOToxNjo1OUFNIC0wNDAwLCBTZWFuIFBh dWwgd3JvdGU6Cj4gPiBPbiBGcmksIE1hciAyOSwgMjAxOSBhdCAwOToyMToxMEFNICswMTAwLCBE YW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBUaHUsIE1hciAyOCwgMjAxOSBhdCAwNTowMzow M1BNIC0wNDAwLCBTZWFuIFBhdWwgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBNYXIgMjcsIDIwMTkg YXQgMDc6MTU6MDBQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gPiA+IE9uIFR1 ZSwgTWFyIDI2LCAyMDE5IGF0IDA0OjQ0OjU0UE0gLTA0MDAsIFNlYW4gUGF1bCB3cm90ZToKPiA+ ID4gPiA+ID4gRnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+Cj4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgZHJtIGhlbHBlciBsaWJyYXJ5 IHRvIGhlbHAgZHJpdmVycyBpbXBsZW1lbnQKPiA+ID4gPiA+ID4gc2VsZiByZWZyZXNoLiBEcml2 ZXJzIGNob29zaW5nIHRvIHVzZSBpdCB3aWxsIHJlZ2lzdGVyIGNydGNzIGFuZAo+ID4gPiA+ID4g PiB3aWxsIHJlY2VpdmUgY2FsbGJhY2tzIHdoZW4gaXQncyB0aW1lIHRvIGVudGVyIG9yIGV4aXQg c2VsZiByZWZyZXNoCj4gPiA+ID4gPiA+IG1vZGUuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBJ biBpdHMgY3VycmVudCBmb3JtLCBpdCBoYXMgYSB0aW1lciB3aGljaCB3aWxsIHRyaWdnZXIgYWZ0 ZXIgYQo+ID4gPiA+ID4gPiBkcml2ZXItc3BlY2lmaWVkIGFtb3VudCBvZiBpbmFjdGl2aXR5LiBX aGVuIHRoZSB0aW1lciB0cmlnZ2VycywgdGhlCj4gPiA+ID4gPiA+IGhlbHBlcnMgd2lsbCBzdWJt aXQgYSBuZXcgYXRvbWljIGNvbW1pdCB0byBzaHV0IHRoZSByZWZyZXNoaW5nIHBpcGUKPiA+ID4g PiA+ID4gb2ZmLiBPbiB0aGUgbmV4dCBhdG9taWMgY29tbWl0LCB0aGUgZHJtIGNvcmUgd2lsbCBy ZXZlcnQgdGhlIHNlbGYKPiA+ID4gPiA+ID4gcmVmcmVzaCBzdGF0ZSBhbmQgYnJpbmcgZXZlcnl0 aGluZyBiYWNrIHVwIHRvIGJlIGFjdGl2ZWx5IGRyaXZlbi4KPiA+ID4gPiA+ID4gCj4gPiA+ID4g PiA+IEZyb20gdGhlIGRyaXZlcidzIHBlcnNwZWN0aXZlLCB0aGlzIHdvcmtzIGxpa2UgYSByZWd1 bGFyIGRpc2FibGUvZW5hYmxlCj4gPiA+ID4gPiA+IGN5Y2xlLiBUaGUgZHJpdmVyIG5lZWQgb25s eSBjaGVjayB0aGUgJ3NlbGZfcmVmcmVzaF9hY3RpdmUnIGFuZC9vcgo+ID4gPiA+ID4gPiAnc2Vs Zl9yZWZyZXNoX2NoYW5nZWQnIHN0YXRlIGluIGNydGNfc3RhdGUgYW5kIGNvbm5lY3Rvcl9zdGF0 ZS4gSXQKPiA+ID4gPiA+ID4gc2hvdWxkIGluaXRpYXRlIHNlbGYgcmVmcmVzaCBtb2RlIG9uIHRo ZSBwYW5lbCBhbmQgZW50ZXIgYW4gb2ZmIG9yCj4gPiA+ID4gPiA+IGxvdy1wb3dlciBzdGF0ZS4K PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IENoYW5nZXMgaW4gdjI6Cj4gPiA+ID4gPiA+IC0gcy9w c3Ivc2VsZl9yZWZyZXNoLyAoRGFuaWVsKQo+ID4gPiA+ID4gPiAtIGludGVncmF0ZWQgdGhlIHBz ciBleGl0IGludG8gdGhlIGNvbW1pdCB0aGF0IHdha2VzIGl0IHVwIChKb3NlL0RhbmllbCkKPiA+ ID4gPiA+ID4gLSBtYWRlIHRoZSBwc3Igc3RhdGUgcGVyLWNydGMgKEpvc2UvRGFuaWVsKQo+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gTGluayB0byB2MTogaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRl c2t0b3Aub3JnL3BhdGNoL21zZ2lkLzIwMTkwMjI4MjEwOTM5LjgzMzg2LTItc2VhbkBwb29ybHku cnVuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsQGZm d2xsLmNoPgo+ID4gPiA+ID4gPiBDYzogSm9zZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+ Cj4gPiA+ID4gPiA+IENjOiBaYWluIFdhbmcgPHd6ekByb2NrLWNoaXBzLmNvbT4KPiA+ID4gPiA+ ID4gQ2M6IFRvbWFzeiBGaWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+Cj4gPiA+ID4gPiA+IFNpZ25l ZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ID4gPiA+ID4gPiAt LS0KPiA+ID4gPiA+ID4gIERvY3VtZW50YXRpb24vZ3B1L2RybS1rbXMtaGVscGVycy5yc3QgICAg IHwgICA5ICsKPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSAgICAgICAgICAg ICAgICAgIHwgICAzICstCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j ICAgICAgICAgICAgICB8ICAgNCArCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuYyAgICAgICB8ICAzNiArKystCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY19zdGF0ZV9oZWxwZXIuYyB8ICAgOCArCj4gPiA+ID4gPiA+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgICAgICAgICB8ICAgNSArLQo+ID4gPiA+ID4gPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9zZWxmX3JlZnJlc2hfaGVscGVyLmMgfCAyMTIgKysrKysrKysr KysrKysrKysrKysrKwo+ID4gPiA+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oICAgICAg ICAgICAgICAgICAgfCAgMTUgKysKPiA+ID4gPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0 b3IuaCAgICAgICAgICAgICAgIHwgIDMxICsrKysKPiA+ID4gPiA+ID4gIGluY2x1ZGUvZHJtL2Ry bV9jcnRjLmggICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrCj4gPiA+ID4gPiA+ICBpbmNsdWRl L2RybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5oICAgICB8ICAyMyArKysKPiA+ID4gPiA+ID4g IDExIGZpbGVzIGNoYW5nZWQsIDM2MCBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQo+ID4g PiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9kcm1fc2VsZl9yZWZy ZXNoX2hlbHBlci5jCj4gPiA+ID4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9kcm0v ZHJtX3NlbGZfcmVmcmVzaF9oZWxwZXIuaAo+ID4gPiA+ID4gPiAKPiA+IAo+ID4gL3NuaXAKPiA+ IAo+ID4gPiA+ID4gPiBpbmRleCA0OTg1Mzg0ZTUxZjYuLmVjOTBjNTI3ZGVlZCAxMDA2NDQKPiA+ ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMK PiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVy LmMKPiA+ID4gPiA+ID4gQEAgLTEwNSw2ICsxMDUsMTAgQEAgdm9pZCBfX2RybV9hdG9taWNfaGVs cGVyX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ID4gPiA+ ID4gIAlzdGF0ZS0+Y29tbWl0ID0gTlVMTDsKPiA+ID4gPiA+ID4gIAlzdGF0ZS0+ZXZlbnQgPSBO VUxMOwo+ID4gPiA+ID4gPiAgCXN0YXRlLT5wYWdlZmxpcF9mbGFncyA9IDA7Cj4gPiA+ID4gPiA+ ICsKPiA+ID4gPiA+ID4gKwkvKiBTZWxmIHJlZnJlc2ggc2hvdWxkIGJlIGNhbmNlbGVkIHdoZW4g YSBuZXcgdXBkYXRlIGlzIGF2YWlsYWJsZSAqLwo+ID4gPiA+ID4gPiArCXN0YXRlLT5hY3RpdmUg PSBkcm1fYXRvbWljX2NydGNfZWZmZWN0aXZlbHlfYWN0aXZlKHN0YXRlKTsKPiA+ID4gPiA+ID4g KwlzdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSA9IGZhbHNlOwo+ID4gPiA+ID4gPiAgfQo+ID4g PiA+ID4gPiAgRVhQT1JUX1NZTUJPTChfX2RybV9hdG9taWNfaGVscGVyX2NydGNfZHVwbGljYXRl X3N0YXRlKTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiBAQCAtMzcwLDYgKzM3NCwxMCBAQCBf X2RybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kdXBsaWNhdGVfc3RhdGUoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAgCS8qIERvbid0 IGNvcHkgb3ZlciBhIHdyaXRlYmFjayBqb2IsIHRoZXkgYXJlIHVzZWQgb25seSBvbmNlICovCj4g PiA+ID4gPiA+ICAJc3RhdGUtPndyaXRlYmFja19qb2IgPSBOVUxMOwo+ID4gPiA+ID4gPiArCj4g PiA+ID4gPiA+ICsJLyogU2VsZiByZWZyZXNoIHNob3VsZCBiZSBjYW5jZWxlZCB3aGVuIGEgbmV3 IHVwZGF0ZSBpcyBhdmFpbGFibGUgKi8KPiA+ID4gPiA+ID4gKwlzdGF0ZS0+c2VsZl9yZWZyZXNo X2NoYW5nZWQgPSBzdGF0ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZTsKPiA+ID4gPiA+ID4gKwlzdGF0 ZS0+c2VsZl9yZWZyZXNoX2FjdGl2ZSA9IGZhbHNlOwo+ID4gPiA+ID4gCj4gPiA+ID4gPiBXaHkg dGhlIGR1cGxpY2F0aW9uIGluIHNlbGYtcmVmcmVzaCB0cmFja2luZz8gQ29ubmVjdG9ycyBuZXZl ciBoYXZlIGEKPiA+ID4gPiA+IGRpZmZlcmVudCBzZWxmLXJlZnJlc2ggc3RhdGUsIGFuZCB5b3Ug Y2FuIGFsd2F5cyBsb29rIGF0IHRoZSByaWdodAo+ID4gPiA+ID4gY3J0Y19zdGF0ZS4gRHVwbGlj YXRpb24ganVzdCBnaXZlcyB1cyB0aGUgY2hhbmNlIHRvIHNjcmV3IHVwIGFuZCBnZXQgb3V0Cj4g PiA+ID4gPiBvZiBzeW5jIChlLmcuIGlmIHRoZSBjcnRjIGZvciBhIGNvbm5lY3RvciBjaGFuZ2Vz KS4KPiA+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IE9uIGRpc2FibGUgdGhlIGNydGMgaXMgY2xl YXJlZCBmcm9tIGNvbm5lY3Rvcl9zdGF0ZSwgc28gd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8KPiA+ ID4gPiBpdC4gSWYgSSBhZGQgdGhlIGFwcHJvcHJpYXRlIGF0b21pY19lbmFibGUvZGlzYWJsZSBo b29rcyBhcyBzdWdnZXN0ZWQgYmVsb3csIHdlCj4gPiA+ID4gc2hvdWxkIGJlIGFibGUgdG8gbnVr ZSB0aGVzZS4KPiA+ID4gCj4gPiA+IFllYWggd2UnZCBuZWVkIHRoZSBvbGQgc3RhdGUgdG8gbG9v ayBhdCB0aGUgY3J0YyBhbmQgYWxsIHRoYXQuIFdoaWNoIGlzIGEKPiA+ID4gbG90IG1vcmUgdHJp Y2tpZXIuCj4gPiA+IAo+ID4gPiBTaW5jZSBpdCdzIHN1Y2ggYSBzcGVjaWFsIGNhc2UsIHNob3Vs ZCB3ZSBoYXZlIGEgZGVkaWNhdGVkIGNhbGxiYWNrIGZvcgo+ID4gPiB0aGUgZGlyZWN0IHNlbGYt cmVmcmVzaCAtPiBjb21wbGV0ZWx5IG9mZiB0cmFuc2l0aW9uPyBJdCdsbCBiZSBhc3ltZXRyaWMs Cj4gPiA+IGJ1dCB0aGF0J3MgdGhlIG5hdHVyZSBvZiB0aGlzIEkgdGhpbmsuCj4gPiAKPiA+IFJp Z2h0LCB0aGUgYXN5bW1ldHJ5IGlzIHJlYWxseSBhbm5veWluZyBoZXJlLiBJZiB0aGUgZHJpdmVy IGlzIFNSLWF3YXJlLCBpdCBtYWtlcwo+ID4gc2Vuc2Ugc2luY2UgU1ItYWN0aXZlIHRvIGRpc2Fi bGUgaXMgYSByZWFsIHRyYW5zaXRpb24uIEhvd2V2ZXIgaWYgdGhlIGRyaXZlciBpcwo+ID4gbm90 IFNSLWF3YXJlIChpZTogaXQganVzdCBnZXRzIHR1cm5lZCBvZmYgd2hlbiBTUiBiZWNvbWVzIGFj dGl2ZSksIHRoZSBkaXNhYmxlCj4gPiBmdW5jdGlvbiBnZXRzIGNhbGxlZCB0d2ljZSB3aXRob3V0 IGFuIGVuYWJsZS4gU28gdGhhdCBjaGFuZ2VzIHRoZSAiZm9yIGV2ZXJ5Cj4gPiBlbmFibGUgdGhl cmUgaXMgYSBkaXNhYmxlIGFuZCB2aWNlIHZlcnNhIiBhc3N1bXB0aW9uLgo+ID4gCj4gPiBUaGlz IGlzIG9uZSBvZiB0aGUgYmVuZWZpdHMgb2YgdGhlIHYxIGRlc2lnbiwgU1Igd2FzIGJvbHRlZCBv biBhbmQgbm8gZXhpc3RpbmcKPiA+IHJ1bGVzIChhc3luYy9ub19tb2Rlc2V0L2VuYWJsZS1kaXNh YmxlIHBhaXJzKSB3ZXJlIFtleHBsaWNpdGx5XSBicm9rZW4uIFRoYXQncwo+ID4gbm90IHRvIHNh eSBpdCB3YXMgYmV0dGVyLCBpdCB3YXNuJ3QsIGJ1dCBpdCB3YXMgYSBiaWcgY29uc2lkZXJhdGlv bi4KPiA+IAo+ID4gU28sIHdoYXQgdG8gZG8uCj4gPiAKPiA+IEkgcmVhbGx5IGxpa2UgdGhlIGlk ZWEgdGhhdCBkcml2ZXJzIHNob3VsZG4ndCBoYXZlIHRvIGJlIFNSLWF3YXJlIHRvIGJlIGludm9s dmVkCj4gPiBpbiB0aGUgcGlwZWxpbmUuIFNvIGlmIHdlIGFkZCBhIGhvb2sgZm9yIHRoaXMgbGlr ZSB5b3Ugc3VnZ2VzdCwgd2UgY291bGQgYXZvaWQKPiA+IGNhbGxpbmcgZGlzYWJsZSB0d2ljZSBv biBhbnl0aGluZyBub3QgU1ItYXdhcmUuIFdlIHdvdWxkIG5lZWQgdG8gYWRkIHRoZSBob29rIG9u Cj4gPiBjcnRjL2VuY29kZXIvYnJpZGdlIHRvIG1ha2Ugc3VyZSB5b3UgY291bGQgbWl4IG4nIG1h dGNoIFNSLWF3YXJlIGFuZAo+ID4gbm9uLVNSLWF3YXJlIGRldmljZXMuCj4gPiAKPiA+IEl0IHBy b2JhYmx5IG1ha2VzIHNlbnNlIHRvIGp1c3QgYWRkIG1hdGNoaW5nIFNSIGhvb2tzIGF0IHRoaXMg cG9pbnQuIFNpbmNlIGlmCj4gPiB0aGUgZHJpdmVyIGlzIGRvaW5nIHNvbWV0aGluZyBzcGVjaWFs IGluIGRpc2FibGUsIGl0J2xsIG5lZWQgdG8gZG8gc29tZXRoaW5nCj4gPiBzcGVjaWFsIGluIGVu YWJsZS4gSXQgYWxzbyByZXNlcnZlcyBlbmFibGUgYW5kIGRpc2FibGUgZm9yIHdoYXQgdGhleSd2 ZQo+ID4gdHJhZGl0aW9uYWxseSBkb25lLiBJZiBhIGRldmljZSBpcyBub3QgU1ItYXdhcmUsIGl0 J2xsIGp1c3QgZmFsbCBiYWNrIHRvIHRoZQo+ID4gZnVsbCBlbmFibGUvZGlzYWJsZSBhbmQgd2Un bGwgbWFrZSBzdXJlIHRvIG5vdCBkb3VibGUgdXAgb24gdGhlIGRpc2FibGUgaW4gdGhlCj4gPiBo ZWxwZXJzLgo+ID4gCj4gPiBTbyB3ZSdsbCBrZWVwIHN5bW1ldHJ5LCBhbmQgYXZvaWQgaGF2aW5n IGFuIGF3ZnVsIGhvb2sgbmFtZSBsaWtlCj4gPiBkaXNhYmxlX2Zyb21fc2VsZl9yZWZyZXNoLi4g eXVjayEKPiA+IAo+ID4gVGhvdWdodHM/Cj4gCj4gSSBsaWtlIHRoZSBhc3ltZXRyeSBhY3R1YWxs eSwgaXQgaGFzIGdyb3duIG9uIGEgYml0IHdoaWxlIHdvcmtpbmcgb3V0IGFuZAo+IHBvbmRlcmlu ZyB0aGlzIDotKQo+IAoKSSdtIG5vdCBxdWl0ZSB0aGVyZSB3aXRoIHlvdSwgSSBzdGlsbCB0aGlu ayBpdCdzIGJldHRlciB0byBzcGxpdCBpdCBhbGwgb3V0LgoKPiBCZW5lZml0czoKPiAtIHdlIGtl ZXAgdGhlIDEwMCUgc3ltbWV0cnkgb2YgZW5hYmxlL2Rpc2FibGUgaG9va3MKPiAtIHNlbGYtcmVm cmVzaCBhd2FyZSBjb25uZWN0b3IgY29kZSBhbHNvIGdldHMgYSBiaXQgc2ltcGxlciBJIHRoaW5r OiBpbgo+ICAgdGhlIG5vcm1hbCBlbmFibGUvZGlzYWJsZSBob29rcyBpdCBjYW4ganVzdCBjaGVj ayBmb3IKPiAgIGNvbm5lY3Rvci0+c3RhdGUtPmNydGMtPnN0YXRlLT5zZWxmX3JlZnJlc2hfYWN0 aXZlIGZvciBzciBzdGF0ZSBjaGFuZ2VzCj4gICB3aGlsZSB0aGUgcGlwZSBpcyBsb2dpY2FsbHkg c3RheWluZyBvbgo+IC0gdGhlIG9uZSBhc3ltbWV0cmljIGNhc2UgZHVlIHRvIHRoaXMgZGVzaWdu IHdoZXJlIHdlIGRpc2FibGUgdGhlIHBpcGUKPiAgIGhhcmRlciBoYXMgYW4gYXdrd2FyZCBzcGVj aWFsIGhvb2ssIHdoaWNoIGdpdmVzIHVzIGEgZ3JlYXQgb3Bwb3J0dW5pdHkKPiAgIHRvIGV4cGxh aW4gd2h5IGl0J3MgbmVlZGVkCj4gLSBub3RoaW5nIGNoYW5nZXMgZm9yIG5vbi1zciBhd2FyZSBk cml2ZXJzCj4gLSBhbHNvIG5vIG5lZWQgdG8gZHVwbGljYXRlIHNyIHN0YXRlIGludG8gY29ubmVj dG9ycywgc2luY2UgaXQncyBhbGwKPiAgIGZhaXJseSBleHBsaXQgYWxyZWFkeSBpbiBhbGwgdGhy ZWUgc3RhdGUgdHJhbnNpdGlvbnMuCgpUbyBiZSBmYWlyLCBvbmx5IG9uZSBvZiB0aGVzZSBpcyBl eGNsdXNpdmUgdG8gYXN5bW1ldHJ5LCBhbmQgaXQncyB0aGUgb25lIHRoYXQKcHJvdmlkZXMgdGhl IG9wcG9ydHVuaXR5IHRvIGFkZCBhIGNvbW1lbnQuIElmIHRoZSBzciBmdW5jdGlvbnMgYXJlIHN5 bW1ldHJpYywKdGhlIGNvZGUgYmVjb21lcyBtdWNoIG1vcmUgIm5vcm1hbCIgYW5kIGxlc3MgZGVz ZXJ2aW5nIG9mIHRoZSBleHBsYW5hdGlvbi4KClRoZSByZWFzb24gSSB3b3VsZCBsaWtlIHRvIHNw bGl0IG91dCBlbnRyeSBhbmQgZXhpdCBpcyB0aGF0IGl0IG1ha2VzIHRoZSBkcml2ZXIgCmNvZGUg YSBiaXQgZWFzaWVyIHRvIHJhdGlvbmFsaXplLiBDdXJyZW50bHkgd2UgbmVlZCB0byBjaGVjayB0 aGUgc3RhdGUgYXQgdGhlCmJlZ2lubmluZyBvZiBlbmFibGUvZGlzYWJsZSB0byBkZXRlcm1pbmUg d2hldGhlciB3ZSB3YW50IHRoZSBmdWxsIGVuYWJsZS9kaXNhYmxlCm9yIHRoZSBwc3IgZXhpdC9l bnRlci4gU28gdGhlIHNyX2Rpc2FibGUgZnVuY3Rpb24gd291bGQgcmVhbGx5IGp1c3QgYmUgcGxh aW4Kb2xkIGRpc2FibGUgd2l0aG91dCB0aGUgc3BlY2lhbCBjYXNpbmcgYXQgdGhlIHRvcC4gSW4g dGhhdCBjYXNlLCB3ZSBkb24ndCBldmVuCm5lZWQgdGhlIHNlcGFyYXRlIGZ1bmN0aW9uLCB3ZSBj b3VsZCBqdXN0IGxpbWl0IGRpc2FibGUgY2FsbHMgb25seSBvbiB0aG9zZQpvYmplY3RzIHdoaWNo IGFyZSBlZmZlY3RpdmVseSBvbiAoYWN0aXZlIHx8IHNyKS4gVGhhdCBzdGFydHMgc291bmRpbmcg YSBsb3QgbGlrZQp3aGF0IHdlIGFscmVhZHkgaGF2ZSBoZXJlLgoKRnVydGhlciwgZG9pbmcgU1Ig aW4gZW5hYmxlL2Rpc2FibGUgaXMgcmVhbGx5IGp1c3QgbGVnYWN5IGZyb20gdjEgd2hpY2ggdHJp ZWQgdG8Ka2VlcCBhcyBtdWNoIHRoZSBzYW1lIGFzIHBvc3NpYmxlLiBOb3cgdGhhdCB3ZSdyZSAi aW4gaXQiLCBJIHRoaW5rIGl0IG1ha2VzCnNlbnNlIHRvIGdvIGFsbCBpbiBhbmQgbWFrZSBTUiBh IGZpcnN0IGNsYXNzIGNpdGl6ZW4uCgpTZWFuCgo+IAo+IC0gU1Igb24gY2FuIG9ubHkgaGFwcGVu IGlmIHRoZSBsb2dpY2FsIGNydGNfc3RhdGUtPmFjdGl2ZSBpcyBvbiBhbmQgc3RheXMgb24KPiAt IFNSIGNhbiBnZXQgZGlzYWJsZWQgaW4gMiBzdWJjYXNlcwo+ICAgLSBsb2dpY2FsIGFjdGl2ZSBz dGF0ZSBzdGF5cyBvbiAtPiBoYW5kbGVkIHdpdGggZXhpc3RpbmcgaG9va3MKPiAgIC0gbG9naWNh bCBhY3RpdmUgc3RhdGUgYWxzbyBnb2VzIG9mZiAtPiBleGlzdGluZyBob29rcyBhbGwgc2tpcCAo YmVjYXVzZQo+ICAgICBhY3RpdmU9ZmFsc2UgLT4gYWN0aXZlPWZhbHNlIGlzIGEgbm8tb3ApLCB0 aGUgc3BlY2lhbCAtPnNyX2Rpc2FibGUKPiAgICAgdGFrZXMgY2FyZQo+IAo+IEl0IGZlZWxzIGxp a2UgdGhpcyBpcyBjbGVhbiwgaW50ZWdyYXRlcyB3ZWxsIHdpdGggYXRvbWljIGhlbHBlcnMgb3Zl cmFsbAo+IGFuZCBpdCBldmVuIG1ha2VzIHNlbnNlLiBBdCBsZWFzdCB0byBteSBzbGlnaHRseSBv eHlnZW4gZGVwcml2ZWQgbWluZAo+IHJpZ2h0IG5vdyAuLi4KPiAKPiA+ID4gPiA+ID4gIH0KPiA+ ID4gPiA+ID4gIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHVw bGljYXRlX3N0YXRlKTsKPiA+ID4gPiA+ID4gIAo+ID4gCj4gPiAvc25pcAo+ID4gCj4gPiA+ID4g PiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2Ry bS9kcm1fY29ubmVjdG9yLmgKPiA+ID4gPiA+ID4gaW5kZXggYzgwNjE5OTJkNmNiLi4wYWU3ZTgx MmVjNjIgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+ID4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiA+ID4gPiA+ ID4gQEAgLTUwMSw2ICs1MDEsMzcgQEAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewo+ID4g PiA+ID4gPiAgCS8qKiBAdHY6IFRWIGNvbm5lY3RvciBzdGF0ZSAqLwo+ID4gPiA+ID4gPiAgCXN0 cnVjdCBkcm1fdHZfY29ubmVjdG9yX3N0YXRlIHR2Owo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ ICsJLyoqCj4gPiA+ID4gPiA+ICsJICogQHNlbGZfcmVmcmVzaF9jaGFuZ2VkOgo+ID4gPiA+ID4g PiArCSAqCj4gPiA+ID4gPiA+ICsJICogU2V0IHRydWUgd2hlbiBzZWxmIHJlZnJlc2ggc3RhdHVz IGhhcyBjaGFuZ2VkLiBUaGlzIGlzIHVzZWZ1bCBmb3IKPiA+ID4gPiA+ID4gKwkgKiB1c2UgaW4g ZW5jb2Rlci9icmlkZ2UgZW5hYmxlIHdoZXJlIHRoZSBvbGQgc3RhdGUgaXMgdW5hdmFpbGFibGUg dG8KPiA+ID4gPiA+ID4gKwkgKiB0aGUgZHJpdmVyIGFuZCBpdCBuZWVkcyB0byBrbm93IHdoZXRo ZXIgdGhlIGVuYWJsZSB0cmFuc2l0aW9uIGlzIGEKPiA+ID4gPiA+ID4gKwkgKiBmdWxsIHRyYW5z aXRpb24sIG9yIGlmIGl0IGp1c3QgbmVlZHMgdG8gZXhpdCBzZWxmIHJlZnJlc2ggbW9kZS4KPiA+ ID4gPiA+IAo+ID4gPiA+ID4gVWgsIHdlIGp1c3QgbmVlZCBwcm9wZXIgYXRvbWljIGNhbGxiYWNr cyB3aXRoIGFsbCB0aGUgc3RhdGVzIGF2YWlsYWJsZS4KPiA+ID4gPiA+IE9uY2UgeW91IGhhdmUg b25lLCB5b3UgY2FuIGdldCBhdCB0aGUgb3RoZXJzLgo+ID4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ ID4gV2VsbCwgc3VyZSwgd2UgY291bGQgZG8gdGhhdCB0b28gOikKPiA+ID4gCj4gPiA+IHRiaCBJ J20gbm90IHN1cmUgd2hldGhlciB0aGF0J3MgcmVhbGx5IGJldHRlciwgdGhlIGR1cGxpY2F0aW9u IGp1c3QgaXJrcwo+ID4gPiBtZS4gV2l0aCBhIG5ldyBjYWxsYmFjayBmb3IgdGhlIHNwZWNpYWwg c2VsZi1yZWZyZXNoIGRpc2FibGUgKEkgZ3Vlc3Mgd2UKPiA+ID4gb25seSBuZWVkIHRoYXQgb24g dGhlIGNvbm5lY3RvciksIHBsdXMgbG9va2luZyBhdAo+ID4gPiBjb25uZWN0b3ItPnN0YXRlLT5j cnRjLT5zdGF0ZS0+c2VsZl9yZWZyZXNoLCBJIHRoaW5rIHdlJ2QgYmUgY292ZXJlZAo+ID4gPiBh cy1pcz8gT3IgaXMgdGhlcmUgYSBjb3JuZXIgY2FzZSBJJ20gc3RpbGwgbWlzc2luZz8KPiA+ID4g Cj4gPiAKPiA+IEkgdGhpbmsgd2UgY2FuIHJlbW92ZSBzZWxmX3JlZnJlc2hfY2hhbmdlZC9zZWxm X3JlZnJlc2hfYWN0aXZlIGlmIHdlIGltcGxlbWVudAo+ID4gZGVkaWNhdGVkIGhvb2tzIGZvciBz ZWxmX3JlZnJlc2hfZW50ZXIvZXhpdC4gV2UnbGwgd2FudCB0byBrZWVwCj4gPiBzZWxmX3JlZnJl c2hfYXdhcmUgYXJvdW5kIHNpbmNlIHRoZSBwcmVzZW5jZSBvZiB0aGUgY2FsbGJhY2sgaW1wbGVt ZW50YXRpb25zCj4gPiBkb2VzIG5vdCBpbXBseSB0aGUgcGFuZWwgY29ubmVjdGVkIHN1cHBvcnRz IFNSLgo+IAo+IFl1cCwgc2VsZl9yZWZyZXNoX2F3YXJlIGlzIG5lZWRlZC4KPiAKPiA+IEFzIG1l bnRpb25lZCBhYm92ZSwgd2UnbGwgbmVlZCB0aGVzZSBob29rcyBvbiBldmVyeXRoaW5nIGluIHRo ZSBwaXBlbGluZSB0byBiZQo+ID4gZnVsbHkgY292ZXJlZC4KPiAKPiBMZXQncyBqdXN0IGRvIHRo ZSAtPnNyX2Rpc2FibGUgaG9vayBmb3Igbm93LiBJIGRvbid0IHRoaW5rIHdlIG5lZWQgYWxsIHRo ZQo+IG90aGVycyByZWFsbHkuCj4gCj4gQ2hlZXJzLCBEYW5pZWwKPiAtLSAKPiBEYW5pZWwgVmV0 dGVyCj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKCi0tIApTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJv bWl1bSBPUwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw=