From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [PATCH v2 1/4] drm/msm/dpu: add atomic private object to dpu crtc Date: Tue, 05 Mar 2019 11:34:48 -0800 Message-ID: References: <1550109142-28303-1-git-send-email-jsanka@codeaurora.org> <1550109142-28303-2-git-send-email-jsanka@codeaurora.org> <20190304213241.GD114153@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190304213241.GD114153@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Sean Paul Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gMjAxOS0wMy0wNCAxMzozMiwgU2VhbiBQYXVsIHdyb3RlOgo+IE9uIFdlZCwgRmViIDEzLCAy MDE5IGF0IDA1OjUyOjE5UE0gLTA4MDAsIEpleWt1bWFyIFNhbmthcmFuIHdyb3RlOgo+PiBTdWJj bGFzcyBkcm0gcHJpdmF0ZSBvYmplY3Qgc3RhdGUgZm9yIERQVSBmb3IgaGFuZGxpbmcgZHJpdmVy Cj4+IHNwZWNpZmljIGRhdGEuIEFkZHMgYXRvbWljIHByaXZhdGUgb2JqZWN0IHRvIGRwdSBjcnRj IHRvCj4+IHRyYWNrIGh3IHJlc291cmNlcyBwZXIgZGlzcGxheS4gUHJvdmlkZSBoZWxwZXIgZnVu Y3Rpb24gdG8KPj4gcmV0cmlldmUgRFBVIHByaXZhdGUgZGF0YSBmcm9tIGN1cnJlbnQgYXRvbWlj IHN0YXRlIGJlZm9yZQo+PiBhdG9taWMgc3dhcC4KPj4gCj4+IGNoYW5nZXMgaW4gdjI6Cj4+IAkt IHByaXZhdGUgb2JqZWN0cyBhcmUgbWFpbnRhaW5lZCBpbiBkcHVfY3J0YyBhcwo+PiAJICB0aGUg cmVzb3VyY2VzIGFyZSB0cmFja2VkIHBlciBkaXNwbGF5Cj4gCj4gU2VlbXMgbGlrZSB5b3UgY291 bGQganVzdCBzdG9yZSBpdCBpbiBjcnRjX3N0YXRlIGlmIGl0J3MgcGVyLWNydGM/Cj4gCklmIHlv dSBtZWFuIC0gIm5vIG5lZWQgZm9yIHByaXYgb2JqZWN0LCBtYWludGFpbiBpbiBjcnRjIHN0YXRl IiwgdGhhdAp3YXMgdGhlIG9yaWdpbmFsIHYxIGltcGxlbWVudGF0aW9uLiBCdXQgeW91IHByb3Bv c2VkIHRvIGhhdmUgdGhlbQp0cmFja2VkIGluIGEgcHJpdmF0ZSBvYmplY3Qgc2luY2UgSSBoYWQg dG8gdXNlIGNydGNfc3RhdGUgZm9yIHRyYWNraW5nCmludGVyZmFjZXMgdG9vIHdoaWNoIHdlcmUg bWFwcGVkIGluIGVuY29kZXJzLgoKSXQgbWFkZSBzZW5zZSBhcyB0aGUgcHJpdmF0ZSBvYmplY3Rz IG5vdCBib3VuZGVkIHRvIGFueSBEUk0gb2JqZWN0CmRvbWFpbiBhbmQgaXMgdGhlIGJlc3QgY2Fu ZGlkYXRlIHRvIHRyYWNrIHBlciBkaXNwbGF5IGFzc2lnbm1lbnRzLgpTbyB2MiBpbXBsZW1lbnRh dGlvbiBtb3ZlZCBhbGwgdGhlIFJNIGFzc2lnbm1lbnQgdG8gcHJpdmF0ZSBvYmplY3RzIApzdGF0 ZQphbmQgcHJvdmlkZWQgYW4gaW50ZXJmYWNlIGZvciBDUlRDIGFuZCBFbmNvZGVyIHRvIHF1ZXJ5 IGl0cyBkb21haW4Kc3BlY2lmaWMgaHcgYmxvY2tzLgoKdjE6IGh0dHBzOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9wYXRjaC8yNTU0NTIvCgpUaGFua3MgYW5kIFJlZ2FyZHMsCkpleWt1bWFy IFMuCgoKPiBTZWFuCj4gCj4+IAo+PiBTaWduZWQtb2ZmLWJ5OiBKZXlrdW1hciBTYW5rYXJhbiA8 anNhbmthQGNvZGVhdXJvcmEub3JnPgo+PiAtLS0KPj4gIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9jcnRjLmggfCAgMyArKwo+PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2ttcy5jICB8IDY0Cj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPj4g IGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMuaCAgfCAxNSArKysrKysrKwo+ PiAgMyBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCj4+IAo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+ IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+PiBpbmRleCBlNTlk NjJiLi5iZTA3NTU0IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5oCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmgKPj4gQEAgLTE0MSw2ICsxNDEsNyBAQCBzdHJ1Y3QgZHB1X2NydGNfZnJhbWVfZXZlbnQg ewo+PiAgICogQGZyYW1lX3BlbmRpbmcgOiBXaGV0aGVyIG9yIG5vdCBhbiB1cGRhdGUgaXMgcGVu ZGluZwo+PiAgICogQGZyYW1lX2V2ZW50cyAgOiBzdGF0aWMgYWxsb2NhdGlvbiBvZiBpbi1mbGln aHQgZnJhbWUgZXZlbnRzCj4+ICAgKiBAZnJhbWVfZXZlbnRfbGlzdCA6IGF2YWlsYWJsZSBmcmFt ZSBldmVudCBsaXN0Cj4+ICsgKiBAcHJpdl9vYmoJICA6IHByaXZhdGUgc3RhdGUgb2JqZWN0IHRv IHRyYWNrIGh3IHJlc291cmNlcwo+PiAgICogQHNwaW5fbG9jayAgICAgOiBzcGluIGxvY2sgZm9y IGZyYW1lIGV2ZW50LCB0cmFuc2FjdGlvbiBzdGF0dXMsCj4gZXRjLi4uCj4+ICAgKiBAZnJhbWVf ZG9uZV9jb21wICAgIDogZm9yIGZyYW1lX2V2ZW50X2RvbmUgc3luY2hyb25pemF0aW9uCj4+ICAg KiBAZXZlbnRfdGhyZWFkICA6IFBvaW50ZXIgdG8gZXZlbnQgaGFuZGxlciB0aHJlYWQKPj4gQEAg LTE3Niw2ICsxNzcsOCBAQCBzdHJ1Y3QgZHB1X2NydGMgewo+PiAgCXNwaW5sb2NrX3Qgc3Bpbl9s b2NrOwo+PiAgCXN0cnVjdCBjb21wbGV0aW9uIGZyYW1lX2RvbmVfY29tcDsKPj4gCj4+ICsJc3Ry dWN0IGRybV9wcml2YXRlX29iaiBwcml2X29iajsKPj4gKwo+PiAgCS8qIGZvciBoYW5kbGluZyBp bnRlcm5hbCBldmVudCB0aHJlYWQgKi8KPj4gIAlzcGlubG9ja190IGV2ZW50X2xvY2s7Cj4+IAo+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2ttcy5jCj4g Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmMKPj4gaW5kZXggODg1YmY4 OC4uMTY3Nzg2MiAxMDA2NDQKPj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2ttcy5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9rbXMu Ywo+PiBAQCAtNDU5LDYgKzQ1OSw0OSBAQCBzdGF0aWMgaW50IF9kcHVfa21zX3NldHVwX2Rpc3Bs YXlzKHN0cnVjdAo+IGRybV9kZXZpY2UgKmRldiwKPj4gIAlyZXR1cm4gX2RwdV9rbXNfaW5pdGlh bGl6ZV9kc2koZGV2LCBwcml2LCBkcHVfa21zKTsKPj4gIH0KPj4gCj4+ICtzdHJ1Y3QgZHB1X3By aXZhdGVfc3RhdGUgKmRwdV9nZXRfcHJpdmF0ZV9zdGF0ZShzdHJ1Y3QgCj4+IGRybV9hdG9taWNf c3RhdGUKPiAqc3RhdGUsCj4+ICsJCQkJCQlzdHJ1Y3QgZHB1X2NydGMgKmNydGMpCj4+ICt7Cj4+ ICsJc3RydWN0IGRybV9wcml2YXRlX3N0YXRlICpwcml2X3N0YXRlOwo+PiArCj4+ICsJcHJpdl9z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X3ByaXZhdGVfb2JqX3N0YXRlKHN0YXRlLAo+ICZjcnRjLT5w cml2X29iaik7Cj4+ICsJaWYgKElTX0VSUihwcml2X3N0YXRlKSkKPj4gKwkJcmV0dXJuIEVSUl9Q VFIoLUVOT01FTSk7Cj4+ICsKPj4gKwlyZXR1cm4gY29udGFpbmVyX29mKHByaXZfc3RhdGUsIHN0 cnVjdCBkcHVfcHJpdmF0ZV9zdGF0ZSwgYmFzZSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1 Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKgo+PiArZHB1X3ByaXZhdGVfb2JqX2R1cGxpY2F0ZV9zdGF0 ZShzdHJ1Y3QgZHJtX3ByaXZhdGVfb2JqICpvYmopCj4+ICt7Cj4+ICsJc3RydWN0IGRwdV9wcml2 YXRlX3N0YXRlICpkcHVfcHJpdl9zdGF0ZTsKPj4gKwo+PiArCWRwdV9wcml2X3N0YXRlID0ga21l bWR1cChvYmotPnN0YXRlLCBzaXplb2YoKmRwdV9wcml2X3N0YXRlKSwKPj4gKwkJCQkgR0ZQX0tF Uk5FTCk7Cj4+ICsJaWYgKCFkcHVfcHJpdl9zdGF0ZSkKPj4gKwkJcmV0dXJuIE5VTEw7Cj4+ICsK Pj4gKwlfX2RybV9hdG9taWNfaGVscGVyX3ByaXZhdGVfb2JqX2R1cGxpY2F0ZV9zdGF0ZShvYmos Cj4+ICsKPiAmZHB1X3ByaXZfc3RhdGUtPmJhc2UpOwo+PiArCj4+ICsJcmV0dXJuICZkcHVfcHJp dl9zdGF0ZS0+YmFzZTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgZHB1X3ByaXZhdGVfb2Jq X2Rlc3Ryb3lfc3RhdGUoc3RydWN0IGRybV9wcml2YXRlX29iaiAKPj4gKm9iaiwKPj4gKwkJCQkg ICAgICBzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgKnN0YXRlKQo+PiArewo+PiArCXN0cnVjdCBk cHVfcHJpdmF0ZV9zdGF0ZSAqZHB1X3ByaXZfc3RhdGUgPSBjb250YWluZXJfb2Yoc3RhdGUsCj4+ ICsJCQkJCQkgICAgICBzdHJ1Y3QKPiBkcHVfcHJpdmF0ZV9zdGF0ZSwKPj4gKwkJCQkJCSAgICAg IGJhc2UpOwo+PiArCj4+ICsJa2ZyZWUoZHB1X3ByaXZfc3RhdGUpOwo+PiArfQo+PiArCj4+ICtz dGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcml2YXRlX3N0YXRlX2Z1bmNzIHByaXZfb2JqX2Z1bmNz ID0gewo+PiArCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gZHB1X3ByaXZhdGVfb2JqX2R1cGxp Y2F0ZV9zdGF0ZSwKPj4gKwkuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcHVfcHJpdmF0ZV9vYmpf ZGVzdHJveV9zdGF0ZSwKPj4gK307Cj4+ICsKPj4gIHN0YXRpYyB2b2lkIF9kcHVfa21zX2RybV9v YmpfZGVzdHJveShzdHJ1Y3QgZHB1X2ttcyAqZHB1X2ttcykKPj4gIHsKPj4gIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2Owo+PiBAQCAtNDc2LDggKzUxOSwxMiBAQCBzdGF0aWMgdm9pZCBf ZHB1X2ttc19kcm1fb2JqX2Rlc3Ryb3koc3RydWN0IAo+PiBkcHVfa21zCj4gKmRwdV9rbXMpCj4+ ICAJfQo+PiAgCXByaXYgPSBkcHVfa21zLT5kZXYtPmRldl9wcml2YXRlOwo+PiAKPj4gLQlmb3Ig KGkgPSAwOyBpIDwgcHJpdi0+bnVtX2NydGNzOyBpKyspCj4+ICsJZm9yIChpID0gMDsgaSA8IHBy aXYtPm51bV9jcnRjczsgaSsrKSB7Cj4+ICsJCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGMgPSB0 b19kcHVfY3J0Yyhwcml2LT5jcnRjc1tpXSk7Cj4+ICsKPj4gKwkJZHJtX2F0b21pY19wcml2YXRl X29ial9maW5pKCZkcHVfY3J0Yy0+cHJpdl9vYmopOwo+PiAgCQlwcml2LT5jcnRjc1tpXS0+ZnVu Y3MtPmRlc3Ryb3kocHJpdi0+Y3J0Y3NbaV0pOwo+PiArCX0KPj4gIAlwcml2LT5udW1fY3J0Y3Mg PSAwOwo+PiAKPj4gIAlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+bnVtX3BsYW5lczsgaSsrKQo+PiBA QCAtNDk5LDYgKzU0Niw3IEBAIHN0YXRpYyBpbnQgX2RwdV9rbXNfZHJtX29ial9pbml0KHN0cnVj dCBkcHVfa21zCj4gKmRwdV9rbXMpCj4+ICAJc3RydWN0IGRybV9wbGFuZSAqcHJpbWFyeV9wbGFu ZXNbTUFYX1BMQU5FU10sICpwbGFuZTsKPj4gIAlzdHJ1Y3QgZHJtX3BsYW5lICpjdXJzb3JfcGxh bmVzW01BWF9QTEFORVNdID0geyBOVUxMIH07Cj4+ICAJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ PiArCXN0cnVjdCBkcHVfcHJpdmF0ZV9zdGF0ZSAqZHB1X3ByaXZfc3RhdGU7Cj4+IAo+PiAgCXN0 cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXY7Cj4+ICAJc3RydWN0IGRwdV9tZHNzX2NmZyAqY2F0 YWxvZzsKPj4gQEAgLTU2MCwxMSArNjA4LDI1IEBAIHN0YXRpYyBpbnQgX2RwdV9rbXNfZHJtX29i al9pbml0KHN0cnVjdCBkcHVfa21zCj4gKmRwdV9rbXMpCj4+IAo+PiAgCS8qIENyZWF0ZSBvbmUg Q1JUQyBwZXIgZW5jb2RlciAqLwo+PiAgCWZvciAoaSA9IDA7IGkgPCBtYXhfY3J0Y19jb3VudDsg aSsrKSB7Cj4+ICsJCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Cj4+ICsKPj4gIAkJY3J0YyA9 IGRwdV9jcnRjX2luaXQoZGV2LCBwcmltYXJ5X3BsYW5lc1tpXSwKPiBjdXJzb3JfcGxhbmVzW2ld KTsKPj4gIAkJaWYgKElTX0VSUihjcnRjKSkgewo+PiAgCQkJcmV0ID0gUFRSX0VSUihjcnRjKTsK Pj4gIAkJCWdvdG8gZmFpbDsKPj4gIAkJfQo+PiArCj4+ICsJCWRwdV9jcnRjID0gdG9fZHB1X2Ny dGMoY3J0Yyk7Cj4+ICsKPj4gKwkJLyogSW5pdGlhbGl6ZSBwcml2YXRlIG9iaidzICovCj4+ICsJ CWRwdV9wcml2X3N0YXRlID0ga3phbGxvYyhzaXplb2YoKmRwdV9wcml2X3N0YXRlKSwKPiBHRlBf S0VSTkVMKTsKPj4gKwkJaWYgKCFkcHVfcHJpdl9zdGF0ZSkKPj4gKwkJCXJldHVybiAtRU5PTUVN Owo+PiArCj4+ICsJCWRybV9hdG9taWNfcHJpdmF0ZV9vYmpfaW5pdCgmZHB1X2NydGMtPnByaXZf b2JqLAo+PiArCQkJCQkgICAgJmRwdV9wcml2X3N0YXRlLT5iYXNlLAo+PiArCQkJCQkgICAgJnBy aXZfb2JqX2Z1bmNzKTsKPj4gKwo+PiAgCQlwcml2LT5jcnRjc1twcml2LT5udW1fY3J0Y3MrK10g PSBjcnRjOwo+PiAgCX0KPj4gCj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfa21zLmgKPiBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9r bXMuaAo+PiBpbmRleCBhYzc1Y2ZjLi4zZGVlZGZiIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfa21zLmgKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2ttcy5oCj4+IEBAIC0zMiw2ICszMiw4IEBACj4+ICAjaW5jbHVkZSAi ZHB1X3JtLmgiCj4+ICAjaW5jbHVkZSAiZHB1X2NvcmVfcGVyZi5oIgo+PiAKPj4gK3N0cnVjdCBk cHVfY3J0YzsKPj4gKwo+PiAgI2RlZmluZSBEUk1JRCh4KSAoKHgpID8gKHgpLT5iYXNlLmlkIDog LTEpCj4+IAo+PiAgLyoqCj4+IEBAIC0xMzYsNiArMTM4LDEwIEBAIHN0cnVjdCBkcHVfa21zIHsK Pj4gIAlzdHJ1Y3QgZHNzX21vZHVsZV9wb3dlciBtcDsKPj4gIH07Cj4+IAo+PiArc3RydWN0IGRw dV9wcml2YXRlX3N0YXRlIHsKPj4gKwlzdHJ1Y3QgZHJtX3ByaXZhdGVfc3RhdGUgYmFzZTsKPj4g K307Cj4+ICsKPj4gIHN0cnVjdCB2c3luY19pbmZvIHsKPj4gIAl1MzIgZnJhbWVfY291bnQ7Cj4+ ICAJdTMyIGxpbmVfY291bnQ7Cj4+IEBAIC0xNDMsNiArMTQ5LDE1IEBAIHN0cnVjdCB2c3luY19p bmZvIHsKPj4gCj4+ICAjZGVmaW5lIHRvX2RwdV9rbXMoeCkgY29udGFpbmVyX29mKHgsIHN0cnVj dCBkcHVfa21zLCBiYXNlKQo+PiAKPj4gKy8qKgo+PiArICogZHB1X2dldF9wcml2YXRlX3N0YXRl IC0gZ2V0IGRwdSBwcml2YXRlIHN0YXRlIGZyb20gYXRvbWljIHN0YXRlCj4+ICsgKiBAc3RhdGU6 IGRybSBhdG9taWMgc3RhdGUKPj4gKyAqIEBjcnRjOiBwb2ludGVyIHRvIGNydGMgb2JqCj4+ICsg KiBSZXR1cm46IHBvaW50ZXIgdG8gZHB1IHByaXZhdGUgc3RhdGUgb2JqZWN0Cj4+ICsgKi8KPj4g K3N0cnVjdCBkcHVfcHJpdmF0ZV9zdGF0ZSAqZHB1X2dldF9wcml2YXRlX3N0YXRlKHN0cnVjdCAK Pj4gZHJtX2F0b21pY19zdGF0ZQo+ICpzdGF0ZSwKPj4gKwkJCQkJCXN0cnVjdCBkcHVfY3J0YyAq Y3J0Yyk7Cj4+ICsKPj4gIC8qIGdldCBzdHJ1Y3QgbXNtX2ttcyAqIGZyb20gZHJtX2RldmljZSAq ICovCj4+ICAjZGVmaW5lIGRkZXZfdG9fbXNtX2ttcyhEKSAoKEQpICYmIChEKS0+ZGV2X3ByaXZh dGUgPyBcCj4+ICAJCSgoc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqKSgoRCktPmRldl9wcml2YXRl KSktPmttcyA6Cj4gTlVMTCkKPj4gLS0KPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVy LCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1cm9yYQo+IEZvcnVtLAo+PiBhIExpbnV4 IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cj4+IAo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+PiBGcmVlZHJlbm8gbWFpbGluZyBsaXN0 Cj4+IEZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4gaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJlbm8KCi0tIApKZXlrdW1hciBTCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBt YWlsaW5nIGxpc3QKRnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubw==