From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Implement read-only support in whitelist selftest Date: Tue, 25 Jun 2019 09:33:00 +0100 Message-ID: References: <6d8350d9-7078-96d5-eba8-e8a894500492@linux.intel.com> <20190618195421.31027-1-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8B6C789022 for ; Tue, 25 Jun 2019 08:33:02 +0000 (UTC) In-Reply-To: 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: John.C.Harrison@Intel.com, Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org ClBpbmcuCgpXZSBhZ3JlZWQgdG8gZm9sbG93IHVwIHdpdGggYSB0ZXN0IEFTQVAgYWZ0ZXIgbWVy Z2luZy4KCkhlcmUncyBhbm90aGVyIGZlYXR1cmUgcmVxdWVzdCBmb3IgeW91OiBBZGQgZW5naW5l LT5uYW1lIGxvZ2dpbmcgdG8gCndhX2luaXRfc3RhcnQgaW4gaW50ZWxfZW5naW5lX2luaXRfd2hp dGVsaXN0LiBCZWNhdXNlIHdpdGggdGhlIGNoYW5nZSB0byAKYWRkIHdoaXRlbGlzdCBvbiBvdGhl ciBlbmdpbmVzIHRoZXJlIGFyZSBub3cgbXVsdGlwbGUgaWRlbnRpY2FsIGxpbmVzIGluIApkbWVz Zy4KClRvIHN1bSB1cCB0aGF0J3MgdGhyZWUgdG9kbyBpdGVtczoKCjEuIFJlc2VuZCB0aGUgc2Vs ZnRlc3QgZm9yIENJLgoyLiBBZGQgR0VNX0JVR19PTiBmb3IgcmVnLT5mbGFncyBjaGVja2luZyBp bnZhbGlkIGZsYWcgdXNhZ2UuCjMuIEltcHJvdmUgZG1lc2cgc28gd2Uga25vdyB3aGljaCBlbmdp bmUgZ290IGhvdyBtYW55IHdoaXRlbGlzdCBlbnRyaWVzLgoKVGhhbmtzLAoKVHZydGtvCgpPbiAy MC8wNi8yMDE5IDE2OjQzLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPiAKPiBIaSwKPiAKPiBZb3Ug d2lsbCBuZWVkIHRvIHNlbmQgdGhpcyBub3QgYXMgcmVwbHkgdG8gdGhpcyB0aHJlYWQgc28gaXQg aXMgcGlja2VkIAo+IHVwIGJ5IENJIGFuZCB0aGVuIGNhbiBiZSBtZXJnZWQuCj4gCj4gQnV0IHBs ZWFzZSBhbHNvIGFkZCBhIHBhdGNoIHdoaWNoIGFkZHMgdGhhdCBHRU1fQlVHX09OIHJlZy0+Zmxh Z3MgY2hlY2sgCj4gd2UgdGFsa2VkIGFib3V0Lgo+IAo+IFJlZ2FyZHMsCj4gCj4gVHZydGtvCj4g Cj4gT24gMTgvMDYvMjAxOSAyMDo1NCwgSm9obi5DLkhhcnJpc29uQEludGVsLmNvbSB3cm90ZToK Pj4gRnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4KPj4g TmV3ZXIgaGFyZHdhcmUgc3VwcG9ydHMgZXh0cmEgZmVhdHVyZSBpbiB0aGUgd2hpdGVsaXN0IHJl Z2lzdGVycy4gVGhpcwo+PiBwYXRjaCB1cGRhdGVzIHRoZSBzZWxmdGVzdCB0byB0ZXN0IHRoYXQg ZW50cmllcyBtYXJrZWQgYXMgcmVhZCBvbmx5Cj4+IGFyZSBhY3R1YWxseSByZWFkIG9ubHkuCj4+ Cj4+IEFsc28gdXBkYXRlZCB0aGUgcmVhZC93cml0ZSBhY2Nlc3MgZGVmaW5pdGlvbnMgdG8gbWFr ZSBpdCBjbGVhcmVyIHRoYXQKPj4gdGhleSBhcmUgYW4gZW51bSBmaWVsZCBub3QgYSBzZXQgb2Yg c2luZ2xlIGJpdCBmbGFncy4KPj4KPj4gU2lnbmVkLW9mZi1ieTogSm9obiBIYXJyaXNvbiA8Sm9o bi5DLkhhcnJpc29uQEludGVsLmNvbT4KPj4gQ0M6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJz dWxpbkBpbnRlbC5jb20+Cj4+IC0tLQo+PiDCoCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRl bF93b3JrYXJvdW5kcy5jwqDCoCB8wqAgOCArLS0KPj4gwqAgLi4uL2dwdS9kcm0vaTkxNS9ndC9z ZWxmdGVzdF93b3JrYXJvdW5kcy5jwqDCoMKgIHwgNTMgKysrKysrKysrKysrKy0tLS0tLQo+PiDC oCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB8wqAgOSArKy0tCj4+IMKgIDMgZmlsZXMgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwg MjIgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9pbnRlbF93b3JrYXJvdW5kcy5jIAo+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVs X3dvcmthcm91bmRzLmMKPj4gaW5kZXggOTNjYWE3YjZkN2E5Li40NDI5ZWUwOGIyMGUgMTAwNjQ0 Cj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3dvcmthcm91bmRzLmMKPj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfd29ya2Fyb3VuZHMuYwo+PiBAQCAt MTAyOCw3ICsxMDI4LDcgQEAgd2hpdGVsaXN0X3JlZ19leHQoc3RydWN0IGk5MTVfd2FfbGlzdCAq d2FsLCAKPj4gaTkxNV9yZWdfdCByZWcsIHUzMiBmbGFncykKPj4gwqAgc3RhdGljIHZvaWQKPj4g wqAgd2hpdGVsaXN0X3JlZyhzdHJ1Y3QgaTkxNV93YV9saXN0ICp3YWwsIGk5MTVfcmVnX3QgcmVn KQo+PiDCoCB7Cj4+IC3CoMKgwqAgd2hpdGVsaXN0X3JlZ19leHQod2FsLCByZWcsIFJJTkdfRk9S Q0VfVE9fTk9OUFJJVl9SVyk7Cj4+ICvCoMKgwqAgd2hpdGVsaXN0X3JlZ19leHQod2FsLCByZWcs IFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfUlcpOwo+PiDCoCB9Cj4+IMKgIHN0YXRpYyB2 b2lkIGdlbjlfd2hpdGVsaXN0X2J1aWxkKHN0cnVjdCBpOTE1X3dhX2xpc3QgKncpCj4+IEBAIC0x MTM0LDEzICsxMTM0LDEzIEBAIHByaW50ayhLRVJOX0lORk8gIiUtMzJzOiU0ZD4gQm9vISBbZW5n aW5lID0gCj4+ICVzLCBpbnN0YW5jZSA9ICVkLCBiYXNlID0gMHglWCwgcmVnCj4+IMKgwqDCoMKg wqDCoMKgwqDCoCAvKiBodWNTdGF0dXNSZWdPZmZzZXQgKi8KPj4gwqDCoMKgwqDCoMKgwqDCoMKg IHdoaXRlbGlzdF9yZWdfZXh0KHcsIF9NTUlPKDB4MjAwMCArIGVuZ2luZS0+bW1pb19iYXNlKSwK Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUklOR19GT1JDRV9UT19OT05Q UklWX1JEKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUklOR19GT1JD RV9UT19OT05QUklWX0FDQ0VTU19SRCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBodWNVS2Vy bmVsSGRySW5mb1JlZ09mZnNldCAqLwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgd2hpdGVsaXN0X3Jl Z19leHQodywgX01NSU8oMHgyMDE0ICsgZW5naW5lLT5tbWlvX2Jhc2UpLAo+PiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkQpOwo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZf QUNDRVNTX1JEKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIC8qIGh1Y1N0YXR1czJSZWdPZmZzZXQg Ki8KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHdoaXRlbGlzdF9yZWdfZXh0KHcsIF9NTUlPKDB4MjNC MCArIGVuZ2luZS0+bW1pb19iYXNlKSwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX1JEKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19SRCk7Cj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBicmVhazsKPj4gwqDCoMKgwqDCoCBkZWZhdWx0Ogo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3Rfd29ya2Fyb3VuZHMuYyAKPj4gYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCj4+IGluZGV4IGVi NmQzYWEyYzhjYy4uYTBhODhlYzY2ODYxIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF93b3JrYXJvdW5kcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L3NlbGZ0ZXN0X3dvcmthcm91bmRzLmMKPj4gQEAgLTM5OSw2ICszOTksMTAgQEAgc3Rh dGljIGJvb2wgd29fcmVnaXN0ZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAKPj4gKmVuZ2luZSwg dTMyIHJlZykKPj4gwqDCoMKgwqDCoCBlbnVtIGludGVsX3BsYXRmb3JtIHBsYXRmb3JtID0gSU5U RUxfSU5GTyhlbmdpbmUtPmk5MTUpLT5wbGF0Zm9ybTsKPj4gwqDCoMKgwqDCoCBpbnQgaTsKPj4g K8KgwqDCoCBpZiAoKHJlZyAmIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfTUFTSykgPT0K Pj4gK8KgwqDCoMKgwqDCoMKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19XUikKPj4g K8KgwqDCoMKgwqDCoMKgIHJldHVybiB0cnVlOwo+PiArCj4+IMKgwqDCoMKgwqAgZm9yIChpID0g MDsgaSA8IEFSUkFZX1NJWkUod29fcmVnaXN0ZXJzKTsgaSsrKSB7Cj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBpZiAod29fcmVnaXN0ZXJzW2ldLnBsYXRmb3JtID09IHBsYXRmb3JtICYmCj4+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHdvX3JlZ2lzdGVyc1tpXS5yZWcgPT0gcmVnKQo+PiBAQCAt NDEwLDcgKzQxNCw4IEBAIHN0YXRpYyBib29sIHdvX3JlZ2lzdGVyKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgCj4+ICplbmdpbmUsIHUzMiByZWcpCj4+IMKgIHN0YXRpYyBib29sIHJvX3JlZ2lzdGVy KHUzMiByZWcpCj4+IMKgIHsKPj4gLcKgwqDCoCBpZiAocmVnICYgUklOR19GT1JDRV9UT19OT05Q UklWX1JEKQo+PiArwqDCoMKgIGlmICgocmVnICYgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VT U19NQVNLKSA9PQo+PiArwqDCoMKgwqDCoMKgwqDCoCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUND RVNTX1JEKQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIHRydWU7Cj4+IMKgwqDCoMKgwqAg cmV0dXJuIGZhbHNlOwo+PiBAQCAtNDgyLDEyICs0ODcsMTIgQEAgc3RhdGljIGludCBjaGVja19k aXJ0eV93aGl0ZWxpc3Qoc3RydWN0IAo+PiBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCB1MzIgc3JtLCBscm0sIHJzdmQ7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB1 MzIgZXhwZWN0Owo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGlkeDsKPj4gK8KgwqDCoMKgwqDC oMKgIGJvb2wgcm9fcmVnOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHdvX3JlZ2lzdGVyKGVu Z2luZSwgcmVnKSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGludWU7Cj4+IC3C oMKgwqDCoMKgwqDCoCBpZiAocm9fcmVnaXN0ZXIocmVnKSkKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgY29udGludWU7Cj4+ICvCoMKgwqDCoMKgwqDCoCByb19yZWcgPSByb19yZWdpc3Rlcihy ZWcpOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3JtID0gTUlfU1RPUkVfUkVHSVNURVJfTUVNOwo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgbHJtID0gTUlfTE9BRF9SRUdJU1RFUl9NRU07Cj4+IEBAIC01 ODgsMjQgKzU5MywzNiBAQCBzdGF0aWMgaW50IGNoZWNrX2RpcnR5X3doaXRlbGlzdChzdHJ1Y3Qg Cj4+IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDC oMKgwqDCoMKgwqDCoMKgIEdFTV9CVUdfT04odmFsdWVzW0FSUkFZX1NJWkUodmFsdWVzKSAtIDFd ICE9IDB4ZmZmZmZmZmYpOwo+PiAtwqDCoMKgwqDCoMKgwqAgcnN2ZCA9IHJlc3VsdHNbQVJSQVlf U0laRSh2YWx1ZXMpXTsgLyogZGV0ZWN0IHdyaXRlIG1hc2tpbmcgKi8KPj4gLcKgwqDCoMKgwqDC oMKgIGlmICghcnN2ZCkgewo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcl9lcnIoIiVzOiBV bmFibGUgdG8gd3JpdGUgdG8gd2hpdGVsaXN0ZWQgcmVnaXN0ZXIgJXhcbiIsCj4+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW5naW5lLT5uYW1lLCByZWcpOwo+PiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBlcnIgPSAtRUlOVkFMOwo+PiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBnb3RvIG91dF91bnBpbjsKPj4gK8KgwqDCoMKgwqDCoMKgIGlmIChyb19yZWcpIHsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcnN2ZCA9IDB4RkZGRkZGRkY7Cj4+ICvCoMKgwqDCoMKg wqDCoCB9IGVsc2Ugewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByc3ZkID0gcmVzdWx0c1tB UlJBWV9TSVpFKHZhbHVlcyldOyAvKiBkZXRlY3Qgd3JpdGUgCj4+IG1hc2tpbmcgKi8KPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCFyc3ZkKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgcHJfZXJyKCIlczogVW5hYmxlIHRvIHdyaXRlIHRvIHdoaXRlbGlzdGVkIHJl Z2lzdGVyIAo+PiAleFxuIiwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGVuZ2luZS0+bmFtZSwgcmVnKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBlcnIgPSAtRUlOVkFMOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGdvdG8gb3V0X3VucGluOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoCB9Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBleHBlY3QgPSByZXN1bHRzWzBdOwo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWR4ID0gMTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAo diA9IDA7IHYgPCBBUlJBWV9TSVpFKHZhbHVlcyk7IHYrKykgewo+PiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBleHBlY3QgPSByZWdfd3JpdGUoZXhwZWN0LCB2YWx1ZXNbdl0sIHJzdmQpOwo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocm9fcmVnKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGV4cGVjdCA9IHJlc3VsdHNbMF07Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGVsc2UKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleHBlY3QgPSByZWdf d3JpdGUoZXhwZWN0LCB2YWx1ZXNbdl0sIHJzdmQpOwo+PiArCj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGlmIChyZXN1bHRzW2lkeF0gIT0gZXhwZWN0KQo+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGVycisrOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp ZHgrKzsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAo diA9IDA7IHYgPCBBUlJBWV9TSVpFKHZhbHVlcyk7IHYrKykgewo+PiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBleHBlY3QgPSByZWdfd3JpdGUoZXhwZWN0LCB+dmFsdWVzW3ZdLCByc3ZkKTsKPj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJvX3JlZykKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBleHBlY3QgPSByZXN1bHRzWzBdOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXhwZWN0ID0gcmVn X3dyaXRlKGV4cGVjdCwgfnZhbHVlc1t2XSwgcnN2ZCk7Cj4+ICsKPj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWYgKHJlc3VsdHNbaWR4XSAhPSBleHBlY3QpCj4+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZXJyKys7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGlkeCsrOwo+PiBAQCAtNjIyLDcgKzYzOSwxMCBAQCBzdGF0aWMgaW50IGNoZWNrX2RpcnR5X3do aXRlbGlzdChzdHJ1Y3QgCj4+IGk5MTVfZ2VtX2NvbnRleHQgKmN0eCwKPj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgZm9yICh2ID0gMDsgdiA8IEFSUkFZX1NJWkUodmFsdWVzKTsgdisrKSB7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdTMyIHcgPSB2YWx1ZXNbdl07 Cj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXhwZWN0ID0gcmVnX3dyaXRlKGV4 cGVjdCwgdywgcnN2ZCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHJv X3JlZykKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGV4cGVjdCA9 IHJlc3VsdHNbMF07Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZWxzZQo+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXhwZWN0ID0gcmVnX3dyaXRl KGV4cGVjdCwgdywgcnN2ZCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg cHJfaW5mbygiV3JvdGUgJTA4eCwgcmVhZCAlMDh4LCBleHBlY3QgJTA4eFxuIiwKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHcsIHJlc3VsdHNbaWR4XSwgZXhw ZWN0KTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZHgrKzsKPj4gQEAg LTYzMCw3ICs2NTAsMTAgQEAgc3RhdGljIGludCBjaGVja19kaXJ0eV93aGl0ZWxpc3Qoc3RydWN0 IAo+PiBpOTE1X2dlbV9jb250ZXh0ICpjdHgsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGZvciAodiA9IDA7IHYgPCBBUlJBWV9TSVpFKHZhbHVlcyk7IHYrKykgewo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHUzMiB3ID0gfnZhbHVlc1t2XTsKPj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleHBlY3QgPSByZWdfd3JpdGUoZXhwZWN0LCB3LCByc3Zk KTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAocm9fcmVnKQo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZXhwZWN0ID0gcmVzdWx0c1swXTsK Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlCj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBleHBlY3QgPSByZWdfd3JpdGUoZXhwZWN0LCB3LCBy c3ZkKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwcl9pbmZvKCJXcm90 ZSAlMDh4LCByZWFkICUwOHgsIGV4cGVjdCAlMDh4XG4iLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdywgcmVzdWx0c1tpZHhdLCBleHBlY3QpOwo+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlkeCsrOwo+PiBAQCAtNzYyLDggKzc4NSw4 IEBAIHN0YXRpYyBpbnQgcmVhZF93aGl0ZWxpc3RlZF9yZWdpc3RlcnMoc3RydWN0IAo+PiBpOTE1 X2dlbV9jb250ZXh0ICpjdHgsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCB1NjQgb2Zmc2V0ID0gcmVz dWx0cy0+bm9kZS5zdGFydCArIHNpemVvZih1MzIpICogaTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg IHUzMiByZWcgPSBpOTE1X21taW9fcmVnX29mZnNldChlbmdpbmUtPndoaXRlbGlzdC5saXN0W2ld LnJlZyk7Cj4+IC3CoMKgwqDCoMKgwqDCoCAvKiBDbGVhciBSRCBvbmx5IGFuZCBXUiBvbmx5IGZs YWdzICovCj4+IC3CoMKgwqDCoMKgwqDCoCByZWcgJj0gfihSSU5HX0ZPUkNFX1RPX05PTlBSSVZf UkQgfCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfV1IpOwo+PiArwqDCoMKgwqDCoMKgwqAgLyogQ2xl YXIgYWNjZXNzIHBlcm1pc3Npb24gZmllbGQgKi8KPj4gK8KgwqDCoMKgwqDCoMKgIHJlZyAmPSB+ UklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19NQVNLOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAg KmNzKysgPSBzcm07Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAqY3MrKyA9IHJlZzsKPj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggCj4+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiBpbmRleCBjYzI5NWE0ZjZlOTIuLmJhMjJlM2I4Zjc3ZSAx MDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+PiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCj4+IEBAIC0yNTEzLDEzICsyNTEzLDE2IEBA IGVudW0gaTkxNV9wb3dlcl93ZWxsX2lkIHsKPj4gwqAgI2RlZmluZcKgwqAgUklOR19XQUlUX1NF TUFQSE9SRcKgwqDCoCAoMSA8PCAxMCkgLyogZ2VuNisgKi8KPj4gwqAgI2RlZmluZSBSSU5HX0ZP UkNFX1RPX05PTlBSSVYoYmFzZSwgaSkgX01NSU8oKChiYXNlKSArIDB4NEQwKSArIChpKSAKPj4g KiA0KQo+PiAtI2RlZmluZcKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX1JXwqDCoMKgwqDCoMKg wqAgKDAgPDwgMjgpwqDCoMKgIC8qIENGTCsgJiAKPj4gR2VuMTErICovCj4+IC0jZGVmaW5lwqDC oCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfUkTCoMKgwqDCoMKgwqDCoCAoMSA8PCAyOCkKPj4gLSNk ZWZpbmXCoMKgIFJJTkdfRk9SQ0VfVE9fTk9OUFJJVl9XUsKgwqDCoMKgwqDCoMKgICgyIDw8IDI4 KQo+PiArI2RlZmluZcKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19SV8KgwqDCoCAo MCA8PCAyOCnCoMKgwqAgLyogQ0ZMKyAmIAo+PiBHZW4xMSsgKi8KPj4gKyNkZWZpbmXCoMKgIFJJ TkdfRk9SQ0VfVE9fTk9OUFJJVl9BQ0NFU1NfUkTCoMKgwqAgKDEgPDwgMjgpCj4+ICsjZGVmaW5l wqDCoCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZfQUNDRVNTX1dSwqDCoMKgICgyIDw8IDI4KQo+PiAr I2RlZmluZcKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19JTlZBTElEwqDCoMKgICgz IDw8IDI4KQo+PiArI2RlZmluZcKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX0FDQ0VTU19NQVNL wqDCoMKgICgzIDw8IDI4KQo+PiDCoCAjZGVmaW5lwqDCoCBSSU5HX0ZPUkNFX1RPX05PTlBSSVZf UkFOR0VfMcKgwqDCoMKgwqDCoMKgICgwIDw8IDApwqDCoMKgwqAgLyogQ0ZMKyAKPj4gJiBHZW4x MSsgKi8KPj4gwqAgI2RlZmluZcKgwqAgUklOR19GT1JDRV9UT19OT05QUklWX1JBTkdFXzTCoMKg wqDCoMKgwqDCoCAoMSA8PCAwKQo+PiDCoCAjZGVmaW5lwqDCoCBSSU5HX0ZPUkNFX1RPX05PTlBS SVZfUkFOR0VfMTbCoMKgwqAgKDIgPDwgMCkKPj4gwqAgI2RlZmluZcKgwqAgUklOR19GT1JDRV9U T19OT05QUklWX1JBTkdFXzY0wqDCoMKgICgzIDw8IDApCj4+ICsjZGVmaW5lwqDCoCBSSU5HX0ZP UkNFX1RPX05PTlBSSVZfUkFOR0VfTUFTS8KgwqDCoCAoMyA8PCAwKQo+PiDCoCAjZGVmaW5lwqDC oCBSSU5HX01BWF9OT05QUklWX1NMT1RTwqAgMTIKPj4gwqAgI2RlZmluZSBHRU43X1RMQl9SRF9B RERSwqDCoMKgIF9NTUlPKDB4NDcwMCkKPj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4