From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id F33F58913B for ; Mon, 8 Apr 2019 20:39:55 +0000 (UTC) Date: Mon, 8 Apr 2019 23:39:27 +0300 From: Imre Deak Message-ID: <20190408203927.GA21909@ideak-desk.fi.intel.com> References: <20190405225549.7306-1-manasi.d.navare@intel.com> <20190408120805.GC4786@ideak-desk.fi.intel.com> <20190408190636.GA23276@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20190408190636.GA23276@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v2] tests/kms_dp_dsc: Force a full modeset when we force dsc enable List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: imre.deak@intel.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Manasi Navare Cc: igt-dev@lists.freedesktop.org, Anusha Srivatsa , Petri Latvala List-ID: T24gTW9uLCBBcHIgMDgsIDIwMTkgYXQgMTI6MDY6MzdQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBPbiBNb24sIEFwciAwOCwgMjAxOSBhdCAwMzowODowNVBNICswMzAwLCBJbXJlIERl YWsgd3JvdGU6Cj4gPiBPbiBGcmksIEFwciAwNSwgMjAxOSBhdCAwMzo1NTo0OVBNIC0wNzAwLCBN YW5hc2kgTmF2YXJlIHdyb3RlOgo+ID4gPiBEU0MgZW5hYmxlIGdldHMgY29uZmlndXJlZCBkdXJp bmcgY29tcHV0ZV9jb25maWcgYW5kIG5lZWRzCj4gPiA+IGEgZnVsbCBtb2Rlc2V0IHRvIGZvcmNl IERTQy4KPiA+ID4gU29tZXRpbWVzIGluIGJldHdlZW4gdGhlIHRlc3RzLCBpZiB0aGUgaW5pdGlh bCBvdXRwdXQgaXMgc2FtZSBhcyB0aGUKPiA+ID4gbW9kZSBiZWluZyBzZXQgZm9yIERTQyB0aGVu IGl0IHdpbGwgbm90IGRvIGEgZnVsbCBtb2Rlc2V0Lgo+ID4gPiBTbyB3ZSBkaXNhYmxlIHRoZSBv dXRwdXQgYmVmb3JlIGZvcmNpbmcgYSBtb2RlIHdpdGggRFNDIGVuYWJsZS4KPiA+ID4gCj4gPiA+ IFlvdSBuZWVkIHRoZSBrZXJuZWwgcGF0Y2g6Cj4gPiA+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVk ZXNrdG9wLm9yZy9zZXJpZXMvNTkwODQvCj4gPiA+IAo+ID4gPiB2MjoKPiA+ID4gKiBSZXN0b3Jl IHRoZSB2YWx1ZSBvZiBmb3JjZSBkc2MgZW5hYmxlIGFmdGVyIHRoZSB0ZXN0IGFuZCBpbiBpZ3Rf ZXhpdF9oYW5kbGVyCj4gPiA+ICogQWRkIGlndF9pbnN0YWxsX2V4aXRfaGFuZGxlciB0byByZXN0 b3JlIHZhbHVlcyBvbiBmYWlsL2V4aXQKPiA+ID4gCj4gPiA+IEZpeGVzOiBkYjE5YmNjYzFjMjIg KCJ0ZXN0L2ttc19kcF9kc2M6IEJhc2ljIEtNUyB0ZXN0IHRvIHZhbGlkYXRlIFZFU0EgRFNDIG9u IERQL2VEUCIpCj4gPiA+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNv bT4KPiA+ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4K PiA+ID4gQ2M6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9m Zi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+ID4gLS0t Cj4gPiA+ICB0ZXN0cy9rbXNfZHBfZHNjLmMgfCAxMzMgKysrKysrKysrKysrKysrKysrKysrKysr KysrLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ICAxIGZpbGUgY2hhbmdlZCwgODEgaW5zZXJ0aW9u cygrKSwgNTIgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvdGVzdHMva21z X2RwX2RzYy5jIGIvdGVzdHMva21zX2RwX2RzYy5jCj4gPiA+IGluZGV4IGRhOTNjZDc0Li5hY2Fl ZTg5MCAxMDA2NDQKPiA+ID4gLS0tIGEvdGVzdHMva21zX2RwX2RzYy5jCj4gPiA+ICsrKyBiL3Rl c3RzL2ttc19kcF9kc2MuYwo+ID4gPiBAQCAtNjMsMTE5ICs2MywxNDcgQEAgdHlwZWRlZiBzdHJ1 Y3Qgewo+ID4gPiAgCWludCBjcnRjOwo+ID4gPiAgCWVudW0gcGlwZSBwaXBlOwo+ID4gPiAgCWNo YXIgY29ubl9uYW1lWzEyOF07Cj4gPiA+ICsJYm9vbCBmb3JjZV9kc2NfZW47Cj4gPiAKPiA+IGZv cmNlX2RzY19lbl9vcmlnPwo+IAo+IFN1cmUsIEkgd2lsbCByZW5hbWUgdGhpcwo+IAo+ID4gCj4g PiA+ICB9IGRhdGFfdDsKPiA+ID4gIAo+ID4gPiArZGF0YV90IGRhdGEgPSB7fTsKPiA+ID4gKwo+ ID4gCj4gPiBNYXliZSBtYWtlIG9ubHkgZGVidWdmc19mZCBhbmQgZm9yY2VfZHNjX2VuX29yaWcg Z2xvYmFsIHRvIHJlZHVjZSB0aGUKPiA+IGNodXJuPyBBbHNvIGluaXQgZGVidWdmc19mZCB0byAt MSwgc28gdGhlIGV4aXQgaGFuZGxlciBrbm93cyBpZiBpdCdzCj4gPiBiZWVuIGNsb3NlZCBhbHJl YWR5Lgo+IAo+IEJ1dCB0aGVuIGZvciByZXN0b3JlIEkgYWxzbyBuZWVkIGRhdGEuY29ubl9uYW1l LiBTbyBpIHRob3VnaHQgSSB3b3VsZCBtYWtlCj4gdGhlIHdob2xlIHRoaW5nIGdsb2JhbC4KCkkn ZCBzdGlsbCBhdm9pZCB0aGUgY2h1cm4gKG1ha2luZyB0aGUgcmV2aWV3IGVhc2llcikgYnkgYWRk aW5nIGEgbmV3Cmdsb2JhbAoKCWludCBmb3JjZV9kc2NfcmVzdG9yZV9mZCA9IC0xOwoKdXNpbmcg aXQgZm9yIHJlc3RvcmluZyB0aGUgZ2xvYmFsIGZvcmNlX2RzY19lbl9vcmlnLiBCeSBkb2luZyB0 aGF0IHlvdQp3b24ndCBuZWVkIGNvbm5fbmFtZSBpbiB0aGUgZXhpdCBoYW5kbGVyLCBzZWUgYmVs b3cuCgo+ID4gPiAgc3RhdGljIGlubGluZSB2b2lkIG1hbnVhbChjb25zdCBjaGFyICpleHBlY3Rl ZCkKPiA+ID4gIHsKPiA+ID4gIAlpZ3RfZGVidWdfbWFudWFsX2NoZWNrKCJhbGwiLCBleHBlY3Rl ZCk7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyBib29sIGlzX2RwX2RzY19zdXBwb3J0 ZWQoZGF0YV90ICpkYXRhKQo+ID4gPiArc3RhdGljIGJvb2wgaXNfZHBfZHNjX3N1cHBvcnRlZCh2 b2lkKQo+ID4gPiAgewo+ID4gPiAgCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gPiA+ICAJ Y2hhciBidWZbNTEyXTsKPiA+ID4gIAo+ID4gPiAtCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNv bm5fbmFtZSk7Cj4gPiA+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS5jb25uX25hbWUpOwo+ID4g PiAgCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiA+ID4gLQlp Z3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxl X25hbWUsIGJ1ZiwKPiA+ID4gKwlpZ3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChk YXRhLmRlYnVnZnNfZmQsIGZpbGVfbmFtZSwgYnVmLAo+ID4gPiAgCQkJCQkgICAgc2l6ZW9mKGJ1 ZikpID4gMCk7Cj4gPiA+IC0JaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFt ZSwgYnVmKTsKPiA+ID4gKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEuZHJtX2ZkLCBmaWxlX25hbWUs IGJ1Zik7Cj4gPiA+ICAKPiA+ID4gIAlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19TaW5rX1N1cHBv cnQ6IHllcyIpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgYm9vbCBpc19kcF9mZWNf c3VwcG9ydGVkKGRhdGFfdCAqZGF0YSkKPiA+ID4gK3N0YXRpYyBib29sIGlzX2RwX2ZlY19zdXBw b3J0ZWQodm9pZCkKPiA+ID4gIHsKPiA+ID4gIAljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ ID4gPiAgCWNoYXIgYnVmWzUxMl07Cj4gPiA+ICAKPiA+ID4gLQlzdHJjcHkoZmlsZV9uYW1lLCBk YXRhLT5jb25uX25hbWUpOwo+ID4gPiArCXN0cmNweShmaWxlX25hbWUsIGRhdGEuY29ubl9uYW1l KTsKPiA+ID4gIAlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4g PiA+IC0JaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKPiA+ ID4gKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEuZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4gPiA+ ICAKPiA+ID4gIAlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkZFQ19TaW5rX1N1cHBvcnQ6IHllcyIpOwo+ ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgYm9vbCBpc19kcF9kc2NfZW5hYmxlZChkYXRh X3QgKmRhdGEpCj4gPiA+ICtzdGF0aWMgYm9vbCBpc19kcF9kc2NfZW5hYmxlZCh2b2lkKQo+ID4g PiAgewo+ID4gPiAgCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gPiA+ICAJY2hhciBidWZb NTEyXTsKPiA+ID4gIAo+ID4gPiAtCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7 Cj4gPiA+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS5jb25uX25hbWUpOwo+ID4gPiAgCXN0cmNh dChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiA+ID4gLQlpZ3RfZGVidWdm c19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOwo+ID4gPiArCWlndF9kZWJ1Z2Zz X3JlYWQoZGF0YS5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKPiA+ID4gIAo+ID4gPiAgCXJldHVy biBzdHJzdHIoYnVmLCAiRFNDX0VuYWJsZWQ6IHllcyIpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ IC1zdGF0aWMgdm9pZCBmb3JjZV9kcF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKPiA+ID4gK3N0 YXRpYyBib29sIGlzX2ZvcmNlX2RzY19lbmFibGVkKHZvaWQpCj4gPiA+ICt7Cj4gPiA+ICsJY2hh ciBmaWxlX25hbWVbMTI4XSA9IHswfTsKPiA+ID4gKwljaGFyIGJ1Zls1MTJdOwo+ID4gPiArCj4g PiA+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS5jb25uX25hbWUpOwo+ID4gPiArCXN0cmNhdChm aWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiA+ID4gKwlpZ3RfZGVidWdmc19y ZWFkKGRhdGEuZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4gPiA+ICsKPiA+ID4gKwlyZXR1cm4g c3Ryc3RyKGJ1ZiwgIkZvcmNlX0RTQ19FbmFibGU6IHllcyIpOwo+ID4gPiArfQo+ID4gPiArCj4g PiA+ICtzdGF0aWMgdm9pZCBmb3JjZV9kcF9kc2NfZW5hYmxlKHZvaWQpCj4gPiA+ICB7Cj4gPiA+ ICAJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKPiA+ID4gIAlpbnQgcmV0Owo+ID4gPiAgCj4g PiA+IC0Jc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKPiA+ID4gKwlzdHJjcHko ZmlsZV9uYW1lLCBkYXRhLmNvbm5fbmFtZSk7Cj4gPiA+ICAJc3RyY2F0KGZpbGVfbmFtZSwgIi9p OTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ID4gPiAtCWlndF9kZWJ1ZyAoIkZvcmNpbmcgRFNDIGVu YWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKPiA+ID4gLQlyZXQgPSBpZ3Rfc3lzZnNf d3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOwo+ID4gPiArCWlndF9k ZWJ1ZyAoIkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS5jb25uX25hbWUpOwo+ID4g PiArCXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLmRlYnVnZnNfZmQsIGZpbGVfbmFtZSwgIjEi LCAxKTsKPiA+ID4gIAlpZ3RfYXNzZXJ0X2YocmV0ID4gMCwgImRlYnVnZnNfd3JpdGUgZmFpbGVk Iik7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gLXN0YXRpYyB2b2lkIGNsZWFyX2RwX2RzY19lbmFi bGUoZGF0YV90ICpkYXRhKQo+ID4gPiArc3RhdGljIHZvaWQgcmVzdG9yZV9kcF9kc2NfZW5hYmxl KHZvaWQpCj4gPiAKPiA+IEJldHRlciBuYW1lZCBhcyByZXN0b3JlX2ZvcmNlX2RzY19lbigpPwo+ IAo+IE9rCj4gCj4gPiAKPiA+ID4gIHsKPiA+ID4gIAljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9 Owo+ID4gPiAgCWludCByZXQ7Cj4gPiA+ICAKPiA+IAo+ID4gWW91IG5lZWQgdG8gY2hlY2sgaWYg dGhlIHNpZyBoYW5kbGVyIHdhcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMgZm9yIHNvbWUKPiA+IHJl YXNvbjoKPiA+IAo+ID4gCWlmIChkZWJ1Z2ZzX2ZkIDwgMCkKPiA+IAkJcmV0dXJuOwo+IAo+IE9r IHdpbGwgYWRkIHRoaXMgY2hlY2sgaGVyZQo+Cj4gPiA+IC0Jc3RyY3B5KGZpbGVfbmFtZSwgZGF0 YS0+Y29ubl9uYW1lKTsKPiA+ID4gKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLmNvbm5fbmFtZSk7 Cj4gPiA+ICAJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ID4g PiAtCWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFibGUgb24gJXNcbiIsIGRhdGEtPmNvbm5f bmFtZSk7Cj4gPiA+IC0JcmV0ID0gaWd0X3N5c2ZzX3dyaXRlKGRhdGEtPmRlYnVnZnNfZmQsIGZp bGVfbmFtZSwgIjAiLCAxKTsKPiA+ID4gKwlpZ3RfZGVidWcgKCJSZXN0b3JpbmcgRFNDIGVuYWJs ZSBvbiAlc1xuIiwgZGF0YS5jb25uX25hbWUpOwo+ID4gPiArCXJldCA9IGlndF9zeXNmc193cml0 ZShkYXRhLmRlYnVnZnNfZmQsIGZpbGVfbmFtZSwKPiA+ID4gKwkJCSAgICAgIGRhdGEuZm9yY2Vf ZHNjX2VuID8gIjEiIDogIjAiLCAxKTsKCkluc3RlYWQgb2YgdGhlIGFib3ZlOgoKc3RhdGljIHZv aWQgcmVzdG9yZV9mb3JjZV9kc2NfZW4odm9pZCkKewoJaWYgKGZvcmNlX2RzY19yZXN0b3JlX2Zk IDwgMCkKCQlyZXR1cm47CgoJaWd0X2RlYnVnKCJSZXN0b3JpbmcgRFNDIGVuYWJsZVxuIik7Cglp Z3RfYXNzZXJ0KHdyaXRlKGZvcmNlX2RzY19yZXN0b3JlX2ZkLCBmb3JjZV9kc2NfZW5fb3JpZyA/ ICIxIiA6ICIwIiwgMSkgPT0gMSk7CgoJY2xvc2UoZm9yY2VfZHNjX3Jlc3RvcmVfZmQpOwoJZm9y Y2VfZHNjX3Jlc3RvcmVfZmQgPSAtMTsKfQoKPiBCdXQgaWYgSSBjbG9zZSBpdCBoZXJlLCBJIGNh bnQgY2FsbCByZXN0b3JlIGZ1bmN0aW9uIGluCj4gdXBkYXRlX2Rpc3BsYXkoKSBhZnRlciB0aGUg dGVzdCBpcyBjb21wbGV0ZWQuICAKPiBQcm9iYWJseSBpIGRvbnQgbmVlZCBpdCB0aGVyZT8KClll cyBpdCdzIG5lZWRlZCwgd2Ugd2FudCB0byBkbyB0aGUgcmVzdG9yZSBmb3IgZWFjaCBjb25uZWN0 b3IuCgo+Cj4gPiA+ICAJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxl ZCIpOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAoZGF0 YV90ICpkYXRhKSB7Cj4gPiA+ICtzdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAodm9pZCkgewo+ID4g PiAgCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ID4gPiAgCj4gPiA+IC0JaWYgKGRhdGEtPm91dHB1 dCkgewo+ID4gPiAtCQlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5v dXRwdXQsCj4gPiA+ICsJaWYgKGRhdGEub3V0cHV0KSB7Cj4gPiA+ICsJCXByaW1hcnkgPSBpZ3Rf b3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEub3V0cHV0LAo+ID4gPiAgCQkJCQkJICAgIERSTV9Q TEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gPiAgCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksIE5V TEwpOwo+ID4gPiAtCQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ID4gPiAt CQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4g PiA+ICsJCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS5kaXNwbGF5KTsKPiA+ID4gKwkJaWd0X3Jl bW92ZV9mYihkYXRhLmRybV9mZCwgJmRhdGEuZmJfdGVzdF9wYXR0ZXJuKTsKPiA+ID4gIAl9Cj4g PiA+ICB9Cj4gPiA+ICAKPiA+ID4gK3N0YXRpYyB2b2lkIGttc19kcF9kc2NfZXhpdF9oYW5kbGVy KGludCBzaWcpIHsKPiA+ID4gKwo+ID4gPiArCXJlc3RvcmVfZHBfZHNjX2VuYWJsZSgpOwo+ID4g PiArfQo+ID4gPiArCj4gPiA+ICAKPiA+ID4gIC8qCj4gPiA+ICAgKiBSZS1wcm9iZSBjb25uZWN0 b3JzIGFuZCBkbyBhIG1vZGVzZXQgd2l0aCBEU0MKPiA+ID4gICAqCj4gPiA+ICAgKi8KPiA+ID4g LXN0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBkc2NfdGVzdF90 eXBlIHRlc3RfdHlwZSkKPiA+ID4gK3N0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGVudW0gZHNj X3Rlc3RfdHlwZSB0ZXN0X3R5cGUpCj4gPiA+ICB7Cj4gPiA+ICAJaWd0X3BsYW5lX3QgKnByaW1h cnk7Cj4gPiA+IC0JZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUoZGF0YS0+b3V0cHV0 KTsKPiA+ID4gLQlkYXRhLT5jb25uZWN0b3IgPSBkYXRhLT5vdXRwdXQtPmNvbmZpZy5jb25uZWN0 b3I7Cj4gPiA+ICsJZGF0YS5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShkYXRhLm91dHB1dCk7 Cj4gPiA+ICsJZGF0YS5jb25uZWN0b3IgPSBkYXRhLm91dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsK PiA+ID4gIAo+ID4gPiAtCWlmIChkYXRhLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERS TV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgo+ID4gPiAtCSAgICBkYXRhLT5waXBlID09 IFBJUEVfQSkgewo+ID4gPiArCWlmIChkYXRhLmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0g RFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0ICYmCj4gPiA+ICsJICAgIGRhdGEucGlwZSA9 PSBQSVBFX0EpIHsKPiA+ID4gIAkJaWd0X2RlYnVnKCJEU0Mgbm90IHN1cHBvcnRlZCBvbiBQaXBl IEEgb24gZXh0ZXJuYWwgRFBcbiIpOwo+ID4gPiAgCQlyZXR1cm47Cj4gPiA+ICAJfQo+ID4gPiAg Cj4gPiA+ICsJLyogRGlzYWJsZSB0aGUgb3V0cHV0IGZpcnN0ICovCj4gPiA+ICsJaWd0X291dHB1 dF9zZXRfcGlwZShkYXRhLm91dHB1dCwgUElQRV9OT05FKTsKPiA+ID4gKwlpZ3RfZGlzcGxheV9j b21taXQoJmRhdGEuZGlzcGxheSk7Cj4gPiA+ICsKPiA+ID4gIAlpZiAodGVzdF90eXBlID09IHRl c3RfYmFzaWNfZHNjX2VuYWJsZSkgewo+ID4gPiAgCQlib29sIGVuYWJsZWQ7Cj4gPiA+ICAKPiA+ ID4gLQkJaWd0X2RlYnVnKCJEU0MgaXMgc3VwcG9ydGVkIG9uICVzXG4iLCBkYXRhLT5jb25uX25h bWUpOwo+ID4gPiAtCQlmb3JjZV9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ID4gPiArCQlpZ3RfZGVi dWcoIkRTQyBpcyBzdXBwb3J0ZWQgb24gJXNcbiIsIGRhdGEuY29ubl9uYW1lKTsKCkhlcmUgY2Fs bCBhIG5ldyBzYXZlX2ZvcmNlX2RzY19lbigpIGZ1bmN0aW9uIGNvbnRhaW5pbmc6CgoJCWZvcmNl X2RzY19lbl9vcmlnID0gaXNfZm9yY2VfZHNjX2VuYWJsZWQoZGF0YSk7CgkJc3RyY3B5KGZpbGVf bmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKCQlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2Zl Y19zdXBwb3J0Iik7CgkJZm9yY2VfZHNjX3Jlc3RvcmVfZmQgPSBvcGVuYXQoaWd0X2RlYnVnZnNf ZGlyKGRhdGEtPmRybV9mZCksCgkJCQkJICAgICAgZmlsZV9uYW1lLCBPX1dST05MWSk7CgkJaWd0 X2Fzc2VydChmb3JjZV9kc2NfcmVzdG9yZV9mZCA+PSAwKTsKCgo+ID4gPiArCQlmb3JjZV9kcF9k c2NfZW5hYmxlKCk7Cj4gPiA+ICAKPiA+ID4gLQkJaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEt PmRybV9mZCwgZGF0YS0+bW9kZS0+aGRpc3BsYXksCj4gPiA+IC0JCQkJICAgICAgZGF0YS0+bW9k ZS0+dmRpc3BsYXksCj4gPiA+ICsJCWlndF9vdXRwdXRfc2V0X3BpcGUoZGF0YS5vdXRwdXQsIGRh dGEucGlwZSk7Cj4gPiA+ICsJCWlndF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLmRybV9mZCwgZGF0 YS5tb2RlLT5oZGlzcGxheSwKPiA+ID4gKwkJCQkgICAgICBkYXRhLm1vZGUtPnZkaXNwbGF5LAo+ ID4gPiAgCQkJCSAgICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCj4gPiA+ICAJCQkJICAgICAgTE9D QUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiA+ID4gLQkJCQkgICAgICAmZGF0YS0+ZmJfdGVzdF9w YXR0ZXJuKTsKPiA+ID4gLQkJcHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0 YS0+b3V0cHV0LAo+ID4gPiArCQkJCSAgICAgICZkYXRhLmZiX3Rlc3RfcGF0dGVybik7Cj4gPiA+ ICsJCXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEub3V0cHV0LAo+ID4g PiAgCQkJCQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ID4gPiAtCQlpZ3RfcGxhbmVf c2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOwo+ID4gPiAtCQlpZ3RfZGlz cGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOwo+ID4gPiArCj4gPiA+ICsJCS8qIE5vdyBzZXQg dGhlIG91dHB1dCB0byB0aGUgZGVzaXJlZCBtb2RlICovCj4gPiA+ICsJCWlndF9wbGFuZV9zZXRf ZmIocHJpbWFyeSwgJmRhdGEuZmJfdGVzdF9wYXR0ZXJuKTsKPiA+ID4gKwkJaWd0X2Rpc3BsYXlf Y29tbWl0KCZkYXRhLmRpc3BsYXkpOwo+ID4gPiAgCj4gPiA+ICAJCS8qCj4gPiA+ICAJCSAqIFVu dGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1cHBvcnQsIG1hbnVhbGx5IGNoZWNrIGlmIFJHQiB0ZXN0 Cj4gPiA+IEBAIC0xODMsMzggKzIxMSwzNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfZGlzcGxheShk YXRhX3QgKmRhdGEsIGVudW0gZHNjX3Rlc3RfdHlwZSB0ZXN0X3R5cGUpCj4gPiA+ICAJCSAqLwo+ ID4gPiAgCQltYW51YWwoIlJHQiB0ZXN0IHBhdHRlcm4gd2l0aG91dCBjb3JydXB0aW9uIik7Cj4g PiA+ICAKPiA+ID4gLQkJZW5hYmxlZCA9IGlzX2RwX2RzY19lbmFibGVkKGRhdGEpOwo+ID4gPiAt CQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ID4gPiArCQllbmFibGVkID0gaXNfZHBfZHNj X2VuYWJsZWQoKTsKPiA+ID4gKwkJcmVzdG9yZV9kcF9kc2NfZW5hYmxlKCk7Cj4gPiA+ICAKPiA+ ID4gIAkJaWd0X2Fzc2VydF9mKGVuYWJsZWQsCj4gPiA+IC0JCQkgICAgICJEZWZhdWx0IERTQyBl bmFibGUgZmFpbGVkIG9uIENvbm5lY3RvcjogJXMgUGlwZTogJXMiLAo+ID4gPiAtCQkJICAgICBk YXRhLT5jb25uX25hbWUsCj4gPiA+IC0JCQkgICAgIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBp cGUpKTsKPiA+ID4gKwkJCSAgICAgIkRlZmF1bHQgRFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVj dG9yOiAlcyBQaXBlOiAlc1xuIiwKPiA+ID4gKwkJCSAgICAgZGF0YS5jb25uX25hbWUsCj4gPiA+ ICsJCQkgICAgIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEucGlwZSkpOwo+ID4gPiAgCX0gZWxzZSB7 Cj4gPiA+ICAJCWlndF9hc3NlcnQoISJVbmtub3duIHRlc3QgdHlwZVxuIik7Cj4gPiA+ICAJfQo+ ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEs IGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+ID4gPiArc3RhdGljIHZvaWQgcnVuX3Rlc3QoaWd0X291 dHB1dF90ICpvdXRwdXQsCj4gPiA+ICAJCSAgICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlw ZSkKPiA+ID4gIHsKPiA+ID4gIAllbnVtIHBpcGUgcGlwZTsKPiA+ID4gIAo+ID4gPiAtCWZvcl9l YWNoX3BpcGUoJmRhdGEtPmRpc3BsYXksIHBpcGUpIHsKPiA+ID4gKwlmb3JfZWFjaF9waXBlKCZk YXRhLmRpc3BsYXksIHBpcGUpIHsKPiA+ID4gIAo+ID4gPiAgCQlpZiAoaWd0X3BpcGVfY29ubmVj dG9yX3ZhbGlkKHBpcGUsIG91dHB1dCkpIHsKPiA+ID4gLQkJCWlndF9vdXRwdXRfc2V0X3BpcGUo b3V0cHV0LCBwaXBlKTsKPiA+ID4gLQkJCWRhdGEtPnBpcGUgPSBwaXBlOwo+ID4gPiAtCQkJZGF0 YS0+b3V0cHV0ID0gb3V0cHV0Owo+ID4gPiAtCQkJdXBkYXRlX2Rpc3BsYXkoZGF0YSwgdGVzdF90 eXBlKTsKPiA+ID4gLQkJCXRlc3RfY2xlYW51cChkYXRhKTsKPiA+ID4gKwkJCWRhdGEucGlwZSA9 IHBpcGU7Cj4gPiA+ICsJCQlkYXRhLm91dHB1dCA9IG91dHB1dDsKPiA+ID4gKwkJCXVwZGF0ZV9k aXNwbGF5KHRlc3RfdHlwZSk7Cj4gPiA+ICsJCQl0ZXN0X2NsZWFudXAoKTsKPiA+ID4gIAkJfQo+ ID4gPiAgCX0KPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgaWd0X21haW4KPiA+ID4gIHsKPiA+ID4g LQlkYXRhX3QgZGF0YSA9IHt9Owo+ID4gPiArCS8vZGF0YV90IGRhdGEgPSB7fTsKPiA+IAo+ID4g TGVmdG92ZXIgbGluZS4KPiAKPiBZZXMsIHNvcnJ5IGFib3V0IHRoYXQsIHdpbGwgY2xlYW4gaXQg dXAKPiAKPiA+IAo+ID4gPiAgCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+ID4gPiAgCWRybU1vZGVS ZXMgKnJlczsKPiA+ID4gIAlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4gPiA+IEBAIC0y MjUsNiArMjUyLDcgQEAgaWd0X21haW4KPiA+ID4gIAkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9k cml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOwo+ID4gPiAgCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3Rf ZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwo+ID4gPiAgCQlrbXN0ZXN0X3NldF92dF9ncmFwaGlj c19tb2RlKCk7Cj4gPiA+ICsJCWlndF9pbnN0YWxsX2V4aXRfaGFuZGxlcihrbXNfZHBfZHNjX2V4 aXRfaGFuZGxlcik7Cj4gPiAKPiA+IEJlZm9yZSB0aGlzIHlvdSBuZWVkIHRvIGFjdHVhbGx5IHNh dmUgdGhlIG9yaWdpbmFsIHZhbHVlLCBvdGhlcndpc2UgdGhlCj4gPiBleGl0IGhhbmRsZXIgbWF5 IHJlc3RvcmUgYW4gdW5pbml0aWFsaXplZCB2YWx1ZSBpbiBjYXNlIGl0J3MgY2FsbGVkCj4gPiBi ZWZvcmUgeW91IHNhdmUgaXQuCj4gCj4gU2luY2UgdGhlIHZhbHVlIGlzIHBlciBjb25uZWN0b3Is IEkgY2FudCBzYXZlIGl0IHVudGlsIEkgaGF2ZSBnb25lCj4gdGhyb3VnaCB0aGUgd2hvbGUgY29u bmVjdG9yIHR5cGUgY2hlY2tzLiAgSSB3aWxsIG1vdmUgdGhlCj4gaWd0X2luc3RhbGxfZXhpdF9o YW5kbGVyKGttc19kcF9kc2NfZXhpdF9oYW5kbGVyKTsgdG8gYmVmb3JlIHJ1bl90ZXN0Cj4gY2Fs bCB0aGVuPwoKSXQgY2FuIHN0YXkgaGVyZSBiYXNlZCBvbiB0aGUgYWJvdmUgY29tbWVudHMuCgo+ ID4gCj4gPiA+ICAJCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1f ZmQpOwo+ID4gPiAgCQlpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEu ZHJtX2ZkKSk7Cj4gPiA+ICAJfQo+ID4gPiBAQCAtMjQ1LDE5ICsyNzMsMjAgQEAgaWd0X21haW4K PiA+ID4gIAkJCQlzcHJpbnRmKGRhdGEuY29ubl9uYW1lLCAiJXMtJWQiLAo+ID4gPiAgCQkJCQlr bXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSwKPiA+ ID4gIAkJCQkJY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZV9pZCk7Cj4gPiA+IC0JCQkJaWYoIWlz X2RwX2RzY19zdXBwb3J0ZWQoJmRhdGEpKSB7Cj4gPiA+ICsJCQkJaWYoIWlzX2RwX2RzY19zdXBw b3J0ZWQoKSkgewo+ID4gPiAgCQkJCQlpZ3RfZGVidWcoIkRTQyBub3Qgc3VwcG9ydGVkIG9uIGNv bm5lY3RvciAlcyBcbiIsCj4gPiA+ICAJCQkJCQkgIGRhdGEuY29ubl9uYW1lKTsKPiA+ID4gIAkJ CQkJY29udGludWU7Cj4gPiA+ICAJCQkJfQo+ID4gPiAgCQkJCWlmIChjb25uZWN0b3ItPmNvbm5l Y3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAmJgo+ID4gPiAtCQkJ CSAgICAhaXNfZHBfZmVjX3N1cHBvcnRlZCgmZGF0YSkpIHsKPiA+ID4gKwkJCQkgICAgIWlzX2Rw X2ZlY19zdXBwb3J0ZWQoKSkgewo+ID4gPiAgCQkJCQlpZ3RfZGVidWcoIkRTQyBjYW5ub3QgYmUg ZW5hYmxlZCB3aXRob3V0IEZFQyBvbiAlc1xuIiwKPiA+ID4gIAkJCQkJCSAgZGF0YS5jb25uX25h bWUpOwo+ID4gPiAgCQkJCQljb250aW51ZTsKPiA+ID4gIAkJCQl9Cj4gPiA+ICAJCQkJdGVzdF9j b25uX2NudCsrOwo+ID4gPiAtCQkJCXJ1bl90ZXN0KCZkYXRhLCBvdXRwdXQsIHRlc3RfYmFzaWNf ZHNjX2VuYWJsZSk7Cj4gPiA+ICsJCQkJZGF0YS5mb3JjZV9kc2NfZW4gPSBpc19mb3JjZV9kc2Nf ZW5hYmxlZCgpOwo+ID4gPiArCQkJCXJ1bl90ZXN0KG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5h YmxlKTsKPiA+ID4gIAkJCX0KPiA+ID4gIAkJCWlndF9za2lwX29uKHRlc3RfY29ubl9jbnQgPT0g MCk7Cj4gPiA+ICAJCX0KPiA+IAo+ID4gVW5kZXIgaWd0X2ZpeHR1cmUgeW91IGNsb3NlIGRlYnVn ZnNfZmQsIGJ1dCB0aGF0J3Mgbm90IGdvb2QsIHNpbmNlIHRoZQo+ID4gZXhpdCBoYW5kbGVyIHdp bGwgYmUgY2FsbGVkIGV2ZW4gZHVyaW5nIG5vcm1hbCBwcm9jZXNzIGV4aXQsIGFuZCBzbyB0aGUK PiA+IGV4aXQgaGFuZGxlciB3aWxsIGZpbmQgdW5leHBlY3RlZGx5IHRoYXQgdGhlIGZkIGl0IG5l ZWRzIGlzIGNsb3NlZC4KPiA+IAo+ID4gSnVzdCBsZWF2ZSB0aGUgY2xvc2luZyB1cCB0byB0aGUg ZXhpdCBoYW5kbGVyIGFzIEkgY29tbWVudGVkIGFib3ZlLAo+ID4gbGVhdmluZyBhIGNvbW1lbnQg YWJvdXQgdGhpcyBmYWN0IHVuZGVyIGlndF9maXh0dXJlLgo+IAo+IE9rIHdpbGwgcmVtb3ZlIHRo ZSBkZWJ1Z2ZzIGZkIGZyb20gdGhlIGlndF9maXh0dXJlKCkKCkJhc2VkIG9uIHRoZSBhYm92ZSB5 b3UnbGwgc3RpbGwgbmVlZCB0byBjbG9zZSBoZXJlIGRlYnVnZnNfZmQsIGFzIHdlJ2xsCm5vdyB1 c2UgYSBzZXBhcmF0ZSBmZCBmb3IgcmVzdG9yaW5nLgoKPiAKPiBNYW5hc2kKPiA+IAo+ID4gLS1J bXJlCj4gPiAKPiA+ID4gLS0gCj4gPiA+IDIuMTkuMQo+ID4gPiAKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRl dkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pZ3QtZGV2