From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Split alloc from init for lrc Date: Mon, 21 Sep 2015 11:25:51 +0100 Message-ID: <55FFDB2F.7020504@linux.intel.com> References: <1441972426-6204-1-git-send-email-nicholas.hoath@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 719CA6E15E for ; Mon, 21 Sep 2015 03:25:53 -0700 (PDT) In-Reply-To: <1441972426-6204-1-git-send-email-nicholas.hoath@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Nick Hoath , intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org CkhpLAoKT24gMDkvMTEvMjAxNSAxMjo1MyBQTSwgTmljayBIb2F0aCB3cm90ZToKPiBFeHRlbmQg aW5pdC9pbml0X2h3IHNwbGl0IHRvIGNvbnRleHQgaW5pdC4KPiAgICAgLSBNb3ZlIGNvbnRleHQg aW5pdGlhbGlzYXRpb24gaW4gdG8gaTkxNV9nZW1faW5pdF9odwo+ICAgICAtIE1vdmUgb25lIG9m ZiBpbml0aWFsaXNhdGlvbiBmb3IgcmVuZGVyIHJpbmcgdG8KPiAgICAgICAgICBpOTE1X2dlbV92 YWxpZGF0ZV9jb250ZXh0Cj4gICAgIC0gTW92ZSBkZWZhdWx0IGNvbnRleHQgaW5pdGlhbGlzYXRp b24gdG8gbG9naWNhbF9yaW5nX2luaXQKPiAKPiBSZW5hbWUgaW50ZWxfbHJfY29udGV4dF9kZWZl cnJlZF9jcmVhdGUgdG8KPiBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jLCB0byByZWZs ZWN0IHJlZHVjZWQgZnVuY3Rpb25hbGl0eSAmCj4gYWxsb2MvaW5pdCBzcGxpdC4KPiAKPiBUaGlz IHBhdGNoIGlzIGludGVuZGVkIHRvIHNwbGl0IG91dCB0aGUgYWxsb2NhdGlvbiBvZiByZXNvdXJj ZXMgJgo+IGluaXRpYWxpc2F0aW9uIHRvIGFsbG93IGVhc2llciByZXVzZSBvZiBjb2RlIGZvciBy ZXN1bWUvZ3B1IHJlc2V0Lgo+IAo+IHYyOiBSZW1vdmVkIGZ1bmN0aW9uIHB0ciB3cmFwcGluZyBv ZiBkb19zd2l0Y2hfY29udGV4dCAoRGFuaWVsIFZldHRlcikKPiAgICAgIExlZnQgLT5pbml0X2Nv bnRleHQgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2MKPiAgICAgIChEYW5pZWwg VmV0dGVyKQo+ICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGluaXQgZmxhZyAmIHJpbmcgdHlwZSB0 ZXN0LiAoRGFuaWVsIFZldHRlcikKPiAgICAgIEltcHJvdmUgY29tbWl0IG1lc3NhZ2UgKERhbmll bCBWZXR0ZXIpCj4gdjM6IE9uIGluaXQvcmVpbml0LCBzZXQgdGhlIGh3IG5leHQgc2VxdWVuY2Ug bnVtYmVyIHRvIHRoZSBzdyBuZXh0Cj4gICAgICBzZXF1ZW5jZSBudW1iZXIuIFRoaXMgaXMgc2V0 IHRvIDEgYXQgZHJpdmVyIGxvYWQgdGltZS4gVGhpcyBwcmV2ZW50cwo+ICAgICAgdGhlIHNlcW5v IGJlaW5nIHJlc2V0IG9uIHJlaW5pdCAoQ2hyaXMgV2lsc29uKQo+IHY0OiBTZXQgc2Vxbm8gYmFj ayB0byB+MCAtIDB4MTAwMCBhdCBzdGFydC1vZi1kYXksIGFuZCBpbmNyZW1lbnQgYnkgMHgxMDAK PiAgICAgIG9uIHJlc2V0Lgo+ICAgICAgVGhpcyBtYWtlcyBpdCBvYnZpb3VzIHdoaWNoIGJicyBh cmUgd2hpY2ggYWZ0ZXIgYSByZXNldC4gKERhdmlkIEdvcmRvbgo+ICAgICAgJiBKb2huIEhhcnJp c29uKQo+ICAgICAgUmViYXNlLgo+IHY1OiBSZWJhc2UuIEZpeGVkIHJlYmFzZSBicmVha2FnZS4g UHV0IGNvbnRleHQgcGlubmluZyBpbiBzZXBhcmF0ZQo+ICAgICAgZnVuY3Rpb24uIFJlbW92ZWQg Y29kZSBjaHVybi4gKFRob21hcyBEYW5pZWwpCj4gdjY6IENsZWFudXAgdXAgaXNzdWVzIGludHJv ZHVjZWQgaW4gdjIgJiB2NSAoVGhvbWFzIERhbmllbCkKPiAKPiBJc3N1ZTogVklaLTQ3OTgKPiBT aWduZWQtb2ZmLWJ5OiBOaWNrIEhvYXRoIDxuaWNob2xhcy5ob2F0aEBpbnRlbC5jb20+Cj4gQ2M6 IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IENocmlzIFdpbHNv biA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IENjOiBKb2huIEhhcnJpc29uIDxqb2huLmMu aGFycmlzb25AaW50ZWwuY29tPgo+IENjOiBEYXZpZCBHb3Jkb24gPGRhdmlkLnMuZ29yZG9uQGlu dGVsLmNvbT4KPiBDYzogVGhvbWFzIERhbmllbCA8dGhvbWFzLmRhbmllbEBpbnRlbC5jb20+Cj4g LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgICAgICAgfCAgIDEg LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyAgICAgICAgICAgIHwgIDIyICsr LS0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyB8ICAgMiAr LQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMgICAgICAgICAgIHwgMTY0ICsr KysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuaCAgICAgICAgICAgfCAgIDQgKy0KPiAgIDUgZmlsZXMgY2hhbmdlZCwgOTkgaW5zZXJ0 aW9ucygrKSwgOTQgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gaW5k ZXggMTg4NTljZC4uMjNkZDU3ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC04 OTAsNyArODkwLDYgQEAgc3RydWN0IGludGVsX2NvbnRleHQgewo+ICAgCX0gbGVnYWN5X2h3X2N0 eDsKPiAgIAo+ICAgCS8qIEV4ZWNsaXN0cyAqLwo+IC0JYm9vbCByY3NfaW5pdGlhbGl6ZWQ7Cj4g ICAJc3RydWN0IHsKPiAgIAkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKnN0YXRlOwo+ICAg CQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMKPiBpbmRleCA1ODU5ZmM0Li5lN2ViMzI1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZ2VtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5j Cj4gQEAgLTQ2NTAsMTQgKzQ2NTAsOCBAQCBpbnQgaTkxNV9nZW1faW5pdF9yaW5ncyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQo+ICAgCQkJZ290byBjbGVhbnVwX3ZlYm94X3Jpbmc7Cj4gICAJfQo+ ICAgCj4gLQlyZXQgPSBpOTE1X2dlbV9zZXRfc2Vxbm8oZGV2LCAoKHUzMil+MCAtIDB4MTAwMCkp Owo+IC0JaWYgKHJldCkKPiAtCQlnb3RvIGNsZWFudXBfYnNkMl9yaW5nOwo+IC0KPiAgIAlyZXR1 cm4gMDsKPiAgIAo+IC1jbGVhbnVwX2JzZDJfcmluZzoKPiAtCWludGVsX2NsZWFudXBfcmluZ19i dWZmZXIoJmRldl9wcml2LT5yaW5nW1ZDUzJdKTsKPiAgIGNsZWFudXBfdmVib3hfcmluZzoKPiAg IAlpbnRlbF9jbGVhbnVwX3JpbmdfYnVmZmVyKCZkZXZfcHJpdi0+cmluZ1tWRUNTXSk7Cj4gICBj bGVhbnVwX2JsdF9yaW5nOgo+IEBAIC00NzQzLDYgKzQ3MzcsMTQgQEAgaTkxNV9nZW1faW5pdF9o dyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQkJZ290byBvdXQ7Cj4gICAJfQo+ICAgCj4g KwkvKgo+ICsJICogSW5jcmVtZW50IHRoZSBuZXh0IHNlcW5vIGJ5IDB4MTAwIHNvIHdlIGhhdmUg YSB2aXNpYmxlIGJyZWFrCj4gKwkgKiBvbiByZS1pbml0aWFsaXNhdGlvbgo+ICsJICovCj4gKwly ZXQgPSBpOTE1X2dlbV9zZXRfc2Vxbm8oZGV2LCBkZXZfcHJpdi0+bmV4dF9zZXFubysweDEwMCk7 Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0Owo+ICsKPiAgIAkvKiBOb3cgaXQgaXMgc2FmZSB0 byBnbyBiYWNrIHJvdW5kIGFuZCBkbyBldmVyeXRoaW5nIGVsc2U6ICovCj4gICAJZm9yX2VhY2hf cmluZyhyaW5nLCBkZXZfcHJpdiwgaSkgewo+ICAgCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVl c3QgKnJlcTsKPiBAQCAtNDk0NCw2ICs0OTQ2LDE0IEBAIGk5MTVfZ2VtX2xvYWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgIAkJZGV2X3ByaXYtPm51bV9mZW5jZV9yZWdzID0KPiAgIAkJCQlJ OTE1X1JFQUQodmd0aWZfcmVnKGF2YWlsX3JzLmZlbmNlX251bSkpOwo+ICAgCj4gKwkvKgo+ICsJ ICogU2V0IGluaXRpYWwgc2VxdWVuY2UgbnVtYmVyIGZvciByZXF1ZXN0cy4KPiArCSAqIFVzaW5n IHRoaXMgbnVtYmVyIGFsbG93cyB0aGUgd3JhcGFyb3VuZCB0byBoYXBwZW4gZWFybHksCj4gKwkg KiBjYXRjaGluZyBhbnkgb2J2aW91cyBwcm9ibGVtcy4KPiArCSAqLwo+ICsJZGV2X3ByaXYtPm5l eHRfc2Vxbm8gPSAoKHUzMil+MCAtIDB4MTEwMCk7Cj4gKwlkZXZfcHJpdi0+bGFzdF9zZXFubyA9 ICgodTMyKX4wIC0gMHgxMTAxKTsKPiArCj4gICAJLyogSW5pdGlhbGl6ZSBmZW5jZSByZWdpc3Rl cnMgdG8gemVybyAqLwo+ICAgCUlOSVRfTElTVF9IRUFEKCZkZXZfcHJpdi0+bW0uZmVuY2VfbGlz dCk7Cj4gICAJaTkxNV9nZW1fcmVzdG9yZV9mZW5jZXMoZGV2KTsKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fZXhlY2J1ZmZlci5jCj4gaW5kZXggYTk1M2Q0OS4uNjdlZjExOCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9leGVjYnVmZmVyLmMKPiBAQCAtMTAw OSw3ICsxMDA5LDcgQEAgaTkxNV9nZW1fdmFsaWRhdGVfY29udGV4dChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUsCj4gICAJfQo+ICAgCj4gICAJaWYgKGk5MTUu ZW5hYmxlX2V4ZWNsaXN0cyAmJiAhY3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlKSB7Cj4gLQkJ aW50IHJldCA9IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKGN0eCwgcmluZyk7Cj4g KwkJaW50IHJldCA9IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2MoY3R4LCByaW5nKTsK PiAgIAkJaWYgKHJldCkgewo+ICAgCQkJRFJNX0RFQlVHKCJDb3VsZCBub3QgY3JlYXRlIExSQyAl dTogJWRcbiIsIGN0eF9pZCwgcmV0KTsKPiAgIAkJCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCA2MzlkYTRkLi43MTg5MmRkIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtMjIxLDYgKzIyMSw5IEBAIGVudW0gewo+ICAgI2Rl ZmluZSBDVFhfUkNTX0lORElSRUNUX0NUWF9PRkZTRVRfREVGQVVMVCAgMHgxNwo+ICAgCj4gICBz dGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcnEpOwo+ICtzdGF0aWMgdm9pZCBscmNfc2V0dXBfaGFyZHdhcmVfc3RhdHVzX3BhZ2Uoc3Ry dWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqZGVmYXVsdF9jdHhfb2JqKTsKPiArCj4gICAKPiAgIC8qKgo+ICAgICogaW50ZWxfc2FuaXRp emVfZW5hYmxlX2V4ZWNsaXN0cygpIC0gc2FuaXRpemUgaTkxNS5lbmFibGVfZXhlY2xpc3RzCj4g QEAgLTk3OCwzOSArOTgxLDU0IEBAIGludCBsb2dpY2FsX3JpbmdfZmx1c2hfYWxsX2NhY2hlcyhz dHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPiAgIAlyZXR1cm4gMDsKPiAgIH0KPiAg IAo+IC1zdGF0aWMgaW50IGludGVsX2xyX2NvbnRleHRfcGluKHN0cnVjdCBkcm1faTkxNV9nZW1f cmVxdWVzdCAqcnEpCj4gK3N0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9kb19waW4oc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZywKPiArCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq Y3R4X29iaiwKPiArCQlzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiAgIHsKPiAt CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHJxLT5pOTE1Owo+IC0Jc3RydWN0 IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJxLT5yaW5nOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKmN0eF9vYmogPSBycS0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlOwo+IC0J c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYgPSBycS0+cmluZ2J1ZjsKPiArCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAgCWludCByZXQgPSAwOwo+ICAgCj4g ICAJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5nLT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ IC0JaWYgKHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50KysgPT0gMCkgewo+IC0J CXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjdHhfb2JqLCBHRU44X0xSX0NPTlRFWFRfQUxJ R04sCj4gLQkJCQlQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKPiAtCQlpZiAocmV0 KQo+IC0JCQlnb3RvIHJlc2V0X3Bpbl9jb3VudDsKPiArCXJldCA9IGk5MTVfZ2VtX29ial9nZ3R0 X3BpbihjdHhfb2JqLCBHRU44X0xSX0NPTlRFWFRfQUxJR04sCj4gKwkJCVBJTl9PRkZTRVRfQklB UyB8IEdVQ19XT1BDTV9UT1ApOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICAgCj4g LQkJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZlcl9vYmoocmluZy0+ZGV2LCByaW5n YnVmKTsKPiAtCQlpZiAocmV0KQo+IC0JCQlnb3RvIHVucGluX2N0eF9vYmo7Cj4gKwlyZXQgPSBp bnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihyaW5nLT5kZXYsIHJpbmdidWYpOwo+ICsJ aWYgKHJldCkKPiArCQlnb3RvIHVucGluX2N0eF9vYmo7Cj4gICAKPiAtCQljdHhfb2JqLT5kaXJ0 eSA9IHRydWU7Cj4gKwljdHhfb2JqLT5kaXJ0eSA9IHRydWU7Cj4gICAKPiAtCQkvKiBJbnZhbGlk YXRlIEd1QyBUTEIuICovCj4gLQkJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+IC0J CQlJOTE1X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwo+IC0JfQo+ICsJ LyogSW52YWxpZGF0ZSBHdUMgVExCLiAqLwo+ICsJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNz aW9uKQo+ICsJCUk5MTVfV1JJVEUoR0VOOF9HVENSLCBHRU44X0dUQ1JfSU5WQUxJREFURSk7Cj4g ICAKPiAgIAlyZXR1cm4gcmV0Owo+ICAgCj4gICB1bnBpbl9jdHhfb2JqOgo+ICAgCWk5MTVfZ2Vt X29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30KPiAr Cj4gK3N0YXRpYyBpbnQgaW50ZWxfbHJfY29udGV4dF9waW4oc3RydWN0IGRybV9pOTE1X2dlbV9y ZXF1ZXN0ICpycSkKPiArewo+ICsJaW50IHJldCA9IDA7Cj4gKwlzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICpyaW5nID0gcnEtPnJpbmc7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4 X29iaiA9IHJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGU7Cj4gKwlzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJxLT5yaW5nYnVmOwo+ICsKPiArCWlmIChycS0+Y3R4LT5l bmdpbmVbcmluZy0+aWRdLnBpbl9jb3VudCsrID09IDApIHsKPiArCQlyZXQgPSBpbnRlbF9scl9j b250ZXh0X2RvX3BpbihyaW5nLCBjdHhfb2JqLCByaW5nYnVmKTsKPiArCQlpZiAocmV0KQo+ICsJ CQlnb3RvIHJlc2V0X3Bpbl9jb3VudDsKPiArCX0KPiArCXJldHVybiByZXQ7Cj4gKwo+ICAgcmVz ZXRfcGluX2NvdW50Ogo+ICAgCXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5pZF0ucGluX2NvdW50ID0g MDsKPiAtCj4gICAJcmV0dXJuIHJldDsKPiAgIH0KPiAgIAo+IEBAIC0xNDIwLDYgKzE0MzgsOSBA QCBzdGF0aWMgaW50IGdlbjhfaW5pdF9jb21tb25fcmluZyhzdHJ1Y3QgaW50ZWxfZW5naW5lX2Nz ICpyaW5nKQo+ICAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSByaW5nLT5kZXY7Cj4gICAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAo+ ICsJbHJjX3NldHVwX2hhcmR3YXJlX3N0YXR1c19wYWdlKHJpbmcsCj4gKwkJCQlyaW5nLT5kZWZh dWx0X2NvbnRleHQtPmVuZ2luZVtyaW5nLT5pZF0uc3RhdGUpOwo+ICsKPiAgIAlJOTE1X1dSSVRF X0lNUihyaW5nLCB+KHJpbmctPmlycV9lbmFibGVfbWFzayB8IHJpbmctPmlycV9rZWVwX21hc2sp KTsKPiAgIAlJOTE1X1dSSVRFKFJJTkdfSFdTVEFNKHJpbmctPm1taW9fYmFzZSksIDB4ZmZmZmZm ZmYpOwo+ICAgCj4gQEAgLTE4NTgsNyArMTg3OSwyMSBAQCBzdGF0aWMgaW50IGxvZ2ljYWxfcmlu Z19pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bgo+ICAgCWlmIChyZXQpCj4gICAJCXJldHVybiByZXQ7Cj4gICAKPiAtCXJldCA9IGludGVsX2xy X2NvbnRleHRfZGVmZXJyZWRfY3JlYXRlKHJpbmctPmRlZmF1bHRfY29udGV4dCwgcmluZyk7Cj4g KwlyZXQgPSBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2FsbG9jKHJpbmctPmRlZmF1bHRfY29u dGV4dCwgcmluZyk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJLyogQXMg dGhpcyBpcyB0aGUgZGVmYXVsdCBjb250ZXh0LCBhbHdheXMgcGluIGl0ICovCj4gKwlyZXQgPSBp bnRlbF9scl9jb250ZXh0X2RvX3BpbigKPiArCQkJcmluZywKPiArCQkJcmluZy0+ZGVmYXVsdF9j b250ZXh0LT5lbmdpbmVbcmluZy0+aWRdLnN0YXRlLAo+ICsJCQlyaW5nLT5kZWZhdWx0X2NvbnRl eHQtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1Zik7Cj4gKwlpZiAocmV0KSB7Cj4gKwkJRFJNX0VS Uk9SKAo+ICsJCQkiRmFpbGVkIHRvIHBpbiBhbmQgbWFwIHJpbmdidWZmZXIgJXM6ICVkXG4iLAo+ ICsJCQlyaW5nLT5uYW1lLCByZXQpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4gICAKPiAgIAly ZXR1cm4gcmV0Owo+ICAgfQo+IEBAIC0yMDgxLDE0ICsyMTE2LDggQEAgaW50IGludGVsX2xvZ2lj YWxfcmluZ3NfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQkJZ290byBjbGVhbnVw X3ZlYm94X3Jpbmc7Cj4gICAJfQo+ICAgCj4gLQlyZXQgPSBpOTE1X2dlbV9zZXRfc2Vxbm8oZGV2 LCAoKHUzMil+MCAtIDB4MTAwMCkpOwo+IC0JaWYgKHJldCkKPiAtCQlnb3RvIGNsZWFudXBfYnNk Ml9yaW5nOwo+IC0KPiAgIAlyZXR1cm4gMDsKPiAgIAo+IC1jbGVhbnVwX2JzZDJfcmluZzoKPiAt CWludGVsX2xvZ2ljYWxfcmluZ19jbGVhbnVwKCZkZXZfcHJpdi0+cmluZ1tWQ1MyXSk7Cj4gICBj bGVhbnVwX3ZlYm94X3Jpbmc6Cj4gICAJaW50ZWxfbG9naWNhbF9yaW5nX2NsZWFudXAoJmRldl9w cml2LT5yaW5nW1ZFQ1NdKTsKPiAgIGNsZWFudXBfYmx0X3Jpbmc6Cj4gQEAgLTIzNTgsNyArMjM4 Nyw3IEBAIHN0YXRpYyB2b2lkIGxyY19zZXR1cF9oYXJkd2FyZV9zdGF0dXNfcGFnZShzdHJ1Y3Qg aW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAgfQo+ICAgCj4gICAvKioKPiAtICogaW50ZWxfbHJf Y29udGV4dF9kZWZlcnJlZF9jcmVhdGUoKSAtIGNyZWF0ZSB0aGUgTFJDIHNwZWNpZmljIGJpdHMg b2YgYSBjb250ZXh0Cj4gKyAqIGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2MoKSAtIGNy ZWF0ZSB0aGUgTFJDIHNwZWNpZmljIGJpdHMgb2YgYSBjb250ZXh0Cj4gICAgKiBAY3R4OiBMUiBj b250ZXh0IHRvIGNyZWF0ZS4KPiAgICAqIEByaW5nOiBlbmdpbmUgdG8gYmUgdXNlZCB3aXRoIHRo ZSBjb250ZXh0Lgo+ICAgICoKPiBAQCAtMjM3MCwxMiArMjM5OSwxMSBAQCBzdGF0aWMgdm9pZCBs cmNfc2V0dXBfaGFyZHdhcmVfc3RhdHVzX3BhZ2Uoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmlu ZywKPiAgICAqCj4gICAgKiBSZXR1cm46IG5vbi16ZXJvIG9uIGVycm9yLgo+ICAgICovCj4gLWlu dCBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2NyZWF0ZShzdHJ1Y3QgaW50ZWxfY29udGV4dCAq Y3R4LAo+ICsKPiAraW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJyZWRfYWxsb2Moc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCwKPiAgIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpCj4gICB7Cj4gLQljb25zdCBib29sIGlzX2dsb2JhbF9kZWZhdWx0X2N0eCA9IChjdHggPT0g cmluZy0+ZGVmYXVsdF9jb250ZXh0KTsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcmlu Zy0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqY3R4X29iajsKPiAgIAl1 aW50MzJfdCBjb250ZXh0X3NpemU7Cj4gICAJc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWY7Cj4gQEAgLTIzOTUsODIgKzI0MjMsNTAgQEAgaW50IGludGVsX2xyX2NvbnRleHRfZGVmZXJy ZWRfY3JlYXRlKHN0cnVjdCBpbnRlbF9jb250ZXh0ICpjdHgsCj4gICAJCXJldHVybiAtRU5PTUVN Owo+ICAgCX0KPiAgIAo+IC0JaWYgKGlzX2dsb2JhbF9kZWZhdWx0X2N0eCkgewo+IC0JCXJldCA9 IGk5MTVfZ2VtX29ial9nZ3R0X3BpbihjdHhfb2JqLCBHRU44X0xSX0NPTlRFWFRfQUxJR04sCj4g LQkJCQlQSU5fT0ZGU0VUX0JJQVMgfCBHVUNfV09QQ01fVE9QKTsKPiAtCQlpZiAocmV0KSB7Cj4g LQkJCURSTV9ERUJVR19EUklWRVIoIlBpbiBMUkMgYmFja2luZyBvYmogZmFpbGVkOiAlZFxuIiwK PiAtCQkJCQlyZXQpOwo+IC0JCQlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmY3R4X29iai0+ YmFzZSk7Cj4gLQkJCXJldHVybiByZXQ7Cj4gLQkJfQo+IC0KPiAtCQkvKiBJbnZhbGlkYXRlIEd1 QyBUTEIuICovCj4gLQkJaWYgKGk5MTUuZW5hYmxlX2d1Y19zdWJtaXNzaW9uKQo+IC0JCQlJOTE1 X1dSSVRFKEdFTjhfR1RDUiwgR0VOOF9HVENSX0lOVkFMSURBVEUpOwo+IC0JfQo+IC0KPiAgIAly aW5nYnVmID0gaW50ZWxfZW5naW5lX2NyZWF0ZV9yaW5nYnVmZmVyKHJpbmcsIDQgKiBQQUdFX1NJ WkUpOwo+ICAgCWlmIChJU19FUlIocmluZ2J1ZikpIHsKPiAgIAkJcmV0ID0gUFRSX0VSUihyaW5n YnVmKTsKPiAtCQlnb3RvIGVycm9yX3VucGluX2N0eDsKPiAtCX0KPiAtCj4gLQlpZiAoaXNfZ2xv YmFsX2RlZmF1bHRfY3R4KSB7Cj4gLQkJcmV0ID0gaW50ZWxfcGluX2FuZF9tYXBfcmluZ2J1ZmZl cl9vYmooZGV2LCByaW5nYnVmKTsKPiAtCQlpZiAocmV0KSB7Cj4gLQkJCURSTV9FUlJPUigKPiAt CQkJCSAgIkZhaWxlZCB0byBwaW4gYW5kIG1hcCByaW5nYnVmZmVyICVzOiAlZFxuIiwKPiAtCQkJ CSAgcmluZy0+bmFtZSwgcmV0KTsKPiAtCQkJZ290byBlcnJvcl9yaW5nYnVmOwo+IC0JCX0KPiAr CQlnb3RvIGVycm9yX2RlcmVmX29iajsKPiAgIAl9Cj4gICAKPiAgIAlyZXQgPSBwb3B1bGF0ZV9s cl9jb250ZXh0KGN0eCwgY3R4X29iaiwgcmluZywgcmluZ2J1Zik7Cj4gICAJaWYgKHJldCkgewo+ ICAgCQlEUk1fREVCVUdfRFJJVkVSKCJGYWlsZWQgdG8gcG9wdWxhdGUgTFJDOiAlZFxuIiwgcmV0 KTsKPiAtCQlnb3RvIGVycm9yOwo+ICsJCWdvdG8gZXJyb3JfcmluZ2J1ZjsKPiAgIAl9Cj4gICAK PiAgIAljdHgtPmVuZ2luZVtyaW5nLT5pZF0ucmluZ2J1ZiA9IHJpbmdidWY7Cj4gICAJY3R4LT5l bmdpbmVbcmluZy0+aWRdLnN0YXRlID0gY3R4X29iajsKPiAgIAo+IC0JaWYgKGN0eCA9PSByaW5n LT5kZWZhdWx0X2NvbnRleHQpCj4gLQkJbHJjX3NldHVwX2hhcmR3YXJlX3N0YXR1c19wYWdlKHJp bmcsIGN0eF9vYmopOwo+IC0JZWxzZSBpZiAocmluZy0+aWQgPT0gUkNTICYmICFjdHgtPnJjc19p bml0aWFsaXplZCkgewo+IC0JCWlmIChyaW5nLT5pbml0X2NvbnRleHQpIHsKPiAtCQkJc3RydWN0 IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4gLQo+IC0JCQlyZXQgPSBpOTE1X2dlbV9yZXF1 ZXN0X2FsbG9jKHJpbmcsIGN0eCwgJnJlcSk7Cj4gLQkJCWlmIChyZXQpCj4gLQkJCQlyZXR1cm4g cmV0Owo+ICsJaWYgKGN0eCAhPSByaW5nLT5kZWZhdWx0X2NvbnRleHQgJiYgcmluZy0+aW5pdF9j b250ZXh0KSB7Cj4gKwkJc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXE7Cj4gICAKPiAt CQkJcmV0ID0gcmluZy0+aW5pdF9jb250ZXh0KHJlcSk7Cj4gLQkJCWlmIChyZXQpIHsKPiAtCQkJ CURSTV9FUlJPUigicmluZyBpbml0IGNvbnRleHQ6ICVkXG4iLCByZXQpOwo+IC0JCQkJaTkxNV9n ZW1fcmVxdWVzdF9jYW5jZWwocmVxKTsKPiAtCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5yaW5n YnVmID0gTlVMTDsKPiAtCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSA9IE5VTEw7Cj4g LQkJCQlnb3RvIGVycm9yOwo+IC0JCQl9Cj4gLQo+IC0JCQlpOTE1X2FkZF9yZXF1ZXN0X25vX2Zs dXNoKHJlcSk7Cj4gKwkJcmV0ID0gaTkxNV9nZW1fcmVxdWVzdF9hbGxvYyhyaW5nLAo+ICsJCQlj dHgsICZyZXEpOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJRFJNX0VSUk9SKCJyaW5nIGNyZWF0ZSBy ZXE6ICVkXG4iLAo+ICsJCQkJcmV0KTsKPiArCQkJaTkxNV9nZW1fcmVxdWVzdF9jYW5jZWwocmVx KTsKPiArCQkJZ290byBlcnJvcl9yaW5nYnVmOwoKSXQgbG9va3MgbGlrZSBJJ3ZlIGhpdCBhIGJ1 ZyBoZXJlLCB3aGVuIGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MKZmFpbHMgd2l0aCBFTk9TUEMgaXQg Z29lcyBvbiB0byBjYWxsIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsCndpdGggcmVxID09IE5VTEwu IAoKUHJvdm9rZWQgYnkgZmxpbmstYW5kLWV4aXQtdm1hLWxlYWsgSUdULCB3aGljaAppcyBub3Qg aW4gbWFzdGVyIHlldCwgYnV0IEkgcG9zdGVkIGl0IHJlY2VudGx5IGFzCiJbUEFUQ0ggaS1nLXRd IGdlbV9wcGd0dDogVGVzdCBWTUEgbGVhayBvbiBjb250ZXh0IGRlc3RydWN0aW9uIi4KClsgIDI0 My45MjU0NDJdIFtkcm06aW50ZWxfbHJfY29udGV4dF9kZWZlcnJlZF9hbGxvYyBbaTkxNV1dICpF UlJPUiogcmluZyBjcmVhdGUgcmVxOiAtMjgKWyAgMjQzLjkzNDY1OV0gQlVHOiB1bmFibGUgdG8g aGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgMDAwMDAwMDAwMDAwMDAz MApbICAyNDMuOTQzNzkyXSBJUDogWzxmZmZmZmZmZmEwMWFlOTZjPl0gaTkxNV9nZW1fcmVxdWVz dF9jYW5jZWwrMHhjLzB4NzAgW2k5MTVdClsgIDI0My45NTIwNjVdIFBHRCBiYTZlNTA2NyBQVUQg YmExZGIwNjcgUE1EIDAKWyAgMjQzLjk1NzEzOV0gT29wczogMDAwMCBbIzFdIFBSRUVNUFQgU01Q ClsgIDI0My45NjE4NjFdIE1vZHVsZXMgbGlua2VkIGluOiBjb3JldGVtcCBpOTE1IGFzaXggbGli cGh5IGRybV9rbXNfaGVscGVyIHVzYm5ldCBtaWkgZHJtIGZiX3N5c19mb3BzIHN5c2ltZ2JsdCBz eXNmaWxscmVjdCBscGNfaWNoIHN5c2NvcHlhcmVhIG1mZF9jb3JlIGkyY19hbGdvX2JpdCB2aWRl byBpMmNfaGlkIGdwaW9fbHlueHBvaW50IGhpZF9nZW5lcmljIG5sc19pc284ODU5XzEgYWNwaV9w YWQgdXNiaGlkIGhpZCBlMTAwMGUgcHRwIGFoY2kgbGliYWhjaSBwcHNfY29yZQpbICAyNDMuOTg5 OTYzXSBDUFU6IDEgUElEOiAxMjQ2IENvbW06IGdlbV9wcGd0dCBUYWludGVkOiBHICAgICBVICBX ICAgICAgIDQuMy4wLXJjMi0xNTA5MTArICM2ClsgIDI0My45OTk3NzddIEhhcmR3YXJlIG5hbWU6 IEludGVsIENvcnBvcmF0aW9uIEJyb2Fkd2VsbCBDbGllbnQgcGxhdGZvcm0vV2hpdGVUaXAgTW91 bnRhaW4gMSwgQklPUyBCRFctRTFSMS44NkMuMDA4MC5SMDEuMTQwNjEyMDQ0NiAwNi8xMi8yMDE0 ClsgIDI0NC4wMTQ0NDZdIHRhc2s6IGZmZmY4ODAwYmE5MzUwMDAgdGk6IGZmZmY4ODAwYjg1MTAw MDAgdGFzay50aTogZmZmZjg4MDBiODUxMDAwMApbICAyNDQuMDIzMzUwXSBSSVA6IDAwMTA6Wzxm ZmZmZmZmZmEwMWFlOTZjPl0gIFs8ZmZmZmZmZmZhMDFhZTk2Yz5dIGk5MTVfZ2VtX3JlcXVlc3Rf Y2FuY2VsKzB4Yy8weDcwIFtpOTE1XQpbICAyNDQuMDM0NTU2XSBSU1A6IDAwMTg6ZmZmZjg4MDBi ODUxM2FmOCAgRUZMQUdTOiAwMDAxMDI5MgpbICAyNDQuMDQwOTkzXSBSQVg6IDAwMDAwMDAwMDAw MDAwNDkgUkJYOiAwMDAwMDAwMDAwMDAwMDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwMApbICAyNDQu MDQ5NTI2XSBSRFg6IGZmZmY4ODAxM2Y0OGU0YzAgUlNJOiBmZmZmODgwMTNmNDhjYjc4IFJESTog MDAwMDAwMDAwMDAwMDAwMApbICAyNDQuMDU4MDY5XSBSQlA6IGZmZmY4ODAwYjg1MTNiMDggUjA4 OiAwMDAwMDAwMDAwMDAwMDAxIFIwOTogMDAwMDAwMDAwMDAwMDAwMApbICAyNDQuMDY2NjYwXSBS MTA6IDAwMDAwMDAwMDAwMDAwMDEgUjExOiAwMDAwMDAwMDAwMDAwMDAxIFIxMjogZmZmZjg4MDAx MDMzNWY4MApbICAyNDQuMDc1MjA4XSBSMTM6IGZmZmY4ODAwMTAzMTc4MDAgUjE0OiAwMDAwMDAw MGZmZmZmZmU0IFIxNTogZmZmZjg4MDAxMDM4YTAwMApbICAyNDQuMDgzNzkxXSBGUzogIDAwMDA3 ZjJjNmRlM2E3NDAoMDAwMCkgR1M6ZmZmZjg4MDEzZjQ4MDAwMCgwMDAwKSBrbmxHUzowMDAwMDAw MDAwMDAwMDAwClsgIDI0NC4wOTM0NDhdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBDUjA6 IDAwMDAwMDAwODAwNTAwMzMKWyAgMjQ0LjEwMDQ5Nl0gQ1IyOiAwMDAwMDAwMDAwMDAwMDMwIENS MzogMDAwMDAwMDBiYTM0MTAwMCBDUjQ6IDAwMDAwMDAwMDAzNDA2ZTAKWyAgMjQ0LjEwOTEyOF0g RFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAwMDAw MDAwMDAwMDAKWyAgMjQ0LjExNzc1OV0gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAwMDAw MDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKWyAgMjQ0LjEyNjM2M10gU3RhY2s6Clsg IDI0NC4xMjkxODJdICBmZmZmODgwMDEwMzIyOTAwIGZmZmY4ODAwYjhhNDJmMjggZmZmZjg4MDBi ODUxM2I3OCBmZmZmZmZmZmEwMWJkMGVlClsgIDI0NC4xMzgxODRdICBmZmZmODgwMGFkNzE1MDAw IGZmZmZlYTAwMDJiNWM1NDAgZmZmZjg4MDBiOTc2MTAwMCBmZmZmODgwMDEwMWI5ZTgwClsgIDI0 NC4xNDcxOTFdICAwMDAwMDAwMGZmZmZmZmZhIDAwMDAwMDAwMDAwMDAwMDAgZmZmZjg4MDBiODUx M2I3OCBmZmZmODgwMGI4NTEzZGIwClsgIDI0NC4xNTYyMjBdIENhbGwgVHJhY2U6ClsgIDI0NC4x NTk1OTJdICBbPGZmZmZmZmZmYTAxYmQwZWU+XSBpbnRlbF9scl9jb250ZXh0X2RlZmVycmVkX2Fs bG9jKzB4NjdlLzB4OGUwIFtpOTE1XQpbICAyNDQuMTY5MDAyXSAgWzxmZmZmZmZmZmEwMWEyZmY4 Pl0gaTkxNV9nZW1fZG9fZXhlY2J1ZmZlci5pc3JhLjMwKzB4MTEyOC8weDExYTAgW2k5MTVdClsg IDI0NC4xNzg0ODhdICBbPGZmZmZmZmZmODEwOGY0NWQ+XSA/IF9fbG9ja19hY3F1aXJlKzB4YWJk LzB4MWU3MApbICAyNDQuMTg1ODQ1XSAgWzxmZmZmZmZmZmEwMWE0MjNjPl0gaTkxNV9nZW1fZXhl Y2J1ZmZlcjIrMHhkYy8weDI5MCBbaTkxNV0KWyAgMjQ0LjE5NDA2NF0gIFs8ZmZmZmZmZmZhMDBl NWQ2OT5dIGRybV9pb2N0bCsweDJmOS8weDU0MCBbZHJtXQpbICAyNDQuMjAxMjM5XSAgWzxmZmZm ZmZmZjgxMGE1MWVkPl0gPyBfX2NhbGxfcmN1LmNvbnN0cHJvcC42NisweDhkLzB4MmEwClsgIDI0 NC4yMDkzMThdICBbPGZmZmZmZmZmYTAxYTQxNjA+XSA/IGk5MTVfZ2VtX2V4ZWNidWZmZXIrMHgz OTAvMHgzOTAgW2k5MTVdClsgIDI0NC4yMTc3OTVdICBbPGZmZmZmZmZmODEwYTU0NzI+XSA/IGNh bGxfcmN1KzB4MTIvMHgyMApbICAyNDQuMjI0MjgwXSAgWzxmZmZmZmZmZjgxMTI3NjkyPl0gPyBw dXRfb2JqZWN0KzB4MzIvMHg1MApbICAyNDQuMjMwOTkyXSAgWzxmZmZmZmZmZjgxMTI1NGM5Pl0g PyBrbWVtX2NhY2hlX2ZyZWUrMHhhOS8weDE5MApbICAyNDQuMjM4Mjc2XSAgWzxmZmZmZmZmZjgx MTNkZWE3Pl0gZG9fdmZzX2lvY3RsKzB4ODcvMHg1YjAKWyAgMjQ0LjI0NTEwMl0gIFs8ZmZmZmZm ZmY4MTEzYWEwYT5dID8gcHV0bmFtZSsweDVhLzB4NjAKWyAgMjQ0LjI1MTUzOF0gIFs8ZmZmZmZm ZmY4MTE0OWExND5dID8gX19mZ2V0X2xpZ2h0KzB4NzQvMHhhMApbICAyNDQuMjU4NDgzXSAgWzxm ZmZmZmZmZjgxMTNlNDE3Pl0gU3lTX2lvY3RsKzB4NDcvMHg4MApbICAyNDQuMjY0OTMzXSAgWzxm ZmZmZmZmZjgxNTZjMzE3Pl0gZW50cnlfU1lTQ0FMTF82NF9mYXN0cGF0aCsweDEyLzB4NmYKWyAg MjQ0LjI3Mjk0N10gQ29kZTogNDggYzcgYzIgMjggNDIgMjQgYTAgYmUgZDcgMDkgMDAgMDAgNDgg YzcgYzcgMTAgNDAgMjQgYTAgMzEgYzAgZTggZDUgMDEgZWEgZTAgZTkgYjUgZmUgZmYgZmYgNTUg NDggODkgZTUgNTMgNDggODkgZmIgNDggODMgZWMgMDggPDQ4PiA4YiA3ZiAzMCBlOCAyYiAyZCAw MSAwMCA0OCA4YiA0MyAxMCA0OCA4YiA0MCAxMCA4YiA0MCA2MCA4MwpbICAyNDQuMjk1ODczXSBS SVAgIFs8ZmZmZmZmZmZhMDFhZTk2Yz5dIGk5MTVfZ2VtX3JlcXVlc3RfY2FuY2VsKzB4Yy8weDcw IFtpOTE1XQpbICAyNDQuMzA0Nzg5XSAgUlNQIDxmZmZmODgwMGI4NTEzYWY4PgpbICAyNDQuMzA5 NTM1XSBDUjI6IDAwMDAwMDAwMDAwMDAwMzAKWyAgMjQ0LjMxNDExOV0gLS0tWyBlbmQgdHJhY2Ug MzczMjllNGM4MTdlZTEyYSBdLS0tCgpSZWdhcmRzLAoKVHZydGtvCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=