From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jindal, Sonika" Subject: Re: [PATCH] drm/i915: Add hot_plug hook for hdmi encoder Date: Tue, 29 Sep 2015 09:43:10 +0530 Message-ID: <560A0FD6.60500@intel.com> References: <55F6CF73.9010707@intel.com> <1443430564-12547-1-git-send-email-sonika.jindal@intel.com> <20150928133411.GI3383@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 AC6936E75A for ; Mon, 28 Sep 2015 21:13:13 -0700 (PDT) In-Reply-To: <20150928133411.GI3383@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA5LzI4LzIwMTUgNzowNCBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBNb24sIFNl cCAyOCwgMjAxNSBhdCAwMjoyNjowNFBNICswNTMwLCBTb25pa2EgSmluZGFsIHdyb3RlOgo+PiBU aGlzIHBhdGNoIGFkZHMgYSBzZXBhcmF0ZSBwcm9iZSBmdW5jdGlvbiBmb3IgSERNSQo+PiBFRElE IHJlYWQgb3ZlciBEREMgY2hhbm5lbC4gVGhpcyBmdW5jdGlvbiBoYXMgYmVlbgo+PiByZWdpc3Rl cmVkIGFzIGEgLmhvdF9wbHVnIGhhbmRsZXIgZm9yIEhETUkgZW5jb2Rlci4KPj4KPj4gVGhlIGN1 cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgaGRtaV9kZXRlY3QoKQo+PiBmdW5jdGlvbiByZS1zZXRz IHRoZSBjYWNoZWQgSERNSSBlZGlkIChpbiBjb25uZWN0b3ItPmRldGVjdF9lZGlkKSBpbgo+PiBl dmVyeSBkZXRlY3QgY2FsbC5UaGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIG1hbnkgdGltZXMsIHNv bWV0aW1lcwo+PiBkaXJlY3RseSBmcm9tIHVzZXJzcGFjZSBwcm9iZXMsIGZvcmNpbmcgZHJpdmVy cyB0byByZWFkIEVESUQgZXZlcnkKPj4gZGV0ZWN0IGZ1bmN0aW9uIGNhbGwuVGhpcyBjYXVzZXMg c2V2ZXJhbCBwcm9ibGVtcyBsaWtlOgo+Pgo+PiAxLiBSYWNlIGNvbmRpdGlvbnMgaW4gbXVsdGlw bGUgaG90X3BsdWcgLyB1bnBsdWcgY2FzZXMsIGJldHdlZW4KPj4gICAgIGludGVycnVwdHMgYm90 dG9tIGhhbHZlcyBhbmQgdXNlcnNwYWNlIGRldGVjdGlvbnMuCj4+IDIuIE1hbnkgVW4tbmVjZXNz YXJ5IEVESUQgcmVhZHMgZm9yIHNpbmdsZSBob3RwbHVnL3VucGx1Zwo+PiAzLiBIRE1JIGNvbXBs YWluY2UgZmFpbHVyZXMgd2hpY2ggZXhwZWN0cyBvbmx5IG9uZSBFRElEIHJlYWQgcGVyIGhvdHBs dWcKPj4KPj4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHNlcnZpbmcgdGhlIHB1cnBvc2Ugb2YgcmVh bGx5IHJlYWRpbmcgdGhlIEVESUQKPj4gYnkgcmVhbGx5IHByb2JpbmcgdGhlIEREQyBjaGFubmVs LCBhbmQgdXBkYXRpbmcgdGhlIGNhY2hlZCBFRElELgo+Pgo+PiBUaGUgcGxhbiBpcyB0bzoKPj4g MS4gaTkxNSBJUlEgaGFuZGxlciBib3R0b20gaGFsZiBmdW5jdGlvbiBhbHJlYWR5IGNhbGxzCj4+ ICAgICBpbnRlbF9lbmNvZGVyLT5ob3RwbHVnKCkgZnVuY3Rpb24uIEFkZGluZyBUaGlzIHByb2Jl IGZ1bmN0aW9uIHdoaWNoCj4+ICAgICB3aWxsIHJlYWQgdGhlIEVESUQgb25seSBpbiBjYXNlIG9m IGEgaG90cGx1ZyAvIHVucGx1Zy4KPj4gMi4gRHVyaW5nIGluaXRfY29ubmVjdG9yIHRoaXMgcHJv YmUgd2lsbCBiZSBjYWxsZWQgdG8gcmVhZCB0aGUgZWRpZAo+PiAzLiBSZXVzZSB0aGUgY2FjaGVk IEVESUQgaW4gaGRtaV9kZXRlY3QoKSBmdW5jdGlvbi4KPj4KPj4gVGhlICI8IGdlbjciIGNoZWNr IGlzIHRoZXJlIGJlY2F1c2UgdGhpcyB3YXMgdGVzdGVkIG9ubHkgZm9yID49Z2VuNwo+PiBwbGF0 Zm9ybXMuIEZvciBvbGRlciBwbGF0Zm9ybXMgdGhlIGhvdHBsdWcvcmVhZGluZyBlZGlkIHBhdGgg cmVtYWlucyBzYW1lLgo+Pgo+PiB2MjogQ2FsbGluZyBzZXRfZWRpZCBpbnN0ZWFkIG9mIGhkbWlf cHJvYmUgZHVyaW5nIGluaXQuCj4+IEFsc28sIGZvciBwbGF0Zm9ybXMgaGF2aW5nIERESSwgaW50 ZWxfZW5jb2RlciBmb3IgRFAgYW5kIEhETUkgaXMgc2FtZQo+PiAodGFrZW4gZnJvbSBpbnRlbF9k aWdfcG9ydCksIHNvIGZvciBEUCBhbHNvLCBob3RfcGx1ZyBmdW5jdGlvbiBnZXRzIGNhbGxlZAo+ PiB3aGljaCBpcyBub3QgaW50ZW5kZWQgaGVyZS4gU28sIGNoZWNrIGZvciBIRE1JIGluIGludGVs X2hkbWlfcHJvYmUKPj4gUmVseSBvbiBIUEQgZm9yIHVwZGF0aW5nIGVkaWQgb25seSBmb3IgcGxh dGZvcm1zIGdlbiA+IDggYW5kIGFsc28gZm9yIFZMVi4KPj4KPj4gdjM6IERyb3BwaW5nIHRoZSBn ZW4gPCA4IHx8ICFWTFYgIGNoZWNrLiBOb3cgYWxsIHBsYXRmb3JtcyBzaG91bGQgcmVseSBvbgo+ PiBob3RwbHVnIG9yIGluaXQgZm9yIHVwZGF0aW5nIHRoZSBlZGlkLihEYW5pZWwpCj4+IEFsc28s IGNhbGxpbmcgaGRtaV9wcm9iZSBpbiBpbml0IGluc3RlYWQgb2Ygc2V0X2VkaWQKPj4KPj4gdjQ6 IFJlbmFtaW5nIGludGVsX2hkbWlfcHJvYmUgdG8gaW50ZWxfaGRtaV9ob3RfcGx1ZyBhbmQgY2hh bmdpbmcgdGhlIHBhdGNoCj4+IHN1YmplY3QuIEFsc28gY2FsbGluZyB0aGlzIGhvdHBsdWcgaGFu ZGxlciBmcm9tIGludGVsX2hwZF9pbml0IHRvIHRha2UgY2FyZQo+PiBvZiBpbml0IHJlc3VtZSBz Y2VuYXJpb3MuCj4+Cj4+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsu c2hhcm1hQGludGVsLmNvbT4KPj4gU2lnbmVkLW9mZi1ieTogU29uaWthIEppbmRhbCA8c29uaWth LmppbmRhbEBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyAgICB8ICAgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+PiAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYyB8ICAgMTEgKysrKysrKwo+PiAg IDIgZmlsZXMgY2hhbmdlZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4+Cj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPj4gaW5kZXggYmIzM2M2Ni4uOWMxYTMwOCAxMDA2 NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+PiBAQCAtMTM2OSwxOCArMTM2OSwxNiBA QCBpbnRlbF9oZG1pX3NldF9lZGlkKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJv b2wgZm9yY2UpCj4+ICAgCXJldHVybiBjb25uZWN0ZWQ7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIGVu dW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMKPj4gLWludGVsX2hkbWlfZGV0ZWN0KHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4+ICt2b2lkIGludGVsX2hkbWlfaG90 X3BsdWcoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIpCj4+ICAgewo+PiAtCWVu dW0gZHJtX2Nvbm5lY3Rvcl9zdGF0dXMgc3RhdHVzOwo+PiAtCXN0cnVjdCBpbnRlbF9oZG1pICpp bnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+PiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpOwo+PiAr CXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0KPj4gKwkJCWVuY190b19pbnRlbF9oZG1p KCZpbnRlbF9lbmNvZGVyLT5iYXNlKTsKPj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRl bF9jb25uZWN0b3IgPQo+PiArCQkJCWludGVsX2hkbWktPmF0dGFjaGVkX2Nvbm5lY3RvcjsKPj4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2VuY29k ZXItPmJhc2UuZGV2KTsKPj4gICAJYm9vbCBsaXZlX3N0YXR1cyA9IGZhbHNlOwo+PiAgIAl1bnNp Z25lZCBpbnQgcmV0cnkgPSAzOwo+Pgo+PiAtCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6 JXNdXG4iLAo+PiAtCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7 Cj4+IC0KPj4gICAJd2hpbGUgKCFsaXZlX3N0YXR1cyAmJiAtLXJldHJ5KSB7Cj4+ICAgCQlsaXZl X3N0YXR1cyA9IGludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoZGV2X3ByaXYsCj4+ICAgCQkJ CWhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSkpOwo+PiBAQCAtMTM5MCwxNSArMTM4OCw0OCBA QCBpbnRlbF9oZG1pX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29s IGZvcmNlKQo+PiAgIAlpZiAoIWxpdmVfc3RhdHVzKQo+PiAgIAkJRFJNX0RFQlVHX0tNUygiTGl2 ZSBzdGF0dXMgbm90IHVwISIpOwo+Pgo+PiAtCWludGVsX2hkbWlfdW5zZXRfZWRpZChjb25uZWN0 b3IpOwo+PiArCS8qCj4+ICsJICogV2UgYXJlIGhlcmUsIG1lYW5zIHRoZXJlIGlzIGEgaG90cGx1 ZyBvciBhIGZvcmNlCj4+ICsJICogZGV0ZWN0aW9uLiBDbGVhciB0aGUgY2FjaGVkIEVESUQgYW5k IHByb2JlIHRoZQo+PiArCSAqIEREQyBidXMgdG8gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9m IEhETUkuCj4+ICsJICovCj4+ICsJaW50ZWxfaGRtaV91bnNldF9lZGlkKCZpbnRlbF9jb25uZWN0 b3ItPmJhc2UpOwo+PiArCWlmIChpbnRlbF9oZG1pX3NldF9lZGlkKCZpbnRlbF9jb25uZWN0b3It PmJhc2UsIGxpdmVfc3RhdHVzKSkKPj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiRERDIHByb2JlOiBn b3QgRURJRFxuIik7Cj4+ICsJZWxzZQo+PiArCQlEUk1fREVCVUdfRFJJVkVSKCJEREMgcHJvYmU6 IG5vIEVESURcbiIpOwo+PiArfQo+Pgo+PiAtCWlmIChpbnRlbF9oZG1pX3NldF9lZGlkKGNvbm5l Y3RvciwgbGl2ZV9zdGF0dXMpKSB7Cj4+ICtzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1 cwo+PiAraW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rvciwg Ym9vbCBmb3JjZSkKPj4gK3sKPj4gKwllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsK Pj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPQo+PiArCQkJCXRv X2ludGVsX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+PiArCj4+ICsJRFJNX0RFQlVHX0tNUygiW0NP Tk5FQ1RPUjolZDolc11cbiIsCj4+ICsJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVj dG9yLT5uYW1lKTsKPj4gKwo+PiArCS8qCj4+ICsJICogVGhlcmUgYXJlIG1hbnkgdXNlcnNwYWNl IGNhbGxzIHdoaWNoIHByb2JlIEVESUQgZnJvbQo+PiArCSAqIGRldGVjdCBwYXRoLiBJbiBjYXNl IG9mIG11bHRpcGxlIGhvdHBsdWcvdW5wbHVnLCB0aGVzZQo+PiArCSAqIGNhbiBjYXVzZSByYWNl IGNvbmRpdGlvbnMgd2hpbGUgcHJvYmluZyBFRElELiBBbHNvIGl0cwo+PiArCSAqIHdhc3RlIG9m IENQVSBjeWNsZXMgdG8gcmVhZCB0aGUgRURJRCBhZ2FpbiBhbmQgYWdhaW4KPj4gKwkgKiB1bmxl c3MgdGhlcmUgaXMgYSByZWFsIGhvdHBsdWcuCj4+ICsJICogU28sIHJlbHkgb24gaG90cGx1Z3Mg YW5kIGluaXQgdG8gcmVhZCBlZGlkLgo+PiArCSAqIENoZWNrIGNvbm5lY3RvciBzdGF0dXMgYmFz ZWQgb24gYXZhaWxhYmlsaXR5IG9mIGNhY2hlZCBFRElELgo+PiArCSAqLwo+PiArCj4+ICsJaWYg KGludGVsX2Nvbm5lY3Rvci0+ZGV0ZWN0X2VkaWQpIHsKPj4gICAJCXN0cnVjdCBpbnRlbF9oZG1p ICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+Pgo+PiAgIAkJ aGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZS50eXBlID0gSU5URUxfT1VUUFVUX0hE TUk7Cj4+ICAgCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPj4gLQl9IGVs c2UKPj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiaGRtaSBzdGF0dXMgPSBjb25uZWN0ZWRcbiIpOwo+ PiArCX0gZWxzZSB7Cj4+ICAgCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3Rl ZDsKPj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiaGRtaSBzdGF0dXMgPSBkaXNjb25uZWN0ZWRcbiIp Owo+PiArCX0KPj4KPj4gICAJcmV0dXJuIHN0YXR1czsKPj4gICB9Cj4+IEBAIC0yMTMxLDYgKzIx NjIsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4+ICAgCWludGVsX2Nvbm5lY3Rvci0+dW5yZWdpc3Rl ciA9IGludGVsX2Nvbm5lY3Rvcl91bnJlZ2lzdGVyOwo+Pgo+PiAgIAlpbnRlbF9oZG1pX2FkZF9w cm9wZXJ0aWVzKGludGVsX2hkbWksIGNvbm5lY3Rvcik7Cj4+ICsJaW50ZWxfZW5jb2Rlci0+aG90 X3BsdWcgPSBpbnRlbF9oZG1pX2hvdF9wbHVnOwo+Pgo+PiAgIAlpbnRlbF9jb25uZWN0b3JfYXR0 YWNoX2VuY29kZXIoaW50ZWxfY29ubmVjdG9yLCBpbnRlbF9lbmNvZGVyKTsKPj4gICAJZHJtX2Nv bm5lY3Rvcl9yZWdpc3Rlcihjb25uZWN0b3IpOwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaG90cGx1Zy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaG90 cGx1Zy5jCj4+IGluZGV4IDUzYzAxNzMuLjM2ZTE2ZjYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2hvdHBsdWcuYwo+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9ob3RwbHVnLmMKPj4gQEAgLTQ1OSw2ICs0NTksNyBAQCB2b2lkIGludGVsX2hwZF9p bml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPj4gICAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGRldl9wcml2LT5kZXY7Cj4+ICAgCXN0cnVjdCBkcm1fbW9kZV9jb25maWcg Km1vZGVfY29uZmlnID0gJmRldi0+bW9kZV9jb25maWc7Cj4+ICAgCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3I7Cj4+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4+ICAg CWludCBpOwo+Pgo+PiAgIAlmb3JfZWFjaF9ocGRfcGluKGkpIHsKPj4gQEAgLTQ4Miw2ICs0ODMs MTYgQEAgdm9pZCBpbnRlbF9ocGRfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCj4+ICAgCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKQo+PiAgIAkJZGV2 X3ByaXYtPmRpc3BsYXkuaHBkX2lycV9zZXR1cChkZXYpOwo+PiAgIAlzcGluX3VubG9ja19pcnEo JmRldl9wcml2LT5pcnFfbG9jayk7Cj4+ICsKPj4gKwkvKgo+PiArCSAqIENvbm5lY3RlZCBib290 IC8gcmVzdW1lIHNjZW5hcmlvcyBjYW4ndCBnZW5lcmF0ZSBuZXcgaG90IHBsdWcuCj4+ICsJICog U28sIHByb2JlIGl0IG1hbnVhbGx5Lgo+PiArCSAqLwo+PiArCWxpc3RfZm9yX2VhY2hfZW50cnko ZW5jb2RlciwgJmRldi0+bW9kZV9jb25maWcuZW5jb2Rlcl9saXN0LAo+PiArCQkJICAgIGJhc2Uu aGVhZCkgewo+PiArCQlpZiAoZW5jb2Rlci0+aG90X3BsdWcpCj4+ICsJCQllbmNvZGVyLT5ob3Rf cGx1ZyhlbmNvZGVyKTsKPj4gKwl9Cj4KPiBTaW5jZSB0aGlzIGRvZXNuJ3QganVzdCBjaGFuZ2Ug aGRtaSBidXQgZXZlcnkgZW5jb2RlciBJIHRoaW5rIHdlIHNob3VsZAo+IHB1bGwgaXQgb3V0IGlu dG8gYSBzZXBhcmF0ZSBwcmVwIHBhdGNoLiBFc3BlY2lhbGx5IGludGVyYWN0aW9ucyB3aXRoIGRw Cj4gbXN0IGhhbmRsaW5nIGxvb2sgdHJpY2t5LCBoYXZlIHlvdSB0ZXN0ZWQgdGhhdCBub3RoaW5n IGJsb3dzIHVwIHdpdGggdGhhdD8KPiBUaGUgc3BsaXQtb3V0IHBhdGNoIHNob3VsZCBkZWZpbml0 ZWx5IGV4cGxhaW4gaW4gZGV0YWlsIGhvdyB0aGlzIGludGVyYWN0cwo+IHdpdGggZHAgaHBkIGhh bmRsaW5nLgo+IC1EYW5pZWwKPgpSaWdodCBub3cgd2UgZG9uJ3Qgc2V0IGhvdF9wbHVnIGZvciBE UC9lZHAgZW5jb2Rlci4KSXQgd2FzIHVzZWQgb25seSBmb3Igc2R2byBhbmQgd2l0aCB0aGlzIHBh dGNoIHdlIGFkZCBmb3IgaGRtaS4KQWxzbywgaW4gc2R2b19pbml0IHJpZ2h0IGFmdGVyIGFzc2ln bmluZyB0aGUgaG90X3BsdWcgZnVuY3Rpb24gcG9pbnRlciwgCndlIGNhbGwgaXRzIGhvdF9wbHVn IGZ1bmN0aW9uIGZvciBpbml0aWFsaXphdGlvbi4KTWF5YmUgd2l0aCB0aGlzIHBhdGNoLCB3ZSBj YW4gcmVtb3ZlIHRoYXQgcGFydCBhbHNvIGZyb20gc2R2b19pbml0LgoKSSBjYW4gc3BsaXQgdGhp cyBwYXRjaCBidXQgd2l0aG91dCB0aGlzIGNoYW5nZSwgaXQgd2lsbCByZXN1bHQgaW4gCnJlZ3Jl c3Npb24gd2l0aCBqdXN0IG9uZSBwYXRjaC4gU28gSSB0aG91Z2h0IGl0IHdvdWxkIGJlIGJldHRl ciB0byBrZWVwIAp0aGVtIHRvZ2V0aGVyIGluIG9uZSBwYXRjaC4KClJlZ2FyZHMsClNvbmlrYQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK