From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [RFC] drm/i915: store all mmio bases in intel_engines Date: Fri, 9 Mar 2018 19:44:36 +0000 Message-ID: References: <20180307194515.17135-1-daniele.ceraolospurio@intel.com> <9c99352f-eaf9-a264-8d14-303a55e5fac2@intel.com> <6f96c344-9714-a9a8-60ad-48e4d6a98017@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0731E6EC02 for ; Fri, 9 Mar 2018 19:44:38 +0000 (UTC) In-Reply-To: Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniele Ceraolo Spurio , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA5LzAzLzIwMTggMTg6NDcsIERhbmllbGUgQ2VyYW9sbyBTcHVyaW8gd3JvdGU6Cj4gT24g MDkvMDMvMTggMDE6NTMsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+Pgo+PiBPbiAwOC8wMy8yMDE4 IDE4OjQ2LCBEYW5pZWxlIENlcmFvbG8gU3B1cmlvIHdyb3RlOgo+Pj4gT24gMDgvMDMvMTggMDE6 MzEsIFR2cnRrbyBVcnN1bGluIHdyb3RlOgo+Pj4+Cj4+Pj4gT24gMDcvMDMvMjAxOCAxOTo0NSwg RGFuaWVsZSBDZXJhb2xvIFNwdXJpbyB3cm90ZToKPj4+Pj4gVGhlIG1taW8gYmFzZXMgd2UncmUg Y3VycmVudGx5IHN0b3JpbmcgaW4gdGhlIGludGVsX2VuZ2luZXMgYXJyYXkgYXJlCj4+Pj4+IG9u bHkgdmFsaWQgZm9yIGEgc3Vic2V0IG9mIGdlbnMsIHNvIHdlIG5lZWQgdG8gaWdub3JlIHRoZW0g YW5kIHVzZQo+Pj4+PiBkaWZmZXJlbnQgdmFsdWVzIGluIHNvbWUgY2FzZXMuIEluc3RlYWQgb2Yg ZG9pbmcgdGhhdCwgd2UgY2FuIGhhdmUgYQo+Pj4+PiB0YWJsZSBvZiBbc3RhcnRpbmcgZ2VuLCBt bWlvIGJhc2VdIHBhaXJzIGZvciBlYWNoIGVuZ2luZSBpbgo+Pj4+PiBpbnRlbF9lbmdpbmVzIGFu ZCBzZWxlY3QgdGhlIGNvcnJlY3Qgb25lIGJhc2VkIG9uIHRoZSBnZW4gd2UncmUgCj4+Pj4+IHJ1 bm5pbmcKPj4+Pj4gb24gaW4gYSBjb25zaXN0ZW50IHdheS4KPj4+Pj4KPj4+Pj4gQ2M6IE1pa2Eg S3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAbGludXguaW50ZWwuY29tPgo+Pj4+PiBDYzogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4+Pj4gU2lnbmVkLW9mZi1ieTog RGFuaWVsZSBDZXJhb2xvIFNwdXJpbyAKPj4+Pj4gPGRhbmllbGUuY2VyYW9sb3NwdXJpb0BpbnRl bC5jb20+Cj4+Pj4+IC0tLQo+Pj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9lbmdp bmVfY3MuY8KgIHwgNzcgCj4+Pj4+ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQo+ Pj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfMKgIDEgLQo+ Pj4+PiDCoCAyIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygt KQo+Pj4+Pgo+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5n aW5lX2NzLmMgCj4+Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZW5naW5lX2NzLmMK Pj4+Pj4gaW5kZXggNGJhMTM5YzI3ZmJhLi4xZGQ5MmNhYzhkNjcgMTAwNjQ0Cj4+Pj4+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4+Pj4+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2VuZ2luZV9jcy5jCj4+Pj4+IEBAIC04MSwxMiArODEsMTYg QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBlbmdpbmVfY2xhc3NfaW5mbyAKPj4+Pj4gaW50ZWxfZW5n aW5lX2NsYXNzZXNbXSA9IHsKPj4+Pj4gwqDCoMKgwqDCoCB9LAo+Pj4+PiDCoCB9Owo+Pj4+PiAr I2RlZmluZSBNQVhfTU1JT19CQVNFUyAzCj4+Pj4+IMKgIHN0cnVjdCBlbmdpbmVfaW5mbyB7Cj4+ Pj4+IMKgwqDCoMKgwqAgdW5zaWduZWQgaW50IGh3X2lkOwo+Pj4+PiDCoMKgwqDCoMKgIHVuc2ln bmVkIGludCB1YWJpX2lkOwo+Pj4+PiDCoMKgwqDCoMKgIHU4IGNsYXNzOwo+Pj4+PiDCoMKgwqDC oMKgIHU4IGluc3RhbmNlOwo+Pj4+PiAtwqDCoMKgIHUzMiBtbWlvX2Jhc2U7Cj4+Pj4+ICvCoMKg wqAgc3RydWN0IGVuZ2luZV9tbWlvX2Jhc2Ugewo+Pj4+PiArwqDCoMKgwqDCoMKgwqAgdTMyIGdl biA6IDg7Cj4+Pj4+ICvCoMKgwqDCoMKgwqDCoCB1MzIgYmFzZSA6IDI0Owo+Pj4+PiArwqDCoMKg IH0gbW1pb19iYXNlc1tNQVhfTU1JT19CQVNFU107Cj4+Pj4+IMKgwqDCoMKgwqAgdW5zaWduZWQg aXJxX3NoaWZ0Owo+Pj4+PiDCoCB9Owo+Pj4+Cj4+Pj4gSXQncyBub3QgYmFkLCBidXQgSSBhbSBq dXN0IHdvbmRlcmluZyBpZiBpdCBpcyB0b28gY29tcGxpY2F0ZWQgCj4+Pj4gdmVyc3VzIHNpbXBs eSBkdXBsaWNhdGluZyB0aGUgdGFibGVzLgo+Pj4+Cj4+Pj4gRHVwbGljYXRlZCB0YWJsZXMgd291 bGQgY2VydGFpbmx5IGJlIG11Y2ggbGVzcyBjb2RlIGFuZCBjb21wbGV4aXR5LCAKPj4+PiBidXQg d2hhdCBhYm91dCB0aGUgc2l6ZSBvZiBwdXJlIGRhdGE/Cj4+Pj4KPj4+PiBJbiB0aGlzIHBhdGNo IHNpemVvZihzdHJ1Y3QgZW5naW5lX2luZm8pIGdyb3dzIGJ5IE1BWF9NTUlPX0JBU0VTICogCj4+ Pj4gc2l6ZW9mKHUzMiksIHNvIDEyLCB0byB0aGUgdG90YWwgb2YgMzAgaWYgSSBhbSBub3QgbWlz dGFrZW4uIFRpbWVzIAo+Pj4+IE5VTV9FTkdJTkVTIGVxdWFscyAyNDAgYnl0ZXMgZm9yIGludGVs X2VuZ2luZXNbXSBhcnJheSB3aXRoIHRoaXMgCj4+Pj4gc2NoZW1lLgo+Pj4+Cj4+Pgo+Pj4gd2Ug cmVtb3ZlIGEgdTMyICh0aGUgb2xkIG1taW8gYmFzZSkgc28gd2Ugb25seSBncm93IDggcGVyIGVu Z2luZSwgYnV0IAo+Pj4gdGhlIGNvbXBpbGVyIHJvdW5kcyB1cCB0byBhIG11bHRpcGxlIG9mIHUz MiBzbyAyOCBwZXIgZW5naW5lLCBmb3IgYSAKPj4+IHRvdGFsIG9mIDIyNC4KPj4+Cj4+Pj4gU2Vw YXJhdGUgdGFibGVzIHBlciBnZW5zIHdvdWxkIGJlOgo+Pj4+Cj4+Pj4gc2l6ZW9mKHN0cnVjdCBl bmdpbmVfaW5mbykgaXMgMTggYnl0ZXMuCj4+Pj4KPj4+PiBGb3IgPCBnZW42IHdlJ2QgbmVlZCAz IGVuZ2luZXMgKiAxOCA9IDU0Cj4+Pj4gPCBnZW4xMSA9IDUgZW5naW5lcyAqIDE4ID0gOTAKPj4+ PiDCoD49IGdlbjExID0gOCBlbmdpbmVzICogMTggPSAxNDQKPj4+Pgo+Pj4+IDU0ICsgOTAgKyAx NDQgPSAyODggYnl0ZXMKPj4+Pgo+Pj4+IFNvIGEgbGl0dGxlIGJpdCBiaWdnZXIuIEhtLiBQbHVz IHdlIHdvdWxkIG5lZWQgdG8gcmVmYWN0b3Igc28gCj4+Pj4gaW50ZWxfZW5naW5lc1tdIGlzIG5v dCBpbmRleGVkIGJ5IGVuZ2luZS0+aWQgYnV0IGlzIGNvbnRpZ3VvdXMgYXJyYXkgCj4+Pj4gd2l0 aCBlbmdpbmUtPmlkIGluIHRoZSBlbGVtZW50cy4gQ29kZSB0byBsb29rdXAgdGhlIGNvbXBhY3Qg YXJyYXkgCj4+Pj4gc2hvdWxkIGJlIHNpbXBsZXIgdGhhbiBjb21iaW5lZCBuZXcgY29kZSBmcm9t IHRoaXMgcGF0Y2gsIGVzcGVjaWFsbHkgCj4+Pj4gaWYgeW91IGFkZCB0aGUgdGVzdCBhcyBDaHJp cyBzdWdnZXN0ZWQuIFNvIHNlcGFyYXRlIGVuZ2luZSBpbmZvIAo+Pj4+IGFycmF5cyB3b3VsZCB3 aW4gSSB0aGluayBvdmVyYWxsIC0gd2hlbiBjb25zaWRlcmluZyBzaXplIG9mIHRleHQgKyAKPj4+ PiBzaXplIG9mIGRhdGEgKyBzaXplIG9mIHNvdXJjZSBjb2RlLgo+Pj4+Cj4+Pgo+Pj4gTm90IHN1 cmUuIEkgd291bGQgZXhjbHVkZSB0aGUgc2VsZnRlc3QsIHdoaWNoIGlzIHVzdWFsbHkgbm90IGNv bXBpbGVkIAo+Pj4gZm9yIHJlbGVhc2VkIGtlcm5lbHMsIHdoaWNoIGxlYWRzIHRvOgo+Pgo+PiBZ ZXMsIGJ1dCB3ZSBjYW5ub3QgZXhjbHVkZSBpdHMgc291cmNlIHNpbmNlIHNlbGZ0ZXN0cyBmb3Ig c2VwYXJhdGUgCj4+IHRhYmxlcyB3b3VsZG4ndCBiZSBuZWVkZWQuCj4+Cj4+PiBhZGQvcmVtb3Zl OiAwLzAgZ3Jvdy9zaHJpbms6IDMvMSB1cC9kb3duOiAxMDAvLTcgKDkzKQo+Pj4gRnVuY3Rpb27C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgb2xkwqDCoMKgwqAgbmV3wqDCoCBkZWx0YQo+Pj4gaW50ZWxfZW5naW5l c8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIDE2MMKgwqDCoMKgIDIyNMKgwqDCoMKgICs2NAo+Pj4gX19mdW5jX1/CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAxMzg5McKgwqAgMTM5MTDCoMKgwqDCoCArMTkKPj4+IGludGVsX2VuZ2luZXNfaW5pdF9tbWlv wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAxMjQ3wqDCoMKgIDEyNjTC oMKgwqDCoCArMTcKPj4+IGludGVsX2luaXRfYnNkX3JpbmdfYnVmZmVywqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIDE0MsKgwqDCoMKgIDEzNcKgwqDCoMKgwqAgLTcKPj4+IFRv dGFsOiBCZWZvcmU9MTQ3OTYyNiwgQWZ0ZXI9MTQ3OTcxOSwgY2hnICswLjAxJQo+Pj4KPj4+IFRv dGFsIGdyb3d0aCBpcyA5Mywgd2hpY2ggaXMgbGVzcyB0aGVuIHlvdXIgZXN0aW1hdGlvbiBmb3Ig dGhlIGdyb3d0aCAKPj4+IGludHJvZHVjZWQgYnkgcmVwbGljYXRpbmcgdGhlIHRhYmxlLgo+Pj4K Pj4+PiBCdXQgb24gdGhlIG90aGVyIGhhbmQgeW91ciBzb2x1dGlvbiBtaWdodCBiZSBtb3JlIGZ1 dHVyZSBwcm9vZi4gU28gSSAKPj4+PiBkb24ndCBrbm93LiBVc2UgdGhlIGNyeXN0YWwgYmFsbCB0 byBkZWNpZGU/IDopCj4+Pj4KPj4+Cj4+PiBJIHRoaW5rIHdlIHNob3VsZCBleHBlY3QgdGhhdCB0 aGUgdG90YWwgZW5naW5lIGNvdW50IGNvdWxkIGdyb3cgd2l0aCAKPj4+IGZ1dHVyZSBnZW5zLiBJ biB0aGlzIGNhc2UgdG8gbWUgYWRkaW5nIGEgbmV3IGVudHJ5IHRvIGEgdW5pZmllZCB0YWJsZSAK Pj4+IHNlZW1zIG11Y2ggY2xlYW5lciAoYW5kIHVzZXMgbGVzcyBkYXRhKSB0aGFuIGFkZGluZyBh IGNvbXBsZXRlbHkgbmV3IAo+Pj4gdGFibGUgZWFjaCB0aW1lLgo+Pgo+PiBPa2F5IEkgd2FzIG9m ZiBpbiBteSBlc3RpbWF0ZXMuIEJ1dCBpbiBnZW5lcmFsIEkgd2FzIGNvbWluZyBmcm9tIHRoZSAK Pj4gYW5nbGUgb2YgdGhpbmtpbmcgdGhhdCBldmVyeSBuZXcgbW1pbyBiYXNlIGRpZmZlcmVuY2Ug aW4gdGhpcyBzY2hlbWUgCj4+IGdyb3dzIHRoZSBzaXplIGZvciBhbGwgZW5naW5lcy4gU28gaWYg anVzdCBWQ1MgZ3Jvd3Mgb25lIG5ldyBiYXNlLCAKPj4gaW1wYWN0IGlzIG11bHRpcGxpZWQgYnkg TlVNX0VOR0lORVMuIEJ1dCBtYXliZSBzZXBhcmF0ZSB0YWJsZXMgYXJlIAo+PiBhbHNvIG5vdCBh IHNvbHV0aW9uLiBQZXJoYXBzIHB1bGxpbmcgb3V0IG1taW9fYmFzZSBhcnJheXMgdG8gb3V0c2lk ZSAKPj4gc3RydWN0IGVuZ2luZV9pbmZvIGluIGFub3RoZXIgc2V0IG9mIHN0YXRpYyB0YWJsZXMs IHNvIHRoZXkgY291bGQgYmUgCj4+IG51bGwgdGVybWluYXRlZCB3b3VsZCBiZSBiZXN0IG9mIGJv dGggd29ybGRzPwo+Pgo+PiBzdHJ1Y3QgZW5naW5lX21taW9fYmFzZSB7Cj4+IMKgwqDCoMKgwqB1 MzIgZ2VuIDogODsKPj4gwqDCoMKgwqDCoHUzMiBiYXNlIDogMjQ7Cj4+IH07Cj4+Cj4+IHN0YXRp YyBjb25zdCBzdHJ1Y3QgZW5naW5lX21taW9fYmFzZSB2Y3MwX21taW9fYmFzZXNbXSA9IHsKPj4g wqDCoMKgwqDCoHsgLmdlbiA9IDExLCAuYmFzZSA9IEdFTjExX0JTRF9SSU5HX0JBU0UgfSwKPj4g wqDCoMKgwqDCoHsgLmdlbiA9IDYsIC5iYXNlID0gR0VONl9CU0RfUklOR19CQVNFIH0sCj4+IMKg wqDCoMKgwqB7IC5nZW4gPSA0LCAuYmFzZSA9IEJTRF9SSU5HX0JBU0UgfSwKPj4gwqDCoMKgwqDC oHsgfSwKPj4gfTsKPj4KPj4gQW5kIHRoZW4gaW4gaW50ZWxfZW5naW5lcyBhcnJheSwgZm9yIEJT RDoKPj4KPj4gwqDCoMKgIHsKPj4gwqDCoMKgwqDCoC4uLgo+PiDCoMKgwqDCoMKgLm1taW9fYmFz ZXMgPSAmdmNzMF9tbWlvX2Jhc2VzOwo+PiDCoMKgwqDCoMKgLi4uCj4+IMKgwqDCoCB9LAo+Pgo+ PiBUaGlzIHdheSB3ZSBsaW1pdCBkYXRhIGdyb3d0aCBvbmx5IHRvIGVuZ2luZXMgd2hpY2ggY2hh bmdlIHRoZWlyIG1taW8gCj4+IGJhc2VzIGZyZXF1ZW50bHkuCj4+Cj4+IEp1c3QgYW4gaWRlYS4K Pj4KPiAKPiBJIGdhdmUgdGhpcyBhIHRyeSBhbmQgdGhlIGNvZGUgYWN0dWFsbHkgZ3Jvd3M6Cj4g Cj4gYWRkL3JlbW92ZTogOC8wIGdyb3cvc2hyaW5rOiAyLzAgdXAvZG93bjogMTIwLzAgKDEyMCkK PiBGdW5jdGlvbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBvbGTCoMKgwqDCoCBuZXfCoMKgIGRlbHRhCj4gaW50 ZWxfZW5naW5lc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIDIyNMKgwqDCoMKgIDI1NsKgwqDCoMKgICszMgo+IHZjczBfbW1pb19i YXNlc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIC3CoMKgwqDCoMKgIDE2wqDCoMKgwqAgKzE2Cj4gdmVjczFfbW1pb19iYXNlc8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAtwqDCoMKgwqDCoCAxMsKgwqDCoMKgICsxMgo+IHZlY3MwX21taW9fYmFzZXPCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLcKgwqDC oMKgwqAgMTLCoMKgwqDCoCArMTIKPiB2Y3MxX21taW9fYmFzZXPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtwqDCoMKgwqDCoCAx MsKgwqDCoMKgICsxMgo+IHZjczNfbW1pb19iYXNlc8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC3CoMKgwqDCoMKgwqAgOMKgwqDC oMKgwqAgKzgKPiB2Y3MyX21taW9fYmFzZXPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAtwqDCoMKgwqDCoMKgIDjCoMKgwqDCoMKg ICs4Cj4gcmNzX21taW9fYmFzZXPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC3CoMKgwqDCoMKgwqAgOMKgwqDCoMKgwqAgKzgK PiBpbnRlbF9lbmdpbmVzX2luaXRfbW1pb8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgMTI2NMKgwqDCoCAxMjcywqDCoMKgwqDCoCArOAo+IGJjc19tbWlvX2Jhc2VzwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAtwqDCoMKgwqDCoMKgIDTCoMKgwqDCoMKgICs0Cj4gVG90YWw6IEJlZm9yZT0xNDc5NzE5 LCBBZnRlcj0xNDc5ODM5LCBjaGcgKzAuMDElCj4gCj4gSSBoYXZlIG5vIGlkZWEgd2hhdCB0aGUg Y29tcGlsZXIgaXMgZG9pbmcgdG8gZ3JvdyBpbnRlbF9lbmdpbmVzLCBzaW5jZSAKPiBieSByZXBs YWNpbmcgYW5kIGFycmF5IG9mIDMgdTMycyB3aXRoIGEgcG9pbnRlciBJIHdvdWxkIGV4cGVjdCBh IHNocmluayAKPiBvZiA0IGJ5dGVzIHBlci1lbmdpbmUuIEFueXdheSwgZXZlbiB3aXRob3V0IHRo ZSBjb21waWxlciB3ZWlyZG5lc3Mgd2l0aAoKSXQgcHJvYmFibHkgaGFzIHRvIGFsaWduIHRoZSBw b2ludGVyIHRvIDggYnl0ZXMgc28gdGhhdCBjcmVhdGVzIGEgaG9sZS4gCk1vdmluZyBtbWlvX2Jh c2UgcG9pbnRlciBoaWdoZXIgdXAsIGVpdGhlciB0byB0aGUgdG9wIG9yIGFmdGVyIHR3byAKdW5z aWduZWQgaW50cyBzaG91bGQgd29yay4gT3IgcGFja2luZyB0aGUgc3RydWN0LgoKPiB0aGlzIG1l dGhvZCB3ZSB3b3VsZCBncm93IHRoZSBjb2RlIHNpemUgb2YgYXQgbGVhc3QgNCBieXRlcyBwZXIg ZW5naW5lIAo+IGJlY2F1c2Ugd2UgcmVwbGFjZSBhbiBhcnJheSBvZiAzIHUzMiAoMTJCKSB3aXRo IGEgcG9pbnRlciAoOEIpIGFuZCBhbiAKPiBhcnJheSBvZiBhdCAyIG9yIG1vcmUgdTMyICg4Qisp LiBJIGd1ZXNzIHdlIGNhbiByZWNvbnNpZGVyIGlmL3doZW4gb25lIAo+IGVuZ2luZSByZWFjaGVz IG1vcmUgdGhhbiAzIG1taW8gYmFzZXMuCgpZZWFoIGl0J3MgZmluZS4gSSB3YXMgdGhpbmtpbmcg dGhhdCBzaW5jZSB5b3UgYXJlIGFsbW9zdCB0aGVyZSBpdCBtYWtlcyAKc2Vuc2UgdG8gZnV0dXJl IHByb29mIGl0IG1vcmUsIHNpbmNlIG5vIG9uZSB3aWxsIHByb2JhYmx5IHJlbWVtYmVyIGl0IAps YXRlci4gQnV0IE9LLgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9pbnRlbC1nZngK