From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Bride Subject: Re: [PATCH IGT v2 4/6] tests/kms_frontbuffer_tracking: Refactor to use IGT PSR library functions Date: Fri, 7 Jul 2017 15:30:20 -0700 Message-ID: <20170707223020.GA10605@shiv> References: <1498849944-26404-1-git-send-email-jim.bride@linux.intel.com> <1498849944-26404-5-git-send-email-jim.bride@linux.intel.com> 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 7396B6E199 for ; Fri, 7 Jul 2017 22:32:50 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx , Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBKdW4gMzAsIDIwMTcgYXQgMDE6MTk6NTdQTSAtMDcwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IEkgYmVsaWV2ZSBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gY3JlYXRlIHRoZSBwc3IgbGli IHdpdGggb25seSBvbmUKPiBmdW5jdGlvbiBhdCB0aW1lIGFuZCBvbiBldmVyeSBwYXRjaCB0aGF0 IGFkZHMgdGhlIG5ldyBmdW5jdGlvbiBhbHJlYWR5Cj4gcmVtb3ZlcyB0aGF0IGZyb20gaGVyZSBh bmQgZnJvbSBmcm9udGJ1ZmZlciB0cmFja2luZyB0ZXN0IGFzIHdlbGwuLi4KPiAKPiBlYXNpZXIg dG8gcmV2aWV3IGFuZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBhcmUgbm90IGNoYW5naW5nIHRoZSBi ZWhhdmlvdXIuCgpJJ20gdGVzdGluZyBhIG5ldyBzZXJpZXMgd2l0aCB0aGUgcmVxdWVzdGVkIHN0 cnVjdHVyYWwgY2hhbmdlcyBhbmQgcmV2aWV3CmZlZWRiYWNrIHRvLWRhdGUuICBJIGhvcGUgdG8g c2VuZCB0aGVtIG91dCBvbiBNb25kYXkgKHRlc3RpbmcgdGFrZXMgYSB3aGlsZS4pCgpKaW0KCj4g YWxzby4uLgo+IAo+IE9uIEZyaSwgSnVuIDMwLCAyMDE3IGF0IDEyOjEyIFBNLCBKaW0gQnJpZGUg PGppbS5icmlkZUBsaW51eC5pbnRlbC5jb20+IHdyb3RlOgo+ID4gdjI6ICogTWlub3IgZnVuY3Rp b25hbCB0d2Vha3MgYW5kIGJ1ZyBmaXhlcwo+ID4gICAgICogUmViYXNlCj4gPgo+ID4gQ2M6IFJv ZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiA+IENjOiBQYXVsbyBaYW5vbmkg PHBhdWxvLnIuemFub25pQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IEppbSBCcmlkZSA8 amltLmJyaWRlQGxpbnV4LmludGVsLmNvbT4KPiA+IC0tLQo+ID4gIHRlc3RzL2ttc19mcm9udGJ1 ZmZlcl90cmFja2luZy5jIHwgMTE5ICsrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ID4gIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAxMDAgZGVsZXRpb25z KC0pCj4gPgo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5j IGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiA+IGluZGV4IGMyNGU0YTguLjNh OGI3NTQgMTAwNjQ0Cj4gPiAtLS0gYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ ID4gKysrIGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiA+IEBAIC0xODMsNyAr MTgzLDcgQEAgc3RydWN0IHsKPiA+ICB9Owo+ID4KPiA+Cj4gPiAtI2RlZmluZSBTSU5LX0NSQ19T SVpFIDEyCj4gPiArI2RlZmluZSBTSU5LX0NSQ19TSVpFIDYKPiAKPiBJIGJlbGlldmUgdGhpcyBk ZXNlcnZlcyBhIHNlcGFyYXRlZCBwYXRjaC4uLgo+IAo+ID4gIHR5cGVkZWYgc3RydWN0IHsKPiA+ ICAgICAgICAgY2hhciBkYXRhW1NJTktfQ1JDX1NJWkVdOwo+ID4gIH0gc2lua19jcmNfdDsKPiA+ IEBAIC0zMjcsMjggKzMyNyw2IEBAIGRybU1vZGVNb2RlSW5mbyBzdGRfMTAyNF9tb2RlID0gewo+ ID4gICAgICAgICAubmFtZSA9ICJDdXN0b20gMTAyNHg3NjgiLAo+ID4gIH07Cj4gPgo+ID4gLXN0 YXRpYyBkcm1Nb2RlTW9kZUluZm9QdHIgZ2V0X2Nvbm5lY3Rvcl9zbWFsbGVzdF9tb2RlKGRybU1v ZGVDb25uZWN0b3JQdHIgYykKPiA+IC17Cj4gPiAtICAgICAgIGludCBpOwo+ID4gLSAgICAgICBk cm1Nb2RlTW9kZUluZm9QdHIgc21hbGxlc3QgPSBOVUxMOwo+ID4gLQo+ID4gLSAgICAgICBmb3Ig KGkgPSAwOyBpIDwgYy0+Y291bnRfbW9kZXM7IGkrKykgewo+ID4gLSAgICAgICAgICAgICAgIGRy bU1vZGVNb2RlSW5mb1B0ciBtb2RlID0gJmMtPm1vZGVzW2ldOwo+ID4gLQo+ID4gLSAgICAgICAg ICAgICAgIGlmICghc21hbGxlc3QpCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBzbWFsbGVz dCA9IG1vZGU7Cj4gPiAtCj4gPiAtICAgICAgICAgICAgICAgaWYgKG1vZGUtPmhkaXNwbGF5ICog bW9kZS0+dmRpc3BsYXkgPAo+ID4gLSAgICAgICAgICAgICAgICAgICBzbWFsbGVzdC0+aGRpc3Bs YXkgKiBzbWFsbGVzdC0+dmRpc3BsYXkpCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBzbWFs bGVzdCA9IG1vZGU7Cj4gPiAtICAgICAgIH0KPiA+IC0KPiA+IC0gICAgICAgaWYgKGMtPmNvbm5l Y3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9lRFApCj4gPiAtICAgICAgICAgICAgICAg c21hbGxlc3QgPSAmc3RkXzEwMjRfbW9kZTsKPiA+IC0KPiA+IC0gICAgICAgcmV0dXJuIHNtYWxs ZXN0Owo+ID4gLX0KPiA+IC0KPiA+ICBzdGF0aWMgZHJtTW9kZUNvbm5lY3RvclB0ciBnZXRfY29u bmVjdG9yKHVpbnQzMl90IGlkKQo+ID4gIHsKPiA+ICAgICAgICAgaW50IGk7Cj4gPiBAQCAtNDIx LDMwICszOTksNiBAQCBzdGF0aWMgdm9pZCBpbml0X21vZGVfcGFyYW1zKHN0cnVjdCBtb2Rlc2V0 X3BhcmFtcyAqcGFyYW1zLCB1aW50MzJfdCBjcnRjX2lkLAo+ID4gICAgICAgICBwYXJhbXMtPnNw cml0ZS5oID0gNjQ7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgYm9vbCBjb25uZWN0b3JfZ2V0X21v ZGUoZHJtTW9kZUNvbm5lY3RvclB0ciBjLCBkcm1Nb2RlTW9kZUluZm9QdHIgKm1vZGUpCj4gPiAt ewo+ID4gLSAgICAgICAqbW9kZSA9IE5VTEw7Cj4gPiAtCj4gPiAtICAgICAgIGlmIChjLT5jb25u ZWN0aW9uICE9IERSTV9NT0RFX0NPTk5FQ1RFRCB8fCAhYy0+Y291bnRfbW9kZXMpCj4gPiAtICAg ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwo+ID4gLQo+ID4gLSAgICAgICBpZiAoYy0+Y29ubmVj dG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCAmJiBvcHQubm9fZWRwKQo+ID4gLSAg ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiA+IC0KPiA+IC0gICAgICAgaWYgKG9wdC5zbWFs bF9tb2RlcykKPiA+IC0gICAgICAgICAgICAgICAqbW9kZSA9IGdldF9jb25uZWN0b3Jfc21hbGxl c3RfbW9kZShjKTsKPiA+IC0gICAgICAgZWxzZQo+ID4gLSAgICAgICAgICAgICAgICptb2RlID0g JmMtPm1vZGVzWzBdOwo+ID4gLQo+ID4gLSAgICAgICAgLyogT24gSFNXIHRoZSBDUkMgV0EgaXMg c28gYXdmdWwgdGhhdCBpdCBtYWtlcyB5b3UgdGhpbmsgZXZlcnl0aGluZyBpcwo+ID4gLSAgICAg ICAgICogYnVnZ2VkLiAqLwo+ID4gLSAgICAgICBpZiAoSVNfSEFTV0VMTChpbnRlbF9nZXRfZHJt X2RldmlkKGRybS5mZCkpICYmCj4gPiAtICAgICAgICAgICBjLT5jb25uZWN0b3JfdHlwZSA9PSBE Uk1fTU9ERV9DT05ORUNUT1JfZURQKQo+ID4gLSAgICAgICAgICAgICAgICptb2RlID0gJnN0ZF8x MDI0X21vZGU7Cj4gPiAtCj4gPiAtICAgICAgIHJldHVybiB0cnVlOwo+ID4gLX0KPiA+IC0KPiA+ ICBzdGF0aWMgYm9vbCBjb25uZWN0b3Jfc3VwcG9ydHNfcGlwZV9hKGRybU1vZGVDb25uZWN0b3JQ dHIgY29ubmVjdG9yKQo+ID4gIHsKPiA+ICAgICAgICAgaW50IGk7Cj4gPiBAQCAtNDczLDcgKzQy Nyw3IEBAIHN0YXRpYyBib29sIGZpbmRfY29ubmVjdG9yKGJvb2wgZWRwX29ubHksIGJvb2wgcGlw ZV9hLCB1aW50MzJfdCBmb3JiaWRkZW5faWQsCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBj b250aW51ZTsKPiA+ICAgICAgICAgICAgICAgICBpZiAoYy0+Y29ubmVjdG9yX2lkID09IGZvcmJp ZGRlbl9pZCkKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwo+ID4gLSAgICAg ICAgICAgICAgIGlmICghY29ubmVjdG9yX2dldF9tb2RlKGMsICZtb2RlKSkKPiA+ICsgICAgICAg ICAgICAgICBpZiAoIWlndF9wc3JfZmluZF9nb29kX21vZGUoYywgJm1vZGUpKQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7Cj4gPgo+ID4gICAgICAgICAgICAgICAgICpyZXRf Y29ubmVjdG9yID0gYzsKPiA+IEBAIC04MDQsMjMgKzc1OCw2IEBAIHN0YXRpYyB2b2lkIGZiY19w cmludF9zdGF0dXModm9pZCkKPiA+ICAgICAgICAgaWd0X2luZm8oIkZCQyBzdGF0dXM6XG4lc1xu IiwgYnVmKTsKPiA+ICB9Cj4gPgo+ID4gLXN0YXRpYyBib29sIHBzcl9pc19lbmFibGVkKHZvaWQp Cj4gPiAtewo+ID4gLSAgICAgICBjaGFyIGJ1ZlsyNTZdOwo+ID4gLQo+ID4gLSAgICAgICBkZWJ1 Z2ZzX3JlYWQoImk5MTVfZWRwX3Bzcl9zdGF0dXMiLCBidWYpOwo+ID4gLSAgICAgICByZXR1cm4g c3Ryc3RyKGJ1ZiwgIlxuQWN0aXZlOiB5ZXNcbiIpICYmCj4gPiAtICAgICAgICAgICAgICBzdHJz dHIoYnVmLCAiXG5IVyBFbmFibGVkICYgQWN0aXZlIGJpdDogeWVzXG4iKTsKPiA+IC19Cj4gPiAt Cj4gPiAtc3RhdGljIHZvaWQgcHNyX3ByaW50X3N0YXR1cyh2b2lkKQo+ID4gLXsKPiA+IC0gICAg ICAgY2hhciBidWZbMjU2XTsKPiA+IC0KPiA+IC0gICAgICAgZGVidWdmc19yZWFkKCJpOTE1X2Vk cF9wc3Jfc3RhdHVzIiwgYnVmKTsKPiA+IC0gICAgICAgaWd0X2luZm8oIlBTUiBzdGF0dXM6XG4l c1xuIiwgYnVmKTsKPiA+IC19Cj4gPiAtCj4gPiAgc3RhdGljIHN0cnVjdCB0aW1lc3BlYyBmYmNf Z2V0X2xhc3RfYWN0aW9uKHZvaWQpCj4gPiAgewo+ID4gICAgICAgICBzdHJ1Y3QgdGltZXNwZWMg cmV0ID0geyAwLCAwIH07Cj4gPiBAQCAtOTI2LDQ0ICs4NjMsMzEgQEAgc3RhdGljIGJvb2wgZmJj X3dhaXRfdW50aWxfZW5hYmxlZCh2b2lkKQo+ID4gICAgICAgICByZXR1cm4gaWd0X3dhaXQoZmJj X2lzX2VuYWJsZWQoKSwgMjAwMCwgMSk7Cj4gPiAgfQo+ID4KPiA+IC1zdGF0aWMgYm9vbCBwc3Jf d2FpdF91bnRpbF9lbmFibGVkKHZvaWQpCj4gPiAtewo+ID4gLSAgICAgICByZXR1cm4gaWd0X3dh aXQocHNyX2lzX2VuYWJsZWQoKSwgNTAwMCwgMSk7Cj4gPiAtfQo+ID4gLQo+ID4gICNkZWZpbmUg ZmJjX2VuYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxlX2ZiYyIsIDEpCj4g PiAgI2RlZmluZSBmYmNfZGlzYWJsZSgpIGlndF9zZXRfbW9kdWxlX3BhcmFtX2ludCgiZW5hYmxl X2ZiYyIsIDApCj4gPiAtI2RlZmluZSBwc3JfZW5hYmxlKCkgaWd0X3NldF9tb2R1bGVfcGFyYW1f aW50KCJlbmFibGVfcHNyIiwgMSkKPiA+IC0jZGVmaW5lIHBzcl9kaXNhYmxlKCkgaWd0X3NldF9t b2R1bGVfcGFyYW1faW50KCJlbmFibGVfcHNyIiwgMCkKPiA+Cj4gPiAgc3RhdGljIHZvaWQgZ2V0 X3NpbmtfY3JjKHNpbmtfY3JjX3QgKmNyYywgYm9vbCBtYW5kYXRvcnkpCj4gPiAgewo+ID4gLSAg ICAgICBpbnQgcmMsIGVycm5vXzsKPiA+ICsgICAgICAgaW50IHJjOwo+ID4KPiA+ICAgICAgICAg aWYgKCFzaW5rX2NyYy5zdXBwb3J0ZWQpIHsKPiA+ICAgICAgICAgICAgICAgICBtZW1jcHkoY3Jj LCAidW5zdXBwb3J0ZWQhIiwgU0lOS19DUkNfU0laRSk7Cj4gCj4gdGhpcyBkb2Vzbid0IGZpdCBh bnltb3JlCj4gCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gICAgICAgICB9Cj4gPgo+ ID4gLSAgICAgICBsc2VlayhzaW5rX2NyYy5mZCwgMCwgU0VFS19TRVQpOwo+ID4gLQo+ID4gLSAg ICAgICByYyA9IHJlYWQoc2lua19jcmMuZmQsIGNyYy0+ZGF0YSwgU0lOS19DUkNfU0laRSk7Cj4g PiAtICAgICAgIGVycm5vXyA9IGVycm5vOwo+ID4gLQo+ID4gLSAgICAgICBpZiAocmMgPT0gLTEg JiYgZXJybm9fID09IEVOT1RUWSkgewo+ID4gKyAgICAgICByYyA9IGlndF9wc3JfZ2V0X3Npbmtf Y3JjKHNpbmtfY3JjLmZkLCBjcmMtPmRhdGEpOwo+ID4gKyAgICAgICBpZiAocmMgPT0gRU5PVFRZ KSB7Cj4gPiAgICAgICAgICAgICAgICAgaWd0X2luZm8oIlNpbmsgQ1JDIG5vdCBzdXBwb3J0ZWQ6 IHBhbmVsIGRvZXNuJ3Qgc3VwcG9ydCBpdFxuIik7Cj4gPiAgICAgICAgICAgICAgICAgc2lua19j cmMuc3VwcG9ydGVkID0gZmFsc2U7Cj4gPiAtICAgICAgIH0gZWxzZSBpZiAocmMgPT0gLTEgJiYg ZXJybm9fID09IEVUSU1FRE9VVCkgewo+ID4gLSAgICAgICAgICAgICAgIGlmIChzaW5rX2NyYy5y ZWxpYWJsZSkgewo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgaWd0X2luZm8oIlNpbmsgQ1JD IGlzIHVucmVsaWFibGUgb24gdGhpcyBtYWNoaW5lLlxuIik7Cj4gPiArICAgICAgIH0gZWxzZSBp ZiAocmMgPT0gRVRJTUVET1VUKSB7Cj4gPiArICAgICAgICAgICAgICAgaWYgKHNpbmtfY3JjLnJl bGlhYmxlKQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgc2lua19jcmMucmVsaWFibGUgPSBm YWxzZTsKPiA+IC0gICAgICAgICAgICAgICB9Cj4gPiArCj4gPgo+ID4gICAgICAgICAgICAgICAg IGlmIChtYW5kYXRvcnkpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpZ3Rfc2tpcCgiU2lu ayBDUkMgaXMgdW5yZWxpYWJsZSBvbiB0aGlzIG1hY2hpbmUuXG4iKTsKPiA+ICAgICAgICAgfSBl bHNlIHsKPiA+IC0gICAgICAgICAgICAgICBpZ3RfYXNzZXJ0X2YocmMgIT0gLTEsICJVbmV4cGVj dGVkIGVycm9yOiAlZFxuIiwgZXJybm9fKTsKPiA+IC0gICAgICAgICAgICAgICBpZ3RfYXNzZXJ0 KHJjID09IFNJTktfQ1JDX1NJWkUpOwo+ID4gKyAgICAgICAgICAgICAgIGlndF9hc3NlcnRfZihy YyA9PSAwLCAiVW5leHBlY3RlZCBlcnJvcjogJWRcbiIsIHJjKTsKPiA+ICAgICAgICAgfQo+ID4g IH0KPiA+Cj4gPiBAQCAtMTE4MCw3ICsxMTA0LDcgQEAgc3RhdGljIHZvaWQgZGlzYWJsZV9mZWF0 dXJlcyhjb25zdCBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ID4gICAgICAgICAgICAgICAgIHJldHVy bjsKPiA+Cj4gPiAgICAgICAgIGZiY19kaXNhYmxlKCk7Cj4gPiAtICAgICAgIHBzcl9kaXNhYmxl KCk7Cj4gPiArICAgICAgIGlndF9wc3JfZGlzYWJsZSgpOwo+ID4gIH0KPiA+Cj4gPiAgc3RhdGlj IHZvaWQgKmJ1c3lfdGhyZWFkX2Z1bmModm9pZCAqZGF0YSkKPiA+IEBAIC0xNDMyLDcgKzEzNTYs NyBAQCBzdGF0aWMgdm9pZCBzZXR1cF9zaW5rX2NyYyh2b2lkKQo+ID4gICAgICAgICBmaWxsX2Zi X3JlZ2lvbigmcHJpbV9tb2RlX3BhcmFtcy5mYiwgQ09MT1JfUFJJTV9CRyk7Cj4gPiAgICAgICAg IHNldF9tb2RlX2Zvcl9wYXJhbXMoJnByaW1fbW9kZV9wYXJhbXMpOwo+ID4KPiA+IC0gICAgICAg c2lua19jcmMuZmQgPSBvcGVuYXQoZHJtLmRlYnVnZnMsICJpOTE1X3NpbmtfY3JjX2VEUDEiLCBP X1JET05MWSk7Cj4gPiArICAgICAgIHNpbmtfY3JjLmZkID0gaWd0X3Bzcl9vcGVuX3NpbmtfY3Jj KGRybS5kZWJ1Z2ZzKTsKPiA+ICAgICAgICAgaWd0X2Fzc2VydF9sdGUoMCwgc2lua19jcmMuZmQp Owo+ID4KPiA+ICAgICAgICAgLyogRG8gYSBmaXJzdCByZWFkIHRvIHRyeSB0byBkZXRlY3QgaWYg aXQncyBzdXBwb3J0ZWQuICovCj4gPiBAQCAtMTU0NywxNCArMTQ3MSw2IEBAIHN0YXRpYyB2b2lk IHRlYXJkb3duX2ZiYyh2b2lkKQo+ID4gIHsKPiA+ICB9Cj4gPgo+ID4gLXN0YXRpYyBib29sIHBz cl9zaW5rX2hhc19zdXBwb3J0KHZvaWQpCj4gPiAtewo+ID4gLSAgICAgICBjaGFyIGJ1ZlsyNTZd Owo+ID4gLQo+ID4gLSAgICAgICBkZWJ1Z2ZzX3JlYWQoImk5MTVfZWRwX3Bzcl9zdGF0dXMiLCBi dWYpOwo+ID4gLSAgICAgICByZXR1cm4gc3Ryc3RyKGJ1ZiwgIlNpbmtfU3VwcG9ydDogeWVzXG4i KTsKPiA+IC19Cj4gPiAtCj4gPiAgc3RhdGljIHZvaWQgc2V0dXBfcHNyKHZvaWQpCj4gPiAgewo+ ID4gICAgICAgICBpZiAoZ2V0X2Nvbm5lY3RvcihwcmltX21vZGVfcGFyYW1zLmNvbm5lY3Rvcl9p ZCktPmNvbm5lY3Rvcl90eXBlICE9Cj4gPiBAQCAtMTU2Myw3ICsxNDc5LDcgQEAgc3RhdGljIHZv aWQgc2V0dXBfcHNyKHZvaWQpCj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuOwo+ID4gICAgICAg ICB9Cj4gPgo+ID4gLSAgICAgICBpZiAoIXBzcl9zaW5rX2hhc19zdXBwb3J0KCkpIHsKPiA+ICsg ICAgICAgaWYgKCFpZ3RfcHNyX3Npbmtfc3VwcG9ydChkcm0uZmQpKSB7Cj4gPiAgICAgICAgICAg ICAgICAgaWd0X2luZm8oIkNhbid0IHRlc3QgUFNSOiBub3Qgc3VwcG9ydGVkIGJ5IHNpbmsuXG4i KTsKPiA+ICAgICAgICAgICAgICAgICByZXR1cm47Cj4gPiAgICAgICAgIH0KPiA+IEBAIC0xNzE3 LDEyICsxNjMzLDE1IEBAIHN0YXRpYyBpbnQgYWRqdXN0X2Fzc2VydGlvbl9mbGFncyhjb25zdCBz dHJ1Y3QgdGVzdF9tb2RlICp0LCBpbnQgZmxhZ3MpCj4gPiAgICAgICAgIH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gPiAgICAgICAgIGlmIChmbGFnc18gJiBBU1NFUlRfUFNSX0VOQUJM RUQpIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAtICAgICAgICAgICAgICAg aWYgKCFwc3Jfd2FpdF91bnRpbF9lbmFibGVkKCkpIHsgICAgICAgICAgICAgICAgICAgICAgICBc Cj4gPiAtICAgICAgICAgICAgICAgICAgICAgICBwc3JfcHJpbnRfc3RhdHVzKCk7ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAgaWYgKCFpZ3RfcHNyX2F3 YWl0X3N0YXR1cyhkcm0uZmQsIHRydWUpKSB7ICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBpZ3RfcHNyX3ByaW50X3N0YXR1cyhkcm0uZmQpOyAgICAgICAgICAgICAg ICAgICBcCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0X2YoZmFsc2UsICJQ U1IgZGlzYWJsZWRcbiIpOyAgICAgICAgICBcCj4gPiAgICAgICAgICAgICAgICAgfSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAgICAg ICAgIH0gZWxzZSBpZiAoZmxhZ3NfICYgQVNTRVJUX1BTUl9ESVNBQkxFRCkgeyAgICAgICAgICAg ICAgICAgICAgICBcCj4gPiAtICAgICAgICAgICAgICAgaWd0X2Fzc2VydCghcHNyX3dhaXRfdW50 aWxfZW5hYmxlZCgpKTsgICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAgaWYg KCFpZ3RfcHNyX2F3YWl0X3N0YXR1cyhkcm0uZmQsIGZhbHNlKSkgeyAgICAgICAgICAgICBcCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBpZ3RfcHNyX3ByaW50X3N0YXR1cyhkcm0uZmQpOyAg ICAgICAgICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZ3RfYXNzZXJ0 X2YoZmFsc2UsICJQU1IgZW5hYmxlZFxuIik7ICAgICAgICAgICBcCj4gPiArICAgICAgICAgICAg ICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcCj4gPiAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiAgfSB3aGlsZSAoMCkKPiA+Cj4gPiBAQCAtMTgy Miw3ICsxNzQxLDcgQEAgc3RhdGljIHZvaWQgZW5hYmxlX2ZlYXR1cmVzX2Zvcl90ZXN0KGNvbnN0 IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gPiAgICAgICAgIGlmICh0LT5mZWF0dXJlICYgRkVBVFVS RV9GQkMpCj4gPiAgICAgICAgICAgICAgICAgZmJjX2VuYWJsZSgpOwo+ID4gICAgICAgICBpZiAo dC0+ZmVhdHVyZSAmIEZFQVRVUkVfUFNSKQo+ID4gLSAgICAgICAgICAgICAgIHBzcl9lbmFibGUo KTsKPiA+ICsgICAgICAgICAgICAgICBpZ3RfcHNyX2VuYWJsZSgpOwo+ID4gIH0KPiA+Cj4gPiAg c3RhdGljIHZvaWQgY2hlY2tfdGVzdF9yZXF1aXJlbWVudHMoY29uc3Qgc3RydWN0IHRlc3RfbW9k ZSAqdCkKPiA+IC0tCj4gPiAyLjcuNAo+ID4KPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCj4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IAo+IAo+IC0tIAo+IFJvZHJpZ28g Vml2aQo+IEJsb2c6IGh0dHA6Ly9ibG9nLnZpdmkuZW5nLmJyCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=