From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [DMC_BUGFIX_SKL_V2 1/5] drm/i915/skl: Added a check for the hardware status of csr fw before loading. Date: Wed, 23 Sep 2015 09:57:38 +0200 Message-ID: <20150923075738.GF3383@phenom.ffwll.local> References: <1440533169-32265-1-git-send-email-animesh.manna@intel.com> <1440533169-32265-2-git-send-email-animesh.manna@intel.com> <20150826131012.GR1367@phenom.ffwll.local> <55DDC8EE.1060107@intel.com> <20150902085409.GH1367@phenom.ffwll.local> <55F09686.7080308@intel.com> <20150910144527.GY2767@phenom.ffwll.local> <55F1D4B0.7050104@intel.com> <20150914074612.GE3383@phenom.ffwll.local> <55F9C1A9.7000106@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by gabe.freedesktop.org (Postfix) with ESMTPS id D56C16E724 for ; Wed, 23 Sep 2015 00:54:47 -0700 (PDT) Received: by wicgb1 with SMTP id gb1so193050906wic.1 for ; Wed, 23 Sep 2015 00:54:46 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55F9C1A9.7000106@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Animesh Manna Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMTcsIDIwMTUgYXQgMTI6NTM6MjFBTSArMDUzMCwgQW5pbWVzaCBNYW5uYSB3 cm90ZToKPiAKPiAKPiBPbiA5LzE0LzIwMTUgMToxNiBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToK PiA+T24gRnJpLCBTZXAgMTEsIDIwMTUgYXQgMTI6MzY6MjRBTSArMDUzMCwgQW5pbWVzaCBNYW5u YSB3cm90ZToKPiA+Pgo+ID4+T24gOS8xMC8yMDE1IDg6MTUgUE0sIERhbmllbCBWZXR0ZXIgd3Jv dGU6Cj4gPj4+T24gVGh1LCBTZXAgMTAsIDIwMTUgYXQgMDE6NTg6NTRBTSArMDUzMCwgQW5pbWVz aCBNYW5uYSB3cm90ZToKPiA+Pj4+T24gOS8yLzIwMTUgMjoyNCBQTSwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiA+Pj4+Pk9uIFdlZCwgQXVnIDI2LCAyMDE1IGF0IDA3OjQwOjU0UE0gKzA1MzAsIEFu aW1lc2ggTWFubmEgd3JvdGU6Cj4gPj4+Pj4+T24gOC8yNi8yMDE1IDY6NDAgUE0sIERhbmllbCBW ZXR0ZXIgd3JvdGU6Cj4gPj4+Pj4+Pk9uIFdlZCwgQXVnIDI2LCAyMDE1IGF0IDAxOjM2OjA1QU0g KzA1MzAsIEFuaW1lc2ggTWFubmEgd3JvdGU6Cj4gPj4+Pj4+Pj5EbWMgd2lsbCByZXN0b3JlIHRo ZSBjc3IgcHJvZ3JhbSBleGNlcHQgREM5LCBjb2xkIGJvb3QsCj4gPj4+Pj4+Pj53YXJtIHJlc2V0 LCBQQ0kgZnVuY3Rpb24gbGV2ZWwgcmVzZXQsIGFuZCBoaWJlcm5hdGUvc3VzcGVuZC4KPiA+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+aW50ZWxfY3NyX2xvYWRfcHJvZ3JhbSgpIGZ1bmN0aW9uIGlzIHVzZWQg dG8gbG9hZCB0aGUgZmlybXdhcmUKPiA+Pj4+Pj4+PmRhdGEgZnJvbSBrZXJuZWwgbWVtb3J5IHRv IGNzciBhZGRyZXNzIHNwYWNlLgo+ID4+Pj4+Pj4+Cj4gPj4+Pj4+Pj5BbGwgdmFsdWVzIG9mIGNz ciBhZGRyZXNzIHNwYWNlIHdpbGwgYmUgemVybyBpZiBpdCBnb3QgcmVzZXQgYW5kCj4gPj4+Pj4+ Pj50aGUgZmlyc3QgYnl0ZSBvZiBjc3IgcHJvZ3JhbSBpcyBhbHdheXMgYSBub24temVybyBpZiBm aXJtd2FyZQo+ID4+Pj4+Pj4+aXMgbG9hZGVkIHN1Y2Nlc3NmdWx5LiBCYXNlZCBvbiBoYXJkd2Fy ZSBzdGF0dXMgd2lsbCBsb2FkIHRoZQo+ID4+Pj4+Pj4+ZmlybXdhcmUuCj4gPj4+Pj4+Pj4KPiA+ Pj4+Pj4+PldpdGhvdXQgdGhpcyBjb25kaXRpb24gY2hlY2sgaWYgd2Ugb3ZlcndyaXRlIHRoZSBm aXJtd2FyZSBkYXRhIHRoZQo+ID4+Pj4+Pj4+Y291bnRlcnMgZXhwb3NlZCBmb3IgZGM1L2RjNiAo aGVscCBmb3IgZGVidWdnaW5nKSB3aWxsIGJlIG51bGxpZmllZC4KPiA+Pj4+Pj5CYWNhdXNlIG9m IHRoZSBhYm92ZSByZWFzb24gbWVudGlvbmVkIGp1c3QgYWJvdmUgd2UgbmVlZCB0byBibG9jayBm aXJtd2FyZSBsb2FkaW5nIGFnYWluLgo+ID4+Pj4+PlNvIG9ubHkgV0FSTl9PTiB3aWxsIG5vdCBo ZWxwLgo+ID4+Pj4+Pgo+ID4+Pj4+Pgo+ID4+Pj4+Pj4+djE6IEluaXRpYWwgdmVyc2lvbi4KPiA+ Pj4+Pj4+Pgo+ID4+Pj4+Pj4+djI6IEJhc2VkIG9uIHJldmlldyBjb21tZW50cyBmcm9tIERhbmll bCwKPiA+Pj4+Pj4+Pi0gQWRkZWQgYSBjaGVjayB0byBrbm93IGhhcmR3YXJlIHN0YXR1cyBhbmQg bG9hZCB0aGUgZmlybXdhcmUgaWYgbm90IGxvYWRlZC4KPiA+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Q2M6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+ID4+Pj4+Pj4+Q2M6IERh bWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cj4gPj4+Pj4+Pj5DYzogSW1y ZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+ID4+Pj4+Pj4+Q2M6IFN1bmlsIEthbWF0aCA8 c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiA+Pj4+Pj4+PlNpZ25lZC1vZmYtYnk6IEFuaW1lc2gg TWFubmEgPGFuaW1lc2gubWFubmFAaW50ZWwuY29tPgo+ID4+Pj4+Pj4+U2lnbmVkLW9mZi1ieTog VmF0aHNhbGEgTmFnYXJhanUgPHZhdGhzYWxhLm5hZ2FyYWp1QGludGVsLmNvbT4KPiA+Pj4+Pj4+ Pi0tLQo+ID4+Pj4+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyB8IDkgKysr KysrKysrCj4gPj4+Pj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKykKPiA+Pj4+ Pj4+Pgo+ID4+Pj4+Pj4+ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nz ci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMKPiA+Pj4+Pj4+PmluZGV4IGJh MWFlMDMuLjY4MmNjMjYgMTAwNjQ0Cj4gPj4+Pj4+Pj4tLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9jc3IuYwo+ID4+Pj4+Pj4+KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y3NyLmMKPiA+Pj4+Pj4+PkBAIC0yNTIsNiArMjUyLDE1IEBAIHZvaWQgaW50ZWxfY3NyX2xvYWRf cHJvZ3JhbShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4+Pj4+Pj4+ICAJCXJldHVybjsKPiA+ Pj4+Pj4+PiAgCX0KPiA+Pj4+Pj4+PisJLyoKPiA+Pj4+Pj4+PisJICogRG1jIHdpbGwgcmVzdG9y ZSB0aGUgY3NyIHRoZSBwcm9ncmFtIGV4Y2VwdCBEQzksIGNvbGQgYm9vdCwKPiA+Pj4+Pj4+PisJ ICogd2FybSByZXNldCwgUENJIGZ1bmN0aW9uIGxldmVsIHJlc2V0LCBhbmQgaGliZXJuYXRlL3N1 c3BlbmQuCj4gPj4+Pj4+Pj4rCSAqIFRoaXMgY29uZGl0aW9uIHdpbGwgaGVscCB0byBjaGVjayBp ZiBjc3IgYWRkcmVzcyBzcGFjZSBpcyByZXNldC8KPiA+Pj4+Pj4+PisJICogbm90IGxvYWRlZC4K PiA+Pj4+Pj4+PisJICovCj4gPj4+Pj4+PkF0bSB3ZSBjYWxsIHRoaXMgZnJvbSBkcml2ZXIgbG9h ZCBhbmQgcmVzdW1lLCB3aGljaCBkb2VzbiBzZWVtIHRvIGNvdmVyCj4gPj4+Pj4+PmFsbCB0aGUg Y2FzZXMgeW91IG1lbnRpb24gaW4gdGhlIGNvbW1lbnQuIFNob3VsZCB0aGlzIGJlIGEgV0FSTl9P Tgo+ID4+Pj4+Pj5pbnN0ZWFkPyBPciBkbyB3ZSBoYXZlIHRyb3VibGVzIGluIG91ciBpbml0IHNl cXVlbmNlIHdoZXJlIHdlIGxvYWQgdG9vCj4gPj4+Pj4+Pm1hbnkgdGltZXM/Cj4gPj4+Pj4+WWVz LCB0aGUgYWJvdmUgc3RhdGVtZW50IHRha2VuIGZyb20gYnNwZWMgdG8gZGVzY3JpYmUgYWJvdXQg dGhlIHNwZWNpYWwgY2FzZXMgZG1jIHdpbGwgbm90IHJlc3RvcmUgdGhlIGZpcm13YXJlLgo+ID4+ Pj4+PkFncmVlLCBJbiBvdXIgY2FzZXMgY29sZCBib290IGFuZCBoaWJlcm5hdGUvc3VzcGVuZCBt YWlubHkgd2UgbmVlZCB0byBsb2FkIHRoZSBmaXJtd2FyZSBhZ2Fpbiwgc28gaW4gbXkKPiA+Pj4+ Pj5zZWNvbmQgc2VudGVuY2UgSSB3YW50ZWQgdG8gY29tbWVudCBtYWlubHkgcmVnYXJkaW5nIHRo aXMgY29uZGl0aW9uIGNoZWNrIGFkZGVkIGZvciBzdXNwZW5kLWhpYmVybmF0ZShyZXNldCkKPiA+ Pj4+Pj5hbmQgY29sZCBib290KG5vdCBsb2FkZWQpLgo+ID4+Pj4+Pgo+ID4+Pj4+PkFueXdheXMg dGhlIHNhbWUgYXBpIGxhdGVyIGNhbiBiZSB1c2VkIHRvIGxvYWQgdGhlIGZpcm13YXJlIGZyb20g YW55d2hlcmUsIHNvIG15IGludGVudGlvbiB0byBjaGVjayBmaXJtd2FyZSBsb2FkZWQgb3Igbm90 Lgo+ID4+Pj4+PklmIGFscmVhZHkgbG9hZGVkIHRoZW4gbm90IHRvIG92ZXJ3cml0ZSB0aGUgY3Ny IGFkZHJlc3Mgc3BhY2UgdG8gbWFpbnRhaW4gdGhlIGRjNS9kYzYgY291bnRlciB2YWx1ZS4KPiA+ Pj4+Pj4KPiA+Pj4+Pj5DYW4gdGhlIGJlbG93IGNvbW1lbnQgbW9yZSBjbGVhciB0byB5b3UuCj4g Pj4+Pj4+Cj4gPj4+Pj4+CS8qCj4gPj4+Pj4+CSAqIERtYyB3aWxsIHJlc3RvcmUgdGhlIGNzciB0 aGUgcHJvZ3JhbSBleGNlcHQgREM5LCBjb2xkIGJvb3QsCj4gPj4+Pj4+CSAqIHdhcm0gcmVzZXQs IFBDSSBmdW5jdGlvbiBsZXZlbCByZXNldCwgYW5kIGhpYmVybmF0ZS9zdXNwZW5kLgo+ID4+Pj4+ PgkgKiBJZiBmaXJtd2FyZSBpcyByZXN0b3JlZCBieSBkbWMgdGhlbiBubyBuZWVkIHRvIGxvYWQg YWdhaW4gd2hpY2gKPiA+Pj4+Pj4JICogd2lsbCBrZWVwIHRoZSBkYzUvZGM2IGNvdW50ZXIgZXhw b3NlZCBieSBmaXJtd2FyZS4KPiA+Pj4+Pj4JICovCj4gPj4+Pj4+Cj4gPj4+Pj4+Tm8gaXNzdWUg aW4gaW5pdCBzZXF1ZW5jZS4KPiA+Pj4+PlRoYXQgc2VlbXMgdG8gc3RpbGwgY292ZXIgYWxsIHRo ZSBjYWxsZXJzIG9mIHRoZSBmdW5jdGlvbiBhZmFpY3MgLSB3ZSBkbwo+ID4+Pj4+cGNpIHJlc2V0 cyBvdmVyIHN1c3BlbmQgcmVzdW1lIHVuY29uZGl0aW9uYWxseS4gU28gSSBzdGlsbCBkb24ndAo+ ID4+Pj4+dW5kZXJzdGFuZCB3aGVyZSBleGFjdGx5IHdlIHRyeSB0byBsb2FkIHRoZSBkbWMgZmly bXdhcmUgaW4gaTkxNS5rbyB3aGVuCj4gPj4+Pj5pdCdzIGFscmVhZHkgbG9hZGVkLgo+ID4+Pj5E dXJpbmcgcmVzdW1lIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0oKSB3aWxsIGJlIGNhbGxlZCBmcm9t Cj4gPj4+PmludGVsX3J1bnRpbWVfcmVzdW1lKCkuCj4gPj4+Pgo+ID4+Pj5pbnRlbF9ydW50aW1l X3Jlc3VtZSgpLT4gc2tsX3Jlc3VtZV9wcmVwYXJlKCktPiBpbnRlbF9jc3JfbG9hZF9wcm9ncmFt KCkKPiA+Pj4+Cj4gPj4+PkR1cmluZyBQYzEwIGVudHJ5IHRlc3RpbmcgSSBjYW4gc2VlIGRtYyBp cyByZXN0b3JpbmcgYmFjayB0aGUgZmlybXdhcmUgYWx3YXlzLAo+ID4+Pj5idXQgYXMgeW91IG1l bnRpb25lZCBwY2ktcmVzZXQgY2FuIGhhcHBlbiB1bmNvbmRpdGlvbmFsbHksIGJ1dCBzdGlsbCB0 aGVuCj4gPj4+PmFsc28gZHVyaW5nIHJlc3VtZSBpbnRlbF9ydW50aW1lX3Jlc3VtZSgpIHdpbGwg YmUgY2FsbGVkIGFuZCBiYXNlZCBvbgo+ID4+Pj5yZWdpc3RlciByZWFkIG9mIGNzci1iYXNlLWFk ZHJlc3MgZmlybXdhcmUgbG9hZGluZyB3aWxsIGhhcHBlbi4KPiA+Pj5CdXQgaW4geW91ciBjb21t ZW50IHlvdSdyZSBzYXlpbmcgaXQgd29uJ3QgZ2V0IHJlc3RvcmVkIGluIGNhc2Ugb2YgZGM5IGFu ZAo+ID4+PnN1c3BlbmQuIFNvIHRoYXQgc2VlbXMgdG8gbWlzbWF0Y2ggd2hhdCB5b3UncmUgc2F5 aW5nIGhlcmUgKGFuZCB3aGF0IHRoZQo+ID4+PmNvbW1pdCBtZXNzYWdlIHNheXMpIGFuZCB3aGF0 IHRoZSBjb2RlIGRvZXMuIEFuZCB0aGlzIGZ1bmN0aW9uIGhlcmUgaXMKPiA+Pj5jYWxsZWQgZm9y IHJlc3VtZSBhZnRlciBzdXNwZW5kL2hpYmVybmF0ZSBvbmx5Lgo+ID4+cGMxMCBlbnRyeSBleHBs YW5hdGlvbiBJIHRvbGQgaXMgZm9yIHNreWxha2UuIGRjOSBpbiBza3lsYWtlIGlzIG5vdCBwb3Nz aWJsZS4KPiA+PkkgdGhpbmsgeW91IGFyZSBjb25mdXNpbmcgYmV0d2VlbiBkYzYgYW5kIGRjOS4g UGMxMCBjYW4gYmUgYWNoaWV2ZWQgYnkKPiA+PmVudGVyaW5nIGludG8gZGM2IChub3QgZGM5KSBm b3Igc2t5bGFrZS4gZGM5IGlzIHRoZSBsb3dlc3QgcG9zc2libGUgc3RhdGUKPiA+PmZvciBicm94 dG9uIHdoaWNoIGlzIG5vdCBwcmVzZW50IGZvciBza3lsYWtlLgo+ID5JIGhhdmUgbm8gaWRlYSBh dCBhbGwgYWJvdXQgZGlmZmVyZW50IHBjIGxldmVscyBvbiBza2wuIFdoYXQgSSdtIHRhbGtpbmcK PiA+YWJvdXQgaXMgc3lzdGVtIHN1c3BlbmQvcmVzdW1lIGFuZCBkcml2ZXIgbG9hZCwgd2hpY2gg YXJlIHRoZSBwbGFjZXMgdGhpcwo+ID5mdW5jdGlvbiBnZXRzIGNhbGxlZC4gQXQgbGVhc3QgYWZh aWNzLgo+ID4KPiA+PkhlcmUgaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbSgpIHdpbGwgYmUgdXNlZCBm b3IgYm90aCBza3lsYWtlIGFuZCBicm94dG9uLCBhbmQgaW5zdHJ1Y3Rpb24KPiA+PmV4ZWN1dGlv biBmbG93IHdpbGwgYmUgZGlmZmVyZW50IGluIGNhc2Ugb2Ygc3VzcGVuZC9yZXN1bWUgd2hpY2gg SSB0aGluayBpcyBjb25mdXNpbmcKPiA+PnlvdS4KPiA+VGhhdCBzZWVtcyBsaWtlIHJlYWxseSBp bXBvcnRhbnQgaW5mb3JtYXRpb24uIFdoYXQncyBkaWZmZXJlbnQgb24gYnh0Pwo+ID5UaGVzZSBh cmUgdGhlIGtpbmQgb2YgZGV0YWlscyB5b3Ugc2hvdWxkIGV4cGxhaW4gaW4gdGhlIGNvbW1pdCBt ZXNzYWdlIC4uLgo+ID4KPiA+PkkgYW0gcmVhZHkgZXhwbGFpbiB5b3UgaW4gZGV0YWlsLiBJdCB3 aWxsIGJlIGdvb2QgaWYgd2UgZGlzY3VzcyBzcGVjaWZpYyB1c2UtY2FzZSBzY2VuYXJpbwo+ID4+ YW5kIGl0eiBzb2Z0d2FyZSBkZXNpZ24gZm9yIHNwZWNpZmljIHBsYXRmb3JtLiBBbm90aGVyIHBv aW50IC0gYXMgZG1jIHJlbGF0ZWQgY29kZSBmb3IKPiA+PmJyb3h0b24gaXMgbm90IG1lcmdlZCBi ZXR0ZXIgZmlyc3Qgd2UgY2xvc2UgZGVzaWduIGZvciBza3lsYWtlLiBOb3csIEkgaGF2ZSBhZGRl ZCBkYzkKPiA+PmRlc2NyaXB0aW9uIGluIGNvbW1lbnQgdGhpbmtpbmcgb2YgZnV0dXJlLiBJZiB5 b3Ugd2FudCBJIGNhbiByZW1vdmUgZm9yIG5vdyBhbmQgbGF0ZXIKPiA+PmNhbiBhZGQgaW4gYnh0 IHBhdGNoIHNlcmllcyBmb3IgZW5hYmxpbmcgZG1jLiBXaWxsIHdhaXQgZm9yIHlvdXIgcmVwbHku Cj4gPlRoaXMgcXVlc3Rpb24gaGVyZSBpc24ndCBhYm91dCB0aGUgb3ZlcmFsbCBkZXNpZ24gYW5k IGhvdyB0byBoYW5kbGUgcG93ZXIKPiA+d2VsbHMgaW4gc2tsL2J4dC4gVGhhdCdzIGEgc2VwYXJh dGUgZGlzY3Vzc2lvbiBhbmQgdHJhY2tlZCBzb21ld2hlcmUgZWxzZS4KPiA+SSdtIHJlYWxseSBq dXN0IGNvbmZ1c2VkIGFib3V0IHdoZW4gZXhhY3RseSB3ZSBuZWVkIHRvIHJlbG9hZCB0byBmaXJt d2FyZSwKPiA+YW5kIHdoeSB3ZSBuZWVkIGEgcnVudGltZSBjaGVjayBmb3IgdGhhdC4gTm9ybWFs bHkgd2Ugc2hvdWxkIGtub3cgd2hlbiB0bwo+ID5yZWxvYWQgdGhlIGZpcm13YXJlIGFuZCBqdXN0 IGVpdGhlciByZWxvYWQgb3Igbm90LCB3aXRob3V0IGNoZWNraW5nIGh3Cj4gPnN0YXRlLiBBbmQg SSBkb24ndCBsaWtlIGNoZWNraW5nIGZvciBodyBzdGF0ZSBzaW5jZSBhdCBsZWFzdCBpbiB0aGUg cGFzdAo+ID50aGF0IGtpbmQgb2YgY29kZSBlbmRlZCB1cCBiZWluZyBmcmFnaWxlIC0gaXQncyBh biBpbGx1c2lvbiB0aGF0IGl0IGRvZXMKPiA+dGhlIHJpZ2h0IHRoaW5nIG5vIG1hdHRlciB3aGF0 LCBzaW5jZSBvZnRlbiB0aGVyZSdzIG90aGVyIHRyaWNreSBvcmRlcmluZwo+ID5jb25zdHJhaW50 cy4gQW5kIGlmIHlvdSBoYXZlIGF1dG9tYXRpYyBkdWN0LXRhcGUgbGlrZSB0aGVuIG5vIG9uZSB3 aWxsCj4gPmV2ZXIgc3BvdCB0aG9zZSBvdGhlciwgaGFyZGVyIHRvIHNwb3QgaXNzdWVzLCB1bnRp bCBhbiBleHBlbnNpdmUgY3VzdG9tZXIKPiA+ZXNjYWxhdGlvbiBoYXBwZW5zLgo+ID4KPiA+U28g d2hhdCBJIHdhbnQgdG8ga25vdyBoZXJlIGlzOgo+ID4tIFdoZW4gZXhhY3RseSBkbyB3ZSBuZWVk IHRvIHJlbG9hZCBkbWMgZmlybXdhcmUuCj4gSW4gc2tsLCBkdXJpbmcgZHJpdmVyIGxvYWQgZmly c3QgdGltZSB3ZSBsb2FkIHRoZSBmaXJtd2FyZSwgZHVyaW5nIG5vcm1hbAo+IHN1c3BlbmQtcmVz dW1lIChkYzYgZW50cnkvZXhpdCkKPiBubyBuZWVkIHRvIHJlbG9hZCB0aGUgZmlybXdhcmUgYWdh aW4gYXMgZG1jIHdpbGwgdGFrZSBjYXJlIG9mIGl0LiBCdXQgZHVyaW5nCj4gc3VzcGVuZC9oaWJl cm5hdGlvbgo+IGRtYyB3aWxsIG5vdCByZXN0b3JlIHRoZSBmaXJtd2FyZS4gSW4gdGhhdCBjYXNl IGRyaXZlciBuZWVkIHRvIHJlbG9hZCBpdAo+IGFnYWluLiBJIGRvIG5vdCBrbm93Cj4gaG93IHRv IGRpZmZlcmVudGlhdGUgcG0tc3VzcGVuZCBhbmQgc3VzcGVuZC1oaWJlcm5hdGlvbiBhbmQgdGhv dWdodCBib3RoIHRoZQo+IGNhc2VzCj4gaW50ZWxfcnVudGltZV9yZXN1bWUoKSB3aWxsIGJlIGNh bGxlZCB3aGVyZSB3ZSBjYW4gY2hlY2sgdGhlIGgvdyBzdGF0ZSBhbmQKPiByZWxvYWQgdGhlCj4g ZmlybXdhcmUgaWYgZG1jIGlzIG5vdCByZXN0b3JlZC4KPiAKPiBJbiBieHQsIGR1cmluZyBkcml2 ZXIgbG9hZCBmaXJzdCB0aW1lIHdlIGxvYWQgdGhlIGZpcm13YXJlLCBkdXJpbmcgbm9ybWFsCj4g c3VzcGVuZC1yZXN1bWUKPiBkaXNwbGF5IGVuZ2luZSB3aWxsIGVudGVyIGludG8gZGM5IGFuZCBk bWMgd2lsbCBub3QgcmVzdG9yZSB0aGUgZmlybXdhcmUuIFNvCj4gZXZlcnkKPiBzdXNwZW5kLXJl c3VtZSB3ZSBuZWVkIHRvIHJlbG9hZCB0aGUgZmlybXdhcmUuCj4gPi0gV2hhdCBleGFjdGx5IGlz IHRoZSByZWFzb24gd2h5IHdlIGNhbid0IG1ha2UgdGhhdCBkZWNpc2lvbiBzdGF0aWNhbGx5IGlu Cj4gPiAgIHRoZSBjb2RlIChieSBjYWxsaW5nIGNzcl9sb2FkIGF0IHRoZSByaWdodCBzcG90cyku Cj4gQXMgSSBtZW50aW9uZWQgYmVmb3JlIGluIGNhc2Ugb2Ygc2t5bGFrZSBjYW4gd2UgZGlmZmVy ZW50aWF0ZSBiZXR3ZWVuCj4gInJlc3VtZSBmcm9tIHBtLXN1c3BlbmQiIHdpdGggInJlc3VtZSBm cm9tIHN1c3BlbmQtaGliZXJuYXRpb24iIGluc2lkZQo+IGRyaXZlcj8KPiAKPiBJbiBjYXNlIG9m IGJyb3h0b24sIGV2ZXJ5IHRpbWUgd2UgbmVlZCB0byByZWxvYWQsIHNvIHdlIGNhbiBkZWNpZGUK PiBzdGF0aWNhbGx5LgoKT2YgY291cnNlIHdlIGNhbiBkaWZmZXJlbnRpYXRlIGJldHdlZW4gYWxs IHRoZSBkaWZmZXJlbnQgcmVzdW1lIHBhdGhzLCBhbmQKd2UgYWxzbyBoYXZlIGEgcGVyLXBsYXRm b3JtIHNwbGl0IHRvIHRha2UgY2FyZSBvZiBieHQgdnMuIHNrbC4gQW5kIHRoZXJlCmFyZSBhY3R1 YWxseSAzIGRpZmZlcmVudCByZXN1bWUgcGF0aHM6CgotIHJ1bnRpbWUgUE0gcmVzdW1lLiBUaGlz IGNhbGxzIHRoZSBydW50aW1lX3Jlc3VtZSBob29rLiBJdCBzb3VuZHMgbGlrZSBvbgogIHNrbCB3 ZSBzaG91bGQgX25vdF8gbG9hZCB0aGUgY3NyIGZpcm13YXJlLCBidXQgb24gYnh0IHdlIHNob3Vs ZCBsb2FkIGl0LgogIFRoaXMgY2FuIGJlIGZpeGVkIGJ5IHJlbW92aW5nIHRoZSBpbnRlbF9jc3Jf bG9hZF9wcm9ncmFtIGNhbGwgZnJvbQogIHNrbF9yZXN1bWVfcHJlcGFyZS4KLSByZXN1bWUgZnJv bSBoaWJlcm5hdGUtdG8tZGlzayAoaS5lLiBzeXN0ZW0gY29tcGxldGVseSBvZmYsIHN0YXRlIHN0 b3JlZAogIG9uIHRoZSBzd2FwIHBhcnRpdGlvbikgaXMgZG9uZSBieSBjYWxsaW5nIHRoZSB0aGF3 IGNhbGxiYWNrcy4KLSByZXN1bWUgZnJvbSBzdXNwZW5kLXRvLW1lbSAoaS5lLiBzeXN0ZW0gaW4g bG93LXBvd2VyIHdpdGggb25seSBtZW1vcnkKICBpbiBzZWxmLXJlZnJlc2gsIGFsbCBzdGF0ZSBz dG9yZWQgaW4gbWVtb3J5KSBpcyBkb25lIGJ5IGNhbGxpbmcgdGhlCiAgcmVzdW1lIGNhbGxiYWNr cy4KCkZvciBpOTE1IHdlIHVzZSB1bmlmaWVkIGhhbmRsZXJzIGluIG91ciBkZXZfcG1fb3BzIGZv ciBib3RoIHRoYXcgYW5kCnJlc3VtZSwgYnV0IGl0IHNvdW5kcyBsaWtlIHRoYXQgd29uJ3QgYmUg YSBwcm9ibGVtIGZvciBza2wvYnh0IHNpbmNlIHdlCm5lZWQgdG8gcmVsb2FkIHRoZSBjc3IgZmly bXdhcmUgaW4gYWxsIGNhc2VzLiBBbHRob3VnaCBJJ20gbm90IHBlcmZlY3RseQpzdXJlIHNpbmNl IHlvdSBkb24ndCBleHBsYWluIHdoYXQga2luZCBvZiByZXN1bWUgeW91IG1lYW4gZXhhY3RseSAo c2luY2UKeW91IGRvbid0IHVzZSB0aGUgbGludXggbmFtZXMgZm9yIHRoZW0pLgoKQW55d2F5IGl0 IHNvdW5kcyBsaWtlIHdlIGNhbiByZXBsYWNlIHRoaXMgcGF0Y2ggYnkgb25lIHdoZXJlIHdlIHJl bW92ZQp0aGF0IGVycm9ybm91cyBjc3IgbG9hZCBjYWxsIGZyb20gc2tsIHJ1bnRpbWUgcG0gcmVz dW1lIGFuZCB0aGF0J3MgYWxsLgpCdXQgSSBzdWdnZXN0IHRvIG1ha2Ugc3VyZSB3ZSBnZXQgdGhp cyByaWdodCB3ZSBrZWVwIHRoZSBjaGVjayB5b3UncmUKYWRkaW5nIGhlcmUsIGJ1dCB3cmFwIGl0 IGluIGEgV0FSTl9PTi4gVGhlbiB3ZSdsbCBnZXQgYSBiYWNrdHJhY2Ugd2hlbgp0aGlzIGlzIGdv aW5nIHdyb25nIGFnYWluLiBMaWtlIHRoaXM6CgoJaWYgKFdBUk5fT04oY3NyX2xvYWRlZF9hbHJl YWR5KCkpKQoJCXJldHVybjsKCkFsc28gd2hlbiByZWRvaW5nIHRoZSBjb21taXRzIHBsZWFzZSBl eHBsYWluIGluIGRldGFpbCB3aGF0IGV4YWN0bHkgYXJlCnRoZSByZXF1aXJlbWVudHMgbGlrZSB5 b3UndmUgZG9uZSBhYm92ZSwgYnV0IHBsZWFzZSB1c2UgdGhlIHN0YW5kYXJkIGxpbnV4Cm5hbWVz LCBpLmUuICJydW50aW1lIFBNIiBhbmQgImhpYmVybmF0ZS10by1kaXNrIiBhbmQgInN1c3BlbmQt dG8tbWVtIi4KClRoYW5rcywgRGFuaWVsCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2lu ZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=