From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 03/12] drm/i915: Convert connector checking to atomic. Date: Tue, 28 Jul 2015 17:51:41 +0200 Message-ID: <55B7A50D.3080001@linux.intel.com> References: <1438000541-3219-1-git-send-email-maarten.lankhorst@linux.intel.com> <1438000541-3219-4-git-send-email-maarten.lankhorst@linux.intel.com> <1438089223.2727.17.camel@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 3FB716EA35 for ; Tue, 28 Jul 2015 08:51:43 -0700 (PDT) In-Reply-To: <1438089223.2727.17.camel@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ander Conselvan De Oliveira , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMjgtMDctMTUgb20gMTU6MTMgc2NocmVlZiBBbmRlciBDb25zZWx2YW4gRGUgT2xpdmVpcmE6 Cj4gT24gTW9uLCAyMDE1LTA3LTI3IGF0IDE0OjM1ICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3 cm90ZToKPiBTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9y c3RAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j cnQuYyAgICAgfCAgMiAtCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8 IDc5ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMSAtCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2R2by5jICAgICB8ICAyIC0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5j ICAgIHwgIDIgLQo+ICA1IGZpbGVzIGNoYW5nZWQsIDM2IGluc2VydGlvbnMoKyksIDUwIGRlbGV0 aW9ucygtKQo+Cj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0 LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+IGluZGV4IDVkNzhjMWZlZWM4 MS4uOWViYTNkZDViNDM0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NydC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiBAQCAtMjgw LDggKzI4MCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0X2RwbXMoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwgaW50IG1vZGUpCj4gIAkJaW50ZWxfY3J0Y191cGRhdGVfZHBtcyhjcnRj KTsKPiAgCX0KPiAgCj4gLQlpbnRlbF9tb2Rlc2V0X2NoZWNrX3N0YXRlKGNvbm5lY3Rvci0+ZGV2 KTsKPiAtCj4gIAlyZXR1cm4gMDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4gaW5kZXggM2FiMGE4YThlNzAyLi5iYTBiNjhhNDIwOWQgMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTYzNjAsNDIgKzYzNjAsMzMgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZW5jb2Rlcl9kcG1zKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLCBp bnQgbW9kZSkKPiAgICogaW50ZXJuYWwgY29uc2lzdGVuY3kpLiAqLwo+ICBzdGF0aWMgdm9pZCBp bnRlbF9jb25uZWN0b3JfY2hlY2tfc3RhdGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjb25uZWN0b3ItPmJhc2Uuc3Rh dGUtPmNydGM7Cj4gKwo+ICsJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11cbiIsCj4g KwkJICAgICAgY29ubmVjdG9yLT5iYXNlLmJhc2UuaWQsCj4gKwkJICAgICAgY29ubmVjdG9yLT5i YXNlLm5hbWUpOwo+ICsKPiAgCWlmIChjb25uZWN0b3ItPmdldF9od19zdGF0ZShjb25uZWN0b3Ip KSB7Cj4gLQkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSBjb25uZWN0b3ItPmVuY29k ZXI7Cj4gLQkJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+IC0JCWJvb2wgZW5jb2Rlcl9lbmFibGVk Owo+IC0JCWVudW0gcGlwZSBwaXBlOwo+ICsJCXN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciA9 ICZjb25uZWN0b3ItPmVuY29kZXItPmJhc2U7Cj4gKwkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUgPSBjb25uZWN0b3ItPmJhc2Uuc3RhdGU7Cj4gIAo+IC0JCURSTV9ERUJV R19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4iLAo+IC0JCQkgICAgICBjb25uZWN0b3ItPmJhc2Uu YmFzZS5pZCwKPiAtCQkJICAgICAgY29ubmVjdG9yLT5iYXNlLm5hbWUpOwo+ICsJCUk5MTVfU1RB VEVfV0FSTighY3J0YywKPiArCQkJICJjb25uZWN0b3IgZW5hYmxlZCB3aXRob3V0IGF0dGFjaGVk IGNydGNcbiIpOwo+ICAKPiAtCQkvKiB0aGVyZSBpcyBubyByZWFsIGh3IHN0YXRlIGZvciBNU1Qg Y29ubmVjdG9ycyAqLwo+IC0JCWlmIChjb25uZWN0b3ItPm1zdF9wb3J0KQo+Cj4gU2hvdWxkIHRo ZSBhYm92ZSBkZWxldGlvbiBiZSBwYXJ0IG9mIHRoZSBwcmV2aW91cyBwYXRjaD8KSHVoIHdlaXJk LCBpbmRlZWQuLgo+PiArCQlpZiAoIWNydGMpCj4gIAkJCXJldHVybjsKPiAgCj4gLQkJSTkxNV9T VEFURV9XQVJOKGNvbm5lY3Rvci0+YmFzZS5kcG1zID09IERSTV9NT0RFX0RQTVNfT0ZGLAo+IC0J CSAgICAgIndyb25nIGNvbm5lY3RvciBkcG1zIHN0YXRlXG4iKTsKPiAtCQlJOTE1X1NUQVRFX1dB Uk4oY29ubmVjdG9yLT5iYXNlLmVuY29kZXIgIT0gJmVuY29kZXItPmJhc2UsCj4gLQkJICAgICAi YWN0aXZlIGNvbm5lY3RvciBub3QgbGlua2VkIHRvIGVuY29kZXJcbiIpOwo+ICsJCUk5MTVfU1RB VEVfV0FSTighY3J0Yy0+c3RhdGUtPmFjdGl2ZSwKPiArCQkgICAgICAiY29ubmVjdG9yIGlzIGFj dGl2ZSwgYnV0IGF0dGFjaGVkIGNydGMgaXNuJ3RcbiIpOwo+ICAKPiAtCQlpZiAoZW5jb2Rlcikg ewo+IC0JCQlJOTE1X1NUQVRFX1dBUk4oIWVuY29kZXItPmNvbm5lY3RvcnNfYWN0aXZlLAo+IC0J CQkgICAgICJlbmNvZGVyLT5jb25uZWN0b3JzX2FjdGl2ZSBub3Qgc2V0XG4iKTsKPgo+IFRoZSBj b252ZXJ0ZWQgdmVyc2lvbiBkb2Vzbid0IGNoZWNrIGNvbm5lY3RvcnNfYWN0aXZlLiBJIHNlZSBp dCBpcwo+IGxhdGVyIHJlbW92ZWQgaW4gdGhlIHBhdGNoIHNlcmllcywgc28gSSBhc3N1bWUgaXQg aXMgbGVmdCBvdXQgb24KPiBwdXJwb3NlLCBidXQgSSB0aGluayB0aGlzIGlzIHdvcnRoIG1lbnRp b25pbmcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLgo+Cj4+IC0KPiAtCQkJZW5jb2Rlcl9lbmFibGVk ID0gZW5jb2Rlci0+Z2V0X2h3X3N0YXRlKGVuY29kZXIsICZwaXBlKTsKPiAtCQkJSTkxNV9TVEFU RV9XQVJOKCFlbmNvZGVyX2VuYWJsZWQsICJlbmNvZGVyIG5vdCBlbmFibGVkXG4iKTsKPiAtCQkJ aWYgKEk5MTVfU1RBVEVfV0FSTl9PTighZW5jb2Rlci0+YmFzZS5jcnRjKSkKPiAtCQkJCXJldHVy bjsKPgo+IFRoZXNlIGFyZSBhbHNvIGxlZnQgb3V0LiBJdCBsb29rcyBsaWtlIGNoZWNrX2VuY29k ZXJfc3RhdGUoKSBwZXJmb3Jtcwo+IHRoZSBzYW1lIGNoZWNrLCBidXQgSSB0aGluayB0aGUgY29t bWl0IG1lc3NhZ2Ugc2hvdWxkIG1lbnRpb24gdGhpcyBpZgo+IHRoYXQncyB0aGUgY2FzZS4KSXQn cyB0aGUgY2FzZS4KPj4gKwkJSTkxNV9TVEFURV9XQVJOKGNvbm5fc3RhdGUtPmJlc3RfZW5jb2Rl ciAhPSBlbmNvZGVyLAo+ICsJCQkiYXRvbWljIGVuY29kZXIgZG9lc24ndCBtYXRjaCBhdHRhY2hl ZCBlbmNvZGVyXG4iKTsKPiAgCj4gLQkJCWNydGMgPSBlbmNvZGVyLT5iYXNlLmNydGM7Cj4gLQo+ IC0JCQlJOTE1X1NUQVRFX1dBUk4oIWNydGMtPnN0YXRlLT5lbmFibGUsCj4gLQkJCQkJImNydGMg bm90IGVuYWJsZWRcbiIpOwo+IC0JCQlJOTE1X1NUQVRFX1dBUk4oIXRvX2ludGVsX2NydGMoY3J0 YyktPmFjdGl2ZSwgImNydGMgbm90IGFjdGl2ZVxuIik7Cj4gLQkJCUk5MTVfU1RBVEVfV0FSTihw aXBlICE9IHRvX2ludGVsX2NydGMoY3J0YyktPnBpcGUsCj4gLQkJCSAgICAgImVuY29kZXIgYWN0 aXZlIG9uIHRoZSB3cm9uZyBwaXBlXG4iKTsKPiAtCQl9Cj4gKwkJSTkxNV9TVEFURV9XQVJOKGNv bm5fc3RhdGUtPmNydGMgIT0gZW5jb2Rlci0+Y3J0YywKPiArCQkJImF0dGFjaGVkIGVuY29kZXIg Y3J0YyBkaWZmZXJzIGZyb20gY29ubmVjdG9yIGNydGNcbiIpOwo+ICsJfSBlbHNlIHsKPiArCQlJ OTE1X1NUQVRFX1dBUk4oIWNydGMgJiYgY29ubmVjdG9yLT5iYXNlLnN0YXRlLT5iZXN0X2VuY29k ZXIsCj4gKwkJCSJiZXN0IGVuY29kZXIgc2V0IHdpdGhvdXQgY3J0YyFcbiIpOwo+ICAJfQo+ICB9 Cj4gIAo+IEBAIC02NDQ0LDggKzY0MzUsNiBAQCBpbnQgaW50ZWxfY29ubmVjdG9yX2RwbXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgaW50IG1vZGUpCj4gIAlpZiAoY29ubmVjdG9y LT5lbmNvZGVyKQo+ICAJCWludGVsX2VuY29kZXJfZHBtcyh0b19pbnRlbF9lbmNvZGVyKGNvbm5l Y3Rvci0+ZW5jb2RlciksIG1vZGUpOwo+ICAKPiAtCWludGVsX21vZGVzZXRfY2hlY2tfc3RhdGUo Y29ubmVjdG9yLT5kZXYpOwo+IC0KPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IEBAIC0xMjcwNSwy MCArMTI2OTQsMjIgQEAgc3RhdGljIHZvaWQgY2hlY2tfd21fc3RhdGUoc3RydWN0IGRybV9kZXZp Y2UgKmRldikKPiAgfQo+ICAKPiAgc3RhdGljIHZvaWQKPiAtY2hlY2tfY29ubmVjdG9yX3N0YXRl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK2NoZWNrX2Nvbm5lY3Rvcl9zdGF0ZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4KPiBUaGlz IGlzIGNhbGxlZCBhZnRlciBhIHN0YXRlIHN3YXAsIHNvIEkgdGhpbmsgdGhlIHN0YXRlIHZhcmlh YmxlIHNob3VsZAo+IGJlIGNhbGxlZCBvbGRfc3RhdGUgZm9yIGNsYXJpdHkuCk9rLgo+PiAgewo+ IC0Jc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yOwo+ICsJaW50IGk7Cj4gIAo+IC0JZm9yX2VhY2hfaW50ZWxfY29ubmVjdG9yKGRldiwgY29u bmVjdG9yKSB7Cj4gLQkJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gY29ubmVjdG9yLT5i YXNlLmVuY29kZXI7Cj4gLQkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKnN0YXRlID0gY29u bmVjdG9yLT5iYXNlLnN0YXRlOwo+ICsJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRl LCBjb25uZWN0b3IsIGNvbm5fc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVu Y29kZXIgPSBjb25uZWN0b3ItPmVuY29kZXI7Cj4gKwkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKnN0YXRlID0gY29ubmVjdG9yLT5zdGF0ZTsKPiAgCj4gIAkJLyogVGhpcyBhbHNvIGNoZWNr cyB0aGUgZW5jb2Rlci9jb25uZWN0b3IgaHcgc3RhdGUgd2l0aCB0aGUKPiAgCQkgKiAtPmdldF9o d19zdGF0ZSBjYWxsYmFja3MuICovCj4gLQkJaW50ZWxfY29ubmVjdG9yX2NoZWNrX3N0YXRlKGNv bm5lY3Rvcik7Cj4gKwkJaW50ZWxfY29ubmVjdG9yX2NoZWNrX3N0YXRlKHRvX2ludGVsX2Nvbm5l Y3Rvcihjb25uZWN0b3IpKTsKPiAgCj4gIAkJSTkxNV9TVEFURV9XQVJOKHN0YXRlLT5iZXN0X2Vu Y29kZXIgIT0gZW5jb2RlciwKPiAtCQkgICAgICJjb25uZWN0b3IncyBzdGFnZWQgZW5jb2RlciBk b2Vzbid0IG1hdGNoIGN1cnJlbnQgZW5jb2RlclxuIik7Cj4gKwkJICAgICAiY29ubmVjdG9yJ3Mg YXRvbWljIGVuY29kZXIgZG9lc24ndCBtYXRjaCBsZWdhY3kgZW5jb2RlclxuIik7Cj4gIAl9Cj4g IH0KPiAgCj4gQEAgLTEyOTA0LDExICsxMjg5NSwxMiBAQCBjaGVja19zaGFyZWRfZHBsbF9zdGF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJfQo+ICB9Cj4gIAo+IC12b2lkCj4gLWludGVs X21vZGVzZXRfY2hlY2tfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArc3RhdGljIHZv aWQKPiAraW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICsJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPgo+IG9sZF9zdGF0ZSBoZXJl IHRvby4KPgo+Cj4+ICB7Cj4gIAljaGVja193bV9zdGF0ZShkZXYpOwo+IC0JY2hlY2tfY29ubmVj dG9yX3N0YXRlKGRldik7Cj4gKwljaGVja19jb25uZWN0b3Jfc3RhdGUoZGV2LCBzdGF0ZSk7Cj4g IAljaGVja19lbmNvZGVyX3N0YXRlKGRldik7Cj4gIAljaGVja19jcnRjX3N0YXRlKGRldik7Cj4g IAljaGVja19zaGFyZWRfZHBsbF9zdGF0ZShkZXYpOwo+IEBAIC0xMzI5NCwxMCArMTMyODYsMTEg QEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs Cj4gIAo+ICAJZHJtX2F0b21pY19oZWxwZXJfd2FpdF9mb3JfdmJsYW5rcyhkZXYsIHN0YXRlKTsK PiAgCWRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+IC0JZHJt X2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPiAgCj4gIAlpZiAoYW55X21zKQo+IC0JCWludGVs X21vZGVzZXRfY2hlY2tfc3RhdGUoZGV2KTsKPiArCQlpbnRlbF9tb2Rlc2V0X2NoZWNrX3N0YXRl KGRldiwgc3RhdGUpOwo+ICsKPiArCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7Cj4gIAo+ ICAJcmV0dXJuIDA7Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDMyMGM5 ZTZiZDg0OC4uMGRhNDIzNmRjODVhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBA QCAtOTk5LDcgKzk5OSw2IEBAIGludCBpbnRlbF9jb25uZWN0b3JfaW5pdChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICopOwo+ICBzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3Jf YWxsb2Modm9pZCk7Cj4gIGludCBpbnRlbF9jb25uZWN0b3JfZHBtcyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqLCBpbnQgbW9kZSk7Cj4gIGJvb2wgaW50ZWxfY29ubmVjdG9yX2dldF9od19zdGF0ZShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwo+IC12b2lkIGludGVsX21vZGVzZXRf Y2hlY2tfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gIGJvb2wgaWJ4X2RpZ2l0YWxf cG9ydF9jb25uZWN0ZWQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqcG9ydCk7Cj4gIHZvaWQgaW50ZWxfY29ubmVjdG9y X2F0dGFjaF9lbmNvZGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kdm8uYwo+IGluZGV4IGZkNWU1MjJhYmViYi4uNjAwZjdmYjg1NWQ4IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKPiBAQCAtMjM3LDggKzIzNyw2IEBAIHN0YXRp YyBpbnQgaW50ZWxfZHZvX2RwbXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgaW50 IG1vZGUpCj4gIAkJaW50ZWxfY3J0Y191cGRhdGVfZHBtcyhjcnRjKTsKPiAgCX0KPiAgCj4gLQlp bnRlbF9tb2Rlc2V0X2NoZWNrX3N0YXRlKGNvbm5lY3Rvci0+ZGV2KTsKPiAtCj4gIAlyZXR1cm4g MDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2 by5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCj4gaW5kZXggMmM0MzVhNzlk NGRhLi44OTExZTBlNDE3ZWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfc2R2by5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCj4gQEAg LTE1NTAsOCArMTU1MCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfc2R2b19kcG1zKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsIGludCBtb2RlKQo+ICAJCWludGVsX3Nkdm9fc2V0X2FjdGl2 ZV9vdXRwdXRzKGludGVsX3Nkdm8sIGludGVsX3Nkdm8tPmF0dGFjaGVkX291dHB1dCk7Cj4gIAl9 Cj4gIAo+IC0JaW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShjb25uZWN0b3ItPmRldik7Cj4gLQo+ Cj4gSG93IGRvZXMgcmVtb3ZpbmcgdGhlIGNoZWNrcyBmcm9tIHRoZSBfZHBtcygpIGZ1bmN0aW9u cyByZWxhdGUgdG8KPiBjb252ZXJ0aW5nIHRoZSBjb25uZWN0b3IgY2hlY2tpbmcgdG8gYXRvbWlj PyBJZiBJIHVuZGVyc3Rvb2QgY29ycmVjdGx5LAo+IHRoZSBjaGVja3MgYXJlbid0IG5lY2Vzc2Fy eSBhbnltb3JlIGJlY2F1c2UgaW50ZWxfY3J0Y19jb250cm9sKCkgaXMKPiBhdG9taWMsIGFuZCB0 aGF0IGFscmVhZHkgcGVyZm9ybXMgYSBjaGVjay4gQnV0IGlmIHRoYXQncyByaWdodCB0aGlzCj4g c2hvdWxkIGJlIGEgc2VwYXJhdGUgcGF0Y2guIE9yIGRpZCBJIG1pc3Mgc29tZXRoaW5nPwo+Cklu ZGVlZCwgYnV0IHRoZXJlIGlzIG5vIHN0YXRlIGxlZnQgdG8gY2hlY2sgaGVyZSwgc2luY2Ugd2Ug d291bGQgaGF2ZSBhIG51bGwgcG9pbnRlci4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4Cg==