From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Christian_K=c3=b6nig?= Subject: Re: [PATCH v2] gpu: drm: ttm: Adding new return type vm_fault_t Date: Mon, 18 Jun 2018 15:20:37 +0200 Message-ID: <80a5cc74-2625-3b00-917c-fa675bfe1464@amd.com> References: <20180601192724.GA2001@jordon-HP-15-Notebook-PC> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from NAM05-DM3-obe.outbound.protection.outlook.com (mail-eopbgr730059.outbound.protection.outlook.com [40.107.73.59]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F75C89D44 for ; Mon, 18 Jun 2018 13:20:52 +0000 (UTC) In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Souptick Joarder , airlied@linux.ie Cc: Matthew Wilcox , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org QW0gMDguMDYuMjAxOCB1bSAwODo0NCBzY2hyaWViIENocmlzdGlhbiBLw7ZuaWc6Cj4gQW0gMDgu MDYuMjAxOCB1bSAwNjozNiBzY2hyaWViIFNvdXB0aWNrIEpvYXJkZXI6Cj4+IE9uIFNhdCwgSnVu IDIsIDIwMTggYXQgMTI6NTcgQU0sIFNvdXB0aWNrIEpvYXJkZXIgCj4+IDxqcmRyLmxpbnV4QGdt YWlsLmNvbT4gd3JvdGU6Cj4+PiBVc2UgbmV3IHJldHVybiB0eXBlIHZtX2ZhdWx0X3QgZm9yIGZh dWx0IGhhbmRsZXIuIEZvcgo+Pj4gbm93LCB0aGlzIGlzIGp1c3QgZG9jdW1lbnRpbmcgdGhhdCB0 aGUgZnVuY3Rpb24gcmV0dXJucwo+Pj4gYSBWTV9GQVVMVCB2YWx1ZSByYXRoZXIgdGhhbiBhbiBl cnJuby4gT25jZSBhbGwgaW5zdGFuY2VzCj4+PiBhcmUgY29udmVydGVkLCB2bV9mYXVsdF90IHdp bGwgYmVjb21lIGEgZGlzdGluY3QgdHlwZS4KPj4+Cj4+PiBSZWYtPiBjb21taXQgMWM4ZjQyMjA1 OWFlICgibW06IGNoYW5nZSByZXR1cm4gdHlwZSB0byB2bV9mYXVsdF90IikKPj4+Cj4+PiBQcmV2 aW91c2x5IHZtX2luc2VydF97bWl4ZWQscGZufSByZXR1cm5zIGVyciB3aGljaCBkcml2ZXIKPj4+ IG1hcHBlZCBpbnRvIFZNX0ZBVUxUXyogdHlwZS4gVGhlIG5ldyBmdW5jdGlvbgo+Pj4gdm1mX2lu c2VydF97bWl4ZWQscGZufSB3aWxsIHJlcGxhY2UgdGhpcyBpbmVmZmljaWVuY3kgYnkKPj4+IHJl dHVybmluZyBWTV9GQVVMVF8qIHR5cGUuCj4+Pgo+Pj4gU2lnbmVkLW9mZi1ieTogU291cHRpY2sg Sm9hcmRlciA8anJkci5saW51eEBnbWFpbC5jb20+Cj4+PiAtLS0KPj4+IHYyOiBBZGRyZXNzIGNo cmlzdGlhbidzIGNvbW1lbnQuIFB1dCByZXZlcnNlCj4+PiDCoMKgwqDCoCB4bWFzIHRyZWUgb3Jk ZXIgZm9yIHZhcmlhYmxlIGRlY2xhcmF0aW9ucy4KPj4+Cj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9ib192bS5jIHwgNDUgCj4+PiArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+Pj4gwqAgMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDIzIGRl bGV0aW9ucygtKQo+Pj4KPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9i b192bS5jIAo+Pj4gYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib192bS5jCj4+PiBpbmRleCA4 ZWJhOTViLi45ZGU4YjRmIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym9fdm0uYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdm0uYwo+Pj4gQEAg LTQzLDEwICs0MywxMSBAQAo+Pj4KPj4+IMKgICNkZWZpbmUgVFRNX0JPX1ZNX05VTV9QUkVGQVVM VCAxNgo+Pj4KPj4+IC1zdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCj4+PiArc3RhdGljIHZtX2ZhdWx0X3QgdHRtX2JvX3ZtX2ZhdWx0 X2lkbGUoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+IMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHZt X2ZhdWx0ICp2bWYpCj4+PiDCoCB7Cj4+PiAtwqDCoMKgwqDCoMKgIGludCByZXQgPSAwOwo+Pj4g K8KgwqDCoMKgwqDCoCB2bV9mYXVsdF90IHJldCA9IDA7Cj4+PiArwqDCoMKgwqDCoMKgIGludCBl cnIgPSAwOwo+Pj4KPj4+IMKgwqDCoMKgwqDCoMKgwqAgaWYgKGxpa2VseSghYm8tPm1vdmluZykp Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIG91dF91bmxvY2s7Cj4+ PiBAQCAtNzcsOSArNzgsOSBAQCBzdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdF9pZGxlKHN0cnVj dCAKPj4+IHR0bV9idWZmZXJfb2JqZWN0ICpibywKPj4+IMKgwqDCoMKgwqDCoMKgwqAgLyoKPj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCAqIE9yZGluYXJ5IHdhaXQuCj4+PiDCoMKgwqDCoMKgwqDCoMKg wqAgKi8KPj4+IC3CoMKgwqDCoMKgwqAgcmV0ID0gZG1hX2ZlbmNlX3dhaXQoYm8tPm1vdmluZywg dHJ1ZSk7Cj4+PiAtwqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKPj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldCA9IChyZXQgIT0gLUVSRVNUQVJUU1lTKSA/ IFZNX0ZBVUxUX1NJR0JVUyA6Cj4+PiArwqDCoMKgwqDCoMKgIGVyciA9IGRtYV9mZW5jZV93YWl0 KGJvLT5tb3ZpbmcsIHRydWUpOwo+Pj4gK8KgwqDCoMKgwqDCoCBpZiAodW5saWtlbHkoZXJyICE9 IDApKSB7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSAoZXJyICE9IC1F UkVTVEFSVFNZUykgPyBWTV9GQVVMVF9TSUdCVVMgOgo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFZNX0ZBVUxUX05PUEFHRTsKPj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gb3V0X3VubG9jazsKPj4+IMKgwqDCoMKgwqDC oMKgwqAgfQo+Pj4gQEAgLTEwNCw3ICsxMDUsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyB0dG1f Ym9faW9fbWVtX3BmbihzdHJ1Y3QgCj4+PiB0dG1fYnVmZmVyX29iamVjdCAqYm8sCj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArIHBhZ2Vfb2Zmc2V0Owo+Pj4gwqAgfQo+Pj4K Pj4+IC1zdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikKPj4+ ICtzdGF0aWMgdm1fZmF1bHRfdCB0dG1fYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYp Cj4+PiDCoCB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1h ID0gdm1mLT52bWE7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCB0dG1fYnVmZmVyX29iamVj dCAqYm8gPSAoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICopCj4+PiBAQCAtMTE1LDggKzExNiw5 IEBAIHN0YXRpYyBpbnQgdHRtX2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQo+Pj4g wqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBsb25nIHBmbjsKPj4+IMKgwqDCoMKgwqDCoMKgwqAg c3RydWN0IHR0bV90dCAqdHRtID0gTlVMTDsKPj4+IMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IHBh Z2UgKnBhZ2U7Cj4+PiAtwqDCoMKgwqDCoMKgIGludCByZXQ7Cj4+PiArwqDCoMKgwqDCoMKgIGlu dCBlcnI7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIGludCBpOwo+Pj4gK8KgwqDCoMKgwqDCoCB2bV9m YXVsdF90IHJldCA9IFZNX0ZBVUxUX05PUEFHRTsKPj4+IMKgwqDCoMKgwqDCoMKgwqAgdW5zaWdu ZWQgbG9uZyBhZGRyZXNzID0gdm1mLT5hZGRyZXNzOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBzdHJ1 Y3QgdHRtX21lbV90eXBlX21hbmFnZXIgKm1hbiA9Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAmYmRldi0+bWFuW2JvLT5tZW0ubWVtX3R5cGVdOwo+Pj4gQEAgLTEyOCw5ICsx MzAsOSBAQCBzdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1bHQgKnZtZikK Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAqIGZvciByZXNlcnZlLCBhbmQgaWYgaXQgZmFpbHMsIHJl dHJ5IHRoZSBmYXVsdCBhZnRlciB3YWl0aW5nCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAgKiBmb3Ig dGhlIGJ1ZmZlciB0byBiZWNvbWUgdW5yZXNlcnZlZC4KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCAq Lwo+Pj4gLcKgwqDCoMKgwqDCoCByZXQgPSB0dG1fYm9fcmVzZXJ2ZShibywgdHJ1ZSwgdHJ1ZSwg TlVMTCk7Cj4+PiAtwqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKPj4+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChyZXQgIT0gLUVCVVNZKQo+Pj4gK8KgwqDC oMKgwqDCoCBlcnIgPSB0dG1fYm9fcmVzZXJ2ZShibywgdHJ1ZSwgdHJ1ZSwgTlVMTCk7Cj4+PiAr wqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseShlcnIgIT0gMCkpIHsKPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGlmIChlcnIgIT0gLUVCVVNZKQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBWTV9GQVVMVF9OT1BBR0U7Cj4+ Pgo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHZtZi0+ZmxhZ3MgJiBG QVVMVF9GTEFHX0FMTE9XX1JFVFJZKSB7Cj4+PiBAQCAtMTYyLDggKzE2NCw4IEBAIHN0YXRpYyBp bnQgdHRtX2JvX3ZtX2ZhdWx0KHN0cnVjdCB2bV9mYXVsdCAqdm1mKQo+Pj4gwqDCoMKgwqDCoMKg wqDCoCB9Cj4+Pgo+Pj4gwqDCoMKgwqDCoMKgwqDCoCBpZiAoYmRldi0+ZHJpdmVyLT5mYXVsdF9y ZXNlcnZlX25vdGlmeSkgewo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0g YmRldi0+ZHJpdmVyLT5mYXVsdF9yZXNlcnZlX25vdGlmeShibyk7Cj4+PiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKHJldCkgewo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZXJyID0gYmRldi0+ZHJpdmVyLT5mYXVsdF9yZXNlcnZlX25vdGlmeShibyk7Cj4+ PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKGVycikgewo+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2FzZSAwOgo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY2FzZSAtRUJVU1k6Cj4+PiBAQCAtMTkxLDEzICsxOTMsMTMgQEAg c3RhdGljIGludCB0dG1fYm9fdm1fZmF1bHQoc3RydWN0IHZtX2ZhdWx0ICp2bWYpCj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIG91dF91bmxvY2s7Cj4+PiDCoMKgwqDC oMKgwqDCoMKgIH0KPj4+Cj4+PiAtwqDCoMKgwqDCoMKgIHJldCA9IHR0bV9tZW1faW9fbG9jayht YW4sIHRydWUpOwo+Pj4gLcKgwqDCoMKgwqDCoCBpZiAodW5saWtlbHkocmV0ICE9IDApKSB7Cj4+ PiArwqDCoMKgwqDCoMKgIGVyciA9IHR0bV9tZW1faW9fbG9jayhtYW4sIHRydWUpOwo+Pj4gK8Kg wqDCoMKgwqDCoCBpZiAodW5saWtlbHkoZXJyICE9IDApKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCByZXQgPSBWTV9GQVVMVF9OT1BBR0U7Cj4+PiDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIG91dF91bmxvY2s7Cj4+PiDCoMKgwqDCoMKgwqDCoMKg IH0KPj4+IC3CoMKgwqDCoMKgwqAgcmV0ID0gdHRtX21lbV9pb19yZXNlcnZlX3ZtKGJvKTsKPj4+ IC3CoMKgwqDCoMKgwqAgaWYgKHVubGlrZWx5KHJldCAhPSAwKSkgewo+Pj4gK8KgwqDCoMKgwqDC oCBlcnIgPSB0dG1fbWVtX2lvX3Jlc2VydmVfdm0oYm8pOwo+Pj4gK8KgwqDCoMKgwqDCoCBpZiAo dW5saWtlbHkoZXJyICE9IDApKSB7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCByZXQgPSBWTV9GQVVMVF9TSUdCVVM7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBnb3RvIG91dF9pb191bmxvY2s7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+IEBAIC0y NjUsMjMgKzI2NywyMCBAQCBzdGF0aWMgaW50IHR0bV9ib192bV9mYXVsdChzdHJ1Y3Qgdm1fZmF1 bHQgKnZtZikKPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPj4+Cj4+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAodm1hLT52bV9mbGFncyAmIFZNX01J WEVETUFQKQo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJldCA9IHZtX2luc2VydF9taXhlZCgmY3ZtYSwgYWRkcmVzcywKPj4+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSB2bWZfaW5zZXJ0X21peGVkKCZj dm1hLCBhZGRyZXNzLAo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgX19wZm5fdG9fcGZuX3Qo cGZuLCBQRk5fREVWKSk7Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNl Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0ID0g dm1faW5zZXJ0X3BmbigmY3ZtYSwgYWRkcmVzcywgcGZuKTsKPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXQgPSB2bWZfaW5zZXJ0X3BmbigmY3ZtYSwg YWRkcmVzcywgcGZuKTsKPj4+Cj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAv Kgo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIFNvbWVib2R5IGJlYXQg dXMgdG8gdGhpcyBQVEUgb3IgcHJlZmF1bHRpbmcgdG8KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKiBhbiBhbHJlYWR5IHBvcHVsYXRlZCBQVEUsIG9yIHByZWZhdWx0aW5n IGVycm9yLgo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqLwo+Pj4KPj4+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh1bmxpa2VseSgocmV0ID09IC1FQlVT WSkgfHwgKHJldCAhPSAwICYmIGkgPiAwKSkpCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpZiAodW5saWtlbHkoKHJldCA9PSBWTV9GQVVMVF9OT1BBR0UgJiYgaSA+IDApKSkKPj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhazsK Pj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVsc2UgaWYgKHVubGlrZWx5KHJldCAh PSAwKSkgewo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHJldCA9Cj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAocmV0ID09IC1FTk9NRU0pID8gVk1fRkFVTFRfT09NIDogCj4+PiBWTV9GQVVMVF9T SUdCVVM7Cj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlIGlmICh1bmxpa2Vs eShyZXQgJiBWTV9GQVVMVF9FUlJPUikpCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBvdXRfaW9fdW5sb2NrOwo+Pj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfQo+Pj4KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGFkZHJlc3MgKz0gUEFHRV9TSVpFOwo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKHVubGlrZWx5KCsrcGFnZV9vZmZzZXQgPj0gcGFnZV9sYXN0KSkKPj4+IC0tIAo+ Pj4gMS45LjEKPj4+Cj4+IElmIG5vIGZ1cnRoZXIgY29tbWVudCwgd2Ugd291bGQgbGlrZSBnZXQg dGhpcyBwYXRjaCBpbiA0LjE4IC8gNC4xOC1yYy14Lgo+IFRoZSBwYXRjaCBsb29rcyBnb29kIHRv IG1lIGFuZCBJIHdpbGwgcGljayBpdCB1cCBmb3IgdGhlIG5leHQgVFRNIHB1bGwgCj4gcmVxdWVz dC4gSSBkb24ndCB0aGluayBpdCB3aWxsIG1ha2UgaXQgaW50byA0LjE4LXJjLTEsIGJ1dCA0LjE4 LXJjLXggCj4gc291bmRzIHJlYWxpc3RpYy4KClRoZSBrZXJuZWwgaXMgc3RpbGwgY29tcGlsaW5n LCBidXQgYXMgc29vbiBhcyBJIGtub3cgdGhhdCB0aGlzIHdvcmtzIEknbSAKZ29pbmcgdG8gcHVz aCBpdCBpbnRvIG91ciBpbnRlcm5hbCBicmFuY2ggd2hpY2ggYnJpbmdzIGl0IG9uIHRoZSB3YXkg dG8gCjQuMTgtcmMtMi4KClJlZ2FyZHMsCkNocmlzdGlhbi4KCj4KPiBDaHJpc3RpYW4uCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK