From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH v2 05/10] drm/i915/gen9: Get rid of redundant watermark values Date: Thu, 13 Oct 2016 17:07:22 -0300 Message-ID: <1476389242.2478.33.camel@intel.com> References: <1475885497-6094-1-git-send-email-cpaul@redhat.com> <1475885497-6094-6-git-send-email-cpaul@redhat.com> <1476389043.2478.30.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1476389043.2478.30.camel@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 , Lyude , intel-gfx@lists.freedesktop.org Cc: David Airlie , Daniel Vetter , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gUXVpLCAyMDE2LTEwLTEzIMOgcyAxNzowNCAtMDMwMCwgUGF1bG8gWmFub25pIGVzY3JldmV1 Ogo+IEVtIFF1aSwgMjAxNi0xMC0xMyDDoHMgMTU6MzkgKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0 IGVzY3JldmV1Ogo+ID4gCj4gPiBPcCAwOC0xMC0xNiBvbSAwMjoxMSBzY2hyZWVmIEx5dWRlOgo+ ID4gPiAKPiA+ID4gCj4gPiA+IE5vdyB0aGF0IHdlJ3ZlIG1ha2Ugc2tsX3dtX2xldmVscyBtYWtl IGEgbGl0dGxlIG1vcmUgc2Vuc2UsIHdlCj4gPiA+IGNhbgo+ID4gPiByZW1vdmUgYWxsIG9mIHRo ZSByZWR1bmRhbnQgd20gaW5mb3JtYXRpb24uIFVwIHVudGlsIG5vdyB3ZSdkCj4gPiA+IGJlZW4K PiA+ID4gc3RvcmluZyB0d28gY29waWVzIG9mIGFsbCBvZiB0aGUgc2tsIHdhdGVybWFya3M6IG9u ZSBiZWluZyB0aGUKPiA+ID4gc2tsX3BpcGVfd20gc3RydWN0cywgdGhlIG90aGVyIGJlaW5nIHRo ZSBnbG9iYWwgd20gc3RydWN0IGluCj4gPiA+IGRybV9pOTE1X3ByaXZhdGUgY29udGFpbmluZyB0 aGUgcmF3IHJlZ2lzdGVyIHZhbHVlcy4gVGhpcyBpcwo+ID4gPiBjb25mdXNpbmcKPiA+ID4gYW5k IHByb2JsZW1hdGljLCBzaW5jZSBpdCBtZWFucyB3ZSdyZSBwcm9uZSB0byBhY2NpZGVudGFsbHkK PiA+ID4gbGV0dGluZwo+ID4gPiB0aGUKPiA+ID4gdHdvIGNvcGllcyBnbyBvdXQgb2Ygc3luYy4g U28sIGdldCByaWQgb2YgYWxsIG9mIHRoZSBmdW5jdGlvbnMKPiA+ID4gcmVzcG9uc2libGUgZm9y IGNvbXB1dGluZyB0aGUgcmVnaXN0ZXIgdmFsdWVzIGFuZCBqdXN0IHVzZSBhCj4gPiA+IHNpbmds ZQo+ID4gPiBoZWxwZXIsIHNrbF93cml0ZV93bV9sZXZlbCgpLCB0byBjb252ZXJ0IGFuZCB3cml0 ZSB0aGUgbmV3Cj4gPiA+IHdhdGVybWFya3Mgb24KPiA+ID4gdGhlIGZseS4KPiA+ID4gCj4gPiA+ IENoYW5nZXMgc2luY2UgdjE6Cj4gPiA+IC0gRml4dXAgc2tsX3dyaXRlX3dtX2xldmVsKCkKPiA+ ID4gLSBGaXh1cCBza2xfd21fbGV2ZWxfZnJvbV9yZWdfdmFsKCkKPiA+ID4gLSBEb24ndCBmb3Jn ZXQgdG8gY29weSAqYWN0aXZlIHRvIGludGVsX2NydGMtPndtLmFjdGl2ZS5za2wKPiA+ID4gCj4g PiA+IFNpZ25lZC1vZmYtYnk6IEx5dWRlIDxjcGF1bEByZWRoYXQuY29tPgo+ID4gPiBSZXZpZXdl ZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bQo+ID4gPiA+Cj4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgo+ID4gPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5j b20+Cj4gPiA+IC0tLQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmjCoMKg wqDCoMKgwqB8wqDCoMKgMiAtCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jIHzCoMKgMTQgKystCj4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2 LmjCoMKgwqDCoMKgfMKgwqDCoDYgKy0KPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jwqDCoMKgwqDCoMKgfCAyMDQgKysrKysrKysrKysrLS0tLS0tLS0tCj4gPiA+IC0tCj4g PiA+IC0tLS0tLS0tLS0tLQo+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0 ZS5jwqDCoHzCoMKgwqA4ICstCj4gPiA+IMKgNSBmaWxlcyBjaGFuZ2VkLCA5MCBpbnNlcnRpb25z KCspLCAxNDQgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmgKPiA+ID4gaW5kZXggMDI4N2M5My4uNzY1ODNiMiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiA+IEBAIC0xNjQ0LDggKzE2NDQsNiBAQCBzdHJ1Y3Qgc2tsX2Rk Yl9hbGxvY2F0aW9uIHsKPiA+ID4gwqBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyB7Cj4gPiA+IMKgCXVu c2lnbmVkIGRpcnR5X3BpcGVzOwo+ID4gPiDCoAlzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uIGRk YjsKPiA+ID4gLQl1aW50MzJfdCBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVT XVs4XTsKPiA+ID4gLQl1aW50MzJfdCBwbGFuZV90cmFuc1tJOTE1X01BWF9QSVBFU11bSTkxNV9N QVhfUExBTkVTXTsKPiA+ID4gwqB9Owo+ID4gPiDCoAo+ID4gPiDCoHN0cnVjdCBza2xfd21fbGV2 ZWwgewo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxh eS5jCj4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiA+IGlu ZGV4IGE3MWQwNWEuLjM5NDAwYTAgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+ID4gQEAgLTMzNzgsNiArMzM3OCw4IEBAIHN0YXRpYyB2b2lkCj4gPiA+ IHNreWxha2VfdXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4g PiA+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0KPiA+ID4gdG9faW50ZWxfY3J0 YyhjcnRjX3N0YXRlLQo+ID4gPiA+IAo+ID4gPiA+IGJhc2UuY3J0Yyk7Cj4gPiA+IMKgCXN0cnVj dCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7Cj4gPiA+IMKgCWNv bnN0IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0KPiA+ID4gPiAKPiA+ID4g PiB3bS5za2xfcmVzdWx0czsKPiA+ID4gKwljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dt ID0KPiA+ID4gKwkJJmNydGNfc3RhdGUtPndtLnNrbC5vcHRpbWFsLnBsYW5lc1swXTsKPiA+ID4g wqAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ID4gPiDCoAl1MzIgcGxhbmVfY3RsOwo+ ID4gPiDCoAl1bnNpZ25lZCBpbnQgcm90YXRpb24gPSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlv bjsKPiA+ID4gQEAgLTM0MTQsNyArMzQxNiw3IEBAIHN0YXRpYyB2b2lkCj4gPiA+IHNreWxha2Vf dXBkYXRlX3ByaW1hcnlfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPiA+IMKgCWlu dGVsX2NydGMtPmFkanVzdGVkX3kgPSBzcmNfeTsKPiA+ID4gwqAKPiA+ID4gwqAJaWYgKHdtLT5k aXJ0eV9waXBlcyAmIGRybV9jcnRjX21hc2soJmludGVsX2NydGMtPmJhc2UpKQo+ID4gPiAtCQlz a2xfd3JpdGVfcGxhbmVfd20oaW50ZWxfY3J0Yywgd20sIDApOwo+ID4gPiArCQlza2xfd3JpdGVf cGxhbmVfd20oaW50ZWxfY3J0YywgcF93bSwgJndtLT5kZGIsCj4gPiA+IDApOwo+ID4gPiDCoAo+ ID4gPiDCoAlJOTE1X1dSSVRFKFBMQU5FX0NUTChwaXBlLCAwKSwgcGxhbmVfY3RsKTsKPiA+ID4g wqAJSTkxNV9XUklURShQTEFORV9PRkZTRVQocGlwZSwgMCksIChzcmNfeSA8PCAxNikgfAo+ID4g PiBzcmNfeCk7Cj4gPiA+IEBAIC0zNDQ4LDYgKzM0NTAsOCBAQCBzdGF0aWMgdm9pZAo+ID4gPiBz a3lsYWtlX2Rpc2FibGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ ID4gPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2Owo+ID4gPiDCoAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiA+IMKgCXN0 cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKPiA+ID4g KwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlID0KPiA+ID4gdG9faW50ZWxfY3J0Y19z dGF0ZShjcnRjLT5zdGF0ZSk7Cj4gPiA+ICsJY29uc3Qgc3RydWN0IHNrbF9wbGFuZV93bSAqcF93 bSA9ICZjc3RhdGUtCj4gPiA+ID4gCj4gPiA+ID4gd20uc2tsLm9wdGltYWwucGxhbmVzWzBdOwo+ ID4gPiDCoAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7Cj4gPiA+IMKgCj4gPiA+IMKgCS8q Cj4gPiA+IEBAIC0zNDU1LDcgKzM0NTksOCBAQCBzdGF0aWMgdm9pZAo+ID4gPiBza3lsYWtlX2Rp c2FibGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwcmltYXJ5LAo+ID4gPiDCoAnC oCogcGxhbmUncyB2aXNpYmxpdHkgaXNuJ3QgYWN0dWFsbHkgY2hhbmdpbmcgbmVpdGhlciBpcwo+ ID4gPiBpdHMgd2F0ZXJtYXJrcy4KPiA+ID4gwqAJwqAqLwo+ID4gPiDCoAlpZiAoIWNydGMtPnBy aW1hcnktPnN0YXRlLT52aXNpYmxlKQo+ID4gPiAtCQlza2xfd3JpdGVfcGxhbmVfd20oaW50ZWxf Y3J0YywgJmRldl9wcml2LQo+ID4gPiA+IAo+ID4gPiA+IHdtLnNrbF9yZXN1bHRzLCAwKTsKPiA+ ID4gKwkJc2tsX3dyaXRlX3BsYW5lX3dtKGludGVsX2NydGMsIHBfd20sCj4gPiA+ICsJCQkJwqDC oMKgJmRldl9wcml2LQo+ID4gPiA+d20uc2tsX3Jlc3VsdHMuZGRiLAo+ID4gPiAwKTsKPiA+ID4g wqAKPiA+ID4gwqAJSTkxNV9XUklURShQTEFORV9DVEwocGlwZSwgMCksIDApOwo+ID4gPiDCoAlJ OTE1X1dSSVRFKFBMQU5FX1NVUkYocGlwZSwgMCksIDApOwo+ID4gPiBAQCAtMTA4MTksMTIgKzEw ODI0LDE1IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX2N1cnNvcihzdHJ1Y3QKPiA+ID4gZHJt X2NydGMgKmNydGMsIHUzMiBiYXNlLAo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y3J0Yy0+ZGV2Owo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gPiA+IMKgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRl ID0KPiA+ID4gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5zdGF0ZSk7Cj4gPiA+IMKgCWNvbnN0 IHN0cnVjdCBza2xfd21fdmFsdWVzICp3bSA9ICZkZXZfcHJpdi0KPiA+ID4gPiAKPiA+ID4gPiB3 bS5za2xfcmVzdWx0czsKPiA+ID4gKwljb25zdCBzdHJ1Y3Qgc2tsX3BsYW5lX3dtICpwX3dtID0K PiA+ID4gKwkJJmNzdGF0ZS0+d20uc2tsLm9wdGltYWwucGxhbmVzW1BMQU5FX0NVUlNPUl07Cj4g PiA+IMKgCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKPiA+ID4gwqAJdWludDMyX3QgY250 bCA9IDA7Cj4gPiA+IMKgCj4gPiA+IMKgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDkgJiYg d20tPmRpcnR5X3BpcGVzICYKPiA+ID4gZHJtX2NydGNfbWFzayhjcnRjKSkKPiA+ID4gLQkJc2ts X3dyaXRlX2N1cnNvcl93bShpbnRlbF9jcnRjLCB3bSk7Cj4gPiA+ICsJCXNrbF93cml0ZV9jdXJz b3Jfd20oaW50ZWxfY3J0YywgcF93bSwgJndtLT5kZGIpOwo+ID4gPiDCoAo+ID4gPiDCoAlpZiAo cGxhbmVfc3RhdGUgJiYgcGxhbmVfc3RhdGUtPmJhc2UudmlzaWJsZSkgewo+ID4gPiDCoAkJY250 bCA9IE1DVVJTT1JfR0FNTUFfRU5BQkxFOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ID4gPiBpbmRleCBkNjg0ZjRmLi45NThkYzcyIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaAo+ID4gPiBAQCAtMTc2NSw5ICsxNzY1LDExIEBAIGJvb2wgc2tsX2Rk Yl9hbGxvY2F0aW9uX2VxdWFscyhjb25zdAo+ID4gPiBzdHJ1Y3QKPiA+ID4gc2tsX2RkYl9hbGxv Y2F0aW9uICpvbGQsCj4gPiA+IMKgYm9vbCBza2xfZGRiX2FsbG9jYXRpb25fb3ZlcmxhcHMoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gPiDCoAkJCQnCoHN0cnVjdCBpbnRlbF9j cnRjICppbnRlbF9jcnRjKTsKPiA+ID4gwqB2b2lkIHNrbF93cml0ZV9jdXJzb3Jfd20oc3RydWN0 IGludGVsX2NydGMgKmludGVsX2NydGMsCj4gPiA+IC0JCQnCoGNvbnN0IHN0cnVjdCBza2xfd21f dmFsdWVzICp3bSk7Cj4gPiA+ICsJCQnCoGNvbnN0IHN0cnVjdCBza2xfcGxhbmVfd20gKndtLAo+ ID4gPiArCQkJwqBjb25zdCBzdHJ1Y3Qgc2tsX2RkYl9hbGxvY2F0aW9uICpkZGIpOwo+ID4gPiDC oHZvaWQgc2tsX3dyaXRlX3BsYW5lX3dtKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjLAo+ ID4gPiAtCQkJY29uc3Qgc3RydWN0IHNrbF93bV92YWx1ZXMgKndtLAo+ID4gPiArCQkJY29uc3Qg c3RydWN0IHNrbF9wbGFuZV93bSAqd20sCj4gPiA+ICsJCQljb25zdCBzdHJ1Y3Qgc2tsX2RkYl9h bGxvY2F0aW9uICpkZGIsCj4gPiA+IMKgCQkJaW50IHBsYW5lKTsKPiA+ID4gwqB1aW50MzJfdCBp bGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlCj4gPiA+ICpw aXBlX2NvbmZpZyk7Cj4gPiA+IMKgYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KTsKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMKPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gPiA+IGluZGV4 IDVkYmFmMTIuLjVjYjUzN2MgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwo+ ID4gPiBAQCAtMzAwMCw2ICszMDAwLDggQEAgYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3Ry dWN0Cj4gPiA+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gPiDCoAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiA+IMKgCXN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0KPiA+ID4gdG9faW50ZWxfYXRvbWljX3N0YXRl KHN0YXRlKTsKPiA+ID4gwqAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gPiArCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjc3RhdGU7Cj4gPiA+ICsJc3RydWN0IHNrbF9wbGFuZV93bSAqd207 Cj4gPiA+IMKgCWVudW0gcGlwZSBwaXBlOwo+ID4gPiDCoAlpbnQgbGV2ZWwsIHBsYW5lOwo+ID4g PiDCoAo+ID4gPiBAQCAtMzAyMCwxOCArMzAyMiwyMSBAQCBib29sIGludGVsX2Nhbl9lbmFibGVf c2FndihzdHJ1Y3QKPiA+ID4gZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiA+IMKgCS8qIFNp bmNlIHdlJ3JlIG5vdyBndWFyYW50ZWVkIHRvIG9ubHkgaGF2ZSBvbmUgYWN0aXZlCj4gPiA+IENS VEMuLi4gKi8KPiA+ID4gwqAJcGlwZSA9IGZmcyhpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKSAt IDE7Cj4gPiA+IMKgCWNydGMgPSBkZXZfcHJpdi0+cGlwZV90b19jcnRjX21hcHBpbmdbcGlwZV07 Cj4gPiA+ICsJY3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLAo+ID4g PiB0b19pbnRlbF9jcnRjKGNydGMpKTsKPiA+IFdyb25nIGNzdGF0ZSBoZXJlLCBzaG91bGQgYmUg Y3J0Yy0+c3RhdGUgc2luY2UgaXQncyBjb21taXR0ZWQgYW5kCj4gPiBjcnRjX3N0YXRlIGlzIHRo ZSBvbGQgc3RhdGUuCj4gCj4gQWguLi4gSG93IG1hbnkgaW5zdGFuY2VzIG9mIHRoZSAieW91J3Jl IGxvb2tpbmcgYXQgdGhlIHdyb25nIHN0YXRlCj4gc3RydWN0IiBoYXZlIHdlIHNwb3R0ZWQvZml4 ZWQgZXZlciBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZQo+IGF0b21pYwo+IGNvZGU/IENh bid0IHdlIHRyeSB0byBkbyBzb21ldGhpbmcgbW9yZSBodW1hbi1wcm9vZiBpbiBvcmRlciB0byBh dm9pZAo+IHRoZXNlIHByb2JsZW1zIGZyb20gaGFwcGVuaW5nIGFnYWluIGFuZCBhZ2Fpbj8KPiAK PiBMaWtlIGZvciBleGFtcGxlIGNvcHlpbmcgdGhlIG9sZCBzdGF0ZXMgdG8gYSBzcGVjaWZpYyBz dHJ1Y3R1cmUgbGlrZQo+IGRybV9hdG9taWNfc3RhdGUtPm9sZF9zdGF0ZXNfd2hpY2hfeW91X3By b2JhYmx5X3Nob3VsZG5fYmVfdXNpbmcsIGFuZAo+IHRoZW4gc2V0dGluZyB0aGUgQ1JUQy9jb25u ZWN0b3IvcGxhbmUgc3RhdGVzIGluIHRoZSBkcm1fYXRvbWljX3N0YXRlCj4gc3RydWN0IHRvIE5V TEwgc28gYnVncyB3aWxsIGJlIG11Y2ggZWFzaWVyIHRvIHNwb3Q/Cj4gCj4gQW55d2F5LCB3aXRo IHRoaXMgcHJvYmxlbSBmaXhlZCwgZmVlbCBmcmVlIHRvIGFkZDoKPiBSZXZpZXdlZC1ieTogUGF1 bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+CgpPaCwgSSBmb3Jnb3QgdG8gbWVu dGlvbjogdGhpcyBwYXRjaCBoYXMgYSBjb25mbGljdCB3aXRoIG15CiJ1bmNvbmRpdGlvbmFsbHkg YXBwbHkgdGhlIG1lbW9yeSB3b3JrYXJvdW5kIiBwYXRjaCwgc28gd2UgbWF5IG5lZWQgdG8KZGVj aWRlIHdoaWNoIG9uZSBnZXRzIG1lcmdlZCBmaXJzdC4gT2YgY291cnNlIEknZCBzdWdnZXN0IG15 IHBhdGNoIHRvCmJlIG1lcmdlZCBmaXJzdCBzaW5jZSBJIHdhbnQgaXQgdG8gbGFuZCBpbiBzdGFi bGUsIGJ1dCBJJ20gYWx3YXlzCmJpYXNlZCB0b3dhcmRzIG15IHBhdGNoZXMuIElmIHlvdSBhZ3Jl ZSwgSSBjYW4gZXZlbiB2b2x1bnRlZXIgbXlzZWxmIHRvCnNvbHZlIHRoZSBjb25mbGljdHMgb2Yg dGhpcyBwYXRjaCBsYXRlciB3aGVuIGFwcGx5aW5nLgoKPiAKPiA+IAo+ID4gCj4gPiB+TWFhcnRl bgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50 ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZngg bWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK