From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kahola Subject: Re: [PATCH i-g-t 3/3] tests/kms_cursor_legacy: Rework the 2x-*-vs-cursor-* tests. Date: Fri, 22 Dec 2017 10:55:37 +0200 Message-ID: <1513932937.5510.18.camel@intel.com> References: <20171207134027.61108-1-maarten.lankhorst@linux.intel.com> <20171207134027.61108-3-maarten.lankhorst@linux.intel.com> Reply-To: mika.kahola@intel.com 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 5DC196E4E7 for ; Fri, 22 Dec 2017 09:19:26 +0000 (UTC) In-Reply-To: <20171207134027.61108-3-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Maarten Lankhorst , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE3LTEyLTA3IGF0IDE0OjQwICswMTAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPiBVc2luZyB0aGUgZmFuY3kgbmV3IERSTV9DQVBfQ1JUQ19JTl9WQkxBTktfRVZFTlQgY2Fw IEkgY2FuIGZpbmFsbHkKPiBtYWtlIHRoaXMgdGVzdCB0aGUgd29yayBJIG9yaWdpbmFsbHkgaW50 ZW5kZWQgdG8uCj4gCj4gRm9yIHRoZSAhbW9kZXNldCBjYXNlIHRoYXQgbWVhbnMgcGVyZm9ybWlu ZyBhIHBhZ2VmbGlwIG9uIGJvdGgKPiBjcnRjJ3MsCj4gdGhlbiByZXF1ZXVlaW5nIGFzIHNvb24g YXMgdGhlIGV2ZW50IGlzIGRlbGl2ZXJlZCBhbmQgdGhlbiBjaGVjayB0aGUKPiB2YmxhbmsgY291 bnRlciBhZ2FpbnN0IHRoZSBvcmlnaW5hbCB2YWx1ZSwgaXQgc2hvdWxkIGJlIGFkdmFuY2VkIGJ5 Cj4gMS4KPiAKPiBUaGUgbW9kZXNldCBjYXNlIGlzIHNsaWdodGx5IG1vcmUgY29tcGxpY2F0ZWQs IGlkZWFsbHkgaXQncyBoYW5kbGVkCj4gdGhlIHNhbWUsIGJ1dCBpZiB3ZSBjYW4ndCBwZXJmb3Jt IGEgbW9kZXNldCBhbmQgcGFnZWZsaXAgYXQgdGhlIHNhbWUKPiB0aW1lLCBmYWxsIGJhY2sgdG8g cXVldWVpbmcgYm90aCBpbiBhIHNpbmdsZSBjb21taXQsIGluIHdoaWNoIGNhc2UKPiB3ZSBjYW4g c2F5IG5vdGhpbmcgYWJvdXQgdGhlIHZibGFuayBjb3VudGVyLgo+IAo+IFRoZXJlIGlzIGEgc21h bGwgcmFjZSBiZXR3ZWVuIGZsaXBfZG9uZSBhbmQgaHdfZG9uZSwgc28gbWFrZQo+IGZsaXBfbm9u YmxvY2tpbmcgcmV0cnkgZm9yIGEgc2Vjb25kIHdoZW4gZW5jb3VudGVyaW5nIC1FQlVTWS4KPiAK UmV2aWV3ZWQtYnk6IE1pa2EgS2Fob2xhIDxtaWthLmthaG9sYUBpbnRlbC5jb20+Cgo+IFNpZ25l ZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+Cj4gQnVnemlsbGE6IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcu Y2dpP2lkPTEwMTYzNAo+IC0tLQo+IMKgdGVzdHMva21zX2N1cnNvcl9sZWdhY3kuYyB8IDIyOCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiAtLS0tLS0tLS0tCj4gwqAxIGZp bGUgY2hhbmdlZCwgMTU2IGluc2VydGlvbnMoKyksIDcyIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYg LS1naXQgYS90ZXN0cy9rbXNfY3Vyc29yX2xlZ2FjeS5jIGIvdGVzdHMva21zX2N1cnNvcl9sZWdh Y3kuYwo+IGluZGV4IDk0ZDkxZTljOTIxYS4uNTAxMWU3OGU1YzJmIDEwMDY0NAo+IC0tLSBhL3Rl c3RzL2ttc19jdXJzb3JfbGVnYWN5LmMKPiArKysgYi90ZXN0cy9rbXNfY3Vyc29yX2xlZ2FjeS5j Cj4gQEAgLTI0MywxOSArMjQzLDI3IEBAIHN0YXRpYyBlbnVtIHBpcGUKPiBmaW5kX2Nvbm5lY3Rl ZF9waXBlKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGJvb2wgc2Vjb25kKQo+IMKgCXJldHVybiBw aXBlOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyB2b2lkIGZsaXBfbm9uYmxvY2tpbmcoaWd0X2Rpc3Bs YXlfdCAqZGlzcGxheSwgZW51bSBwaXBlCj4gcGlwZV9pZCwgYm9vbCBhdG9taWMsIHN0cnVjdCBp Z3RfZmIgKmZiKQo+ICtzdGF0aWMgdm9pZCBmbGlwX25vbmJsb2NraW5nKGlndF9kaXNwbGF5X3Qg KmRpc3BsYXksIGVudW0gcGlwZQo+IHBpcGVfaWQsIGJvb2wgYXRvbWljLCBzdHJ1Y3QgaWd0X2Zi ICpmYiwgdm9pZCAqZGF0YSkKPiDCoHsKPiDCoAlpZ3RfcGlwZV90ICpwaXBlID0gJmRpc3BsYXkt PnBpcGVzW3BpcGVfaWRdOwo+IMKgCWlndF9wbGFuZV90ICpwcmltYXJ5ID0gaWd0X3BpcGVfZ2V0 X3BsYW5lX3R5cGUocGlwZSwKPiBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiArCWludCByZXQ7 Cj4gwqAKPiArCWlndF9zZXRfdGltZW91dCgxLCAiU2NoZWR1bGluZyBwYWdlIGZsaXBcbiIpOwo+ IMKgCWlmICghYXRvbWljKSB7Cj4gwqAJCS8qIFNjaGVkdWxlIGEgbm9uYmxvY2tpbmcgZmxpcCBm b3IgdGhlIG5leHQgdmJsYW5rCj4gKi8KPiAtCQlkb19vcl9kaWUoZHJtTW9kZVBhZ2VGbGlwKGRp c3BsYXktPmRybV9mZCwgcGlwZS0KPiA+Y3J0Y19pZCwgZmItPmZiX2lkLAo+IC0JCQkJCURSTV9N T0RFX1BBR0VfRkxJUF9FVkVOVCwKPiBmYikpOwo+ICsJCWRvIHsKPiArCQkJcmV0ID0gZHJtTW9k ZVBhZ2VGbGlwKGRpc3BsYXktPmRybV9mZCwgcGlwZS0KPiA+Y3J0Y19pZCwgZmItPmZiX2lkLAo+ ICsJCQkJCcKgwqDCoMKgwqDCoERSTV9NT0RFX1BBR0VfRkxJUF9FVkUKPiBOVCwgZGF0YSk7Cj4g KwkJfSB3aGlsZSAocmV0ID09IC1FQlVTWSk7Cj4gwqAJfSBlbHNlIHsKPiDCoAkJaWd0X3BsYW5l X3NldF9mYihwcmltYXJ5LCBmYik7Cj4gLQkJaWd0X2Rpc3BsYXlfY29tbWl0X2F0b21pYyhkaXNw bGF5LAo+IERSTV9NT0RFX0FUT01JQ19OT05CTE9DSyB8IERSTV9NT0RFX1BBR0VfRkxJUF9FVkVO VCwgZmIpOwo+ICsJCWRvIHsKPiArCQkJcmV0ID0gaWd0X2Rpc3BsYXlfdHJ5X2NvbW1pdF9hdG9t aWMoZGlzcGxheSwKPiBEUk1fTU9ERV9BVE9NSUNfTk9OQkxPQ0sgfCBEUk1fTU9ERV9QQUdFX0ZM SVBfRVZFTlQsIGRhdGEpOwo+ICsJCX0gd2hpbGUgKHJldCA9PSAtRUJVU1kpOwo+IMKgCX0KPiAr CWlndF9hc3NlcnQoIXJldCk7Cj4gKwlpZ3RfcmVzZXRfdGltZW91dCgpOwo+IMKgfQo+IMKgCj4g wqBlbnVtIGZsaXBfdGVzdCB7Cj4gQEAgLTQyNCw3ICs0MzIsNyBAQCBzdGF0aWMgdm9pZCBmbGlw KGlndF9kaXNwbGF5X3QgKmRpc3BsYXksCj4gwqAKPiDCoAkJCXN3aXRjaCAobW9kZSkgewo+IMKg CQkJZGVmYXVsdDoKPiAtCQkJCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgZmxpcF9waXBlLAo+ IG1vZGUgPj0gZmxpcF90ZXN0X2F0b21pYywgJmZiX2luZm8pOwo+ICsJCQkJZmxpcF9ub25ibG9j a2luZyhkaXNwbGF5LCBmbGlwX3BpcGUsCj4gbW9kZSA+PSBmbGlwX3Rlc3RfYXRvbWljLCAmZmJf aW5mbywgTlVMTCk7Cj4gwqAJCQkJYnJlYWs7Cj4gwqAJCQljYXNlIGZsaXBfdGVzdF9hdG9taWNf dHJhbnNpdGlvbnM6Cj4gwqAJCQljYXNlCj4gZmxpcF90ZXN0X2F0b21pY190cmFuc2l0aW9uc192 YXJ5aW5nX3NpemU6Cj4gQEAgLTUzMyw3ICs1NDEsNyBAQCBzdGF0aWMgdm9pZCBiYXNpY19mbGlw X2N1cnNvcihpZ3RfZGlzcGxheV90Cj4gKmRpc3BsYXksCj4gwqAJCWNhc2UgRkxJUF9CRUZPUkVf Q1VSU09SOgo+IMKgCQkJc3dpdGNoIChtb2RlKSB7Cj4gwqAJCQlkZWZhdWx0Ogo+IC0JCQkJZmxp cF9ub25ibG9ja2luZyhkaXNwbGF5LCBwaXBlLCBtb2RlCj4gPj0gZmxpcF90ZXN0X2F0b21pYywg JmZiX2luZm8pOwo+ICsJCQkJZmxpcF9ub25ibG9ja2luZyhkaXNwbGF5LCBwaXBlLCBtb2RlCj4g Pj0gZmxpcF90ZXN0X2F0b21pYywgJmZiX2luZm8sIE5VTEwpOwo+IMKgCQkJCWJyZWFrOwo+IMKg CQkJY2FzZSBmbGlwX3Rlc3RfYXRvbWljX3RyYW5zaXRpb25zOgo+IMKgCQkJY2FzZQo+IGZsaXBf dGVzdF9hdG9taWNfdHJhbnNpdGlvbnNfdmFyeWluZ19zaXplOgo+IEBAIC01NTUsNyArNTYzLDcg QEAgc3RhdGljIHZvaWQgYmFzaWNfZmxpcF9jdXJzb3IoaWd0X2Rpc3BsYXlfdAo+ICpkaXNwbGF5 LAo+IMKgCj4gwqAJCQlzd2l0Y2ggKG1vZGUpIHsKPiDCoAkJCWRlZmF1bHQ6Cj4gLQkJCQlmbGlw X25vbmJsb2NraW5nKGRpc3BsYXksIHBpcGUsIG1vZGUKPiA+PSBmbGlwX3Rlc3RfYXRvbWljLCAm ZmJfaW5mbyk7Cj4gKwkJCQlmbGlwX25vbmJsb2NraW5nKGRpc3BsYXksIHBpcGUsIG1vZGUKPiA+ PSBmbGlwX3Rlc3RfYXRvbWljLCAmZmJfaW5mbywgTlVMTCk7Cj4gwqAJCQkJYnJlYWs7Cj4gwqAJ CQljYXNlIGZsaXBfdGVzdF9hdG9taWNfdHJhbnNpdGlvbnM6Cj4gwqAJCQljYXNlCj4gZmxpcF90 ZXN0X2F0b21pY190cmFuc2l0aW9uc192YXJ5aW5nX3NpemU6Cj4gQEAgLTcxMiw3ICs3MjAsNyBA QCBzdGF0aWMgdm9pZCBmbGlwX3ZzX2N1cnNvcihpZ3RfZGlzcGxheV90Cj4gKmRpc3BsYXksIGVu dW0gZmxpcF90ZXN0IG1vZGUsIGludCBubG9vCj4gwqAJCXZibGFua19zdGFydCA9IGdldF92Ymxh bmsoZGlzcGxheS0+ZHJtX2ZkLCBwaXBlLAo+IERSTV9WQkxBTktfTkVYVE9OTUlTUyk7Cj4gwqAJ CXN3aXRjaCAobW9kZSkgewo+IMKgCQlkZWZhdWx0Ogo+IC0JCQlmbGlwX25vbmJsb2NraW5nKGRp c3BsYXksIHBpcGUsIG1vZGUgPj0KPiBmbGlwX3Rlc3RfYXRvbWljLCAmZmJfaW5mbyk7Cj4gKwkJ CWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZSwgbW9kZSA+PQo+IGZsaXBfdGVzdF9hdG9t aWMsICZmYl9pbmZvLCBOVUxMKTsKPiDCoAkJCWJyZWFrOwo+IMKgCQljYXNlIGZsaXBfdGVzdF9h dG9taWNfdHJhbnNpdGlvbnM6Cj4gwqAJCWNhc2UgZmxpcF90ZXN0X2F0b21pY190cmFuc2l0aW9u c192YXJ5aW5nX3NpemU6Cj4gQEAgLTg0MywxMyArODUxLDI2IEBAIHN0YXRpYyB2b2lkCj4gbm9u YmxvY2tpbmdfbW9kZXNldF92c19jdXJzb3IoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IGxv b3BzKQo+IMKgCj4gwqBzdGF0aWMgdm9pZCB0d29fc2NyZWVuc19mbGlwX3ZzX2N1cnNvcihpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5LCBpbnQKPiBubG9vcHMsIGJvb2wgbW9kZXNldCwgYm9vbCBhdG9t aWMpCj4gwqB7Cj4gLQlzdHJ1Y3QgZHJtX21vZGVfY3Vyc29yIGFyZ1syXSwgYXJnMlsyXTsKPiAt CXN0cnVjdCBkcm1fZXZlbnRfdmJsYW5rIHZibDsKPiArCXN0cnVjdCBkcm1fbW9kZV9jdXJzb3Ig YXJnMVsyXSwgYXJnMlsyXTsKPiDCoAlzdHJ1Y3QgaWd0X2ZiIGZiX2luZm8sIGZiMl9pbmZvLCBj dXJzb3JfZmI7Cj4gLQl1bnNpZ25lZCB2Ymxhbmtfc3RhcnQ7Cj4gwqAJZW51bSBwaXBlIHBpcGUg PSBmaW5kX2Nvbm5lY3RlZF9waXBlKGRpc3BsYXksIGZhbHNlKTsKPiDCoAllbnVtIHBpcGUgcGlw ZTIgPSBmaW5kX2Nvbm5lY3RlZF9waXBlKGRpc3BsYXksIHRydWUpOwo+IMKgCWlndF9vdXRwdXRf dCAqb3V0cHV0LCAqb3V0cHV0MjsKPiArCWJvb2wgdmJsYW5rX21hdGNoZXMsIGVuYWJsZWQgPSBm YWxzZTsKPiArCXZvbGF0aWxlIHVuc2lnbmVkIGxvbmcgKnNoYXJlZDsKPiArCXVuc2lnbmVkIGZs YWdzID0gMCwgdmJsYW5rX3N0YXJ0Owo+ICsJc3RydWN0IGRybV9ldmVudF92YmxhbmsgdmJsOwo+ ICsJaW50IHJldDsKPiArCj4gKwlpZiAobW9kZXNldCkgewo+ICsJCXVpbnQ2NF90IHZhbDsKPiAr Cj4gKwkJaWd0X2ZhaWxfb24oIWF0b21pYyk7Cj4gKwkJaWd0X3JlcXVpcmUoZHJtR2V0Q2FwKGRp c3BsYXktPmRybV9mZCwKPiBEUk1fQ0FQX0NSVENfSU5fVkJMQU5LX0VWRU5ULCAmdmFsKSA9PSAw KTsKPiArCX0KPiArCj4gKwlzaGFyZWQgPSBtbWFwKE5VTEwsIDQwOTYsIFBST1RfV1JJVEUsIE1B UF9TSEFSRUQgfCBNQVBfQU5PTiwKPiAtMSwgMCk7Cj4gKwlpZ3RfYXNzZXJ0KHNoYXJlZCAhPSBN QVBfRkFJTEVEKTsKPiDCoAo+IMKgCWlndF9mYWlsX29uKG1vZGVzZXQgJiYgIWF0b21pYyk7Cj4g wqAKPiBAQCAtODYxLDc3ICs4ODIsMTQwIEBAIHN0YXRpYyB2b2lkCj4gdHdvX3NjcmVlbnNfZmxp cF92c19jdXJzb3IoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IG5sb29wcywgYm9vbAo+IMKg Cj4gwqAJaWd0X2NyZWF0ZV9jb2xvcl9mYihkaXNwbGF5LT5kcm1fZmQsIDY0LCA2NCwKPiBEUk1f Rk9STUFUX0FSR0I4ODg4LCAwLCAxLiwgMS4sIDEuLCAmY3Vyc29yX2ZiKTsKPiDCoAlzZXRfY3Vy c29yX29uX3BpcGUoZGlzcGxheSwgcGlwZSwgJmN1cnNvcl9mYik7Cj4gLQlwb3B1bGF0ZV9jdXJz b3JfYXJncyhkaXNwbGF5LCBwaXBlLCBhcmcsICZjdXJzb3JfZmIpOwo+ICsJcG9wdWxhdGVfY3Vy c29yX2FyZ3MoZGlzcGxheSwgcGlwZSwgYXJnMSwgJmN1cnNvcl9mYik7Cj4gwqAKPiAtCWFyZ1sx XS54ID0gYXJnWzFdLnkgPSAxOTI7Cj4gKwlhcmcxWzFdLnggPSBhcmcxWzFdLnkgPSAxOTI7Cj4g wqAKPiDCoAlzZXRfY3Vyc29yX29uX3BpcGUoZGlzcGxheSwgcGlwZTIsICZjdXJzb3JfZmIpOwo+ IMKgCXBvcHVsYXRlX2N1cnNvcl9hcmdzKGRpc3BsYXksIHBpcGUyLCBhcmcyLCAmY3Vyc29yX2Zi KTsKPiDCoAo+IMKgCWFyZzJbMV0ueCA9IGFyZzJbMV0ueSA9IDE5MjsKPiDCoAo+ICsKPiDCoAlp Z3RfZGlzcGxheV9jb21taXQyKGRpc3BsYXksIGRpc3BsYXktPmlzX2F0b21pYyA/Cj4gQ09NTUlU X0FUT01JQyA6IENPTU1JVF9MRUdBQ1kpOwo+IMKgCj4gLQl2Ymxhbmtfc3RhcnQgPSBnZXRfdmJs YW5rKGRpc3BsYXktPmRybV9mZCwgcGlwZSwKPiBEUk1fVkJMQU5LX05FWFRPTk1JU1MpOwo+IC0J aWd0X2Fzc2VydF9lcShnZXRfdmJsYW5rKGRpc3BsYXktPmRybV9mZCwgcGlwZSwgMCksCj4gdmJs YW5rX3N0YXJ0KTsKPiAtCWRvX2lvY3RsKGRpc3BsYXktPmRybV9mZCwgRFJNX0lPQ1RMX01PREVf Q1VSU09SLCAmYXJnWzBdKTsKPiAtCWRvX2lvY3RsKGRpc3BsYXktPmRybV9mZCwgRFJNX0lPQ1RM X01PREVfQ1VSU09SLCAmYXJnMlswXSk7Cj4gLQlpZ3RfYXNzZXJ0X2VxKGdldF92YmxhbmsoZGlz cGxheS0+ZHJtX2ZkLCBwaXBlLCAwKSwKPiB2Ymxhbmtfc3RhcnQpOwo+ICsJaWd0X2ZvcmsoY2hp bGQsIDIpIHsKPiArCQlzdHJ1Y3QgZHJtX21vZGVfY3Vyc29yICphcmcgPSBjaGlsZCA/IGFyZzIg OiBhcmcxOwo+IMKgCj4gLQl3aGlsZSAobmxvb3BzLS0pIHsKPiAtCQkvKiBTdGFydCB3aXRoIGEg c3luY2hyb25vdXMgcXVlcnkgdG8gYWxpZ24gd2l0aCB0aGUKPiB2YmxhbmsgKi8KPiArCQl3aGls ZSAoIXNoYXJlZFswXSkKPiArCQkJZG9faW9jdGwoZGlzcGxheS0+ZHJtX2ZkLAo+IERSTV9JT0NU TF9NT0RFX0NVUlNPUiwKPiArCQkJCcKgJmFyZ1shc2hhcmVkWzFdXSk7Cj4gKwl9Cj4gKwo+ICsJ aWYgKG1vZGVzZXQpIHsKPiArCQlpZ3RfcGxhbmVfdCAqcGxhbmUgPQo+IGlndF9vdXRwdXRfZ2V0 X3BsYW5lX3R5cGUob3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiArCj4gKwkJZmxh Z3MgPSBEUk1fTU9ERV9BVE9NSUNfQUxMT1dfTU9ERVNFVCB8Cj4gKwkJCURSTV9NT0RFX0FUT01J Q19OT05CTE9DSyB8Cj4gRFJNX01PREVfUEFHRV9GTElQX0VWRU5UOwo+ICsKPiArCQkvKiBEaXNh YmxlIHBpcGUyICovCj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQyLCBQSVBFX05PTkUp Owo+ICsJCWlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoZGlzcGxheSwgZmxhZ3MsIE5VTEwpOwo+ ICsJCWVuYWJsZWQgPSBmYWxzZTsKPiArCj4gKwkJLyoKPiArCQnCoCogVHJ5IGEgcGFnZSBmbGlw IG9uIGNydGMgMSwgaWYgd2Ugc3VjY2VlZCBwdW1wCj4gcGFnZSBmbGlwcyBhbmQKPiArCQnCoCog bW9kZXNldHMgaW50ZXJsZWF2ZWQsIGVsc2UgZG8gYSBzaW5nbGUgYXRvbWljCj4gY29tbWl0IHdp dGggYm90aC4KPiArCQnCoCovCj4gwqAJCXZibGFua19zdGFydCA9IGdldF92YmxhbmsoZGlzcGxh eS0+ZHJtX2ZkLCBwaXBlLAo+IERSTV9WQkxBTktfTkVYVE9OTUlTUyk7Cj4gLQkJZG9faW9jdGwo ZGlzcGxheS0+ZHJtX2ZkLCBEUk1fSU9DVExfTU9ERV9DVVJTT1IsCj4gJmFyZ1tubG9vcHMgJiAx XSk7Cj4gKwkJaWd0X3BsYW5lX3NldF9mYihwbGFuZSwgJmZiX2luZm8pOwo+ICsJCXJldCA9IGln dF9kaXNwbGF5X3RyeV9jb21taXRfYXRvbWljKGRpc3BsYXksIGZsYWdzLAo+ICh2b2lkKikocHRy ZGlmZl90KXZibGFua19zdGFydCk7Cj4gKwkJaWd0X2Fzc2VydCghcmV0IHx8IHJldCA9PSAtRUJV U1kpOwo+ICsKPiArCQlpZiAocmV0ID09IC1FQlVTWSkgewo+ICsJCQkvKiBGb3JjZSBjb21wbGV0 aW9uIG9uIGJvdGggcGlwZXMsIGFuZAo+IGdlbmVyYXRlIGV2ZW50LiAqLwo+ICsJCQlpZ3RfZGlz cGxheV9jb21taXRfYXRvbWljKGRpc3BsYXksIGZsYWdzLAo+IE5VTEwpOwo+ICsKPiArCQkJd2hp bGUgKG5sb29wcy0tKSB7Cj4gKwkJCQlzaGFyZWRbMV0gPSBubG9vcHMgJiAxOwo+ICsKPiArCQkJ CWlndF9zZXRfdGltZW91dCgzNSwgIlN0dWNrCj4gbW9kZXNldCIpOwo+ICsJCQkJaWd0X2Fzc2Vy dF9lcShyZWFkKGRpc3BsYXktPmRybV9mZCwKPiAmdmJsLCBzaXplb2YodmJsKSksIHNpemVvZih2 YmwpKTsKPiArCQkJCWlndF9hc3NlcnRfZXEocmVhZChkaXNwbGF5LT5kcm1fZmQsCj4gJnZibCwg c2l6ZW9mKHZibCkpLCBzaXplb2YodmJsKSk7Cj4gKwkJCQlpZ3RfcmVzZXRfdGltZW91dCgpOwo+ ICsKPiArCQkJCWlmICghbmxvb3BzKQo+ICsJCQkJCWJyZWFrOwo+ICsKPiArCQkJCS8qIENvbW1p dCBwYWdlIGZsaXAgYW5kIG1vZGVzZXQKPiBzaW11bHRhbmVvdXNseS4gKi8KPiArCQkJCWlndF9w bGFuZV9zZXRfZmIocGxhbmUsICZmYl9pbmZvKTsKPiArCQkJCWlndF9vdXRwdXRfc2V0X3BpcGUo b3V0cHV0MiwgZW5hYmxlZAo+ID8gUElQRV9OT05FIDogcGlwZTIpOwo+ICsJCQkJZW5hYmxlZCA9 ICFlbmFibGVkOwo+ICsKPiArCQkJCWlndF9zZXRfdGltZW91dCg1LCAiU2NoZWR1bGluZwo+IG1v ZGVzZXRcbiIpOwo+ICsJCQkJZG8gewo+ICsJCQkJCXJldCA9Cj4gaWd0X2Rpc3BsYXlfdHJ5X2Nv bW1pdF9hdG9taWMoZGlzcGxheSwgZmxhZ3MsIE5VTEwpOwo+ICsJCQkJfSB3aGlsZSAocmV0ID09 IC1FQlVTWSk7Cj4gKwkJCQlpZ3RfYXNzZXJ0KCFyZXQpOwo+ICsJCQkJaWd0X3Jlc2V0X3RpbWVv dXQoKTsKPiArCQkJfQo+IMKgCj4gLQkJaWYgKCFtb2Rlc2V0KQo+IC0JCQlmbGlwX25vbmJsb2Nr aW5nKGRpc3BsYXksIHBpcGUsIGZhbHNlLAo+ICZmYl9pbmZvKTsKPiAtCQllbHNlIHsKPiAtCQkJ LyoKPiAtCQkJwqAqIFRoZXJlIGFyZSAyIGRlc2lnbiBpc3N1ZXMgdGhhdCBwcmV2ZW50IHVzCj4g ZnJvbSBkb2luZwo+IC0JCQnCoCogdGhlIHRlc3Qgd2Ugd291bGQgbGlrZSBoZXJlOgo+IC0JCQnC oCoKPiAtCQkJwqAqIC0gZHJtX2V2ZW50X3ZibGFuayBkb2Vzbid0IHNldCBjcnRjX2lkLAo+IHNv IGlmIHdlCj4gLQkJCcKgKsKgwqDCoHVzZSBldmVudHMgd2UgZG9uJ3Qga25vdyB3aGljaCBwaXBl Cj4gZmlyZWQgdGhlIGV2ZW50LAo+IC0JCQnCoCrCoMKgwqBubyB3YXkgdG8gZGlzdGluZ3Vpc2gu Cj4gLQkJCcKgKiAtIERvaW5nIGEgbW9kZXNldCBtYXkgYWRkIHVucmVsYXRlZAo+IHBpcGVzLCBh bmQgZmFpbCB3aXRoCj4gLQkJCcKgKsKgwqDCoC1FQlVTWSBpZiBhIHBhZ2UgZmxpcCBpcyBxdWV1 ZWQgb24gb25lCj4gb2YgdGhvc2UuCj4gLQkJCcKgKgo+IC0JCQnCoCogV29yayBhcm91bmQgaXQg Ynkgbm90IHNldHRpbmcgYW4gZXZlbnQsCj4gYnV0IGRvaW5nIGEgc3luY2hyb25vdXMKPiAtCQkJ wqAqIGNvbW1pdCB0byB3YWl0IGZvciBjb21wbGV0aW9uLCBhbmQgcXVldWUKPiB0aGUgcGFnZSBm bGlwIGFuZCBtb2Rlc2V0Cj4gLQkJCcKgKiBpbiB0aGUgc2FtZSBjb21taXQuCj4gLQkJCcKgKi8K PiAtCj4gLQkJCWlndF9wbGFuZV9zZXRfZmIoaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShvCj4g dXRwdXQsIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpLCAmZmJfaW5mbyk7Cj4gLQkJCWlndF9vdXRw dXRfc2V0X3BpcGUob3V0cHV0MiwgKG5sb29wcyAmIDEpID8KPiBQSVBFX05PTkUgOiBwaXBlMik7 Cj4gLQkJCWlndF9kaXNwbGF5X2NvbW1pdF9hdG9taWMoZGlzcGxheSwKPiBEUk1fTU9ERV9BVE9N SUNfQUxMT1dfTU9ERVNFVCB8IERSTV9NT0RFX0FUT01JQ19OT05CTE9DSywgTlVMTCk7Cj4gKwkJ CWdvdG8gZG9uZTsKPiDCoAkJfQo+ICsJfSBlbHNlIHsKPiArCQl2Ymxhbmtfc3RhcnQgPSBnZXRf dmJsYW5rKGRpc3BsYXktPmRybV9mZCwgcGlwZSwKPiBEUk1fVkJMQU5LX05FWFRPTk1JU1MpOwo+ ICsJCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZSwgYXRvbWljLCAmZmJfaW5mbywKPiAo dm9pZCopKHB0cmRpZmZfdCl2Ymxhbmtfc3RhcnQpOwo+IMKgCj4gLQkJaWd0X2Fzc2VydF9lcShn ZXRfdmJsYW5rKGRpc3BsYXktPmRybV9mZCwgcGlwZSwgMCksCj4gdmJsYW5rX3N0YXJ0KTsKPiAt Cj4gLQkJZG9faW9jdGwoZGlzcGxheS0+ZHJtX2ZkLCBEUk1fSU9DVExfTU9ERV9DVVJTT1IsCj4g JmFyZ1tubG9vcHMgJiAxXSk7Cj4gLQkJaWYgKCFtb2Rlc2V0KSB7Cj4gLQkJCWRvX2lvY3RsKGRp c3BsYXktPmRybV9mZCwKPiBEUk1fSU9DVExfTU9ERV9DVVJTT1IsICZhcmcyW25sb29wcyAmIDFd KTsKPiAtCQkJZG9faW9jdGwoZGlzcGxheS0+ZHJtX2ZkLAo+IERSTV9JT0NUTF9NT0RFX0NVUlNP UiwgJmFyZ1tubG9vcHMgJiAxXSk7Cj4gLQkJCWRvX2lvY3RsKGRpc3BsYXktPmRybV9mZCwKPiBE Uk1fSU9DVExfTU9ERV9DVVJTT1IsICZhcmcyW25sb29wcyAmIDFdKTsKPiArCQl2Ymxhbmtfc3Rh cnQgPSBnZXRfdmJsYW5rKGRpc3BsYXktPmRybV9mZCwgcGlwZTIsCj4gRFJNX1ZCTEFOS19ORVhU T05NSVNTKTsKPiArCQlmbGlwX25vbmJsb2NraW5nKGRpc3BsYXksIHBpcGUyLCBhdG9taWMsICZm YjJfaW5mbywKPiAodm9pZCopKHB0cmRpZmZfdCl2Ymxhbmtfc3RhcnQpOwo+ICsJfQo+IMKgCj4g LQkJCWlndF9hc3NlcnRfZXEoZ2V0X3ZibGFuayhkaXNwbGF5LT5kcm1fZmQsCj4gcGlwZSwgMCks IHZibGFua19zdGFydCk7Cj4gKwl2YmxhbmtfbWF0Y2hlcyA9IGZhbHNlOwo+ICsJd2hpbGUgKG5s b29wcykgewo+ICsJCXNoYXJlZFsxXSA9IG5sb29wcyAmIDE7Cj4gwqAKPiArCQlpZiAoIW1vZGVz ZXQgfHwgbmxvb3BzID4gMSkKPiDCoAkJCWlndF9zZXRfdGltZW91dCgxLCAiU3R1Y2sgcGFnZSBm bGlwIik7Cj4gLQkJCWlndF9pZ25vcmVfd2FybihyZWFkKGRpc3BsYXktPmRybV9mZCwgJnZibCwK PiBzaXplb2YodmJsKSkpOwo+IC0JCQlpZ3RfYXNzZXJ0X2VxKGdldF92YmxhbmsoZGlzcGxheS0+ ZHJtX2ZkLAo+IHBpcGUsIDApLCB2Ymxhbmtfc3RhcnQgKyAxKTsKPiAtCQkJaWd0X3Jlc2V0X3Rp bWVvdXQoKTsKPiAtCQl9IGVsc2Ugewo+IC0JCQlkb19pb2N0bChkaXNwbGF5LT5kcm1fZmQsCj4g RFJNX0lPQ1RMX01PREVfQ1VSU09SLCAmYXJnMltubG9vcHMgJiAxXSk7Cj4gKwkJZWxzZQo+ICsJ CQlpZ3Rfc2V0X3RpbWVvdXQoMzUsICJTdHVjayBtb2Rlc2V0Iik7Cj4gKwkJaWd0X2Fzc2VydF9l cShyZWFkKGRpc3BsYXktPmRybV9mZCwgJnZibCwKPiBzaXplb2YodmJsKSksIHNpemVvZih2Ymwp KTsKPiArCQlpZ3RfcmVzZXRfdGltZW91dCgpOwo+ICsKPiArCQl2Ymxhbmtfc3RhcnQgPSB2Ymwu dXNlcl9kYXRhOwo+ICsJCWlmICghbW9kZXNldCkKPiArCQkJaWd0X2Fzc2VydF9lcSh2Ymwuc2Vx dWVuY2UsIHZibGFua19zdGFydCArCj4gMSk7Cj4gKwo+ICsJCWlmICh2Ymxhbmtfc3RhcnQgJiYg dmJsLnNlcXVlbmNlID09IHZibGFua19zdGFydCArCj4gMSkKPiArCQkJdmJsYW5rX21hdGNoZXMg PSB0cnVlOwo+ICsKPiArCQkvKiBEbyBub3QgcmVxdWV1ZSBvbiB0aGUgbGFzdCAyIGV2ZW50cy4g Ki8KPiArCQlpZiAobmxvb3BzIDw9IDIpIHsKPiArCQkJbmxvb3BzLS07Cj4gKwkJCWNvbnRpbnVl Owo+IMKgCQl9Cj4gwqAKPiAtCQlpZiAobW9kZXNldCkgewo+IC0JCQkvKiB3YWl0IGZvciBwZW5k aW5nIG1vZGVzZXQgYW5kIHBhZ2UgZmxpcCB0bwo+IGNvbXBsZXRlLCB0byBwcmV2ZW50IC1FQlVT WSAqLwo+IC0JCQlpZ3RfcGlwZV9yZWZyZXNoKGRpc3BsYXksIHBpcGUsIGZhbHNlKTsKPiAtCQkJ aWd0X3BpcGVfcmVmcmVzaChkaXNwbGF5LCBwaXBlMiwgZmFsc2UpOwo+IC0JCQlpZ3RfZGlzcGxh eV9jb21taXQyKGRpc3BsYXksIENPTU1JVF9BVE9NSUMpOwo+ICsJCWlmICh2YmwuY3J0Y19pZCA9 PSBkaXNwbGF5LT5waXBlc1twaXBlXS5jcnRjX2lkKSB7Cj4gKwkJCXZibGFua19zdGFydCA9IGdl dF92YmxhbmsoZGlzcGxheS0+ZHJtX2ZkLAo+IHBpcGUsIERSTV9WQkxBTktfTkVYVE9OTUlTUyk7 Cj4gKwkJCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZSwgYXRvbWljLAo+ICZmYl9pbmZv LCAodm9pZCopKHB0cmRpZmZfdCl2Ymxhbmtfc3RhcnQpOwo+ICsJCX0gZWxzZSB7Cj4gKwkJCWln dF9hc3NlcnQodmJsLmNydGNfaWQgPT0gZGlzcGxheS0KPiA+cGlwZXNbcGlwZTJdLmNydGNfaWQp Owo+ICsKPiArCQkJbmxvb3BzLS07Cj4gKwo+ICsJCQlpZiAoIW1vZGVzZXQpIHsKPiArCQkJCXZi bGFua19zdGFydCA9IGdldF92YmxhbmsoZGlzcGxheS0KPiA+ZHJtX2ZkLCBwaXBlMiwgRFJNX1ZC TEFOS19ORVhUT05NSVNTKTsKPiArCQkJCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZTIs Cj4gYXRvbWljLCAmZmIyX2luZm8sICh2b2lkKikocHRyZGlmZl90KXZibGFua19zdGFydCk7Cj4g KwkJCX0gZWxzZSB7Cj4gKwkJCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dDIsIGVuYWJsZWQK PiA/IFBJUEVfTk9ORSA6IHBpcGUyKTsKPiArCj4gKwkJCQlpZ3Rfc2V0X3RpbWVvdXQoMSwgIlNj aGVkdWxpbmcKPiBtb2Rlc2V0XG4iKTsKPiArCQkJCWRvIHsKPiArCQkJCQlyZXQgPQo+IGlndF9k aXNwbGF5X3RyeV9jb21taXRfYXRvbWljKGRpc3BsYXksIGZsYWdzLCBOVUxMKTsKPiArCQkJCX0g d2hpbGUgKHJldCA9PSAtRUJVU1kpOwo+ICsJCQkJaWd0X2Fzc2VydCghcmV0KTsKPiArCQkJCWln dF9yZXNldF90aW1lb3V0KCk7Cj4gKwo+ICsJCQkJZW5hYmxlZCA9ICFlbmFibGVkOwo+ICsJCQl9 Cj4gwqAJCX0KPiDCoAl9Cj4gwqAKPiArCWlndF9hc3NlcnRfZih2YmxhbmtfbWF0Y2hlcywgIkR1 cmluZyBtb2Rlc2V0IGF0IGxlYXN0IDEgcGFnZQo+IGZsaXAgbmVlZHMgdG8gbWF0Y2ghXG4iKTsK PiArCj4gK2RvbmU6Cj4gKwlzaGFyZWRbMF0gPSAxOwo+ICsJaWd0X3dhaXRjaGlsZHJlbigpOwo+ ICsKPiDCoAlpZ3RfcmVtb3ZlX2ZiKGRpc3BsYXktPmRybV9mZCwgJmZiX2luZm8pOwo+IMKgCWln dF9yZW1vdmVfZmIoZGlzcGxheS0+ZHJtX2ZkLCAmZmIyX2luZm8pOwo+IMKgCWlndF9yZW1vdmVf ZmIoZGlzcGxheS0+ZHJtX2ZkLCAmY3Vyc29yX2ZiKTsKPiBAQCAtOTgyLDcgKzEwNjYsNyBAQCBz dGF0aWMgdm9pZCBjdXJzb3JfdnNfZmxpcChpZ3RfZGlzcGxheV90Cj4gKmRpc3BsYXksIGVudW0g ZmxpcF90ZXN0IG1vZGUsIGludCBubG9vCj4gwqAKPiDCoAkJc3dpdGNoIChtb2RlKSB7Cj4gwqAJ CWRlZmF1bHQ6Cj4gLQkJCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZSwgbW9kZSA+PQo+ IGZsaXBfdGVzdF9hdG9taWMsICZmYl9pbmZvKTsKPiArCQkJZmxpcF9ub25ibG9ja2luZyhkaXNw bGF5LCBwaXBlLCBtb2RlID49Cj4gZmxpcF90ZXN0X2F0b21pYywgJmZiX2luZm8sIE5VTEwpOwo+ IMKgCQkJYnJlYWs7Cj4gwqAJCWNhc2UgZmxpcF90ZXN0X2F0b21pY190cmFuc2l0aW9uczoKPiDC oAkJY2FzZSBmbGlwX3Rlc3RfYXRvbWljX3RyYW5zaXRpb25zX3Zhcnlpbmdfc2l6ZToKPiBAQCAt OTkzLDcgKzEwNzcsNyBAQCBzdGF0aWMgdm9pZCBjdXJzb3JfdnNfZmxpcChpZ3RfZGlzcGxheV90 Cj4gKmRpc3BsYXksIGVudW0gZmxpcF90ZXN0IG1vZGUsIGludCBubG9vCj4gwqAJCWlndF9hc3Nl cnRfZXEocmVhZChkaXNwbGF5LT5kcm1fZmQsICZ2YmwsCj4gc2l6ZW9mKHZibCkpLCBzaXplb2Yo dmJsKSk7Cj4gwqAJCXZibGFua19zdGFydCA9IHZibGFua19sYXN0ID0gdmJsLnNlcXVlbmNlOwo+ IMKgCQlmb3IgKGludCBuID0gMDsgbiA8IHZyZWZyZXNoIC8gMjsgbisrKSB7Cj4gLQkJCWZsaXBf bm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZSwgbW9kZSA+PQo+IGZsaXBfdGVzdF9hdG9taWMsICZm Yl9pbmZvKTsKPiArCQkJZmxpcF9ub25ibG9ja2luZyhkaXNwbGF5LCBwaXBlLCBtb2RlID49Cj4g ZmxpcF90ZXN0X2F0b21pYywgJmZiX2luZm8sIE5VTEwpOwo+IMKgCj4gwqAJCQlpZ3RfYXNzZXJ0 X2VxKHJlYWQoZGlzcGxheS0+ZHJtX2ZkLCAmdmJsLAo+IHNpemVvZih2YmwpKSwgc2l6ZW9mKHZi bCkpOwo+IMKgCQkJaWYgKHZibC5zZXF1ZW5jZSAhPSB2YmxhbmtfbGFzdCArIDEpIHsKPiBAQCAt MTA4MywxNCArMTE2NywxNCBAQCBzdGF0aWMgdm9pZAo+IHR3b19zY3JlZW5zX2N1cnNvcl92c19m bGlwKGlndF9kaXNwbGF5X3QgKmRpc3BsYXksIGludCBubG9vcHMsIGJvb2wKPiDCoAkJCXNoYXJl ZFtjaGlsZF0gPSBjb3VudDsKPiDCoAkJfQo+IMKgCj4gLQkJZmxpcF9ub25ibG9ja2luZyhkaXNw bGF5LCBwaXBlWzBdLCBhdG9taWMsCj4gJmZiX2luZm9bMF0pOwo+IC0JCWZsaXBfbm9uYmxvY2tp bmcoZGlzcGxheSwgcGlwZVsxXSwgYXRvbWljLAo+ICZmYl9pbmZvWzFdKTsKPiArCQlmbGlwX25v bmJsb2NraW5nKGRpc3BsYXksIHBpcGVbMF0sIGF0b21pYywKPiAmZmJfaW5mb1swXSwgKHZvaWQg KikwVUwpOwo+ICsJCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZVsxXSwgYXRvbWljLAo+ ICZmYl9pbmZvWzFdLCAodm9pZCAqKTFVTCk7Cj4gwqAKPiDCoAkJZm9yIChpbnQgbiA9IDA7IG4g PCB2cmVmcmVzaFswXSAvIDIgKyB2cmVmcmVzaFsxXSAvCj4gMjsgbisrKSB7Cj4gLQkJCWludCBj aGlsZDsKPiArCQkJdW5zaWduZWQgbG9uZyBjaGlsZDsKPiDCoAo+IMKgCQkJaWd0X2Fzc2VydF9l cShyZWFkKGRpc3BsYXktPmRybV9mZCwgJnZibCwKPiBzaXplb2YodmJsKSksIHNpemVvZih2Ymwp KTsKPiAtCQkJY2hpbGQgPSB2YmwudXNlcl9kYXRhID09ICh1bnNpZ25lZAo+IGxvbmcpJmZiX2lu Zm9bMV07Cj4gKwkJCWNoaWxkID0gdmJsLnVzZXJfZGF0YTsKPiDCoAo+IMKgCQkJaWYgKCFkb25l W2NoaWxkXSsrKQo+IMKgCQkJCXZibGFua19zdGFydFtjaGlsZF0gPSB2Ymwuc2VxdWVuY2U7Cj4g QEAgLTExMDEsNyArMTE4NSw3IEBAIHN0YXRpYyB2b2lkCj4gdHdvX3NjcmVlbnNfY3Vyc29yX3Zz X2ZsaXAoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwgaW50IG5sb29wcywgYm9vbAo+IMKgCQkJdmJs YW5rX2xhc3RbY2hpbGRdID0gdmJsLnNlcXVlbmNlOwo+IMKgCj4gwqAJCQlpZiAoZG9uZVtjaGls ZF0gPCB2cmVmcmVzaFtjaGlsZF0gLyAyKSB7Cj4gLQkJCQlmbGlwX25vbmJsb2NraW5nKGRpc3Bs YXksCj4gcGlwZVtjaGlsZF0sIGF0b21pYywgJmZiX2luZm9bY2hpbGRdKTsKPiArCQkJCWZsaXBf bm9uYmxvY2tpbmcoZGlzcGxheSwKPiBwaXBlW2NoaWxkXSwgYXRvbWljLCAmZmJfaW5mb1tjaGls ZF0sICh2b2lkICopY2hpbGQpOwo+IMKgCQkJfSBlbHNlIHsKPiDCoAkJCQlpZ3RfYXNzZXJ0X2x0 ZSh2Ymwuc2VxdWVuY2UsCj4gdmJsYW5rX3N0YXJ0W2NoaWxkXSArIDUgKiB2cmVmcmVzaFtjaGls ZF0gLyA4KTsKPiDCoAo+IEBAIC0xMTYzLDcgKzEyNDcsNyBAQCBzdGF0aWMgdm9pZCBmbGlwX3Zz X2N1cnNvcl9jcmMoaWd0X2Rpc3BsYXlfdAo+ICpkaXNwbGF5LCBib29sIGF0b21pYykKPiDCoAlm b3IgKGludCBpID0gMTsgaSA+PSAwOyBpLS0pIHsKPiDCoAkJdmJsYW5rX3N0YXJ0ID0gZ2V0X3Zi bGFuayhkaXNwbGF5LT5kcm1fZmQsIHBpcGUsCj4gRFJNX1ZCTEFOS19ORVhUT05NSVNTKTsKPiDC oAo+IC0JCWZsaXBfbm9uYmxvY2tpbmcoZGlzcGxheSwgcGlwZSwgYXRvbWljLCAmZmJfaW5mbyk7 Cj4gKwkJZmxpcF9ub25ibG9ja2luZyhkaXNwbGF5LCBwaXBlLCBhdG9taWMsICZmYl9pbmZvLAo+ IE5VTEwpOwo+IMKgCQlkb19pb2N0bChkaXNwbGF5LT5kcm1fZmQsIERSTV9JT0NUTF9NT0RFX0NV UlNPUiwKPiAmYXJnW2ldKTsKPiDCoAo+IMKgCQlpZ3RfYXNzZXJ0X2VxKGdldF92YmxhbmsoZGlz cGxheS0+ZHJtX2ZkLCBwaXBlLCAwKSwKPiB2Ymxhbmtfc3RhcnQpOwo+IEBAIC0xMjQ3LDcgKzEz MzEsNyBAQCBzdGF0aWMgdm9pZAo+IGZsaXBfdnNfY3Vyc29yX2J1c3lfY3JjKGlndF9kaXNwbGF5 X3QgKmRpc3BsYXksIGJvb2wgYXRvbWljKQo+IMKgCj4gwqAJCXZibGFua19zdGFydCA9IGdldF92 YmxhbmsoZGlzcGxheS0+ZHJtX2ZkLCBwaXBlLAo+IERSTV9WQkxBTktfTkVYVE9OTUlTUyk7Cj4g wqAKPiAtCQlmbGlwX25vbmJsb2NraW5nKGRpc3BsYXksIHBpcGUsIGF0b21pYywKPiAmZmJfaW5m b1sxXSk7Cj4gKwkJZmxpcF9ub25ibG9ja2luZyhkaXNwbGF5LCBwaXBlLCBhdG9taWMsICZmYl9p bmZvWzFdLAo+IE5VTEwpOwo+IMKgCQlkb19pb2N0bChkaXNwbGF5LT5kcm1fZmQsIERSTV9JT0NU TF9NT0RFX0NVUlNPUiwKPiAmYXJnW2ldKTsKPiDCoAo+IMKgCQlpZ3RfYXNzZXJ0X2VxKGdldF92 YmxhbmsoZGlzcGxheS0+ZHJtX2ZkLCBwaXBlLCAwKSwKPiB2Ymxhbmtfc3RhcnQpOwo+IEBAIC0x MzQ3LDcgKzE0MzEsNyBAQCBpZ3RfbWFpbgo+IMKgCQl0d29fc2NyZWVuc19mbGlwX3ZzX2N1cnNv cigmZGlzcGxheSwgOCwgZmFsc2UsCj4gZmFsc2UpOwo+IMKgCj4gwqAJaWd0X3N1YnRlc3QoIjJ4 LWZsaXAtdnMtY3Vyc29yLWF0b21pYyIpCj4gLQkJdHdvX3NjcmVlbnNfZmxpcF92c19jdXJzb3Io JmRpc3BsYXksIDQsIGZhbHNlLAo+IHRydWUpOwo+ICsJCXR3b19zY3JlZW5zX2ZsaXBfdnNfY3Vy c29yKCZkaXNwbGF5LCA4LCBmYWxzZSwKPiB0cnVlKTsKPiDCoAo+IMKgCWlndF9zdWJ0ZXN0KCIy eC1jdXJzb3ItdnMtZmxpcC1sZWdhY3kiKQo+IMKgCQl0d29fc2NyZWVuc19jdXJzb3JfdnNfZmxp cCgmZGlzcGxheSwgOCwgZmFsc2UpOwo+IEBAIC0xMzYyLDEzICsxNDQ2LDEzIEBAIGlndF9tYWlu Cj4gwqAJCXR3b19zY3JlZW5zX2N1cnNvcl92c19mbGlwKCZkaXNwbGF5LCA1MCwgZmFsc2UpOwo+ IMKgCj4gwqAJaWd0X3N1YnRlc3QoIjJ4LW5vbmJsb2NraW5nLW1vZGVzZXQtdnMtY3Vyc29yLWF0 b21pYyIpCj4gLQkJdHdvX3NjcmVlbnNfZmxpcF92c19jdXJzb3IoJmRpc3BsYXksIDgsIHRydWUs IHRydWUpOwo+ICsJCXR3b19zY3JlZW5zX2ZsaXBfdnNfY3Vyc29yKCZkaXNwbGF5LCA0LCB0cnVl LCB0cnVlKTsKPiDCoAo+IMKgCWlndF9zdWJ0ZXN0KCIyeC1jdXJzb3ItdnMtZmxpcC1hdG9taWMi KQo+IMKgCQl0d29fc2NyZWVuc19jdXJzb3JfdnNfZmxpcCgmZGlzcGxheSwgOCwgdHJ1ZSk7Cj4g wqAKPiDCoAlpZ3Rfc3VidGVzdCgiMngtbG9uZy1ub25ibG9ja2luZy1tb2Rlc2V0LXZzLWN1cnNv ci1hdG9taWMiKQo+IC0JCXR3b19zY3JlZW5zX2ZsaXBfdnNfY3Vyc29yKCZkaXNwbGF5LCAxNTAs IHRydWUsCj4gdHJ1ZSk7Cj4gKwkJdHdvX3NjcmVlbnNfZmxpcF92c19jdXJzb3IoJmRpc3BsYXks IDE1LCB0cnVlLAo+IHRydWUpOwo+IMKgCj4gwqAJaWd0X3N1YnRlc3QoIjJ4LWxvbmctY3Vyc29y LXZzLWZsaXAtYXRvbWljIikKPiDCoAkJdHdvX3NjcmVlbnNfY3Vyc29yX3ZzX2ZsaXAoJmRpc3Bs YXksIDUwLCB0cnVlKTsKLS0gCk1pa2EgS2Fob2xhIC0gSW50ZWwgT1RDCgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK