From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [DPU PATCH 10/11] drm/msm: Switch to atomic_helper_commit() Date: Mon, 12 Mar 2018 16:32:58 -0400 Message-ID: <20180312203258.GE223881@art_vandelay> References: <20180228191906.185417-1-seanpaul@chromium.org> <20180228191906.185417-11-seanpaul@chromium.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: abhinavk-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, linux-arm-msm-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, Sean Paul , hoegsberg-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org List-Id: linux-arm-msm@vger.kernel.org T24gVGh1LCBNYXIgMDgsIDIwMTggYXQgMDc6Mjg6MDhQTSAtMDgwMCwgYWJoaW5hdmtAY29kZWF1 cm9yYS5vcmcgd3JvdGU6Cj4gT24gMjAxOC0wMi0yOCAxMToxOSwgU2VhbiBQYXVsIHdyb3RlOgo+ ID4gTm93IHRoYXQgYWxsIG9mIHRoZSBtc20tc3BlY2lmaWMgZ29vIGlzIHR1Y2tlZCBzYWZlbHkg YXdheSB3ZSBjYW4gc3dpdGNoCj4gPiBvdmVyIHRvIHVzaW5nIHRoZSBhdG9taWMgaGVscGVyIGNv bW1pdCBkaXJlY3RseS4gXG8vCj4gPiAKPiBbQWJoaW5hdl0gQ2FuIHdlIHNheSBzb21ldGhpbmcg bGlrZSAiTW92ZSByZW1haW5pbmcgbXNtLXNwZWNpZmljIG9wZXJhdGlvbnMKPiB0byBwcml2YXRl IGhhbmRsZXMgYW5kIHN3aXRjaCB0byBhdG9taWMgaGVscGVyIGNvbW1pdCBmb3IgdGhlIHJlc3Qu CgpXZWxsLCB0byBiZSBwZWRhbnRpYywgdGhhdCdzIG5vdCB3aGF0J3MgaGFwcGVuaW5nIGluIHRo aXMgY2hhbmdlLiBUaGlzIGNoYW5nZQpzaW1wbHkgcmVwbGFjZXMgdGhlIG1zbSBhdG9taWMgb3Bz IHdpdGggdGhlIGdlbmVyaWMgaGVscGVyIG9wcywgd2hpY2ggYXJlCm5vdyBpZGVudGljYWwgZHVl IHRvIHRoZSBwcmVjZWRpbmcgOSBwYXRjaGVzLgoKU2VhbgoKPiAKPiA+IENoYW5nZS1JZDogSWVh YjBiZDBjNTI2YjJhOWQzYjMzNDVlZWJhNDAyYWM0ODU3ZmU0MTgKPiA+IFNpZ25lZC1vZmYtYnk6 IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9n cHUvZHJtL21zbS9tc21fYXRvbWljLmMgfCAxMjAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jICAgIHwgICA3ICstCj4gPiAg ZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmggICAgfCAgIDMgKy0KPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTIyIGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fYXRvbWljLmMKPiA+IGluZGV4IDIwNGM2NmNiZmQzMS4uOTFmZmRlZDU3NmQ4 IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fYXRvbWljLmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2F0b21pYy5jCj4gPiBAQCAtMTgsOCArMTgsNiBA QAo+ID4gCj4gPiAgI2luY2x1ZGUgIm1zbV9kcnYuaCIKPiA+ICAjaW5jbHVkZSAibXNtX2ttcy5o Igo+ID4gLSNpbmNsdWRlICJtc21fZ2VtLmgiCj4gPiAtI2luY2x1ZGUgIm1zbV9mZW5jZS5oIgo+ ID4gCj4gPiAgc3RhdGljIHZvaWQgbXNtX2F0b21pY193YWl0X2Zvcl9jb21taXRfZG9uZSgKPiA+ ICAJCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiBAQCAtMzksNyArMzcsNyBAQCBzdGF0aWMg dm9pZCBtc21fYXRvbWljX3dhaXRfZm9yX2NvbW1pdF9kb25lKAo+ID4gIAl9Cj4gPiAgfQo+ID4g Cj4gPiAtc3RhdGljIHZvaWQgbXNtX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4gPiArdm9pZCBtc21fYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBzdGF0ZS0+ZGV2Owo+ID4gIAlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiA+IEBAIC04MSwxMTkgKzc5LDMgQEAgc3RhdGljIHZvaWQgbXNtX2F0 b21pY19jb21taXRfdGFpbChzdHJ1Y3QKPiA+IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4g Cj4gPiAgCWttcy0+ZnVuY3MtPmNvbXBsZXRlX2NvbW1pdChrbXMsIHN0YXRlKTsKPiA+ICB9Cj4g PiAtCj4gPiAtLyogVGhlIChwb3RlbnRpYWxseSkgYXN5bmNocm9ub3VzIHBhcnQgb2YgdGhlIGNv bW1pdC4gIEF0IHRoaXMgcG9pbnQKPiA+IC0gKiBub3RoaW5nIGNhbiBmYWlsIHNob3J0IG9mIGFy bWFnZWRkb24uCj4gPiAtICovCj4gPiAtc3RhdGljIHZvaWQgY29tbWl0X3RhaWwoc3RydWN0IGRy bV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ID4gLXsKPiA+IC0JZHJtX2F0b21pY19oZWxwZXJfd2Fp dF9mb3JfZmVuY2VzKHN0YXRlLT5kZXYsIHN0YXRlLCBmYWxzZSk7Cj4gPiAtCj4gPiAtCWRybV9h dG9taWNfaGVscGVyX3dhaXRfZm9yX2RlcGVuZGVuY2llcyhzdGF0ZSk7Cj4gPiAtCj4gPiAtCW1z bV9hdG9taWNfY29tbWl0X3RhaWwoc3RhdGUpOwo+ID4gLQo+ID4gLQlkcm1fYXRvbWljX2hlbHBl cl9jb21taXRfY2xlYW51cF9kb25lKHN0YXRlKTsKPiA+IC0KPiA+IC0JZHJtX2F0b21pY19zdGF0 ZV9wdXQoc3RhdGUpOwo+ID4gLX0KPiA+IC0KPiA+IC1zdGF0aWMgdm9pZCBjb21taXRfd29yayhz dHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiAtewo+ID4gLQlzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUgPSBjb250YWluZXJfb2Yod29yaywKPiA+IC0JCQkJCQkgICAgICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSwKPiA+IC0JCQkJCQkgICAgICBjb21taXRfd29yayk7Cj4gPiAtCWNv bW1pdF90YWlsKHN0YXRlKTsKPiA+IC19Cj4gPiAtCj4gPiAtLyoqCj4gPiAtICogZHJtX2F0b21p Y19oZWxwZXJfY29tbWl0IC0gY29tbWl0IHZhbGlkYXRlZCBzdGF0ZSBvYmplY3QKPiA+IC0gKiBA ZGV2OiBEUk0gZGV2aWNlCj4gPiAtICogQHN0YXRlOiB0aGUgZHJpdmVyIHN0YXRlIG9iamVjdAo+ ID4gLSAqIEBub25ibG9jazogbm9uYmxvY2tpbmcgY29tbWl0Cj4gPiAtICoKPiA+IC0gKiBUaGlz IGZ1bmN0aW9uIGNvbW1pdHMgYSB3aXRoIGRybV9hdG9taWNfaGVscGVyX2NoZWNrKCkgcHJlLXZh bGlkYXRlZAo+ID4gc3RhdGUKPiA+IC0gKiBvYmplY3QuIFRoaXMgY2FuIHN0aWxsIGZhaWwgd2hl biBlLmcuIHRoZSBmcmFtZWJ1ZmZlciByZXNlcnZhdGlvbgo+ID4gZmFpbHMuCj4gPiAtICoKPiA+ IC0gKiBSRVRVUk5TCj4gPiAtICogWmVybyBmb3Igc3VjY2VzcyBvciAtZXJybm8uCj4gPiAtICov Cj4gPiAtaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAt CQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIGJvb2wgbm9uYmxvY2spCj4gPiAtewo+ ID4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ IC0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ID4gLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNy dGNfc3RhdGU7Cj4gPiAtCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ID4gLQlzdHJ1Y3QgZHJt X3BsYW5lX3N0YXRlICpvbGRfcGxhbmVfc3RhdGUsICpuZXdfcGxhbmVfc3RhdGU7Cj4gPiAtCWlu dCBpLCByZXQ7Cj4gPiAtCj4gPiAtCS8qCj4gPiAtCSAqIE5vdGUgdGhhdCBwbGFuZS0+YXRvbWlj X2FzeW5jX2NoZWNrKCkgc2hvdWxkIGZhaWwgaWYgd2UgbmVlZAo+ID4gLQkgKiB0byByZS1hc3Np Z24gaHdwaXBlIG9yIGFueXRoaW5nIHRoYXQgdG91Y2hlcyBnbG9iYWwgYXRvbWljCj4gPiAtCSAq IHN0YXRlLCBzbyB3ZSdsbCBuZXZlciBnbyBkb3duIHRoZSBhc3luYyB1cGRhdGUgcGF0aCBpbiB0 aG9zZQo+ID4gLQkgKiBjYXNlcy4KPiA+IC0JICovCj4gPiAtCWlmIChzdGF0ZS0+YXN5bmNfdXBk YXRlKSB7Cj4gPiAtCQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhkZXYs IHN0YXRlKTsKPiA+IC0JCWlmIChyZXQpCj4gPiAtCQkJcmV0dXJuIHJldDsKPiA+IC0KPiA+IC0J CWRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NvbW1pdChkZXYsIHN0YXRlKTsKPiA+IC0JCWRybV9h dG9taWNfaGVscGVyX2NsZWFudXBfcGxhbmVzKGRldiwgc3RhdGUpOwo+ID4gLQkJcmV0dXJuIDA7 Cj4gPiAtCX0KPiA+IC0KPiA+IC0JcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfc2V0dXBfY29tbWl0 KHN0YXRlLCBub25ibG9jayk7Cj4gPiAtCWlmIChyZXQpCj4gPiAtCQlyZXR1cm4gcmV0Owo+ID4g LQo+ID4gLQlJTklUX1dPUksoJnN0YXRlLT5jb21taXRfd29yaywgY29tbWl0X3dvcmspOwo+ID4g LQo+ID4gLQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9wcmVwYXJlX3BsYW5lcyhkZXYsIHN0YXRl KTsKPiA+IC0JaWYgKHJldCkKPiA+IC0JCXJldHVybiByZXQ7Cj4gPiAtCj4gPiAtCWlmICghbm9u YmxvY2spIHsKPiA+IC0JCXJldCA9IGRybV9hdG9taWNfaGVscGVyX3dhaXRfZm9yX2ZlbmNlcyhk ZXYsIHN0YXRlLCB0cnVlKTsKPiA+IC0JCWlmIChyZXQpCj4gPiAtCQkJZ290byBlcnJvcjsKPiA+ IC0JfQo+ID4gLQo+ID4gLQkvKgo+ID4gLQkgKiBUaGlzIGlzIHRoZSBwb2ludCBvZiBubyByZXR1 cm4gLSBldmVyeXRoaW5nIGJlbG93IG5ldmVyIGZhaWxzCj4gPiBleGNlcHQKPiA+IC0JICogd2hl biB0aGUgaHcgZ29lcyBib25naGl0cy4gV2hpY2ggbWVhbnMgd2UgY2FuIGNvbW1pdCB0aGUgbmV3 IHN0YXRlCj4gPiBvbgo+ID4gLQkgKiB0aGUgc29mdHdhcmUgc2lkZSBub3cuCj4gPiAtCSAqCj4g PiAtCSAqIHN3YXAgZHJpdmVyIHByaXZhdGUgc3RhdGUgd2hpbGUgc3RpbGwgaG9sZGluZyBzdGF0 ZV9sb2NrCj4gPiAtCSAqLwo+ID4gLQlCVUdfT04oZHJtX2F0b21pY19oZWxwZXJfc3dhcF9zdGF0 ZShzdGF0ZSwgZmFsc2UpIDwgMCk7Cj4gPiAtCj4gPiAtCS8qCj4gPiAtCSAqIEV2ZXJ5dGhpbmcg YmVsb3cgY2FuIGJlIHJ1biBhc3luY2hyb25vdXNseSB3aXRob3V0IHRoZSBuZWVkIHRvIGdyYWIK PiA+IC0JICogYW55IG1vZGVzZXQgbG9ja3MgYXQgYWxsIHVuZGVyIG9uZSBjb25kaXRpb25zOiBJ dCBtdXN0IGJlCj4gPiBndWFyYW50ZWVkCj4gPiAtCSAqIHRoYXQgdGhlIGFzeW5jaHJvbm91cyB3 b3JrIGhhcyBlaXRoZXIgYmVlbiBjYW5jZWxsZWQgKGlmIHRoZSBkcml2ZXIKPiA+IC0JICogc3Vw cG9ydHMgaXQsIHdoaWNoIGF0IGxlYXN0IHJlcXVpcmVzIHRoYXQgdGhlIGZyYW1lYnVmZmVycyBn ZXQKPiA+IC0JICogY2xlYW5lZCB1cCB3aXRoIGRybV9hdG9taWNfaGVscGVyX2NsZWFudXBfcGxh bmVzKCkpIG9yIGNvbXBsZXRlZAo+ID4gLQkgKiBiZWZvcmUgdGhlIG5ldyBzdGF0ZSBnZXRzIGNv bW1pdHRlZCBvbiB0aGUgc29mdHdhcmUgc2lkZSB3aXRoCj4gPiAtCSAqIGRybV9hdG9taWNfaGVs cGVyX3N3YXBfc3RhdGUoKS4KPiA+IC0JICoKPiA+IC0JICogVGhpcyBzY2hlbWUgYWxsb3dzIG5l dyBhdG9taWMgc3RhdGUgdXBkYXRlcyB0byBiZSBwcmVwYXJlZCBhbmQKPiA+IC0JICogY2hlY2tl ZCBpbiBwYXJhbGxlbCB0byB0aGUgYXN5bmNocm9ub3VzIGNvbXBsZXRpb24gb2YgdGhlIHByZXZp b3VzCj4gPiAtCSAqIHVwZGF0ZS4gV2hpY2ggaXMgaW1wb3J0YW50IHNpbmNlIGNvbXBvc2l0b3Jz IG5lZWQgdG8gZmlndXJlIG91dCB0aGUKPiA+IC0JICogY29tcG9zaXRpb24gb2YgdGhlIG5leHQg ZnJhbWUgcmlnaHQgYWZ0ZXIgaGF2aW5nIHN1Ym1pdHRlZCB0aGUKPiA+IC0JICogY3VycmVudCBs YXlvdXQuCj4gPiAtCSAqLwo+ID4gLQo+ID4gLQlkcm1fYXRvbWljX3N0YXRlX2dldChzdGF0ZSk7 Cj4gPiAtCWlmIChub25ibG9jaykKPiA+IC0JCXF1ZXVlX3dvcmsoc3lzdGVtX3VuYm91bmRfd3Es ICZzdGF0ZS0+Y29tbWl0X3dvcmspOwo+ID4gLQllbHNlCj4gPiAtCQljb21taXRfdGFpbChzdGF0 ZSk7Cj4gPiAtCj4gPiAtCXJldHVybiAwOwo+ID4gLQo+ID4gLWVycm9yOgo+ID4gLQlkcm1fYXRv bWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiA+IC0JcmV0dXJuIHJldDsK PiA+IC19Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+ IGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+IGluZGV4IGU1ODJkNTg4OWI2Ni4u ZmQ5YTdkMDgyNWNkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2 LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiBAQCAtMTIwLDcg KzEyMCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9tb2RlX2NvbmZpZ19mdW5jcwo+ID4g bW9kZV9jb25maWdfZnVuY3MgPSB7Cj4gPiAgCS5mYl9jcmVhdGUgPSBtc21fZnJhbWVidWZmZXJf Y3JlYXRlLAo+ID4gIAkub3V0cHV0X3BvbGxfY2hhbmdlZCA9IG1zbV9mYl9vdXRwdXRfcG9sbF9j aGFuZ2VkLAo+ID4gIAkuYXRvbWljX2NoZWNrID0gbXNtX2F0b21pY19jaGVjaywKPiA+IC0JLmF0 b21pY19jb21taXQgPSBtc21fYXRvbWljX2NvbW1pdCwKPiA+ICsJLmF0b21pY19jb21taXQgPSBk cm1fYXRvbWljX2hlbHBlcl9jb21taXQsCj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9tb2RlX2NvbmZpZ19oZWxwZXJfZnVuY3MKPiA+IG1vZGVfY29uZmlnX2hlbHBl cl9mdW5jcyA9IHsKPiA+ICsJLmF0b21pY19jb21taXRfdGFpbCA9IG1zbV9hdG9taWNfY29tbWl0 X3RhaWwsCj4gPiAgfTsKPiA+IAo+ID4gIHN0YXRpYyBpbmxpbmUKPiA+IEBAIC02OTQsNiArNjk4 LDcgQEAgc3RhdGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QK PiA+IGRybV9kcml2ZXIgKmRydikKPiA+ICAJICogYW4gdW5zZXQgdmFsdWUgZHVyaW5nIGNhbGwg dG8gZHJtX2Rydl91c2VzX2F0b21pY19tb2Rlc2V0KCkKPiA+ICAJICovCj4gPiAgCWRkZXYtPm1v ZGVfY29uZmlnLmZ1bmNzID0gJm1vZGVfY29uZmlnX2Z1bmNzOwo+ID4gKwlkZGV2LT5tb2RlX2Nv bmZpZy5oZWxwZXJfcHJpdmF0ZSA9ICZtb2RlX2NvbmZpZ19oZWxwZXJfZnVuY3M7Cj4gPiAKPiA+ ICAJaWYgKGttcykgewo+ID4gIAkJcmV0ID0ga21zLT5mdW5jcy0+aHdfaW5pdChrbXMpOwo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gPiBiL2RyaXZlcnMv Z3B1L2RybS9tc20vbXNtX2Rydi5oCj4gPiBpbmRleCBlOTIzNzZhY2JjZmUuLjY1N2VhMDUyYTFl ZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaAo+ID4gQEAgLTU5Myw4ICs1OTMsNyBAQCBz dHJ1Y3QgbXNtX2Zvcm1hdCB7Cj4gPiAgCXVpbnQzMl90IHBpeGVsX2Zvcm1hdDsKPiA+ICB9Owo+ ID4gCj4gPiAtaW50IG1zbV9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g PiAtCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIGJvb2wgbm9uYmxvY2spOwo+ID4g K3ZvaWQgbXNtX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpOwo+ID4gIHN0cnVjdCBtc21fa21zX3N0YXRlICptc21fa21zX2dldF9zdGF0ZShzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZQo+ID4gKnN0YXRlKTsKPiA+IAo+ID4gIHZvaWQgbXNtX2dlbV91bm1h cF92bWEoc3RydWN0IG1zbV9nZW1fYWRkcmVzc19zcGFjZSAqYXNwYWNlLAoKLS0gClNlYW4gUGF1 bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkZyZWVkcmVubyBtYWlsaW5nIGxpc3QK RnJlZWRyZW5vQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZyZWVkcmVubwo=