From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 6/7] igt/kms_frontbuffer_tracking: Add Y-tiling support Date: Wed, 26 Apr 2017 11:02:45 -0300 Message-ID: <1493215365.2504.133.camel@intel.com> References: <1489778126-11988-1-git-send-email-praveen.paneri@intel.com> <1489778126-11988-7-git-send-email-praveen.paneri@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0389C6E426 for ; Wed, 26 Apr 2017 14:02:50 +0000 (UTC) In-Reply-To: <1489778126-11988-7-git-send-email-praveen.paneri@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Praveen Paneri , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gU8OhYiwgMjAxNy0wMy0xOCDDoHMgMDA6NDUgKzA1MzAsIFByYXZlZW4gUGFuZXJpIGVzY3Jl dmV1Ogo+IEFsbG93IHRlc3RzIHRvIGNyZWF0ZSBZLXRpbGVkIGJ1ZmZlcmVzIHVzaW5nIGEgc2Vw YXJhdGUKPiBhcmd1bWVudCB0byB0aGUgdGVzdCB3aXRob3V0IGluY3JlYXNpbmcgdGhlIG51bWJl ciBvZgo+IHN1YnRlc3RzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFByYXZlZW4gUGFuZXJpIDxwcmF2 ZWVuLnBhbmVyaUBpbnRlbC5jb20+Cj4gLS0tCj4gwqB0ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJh Y2tpbmcuYyB8IDQ2ICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+IC0tLS0tLS0tLS0K PiDCoDEgZmlsZSBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxOSBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKPiBiL3Rlc3Rz L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gaW5kZXggMDNjNzcxMC4uMDU5N2YxMCAxMDA2 NDQKPiAtLS0gYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwo+ICsrKyBiL3Rlc3Rz L2ttc19mcm9udGJ1ZmZlcl90cmFja2luZy5jCj4gQEAgLTI1MCw2ICsyNTAsNyBAQCBzdHJ1Y3Qg ewo+IMKgCWludCBvbmx5X3BpcGVzOwo+IMKgCWludCBzaGFyZWRfZmJfeF9vZmZzZXQ7Cj4gwqAJ aW50IHNoYXJlZF9mYl95X29mZnNldDsKPiArCXVpbnQ2NF90IHRpbGluZzsKPiDCoH0gb3B0ID0g ewo+IMKgCS5jaGVja19zdGF0dXMgPSB0cnVlLAo+IMKgCS5jaGVja19jcmMgPSB0cnVlLAo+IEBA IC0yNjIsNiArMjYzLDcgQEAgc3RydWN0IHsKPiDCoAkub25seV9waXBlcyA9IFBJUEVfQ09VTlQs Cj4gwqAJLnNoYXJlZF9mYl94X29mZnNldCA9IDUwMCwKPiDCoAkuc2hhcmVkX2ZiX3lfb2Zmc2V0 ID0gNTAwLAo+ICsJLnRpbGluZyA9IExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+IMKg fTsKPiDCoAo+IMKgc3RydWN0IG1vZGVzZXRfcGFyYW1zIHsKPiBAQCAtNTc2LDcgKzU3OCw3IEBA IHN0YXRpYyB2b2lkIGNyZWF0ZV9mYihlbnVtIHBpeGVsX2Zvcm1hdCBwZm9ybWF0LAo+IGludCB3 aWR0aCwgaW50IGhlaWdodCwKPiDCoAlpZiAocGxhbmUgPT0gUExBTkVfQ1VSKQo+IMKgCQl0aWxp bmdfZm9yX3NpemUgPSBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FOwo+IMKgCWVsc2UKPiAtCQl0 aWxpbmdfZm9yX3NpemUgPSBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDsKPiArCQl0aWxp bmdfZm9yX3NpemUgPSBvcHQudGlsaW5nOwo+IMKgCj4gwqAJaWd0X2NhbGNfZmJfc2l6ZShkcm0u ZmQsIHdpZHRoLCBoZWlnaHQsIGJwcCwKPiB0aWxpbmdfZm9yX3NpemUsICZzaXplLAo+IMKgCQkJ wqAmc3RyaWRlKTsKPiBAQCAtNzA4LDcgKzcxMCw3IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZV9zaGFy ZWRfZmIoZW51bSBwaXhlbF9mb3JtYXQKPiBmb3JtYXQpCj4gwqAKPiDCoAliaWdfaCA9IHByaW1f aCArIHNjbmRfaCArIG9mZnNfaCArIG9wdC5zaGFyZWRfZmJfeV9vZmZzZXQ7Cj4gwqAKPiAtCWNy ZWF0ZV9mYihmb3JtYXQsIGJpZ193LCBiaWdfaCwKPiBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9U SUxFRCwKPiArCWNyZWF0ZV9mYihmb3JtYXQsIGJpZ193LCBiaWdfaCwgb3B0LnRpbGluZywKPiDC oAkJwqDCoFBMQU5FX1BSSSwgJnMtPmJpZyk7Cj4gwqB9Cj4gwqAKPiBAQCAtNzQyLDE2ICs3NDQs MTYgQEAgc3RhdGljIHZvaWQgY3JlYXRlX2ZicyhlbnVtIHBpeGVsX2Zvcm1hdAo+IGZvcm1hdCkK PiDCoAo+IMKgCWNyZWF0ZV9mYihmb3JtYXQsIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+aGRpc3Bs YXksCj4gwqAJCcKgwqBwcmltX21vZGVfcGFyYW1zLm1vZGUtPnZkaXNwbGF5LAo+IC0JCcKgwqBM T0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgUExBTkVfUFJJLCAmcy0KPiA+cHJpbV9wcmkp Owo+ICsJCcKgwqBvcHQudGlsaW5nLCBQTEFORV9QUkksICZzLT5wcmltX3ByaSk7Cj4gwqAJY3Jl YXRlX2ZiKGZvcm1hdCwgcHJpbV9tb2RlX3BhcmFtcy5jdXJzb3IudywKPiDCoAkJwqDCoHByaW1f bW9kZV9wYXJhbXMuY3Vyc29yLmgsCj4gTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiDCoAkJ wqDCoFBMQU5FX0NVUiwgJnMtPnByaW1fY3VyKTsKPiDCoAljcmVhdGVfZmIoZm9ybWF0LCBwcmlt X21vZGVfcGFyYW1zLnNwcml0ZS53LAo+IC0JCcKgwqBwcmltX21vZGVfcGFyYW1zLnNwcml0ZS5o LAo+IExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+ICsJCcKgwqBwcmltX21vZGVfcGFy YW1zLnNwcml0ZS5oLCBvcHQudGlsaW5nLAo+IMKgCQnCoMKgUExBTkVfU1BSLCAmcy0+cHJpbV9z cHIpOwo+IMKgCj4gwqAJY3JlYXRlX2ZiKGZvcm1hdCwgb2Zmc2NyZWVuX2ZiLncsIG9mZnNjcmVl bl9mYi5oLAo+IC0JCcKgwqBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgUExBTkVfUFJJ LCAmcy0KPiA+b2Zmc2NyZWVuKTsKPiArCQnCoMKgb3B0LnRpbGluZywgUExBTkVfUFJJLCAmcy0+ b2Zmc2NyZWVuKTsKPiDCoAo+IMKgCWNyZWF0ZV9zaGFyZWRfZmIoZm9ybWF0KTsKPiDCoAo+IEBA IC03NjAsMTEgKzc2MiwxMSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVfZmJzKGVudW0gcGl4ZWxfZm9y bWF0Cj4gZm9ybWF0KQo+IMKgCj4gwqAJY3JlYXRlX2ZiKGZvcm1hdCwgc2NuZF9tb2RlX3BhcmFt cy5tb2RlLT5oZGlzcGxheSwKPiDCoAkJwqDCoHNjbmRfbW9kZV9wYXJhbXMubW9kZS0+dmRpc3Bs YXksCj4gLQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCBQTEFORV9QUkksICZz LQo+ID5zY25kX3ByaSk7Cj4gKwkJwqDCoG9wdC50aWxpbmcsIFBMQU5FX1BSSSwgJnMtPnNjbmRf cHJpKTsKPiDCoAljcmVhdGVfZmIoZm9ybWF0LCBzY25kX21vZGVfcGFyYW1zLmN1cnNvci53LAo+ IHNjbmRfbW9kZV9wYXJhbXMuY3Vyc29yLmgsCj4gwqAJCcKgwqBMT0NBTF9EUk1fRk9STUFUX01P RF9OT05FLCBQTEFORV9DVVIsICZzLQo+ID5zY25kX2N1cik7Cj4gwqAJY3JlYXRlX2ZiKGZvcm1h dCwgc2NuZF9tb2RlX3BhcmFtcy5zcHJpdGUudywKPiBzY25kX21vZGVfcGFyYW1zLnNwcml0ZS5o LAo+IC0JCcKgwqBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwgUExBTkVfU1BSLCAmcy0K PiA+c2NuZF9zcHIpOwo+ICsJCcKgwqBvcHQudGlsaW5nLCBQTEFORV9TUFIsICZzLT5zY25kX3Nw cik7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBib29sIHNldF9tb2RlX2Zvcl9wYXJhbXMoc3RydWN0 IG1vZGVzZXRfcGFyYW1zICpwYXJhbXMpCj4gQEAgLTEyNDEsNyArMTI0Myw3IEBAIHN0YXRpYyB2 b2lkIGluaXRfYmx1ZV9jcmMoZW51bSBwaXhlbF9mb3JtYXQKPiBmb3JtYXQsIGJvb2wgbWFuZGF0 b3J5X3NpbmtfY3JjKQo+IMKgCj4gwqAJY3JlYXRlX2ZiKGZvcm1hdCwgcHJpbV9tb2RlX3BhcmFt cy5tb2RlLT5oZGlzcGxheSwKPiDCoAkJwqDCoHByaW1fbW9kZV9wYXJhbXMubW9kZS0+dmRpc3Bs YXksCj4gLQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCBQTEFORV9QUkksICZi bHVlKTsKPiArCQnCoMKgb3B0LnRpbGluZywgUExBTkVfUFJJLCAmYmx1ZSk7Cj4gwqAKPiDCoAlm aWxsX2ZiKCZibHVlLCBDT0xPUl9QUklNX0JHKTsKPiDCoAo+IEBAIC0xMjc2LDcgKzEyNzgsNyBA QCBzdGF0aWMgdm9pZCBpbml0X2NyY3MoZW51bSBwaXhlbF9mb3JtYXQgZm9ybWF0LAo+IMKgCWZv ciAociA9IDA7IHIgPCBwYXR0ZXJuLT5uX3JlY3RzOyByKyspCj4gwqAJCWNyZWF0ZV9mYihmb3Jt YXQsIHByaW1fbW9kZV9wYXJhbXMubW9kZS0+aGRpc3BsYXksCj4gwqAJCQnCoMKgcHJpbV9tb2Rl X3BhcmFtcy5tb2RlLT52ZGlzcGxheSwKPiAtCQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9Y X1RJTEVELCBQTEFORV9QUkksCj4gJnRtcF9mYnNbcl0pOwo+ICsJCQnCoMKgb3B0LnRpbGluZywg UExBTkVfUFJJLCAmdG1wX2Zic1tyXSk7Cj4gwqAKPiDCoAlmb3IgKHIgPSAwOyByIDwgcGF0dGVy bi0+bl9yZWN0czsgcisrKQo+IMKgCQlmaWxsX2ZiKCZ0bXBfZmJzW3JdLCBDT0xPUl9QUklNX0JH KTsKPiBAQCAtMjM3NCw3ICsyMzc2LDcgQEAgc3RhdGljIHZvaWQgZmxpcF9zdWJ0ZXN0KGNvbnN0 IHN0cnVjdCB0ZXN0X21vZGUKPiAqdCkKPiDCoAlwcmVwYXJlX3N1YnRlc3QodCwgcGF0dGVybik7 Cj4gwqAKPiDCoAljcmVhdGVfZmIodC0+Zm9ybWF0LCBwYXJhbXMtPmZiLmZiLT53aWR0aCwgcGFy YW1zLT5mYi5mYi0KPiA+aGVpZ2h0LAo+IC0JCcKgwqBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9U SUxFRCwgdC0+cGxhbmUsICZmYjIpOwo+ICsJCcKgwqBvcHQudGlsaW5nLCB0LT5wbGFuZSwgJmZi Mik7Cj4gwqAJZmlsbF9mYigmZmIyLCBiZ19jb2xvcik7Cj4gwqAJb3JpZ19mYiA9IHBhcmFtcy0+ ZmIuZmI7Cj4gwqAKPiBAQCAtMjQyMCw3ICsyNDIyLDcgQEAgc3RhdGljIHZvaWQgZmxpcHRyYWNr X3N1YnRlc3QoY29uc3Qgc3RydWN0Cj4gdGVzdF9tb2RlICp0LCBlbnVtIGZsaXBfdHlwZSB0eXBl KQo+IMKgCXByZXBhcmVfc3VidGVzdCh0LCBwYXR0ZXJuKTsKPiDCoAo+IMKgCWNyZWF0ZV9mYih0 LT5mb3JtYXQsIHBhcmFtcy0+ZmIuZmItPndpZHRoLCBwYXJhbXMtPmZiLmZiLQo+ID5oZWlnaHQs Cj4gLQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCB0LT5wbGFuZSwgJmZiMik7 Cj4gKwkJwqDCoG9wdC50aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsKPiDCoAlmaWxsX2ZiKCZmYjIs IENPTE9SX1BSSU1fQkcpOwo+IMKgCW9yaWdfZmIgPSBwYXJhbXMtPmZiLmZiOwo+IMKgCj4gQEAg LTI2MzEsNyArMjYzMyw3IEBAIHN0YXRpYyB2b2lkIGZ1bGxzY3JlZW5fcGxhbmVfc3VidGVzdChj b25zdAo+IHN0cnVjdCB0ZXN0X21vZGUgKnQpCj4gwqAJcHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRl cm4pOwo+IMKgCj4gwqAJcmVjdCA9IHBhdHRlcm4tPmdldF9yZWN0KCZwYXJhbXMtPmZiLCAwKTsK PiAtCWNyZWF0ZV9mYih0LT5mb3JtYXQsIHJlY3QudywgcmVjdC5oLAo+IExPQ0FMX0k5MTVfRk9S TUFUX01PRF9YX1RJTEVELAo+ICsJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcmVjdC53LCByZWN0Lmgs IG9wdC50aWxpbmcsCj4gwqAJCcKgwqB0LT5wbGFuZSwgJmZ1bGxzY3JlZW5fZmIpOwo+IMKgCS8q IENhbGwgcGlja19jb2xvcigpIGFnYWluIHNpbmNlIFBSSSBhbmQgU1BSIG1heSBub3Qgc3VwcG9y dAo+IHRoZSBzYW1lCj4gwqAJwqAqIHBpeGVsIGZvcm1hdHMuICovCj4gQEAgLTI3MTAsNyArMjcx Miw3IEBAIHN0YXRpYyB2b2lkIHNjYWxlZHByaW1hcnlfc3VidGVzdChjb25zdCBzdHJ1Y3QKPiB0 ZXN0X21vZGUgKnQpCj4gwqAJb2xkX2ZiID0gcGFyYW1zLT5mYi5mYjsKPiDCoAo+IMKgCWNyZWF0 ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+ZmIuZmItPndpZHRoLCBwYXJhbXMtPmZiLmZiLQo+ID5o ZWlnaHQsCj4gLQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELAo+ICsJCcKgwqBv cHQudGlsaW5nLAo+IMKgCQnCoMKgdC0+cGxhbmUsICZuZXdfZmIpOwo+IMKgCWZpbGxfZmIoJm5l d19mYiwgQ09MT1JfQkxVRSk7Cj4gwqAKPiBAQCAtMjgyMCw3ICsyODIyLDcgQEAgc3RhdGljIHZv aWQgbW9kZXNldGZyb21idXN5X3N1YnRlc3QoY29uc3QKPiBzdHJ1Y3QgdGVzdF9tb2RlICp0KQo+ IMKgCXByZXBhcmVfc3VidGVzdCh0LCBOVUxMKTsKPiDCoAo+IMKgCWNyZWF0ZV9mYih0LT5mb3Jt YXQsIHBhcmFtcy0+ZmIuZmItPndpZHRoLCBwYXJhbXMtPmZiLmZiLQo+ID5oZWlnaHQsCj4gLQkJ wqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCB0LT5wbGFuZSwgJmZiMik7Cj4gKwkJ wqDCoG9wdC50aWxpbmcsIHQtPnBsYW5lLCAmZmIyKTsKPiDCoAlmaWxsX2ZiKCZmYjIsIENPTE9S X1BSSU1fQkcpOwo+IMKgCj4gwqAJc3RhcnRfYnVzeV90aHJlYWQocGFyYW1zLT5mYi5mYik7Cj4g QEAgLTI5MjUsNyArMjkyNyw3IEBAIHN0YXRpYyB2b2lkIGZhcmZyb21mZW5jZV9zdWJ0ZXN0KGNv bnN0IHN0cnVjdAo+IHRlc3RfbW9kZSAqdCkKPiDCoAl0YXJnZXQgPSBwaWNrX3RhcmdldCh0LCBw YXJhbXMpOwo+IMKgCj4gwqAJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5tb2RlLT5oZGlz cGxheSwgbWF4X2hlaWdodCwKPiAtCQnCoMKgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQs IHQtPnBsYW5lLAo+ICZ0YWxsX2ZiKTsKPiArCQnCoMKgb3B0LnRpbGluZywgdC0+cGxhbmUsICZ0 YWxsX2ZiKTsKPiDCoAo+IMKgCWZpbGxfZmIoJnRhbGxfZmIsIENPTE9SX1BSSU1fQkcpOwo+IMKg Cj4gQEAgLTMwMDAsNyArMzAwMiw3IEBAIHN0YXRpYyB2b2lkIGJhZHN0cmlkZV9zdWJ0ZXN0KGNv bnN0IHN0cnVjdAo+IHRlc3RfbW9kZSAqdCkKPiDCoAlvbGRfZmIgPSBwYXJhbXMtPmZiLmZiOwo+ IMKgCj4gwqAJY3JlYXRlX2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5mYi5mYi0+d2lkdGggKyA0MDk2 LCBwYXJhbXMtCj4gPmZiLmZiLT5oZWlnaHQsCj4gLQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01P RF9YX1RJTEVELCB0LT5wbGFuZSwKPiAmd2lkZV9mYik7Cj4gKwkJwqDCoG9wdC50aWxpbmcsIHQt PnBsYW5lLCAmd2lkZV9mYik7Cj4gwqAJaWd0X2Fzc2VydCh3aWRlX2ZiLnN0cmlkZSA+IDE2Mzg0 KTsKPiDCoAo+IMKgCWZpbGxfZmIoJndpZGVfZmIsIENPTE9SX1BSSU1fQkcpOwo+IEBAIC0zMDY3 LDcgKzMwNjksNyBAQCBzdGF0aWMgdm9pZCBzdHJpZGVjaGFuZ2Vfc3VidGVzdChjb25zdCBzdHJ1 Y3QKPiB0ZXN0X21vZGUgKnQpCj4gwqAJb2xkX2ZiID0gcGFyYW1zLT5mYi5mYjsKPiDCoAo+IMKg CWNyZWF0ZV9mYih0LT5mb3JtYXQsIHBhcmFtcy0+ZmIuZmItPndpZHRoICsgNTEyLCBwYXJhbXMt Cj4gPmZiLmZiLT5oZWlnaHQsCj4gLQkJwqDCoExPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVE LCB0LT5wbGFuZSwgJm5ld19mYik7Cj4gKwkJwqDCoG9wdC50aWxpbmcsIHQtPnBsYW5lLCAmbmV3 X2ZiKTsKPiDCoAlmaWxsX2ZiKCZuZXdfZmIsIENPTE9SX1BSSU1fQkcpOwo+IMKgCj4gwqAJaWd0 X2Fzc2VydChvbGRfZmItPnN0cmlkZSAhPSBuZXdfZmIuc3RyaWRlKTsKPiBAQCAtMzE4Niw3ICsz MTg4LDcgQEAgc3RhdGljIHZvaWQgYmFzaWNfc3VidGVzdChjb25zdCBzdHJ1Y3QKPiB0ZXN0X21v ZGUgKnQpCj4gwqAJcHJlcGFyZV9zdWJ0ZXN0KHQsIHBhdHRlcm4pOwo+IMKgCj4gwqAJY3JlYXRl X2ZiKHQtPmZvcm1hdCwgcGFyYW1zLT5mYi5mYi0+d2lkdGgsIHBhcmFtcy0+ZmIuZmItCj4gPmhl aWdodCwKPiAtCQnCoMKgTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1hfVElMRUQsIHQtPnBsYW5lLCAm ZmIyKTsKPiArCQnCoMKgb3B0LnRpbGluZywgdC0+cGxhbmUsICZmYjIpOwo+IMKgCWZiMSA9IHBh cmFtcy0+ZmIuZmI7Cj4gwqAKPiDCoAlmb3IgKHIgPSAwLCBtZXRob2QgPSAwOyBtZXRob2QgPCBJ R1RfRFJBV19NRVRIT0RfQ09VTlQ7Cj4gbWV0aG9kKyssIHIrKykgewo+IEBAIC0zMjU1LDYgKzMy NTcsMTAgQEAgc3RhdGljIGludCBvcHRfaGFuZGxlcihpbnQgb3B0aW9uLCBpbnQKPiBvcHRpb25f aW5kZXgsIHZvaWQgKmRhdGEpCj4gwqAJCWlndF9hc3NlcnRfZXEob3B0Lm9ubHlfcGlwZXMsIFBJ UEVfQ09VTlQpOwo+IMKgCQlvcHQub25seV9waXBlcyA9IFBJUEVfRFVBTDsKPiDCoAkJYnJlYWs7 Cj4gKwljYXNlICdsJzoKPiArCQlpZ3RfYXNzZXJ0X2VxKHN0cnRvbChvcHRhcmcsIE5VTEwsIDAp LAo+IEk5MTVfVElMSU5HX1kpOwoKPz8/Cgo+ICsJCW9wdC50aWxpbmcgPQo+IGlndF9mYl90aWxp bmdfdG9fbW9kKCh1aW50NjRfdClzdHJ0b2wob3B0YXJnLCBOVUxMLCAwKSk7CgpUaGlzIGxvb2tz IGEgbGl0dGxlIGJpdCBhd2t3YXJkLiBQbGVhc2UgbWFrZSB0aGUgb3B0aW9uIGp1c3QgYmUgYQpz dHJpbmc6IC0tdGlsaW5nIHgsIC0tdGlsaW5nIHksIHNvIGxhdGVyIHdlIGNhbiBhZGQgLS10aWxp bmcgeWYgYW5kCnN1Y2guIFdpdGggdGhpcywgd2UnbGwgYmUgYWJsZSB0byBhdm9pZCB0aGUgaWd0 X2ZiX3RpbGluZ190b19tb2QgY2FsbC4KCgo+ICsJCWJyZWFrOwo+IMKgCWRlZmF1bHQ6Cj4gwqAJ CWlndF9hc3NlcnQoZmFsc2UpOwo+IMKgCX0KPiBAQCAtMzI3NCw3ICszMjgwLDggQEAgY29uc3Qg Y2hhciAqaGVscF9zdHIgPQo+IMKgIsKgwqAtLXNoYXJlZC1mYi14IG9mZnNldMKgwqDCoMKgwqDC oMKgwqBVc2UgJ29mZnNldCcgYXMgdGhlIFggb2Zmc2V0IGZvciB0aGUKPiBzaGFyZWQgRkJcbiIK PiDCoCLCoMKgLS1zaGFyZWQtZmIteSBvZmZzZXTCoMKgwqDCoMKgwqDCoMKgVXNlICdvZmZzZXQn IGFzIHRoZSBZIG9mZnNldCBmb3IgdGhlCj4gc2hhcmVkIEZCXG4iCj4gwqAiwqDCoC0tMXAtb25s ecKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgT25seSBydW4gc3VidGVzdHMg dGhhdCB1c2UgMSBwaXBlXG4iCj4gLSLCoMKgLS0ycC1vbmx5wqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBPbmx5IHJ1biBzdWJ0ZXN0cyB0aGF0IHVzZSAyCj4gcGlwZXNcbiI7 Cj4gKyLCoMKgLS0ycC1vbmx5wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBP bmx5IHJ1biBzdWJ0ZXN0cyB0aGF0IHVzZSAyIHBpcGVzXG4iCj4gKyLCoMKgLS10aWxpbmcJCcKg wqDCoMKgwqDCoMKgZ2l2ZSAyIGZvciB5LXRpbGVkLCBkZWZhdWx0IGlzIHgtCj4gdGlsZWRcbiI7 CgpLZWVwIHRoZSBzYW1lIGNvZGluZyBzdHlsZSwgcGxlYXNlOiBubyB0YWJzIGFyZSBiZWluZyB1 c2VkIGhlcmUuCgo+IMKgCj4gwqBzdGF0aWMgY29uc3QgY2hhciAqcGlwZXNfc3RyKGludCBwaXBl cykKPiDCoHsKPiBAQCAtMzQxMyw2ICszNDIwLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg KmFyZ3ZbXSkKPiDCoAkJeyAic2hhcmVkLWZiLXkiLMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAxLCAwLCAneSd9LAo+IMKgCQl7ICIxcC1vbmx5IizCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAwLCAwLCAnMSd9LAo+IMKgCQl7ICIycC1vbmx5IizCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAwLCAwLCAnMid9LAo+ICsJCXsgInRpbGluZyIswqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAxLCAwLCAnbCd9LAo+IMKgCQl7IDAsIDAsIDAs IDAgfQo+IMKgCX07Cj4gwqAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==