From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 5/5] drm/msm: subclass work object for vblank events Date: Mon, 3 Dec 2018 09:21:55 -0500 Message-ID: <20181203142155.GL154160@art_vandelay> References: <1541543790-748-1-git-send-email-jsanka@codeaurora.org> <1541543790-748-5-git-send-email-jsanka@codeaurora.org> <20181107155551.GZ154160@art_vandelay> <86c75419b86da1a3f538638ef0004203@codeaurora.org> <20181129221511.GI154160@art_vandelay> <126d5b3a93c1827aaf10cd64486d4967@codeaurora.org> <20181130200711.GK154160@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: Sean Paul , robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, jcrouse-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gRnJpLCBOb3YgMzAsIDIwMTggYXQgMDQ6MjE6MTVQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0xMS0zMCAxMjowNywgU2VhbiBQYXVsIHdyb3RlOgo+ID4gT24g RnJpLCBOb3YgMzAsIDIwMTggYXQgMTE6NDU6NTVBTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4g d3JvdGU6Cj4gPiA+IE9uIDIwMTgtMTEtMjkgMTQ6MTUsIFNlYW4gUGF1bCB3cm90ZToKPiA+ID4g PiBPbiBUdWUsIE5vdiAyMCwgMjAxOCBhdCAwMjowNDoxNFBNIC0wODAwLCBKZXlrdW1hciBTYW5r YXJhbiB3cm90ZToKPiA+ID4gPiA+IE9uIDIwMTgtMTEtMDcgMDc6NTUsIFNlYW4gUGF1bCB3cm90 ZToKPiA+ID4gPiA+ID4gT24gVHVlLCBOb3YgMDYsIDIwMTggYXQgMDI6MzY6MzBQTSAtMDgwMCwg SmV5a3VtYXIgU2Fua2FyYW4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gbXNtIG1haW50YWlucyBhIHNl cGFyYXRlIHN0cnVjdHVyZSB0byBkZWZpbmUgdmJsYW5rCj4gPiA+ID4gPiA+ID4gd29yayBkZWZp bml0aW9ucyBhbmQgYSBsaXN0IHRvIHRyYWNrIGV2ZW50cyBzdWJtaXR0ZWQKPiA+ID4gPiA+ID4g PiB0byB0aGUgd29ya3F1ZXVlLiBXZSBjYW4gYXZvaWQgdGhpcyByZWR1bmRhbnQgbGlzdAo+ID4g PiA+ID4gPiA+IGFuZCBpdHMgcHJvdGVjdGlvbiBtZWNoYW5pc20sIGlmIHdlIHN1YmNsYXNzIHRo ZQo+ID4gPiA+ID4gPiA+IHdvcmsgb2JqZWN0IHRvIGVuY2Fwc3VsYXRlIHZibGFuayBldmVudCBw YXJhbWV0ZXJzLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gY2hhbmdlcyBpbiB2MjoKPiA+ ID4gPiA+ID4gPiAJLSBzdWJjbGFzcyBvcHRpbWl6YXRpb24gb24gc3lzdGVtIHdxIChTZWFuIFBh dWwpCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IEkgd291bGRuJ3QgZG8gaXQgbGlrZSB0aGlzLCB0 YmguIE9uZSBwcm9ibGVtIGlzIHRoYXQgeW91J3ZlIGxvc3QKPiA+IHlvdXIKPiA+ID4gPiA+ID4g Zmx1c2goKSBvbgo+ID4gPiA+ID4gPiB1bmJpbmQsIHNvIHRoZXJlJ3Mgbm8gd2F5IHRvIGtub3cg aWYgeW91IGhhdmUgd29ya2VycyBpbiB0aGUgd2lsZAo+ID4gPiA+ID4gPiB3YWl0aW5nCj4gPiA+ ID4gPiA+IHRvCj4gPiA+ID4gPiA+IGVuYWJsZS9kaXNhYmxlIHZibGFuay4KPiA+ID4gPiA+ID4K PiA+ID4gPiA+ID4gQW5vdGhlciBpc3N1ZXMgaXMgdGhhdCBBRkFJQ1QsIHdlIGRvbid0IG5lZWQg YSBxdWV1ZSBvZgo+ID4gPiA+ID4gPiBlbmFibGVzL2Rpc2FibGVzLAo+ID4gPiA+ID4gPiBidXQK PiA+ID4gPiA+ID4gcmF0aGVyIGp1c3QgdGhlIGxhc3QgcmVxdWVzdGVkIHN0YXRlIChpZTogc2hv dWxkIHdlIGJlIG9uIG9yIG9mZikuCj4gPiBTbwo+ID4gPiA+ID4gPiB0aGluZ3MKPiA+ID4gPiA+ ID4gZG9uJ3QgbmVlZCB0byBiZSB0aGlzIGNvbXBsaWNhdGVkIChhbmQgd2UncmUgcG9zc2libHkg dGhyYXNoaW5nCj4gPiB2YmxhbmsKPiA+ID4gPiA+ID4gb24vb2ZmCj4gPiA+ID4gPiA+IGZvciBu byByZWFzb24pLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJJ20gc3RpbGwgb2YgdGhlIG1pbmQg dGhhdCB5b3Ugc2hvdWxkIGp1c3QgbWFrZSB0aGlzIHN5bmNocm9ub3VzCj4gPiBhbmQKPiA+ID4g PiBiZQo+ID4gPiA+ID4gPiBkb25lCj4gPiA+ID4gPiA+IHdpdGggdGhlIHRocmVhZHMgKGVzcGVj aWFsbHkgc2luY2Ugd2UncmUgc3RpbGwKPiA+IHVuY292ZXJpbmcvaW50cm9kdWNpbmcKPiA+ID4g PiA+ID4gcmFjZXMhKS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+IFdoaWxlIHNjb3Bpbmcgb3V0IHRo ZSBlZmZvcnQgdG8gbWFrZSB2YmxhbmsgZXZlbnRzIHN5bmNocm9ub3VzLCBJCj4gPiA+ID4gPiBm b3VuZAo+ID4gPiA+ID4gdGhhdCB0aGUgc3BpbmxvY2sgbG9ja2luZyBvcmRlciBvZiB2Ymxhbmsg cmVxdWVzdCBzZXF1ZW5jZSBhbmQKPiA+IHZibGFuawo+ID4gPiA+ID4gY2FsbGJhY2sKPiA+ID4g PiA+IHNlcXVlbmNlcyBhcmUgdGhlIG9wcG9zaXRlLgo+ID4gPiA+ID4KPiA+ID4gPiA+IEluIERQ VSwgZHJtX3ZibGFua19lbmFibGUgYWNxdWlyZXMgdmJsYW5rX3RpbWVfbG9jayBiZWZvcmUKPiA+ IHJlZ2lzdGVyaW5nCj4gPiA+ID4gPiB0aGUgY3J0YyB0byBlbmNvZGVyIHdoaWNoIGhhcHBlbnMg YWZ0ZXIgYWNxdWlyaW5nIGVuY29kZXJfc3BpbmxvY2suCj4gPiA+ID4gPiBCdXQKPiA+ID4gPiA+ IHRoZSB2YmxhbmtfY2FsbGJhY2sgYWNxdWlyZXMgZW5jb2Rlcl9zcGlubG9jayBiZWZvcmUgYWNj ZXNzaW5nIHRoZQo+ID4gPiA+ID4gcmVnaXN0ZXJlZAo+ID4gPiA+ID4gY3J0YyBhbmQgY2FsbGlu ZyBpbnRvIGRybV92YmxhbmtfaGFuZGxlciB3aGljaCB0cmllcyB0byBhY3F1aXJlCj4gPiA+ID4g PiB2YmxhbmtfdGltZV9sb2NrLgo+ID4gPiA+ID4gQWNxdWlyaW5nIGJvdGggdmJsYW5rX3RpbWVf bG9jayBhbmQgZW5jb2Rlcl9zcGlubG9jayBpbiB0aGUgc2FtZQo+ID4gPiA+ID4gdGhyZWFkCj4g PiA+ID4gPiBpcyBsZWFkaW5nIHRvIGRlYWRsb2NrLgo+ID4gPiA+Cj4gPiA+ID4gSG1tLCBJJ20g bm90IHN1cmUgSSBmb2xsb3cuIEFyZSB5b3Ugc2VlaW5nIGlzc3VlcyB3aGVyZSBpcnEgb3Zlcmxh cHMKPiA+ID4gPiB3aXRoCj4gPiA+ID4gZW5hYmxlL2Rpc2FibGU/IEkgaGFja2VkIGluIHN5bmMg dmJsYW5rIGVuYWJsZS9kaXNhYmxlIHF1aWNrbHkgdG8gc2VlCj4gPiBpZgo+ID4gPiA+IEkKPiA+ ID4gPiBjb3VsZAo+ID4gPiA+IHJlcHJvZHVjZSB3aGF0IHlvdSdyZSBzZWVpbmcsIGJ1dCB0aGlu Z3Mgc2VlbWVkIHdlbGwgYmVoYXZlZC4KPiA+ID4gPgo+ID4gPiAKPiA+ID4gVGhlIHJhY2UgaXMg YmV0d2VlbiBkcm1fdmJsYW5rX2dldC9wdXQgYW5kIHZibGFua19oYW5kbGVyIGNvbnRleHRzLgo+ ID4gPiAKPiA+ID4gV2hlbiBtYWRlIHN5bmNocm9ub3VzOgo+ID4gPiAKPiA+ID4gd2hpbGUgY2Fs bGluZyBkcm1fdmJsYW5rX2dldCwgdGhlIGNhbGxzdGFjayBsb29rcyBsaWtlIGJlbG93Ogo+ID4g PiBkcm1fdmJsYW5rX2dldCAtPiBkcm1fdmJsYW5rX2VuYWJsZSAoYWNxdWlyZXMgdmJsYW5rX3Rp bWVfbG9jaykgLT4KPiA+ID4gX19lbmFibGVfdmJsYW5rIC0+IGRwdV9jcnRjX3ZibGFuayAtPgo+ ID4gPiBkcHVfZW5jb2Rlcl90b2dnbGVfdmJsYW5rX2Zvcl9jcnRjCj4gPiA+ICh0cmllcyB0byBh Y3F1aXJlIGVuY19zcGlubG9jaykKPiA+ID4gCj4gPiA+IEluIHZibGFuayBoYW5kbGVyLCB0aGUg Y2FsbCBzdGFjayB3aWxsIGJlOgo+ID4gPiBkcHVfZW5jb2Rlcl9waHlzX3ZpZF92YmxhbmtfaXJx IC0+IGRwdV9lbmNvZGVyX3ZibGFua19jYWxsYmFjawo+ID4gPiAoYWNxdWlyZXMKPiA+ID4gZW5j X3NwaW5sb2NrKSAtPiBkcHVfY3J0Y192YmxhbmtfY2FsbGJhY2sgLT4gZHJtX2hhbmRsZV92Ymxh bmsKPiA+ID4gKHRyaWVzIHRvCj4gPiA+IGFjcXVpcmUgdmJsYW5rX3RpbWVfbG9jaykKPiA+IAo+ ID4gSG1tLCBJJ20gbm90IHN1cmUgaG93IHRoaXMgY2FuIGhhcHBlbi4gV2UgYWNxdWlyZSBhbmQg cmVsZWFzZSB0aGUKPiA+IGVuY19zcGlubG9jawo+ID4gYmVmb3JlIGVuYWJsaW5nIHRoZSBpcnEs IHllcyB3ZSB3aWxsIGhvbGQgb24gdG8gdGhlIHZibF90aW1lX2xvY2ssIGJ1dAo+ID4gd2UKPiA+ IHNob3VsZG4ndCBiZSB0cnlpbmcgdG8gcmVhY3F1aXJlIGFuIGVuY29kZXIncyBzcGlubG9jayBh ZnRlciB3ZSd2ZQo+ID4gZW5hYmxlZAo+ID4gaXQuCj4gSW4gdGhlIHN5bmNocm9ub3VzIGFwcHJv YWNoIGRwdV9lbmNvZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2NydGMod2hpY2gKPiBhY3F1aXJlcyB0 aGUgZW5jX3NwaW5sb2NrKSB3aWxsIGJlIGNhbGxlZCB3aGlsZSB3ZQo+IGFyZSBob2xkaW5nIHRo ZSB2YmxfdGltZV9sb2NrLgo+IAo+ID4gSSBkb24ndCBrbm93IGhvdyB0aGF0IGNhbiBkZWFkbG9j aywgc2luY2Ugd2Ugc2hvdWxkIG5ldmVyIGJlIHJ1bm5pbmcKPiA+IGVuYWJsZSBhbmQKPiA+IHRo ZSBoYW5kbGVyIGNvbmN1cnJlbnRseS4KPiA+IAo+IEkgYWdyZWUgdGhhdCB2YmxhbmtfaXJxIGhh bmRsZXIgc2hvdWxkIG5vdCBiZSBydW5uaW5nIGJlZm9yZSB0aGUgZW5hYmxlCj4gc2VxdWVuY2Uu IEJ1dAo+IGRvbid0IHlvdSBleHBlY3QgdGhlIGhhbmRsZXIgdG8gYmUgcnVubmluZyB3aGlsZSBj YWxsaW5nIHRoZSB2YmxhbmtfZGlzYWJsZQo+IHNlcXVlbmNlPwoKVGhpcyBpcyBhbiBlbnRpcmVs eSBkaWZmZXJlbnQgcHJvYmxlbSB0aG91Z2guIEl0J3MgYWxzbyBvbmUgdGhhdCBpcyBlYXNpZXIg dG8KZml4LiBJIHRoaW5rIHdlIGNvdWxkIHByb2JhYmx5IGdyYWIgdGhlIGVuY19zcGlubG9jayBp biBkaXNhYmxlIGFuZCBjbGVhciB0aGUKY3J0YyBwb2ludGVyLgoKV2hhdCBJJ20gZ2V0dGluZyBh dCBpcyB0aGF0IHRoZXJlJ3Mgbm8gZnVuZGFtZW50YWwgcmVhc29uIHdoeSB3ZSBuZWVkIHRvIGhh dmUKYXN5bmMgdmJsYW5rIGVuYWJsZS9kaXNhYmxlLgoKU2VhbgoKPiB2YmwgZGlzYWJsZSB3aWxs IHRyeSB0byBhY3F1aXJlIHRoZSBsb2NrcyBpbiB0aGUgb3Bwb3NpdGUgb3JkZXIgdG8gdGhhdCBv Zgo+IGlycV9oYW5kbGVyIGFuZCB0aGUKPiBzYW1lIGlzc3VlIGlzIGJvdW5kIHRvIGhhcHBlbi4K PiAKPiBXaXRoIHlvdXIgcGF0Y2gsIHlvdSBzaG91bGQgYmUgYWJsZSB0byBzaW11bGF0ZSB0aGlz IGRlYWRsb2NrIGlmIHlvdSBjYW4KPiBpbmplY3QgYSBkZWxheQo+IGJ5IGFkZGluZyBhIHByX2Vy ciBsb2cgaW4gdmJsYW5rX2N0cmxfcXVldWVfd29yawo+IAo+IFRoYW5rcywKPiBKZXlrdW1hciBT Lgo+IAo+ID4gVGhlIG9ubHkgdGhpbmcgSSBjYW4gdGhpbmsgb2YgaXMgdGhhdCB0aGUgdmJsYW5r IGludGVycnVwdHMgYXJlIGZpcmluZwo+ID4gYWZ0ZXIKPiA+IHZibGFuayBoYXMgYmVlbiBkaXNh YmxlZD8gSW4gdGhhdCBjYXNlLCBpdCBzZWVtcyBsaWtlIHdlIHNob3VsZCBwcm9wZXJseQo+ID4g Zmx1c2gKPiA+IHRoZW0uCj4gPiAKPiA+IFNlYW4KPiA+IAo+ID4gCj4gPiA+IAo+ID4gPiAKPiA+ ID4gPiBJIGRvIHNlZSB0aGF0IHRoZXJlIGlzIGEgY2hhbmNlIHRvIGNhbGwgZHJtX2hhbmRsZV92 YmxhbmsoKSB3aGlsZQo+ID4gPiA+IGhvbGRpbmcKPiA+ID4gPiBlbmNfc3BpbmxvY2ssIGJ1dCBj b3VsZG4ndCBmaW5kIGFueSBvYnZpb3VzIGxvY2sgcmVjdXJzaW9uIHRoZXJlLgo+ID4gPiA+Cj4g PiA+ID4gTWF5YmUgYSBjYWxsc3RhY2sgb3IgbG9ja2RlcCBzcGxhdCB3b3VsZCBoZWxwPwo+ID4g PiA+Cj4gPiA+ID4gU2Vhbgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiBIZXJlJ3MgbXkgaGFjayB0 byBieXBhc3MgdGhlIGRpc3BsYXkgdGhyZWFkOgo+ID4gPiA+Cj4gPiA+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0v bXNtL21zbV9kcnYuYwo+ID4gPiA+IGluZGV4IDljOWY3ZmY2OTYwYjM4Li41YTNjYWM1ODI1MzE5 ZSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4g PiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4gQEAgLTI0Miwy NCArMjQyLDE5IEBAIHN0YXRpYyB2b2lkIHZibGFua19jdHJsX3dvcmtlcihzdHJ1Y3QKPiA+IGt0 aHJlYWRfd29yawo+ID4gPiA+ICp3b3JrKQo+ID4gPiA+ICBzdGF0aWMgaW50IHZibGFua19jdHJs X3F1ZXVlX3dvcmsoc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiwKPiA+ID4gPiAgCQkJCQlp bnQgY3J0Y19pZCwgYm9vbCBlbmFibGUpCj4gPiA+ID4gIHsKPiA+ID4gPiArCXN0cnVjdCBtc21f a21zICprbXMgPSBwcml2LT5rbXM7Cj4gPiA+ID4gIAlzdHJ1Y3QgbXNtX3ZibGFua19jdHJsICp2 YmxfY3RybCA9ICZwcml2LT52YmxhbmtfY3RybDsKPiA+ID4gPiAtCXN0cnVjdCB2YmxhbmtfZXZl bnQgKnZibF9ldjsKPiA+ID4gPiAgCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gPiA+ID4KPiA+ID4g PiAtCXZibF9ldiA9IGt6YWxsb2Moc2l6ZW9mKCp2YmxfZXYpLCBHRlBfQVRPTUlDKTsKPiA+ID4g PiAtCWlmICghdmJsX2V2KQo+ID4gPiA+IC0JCXJldHVybiAtRU5PTUVNOwo+ID4gPiA+ICsJc3Bp bl9sb2NrX2lycXNhdmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiA+ID4KPiA+ID4gPiAt CXZibF9ldi0+Y3J0Y19pZCA9IGNydGNfaWQ7Cj4gPiA+ID4gLQl2YmxfZXYtPmVuYWJsZSA9IGVu YWJsZTsKPiA+ID4gPiArCWlmIChlbmFibGUpCj4gPiA+ID4gKwkJa21zLT5mdW5jcy0+ZW5hYmxl X3ZibGFuayhrbXMsIHByaXYtPmNydGNzW2NydGNfaWRdKTsKPiA+ID4gPiArCWVsc2UKPiA+ID4g PiArCQlrbXMtPmZ1bmNzLT5kaXNhYmxlX3ZibGFuayhrbXMsIHByaXYtPmNydGNzW2NydGNfaWRd KTsKPiA+ID4gPgo+ID4gPiA+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJnZibF9jdHJsLT5sb2NrLCBm bGFncyk7Cj4gPiA+ID4gLQlsaXN0X2FkZF90YWlsKCZ2YmxfZXYtPm5vZGUsICZ2YmxfY3RybC0+ ZXZlbnRfbGlzdCk7Cj4gPiA+ID4gIAlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZ2YmxfY3RybC0+ bG9jaywgZmxhZ3MpOwo+ID4gPiA+Cj4gPiA+ID4gLQlrdGhyZWFkX3F1ZXVlX3dvcmsoJnByaXYt PmRpc3BfdGhyZWFkW2NydGNfaWRdLndvcmtlciwKPiA+ID4gPiAtCQkJJnZibF9jdHJsLT53b3Jr KTsKPiA+ID4gPiAtCj4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiAgfQo+ID4gPiA+Cj4gPiA+ IEV2ZW4gd2l0aCB5b3VyIHBhdGNoIGFib3ZlLCBJIHNlZSBmcmFtZSBpcyBnZXR0aW5nIHN0dWNr IGJ1dCBpdAo+ID4gPiByZWNvdmVycwo+ID4gaW4KPiA+ID4gYSB3aGlsZS4KPiA+ID4gVGhlIHBh dGNoIEkgdHJpZWQgd2FzIGFzc2lnbmluZwo+ID4gY3J0Yy0+ZnVuY3MtPmVuYWJsZV92Ymxhbmsv ZGlzYWJsZV92Ymxhbmsgc28KPiA+ID4gdGhhdAo+ID4gPiBfX2VuYWJsZV92YmxhbmsgY2FuIGNh bGwgY3J0YyBkaXJlY3RseS4gQnV0IHRoZSBhYm92ZSBjYWxsc3RhY2sgaXMKPiA+ID4gc3RpbGwK PiA+ID4gdmFsaWQgZm9yIHlvdXIgcGF0Y2guCj4gPiA+IAo+ID4gPiBUaGFua3MsCj4gPiA+IEpl eWt1bWFyIFMuCj4gPiA+ID4KPiA+ID4gPgo+ID4gPiA+ID4KPiA+ID4gPiA+IEluIE1EUDUsIEkg c2VlIHRoZSBzYW1lIHBhdHRlcm4gYmV0d2VlbiB2YmxhbmtfdGltZV9sb2NrIGFuZAo+ID4gbGlz dF9sb2NrCj4gPiA+ID4gd2hpY2gKPiA+ID4gPiA+IGlzIHVzZWQgdG8gdHJhY2sgdGhlIGlycSBo YW5kbGVycy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBJIGJlbGlldmUgdGhhdCBleHBsYWlucyB3aHkg bXNtX2RydiBpcyBxdWV1aW5nIHRoZSB2YmxhbmsKPiA+ID4gPiA+IGVuYWJsZS9kaXNhYmxlCj4g PiA+ID4gPiB3b3JrcyB0byBXUSBhZnRlciBhY3F1aXJpbmcgdmJsYW5rX3RpbWVfbG9jay4KPiA+ ID4gPiA+Cj4gPiA+ID4gPiBUaGFua3MsCj4gPiA+ID4gPiBKZXlrdW1hciBTLgo+ID4gPiA+ID4K PiA+ID4gPiA+ID4gU2Vhbgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4g U2lnbmVkLW9mZi1ieTogSmV5a3VtYXIgU2Fua2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4K PiA+ID4gPiA+ID4gPiAtLS0KPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL21zbS9tc21f ZHJ2LmMgfCA2Nwo+ID4gPiA+ID4gPiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gPiA+ID4gPiA+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oIHwg IDcgLS0tLS0KPiA+ID4gPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCsp LCA1NCBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4gPiA+ID4gPiBiL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4gPiA+ID4gaW5kZXggNmQ2YzczYi4uOGRhNWJlMiAx MDA2NDQKPiA+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ ID4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4g PiA+ID4gQEAgLTIwMyw2MSArMjAzLDQ0IEBAIHUzMiBtc21fcmVhZGwoY29uc3Qgdm9pZCBfX2lv bWVtICphZGRyKQo+ID4gPiA+ID4gPiA+ICAJcmV0dXJuIHZhbDsKPiA+ID4gPiA+ID4gPiAgfQo+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLXN0cnVjdCB2YmxhbmtfZXZlbnQgewo+ID4gPiA+ ID4gPiA+IC0Jc3RydWN0IGxpc3RfaGVhZCBub2RlOwo+ID4gPiA+ID4gPiA+ICtzdHJ1Y3QgbXNt X3ZibGFua193b3JrIHsKPiA+ID4gPiA+ID4gPiArCXN0cnVjdCB3b3JrX3N0cnVjdCB3b3JrOwo+ ID4gPiA+ID4gPiA+ICAJaW50IGNydGNfaWQ7Cj4gPiA+ID4gPiA+ID4gIAlib29sIGVuYWJsZTsK PiA+ID4gPiA+ID4gPiArCXN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4gPiA+ID4gPiA+ ID4gIH07Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAgc3RhdGljIHZvaWQgdmJsYW5rX2N0 cmxfd29ya2VyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKPiA+ID4gPiA+ID4gPiAgewo+ID4g PiA+ID4gPiA+IC0Jc3RydWN0IG1zbV92YmxhbmtfY3RybCAqdmJsX2N0cmwgPSBjb250YWluZXJf b2Yod29yaywKPiA+ID4gPiA+ID4gPiAtCQkJCQkJc3RydWN0Cj4gPiBtc21fdmJsYW5rX2N0cmws Cj4gPiA+ID4gPiA+IHdvcmspOwo+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IG1zbV9kcm1fcHJpdmF0 ZSAqcHJpdiA9IGNvbnRhaW5lcl9vZih2YmxfY3RybCwKPiA+ID4gPiA+ID4gPiAtCQkJCQlzdHJ1 Y3QgbXNtX2RybV9wcml2YXRlLAo+ID4gPiA+ID4gPiB2YmxhbmtfY3RybCk7Cj4gPiA+ID4gPiA+ ID4gKwlzdHJ1Y3QgbXNtX3ZibGFua193b3JrICp2Ymxfd29yayA9IGNvbnRhaW5lcl9vZih3b3Jr LAo+ID4gPiA+ID4gPiA+ICsJCQkJCQlzdHJ1Y3QKPiA+IG1zbV92Ymxhbmtfd29yaywKPiA+ID4g PiA+ID4gd29yayk7Cj4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2 ID0gdmJsX3dvcmstPnByaXY7Cj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgbXNtX2ttcyAqa21zID0g cHJpdi0+a21zOwo+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IHZibGFua19ldmVudCAqdmJsX2V2LCAq dG1wOwo+ID4gPiA+ID4gPiA+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ID4gPiA+ID4gPiAt Cj4gPiA+ID4gPiA+ID4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdz KTsKPiA+ID4gPiA+ID4gPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2YmxfZXYsIHRtcCwK PiA+ICZ2YmxfY3RybC0+ZXZlbnRfbGlzdCwgbm9kZSkKPiA+ID4gPiA+ID4gewo+ID4gPiA+ID4g PiA+IC0JCWxpc3RfZGVsKCZ2YmxfZXYtPm5vZGUpOwo+ID4gPiA+ID4gPiA+IC0JCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiA+ID4gPiA+ID4gLQo+ ID4gPiA+ID4gPiA+IC0JCWlmICh2YmxfZXYtPmVuYWJsZSkKPiA+ID4gPiA+ID4gPiAtCQkJa21z LT5mdW5jcy0+ZW5hYmxlX3ZibGFuayhrbXMsCj4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiBw cml2LT5jcnRjc1t2YmxfZXYtPmNydGNfaWRdKTsKPiA+ID4gPiA+ID4gPiAtCQllbHNlCj4gPiA+ ID4gPiA+ID4gLQkJCWttcy0+ZnVuY3MtPmRpc2FibGVfdmJsYW5rKGttcywKPiA+ID4gPiA+ID4g PiAtCj4gPiA+ID4gPiA+IHByaXYtPmNydGNzW3ZibF9ldi0+Y3J0Y19pZF0pOwo+ID4gPiA+ID4g PiA+Cj4gPiA+ID4gPiA+ID4gLQkJa2ZyZWUodmJsX2V2KTsKPiA+ID4gPiA+ID4gPiAtCj4gPiA+ ID4gPiA+ID4gLQkJc3Bpbl9sb2NrX2lycXNhdmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4g PiA+ID4gPiA+ID4gLQl9Cj4gPiA+ID4gPiA+ID4gKwlpZiAodmJsX3dvcmstPmVuYWJsZSkKPiA+ ID4gPiA+ID4gPiArCQlrbXMtPmZ1bmNzLT5lbmFibGVfdmJsYW5rKGttcywKPiA+ID4gPiA+ID4g cHJpdi0+Y3J0Y3NbdmJsX3dvcmstPmNydGNfaWRdKTsKPiA+ID4gPiA+ID4gPiArCWVsc2UKPiA+ ID4gPiA+ID4gPiArCQlrbXMtPmZ1bmNzLT5kaXNhYmxlX3ZibGFuayhrbXMsCj4gPiA+ID4gPiA+ IHByaXYtPmNydGNzW3ZibF93b3JrLT5jcnRjX2lkXSk7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4g PiA+ID4gPiA+ID4gKwlrZnJlZSh2Ymxfd29yayk7Cj4gPiA+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ICBzdGF0aWMgaW50IHZibGFua19jdHJsX3F1ZXVlX3dvcmsoc3Ry dWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdiwKPiA+ID4gPiA+ID4gPiAgCQkJCQlpbnQgY3J0Y19p ZCwgYm9vbCBlbmFibGUpCj4gPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gPiAtCXN0cnVjdCBt c21fdmJsYW5rX2N0cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJsOwo+ID4gPiA+ID4g PiA+IC0Jc3RydWN0IHZibGFua19ldmVudCAqdmJsX2V2Owo+ID4gPiA+ID4gPiA+IC0JdW5zaWdu ZWQgbG9uZyBmbGFnczsKPiA+ID4gPiA+ID4gPiArCXN0cnVjdCBtc21fdmJsYW5rX3dvcmsgKnZi bF93b3JrOwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLQl2YmxfZXYgPSBremFsbG9jKHNp emVvZigqdmJsX2V2KSwgR0ZQX0FUT01JQyk7Cj4gPiA+ID4gPiA+ID4gLQlpZiAoIXZibF9ldikK PiA+ID4gPiA+ID4gPiArCXZibF93b3JrID0ga3phbGxvYyhzaXplb2YoKnZibF93b3JrKSwgR0ZQ X0FUT01JQyk7Cj4gPiA+ID4gPiA+ID4gKwlpZiAoIXZibF93b3JrKQo+ID4gPiA+ID4gPiA+ICAJ CXJldHVybiAtRU5PTUVNOwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLQl2YmxfZXYtPmNy dGNfaWQgPSBjcnRjX2lkOwo+ID4gPiA+ID4gPiA+IC0JdmJsX2V2LT5lbmFibGUgPSBlbmFibGU7 Cj4gPiA+ID4gPiA+ID4gKwlJTklUX1dPUksoJnZibF93b3JrLT53b3JrLCB2YmxhbmtfY3RybF93 b3JrZXIpOwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLQlzcGluX2xvY2tfaXJxc2F2ZSgm dmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+ID4gPiAtCWxpc3RfYWRkX3RhaWwoJnZi bF9ldi0+bm9kZSwgJnZibF9jdHJsLT5ldmVudF9saXN0KTsKPiA+ID4gPiA+ID4gPiAtCXNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiA+ID4gPiA+ID4g Kwl2Ymxfd29yay0+Y3J0Y19pZCA9IGNydGNfaWQ7Cj4gPiA+ID4gPiA+ID4gKwl2Ymxfd29yay0+ ZW5hYmxlID0gZW5hYmxlOwo+ID4gPiA+ID4gPiA+ICsJdmJsX3dvcmstPnByaXYgPSBwcml2Owo+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLQlzY2hlZHVsZV93b3JrKCZ2YmxfY3RybC0+d29y ayk7Cj4gPiA+ID4gPiA+ID4gKwlzY2hlZHVsZV93b3JrKCZ2Ymxfd29yay0+d29yayk7Cj4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAgCXJldHVybiAwOwo+ID4gPiA+ID4gPiA+ICB9Cj4gPiA+ ID4gPiA+ID4gQEAgLTI2OSwxNCArMjUyLDEzIEBAIHN0YXRpYyBpbnQgbXNtX2RybV91bmluaXQo c3RydWN0IGRldmljZQo+ID4gKmRldikKPiA+ID4gPiA+ID4gPiAgCXN0cnVjdCBtc21fZHJtX3By aXZhdGUgKnByaXYgPSBkZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4gPiA+ID4gPiAgCXN0cnVjdCBt c21fa21zICprbXMgPSBwcml2LT5rbXM7Cj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgbXNtX21kc3Mg Km1kc3MgPSBwcml2LT5tZHNzOwo+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IG1zbV92YmxhbmtfY3Ry bCAqdmJsX2N0cmwgPSAmcHJpdi0+dmJsYW5rX2N0cmw7Cj4gPiA+ID4gPiA+ID4gLQlzdHJ1Y3Qg dmJsYW5rX2V2ZW50ICp2YmxfZXYsICp0bXA7Cj4gPiA+ID4gPiA+ID4gIAlpbnQgaTsKPiA+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiA+ICAJLyogV2UgbXVzdCBjYW5jZWwgYW5kIGNsZWFudXAgYW55 IHBlbmRpbmcgdmJsYW5rCj4gPiBlbmFibGUvZGlzYWJsZQo+ID4gPiA+ID4gPiA+ICAJICogd29y ayBiZWZvcmUgZHJtX2lycV91bmluc3RhbGwoKSB0byBhdm9pZCB3b3JrCj4gPiByZS1lbmFibGlu ZyBhbgo+ID4gPiA+ID4gPiA+ICAJICogaXJxIGFmdGVyIHVuaW5zdGFsbCBoYXMgZGlzYWJsZWQg aXQuCj4gPiA+ID4gPiA+ID4gIAkgKi8KPiA+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ID4gIAlt c21fZ2VtX3Nocmlua2VyX2NsZWFudXAoZGRldik7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiAgCWRybV9rbXNfaGVscGVyX3BvbGxfZmluaShkZGV2KTsKPiA+ID4gPiA+ID4gPiBAQCAtMjky LDEyICsyNzQsNiBAQCBzdGF0aWMgaW50IG1zbV9kcm1fdW5pbml0KHN0cnVjdCBkZXZpY2UKPiA+ ICpkZXYpCj4gPiA+ID4gPiA+ID4gICNlbmRpZgo+ID4gPiA+ID4gPiA+ICAJZHJtX21vZGVfY29u ZmlnX2NsZWFudXAoZGRldik7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtCWZsdXNoX3dv cmsoJnZibF9jdHJsLT53b3JrKTsKPiA+ID4gPiA+ID4gPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlf c2FmZSh2YmxfZXYsIHRtcCwKPiA+ICZ2YmxfY3RybC0+ZXZlbnRfbGlzdCwgbm9kZSkKPiA+ID4g PiA+ID4gewo+ID4gPiA+ID4gPiA+IC0JCWxpc3RfZGVsKCZ2YmxfZXYtPm5vZGUpOwo+ID4gPiA+ ID4gPiA+IC0JCWtmcmVlKHZibF9ldik7Cj4gPiA+ID4gPiA+ID4gLQl9Cj4gPiA+ID4gPiA+ID4g LQo+ID4gPiA+ID4gPiA+ICAJLyogY2xlYW4gdXAgZXZlbnQgd29ya2VyIHRocmVhZHMgKi8KPiA+ ID4gPiA+ID4gPiAgCWZvciAoaSA9IDA7IGkgPCBwcml2LT5udW1fY3J0Y3M7IGkrKykgewo+ID4g PiA+ID4gPiA+ICAJCWlmIChwcml2LT5ldmVudF90aHJlYWRbaV0udGhyZWFkKSB7Cj4gPiA+ID4g PiA+ID4gQEAgLTQ2OSw5ICs0NDUsNiBAQCBzdGF0aWMgaW50IG1zbV9kcm1faW5pdChzdHJ1Y3Qg ZGV2aWNlICpkZXYsCj4gPiA+ID4gc3RydWN0Cj4gPiA+ID4gPiA+IGRybV9kcml2ZXIgKmRydikK PiA+ID4gPiA+ID4gPiAgCXByaXYtPndxID0gYWxsb2Nfb3JkZXJlZF93b3JrcXVldWUoIm1zbSIs IDApOwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gIAlJTklUX0xJU1RfSEVBRCgmcHJpdi0+ aW5hY3RpdmVfbGlzdCk7Cj4gPiA+ID4gPiA+ID4gLQlJTklUX0xJU1RfSEVBRCgmcHJpdi0+dmJs YW5rX2N0cmwuZXZlbnRfbGlzdCk7Cj4gPiA+ID4gPiA+ID4gLQlJTklUX1dPUksoJnByaXYtPnZi bGFua19jdHJsLndvcmssIHZibGFua19jdHJsX3dvcmtlcik7Cj4gPiA+ID4gPiA+ID4gLQlzcGlu X2xvY2tfaW5pdCgmcHJpdi0+dmJsYW5rX2N0cmwubG9jayk7Cj4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiAgCWRybV9tb2RlX2NvbmZpZ19pbml0KGRkZXYpOwo+ID4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gPiA+ ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiA+ID4gPiA+ID4gPiBpbmRl eCAwNWQzM2E3Li5kNGNiZGUyIDEwMDY0NAo+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9tc20vbXNtX2Rydi5oCj4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZHJ2LmgKPiA+ID4gPiA+ID4gPiBAQCAtNzcsMTIgKzc3LDYgQEAgZW51bSBtc21fbWRw X3BsYW5lX3Byb3BlcnR5IHsKPiA+ID4gPiA+ID4gPiAgCVBMQU5FX1BST1BfTUFYX05VTQo+ID4g PiA+ID4gPiA+ICB9Owo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gLXN0cnVjdCBtc21fdmJs YW5rX2N0cmwgewo+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Cj4gPiA+ ID4gPiA+ID4gLQlzdHJ1Y3QgbGlzdF9oZWFkIGV2ZW50X2xpc3Q7Cj4gPiA+ID4gPiA+ID4gLQlz cGlubG9ja190IGxvY2s7Cj4gPiA+ID4gPiA+ID4gLX07Cj4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ ID4gPiA+ICAjZGVmaW5lIE1TTV9HUFVfTUFYX1JJTkdTIDQKPiA+ID4gPiA+ID4gPiAgI2RlZmlu ZSBNQVhfSF9USUxFU19QRVJfRElTUExBWSAyCj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBA QCAtMjI1LDcgKzIxOSw2IEBAIHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgewo+ID4gPiA+ID4gPiA+ ICAJc3RydWN0IG5vdGlmaWVyX2Jsb2NrIHZtYXBfbm90aWZpZXI7Cj4gPiA+ID4gPiA+ID4gIAlz dHJ1Y3Qgc2hyaW5rZXIgc2hyaW5rZXI7Cj4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiAtCXN0 cnVjdCBtc21fdmJsYW5rX2N0cmwgdmJsYW5rX2N0cmw7Cj4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqcG1fc3RhdGU7Cj4gPiA+ID4gPiA+ID4gIH07Cj4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gPiA+IFRoZSBRdWFsY29tbSBJbm5vdmF0aW9u IENlbnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZQo+ID4gQXVyb3JhCj4gPiA+ID4g PiA+IEZvcnVtLAo+ID4gPiA+ID4gPiA+IGEgTGludXggRm91bmRhdGlvbiBDb2xsYWJvcmF0aXZl IFByb2plY3QKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+ID4gRnJlZWRyZW5vIG1haWxp bmcgbGlzdAo+ID4gPiA+ID4gPiA+IEZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ ID4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ZyZWVkcmVubwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiBKZXlrdW1hciBTCj4g PiA+IAo+ID4gPiAtLQo+ID4gPiBKZXlrdW1hciBTCj4gCj4gLS0gCj4gSmV5a3VtYXIgUwoKLS0g ClNlYW4gUGF1bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWls aW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=