From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ander Conselvan De Oliveira Subject: Re: [PATCH 03/13] drm/i915/skl: Simplify wm structures slightly Date: Wed, 26 Aug 2015 16:23:45 +0300 Message-ID: <1440595425.2519.14.camel@gmail.com> References: <1440119524-13867-1-git-send-email-matthew.d.roper@intel.com> <1440119524-13867-4-git-send-email-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f50.google.com (mail-pa0-f50.google.com [209.85.220.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id F25F66E655 for ; Wed, 26 Aug 2015 06:23:51 -0700 (PDT) Received: by pacdd16 with SMTP id dd16so160890018pac.2 for ; Wed, 26 Aug 2015 06:23:51 -0700 (PDT) In-Reply-To: <1440119524-13867-4-git-send-email-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCAyMDE1LTA4LTIwIGF0IDE4OjExIC0wNzAwLCBNYXR0IFJvcGVyIHdyb3RlOgo+IEEg YnVuY2ggb2YgU0tMIHdhdGVybWFyay1yZWxhdGVkIHN0cnVjdHVyZXMgaGF2ZSB0aGUgY3Vyc29y IHBsYW5lIGFzIGEKPiBzZXBhcmF0ZSBlbnRyeSBmcm9tIHRoZSByZXN0IG9mIHRoZSBwbGFuZXMu ICBJZiB3ZSBqdXN0IGV4dGVuZCB0aGUKPiByZWxldmFudCBwbGFuZSBhcnJheXMgYnkgb25lIGVu dHJ5IGFuZCB1c2UgdGhlIHRvcC1tb3N0IGFycmF5IGVsZW1lbnQgYXMKPiB0aGUgY3Vyc29yLCBp dCB3aWxsIHNpbXBsaWZ5IGZ1dHVyZSBwYXRjaGVzLgo+IAo+IFRoZXJlIHNob3VsZG4ndCBiZSBh bnkgZnVuY3Rpb25hbCBjaGFuZ2UgaGVyZTsgdGhpcyBpcyBqdXN0IHNodWZmbGluZwo+IGFyb3Vu ZCBob3cgdGhlIGRhdGEgaXMgc3RvcmVkIGluIHNvbWUgb2YgdGhlIGRhdGEgc3RydWN0dXJlcy4g IFRoZSB3aG9sZQo+IHBhdGNoIGlzIGdlbmVyYXRlZCB3aXRoIENvY2NpbmVsbGUgdmlhIHRoZSBm b2xsb3dpbmcgc2VtYW50aWMgcGF0Y2g6Cj4gCj4gICAgICAgICBAQCBzdHJ1Y3Qgc2tsX3BpcGVf d21fcGFyYW1ldGVycyBXTVA7IEBACj4gICAgICAgICAtIFdNUC5jdXJzb3IKPiAgICAgICAgICsg V01QLnBsYW5lW0k5MTVfTUFYX1BMQU5FU10KClRoaXMgd291bGQgbWFrZSB0aGUgY29kZSBtb3Jl IGNvbmZ1c2luZy4gSSBzZWUgdGhhdCBqdXN0IGJlbG93IHRoZSBJOTE1X01BWF9QTEFORVMgdGhl cmUgaXMgYSBlbnVtCnBsYW5lLiBXb3VsZCBpdCBtYWtlIHNlbnNlIHRvIGNvbWJpbmUgSTkxNV9N QVhfUExBTkVTIHdpdGggdGhhdD8gCgplbnVtIHBsYW5lIHsKCVBMQU5FX0EsCglQTEFORV9CLAoJ UExBTkVfQywKCVBMQU5FX0QsIC8qIHRoaXMgd291bGQgYmUgbmV3LCBmb3IgQlhUICovCglJOTE1 X01BWF9QTEFORVMsCglQTEFORV9DVVJTT1IgPSBJOTE1X01BWF9QTEFORVMsCn07CgpUaGVuIHRo ZSBjb2RlIHdvdWxkIHJlZmVyZW5jZSBXTVAucGxhbmVbUExBTkVfQ1VSU09SXS4KCkFuZGVyCgo+ IAo+ICAgICAgICAgQEAgc3RydWN0IHNrbF9waXBlX3dtX3BhcmFtZXRlcnMgKldNUDsgQEAKPiAg ICAgICAgIC0gV01QLT5jdXJzb3IKPiAgICAgICAgICsgV01QLT5wbGFuZVtJOTE1X01BWF9QTEFO RVNdCj4gCj4gICAgICAgICBAQCBAQAo+ICAgICAgICAgc3RydWN0IHNrbF9waXBlX3dtX3BhcmFt ZXRlcnMgewo+ICAgICAgICAgLi4uCj4gICAgICAgICAtIHN0cnVjdCBpbnRlbF9wbGFuZV93bV9w YXJhbWV0ZXJzIHBsYW5lW0k5MTVfTUFYX1BMQU5FU107Cj4gICAgICAgICArIHN0cnVjdCBpbnRl bF9wbGFuZV93bV9wYXJhbWV0ZXJzIHBsYW5lW0k5MTVfTUFYX1BMQU5FUysxXTsKPiAgICAgICAg IC0gc3RydWN0IGludGVsX3BsYW5lX3dtX3BhcmFtZXRlcnMgY3Vyc29yOwo+ICAgICAgICAgLi4u Cj4gICAgICAgICB9Owo+IAo+ICAgICAgICAgQEAKPiAgICAgICAgIHN0cnVjdCBza2xfZGRiX2Fs bG9jYXRpb24gRERCOwo+ICAgICAgICAgZXhwcmVzc2lvbiBFOwo+ICAgICAgICAgQEAKPiAgICAg ICAgIC0gRERCLmN1cnNvcltFXQo+ICAgICAgICAgKyBEREIucGxhbmVbRV1bSTkxNV9NQVhfUExB TkVTXQo+IAo+ICAgICAgICAgQEAKPiAgICAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24g KkREQjsKPiAgICAgICAgIGV4cHJlc3Npb24gRTsKPiAgICAgICAgIEBACj4gICAgICAgICAtIERE Qi0+Y3Vyc29yW0VdCj4gICAgICAgICArIEREQi0+cGxhbmVbRV1bSTkxNV9NQVhfUExBTkVTXQo+ IAo+ICAgICAgICAgQEAgQEAKPiAgICAgICAgIHN0cnVjdCBza2xfZGRiX2FsbG9jYXRpb24gewo+ ICAgICAgICAgLi4uCj4gICAgICAgICAtIHN0cnVjdCBza2xfZGRiX2VudHJ5IHBsYW5lW0k5MTVf TUFYX1BJUEVTXVtJOTE1X01BWF9QTEFORVNdOwo+ICAgICAgICAgKyBzdHJ1Y3Qgc2tsX2RkYl9l bnRyeSBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTKzFdOwo+ICAgICAgICAg Li4uCj4gICAgICAgICAtIHN0cnVjdCBza2xfZGRiX2VudHJ5IGN1cnNvcltJOTE1X01BWF9QSVBF U107Cj4gICAgICAgICAuLi4KPiAgICAgICAgIH07Cj4gCj4gICAgICAgICBAQAo+ICAgICAgICAg c3RydWN0IHNrbF93bV92YWx1ZXMgV01WOwo+ICAgICAgICAgZXhwcmVzc2lvbiBFMSwgRTI7Cj4g ICAgICAgICBAQAo+ICAgICAgICAgKAo+ICAgICAgICAgLSBXTVYuY3Vyc29yW0UxXVtFMl0KPiAg ICAgICAgICsgV01WLnBsYW5lW0UxXVtJOTE1X01BWF9QTEFORVNdW0UyXQo+ICAgICAgICAgfAo+ ICAgICAgICAgLSBXTVYuY3Vyc29yX3RyYW5zW0UxXQo+ICAgICAgICAgKyBXTVYucGxhbmVfdHJh bnNbRTFdW0k5MTVfTUFYX1BMQU5FU10KPiAgICAgICAgICkKPiAKPiAgICAgICAgIEBACj4gICAg ICAgICBzdHJ1Y3Qgc2tsX3dtX3ZhbHVlcyAqV01WOwo+ICAgICAgICAgZXhwcmVzc2lvbiBFMSwg RTI7Cj4gICAgICAgICBAQAo+ICAgICAgICAgKAo+ICAgICAgICAgLSBXTVYtPmN1cnNvcltFMV1b RTJdCj4gICAgICAgICArIFdNVi0+cGxhbmVbRTFdW0k5MTVfTUFYX1BMQU5FU11bRTJdCj4gICAg ICAgICB8Cj4gICAgICAgICAtIFdNVi0+Y3Vyc29yX3RyYW5zW0UxXQo+ICAgICAgICAgKyBXTVYt PnBsYW5lX3RyYW5zW0UxXVtJOTE1X01BWF9QTEFORVNdCj4gICAgICAgICApCj4gCj4gICAgICAg ICBAQCBAQAo+ICAgICAgICAgc3RydWN0IHNrbF93bV92YWx1ZXMgewo+ICAgICAgICAgLi4uCj4g ICAgICAgICAtIHVpbnQzMl90IHBsYW5lW0k5MTVfTUFYX1BJUEVTXVtJOTE1X01BWF9QTEFORVNd WzhdOwo+ICAgICAgICAgKyB1aW50MzJfdCBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhf UExBTkVTKzFdWzhdOwo+ICAgICAgICAgLi4uCj4gICAgICAgICAtIHVpbnQzMl90IGN1cnNvcltJ OTE1X01BWF9QSVBFU11bOF07Cj4gICAgICAgICAuLi4KPiAgICAgICAgIC0gdWludDMyX3QgcGxh bmVfdHJhbnNbSTkxNV9NQVhfUElQRVNdW0k5MTVfTUFYX1BMQU5FU107Cj4gICAgICAgICArIHVp bnQzMl90IHBsYW5lX3RyYW5zW0k5MTVfTUFYX1BJUEVTXVtJOTE1X01BWF9QTEFORVMrMV07Cj4g ICAgICAgICAuLi4KPiAgICAgICAgIC0gdWludDMyX3QgY3Vyc29yX3RyYW5zW0k5MTVfTUFYX1BJ UEVTXTsKPiAgICAgICAgIC4uLgo+ICAgICAgICAgfTsKPiAKPiAgICAgICAgIEBAIHN0cnVjdCBz a2xfd21fbGV2ZWwgV01MOyBAQAo+ICAgICAgICAgKAo+ICAgICAgICAgLSBXTUwuY3Vyc29yX2Vu Cj4gICAgICAgICArIFdNTC5wbGFuZV9lbltJOTE1X01BWF9QTEFORVNdCj4gICAgICAgICB8Cj4g ICAgICAgICAtIFdNTC5jdXJzb3JfcmVzX2IKPiAgICAgICAgICsgV01MLnBsYW5lX3Jlc19iW0k5 MTVfTUFYX1BMQU5FU10KPiAgICAgICAgIHwKPiAgICAgICAgIC0gV01MLmN1cnNvcl9yZXNfbAo+ ICAgICAgICAgKyBXTUwucGxhbmVfcmVzX2xbSTkxNV9NQVhfUExBTkVTXQo+ICAgICAgICAgKQo+ IAo+ICAgICAgICAgQEAgc3RydWN0IHNrbF93bV9sZXZlbCAqV01MOyBAQAo+ICAgICAgICAgKAo+ ICAgICAgICAgLSBXTUwtPmN1cnNvcl9lbgo+ICAgICAgICAgKyBXTUwtPnBsYW5lX2VuW0k5MTVf TUFYX1BMQU5FU10KPiAgICAgICAgIHwKPiAgICAgICAgIC0gV01MLT5jdXJzb3JfcmVzX2IKPiAg ICAgICAgICsgV01MLT5wbGFuZV9yZXNfYltJOTE1X01BWF9QTEFORVNdCj4gICAgICAgICB8Cj4g ICAgICAgICAtIFdNTC0+Y3Vyc29yX3Jlc19sCj4gICAgICAgICArIFdNTC0+cGxhbmVfcmVzX2xb STkxNV9NQVhfUExBTkVTXQo+ICAgICAgICAgKQo+IAo+ICAgICAgICAgQEAgQEAKPiAgICAgICAg IHN0cnVjdCBza2xfd21fbGV2ZWwgewo+ICAgICAgICAgLi4uCj4gICAgICAgICAtIGJvb2wgcGxh bmVfZW5bSTkxNV9NQVhfUExBTkVTXTsKPiAgICAgICAgICsgYm9vbCBwbGFuZV9lbltJOTE1X01B WF9QTEFORVMrMV07Cj4gICAgICAgICAuLi4KPiAgICAgICAgIC0gYm9vbCBjdXJzb3JfZW47Cj4g ICAgICAgICAuLi4KPiAgICAgICAgIC0gdWludDE2X3QgcGxhbmVfcmVzX2JbSTkxNV9NQVhfUExB TkVTXTsKPiAgICAgICAgICsgdWludDE2X3QgcGxhbmVfcmVzX2JbSTkxNV9NQVhfUExBTkVTKzFd Owo+ICAgICAgICAgLi4uCj4gICAgICAgICAtIHVpbnQ4X3QgcGxhbmVfcmVzX2xbSTkxNV9NQVhf UExBTkVTXTsKPiAgICAgICAgICsgdWludDhfdCBwbGFuZV9yZXNfbFtJOTE1X01BWF9QTEFORVMr MV07Cj4gICAgICAgICAuLi4KPiAgICAgICAgIC0gdWludDE2X3QgY3Vyc29yX3Jlc19iOwo+ICAg ICAgICAgLSB1aW50OF90IGN1cnNvcl9yZXNfbDsKPiAgICAgICAgIC4uLgo+ICAgICAgICAgfTsK PiAKPiBTaWduZWQtb2ZmLWJ5OiBNYXR0IFJvcGVyIDxtYXR0aGV3LmQucm9wZXJAaW50ZWwuY29t Pgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgfCAgMiArLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAyMCArKystLS0tLQo+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNCArLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgfCA4OSArKysrKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLS0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA1OSBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDdhMjhk ZTUuLjU0NTA4ZjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1 Z2ZzLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0z MTQ4LDcgKzMxNDgsNyBAQCBzdGF0aWMgaW50IGk5MTVfZGRiX2luZm8oc3RydWN0IHNlcV9maWxl ICptLCB2b2lkICp1bnVzZWQpCj4gIAkJCQkgICBza2xfZGRiX2VudHJ5X3NpemUoZW50cnkpKTsK PiAgCQl9Cj4gIAo+IC0JCWVudHJ5ID0gJmRkYi0+Y3Vyc29yW3BpcGVdOwo+ICsJCWVudHJ5ID0g JmRkYi0+cGxhbmVbcGlwZV1bSTkxNV9NQVhfUExBTkVTXTsKPiAgCQlzZXFfcHJpbnRmKG0sICIg ICUtMTNzJTh1JTh1JTh1XG4iLCAiQ3Vyc29yIiwgZW50cnktPnN0YXJ0LAo+ICAJCQkgICBlbnRy eS0+ZW5kLCBza2xfZGRiX2VudHJ5X3NpemUoZW50cnkpKTsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKPiBpbmRleCBlMGYzZjA1Li5mMDRiNjdlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCj4gQEAgLTE1NzEsMjggKzE1NzEsMjIgQEAgc3RhdGljIGlubGluZSBib29sIHNrbF9k ZGJfZW50cnlfZXF1YWwoY29uc3Qgc3RydWN0IHNrbF9kZGJfZW50cnkgKmUxLAo+ICAKPiAgc3Ry dWN0IHNrbF9kZGJfYWxsb2NhdGlvbiB7Cj4gIAlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSBwaXBlW0k5 MTVfTUFYX1BJUEVTXTsKPiAtCXN0cnVjdCBza2xfZGRiX2VudHJ5IHBsYW5lW0k5MTVfTUFYX1BJ UEVTXVtJOTE1X01BWF9QTEFORVNdOyAvKiBwYWNrZWQvdXYgKi8KPiAtCXN0cnVjdCBza2xfZGRi X2VudHJ5IHlfcGxhbmVbSTkxNV9NQVhfUElQRVNdW0k5MTVfTUFYX1BMQU5FU107IC8qIHktcGxh bmUgKi8KPiAtCXN0cnVjdCBza2xfZGRiX2VudHJ5IGN1cnNvcltJOTE1X01BWF9QSVBFU107Cj4g KwlzdHJ1Y3Qgc2tsX2RkYl9lbnRyeSBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExB TkVTICsgMV07IC8qIHBhY2tlZC91diAqLwo+ICsJc3RydWN0IHNrbF9kZGJfZW50cnkgeV9wbGFu ZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBz a2xfd21fdmFsdWVzIHsKPiAgCWJvb2wgZGlydHlbSTkxNV9NQVhfUElQRVNdOwo+ICAJc3RydWN0 IHNrbF9kZGJfYWxsb2NhdGlvbiBkZGI7Cj4gIAl1aW50MzJfdCB3bV9saW5ldGltZVtJOTE1X01B WF9QSVBFU107Cj4gLQl1aW50MzJfdCBwbGFuZVtJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExB TkVTXVs4XTsKPiAtCXVpbnQzMl90IGN1cnNvcltJOTE1X01BWF9QSVBFU11bOF07Cj4gLQl1aW50 MzJfdCBwbGFuZV90cmFuc1tJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTXTsKPiAtCXVp bnQzMl90IGN1cnNvcl90cmFuc1tJOTE1X01BWF9QSVBFU107Cj4gKwl1aW50MzJfdCBwbGFuZVtJ OTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTICsgMV1bOF07Cj4gKwl1aW50MzJfdCBwbGFu ZV90cmFuc1tJOTE1X01BWF9QSVBFU11bSTkxNV9NQVhfUExBTkVTICsgMV07Cj4gIH07Cj4gIAo+ ICBzdHJ1Y3Qgc2tsX3dtX2xldmVsIHsKPiAtCWJvb2wgcGxhbmVfZW5bSTkxNV9NQVhfUExBTkVT XTsKPiAtCWJvb2wgY3Vyc29yX2VuOwo+IC0JdWludDE2X3QgcGxhbmVfcmVzX2JbSTkxNV9NQVhf UExBTkVTXTsKPiAtCXVpbnQ4X3QgcGxhbmVfcmVzX2xbSTkxNV9NQVhfUExBTkVTXTsKPiAtCXVp bnQxNl90IGN1cnNvcl9yZXNfYjsKPiAtCXVpbnQ4X3QgY3Vyc29yX3Jlc19sOwo+ICsJYm9vbCBw bGFuZV9lbltJOTE1X01BWF9QTEFORVMgKyAxXTsKPiArCXVpbnQxNl90IHBsYW5lX3Jlc19iW0k5 MTVfTUFYX1BMQU5FUyArIDFdOwo+ICsJdWludDhfdCBwbGFuZV9yZXNfbFtJOTE1X01BWF9QTEFO RVMgKyAxXTsKPiAgfTsKPiAgCj4gIC8qCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+IGluZGV4IGY2MDRjZTEuLjQ1NWIxYmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCj4gQEAgLTEyNTUyLDggKzEyNTUyLDggQEAgc3RhdGljIHZvaWQgY2hlY2tfd21f c3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQl9Cj4gIAo+ICAJCS8qIGN1cnNvciAq Lwo+IC0JCWh3X2VudHJ5ID0gJmh3X2RkYi5jdXJzb3JbcGlwZV07Cj4gLQkJc3dfZW50cnkgPSAm c3dfZGRiLT5jdXJzb3JbcGlwZV07Cj4gKwkJaHdfZW50cnkgPSAmaHdfZGRiLnBsYW5lW3BpcGVd W0k5MTVfTUFYX1BMQU5FU107Cj4gKwkJc3dfZW50cnkgPSAmc3dfZGRiLT5wbGFuZVtwaXBlXVtJ OTE1X01BWF9QTEFORVNdOwo+ICAKPiAgCQlpZiAoc2tsX2RkYl9lbnRyeV9lcXVhbChod19lbnRy eSwgc3dfZW50cnkpKQo+ICAJCQljb250aW51ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBp bmRleCBkODJlYTgyLi5iOWJjYjg1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3BtLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gQEAg LTE3ODMsOCArMTc4Myw3IEBAIHN0cnVjdCBza2xfcGlwZV93bV9wYXJhbWV0ZXJzIHsKPiAgCWJv b2wgYWN0aXZlOwo+ICAJdWludDMyX3QgcGlwZV9odG90YWw7Cj4gIAl1aW50MzJfdCBwaXhlbF9y YXRlOyAvKiBpbiBLSHogKi8KPiAtCXN0cnVjdCBpbnRlbF9wbGFuZV93bV9wYXJhbWV0ZXJzIHBs YW5lW0k5MTVfTUFYX1BMQU5FU107Cj4gLQlzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVy cyBjdXJzb3I7Cj4gKwlzdHJ1Y3QgaW50ZWxfcGxhbmVfd21fcGFyYW1ldGVycyBwbGFuZVtJOTE1 X01BWF9QTEFORVMgKyAxXTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbGtfd21fbWF4aW11bXMgewo+ IEBAIC0yODk4LDcgKzI4OTcsOCBAQCB2b2lkIHNrbF9kZGJfZ2V0X2h3X3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQl9Cj4gIAo+ICAJCXZhbCA9IEk5MTVfUkVB RChDVVJfQlVGX0NGRyhwaXBlKSk7Cj4gLQkJc2tsX2RkYl9lbnRyeV9pbml0X2Zyb21faHcoJmRk Yi0+Y3Vyc29yW3BpcGVdLCB2YWwpOwo+ICsJCXNrbF9kZGJfZW50cnlfaW5pdF9mcm9tX2h3KCZk ZGItPnBsYW5lW3BpcGVdW0k5MTVfTUFYX1BMQU5FU10sCj4gKwkJCQkJICAgdmFsKTsKPiAgCX0K PiAgfQo+ICAKPiBAQCAtMjk2NywxMyArMjk2NywxNCBAQCBza2xfYWxsb2NhdGVfcGlwZV9kZGIo c3RydWN0IGRybV9jcnRjICpjcnRjLAo+ICAJYWxsb2Nfc2l6ZSA9IHNrbF9kZGJfZW50cnlfc2l6 ZShhbGxvYyk7Cj4gIAlpZiAoYWxsb2Nfc2l6ZSA9PSAwKSB7Cj4gIAkJbWVtc2V0KGRkYi0+cGxh bmVbcGlwZV0sIDAsIHNpemVvZihkZGItPnBsYW5lW3BpcGVdKSk7Cj4gLQkJbWVtc2V0KCZkZGIt PmN1cnNvcltwaXBlXSwgMCwgc2l6ZW9mKGRkYi0+Y3Vyc29yW3BpcGVdKSk7Cj4gKwkJbWVtc2V0 KCZkZGItPnBsYW5lW3BpcGVdW0k5MTVfTUFYX1BMQU5FU10sIDAsCj4gKwkJICAgICAgIHNpemVv ZihkZGItPnBsYW5lW3BpcGVdW0k5MTVfTUFYX1BMQU5FU10pKTsKPiAgCQlyZXR1cm47Cj4gIAl9 Cj4gIAo+ICAJY3Vyc29yX2Jsb2NrcyA9IHNrbF9jdXJzb3JfYWxsb2NhdGlvbihjb25maWcpOwo+ IC0JZGRiLT5jdXJzb3JbcGlwZV0uc3RhcnQgPSBhbGxvYy0+ZW5kIC0gY3Vyc29yX2Jsb2NrczsK PiAtCWRkYi0+Y3Vyc29yW3BpcGVdLmVuZCA9IGFsbG9jLT5lbmQ7Cj4gKwlkZGItPnBsYW5lW3Bp cGVdW0k5MTVfTUFYX1BMQU5FU10uc3RhcnQgPSBhbGxvYy0+ZW5kIC0gY3Vyc29yX2Jsb2NrczsK PiArCWRkYi0+cGxhbmVbcGlwZV1bSTkxNV9NQVhfUExBTkVTXS5lbmQgPSBhbGxvYy0+ZW5kOwo+ ICAKPiAgCWFsbG9jX3NpemUgLT0gY3Vyc29yX2Jsb2NrczsKPiAgCWFsbG9jLT5lbmQgLT0gY3Vy c29yX2Jsb2NrczsKPiBAQCAtMzExMiw4ICszMTEzLDggQEAgc3RhdGljIGJvb2wgc2tsX2RkYl9h bGxvY2F0aW9uX2NoYW5nZWQoY29uc3Qgc3RydWN0IHNrbF9kZGJfYWxsb2NhdGlvbiAKPiAqbmV3 X2RkYiwKPiAgCQkgICBzaXplb2YobmV3X2RkYi0+cGxhbmVbcGlwZV0pKSkKPiAgCQlyZXR1cm4g dHJ1ZTsKPiAgCj4gLQlpZiAobWVtY21wKCZuZXdfZGRiLT5jdXJzb3JbcGlwZV0sICZjdXJfZGRi LT5jdXJzb3JbcGlwZV0sCj4gLQkJICAgIHNpemVvZihuZXdfZGRiLT5jdXJzb3JbcGlwZV0pKSkK PiArCWlmIChtZW1jbXAoJm5ld19kZGItPnBsYW5lW3BpcGVdW0k5MTVfTUFYX1BMQU5FU10sICZj dXJfZGRiCj4gLT5wbGFuZVtwaXBlXVtJOTE1X01BWF9QTEFORVNdLAo+ICsJCSAgICBzaXplb2Yo bmV3X2RkYi0+cGxhbmVbcGlwZV1bSTkxNV9NQVhfUExBTkVTXSkpKQo+ICAJCXJldHVybiB0cnVl Owo+ICAKPiAgCXJldHVybiBmYWxzZTsKPiBAQCAtMzE3MiwxNyArMzE3MywxNyBAQCBzdGF0aWMg dm9pZCBza2xfY29tcHV0ZV93bV9waXBlX3BhcmFtZXRlcnMoc3RydWN0IGRybV9jcnRjICpjcnRj LAo+ICAJCXAtPnBsYW5lWzBdLnJvdGF0aW9uID0gY3J0Yy0+cHJpbWFyeS0+c3RhdGUtPnJvdGF0 aW9uOwo+ICAKPiAgCQlmYiA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmZiOwo+IC0JCXAtPmN1cnNv ci55X2J5dGVzX3Blcl9waXhlbCA9IDA7Cj4gKwkJcC0+cGxhbmVbSTkxNV9NQVhfUExBTkVTXS55 X2J5dGVzX3Blcl9waXhlbCA9IDA7Cj4gIAkJaWYgKGZiKSB7Cj4gLQkJCXAtPmN1cnNvci5lbmFi bGVkID0gdHJ1ZTsKPiAtCQkJcC0+Y3Vyc29yLmJ5dGVzX3Blcl9waXhlbCA9IGZiLT5iaXRzX3Bl cl9waXhlbCAvIDg7Cj4gLQkJCXAtPmN1cnNvci5ob3Jpel9waXhlbHMgPSBjcnRjLT5jdXJzb3It PnN0YXRlLT5jcnRjX3c7Cj4gLQkJCXAtPmN1cnNvci52ZXJ0X3BpeGVscyA9IGNydGMtPmN1cnNv ci0+c3RhdGUtPmNydGNfaDsKPiArCQkJcC0+cGxhbmVbSTkxNV9NQVhfUExBTkVTXS5lbmFibGVk ID0gdHJ1ZTsKPiArCQkJcC0+cGxhbmVbSTkxNV9NQVhfUExBTkVTXS5ieXRlc19wZXJfcGl4ZWwg PSBmYi0+Yml0c19wZXJfcGl4ZWwgLyA4Owo+ICsJCQlwLT5wbGFuZVtJOTE1X01BWF9QTEFORVNd Lmhvcml6X3BpeGVscyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNydGNfdzsKPiArCQkJcC0+cGxh bmVbSTkxNV9NQVhfUExBTkVTXS52ZXJ0X3BpeGVscyA9IGNydGMtPmN1cnNvci0+c3RhdGUtPmNy dGNfaDsKPiAgCQl9IGVsc2Ugewo+IC0JCQlwLT5jdXJzb3IuZW5hYmxlZCA9IGZhbHNlOwo+IC0J CQlwLT5jdXJzb3IuYnl0ZXNfcGVyX3BpeGVsID0gMDsKPiAtCQkJcC0+Y3Vyc29yLmhvcml6X3Bp eGVscyA9IDY0Owo+IC0JCQlwLT5jdXJzb3IudmVydF9waXhlbHMgPSA2NDsKPiArCQkJcC0+cGxh bmVbSTkxNV9NQVhfUExBTkVTXS5lbmFibGVkID0gZmFsc2U7Cj4gKwkJCXAtPnBsYW5lW0k5MTVf TUFYX1BMQU5FU10uYnl0ZXNfcGVyX3BpeGVsID0gMDsKPiArCQkJcC0+cGxhbmVbSTkxNV9NQVhf UExBTkVTXS5ob3Jpel9waXhlbHMgPSA2NDsKPiArCQkJcC0+cGxhbmVbSTkxNV9NQVhfUExBTkVT XS52ZXJ0X3BpeGVscyA9IDY0Owo+ICAJCX0KPiAgCX0KPiAgCj4gQEAgLTMyOTYsMTEgKzMyOTcs MTIgQEAgc3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJCQkmcmVzdWx0LT5wbGFuZV9yZXNfbFtpXSk7 Cj4gIAl9Cj4gIAo+IC0JZGRiX2Jsb2NrcyA9IHNrbF9kZGJfZW50cnlfc2l6ZSgmZGRiLT5jdXJz b3JbcGlwZV0pOwo+IC0JcmVzdWx0LT5jdXJzb3JfZW4gPSBza2xfY29tcHV0ZV9wbGFuZV93bShk ZXZfcHJpdiwgcCwgJnAtPmN1cnNvciwKPiArCWRkYl9ibG9ja3MgPSBza2xfZGRiX2VudHJ5X3Np emUoJmRkYi0+cGxhbmVbcGlwZV1bSTkxNV9NQVhfUExBTkVTXSk7Cj4gKwlyZXN1bHQtPnBsYW5l X2VuW0k5MTVfTUFYX1BMQU5FU10gPSBza2xfY29tcHV0ZV9wbGFuZV93bShkZXZfcHJpdiwgcCwK PiArCQkJCQkJICZwLT5wbGFuZVtJOTE1X01BWF9QTEFORVNdLAo+ICAJCQkJCQkgZGRiX2Jsb2Nr cywgbGV2ZWwsCj4gLQkJCQkJCSAmcmVzdWx0LT5jdXJzb3JfcmVzX2IsCj4gLQkJCQkJCSAmcmVz dWx0LT5jdXJzb3JfcmVzX2wpOwo+ICsJCQkJCQkgJnJlc3VsdC0+cGxhbmVfcmVzX2JbSTkxNV9N QVhfUExBTkVTXSwKPiArCQkJCQkJICZyZXN1bHQtPnBsYW5lX3Jlc19sW0k5MTVfTUFYX1BMQU5F U10pOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdWludDMyX3QKPiBAQCAtMzMyOCw3ICszMzMwLDcgQEAg c3RhdGljIHZvaWQgc2tsX2NvbXB1dGVfdHJhbnNpdGlvbl93bShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMsCj4gIAkvKiBVbnRpbCB3ZSBrbm93IG1vcmUsIGp1c3QgZGlzYWJsZSB0cmFuc2l0aW9uIFdN cyAqLwo+ICAJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoaW50ZWxfY3J0Yyk7IGkr KykKPiAgCQl0cmFuc193bS0+cGxhbmVfZW5baV0gPSBmYWxzZTsKPiAtCXRyYW5zX3dtLT5jdXJz b3JfZW4gPSBmYWxzZTsKPiArCXRyYW5zX3dtLT5wbGFuZV9lbltJOTE1X01BWF9QTEFORVNdID0g ZmFsc2U7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BpcGVfd20oc3RydWN0 IGRybV9jcnRjICpjcnRjLAo+IEBAIC0zMzc3LDEzICszMzc5LDEzIEBAIHN0YXRpYyB2b2lkIHNr bF9jb21wdXRlX3dtX3Jlc3VsdHMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgCj4gIAkJdGVt cCA9IDA7Cj4gIAo+IC0JCXRlbXAgfD0gcF93bS0+d21bbGV2ZWxdLmN1cnNvcl9yZXNfbCA8PCBQ TEFORV9XTV9MSU5FU19TSElGVDsKPiAtCQl0ZW1wIHw9IHBfd20tPndtW2xldmVsXS5jdXJzb3Jf cmVzX2I7Cj4gKwkJdGVtcCB8PSBwX3dtLT53bVtsZXZlbF0ucGxhbmVfcmVzX2xbSTkxNV9NQVhf UExBTkVTXSA8PCBQTEFORV9XTV9MSU5FU19TSElGVDsKPiArCQl0ZW1wIHw9IHBfd20tPndtW2xl dmVsXS5wbGFuZV9yZXNfYltJOTE1X01BWF9QTEFORVNdOwo+ICAKPiAtCQlpZiAocF93bS0+d21b bGV2ZWxdLmN1cnNvcl9lbikKPiArCQlpZiAocF93bS0+d21bbGV2ZWxdLnBsYW5lX2VuW0k5MTVf TUFYX1BMQU5FU10pCj4gIAkJCXRlbXAgfD0gUExBTkVfV01fRU47Cj4gIAo+IC0JCXItPmN1cnNv cltwaXBlXVtsZXZlbF0gPSB0ZW1wOwo+ICsJCXItPnBsYW5lW3BpcGVdW0k5MTVfTUFYX1BMQU5F U11bbGV2ZWxdID0gdGVtcDsKPiAgCj4gIAl9Cj4gIAo+IEBAIC0zMzk5LDEyICszNDAxLDEyIEBA IHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3dtX3Jlc3VsdHMoc3RydWN0IGRybV9kZXZpY2UgKmRl diwKPiAgCX0KPiAgCj4gIAl0ZW1wID0gMDsKPiAtCXRlbXAgfD0gcF93bS0+dHJhbnNfd20uY3Vy c29yX3Jlc19sIDw8IFBMQU5FX1dNX0xJTkVTX1NISUZUOwo+IC0JdGVtcCB8PSBwX3dtLT50cmFu c193bS5jdXJzb3JfcmVzX2I7Cj4gLQlpZiAocF93bS0+dHJhbnNfd20uY3Vyc29yX2VuKQo+ICsJ dGVtcCB8PSBwX3dtLT50cmFuc193bS5wbGFuZV9yZXNfbFtJOTE1X01BWF9QTEFORVNdIDw8IFBM QU5FX1dNX0xJTkVTX1NISUZUOwo+ICsJdGVtcCB8PSBwX3dtLT50cmFuc193bS5wbGFuZV9yZXNf YltJOTE1X01BWF9QTEFORVNdOwo+ICsJaWYgKHBfd20tPnRyYW5zX3dtLnBsYW5lX2VuW0k5MTVf TUFYX1BMQU5FU10pCj4gIAkJdGVtcCB8PSBQTEFORV9XTV9FTjsKPiAgCj4gLQlyLT5jdXJzb3Jf dHJhbnNbcGlwZV0gPSB0ZW1wOwo+ICsJci0+cGxhbmVfdHJhbnNbcGlwZV1bSTkxNV9NQVhfUExB TkVTXSA9IHRlbXA7Cj4gIAo+ICAJci0+d21fbGluZXRpbWVbcGlwZV0gPSBwX3dtLT5saW5ldGlt ZTsKPiAgfQo+IEBAIC0zNDM4LDEyICszNDQwLDEzIEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93 bV92YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkJSTkxNV9X UklURShQTEFORV9XTShwaXBlLCBpLCBsZXZlbCksCj4gIAkJCQkJICAgbmV3LT5wbGFuZVtwaXBl XVtpXVtsZXZlbF0pOwo+ICAJCQlJOTE1X1dSSVRFKENVUl9XTShwaXBlLCBsZXZlbCksCj4gLQkJ CQkgICBuZXctPmN1cnNvcltwaXBlXVtsZXZlbF0pOwo+ICsJCQkJICAgbmV3LT5wbGFuZVtwaXBl XVtJOTE1X01BWF9QTEFORVNdW2xldmVsXSk7Cj4gIAkJfQo+ICAJCWZvciAoaSA9IDA7IGkgPCBp bnRlbF9udW1fcGxhbmVzKGNydGMpOyBpKyspCj4gIAkJCUk5MTVfV1JJVEUoUExBTkVfV01fVFJB TlMocGlwZSwgaSksCj4gIAkJCQkgICBuZXctPnBsYW5lX3RyYW5zW3BpcGVdW2ldKTsKPiAtCQlJ OTE1X1dSSVRFKENVUl9XTV9UUkFOUyhwaXBlKSwgbmV3LT5jdXJzb3JfdHJhbnNbcGlwZV0pOwo+ ICsJCUk5MTVfV1JJVEUoQ1VSX1dNX1RSQU5TKHBpcGUpLAo+ICsJCQkgICBuZXctPnBsYW5lX3Ry YW5zW3BpcGVdW0k5MTVfTUFYX1BMQU5FU10pOwo+ICAKPiAgCQlmb3IgKGkgPSAwOyBpIDwgaW50 ZWxfbnVtX3BsYW5lcyhjcnRjKTsgaSsrKSB7Cj4gIAkJCXNrbF9kZGJfZW50cnlfd3JpdGUoZGV2 X3ByaXYsCj4gQEAgLTM0NTUsNyArMzQ1OCw3IEBAIHN0YXRpYyB2b2lkIHNrbF93cml0ZV93bV92 YWx1ZXMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCX0KPiAgCj4gIAkJ c2tsX2RkYl9lbnRyeV93cml0ZShkZXZfcHJpdiwgQ1VSX0JVRl9DRkcocGlwZSksCj4gLQkJCQkg ICAgJm5ldy0+ZGRiLmN1cnNvcltwaXBlXSk7Cj4gKwkJCQkgICAgJm5ldy0+ZGRiLnBsYW5lW3Bp cGVdW0k5MTVfTUFYX1BMQU5FU10pOwo+ICAJfQo+ICB9Cj4gIAo+IEBAIC0zODA5LDEwICszODEy LDEwIEBAIHN0YXRpYyB2b2lkIHNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0ZSh1aW50MzJfdCB2YWws Cj4gIAkJCQkJKHZhbCA+PiBQTEFORV9XTV9MSU5FU19TSElGVCkgJgo+ICAJCQkJCQlQTEFORV9X TV9MSU5FU19NQVNLOwo+ICAJCX0gZWxzZSB7Cj4gLQkJCWFjdGl2ZS0+d21bbGV2ZWxdLmN1cnNv cl9lbiA9IGlzX2VuYWJsZWQ7Cj4gLQkJCWFjdGl2ZS0+d21bbGV2ZWxdLmN1cnNvcl9yZXNfYiA9 Cj4gKwkJCWFjdGl2ZS0+d21bbGV2ZWxdLnBsYW5lX2VuW0k5MTVfTUFYX1BMQU5FU10gPSBpc19l bmFibGVkOwo+ICsJCQlhY3RpdmUtPndtW2xldmVsXS5wbGFuZV9yZXNfYltJOTE1X01BWF9QTEFO RVNdID0KPiAgCQkJCQl2YWwgJiBQTEFORV9XTV9CTE9DS1NfTUFTSzsKPiAtCQkJYWN0aXZlLT53 bVtsZXZlbF0uY3Vyc29yX3Jlc19sID0KPiArCQkJYWN0aXZlLT53bVtsZXZlbF0ucGxhbmVfcmVz X2xbSTkxNV9NQVhfUExBTkVTXSA9Cj4gIAkJCQkJKHZhbCA+PiBQTEFORV9XTV9MSU5FU19TSElG VCkgJgo+ICAJCQkJCQlQTEFORV9XTV9MSU5FU19NQVNLOwo+ICAJCX0KPiBAQCAtMzgyNSwxMCAr MzgyOCwxMCBAQCBzdGF0aWMgdm9pZCBza2xfcGlwZV93bV9hY3RpdmVfc3RhdGUodWludDMyX3Qg dmFsLAo+ICAJCQkJCSh2YWwgPj4gUExBTkVfV01fTElORVNfU0hJRlQpICYKPiAgCQkJCQkJUExB TkVfV01fTElORVNfTUFTSzsKPiAgCQl9IGVsc2Ugewo+IC0JCQlhY3RpdmUtPnRyYW5zX3dtLmN1 cnNvcl9lbiA9IGlzX2VuYWJsZWQ7Cj4gLQkJCWFjdGl2ZS0+dHJhbnNfd20uY3Vyc29yX3Jlc19i ID0KPiArCQkJYWN0aXZlLT50cmFuc193bS5wbGFuZV9lbltJOTE1X01BWF9QTEFORVNdID0gaXNf ZW5hYmxlZDsKPiArCQkJYWN0aXZlLT50cmFuc193bS5wbGFuZV9yZXNfYltJOTE1X01BWF9QTEFO RVNdID0KPiAgCQkJCQl2YWwgJiBQTEFORV9XTV9CTE9DS1NfTUFTSzsKPiAtCQkJYWN0aXZlLT50 cmFuc193bS5jdXJzb3JfcmVzX2wgPQo+ICsJCQlhY3RpdmUtPnRyYW5zX3dtLnBsYW5lX3Jlc19s W0k5MTVfTUFYX1BMQU5FU10gPQo+ICAJCQkJCSh2YWwgPj4gUExBTkVfV01fTElORVNfU0hJRlQp ICYKPiAgCQkJCQkJUExBTkVfV01fTElORVNfTUFTSzsKPiAgCQl9Cj4gQEAgLTM4NTQsMTIgKzM4 NTcsMTIgQEAgc3RhdGljIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKPiAgCQlmb3IgKGkgPSAwOyBpIDwgaW50ZWxfbnVtX3BsYW5lcyhpbnRlbF9j cnRjKTsgaSsrKQo+ICAJCQlody0+cGxhbmVbcGlwZV1baV1bbGV2ZWxdID0KPiAgCQkJCQlJOTE1 X1JFQUQoUExBTkVfV00ocGlwZSwgaSwgbGV2ZWwpKTsKPiAtCQlody0+Y3Vyc29yW3BpcGVdW2xl dmVsXSA9IEk5MTVfUkVBRChDVVJfV00ocGlwZSwgbGV2ZWwpKTsKPiArCQlody0+cGxhbmVbcGlw ZV1bSTkxNV9NQVhfUExBTkVTXVtsZXZlbF0gPSBJOTE1X1JFQUQoQ1VSX1dNKHBpcGUsIGxldmVs KSk7Cj4gIAl9Cj4gIAo+ICAJZm9yIChpID0gMDsgaSA8IGludGVsX251bV9wbGFuZXMoaW50ZWxf Y3J0Yyk7IGkrKykKPiAgCQlody0+cGxhbmVfdHJhbnNbcGlwZV1baV0gPSBJOTE1X1JFQUQoUExB TkVfV01fVFJBTlMocGlwZSwgaSkpOwo+IC0JaHctPmN1cnNvcl90cmFuc1twaXBlXSA9IEk5MTVf UkVBRChDVVJfV01fVFJBTlMocGlwZSkpOwo+ICsJaHctPnBsYW5lX3RyYW5zW3BpcGVdW0k5MTVf TUFYX1BMQU5FU10gPSBJOTE1X1JFQUQoQ1VSX1dNX1RSQU5TKHBpcGUpKTsKPiAgCj4gIAlpZiAo IWludGVsX2NydGMtPmFjdGl2ZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTM4NzQsNyArMzg3Nyw3IEBA IHN0YXRpYyB2b2lkIHNrbF9waXBlX3dtX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNy dGMpCj4gIAkJCXNrbF9waXBlX3dtX2FjdGl2ZV9zdGF0ZSh0ZW1wLCBhY3RpdmUsIGZhbHNlLAo+ ICAJCQkJCQlmYWxzZSwgaSwgbGV2ZWwpOwo+ICAJCX0KPiAtCQl0ZW1wID0gaHctPmN1cnNvcltw aXBlXVtsZXZlbF07Cj4gKwkJdGVtcCA9IGh3LT5wbGFuZVtwaXBlXVtJOTE1X01BWF9QTEFORVNd W2xldmVsXTsKPiAgCQlza2xfcGlwZV93bV9hY3RpdmVfc3RhdGUodGVtcCwgYWN0aXZlLCBmYWxz ZSwgdHJ1ZSwgaSwgbGV2ZWwpOwo+ICAJfQo+ICAKPiBAQCAtMzg4Myw3ICszODg2LDcgQEAgc3Rh dGljIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK PiAgCQlza2xfcGlwZV93bV9hY3RpdmVfc3RhdGUodGVtcCwgYWN0aXZlLCB0cnVlLCBmYWxzZSwg aSwgMCk7Cj4gIAl9Cj4gIAo+IC0JdGVtcCA9IGh3LT5jdXJzb3JfdHJhbnNbcGlwZV07Cj4gKwl0 ZW1wID0gaHctPnBsYW5lX3RyYW5zW3BpcGVdW0k5MTVfTUFYX1BMQU5FU107Cj4gIAlza2xfcGlw ZV93bV9hY3RpdmVfc3RhdGUodGVtcCwgYWN0aXZlLCB0cnVlLCB0cnVlLCBpLCAwKTsKPiAgfQo+ ICAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK