From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 4/9] drm/i915: Make derived plane state correct after crtc_enable Date: Wed, 11 Mar 2015 18:40:15 +0200 Message-ID: <20150311164015.GU11371@intel.com> References: <1425986129-15547-1-git-send-email-ville.syrjala@linux.intel.com> <1425986129-15547-5-git-send-email-ville.syrjala@linux.intel.com> <20150310170151.GH27526@intel.com> <20150310175713.GJ11371@intel.com> <20150311095229.GZ3800@phenom.ffwll.local> <20150311100539.GO11371@intel.com> <20150311102434.GH3800@phenom.ffwll.local> <20150311121938.GQ11371@intel.com> <20150311162327.GM3800@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 42C336E7C4 for ; Wed, 11 Mar 2015 09:40:30 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150311162327.GM3800@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBNYXIgMTEsIDIwMTUgYXQgMDU6MjM6MjdQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE1hciAxMSwgMjAxNSBhdCAwMjoxOTozOFBNICswMjAwLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gPiBPbiBXZWQsIE1hciAxMSwgMjAxNSBhdCAxMToyNDozNEFNICsw MTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4gPiBPbiBXZWQsIE1hciAxMSwgMjAxNSBhdCAx MjowNTozOVBNICswMjAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6Cj4gPiA+ID4gT24gV2VkLCBN YXIgMTEsIDIwMTUgYXQgMTA6NTI6MjlBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ ID4gPiA+IE9uIFR1ZSwgTWFyIDEwLCAyMDE1IGF0IDA3OjU3OjEzUE0gKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCB3cm90ZToKPiA+ID4gPiA+ID4gT24gVHVlLCBNYXIgMTAsIDIwMTUgYXQgMTA6MDE6 NTFBTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90ZToKPiA+ID4gPiA+ID4gPiBPbiBUdWUsIE1hciAx MCwgMjAxNSBhdCAwMToxNToyNFBNICswMjAwLCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bSB3cm90ZToKPiA+ID4gPiA+ID4gPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3ly amFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gPiA+ID4gPiAtc3RhdGljIHZvaWQgZGlzYWJs ZV9wbGFuZV9pbnRlcm5hbChzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiA+ID4gPiA+ID4gPiA+ ICtzdGF0aWMgdm9pZCBfaW50ZWxfY3J0Y19lbmFibGVfcGxhbmVzKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQo+ID4gPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IGludGVs X3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKPiA+ID4gPiA+ID4g PiA+IC0Jc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAqc3RhdGUgPQo+ID4gPiA+ID4gPiA+ID4gLQkJ cGxhbmUtPmZ1bmNzLT5hdG9taWNfZHVwbGljYXRlX3N0YXRlKHBsYW5lKTsKPiA+ID4gPiA+ID4g PiA+IC0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX3Bs YW5lX3N0YXRlKHN0YXRlKTsKPiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmJhc2UuZGV2Owo+ID4gPiA+ID4gPiA+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNy dGMtPnBpcGU7Cj4gPiA+ID4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Cj4g PiA+ID4gPiA+ID4gPiArCWNvbnN0IHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgKmNydGNf ZnVuY3MgPQo+ID4gPiA+ID4gPiA+ID4gKwkJY3J0Yy0+YmFzZS5oZWxwZXJfcHJpdmF0ZTsKPiA+ ID4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gPiA+IC0JaW50ZWxfc3RhdGUtPnZpc2libGUgPSBm YWxzZTsKPiA+ID4gPiA+ID4gPiA+IC0JaW50ZWxfcGxhbmUtPmNvbW1pdF9wbGFuZShwbGFuZSwg aW50ZWxfc3RhdGUpOwo+ID4gPiA+ID4gPiA+ID4gKwlmb3JfZWFjaF9pbnRlbF9wbGFuZShkZXYs IHBsYW5lKSB7Cj4gPiA+ID4gPiA+ID4gPiArCQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBl cl9mdW5jcyAqZnVuY3MgPQo+ID4gPiA+ID4gPiA+ID4gKwkJCXBsYW5lLT5iYXNlLmhlbHBlcl9w cml2YXRlOwo+ID4gPiA+ID4gPiA+ID4gKwkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpzdGF0 ZSA9Cj4gPiA+ID4gPiA+ID4gPiArCQkJdG9faW50ZWxfcGxhbmVfc3RhdGUocGxhbmUtPmJhc2Uu c3RhdGUpOwo+ID4gPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiA+ID4gLQlpbnRlbF9wbGFuZV9k ZXN0cm95X3N0YXRlKHBsYW5lLCBzdGF0ZSk7Cj4gPiA+ID4gPiA+ID4gPiArCQlpZiAocGxhbmUt PnBpcGUgIT0gcGlwZSkKPiA+ID4gPiA+ID4gPiA+ICsJCQljb250aW51ZTsKPiA+ID4gPiA+ID4g PiA+ICsKPiA+ID4gPiA+ID4gPiA+ICsJCWlmIChmdW5jcy0+YXRvbWljX2NoZWNrKCZwbGFuZS0+ YmFzZSwgJnN0YXRlLT5iYXNlKSkKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBNYXliZSBh ZGQgYSBXQVJOX09OKCkgaGVyZT8gIEknbSBhc3N1bWluZyB0aGF0IHRoaXMgc2hvdWxkbid0IHJl YWxseSBiZQo+ID4gPiA+ID4gPiA+IHBvc3NpYmxlIHNpbmNlIGlmIHRoaXMgZmFpbHMgaXQgbWVh bnMgd2UndmUgYWxyZWFkeSBwcmV2aW91c2x5IGRvbmUgYQo+ID4gPiA+ID4gPiA+IGNvbW1pdCBv ZiBpbnZhbGlkIHN0YXRlIG9uIGEgcHJldmlvdXMgYXRvbWljIHRyYW5zYWN0aW9uLiAgQnV0IGlm IGl0Cj4gPiA+ID4gPiA+ID4gZG9lcyBzb21laG93IGhhcHBlbiwgdGhlIFdBUk4gd2lsbCBnaXZl IHVzIGEgY2x1ZSB3aHkgdGhlIHBsYW5lIGNvbnRlbnRzCj4gPiA+ID4gPiA+ID4gc2ltcGx5IGRp ZG4ndCBzaG93IHVwLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSSBjYW4gdGhpbmsgb2Ygb25l IHdheSB0byBtYWtlIGl0IGZhaWwuIFRoYXQgaXMsIGZpcnN0IHNldCBhIHNtYWxsZXIKPiA+ID4g PiA+ID4gbW9kZSB3aXRoIHRoZSBwcmltYXJ5IHBsYW5lIChhbmQgZmIpIGNvbmZpZ3VyZWQgdG8g Y292ZXIgdGhhdCBmdWxseSwgYW5kCj4gPiA+ID4gPiA+IHRoZW4gc3dpdGNoIHRvIGEgbGFyZ2Vy IG1vZGUgd2l0aG91dCByZWNvbmZpZ3VyaW5nIHRoZSBwcmltYXJ5IHBsYW5lLiBJZgo+ID4gPiA+ ID4gPiB0aGUgaGFyZHdhcmUgcmVxdWlyZXMgdGhlIHByaW1hcnkgcGxhbmUgdG8gYmUgZnVsbHNj cmVlbiBpdCdsbCBmYWlsLiBCdXQKPiA+ID4gPiA+ID4gdGhhdCBzaG91bGQgYWN0YXVsbHkgbm90 IGJlIHBvc3NpYmxlIHVzaW5nIHRoZSBsZWdhY3kgbW9kZXNldCBBUEkgYXMgaXQKPiA+ID4gPiA+ ID4gYWx3YXlzIHJlY29uZmlndXJlcyB0aGUgcHJpbWFyeSwgc28gd2UnZCBvbmx5IGhhdmUgdG8g d29ycnkgYWJvdXQgdGhhdAo+ID4gPiA+ID4gPiB3aXRoIGZ1bGwgYXRvbWljIG1vZGVzZXQsIGFu ZCBmb3IgdGhhdCB3ZSBhbnl3YXkgbmVlZCB0byBjaGFuZ2UgdGhlIGNvZGUKPiA+ID4gPiA+ID4g dG8gZG8gdGhlIGNoZWNrIHN0dWZmIHVwIGZyb250Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g U28geWVhaCwgd2l0aCB0aGUgd2F5IHRoaW5ncyBhcmUgdGhpcyBzaG91bGQgbm90IGJlIGFibGUg dG8gZmFpbC4gSSdsbAo+ID4gPiA+ID4gPiByZXNwaW4gd2l0aCB0aGUgV0FSTi4KPiA+ID4gPiA+ IAo+ID4gPiA+ID4gSSBoYXZlbid0IGZ1bGx5IGR1ZyBpbnRvIHRoZSBkZXRhaWxzIGhlcmUsIGJ1 dCBhIGZldyByYW5kb21lIGNvbW1lbnRzOgo+ID4gPiA+ID4gLSBXaGlsZSB0cmFuc2l0aW9uaW5n IHdlJ3JlIGNhbGxpbmcgdGhlIHRyYW5zaXRpb25hbCBwbGFuZSBoZWxwZXJzLCB3aGljaAo+ID4g PiA+ID4gICBzaG91bGQgY2FsbCB0aGUgYXRvbWljX2NoZWNrIHN0dWZmIGZvciB1cyBvbiB0aGUg cHJpbWFyeSBwbGFuZS4gSWYgd2UKPiA+ID4gPiA+ICAgbmVlZCB0byBjYWxsIGF0b21pY19jaGVj ayBvbiBvdGhlciBwbGFuZXMgdG9vICh3aHk/KQo+ID4gPiA+IAo+ID4gPiA+IEJlY2F1c2Ugd2Ug d2FudCB0aGUgZGVyaXZlZCBzdGF0ZSB0byBiZSB1cGRhdGVkIHRvIG1hdGNoIHRoZSAocG90ZW50 aWFsbHkKPiA+ID4gPiBjaGFuZ2VkKSBjcnRjIGNvbmZpZy4gV2UgZG8gY2FsbCB0aGUgLnVwZGF0 ZV9wbGFuZSgpIGhvb2sgZnJvbSB0aGUKPiA+ID4gPiBtb2Rlc2V0IHBhdGgsIGJ1dCB0aGF0IGhh cHBlbnMgYXQgYSB0aW1lIHdoZW4gdGhlIHBpcGUgaXMgb2ZmLCBzbyBvdXIKPiA+ID4gPiBjbGlw cGluZyBjYWxjdWxhdGlvbnMgZW5kIHVwIHNheWluZyB0aGUgcGxhbmUgaXMgaW52aXNpYmxlLiBJ IHRoaW5rIGZpeGluZwo+ID4gPiA+IHRoYXQgdGhlIHJpZ2h0IHdheSBwcmV0dHkgbXVjaCBpbnZv bHZlcyB0aGUgYXRvbWljIGNvbnZlcnNpb24gb2YgdGhlCj4gPiA+ID4gbW9kZXNldCBwYXRoLgo+ ID4gPiAKPiA+ID4gV2h5IGRvIHdlIGNvbmNsdWRlIGl0J3MgaW52aXNpYmxlPwo+ID4gCj4gPiBC ZWNhdXNlIGNydGMtPmFjdGl2ZS4gU28gZm9yIHRoaXMgd2UnbGwgYmUgd2FudGluZyBjcnRjX3N0 YXRlLT5hY3RpdmUKPiA+IG9yIHNvbWVzdWNoIHdoaWNoIHRlbGxzIHVzIHVwZnJvbnQgd2hldGhl ciB0aGUgcGlwZSBpcyBnb2luZyB0byBiZQo+ID4gYWN0aXZlIG9yIG5vdC4KPiA+IAo+ID4gQnV0 IHRoYXQncyBhbHNvIGJlc2lkZSB0aGUgcG9pbnQgYSBiaXQgc2luY2Ugd2Ugc3RpbGwgd2FudCB0 byBtYWtlIGNhbGwKPiA+IHRoZSAuYXRvbWljX2NoZWNrKCkgZm9yIGFsbCBwbGFuZXMuIFJpZ2h0 IG5vdyB3ZSdkIGNhbGwgaXQgZm9yIHByaW1hcnkKPiA+IChhdCB0aGUgd3JvbmcgcG9pbnQgd3J0 LiBjcnRjLT5hY3RpdmUpIGFuZCB3ZSBjYWxsIGl0IGZvciBzcHJpdGVzIGxhdGVyCj4gPiB3aGVu IGNydGMtPmFjdGl2ZSBpcyBzaG93aW5nIHRoZSByaWdodCBzdGF0ZSwgYnV0IHdlIGRvbid0IGNh bGwgaXQgYXQKPiA+IGFsbCBmb3IgY3Vyc29ycy4gVGhhdCdzIHdoeSB3ZSBzdGlsbCBoYXZlIHRo YXQgYWQtaG9jIGV4dHJhIGN1cnNvcgo+ID4gY2xpcHBpbmcgY29kZSBpbiBpbnRlbF91cGRhdGVf Y3Vyc29yKCkuIElmIHdlIGNvdWxkIG1ha2UgdGhlIGRlcml2ZWQKPiA+IHBsYW5lIHN0YXRlIGNv cnJlY3QsIHdlIGNvdWxkIHRocm93IHRoYXQgc3R1ZmYgb3V0IGFzIHdlbGwgYW5kIHRydXN0IHRo ZQo+ID4gcmVndWxhciBwbGFuZSBjbGlwcGluZyBjYWxjdWxhdGlvbnMgdG8gdGVsbCB1cyB3aGVu IHRoZSBjdXJzb3IgaGFzIGdvbmUKPiA+IG9mZnNjcmVlbi4KPiA+IAo+ID4gSXQnbGwgYWxzbyBt YWtlIHRoZSBwbGFuZSBzdGF0ZSBiZWhhdmUgaW4gYSBjb25zaXRlbnQgbWFubmVyIHdydC4KPiA+ IGNydGMtPmFjdGl2ZS4gQXMgaXQgc3RhbmRzIHlvdSBzaW1wbHkgY2FuJ3QgdHJ1c3QgdGhlIHBs YW5lIHN0YXRlIGZvcgo+ID4gcHJpbWFyeS9jdXJzb3IgcGxhbmVzLgo+ID4gCj4gPiBTbyB0byBm aXggYWxsIG9mIHRoYXQsIEkganVzdCB3ZW50IGFoZWFkIGFuZCBjYWxsZWQgaXQgZm9yIGFsbCBw bGFuZXMgYXQKPiA+IHRoZSBwb2ludCB3aGVyZSB3ZSBjdXJyZW50bHkgY2FsbCBpdCBmb3Igc3By aXRlcy4gSSBjb3VsZCBoYXZlIGp1c3QgZ29uZQo+ID4gYWhlYWQgYW5kIGNhbGxlZCB0aGUgaGln aGVyIGxldmVsIC51cGRhdGVfcGxhbmUoKSBmdW5jIGZvciBhbGwgb2YgdGhlbQo+ID4gKGFzIHdl IGRpZCBmb3Igc3ByaXRlcyBhbHJlYWR5KSBidXQgZ29pbmcgb25lIGxldmVsIGxvd2VyIGFsbG93 ZWQgbWUgdG8KPiA+IGdldCB0aGUgcGxhbmVzIHRvIHBvcCBpbi9vdXQgYXRvbWljYWxseS4KPiA+ IAo+ID4gSSB0aGluayBpdCdzIHRoZSBiZXN0IHdheSB0byBtb3ZlIGZvcndhcmQgd2l0aCBnZXR0 aW5nIHRoZSBwbGFuZSBhbmQgd20KPiA+IGNvZGUgaW50byBzb21lIGtpbmQgb2Ygc2FuZSBzdGF0 ZS4KPiA+IAo+ID4gPiBJZiB3ZSBjYW4gZml4IHRoZSBzdGF0ZSB0byBub3QgZGVwZW5kCj4gPiA+ IHVwb24gdGhlIGRwbXMgc3RhdGUgdGhlbiB0aGluZ3Mgc2hvdWxkIHdvcmsgLi4uCj4gPiAKPiA+ IFRoYXQncyBhIG1vcmUgZHJhc3RpYyBjaGFuZ2UgYW5kIG5lZWRzIHdheSBtb3JlIHRob3VnaHQu Cj4gCj4gWWVhaCwgYnV0IHRoYXQncyB3aGF0IHdlIG5lZWQgdG8gYWltIGZvciBldmVudHVhbGx5 LiBTbyBJIHdhbnQgdG8gbWFrZQo+IHN1cmUgd2UncmUgbm90IHJ1bm5pbmcgaW50byB0aGUgd3Jv bmcgZGlyZWN0aW9uIGFuZCB0aGVuIGhhdmUgdG8gYmFja3RyYWNrCj4gZXZlbiBtb3JlLgo+IAo+ ID4gPiA+ID4gICB0aGVuIEkgdGhpbmsgdGhhdAo+ID4gPiA+ID4gICBzaG91bGQgYmUgZG9uZSBh cyBjbG9zZSBhcyBwb3NzaWJsZSB0byB3aGVyZSB3ZSBkbyB0aGF0IGZvciB0aGUgcHJpbWFyeQo+ ID4gPiA+ID4gICBvbmUuIFNpbmNlIGV2ZW50dWFsbHkgd2UgbmVlZCB0byB1bmJ1cnkgdGhhdCBj YWxsIGFnYWluLgo+ID4gPiA+IAo+ID4gPiA+IFdpdGggbXkgcGF0Y2ggX2FsbF8gcGxhbmVzIGdl dCB0aGVpciAuYXRvbWljX2NoZWNrKCkgY2FsbGVkIGluIHRoZSBzYW1lCj4gPiA+ID4gcGxhY2Ug KGR1cmluZyBwbGFuZSBlbmFibGUgcGhhc2Ugb2YgLmNydGNfZW5hYmxlKCkpLgo+ID4gPiA+IAo+ ID4gPiA+ID4gCj4gPiA+ID4gPiAtIEkgZG9uJ3QgbGlrZSBmcm9iYmluZyBzdGF0ZSBvYmplY3Rz IHdoaWNoIGFyZSBjb21taXR0ZWQgKGkuZS4gdXBkYXRpbmcKPiA+ID4gPiA+ICAgdmlzaWJsZSBs aWtlIGhlcmUpLCB0aGV5J3JlIHN1cHBvc2VkIHRvIGJlIGludmFyaWFudC4gV2l0aCBwcm9wZXIg YXRvbWljCj4gPiA+ID4gPiAgIHRoZSB3YXkgdG8gZGVhbCB3aXRoIHRoYXQgaXMgdG8gZ3JhYiBh bGwgdGhlIHJlcXVpcmVkIHBsYW5lIHN0YXRlcyBhbmQKPiA+ID4gPiA+ICAgcHV0IHRoZW0gaW50 byB0aGUgZHJtX2F0b21pY19zdGF0ZSB1cGRhdGUgc3RydWN0dXJlLgo+ID4gPiA+IAo+ID4gPiA+ IFdlIHJlYWxseSB3YW50IHRvIGZyb2IgaXQgc28gdGhhdCB0aGUgZGVyaXZlZCBzdGF0ZSB3aWxs IHJlZmxlY3QKPiA+ID4gPiByZWFsaXR5LiBNb3N0IGltcG9ydGFudGx5IHN0YXRlLT52aXNpYmxl IHNob3VsZCBiZSBmYWxzZSB3aGVuZXZlciB0aGUKPiA+ID4gPiBwaXBlIGlzIG9mZiwgb3RoZXJ3 aXNlIHdlIGNhbid0IHRydXN0IHN0YXRlLT52aXNpYmxlIGFuZCB3b3VsZCBhbHNvIG5lZWQKPiA+ ID4gPiBnbyBsb29rIGF0IHRoZSBjcnRjIHN0YXRlIHdoZW5ldmVyIHdlJ3JlIHRyeWluZyB0byBk ZWNpZGUgaWYgdGhlIHBsYW5lCj4gPiA+ID4gaXMgYWN0dWFsbHkgb24gb3Igbm90Lgo+ID4gPiAK PiA+ID4gSW1vIHRoYXQncyB0aGUgY29ycmVjdCB0aGluZyB0byBkby4gQ2FsbGluZyBwbGFuZSBo b29rcyB3aGVuIHRoZSBwaXBlIGlzCj4gPiA+IG9mZiBqdXN0IGRvZXNuJ3Qgc2VlbSBsaWtlIGEg Z29vZCBpZGVhIHRvIG1lLiBUb2dldGhlciB3aXRoIHJ1bnRpbWUgcG0gYXQKPiA+ID4gbGVhc3Qs IGNydGMvYXRvbWljIGhlbHBlcnMgaGF2ZSBzb21lICJpbnRlcmVzdGluZyIgaGVyaXRhZ2UuCj4g PiA+IAo+ID4gPiBCdXQgZXZlbiB0aGVyZSB5b3UgY2FuIGZpeCBpdCBieSBqdXN0IHJlb3JkZXJp bmcgdGhlIGNvbW1pdF9wbGFuZXMgY2FsbCB0bwo+ID4gPiB0aGUgYm90dG9tLCB3aGVyZSBldmVy eXRoaW5nIHNob3VsZCBiZSBvbi4gSWlyYyB0aGF0J3MgaG93IExhdXJlbnQgZml4ZWQKPiA+ID4g dXAgcmNhciBydW50aW1lIHBtIGlzc3VlcyB0byBhdm9pZCB0b3VjaGluZyBwbGFuZXMgd2hlbiB0 aGUgaHcgaXMgb2ZmLgo+ID4gPiAKPiA+ID4gVGhlIG90aGVyIHJlYXNvbiB3aHkgLT52aXNpYmxl IG11c3QgdGFrZSBpbnRvIGFjY291bnQgZHBtcyBzdGF0ZSBpcyB0aGF0Cj4gPiA+IHdlJ2xsIHNj cmV3IHVwIHRoZSB3YXRlcm1hcmsgY29tcHV0YXRpb24gb3RoZXJ3aXNlLiBXaGljaCBjb3VsZCBy ZXN1bHQKPiA+ID4gaW50byBhIGZhaWx1cmUgb24gYSBzdWJzZXF1ZW50IGRwbXMgb24sIHdoaWNo IGlzIGEgYmlnIG5vLW5vLgo+ID4gCj4gPiBIbW0sIHJpZ2h0LiBTbyBmb3IgbW9zdCBjYWxjdWxh dGlvbnMgd2UnbGwganVzdCB3YW50IHRvIGlnbm9yZSB0aGUKPiA+IERQTVMgc3RhdGUgYW5kIGNh bGN1bGF0ZSB0aGluZ3MgYXMgaWYgdGhlIHBpcGUgd2FzIGFjdGl2ZSAoc28gb25seQo+ID4gbG9v a2luZyBhdCBjcnRjX3N0YXRlLT5lbmFibGVkIEkgc3VwcG9zZSkuIEJ1dCB3aGVuIGl0J3MgYWN0 dWFsbHkKPiA+IHRpbWUgdG8gd3JpdGUgdGhlIHZhbHVlcyBpbnRvIHRoZSBoYXJkd2FyZSB3ZSBu ZWVkIHRvbyBjb25zaWRlcgo+ID4gdGhlIGFjdHVhbCBzdGF0ZSBvZiB0aGUgcGlwZSBhcyB3ZWxs IChzbyB0YWtpbmcgRFBNUyBpbnRvIGFjY291bnQpLgo+ID4gCj4gPiBTbyB5ZWFoLCBpZiB3ZSBk ZWNvdXBsZSBwbGFuZV9zdGF0ZS0+dmlzaWJsZSBmcm9tIGNydGMtPmFjdGl2ZSBhbmQganVzdAo+ ID4gbWFrZSBpdCBjaGVjayBjcnRjX3N0YXRlLT5lbmFibGVkIHRoZW4gcGxhbmVfc3RhdGUtPnZp c2libGUgY2FuIGJlIHVzZWQKPiA+IHRvIGRvIGFsbCB0aGUgY2xpcHBpbmcsIGFuZCB1cGZyb250 IHBlci1waXBlIHdtIGNhbGN1bGF0aW9ucy4gQnV0IHdoZW4KPiA+IGl0IGNvbWVzIHRpbWUgdG8g YXBwbHkgdGhlIHBsYW5lIHN0YXRlIG9yIHdhdGVybWFya3MgdG8gdGhlIGhhcmR3YXJlIHdlCj4g PiBuZWVkIHRvIGNoZWNrIHRoZSBhY3R1YWwgcGlwZSBzdGF0ZS4KPiA+IAo+ID4gU28gZ29vZCBw bGFuLCBidXQgbmVlZHMgcXVpdGUgYSBiaXQgb2Ygd29yayB0byBnZXQgdXMgdGhlcmUuCj4gPiAK PiA+ID4gPiBBcyBmb3IgdGhlIGRpcmVjdCBzdGF0ZSBmcm9iYmluZywgd2UgY291bGQgbWFrZSBh IGNvcHkgSSBndWVzcyBhbmQgZnJvYgo+ID4gPiA+IHRoYXQgaW5zdGVhZCwgYW5kIHRoZW4gY29t bWl0IGl0LiBCdXQgdGhhdCBzZWVtcyBhIGxvdCBvZiB3b3JrIGZvciBubyBnYWluLgo+ID4gPiAK PiA+ID4gVGhhdCdzIGhvdyBhdG9taWMgaXMgc3VwcG9zZWQgdG8gd29yayByZWFsbHkuIEJ1dCB3 ZSBjYW4ndCBtYWtlIGEgY29weSBpbgo+ID4gPiB0aGUgY3J0Y19lbmFibGUgcmVhbGx5IHNpbmNl IHRoYXQgc2hvdWxkIG5ldmVyIGZhaWwsIGFuZCB3ZSBjYW4ndCBwdXNoIGl0Cj4gPiA+IG91dCBz aW5jZSB3ZSBtaWdodCBub3QgaG9sZCBhbGwgdGhlIGxvY2tzLiBUaGF0J3MgYWxsIG9mY291cnNl IGZvciB0aGUKPiA+ID4gYXRvbWljIGVuZC1zdGF0ZSwgYnV0IEkgdGhpbmsgZXZlbiBhcyBhbiBp bnRlcmltIGRldG91ciB0aGlzIGFwcHJvYWNoIGhlcmUKPiA+ID4gZG9lc24ndCBmZWVsIGxpa2Ug YSBnb29kIGFwcHJvYWNoIHRvIG1lLgo+ID4gCj4gPiBXZSdyZSBnb2luZyB0byBuZWVkIHRoZSAi ZGV0b3VyIi4gVGhhdCBpcywgd2UgZG8gbmVlZCB0byBjYWxsIHRoZQo+ID4gLmF0b21pY19jaGVj aygpIGZvciBhbGwgcGxhbmVzIGF0IG1vZGVzZXQgdGltZS4gQnV0IHRyeWluZyB0byBkbyBpdAo+ ID4gZWFybGllciB3aWxsIG1lYW4gY2hhbmdpbmcgYWxsIHRoZSBwbGFuZSB2aXNpYmlsaXR5IGNh bGN1bGF0aW9ucyB0bwo+ID4gY29uc2lkZXIgdGhlIHBpcGUgYWN0aXZlIHdoZW5ldmVyIGNydGNf c3RhdGUtPmVuYWJsZWQ9PXRydWUsIGFuZAo+ID4gdGhhdCdzIGdvaW5nIHRvIHJlcXVpcmUgY2Fy ZWZ1bCByZXZpZXcgb2YgdGhlIGNvZGUgdG8gbWFrZSBzdXJlIHdlCj4gPiBkb24ndCB0cnVzdCB0 aGUgcGxhbmUgdmlzaWJpbGl0eS9jbGlwcGluZyBpbmZvcm1hdGlvbiB0b28gbXVjaC4gQW5kCj4g PiB0aGUgc2FtZSBnb2VzIGZvciB0aGUgd2F0ZXJtYXJrIGNvZGUuCj4gPiAKPiA+IFNvIEkgc3Rp bGwgdGhpbmsgdGhpcyBpcyB0aGUgcmlnaHQgc3RlcCB0byBtb3ZlIGZvcndhcmQuIEl0J2xsIGFs bG93IHVzCj4gPiB0byB1c2UgdGhlIGRlcml2ZWQgcGxhbmUgc3RhdGUgY29ycmVjdGx5IChhbmQg c2luY2UgaXQgc3RpbGwgZGVwZW5kcyBvbgo+ID4gY3J0Yy0+YWN0aXZlIHdlIHdvbid0IHJpc2sg ZW5hYmxpbmcgcGxhbmVzIHdoZW4gdGhlIHBpcGUgaXMgb2ZmKSwgd2hpY2gKPiA+IGFsbG93cyB0 aGUgcGxhbmUgYW5kIHdtIGNvZGUgdG8gZXZvbHZlIGluIHNtYWxsIHN0ZXBzLCByYXRoZXIgdGhh biBzb21lCj4gPiBtYXNzIGNvbnZlcnNpb24uIEkgdGhpbmsgdGhlcmUgaGF2ZSBiZWVuIG1vcmUg dGhhbiBlbm91Z2ggcmVncmVzc2lvbnMKPiA+IHJlY2VudGx5Lgo+IAo+IE9rLCBtYWtlcyBzZW5z ZS4gSXQnbGwgbWVhbiB0aGF0IHRoZXJlJ3MgbW9yZSBzdGVwcyBvdmVyYWxsIHRob3VnaCwgd2hp Y2gKPiBtaWdodCBsZWFkIHRvIG1vcmUgcmVncmVzc2lvbnMgb3ZlcmFsbCwganVzdCBzcHJlYWQg b3V0IGEgYml0LiBBbmQgd2UKPiBkZWZpbml0ZWx5IG5lZWQgdG8gbWFrZSBzdXJlIHdlIHVud3Jh cCB0aGlzIGRldG91ciBhZ2Fpbi4gQXMgbG9uZyBhcwo+IEFuZGVyL01hdHQveW91IGNhbiByb3Vn aGx5IGFncmVlIG9uIGEgcGxhbiBmb3J3YXJkIEknbGwgZ28gYWxvbmcgd2l0aCBpdC4KPiAKPiBG b3IgYXRvbWljIGluIHRoZSBlbmQgSSB0aGluayB0aGUgaW1wb3J0YW50IGJpdCByZWFsbHkgZnJv bSBteSBwb3YgaXMgdGhhdAo+IHdlIG11c3Qgbm90IGRlcGVuZCBpbiBhbnkgd2F5IHVwb24gbmVp dGhlciBpbnRlbF9jcnRjLT5hY3RpdmUgbm9yCj4gY3J0Y19zdGF0ZS0+YWN0aXZlIGluIHRoZSB3 YXRlcm1hcmsgY29tcHV0YXRpb24gY29kZS4gT2YgY291cnNlIHRoYXQgbWVhbnMKPiB3ZSBuZWVk IHRvIGRvIHNvbWUgdW50YW5nbGluZyB0byBtYWtlIHN1cmUgdGhhdCB3ZSBjYW4gY29ycmVjdGx5 IHNodXQgZG93bgo+IGV2ZXJ5dGhpbmcgaWYgY3J0Y19zdGF0ZS0+YWN0aXZlIGlzbid0IHNldC4K PiAKPiBBbHNvIGRvIHdlIGhhdmUgaWd0IHRlc3RjYXNlcyBmb3IgdGhlIHJlZ3Jlc3Npb25zIHRo aXMgcGF0Y2ggc2VyaWVzIGZpeGVzPwo+IGF0b21pYyBpcyByZWFsbHkgY29tcGxleCwgSSB0aGlu ayB3ZSBzaG91bGQgZmlsbCBvdXQgZ2FwcyBhcyB3ZSBnbyBhbG9uZy4KPiBTbyBpZiB3ZSBoYXZl IHRoZW0gd2UgbmVlZCB0byBhZGQgdGhlbSB0byB0aGUgbGlzdCAtIERhbmllbCBTdG9uZSBpcwo+ IHNpbmdlZCB1cCB0byB3b3JrIHRoYXQgb25lIGRvd24gOy0pCgpJJ20gbm90IHN1cmUgd2UndmUg aGFkIHJlYWwgcmVncmVzc2lvbnMgaGVyZS4gQnV0IHRoYXQncyBwcmV0dHkgbXVjaApqdXN0IHB1 cmUgbHVjayBkdWUgdG8gdGhlIGZhY3QgdGhhdCB3ZSBoYXZlbid0IGJlZW4gdXNpbmcgdGhlIGRl cml2ZWQKcGxhbmUgc3RhdGUgZXhjZXB0IGZvciBzcHJpdGVzIChmb3Igd2hpY2ggd2UgYWxyZWFk eSBkaWQgdGhlIGZ1bGwKLnVwZGF0ZV9wbGFuZSgpIHRoaW5nKS4KClNvIHRoZSBjdXJzb3IgY2Fz ZSB3YXMgc2F2ZWQgYnkgdGhlIGV4dHJhIGNsaXBwaW5nIHN0ZXAgaW4KaW50ZWxfdXBkYXRlX2N1 cnNvcigpLCBhbmQgZm9yIHByaW1hcnkgd2UndmUganVzdCBiZWVuIGxvb2tpbmcgYXQgdGhlCnVz ZXIgcHJvdmlkZWQgdW5jbGlwcGVkIHN0YXRlLCBhbmQgd2UndmUgYmVlbiB1c2luZyB0aGUgcGlw ZSBzb3VyY2Ugc2l6ZQphcyB0aGUgcGxhbmUgc2l6ZS4gU28gYXMgbG9uZyBhcyB0aGUgdXNlciBk aWRuJ3QgcHV0IHRoZSBwcmltYXJ5CnBhcnRpYWxseSBvZmZzY3JlZW4gdG8gcmVxdWlyZSBjbGlw cGluZywgdGhpbmdzIGhhdmUgYmVlbiB3b3JraW5nIG1vcmUKb3IgbGVzcyBub3JtYWxseS4KCkJ1 dCB0byBtb3ZlIGZvcndhcmQgd2l0aCB0aGUgcHJpbWFyeSBwbGFuZSB3aW5kb3dpbmcgZXRjLiB3 ZSBuZWVkIHRvCnN0YXJ0IGxvb2tpbmcgYXQgdGhlIGRlcml2ZWQgc3RhdGUsIGFuZCBzbyBpdCBt dXN0IGJlIGZpcnN0IG1hZGUKdHJ1c3R3b3J0aHkuCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVs IE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=