From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4E7C9893AB for ; Thu, 21 Feb 2019 19:28:04 +0000 (UTC) From: Antonio Argenziano Date: Thu, 21 Feb 2019 11:27:44 -0800 Message-Id: <20190221192745.31178-5-antonio.argenziano@intel.com> In-Reply-To: <20190221192745.31178-1-antonio.argenziano@intel.com> References: <20190221192745.31178-1-antonio.argenziano@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC 4/5] igt/i915: Require GTT mapping to be available when needed. List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Matthew Auld List-ID: V2l0aCB0aGUgR1RUIGFwZXJ0dXJlIGJlY29taW5nIHVuYXZhaWxhYmxlIG9uIGNlcnRhaW4gcGxh dGZvcm1zLCB0ZXN0cwp0aGF0IHRhcmdldCB0aGF0IG1hcHBpbmcgbmVlZCB0byBza2lwIGlmIHN1 Y2ggbWFwcGluZyBpcyBub3QgYXZhaWxhYmxlLgoKQ2M6IEthdGFyenluYSBEZWMgPGthdGFyenlu YS5kZWNAaW50ZWwuY29tPgpDYzogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28u dWs+CkNjOiBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+ClNpZ25lZC1vZmYt Ynk6IEFudG9uaW8gQXJnZW56aWFubyA8YW50b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4KLS0t CiBsaWIvaWd0X2R1bW15bG9hZC5jICAgICAgICAgICAgICAgICAgICAgfCAgNCArKystCiBsaWIv aWd0X2ZiLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKystCiB0ZXN0cy9pOTE1 L2dlbV9jb25jdXJyZW50X2FsbC5jICAgICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1L2dlbV9jdHhf c3NldS5jICAgICAgICAgICAgICAgfCAgNCArKystCiB0ZXN0cy9pOTE1L2dlbV9leGVjX2Jhc2lj LmMgICAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1L2dlbV9leGVjX2ZhdWx0aW5nX3JlbG9j LmMgICAgfCAgMiArKwogdGVzdHMvaTkxNS9nZW1fZXhlY19mbHVzaC5jICAgICAgICAgICAgIHwg IDYgKysrKysrCiB0ZXN0cy9pOTE1L2dlbV9leGVjX3JlbG9jLmMgICAgICAgICAgICAgfCAgNyAr KysrKysrCiB0ZXN0cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMgICAgICAgICAgfCAgNSArKysr LQogdGVzdHMvaTkxNS9nZW1fZmVuY2VfdGhyYXNoLmMgICAgICAgICAgIHwgIDYgKysrKysrCiB0 ZXN0cy9pOTE1L2dlbV9ndHRfY3B1X3RsYi5jICAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1 L2dlbV9ndHRfaG9nLmMgICAgICAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1L2dlbV9ndHRf c3BlZWQuYyAgICAgICAgICAgICAgfCAgMSArCiB0ZXN0cy9pOTE1L2dlbV9sYXJnZW9iamVjdC5j ICAgICAgICAgICAgfCAgMiArKwogdGVzdHMvaTkxNS9nZW1fbWFkdmlzZS5jICAgICAgICAgICAg ICAgIHwgIDQgKysrKwogdGVzdHMvaTkxNS9nZW1fbW1hcF9ndHQuYyAgICAgICAgICAgICAgIHwg IDQgKysrLQogdGVzdHMvaTkxNS9nZW1fbW1hcF9vZmZzZXRfZXhoYXVzdGlvbi5jIHwgIDIgKysK IHRlc3RzL2k5MTUvZ2VtX21tYXBfd2MuYyAgICAgICAgICAgICAgICB8ICAyICsrCiB0ZXN0cy9p OTE1L2dlbV9wZXJzaXN0ZW50X3JlbG9jcy5jICAgICAgfCAgMiArKwogdGVzdHMvaTkxNS9nZW1f cHdyaXRlX3ByZWFkLmMgICAgICAgICAgIHwgIDYgKysrKysrCiB0ZXN0cy9pOTE1L2dlbV9yZWxv Y192c19ncHUuYyAgICAgICAgICAgfCAyMSArKysrKysrKysrKystLS0tLS0tLS0KIHRlc3RzL2k5 MTUvZ2VtX3JlbmRlcl9jb3B5LmMgICAgICAgICAgICB8ICAyICsrCiB0ZXN0cy9pOTE1L2dlbV9z ZXRfdGlsaW5nX3ZzX2d0dC5jICAgICAgfCAgMiArKwogdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGlu Z192c19wd3JpdGUuYyAgIHwgIDIgKysKIHRlc3RzL2k5MTUvZ2VtX3Nocmluay5jICAgICAgICAg ICAgICAgICB8IDE0ICsrKysrKysrKysrLS0tCiB0ZXN0cy9pOTE1L2dlbV9zdG9yZWR3X2xvb3Au YyAgICAgICAgICAgfCAgOSArKysrKysrKysKIHRlc3RzL2k5MTUvZ2VtX3N0cmVhbWluZ193cml0 ZXMuYyAgICAgICB8IDE2ICsrKysrKysrKysrKysrLS0KIHRlc3RzL2k5MTUvZ2VtX3RpbGVkX2Zl bmNlX2JsaXRzLmMgICAgICB8ICAxICsKIHRlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX2Jhc2lj LmMgICAgICB8ICAxICsKIHRlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX3B3cml0ZS5jICAgICB8 ICA0ICsrKy0KIHRlc3RzL2k5MTUvZ2VtX3RpbGVkX3N3YXBwaW5nLmMgICAgICAgICB8ICAyICsr CiB0ZXN0cy9pOTE1L2dlbV90aWxlZF93Yi5jICAgICAgICAgICAgICAgfCAgMiArKwogdGVzdHMv aTkxNS9nZW1fdGlsZWRfd2MuYyAgICAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvaTkxNS9nZW1f dGlsaW5nX21heF9zdHJpZGUuYyAgICAgIHwgIDMgKystCiB0ZXN0cy9pOTE1L2dlbV91c2VycHRy X2JsaXRzLmMgICAgICAgICAgfCAxMCArKysrKysrKystCiB0ZXN0cy9pOTE1L2k5MTVfcG1fcnBt LmMgICAgICAgICAgICAgICAgfCAgNSArKysrKwogdGVzdHMvaTkxNS9pOTE1X3N1c3BlbmQuYyAg ICAgICAgICAgICAgIHwgIDIgKysKIHRlc3RzL2ttc19kcmF3X2NyYy5jICAgICAgICAgICAgICAg ICAgICB8ICA4ICsrKysrKy0tCiB0ZXN0cy9rbXNfZmVuY2VfcGluX2xlYWsuYyAgICAgICAgICAg ICAgfCAgMiArKwogdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMgICAgICAgIHwgIDMg KysrCiB0ZXN0cy9rbXNfcHNyLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArKysrCiB0 ZXN0cy9wcmltZV9tbWFwLmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArKwogdGVzdHMvcHJp bWVfbW1hcF9jb2hlcmVuY3kuYyAgICAgICAgICAgIHwgIDEgKwogdGVzdHMvcHJpbWVfdmdlbS5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrKysKIDQ0IGZpbGVzIGNoYW5nZWQsIDE2MyBp bnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9saWIvaWd0X2R1bW15 bG9hZC5jIGIvbGliL2lndF9kdW1teWxvYWQuYwppbmRleCA5ODI5MDZmMi4uYTljMGZmZWYgMTAw NjQ0Ci0tLSBhL2xpYi9pZ3RfZHVtbXlsb2FkLmMKKysrIGIvbGliL2lndF9kdW1teWxvYWQuYwpA QCAtMTE2LDkgKzExNiwxMSBAQCBlbWl0X3JlY3Vyc2l2ZV9iYXRjaChpZ3Rfc3Bpbl90ICpzcGlu LAogCW9ialtCQVRDSF0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgQkFUQ0hfU0laRSk7CiAJYmF0 Y2ggPSBfX2dlbV9tbWFwX193YyhmZCwgb2JqW0JBVENIXS5oYW5kbGUsCiAJCQkgICAgICAgMCwg QkFUQ0hfU0laRSwgUFJPVF9XUklURSk7Ci0JaWYgKCFiYXRjaCkKKwlpZiAoIWJhdGNoKSB7CisJ CWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIAkJYmF0Y2ggPSBnZW1fbW1hcF9fZ3R0KGZkLCBv YmpbQkFUQ0hdLmhhbmRsZSwKIAkJCQkgICAgICAgCUJBVENIX1NJWkUsIFBST1RfV1JJVEUpOwor CX0KIAlnZW1fc2V0X2RvbWFpbihmZCwgb2JqW0JBVENIXS5oYW5kbGUsCiAJCQlJOTE1X0dFTV9E T01BSU5fR1RULCBJOTE1X0dFTV9ET01BSU5fR1RUKTsKIAlleGVjYnVmLT5idWZmZXJfY291bnQr KzsKZGlmZiAtLWdpdCBhL2xpYi9pZ3RfZmIuYyBiL2xpYi9pZ3RfZmIuYwppbmRleCA0NjJhZmVj Mi4uNGI1NjFiYTIgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfZmIuYworKysgYi9saWIvaWd0X2ZiLmMK QEAgLTE1NTksOSArMTU1OSwxMSBAQCBzdGF0aWMgdm9pZCAqbWFwX2JvKGludCBmZCwgc3RydWN0 IGlndF9mYiAqZmIpCiAJaWYgKGZiLT5pc19kdW1iKQogCQlwdHIgPSBrbXN0ZXN0X2R1bWJfbWFw X2J1ZmZlcihmZCwgZmItPmdlbV9oYW5kbGUsIGZiLT5zaXplLAogCQkJCQkgICAgICBQUk9UX1JF QUQgfCBQUk9UX1dSSVRFKTsKLQllbHNlCisJZWxzZSB7CisJCWdlbV9yZXF1aXJlX21tYXBfZ3R0 KGZkKTsKIAkJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgZmItPmdlbV9oYW5kbGUsIGZiLT5zaXpl LAogCQkJCSAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsKKwl9CiAKIAlyZXR1cm4gcHRyOwog fQpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYyBiL3Rlc3RzL2k5 MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMKaW5kZXggNjA0OTM3MmQuLjFhYjYwOGVmIDEwMDY0NAot LS0gYS90ZXN0cy9pOTE1L2dlbV9jb25jdXJyZW50X2FsbC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2Vt X2NvbmN1cnJlbnRfYWxsLmMKQEAgLTE0MjIsNiArMTQyMiw3IEBAIHN0YXRpYyB2b2lkIGNwdV9y ZXF1aXJlKHZvaWQpCiAKIHN0YXRpYyB2b2lkIGd0dF9yZXF1aXJlKHZvaWQpCiB7CisJZ2VtX3Jl cXVpcmVfbW1hcF9ndHQoZmQpOwogfQogCiBzdGF0aWMgdm9pZCBiY3NfcmVxdWlyZSh2b2lkKQpk aWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fY3R4X3NzZXUuYyBiL3Rlc3RzL2k5MTUvZ2VtX2N0 eF9zc2V1LmMKaW5kZXggM2FmYTVjMTUuLmJmMWI1MGQ1IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1 L2dlbV9jdHhfc3NldS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX2N0eF9zc2V1LmMKQEAgLTUyOCw4 ICs1MjgsMTAgQEAgaWd0X21haW4KIAkJaWd0X3N1YnRlc3QoImludmFsaWQtc3NldSIpCiAJCQl0 ZXN0X2ludmFsaWRfc3NldShmZCk7CiAKLQkJaWd0X3N1YnRlc3QoImdndHQtYXJncyIpCisJCWln dF9zdWJ0ZXN0KCJnZ3R0LWFyZ3MiKSB7CisJCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CiAJ CQl0ZXN0X2dndHRfYXJncyhmZCk7CisJCX0KIAogCQlpZ3Rfc3VidGVzdCgiZW5naW5lcyIpCiAJ CQl0ZXN0X2VuZ2luZXMoZmQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19iYXNp Yy5jIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19iYXNpYy5jCmluZGV4IGRjYjgzODY0Li44NTM3NjY1 ZiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19iYXNpYy5jCisrKyBiL3Rlc3RzL2k5 MTUvZ2VtX2V4ZWNfYmFzaWMuYwpAQCAtOTMsNiArOTMsNyBAQCBzdGF0aWMgdm9pZCBndHQoaW50 IGZkLCB1bnNpZ25lZCByaW5nKQogCXN0cnVjdCBkcm1faTkxNV9nZW1fZXhlY19vYmplY3QyICpl eGVjOwogCXVpbnQzMl90IGhhbmRsZTsKIAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIAln ZW1fcmVxdWlyZV9yaW5nKGZkLCByaW5nKTsKIAogCWhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIDQw OTYpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fZXhlY19mYXVsdGluZ19yZWxvYy5jIGIv dGVzdHMvaTkxNS9nZW1fZXhlY19mYXVsdGluZ19yZWxvYy5jCmluZGV4IDZiMDVlNDNmLi45ZGI4 MGY1NCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZXhlY19mYXVsdGluZ19yZWxvYy5jCisr KyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfZmF1bHRpbmdfcmVsb2MuYwpAQCAtMTczLDYgKzE3Myw4 IEBAIHN0YXRpYyB2b2lkIHJ1bihpbnQgb2JqZWN0X3NpemUpCiAKIAlmZCA9IGRybV9vcGVuX2Ry aXZlcihEUklWRVJfSU5URUwpOwogCWlndF9yZXF1aXJlX2dlbShmZCk7CisJZ2VtX3JlcXVpcmVf bW1hcF9ndHQoZmQpOworCiAJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKIAloYW5k bGUgPSBnZW1fY3JlYXRlKGZkLCA0MDk2KTsKIAlzcmMgPSBnZW1fY3JlYXRlKGZkLCBvYmplY3Rf c2l6ZSk7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9leGVjX2ZsdXNoLmMgYi90ZXN0cy9p OTE1L2dlbV9leGVjX2ZsdXNoLmMKaW5kZXggZjgyMGIyYTguLjQyNzQ5YmM0IDEwMDY0NAotLS0g YS90ZXN0cy9pOTE1L2dlbV9leGVjX2ZsdXNoLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19m bHVzaC5jCkBAIC03OSw2ICs3OSw5IEBAIHN0YXRpYyB2b2lkIHJ1bihpbnQgZmQsIHVuc2lnbmVk IHJpbmcsIGludCBuY2hpbGQsIGludCB0aW1lb3V0LAogewogCWNvbnN0IGludCBnZW4gPSBpbnRl bF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwogCisJaWYgKChmbGFncyAmIENPSEVSRU5U KSAmJiAhKGZsYWdzICYgV0MpKQorCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAkvKiBU aGUgY3J1eCBvZiB0aGlzIHRlc3RpbmcgaXMgd2hldGhlciB3cml0ZXMgYnkgdGhlIEdQVSBhcmUg Y29oZXJlbnQKIAkgKiBmcm9tIHRoZSBDUFUuCiAJICoKQEAgLTU4Niw2ICs1ODksNyBAQCBpZ3Rf bWFpbgogCQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwogCQlpZ3RfcmVxdWly ZV9nZW0oZmQpOwogCQlnZW1fcmVxdWlyZV9tbWFwX3djKGZkKTsKKwkJZ2VtX3JlcXVpcmVfbW1h cF9ndHQoZmQpOwogCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCAwKSk7CiAJ CWlndF9pbmZvKCJIYXMgTExDPyAlc1xuIiwgeWVzbm8oZ2VtX2hhc19sbGMoZmQpKSk7CiAKQEAg LTYxNCwxMSArNjE4LDEzIEBAIGlndF9tYWluCiAJCQkJICAgICAgYi0+bmFtZSwKIAkJCQkgICAg ICBlLT5uYW1lKQogCQkJCWJhdGNoKGZkLCByaW5nLCBuY3B1cywgdGltZW91dCwgYi0+bW9kZSwg MCk7CisKIAkJCWlndF9zdWJ0ZXN0X2YoIiVzYmF0Y2gtJXMtJXMtd2IiLAogCQkJCSAgICAgIGIg PT0gYmF0Y2hlcyAmJiBlLT5leGVjX2lkID09IDAgPyAiYmFzaWMtIiA6ICIiLAogCQkJCSAgICAg IGItPm5hbWUsCiAJCQkJICAgICAgZS0+bmFtZSkKIAkJCQliYXRjaChmZCwgcmluZywgbmNwdXMs IHRpbWVvdXQsIGItPm1vZGUsIENPSEVSRU5UKTsKKwogCQkJaWd0X3N1YnRlc3RfZigiJXNiYXRj aC0lcy0lcy1jbWQiLAogCQkJCSAgICAgIGIgPT0gYmF0Y2hlcyAmJiBlLT5leGVjX2lkID09IDAg PyAiYmFzaWMtIiA6ICIiLAogCQkJCSAgICAgIGItPm5hbWUsCmRpZmYgLS1naXQgYS90ZXN0cy9p OTE1L2dlbV9leGVjX3JlbG9jLmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX3JlbG9jLmMKaW5kZXgg ODM3ZjYwYTYuLmJiNGVlYzMxIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVjX3JlbG9j LmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fZXhlY19yZWxvYy5jCkBAIC0xMTUsNiArMTE1LDkgQEAg c3RhdGljIHZvaWQgZnJvbV9tbWFwKGludCBmZCwgdWludDY0X3Qgc2l6ZSwgZW51bSBtb2RlIG1v ZGUpCiAJICovCiAJaW50ZWxfcmVxdWlyZV9tZW1vcnkoMiwgc2l6ZSwgQ0hFQ0tfUkFNKTsKIAor CWlmICgobW9kZSAmIH5STykgPT0gR1RUKQorCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisK IAltZW1zZXQoJm9iaiwgMCwgc2l6ZW9mKG9iaikpOwogCW9iai5oYW5kbGUgPSBnZW1fY3JlYXRl KGZkLCA0MDk2KTsKIAlnZW1fd3JpdGUoZmQsIG9iai5oYW5kbGUsIDAsICZiYmUsIHNpemVvZihi YmUpKTsKQEAgLTM0Miw2ICszNDUsOSBAQCBzdGF0aWMgdm9pZCBiYXNpY19yZWxvYyhpbnQgZmQs IHVuc2lnbmVkIGJlZm9yZSwgdW5zaWduZWQgYWZ0ZXIsIHVuc2lnbmVkIGZsYWdzKQogCWNvbnN0 IHVpbnQzMl90IGJiZSA9IE1JX0JBVENIX0JVRkZFUl9FTkQ7CiAJdW5zaWduZWQgaW50IHJlbG9j X29mZnNldDsKIAorCWlmICgoYmVmb3JlIHwgYWZ0ZXIpICYgSTkxNV9HRU1fRE9NQUlOX0dUVCkK KwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJbWVtc2V0KCZvYmosIDAsIHNpemVvZihv YmopKTsKIAlvYmouaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKU1opOwogCW9iai5yZWxvY3Nf cHRyID0gdG9fdXNlcl9wb2ludGVyKCZyZWxvYyk7CkBAIC03MTEsNiArNzE3LDcgQEAgaWd0X21h aW4KIAkJCQkJICAgICAgZi0+bmFtZSkgewogCQkJCQlpZiAoKG0tPmJlZm9yZSB8IG0tPmFmdGVy KSAmIEk5MTVfR0VNX0RPTUFJTl9XQykKIAkJCQkJCWlndF9yZXF1aXJlKGdlbV9tbWFwX19oYXNf d2MoZmQpKTsKKwogCQkJCQliYXNpY19yZWxvYyhmZCwgbS0+YmVmb3JlLCBtLT5hZnRlciwgZi0+ ZmxhZ3MpOwogCQkJCX0KIAkJCX0KZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2No ZWR1bGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYwppbmRleCBhOTM4MzAwMC4u MTVjODQ0MGYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfc2NoZWR1bGUuYworKysg Yi90ZXN0cy9pOTE1L2dlbV9leGVjX3NjaGVkdWxlLmMKQEAgLTEyMzYsNiArMTIzNiw3IEBAIGln dF9tYWluCiAJCQlpZ3Rfc3VidGVzdF9mKCJpbmRlcGVuZGVudC0lcyIsIGUtPm5hbWUpIHsKIAkJ CQlpZ3RfcmVxdWlyZShnZW1fcmluZ19oYXNfcGh5c2ljYWxfZW5naW5lKGZkLCBlLT5leGVjX2lk IHwgZS0+ZmxhZ3MpKTsKIAkJCQlpZ3RfcmVxdWlyZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCBl LT5leGVjX2lkIHwgZS0+ZmxhZ3MpKTsKKwkJCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CiAJ CQkJaW5kZXBlbmRlbnQoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncyk7CiAJCQl9CiAJCX0KQEAg LTEzMjgsOCArMTMyOSwxMCBAQCBpZ3RfbWFpbgogCQkJCWlndF9zdWJ0ZXN0X2YoIndpZGUtJXMi LCBlLT5uYW1lKQogCQkJCQl3aWRlKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwogCi0JCQkJ aWd0X3N1YnRlc3RfZigicmVvcmRlci13aWRlLSVzIiwgZS0+bmFtZSkKKwkJCQlpZ3Rfc3VidGVz dF9mKCJyZW9yZGVyLXdpZGUtJXMiLCBlLT5uYW1lKSB7CisJCQkJCWdlbV9yZXF1aXJlX21tYXBf Z3R0KGZkKTsKIAkJCQkJcmVvcmRlcl93aWRlKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MpOwor CQkJCX0KIAogCQkJCWlndF9zdWJ0ZXN0X2YoInNtb2tldGVzdC0lcyIsIGUtPm5hbWUpCiAJCQkJ CXNtb2tldGVzdChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCA1KTsKZGlmZiAtLWdpdCBhL3Rl c3RzL2k5MTUvZ2VtX2ZlbmNlX3RocmFzaC5jIGIvdGVzdHMvaTkxNS9nZW1fZmVuY2VfdGhyYXNo LmMKaW5kZXggMmQ3ZmIyZmYuLjU1NjdlMzdlIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9m ZW5jZV90aHJhc2guYworKysgYi90ZXN0cy9pOTE1L2dlbV9mZW5jZV90aHJhc2guYwpAQCAtMjM2 LDYgKzIzNiwxMiBAQCBpZ3RfbWFpbgogewogCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKIAor CWlndF9maXh0dXJlIHsKKwkJaW50IGZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7 CisJCWlndF9yZXF1aXJlKGdlbV9hdmFpbGFibGVfZmVuY2VzKGZkKSA+IDApOyAvKiBHVFQgbWFw cGluZyBhdmFpbGFibGUgKi8KKwkJY2xvc2UoZmQpOworCX0KKwogCWlndF9zdWJ0ZXN0KCJiby13 cml0ZS12ZXJpZnktbm9uZSIpCiAJCWlndF9hc3NlcnQocnVuX3Rlc3QoMCwgYm9fd3JpdGVfdmVy aWZ5LCBJOTE1X1RJTElOR19OT05FLCA4MCkgPT0gMCk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5 MTUvZ2VtX2d0dF9jcHVfdGxiLmMgYi90ZXN0cy9pOTE1L2dlbV9ndHRfY3B1X3RsYi5jCmluZGV4 IDhjZWVmNDRjLi5lOWJkYjE4NSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZ3R0X2NwdV90 bGIuYworKysgYi90ZXN0cy9pOTE1L2dlbV9ndHRfY3B1X3RsYi5jCkBAIC03OCw2ICs3OCw3IEBA IGlndF9zaW1wbGVfbWFpbgogCWlndF9za2lwX29uX3NpbXVsYXRpb24oKTsKIAogCWZkID0gZHJt X29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwog CiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKX1NJWkUpOwogCmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2dlbV9ndHRfaG9nLmMgYi90ZXN0cy9pOTE1L2dlbV9ndHRfaG9nLmMKaW5kZXggY2E3 MzA2NDkuLmIyZWVhNjc5IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9ndHRfaG9nLmMKKysr IGIvdGVzdHMvaTkxNS9nZW1fZ3R0X2hvZy5jCkBAIC0xNjEsNiArMTYxLDcgQEAgaWd0X3NpbXBs ZV9tYWluCiAJLyogY2hlY2sgZm9yIGFuIGludGVsIGdwdSBiZWZvcmUgZ29pbnQgbnV0cy4gKi8K IAlpbnQgZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAlpZ3RfcmVxdWlyZV9n ZW0oZmQpOworCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIAljbG9zZShmZCk7CiAKIAlpZ3Rf c2tpcF9vbl9zaW11bGF0aW9uKCk7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9ndHRfc3Bl ZWQuYyBiL3Rlc3RzL2k5MTUvZ2VtX2d0dF9zcGVlZC5jCmluZGV4IDNkNzI2YzRlLi5mMTc3ODM3 MCAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fZ3R0X3NwZWVkLmMKKysrIGIvdGVzdHMvaTkx NS9nZW1fZ3R0X3NwZWVkLmMKQEAgLTExNiw2ICsxMTYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCiAJYnVmID0gbWFsbG9jKHNpemUpOwogCW1lbXNldChidWYsIDAsIHNpemUp OwogCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CisJZ2VtX3JlcXVpcmVfbW1h cF9ndHQoZmQpOwogCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgc2l6ZSk7CiAJaWd0X2Fzc2Vy dChoYW5kbGUpOwpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fbGFyZ2VvYmplY3QuYyBiL3Rl c3RzL2k5MTUvZ2VtX2xhcmdlb2JqZWN0LmMKaW5kZXggNTE4Mzk2ZmEuLmEyZDQ3ZWRjIDEwMDY0 NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9sYXJnZW9iamVjdC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2Vt X2xhcmdlb2JqZWN0LmMKQEAgLTg0LDYgKzg0LDggQEAgaWd0X3NpbXBsZV9tYWluCiAKIAlmZCA9 IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQo ZmQpOworCiAJdGVzdF9sYXJnZV9vYmplY3QoZmQpOwogCiAJZnJlZShkYXRhKTsKZGlmZiAtLWdp dCBhL3Rlc3RzL2k5MTUvZ2VtX21hZHZpc2UuYyBiL3Rlc3RzL2k5MTUvZ2VtX21hZHZpc2UuYwpp bmRleCA3MjlhNGQzMy4uZjQyMjZhODQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX21hZHZp c2UuYworKysgYi90ZXN0cy9pOTE1L2dlbV9tYWR2aXNlLmMKQEAgLTYxLDYgKzYxLDggQEAgZG9u dG5lZWRfYmVmb3JlX21tYXAodm9pZCkKIAl1aW50MzJfdCBoYW5kbGU7CiAJY2hhciAqcHRyOwog CisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwg T0JKRUNUX1NJWkUpOwogCWdlbV9tYWR2aXNlKGZkLCBoYW5kbGUsIEk5MTVfTUFEVl9ET05UTkVF RCk7CiAJcHRyID0gZ2VtX21tYXBfX2d0dChmZCwgaGFuZGxlLCBPQkpFQ1RfU0laRSwgUFJPVF9S RUFEIHwgUFJPVF9XUklURSk7CkBAIC04OSw2ICs5MSw4IEBAIGRvbnRuZWVkX2FmdGVyX21tYXAo dm9pZCkKIAl1aW50MzJfdCBoYW5kbGU7CiAJY2hhciAqcHRyOwogCisJZ2VtX3JlcXVpcmVfbW1h cF9ndHQoZmQpOworCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKRUNUX1NJWkUpOwogCXB0 ciA9IGdlbV9tbWFwX19ndHQoZmQsIGhhbmRsZSwgT0JKRUNUX1NJWkUsIFBST1RfUkVBRCB8IFBS T1RfV1JJVEUpOwogCWlndF9hc3NlcnQocHRyKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2Vt X21tYXBfZ3R0LmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwX2d0dC5jCmluZGV4IGY2ZmJiZTE5Li45 OWRhNDlmNiAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fbW1hcF9ndHQuYworKysgYi90ZXN0 cy9pOTE1L2dlbV9tbWFwX2d0dC5jCkBAIC04MjgsOCArODI4LDEwIEBAIGlndF9tYWluCiAJaWYg KGlndF9ydW5faW5fc2ltdWxhdGlvbigpKQogCQlPQkpFQ1RfU0laRSA9IDEgKiAxMDI0ICogMTAy NDsKIAotCWlndF9maXh0dXJlCisJaWd0X2ZpeHR1cmUgewogCQlmZCA9IGRybV9vcGVuX2RyaXZl cihEUklWRVJfSU5URUwpOworCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisJfQogCiAJaWd0 X3N1YnRlc3QoImJhc2ljIikKIAkJdGVzdF9hY2Nlc3MoZmQpOwpkaWZmIC0tZ2l0IGEvdGVzdHMv aTkxNS9nZW1fbW1hcF9vZmZzZXRfZXhoYXVzdGlvbi5jIGIvdGVzdHMvaTkxNS9nZW1fbW1hcF9v ZmZzZXRfZXhoYXVzdGlvbi5jCmluZGV4IDhjOGUzZmEyLi44NjQ2NDIzMSAxMDA2NDQKLS0tIGEv dGVzdHMvaTkxNS9nZW1fbW1hcF9vZmZzZXRfZXhoYXVzdGlvbi5jCisrKyBiL3Rlc3RzL2k5MTUv Z2VtX21tYXBfb2Zmc2V0X2V4aGF1c3Rpb24uYwpAQCAtODIsNiArODIsOCBAQCBpZ3Rfc2ltcGxl X21haW4KIAogCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAKKwlnZW1fcmVx dWlyZV9tbWFwX2d0dChmZCk7CisKIAkvKiB3ZSBoYXZlIDMyYml0IG9mIGFkZHJlc3Mgc3BhY2Us IHNvIHRyeSB0byBmaXQgb25lIE1CIG1vcmUKIAkgKiB0aGFuIHRoYXQuICovCiAJZm9yIChpID0g MDsgaSA8IDQwOTYgKyAxOyBpKyspCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9tbWFwX3dj LmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwX3djLmMKaW5kZXggMTEwODgzZWIuLjc4MDg5ODI5IDEw MDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9tbWFwX3djLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1f bW1hcF93Yy5jCkBAIC0zMTksNiArMzE5LDggQEAgdGVzdF93cml0ZV9ndHRfcmVhZF93YyhpbnQg ZmQpCiAJdWludDMyX3QgaGFuZGxlOwogCXVpbnQzMl90ICpzcmMsICpkc3Q7CiAKKwlnZW1fcmVx dWlyZV9tbWFwX2d0dChmZCk7CisKIAloYW5kbGUgPSBnZW1fY3JlYXRlKGZkLCBPQkpFQ1RfU0la RSk7CiAJc2V0X2RvbWFpbihmZCwgaGFuZGxlKTsKIApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9n ZW1fcGVyc2lzdGVudF9yZWxvY3MuYyBiL3Rlc3RzL2k5MTUvZ2VtX3BlcnNpc3RlbnRfcmVsb2Nz LmMKaW5kZXggNDUyZmU2ODYuLjE3MjY2YzQ4IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9w ZXJzaXN0ZW50X3JlbG9jcy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3BlcnNpc3RlbnRfcmVsb2Nz LmMKQEAgLTE5OSw2ICsxOTksOCBAQCBzdGF0aWMgdm9pZCBkb190ZXN0KGludCBmZCwgYm9vbCBm YXVsdGluZ19yZWxvYykKIAl1aW50MzJfdCB0ZXN0OwogCWludCBpLCByZXBlYXQ7CiAKKwlnZW1f cmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAlpZiAoZmF1bHRpbmdfcmVsb2MpCiAJCWlndF9kaXNh YmxlX3ByZWZhdWx0KCk7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3B3cml0ZV9wcmVh ZC5jIGIvdGVzdHMvaTkxNS9nZW1fcHdyaXRlX3ByZWFkLmMKaW5kZXggZjkxZmM3YzQuLjQzYjM5 ODdhIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9wd3JpdGVfcHJlYWQuYworKysgYi90ZXN0 cy9pOTE1L2dlbV9wd3JpdGVfcHJlYWQuYwpAQCAtMTgyLDYgKzE4Miw4IEBAIHN0YXRpYyB2b2lk IHRlc3RfYXNfZ3R0X21tYXAoaW50IGZkLCB1aW50MzJfdCBzcmMsIHVpbnQzMl90IGRzdCwgaW50 IGxlbikKIAlpbnQgaTsKIAlCVUlMRF9FWEVDOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQp OworCiAJc3JjX3B0ciA9IGdlbV9tbWFwX19ndHQoZmQsIHNyYywgT0JKRUNUX1NJWkUsIFBST1Rf V1JJVEUpOwogCWRzdF9wdHIgPSBnZW1fbW1hcF9fZ3R0KGZkLCBkc3QsIE9CSkVDVF9TSVpFLCBQ Uk9UX1JFQUQpOwogCkBAIC0zMDksNiArMzExLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogCQlmb3IgKGNvdW50ID0gMTsgY291bnQgPD0gMTw8MTc7IGNvdW50IDw8PSAxKSB7 CiAJCQlzdHJ1Y3QgdGltZXZhbCBzdGFydCwgZW5kOwogCisJCQlnZW1fcmVxdWlyZV9tbWFwX2d0 dChmZCk7CisKIAkJCWdldHRpbWVvZmRheSgmc3RhcnQsIE5VTEwpOwogCQkJYXNfZ3R0X21tYXAo ZmQsIHNyYywgZHN0LCB0bXAsIG9iamVjdF9zaXplLCBjb3VudCk7CiAJCQlnZXR0aW1lb2ZkYXko JmVuZCwgTlVMTCk7CkBAIC0zODcsNiArMzkxLDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIg Kiphcmd2KQogCQlmb3IgKGNvdW50ID0gMTsgY291bnQgPD0gMTw8MTc7IGNvdW50IDw8PSAxKSB7 CiAJCQlzdHJ1Y3QgdGltZXZhbCBzdGFydCwgZW5kOwogCisJCQlnZW1fcmVxdWlyZV9tbWFwX2d0 dChmZCk7CisKIAkJCWdldHRpbWVvZmRheSgmc3RhcnQsIE5VTEwpOwogCQkJYXNfZ3R0X21tYXAo ZmQsIHNyYywgZHN0LCB0bXAsIG9iamVjdF9zaXplLCBjb3VudCk7CiAJCQlnZXR0aW1lb2ZkYXko JmVuZCwgTlVMTCk7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9yZWxvY192c19ncHUuYyBi L3Rlc3RzL2k5MTUvZ2VtX3JlbG9jX3ZzX2dwdS5jCmluZGV4IGQ0MjFlNDM0Li5lMTQ3NWExZiAx MDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fcmVsb2NfdnNfZ3B1LmMKKysrIGIvdGVzdHMvaTkx NS9nZW1fcmVsb2NfdnNfZ3B1LmMKQEAgLTE1OSwxNyArMTU5LDE3IEBAIHN0YXRpYyB2b2lkIHJl bG9jX2FuZF9lbWl0KGludCBmZCwgZHJtX2ludGVsX2JvICp0YXJnZXRfYm8sIGJvb2wgZmF1bHRp bmdfcmVsb2MpCiAJICovCiAJcmVsb2NbMF0ucHJlc3VtZWRfb2Zmc2V0ID0gLTE7CiAKLQloYW5k bGVfcmVsb2NzID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7Ci0JZ2VtX3dyaXRlKGZkLCBoYW5kbGVf cmVsb2NzLCAwLCByZWxvYywgc2l6ZW9mKHJlbG9jKSk7Ci0JZ3R0X3JlbG9jcyA9IGdlbV9tbWFw X19ndHQoZmQsIGhhbmRsZV9yZWxvY3MsIDQwOTYsCi0JCQkJICAgUFJPVF9SRUFEIHwgUFJPVF9X UklURSk7Ci0KIAlleGVjWzFdLmhhbmRsZSA9IHNwZWNpYWxfYm8tPmhhbmRsZTsKIAlleGVjWzFd LnJlbG9jYXRpb25fY291bnQgPSAxOwogCS8qIEEgbmV3bHkgbW1hcCBndHQgYm8gd2lsbCBmYXVs dCBvbiBmaXJzdCBhY2Nlc3MuICovCi0JaWYgKGZhdWx0aW5nX3JlbG9jKQorCWlmIChmYXVsdGlu Z19yZWxvYykgeworCQloYW5kbGVfcmVsb2NzID0gZ2VtX2NyZWF0ZShmZCwgNDA5Nik7CisJCWdl bV93cml0ZShmZCwgaGFuZGxlX3JlbG9jcywgMCwgcmVsb2MsIHNpemVvZihyZWxvYykpOworCQln dHRfcmVsb2NzID0gZ2VtX21tYXBfX2d0dChmZCwgaGFuZGxlX3JlbG9jcywgNDA5NiwKKwkJCQkJ CVBST1RfUkVBRCB8IFBST1RfV1JJVEUpOworCiAJCWV4ZWNbMV0ucmVsb2NzX3B0ciA9IHRvX3Vz ZXJfcG9pbnRlcihndHRfcmVsb2NzKTsKLQllbHNlCisJfSBlbHNlCiAJCWV4ZWNbMV0ucmVsb2Nz X3B0ciA9IHRvX3VzZXJfcG9pbnRlcihyZWxvYyk7CiAKIAlleGVjYnVmLmJ1ZmZlcnNfcHRyID0g dG9fdXNlcl9wb2ludGVyKGV4ZWMpOwpAQCAtMTgwLDcgKzE4MCw4IEBAIHN0YXRpYyB2b2lkIHJl bG9jX2FuZF9lbWl0KGludCBmZCwgZHJtX2ludGVsX2JvICp0YXJnZXRfYm8sIGJvb2wgZmF1bHRp bmdfcmVsb2MpCiAKIAlnZW1fZXhlY2J1ZihmZCwgJmV4ZWNidWYpOwogCi0JZ2VtX2Nsb3NlKGZk LCBoYW5kbGVfcmVsb2NzKTsKKwlpZiAoZmF1bHRpbmdfcmVsb2MpCisJCWdlbV9jbG9zZShmZCwg aGFuZGxlX3JlbG9jcyk7CiB9CiAKIHN0YXRpYyBpZ3RfaGFuZ190IG5vX2hhbmcoaW50IGZkKQpA QCAtMjAxLDggKzIwMiwxMCBAQCBzdGF0aWMgdm9pZCBkb190ZXN0KGludCBmZCwgYm9vbCBmYXVs dGluZ19yZWxvYywKIAl1aW50MzJfdCB0ZXN0OwogCWludCBpOwogCi0JaWYgKGZhdWx0aW5nX3Jl bG9jKQorCWlmIChmYXVsdGluZ19yZWxvYykgeworCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7 CiAJCWlndF9kaXNhYmxlX3ByZWZhdWx0KCk7CisJfQogCiAJYWN0X3NpemUgPSAyMDQ4OwogCWR1 bW15X2JvID0gZHJtX2ludGVsX2JvX2FsbG9jX3RpbGVkKGJ1Zm1nciwgInRpbGVkIGR1bW15X2Jv IiwgYWN0X3NpemUsIGFjdF9zaXplLApkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fcmVuZGVy X2NvcHkuYyBiL3Rlc3RzL2k5MTUvZ2VtX3JlbmRlcl9jb3B5LmMKaW5kZXggMGNkNGU1MGYuLjJh Nzg1Y2JhIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9yZW5kZXJfY29weS5jCisrKyBiL3Rl c3RzL2k5MTUvZ2VtX3JlbmRlcl9jb3B5LmMKQEAgLTQyNCw2ICs0MjQsOCBAQCBzdGF0aWMgdm9p ZCB0ZXN0KGRhdGFfdCAqZGF0YSwgdWludDMyX3QgdGlsaW5nLCBib29sIHRlc3RfY2NzKQogCiAJ aW50IG9wdF9kdW1wX2F1YiA9IGlndF9hdWJfZHVtcF9lbmFibGVkKCk7CiAKKwlnZW1fcmVxdWly ZV9tbWFwX2d0dChkYXRhLT5kcm1fZmQpOworCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9T SVpFKHNyYyk7IGkrKykKIAkJc2NyYXRjaF9idWZfaW5pdChkYXRhLCAmc3JjW2ldLmJ1ZiwgV0lE VEgsIEhFSUdIVCwgc3JjW2ldLnRpbGluZywgZmFsc2UpOwogCXNjcmF0Y2hfYnVmX2luaXQoZGF0 YSwgJmRzdCwgV0lEVEgsIEhFSUdIVCwgdGlsaW5nLCBmYWxzZSk7CmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2dlbV9zZXRfdGlsaW5nX3ZzX2d0dC5jIGIvdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGlu Z192c19ndHQuYwppbmRleCAyNjExZWM1NS4uMjEwZDUzNTggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5 MTUvZ2VtX3NldF90aWxpbmdfdnNfZ3R0LmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGlu Z192c19ndHQuYwpAQCAtNjAsNiArNjAsOCBAQCBpZ3Rfc2ltcGxlX21haW4KIAogCWZkID0gZHJt X29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7 CisKIAlpZiAoSVNfR0VOMihpbnRlbF9nZXRfZHJtX2RldmlkKGZkKSkpCiAJCXRpbGVfaGVpZ2h0 ID0gMTY7CiAJZWxzZQpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fc2V0X3RpbGluZ192c19w d3JpdGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfcHdyaXRlLmMKaW5kZXggZjAx MjZiNjQuLmQ4MmUyMGI0IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9zZXRfdGlsaW5nX3Zz X3B3cml0ZS5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3NldF90aWxpbmdfdnNfcHdyaXRlLmMKQEAg LTU4LDYgKzU4LDggQEAgaWd0X3NpbXBsZV9tYWluCiAKIAlmZCA9IGRybV9vcGVuX2RyaXZlcihE UklWRVJfSU5URUwpOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJZm9yIChpID0g MDsgaSA8IE9CSkVDVF9TSVpFLzQ7IGkrKykKIAkJZGF0YVtpXSA9IGk7CiAKZGlmZiAtLWdpdCBh L3Rlc3RzL2k5MTUvZ2VtX3Nocmluay5jIGIvdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMKaW5kZXgg YzhlMDU4MTQuLjljNTRmY2I0IDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYwor KysgYi90ZXN0cy9pOTE1L2dlbV9zaHJpbmsuYwpAQCAtMzk2LDYgKzM5Niw4IEBAIGlndF9tYWlu CiAJdWludDY0X3QgYWxsb2Nfc2l6ZSA9IDA7CiAJaW50IG51bV9wcm9jZXNzZXMgPSAwOwogCisJ Ym9vbCBoYXNfZ3R0ID0gZmFsc2U7CisKIAlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7CiAKIAlp Z3RfZml4dHVyZSB7CkBAIC00MjYsNiArNDI4LDggQEAgaWd0X21haW4KIAkJCWVuZ2luZXNbbmVu Z2luZSsrXSA9IGVuZ2luZTsKIAkJaWd0X3JlcXVpcmUobmVuZ2luZSk7CiAKKwkJaGFzX2d0dCA9 IGdlbV9tbWFwX19oYXNfZ3R0KGZkKTsKKwogCQljbG9zZShmZCk7CiAJfQogCkBAIC00MzQsOSAr NDM4LDEzIEBAIGlndF9tYWluCiAKIAlmb3IoY29uc3Qgc3RydWN0IHRlc3QgKnQgPSB0ZXN0czsg dC0+bmFtZTsgdCsrKSB7CiAJCWZvcihjb25zdCBzdHJ1Y3QgbW9kZSAqbSA9IG1vZGVzOyBtLT5z dWZmaXg7IG0rKykgewotCQkJaWd0X3N1YnRlc3RfZigiJXMlcyIsIHQtPm5hbWUsIG0tPnN1ZmZp eCkKLQkJCQlydW5fdGVzdChudW1fcHJvY2Vzc2VzLCBhbGxvY19zaXplLAotCQkJCQkgdC0+ZnVu YywgbS0+ZmxhZ3MpOworCQkJaWd0X3N1YnRlc3RfZigiJXMlcyIsIHQtPm5hbWUsIG0tPnN1ZmZp eCkgeworCQkJCQlpZiAodC0+ZnVuYyA9PSBtbWFwX2d0dCkKKwkJCQkJCWlndF9yZXF1aXJlKGhh c19ndHQpOworCisJCQkJCXJ1bl90ZXN0KG51bV9wcm9jZXNzZXMsIGFsbG9jX3NpemUsCisJCQkJ CQkgdC0+ZnVuYywgbS0+ZmxhZ3MpOworCQkJfQogCQl9CiAJfQogfQpkaWZmIC0tZ2l0IGEvdGVz dHMvaTkxNS9nZW1fc3RvcmVkd19sb29wLmMgYi90ZXN0cy9pOTE1L2dlbV9zdG9yZWR3X2xvb3Au YwppbmRleCBiMDA1NTVlMC4uZDE2YTFhNmIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3N0 b3JlZHdfbG9vcC5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3N0b3JlZHdfbG9vcC5jCkBAIC00OSw2 ICs0OSwxMiBAQCBzdGF0aWMgaW50IGRldmlkOwogCiBzdGF0aWMgdW5zaWduZWQgY29oZXJlbnRf ZG9tYWluOwogCitzdGF0aWMgYm9vbAordXNlc19jb2hlcmVudF9ndHQoaW50IGZkKQoreworCXJl dHVybiAoIWdlbV9oYXNfbGxjKGZkKSB8fCBnZW1fbW1hcF9faGFzX3djKGZkKSk7Cit9CisKIHN0 YXRpYyB2b2lkICoKIG1tYXBfY29oZXJlbnQoaW50IGZkLCB1aW50MzJfdCBoYW5kbGUsIGludCBz aXplKQogewpAQCAtMTY0LDYgKzE3MCw5IEBAIGNoZWNrX3Rlc3RfcmVxdWlyZW1lbnRzKGludCBm ZCwgaW50IHJpbmdpZCkKIHsKIAlnZW1fcmVxdWlyZV9yaW5nKGZkLCByaW5naWQpOwogCWlndF9y ZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQsIHJpbmdpZCkpOworCisJaWYgKHVzZXNfY29o ZXJlbnRfZ3R0KGZkKSkKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogfQogCiBpZ3RfbWFp bgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fc3RyZWFtaW5nX3dyaXRlcy5jIGIvdGVzdHMv aTkxNS9nZW1fc3RyZWFtaW5nX3dyaXRlcy5jCmluZGV4IGU4M2Q2OWRlLi4xNTljYjdhNiAxMDA2 NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1fc3RyZWFtaW5nX3dyaXRlcy5jCisrKyBiL3Rlc3RzL2k5 MTUvZ2VtX3N0cmVhbWluZ193cml0ZXMuYwpAQCAtNDgsNiArNDgsOCBAQAogCiAjZGVmaW5lIExP Q0FMX0k5MTVfRVhFQ19IQU5ETEVfTFVUICgxPDwxMikKIAorI2RlZmluZSBORUVEU19HVFQobW9k ZSkgKG1vZGUgPT0gMSkKKwogSUdUX1RFU1RfREVTQ1JJUFRJT04oIlRlc3Qgb2Ygc3RyZWFtaW5n IHdyaXRlcyBpbnRvIGFjdGl2ZSBHUFUgc291cmNlcyIpOwogCiAjZGVmaW5lIFNSQyAwCkBAIC03 NSw2ICs3Nyw5IEBAIHN0YXRpYyB2b2lkIHRlc3Rfc3RyZWFtaW5nKGludCBmZCwgaW50IG1vZGUs IGludCBzeW5jKQogCX0gKmJhdGNoOwogCWludCBpLCBuOwogCisJaWYgKE5FRURTX0dUVChtb2Rl KSkKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJbWVtc2V0KGV4ZWMsIDAsIHNpemVv ZihleGVjKSk7CiAJZXhlY1tTUkNdLmhhbmRsZSA9IGdlbV9jcmVhdGUoZmQsIE9CSkVDVF9TSVpF KTsKIAlleGVjW0RTVF0uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JKRUNUX1NJWkUpOwpAQCAt MjQ1LDYgKzI1MCw5IEBAIHN0YXRpYyB2b2lkIHRlc3RfYmF0Y2goaW50IGZkLCBpbnQgbW9kZSwg aW50IHJldmVyc2UpCiAJdWludDMyX3QgKmJhc2U7CiAJdWludDMyX3Qgb2Zmc2V0OwogCisJaWYg KE5FRURTX0dUVChtb2RlKSkKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJbWVtc2V0 KGV4ZWMsIDAsIHNpemVvZihleGVjKSk7CiAJZXhlY1tEU1RdLmhhbmRsZSA9IGdlbV9jcmVhdGUo ZmQsIE9CSkVDVF9TSVpFKTsKIAlleGVjW1NSQ10uaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgT0JK RUNUX1NJWkUpOwpAQCAtMzg5LDE0ICszOTcsMTggQEAgaWd0X21haW4KIAogCWlndF9zdWJ0ZXN0 KCJiYXRjaC1jcHUiKQogCQl0ZXN0X2JhdGNoKGZkLCAwLCAwKTsKLQlpZ3Rfc3VidGVzdCgiYmF0 Y2gtZ3R0IikKKwlpZ3Rfc3VidGVzdCgiYmF0Y2gtZ3R0IikgeworCQlnZW1fcmVxdWlyZV9tbWFw X2d0dChmZCk7CiAJCXRlc3RfYmF0Y2goZmQsIDEsIDApOworCX0KIAlpZ3Rfc3VidGVzdCgiYmF0 Y2gtd2MiKQogCQl0ZXN0X2JhdGNoKGZkLCAyLCAwKTsKIAlpZ3Rfc3VidGVzdCgiYmF0Y2gtcmV2 ZXJzZS1jcHUiKQogCQl0ZXN0X2JhdGNoKGZkLCAwLCAxKTsKLQlpZ3Rfc3VidGVzdCgiYmF0Y2gt cmV2ZXJzZS1ndHQiKQorCWlndF9zdWJ0ZXN0KCJiYXRjaC1yZXZlcnNlLWd0dCIpIHsKKwkJZ2Vt X3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCQl0ZXN0X2JhdGNoKGZkLCAxLCAxKTsKKwl9CiAJaWd0 X3N1YnRlc3QoImJhdGNoLXJldmVyc2Utd2MiKQogCQl0ZXN0X2JhdGNoKGZkLCAyLCAxKTsKIApk aWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fdGlsZWRfZmVuY2VfYmxpdHMuYyBiL3Rlc3RzL2k5 MTUvZ2VtX3RpbGVkX2ZlbmNlX2JsaXRzLmMKaW5kZXggMjQ1M2JjYzAuLjM5MGQwY2Q3IDEwMDY0 NAotLS0gYS90ZXN0cy9pOTE1L2dlbV90aWxlZF9mZW5jZV9ibGl0cy5jCisrKyBiL3Rlc3RzL2k5 MTUvZ2VtX3RpbGVkX2ZlbmNlX2JsaXRzLmMKQEAgLTIxMSw2ICsyMTEsNyBAQCBpZ3RfbWFpbgog CWlndF9maXh0dXJlIHsKIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKIAkJ aWd0X3JlcXVpcmVfZ2VtKGZkKTsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCX0KIAog CWlndF9zdWJ0ZXN0KCJiYXNpYyIpCmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV90aWxlZF9w cmVhZF9iYXNpYy5jIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfYmFzaWMuYwppbmRleCA0 MjViYjA3ZS4uZDJiYzg0ZDMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFk X2Jhc2ljLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRfYmFzaWMuYwpAQCAtMTIz LDYgKzEyMyw3IEBAIGlndF9zaW1wbGVfbWFpbgogCXVpbnQzMl90IGRldmlkOwogCiAJZmQgPSBk cm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKKwlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7 CiAKIAloYW5kbGUgPSBjcmVhdGVfYm8oZmQpOwogCWlndF9yZXF1aXJlKGdlbV9nZXRfdGlsaW5n KGZkLCBoYW5kbGUsICZ0aWxpbmcsICZzd2l6emxlKSk7CmRpZmYgLS1naXQgYS90ZXN0cy9pOTE1 L2dlbV90aWxlZF9wcmVhZF9wd3JpdGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3ByZWFkX3B3 cml0ZS5jCmluZGV4IGZjZjA3ODBhLi5lYmYwNmM1NyAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9n ZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfcHJlYWRf cHdyaXRlLmMKQEAgLTExMCw4ICsxMTAsMTAgQEAgaWd0X3NpbXBsZV9tYWluCiAJdWludDMyX3Qg dGlsaW5nLCBzd2l6emxlOwogCWludCBjb3VudDsKIAlpbnQgZmQ7Ci0JCisKIAlmZCA9IGRybV9v cGVuX2RyaXZlcihEUklWRVJfSU5URUwpOworCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwog CWNvdW50ID0gU0xPV19RVUlDSyhpbnRlbF9nZXRfdG90YWxfcmFtX21iKCkgKiA5IC8gMTAsIDgp IDsKIAogCWZvciAoaW50IGkgPSAwOyBpIDwgY291bnQvMjsgaSsrKSB7CmRpZmYgLS1naXQgYS90 ZXN0cy9pOTE1L2dlbV90aWxlZF9zd2FwcGluZy5jIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfc3dh cHBpbmcuYwppbmRleCBkZGYyYTc0OC4uMjk3ODNhYmEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUv Z2VtX3RpbGVkX3N3YXBwaW5nLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fdGlsZWRfc3dhcHBpbmcu YwpAQCAtMTc1LDYgKzE3NSw4IEBAIGlndF9tYWluCiAKIAkJZmQgPSBkcm1fb3Blbl9kcml2ZXIo RFJJVkVSX0lOVEVMKTsKIAorCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChmZCk7CisKIAkJaW50ZWxf cHVyZ2Vfdm1fY2FjaGVzKGZkKTsKIAkJY2hlY2tfbWVtb3J5X2xheW91dChmZCk7CiAKZGlmZiAt LWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3diLmMgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF93 Yi5jCmluZGV4IDY3ZDU0YmQzLi45ZjQzMTUyOSAxMDA2NDQKLS0tIGEvdGVzdHMvaTkxNS9nZW1f dGlsZWRfd2IuYworKysgYi90ZXN0cy9pOTE1L2dlbV90aWxlZF93Yi5jCkBAIC0xMzksNiArMTM5 LDggQEAgaWd0X3NpbXBsZV9tYWluCiAKIAlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5U RUwpOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOworCiAJaGFuZGxlID0gY3JlYXRlX2Jv KGZkKTsKIAlnZXRfdGlsaW5nKGZkLCBoYW5kbGUsICZ0aWxpbmcsICZzd2l6emxlKTsKIApkaWZm IC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fdGlsZWRfd2MuYyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVk X3djLmMKaW5kZXggMjEzOTA3MjkuLjRhNjdhNzFkIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2dl bV90aWxlZF93Yy5jCisrKyBiL3Rlc3RzL2k5MTUvZ2VtX3RpbGVkX3djLmMKQEAgLTExMiw2ICsx MTIsNyBAQCBpZ3Rfc2ltcGxlX21haW4KIAl1aW50MzJfdCBoYW5kbGU7CiAKIAlmZCA9IGRybV9v cGVuX2RyaXZlcihEUklWRVJfSU5URUwpOworCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKIAln ZW1fcmVxdWlyZV9tbWFwX3djKGZkKTsKIAogCWhhbmRsZSA9IGNyZWF0ZV9ibyhmZCk7CmRpZmYg LS1naXQgYS90ZXN0cy9pOTE1L2dlbV90aWxpbmdfbWF4X3N0cmlkZS5jIGIvdGVzdHMvaTkxNS9n ZW1fdGlsaW5nX21heF9zdHJpZGUuYwppbmRleCBhNmY5N2E5MS4uYjVkYzA1M2QgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2k5MTUvZ2VtX3RpbGluZ19tYXhfc3RyaWRlLmMKKysrIGIvdGVzdHMvaTkxNS9n ZW1fdGlsaW5nX21heF9zdHJpZGUuYwpAQCAtNzAsOCArNzAsOSBAQCBpZ3Rfc2ltcGxlX21haW4K IAogCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7CiAKLQlkZXZpZCA9IGludGVs X2dldF9kcm1fZGV2aWQoZmQpOworCWdlbV9yZXF1aXJlX21tYXBfd2MoZmQpOwogCisJZGV2aWQg PSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKIAlpZiAoaW50ZWxfZ2VuKGRldmlkKSA+PSA3KQog CQlzdHJpZGUgPSAyNTYgKiAxMDI0OwogCWVsc2UgaWYgKGludGVsX2dlbihkZXZpZCkgPj0gNCkK ZGlmZiAtLWdpdCBhL3Rlc3RzL2k5MTUvZ2VtX3VzZXJwdHJfYmxpdHMuYyBiL3Rlc3RzL2k5MTUv Z2VtX3VzZXJwdHJfYmxpdHMuYwppbmRleCA4ZjhkZGY0My4uOTk2MmU1MzkgMTAwNjQ0Ci0tLSBh L3Rlc3RzL2k5MTUvZ2VtX3VzZXJwdHJfYmxpdHMuYworKysgYi90ZXN0cy9pOTE1L2dlbV91c2Vy cHRyX2JsaXRzLmMKQEAgLTU1NCw2ICs1NTQsOCBAQCBzdGF0aWMgaW50IHRlc3RfaW52YWxpZF9n dHRfbWFwcGluZyhpbnQgZmQpCiAJdWludDMyX3QgaGFuZGxlOwogCWNoYXIgKmd0dCwgKm1hcDsK IAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCS8qIEFub255bW91cyBtYXBwaW5nIHRv IGZpbmQgYSBob2xlICovCiAJbWFwID0gbW1hcChOVUxMLCBzaXplb2YobGluZWFyKSArIDIgKiBQ QUdFX1NJWkUsCiAJCSAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCkBAIC02MTYsOCArNjE4LDEw IEBAIHN0YXRpYyBpbnQgdGVzdF9pbnZhbGlkX2d0dF9tYXBwaW5nKGludCBmZCkKICNkZWZpbmUg UEVfQlVTWSAweDIKIHN0YXRpYyB2b2lkIHRlc3RfcHJvY2Vzc19leGl0KGludCBmZCwgaW50IGZs YWdzKQogewotCWlmIChmbGFncyAmIFBFX0dUVF9NQVApCisJaWYgKGZsYWdzICYgUEVfR1RUX01B UCkgewogCQlpZ3RfcmVxdWlyZShnZW1faGFzX2xsYyhmZCkpOworCQlnZW1fcmVxdWlyZV9tbWFw X2d0dChmZCk7CisJfQogCiAJaWd0X2ZvcmsoY2hpbGQsIDEpIHsKIAkJdWludDMyX3QgaGFuZGxl OwpAQCAtNzAwLDYgKzcwNCw4IEBAIHN0YXRpYyBpbnQgdGVzdF9tYXBfZml4ZWRfaW52YWxpZGF0 ZShpbnQgZmQsIHVpbnQzMl90IGZsYWdzKQogCXVpbnQzMl90IGhhbmRsZVtudW1faGFuZGxlc107 CiAJdWludDMyX3QgKnB0cjsKIAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCXB0ciA9 IG1tYXAoTlVMTCwgcHRyX3NpemUsCiAJCSAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCiAJCSAg IE1BUF9TSEFSRUQgfCBNQVBfQU5PTllNT1VTLApAQCAtOTQ0LDYgKzk1MCw3IEBAIHN0YXRpYyBp bnQgdGVzdF9kbWFidWYodm9pZCkKIAlpbnQgcmV0OwogCiAJZmQxID0gZHJtX29wZW5fZHJpdmVy KERSSVZFUl9JTlRFTCk7CisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQxKTsKIAogCWhhbmRsZSA9 IGNyZWF0ZV91c2VycHRyX2JvKGZkMSwgc2l6ZW9mKGxpbmVhcikpOwogCW1lbXNldChnZXRfaGFu ZGxlX3B0cihoYW5kbGUpLCBjb3VudGVyLCBzaXplb2YobGluZWFyKSk7CkBAIC0xMjEyLDYgKzEy MTksNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X3JlYWRvbmx5X21tYXAoaW50IGk5MTUpCiAJICovCiAK IAlpZ3RfcmVxdWlyZShpZ3Rfc2V0dXBfY2xmbHVzaCgpKTsKKwlnZW1fcmVxdWlyZV9tbWFwX2d0 dChpOTE1KTsKIAogCXN6ID0gMTYgPDwgMTI7CiAJcGFnZXMgPSBtbWFwKE5VTEwsIHN6LCBQUk9U X1dSSVRFLCBNQVBfQU5PTiB8IE1BUF9QUklWQVRFLCAtMSwgMCk7CmRpZmYgLS1naXQgYS90ZXN0 cy9pOTE1L2k5MTVfcG1fcnBtLmMgYi90ZXN0cy9pOTE1L2k5MTVfcG1fcnBtLmMKaW5kZXggYmUy OTZmNTIuLjAxYWI4MzkwIDEwMDY0NAotLS0gYS90ZXN0cy9pOTE1L2k5MTVfcG1fcnBtLmMKKysr IGIvdGVzdHMvaTkxNS9pOTE1X3BtX3JwbS5jCkBAIC0xMDA2LDYgKzEwMDYsNyBAQCBzdGF0aWMg dm9pZCBnZW1fbW1hcF9zdWJ0ZXN0KGJvb2wgZ3R0X21tYXApCiAJaGFuZGxlID0gZ2VtX2NyZWF0 ZShkcm1fZmQsIGJ1Zl9zaXplKTsKIAogCWlmIChndHRfbW1hcCkgeworCQlnZW1fcmVxdWlyZV9t bWFwX2d0dChkcm1fZmQpOwogCQlnZW1fYnVmID0gZ2VtX21tYXBfX2d0dChkcm1fZmQsIGhhbmRs ZSwgYnVmX3NpemUsCiAJCQkJCVBST1RfUkVBRCB8IFBST1RfV1JJVEUpOwogCX0KQEAgLTEzNjgs NiArMTM2OSw4IEBAIHN0YXRpYyB2b2lkIGdlbV9ldmljdF9wd3JpdGVfc3VidGVzdCh2b2lkKQog CXVuc2lnbmVkIGludCBudW1fdHJhc2hfYm9zLCBuOwogCXVpbnQzMl90IGJ1ZjsKIAorCWdlbV9y ZXF1aXJlX21tYXBfZ3R0KGRybV9mZCk7CisKIAludW1fdHJhc2hfYm9zID0gZ2VtX21hcHBhYmxl X2FwZXJ0dXJlX3NpemUoKSAvICgxMDI0KjEwMjQpICsgMTsKIAl0cmFzaF9ib3MgPSBtYWxsb2Mo bnVtX3RyYXNoX2JvcyAqIHNpemVvZigqdHJhc2hfYm9zKSk7CiAJaWd0X2Fzc2VydCh0cmFzaF9i b3MpOwpAQCAtMTc5Niw2ICsxNzk5LDggQEAgc3RhdGljIHZvaWQgcG1fdGVzdF90aWxpbmcodm9p ZCkKIAkvKiBkZWZhdWx0IHN0cmlkZSB2YWx1ZSAqLwogCXVpbnQzMl90IHN0cmlkZSA9IDUxMjsK IAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRybV9mZCk7CisKIAkvKiBjYWxjdWxhdGUgaG93IG1h bnkgb2JqZWN0cyB3ZSBjYW4gbWFwICovCiAJZm9yIChpID0gMSA8PCBvZmZfYml0OyBpIDw9IGd0 dF9vYmpfbWF4X3NpemU7IGkgPDw9IDEsIG1heF9nZW1fb2JqcysrKQogCQk7CmRpZmYgLS1naXQg YS90ZXN0cy9pOTE1L2k5MTVfc3VzcGVuZC5jIGIvdGVzdHMvaTkxNS9pOTE1X3N1c3BlbmQuYwpp bmRleCA4NGNiM2I0OS4uNGNjMDk1MjUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2k5MTUvaTkxNV9zdXNw ZW5kLmMKKysrIGIvdGVzdHMvaTkxNS9pOTE1X3N1c3BlbmQuYwpAQCAtNDksNiArNDksOCBAQCB0 ZXN0X2ZlbmNlX3Jlc3RvcmUoaW50IGZkLCBib29sIHRpbGVkMnVudGlsZWQsIGJvb2wgaGliZXJu YXRlKQogCXVpbnQzMl90ICpwdHIxLCAqcHRyMiwgKnB0cl90aWxlZDsKIAlpbnQgaTsKIAorCWdl bV9yZXF1aXJlX21tYXBfZ3R0KGZkKTsKKwogCS8qIFdlIHdhbGwgdGhlIHRpbGVkIG9iamVjdCB3 aXRoIHVudGlsZWQgY2FuYXJ5IG9iamVjdHMgdG8gbWFrZSBzdXJlCiAJICogdGhhdCB3ZSBkZXRl Y3QgdGlsZSBsZWFraW5nIGluIGJvdGggZGlyZWN0aW9ucy4gKi8KIAloYW5kbGUxID0gZ2VtX2Ny ZWF0ZShmZCwgT0JKRUNUX1NJWkUpOwpkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2RyYXdfY3JjLmMg Yi90ZXN0cy9rbXNfZHJhd19jcmMuYwppbmRleCBlYTE0ZGI5YS4uMWEyZTJkNGYgMTAwNjQ0Ci0t LSBhL3Rlc3RzL2ttc19kcmF3X2NyYy5jCisrKyBiL3Rlc3RzL2ttc19kcmF3X2NyYy5jCkBAIC0z MjksMTMgKzMyOSwxNyBAQCBpZ3RfbWFpbgogCQlpZ3Rfc3VidGVzdF9mKCJkcmF3LW1ldGhvZC0l cy0lcy0lcyIsCiAJCQkgICAgICBmb3JtYXRfc3RyKGZvcm1hdF9pZHgpLAogCQkJICAgICAgaWd0 X2RyYXdfZ2V0X21ldGhvZF9uYW1lKG1ldGhvZCksCi0JCQkgICAgICB0aWxpbmdfc3RyKHRpbGlu Z19pZHgpKQorCQkJICAgICAgdGlsaW5nX3N0cih0aWxpbmdfaWR4KSkgeworCQkJZ2VtX3JlcXVp cmVfbW1hcF9ndHQoZHJtX2ZkKTsKIAkJCWRyYXdfbWV0aG9kX3N1YnRlc3QobWV0aG9kLCBmb3Jt YXRfaWR4LAogCQkJCQkgICAgdGlsaW5nc1t0aWxpbmdfaWR4XSk7CisJCX0KIAl9IH0gfQogCi0J aWd0X3N1YnRlc3QoImZpbGwtZmIiKQorCWlndF9zdWJ0ZXN0KCJmaWxsLWZiIikgeworCQlnZW1f cmVxdWlyZV9tbWFwX2d0dChkcm1fZmQpOwogCQlmaWxsX2ZiX3N1YnRlc3QoKTsKKwl9CiAKIAlp Z3RfZml4dHVyZQogCQl0ZWFyZG93bl9lbnZpcm9ubWVudCgpOwpkaWZmIC0tZ2l0IGEvdGVzdHMv a21zX2ZlbmNlX3Bpbl9sZWFrLmMgYi90ZXN0cy9rbXNfZmVuY2VfcGluX2xlYWsuYwppbmRleCA2 MmM1MmI2Mi4uYWMwZjYwNWMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19mZW5jZV9waW5fbGVhay5j CisrKyBiL3Rlc3RzL2ttc19mZW5jZV9waW5fbGVhay5jCkBAIC0yMDIsNiArMjAyLDggQEAgaWd0 X3NpbXBsZV9tYWluCiAKIAlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJ VkVSX0lOVEVMKTsKIAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGRhdGEuZHJtX2ZkKTsKKwogCWRh dGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKIAogCWttc3Rlc3Rf c2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19mcm9udGJ1ZmZl cl90cmFja2luZy5jIGIvdGVzdHMva21zX2Zyb250YnVmZmVyX3RyYWNraW5nLmMKaW5kZXggNGQx NWNlMWMuLjc4Mjk5NDM4IDEwMDY0NAotLS0gYS90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tp bmcuYworKysgYi90ZXN0cy9rbXNfZnJvbnRidWZmZXJfdHJhY2tpbmcuYwpAQCAtMTc1OCw2ICsx NzU4LDkgQEAgc3RhdGljIHZvaWQgY2hlY2tfdGVzdF9yZXF1aXJlbWVudHMoY29uc3Qgc3RydWN0 IHRlc3RfbW9kZSAqdCkKIAogCWlmIChvcHQub25seV9waXBlcyAhPSBQSVBFX0NPVU5UKQogCQlp Z3RfcmVxdWlyZSh0LT5waXBlcyA9PSBvcHQub25seV9waXBlcyk7CisKKwlpZiAodC0+bWV0aG9k ID09IElHVF9EUkFXX01NQVBfR1RUKQorCQlnZW1fcmVxdWlyZV9tbWFwX2d0dChkcm0uZmQpOwog fQogCiBzdGF0aWMgdm9pZCBzZXRfY3J0Y19mYnMoY29uc3Qgc3RydWN0IHRlc3RfbW9kZSAqdCkK ZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19wc3IuYyBiL3Rlc3RzL2ttc19wc3IuYwppbmRleCAzZTE2 YTZiZi4uNjZmNGZjZDggMTAwNjQ0Ci0tLSBhL3Rlc3RzL2ttc19wc3IuYworKysgYi90ZXN0cy9r bXNfcHNyLmMKQEAgLTQxLDYgKzQxLDggQEAgZW51bSBvcGVyYXRpb25zIHsKIAlQTEFORV9PTk9G RiwKIH07CiAKKyNkZWZpbmUgbmVlZHNfZ3R0KG9wKSBpZiAob3AgPT0gTU1BUF9HVFQpIHtnZW1f cmVxdWlyZV9tbWFwX2d0dChkYXRhLmRybV9mZCk7fQorCiBzdGF0aWMgY29uc3QgY2hhciAqb3Bf c3RyKGVudW0gb3BlcmF0aW9ucyBvcCkKIHsKIAlzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IG5h bWVbXSA9IHsKQEAgLTQ3NCw2ICs0NzYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCQkJaWd0X3N1YnRlc3RfZigiJXNwcmltYXJ5XyVzIiwKIAkJCQkgICAgICBhcHBlbmRf c3VidGVzdF9uYW1lW2RhdGEub3BfcHNyX21vZGVdLAogCQkJCSAgICAgIG9wX3N0cihvcCkpIHsK KwkJCQluZWVkc19ndHQob3ApOwogCQkJCWRhdGEub3AgPSBvcDsKIAkJCQlkYXRhLnRlc3RfcGxh bmVfaWQgPSBEUk1fUExBTkVfVFlQRV9QUklNQVJZOwogCQkJCXRlc3Rfc2V0dXAoJmRhdGEpOwpA QCAtNDg2LDYgKzQ4OSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCiAJCQlp Z3Rfc3VidGVzdF9mKCIlc3Nwcml0ZV8lcyIsCiAJCQkJICAgICAgYXBwZW5kX3N1YnRlc3RfbmFt ZVtkYXRhLm9wX3Bzcl9tb2RlXSwKIAkJCQkgICAgICBvcF9zdHIob3ApKSB7CisJCQkJbmVlZHNf Z3R0KG9wKTsKIAkJCQlkYXRhLm9wID0gb3A7CiAJCQkJZGF0YS50ZXN0X3BsYW5lX2lkID0gRFJN X1BMQU5FX1RZUEVfT1ZFUkxBWTsKIAkJCQl0ZXN0X3NldHVwKCZkYXRhKTsKZGlmZiAtLWdpdCBh L3Rlc3RzL3ByaW1lX21tYXAuYyBiL3Rlc3RzL3ByaW1lX21tYXAuYwppbmRleCA2N2E2YTIzMi4u ZTYyNTg2NTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3ByaW1lX21tYXAuYworKysgYi90ZXN0cy9wcmlt ZV9tbWFwLmMKQEAgLTc4LDYgKzc4LDggQEAgdGVzdF9jb3JyZWN0KHZvaWQpCiAJY2hhciAqcHRy MSwgKnB0cjI7CiAJdWludDMyX3QgaGFuZGxlOwogCisJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQp OworCiAJaGFuZGxlID0gZ2VtX2NyZWF0ZShmZCwgQk9fU0laRSk7CiAJZmlsbF9ibyhoYW5kbGUs IEJPX1NJWkUpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9wcmltZV9tbWFwX2NvaGVyZW5jeS5jIGIv dGVzdHMvcHJpbWVfbW1hcF9jb2hlcmVuY3kuYwppbmRleCAwNGIxNWRkZC4uOWMzNDRkZjkgMTAw NjQ0Ci0tLSBhL3Rlc3RzL3ByaW1lX21tYXBfY29oZXJlbmN5LmMKKysrIGIvdGVzdHMvcHJpbWVf bW1hcF9jb2hlcmVuY3kuYwpAQCAtMjk1LDYgKzI5NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKIAkgKiByZXByb2R1Y2luZyBib2lscyBkb3duIHRvIHRyaWFsIGFuZCBlcnJv ciB0byBoaXQgZGlmZmVyZW50IHNjZW5hcmlvcy4KIAkgKiBUT0RPOiBXZSBtYXkgd2FudCB0byBp bXByb3ZlIHRlc3RzIGEgYml0IGJ5IHBpY2tpbmcgcmFuZG9tIHN1YnJhbmdlcy4gKi8KIAlpZ3Rf c3VidGVzdCgicmVhZCIpIHsKKwkJZ2VtX3JlcXVpcmVfbW1hcF9ndHQoZmQpOwogCQlpZ3RfdW50 aWxfdGltZW91dCg1KSB7CiAJCQlpbnQgc3RhbGUgPSB0ZXN0X3JlYWRfZmx1c2goKTsKIAkJCWln dF9mYWlsX29uX2Yoc3RhbGUsCmRpZmYgLS1naXQgYS90ZXN0cy9wcmltZV92Z2VtLmMgYi90ZXN0 cy9wcmltZV92Z2VtLmMKaW5kZXggNjBiYjk1MWMuLjBjNjBkNTY5IDEwMDY0NAotLS0gYS90ZXN0 cy9wcmltZV92Z2VtLmMKKysrIGIvdGVzdHMvcHJpbWVfdmdlbS5jCkBAIC0xMjUsNiArMTI1LDgg QEAgc3RhdGljIHZvaWQgdGVzdF9mZW5jZV9tbWFwKGludCBpOTE1LCBpbnQgdmdlbSkKIAlpbnQg ZG1hYnVmLCBpOwogCWludCBtYXN0ZXJbMl0sIHNsYXZlWzJdOwogCisJZ2VtX3JlcXVpcmVfbW1h cF9ndHQoaTkxNSk7CisKIAlpZ3RfYXNzZXJ0KHBpcGUobWFzdGVyKSA9PSAwKTsKIAlpZ3RfYXNz ZXJ0KHBpcGUoc2xhdmUpID09IDApOwogCkBAIC0yMDcsNiArMjA5LDggQEAgc3RhdGljIHZvaWQg dGVzdF9ndHQoaW50IHZnZW0sIGludCBpOTE1KQogCXVpbnQzMl90ICpwdHI7CiAJaW50IGRtYWJ1 ZiwgaTsKIAorCWdlbV9yZXF1aXJlX21tYXBfZ3R0KGk5MTUpOworCiAJc2NyYXRjaC53aWR0aCA9 IDEwMjQ7CiAJc2NyYXRjaC5oZWlnaHQgPSAxMDI0OwogCXNjcmF0Y2guYnBwID0gMzI7CkBAIC0y ODIsNiArMjg2LDcgQEAgc3RhdGljIHZvaWQgdGVzdF9ndHRfaW50ZXJsZWF2ZWQoaW50IHZnZW0s IGludCBpOTE1KQogCXVpbnQzMl90ICpwdHIsICpndHQ7CiAJaW50IGRtYWJ1ZiwgaTsKIAorCWdl bV9yZXF1aXJlX21tYXBfZ3R0KGk5MTUpOwogCWlndF9yZXF1aXJlKGlzX2NvaGVyZW50KGk5MTUp KTsKIAogCXNjcmF0Y2gud2lkdGggPSAxMDI0OwotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3Qt ZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=