From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ramalingam C Subject: Re: [PATCH v3 03/10] drm/i915: Attach content type property Date: Wed, 27 Mar 2019 19:09:12 +0530 Message-ID: <20190327133912.GD3905@intel.com> References: <20190322004448.14045-1-ramalingam.c@intel.com> <20190322004448.14045-4-ramalingam.c@intel.com> <20190327100017.GA2665@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190327100017.GA2665@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: daniel.vetter@ffwll.ch, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gMjAxOS0wMy0yNyBhdCAxMTowMDoxNyArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBP biBGcmksIE1hciAyMiwgMjAxOSBhdCAwNjoxNDo0MUFNICswNTMwLCBSYW1hbGluZ2FtIEMgd3Jv dGU6Cj4gPiBBdHRhY2hlcyB0aGUgY29udGVudCB0eXBlIHByb3BlcnR5IGZvciBIRENQMi4yIGNh cGFibGUgY29ubmVjdG9ycy4KPiA+IAo+ID4gSW1wbGVtZW50cyB0aGUgdXBkYXRlIG9mIGNvbnRl bnQgdHlwZSBmcm9tIHByb3BlcnR5IGFuZCBhcHBseSB0aGUKPiA+IHJlc3RyaWN0aW9uIG9uIEhE Q1AgdmVyc2lvbiBzZWxlY3Rpb24uCj4gPiAKPiA+IHYyOgo+ID4gICBzL2NwX2NvbnRlbnRfdHlw ZS9jb250ZW50X3Byb3RlY3Rpb25fdHlwZSBbZGFuaWVsXQo+ID4gICBkaXNhYmxlIGF0IGhkY3Bf YXRvbWljX2NoZWNrIHRvIGF2b2lkIGNoZWNrIGF0IGF0b21pY19zZXRfcHJvcGVydHkKPiA+IAlb TWFhcnRlbl0KPiA+IHYzOgo+ID4gICBzL2NvbnRlbnRfcHJvdGVjdGlvbl90eXBlL2hkY3BfY29u dGVudF90eXBlIFtQZWtrYV0KPiA+IAo+ID4gU2lnbmVkLW9mZi1ieTogUmFtYWxpbmdhbSBDIDxy YW1hbGluZ2FtLmNAaW50ZWwuY29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGRpLmMgIHwgMjEgKysrKysrKysrKysrKysrLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggIHwgIDIgKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZGNwLmMgfCAzMCArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0KPiA+ICAzIGZp bGVzIGNoYW5nZWQsIDQxIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gaW5kZXggOTMzZGYzYTU3YThhLi40Mzg1OWYxMjZi ODIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC0zNDk1LDcgKzM0 OTUsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9lbmFibGVfZGRpKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gIAkvKiBFbmFibGUgaGRjcCBpZiBpdCdzIGRlc2lyZWQgKi8KPiA+ICAJ aWYgKGNvbm5fc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbiA9PQo+ID4gIAkgICAgRFJNX01PREVf Q09OVEVOVF9QUk9URUNUSU9OX0RFU0lSRUQpCj4gPiAtCQlpbnRlbF9oZGNwX2VuYWJsZSh0b19p bnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKSk7Cj4gPiArCQlpbnRlbF9oZGNw X2VuYWJsZSh0b19pbnRlbF9jb25uZWN0b3IoY29ubl9zdGF0ZS0+Y29ubmVjdG9yKSwKPiA+ICsJ CQkJICAodTgpY29ubl9zdGF0ZS0+aGRjcF9jb250ZW50X3R5cGUpOwo+ID4gIH0KPiA+ICAKPiA+ ICBzdGF0aWMgdm9pZCBpbnRlbF9kaXNhYmxlX2RkaV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlciwKPiA+IEBAIC0zNTU4LDIxICszNTU5LDI5IEBAIHN0YXRpYyB2b2lkIGludGVsX2Rk aV91cGRhdGVfcGlwZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJaW50 ZWxfcGFuZWxfdXBkYXRlX2JhY2tsaWdodChlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRl KTsKPiA+ICB9Cj4gPiAgCj4gPiAtc3RhdGljIHZvaWQgaW50ZWxfZGRpX3VwZGF0ZV9waXBlKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV91 cGRhdGVfaGRjcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkJICBjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ICAJCQkJICBjb25zdCBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAKPiBOb3Qgc3VyZSB3aHkg eW91IHNwbGl0IHRoaXMgb3V0LCBkb2Vzbid0IGZlZWwgbmVjZXNzYXJ5IC4uLgp0aGlzIHdhcyBn cm93aW5nIGNvbnNpZGVyaW5nLCB3aXRoIHNvbWUgYWN0aXZpdHkgYmFzZWQgb24gdGhlIHR5cGUg c3RhdGUKYWxvbmcgd2l0aCBjb250ZW50IHByb3RlY3Rpb24gc3RhdGUuIE5vdCBpbiB0aGlzIHZl cnNpb24uIEkgd2lsbCBtZXJnZQppbiB0aGUgZGRpX3VwZGF0ZV9waXBlIG9ubHkuCj4gCj4gPiAg ewo+ID4gLQlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVU X0hETUkpKQo+ID4gLQkJaW50ZWxfZGRpX3VwZGF0ZV9waXBlX2RwKGVuY29kZXIsIGNydGNfc3Rh dGUsIGNvbm5fc3RhdGUpOwo+ID4gLQo+ID4gIAlpZiAoY29ubl9zdGF0ZS0+Y29udGVudF9wcm90 ZWN0aW9uID09Cj4gPiAgCSAgICBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRCkK PiA+IC0JCWludGVsX2hkY3BfZW5hYmxlKHRvX2ludGVsX2Nvbm5lY3Rvcihjb25uX3N0YXRlLT5j b25uZWN0b3IpKTsKPiA+ICsJCWludGVsX2hkY3BfZW5hYmxlKHRvX2ludGVsX2Nvbm5lY3Rvcihj b25uX3N0YXRlLT5jb25uZWN0b3IpLAo+ID4gKwkJCQkgICh1OCljb25uX3N0YXRlLT5oZGNwX2Nv bnRlbnRfdHlwZSk7Cj4gPiAgCWVsc2UgaWYgKGNvbm5fc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlv biA9PQo+ID4gIAkJIERSTV9NT0RFX0NPTlRFTlRfUFJPVEVDVElPTl9VTkRFU0lSRUQpCj4gPiAg CQlpbnRlbF9oZGNwX2Rpc2FibGUodG9faW50ZWxfY29ubmVjdG9yKGNvbm5fc3RhdGUtPmNvbm5l Y3RvcikpOwo+ID4gIH0KPiA+ICAKPiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kZGlfdXBkYXRlX3Bp cGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiArCQkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiArCQkJCSAgY29uc3Qgc3RydWN0IGRy bV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gPiArewo+ID4gKwlpZiAoIWludGVsX2Ny dGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0hETUkpKQo+ID4gKwkJaW50ZWxf ZGRpX3VwZGF0ZV9waXBlX2RwKGVuY29kZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUpOwo+ID4g Kwo+ID4gKwlpbnRlbF9kZGlfdXBkYXRlX2hkY3AoZW5jb2RlciwgY3J0Y19zdGF0ZSwgY29ubl9z dGF0ZSk7Cj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2RkaV9zZXRfZmlhX2xh bmVfY291bnQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJCQkgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ID4gIAkJCQkJIGVudW0gcG9y dCBwb3J0KQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGEzN2E0NDc3OTk0 Yy4uZTM4N2U4NDJmNDE0IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBA QCAtMjE3OCw3ICsyMTc4LDcgQEAgdm9pZCBpbnRlbF9oZGNwX2F0b21pY19jaGVjayhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIAkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKm5ld19zdGF0ZSk7Cj4gPiAgaW50IGludGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2hk Y3Bfc2hpbSAqaGRjcF9zaGltKTsKPiA+IC1pbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiA+ICtpbnQgaW50ZWxfaGRjcF9lbmFibGUoc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1OCBjb250ZW50X3R5cGUpOwo+ID4gIGlu dCBpbnRlbF9oZGNwX2Rpc2FibGUoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsK PiA+ICBib29sIGlzX2hkY3Bfc3VwcG9ydGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+ID4gIGJvb2wgaW50ZWxfaGRjcF9jYXBhYmxlKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfaGRjcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRj cC5jCj4gPiBpbmRleCBmZjk0OTdlNWM1OTEuLjliNDkwNGE2Mjc0NCAxMDA2NDQKPiA+IC0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkY3AuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRjcC5jCj4gPiBAQCAtMTc4Miw2ICsxNzgyLDEzIEBAIHN0YXRpYyB2 b2lkIGludGVsX2hkY3AyX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ID4gIAkJcmV0dXJuOwo+ID4gIAl9Cj4gPiAgCj4gPiArCXJldCA9IGRybV9jb25uZWN0b3JfYXR0 YWNoX2hkY3BfY29udGVudF90eXBlX3Byb3BlcnR5KAo+ID4gKwkJCQkJCSZjb25uZWN0b3ItPmJh c2UpOwo+ID4gKwlpZiAocmV0KSB7Cj4gPiArCQlrZnJlZShoZGNwLT5wb3J0X2RhdGEuc3RyZWFt cyk7Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICsKPiA+ICAJaGRjcC0+aGRjcDJfc3VwcG9y dGVkID0gdHJ1ZTsKPiA+ICB9Cj4gPiAgCj4gPiBAQCAtMTgxMSw3ICsxODE4LDcgQEAgaW50IGlu dGVsX2hkY3BfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCXJl dHVybiAwOwo+ID4gIH0KPiA+ICAKPiA+IC1pbnQgaW50ZWxfaGRjcF9lbmFibGUoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gK2ludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHU4IGNvbnRlbnRfdHlwZSkKPiA+ICB7Cj4g PiAgCXN0cnVjdCBpbnRlbF9oZGNwICpoZGNwID0gJmNvbm5lY3Rvci0+aGRjcDsKPiA+ICAJdW5z aWduZWQgbG9uZyBjaGVja19saW5rX2ludGVydmFsID0gRFJNX0hEQ1BfQ0hFQ0tfUEVSSU9EX01T Owo+ID4gQEAgLTE4MjIsNiArMTgyOSw3IEBAIGludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCj4gPiAgCW11dGV4X2xvY2soJmhkY3At Pm11dGV4KTsKPiA+ICAJV0FSTl9PTihoZGNwLT52YWx1ZSA9PSBEUk1fTU9ERV9DT05URU5UX1BS T1RFQ1RJT05fRU5BQkxFRCk7Cj4gPiArCWhkY3AtPmNvbnRlbnRfdHlwZSA9IGNvbnRlbnRfdHlw ZTsKPiA+ICAKPiA+ICAJLyoKPiA+ICAJICogQ29uc2lkZXJpbmcgdGhhdCBIRENQMi4yIGlzIG1v cmUgc2VjdXJlIHRoYW4gSERDUDEuNCwgSWYgdGhlIHNldHVwCj4gPiBAQCAtMTgzMyw4ICsxODQx LDEyIEBAIGludCBpbnRlbF9oZGNwX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gPiAgCQkJY2hlY2tfbGlua19pbnRlcnZhbCA9IERSTV9IRENQMl9DSEVDS19QRVJJ T0RfTVM7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JLyogV2hlbiBIRENQMi4yIGZhaWxzLCBIRENQMS40 IHdpbGwgYmUgYXR0ZW1wdGVkICovCj4gPiAtCWlmIChyZXQgJiYgaW50ZWxfaGRjcF9jYXBhYmxl KGNvbm5lY3RvcikpIHsKPiA+ICsJLyoKPiA+ICsJICogV2hlbiBIRENQMi4yIGZhaWxzIGFuZCBD b250ZW50IFR5cGUgaXMgbm90IFR5cGUxLCBIRENQMS40IHdpbGwKPiA+ICsJICogYmUgYXR0ZW1w dGVkLgo+ID4gKwkgKi8KPiA+ICsJaWYgKHJldCAmJiBpbnRlbF9oZGNwX2NhcGFibGUoY29ubmVj dG9yKSAmJgo+ID4gKwkgICAgaGRjcC0+Y29udGVudF90eXBlICE9IERSTV9NT0RFX0hEQ1BfQ09O VEVOVF9UWVBFMSkgewo+ID4gIAkJcmV0ID0gX2ludGVsX2hkY3BfZW5hYmxlKGNvbm5lY3Rvcik7 Cj4gPiAgCX0KPiA+ICAKPiA+IEBAIC0xOTAxLDYgKzE5MTMsOCBAQCB2b2lkIGludGVsX2hkY3Bf YXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgewo+ID4g IAl1NjQgb2xkX2NwID0gb2xkX3N0YXRlLT5jb250ZW50X3Byb3RlY3Rpb247Cj4gPiAgCXU2NCBu ZXdfY3AgPSBuZXdfc3RhdGUtPmNvbnRlbnRfcHJvdGVjdGlvbjsKPiA+ICsJdTY0IG9sZF90eXBl ID0gb2xkX3N0YXRlLT5oZGNwX2NvbnRlbnRfdHlwZTsKPiA+ICsJdTY0IG5ld190eXBlID0gbmV3 X3N0YXRlLT5oZGNwX2NvbnRlbnRfdHlwZTsKPiA+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpj cnRjX3N0YXRlOwo+ID4gIAo+ID4gIAlpZiAoIW5ld19zdGF0ZS0+Y3J0Yykgewo+ID4gQEAgLTE5 MjAsOCArMTkzNCwxNCBAQCB2b2lkIGludGVsX2hkY3BfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCSAqLwo+ID4gIAlpZiAob2xkX2NwID09IG5ld19j cCB8fAo+ID4gIAkgICAgKG9sZF9jcCA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVT SVJFRCAmJgo+ID4gLQkgICAgIG5ld19jcCA9PSBEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05f RU5BQkxFRCkpCj4gPiAtCQlyZXR1cm47Cj4gPiArCSAgICAgbmV3X2NwID09IERSTV9NT0RFX0NP TlRFTlRfUFJPVEVDVElPTl9FTkFCTEVEKSkgewo+ID4gKwkJaWYgKG9sZF90eXBlID09IG5ld190 eXBlKQo+ID4gKwkJCXJldHVybjsKPiA+ICsKPiA+ICsJCW5ld19zdGF0ZS0+Y29udGVudF9wcm90 ZWN0aW9uID0KPiA+ICsJCQlEUk1fTU9ERV9DT05URU5UX1BST1RFQ1RJT05fREVTSVJFRDsKPiA+ ICsJCWludGVsX2hkY3BfZGlzYWJsZSh0b19pbnRlbF9jb25uZWN0b3IoY29ubmVjdG9yKSk7Cj4g Cj4gTm8gdG91Y2hpbmcgaHcgKG9yIGFueSBwZXJzaXN0ZW50IHN3IHN0YXRlIG91dHNpZGUgb2Yg dGhlIGZyZWUtc3RhbmRpbmcKPiBzdGF0ZSBzdHJ1Y3R1cmVzKSBmcm9tIGF0b21pY19jaGVjaywg ZXZlci4gQVRPTUlDX1RFU1RfT05MWSBpcyBpbXBsZW1lbnRlZAo+IGJ5IHJ1bm5pbmcgYXRvbWlj X2NoZWNrIGNvZGUsIGFuZCB0aGVuIHNpbXBseSByZWxlYXNpbmcgdGhlIGNvbXB1dGVkCj4gc3Rh dGUuIElmIHlvdSB0b3VjaCBody9zdyBzdGF0ZSwgdGhlbiB0aGF0J3Mgbm90IHVuZG9uZS4KPiAK PiBXZSBuZWVkIHRvIGludGVncmF0ZWQgdGhpcyBpbnRvIHRoZSBwaXBlX3VwZGF0ZSBmdW5jdGlv biBJIHRoaW5rLgpJIHRoaW5rIHdlIGNhbnQgcmV0cmlldmUgdGhlIG9sZCBjb25uIHN0YXRlIGF0 IGF0b21pYyBjb21taXQuIElmIG5vdCB3ZSBjYW4KY29tcGFyZSB0aGUgdHlwZSBpbiBjb25uX3N0 YXRlIHdpdGggY29ubi0+aGRjcC0+Y29udGVudF90eXBlIGFuZCB0YWtlCmFjdGlvbiBvZiByZWF1 dGhlbnRpY2F0aW9uLgoKLVJhbQo+IC1EYW5pZWwKPiAKPiA+ICsJfQo+ID4gIAo+ID4gIAljcnRj X3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUobmV3X3N0YXRlLT5zdGF0ZSwK PiA+ICAJCQkJCQkgICBuZXdfc3RhdGUtPmNydGMpOwo+ID4gLS0gCj4gPiAyLjE5LjEKPiA+IAo+ IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZng=