From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [RFC 1/1] drm/i915 : Wait until SYSTEM_RUNNING before loading CSR firmware Date: Wed, 15 Jul 2015 11:34:43 +0200 Message-ID: <20150715093443.GG3736@phenom.ffwll.local> References: <1436805405-1134-1-git-send-email-jay.p.patel@intel.com> <1436805405-1134-2-git-send-email-jay.p.patel@intel.com> <20150714092235.GL3736@phenom.ffwll.local> <20150714203732.GA20241@kroah.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2B5CF6EB2A for ; Wed, 15 Jul 2015 02:32:03 -0700 (PDT) Received: by wgkl9 with SMTP id l9so28561280wgk.1 for ; Wed, 15 Jul 2015 02:32:01 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20150714203732.GA20241@kroah.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Greg KH Cc: intel-gfx@lists.freedesktop.org, LKML List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdWwgMTQsIDIwMTUgYXQgMDE6Mzc6MzJQTSAtMDcwMCwgR3JlZyBLSCB3cm90ZToK PiBPbiBUdWUsIEp1bCAxNCwgMjAxNSBhdCAxMToyMjozNUFNICswMjAwLCBEYW5pZWwgVmV0dGVy IHdyb3RlOgo+ID4gT24gTW9uLCBKdWwgMTMsIDIwMTUgYXQgMDk6MzY6NDVBTSAtMDcwMCwgamF5 LnAucGF0ZWxAaW50ZWwuY29tIHdyb3RlOgo+ID4gPiBGcm9tOiBKYXkgUGF0ZWwgPGpheS5wLnBh dGVsQGludGVsLmNvbT4KPiA+ID4gCj4gPiA+IE5PVEU6IFRoaXMgaXMgYW4gaW50ZXJpbSBzb2x1 dGlvbiB3aGljaCBpcyB0YXJnZXRlZCB0b3dhcmRzCj4gPiA+IENocm9tZSBPUy9BbmRyb2lkIHRv IGJlIHVzZWQgdW50aWwgYSBsb25nIHRlcm0gc29sdXRpb24gaXMgYXZhaWxhYmxlLgo+ID4gPiAK PiA+ID4gSW4gdGhpcyBwYXRjaCwgcmVxdWVzdF9maXJtd2FyZSgpIGlzIGNhbGxlZCBpbiBhIHdv cmtlciB0aHJlYWQKPiA+ID4gd2hpY2ggaW5pdGlhbGx5IHdhaXRzIGZvciBmaWxlIHN5c3RlbSB0 byBiZSBpbml0aWFsaXplZCBhbmQgdGhlbgo+ID4gPiBhdHRlbXB0cyB0byBsb2FkIHRoZSBmaXJt d2FyZS4KPiA+IAo+ID4gQXNpZGU6IEkgcG9zdGVkIGEgYnVuY2ggb2YgcHJvb2Ytb2YtcHJpbmNp cGxlIHBhdGNoZXMgdG8gY2xlYW4gdXAgZG1jCj4gPiBsb2FkaW5nIGFuZCBjb252ZXJ0IG92ZXIg dG8gdXNpbmcgYW4gZXhwbGljaXQgd29ya3F1ZXVlLiBUaGV5J3JlIGJlaW5nCj4gPiB0ZXN0ZWQv bWFkZS10by1hY3R1YWxseS13b3JrIHJpZ2h0IG5vdyBJIHRoaW5rLgo+ID4gCj4gPiA+ICJyZXF1 ZXN0X2Zpcm13YXJlX25vd2FpdCgpIiBpcyBhbHNvIHVzaW5nIGFuIGFzeW5jaHJvbm91cyB0aHJl YWQKPiA+ID4gcnVubmluZyBjb25jdXJyZW50bHkgd2l0aCB0aGUgcmVzdCBvZiB0aGUgc3lzdGVt IGluaXRpYWxpemF0aW9uLgo+ID4gPiBIb3dldmVyLCBpdCB0cmllcyB0byBsb2FkIGZpcm13YXJl IG9ubHkgb25jZSB3aXRob3V0IGNoZWNraW5nIHRoZQo+ID4gPiBzeXRlbSBzdGF0dXMgYW5kIGZh aWxzIG1vc3Qgb2YgdGhlIHRpbWUuCj4gPiA+IAo+ID4gPiBDaGFuZ2UtSWQ6IEkyY2IxNmE3Njhl NTRhODVmNDhhNjY4MmQ5NjkwYjRjOGFmODQ0NjY4Cj4gCj4gV2hhdCdzIHRoaXMgbGluZSBmb3I/ ICA6KQo+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKYXkgUGF0ZWwgPGpheS5wLnBhdGVsQGludGVs LmNvbT4KPiA+ID4gLS0tCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICB8 ICAyICsrCj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYyB8IDU4ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0KPiA+ID4gIDIgZmlsZXMgY2hhbmdl ZCwgNDkgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZHJ2LmMKPiA+ID4gaW5kZXggOGM4NDA3ZC4uZWI2ZjdlMyAxMDA2NDQKPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4gPiA+IEBAIC01NTksNiArNTU5LDcgQEAgdm9pZCBp bnRlbF9ocGRfY2FuY2VsX3dvcmsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ ID4gPiAgdm9pZCBpOTE1X2Zpcm13YXJlX2xvYWRfZXJyb3JfcHJpbnQoY29uc3QgY2hhciAqZndf cGF0aCwgaW50IGVycikKPiA+ID4gIHsKPiA+ID4gIAlEUk1fRVJST1IoImZhaWxlZCB0byBsb2Fk IGZpcm13YXJlICVzICglZClcbiIsIGZ3X3BhdGgsIGVycik7Cj4gPiA+ICsJRFJNX0VSUk9SKCJU aGUgZmlybXdhcmUgZmlsZSBtYXkgYmUgbWlzc2luZ1xuIik7Cj4gPiA+ICAKPiA+ID4gIAkvKgo+ ID4gPiAgCSAqIElmIHRoZSByZWFzb24gaXMgbm90IGtub3duIGFzc3VtZSAtRU5PRU5UIHNpbmNl IHRoYXQncyB0aGUgbW9zdAo+ID4gPiBAQCAtNTc0LDYgKzU3NSw3IEBAIHZvaWQgaTkxNV9maXJt d2FyZV9sb2FkX2Vycm9yX3ByaW50KGNvbnN0IGNoYXIgKmZ3X3BhdGgsIGludCBlcnIpCj4gPiA+ ICAJICAiVGhlIGRyaXZlciBpcyBidWlsdC1pbiwgc28gdG8gbG9hZCB0aGUgZmlybXdhcmUgeW91 IG5lZWQgdG9cbiIKPiA+ID4gIAkgICJpbmNsdWRlIGl0IGVpdGhlciBpbiB0aGUga2VybmVsIChz ZWUgQ09ORklHX0VYVFJBX0ZJUk1XQVJFKSBvclxuIgo+ID4gPiAgCSAgImluIHlvdXIgaW5pdHJk L2luaXRyYW1mcyBpbWFnZS5cbiIpOwo+ID4gPiArCj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gIHN0 YXRpYyB2b2lkIGludGVsX3N1c3BlbmRfZW5jb2RlcnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y3NyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+ID4gPiBpbmRleCA5MzEx Y2RkLi44ZDFmMDhjIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9jc3IuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+ID4g PiBAQCAtMzQ5LDcgKzM0OSw3IEBAIHN0YXRpYyB2b2lkIGZpbmlzaF9jc3JfbG9hZChjb25zdCBz dHJ1Y3QgZmlybXdhcmUgKmZ3LCB2b2lkICpjb250ZXh0KQo+ID4gPiAgCS8qIGxvYWQgY3NyIHBy b2dyYW0gZHVyaW5nIHN5c3RlbSBib290LCBhcyBuZWVkZWQgZm9yIERDIHN0YXRlcyAqLwo+ID4g PiAgCWludGVsX2Nzcl9sb2FkX3Byb2dyYW0oZGV2KTsKPiA+ID4gIAlmd19sb2FkZWQgPSB0cnVl Owo+ID4gPiAtCj4gPiA+ICsJRFJNX0lORk8oIkNTUiBGaXJtd2FyZSBMb2FkZWRcbiIpOwo+ID4g PiAgb3V0Ogo+ID4gPiAgCWlmIChmd19sb2FkZWQpCj4gPiA+ICAJCWludGVsX3J1bnRpbWVfcG1f cHV0KGRldl9wcml2KTsKPiA+ID4gQEAgLTM1OSwxMSArMzU5LDQ2IEBAIG91dDoKPiA+ID4gIAly ZWxlYXNlX2Zpcm13YXJlKGZ3KTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiArc3RydWN0IGNzcl9m aXJtd2FyZV93b3JrIHsKPiA+ID4gKwlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKPiA+ID4gKwlz dHJ1Y3QgbW9kdWxlICptb2R1bGU7Cj4gPiA+ICsJc3RydWN0IGRybV9kZXZpY2UgKmRldjsKPiA+ ID4gK307Cj4gPiA+ICsKPiA+ID4gKy8qIGNzcl9maXJtd2FyZV93b3JrX2Z1bmMoKSAtIHRocmVh ZCBmdW5jdGlvbiBmb3IgbG9hZGluZyB0aGUgZmlybXdhcmUqLwo+ID4gPiArc3RhdGljIHZvaWQg Y3NyX2Zpcm13YXJlX3dvcmtfZnVuYyhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCj4gPiA+ICt7 Cj4gPiA+ICsJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKPiA+ID4gKwljb25zdCBzdHJ1Y3Qg Y3NyX2Zpcm13YXJlX3dvcmsgKmZ3X3dvcmsgPSBjb250YWluZXJfb2Yod29yaywgc3RydWN0IGNz cl9maXJtd2FyZV93b3JrLCB3b3JrKTsKPiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBmd193b3JrLT5kZXY7Cj4gPiA+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiA+ID4gKwlzdHJ1Y3QgaW50ZWxf Y3NyICpjc3IgPSAmZGV2X3ByaXYtPmNzcjsKPiA+ID4gKwo+ID4gPiArCS8qIFdhaXQgdW50aWwg cm9vdCBmaWxlc3lzdGVtIGlzIGxvYWRlZCBpbiBjYXNlIHRoZSBmaXJtd2FyZQo+ID4gPiArCSAq IGlzIG5vdCBidWlsdC1pbiBidXQgaW4gL2xpYi9maXJtd2FyZSAqLwo+ID4gPiArCXdoaWxlKHN5 c3RlbV9zdGF0ZSAhPSAgU1lTVEVNX1JVTk5JTkcpewo+ID4gPiArCQltc2xlZXAoNTAwKTsKPiA+ ID4gKwl9Cj4gPiAKPiA+IFllYWgsIG5vdCBnb2luZyB0byBtZXJnZSB0aGF0IHJpZ2h0IG5vdyB1 bnRpbCB3ZSd2ZSBoYWQgYSBkZWNlbnQKPiA+IGRpc2N1c3Npb24gd2l0aCBHcmVnIEtIIChzaW5j ZSBpbW8gaGlzIHN0YW5jZSBvZiBldmVyeSBkcml2ZXIgY3JlYXRpbmcKPiA+IGl0J3Mgb3duIHJl dHJ5IGxvb3AganVzdCBkb2Vzbid0IHdvcmssIGVzcGVjaWFsbHkgbm90IHdpdGggZ2Z4IHdoZXJl IGluaXQKPiA+IGlzIGhhaXJ5IGFuZCB5b3UganVzdCBkb24ndCB3YW50IHRvIHJldHJ5IHdpdGhv dXQgZW5kKS4KPiAKPiBFeGFjdGx5LCB0aGlzIHR5cGUgb2YgdGhpbmcgaXNuJ3QgZ29vZCBhdCBh bGwgKGVzcGVjaWFsbHkgZ2l2ZW4gdGhhdAo+IHRoZSBjb2RlIGlzbid0IGV2ZW4gY2hlY2twYXRj aCBjbGVhbi4uLikKPiAKPiBEb24ndCBkbyB0aGlzLiAgSWYgeW91IHJlYWxseSB3YW50IHRvIHNv bWVob3cgaGFuZGxlIGJ1aWx0LWluIGRyaXZlcnMKPiB0aGF0IG5lZWQgZmlybXdhcmUgYmVmb3Jl IHRoZSByb290IGZpbGVzeXN0ZW0gaXMgcHJlc2VudCwgdGhlbiB1c2UgdGhlCj4gYXN5bmMgZmly bXdhcmUgbG9hZGluZyBpbnRlcmZhY2UsIGRvbid0IHNpdCBhbmQgc3BpbiwgdGhhdCdzIGNyYXp5 LgoKVGhpcyBjb2RlIGlzIGNhbGxlZCBmcm9tIGEgd29yayBxdWV1ZSBhbHJlYWR5IHRvIGZhY2ls aXRhdGUgYXN5bmMgbG9hZGluZy4KSSB3YW50IGFuIGV4cGxpY2l0IHdvcmsgcXVldWUgc28gdGhh dCB3ZSBwcm9wZXJseSBzeW5jIHdpdGggaXQgZXZlcnl3aGVyZQpsaWtlIGRyaXZlciB1bmxvYWQg b3IgcmVzdW1lIChvdGhlcndpc2Ugd2UgbmVlZCBhIGNvbXBsZXRpb24gb3IKc29tZXRoaW5nKS4g QW5kIHdpdGggYW4gZXhwbGljaXQgd29ya2VyIEkgY2FuIHB1dCB0aGUgZW50aXJlIGluaXQgc2Vx dWVuY2UKZm9yIHRoYXQgY29tcG9uZW50IG9mIHRoZSBncHUgaW4gdGhlcmUsIHdoaWNoIG1lYW5z IHdoZXRoZXIgd2UgcmVxdWlyZQpmaXJtd2FyZSBvciBubyBkb2Vzbid0IGNoYW5nZSBob3cgdGhl IGRyaXZlciBpcyBsb2FkZWQuIFVuaWZpZWQgZHJpdmVyCmxvYWQgcGF0aHMgaXMgYSBmYWlybHkg c3RyaWN0IHJlcXVpcmVtZW50IEkgaGF2ZSAoYmVjYXVzZSBvdGhlcndpc2UKdGVzdGluZyBpcyBu aWdoIGltcG9zc2libGUgZHVlIHRvIGNvbWJpbmF0b3JpYWwgZXhwbG9zaW9uKS4gSSBhbHNvIGRv bid0CndhbnQgdG8gZXZlciByZWF0dGVtcHQgbG9hZGluZyB0aGUgZmlybXdhcmUgc2luY2UgdGhv c2Uga2luZCBvZiBmYWxsYmFjawpwYXRocyBhcmUgZXF1YWxseSBob3JyaWJsZSBmcm9tIGEgdGVz dGluZyBwZXJzcGVjdGl2ZS4gSWYgZncgbG9hZGluZyBmYWlscwpmb3Igc29tZSByZWFzb24gd2Un bGwganVzdCBtb3ZlIG9uIGFuZCBkZWNsYXJlIHRoYXQgcGFydGljdWxhciBncHUgcGFydApkZWFk L3Vuc3VwcG9ydGVkLgoKVGhlIG90aGVyIGlzc3VlIHdpdGggcmVxdWVzdF9maXJtd2FyZV9ub3dh aXQgaXMgdGhhdCBpdCBkb2Vzbid0IGRvIHRoZQp1ZXZlbnQgKyB1ZGV2IGZhbGxiYWNrIGFmYWl1 aSwgc2VlCgpjb21taXQgNWExMzc5ZTg3NDhhNWNmYTNlYjA2OGY4MTJkNjFiZGU4NDllZjc2YwpB dXRob3I6IFRha2FzaGkgSXdhaSA8dGl3YWlAc3VzZS5kZT4KRGF0ZTogICBXZWQgSnVuIDQgMTc6 NDg6MTUgMjAxNCArMDIwMAoKICAgIGZpcm13YXJlIGxvYWRlcjogYWxsb3cgZGlzYWJsaW5nIG9m IHVkZXYgYXMgZmlybXdhcmUgbG9hZGVyCgpPbmx5IHJlcXVlc3RfZmlybXdhcmUgc2VlbXMgdG8g ZG8gdGhhdCBjb21iby4KCj4gPiBBc2lkZTogQW5vdGhlciBzb2x1dGlvbiBtaWdodCBiZSB0aGUg d2FpdF9mb3Jfcm9vdGZzIGZyb20KPiA+IAo+ID4gaHR0cDovL3d3dy5nb3NzYW1lci10aHJlYWRz LmNvbS9saXN0cy9saW51eC9rZXJuZWwvMjAxMDc5Mwo+ID4gCj4gPiBCdXQgaWYgR3JlZyBpbnNp c3RzIHRoYXQgZWFjaCBkcml2ZXIgbmVlZHMgdG8gc29sdmUgdGhpcyB0aGVtc2VsdmVzIHRoZW4K PiA+IEknbGwgcHVsbCBzb21ldGhpbmcgbGlrZSB0aGlzIGludG8gdXBzdHJlYW0sIGJ1dCBwcm9i YWJseSB3aXRoIGEgS2NvbmZpZwo+ID4gb3B0aW9uIHRvIGRpc2FibGUgaXQgZm9yIG5vcm1hbCBs aW51eCB1c2Vyc3BhY2UuCj4gCj4gInNvbHZlIiB0aGlzIGJ5IGp1c3Qgbm90IHNpdHRpbmcgYW5k IHNwaW5pbmcsIHdhaXQgZm9yIHVzZXJzcGFjZSB0byBsb2FkCj4geW91ciBmaXJtd2FyZSBpZiBp dCBuZWVkcyBpdC4gIE9yLCBldmVuIGJldHRlciB5ZXQsIGlmIHlvdSByZWFsbHkgbmVlZAo+IGZp cm1hcmUgYXQgZWFybHkgYm9vdCBiZWZvcmUgYSByb290ZnMsIGJ1aWxkIHRoZSBmaXJtd2FyZSBp bnRvIHRoZQo+IGtlcm5lbCBpbWFnZSwgbGlrZSB3ZSB1c2VkIHRvIGRvIGZvciBhIGZldyBkZWNh ZGVzLgoKVGhhdCdzIGV4YWN0bHkgd2hhdCB0aGlzIHRyaWVzIHRvIGRvIChub3QgaW4gYSB0ZXJy aWJseSBwcmV0dHkgd2F5IEkKYWRtaXQpLgoKQW5kIGJ1aWxkaW5nIHRoZSBmaXJtd2FyZSBpbnRv IHRoZSBpbWFnZSBpc24ndCBhbiBvcHRpb24gc2luY2UgdGhhdCBzZWVtcwp0byBmcmVhayBvdXQg bGVnYWwgb3Igc29tZXRoaW5nIGxpa2UgdGhhdC4gQW5kIGxvYWRpbmcgbW9kdWxlcyByZWFsbHkK ZWFybHkgaW4gaW5pdHJkIChsaWtlIGl0J3MgZG9uZSBvbiBkZXNrdG9wIGxpbnV4IGRpc3Ryb3Mp IGlzIGFsc28gbm90CnNvbWV0aGluZyBzaW5jZSBmb3IgYSBwaWxlIG9mIHJlYXNvbnMgY3Jvcy9h bmRyb2lkIHdhbnQgbW9ub2xpdGhpYyBrZXJuZWwKaW1hZ2VzLgoKPiA+IFRoZSBvdGhlciBvcHRp b24gd291bGQKPiA+IGJlIHRvIHVzZSBDT05GSUdfRldfTE9BREVSX1VTRVJTUEFDRV9GQUxMQkFD SyB1ZGV2IGhlbHBlci4gVGhhdCBtaWdodCBiZQo+ID4gYW4gb3B0aW9uIGZvciBpbnRlbCBhbmRy b2lkLCBidXQgaXQgc291bmRzIGxpa2Ugbm90IHNvbWV0aGluZyBjcm9zIHdhbnRzCj4gPiB0byBk by4gVGhlcmVmb3JlCj4gCj4gd2h5IHdvdWxkIGNocm9tZW9zIG5vdCB3YW50IHRvIHVzZSB0aGUg dWRldiBoZWxwZXI/CgpJJ20gdHJ5aW5nIHRvIHNlbGwgdGhlbSBvbiBpdCBhbmQgaGF2ZW4ndCB5 ZXQgZmlndXJlZCBvdXQgd2h5IGl0J3Mgbm90IG9rLApidXQgaXQgc2VlbXMgdG8gYmUgYSBwb3B1 bGFyIHJlcXVlc3QuIE90aGVyIGZvbGtzIGFsc28gY2FtZSB1cCB3aXRoCnNpbWlsYXIgaGFja3Mg KHRoZSB3YWl0X2Zvcl9yb290ZnMgb25lIGxpbmtlZCBhYm92ZSkgc28gSSdtIGFzc3VtZSBpdCdz Cm5vdCBlbnRpcmVseSBjb250ZXh0IGZyZWUuIE9uIHRoZXNlIG1hY2hpbmVzIGV2ZXJ5dGhpbmcg aXMgc3RhdGljIG1ha2luZyBhCmxvdCBvZiBob3RwbHVnIHByb2Nlc3NpbmcgdW5lY2Vzc2FyeS4K Cj4gPiBBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ IAo+ID4gQWxzbyBhZGRpbmcgR3JlZyBzbyBoZSBrbm93cyB3aGF0J3MgaGFwcGVuaW5nIGhlcmUu Cj4gCj4gSWNrLCBwbGVhc2UgZG9uJ3QgdGFrZSB0aGlzIGFzLWlzLgoKV2VsbCBJJ2QgcHJlZmVy IGlmIHJlcXVlc3RfZmlybXdhcmUganVzdCBoYW5kbGVzIHRoaXMgZm9yIG1lIHNpbmNlIGl0CnNl ZW1zIHRvIGJlIGEgZ2VuZXJhbCBuZWVkLiBCdXQgSSdtIG9rIHdpdGggY2FycnlpbmcgdGhpcyBh cm91bmQgaW4gaTkxNQpvbmx5IHRvby4KLURhbmllbAotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK