From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH i-g-t] tests: Add kms_atomic_interruptible test, v2. Date: Fri, 8 Sep 2017 09:39:15 +0200 Message-ID: References: <20170906123028.13582-1-maarten.lankhorst@linux.intel.com> <20170908070833.c2jv27wkizob5ptg@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0D76D6EA97 for ; Fri, 8 Sep 2017 07:39:28 +0000 (UTC) In-Reply-To: <20170908070833.c2jv27wkizob5ptg@phenom.ffwll.local> 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: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org, Daniel Stone List-Id: intel-gfx@lists.freedesktop.org T3AgMDgtMDktMTcgb20gMDk6MDggc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIFdlZCwgU2Vw IDA2LCAyMDE3IGF0IDAyOjMwOjI4UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBUaGlzIHRlc3RzIHRoZSB2YXJpb3VzIHBhcnRzIG9mIGF0b21pYyB0aGF0IEkgd2FudCB0byBt YWtlCj4+IGludGVycnVwdGlibGUuIFJ1bm5pbmcgd2l0aCAtLWRlYnVnIHNob3dzIHRoZSBzdGF0 cyBmcm9tCj4+IF9faWd0X3NpZ2l0ZXJfY29udGludWUsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIG1h a2Ugc3VyZSB0aGF0Cj4+IHdlIGRvbid0IGZhbGwgb3Zlci4KPj4KPj4gVGhlIGRlZmF1bHQgaWd0 IGttcyBoZWxwZXJzIHVzZSBkcm1Jb2N0bCwgd2hpY2ggaXMgbm90IGludGVyY2VwdGVkCj4+IGJ5 IGlndF93aGlsZV9pbnRlcnJ1cHRpYmxlLiBPbmx5IGlndF9pb2N0bCBpcy4gVGhpcyBtZWFucyB3 ZSBoYXZlCj4+IHRvIGNhbGwgdGhlIGlvY3RscyBtYW51YWxseSBoZXJlLgo+Pgo+PiBDaGFuZ2Vz IHNpbmNlIHYxOgo+PiAtIEltcGxlbWVudCBpbnRlcnJ1cHRpYmxlIERQTVMgY2hlY2tpbmcgdG9v Lgo+PiAtIFVzZSBpZ3RfaW9jdGwgKyBpZ3Rfd2hpbGVfaW50ZXJydXB0aWJsZSwgaW5zdGVhZCBv ZiB0aGUgc2lnbmFsIGhlbHBlcgo+PiAgIHNob3RndW4uCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IE1h YXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+IENj OiBEYW5pZWwgU3RvbmUgPGRhbmllbHNAY29sbGFib3JhLmNvbT4KPj4gLS0tCj4+ICBsaWIvaWd0 X2ttcy5jICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQo+PiAgbGliL2lndF9rbXMuaCAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwo+PiAgdGVzdHMvTWFrZWZpbGUuc291cmNlcyAgICAgICAg ICAgfCAgIDEgKwo+PiAgdGVzdHMva21zX2F0b21pY19pbnRlcnJ1cHRpYmxlLmMgfCAzMTkgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCj4+ICA0IGZpbGVzIGNoYW5nZWQs IDMyMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+ICBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMva21zX2F0b21pY19pbnRlcnJ1cHRpYmxlLmMKPj4KPj4gZGlmZiAtLWdpdCBhL2xpYi9p Z3Rfa21zLmMgYi9saWIvaWd0X2ttcy5jCj4+IGluZGV4IDE0ZTI3MDFjM2FmZC4uMWY1N2U4OTgx MzQ3IDEwMDY0NAo+PiAtLS0gYS9saWIvaWd0X2ttcy5jCj4+ICsrKyBiL2xpYi9pZ3Rfa21zLmMK Pj4gQEAgLTE4Niw3ICsxODYsOCBAQCBjb25zdCBjaGFyICppZ3RfY3J0Y19wcm9wX25hbWVzW0lH VF9OVU1fQ1JUQ19QUk9QU10gPSB7Cj4+ICAKPj4gIGNvbnN0IGNoYXIgKmlndF9jb25uZWN0b3Jf cHJvcF9uYW1lc1tJR1RfTlVNX0NPTk5FQ1RPUl9QUk9QU10gPSB7Cj4+ICAJInNjYWxpbmcgbW9k ZSIsCj4+IC0JIkNSVENfSUQiCj4+ICsJIkNSVENfSUQiLAo+PiArCSJEUE1TIgo+PiAgfTsKPj4g IAo+PiAgLyoKPj4gZGlmZiAtLWdpdCBhL2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCj4+ IGluZGV4IGU1ZGMzMjliMTYxZS4uM2QxMDYxZmEwOGM4IDEwMDY0NAo+PiAtLS0gYS9saWIvaWd0 X2ttcy5oCj4+ICsrKyBiL2xpYi9pZ3Rfa21zLmgKPj4gQEAgLTExNCw2ICsxMTQsNyBAQCBleHRl cm4gY29uc3QgY2hhciAqaWd0X2NydGNfcHJvcF9uYW1lc1tdOwo+PiAgZW51bSBpZ3RfYXRvbWlj X2Nvbm5lY3Rvcl9wcm9wZXJ0aWVzIHsKPj4gICAgICAgICBJR1RfQ09OTkVDVE9SX1NDQUxJTkdf TU9ERSA9IDAsCj4+ICAgICAgICAgSUdUX0NPTk5FQ1RPUl9DUlRDX0lELAo+PiArICAgICAgIElH VF9DT05ORUNUT1JfRFBNUywKPj4gICAgICAgICBJR1RfTlVNX0NPTk5FQ1RPUl9QUk9QUwo+PiAg fTsKPj4gIAo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMKPj4gaW5kZXggMGY0ZTM5YWYxMGExLi5jZjU0MmRmMTgxYTggMTAwNjQ0 Cj4+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPj4gKysrIGIvdGVzdHMvTWFrZWZpbGUu c291cmNlcwo+PiBAQCAtMTcyLDYgKzE3Miw3IEBAIFRFU1RTX3Byb2dzID0gXAo+PiAgCWttc18z ZCBcCj4+ICAJa21zX2FkZGZiX2Jhc2ljIFwKPj4gIAlrbXNfYXRvbWljIFwKPj4gKwlrbXNfYXRv bWljX2ludGVycnVwdGlibGUgXAo+PiAgCWttc19hdG9taWNfdHJhbnNpdGlvbiBcCj4+ICAJa21z X2J1c3kgXAo+PiAgCWttc19jY3MgXAo+PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2F0b21pY19p bnRlcnJ1cHRpYmxlLmMgYi90ZXN0cy9rbXNfYXRvbWljX2ludGVycnVwdGlibGUuYwo+PiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+PiBpbmRleCAwMDAwMDAwMDAwMDAuLjZlYzdhNjY2Yjk5NQo+PiAt LS0gL2Rldi9udWxsCj4+ICsrKyBiL3Rlc3RzL2ttc19hdG9taWNfaW50ZXJydXB0aWJsZS5jCj4+ IEBAIC0wLDAgKzEsMzE5IEBACj4+ICsvKgo+PiArICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwg Q29ycG9yYXRpb24KPj4gKyAqCj4+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+PiArICogY29weSBvZiB0 aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29m dHdhcmUiKSwKPj4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPj4gKyAqIHRoZSByaWdodHMgdG8gdXNl LCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ PiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBw ZXJzb25zIHRvIHdob20gdGhlCj4+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+PiArICoKPj4gKyAqIFRoZSBh Ym92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRp bmcgdGhlIG5leHQKPj4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNv cGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPj4gKyAqIFNvZnR3YXJlLgo+PiAr ICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJB TlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVU IE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPj4gKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAo+PiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPj4gKyAqIExJQUJJTElU WSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBB UklTSU5HCj4+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZU V0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4+ICsgKiBJTiBUSEUgU09GVFdBUkUu Cj4+ICsgKi8KPj4gKwo+PiArI2luY2x1ZGUgImlndC5oIgo+PiArI2luY2x1ZGUgImRybXRlc3Qu aCIKPj4gKyNpbmNsdWRlICJzd19zeW5jLmgiCj4+ICsKPj4gK2VudW0gcGxhbmVfdGVzdF90eXBl Cj4+ICt7Cj4+ICsJdGVzdF9sZWdhY3lfbW9kZXNldCwKPj4gKwl0ZXN0X2F0b21pY19tb2Rlc2V0 LAo+PiArCXRlc3RfbGVnYWN5X2RwbXMsCj4+ICsJdGVzdF9zZXRwbGFuZSwKPj4gKwl0ZXN0X3Nl dGN1cnNvciwKPj4gKwl0ZXN0X3BhZ2VmbGlwCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgaW50IGJs b2NrX3BsYW5lKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGlndF9vdXRwdXRfdCAqb3V0cHV0LCBl bnVtIHBsYW5lX3Rlc3RfdHlwZSB0ZXN0X3R5cGUsIGlndF9wbGFuZV90ICpwbGFuZSkKPj4gK3sK Pj4gKwlpbnQgdGltZWxpbmUgPSBzd19zeW5jX3RpbWVsaW5lX2NyZWF0ZSgpOwo+PiArCj4+ICsJ aWd0X2ZvcmsoY2hpbGQsIDEpIHsKPj4gKwkJLyogSWdub3JlIHRoZSBzaWduYWwgaGVscGVyLCB3 ZSBuZWVkIHRvIGJsb2NrIGluZGVmaW5pdGVseSBvbiB0aGUgZmVuY2UuICovCj4+ICsJCXNpZ25h bChTSUdDT05ULCBTSUdfSUdOKTsKPj4gKwo+PiArCQlpZiAodGVzdF90eXBlID09IHRlc3RfbGVn YWN5X21vZGVzZXQgfHwgdGVzdF90eXBlID09IHRlc3RfYXRvbWljX21vZGVzZXQpIHsKPj4gKwkJ CWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBQSVBFX05PTkUpOwo+PiArCQkJaWd0X3BsYW5l X3NldF9mYihwbGFuZSwgTlVMTCk7Cj4+ICsJCX0KPj4gKwkJaWd0X3BsYW5lX3NldF9mZW5jZV9m ZChwbGFuZSwgc3dfc3luY190aW1lbGluZV9jcmVhdGVfZmVuY2UodGltZWxpbmUsIDEpKTsKPj4g Kwo+PiArCQlpZ3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwo+PiAr CX0KPj4gKwo+PiArCXJldHVybiB0aW1lbGluZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQg dW5ibG9jayhpbnQgYmxvY2spCj4+ICt7Cj4+ICsJc3dfc3luY190aW1lbGluZV9pbmMoYmxvY2ss IDEpOwo+PiArCWNsb3NlKGJsb2NrKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgZXZfcGFn ZV9mbGlwKGludCBmZCwgdW5zaWduZWQgc2VxLCB1bnNpZ25lZCB0dl9zZWMsIHVuc2lnbmVkIHR2 X3VzZWMsIHZvaWQgKnVzZXJfZGF0YSkKPj4gK3sKPj4gKwlpZ3RfZGVidWcoIlJldHJpZXZlZCB2 Ymxhbmsgc2VxOiAldSBvbiB1bmtcbiIsIHNlcSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBkcm1F dmVudENvbnRleHQgZHJtX2V2ZW50cyA9IHsKPj4gKwkudmVyc2lvbiA9IDIsCj4+ICsJLnBhZ2Vf ZmxpcF9oYW5kbGVyID0gZXZfcGFnZV9mbGlwCj4+ICt9Owo+PiArCj4+ICtzdGF0aWMgdm9pZCBy dW5fcGxhbmVfdGVzdChpZ3RfZGlzcGxheV90ICpkaXNwbGF5LCBlbnVtIHBpcGUgcGlwZSwgaWd0 X291dHB1dF90ICpvdXRwdXQsCj4+ICsJCQkgICBlbnVtIHBsYW5lX3Rlc3RfdHlwZSB0ZXN0X3R5 cGUsIHVuc2lnbmVkIHBsYW5lX3R5cGUpCj4+ICt7Cj4+ICsJZHJtTW9kZU1vZGVJbmZvICptb2Rl Owo+PiArCWlndF9mYl90IGZiLCBmYjI7Cj4+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnksICpwbGFu ZTsKPj4gKwlpbnQgYmxvY2s7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIE1ha2Ugc3VyZSB3ZSBzdGFy dCB3aXRoIGV2ZXJ5dGhpbmcgZGlzYWJsZWQgdG8gZm9yY2UgYSByZWFsIG1vZGVzZXQuCj4+ICsJ ICogaWd0X2Rpc3BsYXlfaW5pdCBvbmx5IHNldHMgc3cgc3RhdGUsIGFuZCBhc3N1bWVzIHRoZSBm aXJzdCB0ZXN0IGRvZXNuJ3QgY2FyZQo+PiArCSAqIGFib3V0IGh3IHN0YXRlLgo+PiArCSAqLwo+ PiArCWlndF9kaXNwbGF5X2NvbW1pdDIoZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7Cj4+ICsKPj4g KwlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7Cj4+ICsKPj4gKwlwcmltYXJ5ID0g aWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkp Owo+PiArCXBsYW5lID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvdXRwdXQsIHBsYW5lX3R5 cGUpOwo+PiArCW1vZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKG91dHB1dCk7Cj4+ICsKPj4gKwlp Z3RfY3JlYXRlX2ZiKGRpc3BsYXktPmRybV9mZCwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNw bGF5LAo+PiArCQkgICAgICBEUk1fRk9STUFUX1hSR0I4ODg4LCBMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FLCAmZmIpOwo+PiArCj4+ICsJc3dpdGNoIChwbGFuZV90eXBlKSB7Cj4+ICsJY2FzZSBE Uk1fUExBTkVfVFlQRV9QUklNQVJZOgo+PiArCQlpZ3RfY3JlYXRlX2ZiKGRpc3BsYXktPmRybV9m ZCwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAo+PiArCQkJICAgICAgRFJNX0ZPUk1B VF9YUkdCODg4OCwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwgJmZiMik7Cj4+ICsJCWJyZWFr Owo+PiArCWNhc2UgRFJNX1BMQU5FX1RZUEVfQ1VSU09SOgo+PiArCQlpZ3RfY3JlYXRlX2ZiKGRp c3BsYXktPmRybV9mZCwgNjQsIDY0LAo+PiArCQkgICAgICBEUk1fRk9STUFUX0FSR0I4ODg4LCBM T0NBTF9EUk1fRk9STUFUX01PRF9OT05FLCAmZmIyKTsKPj4gKwkJYnJlYWs7Cj4+ICsJfQo+PiAr Cj4+ICsJaWYgKHRlc3RfdHlwZSAhPSB0ZXN0X2xlZ2FjeV9tb2Rlc2V0ICYmIHRlc3RfdHlwZSAh PSB0ZXN0X2F0b21pY19tb2Rlc2V0KSB7Cj4+ICsJCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwg JmZiKTsKPj4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0MihkaXNwbGF5LCBDT01NSVRfQVRPTUlDKTsK Pj4gKwl9Cj4+ICsKPj4gKwlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZmIyKTsKPj4gKwo+PiAr CWJsb2NrID0gYmxvY2tfcGxhbmUoZGlzcGxheSwgb3V0cHV0LCB0ZXN0X3R5cGUsIHBsYW5lKTsK Pj4gKwlzbGVlcCgxKTsKPiBVZ2guIE9oIHdlbGwuCj4KPj4gKwo+PiArCWlndF9mb3JrKGNoaWxk LCAxKSB7Cj4+ICsJCXNpZ25hbChTSUdDT05ULCBTSUdfSUdOKTsKPj4gKwkJaWd0X2Fzc2VydChz bGVlcCg1KSA9PSAwKTsKPj4gKwo+PiArCQl1bmJsb2NrKGJsb2NrKTsKPj4gKwl9Cj4+ICsKPj4g KwkvKiBydW4gdGhlIHRlc3QgKi8KPj4gKwlpZ3Rfd2hpbGVfaW50ZXJydXB0aWJsZSh0cnVlKSB7 Cj4+ICsJCXN3aXRjaCAodGVzdF90eXBlKSB7Cj4+ICsJCWNhc2UgdGVzdF9sZWdhY3lfbW9kZXNl dDogewo+PiArCQkJc3RydWN0IGRybV9tb2RlX2NydGMgY3J0YyA9IHsKPj4gKwkJCQkuc2V0X2Nv bm5lY3RvcnNfcHRyID0gKHVpbnQ2NF90KSh1aW50cHRyX3QpJm91dHB1dC0+aWQsCj4+ICsJCQkJ LmNvdW50X2Nvbm5lY3RvcnMgPSAxLAo+PiArCQkJCS5jcnRjX2lkID0gcHJpbWFyeS0+cGlwZS0+ Y3J0Y19pZCwKPj4gKwkJCQkuZmJfaWQgPSBmYjIuZmJfaWQsCj4+ICsJCQkJLm1vZGVfdmFsaWQg PSAxLAo+PiArCQkJCS5tb2RlID0gKihzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8qKW1vZGUsCj4+ ICsJCQl9Owo+PiArCj4+ICsJCQlkb19vcl9kaWUoaWd0X2lvY3RsKGRpc3BsYXktPmRybV9mZCwg RFJNX0lPQ1RMX01PREVfU0VUQ1JUQywgJmNydGMpKTsKPj4gKwkJCWJyZWFrOwo+PiArCQl9Cj4+ ICsJCWNhc2UgdGVzdF9hdG9taWNfbW9kZXNldDogewo+IFdoeSBhbGwgdGhlc2Uge30gZm9yIGVh Y2ggY2FzZSBzdGF0ZW1lbnQ/IEkndmUgbmV2ZXIgc2VlbiB0aGF0IGJlZm9yZSwKPiBsb29rcyBm dW5ueSBhbmQgdW4tQy4KCmRybV9hdG9taWNfZ2V0X3Byb3BlcnR5IHVzZXMgaXQgc28geW91IG1p Z2h0IGhhdmUgc2VlbiBpdCwgYnV0IG5ldmVyIG5vdGljZWQuCkl0J3MgcmVxdWlyZWQgdG8gZGVj bGFyZSB0aGUgbG9jYWwgdmFyaWFibGVzIGluIGEgY2FzZSBzdGF0ZW1lbnQuCgo+Cj4+ICsJCQl1 aW50MzJfdCBvYmpzWzNdID0geyBwbGFuZS0+cGlwZS0+Y3J0Y19pZCwgb3V0cHV0LT5pZCwgcGxh bmUtPmRybV9wbGFuZS0+cGxhbmVfaWQgfTsKPj4gKwkJCXVpbnQzMl90IGNvdW50X3Byb3BzWzNd ID0geyAyLCAxLCA2IH07Cj4+ICsJCQl1aW50MzJfdCBwcm9wc1tdID0gewo+PiArCQkJCS8qIGNy dGM6IDIgcHJvcHMgKi8KPj4gKwkJCQlwbGFuZS0+cGlwZS0+YXRvbWljX3Byb3BzX2NydGNbSUdU X0NSVENfTU9ERV9JRF0sCj4+ICsJCQkJcGxhbmUtPnBpcGUtPmF0b21pY19wcm9wc19jcnRjW0lH VF9DUlRDX0FDVElWRV0sCj4+ICsJCQkJLyogY29ubmVjdG9yOiAxIHByb3AgKi8KPj4gKwkJCQlv dXRwdXQtPmNvbmZpZy5hdG9taWNfcHJvcHNfY29ubmVjdG9yW0lHVF9DT05ORUNUT1JfQ1JUQ19J RF0sCj4+ICsJCQkJLyogcGxhbmU6IHJlbWFpbmRlciBwcm9wcyAqLwo+PiArCQkJCXBsYW5lLT5h dG9taWNfcHJvcHNfcGxhbmVbSUdUX1BMQU5FX0NSVENfSURdLAo+PiArCQkJCXBsYW5lLT5hdG9t aWNfcHJvcHNfcGxhbmVbSUdUX1BMQU5FX0ZCX0lEXSwKPj4gKwkJCQlwbGFuZS0+YXRvbWljX3By b3BzX3BsYW5lW0lHVF9QTEFORV9TUkNfV10sCj4+ICsJCQkJcGxhbmUtPmF0b21pY19wcm9wc19w bGFuZVtJR1RfUExBTkVfU1JDX0hdLAo+PiArCQkJCXBsYW5lLT5hdG9taWNfcHJvcHNfcGxhbmVb SUdUX1BMQU5FX0NSVENfV10sCj4+ICsJCQkJcGxhbmUtPmF0b21pY19wcm9wc19wbGFuZVtJR1Rf UExBTkVfQ1JUQ19IXQo+PiArCQkJfTsKPj4gKwkJCXVpbnQ2NF90IHByb3BfdmFsc1tdID0gewo+ PiArCQkJCS8qIGNydGMgKi8KPj4gKwkJCQkwLCAvKiBtb2RlX2lkLCBmaWxsZWQgaW4gYmVsb3cg Ki8KPj4gKwkJCQl0cnVlLAo+PiArCQkJCS8qIGNvbm5lY3RvciAqLwo+PiArCQkJCXBsYW5lLT5w aXBlLT5jcnRjX2lkLAo+PiArCQkJCS8qIHBsYW5lICovCj4+ICsJCQkJcGxhbmUtPnBpcGUtPmNy dGNfaWQsCj4+ICsJCQkJZmIyLmZiX2lkLAo+PiArCQkJCUlHVF9GSVhFRChmYjIud2lkdGgsIDAp LAo+PiArCQkJCUlHVF9GSVhFRChmYjIuaGVpZ2h0LCAwKSwKPj4gKwkJCQlmYjIud2lkdGgsCj4+ ICsJCQkJZmIyLmhlaWdodAo+PiArCQkJfTsKPj4gKwkJCXVpbnQzMl90IG1vZGVfYmxvYjsKPj4g Kwo+PiArCQkJc3RydWN0IGRybV9tb2RlX2F0b21pYyBhdG0gPSB7Cj4+ICsJCQkJLmZsYWdzID0g RFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsCj4+ICsJCQkJLmNvdW50X29ianMgPSAzLCAv KiBjcnRjLCBjb25uZWN0b3IsIHBsYW5lICovCj4+ICsJCQkJLm9ianNfcHRyID0gKHVpbnQ2NF90 KSh1aW50cHRyX3QpJm9ianMsCj4+ICsJCQkJLmNvdW50X3Byb3BzX3B0ciA9ICh1aW50NjRfdCko dWludHB0cl90KSZjb3VudF9wcm9wcywKPj4gKwkJCQkucHJvcHNfcHRyID0gKHVpbnQ2NF90KSh1 aW50cHRyX3QpJnByb3BzLAo+PiArCQkJCS5wcm9wX3ZhbHVlc19wdHIgPSAodWludDY0X3QpKHVp bnRwdHJfdCkmcHJvcF92YWxzLAo+PiArCQkJfTsKPj4gKwo+PiArCQkJZG9fb3JfZGllKGRybU1v ZGVDcmVhdGVQcm9wZXJ0eUJsb2IoZGlzcGxheS0+ZHJtX2ZkLCBtb2RlLCBzaXplb2YoKm1vZGUp LCAmbW9kZV9ibG9iKSk7Cj4+ICsJCQlwcm9wX3ZhbHNbMF0gPSBtb2RlX2Jsb2I7Cj4+ICsKPj4g KwkJCWRvX29yX2RpZShpZ3RfaW9jdGwoZGlzcGxheS0+ZHJtX2ZkLCBEUk1fSU9DVExfTU9ERV9B VE9NSUMsICZhdG0pKTsKPj4gKwo+PiArCQkJZG9fb3JfZGllKGRybU1vZGVEZXN0cm95UHJvcGVy dHlCbG9iKGRpc3BsYXktPmRybV9mZCwgbW9kZV9ibG9iKSk7Cj4+ICsJCQlicmVhazsKPj4gKwkJ fQo+PiArCQljYXNlIHRlc3RfbGVnYWN5X2RwbXM6IHsKPj4gKwkJCXN0cnVjdCBkcm1fbW9kZV9j b25uZWN0b3Jfc2V0X3Byb3BlcnR5IHByb3AgPSB7Cj4+ICsJCQkJLnZhbHVlID0gRFJNX01PREVf RFBNU19PRkYsCj4+ICsJCQkJLnByb3BfaWQgPSBvdXRwdXQtPmNvbmZpZy5hdG9taWNfcHJvcHNf Y29ubmVjdG9yW0lHVF9DT05ORUNUT1JfRFBNU10sCj4+ICsJCQkJLmNvbm5lY3Rvcl9pZCA9IG91 dHB1dC0+aWQsCj4+ICsJCQl9Owo+PiArCj4+ICsJCQlkb19vcl9kaWUoaWd0X2lvY3RsKGRpc3Bs YXktPmRybV9mZCwgRFJNX0lPQ1RMX01PREVfU0VUUFJPUEVSVFksICZwcm9wKSk7Cj4+ICsJCQli cmVhazsKPj4gKwkJfQo+PiArCQljYXNlIHRlc3Rfc2V0Y3Vyc29yOiB7Cj4+ICsJCQlzdHJ1Y3Qg ZHJtX21vZGVfY3Vyc29yIGN1ciA9IHsKPj4gKwkJCQkuZmxhZ3MgPSBEUk1fTU9ERV9DVVJTT1Jf Qk8sCj4+ICsJCQkJLmNydGNfaWQgPSBwbGFuZS0+cGlwZS0+Y3J0Y19pZCwKPj4gKwkJCQkud2lk dGggPSBmYjIud2lkdGgsCj4+ICsJCQkJLmhlaWdodCA9IGZiMi5oZWlnaHQsCj4+ICsJCQkJLmhh bmRsZSA9IGZiMi5nZW1faGFuZGxlLAo+PiArCQkJfTsKPj4gKwkJCWRvX29yX2RpZShpZ3RfaW9j dGwoZGlzcGxheS0+ZHJtX2ZkLCBEUk1fSU9DVExfTU9ERV9DVVJTT1IsICZjdXIpKTsKPj4gKwkJ CWJyZWFrOwo+PiArCQl9Cj4+ICsJCWNhc2UgdGVzdF9zZXRwbGFuZTogewo+PiArCQkJc3RydWN0 IGRybV9tb2RlX3NldF9wbGFuZSBzZXRwbGFuZSA9IHsKPj4gKwkJCQkucGxhbmVfaWQgPSBwbGFu ZS0+ZHJtX3BsYW5lLT5wbGFuZV9pZCwKPj4gKwkJCQkuY3J0Y19pZCA9IHBsYW5lLT5waXBlLT5j cnRjX2lkLAo+PiArCQkJCS5mYl9pZCA9IGZiMi5mYl9pZCwKPj4gKwkJCQkuY3J0Y193ID0gZmIy LndpZHRoLAo+PiArCQkJCS5jcnRjX2ggPSBmYjIuaGVpZ2h0LAo+PiArCQkJCS5zcmNfdyA9IElH VF9GSVhFRChmYjIud2lkdGgsIDApLAo+PiArCQkJCS5zcmNfaCA9IElHVF9GSVhFRChmYjIuaGVp Z2h0LCAwKSwKPj4gKwkJCX07Cj4+ICsKPj4gKwkJCWRvX29yX2RpZShpZ3RfaW9jdGwoZGlzcGxh eS0+ZHJtX2ZkLCBEUk1fSU9DVExfTU9ERV9TRVRQTEFORSwgJnNldHBsYW5lKSk7Cj4+ICsJCQli cmVhazsKPj4gKwkJfQo+PiArCQljYXNlIHRlc3RfcGFnZWZsaXA6IHsKPj4gKwkJCXN0cnVjdCBk cm1fbW9kZV9jcnRjX3BhZ2VfZmxpcCBwYWdlZmxpcCA9IHsKPj4gKwkJCQkuY3J0Y19pZCA9IHBs YW5lLT5waXBlLT5jcnRjX2lkLAo+PiArCQkJCS5mYl9pZCA9IGZiMi5mYl9pZCwKPj4gKwkJCQku ZmxhZ3MgPSBEUk1fTU9ERV9QQUdFX0ZMSVBfRVZFTlQsCj4+ICsJCQl9Owo+PiArCj4+ICsJCQlk b19vcl9kaWUoaWd0X2lvY3RsKGRpc3BsYXktPmRybV9mZCwgRFJNX0lPQ1RMX01PREVfUEFHRV9G TElQLCAmcGFnZWZsaXApKTsKPj4gKwo+PiArCQkJZHJtSGFuZGxlRXZlbnQoZGlzcGxheS0+ZHJt X2ZkLCAmZHJtX2V2ZW50cyk7Cj4+ICsJCQlicmVhazsKPj4gKwkJfQo+PiArCQl9Cj4gRXNwZWNp YWxseSBzaW5jZSBpdCBtYWtlcyBpdCBsb29rIGxpa2UgeW91IGRvdWJsZS1jbG9zZSB0aGUgc2Ft ZSBibG9jawo+IGhlcmUgKGJ1dCBpdCdzIGFjdHVhbGx5IHRoZSBjYXNlICsgc3dpdGNoIHlvdSBj bG9zZSkuIFBsZWFzZSByZW1vdmUgdGhvc2UKPiB7fSBjYXNlIGJsb2Nrcy4KSXQncyByZXF1aXJl ZCBmb3IgZGVjbGFyaW5nIHRoZSBsb2NhbCB2YXJpYWJsZXMuIEkgY2FuIGluY3JlYXNlCnRoZSBp bmRlbnQgb2YgY2FzZSBieSAxLCB3aGljaCBzaG91bGQgbWFrZSB0aGUgYXBwYXJlbnQgZG91Ymxl IGNsb3NlIGRpc2FwcGVhci4gOikKPiBPdGhlcndpc2UgbGd0bS4gVGhlIHRpbWUtYmFzZWQgYmxv Y2tpbmcgaXNuJ3QgdGhlIG1vc3QgcGVyZmVjdCB0ZXN0aW5nCj4gdGVjaG5pcXVlLCBidXQgd2Vs bCwgcmVwbGFjaW5nIGFsbCBvZiBsaWJkcm0ncyBhdG9taWMgc3R1ZmYgaXMgYSBiaXQgb3Zlcgo+ IHRoZSB0b3AuCj4KPiBBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZnds bC5jaD4KVGhhbmtzIGZvciByZXZpZXcuCgp+TWFhcnRlbgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==