From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: Re: [PATCH] drm/i915: Engine relative MMIO Date: Tue, 11 Jun 2019 17:24:58 -0700 Message-ID: <20190612002458.GB29428@intel.com> References: <20190513194552.6600-1-John.C.Harrison@Intel.com> <2f07e749-7e44-d3ae-08a7-2b45b811419c@linux.intel.com> <4afc2fff-64a9-be97-d695-d595838df64a@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2AACF89226 for ; Wed, 12 Jun 2019 00:24:28 +0000 (UTC) Content-Disposition: inline In-Reply-To: <4afc2fff-64a9-be97-d695-d595838df64a@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Intel-GFX@lists.freedesktop.org, Chris P List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBNYXkgMjAsIDIwMTkgYXQgMDc6MTk6NThBTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gCj4gT24gMTcvMDUvMjAxOSAwMjoyNSwgSm9obiBIYXJyaXNvbiB3cm90ZToKPiA+ IE9uIDUvMTUvMjAxOSAwMTo1MiwgVHZydGtvIFVyc3VsaW4gd3JvdGU6Cj4gPiA+IAo+ID4gPiBP biAxMy8wNS8yMDE5IDIwOjQ1LCBKb2huLkMuSGFycmlzb25ASW50ZWwuY29tIHdyb3RlOgo+ID4g PiA+IEZyb206IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBJbnRlbC5jb20+Cj4gPiA+ ID4gCj4gPiA+ID4gV2l0aCB2aXJ0dWFsIGVuZ2luZXMsIGl0IGlzIG5vIGxvbmdlciBwb3NzaWJs ZSB0byBrbm93IHdoaWNoIHNwZWNpZmljCj4gPiA+ID4gcGh5c2ljYWwgZW5naW5lIGEgZ2l2ZW4g cmVxdWVzdCB3aWxsIGJlIGV4ZWN1dGVkIG9uIGF0IHRoZSB0aW1lIHRoYXQKPiA+ID4gPiByZXF1 ZXN0IGlzIGdlbmVyYXRlZC4gVGhpcyBtZWFucyB0aGF0IHRoZSByZXF1ZXN0IGl0c2VsZiBtdXN0 IGJlIGVuZ2luZQo+ID4gPiA+IGFnbm9zdGljIC0gYW55IGRpcmVjdCByZWdpc3RlciB3cml0ZXMg bXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgZW5naW5lCj4gPiA+ID4gYW5kIG5vdCBhYnNvbHV0ZSBh ZGRyZXNzZXMuCj4gPiA+ID4gCj4gPiA+ID4gVGhlIExSSSBjb21tYW5kIGhhcyBzdXBwb3J0IGZv ciBlbmdpbmUgcmVsYXRpdmUgYWRkcmVzc2luZy4gSG93ZXZlciwKPiA+ID4gPiB0aGUgbWVjaGFu aXNtIGlzIG5vdCB0cmFuc3BhcmVudCB0byB0aGUgZHJpdmVyLiBUaGUgc2NoZW1lIGZvciBHZW4x MQo+ID4gPiA+IChNSV9MUklfQUREX0NTX01NSU9fU1RBUlQpIHJlcXVpcmVzIHRoZSBMUkkgYWRk cmVzcyB0byBoYXZlIG5vCj4gPiA+ID4gYWJzb2x1dGUgZW5naW5lIGJhc2UgY29tcG9uZW50LiBU aGUgaGFyZHdhcmUgdGhlbiBhZGRzIG9uIHRoZSBjb3JyZWN0Cj4gPiA+ID4gZW5naW5lIG9mZnNl dCBhdCBleGVjdXRpb24gdGltZS4KPiA+ID4gPiAKPiA+ID4gPiBEdWUgdG8gdGhlIG5vbi10cml2 aWFsIGFuZCBkaWZmZXJpbmcgc2NoZW1lcyBvbiBkaWZmZXJlbnQgaGFyZHdhcmUsIGl0Cj4gPiA+ ID4gaXMgbm90IHBvc3NpYmxlIHRvIHNpbXBseSB1cGRhdGUgdGhlIGNvZGUgdGhhdCBjcmVhdGVz IHRoZSBMUkkKPiA+ID4gPiBjb21tYW5kcyB0byBzZXQgYSByZW1hcCBmbGFnIGFuZCBsZXQgdGhl IGhhcmR3YXJlIGdldCBvbiB3aXRoIGl0Lgo+ID4gPiA+IEluc3RlYWQsIHRoaXMgcGF0Y2ggYWRk cyBmdW5jdGlvbiB3cmFwcGVycyBmb3IgZ2VuZXJhdGluZyB0aGUgTFJJCj4gPiA+ID4gY29tbWFu ZCBpdHNlbGYgYW5kIHRoZW4gZm9yIGNvbnN0cnVjdGluZyB0aGUgY29ycmVjdCBhZGRyZXNzIHRv IHVzZQo+ID4gPiA+IHdpdGggdGhlIExSSS4KPiA+ID4gPiAKPiA+ID4gPiB2MjogRml4IGJ1aWxk IGJyZWFrIGluIEdWVC4gUmVtb3ZlIGZsYWdzIHBhcmFtZXRlciBbcmV2aWV3IGZlZWRiYWNrCj4g PiA+ID4gZnJvbSBDaHJpcyBXXS4KPiA+ID4gPiAKPiA+ID4gPiB2MzogRml4IGJ1aWxkIGJyZWFr IGluIHNlbGZ0ZXN0LiBSZWJhc2UgdG8gbmV3ZXIgYmFzZSB0cmVlIGFuZCBmaXgKPiA+ID4gPiBt ZXJnZSBjb25mbGljdC4KPiA+ID4gPiAKPiA+ID4gPiB2NDogTW9yZSByZWJhc2luZy4gUm1vdmVk IHJlbGF0aXZlIGFkZHJlc3Npbmcgc3VwcG9ydCBmcm9tIEdlbjctOSBvbmx5Cj4gPiA+ID4gY29k ZSBwYXRocyBbcmV2aWV3IGZlZWRiYWNrIGZyb20gQ2hyaXMgV10uCj4gPiA+ID4gCj4gPiA+ID4g djU6IE1vcmUgcmViYXNpbmcgKG5ldyAnZ3QnIGRpcmVjdG9yeSkuIEZpeCB3aGl0ZSBzcGFjZSBp c3N1ZS4gVXNlCj4gPiA+ID4gQ09QWSBjbGFzcyByYXRoZXIgdGhhbiBCQ1MwIGlkIGZvciBjaGVj a2luZyBhZ2FpbnN0IEJDUyBlbmdpbmUuCj4gPiA+ID4gCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTog Sm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPiA+ID4gPiBDQzogUm9k cmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiA+IENDOiBUdnJ0a28gVXJz dWxpbiA8dHZydGtvLnVyc3VsaW5AbGludXguaW50ZWwuY29tPgo+ID4gPiA+IENDOiBXaWxzb24s IENocmlzIFAgPGNocmlzLnAud2lsc29uQGludGVsLmNvbT4KPiA+ID4gPiAtLS0KPiA+ID4gPiDC oCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmUuaMKgwqDCoMKgwqDCoMKgIHzC oCA0ICsKPiA+ID4gPiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdpbmVfY3Mu Y8KgwqDCoMKgIHwgMTEgKysrCj4gPiA+ID4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50 ZWxfZ3B1X2NvbW1hbmRzLmjCoCB8wqAgNiArLQo+ID4gPiA+IMKgIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2ludGVsX2xyYy5jwqDCoMKgwqDCoMKgwqDCoMKgwqAgfCA3OSArKysrKysrKysrLS0t LS0tLS0tCj4gPiA+ID4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfbHJjX3JlZy5o wqDCoMKgwqDCoMKgIHzCoCA0ICstCj4gPiA+ID4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfbW9jcy5jwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTcgKystLQo+ID4gPiA+IMKgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3JpbmdidWZmZXIuY8KgwqDCoCB8IDQ1ICsrKysrKysr Ky0tCj4gPiA+ID4gwqAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMu Y8KgwqAgfMKgIDQgKy0KPiA+ID4gPiDCoCAuLi4vZ3B1L2RybS9pOTE1L2d0L3NlbGZ0ZXN0X3dv cmthcm91bmRzLmPCoMKgwqAgfMKgIDkgKystCj4gPiA+ID4gwqAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvZ3Z0L21taW9fY29udGV4dC5jwqDCoMKgwqDCoMKgIHwgMTYgKysrLQo+ID4gPiA+IMKgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfY21kX3BhcnNlci5jwqDCoMKgwqDCoMKgwqAgfMKgIDQg Ky0KPiA+ID4gPiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9jb250ZXh0LmPCoMKg wqDCoMKgwqAgfCAxMiArLS0KPiA+ID4gPiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dl bV9leGVjYnVmZmVyLmPCoMKgwqAgfMKgIDMgKy0KPiA+ID4gPiDCoCBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3BlcmYuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMTkgKysrLS0KPiA+ ID4gPiDCoCAxNCBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgNzkgZGVsZXRpb25z KC0pCj4gPiA+ID4gCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0 L2ludGVsX2VuZ2luZS5oCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9l bmdpbmUuaAo+ID4gPiA+IGluZGV4IDkzNTliM2E3YWQ5Yy4uMzUwNmM5OTIxODJjIDEwMDY0NAo+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZS5oCj4gPiA+ ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lLmgKPiA+ID4gPiBA QCAtNTQ2LDQgKzU0Niw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbAo+ID4gPiA+IGluamVjdF9wcmVl bXB0X2hhbmcoc3RydWN0IGludGVsX2VuZ2luZV9leGVjbGlzdHMgKmV4ZWNsaXN0cykKPiA+ID4g PiDCoCDCoCAjZW5kaWYKPiA+ID4gPiDCoCArYm9vbCBpOTE1X2VuZ2luZV9oYXNfcmVsYXRpdmVf bHJpKGNvbnN0IHN0cnVjdAo+ID4gPiA+IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKTsKPiA+ID4g PiArdTMyIGk5MTVfZ2V0X2xyaV9jbWQoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lLCB1MzIKPiA+ID4gPiB3b3JkX2NvdW50KTsKPiA+ID4gPiArdTMyIGk5MTVfZ2V0X2xyaV9y ZWcoY29uc3Qgc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLAo+ID4gPiA+IGk5MTVfcmVn X3QgcmVnKTsKPiA+ID4gPiArCj4gPiA+ID4gwqAgI2VuZGlmIC8qIF9JTlRFTF9SSU5HQlVGRkVS X0hfICovCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2VuZ2luZV9jcy5jCj4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9lbmdp bmVfY3MuYwo+ID4gPiA+IGluZGV4IDRjMzc1M2MxYjU3My4uMjMzMjk1ZDY4OWQyIDEwMDY0NAo+ ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX2VuZ2luZV9jcy5jCj4g PiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZW5naW5lX2NzLmMKPiA+ ID4gPiBAQCAtMjUzLDYgKzI1MywxNyBAQCBzdGF0aWMgdTMyIF9fZW5naW5lX21taW9fYmFzZShz dHJ1Y3QKPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ID4gPiA+IMKgwqDCoMKgwqAg cmV0dXJuIGJhc2VzW2ldLmJhc2U7Cj4gPiA+ID4gwqAgfQo+ID4gPiA+IMKgICtib29sIGk5MTVf ZW5naW5lX2hhc19yZWxhdGl2ZV9scmkoY29uc3Qgc3RydWN0Cj4gPiA+ID4gaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gPiA+ID4gK3sKPiA+ID4gPiArwqDCoMKgIGlmIChJTlRFTF9HRU4oZW5n aW5lLT5pOTE1KSA8IDExKQo+ID4gPiA+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gZmFsc2U7Cj4g PiA+ID4gKwo+ID4gPiA+ICvCoMKgwqAgaWYgKGVuZ2luZS0+Y2xhc3MgPT0gQ09QWV9FTkdJTkVf Q0xBU1MpCj4gPiA+ID4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiBmYWxzZTsKPiA+ID4gPiArCj4g PiA+ID4gK8KgwqDCoCByZXR1cm4gdHJ1ZTsKPiA+ID4gCj4gPiA+IEkgdGhpbmsgZW5naW5lLT5m bGFncyB3b3VsZCBiZSBiZXR0ZXIuIEF0IGxlYXN0IGl0IGlzIG9uZQo+ID4gPiBjb25kaXRpb25h bCBpbnN0ZWFkIG9mIHR3byBhdCBydW50aW1lLCBldmVuIG9uZSB0b28gbWFueSBmb3IKPiA+ID4g c29tZXRoaW5nIHRoYXQgaXMgaW52YXJpYW50Lgo+ID4gPiAKPiA+ID4gPiArfQo+ID4gPiA+ICsK PiA+ID4gPiDCoCBzdGF0aWMgdm9pZCBfX3NwcmludF9lbmdpbmVfbmFtZShjaGFyICpuYW1lLCBj b25zdCBzdHJ1Y3QKPiA+ID4gPiBlbmdpbmVfaW5mbyAqaW5mbykKPiA+ID4gPiDCoCB7Cj4gPiA+ ID4gwqDCoMKgwqDCoCBXQVJOX09OKHNucHJpbnRmKG5hbWUsIElOVEVMX0VOR0lORV9DU19NQVhf TkFNRSwgIiVzJXUiLAo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF9ncHVfY29tbWFuZHMuaAo+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv aW50ZWxfZ3B1X2NvbW1hbmRzLmgKPiA+ID4gPiBpbmRleCBhMzRlY2U1M2E3NzEuLmU3Nzg0YjNm Yjc1OSAxMDA2NDQKPiA+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9n cHVfY29tbWFuZHMuaAo+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X2dwdV9jb21tYW5kcy5oCj4gPiA+ID4gQEAgLTEyMyw5ICsxMjMsMTMgQEAKPiA+ID4gPiDCoMKg ICrCoMKgIHNpbXBseSBpZ25vcmVzIHRoZSByZWdpc3RlciBsb2FkIHVuZGVyIGNlcnRhaW4gY29u ZGl0aW9ucy4KPiA+ID4gPiDCoMKgICogLSBPbmUgY2FuIGFjdHVhbGx5IGxvYWQgYXJiaXRyYXJ5 IG1hbnkgYXJiaXRyYXJ5IHJlZ2lzdGVyczoKPiA+ID4gPiBTaW1wbHkgaXNzdWUgeAo+ID4gPiA+ IMKgwqAgKsKgwqAgYWRkcmVzcy92YWx1ZSBwYWlycy4gRG9uJ3Qgb3ZlcmR1ZSBpdCwgdGhvdWdo LCB4IDw9IDJeNAo+ID4gPiA+IG11c3QgaG9sZCEKPiA+ID4gPiArICogLSBOZXdlciBoYXJkd2Fy ZSBzdXBwb3J0cyBlbmdpbmUgcmVsYXRpdmUgYWRkcmVzc2VzIGJ1dAo+ID4gPiA+IG9sZGVyIGhh cmR3YXJlIGRvZXMKPiA+ID4gPiArICrCoMKgIG5vdC4gU28gbmV2ZXIgY2FsbCBNSV9MUkkgZGly ZWN0bHksIGFsd2F5cyB1c2UgdGhlCj4gPiA+ID4gaTkxNV9nZXRfbHJpX2NtZCgpCj4gPiA+ID4g KyAqwqDCoCBhbmQgaTkxNV9nZXRfbHJpX3JlZygpIGhlbHBlciBmdW5jdGlvbnMuCj4gPiA+ID4g wqDCoCAqLwo+ID4gPiA+IC0jZGVmaW5lIE1JX0xPQURfUkVHSVNURVJfSU1NKHgpwqDCoMKgIE1J X0lOU1RSKDB4MjIsIDIqKHgpLTEpCj4gPiA+ID4gKyNkZWZpbmUgX19NSV9MT0FEX1JFR0lTVEVS X0lNTSh4KcKgwqDCoCBNSV9JTlNUUigweDIyLCAyKih4KS0xKQo+ID4gPiAKPiA+ID4gU28gd2Ug ZW5kIHVwIHdpdGggY29kZSB1c2luZyBfX01JX0xPQURfUkVHSVNURVJfSU1NIGZvciBhYnNvbHV0 ZSwKPiA+ID4gYW5kIGk5MTVfZ2V0X2xyaV9jbWQgZm9yIHJlbGF0aXZlIGFkZHJlc3NpbmcuIE9u ZSBpcyBhIG1hY3JvLAo+ID4gPiBhbm90aGVyIGlzIGEgZnVuY3Rpb24gY2FsbCwgYW5kIG5hbWlu Zy9jYXNlIGlzIGRpZmZlcmVudC4KPiA+IAo+ID4gTm8uIFRoZSBfX01fTF9SX0lNTSB2ZXJzaW9u IGlzIGZvciBvbGQgY29kZSB0aGF0IGNhbiBvbmx5IHJ1biBvbgo+ID4gcHJlLUdlbjExIGRldmlj ZXMuIFRoZSBoZWxwZXIgZnVuY3Rpb24gaXMgZm9yIGFsbCBvdGhlciBjb2RlLiBUaGUgY2FsbGVy Cj4gPiBkb2VzIG5vdCBrbm93IChvciBjYXJlKSB3aGV0aGVyIGl0IHNob3VsZCBiZSB1c2luZyBh YnNvbHV0ZSBvciByZWxhdGl2ZQo+ID4gYWRkcmVzc2luZy4gVGhhdCBpcyB0aGUgcG9pbnQgb2Yg dGhlIGhlbHBlci4KPiA+IAo+ID4gU2VlIGVhcmxpZXIgZGlzY3Vzc2lvbiBhYm91dCB3YW50aW5n IHRvIG1ha2UgaXQgdG90YWxseSBvYnZpb3VzIHRoYXQKPiA+IHVzaW5nIHRoZSBzaW1wbGUgbWFj cm8gdmVyc2lvbiBpcyB0aGUgd3JvbmcgdGhpbmcgdG8gZG8gaW4gbmV3IGNvZGUuCj4gPiAKPiA+ IAo+ID4gPiAuLi4KPiA+ID4gCj4gPiA+IFRoZW4gYWxsIGNhbGwgc2l0ZXMgY2FuIHVzZSBqdXN0 IHRoaXMgc2luZ2xlIGhlbHBlciBhbmQgdGhlIG5hbWluZwo+ID4gPiByZW1haW5zIGZhbWlsaWFy Lgo+ID4gPiAKPiA+IAo+ID4gSSBvcmlnaW5hbGx5IGhhZCBhIHNpbmdsZSBoZWxwZXIgdG8gYmUg dXNlZCBpbiBhbGwgY2FsbCBzaXRlcy4gQ2hyaXMKPiA+IG9iamVjdGVkIHZpb2xlbnRseSB0byB0 aGUgaWRlYSBvZiBjYWxsaW5nIGEgaGVscGVyIGluIGNvZGUgdGhhdCBpcwo+ID4gcHVyZWx5IHBy ZS1HZW4xMSBhbmQgdGh1cyBoYXMgbm8gbmVlZCBvZiB0aGUgaGVscGVyLgo+ID4gCj4gPiBPbiB0 aGUgb3RoZXIgaGFuZCwgUm9kcmlnbyBhZ3JlZWQgd2l0aCB5b3UgdGhhdCB1c2luZyB0aGUgaGVs cGVyCj4gPiBldmVyeXdoZXJlIHdhcyBjbGVhbmVyLiBTbyBpdCBpcyBub3cgYSAyIHZzIDEgdm90 ZS4uLgo+IAo+IE1heWJlIGxlYXZpbmcgdGhlIGxlZ2FjeSBjb2RlIHVzZSB0aGUgZXhpc3Rpbmcg TUlfTE9BRF9SRUdJU1RFUl9JTU0gdGhlbiwKPiBhbmQganVzdCBjYWxsaW5nIHRoZSBuZXcgb25l IE1JX0xPQURfUkVHSVNURVJfSU1NX1JFTCB3b3VsZCBiZSBwYXNzYWJsZT8gSXQKPiB3b3VsZCBz YXRpc2Z5IG15IGNvbXBsYWludCB0aGF0IHR3byBoZWxwZXJzIGxvb2sgc28gcmFkaWNhbGx5IGRp ZmZlcmVudC4KPiBXb3VsZCBtYWtlIENocmlzIGhhcHB5IGFuZCB3b3VsZCBtYWtlIHRoZSBwYXRj aCBzbWFsbGVyIEkgdGhpbmsuCgpJIHByZWZlciB0aGlzIGFwcHJvYWNoIGFzIHdlbGwuCgo+IAo+ IFJlZ2FyZHMsCj4gCj4gVHZydGtvCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vaW50ZWwtZ2Z4Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==