From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH] drm/i915/icl: Fix context RPCS programming Date: Fri, 31 Aug 2018 17:52:55 +0100 Message-ID: <21570b44-22cb-e65a-ca4f-34ef41e2f719@intel.com> References: <20180831115334.2274-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 9E77E6E856 for ; Fri, 31 Aug 2018 16:53:02 +0000 (UTC) In-Reply-To: <20180831115334.2274-1-tvrtko.ursulin@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMzEvMDgvMjAxOCAxMjo1MywgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gRnJvbTogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPgo+IFRoZXJlIGFyZSB0d28gaXNz dWVzIHdpdGggdGhlIGN1cnJlbnQgUlBDUyBwcm9ncmFtbWluZyBmb3IgSWNlbGFrZToKPgo+IEV4 cGFuc2lvbiBvZiB0aGUgc2xpY2UgY291bnQgYml0ZmllbGQgaGFzIGJlZW4gbWlzc2VkLCBhcyB3 ZWxsIGFzIHRoZQo+IHJlcXVpcmVkIHByb2dyYW1taW5nIHdvcmthcm91bmQgZm9yIHRoZSBzdWJz bGljZSBjb3VudCBiaXRmaWVsZCBzaXplCj4gbGltaXRhdGlvbi4KPgo+IDEpCj4KPiBCaXRmaWVs ZCB3aWR0aCBmb3IgY29uZmlndXJpbmcgdGhlIGFjdGl2ZSBzbGljZSBjb3VudCBoYXMgZ3Jvd24g c28gd2UgbmVlZAo+IHRvIHByb2dyYW0gdGhlIEdFTjhfUl9QV1JfQ0xLX1NUQVRFIGFjY29yZGlu Z2x5Lgo+Cj4gQ3VycmVudCBjb2RlIHdhcyBhbHdheXMgcmVxdWVzdGluZyBlaWdodCB0aW1lcyB0 aGUgbnVtYmVyIG9mIHNsaWNlcyAoZHVlCj4gd3JpdHRpbmcgdG8gYSBiaXRmaWVsZCBzdGFydGlu ZyB0aHJlZSBiaXRzIGhpZ2hlciB0aGFuIGl0IHNob3VsZCkuIFRoZXNlCj4gcmVxdWVzdHMgd2Vy ZSBsdWNraWx5IGEpIGNhcHBlZCBieSB0aGUgaGFyZHdhcmUgdG8gdGhlIGF2YWlsYWJsZSBudW1i ZXIgb2YKPiBzbGljZXMsIGFuZCBiKSB3ZSBoYXZlbid0IHlldCBleHBvcnRlZCB0aGUgY29kZSB0 byBhc2sgZm9yIHJlZHVjZWQgc2xpY2UKPiBjb25maWd1cmF0aW9ucy4KPgo+IER1ZSBib3RoIG9m IHRoZSBhYm92ZSB0aGVyZSB3YXMgbm8gaW1wYWN0IGZyb20gdGhpcyBpbmNvcnJlY3QgcHJvZ3Jh bW1pbmcKPiBidXQgd2Ugc2hvdWxkIHN0aWxsIGZpeCBpdC4KPgo+IDIpCj4KPiBEdWUgc3Vic2xp Y2UgY291bnQgYml0ZmllbGQgYmVpbmcgb25seSB0aHJlZSBiaXRzIHdpZGUgYW5kIGZ1cnRoZXJt b3JlCj4gY2FwcGVkIHRvIGEgbWF4aW11bSBkb2N1bWVudGVkIHZhbHVlIG9mIGZvdXIsIHNwZWNp YWwgcHJvZ3JhbW1pbmcKPiB3b3JrYXJvdW5kIGlzIG5lZWRlZCB0byBlbmFibGUgbW9yZSB0aGFu IGZvdXIgc3Vic2xpY2VzLgo+Cj4gV2l0aCB0aGlzIHByb2dyYW1taW5nIGRyaXZlciBoYXMgdG8g Y29uc2lkZXIgdGhlIEdUIGNvbmZpZ3VyYXRpb24gYXMKPiAyeDR4OCwgd2hpbGUgdGhlIGhhcmR3 YXJlIGludGVybmFsbHkgdHJhbnNsYXRlcyB0aGlzIHRvIDF4OHg4Lgo+Cj4gQSBsaW1pdGF0aW9u IHN0ZW1taW5nIGZyb20gdGhpcyBpcyB0aGF0IGVpdGhlciBhIHN1YnNsaWNlIGNvdW50IGJldHdl ZW4KPiBvbmUgYW5kIGZvdXIgY2FuIGJlIHNlbGVjdGVkLCBvciBhIHN1YnNsaWNlIGNvdW50IGVx dWFsaW5nIHRoZSB0b3RhbAo+IG51bWJlciBvZiBzdWJzbGljZXMgaW4gYWxsIHNlbGVjdGVkIHNs aWNlcy4gSW4gb3RoZXIgd29yZHMsIG9kZCBzdWJzbGljZQo+IGNvdW50cyBncmVhdGVyIHRoYW4g Zm91ciBhcmUgaW1wb3NzaWJsZSwgYXMgYXJlIG9kZCBzdWJzbGljZSBjb3VudHMKPiBncmVhdGVy IHRoYW4gYSBzaW5nbGUgc2xpY2Ugc3Vic2xpY2UgY291bnQuCj4KPiBUaGlzIGFsc28gaGFkIG5v IGltcGFjdCBpbiB0aGUgY3VycmVudCBjb2RlIGJhc2UgZHVlIGJyZWFrYWdlIGZyb20gMSkKPiBh bHdheXMgcmVxZXN0aW5nIG1vcmUgdGhhbiBvbmUgc2xpY2UuCj4KPiBXaGlsZSBmaXhpbmcgdGhp cyB3ZSBhbHNvIGFkZCBzb21lIGFzc2VydHMgdG8gZmxhZyB1cCBhbnkgZnV0dXJlIGJpdGZpZWxk Cj4gb3ZlcmZsb3dzLgo+Cj4gU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51 cnN1bGluQGludGVsLmNvbT4KPiBCc3BlYzogMTIyNDcKPiBSZXBvcnRlZC1ieTogdG9ueS55ZUBp bnRlbC5jb20KPiBTdWdnZXN0ZWQtYnk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5k d2VybGluQGludGVsLmNvbT4KPiBDYzogTGlvbmVsIExhbmR3ZXJsaW4gPGxpb25lbC5nLmxhbmR3 ZXJsaW5AaW50ZWwuY29tPgo+IENjOiB0b255LnllQGludGVsLmNvbQo+IENjOiBNaWthIEt1b3Bw YWxhIDxtaWthLmt1b3BwYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmggIHwgIDIgKwo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHJjLmMgfCA4OSArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQo+ICAgMiBmaWxl cyBjaGFuZ2VkLCA3OCBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAo+IGluZGV4IGYyMzIxNzg1Y2JkNi4uMDliYzhlNzMwZWUxIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4gQEAgLTM0NCw2ICszNDQsOCBAQCBzdGF0aWMgaW5saW5l IGJvb2wgaTkxNV9tbWlvX3JlZ192YWxpZChpOTE1X3JlZ190IHJlZykKPiAgICNkZWZpbmUgICBH RU44X1JQQ1NfU19DTlRfRU5BQkxFCSgxIDw8IDE4KQo+ICAgI2RlZmluZSAgIEdFTjhfUlBDU19T X0NOVF9TSElGVAkJMTUKPiAgICNkZWZpbmUgICBHRU44X1JQQ1NfU19DTlRfTUFTSwkJKDB4NyA8 PCBHRU44X1JQQ1NfU19DTlRfU0hJRlQpCj4gKyNkZWZpbmUgICBHRU4xMV9SUENTX1NfQ05UX1NI SUZUCTEyCj4gKyNkZWZpbmUgICBHRU4xMV9SUENTX1NfQ05UX01BU0sJCSgweDNmIDw8IEdFTjEx X1JQQ1NfU19DTlRfU0hJRlQpCj4gICAjZGVmaW5lICAgR0VOOF9SUENTX1NTX0NOVF9FTkFCTEUJ KDEgPDwgMTEpCj4gICAjZGVmaW5lICAgR0VOOF9SUENTX1NTX0NOVF9TSElGVAk4Cj4gICAjZGVm aW5lICAgR0VOOF9SUENTX1NTX0NOVF9NQVNLCQkoMHg3IDw8IEdFTjhfUlBDU19TU19DTlRfU0hJ RlQpCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBmOGNlYjljOTlkZDYuLjMyM2M0 NjMxOWNiOCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gQEAgLTI0ODAsNiArMjQ4 MCw5IEBAIGludCBsb2dpY2FsX3hjc19yaW5nX2luaXQoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq ZW5naW5lKQo+ICAgc3RhdGljIHUzMgo+ICAgbWFrZV9ycGNzKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgIHsKPiArCWJvb2wgc3Vic2xpY2VfcGcgPSBJTlRFTF9JTkZPKGRl dl9wcml2KS0+c3NldS5oYXNfc3Vic2xpY2VfcGc7Cj4gKwl1OCBzbGljZXMgPSBod2VpZ2h0OChJ TlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5zbGljZV9tYXNrKTsKPiArCXU4IHN1YnNsaWNlcyA9 IGh3ZWlnaHQ4KElOVEVMX0lORk8oZGV2X3ByaXYpLT5zc2V1LnN1YnNsaWNlX21hc2tbMF0pOwo+ ICAgCXUzMiBycGNzID0gMDsKPiAgIAo+ICAgCS8qCj4gQEAgLTI0ODksNiArMjQ5MiwzOCBAQCBt YWtlX3JwY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDwgOSkKPiAgIAkJcmV0dXJuIDA7Cj4gICAKPiArCS8qCj4gKwkgKiBT aW5jZSB0aGUgU1Njb3VudCBiaXRmaWVsZCBpbiBHRU44X1JfUFdSX0NMS19TVEFURSBpcyBvbmx5 IHRocmVlIGJpdHMKPiArCSAqIHdpZGUgYW5kIEljZWxha2UgaGFzIHVwIHRvIGVpZ2h0IHN1YnNs aWNlcywgc3BlY2ZpYWwgcHJvZ3JhbW1pbmcgaXMKPiArCSAqIG5lZWRlZCBpbiBvcmRlciB0byBj b3JyZWN0bHkgZW5hYmxlIGFsbCBzdWJzbGljZXMuCj4gKwkgKgo+ICsJICogQWNjb3JkaW5nIHRv IGRvY3VtZW50YXRpb24gc29mdHdhcmUgbXVzdCBjb25zaWRlciB0aGUgY29uZmlndXJhdGlvbgo+ ICsJICogYXMgMng0eDggYW5kIGhhcmR3YXJlIHdpbGwgdHJhbnNsYXRlIHRoaXMgdG8gMXg4eDgu Cj4gKwkgKgo+ICsJICogRnVydGhlbW9yZSwgZXZlbiB0aG91Z2ggU1Njb3VudCBpcyB0aHJlZSBi aXRzLCBtYXhpbXVtIGRvY3VtZW50ZWQKPiArCSAqIHZhbHVlIGZvciBpdCBpcyBmb3VyLiBGcm9t IHRoaXMgc29tZSBydWxlcy9yZXN0cmljdGlvbnMgZm9sbG93Ogo+ICsJICoKPiArCSAqIDEuCj4g KwkgKiBJZiBlbmFibGVkIHN1YnNsaWNlIGNvdW50IGlzIGdyZWF0ZXIgdGhhbiBmb3VyLCB0d28g d2hvbGUgc2xpY2VzIG11c3QKPiArCSAqIGJlIGVuYWJsZWQgaW5zdGVhZC4KPiArCSAqCj4gKwkg KiAyLgo+ICsJICogV2hlbiBtb3JlIHRoYW4gb25lIHNsaWNlIGlzIGVuYWJsZWQsIGhhcmR3YXJl IGlnbm9yZXMgdGhlIHN1YnNsaWNlCj4gKwkgKiBjb3VudCBhbHRvZ2V0aGVyLgo+ICsJICoKPiAr CSAqIEZyb20gdGhlc2UgcmVzdHJpY3Rpb25zIGl0IGZvbGxvd3MgdGhhdCBpdCBpcyBub3QgcG9z c2libGUgdG8gZW5hYmxlCj4gKwkgKiBhIGNvdW50IG9mIHN1YnNsaWNlcyBiZXR3ZWVuIHRoZSBT U2NvdW50IG1heGltdW0gb2YgZm91ciByZXN0cmljdGlvbiwKPiArCSAqIGFuZCB0aGUgbWF4aW11 bSBhdmFpbGFibGUgbnVtYmVyIG9uIGEgcGFydGljdWxhciBTS1UuIEVpdGhlciBhbGwKPiArCSAq IHN1YnNsaWNlcyBhcmUgZW5hYmxlZCwgb3IgYSBjb3VudCBiZXR3ZWVuIG9uZSBhbmQgZm91ciBv biB0aGUgZmlyc3QKPiArCSAqIHNsaWNlLgo+ICsJICovCj4gKwlpZiAoSVNfR0VOMTEoZGV2X3By aXYpICYmIHNsaWNlcyA9PSAxICYmIHN1YnNsaWNlcyA+PSA0KSB7Cj4gKwkJR0VNX0JVR19PTihz dWJzbGljZXMgJiAxKTsKPiArCj4gKwkJc3Vic2xpY2VfcGcgPSBmYWxzZTsKCgpFcnIuLi4gTm93 IEknbSBsb29raW5nIGF0IHRoZSBkb2N1bWVudGF0aW9uIGFnYWluIGFuZCBJIHNlZSB0aGlzIGZv ciB0aGUgCnN1YnNsaWNlIGVuYWJsZSBmaWVsZCA6CgoKRW5hYmxlIFN1YnNsaWNlIENvdW50IFJl cXVlc3QuCgowID0gVXNlIEFzeW5jIHN1YnNsaWNlIGNvdW50CgoxID0gVXNlIFNTY291bnQgaW4g dGhpcyByZWdpc3RlcgoKClNlYXJjaGluZyBmb3IgIkFzeW5jIHN1YnNsaWNlIGNvdW50IiBsZWFk cyBtZSB0byBhbm90aGVyIHJlZ2lzdGVyIChCU3BlYyAKOTQ5NykuCgpSZWFsbHkgY29uZnVzZWQg YXMgdG8gd2hhdCB0aGlzIGRvZXMgOnwKCklzIHRoZSBoYXJkd2FyZSB0aGVuIHJlYWRpbmcgZm9y IHRoYXQgc2Vjb25kIHJlZ2lzdGVyIGlmIHlvdSBzZXQgClNTQ291bnRFbiB0byAwPwoKCldlIGNv dWxkIHB1dCBtYXgoaHdlaWdodDgoc3NldS5zdWJzbGljZV9tYXNrWzBdKSwgNCkgaW4gU1NDb3Vu dCwgYnV0IAppdCdzIHVuY2xlYXIgd2hhdCdzIHJpZ2h0Li4uCgoKSWYgeW91IGZlZWwgbGlrZSB0 aGlzIG5lZWRzIHRvIGJlIGludmVzdGlnYXRlZCwgZ28gYWhlYWQuCgpPdGhlcndpc2UgSSBoYXZl IGEgbWlub3Igc3R5bGUgc3VnZ2VzdGlvbiBiZWxvdywgZWl0aGVyIHdheSA6CgoKUmV2aWV3ZWQt Ynk6IExpb25lbCBMYW5kd2VybGluIDxsaW9uZWwuZy5sYW5kd2VybGluQGludGVsLmNvbT4KCgo+ ICsJCXNsaWNlcyAqPSAyOwo+ICsJfQo+ICsKPiAgIAkvKgo+ICAgCSAqIFN0YXJ0aW5nIGluIEdl bjksIHJlbmRlciBwb3dlciBnYXRpbmcgY2FuIGxlYXZlCj4gICAJICogc2xpY2Uvc3Vic2xpY2Uv RVUgaW4gYSBwYXJ0aWFsbHkgZW5hYmxlZCBzdGF0ZS4gV2UKPiBAQCAtMjQ5NiwyNCArMjUzMSw1 MiBAQCBtYWtlX3JwY3Moc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCSAq IGVuYWJsZW1lbnQuCj4gICAJKi8KPiAgIAlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUu aGFzX3NsaWNlX3BnKSB7Cj4gLQkJcnBjcyB8PSBHRU44X1JQQ1NfU19DTlRfRU5BQkxFOwo+IC0J CXJwY3MgfD0gaHdlaWdodDgoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuc2xpY2VfbWFzaykg PDwKPiAtCQkJR0VOOF9SUENTX1NfQ05UX1NISUZUOwo+IC0JCXJwY3MgfD0gR0VOOF9SUENTX0VO QUJMRTsKCgpJIHdvdWxkIHVzZSBhIHUzMiB2YWw7IGxpa2UgeW91IGRpZCBmb3IgdGhlIHN1YnNs aWNlIHBhcnQgYmVsb3cgYW5kIGp1c3QgCk9SIHRoaW5ncyB0b2dldGhlci4KCkp1c3QgZmVlbHMg YSBiaXQgbW9yZSByZWFkYWJsZSwgYnV0IHVwIHRvIHlvdS4KCgo+ICsJCXUzMiBtYXNrOwo+ICsK PiArCQlycGNzID0gc2xpY2VzOwo+ICsKPiArCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAx MSkgewo+ICsJCQltYXNrID0gR0VOMTFfUlBDU19TX0NOVF9NQVNLOwo+ICsJCQlycGNzIDw8PSBH RU4xMV9SUENTX1NfQ05UX1NISUZUOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCW1hc2sgPSBHRU44X1JQ Q1NfU19DTlRfTUFTSzsKPiArCQkJcnBjcyA8PD0gR0VOOF9SUENTX1NfQ05UX1NISUZUOwo+ICsJ CX0KPiArCj4gKwkJR0VNX0JVR19PTihycGNzICYgfm1hc2spOwo+ICsJCXJwY3MgJj0gbWFzazsK PiArCj4gKwkJcnBjcyB8PSBHRU44X1JQQ1NfRU5BQkxFIHwgR0VOOF9SUENTX1NfQ05UX0VOQUJM RTsKPiAgIAl9Cj4gICAKPiAtCWlmIChJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5oYXNfc3Vi c2xpY2VfcGcpIHsKPiAtCQlycGNzIHw9IEdFTjhfUlBDU19TU19DTlRfRU5BQkxFOwo+IC0JCXJw Y3MgfD0gaHdlaWdodDgoSU5URUxfSU5GTyhkZXZfcHJpdiktPnNzZXUuc3Vic2xpY2VfbWFza1sw XSkgPDwKPiAtCQkJR0VOOF9SUENTX1NTX0NOVF9TSElGVDsKPiAtCQlycGNzIHw9IEdFTjhfUlBD U19FTkFCTEU7Cj4gKwlpZiAoc3Vic2xpY2VfcGcpIHsKPiArCQl1MzIgdmFsID0gc3Vic2xpY2Vz Owo+ICsKPiArCQl2YWwgPDw9IEdFTjhfUlBDU19TU19DTlRfU0hJRlQ7Cj4gKwo+ICsJCUdFTV9C VUdfT04odmFsICYgfkdFTjhfUlBDU19TU19DTlRfTUFTSyk7Cj4gKwkJdmFsICY9IEdFTjhfUlBD U19TU19DTlRfTUFTSzsKPiArCj4gKwkJcnBjcyB8PSBHRU44X1JQQ1NfRU5BQkxFIHwgR0VOOF9S UENTX1NTX0NOVF9FTkFCTEUgfCB2YWw7Cj4gICAJfQo+ICAgCj4gICAJaWYgKElOVEVMX0lORk8o ZGV2X3ByaXYpLT5zc2V1Lmhhc19ldV9wZykgewo+IC0JCXJwY3MgfD0gSU5URUxfSU5GTyhkZXZf cHJpdiktPnNzZXUuZXVfcGVyX3N1YnNsaWNlIDw8Cj4gLQkJCUdFTjhfUlBDU19FVV9NSU5fU0hJ RlQ7Cj4gLQkJcnBjcyB8PSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vic2xp Y2UgPDwKPiAtCQkJR0VOOF9SUENTX0VVX01BWF9TSElGVDsKPiArCQl1MzIgdmFsOwo+ICsKPiAr CQl2YWwgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+c3NldS5ldV9wZXJfc3Vic2xpY2UgPDwKPiAr CQkgICAgICBHRU44X1JQQ1NfRVVfTUlOX1NISUZUOwo+ICsJCUdFTV9CVUdfT04odmFsICYgfkdF TjhfUlBDU19FVV9NSU5fTUFTSyk7Cj4gKwkJdmFsICY9IEdFTjhfUlBDU19FVV9NSU5fTUFTSzsK PiArCj4gKwkJcnBjcyB8PSB2YWw7Cj4gKwo+ICsJCXZhbCA9IElOVEVMX0lORk8oZGV2X3ByaXYp LT5zc2V1LmV1X3Blcl9zdWJzbGljZSA8PAo+ICsJCSAgICAgIEdFTjhfUlBDU19FVV9NQVhfU0hJ RlQ7Cj4gKwkJR0VNX0JVR19PTih2YWwgJiB+R0VOOF9SUENTX0VVX01BWF9NQVNLKTsKPiArCQl2 YWwgJj0gR0VOOF9SUENTX0VVX01BWF9NQVNLOwo+ICsKPiArCQlycGNzIHw9IHZhbDsKPiArCj4g ICAJCXJwY3MgfD0gR0VOOF9SUENTX0VOQUJMRTsKPiAgIAl9Cj4gICAKCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK