From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Gmeiner Subject: Re: [PATCH RFC 003/111] staging: etnaviv: add drm driver Date: Tue, 7 Apr 2015 11:04:25 +0200 Message-ID: References: <1427988653-754-1-git-send-email-l.stach@pengutronix.de> <1427988653-754-4-git-send-email-l.stach@pengutronix.de> <1428392117.2811.12.camel@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by gabe.freedesktop.org (Postfix) with ESMTP id E3EA16E42F for ; Tue, 7 Apr 2015 02:04:46 -0700 (PDT) Received: by wizk4 with SMTP id k4so9299320wiz.1 for ; Tue, 07 Apr 2015 02:04:46 -0700 (PDT) In-Reply-To: <1428392117.2811.12.camel@pengutronix.de> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Lucas Stach Cc: Russell King , DRI mailing list , Sascha Hauer List-Id: dri-devel@lists.freedesktop.org SGkgTHVjYXMKCjIwMTUtMDQtMDcgOTozNSBHTVQrMDI6MDAgTHVjYXMgU3RhY2ggPGwuc3RhY2hA cGVuZ3V0cm9uaXguZGU+Ogo+IEFtIFNvbm50YWcsIGRlbiAwNS4wNC4yMDE1LCAyMToyNiArMDIw MCBzY2hyaWViIENocmlzdGlhbiBHbWVpbmVyOgo+PiAyMDE1LTA0LTAyIDE3OjI5IEdNVCswMjow MCBMdWNhcyBTdGFjaCA8bC5zdGFjaEBwZW5ndXRyb25peC5kZT46Cj4+ID4gRnJvbTogQ2hyaXN0 aWFuIEdtZWluZXIgPGNocmlzdGlhbi5nbWVpbmVyQGdtYWlsLmNvbT4KPj4gPgo+PiA+IFRoaXMg aXMgYSBjb25zb2xpZGF0aW9uIGJ5IFJ1c3NlbGwgS2luZyBvZiBDaHJpc3RpYW4ncyBkcm0gd29y ay4KPj4gPgo+PiA+IFNpZ25lZC1vZmYtYnk6IENocmlzdGlhbiBHbWVpbmVyIDxjaHJpc3RpYW4u Z21laW5lckBnbWFpbC5jb20+Cj4+ID4gU2lnbmVkLW9mZi1ieTogUnVzc2VsbCBLaW5nIDxybWsr a2VybmVsQGFybS5saW51eC5vcmcudWs+Cj4KPj4gPiAtLS0KPiBbLi4uXQo+Cj4+ID4gKyNlbmRp ZiAvKiBTVEFURV9ISV9YTUwgKi8KPj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91YXBpL2RybS9l dG5hdml2X2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9ldG5hdml2X2RybS5oCj4+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPj4gPiBpbmRleCAwMDAwMDAwMDAwMDAuLmY3YjVhYzZmMzg0Mgo+PiA+ IC0tLSAvZGV2L251bGwKPj4gPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2V0bmF2aXZfZHJtLmgK Pj4gPiBAQCAtMCwwICsxLDIyNSBAQAo+PiA+ICsvKgo+PiA+ICsgKiBDb3B5cmlnaHQgKEMpIDIw MTMgUmVkIEhhdAo+PiA+ICsgKiBBdXRob3I6IFJvYiBDbGFyayA8cm9iZGNsYXJrQGdtYWlsLmNv bT4KPj4gPiArICoKPj4gPiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKPj4gPiArICogdW5kZXIgdGhlIHRl cm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIgYXMgcHVibGlz aGVkIGJ5Cj4+ID4gKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCj4+ID4gKyAqCj4+ ID4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVAo+PiA+ICsgKiBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IKPj4gPiArICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvcgo+PiA+ICsgKiBtb3JlIGRldGFpbHMuCj4+ID4gKyAqCj4+ID4gKyAq IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGFsb25nIHdpdGgKPj4gPiArICogdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lgo+PiA+ICsgKi8KPj4gPiArCj4+ID4gKyNp Zm5kZWYgX19FVE5BVklWX0RSTV9IX18KPj4gPiArI2RlZmluZSBfX0VUTkFWSVZfRFJNX0hfXwo+ PiA+ICsKPj4gPiArI2luY2x1ZGUgPHN0ZGRlZi5oPgo+PiA+ICsjaW5jbHVkZSA8ZHJtL2RybS5o Pgo+PiA+ICsKPj4gPiArLyogUGxlYXNlIG5vdGUgdGhhdCBtb2RpZmljYXRpb25zIHRvIGFsbCBz dHJ1Y3RzIGRlZmluZWQgaGVyZSBhcmUKPj4gPiArICogc3ViamVjdCB0byBiYWNrd2FyZHMtY29t cGF0aWJpbGl0eSBjb25zdHJhaW50czoKPj4gPiArICogIDEpIERvIG5vdCB1c2UgcG9pbnRlcnMs IHVzZSB1aW50NjRfdCBpbnN0ZWFkIGZvciAzMiBiaXQgLyA2NCBiaXQKPj4gPiArICogICAgIHVz ZXIva2VybmVsIGNvbXBhdGliaWxpdHkKPj4gPiArICogIDIpIEtlZXAgZmllbGRzIGFsaWduZWQg dG8gdGhlaXIgc2l6ZQo+PiA+ICsgKiAgMykgQmVjYXVzZSBvZiBob3cgZHJtX2lvY3RsKCkgd29y a3MsIHdlIGNhbiBhZGQgbmV3IGZpZWxkcyBhdAo+PiA+ICsgKiAgICAgdGhlIGVuZCBvZiBhbiBp b2N0bCBpZiBzb21lIGNhcmUgaXMgdGFrZW46IGRybV9pb2N0bCgpIHdpbGwKPj4gPiArICogICAg IHplcm8gb3V0IHRoZSBuZXcgZmllbGRzIGF0IHRoZSB0YWlsIG9mIHRoZSBpb2N0bCwgc28gYSB6 ZXJvCj4+ID4gKyAqICAgICB2YWx1ZSBzaG91bGQgaGF2ZSBhIGJhY2t3YXJkcyBjb21wYXRpYmxl IG1lYW5pbmcuICBBbmQgZm9yCj4+ID4gKyAqICAgICBvdXRwdXQgcGFyYW1zLCB1c2Vyc3BhY2Ug d29uJ3Qgc2VlIHRoZSBuZXdseSBhZGRlZCBvdXRwdXQKPj4gPiArICogICAgIGZpZWxkcy4uIHNv IHRoYXQgaGFzIHRvIGJlIHNvbWVob3cgb2suCj4+ID4gKyAqLwo+PiA+ICsKPj4gPiArI2RlZmlu ZSBFVE5BX1BJUEVfM0QgICAgICAweDAwCj4+ID4gKyNkZWZpbmUgRVROQV9QSVBFXzJEICAgICAg MHgwMQo+PiA+ICsjZGVmaW5lIEVUTkFfUElQRV9WRyAgICAgIDB4MDIKPj4gPiArCj4+ID4gKyNk ZWZpbmUgRVROQV9NQVhfUElQRVMgICAgMwo+PiA+ICsKPj4gPiArLyogdGltZW91dHMgYXJlIHNw ZWNpZmllZCBpbiBjbG9jay1tb25vdG9uaWMgYWJzb2x1dGUgdGltZXMgKHRvIHNpbXBsaWZ5Cj4+ ID4gKyAqIHJlc3RhcnRpbmcgaW50ZXJydXB0ZWQgaW9jdGxzKS4gIFRoZSBmb2xsb3dpbmcgc3Ry dWN0IGlzIGxvZ2ljYWxseSB0aGUKPj4gPiArICogc2FtZSBhcyAnc3RydWN0IHRpbWVzcGVjJyBi dXQgMzIvNjRiIEFCSSBzYWZlLgo+PiA+ICsgKi8KPj4gPiArc3RydWN0IGRybV9ldG5hdml2X3Rp bWVzcGVjIHsKPj4gPiArICAgICAgIGludDY0X3QgdHZfc2VjOyAgICAgICAgICAvKiBzZWNvbmRz ICovCj4+ID4gKyAgICAgICBpbnQ2NF90IHR2X25zZWM7ICAgICAgICAgLyogbmFub3NlY29uZHMg Ki8KPj4gPiArfTsKPj4gPiArCj4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfTU9ERUwg ICAgICAgICAgICAgICAgICAgICAweDAxCj4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVf UkVWSVNJT04gICAgICAgICAgICAgICAgICAweDAyCj4+ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJB TV9HUFVfRkVBVFVSRVNfMCAgICAgICAgICAgICAgICAweDAzCj4+ID4gKyNkZWZpbmUgRVROQVZJ Vl9QQVJBTV9HUFVfRkVBVFVSRVNfMSAgICAgICAgICAgICAgICAweDA0Cj4+ID4gKyNkZWZpbmUg RVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfMiAgICAgICAgICAgICAgICAweDA1Cj4+ID4gKyNk ZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfMyAgICAgICAgICAgICAgICAweDA2Cj4+ ID4gKyNkZWZpbmUgRVROQVZJVl9QQVJBTV9HUFVfRkVBVFVSRVNfNCAgICAgICAgICAgICAgICAw eDA3Cj4+ID4gKwo+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX1NUUkVBTV9DT1VOVCAg ICAgICAgICAgICAgMHgxMAo+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX1JFR0lTVEVS X01BWCAgICAgICAgICAgICAgMHgxMQo+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX1RI UkVBRF9DT1VOVCAgICAgICAgICAgICAgMHgxMgo+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1f R1BVX1ZFUlRFWF9DQUNIRV9TSVpFICAgICAgICAgMHgxMwo+PiA+ICsjZGVmaW5lIEVUTkFWSVZf UEFSQU1fR1BVX1NIQURFUl9DT1JFX0NPVU5UICAgICAgICAgMHgxNAo+PiA+ICsjZGVmaW5lIEVU TkFWSVZfUEFSQU1fR1BVX1BJWEVMX1BJUEVTICAgICAgICAgICAgICAgMHgxNQo+PiA+ICsjZGVm aW5lIEVUTkFWSVZfUEFSQU1fR1BVX1ZFUlRFWF9PVVRQVVRfQlVGRkVSX1NJWkUgMHgxNgo+PiA+ ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0JVRkZFUl9TSVpFICAgICAgICAgICAgICAgMHgx Nwo+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX0lOU1RSVUNUSU9OX0NPVU5UICAgICAg ICAgMHgxOAo+PiA+ICsjZGVmaW5lIEVUTkFWSVZfUEFSQU1fR1BVX05VTV9DT05TVEFOVFMgICAg ICAgICAgICAgMHgxOQo+PiA+ICsKPj4gPiArLy8jZGVmaW5lIE1TTV9QQVJBTV9HTUVNX1NJWkUg IDB4MDIKPj4gPiArCj4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl9wYXJhbSB7Cj4+ID4gKyAgICAg ICB1aW50MzJfdCBwaXBlOyAgICAgICAgICAgLyogaW4sIEVUTkFfUElQRV94ICovCj4+ID4gKyAg ICAgICB1aW50MzJfdCBwYXJhbTsgICAgICAgICAgLyogaW4sIEVUTkFWSVZfUEFSQU1feCAqLwo+ PiA+ICsgICAgICAgdWludDY0X3QgdmFsdWU7ICAgICAgICAgIC8qIG91dCAoZ2V0X3BhcmFtKSBv ciBpbiAoc2V0X3BhcmFtKSAqLwo+PiA+ICt9Owo+PiA+ICsKPj4gPiArLyoKPj4gPiArICogR0VN IGJ1ZmZlcnM6Cj4+ID4gKyAqLwo+PiA+ICsKPj4gPiArI2RlZmluZSBFVE5BX0JPX0NNRFNUUkVB TSAgICAweDAwMDAwMDAxCj4+ID4gKyNkZWZpbmUgRVROQV9CT19DQUNIRV9NQVNLICAgMHgwMDBm MDAwMAo+PiA+ICsvKiBjYWNoZSBtb2RlcyAqLwo+PiA+ICsjZGVmaW5lIEVUTkFfQk9fQ0FDSEVE ICAgICAgIDB4MDAwMTAwMDAKPj4gPiArI2RlZmluZSBFVE5BX0JPX1dDICAgICAgICAgICAweDAw MDIwMDAwCj4+ID4gKyNkZWZpbmUgRVROQV9CT19VTkNBQ0hFRCAgICAgMHgwMDA0MDAwMAo+PiA+ ICsKPj4gPiArc3RydWN0IGRybV9ldG5hdml2X2dlbV9uZXcgewo+PiA+ICsgICAgICAgdWludDY0 X3Qgc2l6ZTsgICAgICAgICAgIC8qIGluICovCj4+ID4gKyAgICAgICB1aW50MzJfdCBmbGFnczsg ICAgICAgICAgLyogaW4sIG1hc2sgb2YgRVROQV9CT194ICovCj4+ID4gKyAgICAgICB1aW50MzJf dCBoYW5kbGU7ICAgICAgICAgLyogb3V0ICovCj4+ID4gK307Cj4+ID4gKwo+PiA+ICtzdHJ1Y3Qg ZHJtX2V0bmF2aXZfZ2VtX2luZm8gewo+PiA+ICsgICAgICAgdWludDMyX3QgaGFuZGxlOyAgICAg ICAgIC8qIGluICovCj4+ID4gKyAgICAgICB1aW50MzJfdCBwYWQ7Cj4+ID4gKyAgICAgICB1aW50 NjRfdCBvZmZzZXQ7ICAgICAgICAgLyogb3V0LCBvZmZzZXQgdG8gcGFzcyB0byBtbWFwKCkgKi8K Pj4gPiArfTsKPj4gPiArCj4+ID4gKyNkZWZpbmUgRVROQV9QUkVQX1JFQUQgICAgICAgIDB4MDEK Pj4gPiArI2RlZmluZSBFVE5BX1BSRVBfV1JJVEUgICAgICAgMHgwMgo+PiA+ICsjZGVmaW5lIEVU TkFfUFJFUF9OT1NZTkMgICAgICAweDA0Cj4+ID4gKwo+PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZf Z2VtX2NwdV9wcmVwIHsKPj4gPiArICAgICAgIHVpbnQzMl90IGhhbmRsZTsgICAgICAgICAvKiBp biAqLwo+PiA+ICsgICAgICAgdWludDMyX3Qgb3A7ICAgICAgICAgICAgIC8qIGluLCBtYXNrIG9m IEVUTkFfUFJFUF94ICovCj4+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2V0bmF2aXZfdGltZXNwZWMg dGltZW91dDsgICAvKiBpbiAqLwo+PiA+ICt9Owo+PiA+ICsKPj4gPiArc3RydWN0IGRybV9ldG5h dml2X2dlbV9jcHVfZmluaSB7Cj4+ID4gKyAgICAgICB1aW50MzJfdCBoYW5kbGU7ICAgICAgICAg LyogaW4gKi8KPj4gPiArfTsKPj4gPiArCj4+ID4gKy8qCj4+ID4gKyAqIENtZHN0cmVhbSBTdWJt aXNzaW9uOgo+PiA+ICsgKi8KPj4gPiArCj4+ID4gKy8qIFRoZSB2YWx1ZSB3cml0dGVuIGludG8g dGhlIGNtZHN0cmVhbSBpcyBsb2dpY2FsbHk6Cj4+ID4gKyAqCj4+ID4gKyAqICAgKChyZWxvY2J1 Zi0+Z3B1YWRkciArIHJlbG9jX29mZnNldCkgPDwgc2hpZnQpIHwgb3IKPj4gPiArICoKPj4gPiAr ICogV2hlbiB3ZSBoYXZlIEdQVSdzIHcvID4zMmJpdCBwdHJzLCBpdCBzaG91bGQgYmUgcG9zc2li bGUgdG8gZGVhbAo+PiA+ICsgKiB3aXRoIHRoaXMgYnkgZW1pdCdpbmcgdHdvIHJlbG9jIGVudHJp ZXMgd2l0aCBhcHByb3ByaWF0ZSBzaGlmdAo+PiA+ICsgKiB2YWx1ZXMuICBPciBhIG5ldyBFVE5B X1NVQk1JVF9DTURfeCB0eXBlIHdvdWxkIGFsc28gYmUgYW4gb3B0aW9uLgo+PiA+ICsgKgo+PiA+ ICsgKiBOT1RFIHRoYXQgcmVsb2MncyBtdXN0IGJlIHNvcnRlZCBieSBvcmRlciBvZiBpbmNyZWFz aW5nIHN1Ym1pdF9vZmZzZXQsCj4+ID4gKyAqIG90aGVyd2lzZSBFSU5WQUwuCj4+ID4gKyAqLwo+ PiA+ICtzdHJ1Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1Ym1pdF9yZWxvYyB7Cj4+ID4gKyAgICAgICB1 aW50MzJfdCBzdWJtaXRfb2Zmc2V0OyAgLyogaW4sIG9mZnNldCBmcm9tIHN1Ym1pdF9ibyAqLwo+ PiA+ICsgICAgICAgdWludDMyX3Qgb3I7ICAgICAgICAgICAgIC8qIGluLCB2YWx1ZSBPUidkIHdp dGggcmVzdWx0ICovCj4+ID4gKyAgICAgICBpbnQzMl90ICBzaGlmdDsgICAgICAgICAgLyogaW4s IGFtb3VudCBvZiBsZWZ0IHNoaWZ0IChjYW4gYmUgbmVnYXRpdmUpICovCj4+ID4gKyAgICAgICB1 aW50MzJfdCByZWxvY19pZHg7ICAgICAgLyogaW4sIGluZGV4IG9mIHJlbG9jX2JvIGJ1ZmZlciAq Lwo+PiA+ICsgICAgICAgdWludDY0X3QgcmVsb2Nfb2Zmc2V0OyAgIC8qIGluLCBvZmZzZXQgZnJv bSBzdGFydCBvZiByZWxvY19ibyAqLwo+PiA+ICt9Owo+PiA+ICsKPj4gPiArLyogc3VibWl0LXR5 cGVzOgo+PiA+ICsgKiAgIEJVRiAtIHRoaXMgY21kIGJ1ZmZlciBpcyBleGVjdXRlZCBub3JtYWxs eS4KPj4gPiArICogICBJQl9UQVJHRVRfQlVGIC0gdGhpcyBjbWQgYnVmZmVyIGlzIGFuIElCIHRh cmdldC4gIFJlbG9jJ3MgYXJlCj4+ID4gKyAqICAgICAgcHJvY2Vzc2VkIG5vcm1hbGx5LCBidXQg dGhlIGtlcm5lbCBkb2VzIG5vdCBzZXR1cCBhbiBJQiB0bwo+PiA+ICsgKiAgICAgIHRoaXMgYnVm ZmVyIGluIHRoZSBmaXJzdC1sZXZlbCByaW5nYnVmZmVyCj4+ID4gKyAqICAgQ1RYX1JFU1RPUkVf QlVGIC0gb25seSBleGVjdXRlZCBpZiB0aGVyZSBoYXMgYmVlbiBhIEdQVSBjb250ZXh0Cj4+ID4g KyAqICAgICAgc3dpdGNoIHNpbmNlIHRoZSBsYXN0IFNVQk1JVCBpb2N0bAo+PiA+ICsgKi8KPj4g PiArI2RlZmluZSBFVE5BX1NVQk1JVF9DTURfQlVGICAgICAgICAgICAgIDB4MDAwMQo+PiA+ICsj ZGVmaW5lIEVUTkFfU1VCTUlUX0NNRF9JQl9UQVJHRVRfQlVGICAgMHgwMDAyCj4+ID4gKyNkZWZp bmUgRVROQV9TVUJNSVRfQ01EX0NUWF9SRVNUT1JFX0JVRiAweDAwMDMgaXMgYQo+PiA+ICtzdHJ1 Y3QgZHJtX2V0bmF2aXZfZ2VtX3N1Ym1pdF9jbWQgewo+PiA+ICsgICAgICAgdWludDMyX3QgdHlw ZTsgICAgICAgICAgIC8qIGluLCBvbmUgb2YgRVROQV9TVUJNSVRfQ01EX3ggKi8KPj4KPj4gRG8g d2UgbmVlZCBkaWZmZXJlbnQgdHlwZXM/IEkgZGlkIG5vdCB1c2UgdGhpcyBpbiBteSBrZXJuZWwg dHJlZS4KPj4KPgo+IFBsZWFzZSBhbHNvIG5vdCB0aGUgY29tbWl0IGNsZWFuaW5nIHRoaXMgQVBJ LCB3aGljaCBjaGFuZ2VzIHRoaXMgYSBiaXQuCj4KCkFoIHllcy4uIEkgc2VlIGl0LgoKPiBCdXQg eWVzIHdlIG5lZWQgZGlmZmVyZW50IHR5cGVzLiBBdCBsZWFzdCB0aGUgY29udGV4dCByZXN0b3Jl IGJ1ZmZlcgo+IHR5cGUgaXMgbmVlZGVkIHRvIHByb3Blcmx5IGltcGxlbWVudCBHUFUgcG93ZXIg bWFuYWdlbWVudCBhbmQgY29udGV4dAo+IHN3aXRjaGluZy4KPgoKV2hhdCByb2xlIGRvZXMgR1BV IHBvd2VyIG1hbmFnZW1lbnQgcGxheXMgaGVyZT8gRm9yIHRoZSBjb250ZXh0IHN3aXRjaGluZwpp dCBjb3VsZCBtYWtlIHNlbnNlLiBCdXQgZm9yIHRoZSAyZCBjb3JlIHRoZSBjb250ZXh0IGlzIHNv IHNtYWxsIHRoYXQKaXQgZG9lcyBub3QKaHVydCB0byBzZW5kIGl0IHdpdGggZXZlcnkgY29tbWFu ZCBzdHJlYW0uIEZvciB0aGUgM2QgY29yZSBpdCBpcyBtdWNoCmJpZ2dlciwgYnV0CnRoaXMgY291 bGQgYmUgZG9uZSBjb21wbGV0ZWx5IGluIHRoZSBrZXJuZWwuIE9yIEkgYW0gd3JvbmcgaGVyZT8K Cj4+ID4gKyAgICAgICB1aW50MzJfdCBzdWJtaXRfaWR4OyAgICAgLyogaW4sIGluZGV4IG9mIHN1 Ym1pdF9ibyBjbWRzdHJlYW0gYnVmZmVyICovCj4+ID4gKyAgICAgICB1aW50MzJfdCBzdWJtaXRf b2Zmc2V0OyAgLyogaW4sIG9mZnNldCBpbnRvIHN1Ym1pdF9ibyAqLwo+Pgo+PiBEbyB3ZSByZWFs bHkgd2FudC9uZWVkIHRoZSBvZmZzZXQ/IEkgaGF2ZSByZW1vdmVkIGl0IGZvcm0gY2F1c2UgaXQK Pj4gbWFrZXMgdGhpbmdzIGluIHVzZXJzcGFjZQo+PiBtb3JlIGNvbXBsZXggdGhlbiBuZWVkZWQu Cj4+Cj4gSXQgbWFrZXMgdGhpbmdzIGEgYml0IG1vcmUgY29tcGxleCwgYnV0IGl0IGFsbG93cyBm b3IgZmFyIG1vcmUgZWZmaWNpZW50Cj4gYnVmZmVyIHVzZSBpZiB5b3UgaGF2ZSBhcmUgZGVhbGlu ZyB3aXRoIGEgbG90IG9mIGZsdXNoZXMuIEkgZG9uJ3Qgc2VlCj4gd2h5IHdlIHNob3VsZCBwcmV2 ZW50IHVzZXJzcGFjZSBmcm9tIHVzaW5nIHRoaXMgb3B0aW1pemF0aW9uLgo+CgpJIHRlbmQgdG8g Z2V0IHRoaW5ncyB1cCBhbmQgcnVubmluZyBhbmQgZG8gdGhlIG9wdGltaXphdGlvbiBzdGVwIGlm IGl0CmlzIHJlYWxseSB3b3J0aC4KQWxzbyBJIGxpa2Ugc3R1ZmYgdG8gYmUgc3R1cGlkIHNpbXBs ZS4gVGhlcmUgaXMgYW4gb3RoZXIgaW50ZXJlc3RpbmcKZmFjdDogZmx1c2hpbmcgdGhlCmlvbW11 djIgaXMgZG9uZSB2aWEgY29tbWFuZCBzdHJlYW0gYW5kIHdlIG5lZWQgdG8gcmVzZXJ2ZSBtb3Jl IHNwYWNlIGZvciB0aGUKdGFpbCBvZiB0aGUgdXNlZCBiby4gU28gaWYgd2UgcmVzZXJ2ZSBzb21l IHNwYWNlIGluIHRoZSBjb21tYW5kIGJ1ZmZlciwgd2UgaGF2ZQpvdGhlciBzcGFjZSBsaW1pdHMg Zm9yIHRoZSB0YWlsIGRlcGVuZGluZyBvbiB1c2VkIGhhcmR3YXJlLgoKPj4gPiArICAgICAgIHVp bnQzMl90IHNpemU7ICAgICAgICAgICAvKiBpbiwgY21kc3RyZWFtIHNpemUgKi8KPj4gPiArICAg ICAgIHVpbnQzMl90IHBhZDsKPj4gPiArICAgICAgIHVpbnQzMl90IG5yX3JlbG9jczsgICAgICAv KiBpbiwgbnVtYmVyIG9mIHN1Ym1pdF9yZWxvYydzICovCj4+ID4gKyAgICAgICB1aW50NjRfdCBf X3VzZXIgcmVsb2NzOyAgLyogaW4sIHB0ciB0byBhcnJheSBvZiBzdWJtaXRfcmVsb2MncyAqLwo+ PiA+ICt9Owo+PiA+ICsKPj4gPiArLyogRWFjaCBidWZmZXIgcmVmZXJlbmNlZCBlbHNld2hlcmUg aW4gdGhlIGNtZHN0cmVhbSBzdWJtaXQgKGllLiB0aGUKPj4gPiArICogY21kc3RyZWFtIGJ1ZmZl cihzKSB0aGVtc2VsdmVzIG9yIHJlbG9jIGVudHJpZXMpIGhhcyBvbmUgKGFuZCBvbmx5Cj4+ID4g KyAqIG9uZSkgZW50cnkgaW4gdGhlIHN1Ym1pdC0+Ym9zW10gdGFibGUuCj4+ID4gKyAqCj4+ID4g KyAqIEFzIGEgb3B0aW1pemF0aW9uLCB0aGUgY3VycmVudCBidWZmZXIgKGdwdSB2aXJ0dWFsIGFk ZHJlc3MpIGNhbiBiZQo+PiA+ICsgKiBwYXNzZWQgYmFjayB0aHJvdWdoIHRoZSAncHJlc3VtZWQn IGZpZWxkLiAgSWYgb24gYSBzdWJzZXF1ZW50IHJlbG9jLAo+PiA+ICsgKiB1c2Vyc3BhY2UgcGFz c2VzIGJhY2sgYSAncHJlc3VtZWQnIGFkZHJlc3MgdGhhdCBpcyBzdGlsbCB2YWxpZCwKPj4gPiAr ICogdGhlbiBwYXRjaGluZyB0aGUgY21kc3RyZWFtIGZvciB0aGlzIGVudHJ5IGlzIHNraXBwZWQu ICBUaGlzIGNhbgo+PiA+ICsgKiBhdm9pZCBrZXJuZWwgbmVlZGluZyB0byBtYXAvYWNjZXNzIHRo ZSBjbWRzdHJlYW0gYm8gaW4gdGhlIGNvbW1vbgo+PiA+ICsgKiBjYXNlLgo+PiA+ICsgKi8KPj4g PiArI2RlZmluZSBFVE5BX1NVQk1JVF9CT19SRUFEICAgICAgICAgICAgIDB4MDAwMQo+PiA+ICsj ZGVmaW5lIEVUTkFfU1VCTUlUX0JPX1dSSVRFICAgICAgICAgICAgMHgwMDAyCj4+ID4gK3N0cnVj dCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0X2JvIHsKPj4gPiArICAgICAgIHVpbnQzMl90IGZsYWdz OyAgICAgICAgICAvKiBpbiwgbWFzayBvZiBFVE5BX1NVQk1JVF9CT194ICovCj4+ID4gKyAgICAg ICB1aW50MzJfdCBoYW5kbGU7ICAgICAgICAgLyogaW4sIEdFTSBoYW5kbGUgKi8KPj4gPiArICAg ICAgIHVpbnQ2NF90IHByZXN1bWVkOyAgICAgICAvKiBpbi9vdXQsIHByZXN1bWVkIGJ1ZmZlciBh ZGRyZXNzICovCj4+Cj4+IHByZXN1bWVkIHN1cHBvcnQgc2hvdWxkIG5ldmVyIGhpdCBldG5hdml2 IGRyaXZlci4KPj4KPiBBcyBzdGF0ZWQgaW4gdGhlIGNvdmVyIGxldHRlciBJIHRoaW5rIHByZXN1 bWVkIHN1cHBvcnQgd2lsbCBiZWNvbWUKPiBwb3NzaWJsZSB3aXRoIE1NVXYyIGFuZCBtYXkgcHJv dmlkZSBhIGdvb2Qgb3B0aW1pemF0aW9uIHRoZXJlLiBTbyBJCj4gd291bGQgcmF0aGVyIGxlYXZl IHRoaXMgaW4gaGVyZSBhbmQganVzdCBpZ25vcmUgaXQgZm9yIG5vdy4KPgoKWW91ciBzdGF0ZW1l bnQgaXMgZnVubnkgYXMgeW91IGhhdmUgdGhlIGZvbGxvd2luZyBwYXRjaCBpbiB5b3VyIHNlcmll czoKW1BBVENIIFJGQyAwNzAvMTExXSBzdGFnaW5nOiBldG5hdml2OiByZW1vdmUgcHJlc3VtcHRp b24gb2YgQk8gYWRkcmVzc2VzCgpJIGhhdmUgdGFrZW4gdGhlIGlkZWEgb2YgcHJlc3VtcHRpb24g ZnJvbSAqZHJ1bXJvbGwqIGZyZWVkcmVubyBhcyB0aGUKZXRuYXZpdiBkcml2ZXIKc3RhcnRlZCBh cyAxOjEgY29weSBvZiBmcmVlZHJlbm8uIEJ1dCB3aGF0IHNob3VsZCBJIHNheSwgaXQgbmV2ZXIK c2hvdWxkIGJlIHRoZXJlIGFuZApldmVuIGZyZWVkcmVubyBkb2VzIG5vdCBtYWtlIHVzZSBvZiBp dCAoY2hlY2tlZCBpdCBhYm91dCAyLTMgbW9udGhzIGFnbykuClNob3VsZCB0aGUgdXNlciBzcGFj ZSByZWFsbHkga25vdyBhbnl0aGluZyBhYm91dCBwaHlzaWNhbCBhZGRyZXNzZXMgYXQKYWxsPyBX b3VsZCBiZQpuaWNlIHRvIGhlYXIgdGhlIG9waW5pb24gb2YgYSBkcm0gZ3VydSBoZXJlIGFuZCBt YXliZSBSdXNzZWxsLgoKPj4gPiArfTsKPj4gPiArCj4+ID4gKy8qIEVhY2ggY21kc3RyZWFtIHN1 Ym1pdCBjb25zaXN0cyBvZiBhIHRhYmxlIG9mIGJ1ZmZlcnMgaW52b2x2ZWQsIGFuZAo+PiA+ICsg KiBvbmUgb3IgbW9yZSBjbWRzdHJlYW0gYnVmZmVycy4gIFRoaXMgYWxsb3dzIGZvciBjb25kaXRp b25hbCBleGVjdXRpb24KPj4gPiArICogKGNvbnRleHQtcmVzdG9yZSksIGFuZCBJQiBidWZmZXJz IG5lZWRlZCBmb3IgcGVyIHRpbGUvYmluIGRyYXcgY21kcy4KPj4gPiArICovCj4+ID4gK3N0cnVj dCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0IHsKPj4gPiArICAgICAgIHVpbnQzMl90IHBpcGU7ICAg ICAgICAgICAvKiBpbiwgRVROQV9QSVBFX3ggKi8KPj4gPiArICAgICAgIHVpbnQzMl90IGZlbmNl OyAgICAgICAgICAvKiBvdXQgKi8KPj4gPiArICAgICAgIHVpbnQzMl90IG5yX2JvczsgICAgICAg ICAvKiBpbiwgbnVtYmVyIG9mIHN1Ym1pdF9ibydzICovCj4+ID4gKyAgICAgICB1aW50MzJfdCBu cl9jbWRzOyAgICAgICAgLyogaW4sIG51bWJlciBvZiBzdWJtaXRfY21kJ3MgKi8KPj4KPj4gRG8g d2UgcmVhbGx5IG5lZWQgdG8gc3VwcG9ydCBtdXRsaXBsZSBjbWRzIHBlciBzdWJtaXQ/IEkgaGF2 ZSByZW1vdmVkIHRoaXMKPj4gZnJvbSBteSBrZXJuZWwuCj4+Cj4gV2UgbmVlZCB0byBzdXBwb3J0 IGF0IGxlYXN0IG9uZSBhZGRpdGlvbmFsIGNvbnRleHQgYnVmZmVyLCBzbyBJIGRvbid0Cj4gc2Vl IHdoeSB3ZSBzaG91bGRuJ3Qgc3VwcG9ydCBuIGJ1ZmZlcnMuCj4KCktlZXAgaXQgc3R1cGlkIHNp bXBsZS4gSW4gbXkgbGliZHJtIHJlcG8sIHdoaWNoIHlvdSBob3BlZnVsbHkga25vdywgSQpoYXZl IGltcGxlbWVudGVkCnRoZSBidWZmZXIgaGFuZGxpbmcgZnJvbSB0aGUgb3JpZ2luYWwgbGliZXRu YXZpdi4gV2UgYWxsb2NhdGUgNQpjb21tYW5kIGJ1ZmZlcnMgb2YgYSBkZWZpbmVkCnNpemUgYW5k IHJvdGF0ZSB0aHJvdWdoIHRoZW0uIER1cmluZyBjb21tYW5kIGJ1ZmZlciBidWlsZGluZyB3ZSBy ZXNlcnZlIHNwYWNlIGluCnRoZSBzdHJlYW0uIGlmIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2Ug d2UgZmx1c2ggdGhlIGN1cnJlbnQgYnVmZmVyCnN0cmVhbSBhbmQgc3dpdGNoIHRvCnRoZSBuZXh0 IGFuZCB1cyBpdC4gVGhlbiB0aGVyZSBpcyBhIHdheSB0byBleHBsaWNpdCBmbHVzaCBhIGNvbW1h bmQgYnVmZmVyLgoKRm9yIG1vcmUgZGV0YWlscyBzZWU6Cmh0dHBzOi8vZ2l0aHViLmNvbS9sYWFu d2ovZXRuYV92aXYvdHJlZS9tYXN0ZXIvc3JjL2V0bmF2aXYKaHR0cHM6Ly9naXRodWIuY29tL2F1 c3RyaWFuY29kZXIvbGliZHJtCgo+PiA+ICsgICAgICAgdWludDY0X3QgX191c2VyIGJvczsgICAg IC8qIGluLCBwdHIgdG8gYXJyYXkgb2Ygc3VibWl0X2JvJ3MgKi8KPj4gPiArICAgICAgIHVpbnQ2 NF90IF9fdXNlciBjbWRzOyAgICAvKiBpbiwgcHRyIHRvIGFycmF5IG9mIHN1Ym1pdF9jbWQncyAq Lwo+PiA+ICt9Owo+PiA+ICsKPj4gPiArLyogVGhlIG5vcm1hbCB3YXkgdG8gc3luY2hyb25pemUg d2l0aCB0aGUgR1BVIGlzIGp1c3QgdG8gQ1BVX1BSRVAgb24KPj4gPiArICogYSBidWZmZXIgaWYg eW91IG5lZWQgdG8gYWNjZXNzIGl0IGZyb20gdGhlIENQVSAob3RoZXIgY21kc3RyZWFtCj4+ID4g KyAqIHN1Ym1pc3Npb24gZnJvbSBzYW1lIG9yIG90aGVyIGNvbnRleHRzLCBQQUdFX0ZMSVAgaW9j dGwsIGV0YywgYWxsCj4+ID4gKyAqIGhhbmRsZSB0aGUgcmVxdWlyZWQgc3luY2hyb25pemF0aW9u IHVuZGVyIHRoZSBob29kKS4gIFRoaXMgaW9jdGwKPj4gPiArICogbWFpbmx5IGp1c3QgZXhpc3Rz IGFzIGEgd2F5IHRvIGltcGxlbWVudCB0aGUgZ2FsbGl1bSBwaXBlX2ZlbmNlCj4+ID4gKyAqIEFQ SXMgd2l0aG91dCByZXF1aXJpbmcgYSBkdW1teSBibyB0byBzeW5jaHJvbml6ZSBvbi4KPj4gPiAr ICovCj4+ID4gK3N0cnVjdCBkcm1fZXRuYXZpdl93YWl0X2ZlbmNlIHsKPj4gPiArICAgICAgIHVp bnQzMl90IHBpcGU7ICAgICAgICAgICAvKiBpbiwgRVROQV9QSVBFX3ggKi8KPj4gPiArICAgICAg IHVpbnQzMl90IGZlbmNlOyAgICAgICAgICAvKiBpbiAqLwo+PiA+ICsgICAgICAgc3RydWN0IGRy bV9ldG5hdml2X3RpbWVzcGVjIHRpbWVvdXQ7ICAgLyogaW4gKi8KPj4gPiArfTsKPj4gPiArCj4+ ID4gKyNkZWZpbmUgRFJNX0VUTkFWSVZfR0VUX1BBUkFNICAgICAgICAgIDB4MDAKPj4gPiArLyog cGxhY2Vob2xkZXI6Cj4+ID4gKyNkZWZpbmUgRFJNX01TTV9TRVRfUEFSQU0gICAgICAgICAgICAg IDB4MDEKPj4gPiArICovCj4+ID4gKyNkZWZpbmUgRFJNX0VUTkFWSVZfR0VNX05FVyAgICAgICAg ICAgIDB4MDIKPj4gPiArI2RlZmluZSBEUk1fRVROQVZJVl9HRU1fSU5GTyAgICAgICAgICAgMHgw Mwo+PiA+ICsjZGVmaW5lIERSTV9FVE5BVklWX0dFTV9DUFVfUFJFUCAgICAgICAweDA0Cj4+ID4g KyNkZWZpbmUgRFJNX0VUTkFWSVZfR0VNX0NQVV9GSU5JICAgICAgIDB4MDUKPj4gPiArI2RlZmlu ZSBEUk1fRVROQVZJVl9HRU1fU1VCTUlUICAgICAgICAgMHgwNgo+PiA+ICsjZGVmaW5lIERSTV9F VE5BVklWX1dBSVRfRkVOQ0UgICAgICAgICAweDA3Cj4+ID4gKyNkZWZpbmUgRFJNX0VUTkFWSVZf TlVNX0lPQ1RMUyAgICAgICAgIDB4MDgKPj4gPiArCj4+ID4gKyNkZWZpbmUgRFJNX0lPQ1RMX0VU TkFWSVZfR0VUX1BBUkFNICAgIERSTV9JT1dSKERSTV9DT01NQU5EX0JBU0UgKyBEUk1fRVROQVZJ Vl9HRVRfUEFSQU0sIHN0cnVjdCBkcm1fZXRuYXZpdl9wYXJhbSkKPj4gPiArI2RlZmluZSBEUk1f SU9DVExfRVROQVZJVl9HRU1fTkVXICAgICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERS TV9FVE5BVklWX0dFTV9ORVcsIHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fbmV3KQo+PiA+ICsjZGVm aW5lIERSTV9JT0NUTF9FVE5BVklWX0dFTV9JTkZPICAgICBEUk1fSU9XUihEUk1fQ09NTUFORF9C QVNFICsgRFJNX0VUTkFWSVZfR0VNX0lORk8sIHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1faW5mbykK Pj4gPiArI2RlZmluZSBEUk1fSU9DVExfRVROQVZJVl9HRU1fQ1BVX1BSRVAgRFJNX0lPVyAoRFJN X0NPTU1BTkRfQkFTRSArIERSTV9FVE5BVklWX0dFTV9DUFVfUFJFUCwgc3RydWN0IGRybV9ldG5h dml2X2dlbV9jcHVfcHJlcCkKPj4gPiArI2RlZmluZSBEUk1fSU9DVExfRVROQVZJVl9HRU1fQ1BV X0ZJTkkgRFJNX0lPVyAoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9FVE5BVklWX0dFTV9DUFVfRklO SSwgc3RydWN0IGRybV9ldG5hdml2X2dlbV9jcHVfZmluaSkKPj4gPiArI2RlZmluZSBEUk1fSU9D VExfRVROQVZJVl9HRU1fU1VCTUlUICAgRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9F VE5BVklWX0dFTV9TVUJNSVQsIHN0cnVjdCBkcm1fZXRuYXZpdl9nZW1fc3VibWl0KQo+PiA+ICsj ZGVmaW5lIERSTV9JT0NUTF9FVE5BVklWX1dBSVRfRkVOQ0UgICBEUk1fSU9XIChEUk1fQ09NTUFO RF9CQVNFICsgRFJNX0VUTkFWSVZfV0FJVF9GRU5DRSwgc3RydWN0IGRybV9ldG5hdml2X3dhaXRf ZmVuY2UpCj4+ID4gKwo+PiA+ICsjZW5kaWYgLyogX19FVE5BVklWX0RSTV9IX18gKi8KPj4gPiAt LQo+PiA+IDIuMS40Cj4+ID4KPj4KPgoKZ3JlZXRzCi0tCkNocmlzdGlhbiBHbWVpbmVyLCBNU2MK Cmh0dHBzOi8vc291bmRjbG91ZC5jb20vY2hyaXN0aWFuLWdtZWluZXIKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK