From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4C3A9893CD for ; Wed, 28 Aug 2019 10:30:27 +0000 (UTC) Date: Wed, 28 Aug 2019 13:30:23 +0300 From: Petri Latvala Message-ID: <20190828103023.GA4019@platvala-desk.ger.corp.intel.com> References: <20190816093426.10644-1-petri.latvala@intel.com> <20190816093426.10644-2-petri.latvala@intel.com> <20190828101610.pq4qeko6pghna4de@ahiler-desk1.fi.intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190828101610.pq4qeko6pghna4de@ahiler-desk1.fi.intel.com> Subject: Re: [igt-dev] [PATCH i-g-t 01/10] lib: Introduce dynamic subtests List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Arkadiusz Hiler Cc: igt-dev@lists.freedesktop.org List-ID: T24gV2VkLCBBdWcgMjgsIDIwMTkgYXQgMDE6MTY6MTBQTSArMDMwMCwgQXJrYWRpdXN6IEhpbGVy IHdyb3RlOgo+IE9uIEZyaSwgQXVnIDE2LCAyMDE5IGF0IDEyOjM0OjE3UE0gKzAzMDAsIFBldHJp IExhdHZhbGEgd3JvdGU6Cj4gPiBEeW5hbWljIHN1YnRlc3RzLCBvciBzdWJ0ZXN0cyBvZiBzdWJ0 ZXN0cywgYXJlIGluZGl2aWR1YWwgcGllY2VzIG9mCj4gPiB0ZXN0cyB0aGF0IGFyZSBub3Qgc3Rh dGljYWxseSBhdmFpbGFibGUgYWxsIHRoZSB0aW1lLgo+ID4gCj4gPiBBIGdvb2QgZXhhbXBsZSBv ZiBhIG5lZWQgZm9yIGEgZHluYW1pYyBzdWJ0ZXN0IGlzIGk5MTUgZW5naW5lIGxpc3Rpbmc6Cj4g PiBBIG5vcm1hbCBzdWJ0ZXN0IGZvciBlYWNoIGVuZ2luZSBjbGFzcyAoImJzZCIpLCBhbmQgYSBk eW5hbWljIHN1YnRlc3QKPiA+IGZvciBlYWNoIGluc3RhbmNlICgiYnNkMCIsICJic2QyIiwgZXRj KS4gT3IgYSBub3JtYWwgc3VidGVzdCBmb3IgYW4KPiA+IG9wZXJhdGlvbiB3aXRoIGEgZHluYW1p YyBzdWJ0ZXN0IGZvciBldmVyeSBlbmdpbmUgdGhlcmUgaXMuCj4gPiAKPiA+IEFub3RoZXIgZXhh bXBsZSBpcyBhIGR5bmFtaWMgc3VidGVzdCBmb3IgcGlwZXM6IEluc3RlYWQgb2YgdXNpbmcKPiA+ IGZvcmVhY2hfcGlwZV9zdGF0aWMsIG1ha2Ugb25lIHN1YnRlc3QgYW5kIHVzZSBmb3JlYWNoX3Bp cGUgd2l0aAo+ID4gZHluYW1pYyBzdWJ0ZXN0cyBmb3IgZWFjaCBwaXBlLgo+ID4gCj4gPiB2Mjog UmViYXNlIGFuZCBhZGFwdCB0byBpZ3RfZGVzY3JpYmUgY2hhbmdlcwo+ID4gCj4gPiBTaWduZWQt b2ZmLWJ5OiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KPiA+IC0tLQo+ ID4gIGxpYi9pZ3RfY29yZS5jIHwgMTE5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrLS0tLS0KPiA+ICBsaWIvaWd0X2NvcmUuaCB8ICA4OSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDE5NyBpbnNlcnRp b25zKCspLCAxMSBkZWxldGlvbnMoLSkKPiA+IAo+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29y ZS5jIGIvbGliL2lndF9jb3JlLmMKPiA+IGluZGV4IDFjYmIwOWY5Li44Yjc1NGI5ZiAxMDA2NDQK PiA+IC0tLSBhL2xpYi9pZ3RfY29yZS5jCj4gPiArKysgYi9saWIvaWd0X2NvcmUuYwo+ID4gQEAg LTI2Myw5ICsyNjMsMTIgQEAgYm9vbCBpZ3Rfc2tpcF9jcmNfY29tcGFyZTsKPiA+ICBzdGF0aWMg Ym9vbCBsaXN0X3N1YnRlc3RzID0gZmFsc2U7Cj4gPiAgc3RhdGljIGJvb2wgZGVzY3JpYmVfc3Vi dGVzdHMgPSBmYWxzZTsKPiA+ICBzdGF0aWMgY2hhciAqcnVuX3NpbmdsZV9zdWJ0ZXN0ID0gTlVM TDsKPiA+ICtzdGF0aWMgY2hhciAqcnVuX3NpbmdsZV9keW5hbWljX3N1YnRlc3QgPSBOVUxMOwo+ ID4gIHN0YXRpYyBib29sIHJ1bl9zaW5nbGVfc3VidGVzdF9mb3VuZCA9IGZhbHNlOwo+ID4gIHN0 YXRpYyBjb25zdCBjaGFyICppbl9zdWJ0ZXN0ID0gTlVMTDsKPiA+ICtzdGF0aWMgY29uc3QgY2hh ciAqaW5fZHluYW1pY19zdWJ0ZXN0ID0gTlVMTDsKPiA+ICBzdGF0aWMgc3RydWN0IHRpbWVzcGVj IHN1YnRlc3RfdGltZTsKPiA+ICtzdGF0aWMgc3RydWN0IHRpbWVzcGVjIGR5bmFtaWNfc3VidGVz dF90aW1lOwo+ID4gIHN0YXRpYyBjbG9ja2lkX3QgaWd0X2Nsb2NrID0gKGNsb2NraWRfdCktMTsK PiA+ICBzdGF0aWMgYm9vbCBpbl9maXh0dXJlID0gZmFsc2U7Cj4gPiAgc3RhdGljIGJvb2wgdGVz dF93aXRoX3N1YnRlc3RzID0gZmFsc2U7Cj4gPiBAQCAtMzAwLDYgKzMwMyw3IEBAIGVudW0gewo+ ID4gIAlPUFRfTElTVF9TVUJURVNUUyA9IDUwMCwKPiA+ICAJT1BUX0RFU0NSSUJFX1NVQlRFU1RT LAo+ID4gIAlPUFRfUlVOX1NVQlRFU1QsCj4gPiArCU9QVF9SVU5fRFlOQU1JQ19TVUJURVNULAo+ ID4gIAlPUFRfREVTQ1JJUFRJT04sCj4gPiAgCU9QVF9ERUJVRywKPiA+ICAJT1BUX0lOVEVSQUNU SVZFX0RFQlVHLAo+ID4gQEAgLTMyMyw2ICszMjcsOCBAQCBjaGFyICppZ3RfZnJhbWVfZHVtcF9w YXRoOwo+ID4gIAo+ID4gIHN0YXRpYyBib29sIHN0ZGVycl9uZWVkc19zZW50aW5lbCA9IGZhbHNl Owo+ID4gIAo+ID4gK3N0YXRpYyBpbnQgX2lndF9keW5hbWljX3Rlc3RzX2V4ZWN1dGVkID0gLTE7 Cj4gPiArCj4gPiAgY29uc3QgY2hhciAqaWd0X3Rlc3RfbmFtZSh2b2lkKQo+ID4gIHsKPiA+ICAJ cmV0dXJuIGNvbW1hbmRfc3RyOwo+ID4gQEAgLTM1NCw3ICszNjAsOSBAQCBzdGF0aWMgdm9pZCBf aWd0X2xvZ19idWZmZXJfZHVtcCh2b2lkKQo+ID4gIHsKPiA+ICAJdWludDhfdCBpOwo+ID4gIAo+ ID4gLQlpZiAoaW5fc3VidGVzdCkKPiA+ICsJaWYgKGluX2R5bmFtaWNfc3VidGVzdCkKPiA+ICsJ CWZwcmludGYoc3RkZXJyLCAiRHluYW1pYyBzdWJ0ZXN0ICVzIGZhaWxlZC5cbiIsIGluX2R5bmFt aWNfc3VidGVzdCk7Cj4gPiArCWVsc2UgaWYgKGluX3N1YnRlc3QpCj4gPiAgCQlmcHJpbnRmKHN0 ZGVyciwgIlN1YnRlc3QgJXMgZmFpbGVkLlxuIiwgaW5fc3VidGVzdCk7Cj4gPiAgCWVsc2UKPiA+ ICAJCWZwcmludGYoc3RkZXJyLCAiVGVzdCAlcyBmYWlsZWQuXG4iLCBjb21tYW5kX3N0cik7Cj4g PiBAQCAtNjE5LDYgKzYyNyw3IEBAIHN0YXRpYyB2b2lkIHByaW50X3VzYWdlKGNvbnN0IGNoYXIg KmhlbHBfc3RyLCBib29sIG91dHB1dF9vbl9zdGRlcnIpCj4gPiAgCWZwcmludGYoZiwgIlVzYWdl OiAlcyBbT1BUSU9OU11cbiIsIGNvbW1hbmRfc3RyKTsKPiA+ICAJZnByaW50ZihmLCAiICAtLWxp c3Qtc3VidGVzdHNcbiIKPiA+ICAJCSAgICIgIC0tcnVuLXN1YnRlc3QgPHBhdHRlcm4+XG4iCj4g PiArCQkgICAiICAtLWR5bmFtaWMtc3VidGVzdCA8cGF0dGVybj5cbiIKPiA+ICAJCSAgICIgIC0t ZGVidWdbPWxvZy1kb21haW5dXG4iCj4gPiAgCQkgICAiICAtLWludGVyYWN0aXZlLWRlYnVnWz1k b21haW5dXG4iCj4gPiAgCQkgICAiICAtLXNraXAtY3JjLWNvbXBhcmVcbiIKPiA+IEBAIC03Mzks NiArNzQ4LDcgQEAgc3RhdGljIGludCBjb21tb25faW5pdChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2 LAo+ID4gIAkJeyJsaXN0LXN1YnRlc3RzIiwgICAgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBP UFRfTElTVF9TVUJURVNUU30sCj4gPiAgCQl7ImRlc2NyaWJlIiwgICAgICAgICAgb3B0aW9uYWxf YXJndW1lbnQsIE5VTEwsIE9QVF9ERVNDUklCRV9TVUJURVNUU30sCj4gPiAgCQl7InJ1bi1zdWJ0 ZXN0IiwgICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9SVU5fU1VCVEVTVH0sCj4g PiArCQl7ImR5bmFtaWMtc3VidGVzdCIsICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9S VU5fRFlOQU1JQ19TVUJURVNUfSwKPiAKPiBUaGlzIGRldmlhdGVzIGZyb20gLS1ydW4tc3VidGVz dHMgYnV0IGV2ZW4gT1BUX1JVTl9EWU5BTUlDX1NVQlRFU1QgaGFzCj4gInJ1biIgaW4gaXQuIEkg Z3Vlc3MgeW91IGRpZCBpdCB0byBwcmVzZXJ2ZSAnLS1yJyBzaG9ydGhhbmQ/CgpZZXMgOlAKCj4g QWxzbyBpbnRlcmFjdGlvbiBiZXR3ZW4gLS1ydWItc3VidGVzdCBhbmQgaWd0X2R5bmFtaWNfc3Vi dGVzdF9jb250YWluZXIKPiBpcyBub3QgdmVyeSBvYnZpb3VzLgo+IAo+IFNhbWUgZm9yIHVzaW5n IGJvdGggLS1ydW4tc3VidGVzdCBhbmQgLS1keW5hbWljLXN1YnRlc3QuCj4gCj4gTWF5YmUgaXQn cyB0aW1lIHRvIGludHJvZHVjZSBzaG9ydCBvcHRpb25zPwo+IAo+ID4gIAkJeyJoZWxwLWRlc2Ny aXB0aW9uIiwgIG5vX2FyZ3VtZW50LCAgICAgICBOVUxMLCBPUFRfREVTQ1JJUFRJT059LAo+ID4g IAkJeyJkZWJ1ZyIsICAgICAgICAgICAgIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxMLCBPUFRfREVC VUd9LAo+ID4gIAkJeyJpbnRlcmFjdGl2ZS1kZWJ1ZyIsIG9wdGlvbmFsX2FyZ3VtZW50LCBOVUxM LCBPUFRfSU5URVJBQ1RJVkVfREVCVUd9LAo+ID4gQEAgLTg1OCw2ICs4NjgsMTEgQEAgc3RhdGlj IGludCBjb21tb25faW5pdChpbnQgKmFyZ2MsIGNoYXIgKiphcmd2LAo+ID4gIAkJCWlmICghbGlz dF9zdWJ0ZXN0cykKPiA+ICAJCQkJcnVuX3NpbmdsZV9zdWJ0ZXN0ID0gc3RyZHVwKG9wdGFyZyk7 Cj4gPiAgCQkJYnJlYWs7Cj4gPiArCQljYXNlIE9QVF9SVU5fRFlOQU1JQ19TVUJURVNUOgo+ID4g KwkJCWFzc2VydChvcHRhcmcpOwo+ID4gKwkJCWlmICghbGlzdF9zdWJ0ZXN0cykKPiA+ICsJCQkJ cnVuX3NpbmdsZV9keW5hbWljX3N1YnRlc3QgPSBzdHJkdXAob3B0YXJnKTsKPiA+ICsJCQlicmVh azsKPiA+ICAJCWNhc2UgT1BUX0RFU0NSSVBUSU9OOgo+ID4gIAkJCXByaW50X3Rlc3RfZGVzY3Jp cHRpb24oKTsKPiA+ICAJCQlyZXQgPSAtMTsKPiA+IEBAIC0xMTA3LDYgKzExMjIsNDEgQEAgYm9v bCBfX2lndF9ydW5fc3VidGVzdChjb25zdCBjaGFyICpzdWJ0ZXN0X25hbWUsIGNvbnN0IGNoYXIg KmZpbGUsIGNvbnN0IGludCBsaW4KPiA+ICAJcmV0dXJuIChpbl9zdWJ0ZXN0ID0gc3VidGVzdF9u YW1lKTsKPiA+ICB9Cj4gPiAgCj4gPiArYm9vbCBfX2lndF9ydW5fZHluYW1pY19zdWJ0ZXN0KGNv bnN0IGNoYXIgKmR5bmFtaWNfc3VidGVzdF9uYW1lKQo+ID4gK3sKPiA+ICsJaW50IGk7Cj4gPiAr Cj4gPiArCWFzc2VydChpbl9zdWJ0ZXN0KTsKPiA+ICsJYXNzZXJ0KF9pZ3RfZHluYW1pY190ZXN0 c19leGVjdXRlZCA+PSAwKTsKPiA+ICsKPiA+ICsJLyogY2hlY2sgdGhlIGR5bmFtaWNfc3VidGVz dCBuYW1lIG9ubHkgY29udGFpbnMgYS16LCBBLVosIDAtOSwgJy0nIGFuZCAnXycgKi8KPiA+ICsJ Zm9yIChpID0gMDsgZHluYW1pY19zdWJ0ZXN0X25hbWVbaV0gIT0gJ1wwJzsgaSsrKQo+ID4gKwkJ aWYgKGR5bmFtaWNfc3VidGVzdF9uYW1lW2ldICE9ICdfJyAmJiBkeW5hbWljX3N1YnRlc3RfbmFt ZVtpXSAhPSAnLScKPiA+ICsJCSAgICAmJiAhaXNhbG51bShkeW5hbWljX3N1YnRlc3RfbmFtZVtp XSkpIHsKPiA+ICsJCQlpZ3RfY3JpdGljYWwoIkludmFsaWQgZHluYW1pYyBzdWJ0ZXN0IG5hbWUg XCIlc1wiLlxuIiwKPiA+ICsJCQkJICAgICBkeW5hbWljX3N1YnRlc3RfbmFtZSk7Cj4gPiArCQkJ aWd0X2V4aXQoKTsKPiA+ICsJCX0KPiAKPiBTYW1lIGxvZ2ljIGFzIGZvciBub3JtYWwgc3VidGVz dHMsIGNvdWxkIHVzZSBhIGhlbHBlcj8KClllcyEgSSdsbCBkbyB0aGF0IGZvciBuZXh0IHJldmlz aW9uLgoKCj4gCj4gPiArCj4gPiArCWlmIChydW5fc2luZ2xlX2R5bmFtaWNfc3VidGVzdCAmJgo+ ID4gKwkgICAgdXdpbGRtYXQoZHluYW1pY19zdWJ0ZXN0X25hbWUsIHJ1bl9zaW5nbGVfZHluYW1p Y19zdWJ0ZXN0KSA9PSAwKQo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwo+ID4gKwlpZ3Rfa21z ZyhLTVNHX0lORk8gIiVzOiBzdGFydGluZyBkeW5hbWljIHN1YnRlc3QgJXNcbiIsCj4gPiArCQkg Y29tbWFuZF9zdHIsIGR5bmFtaWNfc3VidGVzdF9uYW1lKTsKPiA+ICsJaWd0X2luZm8oIlN0YXJ0 aW5nIGR5bmFtaWMgc3VidGVzdDogJXNcbiIsIGR5bmFtaWNfc3VidGVzdF9uYW1lKTsKPiA+ICsJ ZmZsdXNoKHN0ZG91dCk7Cj4gPiArCWlmIChzdGRlcnJfbmVlZHNfc2VudGluZWwpCj4gPiArCQlm cHJpbnRmKHN0ZGVyciwgIlN0YXJ0aW5nIGR5bmFtaWMgc3VidGVzdDogJXNcbiIsIGR5bmFtaWNf c3VidGVzdF9uYW1lKTsKPiA+ICsKPiA+ICsJX2lndF9sb2dfYnVmZmVyX3Jlc2V0KCk7Cj4gPiAr Cj4gPiArCV9pZ3RfZHluYW1pY190ZXN0c19leGVjdXRlZCsrOwo+ID4gKwo+ID4gKwlpZ3RfZ2V0 dGltZSgmZHluYW1pY19zdWJ0ZXN0X3RpbWUpOwo+ID4gKwlyZXR1cm4gKGluX2R5bmFtaWNfc3Vi dGVzdCA9IGR5bmFtaWNfc3VidGVzdF9uYW1lKTsKPiA+ICt9Cj4gPiArCj4gPiAgLyoqCj4gPiAg ICogaWd0X3N1YnRlc3RfbmFtZToKPiA+ICAgKgo+ID4gQEAgLTExNjEsMjYgKzEyMTEsNTAgQEAg dm9pZCBfX2lndF9zdWJ0ZXN0X2dyb3VwX3Jlc3RvcmUoaW50IHNhdmUsIGludCBkZXNjKQo+ID4g IHN0YXRpYyBib29sIHNraXBwZWRfb25lID0gZmFsc2U7Cj4gPiAgc3RhdGljIGJvb2wgc3VjY2Vl ZGVkX29uZSA9IGZhbHNlOwo+ID4gIHN0YXRpYyBib29sIGZhaWxlZF9vbmUgPSBmYWxzZTsKPiA+ ICtzdGF0aWMgYm9vbCBkeW5hbWljX2ZhaWxlZF9vbmUgPSBmYWxzZTsKPiA+ICsKPiA+ICtib29s IF9faWd0X2VudGVyX2R5bmFtaWNfY29udGFpbmVyKHZvaWQpCj4gPiArewo+ID4gKwlfaWd0X2R5 bmFtaWNfdGVzdHNfZXhlY3V0ZWQgPSAwOwo+ID4gKwlkeW5hbWljX2ZhaWxlZF9vbmUgPSBmYWxz ZTsKPiA+ICsKPiA+ICsJcmV0dXJuIHRydWU7Cj4gPiArfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lk IGV4aXRfc3VidGVzdChjb25zdCBjaGFyICopIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7Cj4g PiAgc3RhdGljIHZvaWQgZXhpdF9zdWJ0ZXN0KGNvbnN0IGNoYXIgKnJlc3VsdCkKPiA+ICB7Cj4g PiAgCXN0cnVjdCB0aW1lc3BlYyBub3c7Cj4gPiArCWNvbnN0IGNoYXIgKnN1YnRlc3RfdGV4dCA9 IGluX2R5bmFtaWNfc3VidGVzdCA/ICJEeW5hbWljIHN1YnRlc3QiIDogIlN1YnRlc3QiOwo+ID4g Kwljb25zdCBjaGFyICoqc3VidGVzdF9uYW1lID0gaW5fZHluYW1pY19zdWJ0ZXN0ID8gJmluX2R5 bmFtaWNfc3VidGVzdCA6ICZpbl9zdWJ0ZXN0Owo+ID4gKwlzdHJ1Y3QgdGltZXNwZWMgKnRoZW50 aW1lID0gaW5fZHluYW1pY19zdWJ0ZXN0ID8gJmR5bmFtaWNfc3VidGVzdF90aW1lIDogJnN1YnRl c3RfdGltZTsKPiA+ICsJam1wX2J1ZiAqam1wdGFyZ2V0ID0gaW5fZHluYW1pY19zdWJ0ZXN0ID8g JmlndF9keW5hbWljX3N1YnRlc3Rfam1wYnVmIDogJmlndF9zdWJ0ZXN0X2ptcGJ1ZjsKPiA+ICAK PiA+ICAJaWd0X2dldHRpbWUoJm5vdyk7Cj4gPiAtCWlndF9pbmZvKCIlc1N1YnRlc3QgJXM6ICVz ICglLjNmcyklc1xuIiwKPiA+ICsKPiA+ICsJaWd0X2luZm8oIiVzJXMgJXM6ICVzICglLjNmcykl c1xuIiwKPiA+ICAJCSAoIV9faWd0X3BsYWluX291dHB1dCkgPyAiXHgxYlsxbSIgOiAiIiwKPiA+ IC0JCSBpbl9zdWJ0ZXN0LCByZXN1bHQsIGlndF90aW1lX2VsYXBzZWQoJnN1YnRlc3RfdGltZSwg Jm5vdyksCj4gPiArCQkgc3VidGVzdF90ZXh0LCAqc3VidGVzdF9uYW1lLCByZXN1bHQsCj4gPiAr CQkgaWd0X3RpbWVfZWxhcHNlZCh0aGVudGltZSwgJm5vdyksCj4gPiAgCQkgKCFfX2lndF9wbGFp bl9vdXRwdXQpID8gIlx4MWJbMG0iIDogIiIpOwo+ID4gIAlmZmx1c2goc3Rkb3V0KTsKPiA+ICAJ aWYgKHN0ZGVycl9uZWVkc19zZW50aW5lbCkKPiA+IC0JCWZwcmludGYoc3RkZXJyLCAiU3VidGVz dCAlczogJXMgKCUuM2ZzKVxuIiwKPiA+IC0JCQlpbl9zdWJ0ZXN0LCByZXN1bHQsIGlndF90aW1l X2VsYXBzZWQoJnN1YnRlc3RfdGltZSwgJm5vdykpOwo+ID4gKwkJZnByaW50ZihzdGRlcnIsICIl cyAlczogJXMgKCUuM2ZzKVxuIiwKPiA+ICsJCQlzdWJ0ZXN0X3RleHQsICpzdWJ0ZXN0X25hbWUs Cj4gPiArCQkJcmVzdWx0LCBpZ3RfdGltZV9lbGFwc2VkKHRoZW50aW1lLCAmbm93KSk7Cj4gPiAg Cj4gPiAgCWlndF90ZXJtaW5hdGVfc3BpbnMoKTsKPiA+ICAKPiA+IC0JaW5fc3VidGVzdCA9IE5V TEw7Cj4gPiAtCXNpZ2xvbmdqbXAoaWd0X3N1YnRlc3Rfam1wYnVmLCAxKTsKPiA+ICsJaWYgKCFp bl9keW5hbWljX3N1YnRlc3QpCj4gPiArCQlfaWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0ZWQgPSAt MTsKPiA+ICsKPiA+ICsJLyogRG9uJ3Qga2VlcCB0aGUgYWJvdmUgdGV4dCBpbiB0aGUgbG9nLCB0 aGUgY29udGFpbmVyIHdvdWxkIHByaW50IGl0IGFnYWluIG90aGVyd2lzZSAqLwo+ID4gKwlpZiAo aW5fZHluYW1pY19zdWJ0ZXN0KQo+ID4gKwkJX2lndF9sb2dfYnVmZmVyX3Jlc2V0KCk7Cj4gPiAr Cj4gPiArCSpzdWJ0ZXN0X25hbWUgPSBOVUxMOwo+ID4gKwo+ID4gKwlzaWdsb25nam1wKCpqbXB0 YXJnZXQsIDEpOwo+ID4gIH0KPiA+ICAKPiA+ICAvKioKPiA+IEBAIC0xMjExLDYgKzEyODUsNyBA QCB2b2lkIGlndF9za2lwKGNvbnN0IGNoYXIgKmYsIC4uLikKPiA+ICAJfQo+ID4gIAo+ID4gIAlp ZiAoaW5fc3VidGVzdCkgewo+ID4gKwkJLyogRG9pbmcgdGhlIHNhbWUgZXZlbiBpZiBpbnNpZGUg YSBkeW5hbWljIHN1YnRlc3QgKi8KPiA+ICAJCWV4aXRfc3VidGVzdCgiU0tJUCIpOwo+ID4gIAl9 IGVsc2UgaWYgKHRlc3Rfd2l0aF9zdWJ0ZXN0cykgewo+ID4gIAkJc2tpcF9zdWJ0ZXN0c19oZW5j ZWZvcnRoID0gU0tJUDsKPiA+IEBAIC0xMjY3LDcgKzEzNDIsMjIgQEAgdm9pZCBfX2lndF9za2lw X2NoZWNrKGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW5lLAo+ID4gICAqLwo+ID4gIHZv aWQgaWd0X3N1Y2Nlc3Modm9pZCkKPiA+ICB7Cj4gPiAtCXN1Y2NlZWRlZF9vbmUgPSB0cnVlOwo+ ID4gKwlpZiAoaW5fc3VidGVzdCAmJiAhaW5fZHluYW1pY19zdWJ0ZXN0ICYmIF9pZ3RfZHluYW1p Y190ZXN0c19leGVjdXRlZCA+PSAwKSB7Cj4gPiArCQkvKgo+ID4gKwkJICogV2UncmUgZXhpdGlu ZyBhIGR5bmFtaWMgY29udGFpbmVyLCB5aWVsZCBhIHJlc3VsdAo+ID4gKwkJICogYWNjb3JkaW5n IHRvIHRoZSBkeW5hbWljIHRlc3RzIHRoYXQgZ290Cj4gPiArCQkgKiBleGVjdXRlZC4KPiA+ICsJ CSAqLwo+ID4gKwkJaWYgKGR5bmFtaWNfZmFpbGVkX29uZSkKPiA+ICsJCQlpZ3RfZmFpbChJR1Rf RVhJVF9GQUlMVVJFKTsKPiA+ICsKPiA+ICsJCWlmIChfaWd0X2R5bmFtaWNfdGVzdHNfZXhlY3V0 ZWQgPT0gMCkKPiA+ICsJCQlpZ3Rfc2tpcCgiTm8gZHluYW1pYyB0ZXN0cyBleGVjdXRlZC5cbiIp Owo+ID4gKwl9Cj4gPiArCj4gPiArCWlmICghaW5fZHluYW1pY19zdWJ0ZXN0KQo+ID4gKwkJc3Vj Y2VlZGVkX29uZSA9IHRydWU7Cj4gPiArCj4gPiAgCWlmIChpbl9zdWJ0ZXN0KQo+ID4gIAkJZXhp dF9zdWJ0ZXN0KCJTVUNDRVNTIik7Cj4gPiAgfQo+ID4gQEAgLTEyOTgsMTAgKzEzODgsMTcgQEAg dm9pZCBpZ3RfZmFpbChpbnQgZXhpdGNvZGUpCj4gPiAgCWlmIChpbl9hdGV4aXRfaGFuZGxlcikK PiA+ICAJCV9leGl0KElHVF9FWElUX0ZBSUxVUkUpOwo+ID4gIAo+ID4gLQlpZiAoIWZhaWxlZF9v bmUpCj4gPiAtCQlpZ3RfZXhpdGNvZGUgPSBleGl0Y29kZTsKPiA+ICsJaWYgKGluX2R5bmFtaWNf c3VidGVzdCkgewo+ID4gKwkJZHluYW1pY19mYWlsZWRfb25lID0gdHJ1ZTsKPiA+ICsJfSBlbHNl IHsKPiA+ICsJCS8qIER5bmFtaWMgc3VidGVzdCBjb250YWluZXJzIG11c3Qgbm90IGZhaWwgZXhw bGljaXRseSAqLwo+ID4gKwkJYXNzZXJ0KF9pZ3RfZHluYW1pY190ZXN0c19leGVjdXRlZCA8IDAg fHwgZHluYW1pY19mYWlsZWRfb25lKTsKPiA+ICsKPiA+ICsJCWlmICghZmFpbGVkX29uZSkKPiA+ ICsJCQlpZ3RfZXhpdGNvZGUgPSBleGl0Y29kZTsKPiA+ICAKPiA+IC0JZmFpbGVkX29uZSA9IHRy dWU7Cj4gPiArCQlmYWlsZWRfb25lID0gdHJ1ZTsKPiA+ICsJfQo+ID4gIAo+ID4gIAkvKiBTaWxl bnQgZXhpdCwgcGFyZW50IHdpbGwgZG8gdGhlIHllbGxpbmcuICovCj4gPiAgCWlmICh0ZXN0X2No aWxkKQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9pZ3RfY29yZS5oIGIvbGliL2lndF9jb3JlLmgKPiA+ IGluZGV4IDE3N2QyNDMxLi4yMTI4OWM4ZSAxMDA2NDQKPiA+IC0tLSBhL2xpYi9pZ3RfY29yZS5o Cj4gPiArKysgYi9saWIvaWd0X2NvcmUuaAo+ID4gQEAgLTE0NCw2ICsxNDQsNyBAQCB2b2lkIF9f aWd0X2ZpeHR1cmVfZW5kKHZvaWQpIF9fYXR0cmlidXRlX18oKG5vcmV0dXJuKSk7Cj4gPiAgCj4g PiAgLyogc3VidGVzdCBpbmZyYXN0cnVjdHVyZSAqLwo+ID4gIGptcF9idWYgaWd0X3N1YnRlc3Rf am1wYnVmOwo+ID4gK2ptcF9idWYgaWd0X2R5bmFtaWNfc3VidGVzdF9qbXBidWY7Cj4gPiAgdHlw ZWRlZiBpbnQgKCppZ3Rfb3B0X2hhbmRsZXJfdCkoaW50IG9wdCwgaW50IG9wdF9pbmRleCwgdm9p ZCAqZGF0YSk7Cj4gPiAgI2RlZmluZSBJR1RfT1BUX0hBTkRMRVJfU1VDQ0VTUyAwCj4gPiAgI2Rl ZmluZSBJR1RfT1BUX0hBTkRMRVJfRVJST1IgLTIKPiA+IEBAIC0xNzUsNiArMTc2LDggQEAgaW50 IGlndF9zdWJ0ZXN0X2luaXRfcGFyc2Vfb3B0cyhpbnQgKmFyZ2MsIGNoYXIgKiphcmd2LAo+ID4g IAlpZ3Rfc3VidGVzdF9pbml0X3BhcnNlX29wdHMoJmFyZ2MsIGFyZ3YsIE5VTEwsIE5VTEwsIE5V TEwsIE5VTEwsIE5VTEwpOwo+ID4gIAo+ID4gIGJvb2wgX19pZ3RfcnVuX3N1YnRlc3QoY29uc3Qg Y2hhciAqc3VidGVzdF9uYW1lLCBjb25zdCBjaGFyICpmaWxlLCBjb25zdCBpbnQgbGluZSk7Cj4g PiArYm9vbCBfX2lndF9lbnRlcl9keW5hbWljX2NvbnRhaW5lcih2b2lkKTsKPiA+ICtib29sIF9f aWd0X3J1bl9keW5hbWljX3N1YnRlc3QoY29uc3QgY2hhciAqZHluYW1pY19zdWJ0ZXN0X25hbWUp Owo+ID4gICNkZWZpbmUgX19pZ3RfdG9rZW5jYXQyKHgsIHkpIHggIyMgeQo+ID4gIAo+ID4gIC8q Kgo+ID4gQEAgLTIyNCw2ICsyMjcsOTIgQEAgYm9vbCBfX2lndF9ydW5fc3VidGVzdChjb25zdCBj aGFyICpzdWJ0ZXN0X25hbWUsIGNvbnN0IGNoYXIgKmZpbGUsIGNvbnN0IGludCBsaW4KPiA+ICAj ZGVmaW5lIGlndF9zdWJ0ZXN0X2YoZi4uLikgXAo+ID4gIAlfX2lndF9zdWJ0ZXN0X2YoaWd0X3Rv a2VuY2F0KF9fdG1wY2hhciwgX19MSU5FX18pLCBmKQo+ID4gIAo+ID4gKy8qKgo+ID4gKyAqIGln dF9keW5hbWljX3N1YnRlc3RfY29udGFpbmVyOgo+ID4gKyAqIEBuYW1lOiBuYW1lIG9mIHRoZSBz dWJ0ZXN0Cj4gPiArICoKPiA+ICsgKiBUaGlzIGlzIGEgbWFnaWMgY29udHJvbCBmbG93IGJsb2Nr IHdoaWNoIGRlbm90ZXMgYSBzdWJ0ZXN0IGNvZGUKPiA+ICsgKiBibG9jayB0aGF0IGNvbnRhaW5z IGR5bmFtaWMgc3VidGVzdHMuIFRoZSBfZiB2YXJpYW50IGFjY2VwdHMgYQo+ID4gKyAqIHByaW50 ZiBmb3JtYXQgc3RyaW5nLCB3aGljaCBpcyB1c2VmdWwgZm9yIGNvbnN0cnVjdGluZwo+ID4gKyAq IGNvbWJpbmF0b3JpYWwgdGVzdHMuCj4gPiArICoKPiA+ICsgKiBXaXRoaW4gYSBkeW5hbWljIHN1 YnRlc3QgY29udGFpbmVyLCBleHBsaWNpdCBmYWlsdXJlCj4gPiArICogKGUuZy4gaWd0X2Fzc2Vy dCkgaXMgbm90IGFsbG93ZWQsIG9ubHkgZHluYW1pYyBzdWJ0ZXN0cyB0aGVtc2VsdmVzCj4gPiAr ICogd2lsbCBwcm9kdWNlIHRlc3QgcmVzdWx0cy4gaWd0X3NraXAoKS9pZ3RfcmVxdWlyZSgpIGlz IGFsbG93ZWQuCj4gPiArICoKPiA+ICsgKiBUaGlzIGlzIGEgc2ltcGxlciB2ZXJzaW9uIG9mIGln dF9keW5hbWljX3N1YnRlc3RfY29udGFpbmVyX2YoKQo+ID4gKyAqLwo+ID4gKyNkZWZpbmUgaWd0 X2R5bmFtaWNfc3VidGVzdF9jb250YWluZXIobmFtZSkgZm9yICg7IF9faWd0X3J1bl9zdWJ0ZXN0 KChuYW1lKSwgX19GSUxFX18sIF9fTElORV9fKSAmJiBcCj4gPiArCQkJCQkJCSBfX2lndF9lbnRl cl9keW5hbWljX2NvbnRhaW5lcigpICYmIFwKPiA+ICsJCQkJCQkJIChzaWdzZXRqbXAoaWd0X3N1 YnRlc3Rfam1wYnVmLCAxKSA9PSAwKTsgXAo+ID4gKwkJCQkJCSBpZ3Rfc3VjY2VzcygpKQo+ID4g KyNkZWZpbmUgX19pZ3RfZHluYW1pY19zdWJ0ZXN0X2NvbnRhaW5lcl9mKHRtcCwgZm9ybWF0Li4u KSBcCj4gPiArCWZvciAoY2hhciB0bXAgWzI1Nl07IFwKPiA+ICsJICAgICBzbnByaW50ZiggdG1w ICwgc2l6ZW9mKCB0bXAgKSwgXAo+ID4gKwkJICAgICAgZm9ybWF0KSwgXAo+ID4gKwkgICAgICAg X19pZ3RfcnVuX3N1YnRlc3QodG1wLCBfX0ZJTEVfXywgX19MSU5FX18gKSAmJiBcCj4gPiArCSAg ICAgX19pZ3RfZW50ZXJfZHluYW1pY19jb250YWluZXIoKSAmJiBcCj4gPiArCSAgICAgKHNpZ3Nl dGptcChpZ3Rfc3VidGVzdF9qbXBidWYsIDEpID09IDApOyBcCj4gPiArCSAgICAgaWd0X3N1Y2Nl c3MoKSkKPiA+ICsKPiA+ICsvKioKPiA+ICsgKiBpZ3RfZHluYW1pY19zdWJ0ZXN0X2NvbnRhaW5l cl9mOgo+ID4gKyAqIEAuLi46IGZvcm1hdCBzdHJpbmcgYW5kIG9wdGlvbmFsIGFyZ3VtZW50cwo+ ID4gKyAqCj4gPiArICogVGhpcyBpcyBhIG1hZ2ljIGNvbnRyb2wgZmxvdyBibG9jayB3aGljaCBk ZW5vdGVzIGEgc3VidGVzdCBjb2RlCj4gPiArICogYmxvY2sgdGhhdCBjb250YWlucyBkeW5hbWlj IHN1YnRlc3RzLiBUaGUgX2YgdmFyaWFudCBhY2NlcHRzIGEKPiA+ICsgKiBwcmludGYgZm9ybWF0 IHN0cmluZywgd2hpY2ggaXMgdXNlZnVsIGZvciBjb25zdHJ1Y3RpbmcKPiA+ICsgKiBjb21iaW5h dG9yaWFsIHRlc3RzLgo+ID4gKyAqCj4gPiArICogV2l0aGluIGEgZHluYW1pYyBzdWJ0ZXN0IGNv bnRhaW5lciwgZXhwbGljaXQgZmFpbHVyZQo+ID4gKyAqIChlLmcuIGlndF9hc3NlcnQpIGlzIG5v dCBhbGxvd2VkLCBvbmx5IGR5bmFtaWMgc3VidGVzdHMgdGhlbXNlbHZlcwo+ID4gKyAqIHdpbGwg cHJvZHVjZSB0ZXN0IHJlc3VsdHMuIGlndF9za2lwKCkvaWd0X3JlcXVpcmUoKSBpcyBhbGxvd2Vk Lgo+ID4gKyAqCj4gPiArICogTGlrZSBpZ3RfZHluYW1pY19zdWJ0ZXN0X2NvbnRhaW5lcigpLCBi dXQgYWxzbyBhY2NlcHRzIGEgcHJpbnRmCj4gPiArICogZm9ybWF0IHN0cmluZyBpbnN0ZWFkIG9m IGEgc3RhdGljIHN0cmluZy4KPiA+ICsgKi8KPiAKPiBJIHRoaW5rIHdlIG5lZWQgYSBiaXQgbW9y ZSBvZiBleHBsYW5hdGlvbiBoZXJlLiBJdCdzIGhhcmQgdG8gdW5kZXJzdGFuZAo+IHdoZXJlIHRo ZSBhc3NlcnRzIGdvIGFuZCB0aGF0IHRoaXMgaXMgbW9yZSBsaWtlIGEgc3VidGVzdCBncm91cCBh bmQgeW91Cj4gaGF2ZSB0byBuZXN0IGlndF9keW5hbWljX3N1YnRlc3QgdW5kZXIgaXQuCj4gCj4g SSB0aGluayBzb21lIHBzZXVkb2NvZGUgY291bGQgYmUgdXNlZnVsZSwgZS5nLjoKPiAKPiBpZ3Rf bWFpbiB7Cj4gCWlndF9keW5hbWljX3N1YnRlc3RfY29udGFpbmVyKCJlbmdpbmUtdGVzdHMiKSB7 Cj4gCQkvKiByZXF1aXJlcyBvaywgbm8gYXNzZXJ0cyAqLwo+IAkJaWd0X3JlcXVpcmUoaXNfYXdl c29tZShmZCkpOwo+IAo+IAkJZm9yX2VhY2hfZW5naW5lKGUpIHsKPiAJCQlpZ3RfZHluYW1pY19z dWJ0ZXN0X2YoIiVzIiwgZS0+bmFtZSkgewo+IAkJCQkvKiBhc3NlcnRzIG9rISAqLwo+IAkJCQlp Z3RfZmFpbCgpOwo+IAkJCX0KPiAJCX0KPiAJfQo+IH0KPiAKPiBJdCdzIGFsc28gbm90IHZlcnkg Y2xlYXIgaG93IHRoaXMgd2lsbCBiZSByZXBvcnRlZCBvdXQuCgpZZWFoLCB5b3VyIHJlY2VudCBl eGFtcGxlcyBvZiBlbWJlZGRpbmcgY29kZSBpbnRvIGRvY3VtZW50YXRpb24gd2l0aAp0aGUgaWd0 X2Rlc2NyaWJlIGNvZGUgbm93IG1ha2VzIGl0IHBvc3NpYmxlIGZvciBtZSB0byB3cml0ZSBiZXR0 ZXIKZG9jcy4gTm90ZWQuCgo+IE9yIG1heWJlIGV2ZW4gdXNlICJncm91cCIgaW5zdGVhZCBvZiAi Y29udGFpbmVyIiBoZXJlIHRvIGJ1aWxkIHRoZQo+IHBhcmFsbGVsIHdpdGggbm9ybWFsIHN1YnRl c3QgZ3JvdXAsIHRoZSBvYnZpb3VzIGRpZmZlcmVuY2UgYmVpbmcgdGhhdCBpdAo+IHRha2VzIG5h bWUuCgpUaGUgcGVydGluZW50IGlzc3VlIGlzIGhpZGluZyByaWdodCBoZXJlIGluIHBsYWluIHZp ZXc6CgpOYW1pbmcuCgpUaGUgbWFpbiByZWxhdGl2ZSBmb3IgdGhlICJjb250YWluZXIiIGlzIG5v dCBzdWJ0ZXN0IGdyb3VwLCBidXQKc3VidGVzdC4gQWZ0ZXIgYWxsLCBpdCBpcyBhbiBleGVjdXRp b24gcG9pbnQsIGxpc3RlZCB3aXRoCi0tbGlzdC1zdWJ0ZXN0cyBhbmQgZXhlY3V0ZWQgd2l0aCAt LXJ1bi1zdWJ0ZXN0LgoKaWd0X2R5bmFtaWNfc3VidGVzdF9jb250YWluZXIgaXMgdGhlIGJlc3Qg bmFtZSBJIGNvdWxkIGNvbWUgdXAgd2l0aCwKYW5kIGl0IGFic29sdXRlbHkgc3Vja3MgYXQgY29u dmV5aW5nIHRoZSBwdXJwb3NlLiBEZWNpZGluZyBvbiB0aGUgbmFtZQpzaG91bGQgYmUgY29uc2lk ZXJlZCB0byBiZSB0aGUgbW9zdCBpbXBvcnRhbnQgcGFydCBvZiByZXZpZXdpbmcgdGhpcwpzZXJp ZXMsIHN1Z2dlc3Rpb25zIGZvciB0aGF0IGFyZSB2ZXJ5IHdlbGNvbWUhCgoKLS0gClBldHJpIExh dHZhbGEKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0 LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2