From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Wait for PSR exit before checking for vblank evasion for an atomic update Date: Thu, 3 May 2018 09:58:56 -0700 Message-ID: <20180503165856.GB17530@intel.com> References: <20180430040018.79272-1-tarun.vyas@intel.com> <20180430171933.GI3617@intel.com> <20180502181913.GA14677@otc-chromeosbuild-5> <20180502185143.GN23723@intel.com> <20180502200406.GA3617@intel.com> <20180502223115.GA29751@otc-chromeosbuild-5> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id B89646E6F2 for ; Thu, 3 May 2018 16:58:57 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20180502223115.GA29751@otc-chromeosbuild-5> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tarun Vyas Cc: Deak@otc-chromeosbuild-5, Pandiyan@otc-chromeosbuild-5, Dhinakaran , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXkgMDIsIDIwMTggYXQgMDM6MzE6MTVQTSAtMDcwMCwgVGFydW4gVnlhcyB3cm90 ZToKPiBPbiBXZWQsIE1heSAwMiwgMjAxOCBhdCAwMTowNDowNlBNIC0wNzAwLCBWaXZpLCBSb2Ry aWdvIHdyb3RlOgo+ID4gT24gV2VkLCBNYXkgMDIsIDIwMTggYXQgMDk6NTE6NDNQTSArMDMwMCwg VmlsbGUgU3lyasOkbMOkIHdyb3RlOgo+ID4gPiBPbiBXZWQsIE1heSAwMiwgMjAxOCBhdCAxMTox OToxNEFNIC0wNzAwLCBUYXJ1biBWeWFzIHdyb3RlOgo+ID4gPiA+IE9uIE1vbiwgQXByIDMwLCAy MDE4IGF0IDEwOjE5OjMzQU0gLTA3MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gPiA+IE9u IFN1biwgQXByIDI5LCAyMDE4IGF0IDA5OjAwOjE4UE0gLTA3MDAsIFRhcnVuIFZ5YXMgd3JvdGU6 Cj4gPiA+ID4gPiA+IEZyb206IFRhcnVuIDx0YXJ1bi52eWFzQGludGVsLmNvbT4KPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gVGhlIFBJUEVEU0wgZnJlZXplcyBvbiBQU1IgZW50cnkgYW5kIGlmIFBT UiBoYXNuJ3QgZnVsbHkgZXhpdGVkLCB0aGVuCj4gPiA+ID4gPiA+IHRoZSBwaXBlX3VwZGF0ZV9z dGFydCBjYWxsIHNjaGVkdWxlcyBpdHNlbGYgb3V0IHRvIGNoZWNrIGJhY2sgbGF0ZXIuCj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIENocm9tZU9TLTQuNCBrZXJuZWwsIHdoaWNoIGlzIGZhaXJs eSB1cC10by1kYXRlIHcuci50IGRybS9pOTE1IGJ1dAo+ID4gPiA+ID4gPiBsYWdzIHcuci50IGNv cmUga2VybmVsIGNvZGUsIGhvdCBwbHVnZ2luZyBhbiBleHRlcm5hbCBkaXNwbGF5IHRyaWdnZXJz Cj4gPiA+ID4gPiA+IHRvbnMgb2YgInBvdGVudGlhbCBhdG9taWMgdXBkYXRlIGVycm9ycyIgaW4g dGhlIGRtZXNnLCBvbiAqcGlwZSBBKi4gQQo+ID4gPiA+ID4gPiBjbG9zZXIgYW5hbHlzaXMgcmV2 ZWFscyB0aGF0IHdlIHRyeSB0byByZWFkIHRoZSBzY2FubGluZSAzIHRpbWVzIGFuZAo+ID4gPiA+ ID4gPiBldmVudHVhbGx5IHRpbWVvdXQsIGIvYyBQU1IgaGFzbid0IGV4aXRlZCBmdWxseSBsZWFk aW5nIHRvIGEgUElQRURTTAo+ID4gPiA+ID4gPiBzdHVjayBAIDE1OTkuIFRoaXMgaXNzdWUgaXMg bm90IHNlZW4gb24gdXBzdHJlYW0ga2VybmVscywgYi9jIGZvciAqc29tZSoKPiA+ID4gPiA+ID4g cmVhc29uIHdlIGxvb3AgaW5zaWRlIGludGVsX3BpcGVfdXBkYXRlIHN0YXJ0IGZvciB+MisgbXNl YyB3aGljaCBpbiB0aGlzCj4gPiA+ID4gPiA+IGNhc2UgaXMgbW9yZSB0aGFuIGVub3VnaCB0byBl eGl0IFBTUiBmdWxseSwgaGVuY2UgYW4gKnVuc3R1Y2sqIFBJUEVEU0wKPiA+ID4gPiA+ID4gY291 bnRlciwgaGVuY2Ugbm8gZXJyb3IuIE9uIHRoZSBvdGhlciBoYW5kLCB0aGUgQ2hyb21lT1Mga2Vy bmVsIHNwZW5kcwo+ID4gPiA+ID4gPiB+MS4xIG1zZWMgbG9vcGluZyBpbnNpZGUgaW50ZWxfcGlw ZV91cGRhdGVfc3RhcnQgYW5kIGhlbmNlIGVycm9ycyBvdXQKPiA+ID4gPiA+ID4gYi9jIHRoZSBz b3VyY2UgaXMgc3RpbGwgaW4gUFNSLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBSZWdhcmRsZXNz LCB3ZSBzaG91bGQgd2FpdCBmb3IgUFNSIGV4aXQgKGlmIFBTUiBpcyBzdXBwb3J0ZWQgYW5kIGFj dGl2ZQo+ID4gPiA+ID4gPiBvbiB0aGUgY3VycmVudCBwaXBlKSBiZWZvcmUgcmVhZGluZyB0aGUg UElQRURTTCwgYi9jIGlmIHdlIGhhdmVuJ3QKPiA+ID4gPiA+ID4gZnVsbHkgZXhpdGVkIFBTUiwg dGhlbiBjaGVja2luZyBmb3IgdmJsYW5rIGV2YXNpb24gaXNuJ3QgYWN0dWFsbHkKPiA+ID4gPiA+ ID4gYXBwbGljYWJsZS4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gVGhpcyBzY2VuYXJpbyBhcHBs aWVzIHRvIGEgY29uZmlndXJhdGlvbiB3aXRoIGFuIGFkZGl0aW9uYWwgcGlwZSwKPiA+ID4gPiA+ ID4gYXMgb2Ygbm93Lgo+ID4gPiA+ID4KPiA+ID4gPiA+IEkgaG9uZXN0bHkgYmVsaWV2ZSB5b3Ug cGlja2luZyB0aGUgd3JvbmcgY3VscHJpdCBoZXJlLiBCeSAiY29pbmNpZGVuY2UiLgo+ID4gPiA+ ID4gUFNSIHdpbGwgYWxsb3cgREMgc3RhdGUgd2l0aCBzY3JlZW4gb24gYW5kIERDIHN0YXRlIHdp bGwgbWVzcyB1cCB3aXRoIGFsbAo+ID4gPiA+ID4gcmVnaXN0ZXJzIHJlYWRzLi4uLgo+ID4gPiA+ ID4KPiA+ID4gPiA+IHByb2JhYmx5IHdoYXQgeW91IGFyZSBtaXNzaW5nIHlvdSB5b3VyIGtlcm5l bCBpcyBzb21lIHBvd2VyIGRvbWFpbgo+ID4gPiA+ID4gZ3JhYiB0aGF0IHdvdWxkIGtlZXAgRENf T0ZGIGFuZCBjb25zZXF1ZW50bHkgYSBzYW5lIHJlYWQgb2YgdGhlc2UKPiA+ID4gPiA+IHJlZ2lz dGVycy4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBNYXliZSBJbXJlIGhhcyBhIHF1aWNrIGlkZWEgb2Yg d2hhdCB5b3UgY291bGQgYmUgbWlzc2luZyBvbiB5b3VyIGtlcm5lbAo+ID4gPiA+ID4gdGhhdCB3 ZSBhbHJlYWR5IGhhdmUgb24gdXBzdHJlYW0gb25lLgo+ID4gPiA+ID4KPiA+ID4gPiA+IFRoYW5r cywKPiA+ID4gPiA+IFJvZHJpZ28uCj4gPiA+ID4gPgo+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIHF1 aWNrIHJlc3BvbnNlIFJvZHJpZ28gIQo+ID4gPiA+IFNvbWUga2V5IG9ic2VydmF0aW9ucyBiYXNl ZCBvbiBteSBleHBlcmltZW50cyBzbyBmYXI6Cj4gPiA+ID4gICAgICAgIGZvciAoOzspIHsKPiA+ ID4gPiAgICAgICAgICAgICAgICAgLyoKPiA+ID4gPiAgICAgICAgICAgICAgICAgICogcHJlcGFy ZV90b193YWl0KCkgaGFzIGEgbWVtb3J5IGJhcnJpZXIsIHdoaWNoIGd1YXJhbnRlZXMKPiA+ID4g PiAgICAgICAgICAgICAgICAgICogb3RoZXIgQ1BVcyBjYW4gc2VlIHRoZSB0YXNrIHN0YXRlIHVw ZGF0ZSBieSB0aGUgdGltZSB3ZQo+ID4gPiA+ICAgICAgICAgICAgICAgICAgKiByZWFkIHRoZSBz Y2FubGluZS4KPiA+ID4gPiAgICAgICAgICAgICAgICAgICovCj4gPiA+ID4gICAgICAgICAgICAg ICAgIHByZXBhcmVfdG9fd2FpdCh3cSwgJndhaXQsIFRBU0tfVU5JTlRFUlJVUFRJQkxFKTsKPiA+ ID4gPgo+ID4gPiA+ICAgICAgICAgICAgICAgICBzY2FubGluZSA9IGludGVsX2dldF9jcnRjX3Nj YW5saW5lKGNydGMpOwo+ID4gPiA+ICAgICAgICAgICAgICAgICBpZiAoc2NhbmxpbmUgPCBtaW4g fHwgc2NhbmxpbmUgPiBtYXgpCj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7 Cj4gPiA+ID4KPiA+ID4gPiAgICAgICAgICAgICAgICAgaWYgKHRpbWVvdXQgPD0gMCkgewo+ID4g PiA+ICAgICAgICAgICAgICAgICAgICAgICAgIERSTV9FUlJPUigiUG90ZW50aWFsIGF0b21pYyB1 cGRhdGUgZmFpbHVyZSBvbiBwaXBlICVjXG4iLAo+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwaXBlX25hbWUoY3J0Yy0+cGlwZSkpOwo+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOwo+ID4gPiA+ICAgICAgICAgICAgICAgICB9Cj4gPiA+ID4KPiA+ ID4gPiAgICAgICAgICAgICAgICAgbG9jYWxfaXJxX2VuYWJsZSgpOwo+ID4gPiA+Cj4gPiA+ID4g ICAgICAgICAgICAgICAgIHRpbWVvdXQgPSBzY2hlZHVsZV90aW1lb3V0KHRpbWVvdXQpOwo+ID4g PiA+Cj4gPiA+ID4gICAgICAgICAgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7Cj4gPiA+ID4g ICAgICAgICB9Cj4gPiA+ID4gMS4gSW4gdGhlIGFib3ZlIGxvb3AgaW5zaWRlIHBpcGVfdXBkYXRl X3N0YXJ0LCB0aGUgKmZpcnN0IHRpbWUqLCB3ZSByZWFkIHRoZSBQSVBFRFNMLCB3aXRoIFBTUjEg YW5kIGV4dGVybmFsIGRpc3BsYXkgY29ubmVjdGVkLCBpdCBhbHdheXMgcmVhZHMgMTU5OSwgZm9y ICpib3RoKiB0aGUga2VybmVscyh1cHN0cmVhbSBhbmQgQ2hyb21lT1MtNC40KSAuIFRoZSBQU1Jf U1RBVFVTIGFsc28gcmVhZHMgdGhlIGV4YWN0IHNhbWUgZm9yICpib3RoKiBrZXJuZWxzIGFuZCBz aG93cyB0aGF0IHdlIGhhdmVuJ3QgKmZ1bGx5KiBleGl0ZWQgUFNSLgo+ID4gPiA+Cj4gPiA+ID4g Mi4gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIGtlcm5lbHMgY29tZXMgYWZ0ZXIgdGhp cyBmaXJzdCByZWFkIG9mIHRoZSBQSVBFRFNMLiBDaHJvbWVPUy00LjQgc3BlbmRzIH4xIG1zZWMg aW5zaWRlIHRoYXQgbG9vcCBhbmQgdXBzdHJlYW0gc3BlbmRzIH4ybXNlYy4gSSBzdXNwZWN0IHRo YXQgaXQgaXMgYmVjYXVzZSBvZiB0aGUgc2NoZWR1bGluZyBjaGFuZ2VzIGJldHdlZW4gdGhlIHR3 byBrZXJuZWxzLCBiL2MgSSBjYW4ndCBmaW5kIGFueSBpOTE1IHNwZWNpZmljIGNvZGUgcnVubmlu ZyBpbiB0aGF0IGxvb3AsIGV4Y2VwdCBmb3IgdmJsYW5rIHByb2Nlc3NpbmcuCj4gPiA+ID4KPiA+ ID4gPiAzLiBTbyB0byBzdW1tYXJpemUgaXQsIGJvdGggdGhlIGtlcm5lbHMgYXJlIGluIHRoZSBz YW1lIHN0YXRlIHcuci50IFBTUiBhbmQgUElQRURTTCB2YWx1ZSB3aGVuIHRoZXkgcmVhZCB0aGUg UElQRURTTCBmb3IgdGhlIGZpcnN0IHRpbWUgaW5zaWRlIHRoZSBsb29wLiAqV2hlbiogdGhlIGtl cm5lbHMgKnRyYW5zaXRpb24qIHRvIGEgKmZ1bGwgUFNSIGV4aXQqIGlzIHdoYXQgaXMgZGlmZmVy aW5nLgo+ID4gCj4gPiBPaCEgU28geW91IHJlYWxseSBhcmUgZ2V0dGluZyByZWxpYWJsZSBjb3Vu dGVycy4uLi4KPiA+IAo+ID4gPiA+Cj4gPiA+ID4gTXkgcmF0aW9uYWxlIGZvciB0aGlzIHBhdGNo IGlzIHRoYXQsIHRoZSBwaXBlX3VwZGF0ZV9zdGFydCBmdW5jdGlvbiBpcyBtZWFudCB0byBldmFk ZSAxMDAgdXNlYyBiZWZvcmUgYSB2YmxhbmssIGJ1dCwgKmlmKiB3ZSBoYXZlbid0ICpmdWxseSog ZXhpdGVkIFBTUiAod2hpY2ggaXMgdHJ1ZSBmb3IgYm90aCB0aGUga2VybmVscyBmb3IgdGhlIGZp cnN0IFBJUEVEU0wgcmVhZCksIHRoZW4gdmJsYW5rIGV2YXNpb24gaXMgKm5vdCBhcHBsaWNhYmxl KiBiL2MgdGhlIFBJUEVEU0wgd2lsbCBiZSBtZXNzZWQgdXAuIFNvIHdlIHNob3VsZG4ndCBib3Ro ZXIgZXZhZGluZyB2YmxhbmsgdW50aWwgd2UgaGF2ZSBmdWxseSBleGl0ZWQgUFNSLgo+ID4gPgo+ ID4gPiBZZWFoLCBJIHRoaW5rIHRoaXMgaXMgdGhlIHJpZ2h0IGRpcmVjdGlvbi4gVGhlIHByb2Js ZW0gcmVhbGx5IGlzIHRoZQo+ID4gPiBleHRyYSB2YmxhbmsgcHVsc2UgdGhhdCB0aGUgaGFyZHdh cmUgZ2VuZXJhdGVzIChvciBhdCBsZWFzdCBjYW4KPiA+ID4gZ2VuZXJhdGUgZGVwZW5kaW5nIG9u IGEgY2hpY2tlbiBiaXQpIHdoZW4gaXQgZXhpdHMgUFNSLiBXZSBoYXZlIG5vCj4gPiA+IGNvbnRy b2wgb3ZlciB3aGVuIHRoYXQgaGFwcGVucyBhbmQgaGVuY2Ugd2UgaGF2ZSBubyBjb250cm9sIG92 ZXIgd2hlbgo+ID4gPiB0aGUgcmVnaXN0ZXJzIGdldCBsYXRjaGVkLiBBbmQgeWV0IHdlIHN0aWxs IGhhdmUgdG8gc29tZWhvdyBwcmV2ZW50Cj4gPiA+IHRoZSByZWdpc3RlciBsYXRjaGluZyBmcm9t IG9jY3VycmluZyB3aGlsZSB3ZSdyZSBpbiBtaWRkbGUgb2YKPiA+ID4gcmVwcm9ncmFtbWluZyB0 aGVtLgo+ID4gCj4gPiBJIHNlZSB0aGUgcHJvYmxlbSBub3cuIFRoYW5rcyBmb3IgdGhlIGV4cGxh bmF0aW9uLgo+ID4gCj4gPiA+Cj4gPiA+IFRoZXJlIGFyZSBhIGNvdXBsZSBvZiB3YXlzIHRvIGF2 b2lkIHRoaXM6Cj4gPiA+IDEpIFNldCB0aGUgY2hpY2tlbiBiaXQgc28gdGhhdCB3ZSBkb24ndCBn ZXQgdGhlIHZibGFuayBwdWxzZS4gVGhlCj4gPiA+ICAgIHBpcGUgc2hvdWxkIHJlc3RhcnQgZnJv bSB0aGUgdmJsYW5rIHN0YXJ0LCBzbyB3ZSB3b3VsZCBoYXZlIG9uZQo+ID4gPiAgICBmdWxsIGZy YW1lIHRvIHJlcHJvZ2FtIHRoZSByZWdpc3RlcnMuIEhvd3ZlciBJSVJDIERLIHRvbGQgbWUKPiA+ ID4gICAgdGhlcmUgaXMgbm8gd2F5IHRvIGZ1bGx5IGVsaW1pbmF0ZSBpdCBpbiBhbGwgY2FzZXMg c28gdGhpcwo+ID4gPiAgICBvcHRpb24gaXMgcHJvYmFibHkgb3V0LiBUaGVyZSB3YXMgYWxzbyBz b21lIGltcGxpY2F0aW9uIGZvciBGQkMKPiA+ID4gICAgd2hpY2ggSSBhbHJlYWR5IGZvcmdvdC4K PiA+ID4gMikgTWFrZSBzdXJlIHdlJ3ZlIGV4aXRlZCBQU1IgYmVmb3JlIHJlcGdyb2dhbW1pbmcg dGhlIHJlZ2lzdGVycwo+ID4gPiAgICAoaWUuIHdoYXQgeW91IGRvKS4KPiA+ID4gMykgVXNlIHRo ZSBET1VCTEVfQlVGRkVSX0NUTCB0byBwcmV2ZW50IHRoZSBleHRyYSB2YmxhbmsgcHVsc2UgZnJv bQo+ID4gPiAgICBsYXRjaGluZyB0aGUgcmVnaXN0ZXJzIHdoaWxlIHdlJ3JlIHN0aWxsIHJlcHJv Z3JhbW1pbmcgdGhlbS4KPiA+ID4gICAgVGhpcyBmZWF0dXJlIG9ubHkgZXhpc3RzIG9uIFNLTCsg c28gaXMgbm90IGEgc29sdXRpb24gZm9yCj4gPiA+ICAgIEhTVy9CRFcuIEJ1dCBtYXliZSBIU1cv QkRXIGRpZG4ndCBldmVuIGhhdmUgdGhlIGV4dHJhIHZibGFuawo+ID4gPiAgICBwdWxzZT8KPiA+ ID4KPiA+ID4gT3B0aW9uIDIpIGRvZXMgcHJvdmlkZSBhIGNvbnNpc3RlbnQgYmVoYXZpb3VyIG9u IGFsbCBwbGF0Zm9ybXMsIHNvIEkKPiA+ID4gZG8ga2luZGEgbGlrZSBpdC4gSXQgYWxzbyBhdm9p ZHMgYSBiaWdnZXIgcmV3b3JkIG9uIGFjY291bnQgb2YgdGhlCj4gPiA+IERPVUJMRV9CVUZGRVJf Q1RMLiBJIGRvIHRoaW5rIHdlJ2xsIGhhdmUgdG8gc3RhcnQgdXNpbmcKPiA+ID4gRE9VQkxFX0JV RkZFUl9DVEwgYW55d2F5IGR1ZSB0byBvdGhlciBpc3N1ZXMsIGJ1dCBhdCBsZWFzdCB0aGlzIHdh eQo+ID4gPiB3ZSBkb24ndCBibG9jayBQU1IgcHJvZ3Jlc3Mgb24gdGhhdCB3b3JrLgo+ID4gCj4g PiBNeSB2b3RlIGlzIGZvciB0aGUgb3B0aW9uIDIuIFNlZW1zIG1vcmUgc3RyYWlnaGZvcndhcmQg YW5kIG1vcmUgYnJvYWQuCj4gPiAKPiA+IERLPwo+ID4gCj4gPiBNeSBvbmx5IHJlcXVlc3Qgb24g dGhlIHBhdGNoIGl0c2VsZiB3b3VsZCBiZSB0byBjcmVhdGUgYSBmdW5jdGlvbgo+ID4gb24gaW50 ZWxfcHNyLmMgaW50ZWxfcHNyX3dhaXRfZm9yX2lkbGUuLi4gb3Igc29tZXRoaW5nIGxpa2UgdGhp cwo+ID4gYW5kIHB1dCB0aGUgcmVnaXN0ZXIgd2FpdCBsb2dpYyBpbnNpZGUgaXQgaW5zdGVhZCBv ZiBzcHJlYWRpbmcKPiA+IHRoZSBwc3IgY29kZSBhcm91bmQuCj4gPiAKPiA+IFRoYW5rcywKPiA+ IFJvZHJpZ28uCj4gPiAKPiA+ID4KPiA+ID4gLS0KPiA+ID4gVmlsbGUgU3lyasOkbMOkCj4gPiA+ IEludGVsCj4gVGhhbmtzIGZvciB0aGUgY29tbWVudHMsIFZpbGxlIGFuZCBSb2RyaWdvLiBJJ2xs IHJld29yayB0aGlzIHRvIG1vdmUgdGhlIHdhaXQgdG8gaW50ZWxfcHNyLmMuIFRoZXJlIGlzIGEg cHNyX3dhaXRfZm9yX2lkbGUoKSBpbiB0aGVyZSwgYnV0IHRoZXJlIGFyZSBzb21lIFBTUiBsb2Nr cyBiZWluZyBwYXNzZWQgYXJvdW5kIGluc2lkZSBpdCAoZXZlbnR1YWxseSByZWxlYXNlZCBieSB0 aGUgY2FsbGVyKS4gQWxzbyx0aGUgbWF4IHRpbWVvdXQgc3BlY2lmaWVkIHRoZXJlIGlzIDUwIG1z ZWMgd2hpY2ggbWlnaHQgYmUgd2F5IHRvbyBtdWNoID8KCm91Y2ghIHRoYXQgZnVuY3Rpb24gaXMg dWdseS4uLi4gdW5sb2NrIHRoYW4gbG9jayBiYWNrIGFnYWluLi4uCihzcGVjaWFsbHkgdW5sb2Nr IHdpdGhvdXQgYW55IGFzc2VydCBsb2NrZWQuLi4gOi8pCgpJZiB5b3UgY2FuIGltcHJvdmUgdGhh dCBvciBzcGxpdCBpbiBhIHdheSB0aGF0IHdlIHJldXNlIHNvbWUgY29kZSBpdCB3b3VsZCBiZSBu aWNlLi4uCgo+Cj4gQmVzdCwKPiBUYXJ1bgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK