From mboxrd@z Thu Jan 1 00:00:00 1970 From: Animesh Manna Subject: Re: [DMC_BUGFIX_SKL_V2 1/5] drm/i915/skl: Added a check for the hardware status of csr fw before loading. Date: Thu, 17 Sep 2015 00:53:21 +0530 Message-ID: <55F9C1A9.7000106@intel.com> 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> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" 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 35C4E6E53A for ; Wed, 16 Sep 2015 12:23:25 -0700 (PDT) In-Reply-To: <20150914074612.GE3383@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: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org CgpPbiA5LzE0LzIwMTUgMToxNiBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBGcmksIFNl cCAxMSwgMjAxNSBhdCAxMjozNjoyNEFNICswNTMwLCBBbmltZXNoIE1hbm5hIHdyb3RlOgo+Pgo+ PiBPbiA5LzEwLzIwMTUgODoxNSBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+IE9uIFRodSwg U2VwIDEwLCAyMDE1IGF0IDAxOjU4OjU0QU0gKzA1MzAsIEFuaW1lc2ggTWFubmEgd3JvdGU6Cj4+ Pj4gT24gOS8yLzIwMTUgMjoyNCBQTSwgRGFuaWVsIFZldHRlciB3cm90ZToKPj4+Pj4gT24gV2Vk LCBBdWcgMjYsIDIwMTUgYXQgMDc6NDA6NTRQTSArMDUzMCwgQW5pbWVzaCBNYW5uYSB3cm90ZToK Pj4+Pj4+IE9uIDgvMjYvMjAxNSA2OjQwIFBNLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+Pj4+Pj4+ IE9uIFdlZCwgQXVnIDI2LCAyMDE1IGF0IDAxOjM2OjA1QU0gKzA1MzAsIEFuaW1lc2ggTWFubmEg d3JvdGU6Cj4+Pj4+Pj4+IERtYyB3aWxsIHJlc3RvcmUgdGhlIGNzciBwcm9ncmFtIGV4Y2VwdCBE QzksIGNvbGQgYm9vdCwKPj4+Pj4+Pj4gd2FybSByZXNldCwgUENJIGZ1bmN0aW9uIGxldmVsIHJl c2V0LCBhbmQgaGliZXJuYXRlL3N1c3BlbmQuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IGludGVsX2Nzcl9s b2FkX3Byb2dyYW0oKSBmdW5jdGlvbiBpcyB1c2VkIHRvIGxvYWQgdGhlIGZpcm13YXJlCj4+Pj4+ Pj4+IGRhdGEgZnJvbSBrZXJuZWwgbWVtb3J5IHRvIGNzciBhZGRyZXNzIHNwYWNlLgo+Pj4+Pj4+ Pgo+Pj4+Pj4+PiBBbGwgdmFsdWVzIG9mIGNzciBhZGRyZXNzIHNwYWNlIHdpbGwgYmUgemVybyBp ZiBpdCBnb3QgcmVzZXQgYW5kCj4+Pj4+Pj4+IHRoZSBmaXJzdCBieXRlIG9mIGNzciBwcm9ncmFt IGlzIGFsd2F5cyBhIG5vbi16ZXJvIGlmIGZpcm13YXJlCj4+Pj4+Pj4+IGlzIGxvYWRlZCBzdWNj ZXNzZnVseS4gQmFzZWQgb24gaGFyZHdhcmUgc3RhdHVzIHdpbGwgbG9hZCB0aGUKPj4+Pj4+Pj4g ZmlybXdhcmUuCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFdpdGhvdXQgdGhpcyBjb25kaXRpb24gY2hlY2sg aWYgd2Ugb3ZlcndyaXRlIHRoZSBmaXJtd2FyZSBkYXRhIHRoZQo+Pj4+Pj4+PiBjb3VudGVycyBl eHBvc2VkIGZvciBkYzUvZGM2IChoZWxwIGZvciBkZWJ1Z2dpbmcpIHdpbGwgYmUgbnVsbGlmaWVk Lgo+Pj4+Pj4gQmFjYXVzZSBvZiB0aGUgYWJvdmUgcmVhc29uIG1lbnRpb25lZCBqdXN0IGFib3Zl IHdlIG5lZWQgdG8gYmxvY2sgZmlybXdhcmUgbG9hZGluZyBhZ2Fpbi4KPj4+Pj4+IFNvIG9ubHkg V0FSTl9PTiB3aWxsIG5vdCBoZWxwLgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+Pj4+IHYxOiBJbml0aWFs IHZlcnNpb24uCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IHYyOiBCYXNlZCBvbiByZXZpZXcgY29tbWVudHMg ZnJvbSBEYW5pZWwsCj4+Pj4+Pj4+IC0gQWRkZWQgYSBjaGVjayB0byBrbm93IGhhcmR3YXJlIHN0 YXR1cyBhbmQgbG9hZCB0aGUgZmlybXdhcmUgaWYgbm90IGxvYWRlZC4KPj4+Pj4+Pj4KPj4+Pj4+ Pj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgo+Pj4+Pj4+PiBD YzogRGFtaWVuIExlc3BpYXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNvbT4KPj4+Pj4+Pj4gQ2M6 IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPj4+Pj4+Pj4gQ2M6IFN1bmlsIEthbWF0 aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQW5pbWVz aCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+Cj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IFZhdGhzYWxhIE5hZ2FyYWp1IDx2YXRoc2FsYS5uYWdhcmFqdUBpbnRlbC5jb20+Cj4+Pj4+Pj4+ IC0tLQo+Pj4+Pj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jIHwgOSArKysr KysrKysKPj4+Pj4+Pj4gICAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCj4+Pj4+Pj4+ Cj4+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCj4+Pj4+Pj4+IGluZGV4IGJhMWFlMDMu LjY4MmNjMjYgMTAwNjQ0Cj4+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Nzci5jCj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Nzci5jCj4+ Pj4+Pj4+IEBAIC0yNTIsNiArMjUyLDE1IEBAIHZvaWQgaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4+Pj4+PiAgIAkJcmV0dXJuOwo+Pj4+Pj4+PiAgIAl9 Cj4+Pj4+Pj4+ICsJLyoKPj4+Pj4+Pj4gKwkgKiBEbWMgd2lsbCByZXN0b3JlIHRoZSBjc3IgdGhl IHByb2dyYW0gZXhjZXB0IERDOSwgY29sZCBib290LAo+Pj4+Pj4+PiArCSAqIHdhcm0gcmVzZXQs IFBDSSBmdW5jdGlvbiBsZXZlbCByZXNldCwgYW5kIGhpYmVybmF0ZS9zdXNwZW5kLgo+Pj4+Pj4+ PiArCSAqIFRoaXMgY29uZGl0aW9uIHdpbGwgaGVscCB0byBjaGVjayBpZiBjc3IgYWRkcmVzcyBz cGFjZSBpcyByZXNldC8KPj4+Pj4+Pj4gKwkgKiBub3QgbG9hZGVkLgo+Pj4+Pj4+PiArCSAqLwo+ Pj4+Pj4+IEF0bSB3ZSBjYWxsIHRoaXMgZnJvbSBkcml2ZXIgbG9hZCBhbmQgcmVzdW1lLCB3aGlj aCBkb2VzbiBzZWVtIHRvIGNvdmVyCj4+Pj4+Pj4gYWxsIHRoZSBjYXNlcyB5b3UgbWVudGlvbiBp biB0aGUgY29tbWVudC4gU2hvdWxkIHRoaXMgYmUgYSBXQVJOX09OCj4+Pj4+Pj4gaW5zdGVhZD8g T3IgZG8gd2UgaGF2ZSB0cm91YmxlcyBpbiBvdXIgaW5pdCBzZXF1ZW5jZSB3aGVyZSB3ZSBsb2Fk IHRvbwo+Pj4+Pj4+IG1hbnkgdGltZXM/Cj4+Pj4+PiBZZXMsIHRoZSBhYm92ZSBzdGF0ZW1lbnQg dGFrZW4gZnJvbSBic3BlYyB0byBkZXNjcmliZSBhYm91dCB0aGUgc3BlY2lhbCBjYXNlcyBkbWMg d2lsbCBub3QgcmVzdG9yZSB0aGUgZmlybXdhcmUuCj4+Pj4+PiBBZ3JlZSwgSW4gb3VyIGNhc2Vz IGNvbGQgYm9vdCBhbmQgaGliZXJuYXRlL3N1c3BlbmQgbWFpbmx5IHdlIG5lZWQgdG8gbG9hZCB0 aGUgZmlybXdhcmUgYWdhaW4sIHNvIGluIG15Cj4+Pj4+PiBzZWNvbmQgc2VudGVuY2UgSSB3YW50 ZWQgdG8gY29tbWVudCBtYWlubHkgcmVnYXJkaW5nIHRoaXMgY29uZGl0aW9uIGNoZWNrIGFkZGVk IGZvciBzdXNwZW5kLWhpYmVybmF0ZShyZXNldCkKPj4+Pj4+IGFuZCBjb2xkIGJvb3Qobm90IGxv YWRlZCkuCj4+Pj4+Pgo+Pj4+Pj4gQW55d2F5cyB0aGUgc2FtZSBhcGkgbGF0ZXIgY2FuIGJlIHVz ZWQgdG8gbG9hZCB0aGUgZmlybXdhcmUgZnJvbSBhbnl3aGVyZSwgc28gbXkgaW50ZW50aW9uIHRv IGNoZWNrIGZpcm13YXJlIGxvYWRlZCBvciBub3QuCj4+Pj4+PiBJZiBhbHJlYWR5IGxvYWRlZCB0 aGVuIG5vdCB0byBvdmVyd3JpdGUgdGhlIGNzciBhZGRyZXNzIHNwYWNlIHRvIG1haW50YWluIHRo ZSBkYzUvZGM2IGNvdW50ZXIgdmFsdWUuCj4+Pj4+Pgo+Pj4+Pj4gQ2FuIHRoZSBiZWxvdyBjb21t ZW50IG1vcmUgY2xlYXIgdG8geW91Lgo+Pj4+Pj4KPj4+Pj4+IAkvKgo+Pj4+Pj4gCSAqIERtYyB3 aWxsIHJlc3RvcmUgdGhlIGNzciB0aGUgcHJvZ3JhbSBleGNlcHQgREM5LCBjb2xkIGJvb3QsCj4+ Pj4+PiAJICogd2FybSByZXNldCwgUENJIGZ1bmN0aW9uIGxldmVsIHJlc2V0LCBhbmQgaGliZXJu YXRlL3N1c3BlbmQuCj4+Pj4+PiAJICogSWYgZmlybXdhcmUgaXMgcmVzdG9yZWQgYnkgZG1jIHRo ZW4gbm8gbmVlZCB0byBsb2FkIGFnYWluIHdoaWNoCj4+Pj4+PiAJICogd2lsbCBrZWVwIHRoZSBk YzUvZGM2IGNvdW50ZXIgZXhwb3NlZCBieSBmaXJtd2FyZS4KPj4+Pj4+IAkgKi8KPj4+Pj4+Cj4+ Pj4+PiBObyBpc3N1ZSBpbiBpbml0IHNlcXVlbmNlLgo+Pj4+PiBUaGF0IHNlZW1zIHRvIHN0aWxs IGNvdmVyIGFsbCB0aGUgY2FsbGVycyBvZiB0aGUgZnVuY3Rpb24gYWZhaWNzIC0gd2UgZG8KPj4+ Pj4gcGNpIHJlc2V0cyBvdmVyIHN1c3BlbmQgcmVzdW1lIHVuY29uZGl0aW9uYWxseS4gU28gSSBz dGlsbCBkb24ndAo+Pj4+PiB1bmRlcnN0YW5kIHdoZXJlIGV4YWN0bHkgd2UgdHJ5IHRvIGxvYWQg dGhlIGRtYyBmaXJtd2FyZSBpbiBpOTE1LmtvIHdoZW4KPj4+Pj4gaXQncyBhbHJlYWR5IGxvYWRl ZC4KPj4+PiBEdXJpbmcgcmVzdW1lIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0oKSB3aWxsIGJlIGNh bGxlZCBmcm9tCj4+Pj4gaW50ZWxfcnVudGltZV9yZXN1bWUoKS4KPj4+Pgo+Pj4+IGludGVsX3J1 bnRpbWVfcmVzdW1lKCktPiBza2xfcmVzdW1lX3ByZXBhcmUoKS0+IGludGVsX2Nzcl9sb2FkX3By b2dyYW0oKQo+Pj4+Cj4+Pj4gRHVyaW5nIFBjMTAgZW50cnkgdGVzdGluZyBJIGNhbiBzZWUgZG1j IGlzIHJlc3RvcmluZyBiYWNrIHRoZSBmaXJtd2FyZSBhbHdheXMsCj4+Pj4gYnV0IGFzIHlvdSBt ZW50aW9uZWQgcGNpLXJlc2V0IGNhbiBoYXBwZW4gdW5jb25kaXRpb25hbGx5LCBidXQgc3RpbGwg dGhlbgo+Pj4+IGFsc28gZHVyaW5nIHJlc3VtZSBpbnRlbF9ydW50aW1lX3Jlc3VtZSgpIHdpbGwg YmUgY2FsbGVkIGFuZCBiYXNlZCBvbgo+Pj4+IHJlZ2lzdGVyIHJlYWQgb2YgY3NyLWJhc2UtYWRk cmVzcyBmaXJtd2FyZSBsb2FkaW5nIHdpbGwgaGFwcGVuLgo+Pj4gQnV0IGluIHlvdXIgY29tbWVu dCB5b3UncmUgc2F5aW5nIGl0IHdvbid0IGdldCByZXN0b3JlZCBpbiBjYXNlIG9mIGRjOSBhbmQK Pj4+IHN1c3BlbmQuIFNvIHRoYXQgc2VlbXMgdG8gbWlzbWF0Y2ggd2hhdCB5b3UncmUgc2F5aW5n IGhlcmUgKGFuZCB3aGF0IHRoZQo+Pj4gY29tbWl0IG1lc3NhZ2Ugc2F5cykgYW5kIHdoYXQgdGhl IGNvZGUgZG9lcy4gQW5kIHRoaXMgZnVuY3Rpb24gaGVyZSBpcwo+Pj4gY2FsbGVkIGZvciByZXN1 bWUgYWZ0ZXIgc3VzcGVuZC9oaWJlcm5hdGUgb25seS4KPj4gcGMxMCBlbnRyeSBleHBsYW5hdGlv biBJIHRvbGQgaXMgZm9yIHNreWxha2UuIGRjOSBpbiBza3lsYWtlIGlzIG5vdCBwb3NzaWJsZS4K Pj4gSSB0aGluayB5b3UgYXJlIGNvbmZ1c2luZyBiZXR3ZWVuIGRjNiBhbmQgZGM5LiBQYzEwIGNh biBiZSBhY2hpZXZlZCBieQo+PiBlbnRlcmluZyBpbnRvIGRjNiAobm90IGRjOSkgZm9yIHNreWxh a2UuIGRjOSBpcyB0aGUgbG93ZXN0IHBvc3NpYmxlIHN0YXRlCj4+IGZvciBicm94dG9uIHdoaWNo IGlzIG5vdCBwcmVzZW50IGZvciBza3lsYWtlLgo+IEkgaGF2ZSBubyBpZGVhIGF0IGFsbCBhYm91 dCBkaWZmZXJlbnQgcGMgbGV2ZWxzIG9uIHNrbC4gV2hhdCBJJ20gdGFsa2luZwo+IGFib3V0IGlz IHN5c3RlbSBzdXNwZW5kL3Jlc3VtZSBhbmQgZHJpdmVyIGxvYWQsIHdoaWNoIGFyZSB0aGUgcGxh Y2VzIHRoaXMKPiBmdW5jdGlvbiBnZXRzIGNhbGxlZC4gQXQgbGVhc3QgYWZhaWNzLgo+Cj4+IEhl cmUgaW50ZWxfY3NyX2xvYWRfcHJvZ3JhbSgpIHdpbGwgYmUgdXNlZCBmb3IgYm90aCBza3lsYWtl IGFuZCBicm94dG9uLCBhbmQgaW5zdHJ1Y3Rpb24KPj4gZXhlY3V0aW9uIGZsb3cgd2lsbCBiZSBk aWZmZXJlbnQgaW4gY2FzZSBvZiBzdXNwZW5kL3Jlc3VtZSB3aGljaCBJIHRoaW5rIGlzIGNvbmZ1 c2luZwo+PiB5b3UuCj4gVGhhdCBzZWVtcyBsaWtlIHJlYWxseSBpbXBvcnRhbnQgaW5mb3JtYXRp b24uIFdoYXQncyBkaWZmZXJlbnQgb24gYnh0Pwo+IFRoZXNlIGFyZSB0aGUga2luZCBvZiBkZXRh aWxzIHlvdSBzaG91bGQgZXhwbGFpbiBpbiB0aGUgY29tbWl0IG1lc3NhZ2UgLi4uCj4KPj4gSSBh bSByZWFkeSBleHBsYWluIHlvdSBpbiBkZXRhaWwuIEl0IHdpbGwgYmUgZ29vZCBpZiB3ZSBkaXNj dXNzIHNwZWNpZmljIHVzZS1jYXNlIHNjZW5hcmlvCj4+IGFuZCBpdHogc29mdHdhcmUgZGVzaWdu IGZvciBzcGVjaWZpYyBwbGF0Zm9ybS4gQW5vdGhlciBwb2ludCAtIGFzIGRtYyByZWxhdGVkIGNv ZGUgZm9yCj4+IGJyb3h0b24gaXMgbm90IG1lcmdlZCBiZXR0ZXIgZmlyc3Qgd2UgY2xvc2UgZGVz aWduIGZvciBza3lsYWtlLiBOb3csIEkgaGF2ZSBhZGRlZCBkYzkKPj4gZGVzY3JpcHRpb24gaW4g Y29tbWVudCB0aGlua2luZyBvZiBmdXR1cmUuIElmIHlvdSB3YW50IEkgY2FuIHJlbW92ZSBmb3Ig bm93IGFuZCBsYXRlcgo+PiBjYW4gYWRkIGluIGJ4dCBwYXRjaCBzZXJpZXMgZm9yIGVuYWJsaW5n IGRtYy4gV2lsbCB3YWl0IGZvciB5b3VyIHJlcGx5Lgo+IFRoaXMgcXVlc3Rpb24gaGVyZSBpc24n dCBhYm91dCB0aGUgb3ZlcmFsbCBkZXNpZ24gYW5kIGhvdyB0byBoYW5kbGUgcG93ZXIKPiB3ZWxs cyBpbiBza2wvYnh0LiBUaGF0J3MgYSBzZXBhcmF0ZSBkaXNjdXNzaW9uIGFuZCB0cmFja2VkIHNv bWV3aGVyZSBlbHNlLgo+IEknbSByZWFsbHkganVzdCBjb25mdXNlZCBhYm91dCB3aGVuIGV4YWN0 bHkgd2UgbmVlZCB0byByZWxvYWQgdG8gZmlybXdhcmUsCj4gYW5kIHdoeSB3ZSBuZWVkIGEgcnVu dGltZSBjaGVjayBmb3IgdGhhdC4gTm9ybWFsbHkgd2Ugc2hvdWxkIGtub3cgd2hlbiB0bwo+IHJl bG9hZCB0aGUgZmlybXdhcmUgYW5kIGp1c3QgZWl0aGVyIHJlbG9hZCBvciBub3QsIHdpdGhvdXQg Y2hlY2tpbmcgaHcKPiBzdGF0ZS4gQW5kIEkgZG9uJ3QgbGlrZSBjaGVja2luZyBmb3IgaHcgc3Rh dGUgc2luY2UgYXQgbGVhc3QgaW4gdGhlIHBhc3QKPiB0aGF0IGtpbmQgb2YgY29kZSBlbmRlZCB1 cCBiZWluZyBmcmFnaWxlIC0gaXQncyBhbiBpbGx1c2lvbiB0aGF0IGl0IGRvZXMKPiB0aGUgcmln aHQgdGhpbmcgbm8gbWF0dGVyIHdoYXQsIHNpbmNlIG9mdGVuIHRoZXJlJ3Mgb3RoZXIgdHJpY2t5 IG9yZGVyaW5nCj4gY29uc3RyYWludHMuIEFuZCBpZiB5b3UgaGF2ZSBhdXRvbWF0aWMgZHVjdC10 YXBlIGxpa2UgdGhlbiBubyBvbmUgd2lsbAo+IGV2ZXIgc3BvdCB0aG9zZSBvdGhlciwgaGFyZGVy IHRvIHNwb3QgaXNzdWVzLCB1bnRpbCBhbiBleHBlbnNpdmUgY3VzdG9tZXIKPiBlc2NhbGF0aW9u IGhhcHBlbnMuCj4KPiBTbyB3aGF0IEkgd2FudCB0byBrbm93IGhlcmUgaXM6Cj4gLSBXaGVuIGV4 YWN0bHkgZG8gd2UgbmVlZCB0byByZWxvYWQgZG1jIGZpcm13YXJlLgpJbiBza2wsIGR1cmluZyBk cml2ZXIgbG9hZCBmaXJzdCB0aW1lIHdlIGxvYWQgdGhlIGZpcm13YXJlLCBkdXJpbmcgCm5vcm1h bCBzdXNwZW5kLXJlc3VtZSAoZGM2IGVudHJ5L2V4aXQpCm5vIG5lZWQgdG8gcmVsb2FkIHRoZSBm aXJtd2FyZSBhZ2FpbiBhcyBkbWMgd2lsbCB0YWtlIGNhcmUgb2YgaXQuIEJ1dCAKZHVyaW5nIHN1 c3BlbmQvaGliZXJuYXRpb24KZG1jIHdpbGwgbm90IHJlc3RvcmUgdGhlIGZpcm13YXJlLiBJbiB0 aGF0IGNhc2UgZHJpdmVyIG5lZWQgdG8gcmVsb2FkIGl0IAphZ2Fpbi4gSSBkbyBub3Qga25vdwpo b3cgdG8gZGlmZmVyZW50aWF0ZSBwbS1zdXNwZW5kIGFuZCBzdXNwZW5kLWhpYmVybmF0aW9uIGFu ZCB0aG91Z2h0IGJvdGggCnRoZSBjYXNlcwppbnRlbF9ydW50aW1lX3Jlc3VtZSgpIHdpbGwgYmUg Y2FsbGVkIHdoZXJlIHdlIGNhbiBjaGVjayB0aGUgaC93IHN0YXRlIAphbmQgcmVsb2FkIHRoZQpm aXJtd2FyZSBpZiBkbWMgaXMgbm90IHJlc3RvcmVkLgoKSW4gYnh0LCBkdXJpbmcgZHJpdmVyIGxv YWQgZmlyc3QgdGltZSB3ZSBsb2FkIHRoZSBmaXJtd2FyZSwgZHVyaW5nIApub3JtYWwgc3VzcGVu ZC1yZXN1bWUKZGlzcGxheSBlbmdpbmUgd2lsbCBlbnRlciBpbnRvIGRjOSBhbmQgZG1jIHdpbGwg bm90IHJlc3RvcmUgdGhlIApmaXJtd2FyZS4gU28gZXZlcnkKc3VzcGVuZC1yZXN1bWUgd2UgbmVl ZCB0byByZWxvYWQgdGhlIGZpcm13YXJlLgo+IC0gV2hhdCBleGFjdGx5IGlzIHRoZSByZWFzb24g d2h5IHdlIGNhbid0IG1ha2UgdGhhdCBkZWNpc2lvbiBzdGF0aWNhbGx5IGluCj4gICAgdGhlIGNv ZGUgKGJ5IGNhbGxpbmcgY3NyX2xvYWQgYXQgdGhlIHJpZ2h0IHNwb3RzKS4KQXMgSSBtZW50aW9u ZWQgYmVmb3JlIGluIGNhc2Ugb2Ygc2t5bGFrZSBjYW4gd2UgZGlmZmVyZW50aWF0ZSBiZXR3ZWVu CiJyZXN1bWUgZnJvbSBwbS1zdXNwZW5kIiB3aXRoICJyZXN1bWUgZnJvbSBzdXNwZW5kLWhpYmVy bmF0aW9uIiBpbnNpZGUgCmRyaXZlcj8KCkluIGNhc2Ugb2YgYnJveHRvbiwgZXZlcnkgdGltZSB3 ZSBuZWVkIHRvIHJlbG9hZCwgc28gd2UgY2FuIGRlY2lkZSAKc3RhdGljYWxseS4KCi1BbmltZXNo Cj4KPiBUaGFua3MsIERhbmllbAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK