From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 8/8] drm/arm/malidp: Added the late system pm functions Date: Fri, 13 Apr 2018 17:44:09 +0200 Message-ID: <20180413154409.GX31310@phenom.ffwll.local> References: <1522083800-30100-1-git-send-email-ayan.halder@arm.com> <1522083800-30100-9-git-send-email-ayan.halder@arm.com> <20180327082903.GS14155@phenom.ffwll.local> <20180327095907.GA18146@arm.com> <20180406190216.GA18433@arm.com> <20180409082337.GG31310@phenom.ffwll.local> <20180409161226.GA6726@e107564-lin.cambridge.arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x22e.google.com (mail-wr0-x22e.google.com [IPv6:2a00:1450:400c:c0c::22e]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3E8686E359 for ; Fri, 13 Apr 2018 15:44:14 +0000 (UTC) Received: by mail-wr0-x22e.google.com with SMTP id d1so9252216wrj.13 for ; Fri, 13 Apr 2018 08:44:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180409161226.GA6726@e107564-lin.cambridge.arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey , "Rafael J. Wysocki" Cc: nd , Dave Airlie , Liviu Dudau , Linux Kernel Mailing List , dri-devel , Mali DP Maintainers , Ayan Halder List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBBcHIgMDksIDIwMTggYXQgMDU6MTU6MDhQTSArMDEwMCwgQnJpYW4gU3RhcmtleSB3 cm90ZToKPiBIaSBEYW5pZWwsCj4gCj4gT24gTW9uLCBBcHIgMDksIDIwMTggYXQgMTA6MjM6MzdB TSArMDIwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIEZyaSwgQXByIDA2LCAyMDE4IGF0 IDA4OjAyOjE2UE0gKzAxMDAsIEF5YW4gSGFsZGVyIHdyb3RlOgo+ID4gPiBPbiBUdWUsIE1hciAy NywgMjAxOCBhdCAwMTowOTozNlBNICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+ IE9uIFR1ZSwgTWFyIDI3LCAyMDE4IGF0IDExOjU5IEFNLCBBeWFuIEhhbGRlciA8YXlhbi5oYWxk ZXJAYXJtLmNvbT4gd3JvdGU6Cj4gPiA+ID4gPiBPbiBUdWUsIE1hciAyNywgMjAxOCBhdCAxMDoy OTowM0FNICswMjAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiA+ID4+IE9uIE1vbiwgTWFy IDI2LCAyMDE4IGF0IDA2OjAzOjIwUE0gKzAxMDAsIEF5YW4gS3VtYXIgSGFsZGVyIHdyb3RlOgo+ ID4gPiA+ID4+ID4gbWFsaWRwX3BtX3N1c3BlbmRfbGF0ZSBjaGVja3MgaWYgdGhlIHJ1bnRpbWUg c3RhdHVzIGlzIG5vdCBzdXNwZW5kZWQKPiA+ID4gPiA+PiA+IGFuZCBpZiBzbywgaW52b2tlcyBt YWxpZHBfcnVudGltZV9wbV9zdXNwZW5kIHdoaWNoIGRpc2FibGVzIHRoZQo+ID4gPiA+ID4+ID4g ZGlzcGxheSBlbmdpbmUvY29yZSBpbnRlcnJ1cHRzIGFuZCB0aGUgY2xvY2tzLiBJdCBzZXRzIHRo ZSBydW50aW1lIHN0YXR1cwo+ID4gPiA+ID4+ID4gYXMgc3VzcGVuZGVkLiBTdWJzZXF1ZW50bHks IG1hbGlkcF9wbV9yZXN1bWVfZWFybHkgd2lsbCBpbnZva2UKPiA+ID4gPiA+PiA+IG1hbGlkcF9y dW50aW1lX3BtX3Jlc3VtZSB3aGljaCBlbmFibGVzIHRoZSBjbG9ja3MgYW5kIHRoZSBpbnRlcnJ1 cHRzCj4gPiA+ID4gPj4gPiAocHJldmlvdXNseSBkaXNhYmxlZCkgYW5kIHNldHMgdGhlIHJ1bnRp bWUgc3RhdHVzIGFzIGFjdGl2ZS4KPiA+ID4gPiA+PiA+Cj4gPiA+ID4gPj4gPiBTaWduZWQtb2Zm LWJ5OiBBeWFuIEt1bWFyIEhhbGRlciA8YXlhbi5oYWxkZXJAYXJtLmNvbT4KPiA+ID4gPiA+PiA+ IENoYW5nZS1JZDogSTVmOGMzZDI4ZjA3NjMxNGExYzlkYTJhNDY3NjBhOWMzNzAzOWNjZGEKPiA+ ID4gPiA+Pgo+ID4gPiA+ID4+IFdoeSBleGFjdGx5IGRvIHlvdSBuZWVkIGxhdGUvZWFybHkgaG9v a3M/IElmIHlvdSBoYXZlIGRlcGVuZGVuY2llcyB3aXRoCj4gPiA+ID4gPj4gb3RoZXIgZGV2aWNl cywgcGxzIGNvbnNpZGVyIGFkZGluZyBkZXZpY2VfbGlua3MgaW5zdGVhZC4gVGhpcyBoZXJlCj4g PiA+ID4gPj4gc2hvdWxkbid0IGJlIG5lY2Vzc2FyeS4KPiA+ID4gPiA+PiAtRGFuaWVsCj4gPiA+ ID4gPiBXZSBuZWVkIHRvIGxhdGUvZWFybHkgaG9va3MgdG8gZGlzYWJsZSBtYWxpZHAgaW50ZXJy dXB0cyBhbmQgdGhlCj4gPiA+ID4gPiBjbG9ja3MuCj4gPiA+ID4KPiA+ID4gPiBZZXMsIGJ1dCB3 aHkgdGhpcyBvcmRlcmluZyBjb25zdHJhaW50PyBXaHkgY2FuJ3QgeW91IGp1c3QgZGlzYWJsZSB0 aGUKPiA+ID4gPiBpbnRlcnJ1cHRzL2Nsb2NrcyBpbiB0aGUgbm9ybWFsIHN1c3BlbmQgY29kZS4g SSBzZWUgdGhhdCB0aGUgcGF0Y2gKPiA+ID4gPiBkb2VzIHRoaXMsIEkgd2FudCB0byB1bmRlcnN0 YW5kIHdoeSBpdCBkb2VzIGl0Lgo+ID4gPiA+IC1EYW5pZWwKPiA+ID4gQXBvbG9naWVzIGZvciBt eSBkZWxheWVkIHJlc3BvbnNlIG9uIHRoaXMuCj4gPiA+IAo+ID4gPiBXaXRoIHJlZmVyZW5jZSB0 byBodHRwczovL2x3bi5uZXQvQXJ0aWNsZXMvNTA1NjgzLyA6LQo+ID4gPiAxLiAic3VzcGVuZCgp IHNob3VsZCBsZWF2ZSB0aGUgZGV2aWNlIGluIGEgcXVpZXNjZW50IHN0YXRlLiIgV2UgaW52b2tl Cj4gPiA+IGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfc3VzcGVuZCgpIHdoaWNoIGRlYWN0aXZhdGVz IHRoZSBjcnRjLiBJCj4gPiA+IHVuZGVyc3RhbmQgdGhhdCB0aGlzIGlzIHRoZSBxdWllc2NlbnQg c3RhdGUuCj4gPiA+IAo+ID4gPiAyLiAic3VzcGVuZF9sYXRlKCkgY2FuIG9mdGVuIGJlIHRoZSBz YW1lIGFzIHJ1bnRpbWVfc3VzcGVuZCgpLiIgIFdlCj4gPiA+IGludm9rZSBydW50aW1lIHN1c3Bl bmQvcmVzdW1lIGNhbGxzIGluIGxhdGUvZWFybHkgaG9va3MuCj4gPiAKPiA+IFRoaXMgYXJ0aWNs ZSBpcyBmcm9tIDIwMTIuIFRoYXQncyBub3QgcmVhbGx5IHJlY29tbWVuZGVkIGJlc3QgcHJhY3Rp Y2VzCj4gPiBhbnltb3JlLiBkZXZpY2VfbGlua3MgaGF2ZSBvbmx5IGJlZW4gYWRkZWQgYSBmZXcg eWVhcnMgYWdvLCBzbyBvZmMgYW4KPiA+IGFydGljbGUgZnJvbSAyMDEyIGNhbid0IHRlbGwgeW91 IHRoYXQgeW91IHNob3VsZCB1c2UgdGhvc2UgaW5zdGVhZCA6LSkKPiA+IAo+ID4gVGhhdCdzIHdo eSBJIGJyb3VnaHQgdGhpcyB1cCwgd2UgaGF2ZSBtdWNoIGJldHRlciB3YXlzIHRvIGhhbmRsZSBk ZXZpY2UKPiA+IGRlcGVuZGVuY2llcyBub3cuCj4gPiAKPiAKPiBXZSBhcmVuJ3QgdHJ5aW5nIHRv IG1hbmFnZSBhbnkgZGV2aWNlIGRlcGVuZGVuY2llcyBoZXJlLCBJIGRvbid0IGtub3cKPiB3aGVy ZSB0aGF0IGlkZWEgY2FtZSBmcm9tPwo+IAo+IFRoZSBrZXJuZWwtZG9jIG9uIGRybS1uZXh0IHRo aXMgYWZ0ZXJub29uIHNheXMgZWZmZWN0aXZlbHkgdGhlIHNhbWUKPiB0aGluZzoKPiAKPiAgICog QHN1c3BlbmQ6IEV4ZWN1dGVkIGJlZm9yZSBwdXR0aW5nIHRoZSBzeXN0ZW0gaW50byBhIHNsZWVw IHN0YXRlIGluIHdoaWNoIHRoZQo+ICAgKiAgICAgIGNvbnRlbnRzIG9mIG1haW4gbWVtb3J5IGFy ZSBwcmVzZXJ2ZWQuICBUaGUgZXhhY3QgYWN0aW9uIHRvIHBlcmZvcm0KPiAgICogICAgICBkZXBl bmRzIG9uIHRoZSBkZXZpY2UncyBzdWJzeXN0ZW0gKFBNIGRvbWFpbiwgZGV2aWNlIHR5cGUsIGNs YXNzIG9yIGJ1cwo+ICAgKiAgICAgIHR5cGUpLCBidXQgZ2VuZXJhbGx5IHRoZSBkZXZpY2UgbXVz dCBiZSBxdWllc2NlbnQgYWZ0ZXIgc3Vic3lzdGVtLWxldmVsCj4gICAqICAgICAgQHN1c3BlbmQo KSBoYXMgcmV0dXJuZWQsIHNvIHRoYXQgaXQgZG9lc24ndCBkbyBhbnkgSS9PIG9yIERNQS4KPiAg ICogICAgICBTdWJzeXN0ZW0tbGV2ZWwgQHN1c3BlbmQoKSBpcyBleGVjdXRlZCBmb3IgYWxsIGRl dmljZXMgYWZ0ZXIgaW52b2tpbmcKPiAgICogICAgICBzdWJzeXN0ZW0tbGV2ZWwgQHByZXBhcmUo KSBmb3IgYWxsIG9mIHRoZW0uCj4gCj4gKGkuZS4gc3VzcGVuZCgpIG1ha2VzIHRoZSBkZXZpY2Ug cXVpZXNjZW50KS4KPiAKPiAgICogQHN1c3BlbmRfbGF0ZTogQ29udGludWUgb3BlcmF0aW9ucyBz dGFydGVkIGJ5IEBzdXNwZW5kKCkuICBGb3IgYSBudW1iZXIgb2YKPiAgICogICAgICBkZXZpY2Vz IEBzdXNwZW5kX2xhdGUoKSBtYXkgcG9pbnQgdG8gdGhlIHNhbWUgY2FsbGJhY2sgcm91dGluZSBh cyB0aGUKPiAgICogICAgICBydW50aW1lIHN1c3BlbmQgY2FsbGJhY2suCj4gCj4gKHN1Z2dlc3Rz IHN1c3BlbmRfbGF0ZSgpIGJlIGFzc2lnbmVkIHRvIHRoZSBzYW1lIGZ1bmN0aW9uIGFzIHJ1bnRp bWUKPiBzdXNwZW5kKS4KPiAKPiBBcyBmb3Igd2h5LCBteSB1bmRlcnN0YW5kaW5nIGlzIGxpa2Ug c286Cj4gCj4gRm9yIC0+c3VzcGVuZCgpLCB3ZSB1c2UgdGhlIERSTSBoZWxwZXIsIHdoaWNoIGRp c2FibGVzIHRoZSBDUlRDLgo+IE5vcm1hbGx5IGRpc2FibGluZyB0aGUgQ1JUQyB3b3VsZCBiZSBl bm91Z2ggdG8gYWxzbyBpbnZva2Ugb3VyCj4gcG1fcnVudGltZSBjYWxsYmFjayB0byBkbyB0aGUg ZmluYWwgY2xvY2sgZGlzYWJsZSBldGMuLCBob3dldmVyIHdoZW4gYQo+IHN5c3RlbSBzdXNwZW5k IGlzIGluLXByb2dyZXNzLCB0aGUgY29yZSBmb3JjaWJseSB0YWtlcyBhIHJ1bnRpbWUKPiByZWZl cmVuY2Ugb24gYWxsIGRldmljZXMgLSBwcmV2ZW50aW5nIGFueSBwbV9ydW50aW1lIHBhdGhzIGZy b20KPiBydW5uaW5nLgoKSSB0aG91Z2h0IHRoaXMgd2FzIGZpeGVkLiBBdCBsZWFzdCBJIHJlbWVt YmVyIHdlIGhhZCB0byBhZGQgc29tZSBzcGVjaWFsCmNhbGxzIHRvIGk5MTUgdG8gb3B0IG91dCBv ZiB0aGUgImRvIHJ1bnRpbWUgcG0gYXMgcGFydCBvZiBzdXNwZW5kL3Jlc3VtZSIKYmVoYXZpb3Vy LCBzaW5jZSBpdCBkb2Vzbid0IG1hdGNoIHdoYXQgd2UgbmVlZGVkLgoKU2VlCgpjb21taXQgYWFl NDUxOGIzMTI0YjI5ZjhkYzgxYzgyOWM3MDRmZDJkZjcyZTk4YgpBdXRob3I6IFJhZmFlbCBKLiBX eXNvY2tpIDxyYWZhZWwuai53eXNvY2tpQGludGVsLmNvbT4KRGF0ZTogICBGcmkgTWF5IDE2IDAy OjQ2OjUwIDIwMTQgKzAyMDAKCiAgICBQTSAvIHNsZWVwOiBNZWNoYW5pc20gdG8gYXZvaWQgcmVz dW1pbmcgcnVudGltZS1zdXNwZW5kZWQgZGV2aWNlcyB1bm5lY2Vzc2FyaWx5CgpTbyBJIHRob3Vn aHQgdGhpcyBzdHVmZiB3YXMgc3VwcG9zZWQgdG8gd29yayBub3cuIEFkZGluZyBSYWZhZWwgV3l6 b2NraSwKaGUncyBkb25lIHBsZW50eSBwcmVzZW50YXRpb25zIHJlY2VudGx5IGFib3V0IGV4YWN0 bHkgdGhpcy4KCj4gVGhpcyBtZWFucyB0aGF0IGFmdGVyIHRoZSBDUlRDIGlzIGRpc2FibGVkIGlu IC0+c3VzcGVuZCgpLCBvdXIgbm9ybWFsCj4gcG1fcnVudGltZSBwYXRoIHdpbGwgbm90IGJlIGlu dm9rZWQsIGFuZCBzbyB0aGUgdGhpbmdzIGRvbmUgaW4KPiBtYWxpZHBfcnVudGltZV9wbV9zdXNw ZW5kKCkgd2lsbCBuZXZlciBoYXBwZW4uCj4gCj4gV2Ugd2VyZSBqdXN0IGZvbGxvd2luZyB0aGUg YWR2aWNlIGluIHRoZSBrZXJuZWwtZG9jIHRvIGRlYWwgd2l0aCB0aGlzLgo+IAo+IFRoZSBhbHRl cm5hdGl2ZSB3b3VsZCBiZSB0byBjYWxsIG1hbGlkcF9ydW50aW1lX3BtX3tzdXNwZW5kLHJlc3Vt ZX0KPiBmcm9tIHRoZSAibm90IGxhdGUiIGhvb2tzLCBidXQgSSdkIGFzayB3aHk/Cj4gCj4gPiBB bHNvLCB5b3Ugc3RpbGwgaGF2ZW4ndCBleHBsYWluZWQgd2hhdCBleGFjdGx5IHRoZSBkZXBlbmRl bmN5IGlzLgo+IAo+IEJlY2F1c2UgdGhlcmUgaXNuJ3Qgb25lIDotKQoKSG0sIGlmIHRoZXJlIHJl YWxseSBpc24ndCBvbmUsIHRoZW4gSSBndWVzcyBpdCdzIG9rLiBCdXQgaXQncyB3YXkgdG9vIGVh c3kKdG8gc2NyZXcgdGhpcyB1cCwgaGF2ZSBhbiBhY2NpZGVudGFsIGRlcGVuY3kgb24gYSBkaWZm ZXJlbnQgZGV2aWNlLiBBbmQKdGhlbiB5b3UgdHJ5IHRvIGZpeCB0aGlzIHVwLiBIYXZpbmcgYSBz dXNwZW5kX2xhdGUgaG9vayBzdGlsbCBzbWVsbHMgZmlzaHkKdG8gbWUsIGJ1dCBJIG1pZ2h0IGJl IG91dCBvZiB0aGUgbG9vcC4KLURhbmllbAoKCgo+IAo+IFRoYW5rcywKPiAtQnJpYW4KPiAKPiA+ IC1EYW5pZWwKPiA+IAo+ID4gPiAKPiA+ID4gPiA+PiA+IC0tLQo+ID4gPiA+ID4+ID4gIGRyaXZl cnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jIHwgMTcgKysrKysrKysrKysrKysrKysKPiA+ID4g PiA+PiA+ICAxIGZpbGUgY2hhbmdlZCwgMTcgaW5zZXJ0aW9ucygrKQo+ID4gPiA+ID4+ID4KPiA+ ID4gPiA+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYXJtL21hbGlkcF9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFsaWRwX2Rydi5jCj4gPiA+ID4gPj4gPiBpbmRleCBiZDQ0 YTZkLi5mNjEyNGQ4IDEwMDY0NAo+ID4gPiA+ID4+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Fy bS9tYWxpZHBfZHJ2LmMKPiA+ID4gPiA+PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9hcm0vbWFs aWRwX2Rydi5jCj4gPiA+ID4gPj4gPiBAQCAtNzY2LDggKzc2NiwyNSBAQCBzdGF0aWMgaW50IF9f bWF5YmVfdW51c2VkIG1hbGlkcF9wbV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiA+ ID4+ID4gICAgIHJldHVybiAwOwo+ID4gPiA+ID4+ID4gIH0KPiA+ID4gPiA+PiA+Cj4gPiA+ID4g Pj4gPiArc3RhdGljIGludCBfX21heWJlX3VudXNlZCBtYWxpZHBfcG1fc3VzcGVuZF9sYXRlKHN0 cnVjdCBkZXZpY2UgKmRldikKPiA+ID4gPiA+PiA+ICt7Cj4gPiA+ID4gPj4gPiArICAgaWYgKCFw bV9ydW50aW1lX3N0YXR1c19zdXNwZW5kZWQoZGV2KSkgewo+ID4gPiA+ID4+ID4gKyAgICAgICAg ICAgbWFsaWRwX3J1bnRpbWVfcG1fc3VzcGVuZChkZXYpOwo+ID4gPiA+ID4+ID4gKyAgICAgICAg ICAgcG1fcnVudGltZV9zZXRfc3VzcGVuZGVkKGRldik7Cj4gPiA+ID4gPj4gPiArICAgfQo+ID4g PiA+ID4+ID4gKyAgIHJldHVybiAwOwo+ID4gPiA+ID4+ID4gK30KPiA+ID4gPiA+PiA+ICsKPiA+ ID4gPiA+PiA+ICtzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG1hbGlkcF9wbV9yZXN1bWVfZWFy bHkoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gPiA+ID4+ID4gK3sKPiA+ID4gPiA+PiA+ICsgICBt YWxpZHBfcnVudGltZV9wbV9yZXN1bWUoZGV2KTsKPiA+ID4gPiA+PiA+ICsgICBwbV9ydW50aW1l X3NldF9hY3RpdmUoZGV2KTsKPiA+ID4gPiA+PiA+ICsgICByZXR1cm4gMDsKPiA+ID4gPiA+PiA+ ICt9Cj4gPiA+ID4gPj4gPiArCj4gPiA+ID4gPj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZf cG1fb3BzIG1hbGlkcF9wbV9vcHMgPSB7Cj4gPiA+ID4gPj4gPiAgICAgU0VUX1NZU1RFTV9TTEVF UF9QTV9PUFMobWFsaWRwX3BtX3N1c3BlbmQsIG1hbGlkcF9wbV9yZXN1bWUpIFwKPiA+ID4gPiA+ PiA+ICsgICBTRVRfTEFURV9TWVNURU1fU0xFRVBfUE1fT1BTKG1hbGlkcF9wbV9zdXNwZW5kX2xh dGUsIG1hbGlkcF9wbV9yZXN1bWVfZWFybHkpIFwKPiA+ID4gPiA+PiA+ICAgICBTRVRfUlVOVElN RV9QTV9PUFMobWFsaWRwX3J1bnRpbWVfcG1fc3VzcGVuZCwgbWFsaWRwX3J1bnRpbWVfcG1fcmVz dW1lLCBOVUxMKQo+ID4gPiA+ID4+ID4gIH07Cj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gLS0K PiA+ID4gPiA+PiA+IDIuNy40Cj4gPiA+ID4gPj4gPgo+ID4gPiA+ID4+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+ID4gPiA+PiA+IGRyaS1kZXZl bCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+PiA+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKPiA+ID4gPiA+PiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCj4gPiA+ID4gPj4KPiA+ID4gPiA+PiAtLQo+ID4gPiA+ID4+IERhbmll bCBWZXR0ZXIKPiA+ID4gPiA+PiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24K PiA+ID4gPiA+PiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4gPiA+ID4+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+ID4gPiA+ID4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ ID4gPiA+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2Ry aS1kZXZlbAo+ID4gPiA+ID4gSU1QT1JUQU5UIE5PVElDRTogVGhlIGNvbnRlbnRzIG9mIHRoaXMg ZW1haWwgYW5kIGFueSBhdHRhY2htZW50cyBhcmUgY29uZmlkZW50aWFsIGFuZCBtYXkgYWxzbyBi ZSBwcml2aWxlZ2VkLiBJZiB5b3UgYXJlIG5vdCB0aGUgaW50ZW5kZWQgcmVjaXBpZW50LCBwbGVh c2Ugbm90aWZ5IHRoZSBzZW5kZXIgaW1tZWRpYXRlbHkgYW5kIGRvIG5vdCBkaXNjbG9zZSB0aGUg Y29udGVudHMgdG8gYW55IG90aGVyIHBlcnNvbiwgdXNlIGl0IGZvciBhbnkgcHVycG9zZSwgb3Ig c3RvcmUgb3IgY29weSB0aGUgaW5mb3JtYXRpb24gaW4gYW55IG1lZGl1bS4gVGhhbmsgeW91Lgo+ ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K PiA+ID4gPiA+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+ID4gPiA+IGRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+Cj4gPiA+ ID4gLS0KPiA+ID4gPiBEYW5pZWwgVmV0dGVyCj4gPiA+ID4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gPiA+ID4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxv Zy5mZndsbC5jaAo+ID4gCj4gPiAtLSAKPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNvZnR3YXJlIEVu Z2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApE YW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8v YmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK