From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 2.5/5] Reapply "drm/i915: Pass atomic states to fbc update, functions." Date: Tue, 14 Jun 2016 14:24:20 +0200 Message-ID: <28208c38-8738-abdf-0cce-8d8f266b9c28@linux.intel.com> References: <1465827229-1704-1-git-send-email-daniel.vetter@ffwll.ch> <1465827229-1704-2-git-send-email-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" 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 4CC8B6E1DD for ; Tue, 14 Jun 2016 12:24:22 +0000 (UTC) In-Reply-To: <1465827229-1704-2-git-send-email-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter , Intel Graphics Development Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VGhlIHBhdGNoIHdhcyByZXZlcnRlZCBhcyBwYXJ0IG9mIHRoZSBvcmlnaW5hbCBub25ibG9ja2lu ZyBjb21taXQKc3VwcG9ydCwgYnV0IGlzIHJlcXVpcmVkIGZvciBhbnkga2luZCBvZiBub25ibG9j a2luZyBjb21taXQuCgpUaGlzIGlzIHJlcXVpcmVkIHRvIGxldCBmYmMgdXBkYXRlcyBydW4gYXN5 bmMuIEl0IGhhcyBhIGxvdCBvZgpjaGVja3Mgd2hldGhlciBjZXJ0YWluIGxvY2tzIGFyZSB0YWtl biwgd2hpY2ggY2FuIGJlIHJlbW92ZWQgd2hlbgp0aGUgcmVsZXZhbnQgc3RhdGVzIGFyZSBwYXNz ZWQgaW4gYXMgcG9pbnRlcnMuCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFh cnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpMaW5rOiBodHRwOi8vcGF0Y2h3b3JrLmZy ZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dpZC8xNDYzNDkwNDg0LTE5NTQwLTE3LWdpdC1zZW5kLWVt YWlsLW1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbQpSZXZpZXdlZC1ieTogUGF0cmlr IEpha29ic3NvbiA8cGF0cmlrLmpha29ic3NvbkBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgIDggKysrKystLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICA4ICsrKysrKy0tCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9mYmMuYyAgICAgfCAzOSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMjYgZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IDVkMDA4MTA2N2JhYy4uZGRj Zjk2NmM1MTVhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC00NjQxLDcg KzQ2NDEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSkKIAkJc3RydWN0IGludGVsX3BsYW5lX3N0YXRl ICpvbGRfcHJpbWFyeV9zdGF0ZSA9CiAJCQl0b19pbnRlbF9wbGFuZV9zdGF0ZShvbGRfcHJpX3N0 YXRlKTsKIAotCQlpbnRlbF9mYmNfcHJlX3VwZGF0ZShjcnRjKTsKKwkJaW50ZWxfZmJjX3ByZV91 cGRhdGUoY3J0YywgcGlwZV9jb25maWcsIHByaW1hcnlfc3RhdGUpOwogCiAJCWlmIChvbGRfcHJp bWFyeV9zdGF0ZS0+dmlzaWJsZSAmJgogCQkgICAgKG1vZGVzZXQgfHwgIXByaW1hcnlfc3RhdGUt PnZpc2libGUpKQpAQCAtMTE3MDgsNyArMTE3MDgsOSBAQCBzdGF0aWMgaW50IGludGVsX2NydGNf cGFnZV9mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWNydGMtPnByaW1hcnktPmZiID0g ZmI7CiAJdXBkYXRlX3N0YXRlX2ZiKGNydGMtPnByaW1hcnkpOwotCWludGVsX2ZiY19wcmVfdXBk YXRlKGludGVsX2NydGMpOworCisJaW50ZWxfZmJjX3ByZV91cGRhdGUoaW50ZWxfY3J0YywgaW50 ZWxfY3J0Yy0+Y29uZmlnLAorCQkJICAgICB0b19pbnRlbF9wbGFuZV9zdGF0ZShwcmltYXJ5LT5z dGF0ZSkpOwogCiAJd29yay0+cGVuZGluZ19mbGlwX29iaiA9IG9iajsKIApAQCAtMTM3OTksNyAr MTM4MDEsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKIAogCQlpZiAoY3J0Yy0+c3RhdGUtPmFjdGl2ZSAmJgogCQkgICAgZHJtX2F0b21p Y19nZXRfZXhpc3RpbmdfcGxhbmVfc3RhdGUoc3RhdGUsIGNydGMtPnByaW1hcnkpKQotCQkJaW50 ZWxfZmJjX2VuYWJsZShpbnRlbF9jcnRjKTsKKwkJCWludGVsX2ZiY19lbmFibGUoaW50ZWxfY3J0 YywgcGlwZV9jb25maWcsIHRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPnByaW1hcnktPnN0YXRl KSk7CiAKIAkJaWYgKGNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCQlkcm1fYXRvbWljX2hlbHBlcl9j b21taXRfcGxhbmVzX29uX2NydGMob2xkX2NydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAppbmRleCA4ZGM2N2FkYWNlNmIuLjBjMWRjOWJhZTE3MCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKQEAgLTE0MzEsMTEgKzE0MzEsMTUgQEAgc3RhdGljIGlubGluZSB2b2lkIGludGVs X2ZiZGV2X3Jlc3RvcmVfbW9kZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogdm9pZCBpbnRlbF9m YmNfY2hvb3NlX2NydGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIGJvb2wgaW50ZWxfZmJjX2lzX2FjdGl2 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwotdm9pZCBpbnRlbF9mYmNfcHJl X3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Cit2b2lkIGludGVsX2ZiY19wcmVfdXBk YXRlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSk7CiB2b2lkIGludGVsX2ZiY19wb3N0X3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7 CiB2b2lkIGludGVsX2ZiY19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7 CiB2b2lkIGludGVsX2ZiY19pbml0X3BpcGVfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKLXZvaWQgaW50ZWxfZmJjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 Yyk7Cit2b2lkIGludGVsX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCSAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgICAgICBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKTsKIHZvaWQgaW50ZWxfZmJjX2Rpc2FibGUo c3RydWN0IGludGVsX2NydGMgKmNydGMpOwogdm9pZCBpbnRlbF9mYmNfZ2xvYmFsX2Rpc2FibGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfZmJjX2ludmFs aWRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmMuYwppbmRleCA0NWVlMDdiODg4YTAuLmVjYWJkNTlmZmJhZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMKQEAgLTQ4MSwxMCArNDgxLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY19k ZWFjdGl2YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaW50ZWxfZmJj X2h3X2RlYWN0aXZhdGUoZGV2X3ByaXYpOwogfQogCi1zdGF0aWMgYm9vbCBtdWx0aXBsZV9waXBl c19vayhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3N0YXRpYyBib29sIG11bHRpcGxlX3BpcGVz X29rKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAorCQkJICAgICAgc3RydWN0IGludGVsX3BsYW5l X3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9wbGFuZSAqcHJp bWFyeSA9IGNydGMtPmJhc2UucHJpbWFyeTsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMg PSAmZGV2X3ByaXYtPmZiYzsKIAllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAKQEAgLTQ5 Miw5ICs0OTIsNyBAQCBzdGF0aWMgYm9vbCBtdWx0aXBsZV9waXBlc19vayhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YykKIAlpZiAoIW5vX2ZiY19vbl9tdWx0aXBsZV9waXBlcyhkZXZfcHJpdikpCiAJ CXJldHVybiB0cnVlOwogCi0JV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZwcmltYXJ5 LT5tdXRleCkpOwotCi0JaWYgKHRvX2ludGVsX3BsYW5lX3N0YXRlKHByaW1hcnktPnN0YXRlKS0+ dmlzaWJsZSkKKwlpZiAocGxhbmVfc3RhdGUtPnZpc2libGUpCiAJCWZiYy0+dmlzaWJsZV9waXBl c19tYXNrIHw9ICgxIDw8IHBpcGUpOwogCWVsc2UKIAkJZmJjLT52aXNpYmxlX3BpcGVzX21hc2sg Jj0gfigxIDw8IHBpcGUpOwpAQCAtNzA5LDIxICs3MDcsMTYgQEAgc3RhdGljIGJvb2wgaW50ZWxf ZmJjX2h3X3RyYWNraW5nX2NvdmVyc19zY3JlZW4oc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJ cmV0dXJuIGVmZmVjdGl2ZV93IDw9IG1heF93ICYmIGVmZmVjdGl2ZV9oIDw9IG1heF9oOwogfQog Ci1zdGF0aWMgdm9pZCBpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQorc3RhdGljIHZvaWQgaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQkJIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAorCQkJCQkgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBjcnRjLT5iYXNlLmRldi0+ZGV2 X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7CiAJc3Ry dWN0IGludGVsX2ZiY19zdGF0ZV9jYWNoZSAqY2FjaGUgPSAmZmJjLT5zdGF0ZV9jYWNoZTsKLQlz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Ci0JCXRvX2ludGVsX2NydGNfc3Rh dGUoY3J0Yy0+YmFzZS5zdGF0ZSk7Ci0Jc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSA9Ci0JCXRvX2ludGVsX3BsYW5lX3N0YXRlKGNydGMtPmJhc2UucHJpbWFyeS0+c3RhdGUp OwogCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0gcGxhbmVfc3RhdGUtPmJhc2UuZmI7CiAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAotCVdBUk5fT04oIWRybV9tb2Rlc2V0 X2lzX2xvY2tlZCgmY3J0Yy0+YmFzZS5tdXRleCkpOwotCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lz X2xvY2tlZCgmY3J0Yy0+YmFzZS5wcmltYXJ5LT5tdXRleCkpOwotCiAJY2FjaGUtPmNydGMubW9k ZV9mbGFncyA9IGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5mbGFnczsKIAlpZiAoSVNf SEFTV0VMTChkZXZfcHJpdikgfHwgSVNfQlJPQURXRUxMKGRldl9wcml2KSkKIAkJY2FjaGUtPmNy dGMuaHN3X2Jkd19waXhlbF9yYXRlID0KQEAgLTg4OCw3ICs4ODEsOSBAQCBzdGF0aWMgYm9vbCBp bnRlbF9mYmNfcmVnX3BhcmFtc19lcXVhbChzdHJ1Y3QgaW50ZWxfZmJjX3JlZ19wYXJhbXMgKnBh cmFtczEsCiAJcmV0dXJuIG1lbWNtcChwYXJhbXMxLCBwYXJhbXMyLCBzaXplb2YoKnBhcmFtczEp KSA9PSAwOwogfQogCi12b2lkIGludGVsX2ZiY19wcmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQordm9pZCBpbnRlbF9mYmNfcHJlX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0 YywKKwkJCSAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCQkgIHN0cnVj dCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gY3J0Yy0+YmFzZS5kZXYtPmRldl9wcml2YXRlOwogCXN0cnVjdCBp bnRlbF9mYmMgKmZiYyA9ICZkZXZfcHJpdi0+ZmJjOwpAQCAtODk4LDcgKzg5Myw3IEBAIHZvaWQg aW50ZWxfZmJjX3ByZV91cGRhdGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIAltdXRleF9s b2NrKCZmYmMtPmxvY2spOwogCi0JaWYgKCFtdWx0aXBsZV9waXBlc19vayhjcnRjKSkgeworCWlm ICghbXVsdGlwbGVfcGlwZXNfb2soY3J0YywgcGxhbmVfc3RhdGUpKSB7CiAJCWZiYy0+bm9fZmJj X3JlYXNvbiA9ICJtb3JlIHRoYW4gb25lIHBpcGUgYWN0aXZlIjsKIAkJZ290byBkZWFjdGl2YXRl OwogCX0KQEAgLTkwNiw3ICs5MDEsNyBAQCB2b2lkIGludGVsX2ZiY19wcmVfdXBkYXRlKHN0cnVj dCBpbnRlbF9jcnRjICpjcnRjKQogCWlmICghZmJjLT5lbmFibGVkIHx8IGZiYy0+Y3J0YyAhPSBj cnRjKQogCQlnb3RvIHVubG9jazsKIAotCWludGVsX2ZiY191cGRhdGVfc3RhdGVfY2FjaGUoY3J0 Yyk7CisJaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNoZShjcnRjLCBjcnRjX3N0YXRlLCBwbGFu ZV9zdGF0ZSk7CiAKIGRlYWN0aXZhdGU6CiAJaW50ZWxfZmJjX2RlYWN0aXZhdGUoZGV2X3ByaXYp OwpAQCAtMTA5MCw3ICsxMDg1LDkgQEAgb3V0OgogICogaW50ZWxfZmJjX2VuYWJsZSBtdWx0aXBs ZSB0aW1lcyBmb3IgdGhlIHNhbWUgcGlwZSB3aXRob3V0IGFuCiAgKiBpbnRlbF9mYmNfZGlzYWJs ZSBpbiB0aGUgbWlkZGxlLCBhcyBsb25nIGFzIGl0IGlzIGRlYWN0aXZhdGVkLgogICovCi12b2lk IGludGVsX2ZiY19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCit2b2lkIGludGVsX2Zi Y19lbmFibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCSAgICAgIHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgICAgICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUg KnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGNy dGMtPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAmZGV2 X3ByaXYtPmZiYzsKQEAgLTExMDMsMTkgKzExMDAsMTkgQEAgdm9pZCBpbnRlbF9mYmNfZW5hYmxl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCWlmIChmYmMtPmVuYWJsZWQpIHsKIAkJV0FSTl9P TihmYmMtPmNydGMgPT0gTlVMTCk7CiAJCWlmIChmYmMtPmNydGMgPT0gY3J0YykgewotCQkJV0FS Tl9PTighY3J0Yy0+Y29uZmlnLT5lbmFibGVfZmJjKTsKKwkJCVdBUk5fT04oIWNydGNfc3RhdGUt PmVuYWJsZV9mYmMpOwogCQkJV0FSTl9PTihmYmMtPmFjdGl2ZSk7CiAJCX0KIAkJZ290byBvdXQ7 CiAJfQogCi0JaWYgKCFjcnRjLT5jb25maWctPmVuYWJsZV9mYmMpCisJaWYgKCFjcnRjX3N0YXRl LT5lbmFibGVfZmJjKQogCQlnb3RvIG91dDsKIAogCVdBUk5fT04oZmJjLT5hY3RpdmUpOwogCVdB Uk5fT04oZmJjLT5jcnRjICE9IE5VTEwpOwogCi0JaW50ZWxfZmJjX3VwZGF0ZV9zdGF0ZV9jYWNo ZShjcnRjKTsKKwlpbnRlbF9mYmNfdXBkYXRlX3N0YXRlX2NhY2hlKGNydGMsIGNydGNfc3RhdGUs IHBsYW5lX3N0YXRlKTsKIAlpZiAoaW50ZWxfZmJjX2FsbG9jX2NmYihjcnRjKSkgewogCQlmYmMt Pm5vX2ZiY19yZWFzb24gPSAibm90IGVub3VnaCBzdG9sZW4gbWVtb3J5IjsKIAkJZ290byBvdXQ7 Ci0tIAoyLjUuNQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=