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: Thu, 10 Dec 2015 08:35:30 +0000 Message-ID: <000C66961D35964B9714611E548C10AD0C33767F@BGSMSX104.gar.corp.intel.com> References: <1449721825-24651-1-git-send-email-sonika.jindal@intel.com> <1449722741-24763-1-git-send-email-sonika.jindal@intel.com> <20151210082940.GT20822@phenom.ffwll.local> 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 65D2B6E755 for ; Thu, 10 Dec 2015 00:35:37 -0800 (PST) In-Reply-To: <20151210082940.GT20822@phenom.ffwll.local> Content-Language: en-US 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 U3VyZSwgSSB3aWxsIHN0YXJ0IGEgbmV3IHRocmVhZCBmb3IgdGhpcy4KClJlZ2FyZGluZyB0aGUg cmVncmVzc2lvbiwgc2luY2UgaXQgaXMgYSBzYW5keWJyaWRnZSBzeXN0ZW0sIEkgYW0gbm90IHN1 cmUgaWYgSSBjYW4gZGVidWcgaXQgYW55aG93IGJlY2F1c2Ugb2YgdGhlIHVuYXZhaWxhYmlsaXR5 IG9mIHRoZSBzeXN0ZW0uCkZvciB0aGUgbGl2ZSBzdGF0dXMgY2hlY2ssIHdlIGVhcmxpZXIgc3Vn Z2VzdGVkIHRvIHVzZSBwbGF0Zm9ybXMgZ2VuOCBhbmQgYWJvdmUuCkJ1dCBmb3Igd2lkZXIgdGVz dGluZywgd2UgcmVtb3ZlZCB0aGUgY2hlY2suCklmIHJlcXVpcmVkIHdlIGNhbiBhZGQgYSBjaGVj ayB0aGVyZS4KClJlZ2FyZHMsClNvbmlrYQoKLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0KRnJv bTogRGFuaWVsIFZldHRlciBbbWFpbHRvOmRhbmllbC52ZXR0ZXJAZmZ3bGwuY2hdIE9uIEJlaGFs ZiBPZiBEYW5pZWwgVmV0dGVyClNlbnQ6IFRodXJzZGF5LCBEZWNlbWJlciAxMCwgMjAxNSAyOjAw IFBNClRvOiBKaW5kYWwsIFNvbmlrYSA8c29uaWthLmppbmRhbEBpbnRlbC5jb20+CkNjOiBpbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClN1YmplY3Q6IFJlOiBbSW50ZWwtZ2Z4XSBbUEFU Q0hdIGRybS9pOTE1OiBBZGQgaG90X3BsdWcgaG9vayBmb3IgaGRtaSBlbmNvZGVyCgpPbiBUaHUs IERlYyAxMCwgMjAxNSBhdCAxMDoxNTo0MUFNICswNTMwLCBTb25pa2EgSmluZGFsIHdyb3RlOgo+ IEZyb206IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiAKPiBU aGlzIHBhdGNoIGFkZHMgYSBzZXBhcmF0ZSBwcm9iZSBmdW5jdGlvbiBmb3IgSERNSSBFRElEIHJl YWQgb3ZlciBEREMgCj4gY2hhbm5lbC4gVGhpcyBmdW5jdGlvbiBoYXMgYmVlbiByZWdpc3RlcmVk IGFzIGEgLmhvdF9wbHVnIGhhbmRsZXIgZm9yIAo+IEhETUkgZW5jb2Rlci4KPiAKPiBUaGUgY3Vy cmVudCBpbXBsZW1lbnRhdGlvbiBvZiBoZG1pX2RldGVjdCgpIGZ1bmN0aW9uIHJlLXNldHMgdGhl IAo+IGNhY2hlZCBIRE1JIGVkaWQgKGluIGNvbm5lY3Rvci0+ZGV0ZWN0X2VkaWQpIGluIGV2ZXJ5 IGRldGVjdCBjYWxsLlRoaXMgCj4gZnVuY3Rpb24gZ2V0cyBjYWxsZWQgbWFueSB0aW1lcywgc29t ZXRpbWVzIGRpcmVjdGx5IGZyb20gdXNlcnNwYWNlIAo+IHByb2JlcywgZm9yY2luZyBkcml2ZXJz IHRvIHJlYWQgRURJRCBldmVyeSBkZXRlY3QgZnVuY3Rpb24gY2FsbC5UaGlzIAo+IGNhdXNlcyBz ZXZlcmFsIHByb2JsZW1zIGxpa2U6Cj4gCj4gMS4gUmFjZSBjb25kaXRpb25zIGluIG11bHRpcGxl IGhvdF9wbHVnIC8gdW5wbHVnIGNhc2VzLCBiZXR3ZWVuCj4gICAgaW50ZXJydXB0cyBib3R0b20g aGFsdmVzIGFuZCB1c2Vyc3BhY2UgZGV0ZWN0aW9ucy4KPiAyLiBNYW55IFVuLW5lY2Vzc2FyeSBF RElEIHJlYWRzIGZvciBzaW5nbGUgaG90cGx1Zy91bnBsdWcgMy4gSERNSSAKPiBjb21wbGFpbmNl IGZhaWx1cmVzIHdoaWNoIGV4cGVjdHMgb25seSBvbmUgRURJRCByZWFkIHBlciBob3RwbHVnCj4g Cj4gVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHNlcnZpbmcgdGhlIHB1cnBvc2Ugb2YgcmVhbGx5IHJl YWRpbmcgdGhlIEVESUQgCj4gYnkgcmVhbGx5IHByb2JpbmcgdGhlIEREQyBjaGFubmVsLCBhbmQg dXBkYXRpbmcgdGhlIGNhY2hlZCBFRElELgo+IAo+IFRoZSBwbGFuIGlzIHRvOgo+IDEuIGk5MTUg SVJRIGhhbmRsZXIgYm90dG9tIGhhbGYgZnVuY3Rpb24gYWxyZWFkeSBjYWxscwo+ICAgIGludGVs X2VuY29kZXItPmhvdHBsdWcoKSBmdW5jdGlvbi4gQWRkaW5nIFRoaXMgcHJvYmUgZnVuY3Rpb24g d2hpY2gKPiAgICB3aWxsIHJlYWQgdGhlIEVESUQgb25seSBpbiBjYXNlIG9mIGEgaG90cGx1ZyAv IHVucGx1Zy4KPiAyLiBEdXJpbmcgaW5pdF9jb25uZWN0b3IgdGhpcyBwcm9iZSB3aWxsIGJlIGNh bGxlZCB0byByZWFkIHRoZSBlZGlkIDMuIAo+IFJldXNlIHRoZSBjYWNoZWQgRURJRCBpbiBoZG1p X2RldGVjdCgpIGZ1bmN0aW9uLgo+IAo+IFRoZSAiPCBnZW43IiBjaGVjayBpcyB0aGVyZSBiZWNh dXNlIHRoaXMgd2FzIHRlc3RlZCBvbmx5IGZvciA+PWdlbjcgCj4gcGxhdGZvcm1zLiBGb3Igb2xk ZXIgcGxhdGZvcm1zIHRoZSBob3RwbHVnL3JlYWRpbmcgZWRpZCBwYXRoIHJlbWFpbnMgc2FtZS4K PiAKPiB2MjogQ2FsbGluZyBzZXRfZWRpZCBpbnN0ZWFkIG9mIGhkbWlfcHJvYmUgZHVyaW5nIGlu aXQuCj4gQWxzbywgZm9yIHBsYXRmb3JtcyBoYXZpbmcgRERJLCBpbnRlbF9lbmNvZGVyIGZvciBE UCBhbmQgSERNSSBpcyBzYW1lIAo+ICh0YWtlbiBmcm9tIGludGVsX2RpZ19wb3J0KSwgc28gZm9y IERQIGFsc28sIGhvdF9wbHVnIGZ1bmN0aW9uIGdldHMgCj4gY2FsbGVkIHdoaWNoIGlzIG5vdCBp bnRlbmRlZCBoZXJlLiBTbywgY2hlY2sgZm9yIEhETUkgaW4gCj4gaW50ZWxfaGRtaV9wcm9iZSBS ZWx5IG9uIEhQRCBmb3IgdXBkYXRpbmcgZWRpZCBvbmx5IGZvciBwbGF0Zm9ybXMgZ2VuID4gOCBh bmQgYWxzbyBmb3IgVkxWLgo+IAo+IHYzOiBEcm9wcGluZyB0aGUgZ2VuIDwgOCB8fCAhVkxWICBj aGVjay4gTm93IGFsbCBwbGF0Zm9ybXMgc2hvdWxkIHJlbHkgCj4gb24gaG90cGx1ZyBvciBpbml0 IGZvciB1cGRhdGluZyB0aGUgZWRpZC4oRGFuaWVsKSBBbHNvLCBjYWxsaW5nIAo+IGhkbWlfcHJv YmUgaW4gaW5pdCBpbnN0ZWFkIG9mIHNldF9lZGlkCj4gCj4gdjQ6IFJlbmFtaW5nIGludGVsX2hk bWlfcHJvYmUgdG8gaW50ZWxfaGRtaV9ob3RfcGx1Zy4KPiBBbHNvIGNhbGxpbmcgdGhpcyBob3Rw bHVnIGhhbmRsZXIgZnJvbSBpbnRlbF9ocGRfaW5pdCB0byB0YWtlIGNhcmUgb2YgCj4gaW5pdCBy ZXN1bWUgc2NlbmFyaW9zLgo+IAo+IHY1OiBNb3ZlZCB0aGUgY2FsbCB0byBlbmNvZGVyIGhvdHBs dWcgZHVyaW5nIGluaXQgdG8gc2VwYXJhdGUgCj4gcGF0Y2goRGFuaWVsKQo+IHY2OiBSZWJhc2Vk IGFuZCBtYWludGFpbmluZyBhdXRob3JzaGlwLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5r IFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBTb25p a2EgSmluZGFsIDxzb25pa2EuamluZGFsQGludGVsLmNvbT4KCklpcmMgd2UgaGFkIHRvIHJldmVy dCBhbiBlYXJsaWVyIHZlcnNpb24gb2YgdGhpcy4gQ29tbWl0IG1lc3NhZ2Ugc2hvdWxkIGNpdGUg dGhhdCByZXZlcnQgYW5kIGV4cGxhaW4gd2h5IHRoaXMgdmVyc2lvbiBpcyBiZXR0ZXIuCgpBbHNv IGFmdGVyIGEgZmV3IGRheXMgcGxlYXNlIHN0YXJ0IGEgbmV3IHRocmVhZCB3aGVuIHJlc3VibWl0 dGluZyBhIHBhdGNoIHNlcmllcy4gVGhlIGlkZWEgYmVoaW5kIGluLXJlcGx5LXRvIGlzIHRvIGtl ZXAgdGhlIGRpc2N1c3Npb24gdG9nZXRoZXIgd2hpbGUgaXQncyBzdGlsbCBvbmdvaW5nLiBUaGF0 J3Mgbm90IHRoZSBjYXNlIHdoZW4gdGhlIGRpc2N1c3Npb24gaGFzIGRpZWQgZG93biBzaW5jZSB3 ZWVrcy4KCkFsc28sIHlvdXIgcGF0Y2ggdG8gdGFrZSBocGQgc2Vuc2UgaW50byBhY2NvdW50IGZv ciBoZG1pIGRldGVjdGlvbiBoYXMgY2F1c2VzIGEgcmVncmVzc2lvbi4gWW91ciBvbiB0aGUgY2Mu IEhhbmRsaW5nIHRoYXQgcmVncmVzc2lvbiBuZWVkcyB0byBiZSBhYnNvbHV0ZSB0b3AgcHJpb3Jp dHkgKG90aGVyd2lzZSBJIG5lZWQgdG8gcmV2ZXJ0IHRoYXQgcGF0Y2ggdG9vKS4KClRoYW5rcywg RGFuaWVsCgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgfCA1OCAK PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5n ZWQsIDQ1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgCj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9oZG1pLmMKPiBpbmRleCBiZGQ0NjJlLi4xNmRkMmE3IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYwo+IEBAIC0xMzgxLDE4ICsxMzgxLDE2IEBAIGludGVsX2hkbWlfc2V0 X2VkaWQoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCXJl dHVybiBjb25uZWN0ZWQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyBlbnVtIGRybV9jb25uZWN0b3Jfc3Rh dHVzCj4gLWludGVsX2hkbWlfZGV0ZWN0KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is IGJvb2wgZm9yY2UpCj4gK3ZvaWQgaW50ZWxfaGRtaV9ob3RfcGx1ZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqaW50ZWxfZW5jb2RlcikKPiAgewo+IC0JZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBz dGF0dXM7Cj4gLQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGludGVsX2F0dGFjaGVk X2hkbWkoY29ubmVjdG9yKTsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY29ubmVjdG9yLT5kZXYpOwo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hk bWkgPQo+ICsJCQllbmNfdG9faW50ZWxfaGRtaSgmaW50ZWxfZW5jb2Rlci0+YmFzZSk7Cj4gKwlz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IgPQo+ICsJCQkJaW50ZWxfaGRt aS0+YXR0YWNoZWRfY29ubmVjdG9yOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gCj4gK3RvX2k5MTUoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJYm9vbCBsaXZl X3N0YXR1cyA9IGZhbHNlOwo+ICAJdW5zaWduZWQgaW50IHJldHJ5ID0gMzsKPiAgCj4gLQlEUk1f REVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiAtCQkgICAgICBjb25uZWN0b3ItPmJh c2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7Cj4gLQo+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQo ZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9HTUJVUyk7Cj4gIAo+ICAJd2hpbGUgKCFsaXZlX3N0YXR1 cyAmJiAtLXJldHJ5KSB7Cj4gQEAgLTE0MDAsMjEgKzEzOTgsNTMgQEAgaW50ZWxfaGRtaV9kZXRl Y3Qoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCQkJCWhk bWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSkpOwo+ICAJCW1kZWxheSgxMCk7Cj4gIAl9Cj4gKwlp bnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0dNQlVTKTsKPiAg Cj4gIAlpZiAoIWxpdmVfc3RhdHVzKQo+ICAJCURSTV9ERUJVR19LTVMoIkxpdmUgc3RhdHVzIG5v dCB1cCEiKTsKPiAgCj4gLQlpbnRlbF9oZG1pX3Vuc2V0X2VkaWQoY29ubmVjdG9yKTsKPiArCS8q Cj4gKwkgKiBXZSBhcmUgaGVyZSwgbWVhbnMgdGhlcmUgaXMgYSBob3RwbHVnIG9yIGEgZm9yY2UK PiArCSAqIGRldGVjdGlvbi4gQ2xlYXIgdGhlIGNhY2hlZCBFRElEIGFuZCBwcm9iZSB0aGUKPiAr CSAqIEREQyBidXMgdG8gY2hlY2sgdGhlIGN1cnJlbnQgc3RhdHVzIG9mIEhETUkuCj4gKwkgKi8K PiArCWludGVsX2hkbWlfdW5zZXRfZWRpZCgmaW50ZWxfY29ubmVjdG9yLT5iYXNlKTsKPiArCWlm IChpbnRlbF9oZG1pX3NldF9lZGlkKCZpbnRlbF9jb25uZWN0b3ItPmJhc2UsIGxpdmVfc3RhdHVz KSkKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJEREMgcHJvYmU6IGdvdCBFRElEXG4iKTsKPiArCWVs c2UKPiArCQlEUk1fREVCVUdfRFJJVkVSKCJEREMgcHJvYmU6IG5vIEVESURcbiIpOyB9Cj4gKwo+ ICtzdGF0aWMgZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cwo+ICtpbnRlbF9oZG1pX2RldGVjdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKSB7Cj4gKwllbnVtIGRy bV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKPiArCXN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmlu dGVsX2Nvbm5lY3RvciA9Cj4gKwkJCQl0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAg Cj4gLQlpZiAoaW50ZWxfaGRtaV9zZXRfZWRpZChjb25uZWN0b3IsIGxpdmVfc3RhdHVzKSkgewo+ ICsJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RPUjolZDolc11cbiIsCj4gKwkJICAgICAgY29ubmVj dG9yLT5iYXNlLmlkLCBjb25uZWN0b3ItPm5hbWUpOwo+ICsKPiArCS8qCj4gKwkgKiBUaGVyZSBh cmUgbWFueSB1c2Vyc3BhY2UgY2FsbHMgd2hpY2ggcHJvYmUgRURJRCBmcm9tCj4gKwkgKiBkZXRl Y3QgcGF0aC4gSW4gY2FzZSBvZiBtdWx0aXBsZSBob3RwbHVnL3VucGx1ZywgdGhlc2UKPiArCSAq IGNhbiBjYXVzZSByYWNlIGNvbmRpdGlvbnMgd2hpbGUgcHJvYmluZyBFRElELiBBbHNvIGl0cwo+ ICsJICogd2FzdGUgb2YgQ1BVIGN5Y2xlcyB0byByZWFkIHRoZSBFRElEIGFnYWluIGFuZCBhZ2Fp bgo+ICsJICogdW5sZXNzIHRoZXJlIGlzIGEgcmVhbCBob3RwbHVnLgo+ICsJICogU28sIHJlbHkg b24gaG90cGx1Z3MgYW5kIGluaXQgdG8gcmVhZCBlZGlkLgo+ICsJICogQ2hlY2sgY29ubmVjdG9y IHN0YXR1cyBiYXNlZCBvbiBhdmFpbGFiaWxpdHkgb2YgY2FjaGVkIEVESUQuCj4gKwkgKi8KPiAr Cj4gKwlpZiAoaW50ZWxfY29ubmVjdG9yLT5kZXRlY3RfZWRpZCkgewo+ICAJCXN0cnVjdCBpbnRl bF9oZG1pICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3IpOwo+ICAK PiAgCQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpLT5iYXNlLnR5cGUgPSBJTlRFTF9PVVRQ VVRfSERNSTsKPiAgCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsKPiAtCX0g ZWxzZQo+ICsJCURSTV9ERUJVR19EUklWRVIoImhkbWkgc3RhdHVzID0gY29ubmVjdGVkXG4iKTsK PiArCX0gZWxzZSB7Cj4gIAkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7 Cj4gLQo+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9H TUJVUyk7Cj4gKwkJRFJNX0RFQlVHX0RSSVZFUigiaGRtaSBzdGF0dXMgPSBkaXNjb25uZWN0ZWRc biIpOwo+ICsJfQo+ICAKPiAgCXJldHVybiBzdGF0dXM7Cj4gIH0KPiBAQCAtMjEzMSw2ICsyMTYx LDggQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCAKPiBpbnRlbF9kaWdp dGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAKPiAgCWludGVsX2hkbWlfYWRkX3Byb3BlcnRp ZXMoaW50ZWxfaGRtaSwgY29ubmVjdG9yKTsKPiAgCj4gKwlpbnRlbF9lbmNvZGVyLT5ob3RfcGx1 ZyA9IGludGVsX2hkbWlfaG90X3BsdWc7Cj4gKwo+ICAJaW50ZWxfY29ubmVjdG9yX2F0dGFjaF9l bmNvZGVyKGludGVsX2Nvbm5lY3RvciwgaW50ZWxfZW5jb2Rlcik7Cj4gIAlkcm1fY29ubmVjdG9y X3JlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gIAlpbnRlbF9oZG1pLT5hdHRhY2hlZF9jb25uZWN0b3Ig PSBpbnRlbF9jb25uZWN0b3I7Cj4gLS0KPiAxLjkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IElu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLQpEYW5pZWwgVmV0dGVyClNvZnR3YXJl IEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=