From mboxrd@z Thu Jan 1 00:00:00 1970 From: Deepak Rawat Subject: [PATCH 07/18] drm/vmwgfx: Implement STDU plane update for surface backed fb Date: Thu, 27 Sep 2018 17:30:09 -0700 Message-ID: <20180928003020.1737-7-drawat@vmware.com> References: <20180928003020.1737-1-drawat@vmware.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EX13-EDG-OU-001.vmware.com (ex13-edg-ou-001.vmware.com [208.91.0.189]) by gabe.freedesktop.org (Postfix) with ESMTPS id 924956E632 for ; Fri, 28 Sep 2018 00:30:55 +0000 (UTC) In-Reply-To: <20180928003020.1737-1-drawat@vmware.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, linux-graphics-maintainer@vmware.com, thellstrom@vmware.com, syeh@vmware.com Cc: Deepak Rawat List-Id: dri-devel@lists.freedesktop.org VXNpbmcgdGhlIG5ldyBpbnRlcmZhY2UgaW1wbGVtZW50IFNURFUgcGxhbmUgdXBkYXRlIGZvciBz dXJmYWNlIGJhY2tlZApmYi4KClNpZ25lZC1vZmYtYnk6IERlZXBhayBSYXdhdCA8ZHJhd2F0QHZt d2FyZS5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmggIHwgIDEw ICsrCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9zdGR1LmMgfCAyMDcgKysrKysrKysr KysrKysrKysrKysrKysrKystCiAyIGZpbGVzIGNoYW5nZWQsIDIxNiBpbnNlcnRpb25zKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf a21zLmggYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9rbXMuaAppbmRleCAyNmNhZDdl NzNhZmEuLjRiNGEwMzJlYTRhYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfa21zLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfa21zLmgKQEAg LTE0Myw2ICsxNDMsMTYgQEAgc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUgewogCXN0cnVjdCB2 bXdfZmVuY2Vfb2JqICoqb3V0X2ZlbmNlOwogfTsKIAorLyoqCisgKiBzdHJ1Y3Qgdm13X2R1X3Vw ZGF0ZV9wbGFuZV9zdXJmYWNlIC0gY2xvc3VyZSBzdHJ1Y3R1cmUgZm9yIHN1cmZhY2UKKyAqIEBi YXNlOiBiYXNlIGNsb3N1cmUgc3RydWN0dXJlLgorICogQGN0eDogdmFsaWRhdGlvbiBjb250ZXh0 LgorICovCitzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlIHsKKwlzdHJ1Y3Qgdm13 X2R1X3VwZGF0ZV9wbGFuZSBiYXNlOworCXN0cnVjdCB2bXdfdmFsaWRhdGlvbl9jdHggKmN0eDsK K307CisKIC8qKgogICogc3RydWN0IHZtd19rbXNfZGlydHkgLSBjbG9zdXJlIHN0cnVjdHVyZSBm b3IgdGhlIHZtd19rbXNfaGVscGVyX2RpcnR5CiAgKiBmdW5jdGlvbi4KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X3N0ZHUuYwppbmRleCBmMzBlODM5ZjdiZmQuLjM5MDY3YzdiYjA4MyAxMDA2NDQK LS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfc3RkdS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS92bXdnZngvdm13Z2Z4X3N0ZHUuYwpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUg PGRybS9kcm1fcGxhbmVfaGVscGVyLmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9hdG9taWMuaD4KICNp bmNsdWRlIDxkcm0vZHJtX2F0b21pY19oZWxwZXIuaD4KLQorI2luY2x1ZGUgPGRybS9kcm1fZGFt YWdlX2hlbHBlci5oPgogCiAjZGVmaW5lIHZtd19jcnRjX3RvX3N0ZHUoeCkgXAogCWNvbnRhaW5l cl9vZih4LCBzdHJ1Y3Qgdm13X3NjcmVlbl90YXJnZXRfZGlzcGxheV91bml0LCBiYXNlLmNydGMp CkBAIC05Miw2ICs5MiwxMCBAQCBzdHJ1Y3Qgdm13X3N0ZHVfc3VyZmFjZV9jb3B5IHsKIAlTVkdB M2RDbWRTdXJmYWNlQ29weSBib2R5OwogfTsKIAorc3RydWN0IHZtd19zdGR1X3VwZGF0ZV9nYl9p bWFnZSB7CisJU1ZHQTNkQ21kSGVhZGVyIGhlYWRlcjsKKwlTVkdBM2RDbWRVcGRhdGVHQkltYWdl IGJvZHk7Cit9OwogCiAvKioKICAqIHN0cnVjdCB2bXdfc2NyZWVuX3RhcmdldF9kaXNwbGF5X3Vu aXQKQEAgLTEyNDAsNyArMTI0NCwyMDggQEAgdm13X3N0ZHVfcHJpbWFyeV9wbGFuZV9wcmVwYXJl X2ZiKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBp bnQgdm13X3N0ZHVfc3VyZmFjZV9wcmVwYXJlKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lICp1 cGRhdGUpCit7CisJc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmVfc3VyZmFjZSAqc3JmX3VwZGF0 ZTsKKwlzdHJ1Y3Qgdm13X2ZyYW1lYnVmZmVyX3N1cmZhY2UgKnZmYnM7CisKKwlzcmZfdXBkYXRl ID0gY29udGFpbmVyX29mKHVwZGF0ZSwgdHlwZW9mKCpzcmZfdXBkYXRlKSwgYmFzZSk7CisJdmZi cyA9IGNvbnRhaW5lcl9vZih1cGRhdGUtPnZmYiwgdHlwZW9mKCp2ZmJzKSwgYmFzZSk7CisKKwly ZXR1cm4gdm13X2ttc19oZWxwZXJfcmVzb3VyY2VfcHJlcGFyZSgmdmZicy0+c3VyZmFjZS0+cmVz LCB0cnVlLAorCQkJCQkgICAgICAgc3JmX3VwZGF0ZS0+Y3R4KTsKK30KKworc3RhdGljIHVpbnQz Ml90Cit2bXdfc3RkdV9zdXJmYWNlX2ZpZm9fc2l6ZV9zYW1lX2Rpc3BsYXkoc3RydWN0IHZtd19k dV91cGRhdGVfcGxhbmUgKnVwZGF0ZSwKKwkJCQkJdWludDMyX3QgbnVtX2hpdHMpCit7CisJc3Ry dWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOworCXVpbnQzMl90IHNpemUgPSAwOwor CisJdmZicyA9IGNvbnRhaW5lcl9vZih1cGRhdGUtPnZmYiwgdHlwZW9mKCp2ZmJzKSwgYmFzZSk7 CisKKwlpZiAodmZicy0+aXNfYm9fcHJveHkpCisJCXNpemUgKz0gc2l6ZW9mKHN0cnVjdCB2bXdf c3RkdV91cGRhdGVfZ2JfaW1hZ2UpICogbnVtX2hpdHM7CisKKwlzaXplICs9IHNpemVvZihzdHJ1 Y3Qgdm13X3N0ZHVfdXBkYXRlKTsKKworCXJldHVybiBzaXplOworfQorCitzdGF0aWMgdWludDMy X3Qgdm13X3N0ZHVfc3VyZmFjZV9maWZvX3NpemUoc3RydWN0IHZtd19kdV91cGRhdGVfcGxhbmUg KnVwZGF0ZSwKKwkJCQkJICAgdWludDMyX3QgbnVtX2hpdHMpCit7CisJc3RydWN0IHZtd19mcmFt ZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOworCXVpbnQzMl90IHNpemUgPSAwOworCisJdmZicyA9IGNv bnRhaW5lcl9vZih1cGRhdGUtPnZmYiwgdHlwZW9mKCp2ZmJzKSwgYmFzZSk7CisKKwlpZiAodmZi cy0+aXNfYm9fcHJveHkpCisJCXNpemUgKz0gc2l6ZW9mKHN0cnVjdCB2bXdfc3RkdV91cGRhdGVf Z2JfaW1hZ2UpICogbnVtX2hpdHM7CisKKwlzaXplICs9IHNpemVvZihzdHJ1Y3Qgdm13X3N0ZHVf c3VyZmFjZV9jb3B5KSArIHNpemVvZihTVkdBM2RDb3B5Qm94KSAqCisJCW51bV9oaXRzICsgc2l6 ZW9mKHN0cnVjdCB2bXdfc3RkdV91cGRhdGUpOworCisJcmV0dXJuIHNpemU7Cit9CisKK3N0YXRp YyB1aW50MzJfdAordm13X3N0ZHVfc3VyZmFjZV91cGRhdGVfcHJveHkoc3RydWN0IHZtd19kdV91 cGRhdGVfcGxhbmUgKnVwZGF0ZSwgdm9pZCAqY21kKQoreworCXN0cnVjdCB2bXdfZnJhbWVidWZm ZXJfc3VyZmFjZSAqdmZiczsKKwlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpzdGF0ZSA9IHVwZGF0 ZS0+cGxhbmUtPnN0YXRlOworCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKm9sZF9zdGF0ZSA9IHVw ZGF0ZS0+b2xkX3N0YXRlOworCXN0cnVjdCBkcm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlciBp dGVyOworCXN0cnVjdCB2bXdfc3RkdV91cGRhdGVfZ2JfaW1hZ2UgKmNtZF91cGRhdGUgPSBjbWQ7 CisJc3RydWN0IGRybV9yZWN0IGNsaXA7CisJdWludDMyX3QgY29weV9zaXplID0gMDsKKworCXZm YnMgPSBjb250YWluZXJfb2YodXBkYXRlLT52ZmIsIHR5cGVvZigqdmZicyksIGJhc2UpOworCisJ LyoKKwkgKiBwcm94eSBzdXJmYWNlIGlzIHNwZWNpYWwgd2hlcmUgYSBidWZmZXIgb2JqZWN0IHR5 cGUgZmIgaXMgd3JhcHBlZAorCSAqIGluIGEgc3VyZmFjZSBhbmQgbmVlZCBhbiB1cGRhdGUgZ2Ig aW1hZ2UgY29tbWFuZCB0byBzeW5jIHdpdGggZGV2aWNlLgorCSAqLworCWRybV9hdG9taWNfaGVs cGVyX2RhbWFnZV9pdGVyX2luaXQoJml0ZXIsIG9sZF9zdGF0ZSwgc3RhdGUpOworCXdoaWxlIChk cm1fYXRvbWljX2hlbHBlcl9kYW1hZ2VfaXRlcl9uZXh0KCZpdGVyLCAmY2xpcCkpIHsKKwkJU1ZH QTNkQm94ICpib3ggPSAmY21kX3VwZGF0ZS0+Ym9keS5ib3g7CisKKwkJY21kX3VwZGF0ZS0+aGVh ZGVyLmlkID0gU1ZHQV8zRF9DTURfVVBEQVRFX0dCX0lNQUdFOworCQljbWRfdXBkYXRlLT5oZWFk ZXIuc2l6ZSA9IHNpemVvZihjbWRfdXBkYXRlLT5ib2R5KTsKKwkJY21kX3VwZGF0ZS0+Ym9keS5p bWFnZS5zaWQgPSB2ZmJzLT5zdXJmYWNlLT5yZXMuaWQ7CisJCWNtZF91cGRhdGUtPmJvZHkuaW1h Z2UuZmFjZSA9IDA7CisJCWNtZF91cGRhdGUtPmJvZHkuaW1hZ2UubWlwbWFwID0gMDsKKworCQli b3gtPnggPSBjbGlwLngxOworCQlib3gtPnkgPSBjbGlwLnkxOworCQlib3gtPnogPSAwOworCQli b3gtPncgPSBkcm1fcmVjdF93aWR0aCgmY2xpcCk7CisJCWJveC0+aCA9IGRybV9yZWN0X2hlaWdo dCgmY2xpcCk7CisJCWJveC0+ZCA9IDE7CisKKwkJY29weV9zaXplICs9IHNpemVvZigqY21kX3Vw ZGF0ZSk7CisJCWNtZF91cGRhdGUrKzsKKwl9CisKKwlyZXR1cm4gY29weV9zaXplOworfQorCitz dGF0aWMgdWludDMyX3QKK3Ztd19zdGR1X3N1cmZhY2VfcG9wdWxhdGVfY29weShzdHJ1Y3Qgdm13 X2R1X3VwZGF0ZV9wbGFuZSAgKnVwZGF0ZSwgdm9pZCAqY21kLAorCQkJICAgICAgIHVpbnQzMl90 IG51bV9oaXRzKQoreworCXN0cnVjdCB2bXdfc2NyZWVuX3RhcmdldF9kaXNwbGF5X3VuaXQgKnN0 ZHU7CisJc3RydWN0IHZtd19mcmFtZWJ1ZmZlcl9zdXJmYWNlICp2ZmJzOworCXN0cnVjdCB2bXdf c3RkdV9zdXJmYWNlX2NvcHkgKmNtZF9jb3B5ID0gY21kOwogCisJc3RkdSA9IGNvbnRhaW5lcl9v Zih1cGRhdGUtPmR1LCB0eXBlb2YoKnN0ZHUpLCBiYXNlKTsKKwl2ZmJzID0gY29udGFpbmVyX29m KHVwZGF0ZS0+dmZiLCB0eXBlb2YoKnZmYnMpLCBiYXNlKTsKKworCWNtZF9jb3B5LT5oZWFkZXIu aWQgPSBTVkdBXzNEX0NNRF9TVVJGQUNFX0NPUFk7CisJY21kX2NvcHktPmhlYWRlci5zaXplID0g c2l6ZW9mKGNtZF9jb3B5LT5ib2R5KSArIHNpemVvZihTVkdBM2RDb3B5Qm94KSAqCisJCW51bV9o aXRzOworCWNtZF9jb3B5LT5ib2R5LnNyYy5zaWQgPSB2ZmJzLT5zdXJmYWNlLT5yZXMuaWQ7CisJ Y21kX2NvcHktPmJvZHkuZGVzdC5zaWQgPSBzdGR1LT5kaXNwbGF5X3NyZi0+cmVzLmlkOworCisJ cmV0dXJuIHNpemVvZigqY21kX2NvcHkpOworfQorCitzdGF0aWMgdWludDMyX3QKK3Ztd19zdGR1 X3N1cmZhY2VfcG9wdWxhdGVfY2xpcChzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAgKnVwZGF0 ZSwgdm9pZCAqY21kLAorCQkJICAgICAgIHN0cnVjdCBkcm1fcmVjdCAqY2xpcCwgdWludDMyX3Qg ZmJfeCwKKwkJCSAgICAgICB1aW50MzJfdCBmYl95KQoreworCXN0cnVjdCBTVkdBM2RDb3B5Qm94 ICpib3ggPSBjbWQ7CisKKwlib3gtPnNyY3ggPSBmYl94OworCWJveC0+c3JjeSA9IGZiX3k7CisJ Ym94LT5zcmN6ID0gMDsKKwlib3gtPnggPSBjbGlwLT54MTsKKwlib3gtPnkgPSBjbGlwLT55MTsK Kwlib3gtPnogPSAwOworCWJveC0+dyA9IGRybV9yZWN0X3dpZHRoKGNsaXApOworCWJveC0+aCA9 IGRybV9yZWN0X2hlaWdodChjbGlwKTsKKwlib3gtPmQgPSAxOworCisJcmV0dXJuIHNpemVvZigq Ym94KTsKK30KKworc3RhdGljIHVpbnQzMl90Cit2bXdfc3R1ZF9zdXJmYWNlX3BvcHVsYXRlX3Vw ZGF0ZShzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAgKnVwZGF0ZSwgdm9pZCAqY21kLAorCQkJ CSBzdHJ1Y3QgZHJtX3JlY3QgKmJiKQoreworCXZtd19zdGR1X3BvcHVsYXRlX3VwZGF0ZShjbWQs IHVwZGF0ZS0+ZHUtPnVuaXQsIGJiLT54MSwgYmItPngyLCBiYi0+eTEsCisJCQkJIGJiLT55Mik7 CisKKwlyZXR1cm4gc2l6ZW9mKHN0cnVjdCB2bXdfc3RkdV91cGRhdGUpOworfQorCitzdGF0aWMg dm9pZCB2bXdfc3RkdV9zdXJmYWNlX2ZpbmlzaChzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZSAq dXBkYXRlKQoreworCXN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UgKnNyZl91cGRh dGUgPQorCQljb250YWluZXJfb2YodXBkYXRlLCB0eXBlb2YoKnNyZl91cGRhdGUpLCBiYXNlKTsK KworCXZtd19rbXNfaGVscGVyX3Jlc291cmNlX2ZpbmlzaChzcmZfdXBkYXRlLT5jdHgsIHVwZGF0 ZS0+b3V0X2ZlbmNlKTsKK30KKworLyoqCisgKiB2bXdfc3RkdV9wbGFuZV91cGRhdGVfc3VyZmFj ZSAtIFVwZGF0ZSBkaXNwbGF5IHVuaXQgZm9yIHN1cmZhY2UgYmFja2VkIGZiCisgKiBAZGV2X3By aXY6IERldmljZSBwcml2YXRlCisgKiBAcGxhbmU6IFBsYW5lIHN0YXRlCisgKiBAb2xkX3N0YXRl OiBPbGQgcGxhbmUgc3RhdGUKKyAqIEB2ZmI6IEZyYW1lYnVmZmVyIHdoaWNoIGlzIGJsaXR0ZWQg dG8gZGlzcGxheSB1bml0CisgKiBAb3V0X2ZlbmNlOiBJZiBub24tTlVMTCwgd2lsbCByZXR1cm4g YSByZWYtY291bnRlZCBwb2ludGVyIHRvIHZtd19mZW5jZV9vYmouCisgKiAgICAgICAgICAgICBU aGUgcmV0dXJuZWQgZmVuY2UgcG9pbnRlciBtYXkgYmUgTlVMTCBpbiB3aGljaCBjYXNlIHRoZSBk ZXZpY2UKKyAqICAgICAgICAgICAgIGhhcyBhbHJlYWR5IHN5bmNocm9uaXplZC4KKyAqCisgKiBS ZXR1cm46IDAgb24gc3VjY2VzcyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4K KyAqLworc3RhdGljIGludCB2bXdfc3RkdV9wbGFuZV91cGRhdGVfc3VyZmFjZShzdHJ1Y3Qgdm13 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCQkgc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCisJCQkJ CSBzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpvbGRfc3RhdGUsCisJCQkJCSBzdHJ1Y3Qgdm13X2Zy YW1lYnVmZmVyICp2ZmIsCisJCQkJCSBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqKm91dF9mZW5jZSkK K3sKKwlzdHJ1Y3Qgdm13X2R1X3VwZGF0ZV9wbGFuZV9zdXJmYWNlIHNyZl91cGRhdGU7CisJc3Ry dWN0IHZtd19zY3JlZW5fdGFyZ2V0X2Rpc3BsYXlfdW5pdCAqc3RkdTsKKwlzdHJ1Y3Qgdm13X2Zy YW1lYnVmZmVyX3N1cmZhY2UgKnZmYnM7CisJc3RydWN0IHZtd192YWxpZGF0aW9uX2N0eCBjdHg7 CisKKwlzdGR1ID0gdm13X2NydGNfdG9fc3RkdShwbGFuZS0+c3RhdGUtPmNydGMpOworCXZmYnMg PSBjb250YWluZXJfb2YodmZiLCB0eXBlb2YoKnZmYnMpLCBiYXNlKTsKKworCW1lbXNldCgmc3Jm X3VwZGF0ZSwgMCwgc2l6ZW9mKHN0cnVjdCB2bXdfZHVfdXBkYXRlX3BsYW5lX3N1cmZhY2UpKTsK KwlzcmZfdXBkYXRlLmJhc2UucGxhbmUgPSBwbGFuZTsKKwlzcmZfdXBkYXRlLmJhc2Uub2xkX3N0 YXRlID0gb2xkX3N0YXRlOworCXNyZl91cGRhdGUuYmFzZS5kZXZfcHJpdiA9IGRldl9wcml2Owor CXNyZl91cGRhdGUuYmFzZS5kdSA9IHZtd19jcnRjX3RvX2R1KHBsYW5lLT5zdGF0ZS0+Y3J0Yyk7 CisJc3JmX3VwZGF0ZS5iYXNlLnZmYiA9IHZmYjsKKwlzcmZfdXBkYXRlLmJhc2Uub3V0X2ZlbmNl ID0gb3V0X2ZlbmNlOworCisJc3JmX3VwZGF0ZS5jdHggPSAmY3R4OworCisJc3JmX3VwZGF0ZS5i YXNlLnByZXBhcmUgPSB2bXdfc3RkdV9zdXJmYWNlX3ByZXBhcmU7CisKKwlpZiAodmZicy0+aXNf Ym9fcHJveHkpCisJCXNyZl91cGRhdGUuYmFzZS5wb3N0X3ByZXBhcmUgPSB2bXdfc3RkdV9zdXJm YWNlX3VwZGF0ZV9wcm94eTsKKworCWlmICh2ZmJzLT5zdXJmYWNlLT5yZXMuaWQgIT0gc3RkdS0+ ZGlzcGxheV9zcmYtPnJlcy5pZCkgeworCQlzcmZfdXBkYXRlLmJhc2UuY2FsY19maWZvX3NpemUg PSB2bXdfc3RkdV9zdXJmYWNlX2ZpZm9fc2l6ZTsKKwkJc3JmX3VwZGF0ZS5iYXNlLnByZV9jbGlw ID0gdm13X3N0ZHVfc3VyZmFjZV9wb3B1bGF0ZV9jb3B5OworCQlzcmZfdXBkYXRlLmJhc2UuY2xp cCA9IHZtd19zdGR1X3N1cmZhY2VfcG9wdWxhdGVfY2xpcDsKKwl9IGVsc2UgeworCQlzcmZfdXBk YXRlLmJhc2UuY2FsY19maWZvX3NpemUgPQorCQkJdm13X3N0ZHVfc3VyZmFjZV9maWZvX3NpemVf c2FtZV9kaXNwbGF5OworCX0KKworCXNyZl91cGRhdGUuYmFzZS5wb3N0X2NsaXAgPSB2bXdfc3R1 ZF9zdXJmYWNlX3BvcHVsYXRlX3VwZGF0ZTsKKwlzcmZfdXBkYXRlLmJhc2UuZmluaXNoID0gdm13 X3N0ZHVfc3VyZmFjZV9maW5pc2g7CisJLyogTm90aGluZyBzcGVjaWFsIHRvIGRvIGZvciByZXZl cnQgKi8KKwlzcmZfdXBkYXRlLmJhc2UucmV2ZXJ0ID0gdm13X3N0ZHVfc3VyZmFjZV9maW5pc2g7 CisKKwlyZXR1cm4gdm13X2R1X2hlbHBlcl9wbGFuZV91cGRhdGUoJnNyZl91cGRhdGUuYmFzZSk7 Cit9CiAKIC8qKgogICogdm13X3N0ZHVfcHJpbWFyeV9wbGFuZV9hdG9taWNfdXBkYXRlIC0gZm9y bWFsbHkgc3dpdGNoZXMgU1REVSB0byBuZXcgcGxhbmUKLS0gCjIuMTcuMQoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlz dApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0 b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==