From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: Re: [RFC 6/6] drm/i915/vlv: Add intermediate field in intel_crtc_wm_state and handlers for two-level watermark Date: Tue, 14 Jun 2016 15:57:28 -0700 Message-ID: <20160614225728.GD31785@intel.com> References: <1465399364-28512-1-git-send-email-chix.ding@intel.com> <1465399364-28512-7-git-send-email-chix.ding@intel.com> <188f04b1-8972-d387-cf85-dfb526fa86d3@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 5178B6E06D for ; Tue, 14 Jun 2016 22:57:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Ding, ChiX" Cc: "Adebisi, YetundeX" , "isg-gms@eclists.intel.com" , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMTQsIDIwMTYgYXQgMDc6NDA6NTRBTSAtMDcwMCwgRGluZywgQ2hpWCB3cm90 ZToKPiBIaSBNYWFydGVuCj4gVGhhbmtzIGZvciB0aGUgcmVwbHkuIFBsZWFzZSBjb3JyZWN0IG1l IGlmIEknbSB3cm9uZyA6IAo+IElmIHRoZSBpbnRlcm1lZGlhdGUgd2F0ZXJtYXJrIGlzIGJpZ2dl ciB0aGFuIGFueSBvZiB0aGUgb2xkIGFuZCB0aGUgbmV3LCB0aGVuIGl0J3Mgbm90IHJlYWxseSBz YWZlLgo+IEl0IGNvdWxkIGJlIGJpZ2dlciB0aGFuIHRoZSBGSUZPIHNpemUuIAo+IAo+IEkgZGlk IHNvbWUgdGVzdHMgdXNpbmcgYXZlcmFnZSB2YWx1ZSBhbmQgaXQgcmFuIGludG8gRklGTyB1bmRl cnJ1biwgZS5nLgo+IFsxMDA0MjQuNDA1NjI0XSBbZHJtOnZsdl9pbnZlcnRfd21zXSBQaXBlIEEg ZmlmbyBmb3IgcHJpbWFyeSwgc3ByaXRlMCwgc3ByaXRlIDEgOiA1MTEgLyAwIC8gMCAKPiBbMTAw NDI0LjQxMzIzMV0gW2RybTp2bHZfY29tcHV0ZV9maWZvXSBQaXBlIEEgZmlmbyBmb3IgcHJpbWFy eSwgc3ByaXRlMCwgc3ByaXRlIDEgOiAyNTYgLyAyNTUgLyAwCj4gWzEwMDQyNC40MTMyNDJdIFtk cm06dmx2X2NvbXB1dGVfcGlwZV93bV0gUGlwZSBBCj4gWzEwMDQyNC40MTMyNDVdIFtkcm06dmx2 X2NvbXB1dGVfcGlwZV93bV0gbGV2ZWwgOiAwCj4gWzEwMDQyNC40MTMyNDldIFtkcm06dmx2X2Nv bXB1dGVfcGlwZV93bV0gV2F0ZXJtYXJrIHZhbHVlcyBmb3IgcHJpbWFyeSwgc3ByaXRlMCwgc3By aXRlMSA6IDEzNiwgMTM1LCAwCj4gWzEwMDQyNC40MTMyNTNdIFtkcm06dmx2X2NvbXB1dGVfaW50 ZXJtZWRpYXRlX3dtXSBsZXZlbCA6IDAKPiBbMTAwNDI0LjQxMzI1N10gW2RybTp2bHZfY29tcHV0 ZV9pbnRlcm1lZGlhdGVfd21dIEEgd2F0ZXJtYXJrIHZhbHVlcyBmb3IgcHJpbWFyeSwgc3ByaXRl MCwgc3ByaXRlMSA6IDEzNiwgMTM1LCAwCj4gWzEwMDQyNC40MTMyNjFdIFtkcm06dmx2X2NvbXB1 dGVfaW50ZXJtZWRpYXRlX3dtXSBCIHdhdGVybWFyayB2YWx1ZXMgZm9yIHByaW1hcnksIHNwcml0 ZTAsIHNwcml0ZTEgOiAzOTEsIDAsIDAKPiBbMTAwNDI0LjQyOTgyM10gW2RybTp2bHZfaW5pdGlh bF93YXRlcm1hcmtzXSB2bHZfaW5pdGlhbF93YXRlcm1hcmtzCj4gCj4gQXQgZmlyc3QsIHRoZSBj dXJyZW50IGFjdGl2ZQo+IGZpZm8gc2l6ZXMgNTExIC8gMCAvIDAgZm9yIHByaW1hcnksIHNwcml0 ZTAsIHNwcml0ZSAxCj4gd2F0ZXJtYXJrIDM5MSwgMCwgMAo+IAo+IFRoZW4gdGhlIG9wdGltYWwg dmFsdWVzIGFyZSBjYWxjdWxhdGVkIDogCj4gZmlmbyBzaXplcyAyNTYgLyAyNTUgLyAwCj4gd2F0 ZXJtYXJrcyAxMzYsIDEzNSwgMAo+IAo+IFRoZSBhdmVyYWdlIHdhdGVybWFyayBmb3IgcHJpbWFy eSBwbGFuZSBpcyAzOTErMTM2LzIgPSAyNjMsIGJpZ2dlcgo+IHRoYW4gdGhlIHByaW1hcnkgcGxh bmUgZmlmbyBzaXplIGZvciBvcHRpbWFsIDogMjU2LiBJdCBjYXVzZXMgdW5kZXJydW4KPiBsYXRl ciBvbiB3aGVuIHdyaXRpbmcgaW50ZXJtZWRpYXRlIHdhdGVybWFyayBhbmQgdGhlIGZpZm8gc2l6 ZSBpcwo+IGNoYW5nZWQgdG8gMjU2IGZvciBwcmltYXJ5IHBsYW5lIGJ5IHZsdl9waXBlX3NldF9m aWZvX3NpemUoKSBmdW5jdGlvbi4KPiAKPiBJZiBJIHVzZSBtaW4oKSBmb3IgaW50ZXJtZWRpYXRl IHdhdGVybWFyaywgSSBkb24ndCBydW4gaW50byB1bmRlcnJ1bgo+IGlzc3VlIGluIHRoZSB0ZXN0 cy4gIE15IHVuZGVyc3RhbmRpbmcgaXMgdGhhdCB3aXRoIG1pbigpLCBpbiBzb21lCj4gY2FzZXMg d2UgZ2V0IDAsMCBmb3Igd2F0ZXJtYXJrICwgYnV0IGl0J3Mgc3RpbGwgYSBsZWdpdGltYXRlIHZh bHVlLgo+IFBsZWFzZSBsZXQgbWUga25vdyBpZiBJJ20gbWlzdGFrZW4uCj4gCj4gCj4gQW5vdGhl ciBxdWVzdGlvbjogdGhlIHN1bSBvZiBmaWZvIHNpemVzIGZvciBwcmltYXJ5IHBsYW5lLCBzcHJp dGUgMCwKPiBzcHJpdGUgMSBzaG91bGQgYWx3YXlzIGJlIDUxMi0xID0gNTExLiAgQnV0IHRoZSB3 YXRlcm1hcmtzIG9mIHRoZQo+IHBsYW5lcyBkb24ndCBuZWVkIHRvIGFkZCB1cCB0byA1MTEuIFRo ZXkgbmVlZCB0byBzdGF5IHVuZGVyIG9yIGF0IG1vc3QKPiBlcXVhbCB0byB0aGUgcmVzcGVjdGl2 ZSBmaWZvIHNpemUsIHJpZ2h0PwoKSSBtYXkgYmUgb3Zlcmxvb2tpbmcgc29tZXRoaW5nIHNpbmNl IEkgaGF2ZW4ndCBzdHVkaWVkIFZMVi9DSFYgaW4gYXMKbXVjaCBkZXRhaWwgYXMgdGhlIG90aGVy IHBsYXRmb3JtcywgYnV0IHRoZXJlIGFyZSBiYXNpY2FsbHkgdHdvIHBhcnRzIHRvCnRoZSBwZXIt Y3J0YyB3YXRlcm1hcmsgY2FsY3VsYXRpb25zIHdlIGRvIGR1cmluZyB0aGUgYXRvbWljICdjaGVj aycKcGhhc2UuCgpUaGUgZmlyc3QgcGFydCBpcyBzbGljaW5nIHVwIHRoZSBmaWZvL0REQiBiZXR3 ZWVuIHRoZSB2YXJpb3VzIHBsYW5lcwp0aGF0IGFyZSBpbiB1c2UuICBUaGUgZmlmbyBidWZmZXIg aXMgYSBmaXhlZCBzaXplIHJlc291cmNlIG1hZGUgdXAgb2YKYmxvY2tzLCBidXQgaXQncyBwcm9n cmFtbWFibGUgaG93IG11Y2ggb2YgdGhhdCBidWZmZXIgaXMgZGV2b3RlZCB0bwpkcml2aW5nIGEg c3BlY2lmaWMgcGxhbmUuICBUaGUgZm9ybXVsYSB3ZSB1c2UgZm9yIHNsaWNpbmcgdXAgdGhlIGZp Zm8gaXMKdG8ganVzdCBnaXZlIGVhY2ggcGxhbmUgYSBudW1iZXIgb2YgYmxvY2tzIHByb3BvcnRp b25hbCB0byB0aGUgZnJhY3Rpb24Kb2YgdGhlIHRvdGFsIGRhdGEgcmF0ZSB0aGF0IHRoZSBwbGFu ZSBjb250cmlidXRlcyAod2l0aCBzb21lIGV4dHJhIGxvZ2ljCmF0IHRoZSBlbmQgdG8gZGVhbCB3 aXRoIGxlZnRvdmVyIGJsb2NrcyBkdWUgdG8gaW50ZWdlciBkaXZpc2lvbikuCgpUaGUgc2Vjb25k IHBhcnQgaXMgY2FsY3VsYXRpbmcgdGhlIHdhdGVybWFyayB2YWx1ZXMgZm9yIGVhY2ggcGxhbmUu ICBUaGUKZmlmbyBob2xkcyBkYXRhIHRoYXQncyBiZWVuIGZldGNoZWQgZnJvbSBSQU0gZm9yIHRo ZSBkaXNwbGF5IGNvbnRyb2xsZXIKdG8gY29uc3VtZTsgdGhlIHdhdGVybWFyayB2YWx1ZXMgKG1l YXN1cmVkIGluIGZpZm8gYmxvY2tzKSBhcmUgYmFzaWNhbGx5CnRlbGxpbmcgdGhlIGhhcmR3YXJl IGhvdy93aGVuIGl0IG5lZWRzIHRvIHdha2UgdXAgYW5kIGZldGNoIG1vcmUgZGF0YQpmcm9tIFJB TSBpbnRvIHRoZSBmaWZvIHRvIGVuc3VyZSB0aGUgZmlmbyBkb2Vzbid0IHJlYWNoIGVtcHR5LiAg SWYgeW91CnNldCB0aGUgd2F0ZXJtYXJrIHZhbHVlIGZvciBhIHBsYW5lIHRvbyBsb3csIHRoZW4g dGhlIGhhcmR3YXJlIHdvbid0CmZldGNoIG1vcmUgZGF0YSBmcm9tIFJBTSBlYXJseSBlbm91Z2gg YW5kIHRoZSBmaWZvIHdpbGwgcnVuIGRyeSBiZWZvcmUKbmV3IGRhdGEgZnJvbSBSQU0gc2hvd3Mg dXA7IHdoZW4gdGhpcyBoYXBwZW5zLCB0aGUgZGlzcGxheSBjb250cm9sbGVyCmRvZXNuJ3QgaGF2 ZSBhbnkgZGF0YSB0byB0ZWxsIGl0IGhvdyB0byBrZWVwIGRyaXZpbmcgdGhlIGRpc3BsYXkgc28g eW91CmNhbiBnZXQgdmFyaW91cyBraW5kcyBvZiBkaXNwbGF5IGNvcnJ1cHRpb24gKGFuZCBkbWVz ZyB3YXJuaW5ncyBhYm91dCBhCkZJRk8gdW5kZXJydW4pLiAgUHJvZ3JhbW1pbmcgd2F0ZXJtYXJr cyB0b28gaGlnaCBpcyBhbHdheXMgImZpbmUiIGZyb20gYQpjb3JyZWN0bmVzcyBwb2ludCBvZiB2 aWV3IC0tLSB5b3UncmUganVzdCBjYXVzaW5nIHRoZSBoYXJkd2FyZSB0byB3YWtlCnVwIGFuZCBm ZXRjaCBtb3JlIGRhdGEgZnJvbSBSQU0gZWFybGllciB0aGFuIGl0IHJlYWxseSBoYWQgdG8uICBZ b3UgbWF5CmJlIGltcGFjdGluZyBwb3dlciB1c2FnZSwgYnV0IHlvdSdyZSBzYWZlIGZyb20gdW5k ZXJydW5zL2NvcnJ1cHRpb24uCgpGb3IgaW50ZXJtZWRpYXRlIHdhdGVybWFya3MsIHdlIG5lZWQg IndvcnN0IGNhc2UiIHZhbHVlcyB0aGF0IHNhdGlzZnkKYm90aCB0aGUgb2xkIGFuZCBuZXcgY29u ZmlndXJhdGlvbiAoaS5lLiwgd29uJ3QgY2F1c2UgdW5kZXJydW5zIGZvcgplaXRoZXIgY29uZmln KS4gIFNvIEkgdGhpbmsgeW91IHdhbnQgdG8gYmUgdXNpbmcgbWF4KCkgaW5zdGVhZCBvZiBtaW4o KQp0byBjYWxjdWxhdGUgeW91ciBpbnRlcm1lZGlhdGUgdmFsdWVzLiAgT25jZSB5b3UndmUgY2Fs Y3VsYXRlZCB0aGUKd29yc3QtY2FzZSAobWF4KSB2YWx1ZXMgZm9yIGVhY2ggcGxhbmUsIEkgZmln dXJlIHlvdSdkIHdhbnQgdG8gd29yawpiYWNrd2FyZHMgZnJvbSB0aGVyZSBhbmQgc2xpY2UgdXAg eW91ciBpbnRlcm1lZGlhdGUgcGVyLXBsYWNlIGZpZm8KYWxsb2NhdGlvbiBzZWNvbmQuLi5JIGd1 ZXNzIHlvdSdkIHByb2JhYmx5IGp1c3Qgc2V0IGVhY2ggcGxhbmUncyBmaWZvCnNpemUgZXF1YWwg dG8gaXRzIHdhdGVybWFyayB2YWx1ZSB0byBzdGFydCB3aXRoLCB0aGVuIGRpc3RyaWJ1dGUgdGhl CnJlbWFpbmluZyBibG9ja3MgZXF1YWxseSBiZXR3ZWVuIGFsbCBvZiB0aGUgcGxhbmVzIHRoYXQg YXJlIGFjdGl2ZSBpbgplaXRoZXIgbmV3IG9yIG9sZCBjb25maWd1cmF0aW9uIChhbmQgaWYgeW91 IGRvbid0IGhhdmUgYW55IHJlbWFpbmluZwpibG9ja3MsIHRoZW4gdGhlcmUncyBubyB2YWxpZCBp bnRlcm1lZGlhdGUgY29uZmlndXJhdGlvbiBzbyB3ZSBzaG91bGQKcHJvYmFibHkgZmFpbCB0aGUg cmVxdWVzdCkuCgpBZ2FpbiwgdGhpcyBpcyBqdXN0IGNvbXBsZXRlbHkgb2ZmIHRoZSB0b3Agb2Yg bXkgaGVhZCBhbmQgSSBoYXZlbid0CmFjdHVhbGx5IGxvb2tlZCBhdCB0aGUgVkxWL0NIViBic3Bl Y3MgbGF0ZWx5LCBzbyBJIG1pZ2h0IGJlIGNvbXBsZXRlbHkKb3Zlcmxvb2tpbmcgc29tZSBpbXBv cnRhbnQgZGV0YWlsIGFib3V0IHRoZXNlIHBsYXRmb3Jtcy4KCgpNYXR0Cgo+IAo+IFRoYW5rcyBh IGxvdCwKPiBDaGkKPiAKPiAKPiAKPiAKPiAKPiAKPiAKPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQo+IEZyb206IE1hYXJ0ZW4gTGFua2hvcnN0IFttYWlsdG86bWFhcnRlbi5sYW5raG9yc3RA bGludXguaW50ZWwuY29tXSAKPiBTZW50OiBNb25kYXksIEp1bmUgMTMsIDIwMTYgMTA6MjIgQU0K PiBUbzogRGluZywgQ2hpWDsgdmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb207IFJvcGVyLCBN YXR0aGV3IEQKPiBDYzogaXNnLWdtc0BlY2xpc3RzLmludGVsLmNvbTsgQWRlYmlzaSwgWWV0dW5k ZVgKPiBTdWJqZWN0OiBSZTogW1JGQyA2LzZdIGRybS9pOTE1L3ZsdjogQWRkIGludGVybWVkaWF0 ZSBmaWVsZCBpbiBpbnRlbF9jcnRjX3dtX3N0YXRlIGFuZCBoYW5kbGVycyBmb3IgdHdvLWxldmVs IHdhdGVybWFyawo+IAo+IE9wIDEwLTA2LTE2IG9tIDE4OjQ4IHNjaHJlZWYgRGluZywgQ2hpWDoK PiA+IEhpIE1hYXJ0ZW4KPiA+IEkndmUgY2hhbmdlZCB0aGUgY29kZSB0byB1c2UgdGhlIG1hY3Jv IAo+ID4gZHJtX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlIGFuZCB0aGUg b3RoZXIgcGxhY2UgdG8gY2hlY2sgIW5ld19zdGF0ZS0+YWN0aXZlIHx8IG1vZGVzZXQgaW4gY29t cHV0aW5nIGludGVybWVkaWF0ZSB3YXRlcm1hcmsuIFRlc3QgcmVzdWx0IGlzIGdvb2QuCj4gPgo+ ID4gSSBoYXZlIHNvbWUgcXVlc3Rpb25zIGhvd2V2ZXIuIAo+ID4gUmVnYXJkaW5nIHRoZSBsb2dp YyBvZiBjb21wdXRpbmcgaW50ZXJtZWRpYXRlIHdhdGVybWFyaywgeW91IHN1Z2dlc3RlZCB0byB1 c2UgYXZlcmFnZSAiCj4gPiB3bSBvbGQ6Cj4gPiB7IDAsIDUxMSB9Cj4gPgo+ID4gd20gbmV3Ogo+ ID4geyA1MTEsIDAgfQo+ID4KPiA+IG1pbihhLCBiKToKPiA+IHsgMCwgMCB9Cj4gPgo+ID4gQXZl cmFnZWQ6Cj4gPiB7IDI1NSwgMjU1IH07IC0tPiBvbmx5IDUxMCBzdW1tZWQsIHNob3VsZCBwcm9i YWJseSBhZGQgMSB0byB0aGUgZmlyc3Qgbm9uLW51bGwgdmFsdWUgc2luY2UgaXQgbXVzdCBhZGQg dXAgdG8gd2l0aCA1MTIgLSAxLiIKPiA+Cj4gPiAxKSBJdCBsb29rcyBnb29kIHRvIG1lIHRvIHVz ZSB0aGUgYXZlcmFnZSB3aGVuIG9uZSBvZiB0aGUgb2xkIGFuZCBuZXcgdmFsdWVzIGlzIDAgYXMg bGlzdGVkIGluIHlvdXIgZXhhbXBsZS4KPiA+IEJ1dCB3aGVuIG5vbmUgb2YgdGhlIG9sZCBhbmQg bmV3IGFyZSAwIGFuZCB0aGV5J3JlIG5vdCBlcXVhbCwgYXZlcmFnZSAKPiA+IHZhbHVlIHdpbGwg YmUgYmlnZ2VyIHRoYW4gdGhlIHNtYWxsZXIgdmFsdWUgb2YgdGhlIHR3by4gSSB0aG91Z2h0IHRo YXQgdGhlIGlkZWEgb2YgY29tdXRpbmcgaW50ZXJtZWRpYXRlIGZvciBWTFYgaXMgdG8gcGljayBh IHNhZmUgdmFsdWUsIGkuZS4gYSB2YWx1ZSA8PSBlaXRoZXIgb2YgdGhlIG9sZCBhbmQgdGhlIG5l dz8KPiBObywgdGhlIGF2ZXJhZ2Ugd2lsbCBhbHdheXMgYmUgcm91bmRlZCBkb3duIGR1ZSB0byBp bnRlZ2VyIG1hdGguIE5vdCBzdXJlIGhvdyB5b3Ugd291bGQgZW5kIHVwIHdpdGggaGlnaGVyIHZh bHVlcyBpZiB5b3UgdGFrZSB0aGUgYXZlcmFnZSBhbmQgZGl2aWRlIGJ5IDI/Cj4gPgo+ID4KPiA+ IDIpIEFib3V0IHRoZSB3bSB2YWx1ZXMgb2YgdGhlIHBsYW5lcyBhZGQgdXAgdG8gNTExLCBJIGRv bid0IGhhdmUgdGhlIAo+ID4gc3BlYyBvZiB3YXRlcm1hcmsgZm9yIFZMViBidXQgSSBub3RpY2Vk IHRoYXQgaXQgZG9lc24ndCBzZWVtIGxpa2UgdGhlIAo+ID4gY2FzZSBmcm9tIGRtZXNnIG91dHB1 dCB3aXRob3V0IHRoZSB0d28tbGV2ZWwgd2F0ZXJtYXJrIHBhdGNoZXMgRXhhbXBsZSAxIDoKPiA+ ICBbMTM2MzQuNTQ1MTcyXSBbZHJtOnZsdl9waXBlX3NldF9maWZvX3NpemVdIFBpcGUgQSBGSUZP IHNwbGl0IDUxMSAvIAo+ID4gNTExIC8gNTExICBbMTM2MzQuNTQ1MTgwXSBbZHJtOnZsdl91cGRh dGVfd21dIFNldHRpbmcgRklGTyB3YXRlcm1hcmtzIAo+ID4gLSBBOiBwbGFuZT0wLCBjdXJzb3I9 MCwgc3ByaXRlMD0wLCBzcHJpdGUxPTAsIFNSOiBwbGFuZT0wLCBjdXJzb3I9MCAKPiA+IGxldmVs PTAgY3hzcj0wCj4gPgo+ID4gRXhhbXBsZSAyOgo+ID4gIFsxMzYzNS4xMjcwNDZdIFtkcm06dmx2 X3BpcGVfc2V0X2ZpZm9fc2l6ZV0gUGlwZSBBIEZJRk8gc3BsaXQgNTExIC8gCj4gPiA1MTEgLyA1 MTEgIFsxMzYzNS4xMjcwNTNdIFtkcm06dmx2X3VwZGF0ZV93bV0gU2V0dGluZyBGSUZPIHdhdGVy bWFya3MgCj4gPiAtIEE6IHBsYW5lPTQyMSwgY3Vyc29yPTYzLCBzcHJpdGUwPTAsIHNwcml0ZTE9 MCwgU1I6IHBsYW5lPTAsIGN1cnNvcj0wIAo+ID4gbGV2ZWw9MCBjeHNyPTAKPiBMb29rIGF0IHZs dl9jb21wdXRlX2ZpZm8sIHRoZSBsYXN0IGxvb3AgYWRkcyB0aGUgcmVtYWluZGVyIHRvIHRoZSBm aXJzdCBhY3RpdmUgcGxhbmUsIG9yIHdoZW4gbm9uZSBhcmUgYWN0aXZlIHB1dHMgaXQgYWxsIG9u IHRoZSBwcmltYXJ5IHBsYW5lLgo+ID4KPiA+IDMpIEkgc2VlIHRoYXQgaW4gdmx2X3dtX2dldF9o d19zdGF0ZSgpLCBpdCBhc3NpZ25zIHRoZSBjdXJyZW50IAo+ID4gdmx2X3dtX3N0YXRlIHRvIHRo ZSBvcHRpbWFsLCBmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykgewo+ID4gCXBpcGUgPSBj cnRjLT5waXBlOwo+ID4gCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+YmFzZS5zdGF0ZSktPndt LnZsdi5vcHRpbWFsCj4gPiAJCT0gY3J0Yy0+d21fc3RhdGU7Cj4gPgo+ID4gSSB0aG91Z2h0IHRo YXQgdGhlIG9wdGltYWwgaXMgY29tcHV0ZWQgaW4gaW50ZWxfY3J0Y19hdG9taWNfY2hlY2soKSBi eSAKPiA+IC5jb21wdXRlX3BpcGVfd20oKSBoYW5kbGVyIERvIHdlIG5lZWQgdG8gYXNzaWduIHRo ZSBjdXJyZW50IHZhbHVlIHRvIGl0IGluICB2bHZfd21fZ2V0X2h3X3N0YXRlKCksIHdoaWNoIGlz IGNhbGxlZCBieSBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKCk/Cj4gVGhpcyBpcyBhIGdl dF9od19zdGF0ZSBmdW5jdGlvbi4gSXQncyBvbmx5IHVzZWQgYnkgaHcgcmVhZG91dCBkdXJpbmcg ZHJpdmVyIGluaXQgb3IgcmVzdW1lLgoKLS0gCk1hdHQgUm9wZXIKR3JhcGhpY3MgU29mdHdhcmUg RW5naW5lZXIKSW9URyBQbGF0Zm9ybSBFbmFibGluZyAmIERldmVsb3BtZW50CkludGVsIENvcnBv cmF0aW9uCig5MTYpIDM1Ni0yNzk1Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=