From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dave Gordon Subject: Re: [PATCH v4 1/6] drm/i915: tidy up initialisation failure paths (legacy) Date: Mon, 1 Feb 2016 09:38:02 +0000 Message-ID: <56AF277A.2020003@intel.com> References: <1454095171-22475-1-git-send-email-david.s.gordon@intel.com> <1454095171-22475-2-git-send-email-david.s.gordon@intel.com> <20160130105038.GP24534@nuc-i3427.alporthouse.com> 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 BA89C89132 for ; Mon, 1 Feb 2016 01:38:03 -0800 (PST) In-Reply-To: <20160130105038.GP24534@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gMzAvMDEvMTYgMTA6NTAsIENocmlzIFdpbHNvbiB3cm90ZToKPiBPbiBGcmksIEphbiAyOSwg MjAxNiBhdCAwNzoxOToyNlBNICswMDAwLCBEYXZlIEdvcmRvbiB3cm90ZToKPj4gMS4gRml4IGlu dGVsX2NsZWFudXBfcmluZ19idWZmZXIoKSB0byBoYW5kbGUgdGhlIGVycm9yIGNsZWFudXAKPj4g ICAgIGNhc2Ugd2hlcmUgdGhlIHJpbmdidWZmZXIgaGFzIGJlZW4gYWxsb2NhdGVkIGJ1dCBtYXAt YW5kLXBpbgo+PiAgICAgZmFpbGVkLiBVbnBpbiBpdCBpZmYgaXQncyBwcmV2aW91c2x5IGJlZW4g bWFwcGVkLWFuZC1waW5uZWQuCj4+Cj4+IDIuIEZpeCB0aGUgZXJyb3IgcGF0aCBpbiBpbnRlbF9p bml0X3JpbmdfYnVmZmVyKCksIHdoaWNoIGFscmVhZHkKPj4gICAgIGNhbGxlZCBpbnRlbF9kZXN0 cm95X3JpbmdidWZmZXJfb2JqKCksIGJ1dCBmYWlsZWQgdG8gZnJlZSB0aGUKPj4gICAgIGFjdHVh bCByaW5nYnVmZmVyIHN0cnVjdHVyZS4gQ2FsbGluZyBpbnRlbF9yaW5nYnVmZmVyX2ZyZWUoKQo+ PiAgICAgaW5zdGVhZCBkb2VzIGJvdGggaW4gb25lIGdvLgo+Pgo+PiAzLiBXaXRoIHRoZSBhYm92 ZSBjaGFuZ2UsIGludGVsX2Rlc3Ryb3lfcmluZ2J1ZmZlcl9vYmooKSBpcyBvbmx5Cj4+ICAgICBj YWxsZWQgaW4gb25lIHBsYWNlIChpbnRlbF9yaW5nYnVmZmVyX2ZyZWUoKSksIHNvIGZsYXR0ZW4g aXQKPj4gICAgIGludG8gdGhhdCBmdW5jdGlvbi4KPj4KPj4gNC4gbW92ZSBsb3ctbGV2ZWwgcmVn aXN0ZXIgYWNjZXNzZXMgZnJvbSBpbnRlbF9jbGVhbnVwX3JpbmdfYnVmZmVyKCkKPj4gICAgICh3 aGljaCBjYWxscyBpbnRlbF9zdG9wX3JpbmdfYnVmZmVyKHJpbmcpIHdoaWNoIGNhbGxzIHN0b3Bf cmluZygpKQo+PiAgICAgZG93biBpbnRvIHN0b3BfcmluZygpIGl0c2VsZiksIHdoaWNoIGlzIGFs cmVhZHkgZG9pbmcgbG93LWxldmVsCj4+ICAgICByZWdpc3RlciBhY2Nlc3Nlcy4gVGhlbiwgaW50 ZWxfY2xlYW51cF9yaW5nX2J1ZmZlcigpIG5vIGxvbmdlcgo+PiAgICAgbmVlZHMgJ2Rldl9wcml2 Jy4KPj4KPj4gdjM6Cj4+ICAgICBNYWtlIGludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKCkgcmV0 dXJuIGVhcmx5IGlmIHJpbmdidWZmZXIgaXMKPj4gICAgIG5vdCBtYXBwZWQsIHNpbXBsaWZ5aW5n IG1hdHRlcnMgZm9yIHRoZSBjYWxsZXIuIFtDaHJpcyBXaWxzb24sCj4+ICAgICBEYW5pZWwgVmV0 dGVyXQo+PiAgICAgRG9uJ3QgYm90aGVyIHRvIGNsZWFyIGEgcG9pbnRlciBpbiBhbiBvYmplY3Qg YWJvdXQgdG8gYmUgZnJlZWQuCj4+ICAgICBbQ2hyaXMgV2lsc29uXQo+Pgo+PiBTaWduZWQtb2Zm LWJ5OiBEYXZlIEdvcmRvbiA8ZGF2aWQucy5nb3Jkb25AaW50ZWwuY29tPgo+PiBDYzogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+IC0tLQo+PiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYyB8IDQ5ICsrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tLQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAyMyBpbnNlcnRpb25zKCspLCAyNiBkZWxl dGlvbnMoLSkKPj4KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+PiBp bmRleCA2ZjViNTExLi5kYjAyODkzIDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yaW5nYnVmZmVyLmMKPj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4+IEBAIC01NTEsNiArNTUxLDggQEAgc3RhdGljIGJvb2wgc3RvcF9yaW5n KHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJpbmcpCj4+ICAgCQlJOTE1X1dSSVRFX01PREUocmlu ZywgX01BU0tFRF9CSVRfRElTQUJMRShTVE9QX1JJTkcpKTsKPj4gICAJfQo+Pgo+PiArCVdBUk5f T04oIUlTX0dFTjIocmluZy0+ZGV2KSAmJiAoSTkxNV9SRUFEX01PREUocmluZykgJiBNT0RFX0lE TEUpID09IDApOwo+Cj4gVGhpcyB3YXJuIHdhcyBndWFyZGluZyB0aGUgcmVsZWFzZSBvZiB0aGUg YmFja2luZyBwYWdlcywgdG8gdmVyaWZ5IHRoYXQKPiB3ZSBoYWQgc3RvcHBlZCB0aGUgcmluZ3Mg Zmlyc3QuCgpJdCdzIHN0aWxsIGVmZmVjdGl2ZWx5IGF0IHRoZSBzYW1lIHBvaW50IGluIHRoZSBl eGVjdXRpb24gc2VxdWVuY2UsIGp1c3QgCm5vdCBpbnRydWRpbmcgaW50byBhIGZ1bmN0aW9uIHRo YXQgaGFzIG5vIGJ1c2luZXNzIHBlZWtpbmcgYXQgcmVnaXN0ZXJzLiAKSXQncyBub3cgYXQgdGhl IGVuZCBvZiB0aGUgY2FsbGVkIHN1YmZ1bmN0aW9ucywgcmF0aGVyIHRoYW4ganVzdCBhZnRlciAK dGhlIGNhbGwgYXQgdGhlIHRvcC1sZXZlbCwgd2hlcmUgaXQgd2FzIGEgbGF5ZXJpbmcgdmlvbGF0 aW9uLgoKT3Igd2UgY291bGQgcHV0IGl0IGluIGEgc2VwYXJhdGUgZnVuY3Rpb24sIGFuZCBzYXkK CVdBUk5fT04oIXJpbmdfaXNfaWRsZShyaW5nKSk7Cgo+PiArCj4+ICAgCXJldHVybiAoSTkxNV9S RUFEX0hFQUQocmluZykgJiBIRUFEX0FERFIpID09IDA7Cj4+ICAgfQo+Pgo+PiBAQCAtMjA1NSw2 ICsyMDU3LDkgQEAgc3RhdGljIGludCBpbml0X3BoeXNfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVs X2VuZ2luZV9jcyAqcmluZykKPj4KPj4gICB2b2lkIGludGVsX3VucGluX3JpbmdidWZmZXJfb2Jq KHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKQo+PiAgIHsKPj4gKwlpZiAoIXJpbmdi dWYtPnZpcnR1YWxfc3RhcnQpCj4+ICsJCXJldHVybjsKPj4gKwo+PiAgIAlpZiAoSEFTX0xMQyhy aW5nYnVmLT5vYmotPmJhc2UuZGV2KSAmJiAhcmluZ2J1Zi0+b2JqLT5zdG9sZW4pCj4+ICAgCQl2 dW5tYXAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCk7Cj4+ICAgCWVsc2UKPj4gQEAgLTIxMzIsMTIg KzIxMzcsNiBAQCBpbnQgaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPj4gICAJcmV0dXJuIDA7Cj4+ICAgfQo+Pgo+PiAtc3RhdGljIHZvaWQg aW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZikKPj4gLXsKPj4gLQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmcmluZ2J1Zi0+b2Jq LT5iYXNlKTsKPj4gLQlyaW5nYnVmLT5vYmogPSBOVUxMOwo+PiAtfQo+PiAtCj4+ICAgc3RhdGlj IGludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ PiAgIAkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPj4gICB7Cj4+ IEBAIC0yMjAwLDExICsyMTk5LDEzIEBAIHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICoKPj4gICB9 Cj4+Cj4+ICAgdm9pZAo+PiAtaW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nKQo+PiAraW50ZWxfcmluZ2J1ZmZlcl9mcmVlKHN0cnVjdCBpbnRlbF9yaW5n YnVmZmVyICpyaW5nYnVmKQo+PiAgIHsKPj4gLQlpbnRlbF9kZXN0cm95X3JpbmdidWZmZXJfb2Jq KHJpbmcpOwo+PiAtCWxpc3RfZGVsKCZyaW5nLT5saW5rKTsKPj4gLQlrZnJlZShyaW5nKTsKPj4g KwlpZiAocmluZ2J1Zi0+b2JqKQo+PiArCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmcmlu Z2J1Zi0+b2JqLT5iYXNlKTsKPgo+IE5vLCBsZXQncyBub3QgYWRkIGR1cGxpY2F0ZSBjb2RlLiBJ ZiB5b3Ugd29ycnksCj4gcmVwbGFjZSB0b19pbnRlbF9ibygpIHdpdGgKCkkgc3VzcGVjdCB0aGUg YWJvdmUgZG9lc24ndCBhY3R1YWxseSBkdXBsaWNhdGUgdGhlIHRlc3QsICdjb3MgCmRybV9nZW1f b2JqZWN0X3VucmVmZXJlbmNlKCkgaXMgaW5saW5lLCBhbmQgY29tbW9uIHN1YmV4cHJlc3Npb24g CmVsaW1pbmF0aW9uIHNob3VsZCBkZXRlcm1pbmUgdGhhdCByaW5nYnVmLT5vYmogYW5kICZyaW5n YnVmLT5vYmotPmJhc2UgCmFyZSB0aGUgc2FtZSB0aGluZyBhbmQgdGhlbiB0aGUgY29tcGlsZXIg Y2FuIGNvbGxhcHNlIHRoZSBleHBsaWNpdCB0ZXN0IApoZXJlIHdpdGggdGhlIG9uZSBpbnNpZGUg ZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoKS4KCj4gc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqCj4gdG9faW50ZWxfYm8oc3RydWN0IGRybV9nZW1fb2JqZWN0ICpn ZW1fb2JqKQo+IHsKPiAJQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0LCBiYXNlKSk7Cj4gCXJldHVybiBjb250YWluZXJfb2YoZ2VtX29iaiwgc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QsIGJhc2UpOwo+IH0KCkkgd291bGQgcXVpdGUgbGlrZSB0byBnZXQg cmlkIG9mIHRoZSAiJiguLi4pLT5iYXNlIiB0aGF0IGludHJ1ZGVzIApldmVyeXdoZXJlIC0gd2Ug c2hvdWxkIGJlIGFibGUgdG8ganVzdCAodW4pcmVmZXJlbmNlIHRoZSBvYmplY3Qgd2UncmUgCndv cmtpbmcgd2l0aCwgd2l0aG91dCBjYXJpbmcgdGhhdCBpdCdzIGEgc3ViY2xhc3Mgb2Ygc29tZSBv dGhlciB0eXBlLiBTbyAKd2UnZCB3YW50IHRoZSBvcHBvc2l0ZSBmdW5jdGlvbiBhcyB3ZWxsLCBm b3IgcGFzc2luZyBpOTE1IG9iamVjdHMgdG8gZHJtIApmdW5jdGlvbnMgKGFzIGhlcmUpLCBtYXli ZSBjYWxsIGl0IHRvX2RybV9vYmooKT8KCiAgICAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHJtX2dl bV9vYmplY3QgKgogICAgIHRvX2RybV9vYmooc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKmk5 MTVfb2JqKQogICAgIHsKCUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCwgYmFzZSkpOwoJcmV0dXJuICZpOTE1X29iai0+YmFzZTsKICAgICB9Cgo+IGFuZCB3 ZSBjYW4gYmVnaW4gZXJyYWRpY2F0aW5nIHRoZSBoYWxmLWJha2VkIGNoZWNrcyAoc29tZSBwbGFj ZXMgYXNzdW1lLAo+IG90aGVycyBkbyBuby1vcCBjb252ZXJzaW9ucykuIEhpbmRzaWdodC4KCk9y IHdlIGNvdWxkIG1ha2UgZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoKSBhY2NlcHQgYSAoc3Ry dWN0IApkcm1faTkxNV9nZW1fb2JqZWN0ICopIGFzIGFuIGFsdGVybmF0aXZlIHRvIGEgKHN0cnVj dCBkcm1fZ2VtX29iamVjdCAqKT8KCj4+ICsKPj4gKwlsaXN0X2RlbCgmcmluZ2J1Zi0+bGluayk7 Cj4+ICsJa2ZyZWUocmluZ2J1Zik7Cj4+ICAgfQo+Pgo+PiAgIHN0YXRpYyBpbnQgaW50ZWxfaW5p dF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+PiBAQCAtMjIzMiw2ICsyMjMz LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfaW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+PiAgIAl9Cj4+ICAgCXJpbmctPmJ1ZmZlciA9IHJpbmdidWY7Cj4+Cj4+ICsJcmV0 ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2LCByaW5nYnVmKTsKPj4gKwlp ZiAocmV0KSB7Cj4+ICsJCURSTV9FUlJPUigiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZm ZXIgJXM6ICVkXG4iLAo+PiArCQkJCXJpbmctPm5hbWUsIHJldCk7Cj4+ICsJCWdvdG8gZXJyb3I7 Cj4+ICsJfQo+PiArCj4+ICAgCWlmIChJOTE1X05FRURfR0ZYX0hXUyhkZXYpKSB7Cj4+ICAgCQly ZXQgPSBpbml0X3N0YXR1c19wYWdlKHJpbmcpOwo+PiAgIAkJaWYgKHJldCkKPj4gQEAgLTIyNDMs MTQgKzIyNTEsNiBAQCBzdGF0aWMgaW50IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKPj4gICAJCQlnb3RvIGVycm9yOwo+PiAgIAl9Cj4+Cj4+IC0JcmV0ID0g aW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmooZGV2LCByaW5nYnVmKTsKPj4gLQlpZiAo cmV0KSB7Cj4+IC0JCURSTV9FUlJPUigiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIg JXM6ICVkXG4iLAo+PiAtCQkJCXJpbmctPm5hbWUsIHJldCk7Cj4+IC0JCWludGVsX2Rlc3Ryb3lf cmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4+IC0JCWdvdG8gZXJyb3I7Cj4+IC0JfQo+PiAtCj4+ ICAgCXJldCA9IGk5MTVfY21kX3BhcnNlcl9pbml0X3JpbmcocmluZyk7Cj4+ICAgCWlmIChyZXQp Cj4+ICAgCQlnb3RvIGVycm9yOwo+PiBAQCAtMjI2NCwxOSArMjI2NCwxNiBAQCBzdGF0aWMgaW50 IGludGVsX2luaXRfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPj4KPj4gICB2 b2lkIGludGVsX2NsZWFudXBfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZykKPj4gICB7Cj4+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2Owo+PiArCXN0 cnVjdCBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmOwo+Pgo+PiAgIAlpZiAoIWludGVsX3Jpbmdf aW5pdGlhbGl6ZWQocmluZykpCj4+ICAgCQlyZXR1cm47Cj4+Cj4+IC0JZGV2X3ByaXYgPSB0b19p OTE1KHJpbmctPmRldik7Cj4+IC0KPj4gLQlpZiAocmluZy0+YnVmZmVyKSB7Cj4+ICsJcmluZ2J1 ZiA9IHJpbmctPmJ1ZmZlcjsKPj4gKwlpZiAocmluZ2J1Zikgewo+PiAgIAkJaW50ZWxfc3RvcF9y aW5nX2J1ZmZlcihyaW5nKTsKPj4gLQkJV0FSTl9PTighSVNfR0VOMihyaW5nLT5kZXYpICYmIChJ OTE1X1JFQURfTU9ERShyaW5nKSAmIE1PREVfSURMRSkgPT0gMCk7Cj4+IC0KPj4gLQkJaW50ZWxf dW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZy0+YnVmZmVyKTsKPj4gLQkJaW50ZWxfcmluZ2J1ZmZl cl9mcmVlKHJpbmctPmJ1ZmZlcik7Cj4+ICsJCWludGVsX3VucGluX3JpbmdidWZmZXJfb2JqKHJp bmdidWYpOwo+PiArCQlpbnRlbF9yaW5nYnVmZmVyX2ZyZWUocmluZ2J1Zik7Cj4+ICAgCQlyaW5n LT5idWZmZXIgPSBOVUxMOwo+Cj4gQ29udmVyc2lvbnMgdG8gYSBob3JyaWJsZSBuYW1lIGZvciBu byByZWFzb24uIHJpbmdidWYgd2FzIGEgbWlzdGFrZSwKPiBwbGVhc2Ugbm8gbW9yZQo+IC1DaHJp cwoKJ3JpbmdidWYnIGlzIGEgcGVyZmVjdGx5IGdvb2QgbmFtZSBmb3IgYSAoc3RydWN0IGludGVs X3JpbmdidWZmZXIgKikuIApXaGF0IHdlICpjYW4ndCogY2FsbCBpdCBpcyAncmluZycsIGJlY2F1 c2UgdGhhdCBuYW1lIGlzIHVzZWQgaGVyZSBhbmQgCmV2ZXJ5d2hlcmUgZWxzZSBmb3IgYSAoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqKS4gV291bGQgeW91IHByZWZlciAncmJwJyAKKCpyKmluZypi KnVmZmVyKnAqb2ludGVyKSA/IE90aGVyIHN1Z2dlc3Rpb25zIGNvbnNpZGVyZWQsIGJ1dCBOT1Qg J3JpbmcnCgpPciBhcmUgeW91IHNpbXBseSBvYmplY3RpbmcgdG8gaGF2aW5nIGEgbG9jYWwgdmFy aWFibGUgYXQgYWxsPyBJdCdzIApnZW5lcmFsbHkgYSBnb29kIGlkZWEgdG8gdGFrZSBhIGxvY2Fs IGNvcHkgb2YgYW55IHN0cnVjdHVyZSBtZW1iZXIgCnRoYXQncyBnb2luZyB0byBiZSByZWZlcmVu Y2VkIG1vcmUgdGhhbiBvbmNlLCBiZWNhdXNlIGl0IGxldHMgdGhlIApjb21waWxlciBrbm93IHRo YXQgdGhpcyBmdW5jdGlvbiBvd25zIHRoZSB2YWx1ZSBhbmQgaXQgZG9lc24ndCBoYXZlIHRvIApi ZSBmZXRjaGVkIGZyb20gbWVtb3J5IG1vcmUgdGhhbiBvbmNlLCBldmVuIGFmdGVyIHNvbWUgZnVu Y3Rpb24gaGFzIGJlZW4gCmNhbGxlZCB0aGF0IGNvdWxkIGluIHRoZW9yeSBoYXZlIG1vZGlmaWVk IHRoZSBzdHJ1Y3R1cmUgbWVtYmVyLgoKLkRhdmUuCgpfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=