From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 1/6] drm/i915: Use atomic state to obtain load detection crtc, v2. Date: Tue, 2 Feb 2016 13:48:17 +0100 Message-ID: <56B0A591.1040801@linux.intel.com> References: <1454334242-23354-1-git-send-email-maarten.lankhorst@linux.intel.com> <1454334242-23354-2-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTP id 757B26E5B6 for ; Tue, 2 Feb 2016 04:48:19 -0800 (PST) In-Reply-To: <1454334242-23354-2-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org ZHJtL2k5MTU6IFVzZSBhdG9taWMgc3RhdGUgdG8gb2J0YWluIGxvYWQgZGV0ZWN0aW9uIGNydGMs IHYyLgoKSW5zdGVhZCBvZiByZXN0b3JpbmcgZHBtcyBhbmQgYSBmbGFnIGZvciB3aGV0aGVyIGEg dGVtcCBmYiBpcyBhbGxvY2F0ZWQgZHVwbGljYXRlCmFuIGF0b21pYyBzdGF0ZSBiZWZvcmUgdGhl IG5ldyBzdGF0ZSBpcyBjb21taXR0ZWQsIGFuZCBjb21taXQgaXQgdGhlIG9sZCBzdGF0ZQppbiBp bnRlbF9yZWxlYXNlX2xvYWRfZGV0ZWN0X3BpcGUuCgpDaGFuZ2VzIHNpbmNlIHYxOgotIFVzZSBh IHJlYWwgYXRvbWljIHN0YXRlLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1h YXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLS0tCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKaW5kZXggNGQ4YzlmNzg1N2RiLi5jN2JhOGY0YTk3MWUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEwMzYxLDYgKzEwMzYxLDcgQEAgbW9kZV9maXRz X2luX2ZiZGV2KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKG9iai0+YmFzZS5zaXplIDwg bW9kZS0+dmRpc3BsYXkgKiBmYi0+cGl0Y2hlc1swXSkKIAkJcmV0dXJuIE5VTEw7CiAKKwlkcm1f ZnJhbWVidWZmZXJfcmVmZXJlbmNlKGZiKTsKIAlyZXR1cm4gZmI7CiAjZWxzZQogCXJldHVybiBO VUxMOwpAQCAtMTA0MTYsNyArMTA0MTcsNyBAQCBib29sIGludGVsX2dldF9sb2FkX2RldGVjdF9w aXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJc3RydWN0IGRybV9kZXZpY2Ug KmRldiA9IGVuY29kZXItPmRldjsKIAlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYjsKIAlzdHJ1 Y3QgZHJtX21vZGVfY29uZmlnICpjb25maWcgPSAmZGV2LT5tb2RlX2NvbmZpZzsKLQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBOVUxMOworCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IE5VTEwsICpyZXN0b3JlX3N0YXRlID0gTlVMTDsKIAlzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlOwogCWludCByZXQsIGkgPSAtMTsKQEAgLTEwNDI1LDYgKzEwNDI2LDggQEAgYm9v bCBpbnRlbF9nZXRfbG9hZF9kZXRlY3RfcGlwZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yLAogCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSwKIAkJICAg ICAgZW5jb2Rlci0+YmFzZS5pZCwgZW5jb2Rlci0+bmFtZSk7CiAKKwlvbGQtPnJlc3RvcmVfc3Rh dGUgPSBOVUxMOworCiByZXRyeToKIAlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjb25maWctPmNv bm5lY3Rpb25fbXV0ZXgsIGN0eCk7CiAJaWYgKHJldCkKQEAgLTEwNDQxLDI0ICsxMDQ0NCwxNSBA QCByZXRyeToKIAkgKi8KIAogCS8qIFNlZSBpZiB3ZSBhbHJlYWR5IGhhdmUgYSBDUlRDIGZvciB0 aGlzIGNvbm5lY3RvciAqLwotCWlmIChlbmNvZGVyLT5jcnRjKSB7Ci0JCWNydGMgPSBlbmNvZGVy LT5jcnRjOworCWlmIChjb25uZWN0b3ItPnN0YXRlLT5jcnRjKSB7CisJCWNydGMgPSBjb25uZWN0 b3ItPnN0YXRlLT5jcnRjOwogCiAJCXJldCA9IGRybV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4 LCBjdHgpOwogCQlpZiAocmV0KQogCQkJZ290byBmYWlsOwotCQlyZXQgPSBkcm1fbW9kZXNldF9s b2NrKCZjcnRjLT5wcmltYXJ5LT5tdXRleCwgY3R4KTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZmFp bDsKLQotCQlvbGQtPmRwbXNfbW9kZSA9IGNvbm5lY3Rvci0+ZHBtczsKLQkJb2xkLT5sb2FkX2Rl dGVjdF90ZW1wID0gZmFsc2U7CiAKIAkJLyogTWFrZSBzdXJlIHRoZSBjcnRjIGFuZCBjb25uZWN0 b3IgYXJlIHJ1bm5pbmcgKi8KLQkJaWYgKGNvbm5lY3Rvci0+ZHBtcyAhPSBEUk1fTU9ERV9EUE1T X09OKQotCQkJY29ubmVjdG9yLT5mdW5jcy0+ZHBtcyhjb25uZWN0b3IsIERSTV9NT0RFX0RQTVNf T04pOwotCi0JCXJldHVybiB0cnVlOworCQlnb3RvIGZvdW5kOwogCX0KIAogCS8qIEZpbmQgYW4g dW51c2VkIG9uZSAoaWYgcG9zc2libGUpICovCkBAIC0xMDQ2Niw4ICsxMDQ2MCwxNSBAQCByZXRy eToKIAkJaSsrOwogCQlpZiAoIShlbmNvZGVyLT5wb3NzaWJsZV9jcnRjcyAmICgxIDw8IGkpKSkK IAkJCWNvbnRpbnVlOwotCQlpZiAocG9zc2libGVfY3J0Yy0+c3RhdGUtPmVuYWJsZSkKKworCQly ZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZwb3NzaWJsZV9jcnRjLT5tdXRleCwgY3R4KTsKKwkJaWYg KHJldCkKKwkJCWdvdG8gZmFpbDsKKworCQlpZiAocG9zc2libGVfY3J0Yy0+c3RhdGUtPmVuYWJs ZSkgeworCQkJZHJtX21vZGVzZXRfdW5sb2NrKCZwb3NzaWJsZV9jcnRjLT5tdXRleCk7CiAJCQlj b250aW51ZTsKKwkJfQogCiAJCWNydGMgPSBwb3NzaWJsZV9jcnRjOwogCQlicmVhazsKQEAgLTEw NDgxLDIzICsxMDQ4MiwyMiBAQCByZXRyeToKIAkJZ290byBmYWlsOwogCX0KIAotCXJldCA9IGRy bV9tb2Rlc2V0X2xvY2soJmNydGMtPm11dGV4LCBjdHgpOwotCWlmIChyZXQpCi0JCWdvdG8gZmFp bDsKK2ZvdW5kOgorCWludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCiAJcmV0ID0g ZHJtX21vZGVzZXRfbG9jaygmY3J0Yy0+cHJpbWFyeS0+bXV0ZXgsIGN0eCk7CiAJaWYgKHJldCkK IAkJZ290byBmYWlsOwogCi0JaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jb2xk LT5kcG1zX21vZGUgPSBjb25uZWN0b3ItPmRwbXM7Ci0Jb2xkLT5sb2FkX2RldGVjdF90ZW1wID0g dHJ1ZTsKLQlvbGQtPnJlbGVhc2VfZmIgPSBOVUxMOwotCiAJc3RhdGUgPSBkcm1fYXRvbWljX3N0 YXRlX2FsbG9jKGRldik7Ci0JaWYgKCFzdGF0ZSkKLQkJcmV0dXJuIGZhbHNlOworCXJlc3RvcmVf c3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7CisJaWYgKCFzdGF0ZSB8fCAhcmVz dG9yZV9zdGF0ZSkgeworCQlyZXQgPSAtRU5PTUVNOworCQlnb3RvIGZhaWw7CisJfQogCiAJc3Rh dGUtPmFjcXVpcmVfY3R4ID0gY3R4OworCXJlc3RvcmVfc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4 OwogCiAJY29ubmVjdG9yX3N0YXRlID0gZHJtX2F0b21pY19nZXRfY29ubmVjdG9yX3N0YXRlKHN0 YXRlLCBjb25uZWN0b3IpOwogCWlmIChJU19FUlIoY29ubmVjdG9yX3N0YXRlKSkgewpAQCAtMTA1 MDUsNyArMTA1MDUsOSBAQCByZXRyeToKIAkJZ290byBmYWlsOwogCX0KIAotCWNvbm5lY3Rvcl9z dGF0ZS0+Y3J0YyA9IGNydGM7CisJcmV0ID0gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVj dG9yKGNvbm5lY3Rvcl9zdGF0ZSwgY3J0Yyk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsOwogCiAJ Y3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50ZWxfY3J0 Yyk7CiAJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkgewpAQCAtMTA1MjksNyArMTA1MzEsNiBAQCBy ZXRyeToKIAlpZiAoZmIgPT0gTlVMTCkgewogCQlEUk1fREVCVUdfS01TKCJjcmVhdGluZyB0bXAg ZmIgZm9yIGxvYWQtZGV0ZWN0aW9uXG4iKTsKIAkJZmIgPSBpbnRlbF9mcmFtZWJ1ZmZlcl9jcmVh dGVfZm9yX21vZGUoZGV2LCBtb2RlLCAyNCwgMzIpOwotCQlvbGQtPnJlbGVhc2VfZmIgPSBmYjsK IAl9IGVsc2UKIAkJRFJNX0RFQlVHX0tNUygicmV1c2luZyBmYmRldiBmb3IgbG9hZC1kZXRlY3Rp b24gZnJhbWVidWZmZXJcbiIpOwogCWlmIChJU19FUlIoZmIpKSB7CkBAIC0xMDU0MSwxNSArMTA1 NDIsMjggQEAgcmV0cnk6CiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCi0JZHJtX21vZGVfY29w eSgmY3J0Y19zdGF0ZS0+YmFzZS5tb2RlLCBtb2RlKTsKKwlkcm1fZnJhbWVidWZmZXJfdW5yZWZl cmVuY2UoZmIpOworCisJcmV0ID0gZHJtX2F0b21pY19zZXRfbW9kZV9mb3JfY3J0YygmY3J0Y19z dGF0ZS0+YmFzZSwgbW9kZSk7CisJaWYgKHJldCkKKwkJZ290byBmYWlsOworCisJcmV0ID0gUFRS X0VSUl9PUl9aRVJPKGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShyZXN0b3JlX3N0YXRl LCBjb25uZWN0b3IpKTsKKwlpZiAoIXJldCkKKwkJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGRybV9h dG9taWNfZ2V0X2NydGNfc3RhdGUocmVzdG9yZV9zdGF0ZSwgY3J0YykpOworCWlmICghcmV0KQor CQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21pY19nZXRfcGxhbmVfc3RhdGUocmVzdG9y ZV9zdGF0ZSwgY3J0Yy0+cHJpbWFyeSkpOworCWlmIChyZXQpIHsKKwkJRFJNX0RFQlVHX0tNUygi RmFpbGVkIHRvIGNyZWF0ZSBhIGNvcHkgb2Ygb2xkIHN0YXRlIHRvIHJlc3RvcmU6ICVpXG4iLCBy ZXQpOworCQlnb3RvIGZhaWw7CisJfQogCiAJaWYgKGRybV9hdG9taWNfY29tbWl0KHN0YXRlKSkg ewogCQlEUk1fREVCVUdfS01TKCJmYWlsZWQgdG8gc2V0IG1vZGUgb24gbG9hZC1kZXRlY3QgcGlw ZVxuIik7Ci0JCWlmIChvbGQtPnJlbGVhc2VfZmIpCi0JCQlvbGQtPnJlbGVhc2VfZmItPmZ1bmNz LT5kZXN0cm95KG9sZC0+cmVsZWFzZV9mYik7CiAJCWdvdG8gZmFpbDsKIAl9Ci0JY3J0Yy0+cHJp bWFyeS0+Y3J0YyA9IGNydGM7CisKKwlvbGQtPnJlc3RvcmVfc3RhdGUgPSByZXN0b3JlX3N0YXRl OwogCiAJLyogbGV0IHRoZSBjb25uZWN0b3IgZ2V0IHRocm91Z2ggb25lIGZ1bGwgY3ljbGUgYmVm b3JlIHRlc3RpbmcgKi8KIAlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2LCBpbnRlbF9jcnRjLT5w aXBlKTsKQEAgLTEwNTU3LDcgKzEwNTcxLDggQEAgcmV0cnk6CiAKIGZhaWw6CiAJZHJtX2F0b21p Y19zdGF0ZV9mcmVlKHN0YXRlKTsKLQlzdGF0ZSA9IE5VTEw7CisJZHJtX2F0b21pY19zdGF0ZV9m cmVlKHJlc3RvcmVfc3RhdGUpOworCXJlc3RvcmVfc3RhdGUgPSBzdGF0ZSA9IE5VTEw7CiAKIAlp ZiAocmV0ID09IC1FREVBRExLKSB7CiAJCWRybV9tb2Rlc2V0X2JhY2tvZmYoY3R4KTsKQEAgLTEw NTcxLDE0ICsxMDU4NiwxMiBAQCB2b2lkIGludGVsX3JlbGVhc2VfbG9hZF9kZXRlY3RfcGlwZShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfbG9h ZF9kZXRlY3RfcGlwZSAqb2xkLAogCQkJCSAgICBzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9j dHggKmN0eCkKIHsKLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7CiAJ c3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPQogCQlpbnRlbF9hdHRhY2hlZF9l bmNvZGVyKGNvbm5lY3Rvcik7CiAJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVs X2VuY29kZXItPmJhc2U7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gZW5jb2Rlci0+Y3J0YzsK KwlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjb25uZWN0b3ItPnN0YXRlLT5jcnRjOwogCXN0cnVj dCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNv bm5lY3Rvcl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBvbGQtPnJl c3RvcmVfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJaW50 IHJldDsKIApAQCAtMTA1ODYsNTAgKzEwNTk5LDE3IEBAIHZvaWQgaW50ZWxfcmVsZWFzZV9sb2Fk X2RldGVjdF9waXBlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCiAJCSAgICAgIGNv bm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lLAogCQkgICAgICBlbmNvZGVyLT5iYXNl LmlkLCBlbmNvZGVyLT5uYW1lKTsKIAotCWlmIChvbGQtPmxvYWRfZGV0ZWN0X3RlbXApIHsKLQkJ c3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Ci0JCWlmICghc3RhdGUpCi0JCQln b3RvIGZhaWw7Ci0KLQkJc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4OwotCi0JCWNvbm5lY3Rvcl9z dGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yKTsK LQkJaWYgKElTX0VSUihjb25uZWN0b3Jfc3RhdGUpKQotCQkJZ290byBmYWlsOwotCi0JCWNydGNf c3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGludGVsX2NydGMpOwot CQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQotCQkJZ290byBmYWlsOwotCi0JCWNvbm5lY3Rvcl9z dGF0ZS0+Y3J0YyA9IE5VTEw7Ci0KLQkJY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPSBjcnRjX3N0 YXRlLT5iYXNlLmFjdGl2ZSA9IGZhbHNlOwotCi0JCXJldCA9IGludGVsX21vZGVzZXRfc2V0dXBf cGxhbmVfc3RhdGUoc3RhdGUsIGNydGMsIE5VTEwsIE5VTEwsCi0JCQkJCQkgICAgICAwLCAwKTsK LQkJaWYgKHJldCkKLQkJCWdvdG8gZmFpbDsKLQotCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChz dGF0ZSk7Ci0JCWlmIChyZXQpCi0JCQlnb3RvIGZhaWw7Ci0KLQkJaWYgKG9sZC0+cmVsZWFzZV9m YikgewotCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVnaXN0ZXJfcHJpdmF0ZShvbGQtPnJlbGVhc2Vf ZmIpOwotCQkJZHJtX2ZyYW1lYnVmZmVyX3VucmVmZXJlbmNlKG9sZC0+cmVsZWFzZV9mYik7Ci0J CX0KLQorCWlmICghc3RhdGUpCiAJCXJldHVybjsKLQl9CiAKLQkvKiBTd2l0Y2ggY3J0YyBhbmQg ZW5jb2RlciBiYWNrIG9mZiBpZiBuZWNlc3NhcnkgKi8KLQlpZiAob2xkLT5kcG1zX21vZGUgIT0g RFJNX01PREVfRFBNU19PTikKLQkJY29ubmVjdG9yLT5mdW5jcy0+ZHBtcyhjb25uZWN0b3IsIG9s ZC0+ZHBtc19tb2RlKTsKKwljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jcnRjX3N0YXRl KHN0YXRlLCBpbnRlbF9jcnRjKTsKKwljcnRjX3N0YXRlLT5zaGFyZWRfZHBsbCA9IHRvX2ludGVs X2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT5zaGFyZWRfZHBsbDsKIAotCXJldHVybjsKLWZhaWw6 Ci0JRFJNX0RFQlVHX0tNUygiQ291bGRuJ3QgcmVsZWFzZSBsb2FkIGRldGVjdCBwaXBlLlxuIik7 Ci0JZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKKwlyZXQgPSBkcm1fYXRvbWljX2NvbW1p dChzdGF0ZSk7CisJaWYgKHJldCkgeworCQlEUk1fREVCVUdfS01TKCJDb3VsZG4ndCByZWxlYXNl IGxvYWQgZGV0ZWN0IHBpcGU6ICVpXG4iLCByZXQpOworCQlkcm1fYXRvbWljX3N0YXRlX2ZyZWUo c3RhdGUpOworCX0KIH0KIAogc3RhdGljIGludCBpOXh4X3BsbF9yZWZjbGsoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggOTNiYTE0YTNiYjc2Li43 ZDEwY2E3Nzk3YTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC05MTIsOSArOTEyLDcg QEAgc3RydWN0IGludGVsX3VucGluX3dvcmsgewogfTsKIAogc3RydWN0IGludGVsX2xvYWRfZGV0 ZWN0X3BpcGUgewotCXN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKnJlbGVhc2VfZmI7Ci0JYm9vbCBs b2FkX2RldGVjdF90ZW1wOwotCWludCBkcG1zX21vZGU7CisJc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnJlc3RvcmVfc3RhdGU7CiB9OwogCiBzdGF0aWMgaW5saW5lIHN0cnVjdCBpbnRlbF9lbmNv ZGVyICoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCklu dGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRw Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==