From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [RFC] drm: Introduce max width and height properties for planes Date: Wed, 25 May 2016 20:20:25 +0300 Message-ID: <20160525172025.GL4329@intel.com> References: <1464158019-7040-1-git-send-email-architt@codeaurora.org> <20160525071028.GE27098@phenom.ffwll.local> <5745855C.40009@codeaurora.org> <20160525131245.GK27098@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 4D1276E54D for ; Wed, 25 May 2016 17:20:36 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Rob Clark Cc: "airlied@redhat.com" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXkgMjUsIDIwMTYgYXQgMTI6MzY6NTNQTSAtMDQwMCwgUm9iIENsYXJrIHdyb3Rl Ogo+IE9uIFdlZCwgTWF5IDI1LCAyMDE2IGF0IDk6MTIgQU0sIERhbmllbCBWZXR0ZXIgPGRhbmll bEBmZndsbC5jaD4gd3JvdGU6Cj4gPiBPbiBXZWQsIE1heSAyNSwgMjAxNiBhdCAwNDoyODozNlBN ICswNTMwLCBBcmNoaXQgVGFuZWphIHdyb3RlOgo+ID4+IE9uIDA1LzI1LzIwMTYgMTI6NDAgUE0s IERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPj4gPi0gSXMgdGhlIHNpemUvd2lkdGggcmVhbGx5IGlu ZGVwZW5kZW50IG9mIGUuZy4gcm90YXRpb24vcGl4ZWwgZm9ybWF0Ly4uLgo+ID4+ID4gICBTaG91 bGQgaXQgYmUgdGhlIG1heGltdW0gdGhhdCdzIHBvc3NpYmxlIHVuZGVyIGJlc3QgY2lyY3Vtc3Rh bmNlICh0aGluZ3MKPiA+PiA+ICAgY291bGQgc3RpbGwgZmFpbCksIG9yIHRoZSBtaW5pbXVtIHRo YXQncyBndWFyYW50ZWVkIHRvIHdvcmsgZXZlcndoZXJlLgo+ID4+ID4gICBUaGlzIGlzIHRoZSBr aW5kIG9mIHN0dWZmIHdlIG5lZWQgdGhlIHVzZXJzcGFjZSBwYXJ0IGZvciwgdG9vLgo+ID4+Cj4g Pj4gWWVhaCwgaXQgaXNuJ3QgaW5kZXBlbmRlbnQgb2YgdGhlc2UgcGFyYW1ldGVycy4gSSdtIG5v dCBlbnRpcmVseSBzdXJlCj4gPj4gYWJvdXQgdGhpcyBlaXRoZXIuCj4gPj4KPiA+PiBEb2VzIGl0 IG1ha2Ugc2Vuc2UgdG8gaW1wb3NlIGEgcnVsZSB0aGF0IHRoZSB1c2VyIGZpcnN0IHNldHMgdGhl Cj4gPj4gcm90YXRpb24vZm9ybWF0IHBsYW5lIHByb3BlcnRpZXMsIGFuZCBvbmx5IHRoZW4gcmVh ZCB0aGUgbWF4aW11bQo+ID4+IHdpZHRoPyBJJ20gYXNzdW1pbmcgdXNlciBzcGFjZSBoYXRlcyBz dWNoIGtpbmQgb2Ygc3R1ZmYuCj4gPj4KPiA+PiBJZiB3ZSB1c2UgdGhlICdiZXN0IGNpcmN1bXN0 YW5jZScgbWF4X3dpZHRoLCB3ZSBjYW4gZmlyc3Qgc3RhcnQKPiA+PiB3aXRoIGEgbWluaW11bSBu dW1iZXIgb2YgcGxhbmVzIHRoYXQgbmVlZCB0byBiZSBncm91cGVkIHRvIGFjaGlldmUKPiA+PiB0 aGUgdGFyZ2V0IG1vZGUuIElmIHRoYXQgZmFpbHMgdGhlIGF0b21pYyB0ZXN0LCB0aGVuIHdlIGNh biB0cnkgdG8KPiA+PiBhZGQgb25lIHBsYW5lIGF0IGEgdGltZSwgYW5kIHJlZHVjZSB0aGUgd2lk dGggZm9yIGVhY2ggcGxhbmUuCj4gPj4KPiA+PiBJZiB3ZSB1c2UgdGhlIG1pbmltdW0vJ2d1YXJh bnRlZWQgdG8gd29yaycgbWF4X3dpZHRoLCB3ZSdsbCBnZXQKPiA+PiBhIGhpZ2hlciBudW1iZXIg b2YgcGxhbmVzIHRoYW4gbmVlZGVkIGZvciB0aGlzIG1vZGUuIFRoaXMgd291bGQgcGFzcwo+ID4+ IHRoZSBhdG9taWMgdGVzdC4gV2UgY291bGQgdGhlbiByZWR1Y2UgYSBwbGFuZSBhdCBhIHRpbWUg YW5kIHNlZSB3aGVuCj4gPj4gd2UgZmFpbCB0aGUgYXRvbWljIHRlc3QuCj4gPj4KPiA+PiBJIGd1 ZXNzIHdlIG5lZWQgdG8gY2hvc2UgdGhlIG9uZSB0aGF0J3MgbW9yZSBwcm9iYWJsZSB0byBnZXQg cmlnaHQKPiA+PiB0aGUgZmlyc3QgdGltZS4gQ29uc2lkZXJpbmcgb25seSBwaXhlbCBmb3JtYXRz IGZvciBub3csIHRoZQo+ID4+IG1pbmltdW0vJ2d1YXJhbnRlZWQgdG8gd29yaycgd291bGQgbWFw IHRvIHRoZSBSR0IgZm9ybWF0cy4gVGhlIGJlc3QKPiA+PiBjaXJjdW1zdGFuY2Ugb25lcyB3b3Vs ZCBwcm9iYWJseSBiZSB0aGUgcGxhbmFyIHZpZGVvIGZvcm1hdHMuIFNpbmNlCj4gPj4gd2UgdXNl IFJHQiBtb3JlIG9mdGVuLCB0aGUgbWluaW11bSBvbmUgbWlnaHQgbWFrZSBtb3JlIHNlbnNlLgo+ ID4+Cj4gPj4gV2UgY291bGQsIG9mIGNvdXJzZSwgZ2l2ZSB0aGUgcHJvcGVydHkgYSByYW5nZSBv ZiBtYXggd2lkdGhzIHRvCj4gPj4gY29uZnVzZSB1c2VyIHNwYWNlIGV2ZW4gbW9yZS4KPiA+Cj4g PiBBbiBlbnRpcmVseSBkaWZmZXJlbnQgaWRlYSBmb3IgY2FzZXMgd2hlcmUgYSBzaW1wbGUgaGlu dCBwcm9wZXJ0eSBkb2Vzbid0Cj4gPiB3b3JrIChvdGhlciBpZGVhcyBmbG9hdGluZyBhcm91bmQg YXJlIGNhbl9zY2FsZSwgdG8gZ2l2ZSBhIGhpbnQgd2hldGhlciBhCj4gPiBwbGFuIGNhbiBhdCBs ZWFzdCBpbiB0aGVvcnkgdXAvZG93bnNjYWxlLCBvciBub3QgYXQgYWxsKSwgaXMgdGhhdCB0aGUK PiA+IGtlcm5lbCBnaXZlcyBtb3JlIHNwZWNpZmljIGhpbnRzIGFib3V0IHdoYXQgaXQgd291bGQg bGlrZSB0byBjaGFuZ2UuCj4gPgo+ID4gU28gaWYgdXNlcnNwYWNlIGFza3MgZm9yIGEgcGxhbmUs IGJ1dCBmb3IgdGhlIGdpdmVuIHBpeGVsIGZvcm1hdCBpdCdzIHRvbwo+ID4gd2lkZSwgdGhlIGtl cm5lbCBjb3VsZCByZXR1cm4gYSBuZXcgcHJvcG9zZWQgdmFsdWUgZm9yIHdpZHRoLiBUaGF0IHdv dWxkCj4gPiBiZSBzdXBlci1mbGV4aWJsZSBhbmQgY291bGQgY292ZXIgYWxsIGtpbmRzIG9mIHVz ZS1jYXNlIGxpa2Ugcm90YXRpb24KPiA+IG5lZWRpbmcgYSBzcGVjaWZpYyB0aWxpbmcgKGZiX21v ZGlmaWVyKSBvciBzcGVjaWZpYyBwaXhlbCBmb3JtYXQsIG9yCj4gPiBzcGVjaWZpYyBzdHJpZGUu Cj4gPgo+ID4gRm9yIHRoZSBjYXNlIGF0IGhhbmQgdGhlcmUncyBldmVuIG1vcmUgd29ybXM6IFdo YXQgYWJvdXQgc3RyaWRlCj4gPiByZXF1aXJlbWVudHM/IEFmYWlrIG9uIHNvbWUgaHcgeW91IGp1 c3QgbmVlZCB0byBzcGxpdCB0aGUgYnVmZmVycyBpbnRvIDIKPiA+IHBsYW5lcywgYnV0IGNhbiBr ZWVwIHRoZSB3aWRlIHN0cmlkZSAoc2luY2UgdGhlIGxpbWl0IGlzIHRoZSBzaXplIG9mIHRoZQo+ ID4gbGluZWJ1ZmZlcnMgaW4gdGhlIGh3KS4gT24gb3RoZXJzIHlvdSBuZWVkIHRvIHNwbGl0IHRo ZSBidWZmZXIgaXRzZWxmIGludG8KPiA+IDIsIGJlY2F1c2UgdGhlIHBsYW5lIGh3IGNhbid0IGNv cGUgd2l0aCBodWdlIHN0cmlkZXMuIEFnYWluIG1pZ2h0IGRlcGVuZAo+ID4gdXBvbiB0aGUgcGl4 ZWwgZm9ybWF0Lgo+ID4KPiA+IFNvIGluIGEgd2F5IGhlaWdodC93aWR0aCBpcyBib3RoIHRvbyBt dWNoIGluZm9ybWF0aW9uIGFuZCBub3QgcHJlY2lzZQo+ID4gZW5vdWdoLiBFbnRpcmVseSBkaWZm ZXJlbnQgYXBwcm9jaGVzOgo+ID4gLSBXZSBqdXN0IGFkZCBhIG1pZ2h0X25lZWRfc3BsaXRfcGxh bmUgcHJvcCB0byBjcnRjcyB3aGVyZSB0aGlzIG1pZ2h0IGJlCj4gPiAgIG5lZWRlZC4gVXNlcnNw YWNlIHRoZW4gZ2V0cyB0byByZXRyeSB3aXRoIHNwbGl0IGJ1ZmZlcnMgaWYgaXQgZG9lc24ndAo+ ID4gICB3b3JrIHdpdGggYSBodWdlIG9uZS4KPiA+Cj4gPiAtIFdoZW4gSSBkaXNjdXNzZWQgdGhp cyB3aXRoIHF1YWxjb20gZm9sa3MgZm9yIG1zbSB3ZSBjb25jbHVkZWQgdGhhdCB0aGUKPiA+ICAg c2ltcGxlc3QgYXBwcm9hY2ggd291bGQgYmUgdG8gaGlkZSB0aGlzIGluIHRoZSBrZXJuZWwuIFNv IGlmIHlvdSBoYXZlIGEKPiA+ICAgdG9vIHdpZGUgcGxhbmUsIGFuZCBuZWVkIDIgaHcgcGxhbmVz IHRvIHNjYW4gaXQgb3V0LCB0aGVuIGRvIHRoYXQKPiA+ICAgdHJhbnNwYXJlbnRseSBpbiB0aGUg a2VybmVsLiBPZiBjb3Vyc2UgdGhpcyBtZWFucyB0aGF0IHRoZXJlIHdpbGwgYmUgMQo+ID4gICAo b3IgMyBpZiB5b3UgbmVlZCBhIDJ4MiBzcGxpdCkgZmV3ZXIgcGxhbmVzIGF2YWlsYWJsZSwgYnV0 IHVzZXJzcGFjZQo+ID4gICBuZWVkcyB0byBpdGVyYXRpdmVseSBidWlsZCB1cCB0aGUgcGxhbmUg Y29uZmlnIHVzaW5nIEFUT01JQ19URVNUIGFueXdheS4KPiAKPiBKdXN0IGZ3aXcsIHRoZXJlIGFy ZSBhIGZldyB0aGluZ3MgdGhhdCB3ZSB3aWxsIHN0aWxsIGVuZCB1cAo+IGFic3RyYWN0aW5nIGlu IHRoZSBrZXJuZWwgYnkgdmlydHVhbGl6aW5nIHRoZSBtYXBwaW5nIGJldHdlZW4ga21zCj4gcGxh bmVzIGFuZCBodyBwaXBlcy4gIEFuZCB0aGUgYXBwcm9hY2ggb2Ygd2VzdG9uIGF0b21pYyBvZgo+ IGluY3JlbWVudGFsbHkgYWRkaW5nIG1vcmUgcGxhbmVzIHcvIFRFU1RPTkxZIGZsYWcgc2hvdWxk IHdvcmsgd2VsbCBmb3IKPiB0aGF0LiAgKExldCdzIGhvcGUgdGhlIHdlc3RvbiBiaXRzIGdldCB1 cHN0cmVhbSBzb21lIGRheS4uKQo+IAo+IEJ1dCBleHBvc2luZyB3aWR0aCBsaW1pdCBhdm9pZHMg dGhlIG9uZS1wbGFuZSB0byBtdWx0aXBsZS1waXBlcyBjYXNlLAo+IGNvbnNpZGVyYWJseSBzaW1w bGlmeWluZyB0aGluZ3MuICBBbmQgc2VlbWVkIGxpa2UgYSBnZW5lcmljIGVub3VnaAo+IGxpbWl0 IChpaXJjLCBpdCBhcHBsaWVzIHRvIG9tYXBkc3MgYW5kIHByb2JhYmx5IG90aGVycyksIHRoYXQg aXQgd291bGQKPiBiZSBjbGVhbmVyIHRvIGV4cG9zZSB0aGUgbGltaXQgdG8gdXNlcnNwYWNlLiAg U28gdGhlcmUgc2hvdWxkIGJlIGF0Cj4gbGVhc3QgYSBjb3VwbGUgb3RoZXIgZHJpdmVycyB0aGF0 IGNvdWxkIGF2b2lkIHZpcnR1YWxpemluZyBwbGFuZXMgd2l0aAo+IHNvbWUgaGVscCBmcm9tIHVz ZXJzcGFjZSBmb3IgdGhpcyBjYXNlLgo+IAo+IFJlZ2FyZGluZyByb3RhdGlvbiwgSSdtIG5vdCAx MDAlIHN1cmUuLiBzZWVtcyBsaWtlIHdlIGNvdWxkIGp1c3QKPiBkb2N1bWVudCB0aGVzZSBhcyB0 aGUgdW4tcm90YXRlZCBsaW1pdHMuICBJZiB3ZSByZWFsbHkgaGFkIHRvLCB3ZQo+IGNvdWxkIGRv IHNvbWUgc29ydCBvZiBkYW5jZSB3aGVyZSB1c2Vyc3BhY2Ugc2V0cyByb3RhdGlvbiBwcm9wZXJ0 eSBvbgo+IGFuIHVuLXVzZWQgcGxhbmUsIGFuZCB0aGVuIHJlYWRzLWJhY2sgdGhlIGN1cnJlbnQg dmFsdWVzIG9mIHRoZQo+IHJlYWQtb25seSBwcm9wJ3MuICBCdXQgdGhhdCBzZWVtcyBhd2t3YXJk LgoKSSdtIHRoaW5raW5nIGFsbCBvZiB0aGlzIGlzIGRvb21lZCB0byBmYWlsLiBTbyByaWdodCBu b3cgcGVvcGxlIHNlZW0gdG8Kd2FudCBzb21lIGtpbmQgb2YgbWF4aW11bSBzaXplIG9mIHRoZSBz b3VyY2Ugdmlld3BvcnQuIFdoYXQgYWJvdXQgdGhlCmRlc3RpbmF0aW9uIHNpemU/IElzIHRoZSBt YXggc2l6ZSBmb3IgdW5zY2FsZWQvc2NhbGVkL3NtZXRoaW5nIGVsc2U/ClJvdGF0aW9uL3BpeGVs IGZvcm1hdCB3ZXJlIGFscmVhZHkgbWVudGlvbmVkLiBIb3cgZG9lcyB0aGlzIGludGVyYWN0Cndp dGggc2NhbGluZyBsaW1pdHM/IFdoYXQgaWYgdGhlIHVzZXIgaXMgd2lsbGluZy9ub3Qgd2lsbGlu ZyB0byBkbyBhCm1vZGVzZXQgdG8gZ2V0IGEgaGlnaGVyIGNsb2NrIHNwZWVkIHRvIGdldCBtb2Fy IHNjYWxpbmc/IEhvdyBjb3VsZAp0aGUgdXNlciByZXF1ZXN0IGEgaGlnaGVyIGNsb2NrIHNwZWVk IHVwZnJvbnQ/CgpUaGVyZSBhcmUganVzdCBzbyBtYW55IHZhcmlhYmxlcyB0aGF0IHlvdSBjYW4n dCBleHBvc2UgdGhlbSB3aXRoIGEgZmV3Cm51bWJlcnMuIEkgdGhpbmsgbWF5YmUgdGhlIG9ubHkg bnVtYmVyIHdlIG1pZ2h0IGJlIGV4cG9zZSBlYXNpbHkgaXMKdGhlIGdsb2JhbCBtYXhpbXVtLgoK QXMgZmFyIGFzIHZpcnR1YWxpemluZyB0aGUgcmVzb3VyY2VzIGdvZXMuIEkgdGhpbmsgdGhhdCB3 b3VsZCBuZWVkIGEKd2hvbGUgbmV3IEFQSS4gT3IgYXQgbGVhc3QgYSBzZXBhcmF0ZSBzZXQgb2Yg b2JqZWN0cyBwZXJoYXBzLiBJJ20gdG9vCmxhenkgdG8gZGlnIHVwIGFsbCB0aGUgb2xkIGFyZ3Vt ZW50cyBub3csIGJ1dCBJJ20gcHJldHR5IHN1cmUgdGhlcmUKd2VyZSBtYW55LiBJZiB0aGlzIHdv dWxkIGJlIGRvbmUsIEkgc3VzcGVjdCB0aGUgb25seSBzYW5lIHdheSB0byBkbyBpdAp3b3VsZCBi ZSB0byBqdXN0IGhhdmUgYSBod2MgaW1wbGVtZW50YXRpb24gaW4gdGhlIGtlcm5lbC4gQXMgaW4g dXNlcgpzcGFjZSB3b3VsZCBwYXNzIGluIHRoZSBkZXNpcmVkIGNvbmZpZ3VyYXRpb24sIGFuZCB0 aGUga2VybmVsIHdvdWxkCmFzc2lnbiByZXNvdXJjZXMgYXMgYmVzdCBpdCBjYW4gYW5kIHJldHVy biB0aGUgcmVzdWx0IGJhY2sgdG8gdXNlcnNwYWNlLgoKPiAKPiBCUiwKPiAtUgo+IAo+ID4gSWYg cG9zc2libGUgZm9yIHlvdXIgaHcgSSdtIGhlYXZpbHkgbGVhbmluZyB0b3dhcmRzIHRoaXMgbGFz dCBhcHByb2FjaC4gSWYKPiA+IGZpdHMgZW50aXJlbHkgaW50byB0aGUgY3VycmVudCBhdG9taWMg ZGVzaWduLCBhbmQgYWxsIHRoZSBjb21wbGV4aXR5IGlzCj4gPiByZXN0cmljdGVkIHRvIHlvdXIg ZHJpdmVyICh5b3UgbmVlZCB0byBoYXZlIHNvbWUgYWxsb2NhdGlvbiBtYXAgYmV0d2Vlbgo+ID4g ZHJtIHBsYW5lcyBhbmQgcmVhbCBodyBwbGFuZXMsIGJ1dCB0aGF0J3MgaXQpLgo+ID4KPiA+IFRo b3VnaHRzPwo+ID4gLURhbmllbAo+ID4KPiA+Pgo+ID4KPiA+PiBBcmNoaXQKPiA+Pgo+ID4+ID4K PiA+PiA+Q2hlZXJzLCBEYW5pZWwKPiA+PiA+Cj4gPj4gPj5TaWduZWQtb2ZmLWJ5OiBBcmNoaXQg VGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgo+ID4+ID4+LS0tCj4gPj4gPj4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgfCAgOSArKysrKysrKysKPiA+PiA+PiAgZHJpdmVycy9n cHUvZHJtL2RybV9jcnRjLmMgICB8IDM4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gPj4gPj4gIGluY2x1ZGUvZHJtL2RybV9jcnRjLmggICAgICAgfCAgNiArKysrKysK PiA+PiA+PiAgMyBmaWxlcyBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspCj4gPj4gPj4KPiA+PiA+ PmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWMuYwo+ID4+ID4+aW5kZXggOGVlMWRiOC4uZmRlZDIyYSAxMDA2NDQKPiA+ PiA+Pi0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+PiA+PisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+PiA+PkBAIC04MzksNiArODM5LDE1IEBAIHN0YXRp YyBpbnQgZHJtX2F0b21pY19wbGFuZV9jaGVjayhzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+ PiA+PiAgICAgICAgICAgIHJldHVybiAtRVJBTkdFOwo+ID4+ID4+ICAgIH0KPiA+PiA+Pgo+ID4+ ID4+KyAgIGlmIChwbGFuZS0+bWF4X3dpZHRoICYmIChzdGF0ZS0+c3JjX3cgPj4gMTYpID4gcGxh bmUtPm1heF93aWR0aCB8fAo+ID4+ID4+KyAgICAgICBwbGFuZS0+bWF4X2hlaWdodCAmJiAoc3Rh dGUtPnNyY19oID4+IDE2KSA+IHBsYW5lLT5tYXhfaGVpZ2h0KSB7Cj4gPj4gPj4rICAgICAgICAg ICBEUk1fREVCVUdfQVRPTUlDKCJJbnZhbGlkIHNvdXJjZSB3aWR0aC9oZWlnaHQgIgo+ID4+ID4+ KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXUuJTA2dXgldS4lMDZ1XG4iLAo+ID4+ID4+ KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+c3JjX3cgPj4gMTYsICgoc3RhdGUt PnNyY193ICYgMHhmZmZmKSAqIDE1NjI1KSA+PiAxMCwKPiA+PiA+PisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RhdGUtPnNyY19oID4+IDE2LCAoKHN0YXRlLT5zcmNfaCAmIDB4ZmZmZikg KiAxNTYyNSkgPj4gMTApOwo+ID4+ID4+KyAgICAgICAgICAgcmV0dXJuIC1FUkFOR0U7Cj4gPj4g Pj4rICAgfQo+ID4+ID4+Kwo+ID4+ID4+ICAgIGZiX3dpZHRoID0gc3RhdGUtPmZiLT53aWR0aCA8 PCAxNjsKPiA+PiA+PiAgICBmYl9oZWlnaHQgPSBzdGF0ZS0+ZmItPmhlaWdodCA8PCAxNjsKPiA+ PiA+Pgo+ID4+ID4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiA+PiA+PmluZGV4IGUwOGY5NjIuLmYyZDNiOTIgMTAw NjQ0Cj4gPj4gPj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2NydGMuYwo+ID4+ID4+KysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9jcnRjLmMKPiA+PiA+PkBAIC0xMjY3LDYgKzEyNjcsOSBAQCBp bnQgZHJtX3VuaXZlcnNhbF9wbGFuZV9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ID4+ICAgIHBsYW5lLT5wb3NzaWJsZV9jcnRjcyA9IHBv c3NpYmxlX2NydGNzOwo+ID4+ID4+ICAgIHBsYW5lLT50eXBlID0gdHlwZTsKPiA+PiA+Pgo+ID4+ ID4+KyAgIHBsYW5lLT5tYXhfd2lkdGggPSAwOwo+ID4+ID4+KyAgIHBsYW5lLT5tYXhfaGVpZ2h0 ID0gMDsKPiA+PiA+PisKPiA+PiA+PiAgICBsaXN0X2FkZF90YWlsKCZwbGFuZS0+aGVhZCwgJmNv bmZpZy0+cGxhbmVfbGlzdCk7Cj4gPj4gPj4gICAgY29uZmlnLT5udW1fdG90YWxfcGxhbmUrKzsK PiA+PiA+PiAgICBpZiAocGxhbmUtPnR5cGUgPT0gRFJNX1BMQU5FX1RZUEVfT1ZFUkxBWSkKPiA+ PiA+PkBAIC00OTU3LDYgKzQ5NjAsNDEgQEAgaW50IGRybV9tb2RlX3BsYW5lX3NldF9vYmpfcHJv cChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiA+PiA+PiAgfQo+ID4+ID4+ICBFWFBPUlRfU1lN Qk9MKGRybV9tb2RlX3BsYW5lX3NldF9vYmpfcHJvcCk7Cj4gPj4gPj4KPiA+PiA+PitpbnQgZHJt X3BsYW5lX2NyZWF0ZV9tYXhfd2lkdGhfcHJvcChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgdWlu dDMyX3QgbWF4X3dpZHRoKQo+ID4+ID4+K3sKPiA+PiA+PisgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5 ICpwcm9wOwo+ID4+ID4+Kwo+ID4+ID4+KyAgIHByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3Jh bmdlKHBsYW5lLT5kZXYsIERSTV9NT0RFX1BST1BfSU1NVVRBQkxFLAo+ID4+ID4+KyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNQVhfVyIsIG1heF93aWR0aCwgbWF4X3dpZHRo KTsKPiA+PiA+PisgICBpZiAoIXByb3ApCj4gPj4gPj4rICAgICAgICAgICByZXR1cm4gLUVOT01F TTsKPiA+PiA+PisKPiA+PiA+PisgICBkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgmcGxhbmUt PmJhc2UsIHByb3AsIG1heF93aWR0aCk7Cj4gPj4gPj4rCj4gPj4gPj4rICAgcGxhbmUtPm1heF93 aWR0aCA9IG1heF93aWR0aDsKPiA+PiA+PisKPiA+PiA+PisgICByZXR1cm4gMDsKPiA+PiA+Pit9 Cj4gPj4gPj4rRVhQT1JUX1NZTUJPTChkcm1fcGxhbmVfY3JlYXRlX21heF93aWR0aF9wcm9wKTsK PiA+PiA+PisKPiA+PiA+PitpbnQgZHJtX3BsYW5lX2NyZWF0ZV9tYXhfaGVpZ2h0X3Byb3Aoc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmUsCj4gPj4gPj4rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1aW50MzJfdCBtYXhfaGVpZ2h0KQo+ID4+ID4+K3sKPiA+PiA+PisgICBzdHJ1Y3QgZHJt X3Byb3BlcnR5ICpwcm9wOwo+ID4+ID4+Kwo+ID4+ID4+KyAgIHByb3AgPSBkcm1fcHJvcGVydHlf Y3JlYXRlX3JhbmdlKHBsYW5lLT5kZXYsIERSTV9NT0RFX1BST1BfSU1NVVRBQkxFLAo+ID4+ID4+ KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNQVhfSCIsIG1heF9oZWlnaHQs IG1heF9oZWlnaHQpOwo+ID4+ID4+KyAgIGlmICghcHJvcCkKPiA+PiA+PisgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOwo+ID4+ID4+Kwo+ID4+ID4+KyAgIGRybV9vYmplY3RfYXR0YWNoX3Byb3Bl cnR5KCZwbGFuZS0+YmFzZSwgcHJvcCwgbWF4X2hlaWdodCk7Cj4gPj4gPj4rCj4gPj4gPj4rICAg cGxhbmUtPm1heF9oZWlnaHQgPSBtYXhfaGVpZ2h0Owo+ID4+ID4+Kwo+ID4+ID4+KyAgIHJldHVy biAwOwo+ID4+ID4+K30KPiA+PiA+PitFWFBPUlRfU1lNQk9MKGRybV9wbGFuZV9jcmVhdGVfbWF4 X2hlaWdodF9wcm9wKTsKPiA+PiA+PisKPiA+PiA+PiAgLyoqCj4gPj4gPj4gICAqIGRybV9tb2Rl X29ial9nZXRfcHJvcGVydGllc19pb2N0bCAtIGdldCB0aGUgY3VycmVudCB2YWx1ZSBvZiBhIG9i amVjdCdzIHByb3BlcnR5Cj4gPj4gPj4gICAqIEBkZXY6IERSTSBkZXZpY2UKPiA+PiA+PmRpZmYg LS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY3J0Yy5oIGIvaW5jbHVkZS9kcm0vZHJtX2NydGMuaAo+ ID4+ID4+aW5kZXggZTAxNzBiZi4uNjEwNDUyNyAxMDA2NDQKPiA+PiA+Pi0tLSBhL2luY2x1ZGUv ZHJtL2RybV9jcnRjLmgKPiA+PiA+PisrKyBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiA+PiA+ PkBAIC0xNTMxLDYgKzE1MzEsOCBAQCBzdHJ1Y3QgZHJtX3BsYW5lIHsKPiA+PiA+PiAgICB1aW50 MzJfdCAqZm9ybWF0X3R5cGVzOwo+ID4+ID4+ICAgIHVuc2lnbmVkIGludCBmb3JtYXRfY291bnQ7 Cj4gPj4gPj4gICAgYm9vbCBmb3JtYXRfZGVmYXVsdDsKPiA+PiA+PisgICB1aW50MzJfdCBtYXhf d2lkdGg7Cj4gPj4gPj4rICAgdWludDMyX3QgbWF4X2hlaWdodDsKPiA+PiA+Pgo+ID4+ID4+ICAg IHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiA+PiA+PiAgICBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVy ICpmYjsKPiA+PiA+PkBAIC0yNTUwLDYgKzI1NTIsMTAgQEAgZXh0ZXJuIHN0cnVjdCBkcm1fcHJv cGVydHkgKmRybV9tb2RlX2NyZWF0ZV9yb3RhdGlvbl9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Rldmlj ZQo+ID4+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBzdXBwb3J0ZWRfcm90YXRpb25zKTsKPiA+PiA+PiAgZXh0 ZXJuIHVuc2lnbmVkIGludCBkcm1fcm90YXRpb25fc2ltcGxpZnkodW5zaWduZWQgaW50IHJvdGF0 aW9uLAo+ID4+ID4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgc3VwcG9ydGVkX3JvdGF0aW9ucyk7Cj4gPj4gPj4rZXh0ZXJuIGludCBkcm1fcGxhbmVf Y3JlYXRlX21heF93aWR0aF9wcm9wKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ID4+KyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDMyX3QgbWF4X3dpZHRoKTsK PiA+PiA+PitleHRlcm4gaW50IGRybV9wbGFuZV9jcmVhdGVfbWF4X2hlaWdodF9wcm9wKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAo+ID4+ID4+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IG1heF9oZWlnaHQpOwo+ID4+ID4+Cj4gPj4gPj4gIC8qIEhlbHBl cnMgKi8KPiA+PiA+Pgo+ID4+ID4+LS0KPiA+PiA+PlRoZSBRdWFsY29tbSBJbm5vdmF0aW9uIENl bnRlciwgSW5jLiBpcyBhIG1lbWJlciBvZiB0aGUgQ29kZSBBdXJvcmEgRm9ydW0sCj4gPj4gPj5o b3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRpb24KPiA+PiA+Pgo+ID4+ID4KPiA+Pgo+ID4+IC0t Cj4gPj4gVGhlIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9m IHRoZSBDb2RlIEF1cm9yYSBGb3J1bSwKPiA+PiBob3N0ZWQgYnkgVGhlIExpbnV4IEZvdW5kYXRp b24KPiA+Cj4gPiAtLQo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUgRW5naW5lZXIsIElu dGVsIENvcnBvcmF0aW9uCj4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IF9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1haWxpbmcgbGlz dAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gClZpbGxlIFN5cmrDpGzD pApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3Jn Cmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVs Cg==