From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?QW50dGkgS29za2lww6TDpA==?= Subject: Re: [PATCH v2] drm/i915: Per-DDI I_boost override Date: Fri, 03 Jul 2015 18:37:59 +0300 Message-ID: <5596AC57.6020500@linux.intel.com> References: <1435922935-834-1-git-send-email-antti.koskipaa@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 2130B6ED97 for ; Fri, 3 Jul 2015 08:37:51 -0700 (PDT) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Paulo Zanoni Cc: Intel Graphics Development List-Id: intel-gfx@lists.freedesktop.org T24gMDcvMDMvMjAxNSAwNjowOSBQTSwgUGF1bG8gWmFub25pIHdyb3RlOgo+IDIwMTUtMDctMDMg ODoyOCBHTVQtMDM6MDAgQW50dGkgS29za2lwYWEgPGFudHRpLmtvc2tpcGFhQGxpbnV4LmludGVs LmNvbT46Cj4+IEFuIE9FTSBtYXkgcmVxdWVzdCBpbmNyZWFzZWQgSV9ib29zdCBiZXlvbmQgdGhl IHJlY29tbWVuZGVkIHZhbHVlcwo+PiBieSBzcGVjaWZ5aW5nIGFuIElfYm9vc3QgdmFsdWUgdG8g YmUgYXBwbGllZCB0byBhbGwgc3dpbmcgZW50cmllcyBmb3IKPj4gYSBwb3J0LiBUaGVzZSBvdmVy cmlkZSB2YWx1ZXMgYXJlIHNwZWNpZmllZCBpbiBWQlQuCj4+Cj4+IHYyOiByZWJhc2UgYW5kIHJl bW92ZSB1bnVzZWQgaWJvb3N0X2JpdCB2YXJpYWJsZQo+Pgo+PiBJc3N1ZTogVklaLTU2NzYKPj4g U2lnbmVkLW9mZi1ieTogQW50dGkgS29za2lwYWEgPGFudHRpLmtvc2tpcGFhQGxpbnV4LmludGVs LmNvbT4KPj4gLS0tCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgfCAgMyAr KysKPj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuYyB8IDIxICsrKysrKysrKysr KysrKysrKysrKwo+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5oIHwgIDkgKysr KysrKysrCj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyAgfCAzOCArKysrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQo+PiAgNCBmaWxlcyBjaGFuZ2VkLCA2MyBp bnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK Pj4gaW5kZXggMWRiZDk1Ny4uNmFhODA4MyAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4+IEBAIC0xNDEwLDYgKzE0MTAsOSBAQCBzdHJ1Y3QgZGRpX3ZidF9wb3J0X2luZm8gewo+PiAg ICAgICAgIHVpbnQ4X3Qgc3VwcG9ydHNfZHZpOjE7Cj4+ICAgICAgICAgdWludDhfdCBzdXBwb3J0 c19oZG1pOjE7Cj4+ICAgICAgICAgdWludDhfdCBzdXBwb3J0c19kcDoxOwo+PiArCj4+ICsgICAg ICAgdWludDhfdCBkcF9ib29zdF9sZXZlbDsKPj4gKyAgICAgICB1aW50OF90IGhkbWlfYm9vc3Rf bGV2ZWw7Cj4+ICB9Owo+Pgo+PiAgZW51bSBwc3JfbGluZXNfdG9fd2FpdCB7Cj4+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9iaW9zLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9iaW9zLmMKPj4gaW5kZXggMmZmOWViMC4uNzZlMTJmNSAxMDA2NDQKPj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Jpb3MuYwo+PiBAQCAtODg2LDYgKzg4NiwxNyBAQCBlcnI6Cj4+ICAg ICAgICAgbWVtc2V0KGRldl9wcml2LT52YnQuZHNpLnNlcXVlbmNlLCAwLCBzaXplb2YoZGV2X3By aXYtPnZidC5kc2kuc2VxdWVuY2UpKTsKPj4gIH0KPj4KPj4gK3N0YXRpYyB1OCB0cmFuc2xhdGVf aWJvb3N0KHU4IHZhbCkKPj4gK3sKPj4gKyAgICAgICBzdGF0aWMgY29uc3QgdTggbWFwcGluZ1td ID0geyAxLCAzLCA3IH07IC8qIFNlZSBWQlQgc3BlYyAqLwo+PiArCj4+ICsgICAgICAgaWYgKHZh bCA+PSBBUlJBWV9TSVpFKG1hcHBpbmcpKSB7Cj4+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdf S01TKCJVbnN1cHBvcnRlZCBJX2Jvb3N0IHZhbHVlIGZvdW5kIGluIFZCVCAoJWQpLCBkaXNwbGF5 IG1heSBub3Qgd29yayBwcm9wZXJseVxuIiwgdmFsKTsKPj4gKyAgICAgICAgICAgICAgIHJldHVy biAwOwo+PiArICAgICAgIH0KPj4gKyAgICAgICByZXR1cm4gbWFwcGluZ1t2YWxdOwo+PiArfQo+ PiArCj4+ICBzdGF0aWMgdm9pZCBwYXJzZV9kZGlfcG9ydChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgYmRiX2hlYWRlciAqYmRiKQo+PiAgewo+PiBAQCAtOTg2LDYgKzk5Nywx NiBAQCBzdGF0aWMgdm9pZCBwYXJzZV9kZGlfcG9ydChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0LAo+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBoZG1pX2xldmVsX3NoaWZ0KTsKPj4gICAgICAgICAgICAgICAgIGluZm8tPmhkbWlfbGV2ZWxf c2hpZnQgPSBoZG1pX2xldmVsX3NoaWZ0Owo+PiAgICAgICAgIH0KPj4gKwo+PiArICAgICAgIC8q IFBhcnNlIHRoZSBJX2Jvb3N0IGNvbmZpZyBmb3IgU0tMIGFuZCBhYm92ZSAqLwo+PiArICAgICAg IGlmIChiZGItPnZlcnNpb24gPj0gMTk2ICYmIChjaGlsZC0+Y29tbW9uLmZsYWdzXzEgJiBJQk9P U1RfRU5BQkxFKSkgewo+PiArICAgICAgICAgICAgICAgaW5mby0+ZHBfYm9vc3RfbGV2ZWwgPSB0 cmFuc2xhdGVfaWJvb3N0KGNoaWxkLT5jb21tb24uaWJvb3N0X2xldmVsICYgMHhGKTsKPj4gKyAg ICAgICAgICAgICAgIERSTV9ERUJVR19LTVMoIlZCVCAoZSlEUCBib29zdCBsZXZlbCBmb3IgcG9y dCAlYzogJWRcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnRfbmFtZShw b3J0KSwgaW5mby0+ZHBfYm9vc3RfbGV2ZWwpOwo+PiArICAgICAgICAgICAgICAgaW5mby0+aGRt aV9ib29zdF9sZXZlbCA9IHRyYW5zbGF0ZV9pYm9vc3QoY2hpbGQtPmNvbW1vbi5pYm9vc3RfbGV2 ZWwgPj4gNCk7Cj4+ICsgICAgICAgICAgICAgICBEUk1fREVCVUdfS01TKCJWQlQgSERNSSBib29z dCBsZXZlbCBmb3IgcG9ydCAlYzogJWRcbiIsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBvcnRfbmFtZShwb3J0KSwgaW5mby0+aGRtaV9ib29zdF9sZXZlbCk7Cj4+ICsgICAgICAg fQo+PiAgfQo+Pgo+PiAgc3RhdGljIHZvaWQgcGFyc2VfZGRpX3BvcnRzKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Jpb3MuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Jpb3MuaAo+PiBpbmRl eCBhZjBiNDc2Li44ZWRkNzVjIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9iaW9zLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYmlvcy5oCj4+ IEBAIC0yMzEsNiArMjMxLDEwIEBAIHN0cnVjdCBvbGRfY2hpbGRfZGV2X2NvbmZpZyB7Cj4+ICAv KiBUaGlzIG9uZSBjb250YWlucyBmaWVsZCBvZmZzZXRzIHRoYXQgYXJlIGtub3duIHRvIGJlIGNv bW1vbiBmb3IgYWxsIEJEQgo+PiAgICogdmVyc2lvbnMuIE5vdGljZSB0aGF0IHRoZSBtZWFuaW5n IG9mIHRoZSBjb250ZW50cyBjb250ZW50cyBtYXkgc3RpbGwgY2hhbmdlLAo+PiAgICogYnV0IGF0 IGxlYXN0IHRoZSBvZmZzZXRzIGFyZSBjb25zaXN0ZW50LiAqLwo+PiArCj4+ICsvKiBEZWZpbml0 aW9ucyBmb3IgZmxhZ3NfMSAqLwo+PiArI2RlZmluZSBJQk9PU1RfRU5BQkxFICgxPDwzKQo+PiAr Cj4+ICBzdHJ1Y3QgY29tbW9uX2NoaWxkX2Rldl9jb25maWcgewo+PiAgICAgICAgIHUxNiBoYW5k bGU7Cj4+ICAgICAgICAgdTE2IGRldmljZV90eXBlOwo+PiBAQCAtMjM5LDggKzI0MywxMyBAQCBz dHJ1Y3QgY29tbW9uX2NoaWxkX2Rldl9jb25maWcgewo+PiAgICAgICAgIHU4IG5vdF9jb21tb24y WzJdOwo+PiAgICAgICAgIHU4IGRkY19waW47Cj4+ICAgICAgICAgdTE2IGVkaWRfcHRyOwo+PiAr ICAgICAgIHU4IG9ic29sZXRlOwo+PiArICAgICAgIHU4IGZsYWdzXzE7Cj4+ICsgICAgICAgdTgg bm90X2NvbW1vbjNbMTNdOwo+PiArICAgICAgIHU4IGlib29zdF9sZXZlbDsKPiAKPiBJbiB0aGUg b2xkIFZCVCBzcGVjIEkgaGF2ZSwgZWFjaCBjaGlsZF9kZXZfY29uZmlnIGlzIHN1cHBvc2VkIHRv IGhhdmUKPiBvbmx5IDMzIGJ5dGVzLiBCdXQgaW4gdGhpcyBwYXRjaCB5b3UncmUgaW5jcmVhc2lu ZyBpdCB0byAzOC4gSSBiZWxpZXZlCj4gdGhpcyBpcyB3aGF0J3MgY2F1c2luZyB0aGUgZXJyb3Jz IEkgc2VlIHdoZW4gSSBib290IG15IEJEVy4KPiAKPiBBcmUgeW91IHN1cmUgdGhleSBpbmNyZWFz ZWQgdGhlIFZCVCdzIENoaWxkRGV2SW5mbyB0byBtb3JlIHRoYW4gMzMKPiBieXRlcz8gSSBkb24n dCBoYXZlIGFjY2VzcyB0byB5b3VyIFZCVCBzcGVjIHJpZ2h0IG5vdywgc28gSSBjYW4ndCBkbyBh Cj4gcHJvcGVyIHJldmlldyBvciBhIHN1Z2dlc3Rpb24gb24gaG93IHRvIGZpeCB0aGUgcHJvYmxl bS4KClRoZSBWQlQgc3BlYyBJIGNvZGVkIGZvciBkb2VzIGluY3JlYXNlIHRoZSBzaXplLiBZb3Ug bmVlZCB0byBsb29rIGF0CnZlcnNpb24gPj0gMTk2IG9mIHRoZSBzcGVjLgoKPj4gIH0gX19wYWNr ZWQ7Cj4+Cj4+ICsKPj4gIC8qIFRoaXMgZmllbGQgY2hhbmdlcyBkZXBlbmRpbmcgb24gdGhlIEJE QiB2ZXJzaW9uLCBzbyB0aGUgbW9zdCByZWxpYWJsZSB3YXkgdG8KPj4gICAqIHJlYWQgaXQgaXMg YnkgY2hlY2tpbmcgdGhlIEJEQiB2ZXJzaW9uIGFuZCByZWFkaW5nIHRoZSByYXcgcG9pbnRlci4g Ki8KPj4gIHVuaW9uIGNoaWxkX2RldmljZV9jb25maWcgewo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k ZGkuYwo+PiBpbmRleCAxNWZjNjZhLi5jODNmMTVmIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+PiBAQCAtNDQwLDYgKzQ0MCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3ByZXBhcmVf ZGRpX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBvcnQsCj4+ICB7 Cj4+ICAgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPj4gICAgICAgICB1MzIgcmVnOwo+PiArICAgICAgIHUzMiBpYm9vc3RfYml0ID0g MDsKPj4gICAgICAgICBpbnQgaSwgbl9oZG1pX2VudHJpZXMsIG5fZHBfZW50cmllcywgbl9lZHBf ZW50cmllcywgaGRtaV9kZWZhdWx0X2VudHJ5LAo+PiAgICAgICAgICAgICBzaXplOwo+PiAgICAg ICAgIGludCBoZG1pX2xldmVsID0gZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmhk bWlfbGV2ZWxfc2hpZnQ7Cj4+IEBAIC00NjUsNiArNDY2LDEwIEBAIHN0YXRpYyB2b2lkIGludGVs X3ByZXBhcmVfZGRpX2J1ZmZlcnMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgZW51bSBwb3J0IHBv cnQsCj4+ICAgICAgICAgICAgICAgICBkZGlfdHJhbnNsYXRpb25zX2hkbWkgPQo+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2LCAmbl9o ZG1pX2VudHJpZXMpOwo+PiAgICAgICAgICAgICAgICAgaGRtaV9kZWZhdWx0X2VudHJ5ID0gODsK Pj4gKyAgICAgICAgICAgICAgIC8qIElmIHdlJ3JlIGJvb3N0aW5nIHRoZSBjdXJyZW50LCBzZXQg Yml0IDMxIG9mIHRyYW5zMSAqLwo+PiArICAgICAgICAgICAgICAgaWYgKGRldl9wcml2LT52YnQu ZGRpX3BvcnRfaW5mb1twb3J0XS5oZG1pX2Jvb3N0X2xldmVsIHx8Cj4+ICsgICAgICAgICAgICAg ICAgICAgZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmRwX2Jvb3N0X2xldmVsKQo+ PiArICAgICAgICAgICAgICAgICAgICAgICBpYm9vc3RfYml0ID0gMTw8MzE7Cj4+ICAgICAgICAg fSBlbHNlIGlmIChJU19CUk9BRFdFTEwoZGV2KSkgewo+PiAgICAgICAgICAgICAgICAgZGRpX3Ry YW5zbGF0aW9uc19mZGkgPSBiZHdfZGRpX3RyYW5zbGF0aW9uc19mZGk7Cj4+ICAgICAgICAgICAg ICAgICBkZGlfdHJhbnNsYXRpb25zX2RwID0gYmR3X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4+IEBA IC01MjUsNyArNTMwLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCwKPj4gICAgICAgICB9Cj4+Cj4+ ICAgICAgICAgZm9yIChpID0gMCwgcmVnID0gRERJX0JVRl9UUkFOUyhwb3J0KTsgaSA8IHNpemU7 IGkrKykgewo+PiAtICAgICAgICAgICAgICAgSTkxNV9XUklURShyZWcsIGRkaV90cmFuc2xhdGlv bnNbaV0udHJhbnMxKTsKPj4gKyAgICAgICAgICAgICAgIEk5MTVfV1JJVEUocmVnLCBkZGlfdHJh bnNsYXRpb25zW2ldLnRyYW5zMSB8IGlib29zdF9iaXQpOwo+PiAgICAgICAgICAgICAgICAgcmVn ICs9IDQ7Cj4+ICAgICAgICAgICAgICAgICBJOTE1X1dSSVRFKHJlZywgZGRpX3RyYW5zbGF0aW9u c1tpXS50cmFuczIpOwo+PiAgICAgICAgICAgICAgICAgcmVnICs9IDQ7Cj4+IEBAIC01NDAsNyAr NTQ1LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFyZV9kZGlfYnVmZmVycyhzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCwKPj4gICAgICAgICAgICAgICAgIGhkbWlfbGV2 ZWwgPSBoZG1pX2RlZmF1bHRfZW50cnk7Cj4+Cj4+ICAgICAgICAgLyogRW50cnkgOSBpcyBmb3Ig SERNSTogKi8KPj4gLSAgICAgICBJOTE1X1dSSVRFKHJlZywgZGRpX3RyYW5zbGF0aW9uc19oZG1p W2hkbWlfbGV2ZWxdLnRyYW5zMSk7Cj4+ICsgICAgICAgSTkxNV9XUklURShyZWcsIGRkaV90cmFu c2xhdGlvbnNfaGRtaVtoZG1pX2xldmVsXS50cmFuczEgfCBpYm9vc3RfYml0KTsKPj4gICAgICAg ICByZWcgKz0gNDsKPj4gICAgICAgICBJOTE1X1dSSVRFKHJlZywgZGRpX3RyYW5zbGF0aW9uc19o ZG1pW2hkbWlfbGV2ZWxdLnRyYW5zMik7Cj4+ICAgICAgICAgcmVnICs9IDQ7Cj4+IEBAIC0yMDgz LDE4ICsyMDg4LDM1IEBAIHN0YXRpYyB2b2lkIHNrbF9kZGlfc2V0X2lib29zdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCB1MzIgbGV2ZWwsCj4+ICAgICAgICAgc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4gICAgICAgICBjb25zdCBzdHJ1Y3Qg ZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKPj4gICAgICAgICB1aW50OF90IGlib29z dDsKPj4gKyAgICAgICB1aW50OF90IGRwX2lib29zdCwgaGRtaV9pYm9vc3Q7Cj4+ICAgICAgICAg aW50IG5fZW50cmllczsKPj4gICAgICAgICB1MzIgcmVnOwo+Pgo+PiArICAgICAgIC8qIFZCVCBt YXkgb3ZlcnJpZGUgc3RhbmRhcmQgYm9vc3QgdmFsdWVzICovCj4+ICsgICAgICAgZHBfaWJvb3N0 ID0gZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmRwX2Jvb3N0X2xldmVsOwo+PiAr ICAgICAgIGhkbWlfaWJvb3N0ID0gZGV2X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmhk bWlfYm9vc3RfbGV2ZWw7Cj4+ICsKPj4gICAgICAgICBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRf RElTUExBWVBPUlQpIHsKPj4gLSAgICAgICAgICAgICAgIGRkaV90cmFuc2xhdGlvbnMgPSBza2xf Z2V0X2J1Zl90cmFuc19kcChkZXYsICZuX2VudHJpZXMpOwo+PiAtICAgICAgICAgICAgICAgaWJv b3N0ID0gZGRpX3RyYW5zbGF0aW9uc1twb3J0XS5pX2Jvb3N0Owo+PiArICAgICAgICAgICAgICAg aWYgKGRwX2lib29zdCkgewo+PiArICAgICAgICAgICAgICAgICAgICAgICBpYm9vc3QgPSBkcF9p Ym9vc3Q7Cj4+ICsgICAgICAgICAgICAgICB9IGVsc2Ugewo+PiArICAgICAgICAgICAgICAgICAg ICAgICBkZGlfdHJhbnNsYXRpb25zID0gc2tsX2dldF9idWZfdHJhbnNfZHAoZGV2LCAmbl9lbnRy aWVzKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWJvb3N0ID0gZGRpX3RyYW5zbGF0aW9u c1twb3J0XS5pX2Jvb3N0Owo+PiArICAgICAgICAgICAgICAgfQo+PiAgICAgICAgIH0gZWxzZSBp ZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4+IC0gICAgICAgICAgICAgICBkZGlfdHJh bnNsYXRpb25zID0gc2tsX2dldF9idWZfdHJhbnNfZWRwKGRldiwgJm5fZW50cmllcyk7Cj4+IC0g ICAgICAgICAgICAgICBpYm9vc3QgPSBkZGlfdHJhbnNsYXRpb25zW3BvcnRdLmlfYm9vc3Q7Cj4+ ICsgICAgICAgICAgICAgICBpZiAoZHBfaWJvb3N0KSB7Cj4+ICsgICAgICAgICAgICAgICAgICAg ICAgIGlib29zdCA9IGRwX2lib29zdDsKPj4gKyAgICAgICAgICAgICAgIH0gZWxzZSB7Cj4+ICsg ICAgICAgICAgICAgICAgICAgICAgIGRkaV90cmFuc2xhdGlvbnMgPSBza2xfZ2V0X2J1Zl90cmFu c19lZHAoZGV2LCAmbl9lbnRyaWVzKTsKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgaWJvb3N0 ID0gZGRpX3RyYW5zbGF0aW9uc1twb3J0XS5pX2Jvb3N0Owo+PiArICAgICAgICAgICAgICAgfQo+ PiAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+PiAtICAg ICAgICAgICAgICAgZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9nZXRfYnVmX3RyYW5zX2hkbWkoZGV2 LCAmbl9lbnRyaWVzKTsKPj4gLSAgICAgICAgICAgICAgIGlib29zdCA9IGRkaV90cmFuc2xhdGlv bnNbcG9ydF0uaV9ib29zdDsKPj4gKyAgICAgICAgICAgICAgIGlmIChoZG1pX2lib29zdCkgewo+ PiArICAgICAgICAgICAgICAgICAgICAgICBpYm9vc3QgPSBoZG1pX2lib29zdDsKPj4gKyAgICAg ICAgICAgICAgIH0gZWxzZSB7Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgIGRkaV90cmFuc2xh dGlvbnMgPSBza2xfZ2V0X2J1Zl90cmFuc19oZG1pKGRldiwgJm5fZW50cmllcyk7Cj4+ICsgICAg ICAgICAgICAgICAgICAgICAgIGlib29zdCA9IGRkaV90cmFuc2xhdGlvbnNbcG9ydF0uaV9ib29z dDsKPj4gKyAgICAgICAgICAgICAgIH0KPj4gICAgICAgICB9IGVsc2Ugewo+PiAgICAgICAgICAg ICAgICAgcmV0dXJuOwo+PiAgICAgICAgIH0KPj4gLS0KPj4gMS44LjEuNQo+Pgo+PiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBJbnRlbC1nZnggbWFp bGluZyBsaXN0Cj4+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cDovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IAo+IAoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK