From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932918AbbBQDZO (ORCPT ); Mon, 16 Feb 2015 22:25:14 -0500 Received: from shadbolt.e.decadent.org.uk ([88.96.1.126]:34685 "EHLO shadbolt.e.decadent.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932551AbbBQDZE (ORCPT ); Mon, 16 Feb 2015 22:25:04 -0500 Message-ID: <1424143481.23608.52.camel@decadent.org.uk> Subject: Re: [PATCH 3.2 000/152] 3.2.67-rc1 review From: Ben Hutchings To: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org, torvalds@linux-foundation.org, Satoru Takeuchi , Guenter Roeck , Phil Jensen , akpm@linux-foundation.org Date: Tue, 17 Feb 2015 03:24:41 +0000 In-Reply-To: References: Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-ODiMOC7zXLxHpMRqJ/U/" X-Mailer: Evolution 3.12.9-1+b1 Mime-Version: 1.0 X-SA-Exim-Connect-IP: 192.168.4.249 X-SA-Exim-Mail-From: ben@decadent.org.uk X-SA-Exim-Scanned: No (on shadbolt.decadent.org.uk); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-ODiMOC7zXLxHpMRqJ/U/ Content-Type: multipart/mixed; boundary="=-YKKZT25FlElVnC0O/KMZ" --=-YKKZT25FlElVnC0O/KMZ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable This is the combined patch for 3.2.67-rc1 relative to 3.2.66. Ben. --=20 Ben Hutchings Never attribute to conspiracy what can adequately be explained by stupidity= . --=-YKKZT25FlElVnC0O/KMZ Content-Disposition: attachment; filename="linux-3.2.67-rc1.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="linux-3.2.67-rc1.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24va2VybmVsLXBhcmFtZXRlcnMudHh0IGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKaW5kZXggMWIxOTZlYS4uZjAwMDFlYiAxMDA2 NDQKLS0tIGEvRG9jdW1lbnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKKysrIGIvRG9jdW1l bnRhdGlvbi9rZXJuZWwtcGFyYW1ldGVycy50eHQKQEAgLTk0MCw2ICs5NDAsNyBAQCBieXRlcyBy ZXNwZWN0aXZlbHkuIFN1Y2ggbGV0dGVyIHN1ZmZpeGVzIGNhbiBhbHNvIGJlIGVudGlyZWx5IG9t aXR0ZWQuCiAJaTgwNDIubm90aW1lb3V0CVtIV10gSWdub3JlIHRpbWVvdXQgY29uZGl0aW9uIHNp Z25hbGxlZCBieSBjb25yb2xsZXIKIAlpODA0Mi5yZXNldAlbSFddIFJlc2V0IHRoZSBjb250cm9s bGVyIGR1cmluZyBpbml0IGFuZCBjbGVhbnVwCiAJaTgwNDIudW5sb2NrCVtIV10gVW5sb2NrIChp Z25vcmUpIHRoZSBrZXlsb2NrCisJaTgwNDIua2JkcmVzZXQgIFtIV10gUmVzZXQgZGV2aWNlIGNv bm5lY3RlZCB0byBLQkQgcG9ydAogCiAJaTgxMD0JCVtIVyxEUk1dCiAKZGlmZiAtLWdpdCBhL01h a2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggZjA4ZjhiZi4uMzM3MjQ4MCAxMDA2NDQKLS0tIGEvTWFr ZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsNyArMSw3IEBACiBWRVJTSU9OID0gMwogUEFUQ0hM RVZFTCA9IDIKLVNVQkxFVkVMID0gNjYKLUVYVFJBVkVSU0lPTiA9CitTVUJMRVZFTCA9IDY3CitF WFRSQVZFUlNJT04gPSAtcmMxCiBOQU1FID0gU2FiZXItdG9vdGhlZCBTcXVpcnJlbAogCiAjICpE T0NVTUVOVEFUSU9OKgpkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9tbS9mYXVsdC5jIGIvYXJjaC9h bHBoYS9tbS9mYXVsdC5jCmluZGV4IGZhZGQ1ZjguLmU1NzZiOTEgMTAwNjQ0Ci0tLSBhL2FyY2gv YWxwaGEvbW0vZmF1bHQuYworKysgYi9hcmNoL2FscGhhL21tL2ZhdWx0LmMKQEAgLTE1MCw2ICsx NTAsOCBAQCBkb19wYWdlX2ZhdWx0KHVuc2lnbmVkIGxvbmcgYWRkcmVzcywgdW5zaWduZWQgbG9u ZyBtbWNzciwKIAlpZiAodW5saWtlbHkoZmF1bHQgJiBWTV9GQVVMVF9FUlJPUikpIHsKIAkJaWYg KGZhdWx0ICYgVk1fRkFVTFRfT09NKQogCQkJZ290byBvdXRfb2ZfbWVtb3J5OworCQllbHNlIGlm IChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9hcmVhOwogCQllbHNlIGlm IChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykKIAkJCWdvdG8gZG9fc2lnYnVzOwogCQlCVUcoKTsK ZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21hY2gtb21hcDIvb21hcF9sM19ub2MuYyBiL2FyY2gvYXJt L21hY2gtb21hcDIvb21hcF9sM19ub2MuYwppbmRleCBkMTUyMjVmLi41Yjk2MzFmIDEwMDY0NAot LS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL29tYXBfbDNfbm9jLmMKKysrIGIvYXJjaC9hcm0vbWFj aC1vbWFwMi9vbWFwX2wzX25vYy5jCkBAIC0xMjEsMTEgKzEyMSwxNSBAQCBzdGF0aWMgaXJxcmV0 dXJuX3QgbDNfaW50ZXJydXB0X2hhbmRsZXIoaW50IGlycSwgdm9pZCAqX2wzKQogCQkJCS8qIE5v dGhpbmcgdG8gYmUgaGFuZGxlZCBoZXJlIGFzIG9mIG5vdyAqLwogCQkJCWJyZWFrOwogCQkJfQot CQkvKiBFcnJvciBmb3VuZCBzbyBicmVhayB0aGUgZm9yIGxvb3AgKi8KLQkJYnJlYWs7CisJCQkv KiBFcnJvciBmb3VuZCBzbyBicmVhayB0aGUgZm9yIGxvb3AgKi8KKwkJCXJldHVybiBJUlFfSEFO RExFRDsKIAkJfQogCX0KLQlyZXR1cm4gSVJRX0hBTkRMRUQ7CisKKwlkZXZfZXJyKGwzLT5kZXYs ICJMMyAlcyBJUlEgbm90IGhhbmRsZWQhIVxuIiwKKwkJaW50dHlwZSA/ICJkZWJ1ZyIgOiAiYXBw bGljYXRpb24iKTsKKworCXJldHVybiBJUlFfTk9ORTsKIH0KIAogc3RhdGljIGludCBfX2Rldmlu aXQgb21hcDRfbDNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKZGlmZiAtLWdp dCBhL2FyY2gvYXZyMzIvbW0vZmF1bHQuYyBiL2FyY2gvYXZyMzIvbW0vZmF1bHQuYwppbmRleCBm NzA0MGExLi42MzJiNjQ5IDEwMDY0NAotLS0gYS9hcmNoL2F2cjMyL21tL2ZhdWx0LmMKKysrIGIv YXJjaC9hdnIzMi9tbS9mYXVsdC5jCkBAIC0xMzYsNiArMTM2LDggQEAgZ29vZF9hcmVhOgogCWlm ICh1bmxpa2VseShmYXVsdCAmIFZNX0ZBVUxUX0VSUk9SKSkgewogCQlpZiAoZmF1bHQgJiBWTV9G QVVMVF9PT00pCiAJCQlnb3RvIG91dF9vZl9tZW1vcnk7CisJCWVsc2UgaWYgKGZhdWx0ICYgVk1f RkFVTFRfU0lHU0VHVikKKwkJCWdvdG8gYmFkX2FyZWE7CiAJCWVsc2UgaWYgKGZhdWx0ICYgVk1f RkFVTFRfU0lHQlVTKQogCQkJZ290byBkb19zaWdidXM7CiAJCUJVRygpOwpkaWZmIC0tZ2l0IGEv YXJjaC9jcmlzL21tL2ZhdWx0LmMgYi9hcmNoL2NyaXMvbW0vZmF1bHQuYwppbmRleCA5ZGNhYzhl Li4yODBjOGVhIDEwMDY0NAotLS0gYS9hcmNoL2NyaXMvbW0vZmF1bHQuYworKysgYi9hcmNoL2Ny aXMvbW0vZmF1bHQuYwpAQCAtMTY2LDYgKzE2Niw4IEBAIGRvX3BhZ2VfZmF1bHQodW5zaWduZWQg bG9uZyBhZGRyZXNzLCBzdHJ1Y3QgcHRfcmVncyAqcmVncywKIAlpZiAodW5saWtlbHkoZmF1bHQg JiBWTV9GQVVMVF9FUlJPUikpIHsKIAkJaWYgKGZhdWx0ICYgVk1fRkFVTFRfT09NKQogCQkJZ290 byBvdXRfb2ZfbWVtb3J5OworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1YpCisJ CQlnb3RvIGJhZF9hcmVhOwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykKIAkJ CWdvdG8gZG9fc2lnYnVzOwogCQlCVUcoKTsKZGlmZiAtLWdpdCBhL2FyY2gvZnJ2L21tL2ZhdWx0 LmMgYi9hcmNoL2Zydi9tbS9mYXVsdC5jCmluZGV4IGEzMjVkNTcuLjQ2YTNjMTggMTAwNjQ0Ci0t LSBhL2FyY2gvZnJ2L21tL2ZhdWx0LmMKKysrIGIvYXJjaC9mcnYvbW0vZmF1bHQuYwpAQCAtMTY3 LDYgKzE2Nyw4IEBAIGFzbWxpbmthZ2Ugdm9pZCBkb19wYWdlX2ZhdWx0KGludCBkYXRhbW11LCB1 bnNpZ25lZCBsb25nIGVzcjAsIHVuc2lnbmVkIGxvbmcgZWFyCiAJaWYgKHVubGlrZWx5KGZhdWx0 ICYgVk1fRkFVTFRfRVJST1IpKSB7CiAJCWlmIChmYXVsdCAmIFZNX0ZBVUxUX09PTSkKIAkJCWdv dG8gb3V0X29mX21lbW9yeTsKKwkJZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdTRUdWKQor CQkJZ290byBiYWRfYXJlYTsKIAkJZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdCVVMpCiAJ CQlnb3RvIGRvX3NpZ2J1czsKIAkJQlVHKCk7CmRpZmYgLS1naXQgYS9hcmNoL2lhNjQvbW0vZmF1 bHQuYyBiL2FyY2gvaWE2NC9tbS9mYXVsdC5jCmluZGV4IDIwYjM1OTMuLjFlMzYyY2QgMTAwNjQ0 Ci0tLSBhL2FyY2gvaWE2NC9tbS9mYXVsdC5jCisrKyBiL2FyY2gvaWE2NC9tbS9mYXVsdC5jCkBA IC0xNjMsNiArMTYzLDggQEAgaWE2NF9kb19wYWdlX2ZhdWx0ICh1bnNpZ25lZCBsb25nIGFkZHJl c3MsIHVuc2lnbmVkIGxvbmcgaXNyLCBzdHJ1Y3QgcHRfcmVncyAqcmUKIAkJICovCiAJCWlmIChm YXVsdCAmIFZNX0ZBVUxUX09PTSkgewogCQkJZ290byBvdXRfb2ZfbWVtb3J5OworCQl9IGVsc2Ug aWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikgeworCQkJZ290byBiYWRfYXJlYTsKIAkJfSBl bHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykgewogCQkJc2lnbmFsID0gU0lHQlVTOwog CQkJZ290byBiYWRfYXJlYTsKZGlmZiAtLWdpdCBhL2FyY2gvbTMyci9tbS9mYXVsdC5jIGIvYXJj aC9tMzJyL21tL2ZhdWx0LmMKaW5kZXggMmM5YWViNC4uYmVkYTljYyAxMDA2NDQKLS0tIGEvYXJj aC9tMzJyL21tL2ZhdWx0LmMKKysrIGIvYXJjaC9tMzJyL21tL2ZhdWx0LmMKQEAgLTE5OSw2ICsx OTksOCBAQCBnb29kX2FyZWE6CiAJaWYgKHVubGlrZWx5KGZhdWx0ICYgVk1fRkFVTFRfRVJST1Ip KSB7CiAJCWlmIChmYXVsdCAmIFZNX0ZBVUxUX09PTSkKIAkJCWdvdG8gb3V0X29mX21lbW9yeTsK KwkJZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdTRUdWKQorCQkJZ290byBiYWRfYXJlYTsK IAkJZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdCVVMpCiAJCQlnb3RvIGRvX3NpZ2J1czsK IAkJQlVHKCk7CmRpZmYgLS1naXQgYS9hcmNoL202OGsvbW0vZmF1bHQuYyBiL2FyY2gvbTY4ay9t bS9mYXVsdC5jCmluZGV4IDJkYjYwOTkuLmQ2MDViOTMgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9t bS9mYXVsdC5jCisrKyBiL2FyY2gvbTY4ay9tbS9mYXVsdC5jCkBAIC0xNDcsNiArMTQ3LDggQEAg Z29vZF9hcmVhOgogCWlmICh1bmxpa2VseShmYXVsdCAmIFZNX0ZBVUxUX0VSUk9SKSkgewogCQlp ZiAoZmF1bHQgJiBWTV9GQVVMVF9PT00pCiAJCQlnb3RvIG91dF9vZl9tZW1vcnk7CisJCWVsc2Ug aWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikKKwkJCWdvdG8gbWFwX2VycjsKIAkJZWxzZSBp ZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdCVVMpCiAJCQlnb3RvIGJ1c19lcnI7CiAJCUJVRygpOwpk aWZmIC0tZ2l0IGEvYXJjaC9taWNyb2JsYXplL21tL2ZhdWx0LmMgYi9hcmNoL21pY3JvYmxhemUv bW0vZmF1bHQuYwppbmRleCBhZTk3ZDJjLi4zMWJiMzgxIDEwMDY0NAotLS0gYS9hcmNoL21pY3Jv YmxhemUvbW0vZmF1bHQuYworKysgYi9hcmNoL21pY3JvYmxhemUvbW0vZmF1bHQuYwpAQCAtMjE1 LDYgKzIxNSw4IEBAIGdvb2RfYXJlYToKIAlpZiAodW5saWtlbHkoZmF1bHQgJiBWTV9GQVVMVF9F UlJPUikpIHsKIAkJaWYgKGZhdWx0ICYgVk1fRkFVTFRfT09NKQogCQkJZ290byBvdXRfb2ZfbWVt b3J5OworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9h cmVhOwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykKIAkJCWdvdG8gZG9fc2ln YnVzOwogCQlCVUcoKTsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9mYXVsdC5jIGIvYXJjaC9t aXBzL21tL2ZhdWx0LmMKaW5kZXggOTM3Y2YzMy4uYjgzMTRjZmUgMTAwNjQ0Ci0tLSBhL2FyY2gv bWlwcy9tbS9mYXVsdC5jCisrKyBiL2FyY2gvbWlwcy9tbS9mYXVsdC5jCkBAIC0xNDksNiArMTQ5 LDggQEAgZ29vZF9hcmVhOgogCWlmICh1bmxpa2VseShmYXVsdCAmIFZNX0ZBVUxUX0VSUk9SKSkg ewogCQlpZiAoZmF1bHQgJiBWTV9GQVVMVF9PT00pCiAJCQlnb3RvIG91dF9vZl9tZW1vcnk7CisJ CWVsc2UgaWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikKKwkJCWdvdG8gYmFkX2FyZWE7CiAJ CWVsc2UgaWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHQlVTKQogCQkJZ290byBkb19zaWdidXM7CiAJ CUJVRygpOwpkaWZmIC0tZ2l0IGEvYXJjaC9tbjEwMzAwL21tL2ZhdWx0LmMgYi9hcmNoL21uMTAz MDAvbW0vZmF1bHQuYwppbmRleCAwOTQ1NDA5Li5mZTJjZWI3IDEwMDY0NAotLS0gYS9hcmNoL21u MTAzMDAvbW0vZmF1bHQuYworKysgYi9hcmNoL21uMTAzMDAvbW0vZmF1bHQuYwpAQCAtMjU2LDYg KzI1Niw4IEBAIGdvb2RfYXJlYToKIAlpZiAodW5saWtlbHkoZmF1bHQgJiBWTV9GQVVMVF9FUlJP UikpIHsKIAkJaWYgKGZhdWx0ICYgVk1fRkFVTFRfT09NKQogCQkJZ290byBvdXRfb2ZfbWVtb3J5 OworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9hcmVh OwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykKIAkJCWdvdG8gZG9fc2lnYnVz OwogCQlCVUcoKTsKZGlmZiAtLWdpdCBhL2FyY2gvb3BlbnJpc2MvbW0vZmF1bHQuYyBiL2FyY2gv b3BlbnJpc2MvbW0vZmF1bHQuYwppbmRleCBhNWRjZTgyLi4xNjJhYmZiIDEwMDY0NAotLS0gYS9h cmNoL29wZW5yaXNjL21tL2ZhdWx0LmMKKysrIGIvYXJjaC9vcGVucmlzYy9tbS9mYXVsdC5jCkBA IC0xNjMsNiArMTYzLDggQEAgZ29vZF9hcmVhOgogCWlmICh1bmxpa2VseShmYXVsdCAmIFZNX0ZB VUxUX0VSUk9SKSkgewogCQlpZiAoZmF1bHQgJiBWTV9GQVVMVF9PT00pCiAJCQlnb3RvIG91dF9v Zl9tZW1vcnk7CisJCWVsc2UgaWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikKKwkJCWdvdG8g YmFkX2FyZWE7CiAJCWVsc2UgaWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHQlVTKQogCQkJZ290byBk b19zaWdidXM7CiAJCUJVRygpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wYXJpc2MvbW0vZmF1bHQuYyBi L2FyY2gvcGFyaXNjL21tL2ZhdWx0LmMKaW5kZXggMTgxNjJjZS4uYTliNzY1YSAxMDA2NDQKLS0t IGEvYXJjaC9wYXJpc2MvbW0vZmF1bHQuYworKysgYi9hcmNoL3BhcmlzYy9tbS9mYXVsdC5jCkBA IC0yMTAsNiArMjEwLDggQEAgZ29vZF9hcmVhOgogCQkgKi8KIAkJaWYgKGZhdWx0ICYgVk1fRkFV TFRfT09NKQogCQkJZ290byBvdXRfb2ZfbWVtb3J5OworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZB VUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9hcmVhOwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZB VUxUX1NJR0JVUykKIAkJCWdvdG8gYmFkX2FyZWE7CiAJCUJVRygpOwpkaWZmIC0tZ2l0IGEvYXJj aC9wb3dlcnBjL21tL2ZhdWx0LmMgYi9hcmNoL3Bvd2VycGMvbW0vZmF1bHQuYwppbmRleCA1ZWZl OGM5Li43NDUwODQzIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvbW0vZmF1bHQuYworKysgYi9h cmNoL3Bvd2VycGMvbW0vZmF1bHQuYwpAQCAtMzEyLDYgKzMxMiw4IEBAIGdvb2RfYXJlYToKIAkg Ki8KIAlyZXQgPSBoYW5kbGVfbW1fZmF1bHQobW0sIHZtYSwgYWRkcmVzcywgaXNfd3JpdGUgPyBG QVVMVF9GTEFHX1dSSVRFIDogMCk7CiAJaWYgKHVubGlrZWx5KHJldCAmIFZNX0ZBVUxUX0VSUk9S KSkgeworCQlpZiAocmV0ICYgVk1fRkFVTFRfU0lHU0VHVikKKwkJCWdvdG8gYmFkX2FyZWE7CiAJ CWlmIChyZXQgJiBWTV9GQVVMVF9PT00pCiAJCQlnb3RvIG91dF9vZl9tZW1vcnk7CiAJCWVsc2Ug aWYgKHJldCAmIFZNX0ZBVUxUX1NJR0JVUykKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9wbGF0 Zm9ybXMvY2VsbC9zcHVfZmF1bHQuYyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvY2VsbC9zcHVf ZmF1bHQuYwppbmRleCA2NDFlNzI3Li42MmYzZTRlIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMv cGxhdGZvcm1zL2NlbGwvc3B1X2ZhdWx0LmMKKysrIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9j ZWxsL3NwdV9mYXVsdC5jCkBAIC03NSw3ICs3NSw3IEBAIGludCBzcHVfaGFuZGxlX21tX2ZhdWx0 KHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCB1bnNpZ25lZCBsb25nIGVhLAogCQlpZiAoKmZsdCAmIFZN X0ZBVUxUX09PTSkgewogCQkJcmV0ID0gLUVOT01FTTsKIAkJCWdvdG8gb3V0X3VubG9jazsKLQkJ fSBlbHNlIGlmICgqZmx0ICYgVk1fRkFVTFRfU0lHQlVTKSB7CisJCX0gZWxzZSBpZiAoKmZsdCAm IChWTV9GQVVMVF9TSUdCVVMgfCBWTV9GQVVMVF9TSUdTRUdWKSkgewogCQkJcmV0ID0gLUVGQVVM VDsKIAkJCWdvdG8gb3V0X3VubG9jazsKIAkJfQpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0 by9hZXNfczM5MC5jIGIvYXJjaC9zMzkwL2NyeXB0by9hZXNfczM5MC5jCmluZGV4IDUxZmIxZWYu LjA1ZDA4YzggMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9jcnlwdG8vYWVzX3MzOTAuYworKysgYi9h cmNoL3MzOTAvY3J5cHRvL2Flc19zMzkwLmMKQEAgLTk3Miw3ICs5NzIsNyBAQCBzdGF0aWMgdm9p ZCBfX2V4aXQgYWVzX3MzOTBfZmluaSh2b2lkKQogbW9kdWxlX2luaXQoYWVzX3MzOTBfaW5pdCk7 CiBtb2R1bGVfZXhpdChhZXNfczM5MF9maW5pKTsKIAotTU9EVUxFX0FMSUFTKCJhZXMtYWxsIik7 CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJhZXMtYWxsIik7CiAKIE1PRFVMRV9ERVNDUklQVElPTigi UmlqbmRhZWwgKEFFUykgQ2lwaGVyIEFsZ29yaXRobSIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9kZXNfczM5MC5jIGIvYXJjaC9zMzkwL2Ny eXB0by9kZXNfczM5MC5jCmluZGV4IDk5MWZiN2QuLjI4ZTMzNmEgMTAwNjQ0Ci0tLSBhL2FyY2gv czM5MC9jcnlwdG8vZGVzX3MzOTAuYworKysgYi9hcmNoL3MzOTAvY3J5cHRvL2Rlc19zMzkwLmMK QEAgLTYyNiw4ICs2MjYsOCBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgZGVzX3MzOTBfZXhpdCh2b2lk KQogbW9kdWxlX2luaXQoZGVzX3MzOTBfaW5pdCk7CiBtb2R1bGVfZXhpdChkZXNfczM5MF9leGl0 KTsKIAotTU9EVUxFX0FMSUFTKCJkZXMiKTsKLU1PRFVMRV9BTElBUygiZGVzM19lZGUiKTsKK01P RFVMRV9BTElBU19DUllQVE8oImRlcyIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiZGVzM19lZGUi KTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJERVMgJiBU cmlwbGUgREVTIEVERSBDaXBoZXIgQWxnb3JpdGhtcyIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkw L2NyeXB0by9naGFzaF9zMzkwLmMgYi9hcmNoL3MzOTAvY3J5cHRvL2doYXNoX3MzOTAuYwppbmRl eCBmNjM3M2YwLi4zMTA4NmVhIDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvY3J5cHRvL2doYXNoX3Mz OTAuYworKysgYi9hcmNoL3MzOTAvY3J5cHRvL2doYXNoX3MzOTAuYwpAQCAtMTYxLDcgKzE2MSw3 IEBAIHN0YXRpYyB2b2lkIF9fZXhpdCBnaGFzaF9tb2RfZXhpdCh2b2lkKQogbW9kdWxlX2luaXQo Z2hhc2hfbW9kX2luaXQpOwogbW9kdWxlX2V4aXQoZ2hhc2hfbW9kX2V4aXQpOwogCi1NT0RVTEVf QUxJQVMoImdoYXNoIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJnaGFzaCIpOwogCiBNT0RVTEVf TElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkdIQVNIIE1lc3NhZ2UgRGlnZXN0 IEFsZ29yaXRobSwgczM5MCBpbXBsZW1lbnRhdGlvbiIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkw L2NyeXB0by9zaGExX3MzOTAuYyBiL2FyY2gvczM5MC9jcnlwdG8vc2hhMV9zMzkwLmMKaW5kZXgg ZTk4NjhjNi4uNDg0YzI3YyAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2NyeXB0by9zaGExX3MzOTAu YworKysgYi9hcmNoL3MzOTAvY3J5cHRvL3NoYTFfczM5MC5jCkBAIC0xMDMsNiArMTAzLDYgQEAg c3RhdGljIHZvaWQgX19leGl0IHNoYTFfczM5MF9maW5pKHZvaWQpCiBtb2R1bGVfaW5pdChzaGEx X3MzOTBfaW5pdCk7CiBtb2R1bGVfZXhpdChzaGExX3MzOTBfZmluaSk7CiAKLU1PRFVMRV9BTElB Uygic2hhMSIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2hhMSIpOwogTU9EVUxFX0xJQ0VOU0Uo IkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJTSEExIFNlY3VyZSBIYXNoIEFsZ29yaXRobSIp OwpkaWZmIC0tZ2l0IGEvYXJjaC9zMzkwL2NyeXB0by9zaGEyNTZfczM5MC5jIGIvYXJjaC9zMzkw L2NyeXB0by9zaGEyNTZfczM5MC5jCmluZGV4IDAzMTdhMzUuLmFmMzEwMTggMTAwNjQ0Ci0tLSBh L2FyY2gvczM5MC9jcnlwdG8vc2hhMjU2X3MzOTAuYworKysgYi9hcmNoL3MzOTAvY3J5cHRvL3No YTI1Nl9zMzkwLmMKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgc2hhMjU2 X3MzOTBfZmluaSh2b2lkKQogbW9kdWxlX2luaXQoc2hhMjU2X3MzOTBfaW5pdCk7CiBtb2R1bGVf ZXhpdChzaGEyNTZfczM5MF9maW5pKTsKIAotTU9EVUxFX0FMSUFTKCJzaGEyNTYiKTsKLU1PRFVM RV9BTElBUygic2hhMjI0Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGEyNTYiKTsKK01PRFVM RV9BTElBU19DUllQVE8oInNoYTIyNCIpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxF X0RFU0NSSVBUSU9OKCJTSEEyNTYgYW5kIFNIQTIyNCBTZWN1cmUgSGFzaCBBbGdvcml0aG0iKTsK ZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9jcnlwdG8vc2hhNTEyX3MzOTAuYyBiL2FyY2gvczM5MC9j cnlwdG8vc2hhNTEyX3MzOTAuYwppbmRleCAzMmE4MTM4Li4wYzM2OTg5IDEwMDY0NAotLS0gYS9h cmNoL3MzOTAvY3J5cHRvL3NoYTUxMl9zMzkwLmMKKysrIGIvYXJjaC9zMzkwL2NyeXB0by9zaGE1 MTJfczM5MC5jCkBAIC04Niw3ICs4Niw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2hhc2hfYWxnIHNoYTUx Ml9hbGcgPSB7CiAJfQogfTsKIAotTU9EVUxFX0FMSUFTKCJzaGE1MTIiKTsKK01PRFVMRV9BTElB U19DUllQVE8oInNoYTUxMiIpOwogCiBzdGF0aWMgaW50IHNoYTM4NF9pbml0KHN0cnVjdCBzaGFz aF9kZXNjICpkZXNjKQogewpAQCAtMTI2LDcgKzEyNiw3IEBAIHN0YXRpYyBzdHJ1Y3Qgc2hhc2hf YWxnIHNoYTM4NF9hbGcgPSB7CiAJfQogfTsKIAotTU9EVUxFX0FMSUFTKCJzaGEzODQiKTsKK01P RFVMRV9BTElBU19DUllQVE8oInNoYTM4NCIpOwogCiBzdGF0aWMgaW50IF9faW5pdCBpbml0KHZv aWQpCiB7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAva3ZtL2ludGVyY2VwdC5jIGIvYXJjaC9zMzkw L2t2bS9pbnRlcmNlcHQuYwppbmRleCBhNWY2ZWZmLi5iYzQ4NmQwIDEwMDY0NAotLS0gYS9hcmNo L3MzOTAva3ZtL2ludGVyY2VwdC5jCisrKyBiL2FyY2gvczM5MC9rdm0vaW50ZXJjZXB0LmMKQEAg LTU4LDYgKzU4LDcgQEAgc3RhdGljIGludCBoYW5kbGVfbGN0bGcoc3RydWN0IGt2bV92Y3B1ICp2 Y3B1KQogCQkJYnJlYWs7CiAJCXJlZyA9IChyZWcgKyAxKSAlIDE2OwogCX0gd2hpbGUgKDEpOwor CWt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9UTEJfRkxVU0gsIHZjcHUpOwogCXJldHVybiAwOwog fQogCkBAIC05Nyw2ICs5OCw3IEBAIHN0YXRpYyBpbnQgaGFuZGxlX2xjdGwoc3RydWN0IGt2bV92 Y3B1ICp2Y3B1KQogCQkJYnJlYWs7CiAJCXJlZyA9IChyZWcgKyAxKSAlIDE2OwogCX0gd2hpbGUg KDEpOworCWt2bV9tYWtlX3JlcXVlc3QoS1ZNX1JFUV9UTEJfRkxVU0gsIHZjcHUpOwogCXJldHVy biAwOwogfQogCmRpZmYgLS1naXQgYS9hcmNoL3MzOTAvbW0vZmF1bHQuYyBiL2FyY2gvczM5MC9t bS9mYXVsdC5jCmluZGV4IDBmYzBhN2UuLmI1MzMzOWQgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9t bS9mYXVsdC5jCisrKyBiL2FyY2gvczM5MC9tbS9mYXVsdC5jCkBAIC0yNDksNiArMjQ5LDEzIEBA IHN0YXRpYyBub2lubGluZSB2b2lkIGRvX2ZhdWx0X2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdz LCBsb25nIGludF9jb2RlLAogCQkJCWRvX25vX2NvbnRleHQocmVncywgaW50X2NvZGUsIHRyYW5z X2V4Y19jb2RlKTsKIAkJCWVsc2UKIAkJCQlwYWdlZmF1bHRfb3V0X29mX21lbW9yeSgpOworCQl9 IGVsc2UgaWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikgeworCQkJLyogS2VybmVsIG1vZGU/ IEhhbmRsZSBleGNlcHRpb25zIG9yIGRpZSAqLworCQkJaWYgKCF1c2VyX21vZGUocmVncykpCisJ CQkJZG9fbm9fY29udGV4dChyZWdzLCBpbnRfY29kZSwgdHJhbnNfZXhjX2NvZGUpOworCQkJZWxz ZQorCQkJCWRvX3NpZ3NlZ3YocmVncywgaW50X2NvZGUsIFNFR1ZfTUFQRVJSLAorCQkJCQkgICB0 cmFuc19leGNfY29kZSk7CiAJCX0gZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdCVVMpIHsK IAkJCS8qIEtlcm5lbCBtb2RlPyBIYW5kbGUgZXhjZXB0aW9ucyBvciBkaWUgKi8KIAkJCWlmICgh KHJlZ3MtPnBzdy5tYXNrICYgUFNXX01BU0tfUFNUQVRFKSkKZGlmZiAtLWdpdCBhL2FyY2gvc2Nv cmUvbW0vZmF1bHQuYyBiL2FyY2gvc2NvcmUvbW0vZmF1bHQuYwppbmRleCA0N2I2MDBlLi5iMzc0 NGNhIDEwMDY0NAotLS0gYS9hcmNoL3Njb3JlL21tL2ZhdWx0LmMKKysrIGIvYXJjaC9zY29yZS9t bS9mYXVsdC5jCkBAIC0xMTAsNiArMTEwLDggQEAgc3Vydml2ZToKIAlpZiAodW5saWtlbHkoZmF1 bHQgJiBWTV9GQVVMVF9FUlJPUikpIHsKIAkJaWYgKGZhdWx0ICYgVk1fRkFVTFRfT09NKQogCQkJ Z290byBvdXRfb2ZfbWVtb3J5OworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1Yp CisJCQlnb3RvIGJhZF9hcmVhOwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykK IAkJCWdvdG8gZG9fc2lnYnVzOwogCQlCVUcoKTsKZGlmZiAtLWdpdCBhL2FyY2gvc2gvbW0vZmF1 bHRfMzIuYyBiL2FyY2gvc2gvbW0vZmF1bHRfMzIuYwppbmRleCA3YmViZDA0Li5kYjE0NDgyIDEw MDY0NAotLS0gYS9hcmNoL3NoL21tL2ZhdWx0XzMyLmMKKysrIGIvYXJjaC9zaC9tbS9mYXVsdF8z Mi5jCkBAIC0yMDYsNiArMjA2LDggQEAgZ29vZF9hcmVhOgogCQkJZ290byBvdXRfb2ZfbWVtb3J5 OwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykKIAkJCWdvdG8gZG9fc2lnYnVz OworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9hcmVh OwogCQlCVUcoKTsKIAl9CiAJaWYgKGZhdWx0ICYgVk1fRkFVTFRfTUFKT1IpIHsKZGlmZiAtLWdp dCBhL2FyY2gvc2gvbW0vdGxiZmx1c2hfNjQuYyBiL2FyY2gvc2gvbW0vdGxiZmx1c2hfNjQuYwpp bmRleCBlMzQzMGUwLi40M2VlZjdiIDEwMDY0NAotLS0gYS9hcmNoL3NoL21tL3RsYmZsdXNoXzY0 LmMKKysrIGIvYXJjaC9zaC9tbS90bGJmbHVzaF82NC5jCkBAIC0xOTUsNiArMTk1LDggQEAgZ29v ZF9hcmVhOgogCQkJZ290byBvdXRfb2ZfbWVtb3J5OwogCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZB VUxUX1NJR0JVUykKIAkJCWdvdG8gZG9fc2lnYnVzOworCQllbHNlIGlmIChmYXVsdCAmIFZNX0ZB VUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9hcmVhOwogCQlCVUcoKTsKIAl9CiAKZGlmZiAtLWdp dCBhL2FyY2gvc3BhcmMvbW0vZmF1bHRfMzIuYyBiL2FyY2gvc3BhcmMvbW0vZmF1bHRfMzIuYwpp bmRleCA4MDIzZmQ3Li44MDJiODA2IDEwMDY0NAotLS0gYS9hcmNoL3NwYXJjL21tL2ZhdWx0XzMy LmMKKysrIGIvYXJjaC9zcGFyYy9tbS9mYXVsdF8zMi5jCkBAIC0yOTQsNiArMjk0LDggQEAgZ29v ZF9hcmVhOgogCWlmICh1bmxpa2VseShmYXVsdCAmIFZNX0ZBVUxUX0VSUk9SKSkgewogCQlpZiAo ZmF1bHQgJiBWTV9GQVVMVF9PT00pCiAJCQlnb3RvIG91dF9vZl9tZW1vcnk7CisJCWVsc2UgaWYg KGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikKKwkJCWdvdG8gYmFkX2FyZWE7CiAJCWVsc2UgaWYg KGZhdWx0ICYgVk1fRkFVTFRfU0lHQlVTKQogCQkJZ290byBkb19zaWdidXM7CiAJCUJVRygpOwpk aWZmIC0tZ2l0IGEvYXJjaC9zcGFyYy9tbS9mYXVsdF82NC5jIGIvYXJjaC9zcGFyYy9tbS9mYXVs dF82NC5jCmluZGV4IDJjMGI5NjYuLmJmZDdjMDIgMTAwNjQ0Ci0tLSBhL2FyY2gvc3BhcmMvbW0v ZmF1bHRfNjQuYworKysgYi9hcmNoL3NwYXJjL21tL2ZhdWx0XzY0LmMKQEAgLTQzNSw2ICs0MzUs OCBAQCBnb29kX2FyZWE6CiAJaWYgKHVubGlrZWx5KGZhdWx0ICYgVk1fRkFVTFRfRVJST1IpKSB7 CiAJCWlmIChmYXVsdCAmIFZNX0ZBVUxUX09PTSkKIAkJCWdvdG8gb3V0X29mX21lbW9yeTsKKwkJ ZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdTRUdWKQorCQkJZ290byBiYWRfYXJlYTsKIAkJ ZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdCVVMpCiAJCQlnb3RvIGRvX3NpZ2J1czsKIAkJ QlVHKCk7CmRpZmYgLS1naXQgYS9hcmNoL3RpbGUvbW0vZmF1bHQuYyBiL2FyY2gvdGlsZS9tbS9m YXVsdC5jCmluZGV4IDI1YjdiOTAuLmM3OTZjZTQ0IDEwMDY0NAotLS0gYS9hcmNoL3RpbGUvbW0v ZmF1bHQuYworKysgYi9hcmNoL3RpbGUvbW0vZmF1bHQuYwpAQCAtNDI0LDYgKzQyNCw4IEBAIGdv b2RfYXJlYToKIAlpZiAodW5saWtlbHkoZmF1bHQgJiBWTV9GQVVMVF9FUlJPUikpIHsKIAkJaWYg KGZhdWx0ICYgVk1fRkFVTFRfT09NKQogCQkJZ290byBvdXRfb2ZfbWVtb3J5OworCQllbHNlIGlm IChmYXVsdCAmIFZNX0ZBVUxUX1NJR1NFR1YpCisJCQlnb3RvIGJhZF9hcmVhOwogCQllbHNlIGlm IChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykKIAkJCWdvdG8gZG9fc2lnYnVzOwogCQlCVUcoKTsK ZGlmZiAtLWdpdCBhL2FyY2gvdW0va2VybmVsL3RyYXAuYyBiL2FyY2gvdW0va2VybmVsL3RyYXAu YwppbmRleCBkYWZjOTQ3Li5mNzlmZmM5IDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC90cmFw LmMKKysrIGIvYXJjaC91bS9rZXJuZWwvdHJhcC5jCkBAIC02OSw2ICs2OSw4IEBAIGdvb2RfYXJl YToKIAkJaWYgKHVubGlrZWx5KGZhdWx0ICYgVk1fRkFVTFRfRVJST1IpKSB7CiAJCQlpZiAoZmF1 bHQgJiBWTV9GQVVMVF9PT00pIHsKIAkJCQlnb3RvIG91dF9vZl9tZW1vcnk7CisJCQl9IGVsc2Ug aWYgKGZhdWx0ICYgVk1fRkFVTFRfU0lHU0VHVikgeworCQkJCWdvdG8gb3V0OwogCQkJfSBlbHNl IGlmIChmYXVsdCAmIFZNX0ZBVUxUX1NJR0JVUykgewogCQkJCWVyciA9IC1FQUNDRVM7CiAJCQkJ Z290byBvdXQ7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vYWVzX2dsdWUuYyBiL2FyY2gv eDg2L2NyeXB0by9hZXNfZ2x1ZS5jCmluZGV4IDhlZmNmNDIuLjg5NTBlMGMgMTAwNjQ0Ci0tLSBh L2FyY2gveDg2L2NyeXB0by9hZXNfZ2x1ZS5jCisrKyBiL2FyY2gveDg2L2NyeXB0by9hZXNfZ2x1 ZS5jCkBAIC02Nyw1ICs2Nyw1IEBAIG1vZHVsZV9leGl0KGFlc19maW5pKTsKIAogTU9EVUxFX0RF U0NSSVBUSU9OKCJSaWpuZGFlbCAoQUVTKSBDaXBoZXIgQWxnb3JpdGhtLCBhc20gb3B0aW1pemVk Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7Ci1NT0RVTEVfQUxJQVMoImFlcyIpOwotTU9EVUxF X0FMSUFTKCJhZXMtYXNtIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJhZXMiKTsKK01PRFVMRV9B TElBU19DUllQVE8oImFlcy1hc20iKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0by9hZXNu aS1pbnRlbF9nbHVlLmMgYi9hcmNoL3g4Ni9jcnlwdG8vYWVzbmktaW50ZWxfZ2x1ZS5jCmluZGV4 IDU0NWQwY2UuLjE2YWNmNjggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9hZXNuaS1pbnRl bF9nbHVlLmMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2Flc25pLWludGVsX2dsdWUuYwpAQCAtMTM4 MCw0ICsxMzgwLDQgQEAgbW9kdWxlX2V4aXQoYWVzbmlfZXhpdCk7CiAKIE1PRFVMRV9ERVNDUklQ VElPTigiUmlqbmRhZWwgKEFFUykgQ2lwaGVyIEFsZ29yaXRobSwgSW50ZWwgQUVTLU5JIGluc3Ry dWN0aW9ucyBvcHRpbWl6ZWQiKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKLU1PRFVMRV9BTElB UygiYWVzIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJhZXMiKTsKZGlmZiAtLWdpdCBhL2FyY2gv eDg2L2NyeXB0by9ibG93ZmlzaF9nbHVlLmMgYi9hcmNoL3g4Ni9jcnlwdG8vYmxvd2Zpc2hfZ2x1 ZS5jCmluZGV4IGIwNWFhMTYuLmY4MzUwZDIgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9i bG93ZmlzaF9nbHVlLmMKKysrIGIvYXJjaC94ODYvY3J5cHRvL2Jsb3dmaXNoX2dsdWUuYwpAQCAt NDg4LDUgKzQ4OCw1IEBAIG1vZHVsZV9leGl0KGZpbmkpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BM Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkJsb3dmaXNoIENpcGhlciBBbGdvcml0aG0sIGFzbSBv cHRpbWl6ZWQiKTsKLU1PRFVMRV9BTElBUygiYmxvd2Zpc2giKTsKLU1PRFVMRV9BTElBUygiYmxv d2Zpc2gtYXNtIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJibG93ZmlzaCIpOworTU9EVUxFX0FM SUFTX0NSWVBUTygiYmxvd2Zpc2gtYXNtIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8v Y3JjMzJjLWludGVsLmMgYi9hcmNoL3g4Ni9jcnlwdG8vY3JjMzJjLWludGVsLmMKaW5kZXggYjlk MDAyNi4uN2RhZDcwMCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2NyYzMyYy1pbnRlbC5j CisrKyBiL2FyY2gveDg2L2NyeXB0by9jcmMzMmMtaW50ZWwuYwpAQCAtMTk0LDUgKzE5NCw1IEBA IE1PRFVMRV9BVVRIT1IoIkF1c3RpbiBaaGFuZyA8YXVzdGluLnpoYW5nQGludGVsLmNvbT4sIEtl bnQgTGl1IDxrZW50LmxpdUBpbnRlbC5jCiBNT0RVTEVfREVTQ1JJUFRJT04oIkNSQzMyYyAoQ2Fz dGFnbm9saSkgb3B0aW1pemF0aW9uIHVzaW5nIEludGVsIEhhcmR3YXJlLiIpOwogTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwogCi1NT0RVTEVfQUxJQVMoImNyYzMyYyIpOwotTU9EVUxFX0FMSUFTKCJj cmMzMmMtaW50ZWwiKTsKK01PRFVMRV9BTElBU19DUllQVE8oImNyYzMyYyIpOworTU9EVUxFX0FM SUFTX0NSWVBUTygiY3JjMzJjLWludGVsIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8v ZnB1LmMgYi9hcmNoL3g4Ni9jcnlwdG8vZnB1LmMKaW5kZXggOThkN2ExOC4uZjM2OGJhMiAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRvL2ZwdS5jCisrKyBiL2FyY2gveDg2L2NyeXB0by9mcHUu YwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgogI2luY2x1ZGUg PGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlIDxsaW51 eC9jcnlwdG8uaD4KICNpbmNsdWRlIDxhc20vaTM4Ny5oPgogCiBzdHJ1Y3QgY3J5cHRvX2ZwdV9j dHggewpAQCAtMTU5LDMgKzE2MCw1IEBAIHZvaWQgX19leGl0IGNyeXB0b19mcHVfZXhpdCh2b2lk KQogewogCWNyeXB0b191bnJlZ2lzdGVyX3RlbXBsYXRlKCZjcnlwdG9fZnB1X3RtcGwpOwogfQor CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJmcHUiKTsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2NyeXB0 by9naGFzaC1jbG11bG5pLWludGVsX2dsdWUuYyBiL2FyY2gveDg2L2NyeXB0by9naGFzaC1jbG11 bG5pLWludGVsX2dsdWUuYwppbmRleCAyOTRhMjY0Li5mNzgxMjUxIDEwMDY0NAotLS0gYS9hcmNo L3g4Ni9jcnlwdG8vZ2hhc2gtY2xtdWxuaS1pbnRlbF9nbHVlLmMKKysrIGIvYXJjaC94ODYvY3J5 cHRvL2doYXNoLWNsbXVsbmktaW50ZWxfZ2x1ZS5jCkBAIC0zMzksNCArMzM5LDQgQEAgbW9kdWxl X2V4aXQoZ2hhc2hfcGNsbXVscWRxbmlfbW9kX2V4aXQpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIp OwogTU9EVUxFX0RFU0NSSVBUSU9OKCJHSEFTSCBNZXNzYWdlIERpZ2VzdCBBbGdvcml0aG0sICIK IAkJICAgImFjY2xlcmF0ZWQgYnkgUENMTVVMUURRLU5JIik7Ci1NT0RVTEVfQUxJQVMoImdoYXNo Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJnaGFzaCIpOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYv Y3J5cHRvL3NhbHNhMjBfZ2x1ZS5jIGIvYXJjaC94ODYvY3J5cHRvL3NhbHNhMjBfZ2x1ZS5jCmlu ZGV4IGJjY2I3NmQuLmFlMWVlMzcgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by9zYWxzYTIw X2dsdWUuYworKysgYi9hcmNoL3g4Ni9jcnlwdG8vc2Fsc2EyMF9nbHVlLmMKQEAgLTEyNSw1ICsx MjUsNSBAQCBtb2R1bGVfZXhpdChmaW5pKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9E VUxFX0RFU0NSSVBUSU9OICgiU2Fsc2EyMCBzdHJlYW0gY2lwaGVyIGFsZ29yaXRobSAob3B0aW1p emVkIGFzc2VtYmx5IHZlcnNpb24pIik7Ci1NT0RVTEVfQUxJQVMoInNhbHNhMjAiKTsKLU1PRFVM RV9BTElBUygic2Fsc2EyMC1hc20iKTsKK01PRFVMRV9BTElBU19DUllQVE8oInNhbHNhMjAiKTsK K01PRFVMRV9BTElBU19DUllQVE8oInNhbHNhMjAtYXNtIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni9jcnlwdG8vc2hhMV9zc3NlM19nbHVlLmMgYi9hcmNoL3g4Ni9jcnlwdG8vc2hhMV9zc3NlM19n bHVlLmMKaW5kZXggZjkxNjQ5OS4uNDliMTEyZSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5cHRv L3NoYTFfc3NzZTNfZ2x1ZS5jCisrKyBiL2FyY2gveDg2L2NyeXB0by9zaGExX3Nzc2UzX2dsdWUu YwpAQCAtMjM3LDQgKzIzNyw0IEBAIG1vZHVsZV9leGl0KHNoYTFfc3NzZTNfbW9kX2ZpbmkpOwog TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJTSEExIFNlY3VyZSBI YXNoIEFsZ29yaXRobSwgU3VwcGxlbWVudGFsIFNTRTMgYWNjZWxlcmF0ZWQiKTsKIAotTU9EVUxF X0FMSUFTKCJzaGExIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGExIik7CmRpZmYgLS1naXQg YS9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlzaF9nbHVlLmMgYi9hcmNoL3g4Ni9jcnlwdG8vdHdvZmlz aF9nbHVlLmMKaW5kZXggZGM2YjNmYi4uN2VjMTJkOSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvY3J5 cHRvL3R3b2Zpc2hfZ2x1ZS5jCisrKyBiL2FyY2gveDg2L2NyeXB0by90d29maXNoX2dsdWUuYwpA QCAtOTcsNSArOTcsNSBAQCBtb2R1bGVfZXhpdChmaW5pKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OICgiVHdvZmlzaCBDaXBoZXIgQWxnb3JpdGhtLCBhc20g b3B0aW1pemVkIik7Ci1NT0RVTEVfQUxJQVMoInR3b2Zpc2giKTsKLU1PRFVMRV9BTElBUygidHdv ZmlzaC1hc20iKTsKK01PRFVMRV9BTElBU19DUllQVE8oInR3b2Zpc2giKTsKK01PRFVMRV9BTElB U19DUllQVE8oInR3b2Zpc2gtYXNtIik7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9jcnlwdG8vdHdv ZmlzaF9nbHVlXzN3YXkuYyBiL2FyY2gveDg2L2NyeXB0by90d29maXNoX2dsdWVfM3dheS5jCmlu ZGV4IDVlZGU5YzQuLjA5ZWQzNTMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2NyeXB0by90d29maXNo X2dsdWVfM3dheS5jCisrKyBiL2FyY2gveDg2L2NyeXB0by90d29maXNoX2dsdWVfM3dheS5jCkBA IC00NjgsNSArNDY4LDUgQEAgbW9kdWxlX2V4aXQoZmluaSk7CiAKIE1PRFVMRV9MSUNFTlNFKCJH UEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiVHdvZmlzaCBDaXBoZXIgQWxnb3JpdGhtLCAzLXdh eSBwYXJhbGxlbCBhc20gb3B0aW1pemVkIik7Ci1NT0RVTEVfQUxJQVMoInR3b2Zpc2giKTsKLU1P RFVMRV9BTElBUygidHdvZmlzaC1hc20iKTsKK01PRFVMRV9BTElBU19DUllQVE8oInR3b2Zpc2gi KTsKK01PRFVMRV9BTElBU19DUllQVE8oInR3b2Zpc2gtYXNtIik7CmRpZmYgLS1naXQgYS9hcmNo L3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmggYi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9kZXNjLmgKaW5k ZXggNDE5MzVmYS4uMzIyNTg2OCAxMDA2NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vZGVz Yy5oCisrKyBiL2FyY2gveDg2L2luY2x1ZGUvYXNtL2Rlc2MuaApAQCAtMjQ4LDcgKzI0OCw4IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBuYXRpdmVfbG9hZF90bHMoc3RydWN0IHRocmVhZF9zdHJ1Y3Qg KnQsIHVuc2lnbmVkIGludCBjcHUpCiAJCWdkdFtHRFRfRU5UUllfVExTX01JTiArIGldID0gdC0+ dGxzX2FycmF5W2ldOwogfQogCi0jZGVmaW5lIF9MRFRfZW1wdHkoaW5mbykJCQkJXAorLyogVGhp cyBpbnRlbnRpb25hbGx5IGlnbm9yZXMgbG0sIHNpbmNlIDMyLWJpdCBhcHBzIGRvbid0IGhhdmUg dGhhdCBmaWVsZC4gKi8KKyNkZWZpbmUgTERUX2VtcHR5KGluZm8pCQkJCQlcCiAJKChpbmZvKS0+ YmFzZV9hZGRyCQk9PSAwCSYmCVwKIAkgKGluZm8pLT5saW1pdAkJCT09IDAJJiYJXAogCSAoaW5m byktPmNvbnRlbnRzCQk9PSAwCSYmCVwKQEAgLTI1OCwxMSArMjU5LDE4IEBAIHN0YXRpYyBpbmxp bmUgdm9pZCBuYXRpdmVfbG9hZF90bHMoc3RydWN0IHRocmVhZF9zdHJ1Y3QgKnQsIHVuc2lnbmVk IGludCBjcHUpCiAJIChpbmZvKS0+c2VnX25vdF9wcmVzZW50CT09IDEJJiYJXAogCSAoaW5mbykt PnVzZWFibGUJCT09IDApCiAKLSNpZmRlZiBDT05GSUdfWDg2XzY0Ci0jZGVmaW5lIExEVF9lbXB0 eShpbmZvKSAoX0xEVF9lbXB0eShpbmZvKSAmJiAoKGluZm8pLT5sbSA9PSAwKSkKLSNlbHNlCi0j ZGVmaW5lIExEVF9lbXB0eShpbmZvKSAoX0xEVF9lbXB0eShpbmZvKSkKLSNlbmRpZgorLyogTG90 cyBvZiBwcm9ncmFtcyBleHBlY3QgYW4gYWxsLXplcm8gdXNlcl9kZXNjIHRvIG1lYW4gIm5vIHNl Z21lbnQgYXQgYWxsIi4gKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBMRFRfemVybyhjb25zdCBzdHJ1 Y3QgdXNlcl9kZXNjICppbmZvKQoreworCXJldHVybiAoaW5mby0+YmFzZV9hZGRyCQk9PSAwICYm CisJCWluZm8tPmxpbWl0CQk9PSAwICYmCisJCWluZm8tPmNvbnRlbnRzCQk9PSAwICYmCisJCWlu Zm8tPnJlYWRfZXhlY19vbmx5CT09IDAgJiYKKwkJaW5mby0+c2VnXzMyYml0CQk9PSAwICYmCisJ CWluZm8tPmxpbWl0X2luX3BhZ2VzCT09IDAgJiYKKwkJaW5mby0+c2VnX25vdF9wcmVzZW50CT09 IDAgJiYKKwkJaW5mby0+dXNlYWJsZQkJPT0gMCk7Cit9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBj bGVhcl9MRFQodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2FyY2gveDg2L2luY2x1ZGUvYXNtL2xkdC5o IGIvYXJjaC94ODYvaW5jbHVkZS9hc20vbGR0LmgKaW5kZXggNDY3MjdlYi4uNmUxYWFmNyAxMDA2 NDQKLS0tIGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbGR0LmgKKysrIGIvYXJjaC94ODYvaW5jbHVk ZS9hc20vbGR0LmgKQEAgLTI4LDYgKzI4LDEzIEBAIHN0cnVjdCB1c2VyX2Rlc2MgewogCXVuc2ln bmVkIGludCAgc2VnX25vdF9wcmVzZW50OjE7CiAJdW5zaWduZWQgaW50ICB1c2VhYmxlOjE7CiAj aWZkZWYgX194ODZfNjRfXworCS8qCisJICogQmVjYXVzZSB0aGlzIGJpdCBpcyBub3QgcHJlc2Vu dCBpbiAzMi1iaXQgdXNlciBjb2RlLCB1c2VyCisJICogcHJvZ3JhbXMgY2FuIHBhc3MgdW5pbml0 aWFsaXplZCB2YWx1ZXMgaGVyZS4gIFRoZXJlZm9yZSwgaW4KKwkgKiBhbnkgY29udGV4dCBpbiB3 aGljaCBhIHVzZXJfZGVzYyBjb21lcyBmcm9tIGEgMzItYml0IHByb2dyYW0sCisJICogdGhlIGtl cm5lbCBtdXN0IGFjdCBhcyB0aG91Z2ggbG0gPT0gMCwgcmVnYXJkbGVzcyBvZiB0aGUKKwkgKiBh Y3R1YWwgdmFsdWUuCisJICovCiAJdW5zaWduZWQgaW50ICBsbToxOwogI2VuZGlmCiB9OwpkaWZm IC0tZ2l0IGEvYXJjaC94ODYvaW5jbHVkZS9hc20vbXNyLWluZGV4LmggYi9hcmNoL3g4Ni9pbmNs dWRlL2FzbS9tc3ItaW5kZXguaAppbmRleCBhNjk2MmQ5Li41NTM4YjEzIDEwMDY0NAotLS0gYS9h cmNoL3g4Ni9pbmNsdWRlL2FzbS9tc3ItaW5kZXguaAorKysgYi9hcmNoL3g4Ni9pbmNsdWRlL2Fz bS9tc3ItaW5kZXguaApAQCAtMTIzLDYgKzEyMyw3IEBACiAjZGVmaW5lIE1TUl9BTUQ2NF9QQVRD SF9MT0FERVIJCTB4YzAwMTAwMjAKICNkZWZpbmUgTVNSX0FNRDY0X09TVldfSURfTEVOR1RICTB4 YzAwMTAxNDAKICNkZWZpbmUgTVNSX0FNRDY0X09TVldfU1RBVFVTCQkweGMwMDEwMTQxCisjZGVm aW5lIE1TUl9BTUQ2NF9MU19DRkcJCTB4YzAwMTEwMjAKICNkZWZpbmUgTVNSX0FNRDY0X0RDX0NG RwkJMHhjMDAxMTAyMgogI2RlZmluZSBNU1JfQU1ENjRfSUJTRkVUQ0hDVEwJCTB4YzAwMTEwMzAK ICNkZWZpbmUgTVNSX0FNRDY0X0lCU0ZFVENITElOQUQJCTB4YzAwMTEwMzEKZGlmZiAtLWdpdCBh L2FyY2gveDg2L2tlcm5lbC9jcHUvYW1kLmMgYi9hcmNoL3g4Ni9rZXJuZWwvY3B1L2FtZC5jCmlu ZGV4IDJkNDRhMjguLjYwZDRjMzMgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvYW1k LmMKKysrIGIvYXJjaC94ODYva2VybmVsL2NwdS9hbWQuYwpAQCAtNDA4LDYgKzQwOCwxNiBAQCBz dGF0aWMgdm9pZCBfX2NwdWluaXQgZWFybHlfaW5pdF9hbWRfbWMoc3RydWN0IGNwdWluZm9feDg2 ICpjKQogCiAJYy0+eDg2X2NvcmVpZF9iaXRzID0gYml0czsKICNlbmRpZgorCisJLyogRjE2aCBl cnJhdHVtIDc5MywgQ1ZFLTIwMTMtNjg4NSAqLworCWlmIChjLT54ODYgPT0gMHgxNiAmJiBjLT54 ODZfbW9kZWwgPD0gMHhmKSB7CisJCXU2NCB2YWw7CisKKwkJaWYgKCFyZG1zcmxfYW1kX3NhZmUo TVNSX0FNRDY0X0xTX0NGRywgJnZhbCkgJiYKKwkJICAgICEodmFsICYgQklUKDE1KSkpCisJCQl3 cm1zcmxfYW1kX3NhZmUoTVNSX0FNRDY0X0xTX0NGRywgdmFsIHwgQklUKDE1KSk7CisJfQorCiB9 CiAKIHN0YXRpYyB2b2lkIF9fY3B1aW5pdCBic3BfaW5pdF9hbWQoc3RydWN0IGNwdWluZm9feDg2 ICpjKQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2NwdS9tc2h5cGVydi5jIGIvYXJjaC94 ODYva2VybmVsL2NwdS9tc2h5cGVydi5jCmluZGV4IDFhM2NmNmUuLmQxNTgyYjYgMTAwNjQ0Ci0t LSBhL2FyY2gveDg2L2tlcm5lbC9jcHUvbXNoeXBlcnYuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwv Y3B1L21zaHlwZXJ2LmMKQEAgLTU2LDYgKzU2LDcgQEAgc3RhdGljIHN0cnVjdCBjbG9ja3NvdXJj ZSBoeXBlcnZfY3MgPSB7CiAJLnJhdGluZwkJPSA0MDAsIC8qIHVzZSB0aGlzIHdoZW4gcnVubmlu ZyBvbiBIeXBlcnYqLwogCS5yZWFkCQk9IHJlYWRfaHZfY2xvY2ssCiAJLm1hc2sJCT0gQ0xPQ0tT T1VSQ0VfTUFTSyg2NCksCisJLmZsYWdzCQk9IENMT0NLX1NPVVJDRV9JU19DT05USU5VT1VTLAog fTsKIAogc3RhdGljIHZvaWQgX19pbml0IG1zX2h5cGVydl9pbml0X3BsYXRmb3JtKHZvaWQpCmRp ZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwva3Byb2Jlcy5jIGIvYXJjaC94ODYva2VybmVsL2tw cm9iZXMuYwppbmRleCA3ZGE2NDdkLi4wODM4NDhmIDEwMDY0NAotLS0gYS9hcmNoL3g4Ni9rZXJu ZWwva3Byb2Jlcy5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9rcHJvYmVzLmMKQEAgLTEwNTgsNiAr MTA1OCwxNSBAQCBpbnQgX19rcHJvYmVzIHNldGptcF9wcmVfaGFuZGxlcihzdHJ1Y3Qga3Byb2Jl ICpwLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKIAlyZWdzLT5mbGFncyAmPSB+WDg2X0VGTEFHU19J RjsKIAl0cmFjZV9oYXJkaXJxc19vZmYoKTsKIAlyZWdzLT5pcCA9ICh1bnNpZ25lZCBsb25nKShq cC0+ZW50cnkpOworCisJLyoKKwkgKiBqcHJvYmVzIHVzZSBqcHJvYmVfcmV0dXJuKCkgd2hpY2gg c2tpcHMgdGhlIG5vcm1hbCByZXR1cm4KKwkgKiBwYXRoIG9mIHRoZSBmdW5jdGlvbiwgYW5kIHRo aXMgbWVzc2VzIHVwIHRoZSBhY2NvdW50aW5nIG9mIHRoZQorCSAqIGZ1bmN0aW9uIGdyYXBoIHRy YWNlciB0byBnZXQgbWVzc2VkIHVwLgorCSAqCisJICogUGF1c2UgZnVuY3Rpb24gZ3JhcGggdHJh Y2luZyB3aGlsZSBwZXJmb3JtaW5nIHRoZSBqcHJvYmUgZnVuY3Rpb24uCisJICovCisJcGF1c2Vf Z3JhcGhfdHJhY2luZygpOwogCXJldHVybiAxOwogfQogCkBAIC0xMDgzLDI0ICsxMDkyLDI1IEBA IGludCBfX2twcm9iZXMgbG9uZ2ptcF9icmVha19oYW5kbGVyKHN0cnVjdCBrcHJvYmUgKnAsIHN0 cnVjdCBwdF9yZWdzICpyZWdzKQogCXN0cnVjdCBrcHJvYmVfY3RsYmxrICprY2IgPSBnZXRfa3By b2JlX2N0bGJsaygpOwogCXU4ICphZGRyID0gKHU4ICopIChyZWdzLT5pcCAtIDEpOwogCXN0cnVj dCBqcHJvYmUgKmpwID0gY29udGFpbmVyX29mKHAsIHN0cnVjdCBqcHJvYmUsIGtwKTsKKwl2b2lk ICpzYXZlZF9zcCA9IGtjYi0+anByb2JlX3NhdmVkX3NwOwogCiAJaWYgKChhZGRyID4gKHU4ICop IGpwcm9iZV9yZXR1cm4pICYmCiAJICAgIChhZGRyIDwgKHU4ICopIGpwcm9iZV9yZXR1cm5fZW5k KSkgewotCQlpZiAoc3RhY2tfYWRkcihyZWdzKSAhPSBrY2ItPmpwcm9iZV9zYXZlZF9zcCkgewor CQlpZiAoc3RhY2tfYWRkcihyZWdzKSAhPSBzYXZlZF9zcCkgewogCQkJc3RydWN0IHB0X3JlZ3Mg KnNhdmVkX3JlZ3MgPSAma2NiLT5qcHJvYmVfc2F2ZWRfcmVnczsKIAkJCXByaW50ayhLRVJOX0VS UgogCQkJICAgICAgICJjdXJyZW50IHNwICVwIGRvZXMgbm90IG1hdGNoIHNhdmVkIHNwICVwXG4i LAotCQkJICAgICAgIHN0YWNrX2FkZHIocmVncyksIGtjYi0+anByb2JlX3NhdmVkX3NwKTsKKwkJ CSAgICAgICBzdGFja19hZGRyKHJlZ3MpLCBzYXZlZF9zcCk7CiAJCQlwcmludGsoS0VSTl9FUlIg IlNhdmVkIHJlZ2lzdGVycyBmb3IganByb2JlICVwXG4iLCBqcCk7CiAJCQlzaG93X3JlZ2lzdGVy cyhzYXZlZF9yZWdzKTsKIAkJCXByaW50ayhLRVJOX0VSUiAiQ3VycmVudCByZWdpc3RlcnNcbiIp OwogCQkJc2hvd19yZWdpc3RlcnMocmVncyk7CiAJCQlCVUcoKTsKIAkJfQorCQkvKiBJdCdzIE9L IHRvIHN0YXJ0IGZ1bmN0aW9uIGdyYXBoIHRyYWNpbmcgYWdhaW4gKi8KKwkJdW5wYXVzZV9ncmFw aF90cmFjaW5nKCk7CiAJCSpyZWdzID0ga2NiLT5qcHJvYmVfc2F2ZWRfcmVnczsKLQkJbWVtY3B5 KChrcHJvYmVfb3Bjb2RlX3QgKikoa2NiLT5qcHJvYmVfc2F2ZWRfc3ApLAotCQkgICAgICAga2Ni LT5qcHJvYmVzX3N0YWNrLAotCQkgICAgICAgTUlOX1NUQUNLX1NJWkUoa2NiLT5qcHJvYmVfc2F2 ZWRfc3ApKTsKKwkJbWVtY3B5KHNhdmVkX3NwLCBrY2ItPmpwcm9iZXNfc3RhY2ssIE1JTl9TVEFD S19TSVpFKHNhdmVkX3NwKSk7CiAJCXByZWVtcHRfZW5hYmxlX25vX3Jlc2NoZWQoKTsKIAkJcmV0 dXJuIDE7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYyBiL2Fy Y2gveDg2L2tlcm5lbC9wcm9jZXNzXzY0LmMKaW5kZXggNmEzNjRhNi4uZTM2MTA5NSAxMDA2NDQK LS0tIGEvYXJjaC94ODYva2VybmVsL3Byb2Nlc3NfNjQuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwv cHJvY2Vzc182NC5jCkBAIC0zODUsMjQgKzM4NSw5IEBAIF9fc3dpdGNoX3RvKHN0cnVjdCB0YXNr X3N0cnVjdCAqcHJldl9wLCBzdHJ1Y3QgdGFza19zdHJ1Y3QgKm5leHRfcCkKIAogCWZwdSA9IHN3 aXRjaF9mcHVfcHJlcGFyZShwcmV2X3AsIG5leHRfcCk7CiAKLQkvKgotCSAqIFJlbG9hZCBlc3Aw LCBMRFQgYW5kIHRoZSBwYWdlIHRhYmxlIHBvaW50ZXI6Ci0JICovCisJLyogUmVsb2FkIGVzcDAg YW5kIHNzMS4gKi8KIAlsb2FkX3NwMCh0c3MsIG5leHQpOwogCi0JLyoKLQkgKiBTd2l0Y2ggRFMg YW5kIEVTLgotCSAqIFRoaXMgd29uJ3QgcGljayB1cCB0aHJlYWQgc2VsZWN0b3IgY2hhbmdlcywg YnV0IEkgZ3Vlc3MgdGhhdCBpcyBvay4KLQkgKi8KLQlzYXZlc2VnbWVudChlcywgcHJldi0+ZXMp OwotCWlmICh1bmxpa2VseShuZXh0LT5lcyB8IHByZXYtPmVzKSkKLQkJbG9hZHNlZ21lbnQoZXMs IG5leHQtPmVzKTsKLQotCXNhdmVzZWdtZW50KGRzLCBwcmV2LT5kcyk7Ci0JaWYgKHVubGlrZWx5 KG5leHQtPmRzIHwgcHJldi0+ZHMpKQotCQlsb2Fkc2VnbWVudChkcywgbmV4dC0+ZHMpOwotCi0K IAkvKiBXZSBtdXN0IHNhdmUgJWZzIGFuZCAlZ3MgYmVmb3JlIGxvYWRfVExTKCkgYmVjYXVzZQog CSAqICVmcyBhbmQgJWdzIG1heSBiZSBjbGVhcmVkIGJ5IGxvYWRfVExTKCkuCiAJICoKQEAgLTQx MSw0MSArMzk2LDEwMSBAQCBfX3N3aXRjaF90byhzdHJ1Y3QgdGFza19zdHJ1Y3QgKnByZXZfcCwg c3RydWN0IHRhc2tfc3RydWN0ICpuZXh0X3ApCiAJc2F2ZXNlZ21lbnQoZnMsIGZzaW5kZXgpOwog CXNhdmVzZWdtZW50KGdzLCBnc2luZGV4KTsKIAorCS8qCisJICogTG9hZCBUTFMgYmVmb3JlIHJl c3RvcmluZyBhbnkgc2VnbWVudHMgc28gdGhhdCBzZWdtZW50IGxvYWRzCisJICogcmVmZXJlbmNl IHRoZSBjb3JyZWN0IEdEVCBlbnRyaWVzLgorCSAqLwogCWxvYWRfVExTKG5leHQsIGNwdSk7CiAK IAkvKgotCSAqIExlYXZlIGxhenkgbW9kZSwgZmx1c2hpbmcgYW55IGh5cGVyY2FsbHMgbWFkZSBo ZXJlLgotCSAqIFRoaXMgbXVzdCBiZSBkb25lIGJlZm9yZSByZXN0b3JpbmcgVExTIHNlZ21lbnRz IHNvCi0JICogdGhlIEdEVCBhbmQgTERUIGFyZSBwcm9wZXJseSB1cGRhdGVkLCBhbmQgbXVzdCBi ZQotCSAqIGRvbmUgYmVmb3JlIG1hdGhfc3RhdGVfcmVzdG9yZSwgc28gdGhlIFRTIGJpdCBpcyB1 cAotCSAqIHRvIGRhdGUuCisJICogTGVhdmUgbGF6eSBtb2RlLCBmbHVzaGluZyBhbnkgaHlwZXJj YWxscyBtYWRlIGhlcmUuICBUaGlzCisJICogbXVzdCBiZSBkb25lIGFmdGVyIGxvYWRpbmcgVExT IGVudHJpZXMgaW4gdGhlIEdEVCBidXQgYmVmb3JlCisJICogbG9hZGluZyBzZWdtZW50cyB0aGF0 IG1pZ2h0IHJlZmVyZW5jZSB0aGVtLCBhbmQgYW5kIGl0IG11c3QKKwkgKiBiZSBkb25lIGJlZm9y ZSBtYXRoX3N0YXRlX3Jlc3RvcmUsIHNvIHRoZSBUUyBiaXQgaXMgdXAgdG8KKwkgKiBkYXRlLgog CSAqLwogCWFyY2hfZW5kX2NvbnRleHRfc3dpdGNoKG5leHRfcCk7CiAKKwkvKiBTd2l0Y2ggRFMg YW5kIEVTLgorCSAqCisJICogUmVhZGluZyB0aGVtIG9ubHkgcmV0dXJucyB0aGUgc2VsZWN0b3Jz LCBidXQgd3JpdGluZyB0aGVtIChpZgorCSAqIG5vbnplcm8pIGxvYWRzIHRoZSBmdWxsIGRlc2Ny aXB0b3IgZnJvbSB0aGUgR0RUIG9yIExEVC4gIFRoZQorCSAqIExEVCBmb3IgbmV4dCBpcyBsb2Fk ZWQgaW4gc3dpdGNoX21tLCBhbmQgdGhlIEdEVCBpcyBsb2FkZWQKKwkgKiBhYm92ZS4KKwkgKgor CSAqIFdlIHRoZXJlZm9yZSBuZWVkIHRvIHdyaXRlIG5ldyB2YWx1ZXMgdG8gdGhlIHNlZ21lbnQK KwkgKiByZWdpc3RlcnMgb24gZXZlcnkgY29udGV4dCBzd2l0Y2ggdW5sZXNzIGJvdGggdGhlIG5l dyBhbmQgb2xkCisJICogdmFsdWVzIGFyZSB6ZXJvLgorCSAqCisJICogTm90ZSB0aGF0IHdlIGRv bid0IG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIENTIGFuZCBTUywgYXMKKwkgKiB0aG9zZSBhcmUg c2F2ZWQgYW5kIHJlc3RvcmVkIGFzIHBhcnQgb2YgcHRfcmVncy4KKwkgKi8KKwlzYXZlc2VnbWVu dChlcywgcHJldi0+ZXMpOworCWlmICh1bmxpa2VseShuZXh0LT5lcyB8IHByZXYtPmVzKSkKKwkJ bG9hZHNlZ21lbnQoZXMsIG5leHQtPmVzKTsKKworCXNhdmVzZWdtZW50KGRzLCBwcmV2LT5kcyk7 CisJaWYgKHVubGlrZWx5KG5leHQtPmRzIHwgcHJldi0+ZHMpKQorCQlsb2Fkc2VnbWVudChkcywg bmV4dC0+ZHMpOworCiAJLyoKIAkgKiBTd2l0Y2ggRlMgYW5kIEdTLgogCSAqCi0JICogU2VnbWVu dCByZWdpc3RlciAhPSAwIGFsd2F5cyByZXF1aXJlcyBhIHJlbG9hZC4gIEFsc28KLQkgKiByZWxv YWQgd2hlbiBpdCBoYXMgY2hhbmdlZC4gIFdoZW4gcHJldiBwcm9jZXNzIHVzZWQgNjRiaXQKLQkg KiBiYXNlIGFsd2F5cyByZWxvYWQgdG8gYXZvaWQgYW4gaW5mb3JtYXRpb24gbGVhay4KKwkgKiBU aGVzZSBhcmUgZXZlbiBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gRlMgYW5kIEdTOiB0aGV5IGhhdmUK KwkgKiA2NC1iaXQgYmFzZXMgYXJlIHRoYXQgY29udHJvbGxlZCBieSBhcmNoX3ByY3RsLiAgVGhv c2UgYmFzZXMKKwkgKiBvbmx5IGRpZmZlciBmcm9tIHRoZSB2YWx1ZXMgaW4gdGhlIEdEVCBvciBM RFQgaWYgdGhlIHNlbGVjdG9yCisJICogaXMgMC4KKwkgKgorCSAqIExvYWRpbmcgdGhlIHNlZ21l bnQgcmVnaXN0ZXIgcmVzZXRzIHRoZSBoaWRkZW4gYmFzZSBwYXJ0IG9mCisJICogdGhlIHJlZ2lz dGVyIHRvIDAgb3IgdGhlIHZhbHVlIGZyb20gdGhlIEdEVCAvIExEVC4gIElmIHRoZQorCSAqIG5l eHQgYmFzZSBhZGRyZXNzIHplcm8sIHdyaXRpbmcgMCB0byB0aGUgc2VnbWVudCByZWdpc3RlciBp cworCSAqIG11Y2ggZmFzdGVyIHRoYW4gdXNpbmcgd3Jtc3IgdG8gZXhwbGljaXRseSB6ZXJvIHRo ZSBiYXNlLgorCSAqCisJICogVGhlIHRocmVhZF9zdHJ1Y3QuZnMgYW5kIHRocmVhZF9zdHJ1Y3Qu Z3MgdmFsdWVzIGFyZSAwCisJICogaWYgdGhlIGZzIGFuZCBncyBiYXNlcyByZXNwZWN0aXZlbHkg YXJlIG5vdCBvdmVycmlkZGVuCisJICogZnJvbSB0aGUgdmFsdWVzIGltcGxpZWQgYnkgZnNpbmRl eCBhbmQgZ3NpbmRleC4gIFRoZXkKKwkgKiBhcmUgbm9uemVybywgYW5kIHN0b3JlIHRoZSBub256 ZXJvIGJhc2UgYWRkcmVzc2VzLCBpZgorCSAqIHRoZSBiYXNlcyBhcmUgb3ZlcnJpZGRlbi4KKwkg KgorCSAqIChmcyAhPSAwICYmIGZzaW5kZXggIT0gMCkgfHwgKGdzICE9IDAgJiYgZ3NpbmRleCAh PSAwKSBzaG91bGQKKwkgKiBiZSBpbXBvc3NpYmxlLgorCSAqCisJICogVGhlcmVmb3JlIHdlIG5l ZWQgdG8gcmVsb2FkIHRoZSBzZWdtZW50IHJlZ2lzdGVycyBpZiBlaXRoZXIKKwkgKiB0aGUgb2xk IG9yIG5ldyBzZWxlY3RvciBpcyBub256ZXJvLCBhbmQgd2UgbmVlZCB0byBvdmVycmlkZQorCSAq IHRoZSBiYXNlIGFkZHJlc3MgaWYgbmV4dCB0aHJlYWQgZXhwZWN0cyBpdCB0byBiZSBvdmVycmlk ZGVuLgorCSAqCisJICogVGhpcyBjb2RlIGlzIHVubmVjZXNzYXJpbHkgc2xvdyBpbiB0aGUgY2Fz ZSB3aGVyZSB0aGUgb2xkIGFuZAorCSAqIG5ldyBpbmRleGVzIGFyZSB6ZXJvIGFuZCB0aGUgbmV3 IGJhc2UgaXMgbm9uemVybyAtLSBpdCB3aWxsCisJICogdW5uZWNlc3NhcmlseSB3cml0ZSAwIHRv IHRoZSBzZWxlY3RvciBiZWZvcmUgd3JpdGluZyB0aGUgbmV3CisJICogYmFzZSBhZGRyZXNzLgor CSAqCisJICogTm90ZTogVGhpcyBhbGwgZGVwZW5kcyBvbiBhcmNoX3ByY3RsIGJlaW5nIHRoZSBv bmx5IHdheSB0aGF0CisJICogdXNlciBjb2RlIGNhbiBvdmVycmlkZSB0aGUgc2VnbWVudCBiYXNl LiAgT25jZSB3cmZzYmFzZSBhbmQKKwkgKiB3cmdzYmFzZSBhcmUgZW5hYmxlZCwgbW9zdCBvZiB0 aGlzIGNvZGUgd2lsbCBuZWVkIHRvIGNoYW5nZS4KIAkgKi8KIAlpZiAodW5saWtlbHkoZnNpbmRl eCB8IG5leHQtPmZzaW5kZXggfCBwcmV2LT5mcykpIHsKIAkJbG9hZHNlZ21lbnQoZnMsIG5leHQt PmZzaW5kZXgpOworCiAJCS8qCi0JCSAqIENoZWNrIGlmIHRoZSB1c2VyIHVzZWQgYSBzZWxlY3Rv ciAhPSAwOyBpZiB5ZXMKLQkJICogIGNsZWFyIDY0Yml0IGJhc2UsIHNpbmNlIG92ZXJsb2FkZWQg YmFzZSBpcyBhbHdheXMKLQkJICogIG1hcHBlZCB0byB0aGUgTnVsbCBzZWxlY3RvcgorCQkgKiBJ ZiB1c2VyIGNvZGUgd3JvdGUgYSBub256ZXJvIHZhbHVlIHRvIEZTLCB0aGVuIGl0IGFsc28KKwkJ ICogY2xlYXJlZCB0aGUgb3ZlcnJpZGRlbiBiYXNlIGFkZHJlc3MuCisJCSAqCisJCSAqIFhYWDog aWYgdXNlciBjb2RlIHdyb3RlIDAgdG8gRlMgYW5kIGNsZWFyZWQgdGhlIGJhc2UKKwkJICogYWRk cmVzcyBpdHNlbGYsIHdlIHdvbid0IG5vdGljZSBhbmQgd2UnbGwgaW5jb3JyZWN0bHkKKwkJICog cmVzdG9yZSB0aGUgcHJpb3IgYmFzZSBhZGRyZXNzIG5leHQgdGltZSB3ZSByZXNjaGR1bGUKKwkJ ICogdGhlIHByb2Nlc3MuCiAJCSAqLwogCQlpZiAoZnNpbmRleCkKIAkJCXByZXYtPmZzID0gMDsK IAl9Ci0JLyogd2hlbiBuZXh0IHByb2Nlc3MgaGFzIGEgNjRiaXQgYmFzZSB1c2UgaXQgKi8KIAlp ZiAobmV4dC0+ZnMpCiAJCXdybXNybChNU1JfRlNfQkFTRSwgbmV4dC0+ZnMpOwogCXByZXYtPmZz aW5kZXggPSBmc2luZGV4OwogCiAJaWYgKHVubGlrZWx5KGdzaW5kZXggfCBuZXh0LT5nc2luZGV4 IHwgcHJldi0+Z3MpKSB7CiAJCWxvYWRfZ3NfaW5kZXgobmV4dC0+Z3NpbmRleCk7CisKKwkJLyog VGhpcyB3b3JrcyAoYW5kIGZhaWxzKSB0aGUgc2FtZSB3YXkgYXMgZnNpbmRleCBhYm92ZS4gKi8K IAkJaWYgKGdzaW5kZXgpCiAJCQlwcmV2LT5ncyA9IDA7CiAJfQpkaWZmIC0tZ2l0IGEvYXJjaC94 ODYva2VybmVsL3Rscy5jIGIvYXJjaC94ODYva2VybmVsL3Rscy5jCmluZGV4IDdhZjczMzguLjBj MzhkMDYgMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC90bHMuYworKysgYi9hcmNoL3g4Ni9r ZXJuZWwvdGxzLmMKQEAgLTMwLDcgKzMwLDI4IEBAIHN0YXRpYyBpbnQgZ2V0X2ZyZWVfaWR4KHZv aWQpCiAKIHN0YXRpYyBib29sIHRsc19kZXNjX29rYXkoY29uc3Qgc3RydWN0IHVzZXJfZGVzYyAq aW5mbykKIHsKLQlpZiAoTERUX2VtcHR5KGluZm8pKQorCS8qCisJICogRm9yIGhpc3RvcmljYWwg cmVhc29ucyAoaS5lLiBubyBvbmUgZXZlciBkb2N1bWVudGVkIGhvdyBhbnkKKwkgKiBvZiB0aGUg c2VnbWVudGF0aW9uIEFQSXMgd29yayksIHVzZXIgcHJvZ3JhbXMgY2FuIGFuZCBkbworCSAqIGFz c3VtZSB0aGF0IGEgc3RydWN0IHVzZXJfZGVzYyB0aGF0J3MgYWxsIHplcm9zIGV4Y2VwdCBmb3IK KwkgKiBlbnRyeV9udW1iZXIgbWVhbnMgIm5vIHNlZ21lbnQgYXQgYWxsIi4gIFRoaXMgbmV2ZXIg YWN0dWFsbHkKKwkgKiB3b3JrZWQuICBJbiBmYWN0LCB1cCB0byBMaW51eCAzLjE5LCBhIHN0cnVj dCB1c2VyX2Rlc2MgbGlrZQorCSAqIHRoaXMgd291bGQgY3JlYXRlIGEgMTYtYml0IHJlYWQtd3Jp dGUgc2VnbWVudCB3aXRoIGJhc2UgYW5kCisJICogbGltaXQgYm90aCBlcXVhbCB0byB6ZXJvLgor CSAqCisJICogVGhhdCB3YXMgY2xvc2UgZW5vdWdoIHRvICJubyBzZWdtZW50IGF0IGFsbCIgdW50 aWwgd2UKKwkgKiBoYXJkZW5lZCB0aGlzIGZ1bmN0aW9uIHRvIGRpc2FsbG93IDE2LWJpdCBUTFMg c2VnbWVudHMuICBGaXgKKwkgKiBpdCB1cCBieSBpbnRlcnByZXRpbmcgdGhlc2UgemVyb2VkIHNl Z21lbnRzIHRoZSB3YXkgdGhhdCB0aGV5CisJICogd2VyZSBhbG1vc3QgY2VydGFpbmx5IGludGVu ZGVkIHRvIGJlIGludGVycHJldGVkLgorCSAqCisJICogVGhlIGNvcnJlY3Qgd2F5IHRvIGFzayBm b3IgIm5vIHNlZ21lbnQgYXQgYWxsIiBpcyB0byBzcGVjaWZ5CisJICogYSB1c2VyX2Rlc2MgdGhh dCBzYXRpc2ZpZXMgTERUX2VtcHR5LiAgVG8ga2VlcCBldmVyeXRoaW5nCisJICogd29ya2luZywg d2UgYWNjZXB0IGJvdGguCisJICoKKwkgKiBOb3RlIHRoYXQgdGhlcmUncyBhIHNpbWlsYXIga2x1 ZGdlIGluIG1vZGlmeV9sZHQgLS0gbG9vayBhdAorCSAqIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVu IG1vZGVzIDEgYW5kIDB4MTEuCisJICovCisJaWYgKExEVF9lbXB0eShpbmZvKSB8fCBMRFRfemVy byhpbmZvKSkKIAkJcmV0dXJuIHRydWU7CiAKIAkvKgpAQCAtNDAsNiArNjEsMjIgQEAgc3RhdGlj IGJvb2wgdGxzX2Rlc2Nfb2theShjb25zdCBzdHJ1Y3QgdXNlcl9kZXNjICppbmZvKQogCWlmICgh aW5mby0+c2VnXzMyYml0KQogCQlyZXR1cm4gZmFsc2U7CiAKKwkvKiBPbmx5IGFsbG93IGRhdGEg c2VnbWVudHMgaW4gdGhlIFRMUyBhcnJheS4gKi8KKwlpZiAoaW5mby0+Y29udGVudHMgPiAxKQor CQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIE5vbi1wcmVzZW50IHNlZ21lbnRzIHdpdGggRFBM IDMgcHJlc2VudCBhbiBpbnRlcmVzdGluZyBhdHRhY2sKKwkgKiBzdXJmYWNlLiAgVGhlIGtlcm5l bCBzaG91bGQgaGFuZGxlIHN1Y2ggc2VnbWVudHMgY29ycmVjdGx5LAorCSAqIGJ1dCBUTFMgaXMg dmVyeSBkaWZmaWN1bHQgdG8gcHJvdGVjdCBpbiBhIHNhbmRib3gsIHNvIHByZXZlbnQKKwkgKiBz dWNoIHNlZ21lbnRzIGZyb20gYmVpbmcgY3JlYXRlZC4KKwkgKgorCSAqIElmIHVzZXJzcGFjZSBu ZWVkcyB0byByZW1vdmUgYSBUTFMgZW50cnksIGl0IGNhbiBzdGlsbCBkZWxldGUKKwkgKiBpdCBv dXRyaWdodC4KKwkgKi8KKwlpZiAoaW5mby0+c2VnX25vdF9wcmVzZW50KQorCQlyZXR1cm4gZmFs c2U7CisKIAlyZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNTYsNyArOTMsNyBAQCBzdGF0aWMgdm9pZCBz ZXRfdGxzX2Rlc2Moc3RydWN0IHRhc2tfc3RydWN0ICpwLCBpbnQgaWR4LAogCWNwdSA9IGdldF9j cHUoKTsKIAogCXdoaWxlIChuLS0gPiAwKSB7Ci0JCWlmIChMRFRfZW1wdHkoaW5mbykpCisJCWlm IChMRFRfZW1wdHkoaW5mbykgfHwgTERUX3plcm8oaW5mbykpCiAJCQlkZXNjLT5hID0gZGVzYy0+ YiA9IDA7CiAJCWVsc2UKIAkJCWZpbGxfbGR0KGRlc2MsIGluZm8pOwpkaWZmIC0tZ2l0IGEvYXJj aC94ODYva3ZtL2VtdWxhdGUuYyBiL2FyY2gveDg2L2t2bS9lbXVsYXRlLmMKaW5kZXggZjBhYzA0 Mi4uYmRhZDQ4OSAxMDA2NDQKLS0tIGEvYXJjaC94ODYva3ZtL2VtdWxhdGUuYworKysgYi9hcmNo L3g4Ni9rdm0vZW11bGF0ZS5jCkBAIC0xOTUyLDYgKzE5NTIsMTcgQEAgc2V0dXBfc3lzY2FsbHNf c2VnbWVudHMoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQsCiAJc3MtPnAgPSAxOwogfQog CitzdGF0aWMgYm9vbCB2ZW5kb3JfaW50ZWwoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQp Cit7CisJdTMyIGVheCwgZWJ4LCBlY3gsIGVkeDsKKworCWVheCA9IGVjeCA9IDA7CisJcmV0dXJu IGN0eHQtPm9wcy0+Z2V0X2NwdWlkKGN0eHQsICZlYXgsICZlYngsICZlY3gsICZlZHgpCisJCSYm IGVieCA9PSBYODZFTVVMX0NQVUlEX1ZFTkRPUl9HZW51aW5lSW50ZWxfZWJ4CisJCSYmIGVjeCA9 PSBYODZFTVVMX0NQVUlEX1ZFTkRPUl9HZW51aW5lSW50ZWxfZWN4CisJCSYmIGVkeCA9PSBYODZF TVVMX0NQVUlEX1ZFTkRPUl9HZW51aW5lSW50ZWxfZWR4OworfQorCiBzdGF0aWMgYm9vbCBlbV9z eXNjYWxsX2lzX2VuYWJsZWQoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQpCiB7CiAJc3Ry dWN0IHg4Nl9lbXVsYXRlX29wcyAqb3BzID0gY3R4dC0+b3BzOwpAQCAtMjA2OCw2ICsyMDc5LDE0 IEBAIHN0YXRpYyBpbnQgZW1fc3lzZW50ZXIoc3RydWN0IHg4Nl9lbXVsYXRlX2N0eHQgKmN0eHQp CiAJaWYgKGN0eHQtPm1vZGUgPT0gWDg2RU1VTF9NT0RFX1JFQUwpCiAJCXJldHVybiBlbXVsYXRl X2dwKGN0eHQsIDApOwogCisJLyoKKwkgKiBOb3QgcmVjb2duaXplZCBvbiBBTUQgaW4gY29tcGF0 IG1vZGUgKGJ1dCBpcyByZWNvZ25pemVkIGluIGxlZ2FjeQorCSAqIG1vZGUpLgorCSAqLworCWlm ICgoY3R4dC0+bW9kZSAhPSBYODZFTVVMX01PREVfUFJPVDY0KSAmJiAoZWZlciAmIEVGRVJfTE1B KQorCSAgICAmJiAhdmVuZG9yX2ludGVsKGN0eHQpKQorCQlyZXR1cm4gZW11bGF0ZV91ZChjdHh0 KTsKKwogCS8qIFhYWCBzeXNlbnRlci9zeXNleGl0IGhhdmUgbm90IGJlZW4gdGVzdGVkIGluIDY0 Yml0IG1vZGUuCiAJKiBUaGVyZWZvcmUsIHdlIGluamVjdCBhbiAjVUQuCiAJKi8KQEAgLTIwNzcs MjMgKzIwOTYsMTMgQEAgc3RhdGljIGludCBlbV9zeXNlbnRlcihzdHJ1Y3QgeDg2X2VtdWxhdGVf Y3R4dCAqY3R4dCkKIAlzZXR1cF9zeXNjYWxsc19zZWdtZW50cyhjdHh0LCAmY3MsICZzcyk7CiAK IAlvcHMtPmdldF9tc3IoY3R4dCwgTVNSX0lBMzJfU1lTRU5URVJfQ1MsICZtc3JfZGF0YSk7Ci0J c3dpdGNoIChjdHh0LT5tb2RlKSB7Ci0JY2FzZSBYODZFTVVMX01PREVfUFJPVDMyOgotCQlpZiAo KG1zcl9kYXRhICYgMHhmZmZjKSA9PSAweDApCi0JCQlyZXR1cm4gZW11bGF0ZV9ncChjdHh0LCAw KTsKLQkJYnJlYWs7Ci0JY2FzZSBYODZFTVVMX01PREVfUFJPVDY0OgotCQlpZiAobXNyX2RhdGEg PT0gMHgwKQotCQkJcmV0dXJuIGVtdWxhdGVfZ3AoY3R4dCwgMCk7Ci0JCWJyZWFrOwotCX0KKwlp ZiAoKG1zcl9kYXRhICYgMHhmZmZjKSA9PSAweDApCisJCXJldHVybiBlbXVsYXRlX2dwKGN0eHQs IDApOwogCiAJY3R4dC0+ZWZsYWdzICY9IH4oRUZMR19WTSB8IEVGTEdfSUYgfCBFRkxHX1JGKTsK LQljc19zZWwgPSAodTE2KW1zcl9kYXRhOwotCWNzX3NlbCAmPSB+U0VMRUNUT1JfUlBMX01BU0s7 CisJY3Nfc2VsID0gKHUxNiltc3JfZGF0YSAmIH5TRUxFQ1RPUl9SUExfTUFTSzsKIAlzc19zZWwg PSBjc19zZWwgKyA4OwotCXNzX3NlbCAmPSB+U0VMRUNUT1JfUlBMX01BU0s7Ci0JaWYgKGN0eHQt Pm1vZGUgPT0gWDg2RU1VTF9NT0RFX1BST1Q2NCB8fCAoZWZlciAmIEVGRVJfTE1BKSkgeworCWlm IChlZmVyICYgRUZFUl9MTUEpIHsKIAkJY3MuZCA9IDA7CiAJCWNzLmwgPSAxOwogCX0KQEAgLTIx MDIsMTAgKzIxMTEsMTEgQEAgc3RhdGljIGludCBlbV9zeXNlbnRlcihzdHJ1Y3QgeDg2X2VtdWxh dGVfY3R4dCAqY3R4dCkKIAlvcHMtPnNldF9zZWdtZW50KGN0eHQsIHNzX3NlbCwgJnNzLCAwLCBW Q1BVX1NSRUdfU1MpOwogCiAJb3BzLT5nZXRfbXNyKGN0eHQsIE1TUl9JQTMyX1NZU0VOVEVSX0VJ UCwgJm1zcl9kYXRhKTsKLQljdHh0LT5fZWlwID0gbXNyX2RhdGE7CisJY3R4dC0+X2VpcCA9IChl ZmVyICYgRUZFUl9MTUEpID8gbXNyX2RhdGEgOiAodTMyKW1zcl9kYXRhOwogCiAJb3BzLT5nZXRf bXNyKGN0eHQsIE1TUl9JQTMyX1NZU0VOVEVSX0VTUCwgJm1zcl9kYXRhKTsKLQljdHh0LT5yZWdz W1ZDUFVfUkVHU19SU1BdID0gbXNyX2RhdGE7CisJY3R4dC0+cmVnc1tWQ1BVX1JFR1NfUlNQXSA9 IChlZmVyICYgRUZFUl9MTUEpID8gbXNyX2RhdGEgOgorCQkJCQkJCSh1MzIpbXNyX2RhdGE7CiAK IAlyZXR1cm4gWDg2RU1VTF9DT05USU5VRTsKIH0KZGlmZiAtLWdpdCBhL2FyY2gveDg2L21tL2Zh dWx0LmMgYi9hcmNoL3g4Ni9tbS9mYXVsdC5jCmluZGV4IDUzYTdiNjkuLjhjYWMwODggMTAwNjQ0 Ci0tLSBhL2FyY2gveDg2L21tL2ZhdWx0LmMKKysrIGIvYXJjaC94ODYvbW0vZmF1bHQuYwpAQCAt ODc3LDYgKzg3Nyw4IEBAIG1tX2ZhdWx0X2Vycm9yKHN0cnVjdCBwdF9yZWdzICpyZWdzLCB1bnNp Z25lZCBsb25nIGVycm9yX2NvZGUsCiAJCWlmIChmYXVsdCAmIChWTV9GQVVMVF9TSUdCVVN8Vk1f RkFVTFRfSFdQT0lTT058CiAJCQkgICAgIFZNX0ZBVUxUX0hXUE9JU09OX0xBUkdFKSkKIAkJCWRv X3NpZ2J1cyhyZWdzLCBlcnJvcl9jb2RlLCBhZGRyZXNzLCBmYXVsdCk7CisJCWVsc2UgaWYgKGZh dWx0ICYgVk1fRkFVTFRfU0lHU0VHVikKKwkJCWJhZF9hcmVhX25vc2VtYXBob3JlKHJlZ3MsIGVy cm9yX2NvZGUsIGFkZHJlc3MpOwogCQllbHNlCiAJCQlCVUcoKTsKIAl9CmRpZmYgLS1naXQgYS9h cmNoL3g4Ni9tbS9pbml0XzY0LmMgYi9hcmNoL3g4Ni9tbS9pbml0XzY0LmMKaW5kZXggMjY2Zjcx Ny4uNDRiOTNkYSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvbW0vaW5pdF82NC5jCisrKyBiL2FyY2gv eDg2L21tL2luaXRfNjQuYwpAQCAtNzc4LDcgKzc3OCw2IEBAIHZvaWQgbWFya19yb2RhdGFfcm8o dm9pZCkKIAl1bnNpZ25lZCBsb25nIHRleHRfZW5kID0gUEFHRV9BTElHTigodW5zaWduZWQgbG9u ZykgJl9fc3RvcF9fX2V4X3RhYmxlKTsKIAl1bnNpZ25lZCBsb25nIHJvZGF0YV9lbmQgPSBQQUdF X0FMSUdOKCh1bnNpZ25lZCBsb25nKSAmX19lbmRfcm9kYXRhKTsKIAl1bnNpZ25lZCBsb25nIGRh dGFfc3RhcnQgPSAodW5zaWduZWQgbG9uZykgJl9zZGF0YTsKLQl1bnNpZ25lZCBsb25nIGFsbF9l bmQ7CiAKIAlwcmludGsoS0VSTl9JTkZPICJXcml0ZSBwcm90ZWN0aW5nIHRoZSBrZXJuZWwgcmVh ZC1vbmx5IGRhdGE6ICVsdWtcbiIsCiAJICAgICAgIChlbmQgLSBzdGFydCkgPj4gMTApOwpAQCAt Nzg3LDE5ICs3ODYsMTAgQEAgdm9pZCBtYXJrX3JvZGF0YV9ybyh2b2lkKQogCWtlcm5lbF9zZXRf dG9fcmVhZG9ubHkgPSAxOwogCiAJLyoKLQkgKiBUaGUgcm9kYXRhL2RhdGEvYnNzL2JyayBzZWN0 aW9uIChidXQgbm90IHRoZSBrZXJuZWwgdGV4dCEpCi0JICogc2hvdWxkIGFsc28gYmUgbm90LWV4 ZWN1dGFibGUuCi0JICoKLQkgKiBXZSBhbGlnbiBhbGxfZW5kIHRvIFBNRF9TSVpFIGJlY2F1c2Ug dGhlIGV4aXN0aW5nIG1hcHBpbmcKLQkgKiBpcyBhIGZ1bGwgUE1ELiBJZiB3ZSB3b3VsZCBhbGln biBfYnJrX2VuZCB0byBQQUdFX1NJWkUgd2UKLQkgKiBzcGxpdCB0aGUgUE1EIGFuZCB0aGUgcmVt aW5kZXIgYmV0d2VlbiBfYnJrX2VuZCBhbmQgdGhlIGVuZAotCSAqIG9mIHRoZSBQTUQgd2lsbCBy ZW1haW4gbWFwcGVkIGV4ZWN1dGFibGUuCi0JICoKLQkgKiBBbnkgUE1EIHdoaWNoIHdhcyBzZXR1 cCBhZnRlciB0aGUgb25lIHdoaWNoIGNvdmVycyBfYnJrX2VuZAotCSAqIGhhcyBiZWVuIHphcHBl ZCBhbHJlYWR5IHZpYSBjbGVhbnVwX2hpZ2htZW0oKS4KKwkgKiBUaGUgcm9kYXRhIHNlY3Rpb24g KGJ1dCBub3QgdGhlIGtlcm5lbCB0ZXh0ISkgc2hvdWxkIGFsc28gYmUKKwkgKiBub3QtZXhlY3V0 YWJsZS4KIAkgKi8KLQlhbGxfZW5kID0gcm91bmR1cCgodW5zaWduZWQgbG9uZylfYnJrX2VuZCwg UE1EX1NJWkUpOwotCXNldF9tZW1vcnlfbngocm9kYXRhX3N0YXJ0LCAoYWxsX2VuZCAtIHJvZGF0 YV9zdGFydCkgPj4gUEFHRV9TSElGVCk7CisJc2V0X21lbW9yeV9ueChyb2RhdGFfc3RhcnQsIChl bmQgLSByb2RhdGFfc3RhcnQpID4+IFBBR0VfU0hJRlQpOwogCiAJcm9kYXRhX3Rlc3QoKTsKIApk aWZmIC0tZ2l0IGEvYXJjaC94ODYvdmRzby92bWEuYyBiL2FyY2gveDg2L3Zkc28vdm1hLmMKaW5k ZXggMTUzNDA3Yy4uMGZmODgxNSAxMDA2NDQKLS0tIGEvYXJjaC94ODYvdmRzby92bWEuYworKysg Yi9hcmNoL3g4Ni92ZHNvL3ZtYS5jCkBAIC03MiwzMCArNzIsNDMgQEAgc3Vic3lzX2luaXRjYWxs KGluaXRfdmRzbyk7CiAKIHN0cnVjdCBsaW51eF9iaW5wcm07CiAKLS8qIFB1dCB0aGUgdmRzbyBh Ym92ZSB0aGUgKHJhbmRvbWl6ZWQpIHN0YWNrIHdpdGggYW5vdGhlciByYW5kb21pemVkIG9mZnNl dC4KLSAgIFRoaXMgd2F5IHRoZXJlIGlzIG5vIGhvbGUgaW4gdGhlIG1pZGRsZSBvZiBhZGRyZXNz IHNwYWNlLgotICAgVG8gc2F2ZSBtZW1vcnkgbWFrZSBzdXJlIGl0IGlzIHN0aWxsIGluIHRoZSBz YW1lIFBURSBhcyB0aGUgc3RhY2sgdG9wLgotICAgVGhpcyBkb2Vzbid0IGdpdmUgdGhhdCBtYW55 IHJhbmRvbSBiaXRzICovCisvKgorICogUHV0IHRoZSB2ZHNvIGFib3ZlIHRoZSAocmFuZG9taXpl ZCkgc3RhY2sgd2l0aCBhbm90aGVyIHJhbmRvbWl6ZWQKKyAqIG9mZnNldC4gIFRoaXMgd2F5IHRo ZXJlIGlzIG5vIGhvbGUgaW4gdGhlIG1pZGRsZSBvZiBhZGRyZXNzIHNwYWNlLgorICogVG8gc2F2 ZSBtZW1vcnkgbWFrZSBzdXJlIGl0IGlzIHN0aWxsIGluIHRoZSBzYW1lIFBURSBhcyB0aGUgc3Rh Y2sKKyAqIHRvcC4gIFRoaXMgZG9lc24ndCBnaXZlIHRoYXQgbWFueSByYW5kb20gYml0cy4KKyAq CisgKiBOb3RlIHRoYXQgdGhpcyBhbGdvcml0aG0gaXMgaW1wZXJmZWN0OiB0aGUgZGlzdHJpYnV0 aW9uIG9mIHRoZSB2ZHNvCisgKiBzdGFydCBhZGRyZXNzIHdpdGhpbiBhIFBNRCBpcyBiaWFzZWQg dG93YXJkIHRoZSBlbmQuCisgKi8KIHN0YXRpYyB1bnNpZ25lZCBsb25nIHZkc29fYWRkcih1bnNp Z25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsZW4pCiB7CiAJdW5zaWduZWQgbG9uZyBhZGRyLCBl bmQ7CiAJdW5zaWduZWQgb2Zmc2V0OwotCWVuZCA9IChzdGFydCArIFBNRF9TSVpFIC0gMSkgJiBQ TURfTUFTSzsKKworCS8qCisJICogUm91bmQgdXAgdGhlIHN0YXJ0IGFkZHJlc3MuICBJdCBjYW4g c3RhcnQgb3V0IHVuYWxpZ25lZCBhcyBhIHJlc3VsdAorCSAqIG9mIHN0YWNrIHN0YXJ0IHJhbmRv bWl6YXRpb24uCisJICovCisJc3RhcnQgPSBQQUdFX0FMSUdOKHN0YXJ0KTsKKworCS8qIFJvdW5k IHRoZSBsb3dlc3QgcG9zc2libGUgZW5kIGFkZHJlc3MgdXAgdG8gYSBQTUQgYm91bmRhcnkuICov CisJZW5kID0gKHN0YXJ0ICsgbGVuICsgUE1EX1NJWkUgLSAxKSAmIFBNRF9NQVNLOwogCWlmIChl bmQgPj0gVEFTS19TSVpFX01BWCkKIAkJZW5kID0gVEFTS19TSVpFX01BWDsKIAllbmQgLT0gbGVu OwotCS8qIFRoaXMgbG9zZXMgc29tZSBtb3JlIGJpdHMgdGhhbiBhIG1vZHVsbywgYnV0IGlzIGNo ZWFwZXIgKi8KLQlvZmZzZXQgPSBnZXRfcmFuZG9tX2ludCgpICYgKFBUUlNfUEVSX1BURSAtIDEp OwotCWFkZHIgPSBzdGFydCArIChvZmZzZXQgPDwgUEFHRV9TSElGVCk7Ci0JaWYgKGFkZHIgPj0g ZW5kKQotCQlhZGRyID0gZW5kOworCisJaWYgKGVuZCA+IHN0YXJ0KSB7CisJCW9mZnNldCA9IGdl dF9yYW5kb21faW50KCkgJSAoKChlbmQgLSBzdGFydCkgPj4gUEFHRV9TSElGVCkgKyAxKTsKKwkJ YWRkciA9IHN0YXJ0ICsgKG9mZnNldCA8PCBQQUdFX1NISUZUKTsKKwl9IGVsc2UgeworCQlhZGRy ID0gc3RhcnQ7CisJfQogCiAJLyoKLQkgKiBwYWdlLWFsaWduIGl0IGhlcmUgc28gdGhhdCBnZXRf dW5tYXBwZWRfYXJlYSBkb2Vzbid0Ci0JICogYWxpZ24gaXQgd3JvbmdmdWxseSBhZ2FpbiB0byB0 aGUgbmV4dCBwYWdlLiBhZGRyIGNhbiBjb21lIGluIDRLCi0JICogdW5hbGlnbmVkIGhlcmUgYXMg YSByZXN1bHQgb2Ygc3RhY2sgc3RhcnQgcmFuZG9taXphdGlvbi4KKwkgKiBGb3JjaWJseSBhbGln biB0aGUgZmluYWwgYWRkcmVzcyBpbiBjYXNlIHdlIGhhdmUgYSBoYXJkd2FyZQorCSAqIGlzc3Vl IHRoYXQgcmVxdWlyZXMgYWxpZ25tZW50IGZvciBwZXJmb3JtYW5jZSByZWFzb25zLgogCSAqLwot CWFkZHIgPSBQQUdFX0FMSUdOKGFkZHIpOwogCWFkZHIgPSBhbGlnbl9hZGRyKGFkZHIsIE5VTEws IEFMSUdOX1ZEU08pOwogCiAJcmV0dXJuIGFkZHI7CmRpZmYgLS1naXQgYS9hcmNoL3h0ZW5zYS9t bS9mYXVsdC5jIGIvYXJjaC94dGVuc2EvbW0vZmF1bHQuYwppbmRleCBlMzY3ZTMwLi40NDM5YTFk IDEwMDY0NAotLS0gYS9hcmNoL3h0ZW5zYS9tbS9mYXVsdC5jCisrKyBiL2FyY2gveHRlbnNhL21t L2ZhdWx0LmMKQEAgLTEwOSw2ICsxMDksOCBAQCBnb29kX2FyZWE6CiAJaWYgKHVubGlrZWx5KGZh dWx0ICYgVk1fRkFVTFRfRVJST1IpKSB7CiAJCWlmIChmYXVsdCAmIFZNX0ZBVUxUX09PTSkKIAkJ CWdvdG8gb3V0X29mX21lbW9yeTsKKwkJZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdTRUdW KQorCQkJZ290byBiYWRfYXJlYTsKIAkJZWxzZSBpZiAoZmF1bHQgJiBWTV9GQVVMVF9TSUdCVVMp CiAJCQlnb3RvIGRvX3NpZ2J1czsKIAkJQlVHKCk7CmRpZmYgLS1naXQgYS9ibG9jay9nZW5oZC5j IGIvYmxvY2svZ2VuaGQuYwppbmRleCA0MWIwNDM1Li40MjRkMWZhIDEwMDY0NAotLS0gYS9ibG9j ay9nZW5oZC5jCisrKyBiL2Jsb2NrL2dlbmhkLmMKQEAgLTEwNzAsOSArMTA3MCwxNiBAQCBpbnQg ZGlza19leHBhbmRfcGFydF90Ymwoc3RydWN0IGdlbmRpc2sgKmRpc2ssIGludCBwYXJ0bm8pCiAJ c3RydWN0IGRpc2tfcGFydF90YmwgKm9sZF9wdGJsID0gZGlzay0+cGFydF90Ymw7CiAJc3RydWN0 IGRpc2tfcGFydF90YmwgKm5ld19wdGJsOwogCWludCBsZW4gPSBvbGRfcHRibCA/IG9sZF9wdGJs LT5sZW4gOiAwOwotCWludCB0YXJnZXQgPSBwYXJ0bm8gKyAxOworCWludCBpLCB0YXJnZXQ7CiAJ c2l6ZV90IHNpemU7Ci0JaW50IGk7CisKKwkvKgorCSAqIGNoZWNrIGZvciBpbnQgb3ZlcmZsb3cs IHNpbmNlIHdlIGNhbiBnZXQgaGVyZSBmcm9tIGJsa3BnX2lvY3RsKCkKKwkgKiB3aXRoIGEgdXNl ciBwYXNzZWQgJ3BhcnRubycuCisJICovCisJdGFyZ2V0ID0gcGFydG5vICsgMTsKKwlpZiAodGFy Z2V0IDwgMCkKKwkJcmV0dXJuIC1FSU5WQUw7CiAKIAkvKiBkaXNrX21heF9wYXJ0cygpIGlzIHpl cm8gZHVyaW5nIGluaXRpYWxpemF0aW9uLCBpZ25vcmUgaWYgc28gKi8KIAlpZiAoZGlza19tYXhf cGFydHMoZGlzaykgJiYgdGFyZ2V0ID4gZGlza19tYXhfcGFydHMoZGlzaykpCmRpZmYgLS1naXQg YS9jcnlwdG8vYWVzX2dlbmVyaWMuYyBiL2NyeXB0by9hZXNfZ2VuZXJpYy5jCmluZGV4IGE2OGM3 M2QuLmJkNzc2YmUgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hZXNfZ2VuZXJpYy5jCisrKyBiL2NyeXB0 by9hZXNfZ2VuZXJpYy5jCkBAIC0xNDc1LDQgKzE0NzUsNSBAQCBtb2R1bGVfZXhpdChhZXNfZmlu aSk7CiAKIE1PRFVMRV9ERVNDUklQVElPTigiUmlqbmRhZWwgKEFFUykgQ2lwaGVyIEFsZ29yaXRo bSIpOwogTU9EVUxFX0xJQ0VOU0UoIkR1YWwgQlNEL0dQTCIpOwotTU9EVUxFX0FMSUFTKCJhZXMi KTsKK01PRFVMRV9BTElBU19DUllQVE8oImFlcyIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiYWVz LWdlbmVyaWMiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9hZl9hbGcuYyBiL2NyeXB0by9hZl9hbGcu YwppbmRleCBiZjk0OGUxLi42ZWY2ZTJhIDEwMDY0NAotLS0gYS9jcnlwdG8vYWZfYWxnLmMKKysr IGIvY3J5cHRvL2FmX2FsZy5jCkBAIC00NDksNiArNDQ5LDkgQEAgdm9pZCBhZl9hbGdfY29tcGxl dGUoc3RydWN0IGNyeXB0b19hc3luY19yZXF1ZXN0ICpyZXEsIGludCBlcnIpCiB7CiAJc3RydWN0 IGFmX2FsZ19jb21wbGV0aW9uICpjb21wbGV0aW9uID0gcmVxLT5kYXRhOwogCisJaWYgKGVyciA9 PSAtRUlOUFJPR1JFU1MpCisJCXJldHVybjsKKwogCWNvbXBsZXRpb24tPmVyciA9IGVycjsKIAlj b21wbGV0ZSgmY29tcGxldGlvbi0+Y29tcGxldGlvbik7CiB9CmRpZmYgLS1naXQgYS9jcnlwdG8v YWxnYXBpLmMgYi9jcnlwdG8vYWxnYXBpLmMKaW5kZXggZGM5OTkxZi4uM2I5ZWY5MiAxMDA2NDQK LS0tIGEvY3J5cHRvL2FsZ2FwaS5jCisrKyBiL2NyeXB0by9hbGdhcGkuYwpAQCAtNDc3LDggKzQ3 Nyw4IEBAIHN0YXRpYyBzdHJ1Y3QgY3J5cHRvX3RlbXBsYXRlICpfX2NyeXB0b19sb29rdXBfdGVt cGxhdGUoY29uc3QgY2hhciAqbmFtZSkKIAogc3RydWN0IGNyeXB0b190ZW1wbGF0ZSAqY3J5cHRv X2xvb2t1cF90ZW1wbGF0ZShjb25zdCBjaGFyICpuYW1lKQogewotCXJldHVybiB0cnlfdGhlbl9y ZXF1ZXN0X21vZHVsZShfX2NyeXB0b19sb29rdXBfdGVtcGxhdGUobmFtZSksICIlcyIsCi0JCQkJ ICAgICAgIG5hbWUpOworCXJldHVybiB0cnlfdGhlbl9yZXF1ZXN0X21vZHVsZShfX2NyeXB0b19s b29rdXBfdGVtcGxhdGUobmFtZSksCisJCQkJICAgICAgICJjcnlwdG8tJXMiLCBuYW1lKTsKIH0K IEVYUE9SVF9TWU1CT0xfR1BMKGNyeXB0b19sb29rdXBfdGVtcGxhdGUpOwogCmRpZmYgLS1naXQg YS9jcnlwdG8vYW5zaV9jcHJuZy5jIGIvY3J5cHRvL2Fuc2lfY3BybmcuYwppbmRleCA2MDU2MTc4 Li5mMTEyY2EyIDEwMDY0NAotLS0gYS9jcnlwdG8vYW5zaV9jcHJuZy5jCisrKyBiL2NyeXB0by9h bnNpX2Nwcm5nLmMKQEAgLTQ4NSw0ICs0ODUsNSBAQCBtb2R1bGVfcGFyYW0oZGJnLCBpbnQsIDAp OwogTU9EVUxFX1BBUk1fREVTQyhkYmcsICJCb29sZWFuIHRvIGVuYWJsZSBkZWJ1Z2dpbmcgKDAv MSA9PSBvZmYvb24pIik7CiBtb2R1bGVfaW5pdChwcm5nX21vZF9pbml0KTsKIG1vZHVsZV9leGl0 KHBybmdfbW9kX2ZpbmkpOwotTU9EVUxFX0FMSUFTKCJzdGRybmciKTsKK01PRFVMRV9BTElBU19D UllQVE8oInN0ZHJuZyIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiYW5zaV9jcHJuZyIpOwpkaWZm IC0tZ2l0IGEvY3J5cHRvL2FudWJpcy5jIGIvY3J5cHRvL2FudWJpcy5jCmluZGV4IDc3NTMwZDUu LjUyM2VkNTIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9hbnViaXMuYworKysgYi9jcnlwdG8vYW51Ymlz LmMKQEAgLTcwNSwzICs3MDUsNCBAQCBtb2R1bGVfZXhpdChhbnViaXNfbW9kX2ZpbmkpOwogCiBN T0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkFudWJpcyBDcnlwdG9n cmFwaGljIEFsZ29yaXRobSIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiYW51YmlzIik7CmRpZmYg LS1naXQgYS9jcnlwdG8vYXBpLmMgYi9jcnlwdG8vYXBpLmMKaW5kZXggY2VhM2NmNi4uYWM4MDc5 NCAxMDA2NDQKLS0tIGEvY3J5cHRvL2FwaS5jCisrKyBiL2NyeXB0by9hcGkuYwpAQCAtMjIyLDEx ICsyMjIsMTEgQEAgc3RydWN0IGNyeXB0b19hbGcgKmNyeXB0b19sYXJ2YWxfbG9va3VwKGNvbnN0 IGNoYXIgKm5hbWUsIHUzMiB0eXBlLCB1MzIgbWFzaykKIAogCWFsZyA9IGNyeXB0b19hbGdfbG9v a3VwKG5hbWUsIHR5cGUsIG1hc2spOwogCWlmICghYWxnKSB7Ci0JCXJlcXVlc3RfbW9kdWxlKCIl cyIsIG5hbWUpOworCQlyZXF1ZXN0X21vZHVsZSgiY3J5cHRvLSVzIiwgbmFtZSk7CiAKIAkJaWYg KCEoKHR5cGUgXiBDUllQVE9fQUxHX05FRURfRkFMTEJBQ0spICYgbWFzayAmCiAJCSAgICAgIENS WVBUT19BTEdfTkVFRF9GQUxMQkFDSykpCi0JCQlyZXF1ZXN0X21vZHVsZSgiJXMtYWxsIiwgbmFt ZSk7CisJCQlyZXF1ZXN0X21vZHVsZSgiY3J5cHRvLSVzLWFsbCIsIG5hbWUpOwogCiAJCWFsZyA9 IGNyeXB0b19hbGdfbG9va3VwKG5hbWUsIHR5cGUsIG1hc2spOwogCX0KZGlmZiAtLWdpdCBhL2Ny eXB0by9hcmM0LmMgYi9jcnlwdG8vYXJjNC5jCmluZGV4IDBkMTJhOTYuLmM0MDQ2MjMgMTAwNjQ0 Ci0tLSBhL2NyeXB0by9hcmM0LmMKKysrIGIvY3J5cHRvL2FyYzQuYwpAQCAtMTAxLDMgKzEwMSw0 IEBAIG1vZHVsZV9leGl0KGFyYzRfZXhpdCk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RV TEVfREVTQ1JJUFRJT04oIkFSQzQgQ2lwaGVyIEFsZ29yaXRobSIpOwogTU9EVUxFX0FVVEhPUigi Sm9uIE9iZXJoZWlkZSA8am9uQG9iZXJoZWlkZS5vcmc+Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRP KCJhcmM0Iik7CmRpZmYgLS1naXQgYS9jcnlwdG8vYXV0aGVuYy5jIGIvY3J5cHRvL2F1dGhlbmMu YwppbmRleCBkMjFkYTJmLi4xMTJiNGUzIDEwMDY0NAotLS0gYS9jcnlwdG8vYXV0aGVuYy5jCisr KyBiL2NyeXB0by9hdXRoZW5jLmMKQEAgLTcxMCwzICs3MTAsNCBAQCBtb2R1bGVfZXhpdChjcnlw dG9fYXV0aGVuY19tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVM RV9ERVNDUklQVElPTigiU2ltcGxlIEFFQUQgd3JhcHBlciBmb3IgSVBzZWMiKTsKK01PRFVMRV9B TElBU19DUllQVE8oImF1dGhlbmMiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9hdXRoZW5jZXNuLmMg Yi9jcnlwdG8vYXV0aGVuY2Vzbi5jCmluZGV4IDEzNmI2OGIuLmRkMWYzMDMgMTAwNjQ0Ci0tLSBh L2NyeXB0by9hdXRoZW5jZXNuLmMKKysrIGIvY3J5cHRvL2F1dGhlbmNlc24uYwpAQCAtODMzLDMg KzgzMyw0IEBAIG1vZHVsZV9leGl0KGNyeXB0b19hdXRoZW5jX2Vzbl9tb2R1bGVfZXhpdCk7CiBN T0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQVVUSE9SKCJTdGVmZmVuIEtsYXNzZXJ0IDxz dGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJBRUFE IHdyYXBwZXIgZm9yIElQc2VjIHdpdGggZXh0ZW5kZWQgc2VxdWVuY2UgbnVtYmVycyIpOworTU9E VUxFX0FMSUFTX0NSWVBUTygiYXV0aGVuY2VzbiIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Jsb3dm aXNoX2dlbmVyaWMuYyBiL2NyeXB0by9ibG93ZmlzaF9nZW5lcmljLmMKaW5kZXggNmYyNjliNS4u MDkzODYwOSAxMDA2NDQKLS0tIGEvY3J5cHRvL2Jsb3dmaXNoX2dlbmVyaWMuYworKysgYi9jcnlw dG8vYmxvd2Zpc2hfZ2VuZXJpYy5jCkBAIC0xMzksNCArMTM5LDUgQEAgbW9kdWxlX2V4aXQoYmxv d2Zpc2hfbW9kX2ZpbmkpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJ UFRJT04oIkJsb3dmaXNoIENpcGhlciBBbGdvcml0aG0iKTsKLU1PRFVMRV9BTElBUygiYmxvd2Zp c2giKTsKK01PRFVMRV9BTElBU19DUllQVE8oImJsb3dmaXNoIik7CitNT0RVTEVfQUxJQVNfQ1JZ UFRPKCJibG93ZmlzaC1nZW5lcmljIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vY2FtZWxsaWEuYyBi L2NyeXB0by9jYW1lbGxpYS5jCmluZGV4IDY0Y2ZmNDYuLjE4MDI0ZGEgMTAwNjQ0Ci0tLSBhL2Ny eXB0by9jYW1lbGxpYS5jCisrKyBiL2NyeXB0by9jYW1lbGxpYS5jCkBAIC0xMTE0LDMgKzExMTQs NCBAQCBtb2R1bGVfZXhpdChjYW1lbGxpYV9maW5pKTsKIAogTU9EVUxFX0RFU0NSSVBUSU9OKCJD YW1lbGxpYSBDaXBoZXIgQWxnb3JpdGhtIik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CitNT0RV TEVfQUxJQVNfQ1JZUFRPKCJjYW1lbGxpYSIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2Nhc3Q1LmMg Yi9jcnlwdG8vY2FzdDUuYwppbmRleCA0YTIzMGRkLi5iNWY3ZWU1IDEwMDY0NAotLS0gYS9jcnlw dG8vY2FzdDUuYworKysgYi9jcnlwdG8vY2FzdDUuYwpAQCAtODA2LDQgKzgwNiw1IEBAIG1vZHVs ZV9leGl0KGNhc3Q1X21vZF9maW5pKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxF X0RFU0NSSVBUSU9OKCJDYXN0NSBDaXBoZXIgQWxnb3JpdGhtIik7CitNT0RVTEVfQUxJQVNfQ1JZ UFRPKCJjYXN0NSIpOwogCmRpZmYgLS1naXQgYS9jcnlwdG8vY2FzdDYuYyBiL2NyeXB0by9jYXN0 Ni5jCmluZGV4IGUwYzE1YTYuLjY4Mzk1ODcgMTAwNjQ0Ci0tLSBhL2NyeXB0by9jYXN0Ni5jCisr KyBiL2NyeXB0by9jYXN0Ni5jCkBAIC01NDUsMyArNTQ1LDQgQEAgbW9kdWxlX2V4aXQoY2FzdDZf bW9kX2ZpbmkpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04o IkNhc3Q2IENpcGhlciBBbGdvcml0aG0iKTsKK01PRFVMRV9BTElBU19DUllQVE8oImNhc3Q2Iik7 CmRpZmYgLS1naXQgYS9jcnlwdG8vY2JjLmMgYi9jcnlwdG8vY2JjLmMKaW5kZXggNjFhYzQyZS4u NzgwZWUyNyAxMDA2NDQKLS0tIGEvY3J5cHRvL2NiYy5jCisrKyBiL2NyeXB0by9jYmMuYwpAQCAt Mjg5LDMgKzI4OSw0IEBAIG1vZHVsZV9leGl0KGNyeXB0b19jYmNfbW9kdWxlX2V4aXQpOwogCiBN T0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIkNCQyBibG9jayBjaXBo ZXIgYWxnb3JpdGhtIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJjYmMiKTsKZGlmZiAtLWdpdCBh L2NyeXB0by9jY20uYyBiL2NyeXB0by9jY20uYwppbmRleCAyMDAyY2E3Li5hYThkNGY1IDEwMDY0 NAotLS0gYS9jcnlwdG8vY2NtLmMKKysrIGIvY3J5cHRvL2NjbS5jCkBAIC04ODgsNSArODg4LDYg QEAgbW9kdWxlX2V4aXQoY3J5cHRvX2NjbV9tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNF KCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQ291bnRlciB3aXRoIENCQyBNQUMiKTsKLU1P RFVMRV9BTElBUygiY2NtX2Jhc2UiKTsKLU1PRFVMRV9BTElBUygicmZjNDMwOSIpOworTU9EVUxF X0FMSUFTX0NSWVBUTygiY2NtX2Jhc2UiKTsKK01PRFVMRV9BTElBU19DUllQVE8oInJmYzQzMDki KTsKK01PRFVMRV9BTElBU19DUllQVE8oImNjbSIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2NoYWlu aXYuYyBiL2NyeXB0by9jaGFpbml2LmMKaW5kZXggYmEyMDBiMC4uM2JmMmViMCAxMDA2NDQKLS0t IGEvY3J5cHRvL2NoYWluaXYuYworKysgYi9jcnlwdG8vY2hhaW5pdi5jCkBAIC0zNjAsMyArMzYw LDQgQEAgbW9kdWxlX2V4aXQoY2hhaW5pdl9tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNF KCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQ2hhaW4gSVYgR2VuZXJhdG9yIik7CitNT0RV TEVfQUxJQVNfQ1JZUFRPKCJjaGFpbml2Iik7CmRpZmYgLS1naXQgYS9jcnlwdG8vY3JjMzJjLmMg Yi9jcnlwdG8vY3JjMzJjLmMKaW5kZXggM2Y5YWQyOC4uYjJjMDMwYiAxMDA2NDQKLS0tIGEvY3J5 cHRvL2NyYzMyYy5jCisrKyBiL2NyeXB0by9jcmMzMmMuYwpAQCAtMjU4LDMgKzI1OCw0IEBAIG1v ZHVsZV9leGl0KGNyYzMyY19tb2RfZmluaSk7CiBNT0RVTEVfQVVUSE9SKCJDbGF5IEhhYXBhbGEg PGNoYWFwYWxhQGNpc2NvLmNvbT4iKTsKIE1PRFVMRV9ERVNDUklQVElPTigiQ1JDMzJjIChDYXN0 YWdub2xpKSBjYWxjdWxhdGlvbnMgd3JhcHBlciBmb3IgbGliL2NyYzMyYyIpOwogTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiY3JjMzJjIik7CmRpZmYgLS1naXQg YS9jcnlwdG8vY3J5cHRkLmMgYi9jcnlwdG8vY3J5cHRkLmMKaW5kZXggN2JkZDYxYi4uNzVjNDE1 ZCAxMDA2NDQKLS0tIGEvY3J5cHRvL2NyeXB0ZC5jCisrKyBiL2NyeXB0by9jcnlwdGQuYwpAQCAt OTU1LDMgKzk1NSw0IEBAIG1vZHVsZV9leGl0KGNyeXB0ZF9leGl0KTsKIAogTU9EVUxFX0xJQ0VO U0UoIkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJTb2Z0d2FyZSBhc3luYyBjcnlwdG8gZGFl bW9uIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJjcnlwdGQiKTsKZGlmZiAtLWdpdCBhL2NyeXB0 by9jcnlwdG9fbnVsbC5jIGIvY3J5cHRvL2NyeXB0b19udWxsLmMKaW5kZXggMDdhOGE5Ni4uN2Ey ZmJmNiAxMDA2NDQKLS0tIGEvY3J5cHRvL2NyeXB0b19udWxsLmMKKysrIGIvY3J5cHRvL2NyeXB0 b19udWxsLmMKQEAgLTE1Niw5ICsxNTYsOSBAQCBzdGF0aWMgc3RydWN0IGNyeXB0b19hbGcgc2tj aXBoZXJfbnVsbCA9IHsKIAkuZGVjcnlwdAkJPQlza2NpcGhlcl9udWxsX2NyeXB0IH0gfQogfTsK IAotTU9EVUxFX0FMSUFTKCJjb21wcmVzc19udWxsIik7Ci1NT0RVTEVfQUxJQVMoImRpZ2VzdF9u dWxsIik7Ci1NT0RVTEVfQUxJQVMoImNpcGhlcl9udWxsIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRP KCJjb21wcmVzc19udWxsIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJkaWdlc3RfbnVsbCIpOwor TU9EVUxFX0FMSUFTX0NSWVBUTygiY2lwaGVyX251bGwiKTsKIAogc3RhdGljIGludCBfX2luaXQg Y3J5cHRvX251bGxfbW9kX2luaXQodm9pZCkKIHsKZGlmZiAtLWdpdCBhL2NyeXB0by9jdHIuYyBi L2NyeXB0by9jdHIuYwppbmRleCA0Y2E3MjIyLi5mZjdiM2EzIDEwMDY0NAotLS0gYS9jcnlwdG8v Y3RyLmMKKysrIGIvY3J5cHRvL2N0ci5jCkBAIC00MjEsNCArNDIxLDUgQEAgbW9kdWxlX2V4aXQo Y3J5cHRvX2N0cl9tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVM RV9ERVNDUklQVElPTigiQ1RSIENvdW50ZXIgYmxvY2sgbW9kZSIpOwotTU9EVUxFX0FMSUFTKCJy ZmMzNjg2Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJyZmMzNjg2Iik7CitNT0RVTEVfQUxJQVNf Q1JZUFRPKCJjdHIiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9jdHMuYyBiL2NyeXB0by9jdHMuYwpp bmRleCBjY2Y5YzVkLi43MTQyODNkIDEwMDY0NAotLS0gYS9jcnlwdG8vY3RzLmMKKysrIGIvY3J5 cHRvL2N0cy5jCkBAIC0zNTEsMyArMzUxLDQgQEAgbW9kdWxlX2V4aXQoY3J5cHRvX2N0c19tb2R1 bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJEdWFsIEJTRC9HUEwiKTsKIE1PRFVMRV9ERVND UklQVElPTigiQ1RTLUNCQyBDaXBoZXJUZXh0IFN0ZWFsaW5nIGZvciBDQkMiKTsKK01PRFVMRV9B TElBU19DUllQVE8oImN0cyIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2RlZmxhdGUuYyBiL2NyeXB0 by9kZWZsYXRlLmMKaW5kZXggYjAxNjVlYy4uNDY3NDIzYSAxMDA2NDQKLS0tIGEvY3J5cHRvL2Rl ZmxhdGUuYworKysgYi9jcnlwdG8vZGVmbGF0ZS5jCkBAIC0yMjMsNCArMjIzLDQgQEAgbW9kdWxl X2V4aXQoZGVmbGF0ZV9tb2RfZmluaSk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVf REVTQ1JJUFRJT04oIkRlZmxhdGUgQ29tcHJlc3Npb24gQWxnb3JpdGhtIGZvciBJUENPTVAiKTsK IE1PRFVMRV9BVVRIT1IoIkphbWVzIE1vcnJpcyA8am1vcnJpc0BpbnRlcmNvZGUuY29tLmF1PiIp OwotCitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJkZWZsYXRlIik7CmRpZmYgLS1naXQgYS9jcnlwdG8v ZGVzX2dlbmVyaWMuYyBiL2NyeXB0by9kZXNfZ2VuZXJpYy5jCmluZGV4IDg3MzgxOGQuLmU0MDQy MDEgMTAwNjQ0Ci0tLSBhL2NyeXB0by9kZXNfZ2VuZXJpYy5jCisrKyBiL2NyeXB0by9kZXNfZ2Vu ZXJpYy5jCkBAIC05NzUsOCArOTc1LDYgQEAgc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGRlczNf ZWRlX2FsZyA9IHsKIAkuY2lhX2RlY3J5cHQJCT0JZGVzM19lZGVfZGVjcnlwdCB9IH0KIH07CiAK LU1PRFVMRV9BTElBUygiZGVzM19lZGUiKTsKLQogc3RhdGljIGludCBfX2luaXQgZGVzX2dlbmVy aWNfbW9kX2luaXQodm9pZCkKIHsKIAlpbnQgcmV0ID0gMDsKQEAgLTEwMDQsNCArMTAwMiw3IEBA IG1vZHVsZV9leGl0KGRlc19nZW5lcmljX21vZF9maW5pKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwi KTsKIE1PRFVMRV9ERVNDUklQVElPTigiREVTICYgVHJpcGxlIERFUyBFREUgQ2lwaGVyIEFsZ29y aXRobXMiKTsKIE1PRFVMRV9BVVRIT1IoIkRhZyBBcm5lIE9zdmlrIDxkYUBvc3Zpay5ubz4iKTsK LU1PRFVMRV9BTElBUygiZGVzIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJkZXMiKTsKK01PRFVM RV9BTElBU19DUllQVE8oImRlcy1nZW5lcmljIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJkZXMz X2VkZSIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiZGVzM19lZGUtZ2VuZXJpYyIpOwpkaWZmIC0t Z2l0IGEvY3J5cHRvL2VjYi5jIGIvY3J5cHRvL2VjYi5jCmluZGV4IDkzNWNmZWYuLjEyMDExYWYg MTAwNjQ0Ci0tLSBhL2NyeXB0by9lY2IuYworKysgYi9jcnlwdG8vZWNiLmMKQEAgLTE4NSwzICsx ODUsNCBAQCBtb2R1bGVfZXhpdChjcnlwdG9fZWNiX21vZHVsZV9leGl0KTsKIAogTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJFQ0IgYmxvY2sgY2lwaGVyIGFsZ29y aXRobSIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiZWNiIik7CmRpZmYgLS1naXQgYS9jcnlwdG8v ZXNlcWl2LmMgYi9jcnlwdG8vZXNlcWl2LmMKaW5kZXggNDJjZTlmNS4uMzg4ZjU4MiAxMDA2NDQK LS0tIGEvY3J5cHRvL2VzZXFpdi5jCisrKyBiL2NyeXB0by9lc2VxaXYuYwpAQCAtMjY3LDMgKzI2 Nyw0IEBAIG1vZHVsZV9leGl0KGVzZXFpdl9tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNF KCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiRW5jcnlwdGVkIFNlcXVlbmNlIE51bWJlciBJ ViBHZW5lcmF0b3IiKTsKK01PRFVMRV9BTElBU19DUllQVE8oImVzZXFpdiIpOwpkaWZmIC0tZ2l0 IGEvY3J5cHRvL2ZjcnlwdC5jIGIvY3J5cHRvL2ZjcnlwdC5jCmluZGV4IGMzMzEwN2UuLmQ5OWE2 N2QgMTAwNjQ0Ci0tLSBhL2NyeXB0by9mY3J5cHQuYworKysgYi9jcnlwdG8vZmNyeXB0LmMKQEAg LTQyMSwzICs0MjEsNCBAQCBtb2R1bGVfZXhpdChmY3J5cHRfbW9kX2ZpbmkpOwogTU9EVUxFX0xJ Q0VOU0UoIkR1YWwgQlNEL0dQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJGQ3J5cHQgQ2lwaGVy IEFsZ29yaXRobSIpOwogTU9EVUxFX0FVVEhPUigiRGF2aWQgSG93ZWxscyA8ZGhvd2VsbHNAcmVk aGF0LmNvbT4iKTsKK01PRFVMRV9BTElBU19DUllQVE8oImZjcnlwdCIpOwpkaWZmIC0tZ2l0IGEv Y3J5cHRvL2djbS5jIGIvY3J5cHRvL2djbS5jCmluZGV4IGI5N2IxODYuLjFlMzM1NjEgMTAwNjQ0 Ci0tLSBhL2NyeXB0by9nY20uYworKysgYi9jcnlwdG8vZ2NtLmMKQEAgLTEzNzQsNiArMTM3NCw3 IEBAIG1vZHVsZV9leGl0KGNyeXB0b19nY21fbW9kdWxlX2V4aXQpOwogTU9EVUxFX0xJQ0VOU0Uo IkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJHYWxvaXMvQ291bnRlciBNb2RlIik7CiBNT0RV TEVfQVVUSE9SKCJNaWtrbyBIZXJyYW5lbiA8bWgxQGlraS5maT4iKTsKLU1PRFVMRV9BTElBUygi Z2NtX2Jhc2UiKTsKLU1PRFVMRV9BTElBUygicmZjNDEwNiIpOwotTU9EVUxFX0FMSUFTKCJyZmM0 NTQzIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJnY21fYmFzZSIpOworTU9EVUxFX0FMSUFTX0NS WVBUTygicmZjNDEwNiIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygicmZjNDU0MyIpOworTU9EVUxF X0FMSUFTX0NSWVBUTygiZ2NtIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vZ2hhc2gtZ2VuZXJpYy5j IGIvY3J5cHRvL2doYXNoLWdlbmVyaWMuYwppbmRleCA3ODM1YjhmLi5iZjVmOGQ3IDEwMDY0NAot LS0gYS9jcnlwdG8vZ2hhc2gtZ2VuZXJpYy5jCisrKyBiL2NyeXB0by9naGFzaC1nZW5lcmljLmMK QEAgLTE3Myw0ICsxNzMsNSBAQCBtb2R1bGVfZXhpdChnaGFzaF9tb2RfZXhpdCk7CiAKIE1PRFVM RV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiR0hBU0ggTWVzc2FnZSBEaWdl c3QgQWxnb3JpdGhtIik7Ci1NT0RVTEVfQUxJQVMoImdoYXNoIik7CitNT0RVTEVfQUxJQVNfQ1JZ UFRPKCJnaGFzaCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiZ2hhc2gtZ2VuZXJpYyIpOwpkaWZm IC0tZ2l0IGEvY3J5cHRvL2htYWMuYyBiL2NyeXB0by9obWFjLmMKaW5kZXggOGQ5NTQ0Yy4uYWRl NzkwYiAxMDA2NDQKLS0tIGEvY3J5cHRvL2htYWMuYworKysgYi9jcnlwdG8vaG1hYy5jCkBAIC0y NzEsMyArMjcxLDQgQEAgbW9kdWxlX2V4aXQoaG1hY19tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9M SUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiSE1BQyBoYXNoIGFsZ29yaXRobSIp OworTU9EVUxFX0FMSUFTX0NSWVBUTygiaG1hYyIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL2toYXph ZC5jIGIvY3J5cHRvL2toYXphZC5jCmluZGV4IDUyN2U0ZTMuLmVhODIwNTEgMTAwNjQ0Ci0tLSBh L2NyeXB0by9raGF6YWQuYworKysgYi9jcnlwdG8va2hhemFkLmMKQEAgLTg4MSwzICs4ODEsNCBA QCBtb2R1bGVfZXhpdChraGF6YWRfbW9kX2ZpbmkpOwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7 CiBNT0RVTEVfREVTQ1JJUFRJT04oIktoYXphZCBDcnlwdG9ncmFwaGljIEFsZ29yaXRobSIpOwor TU9EVUxFX0FMSUFTX0NSWVBUTygia2hhemFkIik7CmRpZmYgLS1naXQgYS9jcnlwdG8va3JuZy5j IGIvY3J5cHRvL2tybmcuYwppbmRleCA0MzI4YmIzLi44NTQxOGQ2IDEwMDY0NAotLS0gYS9jcnlw dG8va3JuZy5jCisrKyBiL2NyeXB0by9rcm5nLmMKQEAgLTYzLDQgKzYzLDUgQEAgbW9kdWxlX2V4 aXQoa3JuZ19tb2RfZmluaSk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVND UklQVElPTigiS2VybmVsIFJhbmRvbSBOdW1iZXIgR2VuZXJhdG9yIik7Ci1NT0RVTEVfQUxJQVMo InN0ZHJuZyIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic3Rkcm5nIik7CitNT0RVTEVfQUxJQVNf Q1JZUFRPKCJrcm5nIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vbHJ3LmMgYi9jcnlwdG8vbHJ3LmMK aW5kZXggMzU4ZjgwYi4uNTY3YzE5NSAxMDA2NDQKLS0tIGEvY3J5cHRvL2xydy5jCisrKyBiL2Ny eXB0by9scncuYwpAQCAtMzEyLDMgKzMxMiw0IEBAIG1vZHVsZV9leGl0KGNyeXB0b19tb2R1bGVf ZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiTFJX IGJsb2NrIGNpcGhlciBtb2RlIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJscnciKTsKZGlmZiAt LWdpdCBhL2NyeXB0by9sem8uYyBiL2NyeXB0by9sem8uYwppbmRleCBiNWU3NzA3Li42YjIxMTUy IDEwMDY0NAotLS0gYS9jcnlwdG8vbHpvLmMKKysrIGIvY3J5cHRvL2x6by5jCkBAIC0xMDQsMyAr MTA0LDQgQEAgbW9kdWxlX2V4aXQobHpvX21vZF9maW5pKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQ TCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJMWk8gQ29tcHJlc3Npb24gQWxnb3JpdGhtIik7CitN T0RVTEVfQUxJQVNfQ1JZUFRPKCJsem8iKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9tZDQuYyBiL2Ny eXB0by9tZDQuYwppbmRleCAwNDc3YTZhLi4zNTE1YWY0IDEwMDY0NAotLS0gYS9jcnlwdG8vbWQ0 LmMKKysrIGIvY3J5cHRvL21kNC5jCkBAIC0yNTUsNCArMjU1LDQgQEAgbW9kdWxlX2V4aXQobWQ0 X21vZF9maW5pKTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9O KCJNRDQgTWVzc2FnZSBEaWdlc3QgQWxnb3JpdGhtIik7Ci0KK01PRFVMRV9BTElBU19DUllQVE8o Im1kNCIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL21kNS5jIGIvY3J5cHRvL21kNS5jCmluZGV4IDdm ZWJlYWEuLjM2ZjVlNWIgMTAwNjQ0Ci0tLSBhL2NyeXB0by9tZDUuYworKysgYi9jcnlwdG8vbWQ1 LmMKQEAgLTE2OCwzICsxNjgsNCBAQCBtb2R1bGVfZXhpdChtZDVfbW9kX2ZpbmkpOwogCiBNT0RV TEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIk1ENSBNZXNzYWdlIERpZ2Vz dCBBbGdvcml0aG0iKTsKK01PRFVMRV9BTElBU19DUllQVE8oIm1kNSIpOwpkaWZmIC0tZ2l0IGEv Y3J5cHRvL21pY2hhZWxfbWljLmMgYi9jcnlwdG8vbWljaGFlbF9taWMuYwppbmRleCAwNzliNzYx Li40NjE5NWUwIDEwMDY0NAotLS0gYS9jcnlwdG8vbWljaGFlbF9taWMuYworKysgYi9jcnlwdG8v bWljaGFlbF9taWMuYwpAQCAtMTg0LDMgKzE4NCw0IEBAIG1vZHVsZV9leGl0KG1pY2hhZWxfbWlj X2V4aXQpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJN aWNoYWVsIE1JQyIpOwogTU9EVUxFX0FVVEhPUigiSm91bmkgTWFsaW5lbiA8akB3MS5maT4iKTsK K01PRFVMRV9BTElBU19DUllQVE8oIm1pY2hhZWxfbWljIik7CmRpZmYgLS1naXQgYS9jcnlwdG8v cGNiYy5jIGIvY3J5cHRvL3BjYmMuYwppbmRleCBkMWI4YmRmLi5mNjU0OTY1IDEwMDY0NAotLS0g YS9jcnlwdG8vcGNiYy5jCisrKyBiL2NyeXB0by9wY2JjLmMKQEAgLTI5NSwzICsyOTUsNCBAQCBt b2R1bGVfZXhpdChjcnlwdG9fcGNiY19tb2R1bGVfZXhpdCk7CiAKIE1PRFVMRV9MSUNFTlNFKCJH UEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiUENCQyBibG9jayBjaXBoZXIgYWxnb3JpdGhtIik7 CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJwY2JjIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vcGNyeXB0 LmMgYi9jcnlwdG8vcGNyeXB0LmMKaW5kZXggMjlhODlkYS4uYmE5MjA0NiAxMDA2NDQKLS0tIGEv Y3J5cHRvL3BjcnlwdC5jCisrKyBiL2NyeXB0by9wY3J5cHQuYwpAQCAtNTY1LDMgKzU2NSw0IEBA IG1vZHVsZV9leGl0KHBjcnlwdF9leGl0KTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVM RV9BVVRIT1IoIlN0ZWZmZW4gS2xhc3NlcnQgPHN0ZWZmZW4ua2xhc3NlcnRAc2VjdW5ldC5jb20+ Iik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlBhcmFsbGVsIGNyeXB0byB3cmFwcGVyIik7CitNT0RV TEVfQUxJQVNfQ1JZUFRPKCJwY3J5cHQiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ybWQxMjguYyBi L2NyeXB0by9ybWQxMjguYwppbmRleCA4YTBmNjhiLi4wNDk0ODZlIDEwMDY0NAotLS0gYS9jcnlw dG8vcm1kMTI4LmMKKysrIGIvY3J5cHRvL3JtZDEyOC5jCkBAIC0zMjcsMyArMzI3LDQgQEAgbW9k dWxlX2V4aXQocm1kMTI4X21vZF9maW5pKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVM RV9BVVRIT1IoIkFkcmlhbi1LZW4gUnVlZWdzZWdnZXIgPGtlbkBjb2RlbGFicy5jaD4iKTsKIE1P RFVMRV9ERVNDUklQVElPTigiUklQRU1ELTEyOCBNZXNzYWdlIERpZ2VzdCIpOworTU9EVUxFX0FM SUFTX0NSWVBUTygicm1kMTI4Iik7CmRpZmYgLS1naXQgYS9jcnlwdG8vcm1kMTYwLmMgYi9jcnlw dG8vcm1kMTYwLmMKaW5kZXggNTI1ZDdiYi4uZGU1ODVlNSAxMDA2NDQKLS0tIGEvY3J5cHRvL3Jt ZDE2MC5jCisrKyBiL2NyeXB0by9ybWQxNjAuYwpAQCAtMzcxLDMgKzM3MSw0IEBAIG1vZHVsZV9l eGl0KHJtZDE2MF9tb2RfZmluaSk7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQVVU SE9SKCJBZHJpYW4tS2VuIFJ1ZWVnc2VnZ2VyIDxrZW5AY29kZWxhYnMuY2g+Iik7CiBNT0RVTEVf REVTQ1JJUFRJT04oIlJJUEVNRC0xNjAgTWVzc2FnZSBEaWdlc3QiKTsKK01PRFVMRV9BTElBU19D UllQVE8oInJtZDE2MCIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRvL3JtZDI1Ni5jIGIvY3J5cHRvL3Jt ZDI1Ni5jCmluZGV4IDY5MjkzZDkuLjRlYzAyYTcgMTAwNjQ0Ci0tLSBhL2NyeXB0by9ybWQyNTYu YworKysgYi9jcnlwdG8vcm1kMjU2LmMKQEAgLTM0NiwzICszNDYsNCBAQCBtb2R1bGVfZXhpdChy bWQyNTZfbW9kX2ZpbmkpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0FVVEhPUigi QWRyaWFuLUtlbiBSdWVlZ3NlZ2dlciA8a2VuQGNvZGVsYWJzLmNoPiIpOwogTU9EVUxFX0RFU0NS SVBUSU9OKCJSSVBFTUQtMjU2IE1lc3NhZ2UgRGlnZXN0Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRP KCJybWQyNTYiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9ybWQzMjAuYyBiL2NyeXB0by9ybWQzMjAu YwppbmRleCAwOWY5N2RmLi43NzBmMmNiIDEwMDY0NAotLS0gYS9jcnlwdG8vcm1kMzIwLmMKKysr IGIvY3J5cHRvL3JtZDMyMC5jCkBAIC0zOTUsMyArMzk1LDQgQEAgbW9kdWxlX2V4aXQocm1kMzIw X21vZF9maW5pKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9BVVRIT1IoIkFkcmlh bi1LZW4gUnVlZWdzZWdnZXIgPGtlbkBjb2RlbGFicy5jaD4iKTsKIE1PRFVMRV9ERVNDUklQVElP TigiUklQRU1ELTMyMCBNZXNzYWdlIERpZ2VzdCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygicm1k MzIwIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vc2Fsc2EyMF9nZW5lcmljLmMgYi9jcnlwdG8vc2Fs c2EyMF9nZW5lcmljLmMKaW5kZXggZWFjMTBjMS4uZjVlNWEzMyAxMDA2NDQKLS0tIGEvY3J5cHRv L3NhbHNhMjBfZ2VuZXJpYy5jCisrKyBiL2NyeXB0by9zYWxzYTIwX2dlbmVyaWMuYwpAQCAtMjQ5 LDQgKzI0OSw1IEBAIG1vZHVsZV9leGl0KHNhbHNhMjBfZ2VuZXJpY19tb2RfZmluaSk7CiAKIE1P RFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTiAoIlNhbHNhMjAgc3RyZWFt IGNpcGhlciBhbGdvcml0aG0iKTsKLU1PRFVMRV9BTElBUygic2Fsc2EyMCIpOworTU9EVUxFX0FM SUFTX0NSWVBUTygic2Fsc2EyMCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2Fsc2EyMC1nZW5l cmljIik7CmRpZmYgLS1naXQgYS9jcnlwdG8vc2VlZC5jIGIvY3J5cHRvL3NlZWQuYwppbmRleCBk M2U0MjJmLi4zZTQwZjVmIDEwMDY0NAotLS0gYS9jcnlwdG8vc2VlZC5jCisrKyBiL2NyeXB0by9z ZWVkLmMKQEAgLTQ3NywzICs0NzcsNCBAQCBtb2R1bGVfZXhpdChzZWVkX2ZpbmkpOwogTU9EVUxF X0RFU0NSSVBUSU9OKCJTRUVEIENpcGhlciBBbGdvcml0aG0iKTsKIE1PRFVMRV9MSUNFTlNFKCJH UEwiKTsKIE1PRFVMRV9BVVRIT1IoIkh5ZS1TaGlrIENoYW5nIDxwZXJreUBGcmVlQlNELm9yZz4s IEtpbSBIeXVuIDxoa2ltQGtpc2Eub3Iua3I+Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJzZWVk Iik7CmRpZmYgLS1naXQgYS9jcnlwdG8vc2VxaXYuYyBiL2NyeXB0by9zZXFpdi5jCmluZGV4IDRj NDQ5MTIuLjM4NTg5NWYgMTAwNjQ0Ci0tLSBhL2NyeXB0by9zZXFpdi5jCisrKyBiL2NyeXB0by9z ZXFpdi5jCkBAIC0zNjMsMyArMzYzLDQgQEAgbW9kdWxlX2V4aXQoc2VxaXZfbW9kdWxlX2V4aXQp OwogCiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlNlcXVlbmNl IE51bWJlciBJViBHZW5lcmF0b3IiKTsKK01PRFVMRV9BTElBU19DUllQVE8oInNlcWl2Iik7CmRp ZmYgLS1naXQgYS9jcnlwdG8vc2VycGVudC5jIGIvY3J5cHRvL3NlcnBlbnQuYwppbmRleCBiNjUx YTU1Li5kYjZiZWI2IDEwMDY0NAotLS0gYS9jcnlwdG8vc2VycGVudC5jCisrKyBiL2NyeXB0by9z ZXJwZW50LmMKQEAgLTU4NCw0ICs1ODQsNSBAQCBtb2R1bGVfZXhpdChzZXJwZW50X21vZF9maW5p KTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiU2VycGVudCBh bmQgdG5lcHJlcyAoa2VybmVsaSBjb21wYXRpYmxlIHNlcnBlbnQgcmV2ZXJzZWQpIENpcGhlciBB bGdvcml0aG0iKTsKIE1PRFVMRV9BVVRIT1IoIkRhZyBBcm5lIE9zdmlrIDxvc3Zpa0BpaS51aWIu bm8+Iik7Ci1NT0RVTEVfQUxJQVMoInRuZXByZXMiKTsKK01PRFVMRV9BTElBU19DUllQVE8oInRu ZXByZXMiKTsKK01PRFVMRV9BTElBU19DUllQVE8oInNlcnBlbnQiKTsKZGlmZiAtLWdpdCBhL2Ny eXB0by9zaGExX2dlbmVyaWMuYyBiL2NyeXB0by9zaGExX2dlbmVyaWMuYwppbmRleCA0Mjc5NDgw Li5mZGY3YzAwIDEwMDY0NAotLS0gYS9jcnlwdG8vc2hhMV9nZW5lcmljLmMKKysrIGIvY3J5cHRv L3NoYTFfZ2VuZXJpYy5jCkBAIC0xNTMsNCArMTUzLDUgQEAgbW9kdWxlX2V4aXQoc2hhMV9nZW5l cmljX21vZF9maW5pKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElP TigiU0hBMSBTZWN1cmUgSGFzaCBBbGdvcml0aG0iKTsKIAotTU9EVUxFX0FMSUFTKCJzaGExIik7 CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGExIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGEx LWdlbmVyaWMiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by9zaGEyNTZfZ2VuZXJpYy5jIGIvY3J5cHRv L3NoYTI1Nl9nZW5lcmljLmMKaW5kZXggYzQ4NDU5ZS4uZGNhZDVjZSAxMDA2NDQKLS0tIGEvY3J5 cHRvL3NoYTI1Nl9nZW5lcmljLmMKKysrIGIvY3J5cHRvL3NoYTI1Nl9nZW5lcmljLmMKQEAgLTM5 OCw1ICszOTgsNyBAQCBtb2R1bGVfZXhpdChzaGEyNTZfZ2VuZXJpY19tb2RfZmluaSk7CiBNT0RV TEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlNIQS0yMjQgYW5kIFNIQS0y NTYgU2VjdXJlIEhhc2ggQWxnb3JpdGhtIik7CiAKLU1PRFVMRV9BTElBUygic2hhMjI0Iik7Ci1N T0RVTEVfQUxJQVMoInNoYTI1NiIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2hhMjI0Iik7CitN T0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGEyMjQtZ2VuZXJpYyIpOworTU9EVUxFX0FMSUFTX0NSWVBU Tygic2hhMjU2Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGEyNTYtZ2VuZXJpYyIpOwpkaWZm IC0tZ2l0IGEvY3J5cHRvL3NoYTUxMl9nZW5lcmljLmMgYi9jcnlwdG8vc2hhNTEyX2dlbmVyaWMu YwppbmRleCBkZDMwZjQwLi43YTU0Y2I0IDEwMDY0NAotLS0gYS9jcnlwdG8vc2hhNTEyX2dlbmVy aWMuYworKysgYi9jcnlwdG8vc2hhNTEyX2dlbmVyaWMuYwpAQCAtMjk0LDUgKzI5NCw3IEBAIG1v ZHVsZV9leGl0KHNoYTUxMl9nZW5lcmljX21vZF9maW5pKTsKIE1PRFVMRV9MSUNFTlNFKCJHUEwi KTsKIE1PRFVMRV9ERVNDUklQVElPTigiU0hBLTUxMiBhbmQgU0hBLTM4NCBTZWN1cmUgSGFzaCBB bGdvcml0aG1zIik7CiAKLU1PRFVMRV9BTElBUygic2hhMzg0Iik7Ci1NT0RVTEVfQUxJQVMoInNo YTUxMiIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2hhMzg0Iik7CitNT0RVTEVfQUxJQVNfQ1JZ UFRPKCJzaGEzODQtZ2VuZXJpYyIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2hhNTEyIik7CitN T0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGE1MTItZ2VuZXJpYyIpOwpkaWZmIC0tZ2l0IGEvY3J5cHRv L3RlYS5jIGIvY3J5cHRvL3RlYS5jCmluZGV4IDQxMmJjNzQuLmI4ZjcwMDEgMTAwNjQ0Ci0tLSBh L2NyeXB0by90ZWEuYworKysgYi9jcnlwdG8vdGVhLmMKQEAgLTI5OSw4ICsyOTksOSBAQCBzdGF0 aWMgdm9pZCBfX2V4aXQgdGVhX21vZF9maW5pKHZvaWQpCiAJY3J5cHRvX3VucmVnaXN0ZXJfYWxn KCZ4ZXRhX2FsZyk7CiB9CiAKLU1PRFVMRV9BTElBUygieHRlYSIpOwotTU9EVUxFX0FMSUFTKCJ4 ZXRhIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJ0ZWEiKTsKK01PRFVMRV9BTElBU19DUllQVE8o Inh0ZWEiKTsKK01PRFVMRV9BTElBU19DUllQVE8oInhldGEiKTsKIAogbW9kdWxlX2luaXQodGVh X21vZF9pbml0KTsKIG1vZHVsZV9leGl0KHRlYV9tb2RfZmluaSk7CmRpZmYgLS1naXQgYS9jcnlw dG8vdGdyMTkyLmMgYi9jcnlwdG8vdGdyMTkyLmMKaW5kZXggY2JjYTRmMjAuLjM1ZGJkNTkgMTAw NjQ0Ci0tLSBhL2NyeXB0by90Z3IxOTIuYworKysgYi9jcnlwdG8vdGdyMTkyLmMKQEAgLTcwMiw4 ICs3MDIsOSBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgdGdyMTkyX21vZF9maW5pKHZvaWQpCiAJY3J5 cHRvX3VucmVnaXN0ZXJfc2hhc2goJnRncjEyOCk7CiB9CiAKLU1PRFVMRV9BTElBUygidGdyMTYw Iik7Ci1NT0RVTEVfQUxJQVMoInRncjEyOCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygidGdyMTky Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJ0Z3IxNjAiKTsKK01PRFVMRV9BTElBU19DUllQVE8o InRncjEyOCIpOwogCiBtb2R1bGVfaW5pdCh0Z3IxOTJfbW9kX2luaXQpOwogbW9kdWxlX2V4aXQo dGdyMTkyX21vZF9maW5pKTsKZGlmZiAtLWdpdCBhL2NyeXB0by90d29maXNoX2dlbmVyaWMuYyBi L2NyeXB0by90d29maXNoX2dlbmVyaWMuYwppbmRleCAxZjA3Yjg0Li5jOGMzNWM1IDEwMDY0NAot LS0gYS9jcnlwdG8vdHdvZmlzaF9nZW5lcmljLmMKKysrIGIvY3J5cHRvL3R3b2Zpc2hfZ2VuZXJp Yy5jCkBAIC0yMTIsNCArMjEyLDUgQEAgbW9kdWxlX2V4aXQodHdvZmlzaF9tb2RfZmluaSk7CiAK IE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTiAoIlR3b2Zpc2ggQ2lw aGVyIEFsZ29yaXRobSIpOwotTU9EVUxFX0FMSUFTKCJ0d29maXNoIik7CitNT0RVTEVfQUxJQVNf Q1JZUFRPKCJ0d29maXNoIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJ0d29maXNoLWdlbmVyaWMi KTsKZGlmZiAtLWdpdCBhL2NyeXB0by92bWFjLmMgYi9jcnlwdG8vdm1hYy5jCmluZGV4IDQyNDM5 MDUuLjg5NzliYzggMTAwNjQ0Ci0tLSBhL2NyeXB0by92bWFjLmMKKysrIGIvY3J5cHRvL3ZtYWMu YwpAQCAtNjczLDQgKzY3Myw1IEBAIG1vZHVsZV9leGl0KHZtYWNfbW9kdWxlX2V4aXQpOwogCiBN T0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfREVTQ1JJUFRJT04oIlZNQUMgaGFzaCBhbGdv cml0aG0iKTsKK01PRFVMRV9BTElBU19DUllQVE8oInZtYWMiKTsKIApkaWZmIC0tZ2l0IGEvY3J5 cHRvL3dwNTEyLmMgYi9jcnlwdG8vd3A1MTIuYwppbmRleCA3MTcxOWEyYmUuLjFiZjdmMDcgMTAw NjQ0Ci0tLSBhL2NyeXB0by93cDUxMi5jCisrKyBiL2NyeXB0by93cDUxMi5jCkBAIC0xMTk0LDgg KzExOTQsOSBAQCBzdGF0aWMgdm9pZCBfX2V4aXQgd3A1MTJfbW9kX2Zpbmkodm9pZCkKIAljcnlw dG9fdW5yZWdpc3Rlcl9zaGFzaCgmd3AyNTYpOwogfQogCi1NT0RVTEVfQUxJQVMoIndwMzg0Iik7 Ci1NT0RVTEVfQUxJQVMoIndwMjU2Iik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJ3cDUxMiIpOwor TU9EVUxFX0FMSUFTX0NSWVBUTygid3AzODQiKTsKK01PRFVMRV9BTElBU19DUllQVE8oIndwMjU2 Iik7CiAKIG1vZHVsZV9pbml0KHdwNTEyX21vZF9pbml0KTsKIG1vZHVsZV9leGl0KHdwNTEyX21v ZF9maW5pKTsKZGlmZiAtLWdpdCBhL2NyeXB0by94Y2JjLmMgYi9jcnlwdG8veGNiYy5jCmluZGV4 IGE1ZmJkZjMuLmRmOTBiMzMgMTAwNjQ0Ci0tLSBhL2NyeXB0by94Y2JjLmMKKysrIGIvY3J5cHRv L3hjYmMuYwpAQCAtMjg2LDMgKzI4Niw0IEBAIG1vZHVsZV9leGl0KGNyeXB0b194Y2JjX21vZHVs ZV9leGl0KTsKIAogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxFX0RFU0NSSVBUSU9OKCJY Q0JDIGtleWVkIGhhc2ggYWxnb3JpdGhtIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJ4Y2JjIik7 CmRpZmYgLS1naXQgYS9jcnlwdG8veHRzLmMgYi9jcnlwdG8veHRzLmMKaW5kZXggODUxNzA1NC4u NmEwOWI3MiAxMDA2NDQKLS0tIGEvY3J5cHRvL3h0cy5jCisrKyBiL2NyeXB0by94dHMuYwpAQCAt Mjg5LDMgKzI4OSw0IEBAIG1vZHVsZV9leGl0KGNyeXB0b19tb2R1bGVfZXhpdCk7CiAKIE1PRFVM RV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiWFRTIGJsb2NrIGNpcGhlciBt b2RlIik7CitNT0RVTEVfQUxJQVNfQ1JZUFRPKCJ4dHMiKTsKZGlmZiAtLWdpdCBhL2NyeXB0by96 bGliLmMgYi9jcnlwdG8vemxpYi5jCmluZGV4IDA2YjYyZTUuLmQ5ODA3ODggMTAwNjQ0Ci0tLSBh L2NyeXB0by96bGliLmMKKysrIGIvY3J5cHRvL3psaWIuYwpAQCAtMzc4LDMgKzM3OCw0IEBAIG1v ZHVsZV9leGl0KHpsaWJfbW9kX2ZpbmkpOwogTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwogTU9EVUxF X0RFU0NSSVBUSU9OKCJabGliIENvbXByZXNzaW9uIEFsZ29yaXRobSIpOwogTU9EVUxFX0FVVEhP UigiU29ueSBDb3Jwb3JhdGlvbiIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygiemxpYiIpOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9hY3BpL2VjLmMgYi9kcml2ZXJzL2FjcGkvZWMuYwppbmRleCAwNWRm MDk2Li4zMDIyOWFmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2FjcGkvZWMuYworKysgYi9kcml2ZXJz L2FjcGkvZWMuYwpAQCAtMTI5LDYgKzEyOSw3IEBAIHN0YXRpYyBpbnQgRUNfRkxBR1NfTVNJOyAv KiBPdXQtb2Ytc3BlYyBNU0kgY29udHJvbGxlciAqLwogc3RhdGljIGludCBFQ19GTEFHU19WQUxJ REFURV9FQ0RUOyAvKiBBU1VTdGVjIEVDRFRzIG5lZWQgdG8gYmUgdmFsaWRhdGVkICovCiBzdGF0 aWMgaW50IEVDX0ZMQUdTX1NLSVBfRFNEVF9TQ0FOOyAvKiBOb3QgYWxsIEJJT1Mgc3Vydml2ZSBl YXJseSBEU0RUIHNjYW4gKi8KIHN0YXRpYyBpbnQgRUNfRkxBR1NfQ0xFQVJfT05fUkVTVU1FOyAv KiBOZWVkcyBhY3BpX2VjX2NsZWFyKCkgb24gYm9vdC9yZXN1bWUgKi8KK3N0YXRpYyBpbnQgRUNf RkxBR1NfUVVFUllfSEFORFNIQUtFOyAvKiBOZWVkcyBRUl9FQyBpc3N1ZWQgd2hlbiBTQ0lfRVZU IHNldCAqLwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUcmFuc2FjdGlvbiBNYW5hZ2VtZW50CkBAIC0yMDYsMTMgKzIwNyw4IEBAIHN0YXRpYyBi b29sIGFkdmFuY2VfdHJhbnNhY3Rpb24oc3RydWN0IGFjcGlfZWMgKmVjKQogCQl9CiAJCXJldHVy biB3YWtldXA7CiAJfSBlbHNlIHsKLQkJLyoKLQkJICogVGhlcmUgaXMgZmlybXdhcmUgcmVmdXNp bmcgdG8gcmVzcG9uZCBRUl9FQyB3aGVuIFNDSV9FVlQKLQkJICogaXMgbm90IHNldCwgZm9yIHdo aWNoIGNhc2UsIHdlIGNvbXBsZXRlIHRoZSBRUl9FQwotCQkgKiB3aXRob3V0IGlzc3VpbmcgaXQg dG8gdGhlIGZpcm13YXJlLgotCQkgKiBodHRwczovL2J1Z3ppbGxhLmtlcm5lbC5vcmcvc2hvd19i dWcuY2dpP2lkPTg2MjExCi0JCSAqLwotCQlpZiAoIShzdGF0dXMgJiBBQ1BJX0VDX0ZMQUdfU0NJ KSAmJgorCQlpZiAoRUNfRkxBR1NfUVVFUllfSEFORFNIQUtFICYmCisJCSAgICAhKHN0YXR1cyAm IEFDUElfRUNfRkxBR19TQ0kpICYmCiAJCSAgICAodC0+Y29tbWFuZCA9PSBBQ1BJX0VDX0NPTU1B TkRfUVVFUlkpKSB7CiAJCQl0LT5mbGFncyB8PSBBQ1BJX0VDX0NPTU1BTkRfUE9MTDsKIAkJCXQt PnJkYXRhW3QtPnJpKytdID0gMHgwMDsKQEAgLTk4Nyw2ICs5ODMsMTggQEAgc3RhdGljIGludCBl Y19lbmxhcmdlX3N0b3JtX3RocmVzaG9sZChjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqaWQp CiB9CiAKIC8qCisgKiBBY2VyIEVDIGZpcm13YXJlIHJlZnVzZXMgdG8gcmVzcG9uZCBRUl9FQyB3 aGVuIFNDSV9FVlQgaXMgbm90IHNldCwgZm9yCisgKiB3aGljaCBjYXNlLCB3ZSBjb21wbGV0ZSB0 aGUgUVJfRUMgd2l0aG91dCBpc3N1aW5nIGl0IHRvIHRoZSBmaXJtd2FyZS4KKyAqIGh0dHBzOi8v YnVnemlsbGEua2VybmVsLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYyMTEKKyAqLworc3RhdGljIGlu dCBlY19mbGFnX3F1ZXJ5X2hhbmRzaGFrZShjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCAqaWQp Cit7CisJcHJfZGVidWcoIkRldGVjdGVkIHRoZSBFQyBmaXJtd2FyZSByZXF1aXJpbmcgUVJfRUMg aXNzdWVkIHdoZW4gU0NJX0VWVCBzZXRcbiIpOworCUVDX0ZMQUdTX1FVRVJZX0hBTkRTSEFLRSA9 IDE7CisJcmV0dXJuIDA7Cit9CisKKy8qCiAgKiBPbiBzb21lIGhhcmR3YXJlIGl0IGlzIG5lY2Vz c2FyeSB0byBjbGVhciBldmVudHMgYWNjdW11bGF0ZWQgYnkgdGhlIEVDIGR1cmluZwogICogc2xl ZXAuIFRoZXNlIEVDcyBzdG9wIHJlcG9ydGluZyBHUEVzIHVudGlsIHRoZXkgYXJlIG1hbnVhbGx5 IHBvbGxlZCwgaWYgdG9vCiAgKiBtYW55IGV2ZW50cyBhcmUgYWNjdW11bGF0ZWQuIChlLmcuIFNh bXN1bmcgU2VyaWVzIDUvOSBub3RlYm9va3MpCkBAIC0xMDUyLDYgKzEwNjAsOSBAQCBzdGF0aWMg c3RydWN0IGRtaV9zeXN0ZW1faWQgX19pbml0ZGF0YSBlY19kbWlfdGFibGVbXSA9IHsKIAl7CiAJ ZWNfY2xlYXJfb25fcmVzdW1lLCAiU2Ftc3VuZyBoYXJkd2FyZSIsIHsKIAlETUlfTUFUQ0goRE1J X1NZU19WRU5ET1IsICJTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELiIpfSwgTlVMTH0sCisJ eworCWVjX2ZsYWdfcXVlcnlfaGFuZHNoYWtlLCAiQWNlciBoYXJkd2FyZSIsIHsKKwlETUlfTUFU Q0goRE1JX1NZU19WRU5ET1IsICJBY2VyIiksIH0sIE5VTEx9LAogCXt9LAogfTsKIApkaWZmIC0t Z2l0IGEvZHJpdmVycy9hdGEvbGliYXRhLWNvcmUuYyBiL2RyaXZlcnMvYXRhL2xpYmF0YS1jb3Jl LmMKaW5kZXggMmRkZjczNi4uNWQ4ZmMzZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvbGliYXRh LWNvcmUuYworKysgYi9kcml2ZXJzL2F0YS9saWJhdGEtY29yZS5jCkBAIC00NzMwLDcgKzQ3MzAs MTAgQEAgc3RhdGljIHN0cnVjdCBhdGFfcXVldWVkX2NtZCAqYXRhX3FjX25ldyhzdHJ1Y3QgYXRh X3BvcnQgKmFwKQogCQlyZXR1cm4gTlVMTDsKIAogCWZvciAoaSA9IDAsIHRhZyA9IGFwLT5sYXN0 X3RhZyArIDE7IGkgPCBtYXhfcXVldWU7IGkrKywgdGFnKyspIHsKLQkJdGFnID0gdGFnIDwgbWF4 X3F1ZXVlID8gdGFnIDogMDsKKwkJaWYgKGFwLT5mbGFncyAmIEFUQV9GTEFHX0xPV1RBRykKKwkJ CXRhZyA9IGk7CisJCWVsc2UKKwkJCXRhZyA9IHRhZyA8IG1heF9xdWV1ZSA/IHRhZyA6IDA7CiAK IAkJLyogdGhlIGxhc3QgdGFnIGlzIHJlc2VydmVkIGZvciBpbnRlcm5hbCBjb21tYW5kLiAqLwog CQlpZiAodGFnID09IEFUQV9UQUdfSU5URVJOQUwpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9s aWJhdGEtc2ZmLmMgYi9kcml2ZXJzL2F0YS9saWJhdGEtc2ZmLmMKaW5kZXggOGVhZTE1Ny4uMjJl ZGM5MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9hdGEvbGliYXRhLXNmZi5jCisrKyBiL2RyaXZlcnMv YXRhL2xpYmF0YS1zZmYuYwpAQCAtMTMzMyw3ICsxMzMzLDE5IEBAIHZvaWQgYXRhX3NmZl9mbHVz aF9waW9fdGFzayhzdHJ1Y3QgYXRhX3BvcnQgKmFwKQogCURQUklOVEsoIkVOVEVSXG4iKTsKIAog CWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmYXAtPnNmZl9waW9fdGFzayk7CisKKwkvKgorCSAq IFdlIHdhbm5hIHJlc2V0IHRoZSBIU00gc3RhdGUgdG8gSURMRS4gIElmIHdlIGRvIHNvIHdpdGhv dXQKKwkgKiBncmFiYmluZyB0aGUgcG9ydCBsb2NrLCBjcml0aWNhbCBzZWN0aW9ucyBwcm90ZWN0 ZWQgYnkgaXQgd2hpY2gKKwkgKiBleHBlY3QgdGhlIEhTTSBzdGF0ZSB0byBzdGF5IHN0YWJsZSBt YXkgZ2V0IHN1cnByaXNlZC4gIEZvcgorCSAqIGV4YW1wbGUsIHdlIG1heSBzZXQgSURMRSBpbiBi ZXR3ZWVuIHRoZSB0aW1lCisJICogX19hdGFfc2ZmX3BvcnRfaW50cigpIGNoZWNrcyBmb3IgSFNN X1NUX0lETEUgYW5kIGJlZm9yZSBpdCBjYWxscworCSAqIGF0YV9zZmZfaHNtX21vdmUoKSBjYXVz aW5nIGF0YV9zZmZfaHNtX21vdmUoKSB0byBCVUcoKS4KKwkgKi8KKwlzcGluX2xvY2tfaXJxKGFw LT5sb2NrKTsKIAlhcC0+aHNtX3Rhc2tfc3RhdGUgPSBIU01fU1RfSURMRTsKKwlzcGluX3VubG9j a19pcnEoYXAtPmxvY2spOworCiAJYXAtPnNmZl9waW9fdGFza19saW5rID0gTlVMTDsKIAogCWlm IChhdGFfbXNnX2N0bChhcCkpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2F0YS9zYXRhX2R3Y180NjBl eC5jIGIvZHJpdmVycy9hdGEvc2F0YV9kd2NfNDYwZXguYwppbmRleCA1YzQyMzc0Li4wYmVjNzll IDEwMDY0NAotLS0gYS9kcml2ZXJzL2F0YS9zYXRhX2R3Y180NjBleC5jCisrKyBiL2RyaXZlcnMv YXRhL3NhdGFfZHdjXzQ2MGV4LmMKQEAgLTc5MSw3ICs3OTEsNyBAQCBzdGF0aWMgaW50IGRtYV9k d2NfaW5pdChzdHJ1Y3Qgc2F0YV9kd2NfZGV2aWNlICpoc2RldiwgaW50IGlycSkKIAlpZiAoZXJy KSB7CiAJCWRldl9lcnIoaG9zdF9wdnQuZHdjX2RldiwgIiVzOiBkbWFfcmVxdWVzdF9pbnRlcnJ1 cHRzIHJldHVybnMiCiAJCQkiICVkXG4iLCBfX2Z1bmNfXywgZXJyKTsKLQkJZ290byBlcnJvcl9v dXQ7CisJCXJldHVybiBlcnI7CiAJfQogCiAJLyogRW5hYmUgRE1BICovCkBAIC04MDIsMTEgKzgw Miw2IEBAIHN0YXRpYyBpbnQgZG1hX2R3Y19pbml0KHN0cnVjdCBzYXRhX2R3Y19kZXZpY2UgKmhz ZGV2LCBpbnQgaXJxKQogCQlzYXRhX2RtYV9yZWdzKTsKIAogCXJldHVybiAwOwotCi1lcnJvcl9v dXQ6Ci0JZG1hX2R3Y19leGl0KGhzZGV2KTsKLQotCXJldHVybiBlcnI7CiB9CiAKIHN0YXRpYyBp bnQgc2F0YV9kd2Nfc2NyX3JlYWQoc3RydWN0IGF0YV9saW5rICpsaW5rLCB1bnNpZ25lZCBpbnQg c2NyLCB1MzIgKnZhbCkKQEAgLTE2MzQsNyArMTYyOSw3IEBAIHN0YXRpYyBpbnQgc2F0YV9kd2Nf cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2ZkZXYpCiAJY2hhciAqdmVyID0gKGNoYXIg KikmdmVyc2lvbnI7CiAJdTggKmJhc2UgPSBOVUxMOwogCWludCBlcnIgPSAwOwotCWludCBpcnEs IHJjOworCWludCBpcnE7CiAJc3RydWN0IGF0YV9ob3N0ICpob3N0OwogCXN0cnVjdCBhdGFfcG9y dF9pbmZvIHBpID0gc2F0YV9kd2NfcG9ydF9pbmZvWzBdOwogCWNvbnN0IHN0cnVjdCBhdGFfcG9y dF9pbmZvICpwcGlbXSA9IHsgJnBpLCBOVUxMIH07CkBAIC0xNjg4LDcgKzE2ODMsNyBAQCBzdGF0 aWMgaW50IHNhdGFfZHdjX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KQogCWlm IChpcnEgPT0gTk9fSVJRKSB7CiAJCWRldl9lcnIoJm9mZGV2LT5kZXYsICJubyBTQVRBIERNQSBp cnFcbiIpOwogCQllcnIgPSAtRU5PREVWOwotCQlnb3RvIGVycm9yX291dDsKKwkJZ290byBlcnJv cl9pb21hcDsKIAl9CiAKIAkvKiBHZXQgcGh5c2ljYWwgU0FUQSBETUEgcmVnaXN0ZXIgYmFzZSBh ZGRyZXNzICovCkBAIC0xNjk3LDE0ICsxNjkyLDE2IEBAIHN0YXRpYyBpbnQgc2F0YV9kd2NfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqb2ZkZXYpCiAJCWRldl9lcnIoJm9mZGV2LT5kZXYs ICJpb3JlbWFwIGZhaWxlZCBmb3IgQUhCRE1BIHJlZ2lzdGVyIgogCQkJIiBhZGRyZXNzXG4iKTsK IAkJZXJyID0gLUVOT0RFVjsKLQkJZ290byBlcnJvcl9vdXQ7CisJCWdvdG8gZXJyb3JfaW9tYXA7 CiAJfQogCiAJLyogU2F2ZSBkZXYgZm9yIGxhdGVyIHVzZSBpbiBkZXZfeHh4KCkgcm91dGluZXMg Ki8KIAlob3N0X3B2dC5kd2NfZGV2ID0gJm9mZGV2LT5kZXY7CiAKIAkvKiBJbml0aWFsaXplIEFI QiBETUFDICovCi0JZG1hX2R3Y19pbml0KGhzZGV2LCBpcnEpOworCWVyciA9IGRtYV9kd2NfaW5p dChoc2RldiwgaXJxKTsKKwlpZiAoZXJyKQorCQlnb3RvIGVycm9yX2RtYV9pb21hcDsKIAogCS8q IEVuYWJsZSBTQVRBIEludGVycnVwdHMgKi8KIAlzYXRhX2R3Y19lbmFibGVfaW50ZXJydXB0cyho c2Rldik7CkBAIC0xNzIyLDkgKzE3MTksOCBAQCBzdGF0aWMgaW50IHNhdGFfZHdjX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKm9mZGV2KQogCSAqIGRldmljZSBkaXNjb3ZlcnkgcHJvY2Vz cywgaW52b2tpbmcgb3VyIHBvcnRfc3RhcnQoKSBoYW5kbGVyICYKIAkgKiBlcnJvcl9oYW5kbGVy KCkgdG8gZXhlY3V0ZSBhIGR1bW15IFNvZnRyZXNldCBFSCBzZXNzaW9uCiAJICovCi0JcmMgPSBh dGFfaG9zdF9hY3RpdmF0ZShob3N0LCBpcnEsIHNhdGFfZHdjX2lzciwgMCwgJnNhdGFfZHdjX3No dCk7Ci0KLQlpZiAocmMgIT0gMCkKKwllcnIgPSBhdGFfaG9zdF9hY3RpdmF0ZShob3N0LCBpcnEs IHNhdGFfZHdjX2lzciwgMCwgJnNhdGFfZHdjX3NodCk7CisJaWYgKGVycikKIAkJZGV2X2Vycigm b2ZkZXYtPmRldiwgImZhaWxlZCB0byBhY3RpdmF0ZSBob3N0Iik7CiAKIAlkZXZfc2V0X2RydmRh dGEoJm9mZGV2LT5kZXYsIGhvc3QpOwpAQCAtMTczMyw3ICsxNzI5LDggQEAgc3RhdGljIGludCBz YXRhX2R3Y19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpvZmRldikKIGVycm9yX291dDoK IAkvKiBGcmVlIFNBVEEgRE1BIHJlc291cmNlcyAqLwogCWRtYV9kd2NfZXhpdChoc2Rldik7Ci0K K2Vycm9yX2RtYV9pb21hcDoKKwlpb3VubWFwKCh2b2lkIF9faW9tZW0gKilob3N0X3B2dC5zYXRh X2RtYV9yZWdzKTsKIGVycm9yX2lvbWFwOgogCWlvdW5tYXAoYmFzZSk7CiBlcnJvcl9rbWFsbG9j OgpAQCAtMTc1NCw2ICsxNzUxLDcgQEAgc3RhdGljIGludCBzYXRhX2R3Y19yZW1vdmUoc3RydWN0 IHBsYXRmb3JtX2RldmljZSAqb2ZkZXYpCiAJLyogRnJlZSBTQVRBIERNQSByZXNvdXJjZXMgKi8K IAlkbWFfZHdjX2V4aXQoaHNkZXYpOwogCisJaW91bm1hcCgodm9pZCBfX2lvbWVtICopaG9zdF9w dnQuc2F0YV9kbWFfcmVncyk7CiAJaW91bm1hcChoc2Rldi0+cmVnX2Jhc2UpOwogCWtmcmVlKGhz ZGV2KTsKIAlrZnJlZShob3N0KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQu YyBiL2RyaXZlcnMvYXRhL3NhdGFfc2lsMjQuYwppbmRleCAxZTkxNDA2Li4yMTc4MDIyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2F0YS9zYXRhX3NpbDI0LmMKKysrIGIvZHJpdmVycy9hdGEvc2F0YV9z aWwyNC5jCkBAIC0yNDYsNyArMjQ2LDcgQEAgZW51bSB7CiAJLyogaG9zdCBmbGFncyAqLwogCVNJ TDI0X0NPTU1PTl9GTEFHUwk9IEFUQV9GTEFHX1NBVEEgfCBBVEFfRkxBR19QSU9fRE1BIHwKIAkJ CQkgIEFUQV9GTEFHX05DUSB8IEFUQV9GTEFHX0FDUElfU0FUQSB8Ci0JCQkJICBBVEFfRkxBR19B TiB8IEFUQV9GTEFHX1BNUCwKKwkJCQkgIEFUQV9GTEFHX0FOIHwgQVRBX0ZMQUdfUE1QIHwgQVRB X0ZMQUdfTE9XVEFHLAogCVNJTDI0X0ZMQUdfUENJWF9JUlFfV09DCT0gKDEgPDwgMjQpLCAvKiBJ UlEgbG9zcyBlcnJhdGEgb24gUENJLVggKi8KIAogCUlSUV9TVEFUXzRQT1JUUwkJPSAweGYsCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2Jhc2UvYnVzLmMgYi9kcml2ZXJzL2Jhc2UvYnVzLmMKaW5kZXgg OGI4ZThjMC4uYjgwMmNmYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL2J1cy5jCisrKyBiL2Ry aXZlcnMvYmFzZS9idXMuYwpAQCAtMjQwLDEzICsyNDAsMTUgQEAgc3RhdGljIHNzaXplX3Qgc3Rv cmVfZHJpdmVyc19wcm9iZShzdHJ1Y3QgYnVzX3R5cGUgKmJ1cywKIAkJCQkgICBjb25zdCBjaGFy ICpidWYsIHNpemVfdCBjb3VudCkKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXY7CisJaW50IGVyciA9 IC1FSU5WQUw7CiAKIAlkZXYgPSBidXNfZmluZF9kZXZpY2VfYnlfbmFtZShidXMsIE5VTEwsIGJ1 Zik7CiAJaWYgKCFkZXYpCiAJCXJldHVybiAtRU5PREVWOwotCWlmIChidXNfcmVzY2FuX2Rldmlj ZXNfaGVscGVyKGRldiwgTlVMTCkgIT0gMCkKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JcmV0dXJuIGNv dW50OworCWlmIChidXNfcmVzY2FuX2RldmljZXNfaGVscGVyKGRldiwgTlVMTCkgPT0gMCkKKwkJ ZXJyID0gY291bnQ7CisJcHV0X2RldmljZShkZXYpOworCXJldHVybiBlcnI7CiB9CiAjZW5kaWYK IApkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL2NvcmUuYyBiL2RyaXZlcnMvYmFzZS9jb3JlLmMK aW5kZXggOTE5ZGFhNy4uODFlMGU4NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9iYXNlL2NvcmUuYwor KysgYi9kcml2ZXJzL2Jhc2UvY29yZS5jCkBAIC0xNDE3LDM0ICsxNDE3LDExIEBAIHN0YXRpYyB2 b2lkIGRldmljZV9jcmVhdGVfcmVsZWFzZShzdHJ1Y3QgZGV2aWNlICpkZXYpCiAJa2ZyZWUoZGV2 KTsKIH0KIAotLyoqCi0gKiBkZXZpY2VfY3JlYXRlX3ZhcmdzIC0gY3JlYXRlcyBhIGRldmljZSBh bmQgcmVnaXN0ZXJzIGl0IHdpdGggc3lzZnMKLSAqIEBjbGFzczogcG9pbnRlciB0byB0aGUgc3Ry dWN0IGNsYXNzIHRoYXQgdGhpcyBkZXZpY2Ugc2hvdWxkIGJlIHJlZ2lzdGVyZWQgdG8KLSAqIEBw YXJlbnQ6IHBvaW50ZXIgdG8gdGhlIHBhcmVudCBzdHJ1Y3QgZGV2aWNlIG9mIHRoaXMgbmV3IGRl dmljZSwgaWYgYW55Ci0gKiBAZGV2dDogdGhlIGRldl90IGZvciB0aGUgY2hhciBkZXZpY2UgdG8g YmUgYWRkZWQKLSAqIEBkcnZkYXRhOiB0aGUgZGF0YSB0byBiZSBhZGRlZCB0byB0aGUgZGV2aWNl IGZvciBjYWxsYmFja3MKLSAqIEBmbXQ6IHN0cmluZyBmb3IgdGhlIGRldmljZSdzIG5hbWUKLSAq IEBhcmdzOiB2YV9saXN0IGZvciB0aGUgZGV2aWNlJ3MgbmFtZQotICoKLSAqIFRoaXMgZnVuY3Rp b24gY2FuIGJlIHVzZWQgYnkgY2hhciBkZXZpY2UgY2xhc3Nlcy4gIEEgc3RydWN0IGRldmljZQot ICogd2lsbCBiZSBjcmVhdGVkIGluIHN5c2ZzLCByZWdpc3RlcmVkIHRvIHRoZSBzcGVjaWZpZWQg Y2xhc3MuCi0gKgotICogQSAiZGV2IiBmaWxlIHdpbGwgYmUgY3JlYXRlZCwgc2hvd2luZyB0aGUg ZGV2X3QgZm9yIHRoZSBkZXZpY2UsIGlmCi0gKiB0aGUgZGV2X3QgaXMgbm90IDAsMC4KLSAqIElm IGEgcG9pbnRlciB0byBhIHBhcmVudCBzdHJ1Y3QgZGV2aWNlIGlzIHBhc3NlZCBpbiwgdGhlIG5l d2x5IGNyZWF0ZWQKLSAqIHN0cnVjdCBkZXZpY2Ugd2lsbCBiZSBhIGNoaWxkIG9mIHRoYXQgZGV2 aWNlIGluIHN5c2ZzLgotICogVGhlIHBvaW50ZXIgdG8gdGhlIHN0cnVjdCBkZXZpY2Ugd2lsbCBi ZSByZXR1cm5lZCBmcm9tIHRoZSBjYWxsLgotICogQW55IGZ1cnRoZXIgc3lzZnMgZmlsZXMgdGhh dCBtaWdodCBiZSByZXF1aXJlZCBjYW4gYmUgY3JlYXRlZCB1c2luZyB0aGlzCi0gKiBwb2ludGVy LgotICoKLSAqIFJldHVybnMgJnN0cnVjdCBkZXZpY2UgcG9pbnRlciBvbiBzdWNjZXNzLCBvciBF UlJfUFRSKCkgb24gZXJyb3IuCi0gKgotICogTm90ZTogdGhlIHN0cnVjdCBjbGFzcyBwYXNzZWQg dG8gdGhpcyBmdW5jdGlvbiBtdXN0IGhhdmUgcHJldmlvdXNseQotICogYmVlbiBjcmVhdGVkIHdp dGggYSBjYWxsIHRvIGNsYXNzX2NyZWF0ZSgpLgotICovCi1zdHJ1Y3QgZGV2aWNlICpkZXZpY2Vf Y3JlYXRlX3ZhcmdzKHN0cnVjdCBjbGFzcyAqY2xhc3MsIHN0cnVjdCBkZXZpY2UgKnBhcmVudCwK LQkJCQkgICBkZXZfdCBkZXZ0LCB2b2lkICpkcnZkYXRhLCBjb25zdCBjaGFyICpmbXQsCi0JCQkJ ICAgdmFfbGlzdCBhcmdzKQorc3RhdGljIHN0cnVjdCBkZXZpY2UgKgorZGV2aWNlX2NyZWF0ZV9n cm91cHNfdmFyZ3Moc3RydWN0IGNsYXNzICpjbGFzcywgc3RydWN0IGRldmljZSAqcGFyZW50LAor CQkJICAgZGV2X3QgZGV2dCwgdm9pZCAqZHJ2ZGF0YSwKKwkJCSAgIGNvbnN0IHN0cnVjdCBhdHRy aWJ1dGVfZ3JvdXAgKipncm91cHMsCisJCQkgICBjb25zdCBjaGFyICpmbXQsIHZhX2xpc3QgYXJn cykKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBOVUxMOwogCWludCByZXR2YWwgPSAtRU5PREVW OwpAQCAtMTQ2MSw2ICsxNDM4LDcgQEAgc3RydWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZV92YXJn cyhzdHJ1Y3QgY2xhc3MgKmNsYXNzLCBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCiAJZGV2LT5kZXZ0 ID0gZGV2dDsKIAlkZXYtPmNsYXNzID0gY2xhc3M7CiAJZGV2LT5wYXJlbnQgPSBwYXJlbnQ7CisJ ZGV2LT5ncm91cHMgPSBncm91cHM7CiAJZGV2LT5yZWxlYXNlID0gZGV2aWNlX2NyZWF0ZV9yZWxl YXNlOwogCWRldl9zZXRfZHJ2ZGF0YShkZXYsIGRydmRhdGEpOwogCkBAIC0xNDc4LDYgKzE0NTYs MzkgQEAgZXJyb3I6CiAJcHV0X2RldmljZShkZXYpOwogCXJldHVybiBFUlJfUFRSKHJldHZhbCk7 CiB9CisKKy8qKgorICogZGV2aWNlX2NyZWF0ZV92YXJncyAtIGNyZWF0ZXMgYSBkZXZpY2UgYW5k IHJlZ2lzdGVycyBpdCB3aXRoIHN5c2ZzCisgKiBAY2xhc3M6IHBvaW50ZXIgdG8gdGhlIHN0cnVj dCBjbGFzcyB0aGF0IHRoaXMgZGV2aWNlIHNob3VsZCBiZSByZWdpc3RlcmVkIHRvCisgKiBAcGFy ZW50OiBwb2ludGVyIHRvIHRoZSBwYXJlbnQgc3RydWN0IGRldmljZSBvZiB0aGlzIG5ldyBkZXZp Y2UsIGlmIGFueQorICogQGRldnQ6IHRoZSBkZXZfdCBmb3IgdGhlIGNoYXIgZGV2aWNlIHRvIGJl IGFkZGVkCisgKiBAZHJ2ZGF0YTogdGhlIGRhdGEgdG8gYmUgYWRkZWQgdG8gdGhlIGRldmljZSBm b3IgY2FsbGJhY2tzCisgKiBAZm10OiBzdHJpbmcgZm9yIHRoZSBkZXZpY2UncyBuYW1lCisgKiBA YXJnczogdmFfbGlzdCBmb3IgdGhlIGRldmljZSdzIG5hbWUKKyAqCisgKiBUaGlzIGZ1bmN0aW9u IGNhbiBiZSB1c2VkIGJ5IGNoYXIgZGV2aWNlIGNsYXNzZXMuICBBIHN0cnVjdCBkZXZpY2UKKyAq IHdpbGwgYmUgY3JlYXRlZCBpbiBzeXNmcywgcmVnaXN0ZXJlZCB0byB0aGUgc3BlY2lmaWVkIGNs YXNzLgorICoKKyAqIEEgImRldiIgZmlsZSB3aWxsIGJlIGNyZWF0ZWQsIHNob3dpbmcgdGhlIGRl dl90IGZvciB0aGUgZGV2aWNlLCBpZgorICogdGhlIGRldl90IGlzIG5vdCAwLDAuCisgKiBJZiBh IHBvaW50ZXIgdG8gYSBwYXJlbnQgc3RydWN0IGRldmljZSBpcyBwYXNzZWQgaW4sIHRoZSBuZXds eSBjcmVhdGVkCisgKiBzdHJ1Y3QgZGV2aWNlIHdpbGwgYmUgYSBjaGlsZCBvZiB0aGF0IGRldmlj ZSBpbiBzeXNmcy4KKyAqIFRoZSBwb2ludGVyIHRvIHRoZSBzdHJ1Y3QgZGV2aWNlIHdpbGwgYmUg cmV0dXJuZWQgZnJvbSB0aGUgY2FsbC4KKyAqIEFueSBmdXJ0aGVyIHN5c2ZzIGZpbGVzIHRoYXQg bWlnaHQgYmUgcmVxdWlyZWQgY2FuIGJlIGNyZWF0ZWQgdXNpbmcgdGhpcworICogcG9pbnRlci4K KyAqCisgKiBSZXR1cm5zICZzdHJ1Y3QgZGV2aWNlIHBvaW50ZXIgb24gc3VjY2Vzcywgb3IgRVJS X1BUUigpIG9uIGVycm9yLgorICoKKyAqIE5vdGU6IHRoZSBzdHJ1Y3QgY2xhc3MgcGFzc2VkIHRv IHRoaXMgZnVuY3Rpb24gbXVzdCBoYXZlIHByZXZpb3VzbHkKKyAqIGJlZW4gY3JlYXRlZCB3aXRo IGEgY2FsbCB0byBjbGFzc19jcmVhdGUoKS4KKyAqLworc3RydWN0IGRldmljZSAqZGV2aWNlX2Ny ZWF0ZV92YXJncyhzdHJ1Y3QgY2xhc3MgKmNsYXNzLCBzdHJ1Y3QgZGV2aWNlICpwYXJlbnQsCisJ CQkJICAgZGV2X3QgZGV2dCwgdm9pZCAqZHJ2ZGF0YSwgY29uc3QgY2hhciAqZm10LAorCQkJCSAg IHZhX2xpc3QgYXJncykKK3sKKwlyZXR1cm4gZGV2aWNlX2NyZWF0ZV9ncm91cHNfdmFyZ3MoY2xh c3MsIHBhcmVudCwgZGV2dCwgZHJ2ZGF0YSwgTlVMTCwKKwkJCQkJICBmbXQsIGFyZ3MpOworfQog RVhQT1JUX1NZTUJPTF9HUEwoZGV2aWNlX2NyZWF0ZV92YXJncyk7CiAKIC8qKgpAQCAtMTUxNyw2 ICsxNTI4LDUwIEBAIHN0cnVjdCBkZXZpY2UgKmRldmljZV9jcmVhdGUoc3RydWN0IGNsYXNzICpj bGFzcywgc3RydWN0IGRldmljZSAqcGFyZW50LAogfQogRVhQT1JUX1NZTUJPTF9HUEwoZGV2aWNl X2NyZWF0ZSk7CiAKKy8qKgorICogZGV2aWNlX2NyZWF0ZV93aXRoX2dyb3VwcyAtIGNyZWF0ZXMg YSBkZXZpY2UgYW5kIHJlZ2lzdGVycyBpdCB3aXRoIHN5c2ZzCisgKiBAY2xhc3M6IHBvaW50ZXIg dG8gdGhlIHN0cnVjdCBjbGFzcyB0aGF0IHRoaXMgZGV2aWNlIHNob3VsZCBiZSByZWdpc3RlcmVk IHRvCisgKiBAcGFyZW50OiBwb2ludGVyIHRvIHRoZSBwYXJlbnQgc3RydWN0IGRldmljZSBvZiB0 aGlzIG5ldyBkZXZpY2UsIGlmIGFueQorICogQGRldnQ6IHRoZSBkZXZfdCBmb3IgdGhlIGNoYXIg ZGV2aWNlIHRvIGJlIGFkZGVkCisgKiBAZHJ2ZGF0YTogdGhlIGRhdGEgdG8gYmUgYWRkZWQgdG8g dGhlIGRldmljZSBmb3IgY2FsbGJhY2tzCisgKiBAZ3JvdXBzOiBOVUxMLXRlcm1pbmF0ZWQgbGlz dCBvZiBhdHRyaWJ1dGUgZ3JvdXBzIHRvIGJlIGNyZWF0ZWQKKyAqIEBmbXQ6IHN0cmluZyBmb3Ig dGhlIGRldmljZSdzIG5hbWUKKyAqCisgKiBUaGlzIGZ1bmN0aW9uIGNhbiBiZSB1c2VkIGJ5IGNo YXIgZGV2aWNlIGNsYXNzZXMuICBBIHN0cnVjdCBkZXZpY2UKKyAqIHdpbGwgYmUgY3JlYXRlZCBp biBzeXNmcywgcmVnaXN0ZXJlZCB0byB0aGUgc3BlY2lmaWVkIGNsYXNzLgorICogQWRkaXRpb25h bCBhdHRyaWJ1dGVzIHNwZWNpZmllZCBpbiB0aGUgZ3JvdXBzIHBhcmFtZXRlciB3aWxsIGFsc28K KyAqIGJlIGNyZWF0ZWQgYXV0b21hdGljYWxseS4KKyAqCisgKiBBICJkZXYiIGZpbGUgd2lsbCBi ZSBjcmVhdGVkLCBzaG93aW5nIHRoZSBkZXZfdCBmb3IgdGhlIGRldmljZSwgaWYKKyAqIHRoZSBk ZXZfdCBpcyBub3QgMCwwLgorICogSWYgYSBwb2ludGVyIHRvIGEgcGFyZW50IHN0cnVjdCBkZXZp Y2UgaXMgcGFzc2VkIGluLCB0aGUgbmV3bHkgY3JlYXRlZAorICogc3RydWN0IGRldmljZSB3aWxs IGJlIGEgY2hpbGQgb2YgdGhhdCBkZXZpY2UgaW4gc3lzZnMuCisgKiBUaGUgcG9pbnRlciB0byB0 aGUgc3RydWN0IGRldmljZSB3aWxsIGJlIHJldHVybmVkIGZyb20gdGhlIGNhbGwuCisgKiBBbnkg ZnVydGhlciBzeXNmcyBmaWxlcyB0aGF0IG1pZ2h0IGJlIHJlcXVpcmVkIGNhbiBiZSBjcmVhdGVk IHVzaW5nIHRoaXMKKyAqIHBvaW50ZXIuCisgKgorICogUmV0dXJucyAmc3RydWN0IGRldmljZSBw b2ludGVyIG9uIHN1Y2Nlc3MsIG9yIEVSUl9QVFIoKSBvbiBlcnJvci4KKyAqCisgKiBOb3RlOiB0 aGUgc3RydWN0IGNsYXNzIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIG11c3QgaGF2ZSBwcmV2aW91 c2x5CisgKiBiZWVuIGNyZWF0ZWQgd2l0aCBhIGNhbGwgdG8gY2xhc3NfY3JlYXRlKCkuCisgKi8K K3N0cnVjdCBkZXZpY2UgKmRldmljZV9jcmVhdGVfd2l0aF9ncm91cHMoc3RydWN0IGNsYXNzICpj bGFzcywKKwkJCQkJIHN0cnVjdCBkZXZpY2UgKnBhcmVudCwgZGV2X3QgZGV2dCwKKwkJCQkJIHZv aWQgKmRydmRhdGEsCisJCQkJCSBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICoqZ3JvdXBz LAorCQkJCQkgY29uc3QgY2hhciAqZm10LCAuLi4pCit7CisJdmFfbGlzdCB2YXJnczsKKwlzdHJ1 Y3QgZGV2aWNlICpkZXY7CisKKwl2YV9zdGFydCh2YXJncywgZm10KTsKKwlkZXYgPSBkZXZpY2Vf Y3JlYXRlX2dyb3Vwc192YXJncyhjbGFzcywgcGFyZW50LCBkZXZ0LCBkcnZkYXRhLCBncm91cHMs CisJCQkJCSBmbXQsIHZhcmdzKTsKKwl2YV9lbmQodmFyZ3MpOworCXJldHVybiBkZXY7Cit9CitF WFBPUlRfU1lNQk9MX0dQTChkZXZpY2VfY3JlYXRlX3dpdGhfZ3JvdXBzKTsKKwogc3RhdGljIGlu dCBfX21hdGNoX2RldnQoc3RydWN0IGRldmljZSAqZGV2LCB2b2lkICpkYXRhKQogewogCWRldl90 ICpkZXZ0ID0gZGF0YTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmxvY2svZHJiZC9kcmJkX3JlcS5j IGIvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfcmVxLmMKaW5kZXggYmU5ODRlMC4uNDNkYTIyNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ibG9jay9kcmJkL2RyYmRfcmVxLmMKKysrIGIvZHJpdmVycy9i bG9jay9kcmJkL2RyYmRfcmVxLmMKQEAgLTExODQsNiArMTE4NCw3IEBAIGludCBkcmJkX21lcmdl X2J2ZWMoc3RydWN0IHJlcXVlc3RfcXVldWUgKnEsIHN0cnVjdCBidmVjX21lcmdlX2RhdGEgKmJ2 bSwgc3RydWN0CiAJCXN0cnVjdCByZXF1ZXN0X3F1ZXVlICogY29uc3QgYiA9CiAJCQltZGV2LT5s ZGV2LT5iYWNraW5nX2JkZXYtPmJkX2Rpc2stPnF1ZXVlOwogCQlpZiAoYi0+bWVyZ2VfYnZlY19m bikgeworCQkJYnZtLT5iaV9iZGV2ID0gbWRldi0+bGRldi0+YmFja2luZ19iZGV2OwogCQkJYmFj a2luZ19saW1pdCA9IGItPm1lcmdlX2J2ZWNfZm4oYiwgYnZtLCBidmVjKTsKIAkJCWxpbWl0ID0g bWluKGxpbWl0LCBiYWNraW5nX2xpbWl0KTsKIAkJfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ibHVl dG9vdGgvYXRoM2suYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2F0aDNrLmMKaW5kZXggNmZlMDAzYS4u MTBlNDQyYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgvYXRoM2suYworKysgYi9kcml2 ZXJzL2JsdWV0b290aC9hdGgzay5jCkBAIC02MSw0OCArNjEsNTkgQEAgc3RhdGljIHN0cnVjdCB1 c2JfZGV2aWNlX2lkIGF0aDNrX3RhYmxlW10gPSB7CiAJeyBVU0JfREVWSUNFKDB4MENGMywgMHgz MDAwKSB9LAogCiAJLyogQXRoZXJvcyBBUjMwMTEgd2l0aCBzZmxhc2ggZmlybXdhcmUqLworCXsg VVNCX0RFVklDRSgweDA0ODksIDB4RTAyNykgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweEUw M0QpIH0sCisJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjE1KSB9LAogCXsgVVNCX0RFVklDRSgw eDBDRjMsIDB4MzAwMikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwQ0YzLCAweEUwMTkpIH0sCiAJeyBV U0JfREVWSUNFKDB4MTNkMywgMHgzMzA0KSB9LAotCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIx NSkgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweEUwM0QpIH0sCi0JeyBVU0JfREVWSUNFKDB4 MDQ4OSwgMHhFMDI3KSB9LAogCiAJLyogQXRoZXJvcyBBUjkyODUgTWFsYmVjIHdpdGggc2ZsYXNo IGZpcm13YXJlICovCiAJeyBVU0JfREVWSUNFKDB4MDNGMCwgMHgzMTFEKSB9LAogCiAJLyogQXRo ZXJvcyBBUjMwMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUqLwotCXsgVVNCX0RFVklDRSgweDBDRjMs IDB4MDAzNikgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwQ0YzLCAweDMwMDQpIH0sCi0JeyBVU0JfREVW SUNFKDB4MENGMywgMHgzMDA4KSB9LAotCXsgVVNCX0RFVklDRSgweDBDRjMsIDB4MzExRCkgfSwK LQl7IFVTQl9ERVZJQ0UoMHgwQ0YzLCAweDgxN2EpIH0sCi0JeyBVU0JfREVWSUNFKDB4MTNkMywg MHgzMzc1KSB9LAorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA0ZCkgfSwKKwl7IFVTQl9ERVZJ Q0UoMHgwNDg5LCAweGUwNGUpIH0sCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDU3KSB9LAor CXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA1NikgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAw eGUwNWYpIH0sCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDc4KSB9LAorCXsgVVNCX0RFVklD RSgweDA0YzUsIDB4MTMzMCkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNENBLCAweDMwMDQpIH0sCiAJ eyBVU0JfREVWSUNFKDB4MDRDQSwgMHgzMDA1KSB9LAogCXsgVVNCX0RFVklDRSgweDA0Q0EsIDB4 MzAwNikgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNENBLCAweDMwMDcpIH0sCiAJeyBVU0JfREVWSUNF KDB4MDRDQSwgMHgzMDA4KSB9LAotCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM2MikgfSwKKwl7 IFVTQl9ERVZJQ0UoMHgwNENBLCAweDMwMGIpIH0sCisJeyBVU0JfREVWSUNFKDB4MDRDQSwgMHgz MDEwKSB9LAorCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxOSkgfSwKKwl7IFVTQl9ERVZJQ0Uo MHgwOTMwLCAweDAyMjApIH0sCisJeyBVU0JfREVWSUNFKDB4MDkzMCwgMHgwMjI3KSB9LAorCXsg VVNCX0RFVklDRSgweDBiMDUsIDB4MTdkMCkgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwQ0YzLCAweDAw MzYpIH0sCisJeyBVU0JfREVWSUNFKDB4MENGMywgMHgzMDA0KSB9LAorCXsgVVNCX0RFVklDRSgw eDBDRjMsIDB4MzAwOCkgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwQ0YzLCAweDMxMUQpIH0sCisJeyBV U0JfREVWSUNFKDB4MENGMywgMHgzMTFFKSB9LAorCXsgVVNCX0RFVklDRSgweDBDRjMsIDB4MzEx RikgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMxMjEpIH0sCisJeyBVU0JfREVWSUNFKDB4 MENGMywgMHg4MTdhKSB9LAorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4ZTAwMykgfSwKIAl7IFVT Ql9ERVZJQ0UoMHgwQ0YzLCAweEUwMDQpIH0sCiAJeyBVU0JfREVWSUNFKDB4MENGMywgMHhFMDA1 KSB9LAotCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxOSkgfSwKLQl7IFVTQl9ERVZJQ0UoMHgw NDg5LCAweGUwNTcpIH0sCisJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzMzYyKSB9LAorCXsgVVNC X0RFVklDRSgweDEzZDMsIDB4MzM3NSkgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzOTMp IH0sCi0JeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDRlKSB9LAotCXsgVVNCX0RFVklDRSgweDA0 ODksIDB4ZTA1NikgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNGQpIH0sCi0JeyBVU0Jf REVWSUNFKDB4MDRjNSwgMHgxMzMwKSB9LAogCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQwMikg fSwKLQl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMxMjEpIH0sCi0JeyBVU0JfREVWSUNFKDB4MGNm MywgMHhlMDAzKSB9LAorCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzQwOCkgfSwKKwl7IFVTQl9E RVZJQ0UoMHgxM2QzLCAweDM0MzIpIH0sCiAKIAkvKiBBdGhlcm9zIEFSNUJCVTEyIHdpdGggc2Zs YXNoIGZpcm13YXJlICovCiAJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhFMDJDKSB9LAogCiAJLyog QXRoZXJvcyBBUjVCQlUyMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwotCXsgVVNCX0RFVklDRSgw eDA0ODksIDB4RTAzQykgfSwKIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweEUwMzYpIH0sCisJeyBV U0JfREVWSUNFKDB4MDQ4OSwgMHhFMDNDKSB9LAogCiAJeyB9CS8qIFRlcm1pbmF0aW5nIGVudHJ5 ICovCiB9OwpAQCAtMTE1LDM0ICsxMjYsNDUgQEAgTU9EVUxFX0RFVklDRV9UQUJMRSh1c2IsIGF0 aDNrX3RhYmxlKTsKIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBhdGgza19ibGlzdF90Ymxb XSA9IHsKIAogCS8qIEF0aGVyb3MgQVIzMDEyIHdpdGggc2ZsYXNoIGZpcm13YXJlKi8KLQl7IFVT Ql9ERVZJQ0UoMHgwQ0YzLCAweDAwMzYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0s Ci0JeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRI MzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwOCksIC5kcml2ZXJfaW5mbyA9IEJU VVNCX0FUSDMwMTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMxMUQpLCAuZHJpdmVyX2lu Zm8gPSBCVFVTQl9BVEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MENGMywgMHg4MTdhKSwgLmRy aXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4MzM3 NSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNDg5 LCAweGUwNGUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNF KDB4MDQ4OSwgMHhlMDRkKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNC X0RFVklDRSgweDA0ODksIDB4ZTA1NiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwK Kwl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNTcpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgz MDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDVmKSwgLmRyaXZlcl9pbmZvID0gQlRV U0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA3OCksIC5kcml2ZXJfaW5m byA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNGM1LCAweDEzMzApLCAuZHJp dmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDA0 KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDA0Y2Es IDB4MzAwNSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0Uo MHgwNGNhLCAweDMwMDYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0Jf REVWSUNFKDB4MDRjYSwgMHgzMDA3KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAog CXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwOCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMw MTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzNjIpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDBiKSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAxMCksIC5kcml2 ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAyMTkp LCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDkzMCwg MHgwMjIwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgw eDA5MzAsIDB4MDIyNyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9E RVZJQ0UoMHgwYjA1LCAweDE3ZDApLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJ eyBVU0JfREVWSUNFKDB4MENGMywgMHgwMDM2KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMwMDgpLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMTFEKSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzExRSks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAw eDMxMUYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4 MGNmMywgMHgzMTIxKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RF VklDRSgweDBDRjMsIDB4ODE3YSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7 IFVTQl9ERVZJQ0UoMHgwY2YzLCAweGUwMDQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEy IH0sCiAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHhlMDA1KSwgLmRyaXZlcl9pbmZvID0gQlRVU0Jf QVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxOSksIC5kcml2ZXJfaW5mbyA9 IEJUVVNCX0FUSDMwMTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNTcpLCAuZHJpdmVy X2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MGNmMywgMHhlMDAzKSwg LmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDEzZDMsIDB4 MzM2MiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgx M2QzLCAweDMzNzUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVW SUNFKDB4MTNkMywgMHgzMzkzKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAotCXsg VVNCX0RFVklDRSgweDA0ODksIDB4ZTA0ZSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIg fSwKLQl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNTYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9B VEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDRkKSwgLmRyaXZlcl9pbmZvID0g QlRVU0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDA0YzUsIDB4MTMzMCksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0MDIpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MGNmMywgMHgz MTIxKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDBj ZjMsIDB4ZTAwMyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJ Q0UoMHgxM2QzLCAweDM0MDgpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBV U0JfREVWSUNFKDB4MTNkMywgMHgzNDMyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAogCiAJLyogQXRoZXJvcyBBUjVCQlUyMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwotCXsgVVNC X0RFVklDRSgweDA0ODksIDB4RTAzQyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwK IAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweEUwMzYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgz MDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhFMDNDKSwgLmRyaXZlcl9pbmZvID0gQlRV U0JfQVRIMzAxMiB9LAogCiAJeyB9CS8qIFRlcm1pbmF0aW5nIGVudHJ5ICovCiB9OwpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ibHVldG9vdGgvYnR1c2IuYyBiL2RyaXZlcnMvYmx1ZXRvb3RoL2J0dXNi LmMKaW5kZXggODc1MGQ1Mi4uMmI0NzlkNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ibHVldG9vdGgv YnR1c2IuYworKysgYi9kcml2ZXJzL2JsdWV0b290aC9idHVzYi5jCkBAIC01NSw2ICs1NSw3IEBA IHN0YXRpYyBzdHJ1Y3QgdXNiX2RyaXZlciBidHVzYl9kcml2ZXI7CiAjZGVmaW5lIEJUVVNCX0JS T0tFTl9JU09DCTB4MjAKICNkZWZpbmUgQlRVU0JfV1JPTkdfU0NPX01UVQkweDQwCiAjZGVmaW5l IEJUVVNCX0FUSDMwMTIJCTB4ODAKKyNkZWZpbmUgQlRVU0JfSU5URUxfQk9PVAkweDIwMAogCiBz dGF0aWMgc3RydWN0IHVzYl9kZXZpY2VfaWQgYnR1c2JfdGFibGVbXSA9IHsKIAkvKiBHZW5lcmlj IEJsdWV0b290aCBVU0IgZGV2aWNlICovCkBAIC0xMDcsMTggKzEwOCwzMSBAQCBzdGF0aWMgc3Ry dWN0IHVzYl9kZXZpY2VfaWQgYnR1c2JfdGFibGVbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwYzEw LCAweDAwMDApIH0sCiAKIAkvKiBCcm9hZGNvbSBCQ00yMDcwMkEwICovCisJeyBVU0JfREVWSUNF KDB4MDQ4OSwgMHhlMDQyKSB9LAorCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MjAwMykgfSwKIAl7 IFVTQl9ERVZJQ0UoMHgwYjA1LCAweDE3YjUpIH0sCiAJeyBVU0JfREVWSUNFKDB4MGIwNSwgMHgx N2NiKSB9LAotCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MjAwMykgfSwKLQl7IFVTQl9ERVZJQ0Uo MHgwNDg5LCAweGUwNDIpIH0sCiAJeyBVU0JfREVWSUNFKDB4NDEzYywgMHg4MTk3KSB9LAogCiAJ LyogRm94Y29ubiAtIEhvbiBIYWkgKi8KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZP KDB4MDQ4OSwgMHhmZiwgMHgwMSwgMHgwMSkgfSwKIAotCS8qQnJvYWRjb20gZGV2aWNlcyB3aXRo IHZlbmRvciBzcGVjaWZpYyBpZCAqLworCS8qIEJyb2FkY29tIGRldmljZXMgd2l0aCB2ZW5kb3Ig c3BlY2lmaWMgaWQgKi8KIAl7IFVTQl9WRU5ET1JfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MGE1Yywg MHhmZiwgMHgwMSwgMHgwMSkgfSwKIAorCS8qIEFTVVNUZWsgQ29tcHV0ZXIgLSBCcm9hZGNvbSBi YXNlZCAqLworCXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oMHgwYjA1LCAweGZmLCAw eDAxLCAweDAxKSB9LAorCisJLyogQmVsa2luIEY4MDY1YmYgLSBCcm9hZGNvbSBiYXNlZCAqLwor CXsgVVNCX1ZFTkRPUl9BTkRfSU5URVJGQUNFX0lORk8oMHgwNTBkLCAweGZmLCAweDAxLCAweDAx KSB9LAorCisJLyogSU1DIE5ldHdvcmtzIC0gQnJvYWRjb20gYmFzZWQgKi8KKwl7IFVTQl9WRU5E T1JfQU5EX0lOVEVSRkFDRV9JTkZPKDB4MTNkMywgMHhmZiwgMHgwMSwgMHgwMSkgfSwKKworCS8q IEludGVsIEJsdWV0b290aCBVU0IgQm9vdGxvYWRlciAoUkFNIG1vZHVsZSkgKi8KKwl7IFVTQl9E RVZJQ0UoMHg4MDg3LCAweDBhNWEpLAorCSAgLmRyaXZlcl9pbmZvID0gQlRVU0JfSU5URUxfQk9P VCB8IEJUVVNCX0JST0tFTl9JU09DIH0sCisKIAl7IH0JLyogVGVybWluYXRpbmcgZW50cnkgKi8K IH07CiAKQEAgLTEzMiw1MyArMTQ2LDY0IEBAIHN0YXRpYyBzdHJ1Y3QgdXNiX2RldmljZV9pZCBi bGFja2xpc3RfdGFibGVbXSA9IHsKIAl7IFVTQl9ERVZJQ0UoMHgwYTVjLCAweDIwMzMpLCAuZHJp dmVyX2luZm8gPSBCVFVTQl9JR05PUkUgfSwKIAogCS8qIEF0aGVyb3MgMzAxMSB3aXRoIHNmbGFz aCBmaXJtd2FyZSAqLworCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAyNyksIC5kcml2ZXJfaW5m byA9IEJUVVNCX0lHTk9SRSB9LAorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAzZCksIC5kcml2 ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LAorCXsgVVNCX0RFVklDRSgweDA5MzAsIDB4MDIxNSks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LAogCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4 MzAwMiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LAogCXsgVVNCX0RFVklDRSgweDBj ZjMsIDB4ZTAxOSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LAogCXsgVVNCX0RFVklD RSgweDEzZDMsIDB4MzMwNCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LAotCXsgVVNC X0RFVklDRSgweDA5MzAsIDB4MDIxNSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9SRSB9LAot CXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAzZCksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9S RSB9LAotCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAyNyksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0lHTk9SRSB9LAogCiAJLyogQXRoZXJvcyBBUjkyODUgTWFsYmVjIHdpdGggc2ZsYXNoIGZpcm13 YXJlICovCiAJeyBVU0JfREVWSUNFKDB4MDNmMCwgMHgzMTFkKSwgLmRyaXZlcl9pbmZvID0gQlRV U0JfSUdOT1JFIH0sCiAKIAkvKiBBdGhlcm9zIDMwMTIgd2l0aCBzZmxhc2ggZmlybXdhcmUgKi8K LQl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDAwMzYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgz MDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMDA0KSwgLmRyaXZlcl9pbmZvID0gQlRV U0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwOCksIC5kcml2ZXJfaW5m byA9IEJUVVNCX0FUSDMwMTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMxMWQpLCAuZHJp dmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MGNmMywgMHg4MTdh KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDEzZDMs IDB4MzM3NSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0Uo MHgwNDg5LCAweGUwNGQpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0Jf REVWSUNFKDB4MDQ4OSwgMHhlMDRlKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAor CXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA1NiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMw MTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNTcpLCAuZHJpdmVyX2luZm8gPSBCVFVT Ql9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDVmKSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA3OCksIC5kcml2 ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwNGM1LCAweDEzMzAp LCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MDRjYSwg MHgzMDA0KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgw eDA0Y2EsIDB4MzAwNSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9E RVZJQ0UoMHgwNGNhLCAweDMwMDYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJ eyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDA3KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAx MiB9LAogCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAwOCksIC5kcml2ZXJfaW5mbyA9IEJUVVNC X0FUSDMwMTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDMzNjIpLCAuZHJpdmVyX2luZm8g PSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDRjYSwgMHgzMDBiKSwgLmRyaXZl cl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDA0Y2EsIDB4MzAxMCks IC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAw eDAyMTkpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4 MDkzMCwgMHgwMjIwKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RF VklDRSgweDA5MzAsIDB4MDIyNyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7 IFVTQl9ERVZJQ0UoMHgwYjA1LCAweDE3ZDApLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEy IH0sCisJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgwMDM2KSwgLmRyaXZlcl9pbmZvID0gQlRVU0Jf QVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4MzAwNCksIC5kcml2ZXJfaW5mbyA9 IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweDMwMDgpLCAuZHJpdmVy X2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MGNmMywgMHgzMTFkKSwg LmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4 MzExZSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJQ0UoMHgw Y2YzLCAweDMxMWYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCisJeyBVU0JfREVW SUNFKDB4MGNmMywgMHgzMTIxKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsg VVNCX0RFVklDRSgweDBjZjMsIDB4ODE3YSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIg fSwKKwl7IFVTQl9ERVZJQ0UoMHgwY2YzLCAweGUwMDMpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9B VEgzMDEyIH0sCiAJeyBVU0JfREVWSUNFKDB4MGNmMywgMHhlMDA0KSwgLmRyaXZlcl9pbmZvID0g QlRVU0JfQVRIMzAxMiB9LAogCXsgVVNCX0RFVklDRSgweDBjZjMsIDB4ZTAwNSksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwOTMwLCAweDAyMTkpLCAu ZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhl MDU3KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAorCXsgVVNCX0RFVklDRSgweDEz ZDMsIDB4MzM2MiksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVTQl9ERVZJ Q0UoMHgxM2QzLCAweDMzNzUpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCiAJeyBV U0JfREVWSUNFKDB4MTNkMywgMHgzMzkzKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9 LAotCXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTA0ZSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FU SDMwMTIgfSwKLQl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwNTYpLCAuZHJpdmVyX2luZm8gPSBC VFVTQl9BVEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDRkKSwgLmRyaXZlcl9p bmZvID0gQlRVU0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklDRSgweDA0YzUsIDB4MTMzMCksIC5k cml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKIAl7IFVTQl9ERVZJQ0UoMHgxM2QzLCAweDM0 MDIpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0sCi0JeyBVU0JfREVWSUNFKDB4MGNm MywgMHgzMTIxKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRIMzAxMiB9LAotCXsgVVNCX0RFVklD RSgweDBjZjMsIDB4ZTAwMyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIgfSwKKwl7IFVT Ql9ERVZJQ0UoMHgxM2QzLCAweDM0MDgpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9BVEgzMDEyIH0s CisJeyBVU0JfREVWSUNFKDB4MTNkMywgMHgzNDMyKSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfQVRI MzAxMiB9LAogCiAJLyogQXRoZXJvcyBBUjVCQlUxMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwog CXsgVVNCX0RFVklDRSgweDA0ODksIDB4ZTAyYyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0lHTk9S RSB9LAogCiAJLyogQXRoZXJvcyBBUjVCQlUxMiB3aXRoIHNmbGFzaCBmaXJtd2FyZSAqLwotCXsg VVNCX0RFVklDRSgweDA0ODksIDB4ZTAzYyksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX0FUSDMwMTIg fSwKIAl7IFVTQl9ERVZJQ0UoMHgwNDg5LCAweGUwMzYpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9B VEgzMDEyIH0sCisJeyBVU0JfREVWSUNFKDB4MDQ4OSwgMHhlMDNjKSwgLmRyaXZlcl9pbmZvID0g QlRVU0JfQVRIMzAxMiB9LAogCiAJLyogQnJvYWRjb20gQkNNMjAzNSAqLwotCXsgVVNCX0RFVklD RSgweDBhNWMsIDB4MjAzNSksIC5kcml2ZXJfaW5mbyA9IEJUVVNCX1dST05HX1NDT19NVFUgfSwK LQl7IFVTQl9ERVZJQ0UoMHgwYTVjLCAweDIwMGEpLCAuZHJpdmVyX2luZm8gPSBCVFVTQl9XUk9O R19TQ09fTVRVIH0sCiAJeyBVU0JfREVWSUNFKDB4MGE1YywgMHgyMDA5KSwgLmRyaXZlcl9pbmZv ID0gQlRVU0JfQkNNOTIwMzUgfSwKKwl7IFVTQl9ERVZJQ0UoMHgwYTVjLCAweDIwMGEpLCAuZHJp dmVyX2luZm8gPSBCVFVTQl9XUk9OR19TQ09fTVRVIH0sCisJeyBVU0JfREVWSUNFKDB4MGE1Yywg MHgyMDM1KSwgLmRyaXZlcl9pbmZvID0gQlRVU0JfV1JPTkdfU0NPX01UVSB9LAogCiAJLyogQnJv YWRjb20gQkNNMjA0NSAqLwogCXsgVVNCX0RFVklDRSgweDBhNWMsIDB4MjAzOSksIC5kcml2ZXJf aW5mbyA9IEJUVVNCX1dST05HX1NDT19NVFUgfSwKQEAgLTEwNTgsNiArMTA4Myw5IEBAIHN0YXRp YyBpbnQgYnR1c2JfcHJvYmUoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYsCiAKIAloZGV2LT5v d25lciA9IFRISVNfTU9EVUxFOwogCisJaWYgKGlkLT5kcml2ZXJfaW5mbyAmIEJUVVNCX0lOVEVM X0JPT1QpCisJCXNldF9iaXQoSENJX1FVSVJLX1JBV19ERVZJQ0UsICZoZGV2LT5xdWlya3MpOwor CiAJLyogSW50ZXJmYWNlIG51bWJlcnMgYXJlIGhhcmRjb2RlZCBpbiB0aGUgc3BlY2lmaWNhdGlv biAqLwogCWRhdGEtPmlzb2MgPSB1c2JfaWZudW1fdG9faWYoZGF0YS0+dWRldiwgMSk7CiAKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stYWVzLmMgYi9kcml2ZXJzL2NyeXB0by9w YWRsb2NrLWFlcy5jCmluZGV4IDI5Yjk0NjkuLjg3NTAwZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Y3J5cHRvL3BhZGxvY2stYWVzLmMKKysrIGIvZHJpdmVycy9jcnlwdG8vcGFkbG9jay1hZXMuYwpA QCAtNTU5LDQgKzU1OSw0IEBAIE1PRFVMRV9ERVNDUklQVElPTigiVklBIFBhZExvY2sgQUVTIGFs Z29yaXRobSBzdXBwb3J0Iik7CiBNT0RVTEVfTElDRU5TRSgiR1BMIik7CiBNT0RVTEVfQVVUSE9S KCJNaWNoYWwgTHVkdmlnIik7CiAKLU1PRFVMRV9BTElBUygiYWVzIik7CitNT0RVTEVfQUxJQVNf Q1JZUFRPKCJhZXMiKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMg Yi9kcml2ZXJzL2NyeXB0by9wYWRsb2NrLXNoYS5jCmluZGV4IDA2YmRiNGIuLjcxMGYzY2IgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvY3J5cHRvL3BhZGxvY2stc2hhLmMKKysrIGIvZHJpdmVycy9jcnlw dG8vcGFkbG9jay1zaGEuYwpAQCAtNTkzLDcgKzU5Myw3IEBAIE1PRFVMRV9ERVNDUklQVElPTigi VklBIFBhZExvY2sgU0hBMS9TSEEyNTYgYWxnb3JpdGhtcyBzdXBwb3J0LiIpOwogTU9EVUxFX0xJ Q0VOU0UoIkdQTCIpOwogTU9EVUxFX0FVVEhPUigiTWljaGFsIEx1ZHZpZyIpOwogCi1NT0RVTEVf QUxJQVMoInNoYTEtYWxsIik7Ci1NT0RVTEVfQUxJQVMoInNoYTI1Ni1hbGwiKTsKLU1PRFVMRV9B TElBUygic2hhMS1wYWRsb2NrIik7Ci1NT0RVTEVfQUxJQVMoInNoYTI1Ni1wYWRsb2NrIik7CitN T0RVTEVfQUxJQVNfQ1JZUFRPKCJzaGExLWFsbCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2hh MjU2LWFsbCIpOworTU9EVUxFX0FMSUFTX0NSWVBUTygic2hhMS1wYWRsb2NrIik7CitNT0RVTEVf QUxJQVNfQ1JZUFRPKCJzaGEyNTYtcGFkbG9jayIpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncGlv L2dwaW9saWIuYyBiL2RyaXZlcnMvZ3Bpby9ncGlvbGliLmMKaW5kZXggYTk3MWUzZC4uNTFlNWVl OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncGlvL2dwaW9saWIuYworKysgYi9kcml2ZXJzL2dwaW8v Z3Bpb2xpYi5jCkBAIC01OCw2ICs1OCw3IEBAIHN0cnVjdCBncGlvX2Rlc2MgewogI2RlZmluZSBG TEFHX1RSSUdfRkFMTAk1CS8qIHRyaWdnZXIgb24gZmFsbGluZyBlZGdlICovCiAjZGVmaW5lIEZM QUdfVFJJR19SSVNFCTYJLyogdHJpZ2dlciBvbiByaXNpbmcgZWRnZSAqLwogI2RlZmluZSBGTEFH X0FDVElWRV9MT1cJNwkvKiBzeXNmcyB2YWx1ZSBoYXMgYWN0aXZlIGxvdyAqLworI2RlZmluZSBG TEFHX1NZU0ZTX0RJUgkxMAkvKiBzaG93IHN5c2ZzIGRpcmVjdGlvbiBhdHRyaWJ1dGUgKi8KIAog I2RlZmluZSBJRF9TSElGVAkxNgkvKiBhZGQgbmV3IGZsYWdzIGJlZm9yZSB0aGlzIG9uZSAqLwog CkBAIC0zMTcsNyArMzE4LDcgQEAgc3RhdGljIHNzaXplX3QgZ3Bpb192YWx1ZV9zdG9yZShzdHJ1 Y3QgZGV2aWNlICpkZXYsCiAJcmV0dXJuIHN0YXR1czsKIH0KIAotc3RhdGljIGNvbnN0IERFVklD RV9BVFRSKHZhbHVlLCAwNjQ0LAorc3RhdGljIERFVklDRV9BVFRSKHZhbHVlLCAwNjQ0LAogCQln cGlvX3ZhbHVlX3Nob3csIGdwaW9fdmFsdWVfc3RvcmUpOwogCiBzdGF0aWMgaXJxcmV0dXJuX3Qg Z3Bpb19zeXNmc19pcnEoaW50IGlycSwgdm9pZCAqcHJpdikKQEAgLTU0MCwxNyArNTQxLDQ3IEBA IHN0YXRpYyBzc2l6ZV90IGdwaW9fYWN0aXZlX2xvd19zdG9yZShzdHJ1Y3QgZGV2aWNlICpkZXYs CiAJcmV0dXJuIHN0YXR1cyA/IDogc2l6ZTsKIH0KIAotc3RhdGljIGNvbnN0IERFVklDRV9BVFRS KGFjdGl2ZV9sb3csIDA2NDQsCitzdGF0aWMgREVWSUNFX0FUVFIoYWN0aXZlX2xvdywgMDY0NCwK IAkJZ3Bpb19hY3RpdmVfbG93X3Nob3csIGdwaW9fYWN0aXZlX2xvd19zdG9yZSk7CiAKLXN0YXRp YyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICpncGlvX2F0dHJzW10gPSB7CitzdGF0aWMgbW9kZV90 IGdwaW9faXNfdmlzaWJsZShzdHJ1Y3Qga29iamVjdCAqa29iaiwgc3RydWN0IGF0dHJpYnV0ZSAq YXR0ciwKKwkJCSAgICAgICBpbnQgbikKK3sKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBjb250YWlu ZXJfb2Yoa29iaiwgc3RydWN0IGRldmljZSwga29iaik7CisJc3RydWN0IGdwaW9fZGVzYyAqZGVz YyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGdwaW8gPSBkZXNjIC0gZ3Bpb19k ZXNjOworCW1vZGVfdCBtb2RlID0gYXR0ci0+bW9kZTsKKwlib29sIHNob3dfZGlyZWN0aW9uID0g dGVzdF9iaXQoRkxBR19TWVNGU19ESVIsICZkZXNjLT5mbGFncyk7CisKKwlpZiAoYXR0ciA9PSAm ZGV2X2F0dHJfZGlyZWN0aW9uLmF0dHIpIHsKKwkJaWYgKCFzaG93X2RpcmVjdGlvbikKKwkJCW1v ZGUgPSAwOworCX0gZWxzZSBpZiAoYXR0ciA9PSAmZGV2X2F0dHJfZWRnZS5hdHRyKSB7CisJCWlm IChncGlvX3RvX2lycShncGlvKSA8IDApCisJCQltb2RlID0gMDsKKwkJaWYgKCFzaG93X2RpcmVj dGlvbiAmJiB0ZXN0X2JpdChGTEFHX0lTX09VVCwgJmRlc2MtPmZsYWdzKSkKKwkJCW1vZGUgPSAw OworCX0KKworCXJldHVybiBtb2RlOworfQorCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZSAqZ3Bp b19hdHRyc1tdID0geworCSZkZXZfYXR0cl9kaXJlY3Rpb24uYXR0ciwKKwkmZGV2X2F0dHJfZWRn ZS5hdHRyLAogCSZkZXZfYXR0cl92YWx1ZS5hdHRyLAogCSZkZXZfYXR0cl9hY3RpdmVfbG93LmF0 dHIsCiAJTlVMTCwKIH07CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdw aW9fYXR0cl9ncm91cCA9IHsKLQkuYXR0cnMgPSAoc3RydWN0IGF0dHJpYnV0ZSAqKikgZ3Bpb19h dHRycywKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdwaW9fZ3JvdXAgPSB7 CisJLmF0dHJzID0gZ3Bpb19hdHRycywKKwkuaXNfdmlzaWJsZSA9IGdwaW9faXNfdmlzaWJsZSwK K307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpncGlvX2dyb3Vwc1td ID0geworCSZncGlvX2dyb3VwLAorCU5VTEwKIH07CiAKIC8qCkBAIC01ODcsMTYgKzYxOCwxMyBA QCBzdGF0aWMgc3NpemVfdCBjaGlwX25ncGlvX3Nob3coc3RydWN0IGRldmljZSAqZGV2LAogfQog c3RhdGljIERFVklDRV9BVFRSKG5ncGlvLCAwNDQ0LCBjaGlwX25ncGlvX3Nob3csIE5VTEwpOwog Ci1zdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZSAqZ3Bpb2NoaXBfYXR0cnNbXSA9IHsKK3N0 YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICpncGlvY2hpcF9hdHRyc1tdID0gewogCSZkZXZfYXR0cl9i YXNlLmF0dHIsCiAJJmRldl9hdHRyX2xhYmVsLmF0dHIsCiAJJmRldl9hdHRyX25ncGlvLmF0dHIs CiAJTlVMTCwKIH07Ci0KLXN0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwIGdwaW9j aGlwX2F0dHJfZ3JvdXAgPSB7Ci0JLmF0dHJzID0gKHN0cnVjdCBhdHRyaWJ1dGUgKiopIGdwaW9j aGlwX2F0dHJzLAotfTsKK0FUVFJJQlVURV9HUk9VUFMoZ3Bpb2NoaXApOwogCiAvKgogICogL3N5 cy9jbGFzcy9ncGlvL2V4cG9ydCAuLi4gd3JpdGUtb25seQpAQCAtNzAwLDggKzcyOCw5IEBAIGlu dCBncGlvX2V4cG9ydCh1bnNpZ25lZCBncGlvLCBib29sIGRpcmVjdGlvbl9tYXlfY2hhbmdlKQog ewogCXVuc2lnbmVkIGxvbmcJCWZsYWdzOwogCXN0cnVjdCBncGlvX2Rlc2MJKmRlc2M7Ci0JaW50 CQkJc3RhdHVzID0gLUVJTlZBTDsKKwlpbnQJCQlzdGF0dXM7CiAJY29uc3QgY2hhcgkJKmlvbmFt ZSA9IE5VTEw7CisJc3RydWN0IGRldmljZQkJKmRldjsKIAogCS8qIGNhbid0IGV4cG9ydCB1bnRp bCBzeXNmcyBpcyBhdmFpbGFibGUgLi4uICovCiAJaWYgKCFncGlvX2NsYXNzLnApIHsKQEAgLTcw OSw1OSArNzM4LDUwIEBAIGludCBncGlvX2V4cG9ydCh1bnNpZ25lZCBncGlvLCBib29sIGRpcmVj dGlvbl9tYXlfY2hhbmdlKQogCQlyZXR1cm4gLUVOT0VOVDsKIAl9CiAKLQlpZiAoIWdwaW9faXNf dmFsaWQoZ3BpbykpCi0JCWdvdG8gZG9uZTsKKwlpZiAoIWdwaW9faXNfdmFsaWQoZ3BpbykpIHsK KwkJcHJfZGVidWcoIiVzOiBncGlvICVkIGlzIG5vdCB2YWxpZFxuIiwgX19mdW5jX18sIGdwaW8p OworCQlyZXR1cm4gLUVJTlZBTDsKKwl9CiAKIAltdXRleF9sb2NrKCZzeXNmc19sb2NrKTsKIAog CXNwaW5fbG9ja19pcnFzYXZlKCZncGlvX2xvY2ssIGZsYWdzKTsKIAlkZXNjID0gJmdwaW9fZGVz Y1tncGlvXTsKLQlpZiAodGVzdF9iaXQoRkxBR19SRVFVRVNURUQsICZkZXNjLT5mbGFncykKLQkJ CSYmICF0ZXN0X2JpdChGTEFHX0VYUE9SVCwgJmRlc2MtPmZsYWdzKSkgewotCQlzdGF0dXMgPSAw OwotCQlpZiAoIWRlc2MtPmNoaXAtPmRpcmVjdGlvbl9pbnB1dAotCQkJCXx8ICFkZXNjLT5jaGlw LT5kaXJlY3Rpb25fb3V0cHV0KQotCQkJZGlyZWN0aW9uX21heV9jaGFuZ2UgPSBmYWxzZTsKKwlp ZiAoIXRlc3RfYml0KEZMQUdfUkVRVUVTVEVELCAmZGVzYy0+ZmxhZ3MpIHx8CisJICAgICB0ZXN0 X2JpdChGTEFHX0VYUE9SVCwgJmRlc2MtPmZsYWdzKSkgeworCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZncGlvX2xvY2ssIGZsYWdzKTsKKwkJcHJfZGVidWcoIiVzOiBncGlvICVkIHVuYXZhaWxh YmxlIChyZXF1ZXN0ZWQ9JWQsIGV4cG9ydGVkPSVkKVxuIiwKKwkJCQlfX2Z1bmNfXywgZ3BpbywK KwkJCQl0ZXN0X2JpdChGTEFHX1JFUVVFU1RFRCwgJmRlc2MtPmZsYWdzKSwKKwkJCQl0ZXN0X2Jp dChGTEFHX0VYUE9SVCwgJmRlc2MtPmZsYWdzKSk7CisJCXJldHVybiAtRVBFUk07CisJfQorCisJ aWYgKGRlc2MtPmNoaXAtPmRpcmVjdGlvbl9pbnB1dCAmJiBkZXNjLT5jaGlwLT5kaXJlY3Rpb25f b3V0cHV0ICYmCisJCQlkaXJlY3Rpb25fbWF5X2NoYW5nZSkgeworCQlzZXRfYml0KEZMQUdfU1lT RlNfRElSLCAmZGVzYy0+ZmxhZ3MpOwogCX0KKwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmdw aW9fbG9jaywgZmxhZ3MpOwogCiAJaWYgKGRlc2MtPmNoaXAtPm5hbWVzICYmIGRlc2MtPmNoaXAt Pm5hbWVzW2dwaW8gLSBkZXNjLT5jaGlwLT5iYXNlXSkKIAkJaW9uYW1lID0gZGVzYy0+Y2hpcC0+ bmFtZXNbZ3BpbyAtIGRlc2MtPmNoaXAtPmJhc2VdOwogCi0JaWYgKHN0YXR1cyA9PSAwKSB7Ci0J CXN0cnVjdCBkZXZpY2UJKmRldjsKLQotCQlkZXYgPSBkZXZpY2VfY3JlYXRlKCZncGlvX2NsYXNz LCBkZXNjLT5jaGlwLT5kZXYsIE1LREVWKDAsIDApLAotCQkJCWRlc2MsIGlvbmFtZSA/IGlvbmFt ZSA6ICJncGlvJXUiLCBncGlvKTsKLQkJaWYgKCFJU19FUlIoZGV2KSkgewotCQkJc3RhdHVzID0g c3lzZnNfY3JlYXRlX2dyb3VwKCZkZXYtPmtvYmosCi0JCQkJCQkmZ3Bpb19hdHRyX2dyb3VwKTsK LQotCQkJaWYgKCFzdGF0dXMgJiYgZGlyZWN0aW9uX21heV9jaGFuZ2UpCi0JCQkJc3RhdHVzID0g ZGV2aWNlX2NyZWF0ZV9maWxlKGRldiwKLQkJCQkJCSZkZXZfYXR0cl9kaXJlY3Rpb24pOwotCi0J CQlpZiAoIXN0YXR1cyAmJiBncGlvX3RvX2lycShncGlvKSA+PSAwCi0JCQkJCSYmIChkaXJlY3Rp b25fbWF5X2NoYW5nZQotCQkJCQkJfHwgIXRlc3RfYml0KEZMQUdfSVNfT1VULAotCQkJCQkJCSZk ZXNjLT5mbGFncykpKQotCQkJCXN0YXR1cyA9IGRldmljZV9jcmVhdGVfZmlsZShkZXYsCi0JCQkJ CQkmZGV2X2F0dHJfZWRnZSk7Ci0KLQkJCWlmIChzdGF0dXMgIT0gMCkKLQkJCQlkZXZpY2VfdW5y ZWdpc3RlcihkZXYpOwotCQl9IGVsc2UKLQkJCXN0YXR1cyA9IFBUUl9FUlIoZGV2KTsKLQkJaWYg KHN0YXR1cyA9PSAwKQotCQkJc2V0X2JpdChGTEFHX0VYUE9SVCwgJmRlc2MtPmZsYWdzKTsKKwlk ZXYgPSBkZXZpY2VfY3JlYXRlX3dpdGhfZ3JvdXBzKCZncGlvX2NsYXNzLCBkZXNjLT5jaGlwLT5k ZXYsCisJCQkJCU1LREVWKDAsIDApLCBkZXNjLCBncGlvX2dyb3VwcywKKwkJCQkJaW9uYW1lID8g aW9uYW1lIDogImdwaW8ldSIsIGdwaW8pOworCWlmIChJU19FUlIoZGV2KSkgeworCQlzdGF0dXMg PSBQVFJfRVJSKGRldik7CisJCWdvdG8gZmFpbF91bmxvY2s7CiAJfQogCisJc2V0X2JpdChGTEFH X0VYUE9SVCwgJmRlc2MtPmZsYWdzKTsKIAltdXRleF91bmxvY2soJnN5c2ZzX2xvY2spOworCXJl dHVybiAwOwogCi1kb25lOgotCWlmIChzdGF0dXMpCi0JCXByX2RlYnVnKCIlczogZ3BpbyVkIHN0 YXR1cyAlZFxuIiwgX19mdW5jX18sIGdwaW8sIHN0YXR1cyk7Ci0KK2ZhaWxfdW5sb2NrOgorCW11 dGV4X3VubG9jaygmc3lzZnNfbG9jayk7CisJcHJfZGVidWcoIiVzOiBncGlvJWQgc3RhdHVzICVk XG4iLCBfX2Z1bmNfXywgZ3Bpbywgc3RhdHVzKTsKIAlyZXR1cm4gc3RhdHVzOwogfQogRVhQT1JU X1NZTUJPTF9HUEwoZ3Bpb19leHBvcnQpOwpAQCAtODczLDYgKzg5Myw3IEBAIHZvaWQgZ3Bpb191 bmV4cG9ydCh1bnNpZ25lZCBncGlvKQogewogCXN0cnVjdCBncGlvX2Rlc2MJKmRlc2M7CiAJaW50 CQkJc3RhdHVzID0gMDsKKwlzdHJ1Y3QgZGV2aWNlCQkqZGV2ID0gTlVMTDsKIAogCWlmICghZ3Bp b19pc192YWxpZChncGlvKSkgewogCQlzdGF0dXMgPSAtRUlOVkFMOwpAQCAtODg0LDE5ICs5MDUs MjEgQEAgdm9pZCBncGlvX3VuZXhwb3J0KHVuc2lnbmVkIGdwaW8pCiAJZGVzYyA9ICZncGlvX2Rl c2NbZ3Bpb107CiAKIAlpZiAodGVzdF9iaXQoRkxBR19FWFBPUlQsICZkZXNjLT5mbGFncykpIHsK LQkJc3RydWN0IGRldmljZQkqZGV2ID0gTlVMTDsKIAogCQlkZXYgPSBjbGFzc19maW5kX2Rldmlj ZSgmZ3Bpb19jbGFzcywgTlVMTCwgZGVzYywgbWF0Y2hfZXhwb3J0KTsKIAkJaWYgKGRldikgewog CQkJZ3Bpb19zZXR1cF9pcnEoZGVzYywgZGV2LCAwKTsKKwkJCWNsZWFyX2JpdChGTEFHX1NZU0ZT X0RJUiwgJmRlc2MtPmZsYWdzKTsKIAkJCWNsZWFyX2JpdChGTEFHX0VYUE9SVCwgJmRlc2MtPmZs YWdzKTsKLQkJCXB1dF9kZXZpY2UoZGV2KTsKLQkJCWRldmljZV91bnJlZ2lzdGVyKGRldik7CiAJ CX0gZWxzZQogCQkJc3RhdHVzID0gLUVOT0RFVjsKIAl9CiAKIAltdXRleF91bmxvY2soJnN5c2Zz X2xvY2spOworCWlmIChkZXYpIHsKKwkJZGV2aWNlX3VucmVnaXN0ZXIoZGV2KTsKKwkJcHV0X2Rl dmljZShkZXYpOworCX0KIGRvbmU6CiAJaWYgKHN0YXR1cykKIAkJcHJfZGVidWcoIiVzOiBncGlv JWQgc3RhdHVzICVkXG4iLCBfX2Z1bmNfXywgZ3Bpbywgc3RhdHVzKTsKQEAgLTkxOCwxMyArOTQx LDEzIEBAIHN0YXRpYyBpbnQgZ3Bpb2NoaXBfZXhwb3J0KHN0cnVjdCBncGlvX2NoaXAgKmNoaXAp CiAKIAkvKiB1c2UgY2hpcC0+YmFzZSBmb3IgdGhlIElEOyBpdCdzIGFscmVhZHkga25vd24gdG8g YmUgdW5pcXVlICovCiAJbXV0ZXhfbG9jaygmc3lzZnNfbG9jayk7Ci0JZGV2ID0gZGV2aWNlX2Ny ZWF0ZSgmZ3Bpb19jbGFzcywgY2hpcC0+ZGV2LCBNS0RFVigwLCAwKSwgY2hpcCwKLQkJCQkiZ3Bp b2NoaXAlZCIsIGNoaXAtPmJhc2UpOwotCWlmICghSVNfRVJSKGRldikpIHsKLQkJc3RhdHVzID0g c3lzZnNfY3JlYXRlX2dyb3VwKCZkZXYtPmtvYmosCi0JCQkJJmdwaW9jaGlwX2F0dHJfZ3JvdXAp OwotCX0gZWxzZQorCWRldiA9IGRldmljZV9jcmVhdGVfd2l0aF9ncm91cHMoJmdwaW9fY2xhc3Ms IGNoaXAtPmRldiwgTUtERVYoMCwgMCksCisJCQkJCWNoaXAsIGdwaW9jaGlwX2dyb3VwcywKKwkJ CQkJImdwaW9jaGlwJWQiLCBjaGlwLT5iYXNlKTsKKwlpZiAoSVNfRVJSKGRldikpCiAJCXN0YXR1 cyA9IFBUUl9FUlIoZGV2KTsKKwllbHNlCisJCXN0YXR1cyA9IDA7CiAJY2hpcC0+ZXhwb3J0ZWQg PSAoc3RhdHVzID09IDApOwogCW11dGV4X3VubG9jaygmc3lzZnNfbG9jayk7CiAKQEAgLTEwNzUs OSArMTA5OCw5IEBAIGludCBncGlvY2hpcF9hZGQoc3RydWN0IGdwaW9fY2hpcCAqY2hpcCkKIAkJ CQk/ICgxIDw8IEZMQUdfSVNfT1VUKQogCQkJCTogMDsKIAkJfQotCX0KIAotCW9mX2dwaW9jaGlw X2FkZChjaGlwKTsKKwkJb2ZfZ3Bpb2NoaXBfYWRkKGNoaXApOworCX0KIAogdW5sb2NrOgogCXNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmdwaW9fbG9jaywgZmxhZ3MpOwpAQCAtMTA4Niw4ICsxMTA5 LDEwIEBAIHVubG9jazoKIAkJZ290byBmYWlsOwogCiAJc3RhdHVzID0gZ3Bpb2NoaXBfZXhwb3J0 KGNoaXApOwotCWlmIChzdGF0dXMpCisJaWYgKHN0YXR1cykgeworCQlvZl9ncGlvY2hpcF9yZW1v dmUoY2hpcCk7CiAJCWdvdG8gZmFpbDsKKwl9CiAKIAlyZXR1cm4gMDsKIGZhaWw6CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9nZW0uYwppbmRleCAyODY1YjQ0Li4zMTVhNDllIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtLmMKQEAgLTIyNDgsNiArMjI0OCwxMyBAQCBzdGF0aWMgaW50IHNhbmR5YnJpZGdlX3dyaXRl X2ZlbmNlX3JlZyhzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCWludCByZWdudW0g PSBvYmotPmZlbmNlX3JlZzsKIAl1aW50NjRfdCB2YWw7CiAKKwkvKiBBZGp1c3QgZmVuY2Ugc2l6 ZSB0byBtYXRjaCB0aWxlZCBhcmVhICovCisJaWYgKG9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9U SUxJTkdfTk9ORSkgeworCQl1aW50MzJfdCByb3dfc2l6ZSA9IG9iai0+c3RyaWRlICoKKwkJCShv YmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX1kgPyAzMiA6IDgpOworCQlzaXplID0gKHNp emUgLyByb3dfc2l6ZSkgKiByb3dfc2l6ZTsKKwl9CisKIAl2YWwgPSAodWludDY0X3QpKChvYmot Pmd0dF9vZmZzZXQgKyBzaXplIC0gNDA5NikgJgogCQkJIDB4ZmZmZmYwMDApIDw8IDMyOwogCXZh bCB8PSBvYmotPmd0dF9vZmZzZXQgJiAweGZmZmZmMDAwOwpAQCAtMjI4NSw2ICsyMjkyLDEzIEBA IHN0YXRpYyBpbnQgaTk2NV93cml0ZV9mZW5jZV9yZWcoc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iaiwKIAlpbnQgcmVnbnVtID0gb2JqLT5mZW5jZV9yZWc7CiAJdWludDY0X3QgdmFsOwog CisJLyogQWRqdXN0IGZlbmNlIHNpemUgdG8gbWF0Y2ggdGlsZWQgYXJlYSAqLworCWlmIChvYmot PnRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05PTkUpIHsKKwkJdWludDMyX3Qgcm93X3NpemUg PSBvYmotPnN0cmlkZSAqCisJCQkob2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19ZID8g MzIgOiA4KTsKKwkJc2l6ZSA9IChzaXplIC8gcm93X3NpemUpICogcm93X3NpemU7CisJfQorCiAJ dmFsID0gKHVpbnQ2NF90KSgob2JqLT5ndHRfb2Zmc2V0ICsgc2l6ZSAtIDQwOTYpICYKIAkJICAg IDB4ZmZmZmYwMDApIDw8IDMyOwogCXZhbCB8PSBvYmotPmd0dF9vZmZzZXQgJiAweGZmZmZmMDAw OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYyBiL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2ZlbmNlLmMKaW5kZXggMTVmYjI2MC4uMWVkNWEx YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfZmVuY2UuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9mZW5jZS5jCkBAIC00ODQsMTQgKzQ4NCw3 IEBAIHZvaWQgdm13X2ZlbmNlX29ial9mbHVzaChzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqZmVuY2Up CiAKIHN0YXRpYyB2b2lkIHZtd19mZW5jZV9kZXN0cm95KHN0cnVjdCB2bXdfZmVuY2Vfb2JqICpm ZW5jZSkKIHsKLQlzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4gPSBmZW5jZS0+Zm1hbjsK LQogCWtmcmVlKGZlbmNlKTsKLQkvKgotCSAqIEZyZWUga2VybmVsIHNwYWNlIGFjY291bnRpbmcu Ci0JICovCi0JdHRtX21lbV9nbG9iYWxfZnJlZSh2bXdfbWVtX2dsb2IoZm1hbi0+ZGV2X3ByaXYp LAotCQkJICAgIGZtYW4tPmZlbmNlX3NpemUpOwogfQogCiBpbnQgdm13X2ZlbmNlX2NyZWF0ZShz dHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4sCkBAIC00OTksMjAgKzQ5MiwxMiBAQCBpbnQg dm13X2ZlbmNlX2NyZWF0ZShzdHJ1Y3Qgdm13X2ZlbmNlX21hbmFnZXIgKmZtYW4sCiAJCSAgICAg dWludDMyX3QgbWFzaywKIAkJICAgICBzdHJ1Y3Qgdm13X2ZlbmNlX29iaiAqKnBfZmVuY2UpCiB7 Ci0Jc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9IHZtd19tZW1fZ2xvYihmbWFuLT5k ZXZfcHJpdik7CiAJc3RydWN0IHZtd19mZW5jZV9vYmogKmZlbmNlOwogCWludCByZXQ7CiAKLQly ZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvYyhtZW1fZ2xvYiwgZm1hbi0+ZmVuY2Vfc2l6ZSwKLQkJ CQkgICBmYWxzZSwgZmFsc2UpOwotCWlmICh1bmxpa2VseShyZXQgIT0gMCkpCi0JCXJldHVybiBy ZXQ7Ci0KIAlmZW5jZSA9IGt6YWxsb2Moc2l6ZW9mKCpmZW5jZSksIEdGUF9LRVJORUwpOwotCWlm ICh1bmxpa2VseShmZW5jZSA9PSBOVUxMKSkgewotCQlyZXQgPSAtRU5PTUVNOwotCQlnb3RvIG91 dF9ub19vYmplY3Q7Ci0JfQorCWlmICh1bmxpa2VseShmZW5jZSA9PSBOVUxMKSkKKwkJcmV0dXJu IC1FTk9NRU07CiAKIAlyZXQgPSB2bXdfZmVuY2Vfb2JqX2luaXQoZm1hbiwgZmVuY2UsIHNlcW5v LCBtYXNrLAogCQkJCSB2bXdfZmVuY2VfZGVzdHJveSk7CkBAIC01MjQsOCArNTA5LDYgQEAgaW50 IHZtd19mZW5jZV9jcmVhdGUoc3RydWN0IHZtd19mZW5jZV9tYW5hZ2VyICpmbWFuLAogCiBvdXRf ZXJyX2luaXQ6CiAJa2ZyZWUoZmVuY2UpOwotb3V0X25vX29iamVjdDoKLQl0dG1fbWVtX2dsb2Jh bF9mcmVlKG1lbV9nbG9iLCBmbWFuLT5mZW5jZV9zaXplKTsKIAlyZXR1cm4gcmV0OwogfQogCmRp ZmYgLS1naXQgYS9kcml2ZXJzL2hpZC9oaWQtcm9jY2F0LXB5cmEuYyBiL2RyaXZlcnMvaGlkL2hp ZC1yb2NjYXQtcHlyYS5jCmluZGV4IGRmMDVjMWIxLi4xM2I0MGEwIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2hpZC9oaWQtcm9jY2F0LXB5cmEuYworKysgYi9kcml2ZXJzL2hpZC9oaWQtcm9jY2F0LXB5 cmEuYwpAQCAtMzUsNiArMzUsOCBAQCBzdGF0aWMgc3RydWN0IGNsYXNzICpweXJhX2NsYXNzOwog c3RhdGljIHZvaWQgcHJvZmlsZV9hY3RpdmF0ZWQoc3RydWN0IHB5cmFfZGV2aWNlICpweXJhLAog CQl1bnNpZ25lZCBpbnQgbmV3X3Byb2ZpbGUpCiB7CisJaWYgKG5ld19wcm9maWxlID49IEFSUkFZ X1NJWkUocHlyYS0+cHJvZmlsZV9zZXR0aW5ncykpCisJCXJldHVybjsKIAlweXJhLT5hY3R1YWxf cHJvZmlsZSA9IG5ld19wcm9maWxlOwogCXB5cmEtPmFjdHVhbF9jcGkgPSBweXJhLT5wcm9maWxl X3NldHRpbmdzW3B5cmEtPmFjdHVhbF9wcm9maWxlXS55X2NwaTsKIH0KQEAgLTMwMyw2ICszMDUs MTAgQEAgc3RhdGljIHNzaXplX3QgcHlyYV9zeXNmc193cml0ZV9zZXR0aW5ncyhzdHJ1Y3QgZmls ZSAqZnAsCiAJaWYgKG9mZiAhPSAwIHx8IGNvdW50ICE9IHNpemVvZihzdHJ1Y3QgcHlyYV9zZXR0 aW5ncykpCiAJCXJldHVybiAtRUlOVkFMOwogCisJaWYgKCgoc3RydWN0IHB5cmFfc2V0dGluZ3Mg Y29uc3QgKilidWYpLT5zdGFydHVwX3Byb2ZpbGUgPj0KKwkgICAgQVJSQVlfU0laRShweXJhLT5w cm9maWxlX3NldHRpbmdzKSkKKwkJcmV0dXJuIC1FSU5WQUw7CisKIAltdXRleF9sb2NrKCZweXJh LT5weXJhX2xvY2spOwogCWRpZmZlcmVuY2UgPSBtZW1jbXAoYnVmLCAmcHlyYS0+c2V0dGluZ3Ms IHNpemVvZihzdHJ1Y3QgcHlyYV9zZXR0aW5ncykpOwogCWlmIChkaWZmZXJlbmNlKSB7CmRpZmYg LS1naXQgYS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLXg4NmlhNjRpby5oIGIvZHJpdmVycy9p bnB1dC9zZXJpby9pODA0Mi14ODZpYTY0aW8uaAppbmRleCBhNWM2YThjLi44NThiMGUzIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLXg4NmlhNjRpby5oCisrKyBiL2RyaXZl cnMvaW5wdXQvc2VyaW8vaTgwNDIteDg2aWE2NGlvLmgKQEAgLTE1Miw2ICsxNTIsMTQgQEAgc3Rh dGljIGNvbnN0IHN0cnVjdCBkbWlfc3lzdGVtX2lkIF9faW5pdGNvbnN0IGk4MDQyX2RtaV9ub2xv b3BfdGFibGVbXSA9IHsKIAkJfSwKIAl9LAogCXsKKwkJLyogTWVkaW9uIEFrb3lhIEU3MjI1ICov CisJCS5tYXRjaGVzID0geworCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiTWVkaW9uIiks CisJCQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIkFrb3lhIEU3MjI1IiksCisJCQlETUlf TUFUQ0goRE1JX1BST0RVQ1RfVkVSU0lPTiwgIjEuMCIpLAorCQl9LAorCX0sCisJewogCQkvKiBC bHVlIEZCNTYwMSAqLwogCQkubWF0Y2hlcyA9IHsKIAkJCURNSV9NQVRDSChETUlfU1lTX1ZFTkRP UiwgImJsdWUiKSwKQEAgLTQwOCw2ICs0MTYsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkbWlf c3lzdGVtX2lkIF9faW5pdGNvbnN0IGk4MDQyX2RtaV9ub211eF90YWJsZVtdID0gewogCQl9LAog CX0sCiAJeworCQkvKiBBY2VyIEFzcGlyZSA3NzM4ICovCisJCS5tYXRjaGVzID0geworCQkJRE1J X01BVENIKERNSV9TWVNfVkVORE9SLCAiQWNlciIpLAorCQkJRE1JX01BVENIKERNSV9QUk9EVUNU X05BTUUsICJBc3BpcmUgNzczOCIpLAorCQl9LAorCX0sCisJewogCQkvKiBHZXJpY29tIEJlbGxh Z2lvICovCiAJCS5tYXRjaGVzID0gewogCQkJRE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiR2Vy aWNvbSIpLApAQCAtNzE0LDYgKzcyOSwzNSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRtaV9zeXN0 ZW1faWQgX19pbml0Y29uc3QgaTgwNDJfZG1pX2RyaXRla190YWJsZVtdID0gewogCXsgfQogfTsK IAorLyoKKyAqIFNvbWUgbGFwdG9wcyBuZWVkIGtleWJvYXJkIHJlc2V0IGJlZm9yZSBwcm9iaW5n IGZvciB0aGUgdHJhY2twYWQgdG8gZ2V0CisgKiBpdCBkZXRlY3RlZCwgaW5pdGlhbGlzZWQgJiBm aW5hbGx5IHdvcmsuCisgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZG1pX3N5c3RlbV9pZCBfX2lu aXRjb25zdCBpODA0Ml9kbWlfa2JkcmVzZXRfdGFibGVbXSA9IHsKKwl7CisJCS8qIEdpZ2FieXRl IFAzNSB2MiAtIEVsYW50ZWNoIHRvdWNocGFkICovCisJCS5tYXRjaGVzID0geworCQkJRE1JX01B VENIKERNSV9TWVNfVkVORE9SLCAiR0lHQUJZVEUiKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVD VF9OQU1FLCAiUDM1VjIiKSwKKwkJfSwKKwl9LAorCQl7CisJCS8qIEFvcnVzIGJyYW5kZWQgR2ln YWJ5dGUgWDMgUGx1cyAtIEVsYW50ZWNoIHRvdWNocGFkICovCisJCS5tYXRjaGVzID0geworCQkJ RE1JX01BVENIKERNSV9TWVNfVkVORE9SLCAiR0lHQUJZVEUiKSwKKwkJCURNSV9NQVRDSChETUlf UFJPRFVDVF9OQU1FLCAiWDMiKSwKKwkJfSwKKwl9LAorCXsKKwkJLyogR2lnYWJ5dGUgUDM0IC0g RWxhbnRlY2ggdG91Y2hwYWQgKi8KKwkJLm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZ U19WRU5ET1IsICJHSUdBQllURSIpLAorCQkJRE1JX01BVENIKERNSV9QUk9EVUNUX05BTUUsICJQ MzQiKSwKKwkJfSwKKwl9LAorCXsgfQorfTsKKwogI2VuZGlmIC8qIENPTkZJR19YODYgKi8KIAog I2lmZGVmIENPTkZJR19QTlAKQEAgLTk5Miw2ICsxMDM2LDkgQEAgc3RhdGljIGludCBfX2luaXQg aTgwNDJfcGxhdGZvcm1faW5pdCh2b2lkKQogCWlmIChkbWlfY2hlY2tfc3lzdGVtKGk4MDQyX2Rt aV9kcml0ZWtfdGFibGUpKQogCQlpODA0Ml9kcml0ZWsgPSB0cnVlOwogCisJaWYgKGRtaV9jaGVj a19zeXN0ZW0oaTgwNDJfZG1pX2tiZHJlc2V0X3RhYmxlKSkKKwkJaTgwNDJfa2JkcmVzZXQgPSB0 cnVlOworCiAJLyoKIAkgKiBBMjAgd2FzIGFscmVhZHkgZW5hYmxlZCBkdXJpbmcgZWFybHkga2Vy bmVsIGluaXQuIEJ1dCBzb21lIGJ1Z2d5CiAJICogQklPU2VzIChpbiBNU0kgTGFwdG9wcykgcmVx dWlyZSBBMjAgdG8gYmUgZW5hYmxlZCB1c2luZyA4MDQyIHRvCmRpZmYgLS1naXQgYS9kcml2ZXJz L2lucHV0L3NlcmlvL2k4MDQyLmMgYi9kcml2ZXJzL2lucHV0L3NlcmlvL2k4MDQyLmMKaW5kZXgg ODY1NjQ0MS4uMTc4ZTc1ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9pbnB1dC9zZXJpby9pODA0Mi5j CisrKyBiL2RyaXZlcnMvaW5wdXQvc2VyaW8vaTgwNDIuYwpAQCAtNjcsNiArNjcsMTAgQEAgc3Rh dGljIGJvb2wgaTgwNDJfbm90aW1lb3V0OwogbW9kdWxlX3BhcmFtX25hbWVkKG5vdGltZW91dCwg aTgwNDJfbm90aW1lb3V0LCBib29sLCAwKTsKIE1PRFVMRV9QQVJNX0RFU0Mobm90aW1lb3V0LCAi SWdub3JlIHRpbWVvdXRzIHNpZ25hbGxlZCBieSBpODA0MiIpOwogCitzdGF0aWMgYm9vbCBpODA0 Ml9rYmRyZXNldDsKK21vZHVsZV9wYXJhbV9uYW1lZChrYmRyZXNldCwgaTgwNDJfa2JkcmVzZXQs IGJvb2wsIDApOworTU9EVUxFX1BBUk1fREVTQyhrYmRyZXNldCwgIlJlc2V0IGRldmljZSBjb25u ZWN0ZWQgdG8gS0JEIHBvcnQiKTsKKwogI2lmZGVmIENPTkZJR19YODYKIHN0YXRpYyBib29sIGk4 MDQyX2RyaXRlazsKIG1vZHVsZV9wYXJhbV9uYW1lZChkcml0ZWssIGk4MDQyX2RyaXRlaywgYm9v bCwgMCk7CkBAIC03ODMsNiArNzg3LDE2IEBAIHN0YXRpYyBpbnQgX19pbml0IGk4MDQyX2NoZWNr X2F1eCh2b2lkKQogCQlyZXR1cm4gLTE7CiAKIC8qCisgKiBSZXNldCBrZXlib2FyZCAobmVlZGVk IG9uIHNvbWUgbGFwdG9wcyB0byBzdWNjZXNzZnVsbHkgZGV0ZWN0CisgKiB0b3VjaHBhZCwgZS5n Liwgc29tZSBHaWdhYnl0ZSBsYXB0b3AgbW9kZWxzIHdpdGggRWxhbnRlY2gKKyAqIHRvdWNocGFk cykuCisgKi8KKwlpZiAoaTgwNDJfa2JkcmVzZXQpIHsKKwkJcHJfd2FybigiQXR0ZW1wdGluZyB0 byByZXNldCBkZXZpY2UgY29ubmVjdGVkIHRvIEtCRCBwb3J0XG4iKTsKKwkJaTgwNDJfa2JkX3dy aXRlKE5VTEwsICh1bnNpZ25lZCBjaGFyKSAweGZmKTsKKwl9CisKKy8qCiAgKiBUZXN0IEFVWCBJ UlEgZGVsaXZlcnkgdG8gbWFrZSBzdXJlIEJJT1MgZGlkIG5vdCBncmFiIHRoZSBJUlEgYW5kCiAg KiB1c2VkIGl0IGZvciBhIFBDSSBjYXJkIG9yIHNvbWV0aGlnIGVsc2UuCiAgKi8KZGlmZiAtLWdp dCBhL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9tbXUuYyBiL2RyaXZlcnMvaW9tbXUvaW50ZWwtaW9t bXUuYwppbmRleCBlODNhYThlLi5kM2RhMTY2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2lvbW11L2lu dGVsLWlvbW11LmMKKysrIGIvZHJpdmVycy9pb21tdS9pbnRlbC1pb21tdS5jCkBAIC0xNzYzLDcg KzE3NjMsNyBAQCBzdGF0aWMgaW50IF9fZG9tYWluX21hcHBpbmcoc3RydWN0IGRtYXJfZG9tYWlu ICpkb21haW4sIHVuc2lnbmVkIGxvbmcgaW92X3BmbiwKIAlzdHJ1Y3QgZG1hX3B0ZSAqZmlyc3Rf cHRlID0gTlVMTCwgKnB0ZSA9IE5VTEw7CiAJcGh5c19hZGRyX3QgdW5pbml0aWFsaXplZF92YXIo cHRldmFsKTsKIAlpbnQgYWRkcl93aWR0aCA9IGFnYXdfdG9fd2lkdGgoZG9tYWluLT5hZ2F3KSAt IFZURF9QQUdFX1NISUZUOwotCXVuc2lnbmVkIGxvbmcgc2dfcmVzOworCXVuc2lnbmVkIGxvbmcg c2dfcmVzID0gMDsKIAl1bnNpZ25lZCBpbnQgbGFyZ2VwYWdlX2x2bCA9IDA7CiAJdW5zaWduZWQg bG9uZyBsdmxfcGFnZXMgPSAwOwogCkBAIC0xNzc0LDEwICsxNzc0LDggQEAgc3RhdGljIGludCBf X2RvbWFpbl9tYXBwaW5nKHN0cnVjdCBkbWFyX2RvbWFpbiAqZG9tYWluLCB1bnNpZ25lZCBsb25n IGlvdl9wZm4sCiAKIAlwcm90ICY9IERNQV9QVEVfUkVBRCB8IERNQV9QVEVfV1JJVEUgfCBETUFf UFRFX1NOUDsKIAotCWlmIChzZykKLQkJc2dfcmVzID0gMDsKLQllbHNlIHsKLQkJc2dfcmVzID0g bnJfcGFnZXMgKyAxOworCWlmICghc2cpIHsKKwkJc2dfcmVzID0gbnJfcGFnZXM7CiAJCXB0ZXZh bCA9ICgocGh5c19hZGRyX3QpcGh5c19wZm4gPDwgVlREX1BBR0VfU0hJRlQpIHwgcHJvdDsKIAl9 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWQvcGVyc2lzdGVudC1kYXRhL2RtLXNwYWNlLW1hcC1t ZXRhZGF0YS5jIGIvZHJpdmVycy9tZC9wZXJzaXN0ZW50LWRhdGEvZG0tc3BhY2UtbWFwLW1ldGFk YXRhLmMKaW5kZXggZTg5YWU1ZS4uOTU1ZGIzNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9tZC9wZXJz aXN0ZW50LWRhdGEvZG0tc3BhY2UtbWFwLW1ldGFkYXRhLmMKKysrIGIvZHJpdmVycy9tZC9wZXJz aXN0ZW50LWRhdGEvZG0tc3BhY2UtbWFwLW1ldGFkYXRhLmMKQEAgLTQxOSw3ICs0MTksOSBAQCBz dGF0aWMgaW50IHNtX2Jvb3RzdHJhcF9nZXRfbnJfYmxvY2tzKHN0cnVjdCBkbV9zcGFjZV9tYXAg KnNtLCBkbV9ibG9ja190ICpjb3VudAogewogCXN0cnVjdCBzbV9tZXRhZGF0YSAqc21tID0gY29u dGFpbmVyX29mKHNtLCBzdHJ1Y3Qgc21fbWV0YWRhdGEsIHNtKTsKIAotCXJldHVybiBzbW0tPmxs Lm5yX2Jsb2NrczsKKwkqY291bnQgPSBzbW0tPmxsLm5yX2Jsb2NrczsKKworCXJldHVybiAwOwog fQogCiBzdGF0aWMgaW50IHNtX2Jvb3RzdHJhcF9nZXRfbnJfZnJlZShzdHJ1Y3QgZG1fc3BhY2Vf bWFwICpzbSwgZG1fYmxvY2tfdCAqY291bnQpCmRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL2R2 Yi9kdmItdXNiL2FmOTAwNS5jIGIvZHJpdmVycy9tZWRpYS9kdmIvZHZiLXVzYi9hZjkwMDUuYwpp bmRleCBiZDUxYTc2Li4wYjNlZjlmIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL2R2Yi9kdmIt dXNiL2FmOTAwNS5jCisrKyBiL2RyaXZlcnMvbWVkaWEvZHZiL2R2Yi11c2IvYWY5MDA1LmMKQEAg LTEwNzIsOSArMTA3MiwxMiBAQCBzdGF0aWMgaW50IF9faW5pdCBhZjkwMDVfdXNiX21vZHVsZV9p bml0KHZvaWQpCiAJCWVycigidXNiX3JlZ2lzdGVyIGZhaWxlZC4gKCVkKSIsIHJlc3VsdCk7CiAJ CXJldHVybiByZXN1bHQ7CiAJfQorI2lmIElTX01PRFVMRShDT05GSUdfRFZCX1VTQl9BRjkwMDUp IHx8IGRlZmluZWQoQ09ORklHX0RWQl9VU0JfQUY5MDA1X1JFTU9URSkKKwkvKiBGSVhNRTogY29u dmVydCB0byB0b2RheXMga2VybmVsIElSIGluZnJhc3RydWN0dXJlICovCiAJcmNfZGVjb2RlID0g c3ltYm9sX3JlcXVlc3QoYWY5MDA1X3JjX2RlY29kZSk7CiAJcmNfa2V5cyA9IHN5bWJvbF9yZXF1 ZXN0KHJjX21hcF9hZjkwMDVfdGFibGUpOwogCXJjX2tleXNfc2l6ZSA9IHN5bWJvbF9yZXF1ZXN0 KHJjX21hcF9hZjkwMDVfdGFibGVfc2l6ZSk7CisjZW5kaWYKIAlpZiAocmNfZGVjb2RlID09IE5V TEwgfHwgcmNfa2V5cyA9PSBOVUxMIHx8IHJjX2tleXNfc2l6ZSA9PSBOVUxMKSB7CiAJCWVycigi YWY5MDA1X3JjX2RlY29kZSBmdW5jdGlvbiBub3QgZm91bmQsIGRpc2FibGluZyByZW1vdGUiKTsK IAkJYWY5MDA1X3Byb3BlcnRpZXMucmMubGVnYWN5LnJjX3F1ZXJ5ID0gTlVMTDsKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1jYXJkcy5jIGIvZHJpdmVycy9t ZWRpYS92aWRlby9hdTA4MjgvYXUwODI4LWNhcmRzLmMKaW5kZXggMWM2MDE1YS4uZDZhZGVlNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9tZWRpYS92aWRlby9hdTA4MjgvYXUwODI4LWNhcmRzLmMKKysr IGIvZHJpdmVycy9tZWRpYS92aWRlby9hdTA4MjgvYXUwODI4LWNhcmRzLmMKQEAgLTM2LDYgKzM2 LDExIEBAIHZvaWQgaHZyOTUwcV9jczUzNDBfYXVkaW8odm9pZCAqcHJpdiwgaW50IGVuYWJsZSkK IAkJYXUwODI4X2NsZWFyKGRldiwgUkVHXzAwMCwgMHgxMCk7CiB9CiAKKy8qCisgKiBXQVJOSU5H OiBUaGVyZSdzIGEgcXVpcmtzIHRhYmxlIGF0IHNvdW5kL3VzYi9xdWlya3MtdGFibGUuaAorICog dGhhdCBzaG91bGQgYWxzbyBiZSB1cGRhdGVkIGV2ZXJ5IHRpbWUgYSBuZXcgZGV2aWNlIHdpdGgg VjRMMiBzdXBwb3J0CisgKiBpcyBhZGRlZCBoZXJlLgorICovCiBzdHJ1Y3QgYXUwODI4X2JvYXJk IGF1MDgyOF9ib2FyZHNbXSA9IHsKIAlbQVUwODI4X0JPQVJEX1VOS05PV05dID0gewogCQkubmFt ZQk9ICJVbmtub3duIGJvYXJkIiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZj L3V2Y19kcml2ZXIuYyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vdXZjL3V2Y19kcml2ZXIuYwppbmRl eCA4ZmQwMGU4Li4xMzVlM2NhIDEwMDY0NAotLS0gYS9kcml2ZXJzL21lZGlhL3ZpZGVvL3V2Yy91 dmNfZHJpdmVyLmMKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby91dmMvdXZjX2RyaXZlci5jCkBA IC0xNTk3LDEyICsxNTk3LDEyIEBAIHN0YXRpYyB2b2lkIHV2Y19kZWxldGUoc3RydWN0IHV2Y19k ZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkICpwLCAqbjsKIAotCXVzYl9wdXRfaW50 ZihkZXYtPmludGYpOwotCXVzYl9wdXRfZGV2KGRldi0+dWRldik7Ci0KIAl1dmNfc3RhdHVzX2Ns ZWFudXAoZGV2KTsKIAl1dmNfY3RybF9jbGVhbnVwX2RldmljZShkZXYpOwogCisJdXNiX3B1dF9p bnRmKGRldi0+aW50Zik7CisJdXNiX3B1dF9kZXYoZGV2LT51ZGV2KTsKKwogCWlmIChkZXYtPnZk ZXYuZGV2KQogCQl2NGwyX2RldmljZV91bnJlZ2lzdGVyKCZkZXYtPnZkZXYpOwogI2lmZGVmIENP TkZJR19NRURJQV9DT05UUk9MTEVSCmRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC90YzYzOTN4Yi5j IGIvZHJpdmVycy9tZmQvdGM2MzkzeGIuYwppbmRleCA5NjEyMjY0Li5iNjlkOTFiIDEwMDY0NAot LS0gYS9kcml2ZXJzL21mZC90YzYzOTN4Yi5jCisrKyBiL2RyaXZlcnMvbWZkL3RjNjM5M3hiLmMK QEAgLTI2Myw2ICsyNjMsMTcgQEAgc3RhdGljIGludCB0YzYzOTN4Yl9vaGNpX2Rpc2FibGUoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqZGV2KQogCXJldHVybiAwOwogfQogCitzdGF0aWMgaW50IHRj NjM5M3hiX29oY2lfc3VzcGVuZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpkZXYpCit7CisJc3Ry dWN0IHRjNjM5M3hiX3BsYXRmb3JtX2RhdGEgKnRjcGQgPSBkZXZfZ2V0X3BsYXRkYXRhKGRldi0+ ZGV2LnBhcmVudCk7CisKKwkvKiBXZSBjYW4ndCBwcm9wZXJseSBzdG9yZS9yZXN0b3JlIE9IQ0kg c3RhdGUsIHNvIGZhaWwgaGVyZSAqLworCWlmICh0Y3BkLT5yZXN1bWVfcmVzdG9yZSkKKwkJcmV0 dXJuIC1FQlVTWTsKKworCXJldHVybiB0YzYzOTN4Yl9vaGNpX2Rpc2FibGUoZGV2KTsKK30KKwog c3RhdGljIGludCB0YzYzOTN4Yl9mYl9lbmFibGUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqZGV2 KQogewogCXN0cnVjdCB0YzYzOTN4YiAqdGM2MzkzeGIgPSBkZXZfZ2V0X2RydmRhdGEoZGV2LT5k ZXYucGFyZW50KTsKQEAgLTQwMyw3ICs0MTQsNyBAQCBzdGF0aWMgc3RydWN0IG1mZF9jZWxsIF9f ZGV2aW5pdGRhdGEgdGM2MzkzeGJfY2VsbHNbXSA9IHsKIAkJLm51bV9yZXNvdXJjZXMgPSBBUlJB WV9TSVpFKHRjNjM5M3hiX29oY2lfcmVzb3VyY2VzKSwKIAkJLnJlc291cmNlcyA9IHRjNjM5M3hi X29oY2lfcmVzb3VyY2VzLAogCQkuZW5hYmxlID0gdGM2MzkzeGJfb2hjaV9lbmFibGUsCi0JCS5z dXNwZW5kID0gdGM2MzkzeGJfb2hjaV9kaXNhYmxlLAorCQkuc3VzcGVuZCA9IHRjNjM5M3hiX29o Y2lfc3VzcGVuZCwKIAkJLnJlc3VtZSA9IHRjNjM5M3hiX29oY2lfZW5hYmxlLAogCQkuZGlzYWJs ZSA9IHRjNjM5M3hiX29oY2lfZGlzYWJsZSwKIAl9LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQv dWJpL3VwZC5jIGIvZHJpdmVycy9tdGQvdWJpL3VwZC5jCmluZGV4IDQyNWJmNWEuLjA2OGEyNDYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbXRkL3ViaS91cGQuYworKysgYi9kcml2ZXJzL210ZC91Ymkv dXBkLmMKQEAgLTEzNSw2ICsxMzUsMTAgQEAgaW50IHViaV9zdGFydF91cGRhdGUoc3RydWN0IHVi aV9kZXZpY2UgKnViaSwgc3RydWN0IHViaV92b2x1bWUgKnZvbCwKIAl1YmlfYXNzZXJ0KCF2b2wt PnVwZGF0aW5nICYmICF2b2wtPmNoYW5naW5nX2xlYik7CiAJdm9sLT51cGRhdGluZyA9IDE7CiAK Kwl2b2wtPnVwZF9idWYgPSB2bWFsbG9jKHViaS0+bGViX3NpemUpOworCWlmICghdm9sLT51cGRf YnVmKQorCQlyZXR1cm4gLUVOT01FTTsKKwogCWVyciA9IHNldF91cGRhdGVfbWFya2VyKHViaSwg dm9sKTsKIAlpZiAoZXJyKQogCQlyZXR1cm4gZXJyOwpAQCAtMTU0LDE0ICsxNTgsMTIgQEAgaW50 IHViaV9zdGFydF91cGRhdGUoc3RydWN0IHViaV9kZXZpY2UgKnViaSwgc3RydWN0IHViaV92b2x1 bWUgKnZvbCwKIAkJZXJyID0gY2xlYXJfdXBkYXRlX21hcmtlcih1YmksIHZvbCwgMCk7CiAJCWlm IChlcnIpCiAJCQlyZXR1cm4gZXJyOworCisJCXZmcmVlKHZvbC0+dXBkX2J1Zik7CiAJCXZvbC0+ dXBkYXRpbmcgPSAwOwogCQlyZXR1cm4gMDsKIAl9CiAKLQl2b2wtPnVwZF9idWYgPSB2bWFsbG9j KHViaS0+bGViX3NpemUpOwotCWlmICghdm9sLT51cGRfYnVmKQotCQlyZXR1cm4gLUVOT01FTTsK LQogCXZvbC0+dXBkX2VicyA9IGRpdl91NjQoYnl0ZXMgKyB2b2wtPnVzYWJsZV9sZWJfc2l6ZSAt IDEsCiAJCQkgICAgICAgdm9sLT51c2FibGVfbGViX3NpemUpOwogCXZvbC0+dXBkX2J5dGVzID0g Ynl0ZXM7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9jYW4vZGV2LmMgYi9kcml2ZXJzL25ldC9j YW4vZGV2LmMKaW5kZXggMWVhYzI3Zi4uYTI1NDQyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv Y2FuL2Rldi5jCisrKyBiL2RyaXZlcnMvbmV0L2Nhbi9kZXYuYwpAQCAtNjA1LDEwICs2MDUsMTQg QEAgc3RhdGljIGludCBjYW5fY2hhbmdlbGluayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlp ZiAoZGV2LT5mbGFncyAmIElGRl9VUCkKIAkJCXJldHVybiAtRUJVU1k7CiAJCWNtID0gbmxhX2Rh dGEoZGF0YVtJRkxBX0NBTl9DVFJMTU9ERV0pOwotCQlpZiAoY20tPmZsYWdzICYgfnByaXYtPmN0 cmxtb2RlX3N1cHBvcnRlZCkKKworCQkvKiBjaGVjayB3aGV0aGVyIGNoYW5nZWQgYml0cyBhcmUg YWxsb3dlZCB0byBiZSBtb2RpZmllZCAqLworCQlpZiAoY20tPm1hc2sgJiB+cHJpdi0+Y3RybG1v ZGVfc3VwcG9ydGVkKQogCQkJcmV0dXJuIC1FT1BOT1RTVVBQOworCisJCS8qIGNsZWFyIGJpdHMg dG8gYmUgbW9kaWZpZWQgYW5kIGNvcHkgdGhlIGZsYWcgdmFsdWVzICovCiAJCXByaXYtPmN0cmxt b2RlICY9IH5jbS0+bWFzazsKLQkJcHJpdi0+Y3RybG1vZGUgfD0gY20tPmZsYWdzOworCQlwcml2 LT5jdHJsbW9kZSB8PSAoY20tPmZsYWdzICYgY20tPm1hc2spOwogCX0KIAogCWlmIChkYXRhW0lG TEFfQ0FOX0JJVFRJTUlOR10pIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jy b2FkY29tL3RnMy5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMKaW5kZXgg MjYxNTQzMy4uMmVjMTllNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRj b20vdGczLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vdGczLmMKQEAgLTE1 NjQ3LDIzICsxNTY0Nyw2IEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHRnM19pbml0X29uZShzdHJ1 Y3QgcGNpX2RldiAqcGRldiwKIAkJZ290byBlcnJfb3V0X2FwZXVubWFwOwogCX0KIAotCS8qCi0J ICogUmVzZXQgY2hpcCBpbiBjYXNlIFVOREkgb3IgRUZJIGRyaXZlciBkaWQgbm90IHNodXRkb3du Ci0JICogRE1BIHNlbGYgdGVzdCB3aWxsIGVuYWJsZSBXRE1BQyBhbmQgd2UnbGwgc2VlIChzcHVy aW91cykKLQkgKiBwZW5kaW5nIERNQSBvbiB0aGUgUENJIGJ1cyBhdCB0aGF0IHBvaW50LgotCSAq LwotCWlmICgodHIzMihIT1NUQ0NfTU9ERSkgJiBIT1NUQ0NfTU9ERV9FTkFCTEUpIHx8Ci0JICAg ICh0cjMyKFdETUFDX01PREUpICYgV0RNQUNfTU9ERV9FTkFCTEUpKSB7Ci0JCXR3MzIoTUVNQVJC X01PREUsIE1FTUFSQl9NT0RFX0VOQUJMRSk7Ci0JCXRnM19oYWx0KHRwLCBSRVNFVF9LSU5EX1NI VVRET1dOLCAxKTsKLQl9Ci0KLQllcnIgPSB0ZzNfdGVzdF9kbWEodHApOwotCWlmIChlcnIpIHsK LQkJZGV2X2VycigmcGRldi0+ZGV2LCAiRE1BIGVuZ2luZSB0ZXN0IGZhaWxlZCwgYWJvcnRpbmdc biIpOwotCQlnb3RvIGVycl9vdXRfYXBldW5tYXA7Ci0JfQotCiAJaW50bWJ4ID0gTUFJTEJPWF9J TlRFUlJVUFRfMCArIFRHM182NEJJVF9SRUdfTE9XOwogCXJjdm1ieCA9IE1BSUxCT1hfUkNWUkVU X0NPTl9JRFhfMCArIFRHM182NEJJVF9SRUdfTE9XOwogCXNuZG1ieCA9IE1BSUxCT1hfU05ESE9T VF9QUk9EX0lEWF8wICsgVEczXzY0QklUX1JFR19MT1c7CkBAIC0xNTcwOCw2ICsxNTY5MSwyMyBA QCBzdGF0aWMgaW50IF9fZGV2aW5pdCB0ZzNfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYgKnBkZXYs CiAJCQlzbmRtYnggKz0gMHhjOwogCX0KIAorCS8qCisJICogUmVzZXQgY2hpcCBpbiBjYXNlIFVO REkgb3IgRUZJIGRyaXZlciBkaWQgbm90IHNodXRkb3duCisJICogRE1BIHNlbGYgdGVzdCB3aWxs IGVuYWJsZSBXRE1BQyBhbmQgd2UnbGwgc2VlIChzcHVyaW91cykKKwkgKiBwZW5kaW5nIERNQSBv biB0aGUgUENJIGJ1cyBhdCB0aGF0IHBvaW50LgorCSAqLworCWlmICgodHIzMihIT1NUQ0NfTU9E RSkgJiBIT1NUQ0NfTU9ERV9FTkFCTEUpIHx8CisJICAgICh0cjMyKFdETUFDX01PREUpICYgV0RN QUNfTU9ERV9FTkFCTEUpKSB7CisJCXR3MzIoTUVNQVJCX01PREUsIE1FTUFSQl9NT0RFX0VOQUJM RSk7CisJCXRnM19oYWx0KHRwLCBSRVNFVF9LSU5EX1NIVVRET1dOLCAxKTsKKwl9CisKKwllcnIg PSB0ZzNfdGVzdF9kbWEodHApOworCWlmIChlcnIpIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAi RE1BIGVuZ2luZSB0ZXN0IGZhaWxlZCwgYWJvcnRpbmdcbiIpOworCQlnb3RvIGVycl9vdXRfYXBl dW5tYXA7CisJfQorCiAJdGczX2luaXRfY29hbCh0cCk7CiAKIAlwY2lfc2V0X2RydmRhdGEocGRl diwgZGV2KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Npc2NvL2VuaWMvZW5p Y19tYWluLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jaXNjby9lbmljL2VuaWNfbWFpbi5jCmlu ZGV4IGMzNzg2ZmQuLmI5ZGNkMGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Np c2NvL2VuaWMvZW5pY19tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvY2lzY28vZW5p Yy9lbmljX21haW4uYwpAQCAtMTI3MiwxMCArMTI3MiwxNCBAQCBzdGF0aWMgdm9pZCBlbmljX3Jx X2luZGljYXRlX2J1ZihzdHJ1Y3Qgdm5pY19ycSAqcnEsCiAJCXNrYl9wdXQoc2tiLCBieXRlc193 cml0dGVuKTsKIAkJc2tiLT5wcm90b2NvbCA9IGV0aF90eXBlX3RyYW5zKHNrYiwgbmV0ZGV2KTsK IAotCQlpZiAoKG5ldGRldi0+ZmVhdHVyZXMgJiBORVRJRl9GX1JYQ1NVTSkgJiYgIWNzdW1fbm90 X2NhbGMpIHsKLQkJCXNrYi0+Y3N1bSA9IGh0b25zKGNoZWNrc3VtKTsKLQkJCXNrYi0+aXBfc3Vt bWVkID0gQ0hFQ0tTVU1fQ09NUExFVEU7Ci0JCX0KKwkJLyogSGFyZHdhcmUgZG9lcyBub3QgcHJv dmlkZSB3aG9sZSBwYWNrZXQgY2hlY2tzdW0uIEl0IG9ubHkKKwkJICogcHJvdmlkZXMgcHNldWRv IGNoZWNrc3VtLiBTaW5jZSBodyB2YWxpZGF0ZXMgdGhlIHBhY2tldAorCQkgKiBjaGVja3N1bSBi dXQgbm90IHByb3ZpZGUgdXMgdGhlIGNoZWNrc3VtIHZhbHVlLiB1c2UKKwkJICogQ0hFQ1NVTV9V Tk5FQ0VTU0FSWS4KKwkJICovCisJCWlmICgobmV0ZGV2LT5mZWF0dXJlcyAmIE5FVElGX0ZfUlhD U1VNKSAmJiB0Y3BfdWRwX2NzdW1fb2sgJiYKKwkJICAgIGlwdjRfY3N1bV9vaykKKwkJCXNrYi0+ aXBfc3VtbWVkID0gQ0hFQ0tTVU1fVU5ORUNFU1NBUlk7CiAKIAkJc2tiLT5kZXYgPSBuZXRkZXY7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9xY3UuYyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg1ay9xY3UuYwppbmRleCA3NzY2NTQyLi5mZjNkMzQ4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoNWsvcWN1LmMKKysrIGIv ZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDVrL3FjdS5jCkBAIC0xNjcsMTMgKzE2Nyw3IEBA IGludCBhdGg1a19od19zZXR1cF90eF9xdWV1ZShzdHJ1Y3QgYXRoNWtfaHcgKmFoLCBlbnVtIGF0 aDVrX3R4X3F1ZXVlIHF1ZXVlX3R5cGUsCiAJfSBlbHNlIHsKIAkJc3dpdGNoIChxdWV1ZV90eXBl KSB7CiAJCWNhc2UgQVI1S19UWF9RVUVVRV9EQVRBOgotCQkJZm9yIChxdWV1ZSA9IEFSNUtfVFhf UVVFVUVfSURfREFUQV9NSU47Ci0JCQkJYWgtPmFoX3R4cVtxdWV1ZV0udHFpX3R5cGUgIT0KLQkJ CQlBUjVLX1RYX1FVRVVFX0lOQUNUSVZFOyBxdWV1ZSsrKSB7Ci0KLQkJCQlpZiAocXVldWUgPiBB UjVLX1RYX1FVRVVFX0lEX0RBVEFfTUFYKQotCQkJCQlyZXR1cm4gLUVJTlZBTDsKLQkJCX0KKwkJ CXF1ZXVlID0gcXVldWVfaW5mby0+dHFpX3N1YnR5cGU7CiAJCQlicmVhazsKIAkJY2FzZSBBUjVL X1RYX1FVRVVFX1VBUFNEOgogCQkJcXVldWUgPSBBUjVLX1RYX1FVRVVFX0lEX1VBUFNEOwpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL2h3LmggYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoOWsvaHcuaAppbmRleCBkYzc3NGNkLi44YjExMjNkIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRoOWsvaHcuaAorKysgYi9kcml2ZXJzL25l dC93aXJlbGVzcy9hdGgvYXRoOWsvaHcuaApAQCAtMTc0LDggKzE3NCw4IEBACiAjZGVmaW5lIFBB UFJEX0lERUFMX0FHQzJfUFdSX1JBTkdFCTB4ZTAKIAogZW51bSBhdGhfaHdfdHhxX3N1YnR5cGUg ewotCUFUSF9UWFFfQUNfQkUgPSAwLAotCUFUSF9UWFFfQUNfQksgPSAxLAorCUFUSF9UWFFfQUNf QksgPSAwLAorCUFUSF9UWFFfQUNfQkUgPSAxLAogCUFUSF9UWFFfQUNfVkkgPSAyLAogCUFUSF9U WFFfQUNfVk8gPSAzLAogfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9h dGg5ay9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL2F0aC9hdGg5ay9tYWMuYwppbmRleCBi YmNiNzc3Li4xNjdjN2Y2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9hdGgvYXRo OWsvbWFjLmMKKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvYXRoL2F0aDlrL21hYy5jCkBAIC0z MTEsMTQgKzMxMSw3IEBAIGludCBhdGg5a19od19zZXR1cHR4cXVldWUoc3RydWN0IGF0aF9odyAq YWgsIGVudW0gYXRoOWtfdHhfcXVldWUgdHlwZSwKIAkJcSA9IEFUSDlLX05VTV9UWF9RVUVVRVMg LSAzOwogCQlicmVhazsKIAljYXNlIEFUSDlLX1RYX1FVRVVFX0RBVEE6Ci0JCWZvciAocSA9IDA7 IHEgPCBBVEg5S19OVU1fVFhfUVVFVUVTOyBxKyspCi0JCQlpZiAoYWgtPnR4cVtxXS50cWlfdHlw ZSA9PQotCQkJICAgIEFUSDlLX1RYX1FVRVVFX0lOQUNUSVZFKQotCQkJCWJyZWFrOwotCQlpZiAo cSA9PSBBVEg5S19OVU1fVFhfUVVFVUVTKSB7Ci0JCQlhdGhfZXJyKGNvbW1vbiwgIk5vIGF2YWls YWJsZSBUWCBxdWV1ZVxuIik7Ci0JCQlyZXR1cm4gLTE7Ci0JCX0KKwkJcSA9IHFpbmZvLT50cWlf c3VidHlwZTsKIAkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJYXRoX2Vycihjb21tb24sICJJbnZhbGlk IFRYIHF1ZXVlIHR5cGU6ICV1XG4iLCB0eXBlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGNpL3By b2JlLmMgYi9kcml2ZXJzL3BjaS9wcm9iZS5jCmluZGV4IDkwMDUzODAuLmJjOTJjNDcgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvcGNpL3Byb2JlLmMKKysrIGIvZHJpdmVycy9wY2kvcHJvYmUuYwpAQCAt MTc1LDE0ICsxNzUsMTcgQEAgaW50IF9fcGNpX3JlYWRfYmFzZShzdHJ1Y3QgcGNpX2RldiAqZGV2 LCBlbnVtIHBjaV9iYXJfdHlwZSB0eXBlLAogCQlyZXMtPmZsYWdzIHw9IElPUkVTT1VSQ0VfU0la RUFMSUdOOwogCQlpZiAocmVzLT5mbGFncyAmIElPUkVTT1VSQ0VfSU8pIHsKIAkJCWwgJj0gUENJ X0JBU0VfQUREUkVTU19JT19NQVNLOworCQkJc3ogJj0gUENJX0JBU0VfQUREUkVTU19JT19NQVNL OwogCQkJbWFzayA9IFBDSV9CQVNFX0FERFJFU1NfSU9fTUFTSyAmICh1MzIpIElPX1NQQUNFX0xJ TUlUOwogCQl9IGVsc2UgewogCQkJbCAmPSBQQ0lfQkFTRV9BRERSRVNTX01FTV9NQVNLOworCQkJ c3ogJj0gUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSzsKIAkJCW1hc2sgPSAodTMyKVBDSV9CQVNF X0FERFJFU1NfTUVNX01BU0s7CiAJCX0KIAl9IGVsc2UgewogCQlyZXMtPmZsYWdzIHw9IChsICYg SU9SRVNPVVJDRV9ST01fRU5BQkxFKTsKIAkJbCAmPSBQQ0lfUk9NX0FERFJFU1NfTUFTSzsKKwkJ c3ogJj0gUENJX1JPTV9BRERSRVNTX01BU0s7CiAJCW1hc2sgPSAodTMyKVBDSV9ST01fQUREUkVT U19NQVNLOwogCX0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvaHBfYWNjZWwu YyBiL2RyaXZlcnMvcGxhdGZvcm0veDg2L2hwX2FjY2VsLmMKaW5kZXggMDA3NmZlYS4uYmU2YjY0 OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvaHBfYWNjZWwuYworKysgYi9kcml2 ZXJzL3BsYXRmb3JtL3g4Ni9ocF9hY2NlbC5jCkBAIC0yMzcsNiArMjM3LDcgQEAgc3RhdGljIHN0 cnVjdCBkbWlfc3lzdGVtX2lkIGxpczNsdjAyZF9kbWlfaWRzW10gPSB7CiAJQVhJU19ETUlfTUFU Q0goIkhQQjY0eHgiLCAiSFAgUHJvQm9vayA2NCIsIHh5X3N3YXApLAogCUFYSVNfRE1JX01BVENI KCJIUEI2NHh4IiwgIkhQIEVsaXRlQm9vayA4NCIsIHh5X3N3YXApLAogCUFYSVNfRE1JX01BVENI KCJIUEI2NXh4IiwgIkhQIFByb0Jvb2sgNjUiLCB4X2ludmVydGVkKSwKKwlBWElTX0RNSV9NQVRD SCgiSFBaQm9vazE1IiwgIkhQIFpCb29rIDE1IiwgeF9pbnZlcnRlZCksCiAJeyBOVUxMLCB9CiAv KiBMYXB0b3AgbW9kZWxzIHdpdGhvdXQgYXhpcyBpbmZvICh5ZXQpOgogICogIk5DNjkxMCIgIkhQ IENvbXBhcSA2OTEwIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9yZWd1bGF0b3IvY29yZS5jIGIvZHJp dmVycy9yZWd1bGF0b3IvY29yZS5jCmluZGV4IDZlYzYxMGMuLmFkYmEzZDYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvcmVndWxhdG9yL2NvcmUuYworKysgYi9kcml2ZXJzL3JlZ3VsYXRvci9jb3JlLmMK QEAgLTEzMTQsMTIgKzEzMTQsMTQgQEAgdm9pZCByZWd1bGF0b3JfcHV0KHN0cnVjdCByZWd1bGF0 b3IgKnJlZ3VsYXRvcikKIAkJZGV2aWNlX3JlbW92ZV9maWxlKHJlZ3VsYXRvci0+ZGV2LCAmcmVn dWxhdG9yLT5kZXZfYXR0cik7CiAJCWtmcmVlKHJlZ3VsYXRvci0+ZGV2X2F0dHIuYXR0ci5uYW1l KTsKIAl9CisJbXV0ZXhfbG9jaygmcmRldi0+bXV0ZXgpOwogCWtmcmVlKHJlZ3VsYXRvci0+c3Vw cGx5X25hbWUpOwogCWxpc3RfZGVsKCZyZWd1bGF0b3ItPmxpc3QpOwogCWtmcmVlKHJlZ3VsYXRv cik7CiAKIAlyZGV2LT5vcGVuX2NvdW50LS07CiAJcmRldi0+ZXhjbHVzaXZlID0gMDsKKwltdXRl eF91bmxvY2soJnJkZXYtPm11dGV4KTsKIAogCW1vZHVsZV9wdXQocmRldi0+b3duZXIpOwogCW11 dGV4X3VubG9jaygmcmVndWxhdG9yX2xpc3RfbXV0ZXgpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9z MzkwL2NoYXIvY29uMzIxNS5jIGIvZHJpdmVycy9zMzkwL2NoYXIvY29uMzIxNS5jCmluZGV4IDkz NDQ1OGEuLjJjOGQ3OWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvczM5MC9jaGFyL2NvbjMyMTUuYwor KysgYi9kcml2ZXJzL3MzOTAvY2hhci9jb24zMjE1LmMKQEAgLTk5MywxMiArOTkzLDI2IEBAIHN0 YXRpYyBpbnQgdHR5MzIxNV93cml0ZShzdHJ1Y3QgdHR5X3N0cnVjdCAqIHR0eSwKIAkJCSBjb25z dCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBjb3VudCkKIHsKIAlzdHJ1Y3QgcmF3MzIxNV9pbmZv ICpyYXc7CisJaW50IGksIHdyaXR0ZW47CiAKIAlpZiAoIXR0eSkKIAkJcmV0dXJuIDA7CiAJcmF3 ID0gKHN0cnVjdCByYXczMjE1X2luZm8gKikgdHR5LT5kcml2ZXJfZGF0YTsKLQlyYXczMjE1X3dy aXRlKHJhdywgYnVmLCBjb3VudCk7Ci0JcmV0dXJuIGNvdW50OworCXdyaXR0ZW4gPSBjb3VudDsK Kwl3aGlsZSAoY291bnQgPiAwKSB7CisJCWZvciAoaSA9IDA7IGkgPCBjb3VudDsgaSsrKQorCQkJ aWYgKGJ1ZltpXSA9PSAnXHQnIHx8IGJ1ZltpXSA9PSAnXG4nKQorCQkJCWJyZWFrOworCQlyYXcz MjE1X3dyaXRlKHJhdywgYnVmLCBpKTsKKwkJY291bnQgLT0gaTsKKwkJYnVmICs9IGk7CisJCWlm IChjb3VudCA+IDApIHsKKwkJCXJhdzMyMTVfcHV0Y2hhcihyYXcsICpidWYpOworCQkJY291bnQt LTsKKwkJCWJ1ZisrOworCQl9CisJfQorCXJldHVybiB3cml0dGVuOwogfQogCiAvKgpAQCAtMTE0 Niw3ICsxMTYwLDcgQEAgc3RhdGljIGludCBfX2luaXQgdHR5MzIxNV9pbml0KHZvaWQpCiAJZHJp dmVyLT5zdWJ0eXBlID0gU1lTVEVNX1RZUEVfVFRZOwogCWRyaXZlci0+aW5pdF90ZXJtaW9zID0g dHR5X3N0ZF90ZXJtaW9zOwogCWRyaXZlci0+aW5pdF90ZXJtaW9zLmNfaWZsYWcgPSBJR05CUksg fCBJR05QQVI7Ci0JZHJpdmVyLT5pbml0X3Rlcm1pb3MuY19vZmxhZyA9IE9OTENSIHwgWFRBQlM7 CisJZHJpdmVyLT5pbml0X3Rlcm1pb3MuY19vZmxhZyA9IE9OTENSOwogCWRyaXZlci0+aW5pdF90 ZXJtaW9zLmNfbGZsYWcgPSBJU0lHOwogCWRyaXZlci0+ZmxhZ3MgPSBUVFlfRFJJVkVSX1JFQUxf UkFXOwogCXR0eV9zZXRfb3BlcmF0aW9ucyhkcml2ZXIsICZ0dHkzMjE1X29wcyk7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL3Njc2kvTkNSNTM4MC5jIGIvZHJpdmVycy9zY3NpL05DUjUzODAuYwppbmRl eCAxNjVlNGRkODYuLmE1N2Y4NWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9OQ1I1MzgwLmMK KysrIGIvZHJpdmVycy9zY3NpL05DUjUzODAuYwpAQCAtMjY2MiwxNCArMjY2MiwxNCBAQCBzdGF0 aWMgdm9pZCBOQ1I1MzgwX2RtYV9jb21wbGV0ZShOQ1I1MzgwX2luc3RhbmNlICogaW5zdGFuY2Up IHsKICAqCiAgKiBQdXJwb3NlIDogYWJvcnQgYSBjb21tYW5kCiAgKgotICogSW5wdXRzIDogY21k IC0gdGhlIFNjc2lfQ21uZCB0byBhYm9ydCwgY29kZSAtIGNvZGUgdG8gc2V0IHRoZSAKLSAqICAg ICAgaG9zdCBieXRlIG9mIHRoZSByZXN1bHQgZmllbGQgdG8sIGlmIHplcm8gRElEX0FCT1JURUQg aXMgCisgKiBJbnB1dHMgOiBjbWQgLSB0aGUgU2NzaV9DbW5kIHRvIGFib3J0LCBjb2RlIC0gY29k ZSB0byBzZXQgdGhlCisgKiAgICAgIGhvc3QgYnl0ZSBvZiB0aGUgcmVzdWx0IGZpZWxkIHRvLCBp ZiB6ZXJvIERJRF9BQk9SVEVEIGlzCiAgKiAgICAgIHVzZWQuCiAgKgotICogUmV0dXJucyA6IDAg LSBzdWNjZXNzLCAtMSBvbiBmYWlsdXJlLgorICogUmV0dXJucyA6IFNVQ0NFU1MgLSBzdWNjZXNz LCBGQUlMRUQgb24gZmFpbHVyZS4KICAqCi0gKglYWFggLSB0aGVyZSBpcyBubyB3YXkgdG8gYWJv cnQgdGhlIGNvbW1hbmQgdGhhdCBpcyBjdXJyZW50bHkgCi0gKgljb25uZWN0ZWQsIHlvdSBoYXZl IHRvIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLiAgSWYgdGhpcyBpcyAKKyAqCVhYWCAtIHRoZXJl IGlzIG5vIHdheSB0byBhYm9ydCB0aGUgY29tbWFuZCB0aGF0IGlzIGN1cnJlbnRseQorICoJY29u bmVjdGVkLCB5b3UgaGF2ZSB0byB3YWl0IGZvciBpdCB0byBjb21wbGV0ZS4gIElmIHRoaXMgaXMK ICAqCWEgcHJvYmxlbSwgd2UgY291bGQgaW1wbGVtZW50IGxvbmdqbXAoKSAvIHNldGptcCgpLCBz ZXRqbXAoKQogICoJY2FsbGVkIHdoZXJlIHRoZSBsb29wIHN0YXJ0ZWQgaW4gTkNSNTM4MF9tYWlu KCkuCiAgKgpAQCAtMjcxOSw3ICsyNzE5LDcgQEAgc3RhdGljIGludCBOQ1I1MzgwX2Fib3J0KFNj c2lfQ21uZCAqIGNtZCkgewogICogYWJvcnRlZCBmbGFnIGFuZCBnZXQgYmFjayBpbnRvIG91ciBt YWluIGxvb3AuCiAgKi8KIAotCQlyZXR1cm4gMDsKKwkJcmV0dXJuIFNVQ0NFU1M7CiAJfQogI2Vu ZGlmCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9haGExNzQwLmMgYi9kcml2ZXJzL3Njc2kv YWhhMTc0MC5jCmluZGV4IDFjMTBiNzkuLjdmN2RjMmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2Nz aS9haGExNzQwLmMKKysrIGIvZHJpdmVycy9zY3NpL2FoYTE3NDAuYwpAQCAtNTUxLDcgKzU1MSw3 IEBAIHN0YXRpYyBpbnQgYWhhMTc0MF9laF9hYm9ydF9oYW5kbGVyIChTY3NpX0NtbmQgKmR1bW15 KQogICogcXVpZXQgYXMgcG9zc2libGUuLi4KICAqLwogCi0JcmV0dXJuIDA7CisJcmV0dXJuIFNV Q0NFU1M7CiB9CiAKIHN0YXRpYyBzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRlIGFoYTE3NDBfdGVt cGxhdGUgPSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3Njc2kvYXRhcmlfTkNSNTM4MC5jIGIvZHJp dmVycy9zY3NpL2F0YXJpX05DUjUzODAuYwppbmRleCAyZGI3OWI0Li41ODljMmEzIDEwMDY0NAot LS0gYS9kcml2ZXJzL3Njc2kvYXRhcmlfTkNSNTM4MC5jCisrKyBiL2RyaXZlcnMvc2NzaS9hdGFy aV9OQ1I1MzgwLmMKQEAgLTI2MzgsNyArMjYzOCw3IEBAIHN0YXRpYyB2b2lkIE5DUjUzODBfcmVz ZWxlY3Qoc3RydWN0IFNjc2lfSG9zdCAqaW5zdGFuY2UpCiAgKglob3N0IGJ5dGUgb2YgdGhlIHJl c3VsdCBmaWVsZCB0bywgaWYgemVybyBESURfQUJPUlRFRCBpcwogICoJdXNlZC4KICAqCi0gKiBS ZXR1cm5zIDogMCAtIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuCisgKiBSZXR1cm5zIDogU1VDQ0VT UyAtIHN1Y2Nlc3MsIEZBSUxFRCBvbiBmYWlsdXJlLgogICoKICAqIFhYWCAtIHRoZXJlIGlzIG5v IHdheSB0byBhYm9ydCB0aGUgY29tbWFuZCB0aGF0IGlzIGN1cnJlbnRseQogICoJIGNvbm5lY3Rl ZCwgeW91IGhhdmUgdG8gd2FpdCBmb3IgaXQgdG8gY29tcGxldGUuICBJZiB0aGlzIGlzCmRpZmYg LS1naXQgYS9kcml2ZXJzL3Njc2kvbWVnYXJhaWQuYyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC5j CmluZGV4IDVjMTc3NjQuLjA0MjQwYTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvc2NzaS9tZWdhcmFp ZC5jCisrKyBiL2RyaXZlcnMvc2NzaS9tZWdhcmFpZC5jCkBAIC0xOTY0LDcgKzE5NjQsNyBAQCBt ZWdhcmFpZF9hYm9ydF9hbmRfcmVzZXQoYWRhcHRlcl90ICphZGFwdGVyLCBTY3NpX0NtbmQgKmNt ZCwgaW50IGFvcikKIAkgICAgIGNtZC0+ZGV2aWNlLT5pZCwgY21kLT5kZXZpY2UtPmx1bik7CiAK IAlpZihsaXN0X2VtcHR5KCZhZGFwdGVyLT5wZW5kaW5nX2xpc3QpKQotCQlyZXR1cm4gRkFMU0U7 CisJCXJldHVybiBGQUlMRUQ7CiAKIAlsaXN0X2Zvcl9lYWNoX3NhZmUocG9zLCBuZXh0LCAmYWRh cHRlci0+cGVuZGluZ19saXN0KSB7CiAKQEAgLTE5ODcsNyArMTk4Nyw3IEBAIG1lZ2FyYWlkX2Fi b3J0X2FuZF9yZXNldChhZGFwdGVyX3QgKmFkYXB0ZXIsIFNjc2lfQ21uZCAqY21kLCBpbnQgYW9y KQogCQkJCQkoYW9yPT1TQ0JfQUJPUlQpID8gIkFCT1JUSU5HIjoiUkVTRVQiLAogCQkJCQlzY2It PmlkeCk7CiAKLQkJCQlyZXR1cm4gRkFMU0U7CisJCQkJcmV0dXJuIEZBSUxFRDsKIAkJCX0KIAkJ CWVsc2UgewogCkBAIC0yMDEyLDEyICsyMDEyLDEyIEBAIG1lZ2FyYWlkX2Fib3J0X2FuZF9yZXNl dChhZGFwdGVyX3QgKmFkYXB0ZXIsIFNjc2lfQ21uZCAqY21kLCBpbnQgYW9yKQogCQkJCWxpc3Rf YWRkX3RhaWwoU0NTSV9MSVNUKGNtZCksCiAJCQkJCQkmYWRhcHRlci0+Y29tcGxldGVkX2xpc3Qp OwogCi0JCQkJcmV0dXJuIFRSVUU7CisJCQkJcmV0dXJuIFNVQ0NFU1M7CiAJCQl9CiAJCX0KIAl9 CiAKLQlyZXR1cm4gRkFMU0U7CisJcmV0dXJuIEZBSUxFRDsKIH0KIAogc3RhdGljIGlubGluZSBp bnQKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc2NzaS9zdW4zX05DUjUzODAuYyBiL2RyaXZlcnMvc2Nz aS9zdW4zX05DUjUzODAuYwppbmRleCA3ZTEyYTJlLi45YWFmMDg0IDEwMDY0NAotLS0gYS9kcml2 ZXJzL3Njc2kvc3VuM19OQ1I1MzgwLmMKKysrIGIvZHJpdmVycy9zY3NpL3N1bjNfTkNSNTM4MC5j CkBAIC0yNjI0LDE1ICsyNjI0LDE1IEBAIHN0YXRpYyB2b2lkIE5DUjUzODBfcmVzZWxlY3QgKHN0 cnVjdCBTY3NpX0hvc3QgKmluc3RhbmNlKQogICogUHVycG9zZSA6IGFib3J0IGEgY29tbWFuZAog ICoKICAqIElucHV0cyA6IGNtZCAtIHRoZSBzdHJ1Y3Qgc2NzaV9jbW5kIHRvIGFib3J0LCBjb2Rl IC0gY29kZSB0byBzZXQgdGhlCi0gKiAJaG9zdCBieXRlIG9mIHRoZSByZXN1bHQgZmllbGQgdG8s IGlmIHplcm8gRElEX0FCT1JURUQgaXMgCisgKglob3N0IGJ5dGUgb2YgdGhlIHJlc3VsdCBmaWVs ZCB0bywgaWYgemVybyBESURfQUJPUlRFRCBpcwogICoJdXNlZC4KICAqCi0gKiBSZXR1cm5zIDog MCAtIHN1Y2Nlc3MsIC0xIG9uIGZhaWx1cmUuCisgKiBSZXR1cm5zIDogU1VDQ0VTUyAtIHN1Y2Nl c3MsIEZBSUxFRCBvbiBmYWlsdXJlLgogICoKLSAqIFhYWCAtIHRoZXJlIGlzIG5vIHdheSB0byBh Ym9ydCB0aGUgY29tbWFuZCB0aGF0IGlzIGN1cnJlbnRseSAKLSAqIAkgY29ubmVjdGVkLCB5b3Ug aGF2ZSB0byB3YWl0IGZvciBpdCB0byBjb21wbGV0ZS4gIElmIHRoaXMgaXMgCisgKiBYWFggLSB0 aGVyZSBpcyBubyB3YXkgdG8gYWJvcnQgdGhlIGNvbW1hbmQgdGhhdCBpcyBjdXJyZW50bHkKKyAq CSBjb25uZWN0ZWQsIHlvdSBoYXZlIHRvIHdhaXQgZm9yIGl0IHRvIGNvbXBsZXRlLiAgSWYgdGhp cyBpcwogICoJIGEgcHJvYmxlbSwgd2UgY291bGQgaW1wbGVtZW50IGxvbmdqbXAoKSAvIHNldGpt cCgpLCBzZXRqbXAoKQotICogCSBjYWxsZWQgd2hlcmUgdGhlIGxvb3Agc3RhcnRlZCBpbiBOQ1I1 MzgwX21haW4oKS4KKyAqCSBjYWxsZWQgd2hlcmUgdGhlIGxvb3Agc3RhcnRlZCBpbiBOQ1I1Mzgw X21haW4oKS4KICAqLwogCiBzdGF0aWMgaW50IE5DUjUzODBfYWJvcnQoc3RydWN0IHNjc2lfY21u ZCAqY21kKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zcGkvc3BpLWR3LW1pZC5jIGIvZHJpdmVycy9z cGkvc3BpLWR3LW1pZC5jCmluZGV4IGMwY2EwZWUuLmU2YTFiZDMgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS1kdy1taWQuYworKysgYi9kcml2ZXJzL3NwaS9zcGktZHctbWlkLmMKQEAgLTIx OSw3ICsyMTksNiBAQCBpbnQgZHdfc3BpX21pZF9pbml0KHN0cnVjdCBkd19zcGkgKmR3cykKIAlp b3VubWFwKGNsa19yZWcpOwogCiAJZHdzLT5udW1fY3MgPSAxNjsKLQlkd3MtPmZpZm9fbGVuID0g NDA7CS8qIEZJRk8gaGFzIDQwIHdvcmRzIGJ1ZmZlciAqLwogCiAjaWZkZWYgQ09ORklHX1NQSV9E V19NSURfRE1BCiAJZHdzLT5kbWFfcHJpdiA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBtaWRfZG1h KSwgR0ZQX0tFUk5FTCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9zcGktZHcuYyBiL2RyaXZl cnMvc3BpL3NwaS1kdy5jCmluZGV4IDllZGRhYWIuLmJiZGYwY2YgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvc3BpL3NwaS1kdy5jCisrKyBiL2RyaXZlcnMvc3BpL3NwaS1kdy5jCkBAIC03ODYsMTMgKzc4 NiwxMyBAQCBzdGF0aWMgdm9pZCBzcGlfaHdfaW5pdChzdHJ1Y3QgZHdfc3BpICpkd3MpCiAJICov CiAJaWYgKCFkd3MtPmZpZm9fbGVuKSB7CiAJCXUzMiBmaWZvOwotCQlmb3IgKGZpZm8gPSAyOyBm aWZvIDw9IDI1NzsgZmlmbysrKSB7CisJCWZvciAoZmlmbyA9IDI7IGZpZm8gPD0gMjU2OyBmaWZv KyspIHsKIAkJCWR3X3dyaXRldyhkd3MsIERXX1NQSV9UWEZMVFIsIGZpZm8pOwogCQkJaWYgKGZp Zm8gIT0gZHdfcmVhZHcoZHdzLCBEV19TUElfVFhGTFRSKSkKIAkJCQlicmVhazsKIAkJfQogCi0J CWR3cy0+Zmlmb19sZW4gPSAoZmlmbyA9PSAyNTcpID8gMCA6IGZpZm87CisJCWR3cy0+Zmlmb19s ZW4gPSAoZmlmbyA9PSAyKSA/IDAgOiBmaWZvIC0gMTsKIAkJZHdfd3JpdGV3KGR3cywgRFdfU1BJ X1RYRkxUUiwgMCk7CiAJfQogfQpkaWZmIC0tZ2l0IGEvZHJpdmVycy90YXJnZXQvaXNjc2kvaXNj c2lfdGFyZ2V0X3V0aWwuYyBiL2RyaXZlcnMvdGFyZ2V0L2lzY3NpL2lzY3NpX3RhcmdldF91dGls LmMKaW5kZXggZTYxMjcyMi4uZjBkMWM5YyAxMDA2NDQKLS0tIGEvZHJpdmVycy90YXJnZXQvaXNj c2kvaXNjc2lfdGFyZ2V0X3V0aWwuYworKysgYi9kcml2ZXJzL3RhcmdldC9pc2NzaS9pc2NzaV90 YXJnZXRfdXRpbC5jCkBAIC0xNDgzLDE1ICsxNDgzLDE1IEBAIHN0YXRpYyBpbnQgaXNjc2l0X2Rv X3R4X2RhdGEoCiAJc3RydWN0IGlzY3NpX2Nvbm4gKmNvbm4sCiAJc3RydWN0IGlzY3NpX2RhdGFf Y291bnQgKmNvdW50KQogewotCWludCBkYXRhID0gY291bnQtPmRhdGFfbGVuZ3RoLCB0b3RhbF90 eCA9IDAsIHR4X2xvb3AgPSAwLCBpb3ZfbGVuOworCWludCByZXQsIGlvdl9sZW47CiAJc3RydWN0 IGt2ZWMgKmlvdl9wOwogCXN0cnVjdCBtc2doZHIgbXNnOwogCiAJaWYgKCFjb25uIHx8ICFjb25u LT5zb2NrIHx8ICFjb25uLT5jb25uX29wcykKIAkJcmV0dXJuIC0xOwogCi0JaWYgKGRhdGEgPD0g MCkgewotCQlwcl9lcnIoIkRhdGEgbGVuZ3RoIGlzOiAlZFxuIiwgZGF0YSk7CisJaWYgKGNvdW50 LT5kYXRhX2xlbmd0aCA8PSAwKSB7CisJCXByX2VycigiRGF0YSBsZW5ndGggaXM6ICVkXG4iLCBj b3VudC0+ZGF0YV9sZW5ndGgpOwogCQlyZXR1cm4gLTE7CiAJfQogCkBAIC0xNTAwLDIwICsxNTAw LDE2IEBAIHN0YXRpYyBpbnQgaXNjc2l0X2RvX3R4X2RhdGEoCiAJaW92X3AgPSBjb3VudC0+aW92 OwogCWlvdl9sZW4gPSBjb3VudC0+aW92X2NvdW50OwogCi0Jd2hpbGUgKHRvdGFsX3R4IDwgZGF0 YSkgewotCQl0eF9sb29wID0ga2VybmVsX3NlbmRtc2coY29ubi0+c29jaywgJm1zZywgaW92X3As IGlvdl9sZW4sCi0JCQkJCShkYXRhIC0gdG90YWxfdHgpKTsKLQkJaWYgKHR4X2xvb3AgPD0gMCkg ewotCQkJcHJfZGVidWcoInR4X2xvb3A6ICVkIHRvdGFsX3R4ICVkXG4iLAotCQkJCXR4X2xvb3As IHRvdGFsX3R4KTsKLQkJCXJldHVybiB0eF9sb29wOwotCQl9Ci0JCXRvdGFsX3R4ICs9IHR4X2xv b3A7Ci0JCXByX2RlYnVnKCJ0eF9sb29wOiAlZCwgdG90YWxfdHg6ICVkLCBkYXRhOiAlZFxuIiwK LQkJCQkJdHhfbG9vcCwgdG90YWxfdHgsIGRhdGEpOworCXJldCA9IGtlcm5lbF9zZW5kbXNnKGNv bm4tPnNvY2ssICZtc2csIGlvdl9wLCBpb3ZfbGVuLAorCQkJICAgICBjb3VudC0+ZGF0YV9sZW5n dGgpOworCWlmIChyZXQgIT0gY291bnQtPmRhdGFfbGVuZ3RoKSB7CisJCXByX2VycigiVW5leHBl Y3RlZCByZXQ6ICVkIHNlbmQgZGF0YSAlZFxuIiwKKwkJICAgICAgIHJldCwgY291bnQtPmRhdGFf bGVuZ3RoKTsKKwkJcmV0dXJuIC1FUElQRTsKIAl9CisJcHJfZGVidWcoInJldDogJWQsIHNlbnQg ZGF0YTogJWRcbiIsIHJldCwgY291bnQtPmRhdGFfbGVuZ3RoKTsKIAotCXJldHVybiB0b3RhbF90 eDsKKwlyZXR1cm4gcmV0OwogfQogCiBpbnQgcnhfZGF0YSgKZGlmZiAtLWdpdCBhL2RyaXZlcnMv dHR5L3NlcmlhbC9zYW1zdW5nLmMgYi9kcml2ZXJzL3R0eS9zZXJpYWwvc2Ftc3VuZy5jCmluZGV4 IGIzMWYxYzMuLjYyNmU3NWIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdHR5L3NlcmlhbC9zYW1zdW5n LmMKKysrIGIvZHJpdmVycy90dHkvc2VyaWFsL3NhbXN1bmcuYwpAQCAtNTE5LDExICs1MTksMTUg QEAgc3RhdGljIHZvaWQgczNjMjR4eF9zZXJpYWxfcG0oc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwg dW5zaWduZWQgaW50IGxldmVsLAogCQkJICAgICAgdW5zaWduZWQgaW50IG9sZCkKIHsKIAlzdHJ1 Y3QgczNjMjR4eF91YXJ0X3BvcnQgKm91cnBvcnQgPSB0b19vdXJwb3J0KHBvcnQpOworCWludCB0 aW1lb3V0ID0gMTAwMDA7CiAKIAlvdXJwb3J0LT5wbV9sZXZlbCA9IGxldmVsOwogCiAJc3dpdGNo IChsZXZlbCkgewogCWNhc2UgMzoKKwkJd2hpbGUgKC0tdGltZW91dCAmJiAhczNjMjR4eF9zZXJp YWxfdHhlbXB0eV9ub2ZpZm8ocG9ydCkpCisJCQl1ZGVsYXkoMTAwKTsKKwogCQlpZiAoIUlTX0VS UihvdXJwb3J0LT5iYXVkY2xrKSAmJiBvdXJwb3J0LT5iYXVkY2xrICE9IE5VTEwpCiAJCQljbGtf ZGlzYWJsZShvdXJwb3J0LT5iYXVkY2xrKTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY2xh c3MvY2RjLWFjbS5jIGIvZHJpdmVycy91c2IvY2xhc3MvY2RjLWFjbS5jCmluZGV4IDY2NDcwODEu LmQzOGQ4OGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL2NsYXNzL2NkYy1hY20uYworKysgYi9k cml2ZXJzL3VzYi9jbGFzcy9jZGMtYWNtLmMKQEAgLTEwMTEsMTAgKzEwMTEsMTEgQEAgbmV4dF9k ZXNjOgogCX0gZWxzZSB7CiAJCWNvbnRyb2xfaW50ZXJmYWNlID0gdXNiX2lmbnVtX3RvX2lmKHVz Yl9kZXYsIHVuaW9uX2hlYWRlci0+Yk1hc3RlckludGVyZmFjZTApOwogCQlkYXRhX2ludGVyZmFj ZSA9IHVzYl9pZm51bV90b19pZih1c2JfZGV2LCAoZGF0YV9pbnRlcmZhY2VfbnVtID0gdW5pb25f aGVhZGVyLT5iU2xhdmVJbnRlcmZhY2UwKSk7Ci0JCWlmICghY29udHJvbF9pbnRlcmZhY2UgfHwg IWRhdGFfaW50ZXJmYWNlKSB7Ci0JCQlkZXZfZGJnKCZpbnRmLT5kZXYsICJubyBpbnRlcmZhY2Vz XG4iKTsKLQkJCXJldHVybiAtRU5PREVWOwotCQl9CisJfQorCisJaWYgKCFjb250cm9sX2ludGVy ZmFjZSB8fCAhZGF0YV9pbnRlcmZhY2UpIHsKKwkJZGV2X2RiZygmaW50Zi0+ZGV2LCAibm8gaW50 ZXJmYWNlc1xuIik7CisJCXJldHVybiAtRU5PREVWOwogCX0KIAogCWlmIChkYXRhX2ludGVyZmFj ZV9udW0gIT0gY2FsbF9pbnRlcmZhY2VfbnVtKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29y ZS9jb25maWcuYyBiL2RyaXZlcnMvdXNiL2NvcmUvY29uZmlnLmMKaW5kZXggMWUzZTIxMS4uMDI3 NmRiMyAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9jb25maWcuYworKysgYi9kcml2ZXJz L3VzYi9jb3JlL2NvbmZpZy5jCkBAIC0yMDEsNiArMjAxLDE3IEBAIHN0YXRpYyBpbnQgdXNiX3Bh cnNlX2VuZHBvaW50KHN0cnVjdCBkZXZpY2UgKmRkZXYsIGludCBjZmdubywgaW50IGludW0sCiAJ CQlpZiAobiA9PSAwKQogCQkJCW4gPSA5OwkvKiAzMiBtcyA9IDJeKDktMSkgdWZyYW1lcyAqLwog CQkJaiA9IDE2OworCisJCQkvKgorCQkJICogQWRqdXN0IGJJbnRlcnZhbCBmb3IgcXVpcmtlZCBk ZXZpY2VzLgorCQkJICogVGhpcyBxdWlyayBmaXhlcyBiSW50ZXJ2YWxzIHJlcG9ydGVkIGluCisJ CQkgKiBsaW5lYXIgbWljcm9mcmFtZXMuCisJCQkgKi8KKwkJCWlmICh0b191c2JfZGV2aWNlKGRk ZXYpLT5xdWlya3MgJgorCQkJCVVTQl9RVUlSS19MSU5FQVJfVUZSQU1FX0lOVFJfQklOVEVSVkFM KSB7CisJCQkJbiA9IGNsYW1wKGZscyhkLT5iSW50ZXJ2YWwpLCBpLCBqKTsKKwkJCQlpID0gaiA9 IG47CisJCQl9CiAJCQlicmVhazsKIAkJZGVmYXVsdDoJCS8qIFVTQl9TUEVFRF9GVUxMIG9yIF9M T1cgKi8KIAkJCS8qIEZvciBsb3ctc3BlZWQsIDEwIG1zIGlzIHRoZSBvZmZpY2lhbCBtaW5pbXVt LgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9vdGdfd2hpdGVsaXN0LmggYi9kcml2ZXJz L3VzYi9jb3JlL290Z193aGl0ZWxpc3QuaAppbmRleCBlOGNkY2U1Li4yNzUzY2VjIDEwMDY0NAot LS0gYS9kcml2ZXJzL3VzYi9jb3JlL290Z193aGl0ZWxpc3QuaAorKysgYi9kcml2ZXJzL3VzYi9j b3JlL290Z193aGl0ZWxpc3QuaApAQCAtNTksNiArNTksMTEgQEAgc3RhdGljIGludCBpc190YXJn ZXRlZChzdHJ1Y3QgdXNiX2RldmljZSAqZGV2KQogCSAgICAgbGUxNl90b19jcHUoZGV2LT5kZXNj cmlwdG9yLmlkUHJvZHVjdCkgPT0gMHhiYWRkKSkKIAkJcmV0dXJuIDA7CiAKKwkvKiBPVEcgUEVU IGRldmljZSBpcyBhbHdheXMgdGFyZ2V0ZWQgKHNlZSBPVEcgMi4wIEVDTiA2LjQuMikgKi8KKwlp ZiAoKGxlMTZfdG9fY3B1KGRldi0+ZGVzY3JpcHRvci5pZFZlbmRvcikgPT0gMHgxYTBhICYmCisJ ICAgICBsZTE2X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRQcm9kdWN0KSA9PSAweDAyMDApKQor CQlyZXR1cm4gMTsKKwogCS8qIE5PVEU6IGNhbid0IHVzZSB1c2JfbWF0Y2hfaWQoKSBzaW5jZSBp bnRlcmZhY2UgY2FjaGVzCiAJICogYXJlbid0IHNldCB1cCB5ZXQuIHRoaXMgaXMgY3V0L3Bhc3Rl IGZyb20gdGhhdCBjb2RlLgogCSAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvY29yZS9xdWly a3MuYyBiL2RyaXZlcnMvdXNiL2NvcmUvcXVpcmtzLmMKaW5kZXggM2RiYjE4Yy4uYWQ0NTQwZSAx MDA2NDQKLS0tIGEvZHJpdmVycy91c2IvY29yZS9xdWlya3MuYworKysgYi9kcml2ZXJzL3VzYi9j b3JlL3F1aXJrcy5jCkBAIC0xNTAsNiArMTUwLDEwIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCB1c2JfcXVpcmtfbGlzdFtdID0gewogCS8qIFNLWU1FREkgVVNCX0RSSVZFICov CiAJeyBVU0JfREVWSUNFKDB4MTUxNiwgMHg4NjI4KSwgLmRyaXZlcl9pbmZvID0gVVNCX1FVSVJL X1JFU0VUX1JFU1VNRSB9LAogCisJLyogUmF6ZXIgLSBSYXplciBCbGFkZSBLZXlib2FyZCAqLwor CXsgVVNCX0RFVklDRSgweDE1MzIsIDB4MDExNiksIC5kcml2ZXJfaW5mbyA9CisJCQlVU0JfUVVJ UktfTElORUFSX1VGUkFNRV9JTlRSX0JJTlRFUlZBTCB9LAorCiAJLyogQlVJTERXSU4gUGhvdG8g RnJhbWUgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxOTA4LCAweDEzMTUpLCAuZHJpdmVyX2luZm8gPQog CQkJVVNCX1FVSVJLX0hPTk9SX0JOVU1JTlRFUkZBQ0VTIH0sCkBAIC0xNjQsNiArMTY4LDEwIEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9pZCB1c2JfcXVpcmtfbGlzdFtdID0gewog CXsgVVNCX0RFVklDRSgweDBiMDUsIDB4MTdlMCksIC5kcml2ZXJfaW5mbyA9CiAJCQlVU0JfUVVJ UktfSUdOT1JFX1JFTU9URV9XQUtFVVAgfSwKIAorCS8qIFByb3RvY29sIGFuZCBPVEcgRWxlY3Ry aWNhbCBUZXN0IERldmljZSAqLworCXsgVVNCX0RFVklDRSgweDFhMGEsIDB4MDIwMCksIC5kcml2 ZXJfaW5mbyA9CisJCQlVU0JfUVVJUktfTElORUFSX1VGUkFNRV9JTlRSX0JJTlRFUlZBTCB9LAor CiAJeyB9ICAvKiB0ZXJtaW5hdGluZyBlbnRyeSBtdXN0IGJlIGxhc3QgKi8KIH07CiAKZGlmZiAt LWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC9hdG1lbF91c2JhX3VkYy5jIGIvZHJpdmVycy91c2Iv Z2FkZ2V0L2F0bWVsX3VzYmFfdWRjLmMKaW5kZXggYjI5OWMzMi4uOWJhMzExNCAxMDA2NDQKLS0t IGEvZHJpdmVycy91c2IvZ2FkZ2V0L2F0bWVsX3VzYmFfdWRjLmMKKysrIGIvZHJpdmVycy91c2Iv Z2FkZ2V0L2F0bWVsX3VzYmFfdWRjLmMKQEAgLTczOSwxMCArNzM5LDEwIEBAIHN0YXRpYyBpbnQg cXVldWVfZG1hKHN0cnVjdCB1c2JhX3VkYyAqdWRjLCBzdHJ1Y3QgdXNiYV9lcCAqZXAsCiAKIAly ZXEtPmN0cmwgPSBVU0JBX0JGKERNQV9CVUZfTEVOLCByZXEtPnJlcS5sZW5ndGgpCiAJCQl8IFVT QkFfRE1BX0NIX0VOIHwgVVNCQV9ETUFfRU5EX0JVRl9JRQotCQkJfCBVU0JBX0RNQV9FTkRfVFJf RU4gfCBVU0JBX0RNQV9FTkRfVFJfSUU7CisJCQl8IFVTQkFfRE1BX0VORF9CVUZfRU47CiAKLQlp ZiAoZXAtPmlzX2luKQotCQlyZXEtPmN0cmwgfD0gVVNCQV9ETUFfRU5EX0JVRl9FTjsKKwlpZiAo IWVwLT5pc19pbikKKwkJcmVxLT5jdHJsIHw9IFVTQkFfRE1BX0VORF9UUl9FTiB8IFVTQkFfRE1B X0VORF9UUl9JRTsKIAogCS8qCiAJICogQWRkIHRoaXMgcmVxdWVzdCB0byB0aGUgcXVldWUgYW5k IHN1Ym1pdCBmb3IgRE1BIGlmCkBAIC04NTAsNyArODUwLDcgQEAgc3RhdGljIGludCB1c2JhX2Vw X2RlcXVldWUoc3RydWN0IHVzYl9lcCAqX2VwLCBzdHJ1Y3QgdXNiX3JlcXVlc3QgKl9yZXEpCiB7 CiAJc3RydWN0IHVzYmFfZXAgKmVwID0gdG9fdXNiYV9lcChfZXApOwogCXN0cnVjdCB1c2JhX3Vk YyAqdWRjID0gZXAtPnVkYzsKLQlzdHJ1Y3QgdXNiYV9yZXF1ZXN0ICpyZXEgPSB0b191c2JhX3Jl cShfcmVxKTsKKwlzdHJ1Y3QgdXNiYV9yZXF1ZXN0ICpyZXE7CiAJdW5zaWduZWQgbG9uZyBmbGFn czsKIAl1MzIgc3RhdHVzOwogCkBAIC04NTksNiArODU5LDE2IEBAIHN0YXRpYyBpbnQgdXNiYV9l cF9kZXF1ZXVlKHN0cnVjdCB1c2JfZXAgKl9lcCwgc3RydWN0IHVzYl9yZXF1ZXN0ICpfcmVxKQog CiAJc3Bpbl9sb2NrX2lycXNhdmUoJnVkYy0+bG9jaywgZmxhZ3MpOwogCisJbGlzdF9mb3JfZWFj aF9lbnRyeShyZXEsICZlcC0+cXVldWUsIHF1ZXVlKSB7CisJCWlmICgmcmVxLT5yZXEgPT0gX3Jl cSkKKwkJCWJyZWFrOworCX0KKworCWlmICgmcmVxLT5yZXEgIT0gX3JlcSkgeworCQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZ1ZGMtPmxvY2ssIGZsYWdzKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJ fQorCiAJaWYgKHJlcS0+dXNpbmdfZG1hKSB7CiAJCS8qCiAJCSAqIElmIHRoaXMgcmVxdWVzdCBp cyBjdXJyZW50bHkgYmVpbmcgdHJhbnNmZXJyZWQsCkBAIC0xNTk3LDcgKzE2MDcsNiBAQCBzdGF0 aWMgdm9pZCB1c2JhX2VwX2lycShzdHJ1Y3QgdXNiYV91ZGMgKnVkYywgc3RydWN0IHVzYmFfZXAg KmVwKQogCWlmICgoZXBzdGF0dXMgJiBlcGN0cmwpICYgVVNCQV9SWF9CS19SRFkpIHsKIAkJREJH KERCR19CVVMsICIlczogUlggZGF0YSByZWFkeVxuIiwgZXAtPmVwLm5hbWUpOwogCQlyZWNlaXZl X2RhdGEoZXApOwotCQl1c2JhX2VwX3dyaXRlbChlcCwgQ0xSX1NUQSwgVVNCQV9SWF9CS19SRFkp OwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC9wY2ktcXVpcmtzLmMgYi9k cml2ZXJzL3VzYi9ob3N0L3BjaS1xdWlya3MuYwppbmRleCBlYWUzNWMxLi5kNWNiMTQ4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL3VzYi9ob3N0L3BjaS1xdWlya3MuYworKysgYi9kcml2ZXJzL3VzYi9o b3N0L3BjaS1xdWlya3MuYwpAQCAtNDcwLDcgKzQ3MCw4IEBAIHN0YXRpYyB2b2lkIF9fZGV2aW5p dCBxdWlya191c2JfaGFuZG9mZl9vaGNpKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogCXZvaWQg X19pb21lbSAqYmFzZTsKIAl1MzIgY29udHJvbDsKLQl1MzIgZm1pbnRlcnZhbDsKKwl1MzIgZm1p bnRlcnZhbCA9IDA7CisJYm9vbCBub19mbWludGVydmFsID0gZmFsc2U7CiAJaW50IGNudDsKIAog CWlmICghbW1pb19yZXNvdXJjZV9lbmFibGVkKHBkZXYsIDApKQpAQCAtNDgwLDYgKzQ4MSwxMyBA QCBzdGF0aWMgdm9pZCBfX2RldmluaXQgcXVpcmtfdXNiX2hhbmRvZmZfb2hjaShzdHJ1Y3QgcGNp X2RldiAqcGRldikKIAlpZiAoYmFzZSA9PSBOVUxMKQogCQlyZXR1cm47CiAKKwkvKgorCSAqIFVM aSBNNTIzNyBPSENJIGNvbnRyb2xsZXIgbG9ja3MgdGhlIHdob2xlIHN5c3RlbSB3aGVuIGFjY2Vz c2luZworCSAqIHRoZSBPSENJX0ZNSU5URVJWQUwgb2Zmc2V0LgorCSAqLworCWlmIChwZGV2LT52 ZW5kb3IgPT0gUENJX1ZFTkRPUl9JRF9BTCAmJiBwZGV2LT5kZXZpY2UgPT0gMHg1MjM3KQorCQlu b19mbWludGVydmFsID0gdHJ1ZTsKKwogCWNvbnRyb2wgPSByZWFkbChiYXNlICsgT0hDSV9DT05U Uk9MKTsKIAogLyogT24gUEEtUklTQywgUERDIGNhbiBsZWF2ZSBJUiBzZXQgaW5jb3JyZWN0bHk7 IGlnbm9yZSBpdCB0aGVyZS4gKi8KQEAgLTUxOCw3ICs1MjYsOSBAQCBzdGF0aWMgdm9pZCBfX2Rl dmluaXQgcXVpcmtfdXNiX2hhbmRvZmZfb2hjaShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIAl9CiAK IAkvKiBzb2Z0d2FyZSByZXNldCBvZiB0aGUgY29udHJvbGxlciwgcHJlc2VydmluZyBIY0ZtSW50 ZXJ2YWwgKi8KLQlmbWludGVydmFsID0gcmVhZGwoYmFzZSArIE9IQ0lfRk1JTlRFUlZBTCk7CisJ aWYgKCFub19mbWludGVydmFsKQorCQlmbWludGVydmFsID0gcmVhZGwoYmFzZSArIE9IQ0lfRk1J TlRFUlZBTCk7CisKIAl3cml0ZWwoT0hDSV9IQ1IsIGJhc2UgKyBPSENJX0NNRFNUQVRVUyk7CiAK IAkvKiByZXNldCByZXF1aXJlcyBtYXggMTAgdXMgZGVsYXkgKi8KQEAgLTUyNyw3ICs1MzcsOSBA QCBzdGF0aWMgdm9pZCBfX2RldmluaXQgcXVpcmtfdXNiX2hhbmRvZmZfb2hjaShzdHJ1Y3QgcGNp X2RldiAqcGRldikKIAkJCWJyZWFrOwogCQl1ZGVsYXkoMSk7CiAJfQotCXdyaXRlbChmbWludGVy dmFsLCBiYXNlICsgT0hDSV9GTUlOVEVSVkFMKTsKKworCWlmICghbm9fZm1pbnRlcnZhbCkKKwkJ d3JpdGVsKGZtaW50ZXJ2YWwsIGJhc2UgKyBPSENJX0ZNSU5URVJWQUwpOwogCiAJLyogTm93IHRo ZSBjb250cm9sbGVyIGlzIHNhZmVseSBpbiBTVVNQRU5EIGFuZCBub3RoaW5nIGNhbiB3YWtlIGl0 IHVwICovCiAJaW91bm1hcChiYXNlKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL21pc2MvYWR1 dHV4LmMgYi9kcml2ZXJzL3VzYi9taXNjL2FkdXR1eC5jCmluZGV4IGRiNTEyOGI3ZS4uNTAxYWI0 ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvbWlzYy9hZHV0dXguYworKysgYi9kcml2ZXJzL3Vz Yi9taXNjL2FkdXR1eC5jCkBAIC04NjUsMTUgKzg2NSwxMSBAQCBzdGF0aWMgdm9pZCBhZHVfZGlz Y29ubmVjdChzdHJ1Y3QgdXNiX2ludGVyZmFjZSAqaW50ZXJmYWNlKQogCXVzYl9zZXRfaW50ZmRh dGEoaW50ZXJmYWNlLCBOVUxMKTsKIAogCS8qIGlmIHRoZSBkZXZpY2UgaXMgbm90IG9wZW5lZCwg dGhlbiB3ZSBjbGVhbiB1cCByaWdodCBub3cgKi8KLQlkYmcoMiwiICVzIDogb3BlbiBjb3VudCAl ZCIsIF9fZnVuY19fLCBkZXYtPm9wZW5fY291bnQpOwogCWlmICghZGV2LT5vcGVuX2NvdW50KQog CQlhZHVfZGVsZXRlKGRldik7CiAKIAltdXRleF91bmxvY2soJmFkdXR1eF9tdXRleCk7CiAKLQlk ZXZfaW5mbygmaW50ZXJmYWNlLT5kZXYsICJBRFUgZGV2aWNlIGFkdXR1eCVkIG5vdyBkaXNjb25u ZWN0ZWRcbiIsCi0JCSAobWlub3IgLSBBRFVfTUlOT1JfQkFTRSkpOwotCiAJZGJnKDIsIiAlcyA6 IGxlYXZlIiwgX19mdW5jX18pOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL3VzYi9yZW5lc2Fz X3VzYmhzL21vZF9nYWRnZXQuYyBiL2RyaXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvbW9kX2dhZGdl dC5jCmluZGV4IGFhMGQxODMuLjBiMWZjMDcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3JlbmVz YXNfdXNiaHMvbW9kX2dhZGdldC5jCisrKyBiL2RyaXZlcnMvdXNiL3JlbmVzYXNfdXNiaHMvbW9k X2dhZGdldC5jCkBAIC01MTQsNiArNTE0LDEwIEBAIHN0YXRpYyBpbnQgdXNiaHNnX2VwX2VuYWJs ZShzdHJ1Y3QgdXNiX2VwICplcCwKIHN0YXRpYyBpbnQgdXNiaHNnX2VwX2Rpc2FibGUoc3RydWN0 IHVzYl9lcCAqZXApCiB7CiAJc3RydWN0IHVzYmhzZ191ZXAgKnVlcCA9IHVzYmhzZ19lcF90b191 ZXAoZXApOworCXN0cnVjdCB1c2Joc19waXBlICpwaXBlID0gdXNiaHNnX3VlcF90b19waXBlKHVl cCk7CisKKwlpZiAoIXBpcGUpCisJCXJldHVybiAtRUlOVkFMOwogCiAJcmV0dXJuIHVzYmhzZ19w aXBlX2Rpc2FibGUodWVwKTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jb25z b2xlLmMgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY29uc29sZS5jCmluZGV4IDFlZTZiMmEuLjg3MzAy ZGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9jb25zb2xlLmMKKysrIGIvZHJpdmVy cy91c2Ivc2VyaWFsL2NvbnNvbGUuYwpAQCAtNDcsNiArNDcsOCBAQCBzdGF0aWMgc3RydWN0IGNv bnNvbGUgdXNiY29uczsKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgdHR5X29w ZXJhdGlvbnMgdXNiX2NvbnNvbGVfZmFrZV90dHlfb3BzID0geworfTsKIAogLyoKICAqIFRoZSBw YXJzaW5nIG9mIHRoZSBjb21tYW5kIGxpbmUgd29ya3MgZXhhY3RseSBsaWtlIHRoZQpAQCAtMTQx LDE0ICsxNDMsMTcgQEAgc3RhdGljIGludCB1c2JfY29uc29sZV9zZXR1cChzdHJ1Y3QgY29uc29s ZSAqY28sIGNoYXIgKm9wdGlvbnMpCiAJCQkJZ290byByZXNldF9vcGVuX2NvdW50OwogCQkJfQog CQkJa3JlZl9pbml0KCZ0dHktPmtyZWYpOwotCQkJdHR5X3BvcnRfdHR5X3NldCgmcG9ydC0+cG9y dCwgdHR5KTsKIAkJCXR0eS0+ZHJpdmVyID0gdXNiX3NlcmlhbF90dHlfZHJpdmVyOwogCQkJdHR5 LT5pbmRleCA9IGNvLT5pbmRleDsKKwkJCUlOSVRfTElTVF9IRUFEKCZ0dHktPnR0eV9maWxlcyk7 CisJCQlrcmVmX2dldCgmdHR5LT5kcml2ZXItPmtyZWYpOworCQkJdHR5LT5vcHMgPSAmdXNiX2Nv bnNvbGVfZmFrZV90dHlfb3BzOwogCQkJaWYgKHR0eV9pbml0X3Rlcm1pb3ModHR5KSkgewogCQkJ CXJldHZhbCA9IC1FTk9NRU07CiAJCQkJZXJyKCJubyBtb3JlIG1lbW9yeSIpOwotCQkJCWdvdG8g ZnJlZV90dHk7CisJCQkJZ290byBwdXRfdHR5OwogCQkJfQorCQkJdHR5X3BvcnRfdHR5X3NldCgm cG9ydC0+cG9ydCwgdHR5KTsKIAkJfQogCiAJCS8qIG9ubHkgY2FsbCB0aGUgZGV2aWNlIHNwZWNp ZmljIG9wZW4gaWYgdGhpcwpAQCAtMTcwLDcgKzE3NSw3IEBAIHN0YXRpYyBpbnQgdXNiX2NvbnNv bGVfc2V0dXAoc3RydWN0IGNvbnNvbGUgKmNvLCBjaGFyICpvcHRpb25zKQogCQkJc2VyaWFsLT50 eXBlLT5zZXRfdGVybWlvcyh0dHksIHBvcnQsICZkdW1teSk7CiAKIAkJCXR0eV9wb3J0X3R0eV9z ZXQoJnBvcnQtPnBvcnQsIE5VTEwpOwotCQkJa2ZyZWUodHR5KTsKKwkJCXR0eV9rcmVmX3B1dCh0 dHkpOwogCQl9CiAJCXNldF9iaXQoQVNZTkNCX0lOSVRJQUxJWkVELCAmcG9ydC0+cG9ydC5mbGFn cyk7CiAJfQpAQCAtMTg2LDggKzE5MSw4IEBAIHN0YXRpYyBpbnQgdXNiX2NvbnNvbGVfc2V0dXAo c3RydWN0IGNvbnNvbGUgKmNvLCBjaGFyICpvcHRpb25zKQogCiAgZmFpbDoKIAl0dHlfcG9ydF90 dHlfc2V0KCZwb3J0LT5wb3J0LCBOVUxMKTsKLSBmcmVlX3R0eToKLQlrZnJlZSh0dHkpOworIHB1 dF90dHk6CisJdHR5X2tyZWZfcHV0KHR0eSk7CiAgcmVzZXRfb3Blbl9jb3VudDoKIAlwb3J0LT5w b3J0LmNvdW50ID0gMDsKIAl1c2JfYXV0b3BtX3B1dF9pbnRlcmZhY2Uoc2VyaWFsLT5pbnRlcmZh Y2UpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2NwMjEweC5jIGIvZHJpdmVycy91 c2Ivc2VyaWFsL2NwMjEweC5jCmluZGV4IGRhOTJkMmQuLmU3OTVhNGMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvdXNiL3NlcmlhbC9jcDIxMHguYworKysgYi9kcml2ZXJzL3VzYi9zZXJpYWwvY3AyMTB4 LmMKQEAgLTEyNiwxMCArMTI2LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBpZF90YWJsZVtdID0gewogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODVGOCkgfSwgLyogVmly dGVuaW8gUHJlb24zMiAqLwogCXsgVVNCX0RFVklDRSgweDEwQzQsIDB4ODY2NCkgfSwgLyogQUMt U2VydmljZXMgQ0FOLUlGICovCiAJeyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4NjY1KSB9LCAvKiBB Qy1TZXJ2aWNlcyBPQkQtSUYgKi8KLQl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg4NzUpIH0sIC8q IENFTCBNZXNoQ29ubmVjdCBVU0IgU3RpY2sgKi8KKwl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg4 NTYpIH0sCS8qIENFTCBFTTM1NyBaaWdCZWUgVVNCIFN0aWNrIC0gTFIgKi8KKwl7IFVTQl9ERVZJ Q0UoMHgxMEM0LCAweDg4NTcpIH0sCS8qIENFTCBFTTM1NyBaaWdCZWUgVVNCIFN0aWNrICovCiAJ eyBVU0JfREVWSUNFKDB4MTBDNCwgMHg4OEE0KSB9LCAvKiBNTUIgTmV0d29ya3MgWmlnQmVlIFVT QiBEZXZpY2UgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweDg4QTUpIH0sIC8qIFBsYW5ldCBJ bm5vdmF0aW9uIEluZ2VuaSBaaWdCZWUgVVNCIERldmljZSAqLwogCXsgVVNCX0RFVklDRSgweDEw QzQsIDB4ODk0NikgfSwgLyogS2V0cmEgTjEgV2lyZWxlc3MgSW50ZXJmYWNlICovCisJeyBVU0Jf REVWSUNFKDB4MTBDNCwgMHg4OTc3KSB9LAkvKiBDRUwgTWVzaFdvcmtzIERldktpdCBEZXZpY2Ug Ki8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweEVBNjApIH0sIC8qIFNpbGljb24gTGFicyBmYWN0 b3J5IGRlZmF1bHQgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweEVBNjEpIH0sIC8qIFNpbGlj b24gTGFicyBmYWN0b3J5IGRlZmF1bHQgKi8KIAl7IFVTQl9ERVZJQ0UoMHgxMEM0LCAweEVBNzAp IH0sIC8qIFNpbGljb24gTGFicyBmYWN0b3J5IGRlZmF1bHQgKi8KZGlmZiAtLWdpdCBhL2RyaXZl cnMvdXNiL3N0b3JhZ2UvdW51c3VhbF9kZXZzLmggYi9kcml2ZXJzL3VzYi9zdG9yYWdlL3VudXN1 YWxfZGV2cy5oCmluZGV4IGE2YzRjN2QuLjBlMmMyZGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvdXNi L3N0b3JhZ2UvdW51c3VhbF9kZXZzLmgKKysrIGIvZHJpdmVycy91c2Ivc3RvcmFnZS91bnVzdWFs X2RldnMuaApAQCAtMTk1Niw2ICsxOTU2LDEzIEBAIFVOVVNVQUxfREVWKCAgMHgxNTJkLCAweDIz MjksIDB4MDEwMCwgMHgwMTAwLAogCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNFLCBOVUxM LAogCQlVU19GTF9JR05PUkVfUkVTSURVRSB8IFVTX0ZMX1NBTkVfU0VOU0UgKSwKIAorLyogUmVw b3J0ZWQgYnkgRG1pdHJ5IE5lemhldmVua28gPGRpb25AZGlvbi5vcmcudWE+ICovCitVTlVTVUFM X0RFViggIDB4MTUyZCwgMHgyNTY2LCAweDAxMTQsIDB4MDExNCwKKwkJIkpNaWNyb24iLAorCQki VVNCIHRvIEFUQS9BVEFQSSBCcmlkZ2UiLAorCQlVU0JfU0NfREVWSUNFLCBVU0JfUFJfREVWSUNF LCBOVUxMLAorCQlVU19GTF9CUk9LRU5fRlVBICksCisKIC8qIEVudHJlZ2EgVGVjaG5vbG9naWVz IFUxLVNDMjUgKGxhdGVyIFhpcmNvbSBQb3J0R2VhciBQR1NDU0kpCiAgKiBhbmQgTWFjIFVTQiBE b2NrIFVTQi1TQ1NJICovCiBVTlVTVUFMX0RFViggIDB4MTY0NSwgMHgwMDA3LCAweDAxMDAsIDB4 MDEzMywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vZmJfZGVmaW8uYyBiL2RyaXZlcnMvdmlk ZW8vZmJfZGVmaW8uYwppbmRleCBjMjdlMTUzLi44YTNkNTFmIDEwMDY0NAotLS0gYS9kcml2ZXJz L3ZpZGVvL2ZiX2RlZmlvLmMKKysrIGIvZHJpdmVycy92aWRlby9mYl9kZWZpby5jCkBAIC04Myw5 ICs4MywxMCBAQCBpbnQgZmJfZGVmZXJyZWRfaW9fZnN5bmMoc3RydWN0IGZpbGUgKmZpbGUsIGxv ZmZfdCBzdGFydCwgbG9mZl90IGVuZCwgaW50IGRhdGFzeQogCWNhbmNlbF9kZWxheWVkX3dvcmtf c3luYygmaW5mby0+ZGVmZXJyZWRfd29yayk7CiAKIAkvKiBSdW4gaXQgaW1tZWRpYXRlbHkgKi8K LQllcnIgPSBzY2hlZHVsZV9kZWxheWVkX3dvcmsoJmluZm8tPmRlZmVycmVkX3dvcmssIDApOwor CXNjaGVkdWxlX2RlbGF5ZWRfd29yaygmaW5mby0+ZGVmZXJyZWRfd29yaywgMCk7CiAJbXV0ZXhf dW5sb2NrKCZpbm9kZS0+aV9tdXRleCk7Ci0JcmV0dXJuIGVycjsKKworCXJldHVybiAwOwogfQog RVhQT1JUX1NZTUJPTF9HUEwoZmJfZGVmZXJyZWRfaW9fZnN5bmMpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL3ZpZGVvL2xvZ28vbG9nby5jIGIvZHJpdmVycy92aWRlby9sb2dvL2xvZ28uYwppbmRl eCBlYTdhOGNjLi40YmJlMWIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3ZpZGVvL2xvZ28vbG9nby5j CisrKyBiL2RyaXZlcnMvdmlkZW8vbG9nby9sb2dvLmMKQEAgLTI1LDYgKzI1LDIxIEBAIHN0YXRp YyBpbnQgbm9sb2dvOwogbW9kdWxlX3BhcmFtKG5vbG9nbywgYm9vbCwgMCk7CiBNT0RVTEVfUEFS TV9ERVNDKG5vbG9nbywgIkRpc2FibGVzIHN0YXJ0dXAgbG9nbyIpOwogCisvKgorICogTG9nb3Mg YXJlIGxvY2F0ZWQgaW4gdGhlIGluaXRkYXRhLCBhbmQgd2lsbCBiZSBmcmVlZCBpbiBrZXJuZWxf aW5pdC4KKyAqIFVzZSBsYXRlX2luaXQgdG8gbWFyayB0aGUgbG9nb3MgYXMgZnJlZWQgdG8gcHJl dmVudCBhbnkgZnVydGhlciB1c2UuCisgKi8KKworc3RhdGljIGJvb2wgbG9nb3NfZnJlZWQ7CisK K3N0YXRpYyBpbnQgX19pbml0IGZiX2xvZ29fbGF0ZV9pbml0KHZvaWQpCit7CisJbG9nb3NfZnJl ZWQgPSB0cnVlOworCXJldHVybiAwOworfQorCitsYXRlX2luaXRjYWxsKGZiX2xvZ29fbGF0ZV9p bml0KTsKKwogLyogbG9nbydzIGFyZSBtYXJrZWQgX19pbml0ZGF0YS4gVXNlIF9faW5pdF9yZWZv ayB0byB0ZWxsCiAgKiBtb2Rwb3N0IHRoYXQgaXQgaXMgaW50ZW5kZWQgdGhhdCB0aGlzIGZ1bmN0 aW9uIHVzZXMgZGF0YQogICogbWFya2VkIF9faW5pdGRhdGEuCkBAIC0zMyw3ICs0OCw3IEBAIGNv bnN0IHN0cnVjdCBsaW51eF9sb2dvICogX19pbml0X3JlZm9rIGZiX2ZpbmRfbG9nbyhpbnQgZGVw dGgpCiB7CiAJY29uc3Qgc3RydWN0IGxpbnV4X2xvZ28gKmxvZ28gPSBOVUxMOwogCi0JaWYgKG5v bG9nbykKKwlpZiAobm9sb2dvIHx8IGxvZ29zX2ZyZWVkKQogCQlyZXR1cm4gTlVMTDsKIAogCWlm IChkZXB0aCA+PSAxKSB7CmRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW8uYyBiL2Ry aXZlcnMvdmlydGlvL3ZpcnRpby5jCmluZGV4IDk4NGM1MDEuLmNjMDJhOWIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvdmlydGlvL3ZpcnRpby5jCisrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpby5jCkBA IC05LDMzICs5LDMyIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgZGV2X2luZGV4Owogc3RhdGljIHNz aXplX3QgZGV2aWNlX3Nob3coc3RydWN0IGRldmljZSAqX2QsCiAJCQkgICBzdHJ1Y3QgZGV2aWNl X2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewotCXN0cnVjdCB2aXJ0aW9fZGV2aWNlICpk ZXYgPSBjb250YWluZXJfb2YoX2Qsc3RydWN0IHZpcnRpb19kZXZpY2UsZGV2KTsKKwlzdHJ1Y3Qg dmlydGlvX2RldmljZSAqZGV2ID0gZGV2X3RvX3ZpcnRpbyhfZCk7CiAJcmV0dXJuIHNwcmludGYo YnVmLCAiMHglMDR4XG4iLCBkZXYtPmlkLmRldmljZSk7CiB9CiBzdGF0aWMgc3NpemVfdCB2ZW5k b3Jfc2hvdyhzdHJ1Y3QgZGV2aWNlICpfZCwKIAkJCSAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRl ICphdHRyLCBjaGFyICpidWYpCiB7Ci0Jc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldiA9IGNvbnRh aW5lcl9vZihfZCxzdHJ1Y3QgdmlydGlvX2RldmljZSxkZXYpOworCXN0cnVjdCB2aXJ0aW9fZGV2 aWNlICpkZXYgPSBkZXZfdG9fdmlydGlvKF9kKTsKIAlyZXR1cm4gc3ByaW50ZihidWYsICIweCUw NHhcbiIsIGRldi0+aWQudmVuZG9yKTsKIH0KIHN0YXRpYyBzc2l6ZV90IHN0YXR1c19zaG93KHN0 cnVjdCBkZXZpY2UgKl9kLAogCQkJICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNo YXIgKmJ1ZikKIHsKLQlzdHJ1Y3QgdmlydGlvX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKF9k LHN0cnVjdCB2aXJ0aW9fZGV2aWNlLGRldik7CisJc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldiA9 IGRldl90b192aXJ0aW8oX2QpOwogCXJldHVybiBzcHJpbnRmKGJ1ZiwgIjB4JTA4eFxuIiwgZGV2 LT5jb25maWctPmdldF9zdGF0dXMoZGV2KSk7CiB9CiBzdGF0aWMgc3NpemVfdCBtb2RhbGlhc19z aG93KHN0cnVjdCBkZXZpY2UgKl9kLAogCQkJICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAq YXR0ciwgY2hhciAqYnVmKQogewotCXN0cnVjdCB2aXJ0aW9fZGV2aWNlICpkZXYgPSBjb250YWlu ZXJfb2YoX2Qsc3RydWN0IHZpcnRpb19kZXZpY2UsZGV2KTsKLQorCXN0cnVjdCB2aXJ0aW9fZGV2 aWNlICpkZXYgPSBkZXZfdG9fdmlydGlvKF9kKTsKIAlyZXR1cm4gc3ByaW50ZihidWYsICJ2aXJ0 aW86ZCUwOFh2JTA4WFxuIiwKIAkJICAgICAgIGRldi0+aWQuZGV2aWNlLCBkZXYtPmlkLnZlbmRv cik7CiB9CiBzdGF0aWMgc3NpemVfdCBmZWF0dXJlc19zaG93KHN0cnVjdCBkZXZpY2UgKl9kLAog CQkJICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQogewotCXN0 cnVjdCB2aXJ0aW9fZGV2aWNlICpkZXYgPSBjb250YWluZXJfb2YoX2QsIHN0cnVjdCB2aXJ0aW9f ZGV2aWNlLCBkZXYpOworCXN0cnVjdCB2aXJ0aW9fZGV2aWNlICpkZXYgPSBkZXZfdG9fdmlydGlv KF9kKTsKIAl1bnNpZ25lZCBpbnQgaTsKIAlzc2l6ZV90IGxlbiA9IDA7CiAKQEAgLTcwLDcgKzY5 LDcgQEAgc3RhdGljIGlubGluZSBpbnQgdmlydGlvX2lkX21hdGNoKGNvbnN0IHN0cnVjdCB2aXJ0 aW9fZGV2aWNlICpkZXYsCiBzdGF0aWMgaW50IHZpcnRpb19kZXZfbWF0Y2goc3RydWN0IGRldmlj ZSAqX2R2LCBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqX2RyKQogewogCXVuc2lnbmVkIGludCBpOwot CXN0cnVjdCB2aXJ0aW9fZGV2aWNlICpkZXYgPSBjb250YWluZXJfb2YoX2R2LHN0cnVjdCB2aXJ0 aW9fZGV2aWNlLGRldik7CisJc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldiA9IGRldl90b192aXJ0 aW8oX2R2KTsKIAljb25zdCBzdHJ1Y3QgdmlydGlvX2RldmljZV9pZCAqaWRzOwogCiAJaWRzID0g Y29udGFpbmVyX29mKF9kciwgc3RydWN0IHZpcnRpb19kcml2ZXIsIGRyaXZlciktPmlkX3RhYmxl OwpAQCAtODIsNyArODEsNyBAQCBzdGF0aWMgaW50IHZpcnRpb19kZXZfbWF0Y2goc3RydWN0IGRl dmljZSAqX2R2LCBzdHJ1Y3QgZGV2aWNlX2RyaXZlciAqX2RyKQogCiBzdGF0aWMgaW50IHZpcnRp b191ZXZlbnQoc3RydWN0IGRldmljZSAqX2R2LCBzdHJ1Y3Qga29ial91ZXZlbnRfZW52ICplbnYp CiB7Ci0Jc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldiA9IGNvbnRhaW5lcl9vZihfZHYsc3RydWN0 IHZpcnRpb19kZXZpY2UsZGV2KTsKKwlzdHJ1Y3QgdmlydGlvX2RldmljZSAqZGV2ID0gZGV2X3Rv X3ZpcnRpbyhfZHYpOwogCiAJcmV0dXJuIGFkZF91ZXZlbnRfdmFyKGVudiwgIk1PREFMSUFTPXZp cnRpbzpkJTA4WHYlMDhYIiwKIAkJCSAgICAgIGRldi0+aWQuZGV2aWNlLCBkZXYtPmlkLnZlbmRv cik7CkBAIC0xMTAsNyArMTA5LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwodmlydGlvX2NoZWNrX2Ry aXZlcl9vZmZlcmVkX2ZlYXR1cmUpOwogc3RhdGljIGludCB2aXJ0aW9fZGV2X3Byb2JlKHN0cnVj dCBkZXZpY2UgKl9kKQogewogCWludCBlcnIsIGk7Ci0Jc3RydWN0IHZpcnRpb19kZXZpY2UgKmRl diA9IGNvbnRhaW5lcl9vZihfZCxzdHJ1Y3QgdmlydGlvX2RldmljZSxkZXYpOworCXN0cnVjdCB2 aXJ0aW9fZGV2aWNlICpkZXYgPSBkZXZfdG9fdmlydGlvKF9kKTsKIAlzdHJ1Y3QgdmlydGlvX2Ry aXZlciAqZHJ2ID0gY29udGFpbmVyX29mKGRldi0+ZGV2LmRyaXZlciwKIAkJCQkJCSBzdHJ1Y3Qg dmlydGlvX2RyaXZlciwgZHJpdmVyKTsKIAl1MzIgZGV2aWNlX2ZlYXR1cmVzOwpAQCAtMTQ4LDcg KzE0Nyw3IEBAIHN0YXRpYyBpbnQgdmlydGlvX2Rldl9wcm9iZShzdHJ1Y3QgZGV2aWNlICpfZCkK IAogc3RhdGljIGludCB2aXJ0aW9fZGV2X3JlbW92ZShzdHJ1Y3QgZGV2aWNlICpfZCkKIHsKLQlz dHJ1Y3QgdmlydGlvX2RldmljZSAqZGV2ID0gY29udGFpbmVyX29mKF9kLHN0cnVjdCB2aXJ0aW9f ZGV2aWNlLGRldik7CisJc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldiA9IGRldl90b192aXJ0aW8o X2QpOwogCXN0cnVjdCB2aXJ0aW9fZHJpdmVyICpkcnYgPSBjb250YWluZXJfb2YoZGV2LT5kZXYu ZHJpdmVyLAogCQkJCQkJIHN0cnVjdCB2aXJ0aW9fZHJpdmVyLCBkcml2ZXIpOwogCmRpZmYgLS1n aXQgYS9kcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpLmMgYi9kcml2ZXJzL3ZpcnRpby92aXJ0aW9f cGNpLmMKaW5kZXggMDNkMTk4NC4uMTNmNmNkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy92aXJ0aW8v dmlydGlvX3BjaS5jCisrKyBiL2RyaXZlcnMvdmlydGlvL3ZpcnRpb19wY2kuYwpAQCAtNjEyLDEx ICs2MTIsMTMgQEAgc3RhdGljIHN0cnVjdCB2aXJ0aW9fY29uZmlnX29wcyB2aXJ0aW9fcGNpX2Nv bmZpZ19vcHMgPSB7CiAKIHN0YXRpYyB2b2lkIHZpcnRpb19wY2lfcmVsZWFzZV9kZXYoc3RydWN0 IGRldmljZSAqX2QpCiB7Ci0JLyoKLQkgKiBObyBuZWVkIGZvciBhIHJlbGVhc2UgbWV0aG9kIGFz IHdlIGFsbG9jYXRlL2ZyZWUKLQkgKiBhbGwgZGV2aWNlcyB0b2dldGhlciB3aXRoIHRoZSBwY2kg ZGV2aWNlcy4KLQkgKiBQcm92aWRlIGFuIGVtcHR5IG9uZSB0byBhdm9pZCBnZXR0aW5nIGEgd2Fy bmluZyBmcm9tIGNvcmUuCi0JICovCisJc3RydWN0IHZpcnRpb19kZXZpY2UgKnZkZXYgPSBkZXZf dG9fdmlydGlvKF9kKTsKKwlzdHJ1Y3QgdmlydGlvX3BjaV9kZXZpY2UgKnZwX2RldiA9IHRvX3Zw X2RldmljZSh2ZGV2KTsKKworCS8qIEFzIHN0cnVjdCBkZXZpY2UgaXMgYSBrb2JqZWN0LCBpdCdz IG5vdCBzYWZlIHRvCisJICogZnJlZSB0aGUgbWVtb3J5IChpbmNsdWRpbmcgdGhlIHJlZmVyZW5j ZSBjb3VudGVyIGl0c2VsZikKKwkgKiB1bnRpbCBpdCdzIHJlbGVhc2UgY2FsbGJhY2suICovCisJ a2ZyZWUodnBfZGV2KTsKIH0KIAogLyogdGhlIFBDSSBwcm9iaW5nIGZ1bmN0aW9uICovCkBAIC03 MDQsNyArNzA2LDYgQEAgc3RhdGljIHZvaWQgX19kZXZleGl0IHZpcnRpb19wY2lfcmVtb3ZlKHN0 cnVjdCBwY2lfZGV2ICpwY2lfZGV2KQogCXBjaV9pb3VubWFwKHBjaV9kZXYsIHZwX2Rldi0+aW9h ZGRyKTsKIAlwY2lfcmVsZWFzZV9yZWdpb25zKHBjaV9kZXYpOwogCXBjaV9kaXNhYmxlX2Rldmlj ZShwY2lfZGV2KTsKLQlrZnJlZSh2cF9kZXYpOwogfQogCiAjaWZkZWYgQ09ORklHX1BNCmRpZmYg LS1naXQgYS9mcy9idHJmcy9kaXNrLWlvLmMgYi9mcy9idHJmcy9kaXNrLWlvLmMKaW5kZXggY2Zk ZjZmZS4uYjhmYzQ3MyAxMDA2NDQKLS0tIGEvZnMvYnRyZnMvZGlzay1pby5jCisrKyBiL2ZzL2J0 cmZzL2Rpc2staW8uYwpAQCAtMzQ4MSwxMiArMzQ4MSw2IEBAIHN0YXRpYyBpbnQgYnRyZnNfZGVz dHJveV9waW5uZWRfZXh0ZW50KHN0cnVjdCBidHJmc19yb290ICpyb290LAogCQlpZiAocmV0KQog CQkJYnJlYWs7CiAKLQkJLyogb3B0X2Rpc2NhcmQgKi8KLQkJaWYgKGJ0cmZzX3Rlc3Rfb3B0KHJv b3QsIERJU0NBUkQpKQotCQkJcmV0ID0gYnRyZnNfZXJyb3JfZGlzY2FyZF9leHRlbnQocm9vdCwg c3RhcnQsCi0JCQkJCQkJIGVuZCArIDEgLSBzdGFydCwKLQkJCQkJCQkgTlVMTCk7Ci0KIAkJY2xl YXJfZXh0ZW50X2RpcnR5KHVucGluLCBzdGFydCwgZW5kLCBHRlBfTk9GUyk7CiAJCWJ0cmZzX2Vy cm9yX3VucGluX2V4dGVudF9yYW5nZShyb290LCBzdGFydCwgZW5kKTsKIAkJY29uZF9yZXNjaGVk KCk7CmRpZmYgLS1naXQgYS9mcy9idHJmcy9leHRlbnQtdHJlZS5jIGIvZnMvYnRyZnMvZXh0ZW50 LXRyZWUuYwppbmRleCBmNjM3MTlhLi5hNjk0MzE3IDEwMDY0NAotLS0gYS9mcy9idHJmcy9leHRl bnQtdHJlZS5jCisrKyBiL2ZzL2J0cmZzL2V4dGVudC10cmVlLmMKQEAgLTQ2MTEsNyArNDYxMSw4 IEBAIGludCBidHJmc19wcmVwYXJlX2V4dGVudF9jb21taXQoc3RydWN0IGJ0cmZzX3RyYW5zX2hh bmRsZSAqdHJhbnMsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgdW5waW5fZXh0ZW50X3Jh bmdlKHN0cnVjdCBidHJmc19yb290ICpyb290LCB1NjQgc3RhcnQsIHU2NCBlbmQpCitzdGF0aWMg aW50IHVucGluX2V4dGVudF9yYW5nZShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwgdTY0IHN0YXJ0 LCB1NjQgZW5kLAorCQkJICAgICAgY29uc3QgYm9vbCByZXR1cm5fZnJlZV9zcGFjZSkKIHsKIAlz dHJ1Y3QgYnRyZnNfZnNfaW5mbyAqZnNfaW5mbyA9IHJvb3QtPmZzX2luZm87CiAJc3RydWN0IGJ0 cmZzX2Jsb2NrX2dyb3VwX2NhY2hlICpjYWNoZSA9IE5VTEw7CkBAIC00NjMxLDcgKzQ2MzIsOCBA QCBzdGF0aWMgaW50IHVucGluX2V4dGVudF9yYW5nZShzdHJ1Y3QgYnRyZnNfcm9vdCAqcm9vdCwg dTY0IHN0YXJ0LCB1NjQgZW5kKQogCiAJCWlmIChzdGFydCA8IGNhY2hlLT5sYXN0X2J5dGVfdG9f dW5waW4pIHsKIAkJCWxlbiA9IG1pbihsZW4sIGNhY2hlLT5sYXN0X2J5dGVfdG9fdW5waW4gLSBz dGFydCk7Ci0JCQlidHJmc19hZGRfZnJlZV9zcGFjZShjYWNoZSwgc3RhcnQsIGxlbik7CisJCQlp ZiAocmV0dXJuX2ZyZWVfc3BhY2UpCisJCQkJYnRyZnNfYWRkX2ZyZWVfc3BhY2UoY2FjaGUsIHN0 YXJ0LCBsZW4pOwogCQl9CiAKIAkJc3RhcnQgKz0gbGVuOwpAQCAtNDY3Niw3ICs0Njc4LDcgQEAg aW50IGJ0cmZzX2ZpbmlzaF9leHRlbnRfY29tbWl0KHN0cnVjdCBidHJmc190cmFuc19oYW5kbGUg KnRyYW5zLAogCQkJCQkJICAgZW5kICsgMSAtIHN0YXJ0LCBOVUxMKTsKIAogCQljbGVhcl9leHRl bnRfZGlydHkodW5waW4sIHN0YXJ0LCBlbmQsIEdGUF9OT0ZTKTsKLQkJdW5waW5fZXh0ZW50X3Jh bmdlKHJvb3QsIHN0YXJ0LCBlbmQpOworCQl1bnBpbl9leHRlbnRfcmFuZ2Uocm9vdCwgc3RhcnQs IGVuZCwgdHJ1ZSk7CiAJCWNvbmRfcmVzY2hlZCgpOwogCX0KIApAQCAtNzY1MCw3ICs3NjUyLDcg QEAgb3V0OgogCiBpbnQgYnRyZnNfZXJyb3JfdW5waW5fZXh0ZW50X3JhbmdlKHN0cnVjdCBidHJm c19yb290ICpyb290LCB1NjQgc3RhcnQsIHU2NCBlbmQpCiB7Ci0JcmV0dXJuIHVucGluX2V4dGVu dF9yYW5nZShyb290LCBzdGFydCwgZW5kKTsKKwlyZXR1cm4gdW5waW5fZXh0ZW50X3JhbmdlKHJv b3QsIHN0YXJ0LCBlbmQsIGZhbHNlKTsKIH0KIAogaW50IGJ0cmZzX2Vycm9yX2Rpc2NhcmRfZXh0 ZW50KHN0cnVjdCBidHJmc19yb290ICpyb290LCB1NjQgYnl0ZW5yLApkaWZmIC0tZ2l0IGEvZnMv Y2VwaC9zbmFwLmMgYi9mcy9jZXBoL3NuYXAuYwppbmRleCBlNTIwNmZjLi5kNWRmOTQwIDEwMDY0 NAotLS0gYS9mcy9jZXBoL3NuYXAuYworKysgYi9mcy9jZXBoL3NuYXAuYwpAQCAtMjg4LDYgKzI4 OCw5IEBAIHN0YXRpYyBpbnQgY21wdTY0X3Jldihjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpi KQogCXJldHVybiAwOwogfQogCisKK3N0YXRpYyBzdHJ1Y3QgY2VwaF9zbmFwX2NvbnRleHQgKmVt cHR5X3NuYXBjOworCiAvKgogICogYnVpbGQgdGhlIHNuYXAgY29udGV4dCBmb3IgYSBnaXZlbiBy ZWFsbS4KICAqLwpAQCAtMzI5LDYgKzMzMiwxMiBAQCBzdGF0aWMgaW50IGJ1aWxkX3NuYXBfY29u dGV4dChzdHJ1Y3QgY2VwaF9zbmFwX3JlYWxtICpyZWFsbSkKIAkJcmV0dXJuIDA7CiAJfQogCisJ aWYgKG51bSA9PSAwICYmIHJlYWxtLT5zZXEgPT0gZW1wdHlfc25hcGMtPnNlcSkgeworCQljZXBo X2dldF9zbmFwX2NvbnRleHQoZW1wdHlfc25hcGMpOworCQlzbmFwYyA9IGVtcHR5X3NuYXBjOwor CQlnb3RvIGRvbmU7CisJfQorCiAJLyogYWxsb2MgbmV3IHNuYXAgY29udGV4dCAqLwogCWVyciA9 IC1FTk9NRU07CiAJaWYgKG51bSA+IChTSVpFX01BWCAtIHNpemVvZigqc25hcGMpKSAvIHNpemVv Zih1NjQpKQpAQCAtMzY0LDYgKzM3Myw3IEBAIHN0YXRpYyBpbnQgYnVpbGRfc25hcF9jb250ZXh0 KHN0cnVjdCBjZXBoX3NuYXBfcmVhbG0gKnJlYWxtKQogCWRvdXQoImJ1aWxkX3NuYXBfY29udGV4 dCAlbGx4ICVwOiAlcCBzZXEgJWxsZCAoJWQgc25hcHMpXG4iLAogCSAgICAgcmVhbG0tPmlubywg cmVhbG0sIHNuYXBjLCBzbmFwYy0+c2VxLCBzbmFwYy0+bnVtX3NuYXBzKTsKIAorZG9uZToKIAlp ZiAocmVhbG0tPmNhY2hlZF9jb250ZXh0KQogCQljZXBoX3B1dF9zbmFwX2NvbnRleHQocmVhbG0t PmNhY2hlZF9jb250ZXh0KTsKIAlyZWFsbS0+Y2FjaGVkX2NvbnRleHQgPSBzbmFwYzsKQEAgLTQ2 NSw2ICs0NzUsOSBAQCB2b2lkIGNlcGhfcXVldWVfY2FwX3NuYXAoc3RydWN0IGNlcGhfaW5vZGVf aW5mbyAqY2kpCiAJCSAgIGNhcF9zbmFwLiAgbHVja3kgdXMuICovCiAJCWRvdXQoInF1ZXVlX2Nh cF9zbmFwICVwIGFscmVhZHkgcGVuZGluZ1xuIiwgaW5vZGUpOwogCQlrZnJlZShjYXBzbmFwKTsK Kwl9IGVsc2UgaWYgKGNpLT5pX3NuYXBfcmVhbG0tPmNhY2hlZF9jb250ZXh0ID09IGVtcHR5X3Nu YXBjKSB7CisJCWRvdXQoInF1ZXVlX2NhcF9zbmFwICVwIGVtcHR5IHNuYXBjXG4iLCBpbm9kZSk7 CisJCWtmcmVlKGNhcHNuYXApOwogCX0gZWxzZSBpZiAoZGlydHkgJiAoQ0VQSF9DQVBfQVVUSF9F WENMfENFUEhfQ0FQX1hBVFRSX0VYQ0x8CiAJCQkgICAgQ0VQSF9DQVBfRklMRV9FWENMfENFUEhf Q0FQX0ZJTEVfV1IpKSB7CiAJCXN0cnVjdCBjZXBoX3NuYXBfY29udGV4dCAqc25hcGMgPSBjaS0+ aV9oZWFkX3NuYXBjOwpAQCAtOTI3LDUgKzk0MCwxNyBAQCBvdXQ6CiAJcmV0dXJuOwogfQogCitp bnQgX19pbml0IGNlcGhfc25hcF9pbml0KHZvaWQpCit7CisJZW1wdHlfc25hcGMgPSBremFsbG9j KHNpemVvZihzdHJ1Y3QgY2VwaF9zbmFwX2NvbnRleHQpLCBHRlBfTk9GUyk7CisJaWYgKCFlbXB0 eV9zbmFwYykKKwkJcmV0dXJuIC1FTk9NRU07CisJYXRvbWljX3NldCgmZW1wdHlfc25hcGMtPm5y ZWYsIDEpOworCWVtcHR5X3NuYXBjLT5zZXEgPSAxOworCXJldHVybiAwOworfQogCi0KK3ZvaWQg Y2VwaF9zbmFwX2V4aXQodm9pZCkKK3sKKwljZXBoX3B1dF9zbmFwX2NvbnRleHQoZW1wdHlfc25h cGMpOworfQpkaWZmIC0tZ2l0IGEvZnMvY2VwaC9zdXBlci5jIGIvZnMvY2VwaC9zdXBlci5jCmlu ZGV4IGRlMjY4YTguLjNjOTgxZGIgMTAwNjQ0Ci0tLSBhL2ZzL2NlcGgvc3VwZXIuYworKysgYi9m cy9jZXBoL3N1cGVyLmMKQEAgLTkxMSwxNCArOTExLDIwIEBAIHN0YXRpYyBpbnQgX19pbml0IGlu aXRfY2VwaCh2b2lkKQogCWlmIChyZXQpCiAJCWdvdG8gb3V0OwogCi0JcmV0ID0gcmVnaXN0ZXJf ZmlsZXN5c3RlbSgmY2VwaF9mc190eXBlKTsKKwlyZXQgPSBjZXBoX3NuYXBfaW5pdCgpOwogCWlm IChyZXQpCiAJCWdvdG8gb3V0X2ljYWNoZTsKIAorCXJldCA9IHJlZ2lzdGVyX2ZpbGVzeXN0ZW0o JmNlcGhfZnNfdHlwZSk7CisJaWYgKHJldCkKKwkJZ290byBvdXRfc25hcDsKKwogCXByX2luZm8o ImxvYWRlZCAobWRzIHByb3RvICVkKVxuIiwgQ0VQSF9NRFNDX1BST1RPQ09MKTsKIAogCXJldHVy biAwOwogCitvdXRfc25hcDoKKwljZXBoX3NuYXBfZXhpdCgpOwogb3V0X2ljYWNoZToKIAlkZXN0 cm95X2NhY2hlcygpOwogb3V0OgpAQCAtOTI5LDYgKzkzNSw3IEBAIHN0YXRpYyB2b2lkIF9fZXhp dCBleGl0X2NlcGgodm9pZCkKIHsKIAlkb3V0KCJleGl0X2NlcGhcbiIpOwogCXVucmVnaXN0ZXJf ZmlsZXN5c3RlbSgmY2VwaF9mc190eXBlKTsKKwljZXBoX3NuYXBfZXhpdCgpOwogCWRlc3Ryb3lf Y2FjaGVzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL2ZzL2NlcGgvc3VwZXIuaCBiL2ZzL2NlcGgvc3Vw ZXIuaAppbmRleCBhMDk3ODE3Li4yNDJkZjU4IDEwMDY0NAotLS0gYS9mcy9jZXBoL3N1cGVyLmgK KysrIGIvZnMvY2VwaC9zdXBlci5oCkBAIC02NzcsNiArNjc3LDggQEAgZXh0ZXJuIHZvaWQgY2Vw aF9xdWV1ZV9jYXBfc25hcChzdHJ1Y3QgY2VwaF9pbm9kZV9pbmZvICpjaSk7CiBleHRlcm4gaW50 IF9fY2VwaF9maW5pc2hfY2FwX3NuYXAoc3RydWN0IGNlcGhfaW5vZGVfaW5mbyAqY2ksCiAJCQkJ ICBzdHJ1Y3QgY2VwaF9jYXBfc25hcCAqY2Fwc25hcCk7CiBleHRlcm4gdm9pZCBjZXBoX2NsZWFu dXBfZW1wdHlfcmVhbG1zKHN0cnVjdCBjZXBoX21kc19jbGllbnQgKm1kc2MpOworZXh0ZXJuIGlu dCBjZXBoX3NuYXBfaW5pdCh2b2lkKTsKK2V4dGVybiB2b2lkIGNlcGhfc25hcF9leGl0KHZvaWQp OwogCiAvKgogICogYSBjYXBfc25hcCBpcyAicGVuZGluZyIgaWYgaXQgaXMgc3RpbGwgYXdhaXRp bmcgYW4gaW4tcHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL2ZzL2RjYWNoZS5jIGIvZnMvZGNhY2hlLmMK aW5kZXggM2Y2NTc0Mi4uOGJjOThhZiAxMDA2NDQKLS0tIGEvZnMvZGNhY2hlLmMKKysrIGIvZnMv ZGNhY2hlLmMKQEAgLTEwMzUsNyArMTAzNSw3IEBAIGFzY2VuZDoKIAlyZXR1cm4gMDsgLyogTm8g bW91bnQgcG9pbnRzIGZvdW5kIGluIHRyZWUgKi8KIHBvc2l0aXZlOgogCWlmICghbG9ja2VkICYm IHJlYWRfc2VxcmV0cnkoJnJlbmFtZV9sb2NrLCBzZXEpKQotCQlnb3RvIHJlbmFtZV9yZXRyeTsK KwkJZ290byByZW5hbWVfcmV0cnlfdW5sb2NrZWQ7CiAJaWYgKGxvY2tlZCkKIAkJd3JpdGVfc2Vx dW5sb2NrKCZyZW5hbWVfbG9jayk7CiAJcmV0dXJuIDE7CkBAIC0xMDQ1LDYgKzEwNDUsNyBAQCBy ZW5hbWVfcmV0cnk6CiAJcmN1X3JlYWRfdW5sb2NrKCk7CiAJaWYgKGxvY2tlZCkKIAkJZ290byBh Z2FpbjsKK3JlbmFtZV9yZXRyeV91bmxvY2tlZDoKIAlsb2NrZWQgPSAxOwogCXdyaXRlX3NlcWxv Y2soJnJlbmFtZV9sb2NrKTsKIAlnb3RvIGFnYWluOwpAQCAtMTEwOSw2ICsxMTEwLDcgQEAgcmVz dW1lOgogCQkgKi8KIAkJaWYgKGZvdW5kICYmIG5lZWRfcmVzY2hlZCgpKSB7CiAJCQlzcGluX3Vu bG9jaygmZGVudHJ5LT5kX2xvY2spOworCQkJcmN1X3JlYWRfbG9jaygpOwogCQkJZ290byBvdXQ7 CiAJCX0KIApkaWZmIC0tZ2l0IGEvZnMvZWNyeXB0ZnMvY3J5cHRvLmMgYi9mcy9lY3J5cHRmcy9j cnlwdG8uYwppbmRleCA2OGIxOWFiLi5kY2VlZGVjIDEwMDY0NAotLS0gYS9mcy9lY3J5cHRmcy9j cnlwdG8uYworKysgYi9mcy9lY3J5cHRmcy9jcnlwdG8uYwpAQCAtMjAzOCw3ICsyMDM4LDYgQEAg ZWNyeXB0ZnNfZGVjb2RlX2Zyb21fZmlsZW5hbWUodW5zaWduZWQgY2hhciAqZHN0LCBzaXplX3Qg KmRzdF9zaXplLAogCQkJYnJlYWs7CiAJCWNhc2UgMjoKIAkJCWRzdFtkc3RfYnl0ZV9vZmZzZXQr K10gfD0gKHNyY19ieXRlKTsKLQkJCWRzdFtkc3RfYnl0ZV9vZmZzZXRdID0gMDsKIAkJCWN1cnJl bnRfYml0X29mZnNldCA9IDA7CiAJCQlicmVhazsKIAkJfQpkaWZmIC0tZ2l0IGEvZnMvZWNyeXB0 ZnMvZmlsZS5jIGIvZnMvZWNyeXB0ZnMvZmlsZS5jCmluZGV4IDg0MWYyNGYuLjgwZmM4NzYgMTAw NjQ0Ci0tLSBhL2ZzL2VjcnlwdGZzL2ZpbGUuYworKysgYi9mcy9lY3J5cHRmcy9maWxlLmMKQEAg LTE5NiwyNCArMTk2LDEyIEBAIHN0YXRpYyBpbnQgZWNyeXB0ZnNfb3BlbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkKIHsKIAlpbnQgcmMgPSAwOwogCXN0cnVjdCBlY3J5 cHRmc19jcnlwdF9zdGF0ICpjcnlwdF9zdGF0ID0gTlVMTDsKLQlzdHJ1Y3QgZWNyeXB0ZnNfbW91 bnRfY3J5cHRfc3RhdCAqbW91bnRfY3J5cHRfc3RhdDsKIAlzdHJ1Y3QgZGVudHJ5ICplY3J5cHRm c19kZW50cnkgPSBmaWxlLT5mX3BhdGguZGVudHJ5OwogCS8qIFByaXZhdGUgdmFsdWUgb2YgZWNy eXB0ZnNfZGVudHJ5IGFsbG9jYXRlZCBpbgogCSAqIGVjcnlwdGZzX2xvb2t1cCgpICovCiAJc3Ry dWN0IGRlbnRyeSAqbG93ZXJfZGVudHJ5OwogCXN0cnVjdCBlY3J5cHRmc19maWxlX2luZm8gKmZp bGVfaW5mbzsKIAotCW1vdW50X2NyeXB0X3N0YXQgPSAmZWNyeXB0ZnNfc3VwZXJibG9ja190b19w cml2YXRlKAotCQllY3J5cHRmc19kZW50cnktPmRfc2IpLT5tb3VudF9jcnlwdF9zdGF0OwotCWlm ICgobW91bnRfY3J5cHRfc3RhdC0+ZmxhZ3MgJiBFQ1JZUFRGU19FTkNSWVBURURfVklFV19FTkFC TEVEKQotCSAgICAmJiAoKGZpbGUtPmZfZmxhZ3MgJiBPX1dST05MWSkgfHwgKGZpbGUtPmZfZmxh Z3MgJiBPX1JEV1IpCi0JCXx8IChmaWxlLT5mX2ZsYWdzICYgT19DUkVBVCkgfHwgKGZpbGUtPmZf ZmxhZ3MgJiBPX1RSVU5DKQotCQl8fCAoZmlsZS0+Zl9mbGFncyAmIE9fQVBQRU5EKSkpIHsKLQkJ cHJpbnRrKEtFUk5fV0FSTklORyAiTW91bnQgaGFzIGVuY3J5cHRlZCB2aWV3IGVuYWJsZWQ7ICIK LQkJICAgICAgICJmaWxlcyBtYXkgb25seSBiZSByZWFkXG4iKTsKLQkJcmMgPSAtRVBFUk07Ci0J CWdvdG8gb3V0OwotCX0KIAkvKiBSZWxlYXNlZCBpbiBlY3J5cHRmc19yZWxlYXNlIG9yIGVuZCBv ZiBmdW5jdGlvbiBpZiBmYWlsdXJlICovCiAJZmlsZV9pbmZvID0ga21lbV9jYWNoZV96YWxsb2Mo ZWNyeXB0ZnNfZmlsZV9pbmZvX2NhY2hlLCBHRlBfS0VSTkVMKTsKIAllY3J5cHRmc19zZXRfZmls ZV9wcml2YXRlKGZpbGUsIGZpbGVfaW5mbyk7CmRpZmYgLS1naXQgYS9mcy9lY3J5cHRmcy9tYWlu LmMgYi9mcy9lY3J5cHRmcy9tYWluLmMKaW5kZXggOTRhZmRmZC4uNjJiOGRkYyAxMDA2NDQKLS0t IGEvZnMvZWNyeXB0ZnMvbWFpbi5jCisrKyBiL2ZzL2VjcnlwdGZzL21haW4uYwpAQCAtNDk0LDYg KzQ5NCw3IEBAIHN0YXRpYyBzdHJ1Y3QgZGVudHJ5ICplY3J5cHRmc19tb3VudChzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSAqZnNfdHlwZSwgaW50IGZsYWdzCiB7CiAJc3RydWN0IHN1cGVyX2Jsb2Nr ICpzOwogCXN0cnVjdCBlY3J5cHRmc19zYl9pbmZvICpzYmk7CisJc3RydWN0IGVjcnlwdGZzX21v dW50X2NyeXB0X3N0YXQgKm1vdW50X2NyeXB0X3N0YXQ7CiAJc3RydWN0IGVjcnlwdGZzX2RlbnRy eV9pbmZvICpyb290X2luZm87CiAJY29uc3QgY2hhciAqZXJyID0gIkdldHRpbmcgc2IgZmFpbGVk IjsKIAlzdHJ1Y3QgaW5vZGUgKmlub2RlOwpAQCAtNTEyLDYgKzUxMyw3IEBAIHN0YXRpYyBzdHJ1 Y3QgZGVudHJ5ICplY3J5cHRmc19tb3VudChzdHJ1Y3QgZmlsZV9zeXN0ZW1fdHlwZSAqZnNfdHlw ZSwgaW50IGZsYWdzCiAJCWVyciA9ICJFcnJvciBwYXJzaW5nIG9wdGlvbnMiOwogCQlnb3RvIG91 dDsKIAl9CisJbW91bnRfY3J5cHRfc3RhdCA9ICZzYmktPm1vdW50X2NyeXB0X3N0YXQ7CiAKIAlz ID0gc2dldChmc190eXBlLCBOVUxMLCBzZXRfYW5vbl9zdXBlciwgTlVMTCk7CiAJaWYgKElTX0VS UihzKSkgewpAQCAtNTU3LDExICs1NTksMTkgQEAgc3RhdGljIHN0cnVjdCBkZW50cnkgKmVjcnlw dGZzX21vdW50KHN0cnVjdCBmaWxlX3N5c3RlbV90eXBlICpmc190eXBlLCBpbnQgZmxhZ3MKIAog CS8qKgogCSAqIFNldCB0aGUgUE9TSVggQUNMIGZsYWcgYmFzZWQgb24gd2hldGhlciB0aGV5J3Jl IGVuYWJsZWQgaW4gdGhlIGxvd2VyCi0JICogbW91bnQuIEZvcmNlIGEgcmVhZC1vbmx5IGVDcnlw dGZzIG1vdW50IGlmIHRoZSBsb3dlciBtb3VudCBpcyByby4KLQkgKiBBbGxvdyBhIHJvIGVDcnlw dGZzIG1vdW50IGV2ZW4gd2hlbiB0aGUgbG93ZXIgbW91bnQgaXMgcncuCisJICogbW91bnQuCiAJ ICovCiAJcy0+c19mbGFncyA9IGZsYWdzICYgfk1TX1BPU0lYQUNMOwotCXMtPnNfZmxhZ3MgfD0g cGF0aC5kZW50cnktPmRfc2ItPnNfZmxhZ3MgJiAoTVNfUkRPTkxZIHwgTVNfUE9TSVhBQ0wpOwor CXMtPnNfZmxhZ3MgfD0gcGF0aC5kZW50cnktPmRfc2ItPnNfZmxhZ3MgJiBNU19QT1NJWEFDTDsK KworCS8qKgorCSAqIEZvcmNlIGEgcmVhZC1vbmx5IGVDcnlwdGZzIG1vdW50IHdoZW46CisJICog ICAxKSBUaGUgbG93ZXIgbW91bnQgaXMgcm8KKwkgKiAgIDIpIFRoZSBlY3J5cHRmc19lbmNyeXB0 ZWRfdmlldyBtb3VudCBvcHRpb24gaXMgc3BlY2lmaWVkCisJICovCisJaWYgKHBhdGguZGVudHJ5 LT5kX3NiLT5zX2ZsYWdzICYgTVNfUkRPTkxZIHx8CisJICAgIG1vdW50X2NyeXB0X3N0YXQtPmZs YWdzICYgRUNSWVBURlNfRU5DUllQVEVEX1ZJRVdfRU5BQkxFRCkKKwkJcy0+c19mbGFncyB8PSBN U19SRE9OTFk7CiAKIAlzLT5zX21heGJ5dGVzID0gcGF0aC5kZW50cnktPmRfc2ItPnNfbWF4Ynl0 ZXM7CiAJcy0+c19ibG9ja3NpemUgPSBwYXRoLmRlbnRyeS0+ZF9zYi0+c19ibG9ja3NpemU7CmRp ZmYgLS1naXQgYS9mcy9mcy13cml0ZWJhY2suYyBiL2ZzL2ZzLXdyaXRlYmFjay5jCmluZGV4IDEz YmZhMDcuLjcyODZlYjQgMTAwNjQ0Ci0tLSBhL2ZzL2ZzLXdyaXRlYmFjay5jCisrKyBiL2ZzL2Zz LXdyaXRlYmFjay5jCkBAIC0zOTYsNyArMzk2LDYgQEAgd3JpdGViYWNrX3NpbmdsZV9pbm9kZShz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYmRpX3dyaXRlYmFjayAqd2IsCiAKIAkvKiBTZXQg SV9TWU5DLCByZXNldCBJX0RJUlRZX1BBR0VTICovCiAJaW5vZGUtPmlfc3RhdGUgfD0gSV9TWU5D OwotCWlub2RlLT5pX3N0YXRlICY9IH5JX0RJUlRZX1BBR0VTOwogCXNwaW5fdW5sb2NrKCZpbm9k ZS0+aV9sb2NrKTsKIAlzcGluX3VubG9jaygmd2ItPmxpc3RfbG9jayk7CiAKQEAgLTQxOSw5ICs0 MTgsMjggQEAgd3JpdGViYWNrX3NpbmdsZV9pbm9kZShzdHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1 Y3QgYmRpX3dyaXRlYmFjayAqd2IsCiAJICogd3JpdGVfaW5vZGUoKQogCSAqLwogCXNwaW5fbG9j aygmaW5vZGUtPmlfbG9jayk7CisKIAlkaXJ0eSA9IGlub2RlLT5pX3N0YXRlICYgSV9ESVJUWTsK LQlpbm9kZS0+aV9zdGF0ZSAmPSB+KElfRElSVFlfU1lOQyB8IElfRElSVFlfREFUQVNZTkMpOwor CWlub2RlLT5pX3N0YXRlICY9IH5JX0RJUlRZOworCisJLyoKKwkgKiBQYWlyZWQgd2l0aCBzbXBf bWIoKSBpbiBfX21hcmtfaW5vZGVfZGlydHkoKS4gIFRoaXMgYWxsb3dzCisJICogX19tYXJrX2lu b2RlX2RpcnR5KCkgdG8gdGVzdCBpX3N0YXRlIHdpdGhvdXQgZ3JhYmJpbmcgaV9sb2NrIC0KKwkg KiBlaXRoZXIgdGhleSBzZWUgdGhlIElfRElSVFkgYml0cyBjbGVhcmVkIG9yIHdlIHNlZSB0aGUg ZGlydGllZAorCSAqIGlub2RlLgorCSAqCisJICogSV9ESVJUWV9QQUdFUyBpcyBhbHdheXMgY2xl YXJlZCB0b2dldGhlciBhYm92ZSBldmVuIGlmIEBtYXBwaW5nCisJICogc3RpbGwgaGFzIGRpcnR5 IHBhZ2VzLiAgVGhlIGZsYWcgaXMgcmVpbnN0YXRlZCBhZnRlciBzbXBfbWIoKSBpZgorCSAqIG5l Y2Vzc2FyeS4gIFRoaXMgZ3VhcmFudGVlcyB0aGF0IGVpdGhlciBfX21hcmtfaW5vZGVfZGlydHko KQorCSAqIHNlZXMgY2xlYXIgSV9ESVJUWV9QQUdFUyBvciB3ZSBzZWUgUEFHRUNBQ0hFX1RBR19E SVJUWS4KKwkgKi8KKwlzbXBfbWIoKTsKKworCWlmIChtYXBwaW5nX3RhZ2dlZChtYXBwaW5nLCBQ QUdFQ0FDSEVfVEFHX0RJUlRZKSkKKwkJaW5vZGUtPmlfc3RhdGUgfD0gSV9ESVJUWV9QQUdFUzsK KwogCXNwaW5fdW5sb2NrKCZpbm9kZS0+aV9sb2NrKTsKKwogCS8qIERvbid0IHdyaXRlIHRoZSBp bm9kZSBpZiBvbmx5IElfRElSVFlfUEFHRVMgd2FzIHNldCAqLwogCWlmIChkaXJ0eSAmIChJX0RJ UlRZX1NZTkMgfCBJX0RJUlRZX0RBVEFTWU5DKSkgewogCQlpbnQgZXJyID0gd3JpdGVfaW5vZGUo aW5vZGUsIHdiYyk7CkBAIC00NDcsNyArNDY1LDYgQEAgd3JpdGViYWNrX3NpbmdsZV9pbm9kZShz dHJ1Y3QgaW5vZGUgKmlub2RlLCBzdHJ1Y3QgYmRpX3dyaXRlYmFjayAqd2IsCiAJCQkgKiBXZSBk aWRuJ3Qgd3JpdGUgYmFjayBhbGwgdGhlIHBhZ2VzLiAgbmZzX3dyaXRlcGFnZXMoKQogCQkJICog c29tZXRpbWVzIGJhbGVzIG91dCB3aXRob3V0IGRvaW5nIGFueXRoaW5nLgogCQkJICovCi0JCQlp bm9kZS0+aV9zdGF0ZSB8PSBJX0RJUlRZX1BBR0VTOwogCQkJaWYgKHdiYy0+bnJfdG9fd3JpdGUg PD0gMCkgewogCQkJCS8qCiAJCQkJICogc2xpY2UgdXNlZCB1cDogcXVldWUgZm9yIG5leHQgdHVy bgpAQCAtMTA2NCwxMiArMTA4MSwxMSBAQCB2b2lkIF9fbWFya19pbm9kZV9kaXJ0eShzdHJ1Y3Qg aW5vZGUgKmlub2RlLCBpbnQgZmxhZ3MpCiAJfQogCiAJLyoKLQkgKiBtYWtlIHN1cmUgdGhhdCBj aGFuZ2VzIGFyZSBzZWVuIGJ5IGFsbCBjcHVzIGJlZm9yZSB3ZSB0ZXN0IGlfc3RhdGUKLQkgKiAt LSBtaWt1bGFzCisJICogUGFpcmVkIHdpdGggc21wX21iKCkgaW4gX193cml0ZWJhY2tfc2luZ2xl X2lub2RlKCkgZm9yIHRoZQorCSAqIGZvbGxvd2luZyBsb2NrbGVzcyBpX3N0YXRlIHRlc3QuICBT ZWUgdGhlcmUgZm9yIGRldGFpbHMuCiAJICovCiAJc21wX21iKCk7CiAKLQkvKiBhdm9pZCB0aGUg bG9ja2luZyBpZiB3ZSBjYW4gKi8KIAlpZiAoKGlub2RlLT5pX3N0YXRlICYgZmxhZ3MpID09IGZs YWdzKQogCQlyZXR1cm47CiAKZGlmZiAtLWdpdCBhL2ZzL2lzb2ZzL3JvY2suYyBiL2ZzL2lzb2Zz L3JvY2suYwppbmRleCBlZTYyY2MwLi4xNzgwOTQ5IDEwMDY0NAotLS0gYS9mcy9pc29mcy9yb2Nr LmMKKysrIGIvZnMvaXNvZnMvcm9jay5jCkBAIC0zMCw2ICszMCw3IEBAIHN0cnVjdCByb2NrX3N0 YXRlIHsKIAlpbnQgY29udF9zaXplOwogCWludCBjb250X2V4dGVudDsKIAlpbnQgY29udF9vZmZz ZXQ7CisJaW50IGNvbnRfbG9vcHM7CiAJc3RydWN0IGlub2RlICppbm9kZTsKIH07CiAKQEAgLTcz LDYgKzc0LDkgQEAgc3RhdGljIHZvaWQgaW5pdF9yb2NrX3N0YXRlKHN0cnVjdCByb2NrX3N0YXRl ICpycywgc3RydWN0IGlub2RlICppbm9kZSkKIAlycy0+aW5vZGUgPSBpbm9kZTsKIH0KIAorLyog TWF4aW11bSBudW1iZXIgb2YgUm9jayBSaWRnZSBjb250aW51YXRpb24gZW50cmllcyAqLworI2Rl ZmluZSBSUl9NQVhfQ0VfRU5UUklFUyAzMgorCiAvKgogICogUmV0dXJucyAwIGlmIHRoZSBjYWxs ZXIgc2hvdWxkIGNvbnRpbnVlIHNjYW5uaW5nLCAxIGlmIHRoZSBzY2FuIG11c3QgZW5kCiAgKiBh bmQgLXZlIG9uIGVycm9yLgpAQCAtMTA1LDYgKzEwOSw4IEBAIHN0YXRpYyBpbnQgcm9ja19jb250 aW51ZShzdHJ1Y3Qgcm9ja19zdGF0ZSAqcnMpCiAJCQlnb3RvIG91dDsKIAkJfQogCQlyZXQgPSAt RUlPOworCQlpZiAoKytycy0+Y29udF9sb29wcyA+PSBSUl9NQVhfQ0VfRU5UUklFUykKKwkJCWdv dG8gb3V0OwogCQliaCA9IHNiX2JyZWFkKHJzLT5pbm9kZS0+aV9zYiwgcnMtPmNvbnRfZXh0ZW50 KTsKIAkJaWYgKGJoKSB7CiAJCQltZW1jcHkocnMtPmJ1ZmZlciwgYmgtPmJfZGF0YSArIHJzLT5j b250X29mZnNldCwKQEAgLTM1Niw2ICszNjIsOSBAQCByZXBlYXQ6CiAJCQlycy5jb250X3NpemUg PSBpc29udW1fNzMzKHJyLT51LkNFLnNpemUpOwogCQkJYnJlYWs7CiAJCWNhc2UgU0lHKCdFJywg J1InKToKKwkJCS8qIEludmFsaWQgbGVuZ3RoIG9mIEVSIHRhZyBpZD8gKi8KKwkJCWlmIChyci0+ dS5FUi5sZW5faWQgKyBvZmZzZXRvZihzdHJ1Y3Qgcm9ja19yaWRnZSwgdS5FUi5kYXRhKSA+IHJy LT5sZW4pCisJCQkJZ290byBvdXQ7CiAJCQlJU09GU19TQihpbm9kZS0+aV9zYiktPnNfcm9jayA9 IDE7CiAJCQlwcmludGsoS0VSTl9ERUJVRyAiSVNPIDk2NjAgRXh0ZW5zaW9uczogIik7CiAJCQl7 CmRpZmYgLS1naXQgYS9mcy9uYW1laS5jIGIvZnMvbmFtZWkuYwppbmRleCBkZWEyZGFiLi5jOGIx M2E5IDEwMDY0NAotLS0gYS9mcy9uYW1laS5jCisrKyBiL2ZzL25hbWVpLmMKQEAgLTE1NjcsNiAr MTU2Nyw3IEBAIHN0YXRpYyBpbnQgcGF0aF9pbml0KGludCBkZmQsIGNvbnN0IGNoYXIgKm5hbWUs IHVuc2lnbmVkIGludCBmbGFncywKIAlpZiAoIShuZC0+ZmxhZ3MgJiBMT09LVVBfUk9PVCkpCiAJ CW5kLT5yb290Lm1udCA9IE5VTEw7CiAJcmN1X3JlYWRfdW5sb2NrKCk7CisJYnJfcmVhZF91bmxv Y2sodmZzbW91bnRfbG9jayk7CiAJcmV0dXJuIC1FQ0hJTEQ7CiAKIGZwdXRfZmFpbDoKZGlmZiAt LWdpdCBhL2ZzL25jcGZzL2lvY3RsLmMgYi9mcy9uY3Bmcy9pb2N0bC5jCmluZGV4IDc5MGU5MmEu LmVhNmY3MDYgMTAwNjQ0Ci0tLSBhL2ZzL25jcGZzL2lvY3RsLmMKKysrIGIvZnMvbmNwZnMvaW9j dGwuYwpAQCAtNDQ1LDcgKzQ0NSw2IEBAIHN0YXRpYyBsb25nIF9fbmNwX2lvY3RsKHN0cnVjdCBp bm9kZSAqaW5vZGUsIHVuc2lnbmVkIGludCBjbWQsIHVuc2lnbmVkIGxvbmcgYXJnCiAJCQkJCQly ZXN1bHQgPSAtRUlPOwogCQkJCQl9CiAJCQkJfQotCQkJCXJlc3VsdCA9IDA7CiAJCQl9CiAJCQlt dXRleF91bmxvY2soJnNlcnZlci0+cm9vdF9zZXR1cF9sb2NrKTsKIApkaWZmIC0tZ2l0IGEvZnMv bm90aWZ5L2lub2RlX21hcmsuYyBiL2ZzL25vdGlmeS9pbm9kZV9tYXJrLmMKaW5kZXggYjEzYzAw YS4uZGY2ZGFjYyAxMDA2NDQKLS0tIGEvZnMvbm90aWZ5L2lub2RlX21hcmsuYworKysgYi9mcy9u b3RpZnkvaW5vZGVfbWFyay5jCkBAIC0yODIsMjAgKzI4MiwyNSBAQCB2b2lkIGZzbm90aWZ5X3Vu bW91bnRfaW5vZGVzKHN0cnVjdCBsaXN0X2hlYWQgKmxpc3QpCiAJCXNwaW5fdW5sb2NrKCZpbm9k ZS0+aV9sb2NrKTsKIAogCQkvKiBJbiBjYXNlIHRoZSBkcm9wcGluZyBvZiBhIHJlZmVyZW5jZSB3 b3VsZCBudWtlIG5leHRfaS4gKi8KLQkJaWYgKCgmbmV4dF9pLT5pX3NiX2xpc3QgIT0gbGlzdCkg JiYKLQkJICAgIGF0b21pY19yZWFkKCZuZXh0X2ktPmlfY291bnQpKSB7CisJCXdoaWxlICgmbmV4 dF9pLT5pX3NiX2xpc3QgIT0gbGlzdCkgewogCQkJc3Bpbl9sb2NrKCZuZXh0X2ktPmlfbG9jayk7 Ci0JCQlpZiAoIShuZXh0X2ktPmlfc3RhdGUgJiAoSV9GUkVFSU5HIHwgSV9XSUxMX0ZSRUUpKSkg eworCQkJaWYgKCEobmV4dF9pLT5pX3N0YXRlICYgKElfRlJFRUlORyB8IElfV0lMTF9GUkVFKSkg JiYKKwkJCQkJCWF0b21pY19yZWFkKCZuZXh0X2ktPmlfY291bnQpKSB7CiAJCQkJX19pZ2V0KG5l eHRfaSk7CiAJCQkJbmVlZF9pcHV0ID0gbmV4dF9pOworCQkJCXNwaW5fdW5sb2NrKCZuZXh0X2kt PmlfbG9jayk7CisJCQkJYnJlYWs7CiAJCQl9CiAJCQlzcGluX3VubG9jaygmbmV4dF9pLT5pX2xv Y2spOworCQkJbmV4dF9pID0gbGlzdF9lbnRyeShuZXh0X2ktPmlfc2JfbGlzdC5uZXh0LAorCQkJ CQkJc3RydWN0IGlub2RlLCBpX3NiX2xpc3QpOwogCQl9CiAKIAkJLyoKLQkJICogV2UgY2FuIHNh ZmVseSBkcm9wIGlub2RlX3NiX2xpc3RfbG9jayBoZXJlIGJlY2F1c2Ugd2UgaG9sZAotCQkgKiBy ZWZlcmVuY2VzIG9uIGJvdGggaW5vZGUgYW5kIG5leHRfaS4gIEFsc28gbm8gbmV3IGlub2Rlcwot CQkgKiB3aWxsIGJlIGFkZGVkIHNpbmNlIHRoZSB1bW91bnQgaGFzIGJlZ3VuLgorCQkgKiBXZSBj YW4gc2FmZWx5IGRyb3AgaW5vZGVfc2JfbGlzdF9sb2NrIGhlcmUgYmVjYXVzZSBlaXRoZXIKKwkJ ICogd2UgYWN0dWFsbHkgaG9sZCByZWZlcmVuY2VzIG9uIGJvdGggaW5vZGUgYW5kIG5leHRfaSBv cgorCQkgKiBlbmQgb2YgbGlzdC4gIEFsc28gbm8gbmV3IGlub2RlcyB3aWxsIGJlIGFkZGVkIHNp bmNlIHRoZQorCQkgKiB1bW91bnQgaGFzIGJlZ3VuLgogCQkgKi8KIAkJc3Bpbl91bmxvY2soJmlu b2RlX3NiX2xpc3RfbG9jayk7CiAKZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2FvcHMuYyBiL2ZzL29j ZnMyL2FvcHMuYwppbmRleCA0NDAyYjE4Li4xNjY1M2IyIDEwMDY0NAotLS0gYS9mcy9vY2ZzMi9h b3BzLmMKKysrIGIvZnMvb2NmczIvYW9wcy5jCkBAIC05MTcsNyArOTE3LDcgQEAgdm9pZCBvY2Zz Ml91bmxvY2tfYW5kX2ZyZWVfcGFnZXMoc3RydWN0IHBhZ2UgKipwYWdlcywgaW50IG51bV9wYWdl cykKIAl9CiB9CiAKLXN0YXRpYyB2b2lkIG9jZnMyX2ZyZWVfd3JpdGVfY3R4dChzdHJ1Y3Qgb2Nm czJfd3JpdGVfY3R4dCAqd2MpCitzdGF0aWMgdm9pZCBvY2ZzMl91bmxvY2tfcGFnZXMoc3RydWN0 IG9jZnMyX3dyaXRlX2N0eHQgKndjKQogewogCWludCBpOwogCkBAIC05MzgsNyArOTM4LDExIEBA IHN0YXRpYyB2b2lkIG9jZnMyX2ZyZWVfd3JpdGVfY3R4dChzdHJ1Y3Qgb2NmczJfd3JpdGVfY3R4 dCAqd2MpCiAJCXBhZ2VfY2FjaGVfcmVsZWFzZSh3Yy0+d190YXJnZXRfcGFnZSk7CiAJfQogCW9j ZnMyX3VubG9ja19hbmRfZnJlZV9wYWdlcyh3Yy0+d19wYWdlcywgd2MtPndfbnVtX3BhZ2VzKTsK K30KIAorc3RhdGljIHZvaWQgb2NmczJfZnJlZV93cml0ZV9jdHh0KHN0cnVjdCBvY2ZzMl93cml0 ZV9jdHh0ICp3YykKK3sKKwlvY2ZzMl91bmxvY2tfcGFnZXMod2MpOwogCWJyZWxzZSh3Yy0+d19k aV9iaCk7CiAJa2ZyZWUod2MpOwogfQpAQCAtMjA1OSwxMSArMjA2MywxOSBAQCBvdXRfd3JpdGVf c2l6ZToKIAlkaS0+aV9tdGltZV9uc2VjID0gZGktPmlfY3RpbWVfbnNlYyA9IGNwdV90b19sZTMy KGlub2RlLT5pX210aW1lLnR2X25zZWMpOwogCW9jZnMyX2pvdXJuYWxfZGlydHkoaGFuZGxlLCB3 Yy0+d19kaV9iaCk7CiAKKwkvKiB1bmxvY2sgcGFnZXMgYmVmb3JlIGRlYWxsb2Mgc2luY2UgaXQg bmVlZHMgYWNxdWlyaW5nIGpfdHJhbnNfYmFycmllcgorCSAqIGxvY2ssIG9yIGl0IHdpbGwgY2F1 c2UgYSBkZWFkbG9jayBzaW5jZSBqb3VybmFsIGNvbW1pdCB0aHJlYWRzIGhvbGRzCisJICogdGhp cyBsb2NrIGFuZCB3aWxsIGFzayBmb3IgdGhlIHBhZ2UgbG9jayB3aGVuIGZsdXNoaW5nIHRoZSBk YXRhLgorCSAqIHB1dCBpdCBoZXJlIHRvIHByZXNlcnZlIHRoZSB1bmxvY2sgb3JkZXIuCisJICov CisJb2NmczJfdW5sb2NrX3BhZ2VzKHdjKTsKKwogCW9jZnMyX2NvbW1pdF90cmFucyhvc2IsIGhh bmRsZSk7CiAKIAlvY2ZzMl9ydW5fZGVhbGxvY3Mob3NiLCAmd2MtPndfZGVhbGxvYyk7CiAKLQlv Y2ZzMl9mcmVlX3dyaXRlX2N0eHQod2MpOworCWJyZWxzZSh3Yy0+d19kaV9iaCk7CisJa2ZyZWUo d2MpOwogCiAJcmV0dXJuIGNvcGllZDsKIH0KZGlmZiAtLWdpdCBhL2ZzL29jZnMyL2ZpbGUuYyBi L2ZzL29jZnMyL2ZpbGUuYwppbmRleCBkMjBkNjRjLi4wZGUyNGEyIDEwMDY0NAotLS0gYS9mcy9v Y2ZzMi9maWxlLmMKKysrIGIvZnMvb2NmczIvZmlsZS5jCkBAIC0yNDY4LDkgKzI0NjgsNyBAQCBz dGF0aWMgc3NpemVfdCBvY2ZzMl9maWxlX3NwbGljZV93cml0ZShzdHJ1Y3QgcGlwZV9pbm9kZV9p bmZvICpwaXBlLAogCXN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nID0gb3V0LT5mX21hcHBp bmc7CiAJc3RydWN0IGlub2RlICppbm9kZSA9IG1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IHNwbGlj ZV9kZXNjIHNkID0gewotCQkudG90YWxfbGVuID0gbGVuLAogCQkuZmxhZ3MgPSBmbGFncywKLQkJ LnBvcyA9ICpwcG9zLAogCQkudS5maWxlID0gb3V0LAogCX07CiAKQEAgLTI0ODAsNiArMjQ3OCwx MiBAQCBzdGF0aWMgc3NpemVfdCBvY2ZzMl9maWxlX3NwbGljZV93cml0ZShzdHJ1Y3QgcGlwZV9p bm9kZV9pbmZvICpwaXBlLAogCQkJb3V0LT5mX3BhdGguZGVudHJ5LT5kX25hbWUubGVuLAogCQkJ b3V0LT5mX3BhdGguZGVudHJ5LT5kX25hbWUubmFtZSwgbGVuKTsKIAorCXJldCA9IGdlbmVyaWNf d3JpdGVfY2hlY2tzKG91dCwgcHBvcywgJmxlbiwgMCk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKwlzZC50b3RhbF9sZW4gPSBsZW47CisJc2QucG9zID0gKnBwb3M7CisKIAlpZiAocGlwZS0+ aW5vZGUpCiAJCW11dGV4X2xvY2tfbmVzdGVkKCZwaXBlLT5pbm9kZS0+aV9tdXRleCwgSV9NVVRF WF9QQVJFTlQpOwogCmRpZmYgLS1naXQgYS9mcy9wcm9jL3N0YXQuYyBiL2ZzL3Byb2Mvc3RhdC5j CmluZGV4IDRjOWE4NTkuLjgxYTQ4ZDEgMTAwNjQ0Ci0tLSBhL2ZzL3Byb2Mvc3RhdC5jCisrKyBi L2ZzL3Byb2Mvc3RhdC5jCkBAIC0xNDEsNyArMTQxLDcgQEAgc3RhdGljIGludCBzaG93X3N0YXQo c3RydWN0IHNlcV9maWxlICpwLCB2b2lkICp2KQogCiAJLyogc3VtIGFnYWluID8gaXQgY291bGQg YmUgdXBkYXRlZD8gKi8KIAlmb3JfZWFjaF9pcnFfbnIoaikKLQkJc2VxX3ByaW50ZihwLCAiICV1 Iiwga3N0YXRfaXJxcyhqKSk7CisJCXNlcV9wcmludGYocCwgIiAldSIsIGtzdGF0X2lycXNfdXNy KGopKTsKIAogCXNlcV9wcmludGYocCwKIAkJIlxuY3R4dCAlbGx1XG4iCmRpZmYgLS1naXQgYS9m cy9zcGxpY2UuYyBiL2ZzL3NwbGljZS5jCmluZGV4IDcxNDQ3MWQuLjM0YzJiMmIgMTAwNjQ0Ci0t LSBhL2ZzL3NwbGljZS5jCisrKyBiL2ZzL3NwbGljZS5jCkBAIC0xMDEzLDEzICsxMDEzLDE3IEBA IGdlbmVyaWNfZmlsZV9zcGxpY2Vfd3JpdGUoc3RydWN0IHBpcGVfaW5vZGVfaW5mbyAqcGlwZSwg c3RydWN0IGZpbGUgKm91dCwKIAlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IG91dC0+ Zl9tYXBwaW5nOwogCXN0cnVjdCBpbm9kZSAqaW5vZGUgPSBtYXBwaW5nLT5ob3N0OwogCXN0cnVj dCBzcGxpY2VfZGVzYyBzZCA9IHsKLQkJLnRvdGFsX2xlbiA9IGxlbiwKIAkJLmZsYWdzID0gZmxh Z3MsCi0JCS5wb3MgPSAqcHBvcywKIAkJLnUuZmlsZSA9IG91dCwKIAl9OwogCXNzaXplX3QgcmV0 OwogCisJcmV0ID0gZ2VuZXJpY193cml0ZV9jaGVja3Mob3V0LCBwcG9zLCAmbGVuLCBTX0lTQkxL KGlub2RlLT5pX21vZGUpKTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCXNkLnRvdGFsX2xl biA9IGxlbjsKKwlzZC5wb3MgPSAqcHBvczsKKwogCXBpcGVfbG9jayhwaXBlKTsKIAogCXNwbGlj ZV9mcm9tX3BpcGVfYmVnaW4oJnNkKTsKZGlmZiAtLWdpdCBhL2ZzL3VkZi9kaXIuYyBiL2ZzL3Vk Zi9kaXIuYwppbmRleCBlYjhiZmUyLi41NjM0MWFmIDEwMDY0NAotLS0gYS9mcy91ZGYvZGlyLmMK KysrIGIvZnMvdWRmL2Rpci5jCkBAIC0xNjMsNyArMTYzLDggQEAgc3RhdGljIGludCBkb191ZGZf cmVhZGRpcihzdHJ1Y3QgaW5vZGUgKmRpciwgc3RydWN0IGZpbGUgKmZpbHAsCiAJCQlzdHJ1Y3Qg a2VybmVsX2xiX2FkZHIgdGxvYyA9IGxlbGJfdG9fY3B1KGNmaS5pY2IuZXh0TG9jYXRpb24pOwog CiAJCQlpYmxvY2sgPSB1ZGZfZ2V0X2xiX3BibG9jayhkaXItPmlfc2IsICZ0bG9jLCAwKTsKLQkJ CWZsZW4gPSB1ZGZfZ2V0X2ZpbGVuYW1lKGRpci0+aV9zYiwgbmFtZXB0ciwgZm5hbWUsIGxmaSk7 CisJCQlmbGVuID0gdWRmX2dldF9maWxlbmFtZShkaXItPmlfc2IsIG5hbWVwdHIsIGxmaSwgZm5h bWUsCisJCQkJCQlVREZfTkFNRV9MRU4pOwogCQkJZHRfdHlwZSA9IERUX1VOS05PV047CiAJCX0K IApkaWZmIC0tZ2l0IGEvZnMvdWRmL2lub2RlLmMgYi9mcy91ZGYvaW5vZGUuYwppbmRleCBhMGY2 ZGVkLi4yYTcwNmJiIDEwMDY0NAotLS0gYS9mcy91ZGYvaW5vZGUuYworKysgYi9mcy91ZGYvaW5v ZGUuYwpAQCAtMTQwMyw2ICsxNDAzLDI0IEBAIHN0YXRpYyB2b2lkIHVkZl9maWxsX2lub2RlKHN0 cnVjdCBpbm9kZSAqaW5vZGUsIHN0cnVjdCBidWZmZXJfaGVhZCAqYmgpCiAJCQkJCQkJaWluZm8t PmlfbGVuRUF0dHI7CiAJfQogCisJLyogU2FuaXR5IGNoZWNrcyBmb3IgZmlsZXMgaW4gSUNCIHNv IHRoYXQgd2UgZG9uJ3QgZ2V0IGNvbmZ1c2VkIGxhdGVyICovCisJaWYgKGlpbmZvLT5pX2FsbG9j X3R5cGUgPT0gSUNCVEFHX0ZMQUdfQURfSU5fSUNCKSB7CisJCS8qCisJCSAqIEZvciBmaWxlIGlu IElDQiBkYXRhIGlzIHN0b3JlZCBpbiBhbGxvY2F0aW9uIGRlc2NyaXB0b3IKKwkJICogc28gc2l6 ZXMgc2hvdWxkIG1hdGNoCisJCSAqLworCQlpZiAoaWluZm8tPmlfbGVuQWxsb2MgIT0gaW5vZGUt Pmlfc2l6ZSkgeworCQkJbWFrZV9iYWRfaW5vZGUoaW5vZGUpOworCQkJcmV0dXJuOworCQl9CisJ CS8qIEZpbGUgaW4gSUNCIGhhcyB0byBmaXQgaW4gdGhlcmUuLi4gKi8KKwkJaWYgKGlub2RlLT5p X3NpemUgPiBpbm9kZS0+aV9zYi0+c19ibG9ja3NpemUgLQorCQkJCQl1ZGZfZmlsZV9lbnRyeV9h bGxvY19vZmZzZXQoaW5vZGUpKSB7CisJCQltYWtlX2JhZF9pbm9kZShpbm9kZSk7CisJCQlyZXR1 cm47CisJCX0KKwl9CisKIAlzd2l0Y2ggKGZlLT5pY2JUYWcuZmlsZVR5cGUpIHsKIAljYXNlIElD QlRBR19GSUxFX1RZUEVfRElSRUNUT1JZOgogCQlpbm9kZS0+aV9vcCA9ICZ1ZGZfZGlyX2lub2Rl X29wZXJhdGlvbnM7CmRpZmYgLS1naXQgYS9mcy91ZGYvbmFtZWkuYyBiL2ZzL3VkZi9uYW1laS5j CmluZGV4IDcxYzk3ZmIuLjQ4M2Q2NjIgMTAwNjQ0Ci0tLSBhL2ZzL3VkZi9uYW1laS5jCisrKyBi L2ZzL3VkZi9uYW1laS5jCkBAIC0yMzUsNyArMjM1LDggQEAgc3RhdGljIHN0cnVjdCBmaWxlSWRl bnREZXNjICp1ZGZfZmluZF9lbnRyeShzdHJ1Y3QgaW5vZGUgKmRpciwKIAkJaWYgKCFsZmkpCiAJ CQljb250aW51ZTsKIAotCQlmbGVuID0gdWRmX2dldF9maWxlbmFtZShkaXItPmlfc2IsIG5hbWVw dHIsIGZuYW1lLCBsZmkpOworCQlmbGVuID0gdWRmX2dldF9maWxlbmFtZShkaXItPmlfc2IsIG5h bWVwdHIsIGxmaSwgZm5hbWUsCisJCQkJCVVERl9OQU1FX0xFTik7CiAJCWlmIChmbGVuICYmIHVk Zl9tYXRjaChmbGVuLCBmbmFtZSwgY2hpbGQtPmxlbiwgY2hpbGQtPm5hbWUpKQogCQkJZ290byBv dXRfb2s7CiAJfQpkaWZmIC0tZ2l0IGEvZnMvdWRmL3N5bWxpbmsuYyBiL2ZzL3VkZi9zeW1saW5r LmMKaW5kZXggYjFkNDQ4OC4uMDQyMmI3YiAxMDA2NDQKLS0tIGEvZnMvdWRmL3N5bWxpbmsuYwor KysgYi9mcy91ZGYvc3ltbGluay5jCkBAIC0zMCw0MyArMzAsNzMgQEAKICNpbmNsdWRlIDxsaW51 eC9idWZmZXJfaGVhZC5oPgogI2luY2x1ZGUgInVkZl9pLmgiCiAKLXN0YXRpYyB2b2lkIHVkZl9w Y190b19jaGFyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHVuc2lnbmVkIGNoYXIgKmZyb20sCi0J CQkgICBpbnQgZnJvbWxlbiwgdW5zaWduZWQgY2hhciAqdG8pCitzdGF0aWMgaW50IHVkZl9wY190 b19jaGFyKHN0cnVjdCBzdXBlcl9ibG9jayAqc2IsIHVuc2lnbmVkIGNoYXIgKmZyb20sCisJCQkg IGludCBmcm9tbGVuLCB1bnNpZ25lZCBjaGFyICp0bywgaW50IHRvbGVuKQogewogCXN0cnVjdCBw YXRoQ29tcG9uZW50ICpwYzsKIAlpbnQgZWxlbiA9IDA7CisJaW50IGNvbXBfbGVuOwogCXVuc2ln bmVkIGNoYXIgKnAgPSB0bzsKIAorCS8qIFJlc2VydmUgb25lIGJ5dGUgZm9yIHRlcm1pbmF0aW5n IFwwICovCisJdG9sZW4tLTsKIAl3aGlsZSAoZWxlbiA8IGZyb21sZW4pIHsKIAkJcGMgPSAoc3Ry dWN0IHBhdGhDb21wb25lbnQgKikoZnJvbSArIGVsZW4pOworCQllbGVuICs9IHNpemVvZihzdHJ1 Y3QgcGF0aENvbXBvbmVudCk7CiAJCXN3aXRjaCAocGMtPmNvbXBvbmVudFR5cGUpIHsKIAkJY2Fz ZSAxOgotCQkJaWYgKHBjLT5sZW5ndGhDb21wb25lbnRJZGVudCA9PSAwKSB7Ci0JCQkJcCA9IHRv OwotCQkJCSpwKysgPSAnLyc7CisJCQkvKgorCQkJICogU3ltbGluayBwb2ludHMgdG8gc29tZSBw bGFjZSB3aGljaCBzaG91bGQgYmUgYWdyZWVkCisgCQkJICogdXBvbiBiZXR3ZWVuIG9yaWdpbmF0 b3IgYW5kIHJlY2VpdmVyIG9mIHRoZSBtZWRpYS4gSWdub3JlLgorCQkJICovCisJCQlpZiAocGMt Pmxlbmd0aENvbXBvbmVudElkZW50ID4gMCkgeworCQkJCWVsZW4gKz0gcGMtPmxlbmd0aENvbXBv bmVudElkZW50OworCQkJCWJyZWFrOwogCQkJfQorCQkJLyogRmFsbCB0aHJvdWdoICovCisJCWNh c2UgMjoKKwkJCWlmICh0b2xlbiA9PSAwKQorCQkJCXJldHVybiAtRU5BTUVUT09MT05HOworCQkJ cCA9IHRvOworCQkJKnArKyA9ICcvJzsKKwkJCXRvbGVuLS07CiAJCQlicmVhazsKIAkJY2FzZSAz OgorCQkJaWYgKHRvbGVuIDwgMykKKwkJCQlyZXR1cm4gLUVOQU1FVE9PTE9ORzsKIAkJCW1lbWNw eShwLCAiLi4vIiwgMyk7CiAJCQlwICs9IDM7CisJCQl0b2xlbiAtPSAzOwogCQkJYnJlYWs7CiAJ CWNhc2UgNDoKKwkJCWlmICh0b2xlbiA8IDIpCisJCQkJcmV0dXJuIC1FTkFNRVRPT0xPTkc7CiAJ CQltZW1jcHkocCwgIi4vIiwgMik7CiAJCQlwICs9IDI7CisJCQl0b2xlbiAtPSAyOwogCQkJLyog dGhhdCB3b3VsZCBiZSAuIC0ganVzdCBpZ25vcmUgKi8KIAkJCWJyZWFrOwogCQljYXNlIDU6Ci0J CQlwICs9IHVkZl9nZXRfZmlsZW5hbWUoc2IsIHBjLT5jb21wb25lbnRJZGVudCwgcCwKLQkJCQkJ ICAgICAgcGMtPmxlbmd0aENvbXBvbmVudElkZW50KTsKKwkJCWVsZW4gKz0gcGMtPmxlbmd0aENv bXBvbmVudElkZW50OworCQkJaWYgKGVsZW4gPiBmcm9tbGVuKQorCQkJCXJldHVybiAtRUlPOwor CQkJY29tcF9sZW4gPSB1ZGZfZ2V0X2ZpbGVuYW1lKHNiLCBwYy0+Y29tcG9uZW50SWRlbnQsCisJ CQkJCQkgICAgcGMtPmxlbmd0aENvbXBvbmVudElkZW50LAorCQkJCQkJICAgIHAsIHRvbGVuKTsK KwkJCXAgKz0gY29tcF9sZW47CisJCQl0b2xlbiAtPSBjb21wX2xlbjsKKwkJCWlmICh0b2xlbiA9 PSAwKQorCQkJCXJldHVybiAtRU5BTUVUT09MT05HOwogCQkJKnArKyA9ICcvJzsKKwkJCXRvbGVu LS07CiAJCQlicmVhazsKIAkJfQotCQllbGVuICs9IHNpemVvZihzdHJ1Y3QgcGF0aENvbXBvbmVu dCkgKyBwYy0+bGVuZ3RoQ29tcG9uZW50SWRlbnQ7CiAJfQogCWlmIChwID4gdG8gKyAxKQogCQlw Wy0xXSA9ICdcMCc7CiAJZWxzZQogCQlwWzBdID0gJ1wwJzsKKwlyZXR1cm4gMDsKIH0KIAogc3Rh dGljIGludCB1ZGZfc3ltbGlua19maWxsZXIoc3RydWN0IGZpbGUgKmZpbGUsIHN0cnVjdCBwYWdl ICpwYWdlKQpAQCAtNzQsMTEgKzEwNCwxNyBAQCBzdGF0aWMgaW50IHVkZl9zeW1saW5rX2ZpbGxl cihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiAJc3RydWN0IGlub2RlICpp bm9kZSA9IHBhZ2UtPm1hcHBpbmctPmhvc3Q7CiAJc3RydWN0IGJ1ZmZlcl9oZWFkICpiaCA9IE5V TEw7CiAJdW5zaWduZWQgY2hhciAqc3ltbGluazsKLQlpbnQgZXJyID0gLUVJTzsKKwlpbnQgZXJy OwogCXVuc2lnbmVkIGNoYXIgKnAgPSBrbWFwKHBhZ2UpOwogCXN0cnVjdCB1ZGZfaW5vZGVfaW5m byAqaWluZm87CiAJdWludDMyX3QgcG9zOwogCisJLyogV2UgZG9uJ3Qgc3VwcG9ydCBzeW1saW5r cyBsb25nZXIgdGhhbiBvbmUgYmxvY2sgKi8KKwlpZiAoaW5vZGUtPmlfc2l6ZSA+IGlub2RlLT5p X3NiLT5zX2Jsb2Nrc2l6ZSkgeworCQllcnIgPSAtRU5BTUVUT09MT05HOworCQlnb3RvIG91dF91 bm1hcDsKKwl9CisKIAlpaW5mbyA9IFVERl9JKGlub2RlKTsKIAlwb3MgPSB1ZGZfYmxvY2tfbWFw KGlub2RlLCAwKTsKIApAQCAtODgsMTQgKzEyNCwxOCBAQCBzdGF0aWMgaW50IHVkZl9zeW1saW5r X2ZpbGxlcihzdHJ1Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiAJfSBlbHNlIHsK IAkJYmggPSBzYl9icmVhZChpbm9kZS0+aV9zYiwgcG9zKTsKIAotCQlpZiAoIWJoKQotCQkJZ290 byBvdXQ7CisJCWlmICghYmgpIHsKKwkJCWVyciA9IC1FSU87CisJCQlnb3RvIG91dF91bmxvY2tf aW5vZGU7CisJCX0KIAogCQlzeW1saW5rID0gYmgtPmJfZGF0YTsKIAl9CiAKLQl1ZGZfcGNfdG9f Y2hhcihpbm9kZS0+aV9zYiwgc3ltbGluaywgaW5vZGUtPmlfc2l6ZSwgcCk7CisJZXJyID0gdWRm X3BjX3RvX2NoYXIoaW5vZGUtPmlfc2IsIHN5bWxpbmssIGlub2RlLT5pX3NpemUsIHAsIFBBR0Vf U0laRSk7CiAJYnJlbHNlKGJoKTsKKwlpZiAoZXJyKQorCQlnb3RvIG91dF91bmxvY2tfaW5vZGU7 CiAKIAl1cF9yZWFkKCZpaW5mby0+aV9kYXRhX3NlbSk7CiAJU2V0UGFnZVVwdG9kYXRlKHBhZ2Up OwpAQCAtMTAzLDkgKzE0MywxMCBAQCBzdGF0aWMgaW50IHVkZl9zeW1saW5rX2ZpbGxlcihzdHJ1 Y3QgZmlsZSAqZmlsZSwgc3RydWN0IHBhZ2UgKnBhZ2UpCiAJdW5sb2NrX3BhZ2UocGFnZSk7CiAJ cmV0dXJuIDA7CiAKLW91dDoKK291dF91bmxvY2tfaW5vZGU6CiAJdXBfcmVhZCgmaWluZm8tPmlf ZGF0YV9zZW0pOwogCVNldFBhZ2VFcnJvcihwYWdlKTsKK291dF91bm1hcDoKIAlrdW5tYXAocGFn ZSk7CiAJdW5sb2NrX3BhZ2UocGFnZSk7CiAJcmV0dXJuIGVycjsKZGlmZiAtLWdpdCBhL2ZzL3Vk Zi91ZGZkZWNsLmggYi9mcy91ZGYvdWRmZGVjbC5oCmluZGV4IGYzNGU2ZmMuLjg3NzVhYjIzIDEw MDY0NAotLS0gYS9mcy91ZGYvdWRmZGVjbC5oCisrKyBiL2ZzL3VkZi91ZGZkZWNsLmgKQEAgLTIw Nyw3ICsyMDcsOCBAQCB1ZGZfZ2V0X2xiX3BibG9jayhzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCBz dHJ1Y3Qga2VybmVsX2xiX2FkZHIgKmxvYywKIH0KIAogLyogdW5pY29kZS5jICovCi1leHRlcm4g aW50IHVkZl9nZXRfZmlsZW5hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICosIHVpbnQ4X3QgKiwgdWlu dDhfdCAqLCBpbnQpOworZXh0ZXJuIGludCB1ZGZfZ2V0X2ZpbGVuYW1lKHN0cnVjdCBzdXBlcl9i bG9jayAqLCB1aW50OF90ICosIGludCwgdWludDhfdCAqLAorCQkJICAgIGludCk7CiBleHRlcm4g aW50IHVkZl9wdXRfZmlsZW5hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICosIGNvbnN0IHVpbnQ4X3Qg KiwgdWludDhfdCAqLAogCQkJICAgIGludCk7CiBleHRlcm4gaW50IHVkZl9idWlsZF91c3RyKHN0 cnVjdCB1c3RyICosIGRzdHJpbmcgKiwgaW50KTsKZGlmZiAtLWdpdCBhL2ZzL3VkZi91bmljb2Rl LmMgYi9mcy91ZGYvdW5pY29kZS5jCmluZGV4IDQ0YjgxNWUuLmQyOWMwNmYgMTAwNjQ0Ci0tLSBh L2ZzL3VkZi91bmljb2RlLmMKKysrIGIvZnMvdWRmL3VuaWNvZGUuYwpAQCAtMjgsNyArMjgsOCBA QAogCiAjaW5jbHVkZSAidWRmX3NiLmgiCiAKLXN0YXRpYyBpbnQgdWRmX3RyYW5zbGF0ZV90b19s aW51eCh1aW50OF90ICosIHVpbnQ4X3QgKiwgaW50LCB1aW50OF90ICosIGludCk7CitzdGF0aWMg aW50IHVkZl90cmFuc2xhdGVfdG9fbGludXgodWludDhfdCAqLCBpbnQsIHVpbnQ4X3QgKiwgaW50 LCB1aW50OF90ICosCisJCQkJICBpbnQpOwogCiBzdGF0aWMgaW50IHVkZl9jaGFyX3RvX3VzdHIo c3RydWN0IHVzdHIgKmRlc3QsIGNvbnN0IHVpbnQ4X3QgKnNyYywgaW50IHN0cmxlbikKIHsKQEAg LTMzMyw4ICszMzQsOCBAQCB0cnlfYWdhaW46CiAJcmV0dXJuIHVfbGVuICsgMTsKIH0KIAotaW50 IHVkZl9nZXRfZmlsZW5hbWUoc3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdWludDhfdCAqc25hbWUs IHVpbnQ4X3QgKmRuYW1lLAotCQkgICAgIGludCBmbGVuKQoraW50IHVkZl9nZXRfZmlsZW5hbWUo c3RydWN0IHN1cGVyX2Jsb2NrICpzYiwgdWludDhfdCAqc25hbWUsIGludCBzbGVuLAorCQkgICAg IHVpbnQ4X3QgKmRuYW1lLCBpbnQgZGxlbikKIHsKIAlzdHJ1Y3QgdXN0ciAqZmlsZW5hbWUsICp1 bmlmaWxlbmFtZTsKIAlpbnQgbGVuID0gMDsKQEAgLTM0Nyw3ICszNDgsNyBAQCBpbnQgdWRmX2dl dF9maWxlbmFtZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1aW50OF90ICpzbmFtZSwgdWludDhf dCAqZG5hbWUsCiAJaWYgKCF1bmlmaWxlbmFtZSkKIAkJZ290byBvdXQxOwogCi0JaWYgKHVkZl9i dWlsZF91c3RyX2V4YWN0KHVuaWZpbGVuYW1lLCBzbmFtZSwgZmxlbikpCisJaWYgKHVkZl9idWls ZF91c3RyX2V4YWN0KHVuaWZpbGVuYW1lLCBzbmFtZSwgc2xlbikpCiAJCWdvdG8gb3V0MjsKIAog CWlmIChVREZfUVVFUllfRkxBRyhzYiwgVURGX0ZMQUdfVVRGOCkpIHsKQEAgLTM2Niw3ICszNjcs OCBAQCBpbnQgdWRmX2dldF9maWxlbmFtZShzdHJ1Y3Qgc3VwZXJfYmxvY2sgKnNiLCB1aW50OF90 ICpzbmFtZSwgdWludDhfdCAqZG5hbWUsCiAJfSBlbHNlCiAJCWdvdG8gb3V0MjsKIAotCWxlbiA9 IHVkZl90cmFuc2xhdGVfdG9fbGludXgoZG5hbWUsIGZpbGVuYW1lLT51X25hbWUsIGZpbGVuYW1l LT51X2xlbiwKKwlsZW4gPSB1ZGZfdHJhbnNsYXRlX3RvX2xpbnV4KGRuYW1lLCBkbGVuLAorCQkJ CSAgICAgZmlsZW5hbWUtPnVfbmFtZSwgZmlsZW5hbWUtPnVfbGVuLAogCQkJCSAgICAgdW5pZmls ZW5hbWUtPnVfbmFtZSwgdW5pZmlsZW5hbWUtPnVfbGVuKTsKIG91dDI6CiAJa2ZyZWUodW5pZmls ZW5hbWUpOwpAQCAtNDAzLDEwICs0MDUsMTIgQEAgaW50IHVkZl9wdXRfZmlsZW5hbWUoc3RydWN0 IHN1cGVyX2Jsb2NrICpzYiwgY29uc3QgdWludDhfdCAqc25hbWUsCiAjZGVmaW5lIEVYVF9NQVJL CQknLicKICNkZWZpbmUgQ1JDX01BUksJCScjJwogI2RlZmluZSBFWFRfU0laRSAJCTUKKy8qIE51 bWJlciBvZiBjaGFycyB3ZSBuZWVkIHRvIHN0b3JlIGdlbmVyYXRlZCBDUkMgdG8gbWFrZSBmaWxl bmFtZSB1bmlxdWUgKi8KKyNkZWZpbmUgQ1JDX0xFTgkJCTUKIAotc3RhdGljIGludCB1ZGZfdHJh bnNsYXRlX3RvX2xpbnV4KHVpbnQ4X3QgKm5ld05hbWUsIHVpbnQ4X3QgKnVkZk5hbWUsCi0JCQkJ ICBpbnQgdWRmTGVuLCB1aW50OF90ICpmaWROYW1lLAotCQkJCSAgaW50IGZpZE5hbWVMZW4pCitz dGF0aWMgaW50IHVkZl90cmFuc2xhdGVfdG9fbGludXgodWludDhfdCAqbmV3TmFtZSwgaW50IG5l d0xlbiwKKwkJCQkgIHVpbnQ4X3QgKnVkZk5hbWUsIGludCB1ZGZMZW4sCisJCQkJICB1aW50OF90 ICpmaWROYW1lLCBpbnQgZmlkTmFtZUxlbikKIHsKIAlpbnQgaW5kZXgsIG5ld0luZGV4ID0gMCwg bmVlZHNDUkMgPSAwOwogCWludCBleHRJbmRleCA9IDAsIG5ld0V4dEluZGV4ID0gMCwgaGFzRXh0 ID0gMDsKQEAgLTQ0MCw3ICs0NDQsNyBAQCBzdGF0aWMgaW50IHVkZl90cmFuc2xhdGVfdG9fbGlu dXgodWludDhfdCAqbmV3TmFtZSwgdWludDhfdCAqdWRmTmFtZSwKIAkJCQkJbmV3RXh0SW5kZXgg PSBuZXdJbmRleDsKIAkJCQl9CiAJCQl9Ci0JCQlpZiAobmV3SW5kZXggPCAyNTYpCisJCQlpZiAo bmV3SW5kZXggPCBuZXdMZW4pCiAJCQkJbmV3TmFtZVtuZXdJbmRleCsrXSA9IGN1cnI7CiAJCQll bHNlCiAJCQkJbmVlZHNDUkMgPSAxOwpAQCAtNDY4LDEzICs0NzIsMTMgQEAgc3RhdGljIGludCB1 ZGZfdHJhbnNsYXRlX3RvX2xpbnV4KHVpbnQ4X3QgKm5ld05hbWUsIHVpbnQ4X3QgKnVkZk5hbWUs CiAJCQkJfQogCQkJCWV4dFtsb2NhbEV4dEluZGV4KytdID0gY3VycjsKIAkJCX0KLQkJCW1heEZp bGVuYW1lTGVuID0gMjUwIC0gbG9jYWxFeHRJbmRleDsKKwkJCW1heEZpbGVuYW1lTGVuID0gbmV3 TGVuIC0gQ1JDX0xFTiAtIGxvY2FsRXh0SW5kZXg7CiAJCQlpZiAobmV3SW5kZXggPiBtYXhGaWxl bmFtZUxlbikKIAkJCQluZXdJbmRleCA9IG1heEZpbGVuYW1lTGVuOwogCQkJZWxzZQogCQkJCW5l d0luZGV4ID0gbmV3RXh0SW5kZXg7Ci0JCX0gZWxzZSBpZiAobmV3SW5kZXggPiAyNTApCi0JCQlu ZXdJbmRleCA9IDI1MDsKKwkJfSBlbHNlIGlmIChuZXdJbmRleCA+IG5ld0xlbiAtIENSQ19MRU4p CisJCQluZXdJbmRleCA9IG5ld0xlbiAtIENSQ19MRU47CiAJCW5ld05hbWVbbmV3SW5kZXgrK10g PSBDUkNfTUFSSzsKIAkJdmFsdWVDUkMgPSBjcmNfaXR1X3QoMCwgZmlkTmFtZSwgZmlkTmFtZUxl bik7CiAJCW5ld05hbWVbbmV3SW5kZXgrK10gPSBoZXhDaGFyWyh2YWx1ZUNSQyAmIDB4ZjAwMCkg Pj4gMTJdOwpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9jcnlwdG8uaCBiL2luY2x1ZGUvbGlu dXgvY3J5cHRvLmgKaW5kZXggOGE5NDIxNy4uY2EwMWVhOCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9s aW51eC9jcnlwdG8uaAorKysgYi9pbmNsdWRlL2xpbnV4L2NyeXB0by5oCkBAIC0yNSw2ICsyNSwx OSBAQAogI2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4KIAogLyoKKyAqIEF1dG9sb2FkZWQgY3J5 cHRvIG1vZHVsZXMgc2hvdWxkIG9ubHkgdXNlIGEgcHJlZml4ZWQgbmFtZSB0byBhdm9pZCBhbGxv d2luZworICogYXJiaXRyYXJ5IG1vZHVsZXMgdG8gYmUgbG9hZGVkLiBMb2FkaW5nIGZyb20gdXNl cnNwYWNlIG1heSBzdGlsbCBuZWVkIHRoZQorICogdW5wcmVmaXhlZCBuYW1lcywgc28gcmV0YWlu cyB0aG9zZSBhbGlhc2VzIGFzIHdlbGwuCisgKiBUaGlzIHVzZXMgX19NT0RVTEVfSU5GTyBkaXJl Y3RseSBpbnN0ZWFkIG9mIE1PRFVMRV9BTElBUyBiZWNhdXNlIHByZS00LjMKKyAqIGdjYyAoZS5n LiBhdnIzMiB0b29sY2hhaW4pIHVzZXMgX19MSU5FX18gZm9yIHVuaXF1ZW5lc3MsIGFuZCB0aGlz IG1hY3JvCisgKiBleHBhbmRzIHR3aWNlIG9uIHRoZSBzYW1lIGxpbmUuIEluc3RlYWQsIHVzZSBh IHNlcGFyYXRlIGJhc2UgbmFtZSBmb3IgdGhlCisgKiBhbGlhcy4KKyAqLworI2RlZmluZSBNT0RV TEVfQUxJQVNfQ1JZUFRPKG5hbWUpCVwKKwkJX19NT0RVTEVfSU5GTyhhbGlhcywgYWxpYXNfdXNl cnNwYWNlLCBuYW1lKTsJXAorCQlfX01PRFVMRV9JTkZPKGFsaWFzLCBhbGlhc19jcnlwdG8sICJj cnlwdG8tIiBuYW1lKQorCisvKgogICogQWxnb3JpdGhtIG1hc2tzIGFuZCB0eXBlcy4KICAqLwog I2RlZmluZSBDUllQVE9fQUxHX1RZUEVfTUFTSwkJMHgwMDAwMDAwZgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9kZXZpY2UuaCBiL2luY2x1ZGUvbGludXgvZGV2aWNlLmgKaW5kZXggMzEzNmVk ZS4uYTMxYzVkMCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kZXZpY2UuaAorKysgYi9pbmNs dWRlL2xpbnV4L2RldmljZS5oCkBAIC03NjcsNiArNzY3LDExIEBAIGV4dGVybiBfX3ByaW50Zig1 LCA2KQogc3RydWN0IGRldmljZSAqZGV2aWNlX2NyZWF0ZShzdHJ1Y3QgY2xhc3MgKmNscywgc3Ry dWN0IGRldmljZSAqcGFyZW50LAogCQkJICAgICBkZXZfdCBkZXZ0LCB2b2lkICpkcnZkYXRhLAog CQkJICAgICBjb25zdCBjaGFyICpmbXQsIC4uLik7CitleHRlcm4gX19wcmludGYoNiwgNykKK3N0 cnVjdCBkZXZpY2UgKmRldmljZV9jcmVhdGVfd2l0aF9ncm91cHMoc3RydWN0IGNsYXNzICpjbHMs CisJCQkgICAgIHN0cnVjdCBkZXZpY2UgKnBhcmVudCwgZGV2X3QgZGV2dCwgdm9pZCAqZHJ2ZGF0 YSwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCAqKmdyb3VwcywKKwkJCSAg ICAgY29uc3QgY2hhciAqZm10LCAuLi4pOwogZXh0ZXJuIHZvaWQgZGV2aWNlX2Rlc3Ryb3koc3Ry dWN0IGNsYXNzICpjbHMsIGRldl90IGRldnQpOwogCiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9rZXJuZWxfc3RhdC5oIGIvaW5jbHVkZS9saW51eC9rZXJuZWxfc3RhdC5oCmluZGV4IDBj Y2UyZGIuLjMyNTZhZWUgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgva2VybmVsX3N0YXQuaAor KysgYi9pbmNsdWRlL2xpbnV4L2tlcm5lbF9zdGF0LmgKQEAgLTk2LDggKzk2LDEzIEBAIHN0YXRp YyBpbmxpbmUgdW5zaWduZWQgaW50IGtzdGF0X2lycXModW5zaWduZWQgaW50IGlycSkKIAogCXJl dHVybiBzdW07CiB9CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBrc3RhdF9pcnFzX3Vzcih1 bnNpZ25lZCBpbnQgaXJxKQoreworCXJldHVybiBrc3RhdF9pcnFzKGlycSk7Cit9CiAjZWxzZQog ZXh0ZXJuIHVuc2lnbmVkIGludCBrc3RhdF9pcnFzKHVuc2lnbmVkIGludCBpcnEpOworZXh0ZXJu IHVuc2lnbmVkIGludCBrc3RhdF9pcnFzX3Vzcih1bnNpZ25lZCBpbnQgaXJxKTsKICNlbmRpZgog CiAvKgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9saWJhdGEuaCBiL2luY2x1ZGUvbGludXgv bGliYXRhLmgKaW5kZXggZDc3M2IyMS4uNDJhYzZhZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC9saWJhdGEuaAorKysgYi9pbmNsdWRlL2xpbnV4L2xpYmF0YS5oCkBAIC0yMDcsNiArMjA3LDcg QEAgZW51bSB7CiAJQVRBX0ZMQUdfU1dfQUNUSVZJVFkJPSAoMSA8PCAyMiksIC8qIGRyaXZlciBz dXBwb3J0cyBzdyBhY3Rpdml0eQogCQkJCQkgICAgICAqIGxlZCAqLwogCUFUQV9GTEFHX05PX0RJ UE0JPSAoMSA8PCAyMyksIC8qIGhvc3Qgbm90IGhhcHB5IHdpdGggRElQTSAqLworCUFUQV9GTEFH X0xPV1RBRwkJPSAoMSA8PCAyNCksIC8qIGhvc3Qgd2FudHMgbG93ZXN0IGF2YWlsYWJsZSB0YWcg Ki8KIAogCS8qIGJpdHMgMjQ6MzEgb2YgYXAtPmZsYWdzIGFyZSByZXNlcnZlZCBmb3IgTExEIHNw ZWNpZmljIGZsYWdzICovCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvbW0uaCBiL2luY2x1 ZGUvbGludXgvbW0uaAppbmRleCA3ZjQwMTIwLi5lNWVlNjgzIDEwMDY0NAotLS0gYS9pbmNsdWRl L2xpbnV4L21tLmgKKysrIGIvaW5jbHVkZS9saW51eC9tbS5oCkBAIC04NDAsNiArODQwLDcgQEAg c3RhdGljIGlubGluZSBpbnQgcGFnZV9tYXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2UpCiAjZGVmaW5l IFZNX0ZBVUxUX1dSSVRFCTB4MDAwOAkvKiBTcGVjaWFsIGNhc2UgZm9yIGdldF91c2VyX3BhZ2Vz ICovCiAjZGVmaW5lIFZNX0ZBVUxUX0hXUE9JU09OIDB4MDAxMAkvKiBIaXQgcG9pc29uZWQgc21h bGwgcGFnZSAqLwogI2RlZmluZSBWTV9GQVVMVF9IV1BPSVNPTl9MQVJHRSAweDAwMjAgIC8qIEhp dCBwb2lzb25lZCBsYXJnZSBwYWdlLiBJbmRleCBlbmNvZGVkIGluIHVwcGVyIGJpdHMgKi8KKyNk ZWZpbmUgVk1fRkFVTFRfU0lHU0VHViAweDAwNDAKIAogI2RlZmluZSBWTV9GQVVMVF9OT1BBR0UJ MHgwMTAwCS8qIC0+ZmF1bHQgaW5zdGFsbGVkIHRoZSBwdGUsIG5vdCByZXR1cm4gcGFnZSAqLwog I2RlZmluZSBWTV9GQVVMVF9MT0NLRUQJMHgwMjAwCS8qIC0+ZmF1bHQgbG9ja2VkIHRoZSByZXR1 cm5lZCBwYWdlICovCkBAIC04NDcsOCArODQ4LDggQEAgc3RhdGljIGlubGluZSBpbnQgcGFnZV9t YXBwZWQoc3RydWN0IHBhZ2UgKnBhZ2UpCiAKICNkZWZpbmUgVk1fRkFVTFRfSFdQT0lTT05fTEFS R0VfTUFTSyAweGYwMDAgLyogZW5jb2RlcyBocGFnZSBpbmRleCBmb3IgbGFyZ2UgaHdwb2lzb24g Ki8KIAotI2RlZmluZSBWTV9GQVVMVF9FUlJPUgkoVk1fRkFVTFRfT09NIHwgVk1fRkFVTFRfU0lH QlVTIHwgVk1fRkFVTFRfSFdQT0lTT04gfCBcCi0JCQkgVk1fRkFVTFRfSFdQT0lTT05fTEFSR0Up CisjZGVmaW5lIFZNX0ZBVUxUX0VSUk9SCShWTV9GQVVMVF9PT00gfCBWTV9GQVVMVF9TSUdCVVMg fCBWTV9GQVVMVF9TSUdTRUdWIHwgXAorCQkJIFZNX0ZBVUxUX0hXUE9JU09OIHwgVk1fRkFVTFRf SFdQT0lTT05fTEFSR0UpCiAKIC8qIEVuY29kZSBoc3RhdGUgaW5kZXggZm9yIGEgaHdwb2lzb25l ZCBsYXJnZSBwYWdlICovCiAjZGVmaW5lIFZNX0ZBVUxUX1NFVF9ISU5ERVgoeCkgKCh4KSA8PCAx MikKQEAgLTE0NzAsNyArMTQ3MSw3IEBAIGV4dGVybiBpbnQgZXhwYW5kX2Rvd253YXJkcyhzdHJ1 Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwKICNpZiBWTV9HUk9XU1VQCiBleHRlcm4gaW50IGV4cGFu ZF91cHdhcmRzKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCB1bnNpZ25lZCBsb25nIGFkZHJl c3MpOwogI2Vsc2UKLSAgI2RlZmluZSBleHBhbmRfdXB3YXJkcyh2bWEsIGFkZHJlc3MpIGRvIHsg fSB3aGlsZSAoMCkKKyAgI2RlZmluZSBleHBhbmRfdXB3YXJkcyh2bWEsIGFkZHJlc3MpICgwKQog I2VuZGlmCiAKIC8qIExvb2sgdXAgdGhlIGZpcnN0IFZNQSB3aGljaCBzYXRpc2ZpZXMgIGFkZHIg PCB2bV9lbmQsICBOVUxMIGlmIG5vbmUuICovCmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3Jt YXAuaCBiL2luY2x1ZGUvbGludXgvcm1hcC5oCmluZGV4IDIxNDhiMTIuLmIwZGYwNWEgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbGludXgvcm1hcC5oCisrKyBiL2luY2x1ZGUvbGludXgvcm1hcC5oCkBA IC0zNyw2ICszNywxNiBAQCBzdHJ1Y3QgYW5vbl92bWEgewogCWF0b21pY190IHJlZmNvdW50Owog CiAJLyoKKwkgKiBDb3VudCBvZiBjaGlsZCBhbm9uX3ZtYXMgYW5kIFZNQXMgd2hpY2ggcG9pbnRz IHRvIHRoaXMgYW5vbl92bWEuCisJICoKKwkgKiBUaGlzIGNvdW50ZXIgaXMgdXNlZCBmb3IgbWFr aW5nIGRlY2lzaW9uIGFib3V0IHJldXNpbmcgYW5vbl92bWEKKwkgKiBpbnN0ZWFkIG9mIGZvcmtp bmcgbmV3IG9uZS4gU2VlIGNvbW1lbnRzIGluIGZ1bmN0aW9uIGFub25fdm1hX2Nsb25lLgorCSAq LworCXVuc2lnbmVkIGRlZ3JlZTsKKworCXN0cnVjdCBhbm9uX3ZtYSAqcGFyZW50OwkvKiBQYXJl bnQgb2YgdGhpcyBhbm9uX3ZtYSAqLworCisJLyoKIAkgKiBOT1RFOiB0aGUgTFNCIG9mIHRoZSBo ZWFkLm5leHQgaXMgc2V0IGJ5CiAJICogbW1fdGFrZV9hbGxfbG9ja3MoKSBfYWZ0ZXJfIHRha2lu ZyB0aGUgYWJvdmUgbG9jay4gU28gdGhlCiAJICogaGVhZCBtdXN0IG9ubHkgYmUgcmVhZC93cml0 dGVuIGFmdGVyIHRha2luZyB0aGUgYWJvdmUgbG9jawpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51 eC9zeXNmcy5oIGIvaW5jbHVkZS9saW51eC9zeXNmcy5oCmluZGV4IGRhYzA4NTkuLjJiOWNkOGQg MTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvc3lzZnMuaAorKysgYi9pbmNsdWRlL2xpbnV4L3N5 c2ZzLmgKQEAgLTgwLDYgKzgwLDE1IEBAIHN0cnVjdCBhdHRyaWJ1dGVfZ3JvdXAgewogCiAjZGVm aW5lIF9fQVRUUl9OVUxMIHsgLmF0dHIgPSB7IC5uYW1lID0gTlVMTCB9IH0KIAorI2RlZmluZSBB VFRSSUJVVEVfR1JPVVBTKG5hbWUpCQkJCQlcCitzdGF0aWMgY29uc3Qgc3RydWN0IGF0dHJpYnV0 ZV9ncm91cCBuYW1lIyNfZ3JvdXAgPSB7CQlcCisJLmF0dHJzID0gbmFtZSMjX2F0dHJzLAkJCQkJ XAorfTsJCQkJCQkJCVwKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlX2dyb3VwICpuYW1l IyNfZ3JvdXBzW10gPSB7CVwKKwkmbmFtZSMjX2dyb3VwLAkJCQkJCVwKKwlOVUxMLAkJCQkJCQlc Cit9CisKICNkZWZpbmUgYXR0cl9uYW1lKF9hdHRyKSAoX2F0dHIpLmF0dHIubmFtZQogCiBzdHJ1 Y3QgZmlsZTsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvdGltZS5oIGIvaW5jbHVkZS9saW51 eC90aW1lLmgKaW5kZXggOGMwMjE2ZS4uYTg3YjQ0MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9saW51 eC90aW1lLmgKKysrIGIvaW5jbHVkZS9saW51eC90aW1lLmgKQEAgLTEzOCw2ICsxMzgsMTkgQEAg c3RhdGljIGlubGluZSBib29sIHRpbWVzcGVjX3ZhbGlkX3N0cmljdChjb25zdCBzdHJ1Y3QgdGlt ZXNwZWMgKnRzKQogCXJldHVybiB0cnVlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgdGltZXZh bF92YWxpZChjb25zdCBzdHJ1Y3QgdGltZXZhbCAqdHYpCit7CisJLyogRGF0ZXMgYmVmb3JlIDE5 NzAgYXJlIGJvZ3VzICovCisJaWYgKHR2LT50dl9zZWMgPCAwKQorCQlyZXR1cm4gZmFsc2U7CisK KwkvKiBDYW4ndCBoYXZlIG1vcmUgbWljcm9zZWNvbmRzIHRoZW4gYSBzZWNvbmQgKi8KKwlpZiAo dHYtPnR2X3VzZWMgPCAwIHx8IHR2LT50dl91c2VjID49IFVTRUNfUEVSX1NFQykKKwkJcmV0dXJu IGZhbHNlOworCisJcmV0dXJuIHRydWU7Cit9CisKIGV4dGVybiB2b2lkIHJlYWRfcGVyc2lzdGVu dF9jbG9jayhzdHJ1Y3QgdGltZXNwZWMgKnRzKTsKIGV4dGVybiB2b2lkIHJlYWRfYm9vdF9jbG9j ayhzdHJ1Y3QgdGltZXNwZWMgKnRzKTsKIGV4dGVybiBpbnQgdXBkYXRlX3BlcnNpc3RlbnRfY2xv Y2soc3RydWN0IHRpbWVzcGVjIG5vdyk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3VzYi9x dWlya3MuaCBiL2luY2x1ZGUvbGludXgvdXNiL3F1aXJrcy5oCmluZGV4IDhlZWViODcuLjE0MjI1 MmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdXNiL3F1aXJrcy5oCisrKyBiL2luY2x1ZGUv bGludXgvdXNiL3F1aXJrcy5oCkBAIC0zMCw2ICszMCwxNyBAQAogICAgZGVzY3JpcHRvciAqLwog I2RlZmluZSBVU0JfUVVJUktfREVMQVlfSU5JVAkJMHgwMDAwMDA0MAogCisvKgorICogRm9yIGhp Z2ggc3BlZWQgYW5kIHN1cGVyIHNwZWVkIGludGVydXB0IGVuZHBvaW50cywgdGhlIFVTQiAyLjAg YW5kCisgKiBVU0IgMy4wIHNwZWMgcmVxdWlyZSB0aGUgaW50ZXJ2YWwgaW4gbWljcm9mcmFtZXMK KyAqICgxIG1pY3JvZnJhbWUgPSAxMjUgbWljcm9zZWNvbmRzKSB0byBiZSBjYWxjdWxhdGVkIGFz CisgKiBpbnRlcnZhbCA9IDIgXiAoYkludGVydmFsLTEpLgorICoKKyAqIERldmljZXMgd2l0aCB0 aGlzIHF1aXJrIHJlcG9ydCB0aGVpciBiSW50ZXJ2YWwgYXMgdGhlIHJlc3VsdCBvZiB0aGlzCisg KiBjYWxjdWxhdGlvbiBpbnN0ZWFkIG9mIHRoZSBleHBvbmVudCB2YXJpYWJsZSB1c2VkIGluIHRo ZSBjYWxjdWxhdGlvbi4KKyAqLworI2RlZmluZSBVU0JfUVVJUktfTElORUFSX1VGUkFNRV9JTlRS X0JJTlRFUlZBTAkweDAwMDAwMDgwCisKIC8qIGRldmljZSBnZW5lcmF0ZXMgc3B1cmlvdXMgd2Fr ZXVwLCBpZ25vcmUgcmVtb3RlIHdha2V1cCBjYXBhYmlsaXR5ICovCiAjZGVmaW5lIFVTQl9RVUlS S19JR05PUkVfUkVNT1RFX1dBS0VVUAkweDAwMDAwMjAwCiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUv bGludXgvdmlydGlvLmggYi9pbmNsdWRlL2xpbnV4L3ZpcnRpby5oCmluZGV4IDk2Yzc4NDMuLmU0 ODA3YWYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvdmlydGlvLmgKKysrIGIvaW5jbHVkZS9s aW51eC92aXJ0aW8uaApAQCAtMTI3LDcgKzEyNywxMSBAQCBzdHJ1Y3QgdmlydGlvX2RldmljZSB7 CiAJdm9pZCAqcHJpdjsKIH07CiAKLSNkZWZpbmUgZGV2X3RvX3ZpcnRpbyhkZXYpIGNvbnRhaW5l cl9vZihkZXYsIHN0cnVjdCB2aXJ0aW9fZGV2aWNlLCBkZXYpCitzdGF0aWMgaW5saW5lIHN0cnVj dCB2aXJ0aW9fZGV2aWNlICpkZXZfdG9fdmlydGlvKHN0cnVjdCBkZXZpY2UgKl9kZXYpCit7CisJ cmV0dXJuIGNvbnRhaW5lcl9vZihfZGV2LCBzdHJ1Y3QgdmlydGlvX2RldmljZSwgZGV2KTsKK30K KwogaW50IHJlZ2lzdGVyX3ZpcnRpb19kZXZpY2Uoc3RydWN0IHZpcnRpb19kZXZpY2UgKmRldik7 CiB2b2lkIHVucmVnaXN0ZXJfdmlydGlvX2RldmljZShzdHJ1Y3QgdmlydGlvX2RldmljZSAqZGV2 KTsKIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC93cml0ZWJhY2suaCBiL2luY2x1ZGUvbGlu dXgvd3JpdGViYWNrLmgKaW5kZXggN2U4NWQ0NS4uOWYxNDlkZCAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9saW51eC93cml0ZWJhY2suaAorKysgYi9pbmNsdWRlL2xpbnV4L3dyaXRlYmFjay5oCkBAIC0x OTAsNyArMTkwLDYgQEAgaW50IHdyaXRlX2NhY2hlX3BhZ2VzKHN0cnVjdCBhZGRyZXNzX3NwYWNl ICptYXBwaW5nLAogCQkgICAgICBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wgKndiYywgd3JpdGVw YWdlX3Qgd3JpdGVwYWdlLAogCQkgICAgICB2b2lkICpkYXRhKTsKIGludCBkb193cml0ZXBhZ2Vz KHN0cnVjdCBhZGRyZXNzX3NwYWNlICptYXBwaW5nLCBzdHJ1Y3Qgd3JpdGViYWNrX2NvbnRyb2wg KndiYyk7Ci12b2lkIHNldF9wYWdlX2RpcnR5X2JhbGFuY2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIGlu dCBwYWdlX21rd3JpdGUpOwogdm9pZCB3cml0ZWJhY2tfc2V0X3JhdGVsaW1pdCh2b2lkKTsKIHZv aWQgdGFnX3BhZ2VzX2Zvcl93cml0ZWJhY2soc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcs CiAJCQkgICAgIHBnb2ZmX3Qgc3RhcnQsIHBnb2ZmX3QgZW5kKTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbmV0L2lwX2ZpYi5oIGIvaW5jbHVkZS9uZXQvaXBfZmliLmgKaW5kZXggMjEyNDAwNC4uNmU0 NTY5ZiAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaXBfZmliLmgKKysrIGIvaW5jbHVkZS9uZXQv aXBfZmliLmgKQEAgLTE3NSw4ICsxNzUsOCBAQCBleHRlcm4gdm9pZCBmaWJfZnJlZV90YWJsZShz dHJ1Y3QgZmliX3RhYmxlICp0Yik7CiAKICNpZm5kZWYgQ09ORklHX0lQX01VTFRJUExFX1RBQkxF UwogCi0jZGVmaW5lIFRBQkxFX0xPQ0FMX0lOREVYCTAKLSNkZWZpbmUgVEFCTEVfTUFJTl9JTkRF WAkxCisjZGVmaW5lIFRBQkxFX0xPQ0FMX0lOREVYCShSVF9UQUJMRV9MT0NBTCAmIChGSUJfVEFC TEVfSEFTSFNaIC0gMSkpCisjZGVmaW5lIFRBQkxFX01BSU5fSU5ERVgJKFJUX1RBQkxFX01BSU4g ICYgKEZJQl9UQUJMRV9IQVNIU1ogLSAxKSkKIAogc3RhdGljIGlubGluZSBzdHJ1Y3QgZmliX3Rh YmxlICpmaWJfZ2V0X3RhYmxlKHN0cnVjdCBuZXQgKm5ldCwgdTMyIGlkKQogewpkaWZmIC0tZ2l0 IGEvaW5jbHVkZS9uZXQvc29jay5oIGIvaW5jbHVkZS9uZXQvc29jay5oCmluZGV4IGU2NDU0YjYu LmM4ZGNiYjggMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25l dC9zb2NrLmgKQEAgLTE5NCw3ICsxOTQsNiBAQCBzdHJ1Y3Qgc29ja19jb21tb24gewogICAqCUBz a19yb3V0ZV9ub2NhcHM6IGZvcmJpZGRlbiByb3V0ZSBjYXBhYmlsaXRpZXMgKGUuZyBORVRJRl9G X0dTT19NQVNLKQogICAqCUBza19nc29fdHlwZTogR1NPIHR5cGUgKGUuZy4gJVNLQl9HU09fVENQ VjQpCiAgICoJQHNrX2dzb19tYXhfc2l6ZTogTWF4aW11bSBHU08gc2VnbWVudCBzaXplIHRvIGJ1 aWxkCi0gICoJQHNrX2dzb19tYXhfc2VnczogTWF4aW11bSBudW1iZXIgb2YgR1NPIHNlZ21lbnRz CiAgICoJQHNrX2xpbmdlcnRpbWU6ICVTT19MSU5HRVIgbF9saW5nZXIgc2V0dGluZwogICAqCUBz a19iYWNrbG9nOiBhbHdheXMgdXNlZCB3aXRoIHRoZSBwZXItc29ja2V0IHNwaW5sb2NrIGhlbGQK ICAgKglAc2tfY2FsbGJhY2tfbG9jazogdXNlZCB3aXRoIHRoZSBjYWxsYmFja3MgaW4gdGhlIGVu ZCBvZiB0aGlzIHN0cnVjdApAQCAtMzExLDcgKzMxMCw2IEBAIHN0cnVjdCBzb2NrIHsKIAlpbnQJ CQlza19yb3V0ZV9ub2NhcHM7CiAJaW50CQkJc2tfZ3NvX3R5cGU7CiAJdW5zaWduZWQgaW50CQlz a19nc29fbWF4X3NpemU7Ci0JdTE2CQkJc2tfZ3NvX21heF9zZWdzOwogCWludAkJCXNrX3Jjdmxv d2F0OwogCXVuc2lnbmVkIGxvbmcJICAgICAgICBza19saW5nZXJ0aW1lOwogCXN0cnVjdCBza19i dWZmX2hlYWQJc2tfZXJyb3JfcXVldWU7CmRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL2ludGVybmFs cy5oIGIva2VybmVsL2lycS9pbnRlcm5hbHMuaAppbmRleCBlMWE4YjY0Li5mNjllMzdjZSAxMDA2 NDQKLS0tIGEva2VybmVsL2lycS9pbnRlcm5hbHMuaAorKysgYi9rZXJuZWwvaXJxL2ludGVybmFs cy5oCkBAIC03Niw2ICs3NiwxMyBAQCBleHRlcm4gdm9pZCBpcnFfcGVyY3B1X2Rpc2FibGUoc3Ry dWN0IGlycV9kZXNjICpkZXNjLCB1bnNpZ25lZCBpbnQgY3B1KTsKIGV4dGVybiB2b2lkIG1hc2tf aXJxKHN0cnVjdCBpcnFfZGVzYyAqZGVzYyk7CiBleHRlcm4gdm9pZCB1bm1hc2tfaXJxKHN0cnVj dCBpcnFfZGVzYyAqZGVzYyk7CiAKKyNpZmRlZiBDT05GSUdfU1BBUlNFX0lSUQorZXh0ZXJuIHZv aWQgaXJxX2xvY2tfc3BhcnNlKHZvaWQpOworZXh0ZXJuIHZvaWQgaXJxX3VubG9ja19zcGFyc2Uo dm9pZCk7CisjZWxzZQorc3RhdGljIGlubGluZSB2b2lkIGlycV9sb2NrX3NwYXJzZSh2b2lkKSB7 IH0KK3N0YXRpYyBpbmxpbmUgdm9pZCBpcnFfdW5sb2NrX3NwYXJzZSh2b2lkKSB7IH0KKyNlbmRp ZgogZXh0ZXJuIHZvaWQgaW5pdF9rc3RhdF9pcnFzKHN0cnVjdCBpcnFfZGVzYyAqZGVzYywgaW50 IG5vZGUsIGludCBucik7CiAKIGlycXJldHVybl90IGhhbmRsZV9pcnFfZXZlbnRfcGVyY3B1KHN0 cnVjdCBpcnFfZGVzYyAqZGVzYywgc3RydWN0IGlycWFjdGlvbiAqYWN0aW9uKTsKZGlmZiAtLWdp dCBhL2tlcm5lbC9pcnEvaXJxZGVzYy5jIGIva2VybmVsL2lycS9pcnFkZXNjLmMKaW5kZXggZDg2 ZTI1NC4uZjQ5N2ZmNyAxMDA2NDQKLS0tIGEva2VybmVsL2lycS9pcnFkZXNjLmMKKysrIGIva2Vy bmVsL2lycS9pcnFkZXNjLmMKQEAgLTEzMCw2ICsxMzAsMTYgQEAgc3RhdGljIHZvaWQgZnJlZV9t YXNrcyhzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpCiBzdGF0aWMgaW5saW5lIHZvaWQgZnJlZV9tYXNr cyhzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MpIHsgfQogI2VuZGlmCiAKK3ZvaWQgaXJxX2xvY2tfc3Bh cnNlKHZvaWQpCit7CisJbXV0ZXhfbG9jaygmc3BhcnNlX2lycV9sb2NrKTsKK30KKwordm9pZCBp cnFfdW5sb2NrX3NwYXJzZSh2b2lkKQoreworCW11dGV4X3VubG9jaygmc3BhcnNlX2lycV9sb2Nr KTsKK30KKwogc3RhdGljIHN0cnVjdCBpcnFfZGVzYyAqYWxsb2NfZGVzYyhpbnQgaXJxLCBpbnQg bm9kZSwgc3RydWN0IG1vZHVsZSAqb3duZXIpCiB7CiAJc3RydWN0IGlycV9kZXNjICpkZXNjOwpA QCAtMTY2LDYgKzE3NiwxMiBAQCBzdGF0aWMgdm9pZCBmcmVlX2Rlc2ModW5zaWduZWQgaW50IGly cSkKIAogCXVucmVnaXN0ZXJfaXJxX3Byb2MoaXJxLCBkZXNjKTsKIAorCS8qCisJICogc3BhcnNl X2lycV9sb2NrIHByb3RlY3RzIGFsc28gc2hvd19pbnRlcnJ1cHRzKCkgYW5kCisJICoga3N0YXRf aXJxX3VzcigpLiBPbmNlIHdlIGRlbGV0ZWQgdGhlIGRlc2NyaXB0b3IgZnJvbSB0aGUKKwkgKiBz cGFyc2UgdHJlZSB3ZSBjYW4gZnJlZSBpdC4gQWNjZXNzIGluIHByb2Mgd2lsbCBmYWlsIHRvCisJ ICogbG9va3VwIHRoZSBkZXNjcmlwdG9yLgorCSAqLwogCW11dGV4X2xvY2soJnNwYXJzZV9pcnFf bG9jayk7CiAJZGVsZXRlX2lycV9kZXNjKGlycSk7CiAJbXV0ZXhfdW5sb2NrKCZzcGFyc2VfaXJx X2xvY2spOwpAQCAtNDg3LDYgKzUwMywxNSBAQCB2b2lkIGR5bmFtaWNfaXJxX2NsZWFudXAodW5z aWduZWQgaW50IGlycSkKIAlyYXdfc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGVzYy0+bG9jaywg ZmxhZ3MpOwogfQogCisvKioKKyAqIGtzdGF0X2lycXNfY3B1IC0gR2V0IHRoZSBzdGF0aXN0aWNz IGZvciBhbiBpbnRlcnJ1cHQgb24gYSBjcHUKKyAqIEBpcnE6CVRoZSBpbnRlcnJ1cHQgbnVtYmVy CisgKiBAY3B1OglUaGUgY3B1IG51bWJlcgorICoKKyAqIFJldHVybnMgdGhlIHN1bSBvZiBpbnRl cnJ1cHQgY291bnRzIG9uIEBjcHUgc2luY2UgYm9vdCBmb3IKKyAqIEBpcnEuIFRoZSBjYWxsZXIg bXVzdCBlbnN1cmUgdGhhdCB0aGUgaW50ZXJydXB0IGlzIG5vdCByZW1vdmVkCisgKiBjb25jdXJy ZW50bHkuCisgKi8KIHVuc2lnbmVkIGludCBrc3RhdF9pcnFzX2NwdSh1bnNpZ25lZCBpbnQgaXJx LCBpbnQgY3B1KQogewogCXN0cnVjdCBpcnFfZGVzYyAqZGVzYyA9IGlycV90b19kZXNjKGlycSk7 CkBAIC00OTUsNiArNTIwLDE0IEBAIHVuc2lnbmVkIGludCBrc3RhdF9pcnFzX2NwdSh1bnNpZ25l ZCBpbnQgaXJxLCBpbnQgY3B1KQogCQkJKnBlcl9jcHVfcHRyKGRlc2MtPmtzdGF0X2lycXMsIGNw dSkgOiAwOwogfQogCisvKioKKyAqIGtzdGF0X2lycXMgLSBHZXQgdGhlIHN0YXRpc3RpY3MgZm9y IGFuIGludGVycnVwdAorICogQGlycToJVGhlIGludGVycnVwdCBudW1iZXIKKyAqCisgKiBSZXR1 cm5zIHRoZSBzdW0gb2YgaW50ZXJydXB0IGNvdW50cyBvbiBhbGwgY3B1cyBzaW5jZSBib290IGZv cgorICogQGlycS4gVGhlIGNhbGxlciBtdXN0IGVuc3VyZSB0aGF0IHRoZSBpbnRlcnJ1cHQgaXMg bm90IHJlbW92ZWQKKyAqIGNvbmN1cnJlbnRseS4KKyAqLwogdW5zaWduZWQgaW50IGtzdGF0X2ly cXModW5zaWduZWQgaW50IGlycSkKIHsKIAlzdHJ1Y3QgaXJxX2Rlc2MgKmRlc2MgPSBpcnFfdG9f ZGVzYyhpcnEpOwpAQCAtNTA3LDMgKzU0MCwyMiBAQCB1bnNpZ25lZCBpbnQga3N0YXRfaXJxcyh1 bnNpZ25lZCBpbnQgaXJxKQogCQlzdW0gKz0gKnBlcl9jcHVfcHRyKGRlc2MtPmtzdGF0X2lycXMs IGNwdSk7CiAJcmV0dXJuIHN1bTsKIH0KKworLyoqCisgKiBrc3RhdF9pcnFzX3VzciAtIEdldCB0 aGUgc3RhdGlzdGljcyBmb3IgYW4gaW50ZXJydXB0CisgKiBAaXJxOglUaGUgaW50ZXJydXB0IG51 bWJlcgorICoKKyAqIFJldHVybnMgdGhlIHN1bSBvZiBpbnRlcnJ1cHQgY291bnRzIG9uIGFsbCBj cHVzIHNpbmNlIGJvb3QgZm9yCisgKiBAaXJxLiBDb250cmFyeSB0byBrc3RhdF9pcnFzKCkgdGhp cyBjYW4gYmUgY2FsbGVkIGZyb20gYW55CisgKiBwcmVlbXB0aWJsZSBjb250ZXh0LiBJdCdzIHBy b3RlY3RlZCBhZ2FpbnN0IGNvbmN1cnJlbnQgcmVtb3ZhbCBvZgorICogYW4gaW50ZXJydXB0IGRl c2NyaXB0b3Igd2hlbiBzcGFyc2UgaXJxcyBhcmUgZW5hYmxlZC4KKyAqLwordW5zaWduZWQgaW50 IGtzdGF0X2lycXNfdXNyKHVuc2lnbmVkIGludCBpcnEpCit7CisJaW50IHN1bTsKKworCWlycV9s b2NrX3NwYXJzZSgpOworCXN1bSA9IGtzdGF0X2lycXMoaXJxKTsKKwlpcnFfdW5sb2NrX3NwYXJz ZSgpOworCXJldHVybiBzdW07Cit9CmRpZmYgLS1naXQgYS9rZXJuZWwvaXJxL3Byb2MuYyBiL2tl cm5lbC9pcnEvcHJvYy5jCmluZGV4IDRiZDRmYWEuLmZiNjU1ZjVmIDEwMDY0NAotLS0gYS9rZXJu ZWwvaXJxL3Byb2MuYworKysgYi9rZXJuZWwvaXJxL3Byb2MuYwpAQCAtMTUsNiArMTUsMjMgQEAK IAogI2luY2x1ZGUgImludGVybmFscy5oIgogCisvKgorICogQWNjZXNzIHJ1bGVzOgorICoKKyAq IHByb2NmcyBwcm90ZWN0cyByZWFkL3dyaXRlIG9mIC9wcm9jL2lycS9OLyBmaWxlcyBhZ2FpbnN0 IGEKKyAqIGNvbmN1cnJlbnQgZnJlZSBvZiB0aGUgaW50ZXJydXB0IGRlc2NyaXB0b3IuIHJlbW92 ZV9wcm9jX2VudHJ5KCkKKyAqIGltbWVkaWF0ZWx5IHByZXZlbnRzIG5ldyByZWFkL3dyaXRlcyB0 byBoYXBwZW4gYW5kIHdhaXRzIGZvcgorICogYWxyZWFkeSBydW5uaW5nIHJlYWQvd3JpdGUgZnVu Y3Rpb25zIHRvIGNvbXBsZXRlLgorICoKKyAqIFdlIHJlbW92ZSB0aGUgcHJvYyBlbnRyaWVzIGZp cnN0IGFuZCB0aGVuIGRlbGV0ZSB0aGUgaW50ZXJydXB0CisgKiBkZXNjcmlwdG9yIGZyb20gdGhl IHJhZGl4IHRyZWUgYW5kIGZyZWUgaXQuIFNvIGl0IGlzIGd1YXJhbnRlZWQKKyAqIHRoYXQgaXJx X3RvX2Rlc2MoTikgaXMgdmFsaWQgYXMgbG9uZyBhcyB0aGUgcmVhZC93cml0ZXMgYXJlCisgKiBw ZXJtaXR0ZWQgYnkgcHJvY2ZzLgorICoKKyAqIFRoZSByZWFkIGZyb20gL3Byb2MvaW50ZXJydXB0 cyBpcyBhIGRpZmZlcmVudCBwcm9ibGVtIGJlY2F1c2UgdGhlcmUKKyAqIGlzIG5vIHByb3RlY3Rp b24uIFNvIHRoZSBsb29rdXAgYW5kIHRoZSBhY2Nlc3MgdG8gaXJxZGVzYworICogaW5mb3JtYXRp b24gbXVzdCBiZSBwcm90ZWN0ZWQgYnkgc3BhcnNlX2lycV9sb2NrLgorICovCiBzdGF0aWMgc3Ry dWN0IHByb2NfZGlyX2VudHJ5ICpyb290X2lycV9kaXI7CiAKICNpZmRlZiBDT05GSUdfU01QCkBA IC00NDEsOSArNDU4LDEwIEBAIGludCBzaG93X2ludGVycnVwdHMoc3RydWN0IHNlcV9maWxlICpw LCB2b2lkICp2KQogCQlzZXFfcHV0YyhwLCAnXG4nKTsKIAl9CiAKKwlpcnFfbG9ja19zcGFyc2Uo KTsKIAlkZXNjID0gaXJxX3RvX2Rlc2MoaSk7CiAJaWYgKCFkZXNjKQotCQlyZXR1cm4gMDsKKwkJ Z290byBvdXRzcGFyc2U7CiAKIAlyYXdfc3Bpbl9sb2NrX2lycXNhdmUoJmRlc2MtPmxvY2ssIGZs YWdzKTsKIAlmb3JfZWFjaF9vbmxpbmVfY3B1KGopCkBAIC00ODEsNiArNDk5LDggQEAgaW50IHNo b3dfaW50ZXJydXB0cyhzdHJ1Y3Qgc2VxX2ZpbGUgKnAsIHZvaWQgKnYpCiAJc2VxX3B1dGMocCwg J1xuJyk7CiBvdXQ6CiAJcmF3X3NwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZs YWdzKTsKK291dHNwYXJzZToKKwlpcnFfdW5sb2NrX3NwYXJzZSgpOwogCXJldHVybiAwOwogfQog I2VuZGlmCmRpZmYgLS1naXQgYS9rZXJuZWwvdGltZS5jIGIva2VybmVsL3RpbWUuYwppbmRleCAw NjBmOTYxLi5mNjRlODhiIDEwMDY0NAotLS0gYS9rZXJuZWwvdGltZS5jCisrKyBiL2tlcm5lbC90 aW1lLmMKQEAgLTE5Miw2ICsxOTIsMTAgQEAgU1lTQ0FMTF9ERUZJTkUyKHNldHRpbWVvZmRheSwg c3RydWN0IHRpbWV2YWwgX191c2VyICosIHR2LAogCWlmICh0dikgewogCQlpZiAoY29weV9mcm9t X3VzZXIoJnVzZXJfdHYsIHR2LCBzaXplb2YoKnR2KSkpCiAJCQlyZXR1cm4gLUVGQVVMVDsKKwor CQlpZiAoIXRpbWV2YWxfdmFsaWQoJnVzZXJfdHYpKQorCQkJcmV0dXJuIC1FSU5WQUw7CisKIAkJ bmV3X3RzLnR2X3NlYyA9IHVzZXJfdHYudHZfc2VjOwogCQluZXdfdHMudHZfbnNlYyA9IHVzZXJf dHYudHZfdXNlYyAqIE5TRUNfUEVSX1VTRUM7CiAJfQpkaWZmIC0tZ2l0IGEva2VybmVsL3RpbWUv bnRwLmMgYi9rZXJuZWwvdGltZS9udHAuYwppbmRleCBmMWViMTgyLi5iY2E3NDNkIDEwMDY0NAot LS0gYS9rZXJuZWwvdGltZS9udHAuYworKysgYi9rZXJuZWwvdGltZS9udHAuYwpAQCAtNjA4LDYg KzYwOCwxMyBAQCBpbnQgZG9fYWRqdGltZXgoc3RydWN0IHRpbWV4ICp0eGMpCiAJCQlyZXR1cm4g LUVJTlZBTDsKIAl9CiAKKwlpZiAodHhjLT5tb2RlcyAmIEFESl9GUkVRVUVOQ1kpIHsKKwkJaWYg KExPTkdfTUlOIC8gUFBNX1NDQUxFID4gdHhjLT5mcmVxKQorCQkJcmV0dXJuIC1FSU5WQUw7CisJ CWlmIChMT05HX01BWCAvIFBQTV9TQ0FMRSA8IHR4Yy0+ZnJlcSkKKwkJCXJldHVybiAtRUlOVkFM OworCX0KKwogCWlmICh0eGMtPm1vZGVzICYgQURKX1NFVE9GRlNFVCkgewogCQlzdHJ1Y3QgdGlt ZXNwZWMgZGVsdGE7CiAJCWRlbHRhLnR2X3NlYyAgPSB0eGMtPnRpbWUudHZfc2VjOwpkaWZmIC0t Z2l0IGEvbGliL2RlY29tcHJlc3NfYnVuemlwMi5jIGIvbGliL2RlY29tcHJlc3NfYnVuemlwMi5j CmluZGV4IGE3YjgwYzEuLjZhMTEwZTIgMTAwNjQ0Ci0tLSBhL2xpYi9kZWNvbXByZXNzX2J1bnpp cDIuYworKysgYi9saWIvZGVjb21wcmVzc19idW56aXAyLmMKQEAgLTE4NSw3ICsxODUsNyBAQCBz dGF0aWMgaW50IElOSVQgZ2V0X25leHRfYmxvY2soc3RydWN0IGJ1bnppcF9kYXRhICpiZCkKIAlp ZiAoZ2V0X2JpdHMoYmQsIDEpKQogCQlyZXR1cm4gUkVUVkFMX09CU09MRVRFX0lOUFVUOwogCW9y aWdQdHIgPSBnZXRfYml0cyhiZCwgMjQpOwotCWlmIChvcmlnUHRyID4gZGJ1ZlNpemUpCisJaWYg KG9yaWdQdHIgPj0gZGJ1ZlNpemUpCiAJCXJldHVybiBSRVRWQUxfREFUQV9FUlJPUjsKIAkvKiBt YXBwaW5nIHRhYmxlOiBpZiBzb21lIGJ5dGUgdmFsdWVzIGFyZSBuZXZlciB1c2VkIChlbmNvZGlu ZyB0aGluZ3MKIAkgICBsaWtlIGFzY2lpIHRleHQpLCB0aGUgY29tcHJlc3Npb24gY29kZSByZW1v dmVzIHRoZSBnYXBzIHRvIGhhdmUgZmV3ZXIKZGlmZiAtLWdpdCBhL21tL2tzbS5jIGIvbW0va3Nt LmMKaW5kZXggMzEwNTQ0YS4uNjc0MWM5ZCAxMDA2NDQKLS0tIGEvbW0va3NtLmMKKysrIGIvbW0v a3NtLmMKQEAgLTM0Miw3ICszNDIsNyBAQCBzdGF0aWMgaW50IGJyZWFrX2tzbShzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSwgdW5zaWduZWQgbG9uZyBhZGRyKQogCQllbHNlCiAJCQlyZXQgPSBW TV9GQVVMVF9XUklURTsKIAkJcHV0X3BhZ2UocGFnZSk7Ci0JfSB3aGlsZSAoIShyZXQgJiAoVk1f RkFVTFRfV1JJVEUgfCBWTV9GQVVMVF9TSUdCVVMgfCBWTV9GQVVMVF9PT00pKSk7CisJfSB3aGls ZSAoIShyZXQgJiAoVk1fRkFVTFRfV1JJVEUgfCBWTV9GQVVMVF9TSUdCVVMgfCBWTV9GQVVMVF9T SUdTRUdWIHwgVk1fRkFVTFRfT09NKSkpOwogCS8qCiAJICogV2UgbXVzdCBsb29wIGJlY2F1c2Ug aGFuZGxlX21tX2ZhdWx0KCkgbWF5IGJhY2sgb3V0IGlmIHRoZXJlJ3MKIAkgKiBhbnkgZGlmZmlj dWx0eSBlLmcuIGlmIHB0ZSBhY2Nlc3NlZCBiaXQgZ2V0cyB1cGRhdGVkIGNvbmN1cnJlbnRseS4K ZGlmZiAtLWdpdCBhL21tL21lbW9yeS5jIGIvbW0vbWVtb3J5LmMKaW5kZXggNjI4Y2FkYy4uMGE3 YmIzOCAxMDA2NDQKLS0tIGEvbW0vbWVtb3J5LmMKKysrIGIvbW0vbWVtb3J5LmMKQEAgLTE3Njcs NyArMTc2Nyw3IEBAIGludCBfX2dldF91c2VyX3BhZ2VzKHN0cnVjdCB0YXNrX3N0cnVjdCAqdHNr LCBzdHJ1Y3QgbW1fc3RydWN0ICptbSwKIAkJCQkJCWVsc2UKIAkJCQkJCQlyZXR1cm4gLUVGQVVM VDsKIAkJCQkJfQotCQkJCQlpZiAocmV0ICYgVk1fRkFVTFRfU0lHQlVTKQorCQkJCQlpZiAocmV0 ICYgKFZNX0ZBVUxUX1NJR0JVUyB8IFZNX0ZBVUxUX1NJR1NFR1YpKQogCQkJCQkJcmV0dXJuIGkg PyBpIDogLUVGQVVMVDsKIAkJCQkJQlVHKCk7CiAJCQkJfQpAQCAtMTg3MSw3ICsxODcxLDcgQEAg aW50IGZpeHVwX3VzZXJfZmF1bHQoc3RydWN0IHRhc2tfc3RydWN0ICp0c2ssIHN0cnVjdCBtbV9z dHJ1Y3QgKm1tLAogCQkJcmV0dXJuIC1FTk9NRU07CiAJCWlmIChyZXQgJiAoVk1fRkFVTFRfSFdQ T0lTT04gfCBWTV9GQVVMVF9IV1BPSVNPTl9MQVJHRSkpCiAJCQlyZXR1cm4gLUVIV1BPSVNPTjsK LQkJaWYgKHJldCAmIFZNX0ZBVUxUX1NJR0JVUykKKwkJaWYgKHJldCAmIChWTV9GQVVMVF9TSUdC VVMgfCBWTV9GQVVMVF9TSUdTRUdWKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCQlCVUcoKTsKIAl9 CkBAIC0yNjYxLDE3ICsyNjYxLDI0IEBAIHJldXNlOgogCQlpZiAoIWRpcnR5X3BhZ2UpCiAJCQly ZXR1cm4gcmV0OwogCi0JCS8qCi0JCSAqIFllcywgVmlyZ2luaWEsIHRoaXMgaXMgYWN0dWFsbHkg cmVxdWlyZWQgdG8gcHJldmVudCBhIHJhY2UKLQkJICogd2l0aCBjbGVhcl9wYWdlX2RpcnR5X2Zv cl9pbygpIGZyb20gY2xlYXJpbmcgdGhlIHBhZ2UgZGlydHkKLQkJICogYml0IGFmdGVyIGl0IGNs ZWFyIGFsbCBkaXJ0eSBwdGVzLCBidXQgYmVmb3JlIGEgcmFjaW5nCi0JCSAqIGRvX3dwX3BhZ2Ug aW5zdGFsbHMgYSBkaXJ0eSBwdGUuCi0JCSAqCi0JCSAqIF9fZG9fZmF1bHQgaXMgcHJvdGVjdGVk IHNpbWlsYXJseS4KLQkJICovCiAJCWlmICghcGFnZV9ta3dyaXRlKSB7Ci0JCQl3YWl0X29uX3Bh Z2VfbG9ja2VkKGRpcnR5X3BhZ2UpOwotCQkJc2V0X3BhZ2VfZGlydHlfYmFsYW5jZShkaXJ0eV9w YWdlLCBwYWdlX21rd3JpdGUpOworCQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmc7CisJ CQlpbnQgZGlydGllZDsKKworCQkJbG9ja19wYWdlKGRpcnR5X3BhZ2UpOworCQkJZGlydGllZCA9 IHNldF9wYWdlX2RpcnR5KGRpcnR5X3BhZ2UpOworCQkJVk1fQlVHX09OKFBhZ2VBbm9uKGRpcnR5 X3BhZ2UpKTsKKwkJCW1hcHBpbmcgPSBkaXJ0eV9wYWdlLT5tYXBwaW5nOworCQkJdW5sb2NrX3Bh Z2UoZGlydHlfcGFnZSk7CisKKwkJCWlmIChkaXJ0aWVkICYmIG1hcHBpbmcpIHsKKwkJCQkvKgor CQkJCSAqIFNvbWUgZGV2aWNlIGRyaXZlcnMgZG8gbm90IHNldCBwYWdlLm1hcHBpbmcKKwkJCQkg KiBidXQgc3RpbGwgZGlydHkgdGhlaXIgcGFnZXMKKwkJCQkgKi8KKwkJCQliYWxhbmNlX2RpcnR5 X3BhZ2VzX3JhdGVsaW1pdGVkKG1hcHBpbmcpOworCQkJfQorCiAJCX0KIAkJcHV0X3BhZ2UoZGly dHlfcGFnZSk7CiAJCWlmIChwYWdlX21rd3JpdGUpIHsKQEAgLTMxMTcsNyArMzEyNCw3IEBAIHN0 YXRpYyBpbmxpbmUgaW50IGNoZWNrX3N0YWNrX2d1YXJkX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEsIHVuc2lnbmVkIGxvCiAJCWlmIChwcmV2ICYmIHByZXYtPnZtX2VuZCA9PSBhZGRy ZXNzKQogCQkJcmV0dXJuIHByZXYtPnZtX2ZsYWdzICYgVk1fR1JPV1NET1dOID8gMCA6IC1FTk9N RU07CiAKLQkJZXhwYW5kX2Rvd253YXJkcyh2bWEsIGFkZHJlc3MgLSBQQUdFX1NJWkUpOworCQly ZXR1cm4gZXhwYW5kX2Rvd253YXJkcyh2bWEsIGFkZHJlc3MgLSBQQUdFX1NJWkUpOwogCX0KIAlp ZiAoKHZtYS0+dm1fZmxhZ3MgJiBWTV9HUk9XU1VQKSAmJiBhZGRyZXNzICsgUEFHRV9TSVpFID09 IHZtYS0+dm1fZW5kKSB7CiAJCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqbmV4dCA9IHZtYS0+dm1f bmV4dDsKQEAgLTMxMjYsNyArMzEzMyw3IEBAIHN0YXRpYyBpbmxpbmUgaW50IGNoZWNrX3N0YWNr X2d1YXJkX3BhZ2Uoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHVuc2lnbmVkIGxvCiAJCWlm IChuZXh0ICYmIG5leHQtPnZtX3N0YXJ0ID09IGFkZHJlc3MgKyBQQUdFX1NJWkUpCiAJCQlyZXR1 cm4gbmV4dC0+dm1fZmxhZ3MgJiBWTV9HUk9XU1VQID8gMCA6IC1FTk9NRU07CiAKLQkJZXhwYW5k X3Vwd2FyZHModm1hLCBhZGRyZXNzICsgUEFHRV9TSVpFKTsKKwkJcmV0dXJuIGV4cGFuZF91cHdh cmRzKHZtYSwgYWRkcmVzcyArIFBBR0VfU0laRSk7CiAJfQogCXJldHVybiAwOwogfQpAQCAtMzE0 OCw3ICszMTU1LDcgQEAgc3RhdGljIGludCBkb19hbm9ueW1vdXNfcGFnZShzdHJ1Y3QgbW1fc3Ry dWN0ICptbSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsCiAKIAkvKiBDaGVjayBpZiB3ZSBu ZWVkIHRvIGFkZCBhIGd1YXJkIHBhZ2UgdG8gdGhlIHN0YWNrICovCiAJaWYgKGNoZWNrX3N0YWNr X2d1YXJkX3BhZ2Uodm1hLCBhZGRyZXNzKSA8IDApCi0JCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7 CisJCXJldHVybiBWTV9GQVVMVF9TSUdTRUdWOwogCiAJLyogVXNlIHRoZSB6ZXJvLXBhZ2UgZm9y IHJlYWRzICovCiAJaWYgKCEoZmxhZ3MgJiBGQVVMVF9GTEFHX1dSSVRFKSkgewpkaWZmIC0tZ2l0 IGEvbW0vbW1hcC5jIGIvbW0vbW1hcC5jCmluZGV4IGYyYmFkYmYuLjEzYjU2ODUgMTAwNjQ0Ci0t LSBhL21tL21tYXAuYworKysgYi9tbS9tbWFwLmMKQEAgLTUzNyw5ICs1MzcsMTQgQEAgYWdhaW46 CQkJcmVtb3ZlX25leHQgPSAxICsgKGVuZCA+IG5leHQtPnZtX2VuZCk7CiAJCSAqIHNocmlua2lu ZyB2bWEgaGFkLCB0byBjb3ZlciBhbnkgYW5vbiBwYWdlcyBpbXBvcnRlZC4KIAkJICovCiAJCWlm IChleHBvcnRlciAmJiBleHBvcnRlci0+YW5vbl92bWEgJiYgIWltcG9ydGVyLT5hbm9uX3ZtYSkg ewotCQkJaWYgKGFub25fdm1hX2Nsb25lKGltcG9ydGVyLCBleHBvcnRlcikpCi0JCQkJcmV0dXJu IC1FTk9NRU07CisJCQlpbnQgZXJyb3I7CisKIAkJCWltcG9ydGVyLT5hbm9uX3ZtYSA9IGV4cG9y dGVyLT5hbm9uX3ZtYTsKKwkJCWVycm9yID0gYW5vbl92bWFfY2xvbmUoaW1wb3J0ZXIsIGV4cG9y dGVyKTsKKwkJCWlmIChlcnJvcikgeworCQkJCWltcG9ydGVyLT5hbm9uX3ZtYSA9IE5VTEw7CisJ CQkJcmV0dXJuIGVycm9yOworCQkJfQogCQl9CiAJfQogCkBAIC0xNjQ4LDE0ICsxNjUzLDE3IEBA IHN0YXRpYyBpbnQgYWNjdF9zdGFja19ncm93dGgoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEs IHVuc2lnbmVkIGxvbmcgc2l6ZSwgdW5zCiB7CiAJc3RydWN0IG1tX3N0cnVjdCAqbW0gPSB2bWEt PnZtX21tOwogCXN0cnVjdCBybGltaXQgKnJsaW0gPSBjdXJyZW50LT5zaWduYWwtPnJsaW07Ci0J dW5zaWduZWQgbG9uZyBuZXdfc3RhcnQ7CisJdW5zaWduZWQgbG9uZyBuZXdfc3RhcnQsIGFjdHVh bF9zaXplOwogCiAJLyogYWRkcmVzcyBzcGFjZSBsaW1pdCB0ZXN0cyAqLwogCWlmICghbWF5X2V4 cGFuZF92bShtbSwgZ3JvdykpCiAJCXJldHVybiAtRU5PTUVNOwogCiAJLyogU3RhY2sgbGltaXQg dGVzdCAqLwotCWlmIChzaXplID4gQUNDRVNTX09OQ0UocmxpbVtSTElNSVRfU1RBQ0tdLnJsaW1f Y3VyKSkKKwlhY3R1YWxfc2l6ZSA9IHNpemU7CisJaWYgKHNpemUgJiYgKHZtYS0+dm1fZmxhZ3Mg JiAoVk1fR1JPV1NVUCB8IFZNX0dST1dTRE9XTikpKQorCQlhY3R1YWxfc2l6ZSAtPSBQQUdFX1NJ WkU7CisJaWYgKGFjdHVhbF9zaXplID4gQUNDRVNTX09OQ0UocmxpbVtSTElNSVRfU1RBQ0tdLnJs aW1fY3VyKSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKIAkvKiBtbG9jayBsaW1pdCB0ZXN0cyAqLwpk aWZmIC0tZ2l0IGEvbW0vcGFnZS13cml0ZWJhY2suYyBiL21tL3BhZ2Utd3JpdGViYWNrLmMKaW5k ZXggZDJhYzA1Ny4uYWFkMjJhYSAxMDA2NDQKLS0tIGEvbW0vcGFnZS13cml0ZWJhY2suYworKysg Yi9tbS9wYWdlLXdyaXRlYmFjay5jCkBAIC0xMjAyLDE2ICsxMjAyLDYgQEAgcGF1c2U6CiAJCWJk aV9zdGFydF9iYWNrZ3JvdW5kX3dyaXRlYmFjayhiZGkpOwogfQogCi12b2lkIHNldF9wYWdlX2Rp cnR5X2JhbGFuY2Uoc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBwYWdlX21rd3JpdGUpCi17Ci0JaWYg KHNldF9wYWdlX2RpcnR5KHBhZ2UpIHx8IHBhZ2VfbWt3cml0ZSkgewotCQlzdHJ1Y3QgYWRkcmVz c19zcGFjZSAqbWFwcGluZyA9IHBhZ2VfbWFwcGluZyhwYWdlKTsKLQotCQlpZiAobWFwcGluZykK LQkJCWJhbGFuY2VfZGlydHlfcGFnZXNfcmF0ZWxpbWl0ZWQobWFwcGluZyk7Ci0JfQotfQotCiBz dGF0aWMgREVGSU5FX1BFUl9DUFUoaW50LCBiZHBfcmF0ZWxpbWl0cyk7CiAKIC8qKgpAQCAtMTc2 NCwzMiArMTc1NCwyNSBAQCBFWFBPUlRfU1lNQk9MKGFjY291bnRfcGFnZV93cml0ZWJhY2spOwog ICogcGFnZSBkaXJ0eSBpbiB0aGF0IGNhc2UsIGJ1dCBub3QgYWxsIHRoZSBidWZmZXJzLiAgVGhp cyBpcyBhICJib3R0b20tdXAiCiAgKiBkaXJ0eWluZywgd2hlcmVhcyBfX3NldF9wYWdlX2RpcnR5 X2J1ZmZlcnMoKSBpcyBhICJ0b3AtZG93biIgZGlydHlpbmcuCiAgKgotICogTW9zdCBjYWxsZXJz IGhhdmUgbG9ja2VkIHRoZSBwYWdlLCB3aGljaCBwaW5zIHRoZSBhZGRyZXNzX3NwYWNlIGluIG1l bW9yeS4KLSAqIEJ1dCB6YXBfcHRlX3JhbmdlKCkgZG9lcyBub3QgbG9jayB0aGUgcGFnZSwgaG93 ZXZlciBpbiB0aGF0IGNhc2UgdGhlCi0gKiBtYXBwaW5nIGlzIHBpbm5lZCBieSB0aGUgdm1hJ3Mg LT52bV9maWxlIHJlZmVyZW5jZS4KLSAqCi0gKiBXZSB0YWtlIGNhcmUgdG8gaGFuZGxlIHRoZSBj YXNlIHdoZXJlIHRoZSBwYWdlIHdhcyB0cnVuY2F0ZWQgZnJvbSB0aGUKLSAqIG1hcHBpbmcgYnkg cmUtY2hlY2tpbmcgcGFnZV9tYXBwaW5nKCkgaW5zaWRlIHRyZWVfbG9jay4KKyAqIFRoZSBjYWxs ZXIgbXVzdCBlbnN1cmUgdGhpcyBkb2Vzbid0IHJhY2Ugd2l0aCB0cnVuY2F0aW9uLiAgTW9zdCB3 aWxsIHNpbXBseQorICogaG9sZCB0aGUgcGFnZSBsb2NrLCBidXQgZS5nLiB6YXBfcHRlX3Jhbmdl KCkgY2FsbHMgd2l0aCB0aGUgcGFnZSBtYXBwZWQgYW5kCisgKiB0aGUgcHRlIGxvY2sgaGVsZCwg d2hpY2ggYWxzbyBsb2NrcyBvdXQgdHJ1bmNhdGlvbi4KICAqLwogaW50IF9fc2V0X3BhZ2VfZGly dHlfbm9idWZmZXJzKHN0cnVjdCBwYWdlICpwYWdlKQogewogCWlmICghVGVzdFNldFBhZ2VEaXJ0 eShwYWdlKSkgewogCQlzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZyA9IHBhZ2VfbWFwcGlu ZyhwYWdlKTsKLQkJc3RydWN0IGFkZHJlc3Nfc3BhY2UgKm1hcHBpbmcyOwogCQl1bnNpZ25lZCBs b25nIGZsYWdzOwogCiAJCWlmICghbWFwcGluZykKIAkJCXJldHVybiAxOwogCiAJCXNwaW5fbG9j a19pcnFzYXZlKCZtYXBwaW5nLT50cmVlX2xvY2ssIGZsYWdzKTsKLQkJbWFwcGluZzIgPSBwYWdl X21hcHBpbmcocGFnZSk7Ci0JCWlmIChtYXBwaW5nMikgeyAvKiBSYWNlIHdpdGggdHJ1bmNhdGU/ ICovCi0JCQlCVUdfT04obWFwcGluZzIgIT0gbWFwcGluZyk7Ci0JCQlXQVJOX09OX09OQ0UoIVBh Z2VQcml2YXRlKHBhZ2UpICYmICFQYWdlVXB0b2RhdGUocGFnZSkpOwotCQkJYWNjb3VudF9wYWdl X2RpcnRpZWQocGFnZSwgbWFwcGluZyk7Ci0JCQlyYWRpeF90cmVlX3RhZ19zZXQoJm1hcHBpbmct PnBhZ2VfdHJlZSwKLQkJCQlwYWdlX2luZGV4KHBhZ2UpLCBQQUdFQ0FDSEVfVEFHX0RJUlRZKTsK LQkJfQorCQlCVUdfT04ocGFnZV9tYXBwaW5nKHBhZ2UpICE9IG1hcHBpbmcpOworCQlXQVJOX09O X09OQ0UoIVBhZ2VQcml2YXRlKHBhZ2UpICYmICFQYWdlVXB0b2RhdGUocGFnZSkpOworCQlhY2Nv dW50X3BhZ2VfZGlydGllZChwYWdlLCBtYXBwaW5nKTsKKwkJcmFkaXhfdHJlZV90YWdfc2V0KCZt YXBwaW5nLT5wYWdlX3RyZWUsIHBhZ2VfaW5kZXgocGFnZSksCisJCQkJICAgUEFHRUNBQ0hFX1RB R19ESVJUWSk7CiAJCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJm1hcHBpbmctPnRyZWVfbG9jaywg ZmxhZ3MpOwogCQlpZiAobWFwcGluZy0+aG9zdCkgewogCQkJLyogIVBhZ2VBbm9uICYmICFzd2Fw cGVyX3NwYWNlICovCkBAIC0xOTQ2LDEyICsxOTI5LDEwIEBAIGludCBjbGVhcl9wYWdlX2RpcnR5 X2Zvcl9pbyhzdHJ1Y3QgcGFnZSAqcGFnZSkKIAkJLyoKIAkJICogV2UgY2FyZWZ1bGx5IHN5bmNo cm9uaXNlIGZhdWx0IGhhbmRsZXJzIGFnYWluc3QKIAkJICogaW5zdGFsbGluZyBhIGRpcnR5IHB0 ZSBhbmQgbWFya2luZyB0aGUgcGFnZSBkaXJ0eQotCQkgKiBhdCB0aGlzIHBvaW50LiBXZSBkbyB0 aGlzIGJ5IGhhdmluZyB0aGVtIGhvbGQgdGhlCi0JCSAqIHBhZ2UgbG9jayBhdCBzb21lIHBvaW50 IGFmdGVyIGluc3RhbGxpbmcgdGhlaXIKLQkJICogcHRlLCBidXQgYmVmb3JlIG1hcmtpbmcgdGhl IHBhZ2UgZGlydHkuCi0JCSAqIFBhZ2VzIGFyZSBhbHdheXMgbG9ja2VkIGNvbWluZyBpbiBoZXJl LCBzbyB3ZSBnZXQKLQkJICogdGhlIGRlc2lyZWQgZXhjbHVzaW9uLiBTZWUgbW0vbWVtb3J5LmM6 ZG9fd3BfcGFnZSgpCi0JCSAqIGZvciBtb3JlIGNvbW1lbnRzLgorCQkgKiBhdCB0aGlzIHBvaW50 LiAgV2UgZG8gdGhpcyBieSBoYXZpbmcgdGhlbSBob2xkIHRoZQorCQkgKiBwYWdlIGxvY2sgd2hp bGUgZGlydHlpbmcgdGhlIHBhZ2UsIGFuZCBwYWdlcyBhcmUKKwkJICogYWx3YXlzIGxvY2tlZCBj b21pbmcgaW4gaGVyZSwgc28gd2UgZ2V0IHRoZSBkZXNpcmVkCisJCSAqIGV4Y2x1c2lvbi4KIAkJ ICovCiAJCWlmIChUZXN0Q2xlYXJQYWdlRGlydHkocGFnZSkpIHsKIAkJCWRlY196b25lX3BhZ2Vf c3RhdGUocGFnZSwgTlJfRklMRV9ESVJUWSk7CmRpZmYgLS1naXQgYS9tbS9ybWFwLmMgYi9tbS9y bWFwLmMKaW5kZXggZjNmNmZkMy4uMmM0ZWUzZSAxMDA2NDQKLS0tIGEvbW0vcm1hcC5jCisrKyBi L21tL3JtYXAuYwpAQCAtNzIsNiArNzIsOCBAQCBzdGF0aWMgaW5saW5lIHN0cnVjdCBhbm9uX3Zt YSAqYW5vbl92bWFfYWxsb2Modm9pZCkKIAlhbm9uX3ZtYSA9IGttZW1fY2FjaGVfYWxsb2MoYW5v bl92bWFfY2FjaGVwLCBHRlBfS0VSTkVMKTsKIAlpZiAoYW5vbl92bWEpIHsKIAkJYXRvbWljX3Nl dCgmYW5vbl92bWEtPnJlZmNvdW50LCAxKTsKKwkJYW5vbl92bWEtPmRlZ3JlZSA9IDE7CS8qIFJl ZmVyZW5jZSBmb3IgZmlyc3Qgdm1hICovCisJCWFub25fdm1hLT5wYXJlbnQgPSBhbm9uX3ZtYTsK IAkJLyoKIAkJICogSW5pdGlhbGlzZSB0aGUgYW5vbl92bWEgcm9vdCB0byBwb2ludCB0byBpdHNl bGYuIElmIGNhbGxlZAogCQkgKiBmcm9tIGZvcmssIHRoZSByb290IHdpbGwgYmUgcmVzZXQgdG8g dGhlIHBhcmVudHMgYW5vbl92bWEuCkBAIC0xODEsNiArMTgzLDggQEAgaW50IGFub25fdm1hX3By ZXBhcmUoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCQlhdmMtPnZtYSA9IHZtYTsKIAkJ CWxpc3RfYWRkKCZhdmMtPnNhbWVfdm1hLCAmdm1hLT5hbm9uX3ZtYV9jaGFpbik7CiAJCQlsaXN0 X2FkZF90YWlsKCZhdmMtPnNhbWVfYW5vbl92bWEsICZhbm9uX3ZtYS0+aGVhZCk7CisJCQkvKiB2 bWEgcmVmZXJlbmNlIG9yIHNlbGYtcGFyZW50IGxpbmsgZm9yIG5ldyByb290ICovCisJCQlhbm9u X3ZtYS0+ZGVncmVlKys7CiAJCQlhbGxvY2F0ZWQgPSBOVUxMOwogCQkJYXZjID0gTlVMTDsKIAkJ fQpAQCAtMjQ0LDYgKzI0OCwxNCBAQCBzdGF0aWMgdm9pZCBhbm9uX3ZtYV9jaGFpbl9saW5rKHN0 cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLAogLyoKICAqIEF0dGFjaCB0aGUgYW5vbl92bWFzIGZy b20gc3JjIHRvIGRzdC4KICAqIFJldHVybnMgMCBvbiBzdWNjZXNzLCAtRU5PTUVNIG9uIGZhaWx1 cmUuCisgKgorICogSWYgZHN0LT5hbm9uX3ZtYSBpcyBOVUxMIHRoaXMgZnVuY3Rpb24gdHJpZXMg dG8gZmluZCBhbmQgcmV1c2UgZXhpc3RpbmcKKyAqIGFub25fdm1hIHdoaWNoIGhhcyBubyB2bWFz IGFuZCBvbmx5IG9uZSBjaGlsZCBhbm9uX3ZtYS4gVGhpcyBwcmV2ZW50cworICogZGVncmFkYXRp b24gb2YgYW5vbl92bWEgaGllcmFyY2h5IHRvIGVuZGxlc3MgbGluZWFyIGNoYWluIGluIGNhc2Ug b2YKKyAqIGNvbnN0YW50bHkgZm9ya2luZyB0YXNrLiBPbiB0aGUgb3RoZXIgaGFuZCwgYW4gYW5v bl92bWEgd2l0aCBtb3JlIHRoYW4gb25lCisgKiBjaGlsZCBpc24ndCByZXVzZWQgZXZlbiBpZiB0 aGVyZSB3YXMgbm8gYWxpdmUgdm1hLCB0aHVzIHJtYXAgd2Fsa2VyIGhhcyBhCisgKiBnb29kIGNo YW5jZSBvZiBhdm9pZGluZyBzY2FubmluZyB0aGUgd2hvbGUgaGllcmFyY2h5IHdoZW4gaXQgc2Vh cmNoZXMgd2hlcmUKKyAqIHBhZ2UgaXMgbWFwcGVkLgogICovCiBpbnQgYW5vbl92bWFfY2xvbmUo c3RydWN0IHZtX2FyZWFfc3RydWN0ICpkc3QsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqc3JjKQog ewpAQCAtMjY0LDcgKzI3NiwyMSBAQCBpbnQgYW5vbl92bWFfY2xvbmUoc3RydWN0IHZtX2FyZWFf c3RydWN0ICpkc3QsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqc3JjKQogCQlhbm9uX3ZtYSA9IHBh dmMtPmFub25fdm1hOwogCQlyb290ID0gbG9ja19hbm9uX3ZtYV9yb290KHJvb3QsIGFub25fdm1h KTsKIAkJYW5vbl92bWFfY2hhaW5fbGluayhkc3QsIGF2YywgYW5vbl92bWEpOworCisJCS8qCisJ CSAqIFJldXNlIGV4aXN0aW5nIGFub25fdm1hIGlmIGl0cyBkZWdyZWUgbG93ZXIgdGhhbiB0d28s CisJCSAqIHRoYXQgbWVhbnMgaXQgaGFzIG5vIHZtYSBhbmQgb25seSBvbmUgYW5vbl92bWEgY2hp bGQuCisJCSAqCisJCSAqIERvIG5vdCBjaG9zZSBwYXJlbnQgYW5vbl92bWEsIG90aGVyd2lzZSBm aXJzdCBjaGlsZAorCQkgKiB3aWxsIGFsd2F5cyByZXVzZSBpdC4gUm9vdCBhbm9uX3ZtYSBpcyBu ZXZlciByZXVzZWQ6CisJCSAqIGl0IGhhcyBzZWxmLXBhcmVudCByZWZlcmVuY2UgYW5kIGF0IGxl YXN0IG9uZSBjaGlsZC4KKwkJICovCisJCWlmICghZHN0LT5hbm9uX3ZtYSAmJiBhbm9uX3ZtYSAh PSBzcmMtPmFub25fdm1hICYmCisJCQkJYW5vbl92bWEtPmRlZ3JlZSA8IDIpCisJCQlkc3QtPmFu b25fdm1hID0gYW5vbl92bWE7CiAJfQorCWlmIChkc3QtPmFub25fdm1hKQorCQlkc3QtPmFub25f dm1hLT5kZWdyZWUrKzsKIAl1bmxvY2tfYW5vbl92bWFfcm9vdChyb290KTsKIAlyZXR1cm4gMDsK IApAQCAtMjg3LDYgKzMxMyw5IEBAIGludCBhbm9uX3ZtYV9mb3JrKHN0cnVjdCB2bV9hcmVhX3N0 cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnB2bWEpCiAJaWYgKCFwdm1hLT5hbm9u X3ZtYSkKIAkJcmV0dXJuIDA7CiAKKwkvKiBEcm9wIGluaGVyaXRlZCBhbm9uX3ZtYSwgd2UnbGwg cmV1c2UgZXhpc3Rpbmcgb3IgYWxsb2NhdGUgbmV3LiAqLworCXZtYS0+YW5vbl92bWEgPSBOVUxM OworCiAJLyoKIAkgKiBGaXJzdCwgYXR0YWNoIHRoZSBuZXcgVk1BIHRvIHRoZSBwYXJlbnQgVk1B J3MgYW5vbl92bWFzLAogCSAqIHNvIHJtYXAgY2FuIGZpbmQgbm9uLUNPV2VkIHBhZ2VzIGluIGNo aWxkIHByb2Nlc3Nlcy4KQEAgLTI5NCw2ICszMjMsMTAgQEAgaW50IGFub25fdm1hX2Zvcmsoc3Ry dWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqcHZtYSkKIAlp ZiAoYW5vbl92bWFfY2xvbmUodm1hLCBwdm1hKSkKIAkJcmV0dXJuIC1FTk9NRU07CiAKKwkvKiBB biBleGlzdGluZyBhbm9uX3ZtYSBoYXMgYmVlbiByZXVzZWQsIGFsbCBkb25lIHRoZW4uICovCisJ aWYgKHZtYS0+YW5vbl92bWEpCisJCXJldHVybiAwOworCiAJLyogVGhlbiBhZGQgb3VyIG93biBh bm9uX3ZtYS4gKi8KIAlhbm9uX3ZtYSA9IGFub25fdm1hX2FsbG9jKCk7CiAJaWYgKCFhbm9uX3Zt YSkKQEAgLTMwNyw2ICszNDAsNyBAQCBpbnQgYW5vbl92bWFfZm9yayhzdHJ1Y3Qgdm1fYXJlYV9z dHJ1Y3QgKnZtYSwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICpwdm1hKQogCSAqIGxvY2sgYW55IG9m IHRoZSBhbm9uX3ZtYXMgaW4gdGhpcyBhbm9uX3ZtYSB0cmVlLgogCSAqLwogCWFub25fdm1hLT5y b290ID0gcHZtYS0+YW5vbl92bWEtPnJvb3Q7CisJYW5vbl92bWEtPnBhcmVudCA9IHB2bWEtPmFu b25fdm1hOwogCS8qCiAJICogV2l0aCByZWZjb3VudHMsIGFuIGFub25fdm1hIGNhbiBzdGF5IGFy b3VuZCBsb25nZXIgdGhhbiB0aGUKIAkgKiBwcm9jZXNzIGl0IGJlbG9uZ3MgdG8uIFRoZSByb290 IGFub25fdm1hIG5lZWRzIHRvIGJlIHBpbm5lZCB1bnRpbApAQCAtMzE3LDYgKzM1MSw3IEBAIGlu dCBhbm9uX3ZtYV9mb3JrKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLCBzdHJ1Y3Qgdm1fYXJl YV9zdHJ1Y3QgKnB2bWEpCiAJdm1hLT5hbm9uX3ZtYSA9IGFub25fdm1hOwogCWFub25fdm1hX2xv Y2soYW5vbl92bWEpOwogCWFub25fdm1hX2NoYWluX2xpbmsodm1hLCBhdmMsIGFub25fdm1hKTsK Kwlhbm9uX3ZtYS0+cGFyZW50LT5kZWdyZWUrKzsKIAlhbm9uX3ZtYV91bmxvY2soYW5vbl92bWEp OwogCiAJcmV0dXJuIDA7CkBAIC0zNDcsMTIgKzM4MiwxNiBAQCB2b2lkIHVubGlua19hbm9uX3Zt YXMoc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEpCiAJCSAqIExlYXZlIGVtcHR5IGFub25fdm1h cyBvbiB0aGUgbGlzdCAtIHdlJ2xsIG5lZWQKIAkJICogdG8gZnJlZSB0aGVtIG91dHNpZGUgdGhl IGxvY2suCiAJCSAqLwotCQlpZiAobGlzdF9lbXB0eSgmYW5vbl92bWEtPmhlYWQpKQorCQlpZiAo bGlzdF9lbXB0eSgmYW5vbl92bWEtPmhlYWQpKSB7CisJCQlhbm9uX3ZtYS0+cGFyZW50LT5kZWdy ZWUtLTsKIAkJCWNvbnRpbnVlOworCQl9CiAKIAkJbGlzdF9kZWwoJmF2Yy0+c2FtZV92bWEpOwog CQlhbm9uX3ZtYV9jaGFpbl9mcmVlKGF2Yyk7CiAJfQorCWlmICh2bWEtPmFub25fdm1hKQorCQl2 bWEtPmFub25fdm1hLT5kZWdyZWUtLTsKIAl1bmxvY2tfYW5vbl92bWFfcm9vdChyb290KTsKIAog CS8qCkBAIC0zNjMsNiArNDAyLDcgQEAgdm9pZCB1bmxpbmtfYW5vbl92bWFzKHN0cnVjdCB2bV9h cmVhX3N0cnVjdCAqdm1hKQogCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShhdmMsIG5leHQsICZ2 bWEtPmFub25fdm1hX2NoYWluLCBzYW1lX3ZtYSkgewogCQlzdHJ1Y3QgYW5vbl92bWEgKmFub25f dm1hID0gYXZjLT5hbm9uX3ZtYTsKIAorCQlCVUdfT04oYW5vbl92bWEtPmRlZ3JlZSk7CiAJCXB1 dF9hbm9uX3ZtYShhbm9uX3ZtYSk7CiAKIAkJbGlzdF9kZWwoJmF2Yy0+c2FtZV92bWEpOwpkaWZm IC0tZ2l0IGEvbmV0L2NvcmUvZGV2LmMgYi9uZXQvY29yZS9kZXYuYwppbmRleCA4NTRkYTE1Li5m Y2I1MTMzIDEwMDY0NAotLS0gYS9uZXQvY29yZS9kZXYuYworKysgYi9uZXQvY29yZS9kZXYuYwpA QCAtMTYxNiw2ICsxNjE2LDcgQEAgaW50IGRldl9mb3J3YXJkX3NrYihzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCXNrYi0+dHN0YW1wLnR2NjQgPSAwOwogCXNr Yi0+cGt0X3R5cGUgPSBQQUNLRVRfSE9TVDsKIAlza2ItPnByb3RvY29sID0gZXRoX3R5cGVfdHJh bnMoc2tiLCBkZXYpOworCXNrYl9wb3N0cHVsbF9yY3N1bShza2IsIGV0aF9oZHIoc2tiKSwgRVRI X0hMRU4pOwogCXNrYi0+bWFyayA9IDA7CiAJc2VjcGF0aF9yZXNldChza2IpOwogCW5mX3Jlc2V0 KHNrYik7CkBAIC0yMTI4LDExICsyMTI5LDEzIEBAIHUzMiBuZXRpZl9za2JfZmVhdHVyZXMoc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAlpZiAoc2tiX3NoaW5mbyhza2IpLT5nc29fc2VncyA+IHNrYi0+ ZGV2LT5nc29fbWF4X3NlZ3MpCiAJCWZlYXR1cmVzICY9IH5ORVRJRl9GX0dTT19NQVNLOwogCi0J aWYgKHByb3RvY29sID09IGh0b25zKEVUSF9QXzgwMjFRKSkgewotCQlzdHJ1Y3Qgdmxhbl9ldGho ZHIgKnZlaCA9IChzdHJ1Y3Qgdmxhbl9ldGhoZHIgKilza2ItPmRhdGE7Ci0JCXByb3RvY29sID0g dmVoLT5oX3ZsYW5fZW5jYXBzdWxhdGVkX3Byb3RvOwotCX0gZWxzZSBpZiAoIXZsYW5fdHhfdGFn X3ByZXNlbnQoc2tiKSkgewotCQlyZXR1cm4gaGFybW9uaXplX2ZlYXR1cmVzKHNrYiwgcHJvdG9j b2wsIGZlYXR1cmVzKTsKKwlpZiAoIXZsYW5fdHhfdGFnX3ByZXNlbnQoc2tiKSkgeworCQlpZiAo dW5saWtlbHkocHJvdG9jb2wgPT0gaHRvbnMoRVRIX1BfODAyMVEpKSkgeworCQkJc3RydWN0IHZs YW5fZXRoaGRyICp2ZWggPSAoc3RydWN0IHZsYW5fZXRoaGRyICopc2tiLT5kYXRhOworCQkJcHJv dG9jb2wgPSB2ZWgtPmhfdmxhbl9lbmNhcHN1bGF0ZWRfcHJvdG87CisJCX0gZWxzZSB7CisJCQly ZXR1cm4gaGFybW9uaXplX2ZlYXR1cmVzKHNrYiwgcHJvdG9jb2wsIGZlYXR1cmVzKTsKKwkJfQog CX0KIAogCWZlYXR1cmVzICY9IChza2ItPmRldi0+dmxhbl9mZWF0dXJlcyB8IE5FVElGX0ZfSFdf VkxBTl9UWCk7CmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMK aW5kZXggOGEyYzJkZC4uZTA5MzUyOCAxMDA2NDQKLS0tIGEvbmV0L2NvcmUvc29jay5jCisrKyBi L25ldC9jb3JlL3NvY2suYwpAQCAtMTMxMSw3ICsxMzExLDYgQEAgdm9pZCBza19zZXR1cF9jYXBz KHN0cnVjdCBzb2NrICpzaywgc3RydWN0IGRzdF9lbnRyeSAqZHN0KQogCQl9IGVsc2UgewogCQkJ c2stPnNrX3JvdXRlX2NhcHMgfD0gTkVUSUZfRl9TRyB8IE5FVElGX0ZfSFdfQ1NVTTsKIAkJCXNr LT5za19nc29fbWF4X3NpemUgPSBkc3QtPmRldi0+Z3NvX21heF9zaXplOwotCQkJc2stPnNrX2dz b19tYXhfc2VncyA9IGRzdC0+ZGV2LT5nc29fbWF4X3NlZ3M7CiAJCX0KIAl9CiB9CmRpZmYgLS1n aXQgYS9uZXQvaXB2NC9hcnAuYyBiL25ldC9pcHY0L2FycC5jCmluZGV4IDU5YTcwNDEuLmQxZjU2 ZTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2FycC5jCisrKyBiL25ldC9pcHY0L2FycC5jCkBAIC01 OTIsMTYgKzU5MiwxOCBAQCBzdHJ1Y3Qgc2tfYnVmZiAqYXJwX2NyZWF0ZShpbnQgdHlwZSwgaW50 IHB0eXBlLCBfX2JlMzIgZGVzdF9pcCwKIAlzdHJ1Y3Qgc2tfYnVmZiAqc2tiOwogCXN0cnVjdCBh cnBoZHIgKmFycDsKIAl1bnNpZ25lZCBjaGFyICphcnBfcHRyOworCWludCBobGVuID0gTExfUkVT RVJWRURfU1BBQ0UoZGV2KTsKKwlpbnQgdGxlbiA9IGRldi0+bmVlZGVkX3RhaWxyb29tOwogCiAJ LyoKIAkgKglBbGxvY2F0ZSBhIGJ1ZmZlcgogCSAqLwogCi0Jc2tiID0gYWxsb2Nfc2tiKGFycF9o ZHJfbGVuKGRldikgKyBMTF9BTExPQ0FURURfU1BBQ0UoZGV2KSwgR0ZQX0FUT01JQyk7CisJc2ti ID0gYWxsb2Nfc2tiKGFycF9oZHJfbGVuKGRldikgKyBobGVuICsgdGxlbiwgR0ZQX0FUT01JQyk7 CiAJaWYgKHNrYiA9PSBOVUxMKQogCQlyZXR1cm4gTlVMTDsKIAotCXNrYl9yZXNlcnZlKHNrYiwg TExfUkVTRVJWRURfU1BBQ0UoZGV2KSk7CisJc2tiX3Jlc2VydmUoc2tiLCBobGVuKTsKIAlza2Jf cmVzZXRfbmV0d29ya19oZWFkZXIoc2tiKTsKIAlhcnAgPSAoc3RydWN0IGFycGhkciAqKSBza2Jf cHV0KHNrYiwgYXJwX2hkcl9sZW4oZGV2KSk7CiAJc2tiLT5kZXYgPSBkZXY7CmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pZ21wLmMgYi9uZXQvaXB2NC9pZ21wLmMKaW5kZXggN2ZlNjZkOS4uMDNlOTQ4 NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaWdtcC5jCisrKyBiL25ldC9pcHY0L2lnbXAuYwpAQCAt Mjk0LDkgKzI5NCw3IEBAIGlnbXBfc2NvdW50KHN0cnVjdCBpcF9tY19saXN0ICpwbWMsIGludCB0 eXBlLCBpbnQgZ2RlbGV0ZWQsIGludCBzZGVsZXRlZCkKIAlyZXR1cm4gc2NvdW50OwogfQogCi0j ZGVmaW5lIGlnbXBfc2tiX3NpemUoc2tiKSAoKih1bnNpZ25lZCBpbnQgKikoKHNrYiktPmNiKSkK LQotc3RhdGljIHN0cnVjdCBza19idWZmICppZ21wdjNfbmV3cGFjayhzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LCBpbnQgc2l6ZSkKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqaWdtcHYzX25ld3BhY2so c3RydWN0IG5ldF9kZXZpY2UgKmRldiwgdW5zaWduZWQgaW50IG10dSkKIHsKIAlzdHJ1Y3Qgc2tf YnVmZiAqc2tiOwogCXN0cnVjdCBydGFibGUgKnJ0OwpAQCAtMzA0LDkgKzMwMiwxMiBAQCBzdGF0 aWMgc3RydWN0IHNrX2J1ZmYgKmlnbXB2M19uZXdwYWNrKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYs IGludCBzaXplKQogCXN0cnVjdCBpZ21wdjNfcmVwb3J0ICpwaWc7CiAJc3RydWN0IG5ldCAqbmV0 ID0gZGV2X25ldChkZXYpOwogCXN0cnVjdCBmbG93aTQgZmw0OworCWludCBobGVuID0gTExfUkVT RVJWRURfU1BBQ0UoZGV2KTsKKwlpbnQgdGxlbiA9IGRldi0+bmVlZGVkX3RhaWxyb29tOworCXVu c2lnbmVkIGludCBzaXplID0gbXR1OwogCiAJd2hpbGUgKDEpIHsKLQkJc2tiID0gYWxsb2Nfc2ti KHNpemUgKyBMTF9BTExPQ0FURURfU1BBQ0UoZGV2KSwKKwkJc2tiID0gYWxsb2Nfc2tiKHNpemUg KyBobGVuICsgdGxlbiwKIAkJCQlHRlBfQVRPTUlDIHwgX19HRlBfTk9XQVJOKTsKIAkJaWYgKHNr YikKIAkJCWJyZWFrOwpAQCAtMzE0LDcgKzMxNSw2IEBAIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAq aWdtcHYzX25ld3BhY2soc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgaW50IHNpemUpCiAJCWlmIChz aXplIDwgMjU2KQogCQkJcmV0dXJuIE5VTEw7CiAJfQotCWlnbXBfc2tiX3NpemUoc2tiKSA9IHNp emU7CiAKIAlydCA9IGlwX3JvdXRlX291dHB1dF9wb3J0cyhuZXQsICZmbDQsIE5VTEwsIElHTVBW M19BTExfTUNSLCAwLAogCQkJCSAgIDAsIDAsCkBAIC0zMjcsNyArMzI3LDkgQEAgc3RhdGljIHN0 cnVjdCBza19idWZmICppZ21wdjNfbmV3cGFjayhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBpbnQg c2l6ZSkKIAlza2JfZHN0X3NldChza2IsICZydC0+ZHN0KTsKIAlza2ItPmRldiA9IGRldjsKIAot CXNrYl9yZXNlcnZlKHNrYiwgTExfUkVTRVJWRURfU1BBQ0UoZGV2KSk7CisJc2tiLT5yZXNlcnZl ZF90YWlscm9vbSA9IHNrYl9lbmRfb2Zmc2V0KHNrYikgLQorCQkJCSBtaW4obXR1LCBza2JfZW5k X29mZnNldChza2IpKTsKKwlza2JfcmVzZXJ2ZShza2IsIGhsZW4pOwogCiAJc2tiX3Jlc2V0X25l dHdvcmtfaGVhZGVyKHNrYik7CiAJcGlwID0gaXBfaGRyKHNrYik7CkBAIC0zOTYsOCArMzk4LDcg QEAgc3RhdGljIHN0cnVjdCBza19idWZmICphZGRfZ3JoZWFkKHN0cnVjdCBza19idWZmICpza2Is IHN0cnVjdCBpcF9tY19saXN0ICpwbWMsCiAJcmV0dXJuIHNrYjsKIH0KIAotI2RlZmluZSBBVkFJ TEFCTEUoc2tiKSAoKHNrYikgPyAoKHNrYiktPmRldiA/IGlnbXBfc2tiX3NpemUoc2tiKSAtIChz a2IpLT5sZW4gOiBcCi0Jc2tiX3RhaWxyb29tKHNrYikpIDogMCkKKyNkZWZpbmUgQVZBSUxBQkxF KHNrYikJKChza2IpID8gc2tiX2F2YWlscm9vbShza2IpIDogMCkKIAogc3RhdGljIHN0cnVjdCBz a19idWZmICphZGRfZ3JlYyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgaXBfbWNfbGlzdCAq cG1jLAogCWludCB0eXBlLCBpbnQgZ2RlbGV0ZWQsIGludCBzZGVsZXRlZCkKQEAgLTY0Nyw2ICs2 NDgsNyBAQCBzdGF0aWMgaW50IGlnbXBfc2VuZF9yZXBvcnQoc3RydWN0IGluX2RldmljZSAqaW5f ZGV2LCBzdHJ1Y3QgaXBfbWNfbGlzdCAqcG1jLAogCV9fYmUzMglncm91cCA9IHBtYyA/IHBtYy0+ bXVsdGlhZGRyIDogMDsKIAlzdHJ1Y3QgZmxvd2k0IGZsNDsKIAlfX2JlMzIJZHN0OworCWludCBo bGVuLCB0bGVuOwogCiAJaWYgKHR5cGUgPT0gSUdNUFYzX0hPU1RfTUVNQkVSU0hJUF9SRVBPUlQp CiAJCXJldHVybiBpZ21wdjNfc2VuZF9yZXBvcnQoaW5fZGV2LCBwbWMpOwpAQCAtNjYxLDcgKzY2 Myw5IEBAIHN0YXRpYyBpbnQgaWdtcF9zZW5kX3JlcG9ydChzdHJ1Y3QgaW5fZGV2aWNlICppbl9k ZXYsIHN0cnVjdCBpcF9tY19saXN0ICpwbWMsCiAJaWYgKElTX0VSUihydCkpCiAJCXJldHVybiAt MTsKIAotCXNrYiA9IGFsbG9jX3NrYihJR01QX1NJWkUrTExfQUxMT0NBVEVEX1NQQUNFKGRldiks IEdGUF9BVE9NSUMpOworCWhsZW4gPSBMTF9SRVNFUlZFRF9TUEFDRShkZXYpOworCXRsZW4gPSBk ZXYtPm5lZWRlZF90YWlscm9vbTsKKwlza2IgPSBhbGxvY19za2IoSUdNUF9TSVpFICsgaGxlbiAr IHRsZW4sIEdGUF9BVE9NSUMpOwogCWlmIChza2IgPT0gTlVMTCkgewogCQlpcF9ydF9wdXQocnQp OwogCQlyZXR1cm4gLTE7CkBAIC02NjksNyArNjczLDcgQEAgc3RhdGljIGludCBpZ21wX3NlbmRf cmVwb3J0KHN0cnVjdCBpbl9kZXZpY2UgKmluX2Rldiwgc3RydWN0IGlwX21jX2xpc3QgKnBtYywK IAogCXNrYl9kc3Rfc2V0KHNrYiwgJnJ0LT5kc3QpOwogCi0Jc2tiX3Jlc2VydmUoc2tiLCBMTF9S RVNFUlZFRF9TUEFDRShkZXYpKTsKKwlza2JfcmVzZXJ2ZShza2IsIGhsZW4pOwogCiAJc2tiX3Jl c2V0X25ldHdvcmtfaGVhZGVyKHNrYik7CiAJaXBoID0gaXBfaGRyKHNrYik7CmRpZmYgLS1naXQg YS9uZXQvaXB2NC9pcGNvbmZpZy5jIGIvbmV0L2lwdjQvaXBjb25maWcuYwppbmRleCA5OWVjMTE2 Li5lZmIxZmY1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcGNvbmZpZy5jCisrKyBiL25ldC9pcHY0 L2lwY29uZmlnLmMKQEAgLTc2NywxMyArNzY3LDE1IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBpY19i b290cF9zZW5kX2lmKHN0cnVjdCBpY19kZXZpY2UgKmQsIHVuc2lnbmVkIGxvbmcgamlmZmllc19k CiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAlzdHJ1Y3QgYm9vdHBfcGt0ICpiOwogCXN0cnVjdCBp cGhkciAqaDsKKwlpbnQgaGxlbiA9IExMX1JFU0VSVkVEX1NQQUNFKGRldik7CisJaW50IHRsZW4g PSBkZXYtPm5lZWRlZF90YWlscm9vbTsKIAogCS8qIEFsbG9jYXRlIHBhY2tldCAqLwotCXNrYiA9 IGFsbG9jX3NrYihzaXplb2Yoc3RydWN0IGJvb3RwX3BrdCkgKyBMTF9BTExPQ0FURURfU1BBQ0Uo ZGV2KSArIDE1LAorCXNrYiA9IGFsbG9jX3NrYihzaXplb2Yoc3RydWN0IGJvb3RwX3BrdCkgKyBo bGVuICsgdGxlbiArIDE1LAogCQkJR0ZQX0tFUk5FTCk7CiAJaWYgKCFza2IpCiAJCXJldHVybjsK LQlza2JfcmVzZXJ2ZShza2IsIExMX1JFU0VSVkVEX1NQQUNFKGRldikpOworCXNrYl9yZXNlcnZl KHNrYiwgaGxlbik7CiAJYiA9IChzdHJ1Y3QgYm9vdHBfcGt0ICopIHNrYl9wdXQoc2tiLCBzaXpl b2Yoc3RydWN0IGJvb3RwX3BrdCkpOwogCW1lbXNldChiLCAwLCBzaXplb2Yoc3RydWN0IGJvb3Rw X3BrdCkpOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9yYXcuYyBiL25ldC9pcHY0L3Jhdy5jCmlu ZGV4IDc1ZmVhMWYuLjA2M2JjZDUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3Jhdy5jCisrKyBiL25l dC9pcHY0L3Jhdy5jCkBAIC0zMjksNiArMzI5LDcgQEAgc3RhdGljIGludCByYXdfc2VuZF9oZHJp bmMoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgZmxvd2k0ICpmbDQsCiAJdW5zaWduZWQgaW50IGlw aGxlbjsKIAlpbnQgZXJyOwogCXN0cnVjdCBydGFibGUgKnJ0ID0gKnJ0cDsKKwlpbnQgaGxlbiwg dGxlbjsKIAogCWlmIChsZW5ndGggPiBydC0+ZHN0LmRldi0+bXR1KSB7CiAJCWlwX2xvY2FsX2Vy cm9yKHNrLCBFTVNHU0laRSwgZmw0LT5kYWRkciwgaW5ldC0+aW5ldF9kcG9ydCwKQEAgLTMzOCwx MiArMzM5LDE0IEBAIHN0YXRpYyBpbnQgcmF3X3NlbmRfaGRyaW5jKHN0cnVjdCBzb2NrICpzaywg c3RydWN0IGZsb3dpNCAqZmw0LAogCWlmIChmbGFncyZNU0dfUFJPQkUpCiAJCWdvdG8gb3V0Owog CisJaGxlbiA9IExMX1JFU0VSVkVEX1NQQUNFKHJ0LT5kc3QuZGV2KTsKKwl0bGVuID0gcnQtPmRz dC5kZXYtPm5lZWRlZF90YWlscm9vbTsKIAlza2IgPSBzb2NrX2FsbG9jX3NlbmRfc2tiKHNrLAot CQkJCSAgbGVuZ3RoICsgTExfQUxMT0NBVEVEX1NQQUNFKHJ0LT5kc3QuZGV2KSArIDE1LAorCQkJ CSAgbGVuZ3RoICsgaGxlbiArIHRsZW4gKyAxNSwKIAkJCQkgIGZsYWdzICYgTVNHX0RPTlRXQUlU LCAmZXJyKTsKIAlpZiAoc2tiID09IE5VTEwpCiAJCWdvdG8gZXJyb3I7Ci0Jc2tiX3Jlc2VydmUo c2tiLCBMTF9SRVNFUlZFRF9TUEFDRShydC0+ZHN0LmRldikpOworCXNrYl9yZXNlcnZlKHNrYiwg aGxlbik7CiAKIAlza2ItPnByaW9yaXR5ID0gc2stPnNrX3ByaW9yaXR5OwogCXNrYi0+bWFyayA9 IHNrLT5za19tYXJrOwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvdGNwLmMgYi9uZXQvaXB2NC90Y3Au YwppbmRleCAzMmM5ZTgzLi45YTdjMDFlIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysg Yi9uZXQvaXB2NC90Y3AuYwpAQCAtNzM4LDkgKzczOCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQg dGNwX3htaXRfc2l6ZV9nb2FsKHN0cnVjdCBzb2NrICpzaywgdTMyIG1zc19ub3csCiAJCQkgICBv bGRfc2l6ZV9nb2FsICsgbXNzX25vdyA+IHhtaXRfc2l6ZV9nb2FsKSkgewogCQkJeG1pdF9zaXpl X2dvYWwgPSBvbGRfc2l6ZV9nb2FsOwogCQl9IGVsc2UgewotCQkJdHAtPnhtaXRfc2l6ZV9nb2Fs X3NlZ3MgPQotCQkJCW1pbl90KHUxNiwgeG1pdF9zaXplX2dvYWwgLyBtc3Nfbm93LAotCQkJCSAg ICAgIHNrLT5za19nc29fbWF4X3NlZ3MpOworCQkJdHAtPnhtaXRfc2l6ZV9nb2FsX3NlZ3MgPSB4 bWl0X3NpemVfZ29hbCAvIG1zc19ub3c7CiAJCQl4bWl0X3NpemVfZ29hbCA9IHRwLT54bWl0X3Np emVfZ29hbF9zZWdzICogbXNzX25vdzsKIAkJfQogCX0KZGlmZiAtLWdpdCBhL25ldC9pcHY0L3Rj cF9jb25nLmMgYi9uZXQvaXB2NC90Y3BfY29uZy5jCmluZGV4IDZjZWJmZDIuLjg1MGM3MzcgMTAw NjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9jb25nLmMKKysrIGIvbmV0L2lwdjQvdGNwX2NvbmcuYwpA QCAtMjkwLDggKzI5MCw3IEBAIGludCB0Y3BfaXNfY3duZF9saW1pdGVkKGNvbnN0IHN0cnVjdCBz b2NrICpzaywgdTMyIGluX2ZsaWdodCkKIAlsZWZ0ID0gdHAtPnNuZF9jd25kIC0gaW5fZmxpZ2h0 OwogCWlmIChza19jYW5fZ3NvKHNrKSAmJgogCSAgICBsZWZ0ICogc3lzY3RsX3RjcF90c29fd2lu X2Rpdmlzb3IgPCB0cC0+c25kX2N3bmQgJiYKLQkgICAgbGVmdCAqIHRwLT5tc3NfY2FjaGUgPCBz ay0+c2tfZ3NvX21heF9zaXplICYmCi0JICAgIGxlZnQgPCBzay0+c2tfZ3NvX21heF9zZWdzKQor CSAgICBsZWZ0ICogdHAtPm1zc19jYWNoZSA8IHNrLT5za19nc29fbWF4X3NpemUpCiAJCXJldHVy biAxOwogCXJldHVybiBsZWZ0IDw9IHRjcF9tYXhfYnVyc3QodHApOwogfQpkaWZmIC0tZ2l0IGEv bmV0L2lwdjQvdGNwX291dHB1dC5jIGIvbmV0L2lwdjQvdGNwX291dHB1dC5jCmluZGV4IDBkNWEx MTguLjNhMzdmNTQgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3RjcF9vdXRwdXQuYworKysgYi9uZXQv aXB2NC90Y3Bfb3V0cHV0LmMKQEAgLTEzMjAsMjEgKzEzMjAsMjEgQEAgc3RhdGljIHZvaWQgdGNw X2N3bmRfdmFsaWRhdGUoc3RydWN0IHNvY2sgKnNrKQogICogd2hlbiB3ZSB3b3VsZCBiZSBhbGxv d2VkIHRvIHNlbmQgdGhlIHNwbGl0LWR1ZS10by1OYWdsZSBza2IgZnVsbHkuCiAgKi8KIHN0YXRp YyB1bnNpZ25lZCBpbnQgdGNwX21zc19zcGxpdF9wb2ludChjb25zdCBzdHJ1Y3Qgc29jayAqc2ss IGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCi0JCQkJCXVuc2lnbmVkIGludCBtc3Nfbm93LCB1 bnNpZ25lZCBpbnQgbWF4X3NlZ3MpCisJCQkJCXVuc2lnbmVkIGludCBtc3Nfbm93LCB1bnNpZ25l ZCBpbnQgY3duZCkKIHsKIAljb25zdCBzdHJ1Y3QgdGNwX3NvY2sgKnRwID0gdGNwX3NrKHNrKTsK LQl1MzIgbmVlZGVkLCB3aW5kb3csIG1heF9sZW47CisJdTMyIG5lZWRlZCwgd2luZG93LCBjd25k X2xlbjsKIAogCXdpbmRvdyA9IHRjcF93bmRfZW5kKHRwKSAtIFRDUF9TS0JfQ0Ioc2tiKS0+c2Vx OwotCW1heF9sZW4gPSBtc3Nfbm93ICogbWF4X3NlZ3M7CisJY3duZF9sZW4gPSBtc3Nfbm93ICog Y3duZDsKIAotCWlmIChsaWtlbHkobWF4X2xlbiA8PSB3aW5kb3cgJiYgc2tiICE9IHRjcF93cml0 ZV9xdWV1ZV90YWlsKHNrKSkpCi0JCXJldHVybiBtYXhfbGVuOworCWlmIChsaWtlbHkoY3duZF9s ZW4gPD0gd2luZG93ICYmIHNrYiAhPSB0Y3Bfd3JpdGVfcXVldWVfdGFpbChzaykpKQorCQlyZXR1 cm4gY3duZF9sZW47CiAKIAluZWVkZWQgPSBtaW4oc2tiLT5sZW4sIHdpbmRvdyk7CiAKLQlpZiAo bWF4X2xlbiA8PSBuZWVkZWQpCi0JCXJldHVybiBtYXhfbGVuOworCWlmIChjd25kX2xlbiA8PSBu ZWVkZWQpCisJCXJldHVybiBjd25kX2xlbjsKIAogCXJldHVybiBuZWVkZWQgLSBuZWVkZWQgJSBt c3Nfbm93OwogfQpAQCAtMTU2Miw4ICsxNTYyLDcgQEAgc3RhdGljIGludCB0Y3BfdHNvX3Nob3Vs ZF9kZWZlcihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiAJbGltaXQgPSBt aW4oc2VuZF93aW4sIGNvbmdfd2luKTsKIAogCS8qIElmIGEgZnVsbC1zaXplZCBUU08gc2tiIGNh biBiZSBzZW50LCBkbyBpdC4gKi8KLQlpZiAobGltaXQgPj0gbWluX3QodW5zaWduZWQgaW50LCBz ay0+c2tfZ3NvX21heF9zaXplLAotCQkJICAgc2stPnNrX2dzb19tYXhfc2VncyAqIHRwLT5tc3Nf Y2FjaGUpKQorCWlmIChsaW1pdCA+PSBzay0+c2tfZ3NvX21heF9zaXplKQogCQlnb3RvIHNlbmRf bm93OwogCiAJLyogTWlkZGxlIGluIHF1ZXVlIHdvbid0IGdldCBhbnkgbW9yZSBkYXRhLCBmdWxs IHNlbmRhYmxlIGFscmVhZHk/ICovCkBAIC0xNzkyLDkgKzE3OTEsNyBAQCBzdGF0aWMgaW50IHRj cF93cml0ZV94bWl0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgaW50IG1zc19ub3csIGludCBu b25hZ2xlLAogCQlsaW1pdCA9IG1zc19ub3c7CiAJCWlmICh0c29fc2VncyA+IDEgJiYgIXRjcF91 cmdfbW9kZSh0cCkpCiAJCQlsaW1pdCA9IHRjcF9tc3Nfc3BsaXRfcG9pbnQoc2ssIHNrYiwgbXNz X25vdywKLQkJCQkJCSAgICBtaW5fdCh1bnNpZ25lZCBpbnQsCi0JCQkJCQkJICBjd25kX3F1b3Rh LAotCQkJCQkJCSAgc2stPnNrX2dzb19tYXhfc2VncykpOworCQkJCQkJICAgIGN3bmRfcXVvdGEp OwogCiAJCWlmIChza2ItPmxlbiA+IGxpbWl0ICYmCiAJCSAgICB1bmxpa2VseSh0c29fZnJhZ21l bnQoc2ssIHNrYiwgbGltaXQsIG1zc19ub3csIGdmcCkpKQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv aXA2X291dHB1dC5jIGIvbmV0L2lwdjYvaXA2X291dHB1dC5jCmluZGV4IDQ2ZmM2YTMuLjIyMTVk NmIgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L2lwNl9vdXRwdXQuYworKysgYi9uZXQvaXB2Ni9pcDZf b3V0cHV0LmMKQEAgLTYyMyw2ICs2MjMsNyBAQCBpbnQgaXA2X2ZyYWdtZW50KHN0cnVjdCBza19i dWZmICpza2IsIGludCAoKm91dHB1dCkoc3RydWN0IHNrX2J1ZmYgKikpCiAJc3RydWN0IGlwdjZo ZHIgKnRtcF9oZHI7CiAJc3RydWN0IGZyYWdfaGRyICpmaDsKIAl1bnNpZ25lZCBpbnQgbXR1LCBo bGVuLCBsZWZ0LCBsZW47CisJaW50IGhyb29tLCB0cm9vbTsKIAlfX2JlMzIgZnJhZ19pZCA9IDA7 CiAJaW50IHB0ciwgb2Zmc2V0ID0gMCwgZXJyPTA7CiAJdTggKnByZXZoZHIsIG5leHRoZHIgPSAw OwpAQCAtNzg5LDYgKzc5MCw4IEBAIHNsb3dfcGF0aDoKIAkgKi8KIAogCSpwcmV2aGRyID0gTkVY VEhEUl9GUkFHTUVOVDsKKwlocm9vbSA9IExMX1JFU0VSVkVEX1NQQUNFKHJ0LT5kc3QuZGV2KTsK Kwl0cm9vbSA9IHJ0LT5kc3QuZGV2LT5uZWVkZWRfdGFpbHJvb207CiAKIAkvKgogCSAqCUtlZXAg Y29weWluZyBkYXRhIHVudGlsIHdlIHJ1biBvdXQuCkBAIC04MDcsNyArODEwLDggQEAgc2xvd19w YXRoOgogCQkgKglBbGxvY2F0ZSBidWZmZXIuCiAJCSAqLwogCi0JCWlmICgoZnJhZyA9IGFsbG9j X3NrYihsZW4raGxlbitzaXplb2Yoc3RydWN0IGZyYWdfaGRyKStMTF9BTExPQ0FURURfU1BBQ0Uo cnQtPmRzdC5kZXYpLCBHRlBfQVRPTUlDKSkgPT0gTlVMTCkgeworCQlpZiAoKGZyYWcgPSBhbGxv Y19za2IobGVuICsgaGxlbiArIHNpemVvZihzdHJ1Y3QgZnJhZ19oZHIpICsKKwkJCQkgICAgICBo cm9vbSArIHRyb29tLCBHRlBfQVRPTUlDKSkgPT0gTlVMTCkgewogCQkJTkVUREVCVUcoS0VSTl9J TkZPICJJUHY2OiBmcmFnOiBubyBtZW1vcnkgZm9yIG5ldyBmcmFnbWVudCFcbiIpOwogCQkJSVA2 X0lOQ19TVEFUUyhuZXQsIGlwNl9kc3RfaWRldihza2JfZHN0KHNrYikpLAogCQkJCSAgICAgIElQ U1RBVFNfTUlCX0ZSQUdGQUlMUyk7CkBAIC04MjAsNyArODI0LDcgQEAgc2xvd19wYXRoOgogCQkg Ki8KIAogCQlpcDZfY29weV9tZXRhZGF0YShmcmFnLCBza2IpOwotCQlza2JfcmVzZXJ2ZShmcmFn LCBMTF9SRVNFUlZFRF9TUEFDRShydC0+ZHN0LmRldikpOworCQlza2JfcmVzZXJ2ZShmcmFnLCBo cm9vbSk7CiAJCXNrYl9wdXQoZnJhZywgbGVuICsgaGxlbiArIHNpemVvZihzdHJ1Y3QgZnJhZ19o ZHIpKTsKIAkJc2tiX3Jlc2V0X25ldHdvcmtfaGVhZGVyKGZyYWcpOwogCQlmaCA9IChzdHJ1Y3Qg ZnJhZ19oZHIgKikoc2tiX25ldHdvcmtfaGVhZGVyKGZyYWcpICsgaGxlbik7CmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9tY2FzdC5jIGIvbmV0L2lwdjYvbWNhc3QuYwppbmRleCA0ZjEyYjY2Li43YmI2 NjQ0IDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9tY2FzdC5jCisrKyBiL25ldC9pcHY2L21jYXN0LmMK QEAgLTEzMzQsNyArMTMzNCw3IEBAIG1sZF9zY291bnQoc3RydWN0IGlmbWNhZGRyNiAqcG1jLCBp bnQgdHlwZSwgaW50IGdkZWxldGVkLCBpbnQgc2RlbGV0ZWQpCiAJcmV0dXJuIHNjb3VudDsKIH0K IAotc3RhdGljIHN0cnVjdCBza19idWZmICptbGRfbmV3cGFjayhzdHJ1Y3QgaW5ldDZfZGV2ICpp ZGV2LCBpbnQgc2l6ZSkKK3N0YXRpYyBzdHJ1Y3Qgc2tfYnVmZiAqbWxkX25ld3BhY2soc3RydWN0 IGluZXQ2X2RldiAqaWRldiwgdW5zaWduZWQgaW50IG10dSkKIHsKIAlzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2ID0gaWRldi0+ZGV2OwogCXN0cnVjdCBuZXQgKm5ldCA9IGRldl9uZXQoZGV2KTsKQEAg LTEzNDMsMTMgKzEzNDMsMTUgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICptbGRfbmV3cGFjayhz dHJ1Y3QgaW5ldDZfZGV2ICppZGV2LCBpbnQgc2l6ZSkKIAlzdHJ1Y3QgbWxkMl9yZXBvcnQgKnBt cjsKIAlzdHJ1Y3QgaW42X2FkZHIgYWRkcl9idWY7CiAJY29uc3Qgc3RydWN0IGluNl9hZGRyICpz YWRkcjsKKwlpbnQgaGxlbiA9IExMX1JFU0VSVkVEX1NQQUNFKGRldik7CisJaW50IHRsZW4gPSBk ZXYtPm5lZWRlZF90YWlscm9vbTsKKwl1bnNpZ25lZCBpbnQgc2l6ZSA9IG10dSArIGhsZW4gKyB0 bGVuOwogCWludCBlcnI7CiAJdTggcmFbOF0gPSB7IElQUFJPVE9fSUNNUFY2LCAwLAogCQkgICAg IElQVjZfVExWX1JPVVRFUkFMRVJULCAyLCAwLCAwLAogCQkgICAgIElQVjZfVExWX1BBRE4sIDAg fTsKIAogCS8qIHdlIGFzc3VtZSBzaXplID4gc2l6ZW9mKHJhKSBoZXJlICovCi0Jc2l6ZSArPSBM TF9BTExPQ0FURURfU1BBQ0UoZGV2KTsKIAkvKiBsaW1pdCBvdXIgYWxsb2NhdGlvbnMgdG8gb3Jk ZXItMCBwYWdlICovCiAJc2l6ZSA9IG1pbl90KGludCwgc2l6ZSwgU0tCX01BWF9PUkRFUigwLCAw KSk7CiAJc2tiID0gc29ja19hbGxvY19zZW5kX3NrYihzaywgc2l6ZSwgMSwgJmVycik7CkBAIC0x MzU3LDcgKzEzNTksOSBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm1sZF9uZXdwYWNrKHN0cnVj dCBpbmV0Nl9kZXYgKmlkZXYsIGludCBzaXplKQogCWlmICghc2tiKQogCQlyZXR1cm4gTlVMTDsK IAotCXNrYl9yZXNlcnZlKHNrYiwgTExfUkVTRVJWRURfU1BBQ0UoZGV2KSk7CisJc2tiLT5yZXNl cnZlZF90YWlscm9vbSA9IHNrYl9lbmRfb2Zmc2V0KHNrYikgLQorCQkJCSBtaW4obXR1LCBza2Jf ZW5kX29mZnNldChza2IpKTsKKwlza2JfcmVzZXJ2ZShza2IsIGhsZW4pOwogCiAJaWYgKF9faXB2 Nl9nZXRfbGxhZGRyKGlkZXYsICZhZGRyX2J1ZiwgSUZBX0ZfVEVOVEFUSVZFKSkgewogCQkvKiA8 ZHJhZnQtaWV0Zi1tYWdtYS1tbGQtc291cmNlLTA1LnR4dD46CkBAIC0xNDc3LDggKzE0ODEsNyBA QCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmFkZF9ncmhlYWQoc3RydWN0IHNrX2J1ZmYgKnNrYiwg c3RydWN0IGlmbWNhZGRyNiAqcG1jLAogCXJldHVybiBza2I7CiB9CiAKLSNkZWZpbmUgQVZBSUxB QkxFKHNrYikgKChza2IpID8gKChza2IpLT5kZXYgPyAoc2tiKS0+ZGV2LT5tdHUgLSAoc2tiKS0+ bGVuIDogXAotCXNrYl90YWlscm9vbShza2IpKSA6IDApCisjZGVmaW5lIEFWQUlMQUJMRShza2Ip CSgoc2tiKSA/IHNrYl9hdmFpbHJvb20oc2tiKSA6IDApCiAKIHN0YXRpYyBzdHJ1Y3Qgc2tfYnVm ZiAqYWRkX2dyZWMoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGlmbWNhZGRyNiAqcG1jLAog CWludCB0eXBlLCBpbnQgZ2RlbGV0ZWQsIGludCBzZGVsZXRlZCkKQEAgLTE3MjUsNiArMTcyOCw4 IEBAIHN0YXRpYyB2b2lkIGlnbXA2X3NlbmQoc3RydWN0IGluNl9hZGRyICphZGRyLCBzdHJ1Y3Qg bmV0X2RldmljZSAqZGV2LCBpbnQgdHlwZSkKIAlzdHJ1Y3QgbWxkX21zZyAqaGRyOwogCWNvbnN0 IHN0cnVjdCBpbjZfYWRkciAqc25kX2FkZHIsICpzYWRkcjsKIAlzdHJ1Y3QgaW42X2FkZHIgYWRk cl9idWY7CisJaW50IGhsZW4gPSBMTF9SRVNFUlZFRF9TUEFDRShkZXYpOworCWludCB0bGVuID0g ZGV2LT5uZWVkZWRfdGFpbHJvb207CiAJaW50IGVyciwgbGVuLCBwYXlsb2FkX2xlbiwgZnVsbF9s ZW47CiAJdTggcmFbOF0gPSB7IElQUFJPVE9fSUNNUFY2LCAwLAogCQkgICAgIElQVjZfVExWX1JP VVRFUkFMRVJULCAyLCAwLCAwLApAQCAtMTc0Niw3ICsxNzUxLDcgQEAgc3RhdGljIHZvaWQgaWdt cDZfc2VuZChzdHJ1Y3QgaW42X2FkZHIgKmFkZHIsIHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGlu dCB0eXBlKQogCQkgICAgICBJUFNUQVRTX01JQl9PVVQsIGZ1bGxfbGVuKTsKIAlyY3VfcmVhZF91 bmxvY2soKTsKIAotCXNrYiA9IHNvY2tfYWxsb2Nfc2VuZF9za2Ioc2ssIExMX0FMTE9DQVRFRF9T UEFDRShkZXYpICsgZnVsbF9sZW4sIDEsICZlcnIpOworCXNrYiA9IHNvY2tfYWxsb2Nfc2VuZF9z a2Ioc2ssIGhsZW4gKyB0bGVuICsgZnVsbF9sZW4sIDEsICZlcnIpOwogCiAJaWYgKHNrYiA9PSBO VUxMKSB7CiAJCXJjdV9yZWFkX2xvY2soKTsKQEAgLTE3NTYsNyArMTc2MSw3IEBAIHN0YXRpYyB2 b2lkIGlnbXA2X3NlbmQoc3RydWN0IGluNl9hZGRyICphZGRyLCBzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2LCBpbnQgdHlwZSkKIAkJcmV0dXJuOwogCX0KIAotCXNrYl9yZXNlcnZlKHNrYiwgTExfUkVT RVJWRURfU1BBQ0UoZGV2KSk7CisJc2tiX3Jlc2VydmUoc2tiLCBobGVuKTsKIAogCWlmIChpcHY2 X2dldF9sbGFkZHIoZGV2LCAmYWRkcl9idWYsIElGQV9GX1RFTlRBVElWRSkpIHsKIAkJLyogPGRy YWZ0LWlldGYtbWFnbWEtbWxkLXNvdXJjZS0wNS50eHQ+OgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYv bmRpc2MuYyBiL25ldC9pcHY2L25kaXNjLmMKaW5kZXggYmM1NTM1OC4uNjIwOTZkOCAxMDA2NDQK LS0tIGEvbmV0L2lwdjYvbmRpc2MuYworKysgYi9uZXQvaXB2Ni9uZGlzYy5jCkBAIC00NDYsNiAr NDQ2LDggQEAgc3RydWN0IHNrX2J1ZmYgKm5kaXNjX2J1aWxkX3NrYihzdHJ1Y3QgbmV0X2Rldmlj ZSAqZGV2LAogCXN0cnVjdCBzb2NrICpzayA9IG5ldC0+aXB2Ni5uZGlzY19zazsKIAlzdHJ1Y3Qg c2tfYnVmZiAqc2tiOwogCXN0cnVjdCBpY21wNmhkciAqaGRyOworCWludCBobGVuID0gTExfUkVT RVJWRURfU1BBQ0UoZGV2KTsKKwlpbnQgdGxlbiA9IGRldi0+bmVlZGVkX3RhaWxyb29tOwogCWlu dCBsZW47CiAJdTggKm9wdDsKIApAQCAtNDU3LDcgKzQ1OSw3IEBAIHN0cnVjdCBza19idWZmICpu ZGlzY19idWlsZF9za2Ioc3RydWN0IG5ldF9kZXZpY2UgKmRldiwKIAkJbGVuICs9IG5kaXNjX29w dF9hZGRyX3NwYWNlKGRldik7CiAKIAlza2IgPSBhbGxvY19za2IoKE1BWF9IRUFERVIgKyBzaXpl b2Yoc3RydWN0IGlwdjZoZHIpICsKLQkJCSBsZW4gKyBMTF9BTExPQ0FURURfU1BBQ0UoZGV2KSks IEdGUF9BVE9NSUMpOworCQkJIGxlbiArIGhsZW4gKyB0bGVuKSwgR0ZQX0FUT01JQyk7CiAJaWYg KCFza2IpIHsKIAkJTkRfUFJJTlRLMChLRVJOX0VSUgogCQkJICAgIklDTVB2NiBORDogJXMoKSBm YWlsZWQgdG8gYWxsb2NhdGUgYW4gc2tiLlxuIiwKQEAgLTQ2NSw3ICs0NjcsNyBAQCBzdHJ1Y3Qg c2tfYnVmZiAqbmRpc2NfYnVpbGRfc2tiKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCXJldHVy biBOVUxMOwogCX0KIAotCXNrYl9yZXNlcnZlKHNrYiwgTExfUkVTRVJWRURfU1BBQ0UoZGV2KSk7 CisJc2tiX3Jlc2VydmUoc2tiLCBobGVuKTsKIAlpcDZfbmRfaGRyKHNrLCBza2IsIGRldiwgc2Fk ZHIsIGRhZGRyLCBJUFBST1RPX0lDTVBWNiwgbGVuKTsKIAogCXNrYi0+dHJhbnNwb3J0X2hlYWRl ciA9IHNrYi0+dGFpbDsKQEAgLTE1MzQsNiArMTUzNiw3IEBAIHZvaWQgbmRpc2Nfc2VuZF9yZWRp cmVjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaCwKIAlzdHJ1 Y3QgaW5ldDZfZGV2ICppZGV2OwogCXN0cnVjdCBmbG93aTYgZmw2OwogCXU4ICpvcHQ7CisJaW50 IGhsZW4sIHRsZW47CiAJaW50IHJkX2xlbjsKIAlpbnQgZXJyOwogCXU4IGhhX2J1ZltNQVhfQURE Ul9MRU5dLCAqaGEgPSBOVUxMOwpAQCAtMTU5MSw5ICsxNTk0LDExIEBAIHZvaWQgbmRpc2Nfc2Vu ZF9yZWRpcmVjdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaCwK IAlyZF9sZW4gJj0gfjB4NzsKIAlsZW4gKz0gcmRfbGVuOwogCisJaGxlbiA9IExMX1JFU0VSVkVE X1NQQUNFKGRldik7CisJdGxlbiA9IGRldi0+bmVlZGVkX3RhaWxyb29tOwogCWJ1ZmYgPSBzb2Nr X2FsbG9jX3NlbmRfc2tiKHNrLAogCQkJCSAgIChNQVhfSEVBREVSICsgc2l6ZW9mKHN0cnVjdCBp cHY2aGRyKSArCi0JCQkJICAgIGxlbiArIExMX0FMTE9DQVRFRF9TUEFDRShkZXYpKSwKKwkJCQkg ICAgbGVuICsgaGxlbiArIHRsZW4pLAogCQkJCSAgIDEsICZlcnIpOwogCWlmIChidWZmID09IE5V TEwpIHsKIAkJTkRfUFJJTlRLMChLRVJOX0VSUgpAQCAtMTYwMiw3ICsxNjA3LDcgQEAgdm9pZCBu ZGlzY19zZW5kX3JlZGlyZWN0KHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBuZWlnaGJvdXIg Km5laWdoLAogCQlnb3RvIHJlbGVhc2U7CiAJfQogCi0Jc2tiX3Jlc2VydmUoYnVmZiwgTExfUkVT RVJWRURfU1BBQ0UoZGV2KSk7CisJc2tiX3Jlc2VydmUoYnVmZiwgaGxlbik7CiAJaXA2X25kX2hk cihzaywgYnVmZiwgZGV2LCAmc2FkZHJfYnVmLCAmaXB2Nl9oZHIoc2tiKS0+c2FkZHIsCiAJCSAg IElQUFJPVE9fSUNNUFY2LCBsZW4pOwogCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yYXcuYyBiL25l dC9pcHY2L3Jhdy5jCmluZGV4IDllY2JjODQuLjkyODdmM2UgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L3Jhdy5jCisrKyBiL25ldC9pcHY2L3Jhdy5jCkBAIC02MDcsNiArNjA3LDggQEAgc3RhdGljIGlu dCByYXd2Nl9zZW5kX2hkcmluYyhzdHJ1Y3Qgc29jayAqc2ssIHZvaWQgKmZyb20sIGludCBsZW5n dGgsCiAJc3RydWN0IHNrX2J1ZmYgKnNrYjsKIAlpbnQgZXJyOwogCXN0cnVjdCBydDZfaW5mbyAq cnQgPSAoc3RydWN0IHJ0Nl9pbmZvICopKmRzdHA7CisJaW50IGhsZW4gPSBMTF9SRVNFUlZFRF9T UEFDRShydC0+ZHN0LmRldik7CisJaW50IHRsZW4gPSBydC0+ZHN0LmRldi0+bmVlZGVkX3RhaWxy b29tOwogCiAJaWYgKGxlbmd0aCA+IHJ0LT5kc3QuZGV2LT5tdHUpIHsKIAkJaXB2Nl9sb2NhbF9l cnJvcihzaywgRU1TR1NJWkUsIGZsNiwgcnQtPmRzdC5kZXYtPm10dSk7CkBAIC02MTYsMTEgKzYx OCwxMSBAQCBzdGF0aWMgaW50IHJhd3Y2X3NlbmRfaGRyaW5jKHN0cnVjdCBzb2NrICpzaywgdm9p ZCAqZnJvbSwgaW50IGxlbmd0aCwKIAkJZ290byBvdXQ7CiAKIAlza2IgPSBzb2NrX2FsbG9jX3Nl bmRfc2tiKHNrLAotCQkJCSAgbGVuZ3RoICsgTExfQUxMT0NBVEVEX1NQQUNFKHJ0LT5kc3QuZGV2 KSArIDE1LAorCQkJCSAgbGVuZ3RoICsgaGxlbiArIHRsZW4gKyAxNSwKIAkJCQkgIGZsYWdzICYg TVNHX0RPTlRXQUlULCAmZXJyKTsKIAlpZiAoc2tiID09IE5VTEwpCiAJCWdvdG8gZXJyb3I7Ci0J c2tiX3Jlc2VydmUoc2tiLCBMTF9SRVNFUlZFRF9TUEFDRShydC0+ZHN0LmRldikpOworCXNrYl9y ZXNlcnZlKHNrYiwgaGxlbik7CiAKIAlza2ItPnByaW9yaXR5ID0gc2stPnNrX3ByaW9yaXR5Owog CXNrYi0+bWFyayA9IHNrLT5za19tYXJrOwpkaWZmIC0tZ2l0IGEvbmV0L21hYzgwMjExL3J4LmMg Yi9uZXQvbWFjODAyMTEvcnguYwppbmRleCAyMDY0NjEyLi5jMDQ0NGEwIDEwMDY0NAotLS0gYS9u ZXQvbWFjODAyMTEvcnguYworKysgYi9uZXQvbWFjODAyMTEvcnguYwpAQCAtMTQ3MCwxNCArMTQ3 MCwxNCBAQCBpZWVlODAyMTFfcnhfaF9kZWZyYWdtZW50KHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0 YSAqcngpCiAJc2MgPSBsZTE2X3RvX2NwdShoZHItPnNlcV9jdHJsKTsKIAlmcmFnID0gc2MgJiBJ RUVFODAyMTFfU0NUTF9GUkFHOwogCi0JaWYgKGxpa2VseSghaWVlZTgwMjExX2hhc19tb3JlZnJh Z3MoZmMpICYmIGZyYWcgPT0gMCkpCi0JCWdvdG8gb3V0OwotCiAJaWYgKGlzX211bHRpY2FzdF9l dGhlcl9hZGRyKGhkci0+YWRkcjEpKSB7CiAJCXJ4LT5sb2NhbC0+ZG90MTFNdWx0aWNhc3RSZWNl aXZlZEZyYW1lQ291bnQrKzsKLQkJZ290byBvdXQ7CisJCWdvdG8gb3V0X25vX2xlZDsKIAl9CiAK KwlpZiAobGlrZWx5KCFpZWVlODAyMTFfaGFzX21vcmVmcmFncyhmYykgJiYgZnJhZyA9PSAwKSkK KwkJZ290byBvdXQ7CisKIAlJODAyX0RFQlVHX0lOQyhyeC0+bG9jYWwtPnJ4X2hhbmRsZXJzX2Zy YWdtZW50cyk7CiAKIAlpZiAoc2tiX2xpbmVhcml6ZShyeC0+c2tiKSkKQEAgLTE1NjgsOSArMTU2 OCwxMCBAQCBpZWVlODAyMTFfcnhfaF9kZWZyYWdtZW50KHN0cnVjdCBpZWVlODAyMTFfcnhfZGF0 YSAqcngpCiAJc3RhdHVzLT5yeF9mbGFncyB8PSBJRUVFODAyMTFfUlhfRlJBR01FTlRFRDsKIAog IG91dDoKKwlpZWVlODAyMTFfbGVkX3J4KHJ4LT5sb2NhbCk7Cisgb3V0X25vX2xlZDoKIAlpZiAo cngtPnN0YSkKIAkJcngtPnN0YS0+cnhfcGFja2V0cysrOwotCWllZWU4MDIxMV9sZWRfcngocngt PmxvY2FsKTsKIAlyZXR1cm4gUlhfQ09OVElOVUU7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9uZXRm aWx0ZXIvaXBzZXQvaXBfc2V0X2NvcmUuYyBiL25ldC9uZXRmaWx0ZXIvaXBzZXQvaXBfc2V0X2Nv cmUuYwppbmRleCA4NjEzN2I1Li5iODhkY2VjIDEwMDY0NAotLS0gYS9uZXQvbmV0ZmlsdGVyL2lw c2V0L2lwX3NldF9jb3JlLmMKKysrIGIvbmV0L25ldGZpbHRlci9pcHNldC9pcF9zZXRfY29yZS5j CkBAIC0xNjE1LDYgKzE2MTUsMTIgQEAgaXBfc2V0X3NvY2tmbl9nZXQoc3RydWN0IHNvY2sgKnNr LCBpbnQgb3B0dmFsLCB2b2lkIF9fdXNlciAqdXNlciwgaW50ICpsZW4pCiAJaWYgKCpvcCA8IElQ X1NFVF9PUF9WRVJTSU9OKSB7CiAJCS8qIENoZWNrIHRoZSB2ZXJzaW9uIGF0IHRoZSBiZWdpbm5p bmcgb2Ygb3BlcmF0aW9ucyAqLwogCQlzdHJ1Y3QgaXBfc2V0X3JlcV92ZXJzaW9uICpyZXFfdmVy c2lvbiA9IGRhdGE7CisKKwkJaWYgKCpsZW4gPCBzaXplb2Yoc3RydWN0IGlwX3NldF9yZXFfdmVy c2lvbikpIHsKKwkJCXJldCA9IC1FSU5WQUw7CisJCQlnb3RvIGRvbmU7CisJCX0KKwogCQlpZiAo cmVxX3ZlcnNpb24tPnZlcnNpb24gIT0gSVBTRVRfUFJPVE9DT0wpIHsKIAkJCXJldCA9IC1FUFJP VE87CiAJCQlnb3RvIGRvbmU7CmRpZmYgLS1naXQgYS9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFj a19wcm90b19nZW5lcmljLmMgYi9uZXQvbmV0ZmlsdGVyL25mX2Nvbm50cmFja19wcm90b19nZW5l cmljLmMKaW5kZXggZTIwOTFkMC4uNTNiZjEyYSAxMDA2NDQKLS0tIGEvbmV0L25ldGZpbHRlci9u Zl9jb25udHJhY2tfcHJvdG9fZ2VuZXJpYy5jCisrKyBiL25ldC9uZXRmaWx0ZXIvbmZfY29ubnRy YWNrX3Byb3RvX2dlbmVyaWMuYwpAQCAtMTQsNiArMTQsMzAgQEAKIAogc3RhdGljIHVuc2lnbmVk IGludCBuZl9jdF9nZW5lcmljX3RpbWVvdXQgX19yZWFkX21vc3RseSA9IDYwMCpIWjsKIAorc3Rh dGljIGJvb2wgbmZfZ2VuZXJpY19zaG91bGRfcHJvY2Vzcyh1OCBwcm90bykKK3sKKwlzd2l0Y2gg KHByb3RvKSB7CisjaWZkZWYgQ09ORklHX05GX0NUX1BST1RPX1NDVFBfTU9EVUxFCisJY2FzZSBJ UFBST1RPX1NDVFA6CisJCXJldHVybiBmYWxzZTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19ORl9D VF9QUk9UT19EQ0NQX01PRFVMRQorCWNhc2UgSVBQUk9UT19EQ0NQOgorCQlyZXR1cm4gZmFsc2U7 CisjZW5kaWYKKyNpZmRlZiBDT05GSUdfTkZfQ1RfUFJPVE9fR1JFX01PRFVMRQorCWNhc2UgSVBQ Uk9UT19HUkU6CisJCXJldHVybiBmYWxzZTsKKyNlbmRpZgorI2lmZGVmIENPTkZJR19ORl9DVF9Q Uk9UT19VRFBMSVRFX01PRFVMRQorCWNhc2UgSVBQUk9UT19VRFBMSVRFOgorCQlyZXR1cm4gZmFs c2U7CisjZW5kaWYKKwlkZWZhdWx0OgorCQlyZXR1cm4gdHJ1ZTsKKwl9Cit9CisKIHN0YXRpYyBi b29sIGdlbmVyaWNfcGt0X3RvX3R1cGxlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsCiAJCQkJ IHVuc2lnbmVkIGludCBkYXRhb2ZmLAogCQkJCSBzdHJ1Y3QgbmZfY29ubnRyYWNrX3R1cGxlICp0 dXBsZSkKQEAgLTU2LDcgKzgwLDcgQEAgc3RhdGljIGludCBwYWNrZXQoc3RydWN0IG5mX2Nvbm4g KmN0LAogc3RhdGljIGJvb2wgbmV3KHN0cnVjdCBuZl9jb25uICpjdCwgY29uc3Qgc3RydWN0IHNr X2J1ZmYgKnNrYiwKIAkJdW5zaWduZWQgaW50IGRhdGFvZmYpCiB7Ci0JcmV0dXJuIHRydWU7CisJ cmV0dXJuIG5mX2dlbmVyaWNfc2hvdWxkX3Byb2Nlc3MobmZfY3RfcHJvdG9udW0oY3QpKTsKIH0K IAogI2lmZGVmIENPTkZJR19TWVNDVEwKZGlmZiAtLWdpdCBhL25ldC9zY3RwL2Fzc29jaW9sYS5j IGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKaW5kZXggNWIyZDhlNi4uZDAxNGIwNSAxMDA2NDQKLS0t IGEvbmV0L3NjdHAvYXNzb2Npb2xhLmMKKysrIGIvbmV0L3NjdHAvYXNzb2Npb2xhLmMKQEAgLTEy NzIsNyArMTI3Miw2IEBAIHZvaWQgc2N0cF9hc3NvY191cGRhdGUoc3RydWN0IHNjdHBfYXNzb2Np YXRpb24gKmFzb2MsCiAJYXNvYy0+cGVlci5wZWVyX2htYWNzID0gbmV3LT5wZWVyLnBlZXJfaG1h Y3M7CiAJbmV3LT5wZWVyLnBlZXJfaG1hY3MgPSBOVUxMOwogCi0Jc2N0cF9hdXRoX2tleV9wdXQo YXNvYy0+YXNvY19zaGFyZWRfa2V5KTsKIAlzY3RwX2F1dGhfYXNvY19pbml0X2FjdGl2ZV9rZXko YXNvYywgR0ZQX0FUT01JQyk7CiB9CiAKZGlmZiAtLWdpdCBhL25ldC9zY3RwL3NvY2tldC5jIGIv bmV0L3NjdHAvc29ja2V0LmMKaW5kZXggYzI4ZWI3Yi4uZmM2MzY2NCAxMDA2NDQKLS0tIGEvbmV0 L3NjdHAvc29ja2V0LmMKKysrIGIvbmV0L3NjdHAvc29ja2V0LmMKQEAgLTE2MTEsNiArMTYxMSw3 IEBAIFNDVFBfU1RBVElDIGludCBzY3RwX3NlbmRtc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1 Y3Qgc29jayAqc2ssCiAJc2N0cF9zY29wZV90IHNjb3BlOwogCWxvbmcgdGltZW87CiAJX191MTYg c2luZm9fZmxhZ3MgPSAwOworCWJvb2wgd2FpdF9jb25uZWN0ID0gZmFsc2U7CiAJc3RydWN0IHNj dHBfZGF0YW1zZyAqZGF0YW1zZzsKIAlpbnQgbXNnX2ZsYWdzID0gbXNnLT5tc2dfZmxhZ3M7CiAK QEAgLTE5MjksNiArMTkzMCw3IEBAIFNDVFBfU1RBVElDIGludCBzY3RwX3NlbmRtc2coc3RydWN0 IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29jayAqc2ssCiAJCWVyciA9IHNjdHBfcHJpbWl0aXZlX0FT U09DSUFURShhc29jLCBOVUxMKTsKIAkJaWYgKGVyciA8IDApCiAJCQlnb3RvIG91dF9mcmVlOwor CQl3YWl0X2Nvbm5lY3QgPSB0cnVlOwogCQlTQ1RQX0RFQlVHX1BSSU5USygiV2UgYXNzb2NpYXRl ZCBwcmltaXRpdmVseS5cbiIpOwogCX0KIApAQCAtMTk2OCw2ICsxOTcwLDExIEBAIFNDVFBfU1RB VElDIGludCBzY3RwX3NlbmRtc2coc3RydWN0IGtpb2NiICppb2NiLCBzdHJ1Y3Qgc29jayAqc2ss CiAJZWxzZQogCQllcnIgPSBtc2dfbGVuOwogCisJaWYgKHVubGlrZWx5KHdhaXRfY29ubmVjdCkp IHsKKwkJdGltZW8gPSBzb2NrX3NuZHRpbWVvKHNrLCBtc2dfZmxhZ3MgJiBNU0dfRE9OVFdBSVQp OworCQlzY3RwX3dhaXRfZm9yX2Nvbm5lY3QoYXNvYywgJnRpbWVvKTsKKwl9CisKIAkvKiBJZiB3 ZSBhcmUgYWxyZWFkeSBwYXN0IEFTU09DSUFURSwgdGhlIGxvd2VyCiAJICogbGF5ZXJzIGFyZSBy ZXNwb25zaWJsZSBmb3IgYXNzb2NpYXRpb24gY2xlYW51cC4KIAkgKi8KZGlmZiAtLWdpdCBhL25l dC93aXJlbGVzcy9ubDgwMjExLmMgYi9uZXQvd2lyZWxlc3Mvbmw4MDIxMS5jCmluZGV4IGNkZjc3 YTIuLmNiNDE2OGUgMTAwNjQ0Ci0tLSBhL25ldC93aXJlbGVzcy9ubDgwMjExLmMKKysrIGIvbmV0 L3dpcmVsZXNzL25sODAyMTEuYwpAQCAtMTgxNSw2ICsxODE1LDkgQEAgc3RhdGljIGludCBubDgw MjExX2dldF9rZXkoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IGdlbmxfaW5mbyAqaW5mbykK IAlpZiAoIXJkZXYtPm9wcy0+Z2V0X2tleSkKIAkJcmV0dXJuIC1FT1BOT1RTVVBQOwogCisJaWYg KCFwYWlyd2lzZSAmJiBtYWNfYWRkciAmJiAhKHJkZXYtPndpcGh5LmZsYWdzICYgV0lQSFlfRkxB R19JQlNTX1JTTikpCisJCXJldHVybiAtRU5PRU5UOworCiAJbXNnID0gbmxtc2dfbmV3KE5MTVNH X0RFRkFVTFRfU0laRSwgR0ZQX0tFUk5FTCk7CiAJaWYgKCFtc2cpCiAJCXJldHVybiAtRU5PTUVN OwpAQCAtMTgzMiwxMCArMTgzNSw2IEBAIHN0YXRpYyBpbnQgbmw4MDIxMV9nZXRfa2V5KHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBnZW5sX2luZm8gKmluZm8pCiAJaWYgKG1hY19hZGRyKQog CQlOTEFfUFVUKG1zZywgTkw4MDIxMV9BVFRSX01BQywgRVRIX0FMRU4sIG1hY19hZGRyKTsKIAot CWlmIChwYWlyd2lzZSAmJiBtYWNfYWRkciAmJgotCSAgICAhKHJkZXYtPndpcGh5LmZsYWdzICYg V0lQSFlfRkxBR19JQlNTX1JTTikpCi0JCXJldHVybiAtRU5PRU5UOwotCiAJZXJyID0gcmRldi0+ b3BzLT5nZXRfa2V5KCZyZGV2LT53aXBoeSwgZGV2LCBrZXlfaWR4LCBwYWlyd2lzZSwKIAkJCQkg bWFjX2FkZHIsICZjb29raWUsIGdldF9rZXlfY2FsbGJhY2spOwogCkBAIC0yMDA3LDcgKzIwMDYs NyBAQCBzdGF0aWMgaW50IG5sODAyMTFfZGVsX2tleShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1 Y3QgZ2VubF9pbmZvICppbmZvKQogCXdkZXZfbG9jayhkZXYtPmllZWU4MDIxMV9wdHIpOwogCWVy ciA9IG5sODAyMTFfa2V5X2FsbG93ZWQoZGV2LT5pZWVlODAyMTFfcHRyKTsKIAotCWlmIChrZXku dHlwZSA9PSBOTDgwMjExX0tFWVRZUEVfUEFJUldJU0UgJiYgbWFjX2FkZHIgJiYKKwlpZiAoa2V5 LnR5cGUgPT0gTkw4MDIxMV9LRVlUWVBFX0dST1VQICYmIG1hY19hZGRyICYmCiAJICAgICEocmRl di0+d2lwaHkuZmxhZ3MgJiBXSVBIWV9GTEFHX0lCU1NfUlNOKSkKIAkJZXJyID0gLUVOT0VOVDsK IApkaWZmIC0tZ2l0IGEvc2NyaXB0cy9yZWNvcmRtY291bnQucGwgYi9zY3JpcHRzL3JlY29yZG1j b3VudC5wbAppbmRleCA4NTg5NjZhLi42NzkyMThiIDEwMDc1NQotLS0gYS9zY3JpcHRzL3JlY29y ZG1jb3VudC5wbAorKysgYi9zY3JpcHRzL3JlY29yZG1jb3VudC5wbApAQCAtMjYyLDcgKzI2Miw2 IEBAIGlmICgkYXJjaCBlcSAieDg2XzY0IikgewogICAgICMgZm9yY2UgZmxhZ3MgZm9yIHRoaXMg YXJjaAogICAgICRsZCAuPSAiIC1tIHNobGVsZl9saW51eCI7CiAgICAgJG9iamNvcHkgLj0gIiAt TyBlbGYzMi1zaC1saW51eCI7Ci0gICAgJGNjIC49ICIgLW0zMiI7CiAKIH0gZWxzaWYgKCRhcmNo IGVxICJwb3dlcnBjIikgewogICAgICRsb2NhbF9yZWdleCA9ICJeWzAtOWEtZkEtRl0rXFxzK3Rc XHMrKFxcLj9cXFMrKSI7CmRpZmYgLS1naXQgYS9zZWN1cml0eS9rZXlzL2VuY3J5cHRlZC1rZXlz L2VuY3J5cHRlZC5jIGIvc2VjdXJpdHkva2V5cy9lbmNyeXB0ZWQta2V5cy9lbmNyeXB0ZWQuYwpp bmRleCA0MTE0NGY3Li43YzVkMWQ4IDEwMDY0NAotLS0gYS9zZWN1cml0eS9rZXlzL2VuY3J5cHRl ZC1rZXlzL2VuY3J5cHRlZC5jCisrKyBiL3NlY3VyaXR5L2tleXMvZW5jcnlwdGVkLWtleXMvZW5j cnlwdGVkLmMKQEAgLTEwMTYsMTAgKzEwMTYsMTMgQEAgc3RhdGljIGludCBfX2luaXQgaW5pdF9l bmNyeXB0ZWQodm9pZCkKIAlyZXQgPSBlbmNyeXB0ZWRfc2hhc2hfYWxsb2MoKTsKIAlpZiAocmV0 IDwgMCkKIAkJcmV0dXJuIHJldDsKKwlyZXQgPSBhZXNfZ2V0X3NpemVzKCk7CisJaWYgKHJldCA8 IDApCisJCWdvdG8gb3V0OwogCXJldCA9IHJlZ2lzdGVyX2tleV90eXBlKCZrZXlfdHlwZV9lbmNy eXB0ZWQpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIG91dDsKLQlyZXR1cm4gYWVzX2dldF9zaXpl cygpOworCXJldHVybiAwOwogb3V0OgogCWVuY3J5cHRlZF9zaGFzaF9yZWxlYXNlKCk7CiAJcmV0 dXJuIHJldDsKZGlmZiAtLWdpdCBhL3NlY3VyaXR5L2tleXMvZ2MuYyBiL3NlY3VyaXR5L2tleXMv Z2MuYwppbmRleCBiZjRkOGRhLi4yZTIzOTVkIDEwMDY0NAotLS0gYS9zZWN1cml0eS9rZXlzL2dj LmMKKysrIGIvc2VjdXJpdHkva2V5cy9nYy5jCkBAIC0xODYsMTIgKzE4NiwxMiBAQCBzdGF0aWMg bm9pbmxpbmUgdm9pZCBrZXlfZ2NfdW51c2VkX2tleShzdHJ1Y3Qga2V5ICprZXkpCiAJaWYgKHRl c3RfYml0KEtFWV9GTEFHX0lOU1RBTlRJQVRFRCwgJmtleS0+ZmxhZ3MpKQogCQlhdG9taWNfZGVj KCZrZXktPnVzZXItPm5pa2V5cyk7CiAKLQlrZXlfdXNlcl9wdXQoa2V5LT51c2VyKTsKLQogCS8q IG5vdyB0aHJvdyBhd2F5IHRoZSBrZXkgbWVtb3J5ICovCiAJaWYgKGtleS0+dHlwZS0+ZGVzdHJv eSkKIAkJa2V5LT50eXBlLT5kZXN0cm95KGtleSk7CiAKKwlrZXlfdXNlcl9wdXQoa2V5LT51c2Vy KTsKKwogCWtmcmVlKGtleS0+ZGVzY3JpcHRpb24pOwogCiAjaWZkZWYgS0VZX0RFQlVHR0lORwpk aWZmIC0tZ2l0IGEvc291bmQvY29yZS9zZXEvc2VxX2R1bW15LmMgYi9zb3VuZC9jb3JlL3NlcS9z ZXFfZHVtbXkuYwppbmRleCBiOWIyMjM1Li41YjQxZTA0IDEwMDY0NAotLS0gYS9zb3VuZC9jb3Jl L3NlcS9zZXFfZHVtbXkuYworKysgYi9zb3VuZC9jb3JlL3NlcS9zZXFfZHVtbXkuYwpAQCAtODIs MzYgKzgyLDYgQEAgc3RydWN0IHNuZF9zZXFfZHVtbXlfcG9ydCB7CiBzdGF0aWMgaW50IG15X2Ns aWVudCA9IC0xOwogCiAvKgotICogdW51c2UgY2FsbGJhY2sgLSBzZW5kIEFMTF9TT1VORFNfT0ZG IGFuZCBSRVNFVF9DT05UUk9MTEVSUyBldmVudHMKLSAqIHRvIHN1YnNjcmliZXJzLgotICogTm90 ZTogdGhpcyBjYWxsYmFjayBpcyBjYWxsZWQgb25seSBhZnRlciBhbGwgc3Vic2NyaWJlcnMgYXJl IHJlbW92ZWQuCi0gKi8KLXN0YXRpYyBpbnQKLWR1bW15X3VudXNlKHZvaWQgKnByaXZhdGVfZGF0 YSwgc3RydWN0IHNuZF9zZXFfcG9ydF9zdWJzY3JpYmUgKmluZm8pCi17Ci0Jc3RydWN0IHNuZF9z ZXFfZHVtbXlfcG9ydCAqcDsKLQlpbnQgaTsKLQlzdHJ1Y3Qgc25kX3NlcV9ldmVudCBldjsKLQot CXAgPSBwcml2YXRlX2RhdGE7Ci0JbWVtc2V0KCZldiwgMCwgc2l6ZW9mKGV2KSk7Ci0JaWYgKHAt PmR1cGxleCkKLQkJZXYuc291cmNlLnBvcnQgPSBwLT5jb25uZWN0OwotCWVsc2UKLQkJZXYuc291 cmNlLnBvcnQgPSBwLT5wb3J0OwotCWV2LmRlc3QuY2xpZW50ID0gU05EUlZfU0VRX0FERFJFU1Nf U1VCU0NSSUJFUlM7Ci0JZXYudHlwZSA9IFNORFJWX1NFUV9FVkVOVF9DT05UUk9MTEVSOwotCWZv ciAoaSA9IDA7IGkgPCAxNjsgaSsrKSB7Ci0JCWV2LmRhdGEuY29udHJvbC5jaGFubmVsID0gaTsK LQkJZXYuZGF0YS5jb250cm9sLnBhcmFtID0gTUlESV9DVExfQUxMX1NPVU5EU19PRkY7Ci0JCXNu ZF9zZXFfa2VybmVsX2NsaWVudF9kaXNwYXRjaChwLT5jbGllbnQsICZldiwgMCwgMCk7Ci0JCWV2 LmRhdGEuY29udHJvbC5wYXJhbSA9IE1JRElfQ1RMX1JFU0VUX0NPTlRST0xMRVJTOwotCQlzbmRf c2VxX2tlcm5lbF9jbGllbnRfZGlzcGF0Y2gocC0+Y2xpZW50LCAmZXYsIDAsIDApOwotCX0KLQly ZXR1cm4gMDsKLX0KLQotLyoKICAqIGV2ZW50IGlucHV0IGNhbGxiYWNrIC0ganVzdCByZWRpcmVj dCBldmVudHMgdG8gc3Vic2NyaWJlcnMKICAqLwogc3RhdGljIGludApAQCAtMTc1LDcgKzE0NSw2 IEBAIGNyZWF0ZV9wb3J0KGludCBpZHgsIGludCB0eXBlKQogCQl8IFNORFJWX1NFUV9QT1JUX1RZ UEVfUE9SVDsKIAltZW1zZXQoJnBjYiwgMCwgc2l6ZW9mKHBjYikpOwogCXBjYi5vd25lciA9IFRI SVNfTU9EVUxFOwotCXBjYi51bnVzZSA9IGR1bW15X3VudXNlOwogCXBjYi5ldmVudF9pbnB1dCA9 IGR1bW15X2lucHV0OwogCXBjYi5wcml2YXRlX2ZyZWUgPSBkdW1teV9mcmVlOwogCXBjYi5wcml2 YXRlX2RhdGEgPSByZWM7CmRpZmYgLS1naXQgYS9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jIGIv c291bmQvcGNpL2hkYS9oZGFfY29kZWMuYwppbmRleCBmYWFiYWE1Li5lZTk1NjE4IDEwMDY0NAot LS0gYS9zb3VuZC9wY2kvaGRhL2hkYV9jb2RlYy5jCisrKyBiL3NvdW5kL3BjaS9oZGEvaGRhX2Nv ZGVjLmMKQEAgLTMxMSw4ICszMTEsMTAgQEAgaW50IHNuZF9oZGFfZ2V0X3N1Yl9ub2RlcyhzdHJ1 Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25pZF90IG5pZCwKIAl1bnNpZ25lZCBpbnQgcGFybTsK IAogCXBhcm0gPSBzbmRfaGRhX3BhcmFtX3JlYWQoY29kZWMsIG5pZCwgQUNfUEFSX05PREVfQ09V TlQpOwotCWlmIChwYXJtID09IC0xKQorCWlmIChwYXJtID09IC0xKSB7CisJCSpzdGFydF9pZCA9 IDA7CiAJCXJldHVybiAwOworCX0KIAkqc3RhcnRfaWQgPSAocGFybSA+PiAxNikgJiAweDdmZmY7 CiAJcmV0dXJuIChpbnQpKHBhcm0gJiAweDdmZmYpOwogfQpkaWZmIC0tZ2l0IGEvc291bmQvcGNp L2hkYS9wYXRjaF9zaWdtYXRlbC5jIGIvc291bmQvcGNpL2hkYS9wYXRjaF9zaWdtYXRlbC5jCmlu ZGV4IDQ2N2E3M2IuLjI0MDY1OGIgMTAwNjQ0Ci0tLSBhL3NvdW5kL3BjaS9oZGEvcGF0Y2hfc2ln bWF0ZWwuYworKysgYi9zb3VuZC9wY2kvaGRhL3BhdGNoX3NpZ21hdGVsLmMKQEAgLTQzMDksOSAr NDMwOSw5IEBAIHN0YXRpYyB2b2lkIHN0YWNfc3RvcmVfaGludHMoc3RydWN0IGhkYV9jb2RlYyAq Y29kZWMpCiAJCQlzcGVjLT5ncGlvX21hc2s7CiAJfQogCWlmIChnZXRfaW50X2hpbnQoY29kZWMs ICJncGlvX2RpciIsICZzcGVjLT5ncGlvX2RpcikpCi0JCXNwZWMtPmdwaW9fbWFzayAmPSBzcGVj LT5ncGlvX21hc2s7Ci0JaWYgKGdldF9pbnRfaGludChjb2RlYywgImdwaW9fZGF0YSIsICZzcGVj LT5ncGlvX2RhdGEpKQogCQlzcGVjLT5ncGlvX2RpciAmPSBzcGVjLT5ncGlvX21hc2s7CisJaWYg KGdldF9pbnRfaGludChjb2RlYywgImdwaW9fZGF0YSIsICZzcGVjLT5ncGlvX2RhdGEpKQorCQlz cGVjLT5ncGlvX2RhdGEgJj0gc3BlYy0+Z3Bpb19tYXNrOwogCWlmIChnZXRfaW50X2hpbnQoY29k ZWMsICJlYXBkX21hc2siLCAmc3BlYy0+ZWFwZF9tYXNrKSkKIAkJc3BlYy0+ZWFwZF9tYXNrICY9 IHNwZWMtPmdwaW9fbWFzazsKIAlpZiAoZ2V0X2ludF9oaW50KGNvZGVjLCAiZ3Bpb19tdXRlIiwg JnNwZWMtPmdwaW9fbXV0ZSkpCmRpZmYgLS1naXQgYS9zb3VuZC9zb2MvY29kZWNzL3dtODk2MC5j IGIvc291bmQvc29jL2NvZGVjcy93bTg5NjAuYwppbmRleCBlZjk2Y2E2Li4zNTUxNzA1IDEwMDY0 NAotLS0gYS9zb3VuZC9zb2MvY29kZWNzL3dtODk2MC5jCisrKyBiL3NvdW5kL3NvYy9jb2RlY3Mv d204OTYwLmMKQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgc3RydWN0IHsKIAl7IDIyMDUwLCAy IH0sCiAJeyAyNDAwMCwgMiB9LAogCXsgMTYwMDAsIDMgfSwKLQl7IDExMjUwLCA0IH0sCisJeyAx MTAyNSwgNCB9LAogCXsgMTIwMDAsIDQgfSwKIAl7ICA4MDAwLCA1IH0sCiB9OwpkaWZmIC0tZ2l0 IGEvc291bmQvdXNiL21pZGkuYyBiL3NvdW5kL3VzYi9taWRpLmMKaW5kZXggZTVmZWUxOC4uZGU4 NmU3NCAxMDA2NDQKLS0tIGEvc291bmQvdXNiL21pZGkuYworKysgYi9zb3VuZC91c2IvbWlkaS5j CkBAIC0zNjQsNiArMzY0LDggQEAgc3RhdGljIHZvaWQgc25kX3VzYm1pZGlfZXJyb3JfdGltZXIo dW5zaWduZWQgbG9uZyBkYXRhKQogCQlpZiAoaW4gJiYgaW4tPmVycm9yX3Jlc3VibWl0KSB7CiAJ CQlpbi0+ZXJyb3JfcmVzdWJtaXQgPSAwOwogCQkJZm9yIChqID0gMDsgaiA8IElOUFVUX1VSQlM7 ICsraikgeworCQkJCWlmIChhdG9taWNfcmVhZCgmaW4tPnVyYnNbal0tPnVzZV9jb3VudCkpCisJ CQkJCWNvbnRpbnVlOwogCQkJCWluLT51cmJzW2pdLT5kZXYgPSB1bWlkaS0+ZGV2OwogCQkJCXNu ZF91c2JtaWRpX3N1Ym1pdF91cmIoaW4tPnVyYnNbal0sIEdGUF9BVE9NSUMpOwogCQkJfQpkaWZm IC0tZ2l0IGEvc291bmQvdXNiL21peGVyLmMgYi9zb3VuZC91c2IvbWl4ZXIuYwppbmRleCA0Zjdi MzMwLi44ODE2MGI3IDEwMDY0NAotLS0gYS9zb3VuZC91c2IvbWl4ZXIuYworKysgYi9zb3VuZC91 c2IvbWl4ZXIuYwpAQCAtODM0LDYgKzgzNCw3IEBAIHN0YXRpYyB2b2lkIHZvbHVtZV9jb250cm9s X3F1aXJrcyhzdHJ1Y3QgdXNiX21peGVyX2VsZW1faW5mbyAqY3ZhbCwKIAljYXNlIFVTQl9JRCgw eDA0NmQsIDB4MDgwNyk6IC8qIExvZ2l0ZWNoIFdlYmNhbSBDNTAwICovCiAJY2FzZSBVU0JfSUQo MHgwNDZkLCAweDA4MDgpOgogCWNhc2UgVVNCX0lEKDB4MDQ2ZCwgMHgwODA5KToKKwljYXNlIFVT Ql9JRCgweDA0NmQsIDB4MDgxOSk6IC8qIExvZ2l0ZWNoIFdlYmNhbSBDMjEwICovCiAJY2FzZSBV U0JfSUQoMHgwNDZkLCAweDA4MWIpOiAvKiBIRCBXZWJjYW0gYzMxMCAqLwogCWNhc2UgVVNCX0lE KDB4MDQ2ZCwgMHgwODFkKTogLyogSEQgV2ViY2FtIGM1MTAgKi8KIAljYXNlIFVTQl9JRCgweDA0 NmQsIDB4MDgyNSk6IC8qIEhEIFdlYmNhbSBjMjcwICovCmRpZmYgLS1naXQgYS9zb3VuZC91c2Iv bWl4ZXJfbWFwcy5jIGIvc291bmQvdXNiL21peGVyX21hcHMuYwppbmRleCAwZTRlOTA5Li4xZTA3 OThmIDEwMDY0NAotLS0gYS9zb3VuZC91c2IvbWl4ZXJfbWFwcy5jCisrKyBiL3NvdW5kL3VzYi9t aXhlcl9tYXBzLmMKQEAgLTMwNCw4ICszMDQsMTEgQEAgc3RhdGljIHN0cnVjdCB1c2JtaXhfbmFt ZV9tYXAgaGVyY3VsZXNfdXNiNTFfbWFwW10gPSB7CiAJeyAwIH0JCQkJLyogdGVybWluYXRvciAq LwogfTsKIAotc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JtaXhfbmFtZV9tYXAga2VmX3gzMDBhX21h cFtdID0gewotCXsgMTAsIE5VTEwgfSwgLyogZmlybXdhcmUgbG9ja3MgdXAgKD8pIHdoZW4gd2Ug dHJ5IHRvIGFjY2VzcyB0aGlzIEZVICovCisvKiBzb21lIChhbGw/KSBTQ01TIFVTQjMzMTggZGV2 aWNlcyBhcmUgYWZmZWN0ZWQgYnkgYSBmaXJtd2FyZSBsb2NrIHVwCisgKiB3aGVuIGFueXRoaW5n IGF0dGVtcHRzIHRvIGFjY2VzcyBGVSAxMCAoY29udHJvbCkKKyAqLworc3RhdGljIGNvbnN0IHN0 cnVjdCB1c2JtaXhfbmFtZV9tYXAgc2Ntc191c2IzMzE4X21hcFtdID0geworCXsgMTAsIE5VTEwg fSwKIAl7IDAgfQogfTsKIApAQCAtMzc3LDggKzM4MCwxNCBAQCBzdGF0aWMgc3RydWN0IHVzYm1p eF9jdGxfbWFwIHVzYm1peF9jdGxfbWFwc1tdID0gewogCQkuaWdub3JlX2N0bF9lcnJvciA9IDEs CiAJfSwKIAl7CisJCS8qIEtFRiBYMzAwQSAqLwogCQkuaWQgPSBVU0JfSUQoMHgyN2FjLCAweDEw MDApLAotCQkubWFwID0ga2VmX3gzMDBhX21hcCwKKwkJLm1hcCA9IHNjbXNfdXNiMzMxOF9tYXAs CisJfSwKKwl7CisJCS8qIEFyY2FtIHJQQUMgKi8KKwkJLmlkID0gVVNCX0lEKDB4MjVjNCwgMHgw MDAzKSwKKwkJLm1hcCA9IHNjbXNfdXNiMzMxOF9tYXAsCiAJfSwKIAl7IDAgfSAvKiB0ZXJtaW5h dG9yICovCiB9OwpkaWZmIC0tZ2l0IGEvc291bmQvdXNiL3F1aXJrcy10YWJsZS5oIGIvc291bmQv dXNiL3F1aXJrcy10YWJsZS5oCmluZGV4IGU0NjdhNTguLjJhYWNiOTYgMTAwNjQ0Ci0tLSBhL3Nv dW5kL3VzYi9xdWlya3MtdGFibGUuaAorKysgYi9zb3VuZC91c2IvcXVpcmtzLXRhYmxlLmgKQEAg LTI1NDAsMTMzICsyNTQwLDQ1IEBAIFlBTUFIQV9ERVZJQ0UoMHg3MDEwLCAiVUI5OSIpLAogCX0K IH0sCiAKLS8qIEhhdXBwYXVnZSBIVlItOTUwUSBhbmQgSFZSLTg1MCAqLwotewotCVVTQl9ERVZJ Q0VfVkVORE9SX1NQRUMoMHgyMDQwLCAweDcyMDApLAotCS5tYXRjaF9mbGFncyA9IFVTQl9ERVZJ Q0VfSURfTUFUQ0hfREVWSUNFIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0NM QVNTIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX1NVQkNMQVNTLAotCS5iSW50 ZXJmYWNlQ2xhc3MgPSBVU0JfQ0xBU1NfQVVESU8sCi0JLmJJbnRlcmZhY2VTdWJDbGFzcyA9IFVT Ql9TVUJDTEFTU19BVURJT0NPTlRST0wsCi0JLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcp ICYoY29uc3Qgc3RydWN0IHNuZF91c2JfYXVkaW9fcXVpcmspIHsKLQkJLnZlbmRvcl9uYW1lID0g IkhhdXBwYXVnZSIsCi0JCS5wcm9kdWN0X25hbWUgPSAiSFZSLTk1MFEiLAotCQkuaWZudW0gPSBR VUlSS19BTllfSU5URVJGQUNFLAotCQkudHlwZSA9IFFVSVJLX0FVRElPX0FMSUdOX1RSQU5TRkVS LAotCX0KLX0sCi17Ci0JVVNCX0RFVklDRV9WRU5ET1JfU1BFQygweDIwNDAsIDB4NzI0MCksCi0J Lm1hdGNoX2ZsYWdzID0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UgfAotCQkgICAgICAgVVNC X0RFVklDRV9JRF9NQVRDSF9JTlRfQ0xBU1MgfAotCQkgICAgICAgVVNCX0RFVklDRV9JRF9NQVRD SF9JTlRfU1VCQ0xBU1MsCi0JLmJJbnRlcmZhY2VDbGFzcyA9IFVTQl9DTEFTU19BVURJTywKLQku YkludGVyZmFjZVN1YkNsYXNzID0gVVNCX1NVQkNMQVNTX0FVRElPQ09OVFJPTCwKLQkuZHJpdmVy X2luZm8gPSAodW5zaWduZWQgbG9uZykgJihjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWly aykgewotCQkudmVuZG9yX25hbWUgPSAiSGF1cHBhdWdlIiwKLQkJLnByb2R1Y3RfbmFtZSA9ICJI VlItODUwIiwKLQkJLmlmbnVtID0gUVVJUktfQU5ZX0lOVEVSRkFDRSwKLQkJLnR5cGUgPSBRVUlS S19BVURJT19BTElHTl9UUkFOU0ZFUiwKLQl9Ci19LAotewotCVVTQl9ERVZJQ0VfVkVORE9SX1NQ RUMoMHgyMDQwLCAweDcyMTApLAotCS5tYXRjaF9mbGFncyA9IFVTQl9ERVZJQ0VfSURfTUFUQ0hf REVWSUNFIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0NMQVNTIHwKLQkJICAg ICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX1NVQkNMQVNTLAotCS5iSW50ZXJmYWNlQ2xhc3Mg PSBVU0JfQ0xBU1NfQVVESU8sCi0JLmJJbnRlcmZhY2VTdWJDbGFzcyA9IFVTQl9TVUJDTEFTU19B VURJT0NPTlRST0wsCi0JLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcpICYoY29uc3Qgc3Ry dWN0IHNuZF91c2JfYXVkaW9fcXVpcmspIHsKLQkJLnZlbmRvcl9uYW1lID0gIkhhdXBwYXVnZSIs Ci0JCS5wcm9kdWN0X25hbWUgPSAiSFZSLTk1MFEiLAotCQkuaWZudW0gPSBRVUlSS19BTllfSU5U RVJGQUNFLAotCQkudHlwZSA9IFFVSVJLX0FVRElPX0FMSUdOX1RSQU5TRkVSLAotCX0KLX0sCi17 Ci0JVVNCX0RFVklDRV9WRU5ET1JfU1BFQygweDIwNDAsIDB4NzIxNyksCi0JLm1hdGNoX2ZsYWdz ID0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UgfAotCQkgICAgICAgVVNCX0RFVklDRV9JRF9N QVRDSF9JTlRfQ0xBU1MgfAotCQkgICAgICAgVVNCX0RFVklDRV9JRF9NQVRDSF9JTlRfU1VCQ0xB U1MsCi0JLmJJbnRlcmZhY2VDbGFzcyA9IFVTQl9DTEFTU19BVURJTywKLQkuYkludGVyZmFjZVN1 YkNsYXNzID0gVVNCX1NVQkNMQVNTX0FVRElPQ09OVFJPTCwKLQkuZHJpdmVyX2luZm8gPSAodW5z aWduZWQgbG9uZykgJihjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWlyaykgewotCQkudmVu ZG9yX25hbWUgPSAiSGF1cHBhdWdlIiwKLQkJLnByb2R1Y3RfbmFtZSA9ICJIVlItOTUwUSIsCi0J CS5pZm51bSA9IFFVSVJLX0FOWV9JTlRFUkZBQ0UsCi0JCS50eXBlID0gUVVJUktfQVVESU9fQUxJ R05fVFJBTlNGRVIsCi0JfQotfSwKLXsKLQlVU0JfREVWSUNFX1ZFTkRPUl9TUEVDKDB4MjA0MCwg MHg3MjFiKSwKLQkubWF0Y2hfZmxhZ3MgPSBVU0JfREVWSUNFX0lEX01BVENIX0RFVklDRSB8Ci0J CSAgICAgICBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9DTEFTUyB8Ci0JCSAgICAgICBVU0JfREVW SUNFX0lEX01BVENIX0lOVF9TVUJDTEFTUywKLQkuYkludGVyZmFjZUNsYXNzID0gVVNCX0NMQVNT X0FVRElPLAotCS5iSW50ZXJmYWNlU3ViQ2xhc3MgPSBVU0JfU1VCQ0xBU1NfQVVESU9DT05UUk9M LAotCS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSAmKGNvbnN0IHN0cnVjdCBzbmRfdXNi X2F1ZGlvX3F1aXJrKSB7Ci0JCS52ZW5kb3JfbmFtZSA9ICJIYXVwcGF1Z2UiLAotCQkucHJvZHVj dF9uYW1lID0gIkhWUi05NTBRIiwKLQkJLmlmbnVtID0gUVVJUktfQU5ZX0lOVEVSRkFDRSwKLQkJ LnR5cGUgPSBRVUlSS19BVURJT19BTElHTl9UUkFOU0ZFUiwKLQl9Ci19LAotewotCVVTQl9ERVZJ Q0VfVkVORE9SX1NQRUMoMHgyMDQwLCAweDcyMWUpLAotCS5tYXRjaF9mbGFncyA9IFVTQl9ERVZJ Q0VfSURfTUFUQ0hfREVWSUNFIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX0NM QVNTIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX1NVQkNMQVNTLAotCS5iSW50 ZXJmYWNlQ2xhc3MgPSBVU0JfQ0xBU1NfQVVESU8sCi0JLmJJbnRlcmZhY2VTdWJDbGFzcyA9IFVT Ql9TVUJDTEFTU19BVURJT0NPTlRST0wsCi0JLmRyaXZlcl9pbmZvID0gKHVuc2lnbmVkIGxvbmcp ICYoY29uc3Qgc3RydWN0IHNuZF91c2JfYXVkaW9fcXVpcmspIHsKLQkJLnZlbmRvcl9uYW1lID0g IkhhdXBwYXVnZSIsCi0JCS5wcm9kdWN0X25hbWUgPSAiSFZSLTk1MFEiLAotCQkuaWZudW0gPSBR VUlSS19BTllfSU5URVJGQUNFLAotCQkudHlwZSA9IFFVSVJLX0FVRElPX0FMSUdOX1RSQU5TRkVS LAotCX0KLX0sCi17Ci0JVVNCX0RFVklDRV9WRU5ET1JfU1BFQygweDIwNDAsIDB4NzIxZiksCi0J Lm1hdGNoX2ZsYWdzID0gVVNCX0RFVklDRV9JRF9NQVRDSF9ERVZJQ0UgfAotCQkgICAgICAgVVNC X0RFVklDRV9JRF9NQVRDSF9JTlRfQ0xBU1MgfAotCQkgICAgICAgVVNCX0RFVklDRV9JRF9NQVRD SF9JTlRfU1VCQ0xBU1MsCi0JLmJJbnRlcmZhY2VDbGFzcyA9IFVTQl9DTEFTU19BVURJTywKLQku YkludGVyZmFjZVN1YkNsYXNzID0gVVNCX1NVQkNMQVNTX0FVRElPQ09OVFJPTCwKLQkuZHJpdmVy X2luZm8gPSAodW5zaWduZWQgbG9uZykgJihjb25zdCBzdHJ1Y3Qgc25kX3VzYl9hdWRpb19xdWly aykgewotCQkudmVuZG9yX25hbWUgPSAiSGF1cHBhdWdlIiwKLQkJLnByb2R1Y3RfbmFtZSA9ICJI VlItOTUwUSIsCi0JCS5pZm51bSA9IFFVSVJLX0FOWV9JTlRFUkZBQ0UsCi0JCS50eXBlID0gUVVJ UktfQVVESU9fQUxJR05fVFJBTlNGRVIsCi0JfQotfSwKLXsKLQlVU0JfREVWSUNFX1ZFTkRPUl9T UEVDKDB4MjA0MCwgMHg3MjgwKSwKLQkubWF0Y2hfZmxhZ3MgPSBVU0JfREVWSUNFX0lEX01BVENI X0RFVklDRSB8Ci0JCSAgICAgICBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9DTEFTUyB8Ci0JCSAg ICAgICBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9TVUJDTEFTUywKLQkuYkludGVyZmFjZUNsYXNz ID0gVVNCX0NMQVNTX0FVRElPLAotCS5iSW50ZXJmYWNlU3ViQ2xhc3MgPSBVU0JfU1VCQ0xBU1Nf QVVESU9DT05UUk9MLAotCS5kcml2ZXJfaW5mbyA9ICh1bnNpZ25lZCBsb25nKSAmKGNvbnN0IHN0 cnVjdCBzbmRfdXNiX2F1ZGlvX3F1aXJrKSB7Ci0JCS52ZW5kb3JfbmFtZSA9ICJIYXVwcGF1Z2Ui LAotCQkucHJvZHVjdF9uYW1lID0gIkhWUi05NTBRIiwKLQkJLmlmbnVtID0gUVVJUktfQU5ZX0lO VEVSRkFDRSwKLQkJLnR5cGUgPSBRVUlSS19BVURJT19BTElHTl9UUkFOU0ZFUiwKLQl9Ci19LAot ewotCVVTQl9ERVZJQ0VfVkVORE9SX1NQRUMoMHgwZmQ5LCAweDAwMDgpLAotCS5tYXRjaF9mbGFn cyA9IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURf TUFUQ0hfSU5UX0NMQVNTIHwKLQkJICAgICAgIFVTQl9ERVZJQ0VfSURfTUFUQ0hfSU5UX1NVQkNM QVNTLAotCS5iSW50ZXJmYWNlQ2xhc3MgPSBVU0JfQ0xBU1NfQVVESU8sCi0JLmJJbnRlcmZhY2VT dWJDbGFzcyA9IFVTQl9TVUJDTEFTU19BVURJT0NPTlRST0wsCi0JLmRyaXZlcl9pbmZvID0gKHVu c2lnbmVkIGxvbmcpICYoY29uc3Qgc3RydWN0IHNuZF91c2JfYXVkaW9fcXVpcmspIHsKLQkJLnZl bmRvcl9uYW1lID0gIkhhdXBwYXVnZSIsCi0JCS5wcm9kdWN0X25hbWUgPSAiSFZSLTk1MFEiLAot CQkuaWZudW0gPSBRVUlSS19BTllfSU5URVJGQUNFLAotCQkudHlwZSA9IFFVSVJLX0FVRElPX0FM SUdOX1RSQU5TRkVSLAotCX0KLX0sCisvKgorICogQXV2aXRlayBhdTA4MjggZGV2aWNlcyB3aXRo IGF1ZGlvIGludGVyZmFjZS4KKyAqIFRoaXMgc2hvdWxkIGJlIGtlcHQgaW4gc3luYyB3aXRoIGRy aXZlcnMvbWVkaWEvdmlkZW8vYXUwODI4L2F1MDgyOC1jYXJkcy5jCisgKiBQbGVhc2Ugbm90aWNl IHRoYXQgc29tZSBkcml2ZXJzIGFyZSBEVkIgb25seSwgYW5kIGRvbid0IG5lZWQgdG8gYmUKKyAq IGhlcmUuIFRoYXQncyB0aGUgY2FzZSwgZm9yIGV4YW1wbGUsIG9mIERWSUNPX0ZVU0lPTkhEVFY3 LgorICovCisKKyNkZWZpbmUgQVUwODI4X0RFVklDRSh2aWQsIHBpZCwgdm5hbWUsIHBuYW1lKSB7 IFwKKwlVU0JfREVWSUNFX1ZFTkRPUl9TUEVDKHZpZCwgcGlkKSwgXAorCS5tYXRjaF9mbGFncyA9 IFVTQl9ERVZJQ0VfSURfTUFUQ0hfREVWSUNFIHwgXAorCQkgICAgICAgVVNCX0RFVklDRV9JRF9N QVRDSF9JTlRfQ0xBU1MgfCBcCisJCSAgICAgICBVU0JfREVWSUNFX0lEX01BVENIX0lOVF9TVUJD TEFTUywgXAorCS5iSW50ZXJmYWNlQ2xhc3MgPSBVU0JfQ0xBU1NfQVVESU8sIFwKKwkuYkludGVy ZmFjZVN1YkNsYXNzID0gVVNCX1NVQkNMQVNTX0FVRElPQ09OVFJPTCwgXAorCS5kcml2ZXJfaW5m byA9ICh1bnNpZ25lZCBsb25nKSAmKGNvbnN0IHN0cnVjdCBzbmRfdXNiX2F1ZGlvX3F1aXJrKSB7 IFwKKwkJLnZlbmRvcl9uYW1lID0gdm5hbWUsIFwKKwkJLnByb2R1Y3RfbmFtZSA9IHBuYW1lLCBc CisJCS5pZm51bSA9IFFVSVJLX0FOWV9JTlRFUkZBQ0UsIFwKKwkJLnR5cGUgPSBRVUlSS19BVURJ T19BTElHTl9UUkFOU0ZFUiwgXAorCX0gXAorfQorCitBVTA4MjhfREVWSUNFKDB4MjA0MCwgMHg3 MjAwLCAiSGF1cHBhdWdlIiwgIkhWUi05NTBRIiksCitBVTA4MjhfREVWSUNFKDB4MjA0MCwgMHg3 MjQwLCAiSGF1cHBhdWdlIiwgIkhWUi04NTAiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy MTAsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy MTcsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy MWIsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy MWUsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy MWYsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy ODAsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgwZmQ5LCAweDAw MDgsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0UoMHgyMDQwLCAweDcy MDEsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEtTVhMIiksCitBVTA4MjhfREVWSUNFKDB4MjA0MCwg MHg3MjExLCAiSGF1cHBhdWdlIiwgIkhWUi05NTBRLU1YTCIpLAorQVUwODI4X0RFVklDRSgweDIw NDAsIDB4NzI4MSwgIkhhdXBwYXVnZSIsICJIVlItOTUwUS1NWEwiKSwKK0FVMDgyOF9ERVZJQ0Uo MHgwNWUxLCAweDA0ODAsICJIYXVwcGF1Z2UiLCAiV29vZGJ1cnkiKSwKK0FVMDgyOF9ERVZJQ0Uo MHgyMDQwLCAweDgyMDAsICJIYXVwcGF1Z2UiLCAiV29vZGJ1cnkiKSwKK0FVMDgyOF9ERVZJQ0Uo MHgyMDQwLCAweDcyNjAsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0Uo MHgyMDQwLCAweDcyMTMsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKK0FVMDgyOF9ERVZJQ0Uo MHgyMDQwLCAweDcyNzAsICJIYXVwcGF1Z2UiLCAiSFZSLTk1MFEiKSwKIAogLyogRGlnaWRlc2ln biBNYm94ICovCiB7Cm== --=-YKKZT25FlElVnC0O/KMZ-- --=-ODiMOC7zXLxHpMRqJ/U/ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIVAwUAVOK0g+e/yOyVhhEJAQpceA/+Ju7CccZl5ydPjoIfciLHHELZSgAPUWcW oUK2hWtIpAq54bJij5LN6SxS0iAARET0V7wa4aYiWd6e9tztAv6tJXftX8chWR0h mNJLQ6ERod/qv0BW2vjb6R9pfH6XKS6LahFXsxLJkbrc7MmwdZ9b9iIUEiPAnFAz ac2AVKJ4JZalA/27o6H146b6nRF4yVSIUy5OPJ8ZQgxfgi0RJfOFax/q582VY5je XHX9IFiJ8MBdBVPR059zJb932myJcE3V+mTiHooydXIK4uTrP4cLQ/nYuZ2idhjd w4OJ83aQ4yDG8ikOe5XZr/oHlzwpuZJtJ5Kdaqv1mlccy72jqixF6540lg15ICzb CKydJMhT5X8uac1erEQjYOzA8DsLgxfRTvKy74oXXzfDDVbSgAOcnreJqbf7K3n+ ocKthSo3Iq5ZKZl6RXDE718XN6oZpH6fPenwLxx1e+FmRSDUbasDr9XGWfS2oNI9 39QsRb99HHwb9JD9CQj0bQAL4/89y/M7ZGaN7t7XZ5MtBRHVdvsG/pHeJhF+JHrG vEwsHAbn33FBnxKfUxPTy/FyejIdUWEithv65EY6B3GC5zw7Ou+QJdnT5Q451jBX G8Tr77KJb8GhwPwzGfrzAb9MbRF9VG02HV3/ki8BFuoYUSGiiji5k/WC6/DwYvJ5 zhjaGlKmkZw= =1hmc -----END PGP SIGNATURE----- --=-ODiMOC7zXLxHpMRqJ/U/--