From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC][PATCH 08/11] drm: Add drm_connector_fill_modes() Date: Tue, 6 Mar 2018 11:00:30 +0100 Message-ID: <20180306100030.GZ22212@phenom.ffwll.local> References: <20180227125700.6527-1-ville.syrjala@linux.intel.com> <20180227125700.6527-9-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180227125700.6527-9-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Ville Syrjala Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, Keith Packard , dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBGZWIgMjcsIDIwMTggYXQgMDI6NTY6NTdQTSArMDIwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IFdyYXAgdGhlIC0+ZmlsbF9tb2RlcygpIGNhbGwgaW4gYSBzbWFsbCBoZWxwZXIg dGhhdCBmaXJzdCBjbGVhcnMgb3V0IHRoZQo+IHN0YWxlIGRhdGEgZnJvbSBjb25uZWN0b3ItPmRp c3BsYXlfaW5mby4gVGhpcyBzaG91bGQgZ3VhcmFudGVlIHRoYXQgd2UKPiBnZXQgY29uc2lzdGVu dCBkaXNwbGF5X2luZm8gd2hldGhlciBvciBub3QgdGhlIGRyaXZlcnMgdXNlIHRoZSBFRElECj4g YmFzZWQgc3R1ZmYgdG8gY2xlYXIgYW5kIGZpbGwgaXQuCj4gCj4gVE9ETzogd2hhdCBhYm91dCBq dXN0IGFmdGVyIGluaXQsIGJlZm9yZSBhbnlvbmUgaGFzIGNhbGxlZAo+IC0+ZmlsbF9tb2Rlcygp PyBJbiB0aGF0IGNhc2UgdXNlcnNwYWNlIGNvdWxkIHNlZSBzdGFsZSBkYXRhIGlmIHRoZXkgZG8K PiB0aGUgY2hlYXAgZ2V0Y29ubmVjdG9yIGlvY3RsLiBOb3Qgc3VyZSBpZiB0aGF0J3MgYSB2YWxp ZCBjb25jZXJuIHRob3VnaC4KPiAKPiBDYzogS2VpdGggUGFja2FyZCA8a2VpdGhwQGtlaXRocC5j b20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gU2lnbmVk LW9mZi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K ClNvbWUgdGhvdWdodHM6Ci0gSSB0aGluayB1bmNvbmRpdGlvbmFsbHkgcmVzZXR0aW5nIGZvciBw YW5lbHMgaXMgdGhlIHdyb25nIHRoaW5nIHRvIGRvLgotIFdlJ3JlIG5vdCByZXNldHRpbmcgaW4g ZXZlbiBtb3JlIHBsYWNlcywgY2FuJ3Qgd2UganVzdCBjb25kZW5zZSB0aGVtIGFsbAogIGRvd24g dG8gMT8KLSBJJ20gdW5kZWNpZGVkIG9uIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgaW4gdGhlIGNv cmUsIG9yIGluIHRoZSBoZWxwZXJzLgogIEF0bSB0aGUgY29yZSBpcyB0aGUgb25lIHRoYXQgaW1w bGVtZW50cyB0aGUgImp1c3QgZ2l2ZSBtZSB0aGUgY3VycmVudAogIG1vZGUgbGlzdCwgZG9uJ3Qg cmVwcm9iZSIgbG9naWMsIGJ1dCB0aGVuIHdlIHB1bnQgZXZlcnl0aGluZyBlbHNlIHRvCiAgLT5m aWxsX21vZGVzIChpbmNsdWRpbmcgc2V0dGluZyBhbGwgbW9kZXMgdG8gc3RhbGUgYW5kIGFsbCB0 aGF0IHN0dWZmKS4KICBJJ20gc2xpZ2h0bHkgbGVhbmluZyB0b3dhcmRzIGRvaW5nIHRoaXMgaW4g dGhlIGhlbHBlciBjb2RlLCBub3QgdGhlIGNvcmUKICBjb2RlLiBBbnkgcmVhc29ucyBmb3IgZG9p bmcgdGhpcyBpbiBjb3JlPwoKQ2hlZXJzLCBEYW5pZWwKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2RybV9jb25uZWN0b3IuYyB8IDQ0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jICAgICAgfCAxNCArLS0tLS0tLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMgfCAgMiArLQo+ICBkcml2ZXJz L2dwdS9kcm0vZHJtX3N5c2ZzLmMgICAgIHwgIDYgKysrLS0tCj4gIGluY2x1ZGUvZHJtL2RybV9j b25uZWN0b3IuaCAgICAgfCAgMyArKysKPiAgaW5jbHVkZS9kcm0vZHJtX2VkaWQuaCAgICAgICAg ICB8ICAxIC0KPiAgNiBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiBpbmRleCBkOGMzZWY0ZjE3ZGEuLjJi ZjE5YTM3ZGJhYyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IEBAIC0xMzg5LDcgKzEz ODksNyBAQCBpbnQgZHJtX21vZGVfY29ubmVjdG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIAkgKiBkdXBsaWNhdGUgaXQgcmF0aGVyIHRo YW4gYXR0ZW1wdCB0byBlbnN1cmUgc29tZSBhcmJpdHJhcnkKPiAgCSAqIG9yZGVyaW5nIG9mIGNh bGxzLgo+ICAJICovCj4gLQlkcm1fcmVzZXRfZGlzcGxheV9pbmZvKGNvbm5lY3Rvcik7Cj4gKwlk cm1fY29ubmVjdG9yX3Jlc2V0X2Rpc3BsYXlfaW5mbyhjb25uZWN0b3IpOwo+ICAJaWYgKGVkaWQg JiYgZHJtX2VkaWRfaXNfdmFsaWQoZWRpZCkpCj4gIAkJZHJtX2FkZF9kaXNwbGF5X2luZm8oY29u bmVjdG9yLCBlZGlkKTsKPiAgCj4gQEAgLTE1OTQsOSArMTU5NCw5IEBAIGludCBkcm1fbW9kZV9n ZXRjb25uZWN0b3Ioc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgCj4gIAlt dXRleF9sb2NrKCZkZXYtPm1vZGVfY29uZmlnLm11dGV4KTsKPiAgCWlmIChvdXRfcmVzcC0+Y291 bnRfbW9kZXMgPT0gMCkgewo+IC0JCWNvbm5lY3Rvci0+ZnVuY3MtPmZpbGxfbW9kZXMoY29ubmVj dG9yLAo+IC0JCQkJCSAgICAgZGV2LT5tb2RlX2NvbmZpZy5tYXhfd2lkdGgsCj4gLQkJCQkJICAg ICBkZXYtPm1vZGVfY29uZmlnLm1heF9oZWlnaHQpOwo+ICsJCWRybV9jb25uZWN0b3JfZmlsbF9t b2Rlcyhjb25uZWN0b3IsCj4gKwkJCQkJIGRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoLAo+ICsJ CQkJCSBkZXYtPm1vZGVfY29uZmlnLm1heF9oZWlnaHQpOwo+ICAJfQo+ICAKPiAgCW91dF9yZXNw LT5tbV93aWR0aCA9IGNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvLndpZHRoX21tOwo+IEBAIC0xNzU5 LDMgKzE3NTksMzkgQEAgc3RydWN0IGRybV90aWxlX2dyb3VwICpkcm1fbW9kZV9jcmVhdGVfdGls ZV9ncm91cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJcmV0dXJuIHRnOwo+ICB9Cj4gIEVY UE9SVF9TWU1CT0woZHJtX21vZGVfY3JlYXRlX3RpbGVfZ3JvdXApOwo+ICsKPiArLyoqCj4gKyAq IGRybV9jb25uZWN0b3JfcmVzZXRfZGlzcGxheV9pbmZvIC0gcmVzZXQgdGhlIGNvbm5lY3Rvcidz IGRpc3BsYXkgaW5mbwo+ICsgKiBAY29ubmVjdG9yOiBEUk0gY29ubmVjdG9yCj4gKyAqCj4gKyAq IENsZWFyIHRoZSBvbGQgZGlzcGxheSBpbmZvIGZvciBAY29ubmVjdG9yIGFsbG93aW5nIHRoZSBk cml2ZXIgdG8KPiArICogcmVwb3B1bGF0ZSBpdCBiYXNlZCBvbiBmcmVzaCBkYXRhLgo+ICsgKi8K PiArdm9pZCBkcm1fY29ubmVjdG9yX3Jlc2V0X2Rpc3BsYXlfaW5mbyhzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9 ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKPiArCj4gKwltZW1zZXQoaW5mbywgMCwgc2l6ZW9m KCppbmZvKSk7Cj4gK30KPiArRVhQT1JUX1NZTUJPTF9HUEwoZHJtX2Nvbm5lY3Rvcl9yZXNldF9k aXNwbGF5X2luZm8pOwo+ICsKPiArLyoqCj4gKyAqIGRybV9jb25uZWN0b3JfZmlsbF9tb2RlcyAt IGZpbGwgY29ubmVjdG9yIG1vZGUgbGlzdCBhbmQgZHluYW1pYyBkaXNwbGF5IGluZm8KPiArICog QGNvbm5lY3RvcjogRFJNIGNvbm5lY3Rvcgo+ICsgKiBAbWF4X3dpZHRoOiBtYXggd2lkdGggZm9y IG1vZGVzCj4gKyAqIEBtYXhfaGVpZ2h0OiBtYXggaGVpZ2h0IGZvciBtb2Rlcwo+ICsgKgo+ICsg KiBSZXNldCB0aGUgZGlzcGxheSBpbmZvIGFuZCBjYWxscyAmZHJtX2Nvbm5lY3Rvcl9mdW5jcy5m aWxsX21vZGVzKCkgdmZ1bmMKPiArICogcmVwb3B1bGF0ZSBpdCBhbmQgYW5kIHRoZSBtb2RlIGxp c3QuCj4gKyAqCj4gKyAqIFJFVFVSTlM6Cj4gKyAqIFRoZSBudW1iZXIgb2YgbW9kZXMgZm91bmQg b24gQGNvbm5lY3Rvci4KPiArICovCj4gK2ludCBkcm1fY29ubmVjdG9yX2ZpbGxfbW9kZXMoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICB1bnNpZ25lZCBpbnQgbWF4 X3dpZHRoLCB1bnNpZ25lZCBpbnQgbWF4X2hlaWdodCkKPiArewo+ICsJZHJtX2Nvbm5lY3Rvcl9y ZXNldF9kaXNwbGF5X2luZm8oY29ubmVjdG9yKTsKPiArCj4gKwlyZXR1cm4gY29ubmVjdG9yLT5m dW5jcy0+ZmlsbF9tb2Rlcyhjb25uZWN0b3IsIG1heF93aWR0aCwgbWF4X2hlaWdodCk7Cj4gK30K PiArRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2ZpbGxfbW9kZXMpOwo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5j Cj4gaW5kZXggNzhjMWYzN2JlM2RiLi42MTgwOTNjNGEwMzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9lZGlkLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2VkaWQuYwo+ IEBAIC00NDM1LDE4ICs0NDM1LDYgQEAgc3RhdGljIHZvaWQgZHJtX3BhcnNlX2NlYV9leHQoc3Ry dWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCX0KPiAgfQo+ICAKPiAtLyogQSBjb25u ZWN0b3IgaGFzIG5vIEVESUQgaW5mb3JtYXRpb24sIHNvIHdlJ3ZlIGdvdCBubyBFRElEIHRvIGNv bXB1dGUgcXVpcmtzIGZyb20uIFJlc2V0Cj4gLSAqIGFsbCBvZiB0aGUgdmFsdWVzIHdoaWNoIHdv dWxkIGhhdmUgYmVlbiBzZXQgZnJvbSBFRElECj4gLSAqLwo+IC12b2lkCj4gLWRybV9yZXNldF9k aXNwbGF5X2luZm8oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAtewo+IC0Jc3Ry dWN0IGRybV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4g LQo+IC0JbWVtc2V0KGluZm8sIDAsIHNpemVvZigqaW5mbykpOwo+IC19Cj4gLUVYUE9SVF9TWU1C T0xfR1BMKGRybV9yZXNldF9kaXNwbGF5X2luZm8pOwo+IC0KPiAgdTMyIGRybV9hZGRfZGlzcGxh eV9pbmZvKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGNvbnN0IHN0cnVjdCBlZGlk ICplZGlkKQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0 b3ItPmRpc3BsYXlfaW5mbzsKPiBAQCAtNDY2NSw3ICs0NjUzLDcgQEAgaW50IGRybV9hZGRfZWRp ZF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBzdHJ1Y3QgZWRpZCAqZWRp ZCkKPiAgCWludCBudW1fbW9kZXMgPSAwOwo+ICAJdTMyIHF1aXJrczsKPiAgCj4gLQlkcm1fcmVz ZXRfZGlzcGxheV9pbmZvKGNvbm5lY3Rvcik7Cj4gKwlkcm1fY29ubmVjdG9yX3Jlc2V0X2Rpc3Bs YXlfaW5mbyhjb25uZWN0b3IpOwo+ICAKPiAgCWlmIChlZGlkID09IE5VTEwpIHsKPiAgCQljbGVh cl9lbGQoY29ubmVjdG9yKTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZmJfaGVscGVyLmMKPiBpbmRleCAxOGNiNjNi MzBlMzMuLmYzZWRkYmJkMDYxNiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Zi X2hlbHBlci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9mYl9oZWxwZXIuYwo+IEBAIC0y MDI3LDcgKzIwMjcsNyBAQCBzdGF0aWMgaW50IGRybV9mYl9oZWxwZXJfcHJvYmVfY29ubmVjdG9y X21vZGVzKHN0cnVjdCBkcm1fZmJfaGVscGVyICpmYl9oZWxwZXIsCj4gIAo+ICAJZHJtX2ZiX2hl bHBlcl9mb3JfZWFjaF9jb25uZWN0b3IoZmJfaGVscGVyLCBpKSB7Cj4gIAkJY29ubmVjdG9yID0g ZmJfaGVscGVyLT5jb25uZWN0b3JfaW5mb1tpXS0+Y29ubmVjdG9yOwo+IC0JCWNvdW50ICs9IGNv bm5lY3Rvci0+ZnVuY3MtPmZpbGxfbW9kZXMoY29ubmVjdG9yLCBtYXhYLCBtYXhZKTsKPiArCQlj b3VudCArPSBkcm1fY29ubmVjdG9yX2ZpbGxfbW9kZXMoY29ubmVjdG9yLCBtYXhYLCBtYXhZKTsK PiAgCX0KPiAgCj4gIAlyZXR1cm4gY291bnQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fc3lzZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwo+IGluZGV4IDFjNWI1 Y2UxZmQ3Zi4uM2M2ZTgwMGI2NmEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1f c3lzZnMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3lzZnMuYwo+IEBAIC0xMzAsOSAr MTMwLDkgQEAgc3RhdGljIHNzaXplX3Qgc3RhdHVzX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldmlj ZSwKPiAgCQkJICAgICAgY29ubmVjdG9yLT5uYW1lLAo+ICAJCQkgICAgICBvbGRfZm9yY2UsIGNv bm5lY3Rvci0+Zm9yY2UpOwo+ICAKPiAtCQljb25uZWN0b3ItPmZ1bmNzLT5maWxsX21vZGVzKGNv bm5lY3RvciwKPiAtCQkJCQkgICAgIGRldi0+bW9kZV9jb25maWcubWF4X3dpZHRoLAo+IC0JCQkJ CSAgICAgZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0KTsKPiArCQlkcm1fY29ubmVjdG9yX2Zp bGxfbW9kZXMoY29ubmVjdG9yLAo+ICsJCQkJCSBkZXYtPm1vZGVfY29uZmlnLm1heF93aWR0aCwK PiArCQkJCQkgZGV2LT5tb2RlX2NvbmZpZy5tYXhfaGVpZ2h0KTsKPiAgCX0KPiAgCj4gIAltdXRl eF91bmxvY2soJmRldi0+bW9kZV9jb25maWcubXV0ZXgpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiBpbmRl eCA4ODE1ZWYxY2U0MjkuLmJmMTQ0NzRjODNmNSAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9k cm1fY29ubmVjdG9yLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgKPiBAQCAt MTEyNCw2ICsxMTI0LDkgQEAgdm9pZCBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVz X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IKPiAgCQkJCQkJIHVpbnQ2 NF90IGxpbmtfc3RhdHVzKTsKPiAgaW50IGRybV9jb25uZWN0b3JfaW5pdF9wYW5lbF9vcmllbnRh dGlvbl9wcm9wZXJ0eSgKPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCB3 aWR0aCwgaW50IGhlaWdodCk7Cj4gK3ZvaWQgZHJtX2Nvbm5lY3Rvcl9yZXNldF9kaXNwbGF5X2lu Zm8oc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gK2ludCBkcm1fY29ubmVjdG9y X2ZpbGxfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJICAgICB1 bnNpZ25lZCBpbnQgbWF4X3dpZHRoLCB1bnNpZ25lZCBpbnQgbWF4X2hlaWdodCk7Cj4gIAo+ICAv KioKPiAgICogc3RydWN0IGRybV90aWxlX2dyb3VwIC0gVGlsZSBncm91cCBtZXRhZGF0YQo+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZWRpZC5oIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQu aAo+IGluZGV4IDhkODlhOWMzNzQ4ZC4uZGI1ZTZhOTkwYzJkIDEwMDY0NAo+IC0tLSBhL2luY2x1 ZGUvZHJtL2RybV9lZGlkLmgKPiArKysgYi9pbmNsdWRlL2RybS9kcm1fZWRpZC5oCj4gQEAgLTQ2 NSw3ICs0NjUsNiBAQCBzdHJ1Y3QgZWRpZCAqZHJtX2dldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsCj4gIHN0cnVjdCBlZGlkICpkcm1fZ2V0X2VkaWRfc3dpdGNoZXJvbyhz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkJICAgICBzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIpOwo+ICBzdHJ1Y3QgZWRpZCAqZHJtX2VkaWRfZHVwbGljYXRlKGNvbnN0 IHN0cnVjdCBlZGlkICplZGlkKTsKPiAtdm9pZCBkcm1fcmVzZXRfZGlzcGxheV9pbmZvKHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ICB1MzIgZHJtX2FkZF9kaXNwbGF5X2luZm8o c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQp Owo+ICBpbnQgZHJtX2FkZF9lZGlkX21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsIHN0cnVjdCBlZGlkICplZGlkKTsKPiAgCj4gLS0gCj4gMi4xMy42Cj4gCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==