From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net ([184.105.139.130]:49048 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750828AbdBWT7p (ORCPT ); Thu, 23 Feb 2017 14:59:45 -0500 Received: from localhost (unknown [38.140.131.194]) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id A1A5D125756E0 for ; Thu, 23 Feb 2017 11:00:50 -0800 (PST) Date: Thu, 23 Feb 2017 14:54:47 -0500 (EST) Message-Id: <20170223.145447.550969478055843690.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Feb_23_14_54_47_2017_970)--" Content-Transfer-Encoding: 7bit Sender: stable-owner@vger.kernel.org List-ID: ----Next_Part(Thu_Feb_23_14_54_47_2017_970)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for 4.4.x, 4.9.x, and 4.10.x -stable, respectively. Thanks! ----Next_Part(Thu_Feb_23_14_54_47_2017_970)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_44.mbox" RnJvbSBmODY3ZDBjNjVjNTdmNWU2OGVkYmE1ZWNjZTIyZjA1MjNiNWE3NzhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkRh dGU6IFN1biwgMTIgRmViIDIwMTcgMTQ6MDM6NTIgLTA4MDAKU3ViamVjdDogW1BBVENIIDEvN10g bmV0L2xsYzogYXZvaWQgQlVHX09OKCkgaW4gc2tiX29ycGhhbigpCgpbIFVwc3RyZWFtIGNvbW1p dCA4Yjc0ZDQzOWUxNjk3MTEwYzVlNWM2MDA2NDNlODIzZWIxZGQwNzYyIF0KCkl0IHNlZW1zIG5v Ym9keSB1c2VkIExMQyBzaW5jZSBsaW51eC0zLjEyLgoKRm9ydHVuYXRlbHkgZnV6emVycyBsaWtl IHN5emthbGxlciBzdGlsbCBrbm93IGhvdyB0byBydW4gdGhpcyBjb2RlLApvdGhlcndpc2UgaXQg d291bGQgYmUgbm8gZnVuLgoKU2V0dGluZyBza2ItPnNrIHdpdGhvdXQgc2tiLT5kZXN0cnVjdG9y IGxlYWRzIHRvIGFsbCBraW5kcyBvZgpidWdzLCB3ZSBub3cgcHJlZmVyIHRvIGJlIHZlcnkgc3Ry aWN0IGFib3V0IGl0LgoKSWRlYWxseSBoZXJlIHdlIHdvdWxkIHVzZSBza2Jfc2V0X293bmVyKCkg YnV0IHRoaXMgaGVscGVyIGRvZXMgbm90IGV4aXN0IHlldCwKb25seSBDQU4gc2VlbXMgdG8gaGF2 ZSBhIHByaXZhdGUgaGVscGVyIGZvciB0aGF0LgoKRml4ZXM6IDM3NmM3MzExYmRiNiAoIm5ldDog YWRkIGEgdGVtcG9yYXJ5IHNhbml0eSBjaGVjayBpbiBza2Jfb3JwaGFuKCkiKQpTaWduZWQtb2Zm LWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBBbmRy ZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvbGxjL2xsY19jb25uLmMg fCAzICsrKwogbmV0L2xsYy9sbGNfc2FwLmMgIHwgMyArKysKIDIgZmlsZXMgY2hhbmdlZCwgNiBp bnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9sbGNfY29ubi5jIGIvbmV0L2xsYy9s bGNfY29ubi5jCmluZGV4IDNlODIxZGEuLjhiYzVhMWIgMTAwNjQ0Ci0tLSBhL25ldC9sbGMvbGxj X2Nvbm4uYworKysgYi9uZXQvbGxjL2xsY19jb25uLmMKQEAgLTgyMSw3ICs4MjEsMTAgQEAgdm9p ZCBsbGNfY29ubl9oYW5kbGVyKHN0cnVjdCBsbGNfc2FwICpzYXAsIHN0cnVjdCBza19idWZmICpz a2IpCiAJCSAqIGFub3RoZXIgdHJpY2sgcmVxdWlyZWQgdG8gY29wZSB3aXRoIGhvdyB0aGUgUFJP Q09NIHN0YXRlCiAJCSAqIG1hY2hpbmUgd29ya3MuIC1hY21lCiAJCSAqLworCQlza2Jfb3JwaGFu KHNrYik7CisJCXNvY2tfaG9sZChzayk7CiAJCXNrYi0+c2sgPSBzazsKKwkJc2tiLT5kZXN0cnVj dG9yID0gc29ja19lZnJlZTsKIAl9CiAJaWYgKCFzb2NrX293bmVkX2J5X3VzZXIoc2spKQogCQls bGNfY29ubl9yY3Yoc2ssIHNrYik7CmRpZmYgLS1naXQgYS9uZXQvbGxjL2xsY19zYXAuYyBiL25l dC9sbGMvbGxjX3NhcC5jCmluZGV4IGQwZTFlODAuLjU0MDRkMGQgMTAwNjQ0Ci0tLSBhL25ldC9s bGMvbGxjX3NhcC5jCisrKyBiL25ldC9sbGMvbGxjX3NhcC5jCkBAIC0yOTAsNyArMjkwLDEwIEBA IHN0YXRpYyB2b2lkIGxsY19zYXBfcmN2KHN0cnVjdCBsbGNfc2FwICpzYXAsIHN0cnVjdCBza19i dWZmICpza2IsCiAKIAlldi0+dHlwZSAgID0gTExDX1NBUF9FVl9UWVBFX1BEVTsKIAlldi0+cmVh c29uID0gMDsKKwlza2Jfb3JwaGFuKHNrYik7CisJc29ja19ob2xkKHNrKTsKIAlza2ItPnNrID0g c2s7CisJc2tiLT5kZXN0cnVjdG9yID0gc29ja19lZnJlZTsKIAlsbGNfc2FwX3N0YXRlX3Byb2Nl c3Moc2FwLCBza2IpOwogfQogCi0tIAoyLjQuMTEKCgpGcm9tIGEwMjFiNmMzOTAyOWQ5OGVlYWVk ZDlhMzU0ZTZhMzU1MTZhZDY4MDkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVHVlLCAxNCBGZWIgMjAxNyAwOTow Mzo1MSAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMi83XSBwYWNrZXQ6IGZpeCByYWNlcyBpbiBmYW5v dXRfYWRkKCkKClsgVXBzdHJlYW0gY29tbWl0IGQxOTlmYWI2M2MxMTk5OGE2MDIyMDVmN2VlN2Zm N2MwNWM5NzE2NGIgXQoKTXVsdGlwbGUgdGhyZWFkcyBjYW4gY2FsbCBmYW5vdXRfYWRkKCkgYXQg dGhlIHNhbWUgdGltZS4KCldlIG5lZWQgdG8gZ3JhYiBmYW5vdXRfbXV0ZXggZWFybGllciB0byBh dm9pZCByYWNlcyB0aGF0IGNvdWxkCmxlYWQgdG8gb25lIHRocmVhZCBmcmVlaW5nIHBvLT5yb2xs b3ZlciB0aGF0IHdhcyBzZXQgYnkgYW5vdGhlciB0aHJlYWQuCgpEbyB0aGUgc2FtZSBpbiBmYW5v dXRfcmVsZWFzZSgpLCBmb3IgcGVhY2Ugb2YgbWluZCwgYW5kIHRvIGhlbHAgdXMKZmluZGluZyBs b2NrZGVwIGlzc3VlcyBlYXJsaWVyLgoKRml4ZXM6IGRjOTlmNjAwNjk4ZCAoInBhY2tldDogQWRk IGZhbm91dCBzdXBwb3J0LiIpCkZpeGVzOiAwNjQ4YWI3MGFmZTYgKCJwYWNrZXQ6IHJvbGxvdmVy IHByZXBhcmU6IHBlci1zb2NrZXQgc3RhdGUiKQpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQg PGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1iQGdvb2ds ZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgNTUgKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRp b25zKCspLCAyNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvcGFja2V0L2FmX3BhY2tl dC5jIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwppbmRleCBmMmQyOGVkLi5iMWRjNTk1IDEwMDY0 NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKQEAgLTE2MjMsNiArMTYyMyw3IEBAIHN0YXRpYyB2b2lkIGZhbm91dF9yZWxlYXNlX2RhdGEo c3RydWN0IHBhY2tldF9mYW5vdXQgKmYpCiAKIHN0YXRpYyBpbnQgZmFub3V0X2FkZChzdHJ1Y3Qg c29jayAqc2ssIHUxNiBpZCwgdTE2IHR5cGVfZmxhZ3MpCiB7CisJc3RydWN0IHBhY2tldF9yb2xs b3ZlciAqcm9sbG92ZXIgPSBOVUxMOwogCXN0cnVjdCBwYWNrZXRfc29jayAqcG8gPSBwa3Rfc2so c2spOwogCXN0cnVjdCBwYWNrZXRfZmFub3V0ICpmLCAqbWF0Y2g7CiAJdTggdHlwZSA9IHR5cGVf ZmxhZ3MgJiAweGZmOwpAQCAtMTY0NSwyMyArMTY0NiwyOCBAQCBzdGF0aWMgaW50IGZhbm91dF9h ZGQoc3RydWN0IHNvY2sgKnNrLCB1MTYgaWQsIHUxNiB0eXBlX2ZsYWdzKQogCQlyZXR1cm4gLUVJ TlZBTDsKIAl9CiAKKwltdXRleF9sb2NrKCZmYW5vdXRfbXV0ZXgpOworCisJZXJyID0gLUVJTlZB TDsKIAlpZiAoIXBvLT5ydW5uaW5nKQotCQlyZXR1cm4gLUVJTlZBTDsKKwkJZ290byBvdXQ7CiAK KwllcnIgPSAtRUFMUkVBRFk7CiAJaWYgKHBvLT5mYW5vdXQpCi0JCXJldHVybiAtRUFMUkVBRFk7 CisJCWdvdG8gb3V0OwogCiAJaWYgKHR5cGUgPT0gUEFDS0VUX0ZBTk9VVF9ST0xMT1ZFUiB8fAog CSAgICAodHlwZV9mbGFncyAmIFBBQ0tFVF9GQU5PVVRfRkxBR19ST0xMT1ZFUikpIHsKLQkJcG8t PnJvbGxvdmVyID0ga3phbGxvYyhzaXplb2YoKnBvLT5yb2xsb3ZlciksIEdGUF9LRVJORUwpOwot CQlpZiAoIXBvLT5yb2xsb3ZlcikKLQkJCXJldHVybiAtRU5PTUVNOwotCQlhdG9taWNfbG9uZ19z ZXQoJnBvLT5yb2xsb3Zlci0+bnVtLCAwKTsKLQkJYXRvbWljX2xvbmdfc2V0KCZwby0+cm9sbG92 ZXItPm51bV9odWdlLCAwKTsKLQkJYXRvbWljX2xvbmdfc2V0KCZwby0+cm9sbG92ZXItPm51bV9m YWlsZWQsIDApOworCQllcnIgPSAtRU5PTUVNOworCQlyb2xsb3ZlciA9IGt6YWxsb2Moc2l6ZW9m KCpyb2xsb3ZlciksIEdGUF9LRVJORUwpOworCQlpZiAoIXJvbGxvdmVyKQorCQkJZ290byBvdXQ7 CisJCWF0b21pY19sb25nX3NldCgmcm9sbG92ZXItPm51bSwgMCk7CisJCWF0b21pY19sb25nX3Nl dCgmcm9sbG92ZXItPm51bV9odWdlLCAwKTsKKwkJYXRvbWljX2xvbmdfc2V0KCZyb2xsb3Zlci0+ bnVtX2ZhaWxlZCwgMCk7CisJCXBvLT5yb2xsb3ZlciA9IHJvbGxvdmVyOwogCX0KIAotCW11dGV4 X2xvY2soJmZhbm91dF9tdXRleCk7CiAJbWF0Y2ggPSBOVUxMOwogCWxpc3RfZm9yX2VhY2hfZW50 cnkoZiwgJmZhbm91dF9saXN0LCBsaXN0KSB7CiAJCWlmIChmLT5pZCA9PSBpZCAmJgpAQCAtMTcw OCwxMSArMTcxNCwxMSBAQCBzdGF0aWMgaW50IGZhbm91dF9hZGQoc3RydWN0IHNvY2sgKnNrLCB1 MTYgaWQsIHUxNiB0eXBlX2ZsYWdzKQogCQl9CiAJfQogb3V0OgotCW11dGV4X3VubG9jaygmZmFu b3V0X211dGV4KTsKLQlpZiAoZXJyKSB7Ci0JCWtmcmVlKHBvLT5yb2xsb3Zlcik7CisJaWYgKGVy ciAmJiByb2xsb3ZlcikgeworCQlrZnJlZShyb2xsb3Zlcik7CiAJCXBvLT5yb2xsb3ZlciA9IE5V TEw7CiAJfQorCW11dGV4X3VubG9jaygmZmFub3V0X211dGV4KTsKIAlyZXR1cm4gZXJyOwogfQog CkBAIC0xNzIxLDIzICsxNzI3LDIyIEBAIHN0YXRpYyB2b2lkIGZhbm91dF9yZWxlYXNlKHN0cnVj dCBzb2NrICpzaykKIAlzdHJ1Y3QgcGFja2V0X3NvY2sgKnBvID0gcGt0X3NrKHNrKTsKIAlzdHJ1 Y3QgcGFja2V0X2Zhbm91dCAqZjsKIAotCWYgPSBwby0+ZmFub3V0OwotCWlmICghZikKLQkJcmV0 dXJuOwotCiAJbXV0ZXhfbG9jaygmZmFub3V0X211dGV4KTsKLQlwby0+ZmFub3V0ID0gTlVMTDsK KwlmID0gcG8tPmZhbm91dDsKKwlpZiAoZikgeworCQlwby0+ZmFub3V0ID0gTlVMTDsKKworCQlp ZiAoYXRvbWljX2RlY19hbmRfdGVzdCgmZi0+c2tfcmVmKSkgeworCQkJbGlzdF9kZWwoJmYtPmxp c3QpOworCQkJZGV2X3JlbW92ZV9wYWNrKCZmLT5wcm90X2hvb2spOworCQkJZmFub3V0X3JlbGVh c2VfZGF0YShmKTsKKwkJCWtmcmVlKGYpOworCQl9CiAKLQlpZiAoYXRvbWljX2RlY19hbmRfdGVz dCgmZi0+c2tfcmVmKSkgewotCQlsaXN0X2RlbCgmZi0+bGlzdCk7Ci0JCWRldl9yZW1vdmVfcGFj aygmZi0+cHJvdF9ob29rKTsKLQkJZmFub3V0X3JlbGVhc2VfZGF0YShmKTsKLQkJa2ZyZWUoZik7 CisJCWlmIChwby0+cm9sbG92ZXIpCisJCQlrZnJlZV9yY3UocG8tPnJvbGxvdmVyLCByY3UpOwog CX0KIAltdXRleF91bmxvY2soJmZhbm91dF9tdXRleCk7Ci0KLQlpZiAocG8tPnJvbGxvdmVyKQot CQlrZnJlZV9yY3UocG8tPnJvbGxvdmVyLCByY3UpOwogfQogCiBzdGF0aWMgYm9vbCBwYWNrZXRf ZXh0cmFfdmxhbl9sZW5fYWxsb3dlZChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAotLSAK Mi40LjExCgoKRnJvbSA5YWUyMGU5ODMzZWI3NzFkMjJjNGM1NTQ5ZGU4MmRhZjE4ZTlmZGI3IE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbm9vYiBTb21hbiA8YW5vb2Iuc29tYW5AY2l0 cml4LmNvbT4KRGF0ZTogV2VkLCAxNSBGZWIgMjAxNyAyMDoyNTozOSArMDAwMApTdWJqZWN0OiBb UEFUQ0ggMy83XSBwYWNrZXQ6IERvIG5vdCBjYWxsIGZhbm91dF9yZWxlYXNlIGZyb20gYXRvbWlj IGNvbnRleHRzCgpbIFVwc3RyZWFtIGNvbW1pdCAyYmQ2MjRiNDYxMWZmZWUzNjQyMjc4MmQxNmUx Yzk0NGQxMzUxZTk4IF0KCkNvbW1pdCA2NjY0NDk4MjgwY2YgKCJwYWNrZXQ6IGNhbGwgZmFub3V0 X3JlbGVhc2UsIHdoaWxlIFVOUkVHSVNURVJJTkcgYQpuZXRkZXYiKSwgdW5mb3J0dW5hdGVseSwg aW50cm9kdWNlZCB0aGUgZm9sbG93aW5nIGlzc3Vlcy4KCjEuIGNhbGxpbmcgbXV0ZXhfbG9jaygm ZmFub3V0X211dGV4KSAoZmFub3V0X3JlbGVhc2UoKSkgZnJvbSBpbnNpZGUKcmN1X3JlYWQtc2lk ZSBjcml0aWNhbCBzZWN0aW9uLiByY3VfcmVhZF9sb2NrIGRpc2FibGVzIHByZWVtcHRpb24sIG1v c3Qgb2Z0ZW4sCndoaWNoIHByb2hpYml0cyBjYWxsaW5nIHNsZWVwaW5nIGZ1bmN0aW9ucy4KClsg IF0gaW5jbHVkZS9saW51eC9yY3VwZGF0ZS5oOjU2MCBJbGxlZ2FsIGNvbnRleHQgc3dpdGNoIGlu IFJDVSByZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbiEKWyAgXQpbICBdIHJjdV9zY2hlZHVsZXJf YWN0aXZlID0gMSwgZGVidWdfbG9ja3MgPSAwClsgIF0gNCBsb2NrcyBoZWxkIGJ5IG92cy12c3dp dGNoZC8xOTY5OgpbICBdICAjMDogIChjYl9sb2NrKXsrKysrKyt9LCBhdDogWzxmZmZmZmZmZjgx NThhNmM5Pl0gZ2VubF9yY3YrMHgxOS8weDQwClsgIF0gICMxOiAgKG92c19tdXRleCl7Ky4rLisu fSwgYXQ6IFs8ZmZmZmZmZmZhMDQ4NzhjYT5dIG92c192cG9ydF9jbWRfZGVsKzB4NGEvMHgxMDAg W29wZW52c3dpdGNoXQpbICBdICAjMjogIChydG5sX211dGV4KXsrLisuKy59LCBhdDogWzxmZmZm ZmZmZjgxNTY0MTU3Pl0gcnRubF9sb2NrKzB4MTcvMHgyMApbICBdICAjMzogIChyY3VfcmVhZF9s b2NrKXsuLi4uLi59LCBhdDogWzxmZmZmZmZmZjgxNjE0MTY1Pl0gcGFja2V0X25vdGlmaWVyKzB4 NS8weDNmMApbICBdClsgIF0gQ2FsbCBUcmFjZToKWyAgXSAgWzxmZmZmZmZmZjgxMzc3MGMxPl0g ZHVtcF9zdGFjaysweDg1LzB4YzQKWyAgXSAgWzxmZmZmZmZmZjgxMGM5MDc3Pl0gbG9ja2RlcF9y Y3Vfc3VzcGljaW91cysweDEwNy8weDExMApbICBdICBbPGZmZmZmZmZmODEwYTJkYTc+XSBfX19t aWdodF9zbGVlcCsweDU3LzB4MjEwClsgIF0gIFs8ZmZmZmZmZmY4MTBhMmZkMD5dIF9fbWlnaHRf c2xlZXArMHg3MC8weDkwClsgIF0gIFs8ZmZmZmZmZmY4MTYyZTgwYz5dIG11dGV4X2xvY2tfbmVz dGVkKzB4M2MvMHgzYTAKWyAgXSAgWzxmZmZmZmZmZjgxMGRlOTNmPl0gPyB2cHJpbnRrX2RlZmF1 bHQrMHgxZi8weDMwClsgIF0gIFs8ZmZmZmZmZmY4MTE4NmU4OD5dID8gcHJpbnRrKzB4NGQvMHg0 ZgpbICBdICBbPGZmZmZmZmZmODE2MTA2ZGQ+XSBmYW5vdXRfcmVsZWFzZSsweDFkLzB4ZTAKWyAg XSAgWzxmZmZmZmZmZjgxNjE0NDU5Pl0gcGFja2V0X25vdGlmaWVyKzB4MmY5LzB4M2YwCgoyLiBj YWxsaW5nIG11dGV4X2xvY2soJmZhbm91dF9tdXRleCkgaW5zaWRlIHNwaW5fbG9jaygmcG8tPmJp bmRfbG9jaykuCiJzbGVlcGluZyBmdW5jdGlvbiBjYWxsZWQgZnJvbSBpbnZhbGlkIGNvbnRleHQi CgpbICBdIEJVRzogc2xlZXBpbmcgZnVuY3Rpb24gY2FsbGVkIGZyb20gaW52YWxpZCBjb250ZXh0 IGF0IGtlcm5lbC9sb2NraW5nL211dGV4LmM6NjIwClsgIF0gaW5fYXRvbWljKCk6IDEsIGlycXNf ZGlzYWJsZWQoKTogMCwgcGlkOiAxOTY5LCBuYW1lOiBvdnMtdnN3aXRjaGQKWyAgXSBJTkZPOiBs b2NrZGVwIGlzIHR1cm5lZCBvZmYuClsgIF0gQ2FsbCBUcmFjZToKWyAgXSAgWzxmZmZmZmZmZjgx Mzc3MGMxPl0gZHVtcF9zdGFjaysweDg1LzB4YzQKWyAgXSAgWzxmZmZmZmZmZjgxMGEyZjUyPl0g X19fbWlnaHRfc2xlZXArMHgyMDIvMHgyMTAKWyAgXSAgWzxmZmZmZmZmZjgxMGEyZmQwPl0gX19t aWdodF9zbGVlcCsweDcwLzB4OTAKWyAgXSAgWzxmZmZmZmZmZjgxNjJlODBjPl0gbXV0ZXhfbG9j a19uZXN0ZWQrMHgzYy8weDNhMApbICBdICBbPGZmZmZmZmZmODE2MTA2ZGQ+XSBmYW5vdXRfcmVs ZWFzZSsweDFkLzB4ZTAKWyAgXSAgWzxmZmZmZmZmZjgxNjE0NDU5Pl0gcGFja2V0X25vdGlmaWVy KzB4MmY5LzB4M2YwCgozLiBjYWxsaW5nIGRldl9yZW1vdmVfcGFjaygmZmFub3V0LT5wcm90X2hv b2spLCBmcm9tIGluc2lkZQpzcGluX2xvY2soJnBvLT5iaW5kX2xvY2spIG9yIHJjdV9yZWFkLXNp ZGUgY3JpdGljYWwtc2VjdGlvbi4gZGV2X3JlbW92ZV9wYWNrKCkKLT4gc3luY2hyb25pemVfbmV0 KCksIHdoaWNoIG1pZ2h0IHNsZWVwLgoKWyAgXSBCVUc6IHNjaGVkdWxpbmcgd2hpbGUgYXRvbWlj OiBvdnMtdnN3aXRjaGQvMTk2OS8weDAwMDAwMDAyClsgIF0gSU5GTzogbG9ja2RlcCBpcyB0dXJu ZWQgb2ZmLgpbICBdIENhbGwgVHJhY2U6ClsgIF0gIFs8ZmZmZmZmZmY4MTM3NzBjMT5dIGR1bXBf c3RhY2srMHg4NS8weGM0ClsgIF0gIFs8ZmZmZmZmZmY4MTE4NjI3ND5dIF9fc2NoZWR1bGVfYnVn KzB4NjQvMHg3MwpbICBdICBbPGZmZmZmZmZmODE2MmI4Y2I+XSBfX3NjaGVkdWxlKzB4NmIvMHhk MTAKWyAgXSAgWzxmZmZmZmZmZjgxNjJjNWRiPl0gc2NoZWR1bGUrMHg2Yi8weDgwClsgIF0gIFs8 ZmZmZmZmZmY4MTYzMGIxZD5dIHNjaGVkdWxlX3RpbWVvdXQrMHgzOGQvMHg0MTAKWyAgXSAgWzxm ZmZmZmZmZjgxMGVhM2ZkPl0gc3luY2hyb25pemVfc2NoZWRfZXhwZWRpdGVkKzB4NTNkLzB4ODEw ClsgIF0gIFs8ZmZmZmZmZmY4MTBlYTZkZT5dIHN5bmNocm9uaXplX3JjdV9leHBlZGl0ZWQrMHhl LzB4MTAKWyAgXSAgWzxmZmZmZmZmZjgxNTRlYWI1Pl0gc3luY2hyb25pemVfbmV0KzB4MzUvMHg1 MApbICBdICBbPGZmZmZmZmZmODE1NGVhZTM+XSBkZXZfcmVtb3ZlX3BhY2srMHgxMy8weDIwClsg IF0gIFs8ZmZmZmZmZmY4MTYxMDc3ZT5dIGZhbm91dF9yZWxlYXNlKzB4YmUvMHhlMApbICBdICBb PGZmZmZmZmZmODE2MTQ0NTk+XSBwYWNrZXRfbm90aWZpZXIrMHgyZjkvMHgzZjAKCjQuIGZhbm91 dF9yZWxlYXNlKCkgcmFjZXMgd2l0aCBjYWxscyBmcm9tIGRpZmZlcmVudCBDUFUuCgpUbyBmaXgg dGhlIGFib3ZlIHByb2JsZW1zLCByZW1vdmUgdGhlIGNhbGwgdG8gZmFub3V0X3JlbGVhc2UoKSB1 bmRlcgpyY3VfcmVhZF9sb2NrKCkuIEluc3RlYWQsIGNhbGwgX19kZXZfcmVtb3ZlX3BhY2soJmZh bm91dC0+cHJvdF9ob29rKSBhbmQKbmV0ZGV2X3J1bl90b2RvIHdpbGwgYmUgaGFwcHkgdGhhdCAm ZGV2LT5wdHlwZV9zcGVjaWZpYyBsaXN0IGlzIGVtcHR5LiBJbiBvcmRlcgp0byBhY2hpZXZlIHRo aXMsIEkgbW92ZWQgZGV2X3thZGQscmVtb3ZlfV9wYWNrKCkgb3V0IG9mIGZhbm91dF97YWRkLHJl bGVhc2V9IHRvCl9fZmFub3V0X3tsaW5rLHVubGlua30uIFNvLCBjYWxsIHRvIHssX199dW5yZWdp c3Rlcl9wcm90X2hvb2soKSB3aWxsIG1ha2Ugc3VyZQpmYW5vdXQtPnByb3RfaG9vayBpcyByZW1v dmVkIGFzIHdlbGwuCgpGaXhlczogNjY2NDQ5ODI4MGNmICgicGFja2V0OiBjYWxsIGZhbm91dF9y ZWxlYXNlLCB3aGlsZSBVTlJFR0lTVEVSSU5HIGEgbmV0ZGV2IikKUmVwb3J0ZWQtYnk6IEVyaWMg RHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogQW5vb2IgU29tYW4g PGFub29iLnNvbWFuQGNpdHJpeC5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgMzEgKysrKysrKysrKysrKysr KysrKysrKy0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKaW5kZXggYjFkYzU5NS4uZDgwNWNkNSAxMDA2NDQKLS0tIGEvbmV0L3Bh Y2tldC9hZl9wYWNrZXQuYworKysgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCkBAIC0xNDk3LDYg KzE0OTcsOCBAQCBzdGF0aWMgdm9pZCBfX2Zhbm91dF9saW5rKHN0cnVjdCBzb2NrICpzaywgc3Ry dWN0IHBhY2tldF9zb2NrICpwbykKIAlmLT5hcnJbZi0+bnVtX21lbWJlcnNdID0gc2s7CiAJc21w X3dtYigpOwogCWYtPm51bV9tZW1iZXJzKys7CisJaWYgKGYtPm51bV9tZW1iZXJzID09IDEpCisJ CWRldl9hZGRfcGFjaygmZi0+cHJvdF9ob29rKTsKIAlzcGluX3VubG9jaygmZi0+bG9jayk7CiB9 CiAKQEAgLTE1MTMsNiArMTUxNSw4IEBAIHN0YXRpYyB2b2lkIF9fZmFub3V0X3VubGluayhzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBwYWNrZXRfc29jayAqcG8pCiAJQlVHX09OKGkgPj0gZi0+bnVt X21lbWJlcnMpOwogCWYtPmFycltpXSA9IGYtPmFycltmLT5udW1fbWVtYmVycyAtIDFdOwogCWYt Pm51bV9tZW1iZXJzLS07CisJaWYgKGYtPm51bV9tZW1iZXJzID09IDApCisJCV9fZGV2X3JlbW92 ZV9wYWNrKCZmLT5wcm90X2hvb2spOwogCXNwaW5fdW5sb2NrKCZmLT5sb2NrKTsKIH0KIApAQCAt MTY5Nyw3ICsxNzAxLDYgQEAgc3RhdGljIGludCBmYW5vdXRfYWRkKHN0cnVjdCBzb2NrICpzaywg dTE2IGlkLCB1MTYgdHlwZV9mbGFncykKIAkJbWF0Y2gtPnByb3RfaG9vay5mdW5jID0gcGFja2V0 X3Jjdl9mYW5vdXQ7CiAJCW1hdGNoLT5wcm90X2hvb2suYWZfcGFja2V0X3ByaXYgPSBtYXRjaDsK IAkJbWF0Y2gtPnByb3RfaG9vay5pZF9tYXRjaCA9IG1hdGNoX2Zhbm91dF9ncm91cDsKLQkJZGV2 X2FkZF9wYWNrKCZtYXRjaC0+cHJvdF9ob29rKTsKIAkJbGlzdF9hZGQoJm1hdGNoLT5saXN0LCAm ZmFub3V0X2xpc3QpOwogCX0KIAllcnIgPSAtRUlOVkFMOwpAQCAtMTcyMiw3ICsxNzI1LDEyIEBA IG91dDoKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMgdm9pZCBmYW5vdXRfcmVsZWFzZShzdHJ1 Y3Qgc29jayAqc2spCisvKiBJZiBwa3Rfc2soc2spLT5mYW5vdXQtPnNrX3JlZiBpcyB6ZXJvLCB0 aGlzIGZ1bmN0aW9uIHJlbW92ZXMKKyAqIHBrdF9zayhzayktPmZhbm91dCBmcm9tIGZhbm91dF9s aXN0IGFuZCByZXR1cm5zIHBrdF9zayhzayktPmZhbm91dC4KKyAqIEl0IGlzIHRoZSByZXNwb25z aWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIGNhbGwgZmFub3V0X3JlbGVhc2VfZGF0YSgpIGFuZAor ICogZnJlZSB0aGUgcmV0dXJuZWQgcGFja2V0X2Zhbm91dCAoYWZ0ZXIgc3luY2hyb25pemVfbmV0 KCkpCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcGFja2V0X2Zhbm91dCAqZmFub3V0X3JlbGVhc2Uoc3Ry dWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBwYWNrZXRfc29jayAqcG8gPSBwa3Rfc2soc2spOwog CXN0cnVjdCBwYWNrZXRfZmFub3V0ICpmOwpAQCAtMTczMiwxNyArMTc0MCwxNyBAQCBzdGF0aWMg dm9pZCBmYW5vdXRfcmVsZWFzZShzdHJ1Y3Qgc29jayAqc2spCiAJaWYgKGYpIHsKIAkJcG8tPmZh bm91dCA9IE5VTEw7CiAKLQkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmYtPnNrX3JlZikpIHsK KwkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmYtPnNrX3JlZikpCiAJCQlsaXN0X2RlbCgmZi0+ bGlzdCk7Ci0JCQlkZXZfcmVtb3ZlX3BhY2soJmYtPnByb3RfaG9vayk7Ci0JCQlmYW5vdXRfcmVs ZWFzZV9kYXRhKGYpOwotCQkJa2ZyZWUoZik7Ci0JCX0KKwkJZWxzZQorCQkJZiA9IE5VTEw7CiAK IAkJaWYgKHBvLT5yb2xsb3ZlcikKIAkJCWtmcmVlX3JjdShwby0+cm9sbG92ZXIsIHJjdSk7CiAJ fQogCW11dGV4X3VubG9jaygmZmFub3V0X211dGV4KTsKKworCXJldHVybiBmOwogfQogCiBzdGF0 aWMgYm9vbCBwYWNrZXRfZXh0cmFfdmxhbl9sZW5fYWxsb3dlZChjb25zdCBzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2LApAQCAtMjg1MSw2ICsyODU5LDcgQEAgc3RhdGljIGludCBwYWNrZXRfcmVsZWFz ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogewogCXN0cnVjdCBzb2NrICpzayA9IHNvY2stPnNrOwog CXN0cnVjdCBwYWNrZXRfc29jayAqcG87CisJc3RydWN0IHBhY2tldF9mYW5vdXQgKmY7CiAJc3Ry dWN0IG5ldCAqbmV0OwogCXVuaW9uIHRwYWNrZXRfcmVxX3UgcmVxX3U7CiAKQEAgLTI4OTAsOSAr Mjg5OSwxNCBAQCBzdGF0aWMgaW50IHBhY2tldF9yZWxlYXNlKHN0cnVjdCBzb2NrZXQgKnNvY2sp CiAJCXBhY2tldF9zZXRfcmluZyhzaywgJnJlcV91LCAxLCAxKTsKIAl9CiAKLQlmYW5vdXRfcmVs ZWFzZShzayk7CisJZiA9IGZhbm91dF9yZWxlYXNlKHNrKTsKIAogCXN5bmNocm9uaXplX25ldCgp OworCisJaWYgKGYpIHsKKwkJZmFub3V0X3JlbGVhc2VfZGF0YShmKTsKKwkJa2ZyZWUoZik7CisJ fQogCS8qCiAJICoJTm93IHRoZSBzb2NrZXQgaXMgZGVhZC4gTm8gbW9yZSBpbnB1dCB3aWxsIGFw cGVhci4KIAkgKi8KQEAgLTM4NjYsNyArMzg4MCw2IEBAIHN0YXRpYyBpbnQgcGFja2V0X25vdGlm aWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywKIAkJCQl9CiAJCQkJaWYgKG1zZyA9PSBO RVRERVZfVU5SRUdJU1RFUikgewogCQkJCQlwYWNrZXRfY2FjaGVkX2Rldl9yZXNldChwbyk7Ci0J CQkJCWZhbm91dF9yZWxlYXNlKHNrKTsKIAkJCQkJcG8tPmlmaW5kZXggPSAtMTsKIAkJCQkJaWYg KHBvLT5wcm90X2hvb2suZGV2KQogCQkJCQkJZGV2X3B1dChwby0+cHJvdF9ob29rLmRldik7Ci0t IAoyLjQuMTEKCgpGcm9tIGY2YTI0M2U2NmU3OWZjYThkOTk3YWFjOTkzMmJjYzE2NzczNjNjYzgg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtu dmxAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAxNiBGZWIgMjAxNyAxNzoyMjo0NiArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggNC83XSBkY2NwOiBmaXggZnJlZWluZyBza2IgdG9vIGVhcmx5IGZvciBJUFY2 X1JFQ1ZQS1RJTkZPCgpbIFVwc3RyZWFtIGNvbW1pdCA1ZWRhYmNhOWQ0Y2ZmN2YxZjJiNjhmMGJh YzU1ZWY5OWQ5Nzk4YmE0IF0KCkluIHRoZSBjdXJyZW50IERDQ1AgaW1wbGVtZW50YXRpb24gYW4g c2tiIGZvciBhIERDQ1BfUEtUX1JFUVVFU1QgcGFja2V0CmlzIGZvcmNpYmx5IGZyZWVkIHZpYSBf X2tmcmVlX3NrYiBpbiBkY2NwX3Jjdl9zdGF0ZV9wcm9jZXNzIGlmCmRjY3BfdjZfY29ubl9yZXF1 ZXN0IHN1Y2Nlc3NmdWxseSByZXR1cm5zLgoKSG93ZXZlciwgaWYgSVBWNl9SRUNWUEtUSU5GTyBp cyBzZXQgb24gYSBzb2NrZXQsIHRoZSBhZGRyZXNzIG9mIHRoZSBza2IKaXMgc2F2ZWQgdG8gaXJl cS0+cGt0b3B0cyBhbmQgdGhlIHJlZiBjb3VudCBmb3Igc2tiIGlzIGluY3JlbWVudGVkIGluCmRj Y3BfdjZfY29ubl9yZXF1ZXN0LCBzbyBza2IgaXMgc3RpbGwgaW4gdXNlLiBOZXZlcnRoZWxlc3Ms IGl0IGdldHMgZnJlZWQKaW4gZGNjcF9yY3Zfc3RhdGVfcHJvY2Vzcy4KCkZpeCBieSBjYWxsaW5n IGNvbnN1bWVfc2tiIGluc3RlYWQgb2YgZG9pbmcgZ290byBkaXNjYXJkIGFuZCB0aGVyZWZvcmUK Y2FsbGluZyBfX2tmcmVlX3NrYi4KClNpbWlsYXIgZml4ZXMgZm9yIFRDUDoKCmZiN2UyMzk5ZWMx N2YxMDA0YzBlMGNjZmQxNzQzOWY4NzU5ZWRlMDEgW1RDUF06IHNrYiBpcyB1bmV4cGVjdGVkbHkg ZnJlZWQuCjBhZWE3NmQzNWM5NjUxZDU1YmJhZjc0NmU3OTE0ZTVmOWFlNWEyNWQgdGNwOiBTWU4g cGFja2V0cyBhcmUgbm93CnNpbXBseSBjb25zdW1lZAoKU2lnbmVkLW9mZi1ieTogQW5kcmV5IEtv bm92YWxvdiA8YW5kcmV5a252bEBnb29nbGUuY29tPgpBY2tlZC1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2RjY3AvaW5wdXQuYyB8IDMgKystCiAxIGZpbGUgY2hh bmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2Rj Y3AvaW5wdXQuYyBiL25ldC9kY2NwL2lucHV0LmMKaW5kZXggM2JkMTRlOC4uZGJlMjU3MyAxMDA2 NDQKLS0tIGEvbmV0L2RjY3AvaW5wdXQuYworKysgYi9uZXQvZGNjcC9pbnB1dC5jCkBAIC02MDYs NyArNjA2LDggQEAgaW50IGRjY3BfcmN2X3N0YXRlX3Byb2Nlc3Moc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJaWYgKGluZXRfY3NrKHNrKS0+aWNza19hZl9vcHMtPmNv bm5fcmVxdWVzdChzaywKIAkJCQkJCQkJICAgIHNrYikgPCAwKQogCQkJCXJldHVybiAxOwotCQkJ Z290byBkaXNjYXJkOworCQkJY29uc3VtZV9za2Ioc2tiKTsKKwkJCXJldHVybiAwOwogCQl9CiAJ CWlmIChkaC0+ZGNjcGhfdHlwZSA9PSBEQ0NQX1BLVF9SRVNFVCkKIAkJCWdvdG8gZGlzY2FyZDsK LS0gCjIuNC4xMQoKCkZyb20gMTk1ZTU4MDNjMDM1MWFjYTc1ZTZmODVmZTU2NDczODllMjhjOGRi NyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogIkRhdmlkIFMuIE1pbGxlciIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+CkRhdGU6IEZyaSwgMTcgRmViIDIwMTcgMTY6MTk6MzkgLTA1MDAKU3Vi amVjdDogW1BBVENIIDUvN10gaXJkYTogRml4IGxvY2tkZXAgYW5ub3RhdGlvbnMgaW4gaGFzaGJp bl9kZWxldGUoKS4KClsgVXBzdHJlYW0gY29tbWl0IDRjMDNiODYyYjEyZjk4MDQ1NmY5ZGU5MmRi NmQ1MDhhNDk5OWI3ODggXQoKQSBuZXN0ZWQgbG9jayBkZXB0aCB3YXMgYWRkZWQgdG8gdGhlIGhh c2Jpbl9kZWxldGUoKSBjb2RlIGJ1dCBpdApkb2Vzbid0IGFjdHVhbGx5IHdvcmsgc29tZSB3ZWxs IGFuZCByZXN1bHRzIGluIHRvbnMgb2YgbG9ja2RlcCBzcGxhdHMuCgpGaXggdGhlIGNvZGUgaW5z dGVhZCB0byBwcm9wZXJseSBkcm9wIHRoZSBsb2NrIGFyb3VuZCB0aGUgb3BlcmF0aW9uCmFuZCBq dXN0IGtlZXAgcGVla2luZyB0aGUgaGVhZCBvZiB0aGUgaGFzaGJpbiBxdWV1ZS4KClJlcG9ydGVk LWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ClRlc3RlZC1ieTogRG1pdHJ5 IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxs ZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lyZGEvaXJxdWV1ZS5jIHwgMzQgKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2IGluc2Vy dGlvbnMoKyksIDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcmRhL2lycXVldWUu YyBiL25ldC9pcmRhL2lycXVldWUuYwppbmRleCBhY2JlNjFjLi4xNjBkYzg5IDEwMDY0NAotLS0g YS9uZXQvaXJkYS9pcnF1ZXVlLmMKKysrIGIvbmV0L2lyZGEvaXJxdWV1ZS5jCkBAIC0zODMsOSAr MzgzLDYgQEAgRVhQT1JUX1NZTUJPTChoYXNoYmluX25ldyk7CiAgKiAgICBmb3IgZGVhbGxvY2F0 aW5nIHRoaXMgc3RydWN0dXJlIGlmIGl0J3MgY29tcGxleC4gSWYgbm90IHRoZSB1c2VyIGNhbgog ICogICAganVzdCBzdXBwbHkga2ZyZWUsIHdoaWNoIHNob3VsZCB0YWtlIGNhcmUgb2YgdGhlIGpv Yi4KICAqLwotI2lmZGVmIENPTkZJR19MT0NLREVQCi1zdGF0aWMgaW50IGhhc2hiaW5fbG9ja19k ZXB0aCA9IDA7Ci0jZW5kaWYKIGludCBoYXNoYmluX2RlbGV0ZSggaGFzaGJpbl90KiBoYXNoYmlu LCBGUkVFX0ZVTkMgZnJlZV9mdW5jKQogewogCWlyZGFfcXVldWVfdCogcXVldWU7CkBAIC0zOTYs MjIgKzM5MywyNyBAQCBpbnQgaGFzaGJpbl9kZWxldGUoIGhhc2hiaW5fdCogaGFzaGJpbiwgRlJF RV9GVU5DIGZyZWVfZnVuYykKIAlJUkRBX0FTU0VSVChoYXNoYmluLT5tYWdpYyA9PSBIQl9NQUdJ QywgcmV0dXJuIC0xOyk7CiAKIAkvKiBTeW5jaHJvbml6ZSAqLwotCWlmICggaGFzaGJpbi0+aGJf dHlwZSAmIEhCX0xPQ0sgKSB7Ci0JCXNwaW5fbG9ja19pcnFzYXZlX25lc3RlZCgmaGFzaGJpbi0+ aGJfc3BpbmxvY2ssIGZsYWdzLAotCQkJCQkgaGFzaGJpbl9sb2NrX2RlcHRoKyspOwotCX0KKwlp ZiAoaGFzaGJpbi0+aGJfdHlwZSAmIEhCX0xPQ0spCisJCXNwaW5fbG9ja19pcnFzYXZlKCZoYXNo YmluLT5oYl9zcGlubG9jaywgZmxhZ3MpOwogCiAJLyoKIAkgKiAgRnJlZSB0aGUgZW50cmllcyBp biB0aGUgaGFzaGJpbiwgVE9ETzogdXNlIGhhc2hiaW5fY2xlYXIgd2hlbgogCSAqICBpdCBoYXMg YmVlbiBzaG93biB0byB3b3JrCiAJICovCiAJZm9yIChpID0gMDsgaSA8IEhBU0hCSU5fU0laRTsg aSArKyApIHsKLQkJcXVldWUgPSBkZXF1ZXVlX2ZpcnN0KChpcmRhX3F1ZXVlX3QqKikgJmhhc2hi aW4tPmhiX3F1ZXVlW2ldKTsKLQkJd2hpbGUgKHF1ZXVlICkgewotCQkJaWYgKGZyZWVfZnVuYykK LQkJCQkoKmZyZWVfZnVuYykocXVldWUpOwotCQkJcXVldWUgPSBkZXF1ZXVlX2ZpcnN0KAotCQkJ CShpcmRhX3F1ZXVlX3QqKikgJmhhc2hiaW4tPmhiX3F1ZXVlW2ldKTsKKwkJd2hpbGUgKDEpIHsK KwkJCXF1ZXVlID0gZGVxdWV1ZV9maXJzdCgoaXJkYV9xdWV1ZV90KiopICZoYXNoYmluLT5oYl9x dWV1ZVtpXSk7CisKKwkJCWlmICghcXVldWUpCisJCQkJYnJlYWs7CisKKwkJCWlmIChmcmVlX2Z1 bmMpIHsKKwkJCQlpZiAoaGFzaGJpbi0+aGJfdHlwZSAmIEhCX0xPQ0spCisJCQkJCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmhhc2hiaW4tPmhiX3NwaW5sb2NrLCBmbGFncyk7CisJCQkJZnJlZV9m dW5jKHF1ZXVlKTsKKwkJCQlpZiAoaGFzaGJpbi0+aGJfdHlwZSAmIEhCX0xPQ0spCisJCQkJCXNw aW5fbG9ja19pcnFzYXZlKCZoYXNoYmluLT5oYl9zcGlubG9jaywgZmxhZ3MpOworCQkJfQogCQl9 CiAJfQogCkBAIC00MjAsMTIgKzQyMiw4IEBAIGludCBoYXNoYmluX2RlbGV0ZSggaGFzaGJpbl90 KiBoYXNoYmluLCBGUkVFX0ZVTkMgZnJlZV9mdW5jKQogCWhhc2hiaW4tPm1hZ2ljID0gfkhCX01B R0lDOwogCiAJLyogUmVsZWFzZSBsb2NrICovCi0JaWYgKCBoYXNoYmluLT5oYl90eXBlICYgSEJf TE9DSykgeworCWlmIChoYXNoYmluLT5oYl90eXBlICYgSEJfTE9DSykKIAkJc3Bpbl91bmxvY2tf aXJxcmVzdG9yZSgmaGFzaGJpbi0+aGJfc3BpbmxvY2ssIGZsYWdzKTsKLSNpZmRlZiBDT05GSUdf TE9DS0RFUAotCQloYXNoYmluX2xvY2tfZGVwdGgtLTsKLSNlbmRpZgotCX0KIAogCS8qCiAJICog IEZyZWUgdGhlIGhhc2hiaW4gc3RydWN0dXJlCi0tIAoyLjQuMTEKCgpGcm9tIDJiOGMxYmI0MDlj OTZmNjUwZjE4OWU3YWZjMzhiNjQyMTM0ZWUyNzAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4KRGF0ZTogVHVlLCAyMSBGZWIgMjAx NyAwOTozMzoxOCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNi83XSBpcDogZml4IElQX0NIRUNLU1VN IGhhbmRsaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBjYTRlZjQ1NzRmMWVlNTI1MmUyY2QzNjVmOGY1 ZDViYWZkMDQ4ZjMyIF0KClRoZSBza2JzIHByb2Nlc3NlZCBieSBpcF9jbXNnX3JlY3YoKSBhcmUg bm90IGd1YXJhbnRlZWQgdG8KYmUgbGluZWFyIGUuZy4gd2hlbiBzZW5kaW5nIFVEUCBwYWNrZXRz IG92ZXIgbG9vcGJhY2sgd2l0aApNU0dNT1JFLgpVc2luZyBjc3VtX3BhcnRpYWwoKSBvbiBbcG90 ZW50aWFsbHldIHRoZSB3aG9sZSBza2IgbGVuCmlzIGRhbmdlcm91czsgaW5zdGVhZCBiZSBvbiB0 aGUgc2FmZSBzaWRlIGFuZCB1c2Ugc2tiX2NoZWNrc3VtKCkuCgpUaGFua3MgdG8gc3l6a2FsbGVy IHRlYW0gdG8gZGV0ZWN0IHRoZSBpc3N1ZSBhbmQgcHJvdmlkZSB0aGUKcmVwcm9kdWNlci4KCnYx IC0+IHYyOgogLSBtb3ZlIHRoZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbiBhIHRpZ2h0ZXIgc2Nv cGUKCkZpeGVzOiBhZDZmOTM5YWIxOTMgKCJpcDogQWRkIG9mZnNldCBwYXJhbWV0ZXIgdG8gaXBf Y21zZ19yZWN2IikKUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29v Z2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpB Y2tlZC1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBf c29ja2dsdWUuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyks IDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25l dC9pcHY0L2lwX3NvY2tnbHVlLmMKaW5kZXggYmMxNGM1Yi4uZjMwMGQxYyAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvaXBfc29ja2dsdWUuYworKysgYi9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCkBAIC0x MDUsMTAgKzEwNSwxMCBAQCBzdGF0aWMgdm9pZCBpcF9jbXNnX3JlY3ZfY2hlY2tzdW0oc3RydWN0 IG1zZ2hkciAqbXNnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChza2ItPmlwX3N1bW1lZCAh PSBDSEVDS1NVTV9DT01QTEVURSkKIAkJcmV0dXJuOwogCi0JaWYgKG9mZnNldCAhPSAwKQotCQlj c3VtID0gY3N1bV9zdWIoY3N1bSwKLQkJCQljc3VtX3BhcnRpYWwoc2tiLT5kYXRhICsgdGxlbiwK LQkJCQkJICAgICBvZmZzZXQsIDApKTsKKwlpZiAob2Zmc2V0ICE9IDApIHsKKwkJaW50IHRlbmRf b2ZmID0gc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2tiKSArIHRsZW47CisJCWNzdW0gPSBjc3VtX3N1 Yihjc3VtLCBza2JfY2hlY2tzdW0oc2tiLCB0ZW5kX29mZiwgb2Zmc2V0LCAwKSk7CisJfQogCiAJ cHV0X2Ntc2cobXNnLCBTT0xfSVAsIElQX0NIRUNLU1VNLCBzaXplb2YoX193c3VtKSwgJmNzdW0p OwogfQotLSAKMi40LjExCgoKRnJvbSA0YTMzYTkxODI4MDQ5ZDYwNjM3ZTI1MGFhZjM1ZWNjODU4 MDljMzIyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXhpbWUgSmF5YXQgPG1heGlt ZS5qYXlhdEBtb2JpbGUtZGV2aWNlcy5mcj4KRGF0ZTogVHVlLCAyMSBGZWIgMjAxNyAxODozNTo1 MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggNy83XSBuZXQ6IHNvY2tldDogZml4IHJlY3ZtbXNnIG5v dCByZXR1cm5pbmcgZXJyb3IgZnJvbQogc29ja19lcnJvcgoKWyBVcHN0cmVhbSBjb21taXQgZTYy M2E5ZTlkZWMyOWFlODExZDExZjgzZDAwNzRiYTI1NGFiYTM3NCBdCgpDb21taXQgMzRiODhhNjhm MjZhICgibmV0OiBGaXggdXNlIGFmdGVyIGZyZWUgaW4gdGhlIHJlY3ZtbXNnIGV4aXQgcGF0aCIp LApjaGFuZ2VkIHRoZSBleGl0IHBhdGggb2YgcmVjdm1tc2cgdG8gYWx3YXlzIHJldHVybiB0aGUg ZGF0YWdyYW1zCnZhcmlhYmxlIGFuZCBtb2RpZmllZCB0aGUgZXJyb3IgcGF0aHMgdG8gc2V0IHRo ZSB2YXJpYWJsZSB0byB0aGUgZXJyb3IKY29kZSByZXR1cm5lZCBieSByZWN2bXNnIGlmIG5lY2Vz c2FyeS4KCkhvd2V2ZXIgaW4gdGhlIGNhc2Ugc29ja19lcnJvciByZXR1cm5lZCBhbiBlcnJvciwg dGhlIGVycm9yIGNvZGUgd2FzCnRoZW4gaWdub3JlZCwgYW5kIHJlY3ZtbXNnIHJldHVybmVkIDAu CgpDaGFuZ2UgdGhlIGVycm9yIHBhdGggb2YgcmVjdm1tc2cgdG8gY29ycmVjdGx5IHJldHVybiB0 aGUgZXJyb3IgY29kZQpvZiBzb2NrX2Vycm9yLgoKVGhlIGJ1ZyB3YXMgdHJpZ2dlcmVkIGJ5IHVz aW5nIHJlY3ZtbXNnIG9uIGEgQ0FOIGludGVyZmFjZSB3aGljaCB3YXMKbm90IHVwLiBMaW51eCA0 LjYgYW5kIGxhdGVyIHJldHVybiAwIGluIHRoaXMgY2FzZSB3aGlsZSBlYXJsaWVyCnJlbGVhc2Vz IHJldHVybmVkIC1FTkVURE9XTi4KCkZpeGVzOiAzNGI4OGE2OGYyNmEgKCJuZXQ6IEZpeCB1c2Ug YWZ0ZXIgZnJlZSBpbiB0aGUgcmVjdm1tc2cgZXhpdCBwYXRoIikKU2lnbmVkLW9mZi1ieTogTWF4 aW1lIEpheWF0IDxtYXhpbWUuamF5YXRAbW9iaWxlLWRldmljZXMuZnI+ClNpZ25lZC1vZmYtYnk6 IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMg fCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggMDA5MDIyNS4u ZmJmYTlkMiAxMDA2NDQKLS0tIGEvbmV0L3NvY2tldC5jCisrKyBiL25ldC9zb2NrZXQuYwpAQCAt MjE4NSw4ICsyMTg1LDEwIEBAIGludCBfX3N5c19yZWN2bW1zZyhpbnQgZmQsIHN0cnVjdCBtbXNn aGRyIF9fdXNlciAqbW1zZywgdW5zaWduZWQgaW50IHZsZW4sCiAJCXJldHVybiBlcnI7CiAKIAll cnIgPSBzb2NrX2Vycm9yKHNvY2stPnNrKTsKLQlpZiAoZXJyKQorCWlmIChlcnIpIHsKKwkJZGF0 YWdyYW1zID0gZXJyOwogCQlnb3RvIG91dF9wdXQ7CisJfQogCiAJZW50cnkgPSBtbXNnOwogCWNv bXBhdF9lbnRyeSA9IChzdHJ1Y3QgY29tcGF0X21tc2doZHIgX191c2VyICopbW1zZzsKLS0gCjIu NC4xMQoK ----Next_Part(Thu_Feb_23_14_54_47_2017_970)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_49.mbox" RnJvbSBiYzllMmMyNzgyMjIxYzllMGMxODU0MTg3ZTE0OTBlMzBjMjdjYzRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBXQU5HIENvbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCA3IEZlYiAyMDE3IDEyOjU5OjQ3IC0wODAwClN1YmplY3Q6IFtQQVRDSCAwMS8x NF0ga2NtOiBmaXggMC1sZW5ndGggY2FzZSBmb3Iga2NtX3NlbmRtc2coKQoKWyBVcHN0cmVhbSBj b21taXQgOThlMzg2MmNhMmIxYWU1OTVhMTM4MDVkY2FiNGMzYTZkNzcxOGY0ZCBdCgpEbWl0cnkg cmVwb3J0ZWQgYSBrZXJuZWwgd2FybmluZzoKCiBXQVJOSU5HOiBDUFU6IDMgUElEOiAyOTM2IGF0 IG5ldC9rY20va2Ntc29jay5jOjYyNwoga2NtX3dyaXRlX21zZ3MrMHgxMmUzLzB4MWI5MCBuZXQv a2NtL2tjbXNvY2suYzo2MjcKIENQVTogMyBQSUQ6IDI5MzYgQ29tbTogYS5vdXQgTm90IHRhaW50 ZWQgNC4xMC4wLXJjNisgIzIwOQogSGFyZHdhcmUgbmFtZTogUUVNVSBTdGFuZGFyZCBQQyAoaTQ0 MEZYICsgUElJWCwgMTk5NiksIEJJT1MgQm9jaHMgMDEvMDEvMjAxMQogQ2FsbCBUcmFjZToKICBf X2R1bXBfc3RhY2sgbGliL2R1bXBfc3RhY2suYzoxNSBbaW5saW5lXQogIGR1bXBfc3RhY2srMHgy ZWUvMHgzZWYgbGliL2R1bXBfc3RhY2suYzo1MQogIHBhbmljKzB4MWZiLzB4NDEyIGtlcm5lbC9w YW5pYy5jOjE3OQogIF9fd2FybisweDFjNC8weDFlMCBrZXJuZWwvcGFuaWMuYzo1MzkKICB3YXJu X3Nsb3dwYXRoX251bGwrMHgyYy8weDQwIGtlcm5lbC9wYW5pYy5jOjU4MgogIGtjbV93cml0ZV9t c2dzKzB4MTJlMy8weDFiOTAgbmV0L2tjbS9rY21zb2NrLmM6NjI3CiAga2NtX3NlbmRtc2crMHgx NjNhLzB4MjIwMCBuZXQva2NtL2tjbXNvY2suYzoxMDI5CiAgc29ja19zZW5kbXNnX25vc2VjIG5l dC9zb2NrZXQuYzo2MzUgW2lubGluZV0KICBzb2NrX3NlbmRtc2crMHhjYS8weDExMCBuZXQvc29j a2V0LmM6NjQ1CiAgc29ja193cml0ZV9pdGVyKzB4MzI2LzB4NjAwIG5ldC9zb2NrZXQuYzo4NDgK ICBuZXdfc3luY193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NDk5IFtpbmxpbmVdCiAgX192ZnNfd3Jp dGUrMHg0ODMvMHg3NDAgZnMvcmVhZF93cml0ZS5jOjUxMgogIHZmc193cml0ZSsweDE4Ny8weDUz MCBmcy9yZWFkX3dyaXRlLmM6NTYwCiAgU1lTQ193cml0ZSBmcy9yZWFkX3dyaXRlLmM6NjA3IFtp bmxpbmVdCiAgU3lTX3dyaXRlKzB4ZmIvMHgyMzAgZnMvcmVhZF93cml0ZS5jOjU5OQogIGVudHJ5 X1NZU0NBTExfNjRfZmFzdHBhdGgrMHgxZi8weGMyCgp3aGVuIGNhbGxpbmcgc3lzY2FsbChfX05S X3dyaXRlLCBzb2NrMiwgMHgyMDhhYWYyN3VsLCAweDB1bCkgb24gYSBLQ00Kc2VxcGFja2V0IHNv Y2tldC4gSXQgYXBwZWFycyB0aGF0IGtjbV9zZW5kbXNnKCkgZG9lcyBub3QgaGFuZGxlIGxlbj09 MApjYXNlIGNvcnJlY3RseSwgd2hpY2ggY2F1c2VzIGFuIGVtcHR5IHNrYiBpcyBhbGxvY2F0ZWQg YW5kIHF1ZXVlZC4KRml4IHRoaXMgYnkgc2tpcHBpbmcgdGhlIHNrYiBhbGxvY2F0aW9uIGZvciBs ZW49PTAgY2FzZS4KClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5j b20+CkNjOiBUb20gSGVyYmVydCA8dG9tQGhlcmJlcnRsYW5kLmNvbT4KU2lnbmVkLW9mZi1ieTog Q29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlk IFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQva2NtL2tjbXNvY2suYyB8 IDQwICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAyMiBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv a2NtL2tjbXNvY2suYyBiL25ldC9rY20va2Ntc29jay5jCmluZGV4IDdlMDhhNGQuLjY0ZjBlODUg MTAwNjQ0Ci0tLSBhL25ldC9rY20va2Ntc29jay5jCisrKyBiL25ldC9rY20va2Ntc29jay5jCkBA IC05MjksMjMgKzkyOSwyNSBAQCBzdGF0aWMgaW50IGtjbV9zZW5kbXNnKHN0cnVjdCBzb2NrZXQg KnNvY2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAkJCWdvdG8gb3V0X2Vycm9y OwogCX0KIAotCS8qIE5ldyBtZXNzYWdlLCBhbGxvYyBoZWFkIHNrYiAqLwotCWhlYWQgPSBhbGxv Y19za2IoMCwgc2stPnNrX2FsbG9jYXRpb24pOwotCXdoaWxlICghaGVhZCkgewotCQlrY21fcHVz aChrY20pOwotCQllcnIgPSBza19zdHJlYW1fd2FpdF9tZW1vcnkoc2ssICZ0aW1lbyk7Ci0JCWlm IChlcnIpCi0JCQlnb3RvIG91dF9lcnJvcjsKLQorCWlmIChtc2dfZGF0YV9sZWZ0KG1zZykpIHsK KwkJLyogTmV3IG1lc3NhZ2UsIGFsbG9jIGhlYWQgc2tiICovCiAJCWhlYWQgPSBhbGxvY19za2Io MCwgc2stPnNrX2FsbG9jYXRpb24pOwotCX0KKwkJd2hpbGUgKCFoZWFkKSB7CisJCQlrY21fcHVz aChrY20pOworCQkJZXJyID0gc2tfc3RyZWFtX3dhaXRfbWVtb3J5KHNrLCAmdGltZW8pOworCQkJ aWYgKGVycikKKwkJCQlnb3RvIG91dF9lcnJvcjsKIAotCXNrYiA9IGhlYWQ7CisJCQloZWFkID0g YWxsb2Nfc2tiKDAsIHNrLT5za19hbGxvY2F0aW9uKTsKKwkJfQogCi0JLyogU2V0IGlwX3N1bW1l ZCB0byBDSEVDS1NVTV9VTk5FQ0VTU0FSWSB0byBhdm9pZCBjYWxsaW5nCi0JICogY3N1bV9hbmRf Y29weV9mcm9tX2l0ZXIgZnJvbSBza2JfZG9fY29weV9kYXRhX25vY2FjaGUuCi0JICovCi0Jc2ti LT5pcF9zdW1tZWQgPSBDSEVDS1NVTV9VTk5FQ0VTU0FSWTsKKwkJc2tiID0gaGVhZDsKKworCQkv KiBTZXQgaXBfc3VtbWVkIHRvIENIRUNLU1VNX1VOTkVDRVNTQVJZIHRvIGF2b2lkIGNhbGxpbmcK KwkJICogY3N1bV9hbmRfY29weV9mcm9tX2l0ZXIgZnJvbSBza2JfZG9fY29weV9kYXRhX25vY2Fj aGUuCisJCSAqLworCQlza2ItPmlwX3N1bW1lZCA9IENIRUNLU1VNX1VOTkVDRVNTQVJZOworCX0K IAogc3RhcnQ6CiAJd2hpbGUgKG1zZ19kYXRhX2xlZnQobXNnKSkgewpAQCAtMTAxOCwxMCArMTAy MCwxMiBAQCBzdGF0aWMgaW50IGtjbV9zZW5kbXNnKHN0cnVjdCBzb2NrZXQgKnNvY2ssIHN0cnVj dCBtc2doZHIgKm1zZywgc2l6ZV90IGxlbikKIAlpZiAoZW9yKSB7CiAJCWJvb2wgbm90X2J1c3kg PSBza2JfcXVldWVfZW1wdHkoJnNrLT5za193cml0ZV9xdWV1ZSk7CiAKLQkJLyogTWVzc2FnZSBj b21wbGV0ZSwgcXVldWUgaXQgb24gc2VuZCBidWZmZXIgKi8KLQkJX19za2JfcXVldWVfdGFpbCgm c2stPnNrX3dyaXRlX3F1ZXVlLCBoZWFkKTsKLQkJa2NtLT5zZXFfc2tiID0gTlVMTDsKLQkJS0NN X1NUQVRTX0lOQ1Ioa2NtLT5zdGF0cy50eF9tc2dzKTsKKwkJaWYgKGhlYWQpIHsKKwkJCS8qIE1l c3NhZ2UgY29tcGxldGUsIHF1ZXVlIGl0IG9uIHNlbmQgYnVmZmVyICovCisJCQlfX3NrYl9xdWV1 ZV90YWlsKCZzay0+c2tfd3JpdGVfcXVldWUsIGhlYWQpOworCQkJa2NtLT5zZXFfc2tiID0gTlVM TDsKKwkJCUtDTV9TVEFUU19JTkNSKGtjbS0+c3RhdHMudHhfbXNncyk7CisJCX0KIAogCQlpZiAo bXNnLT5tc2dfZmxhZ3MgJiBNU0dfQkFUQ0gpIHsKIAkJCWtjbS0+dHhfd2FpdF9tb3JlID0gdHJ1 ZTsKLS0gCjIuNC4xMQoKCkZyb20gZTM0Yzc4NGRlNjlhMDA4OWQ4NmFjZWY2ZjJiM2ZjYTk1NDAx ZTIxYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogV0FORyBDb25nIDx4aXlvdS53YW5n Y29uZ0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTMgRmViIDIwMTcgMTE6MTM6MTYgLTA4MDAKU3Vi amVjdDogW1BBVENIIDAyLzE0XSBrY206IGZpeCBhIG51bGwgcG9pbnRlciBkZXJlZmVyZW5jZSBp biBrY21fc2VuZG1zZygpCgpbIFVwc3RyZWFtIGNvbW1pdCBjZDI3Yjk2YmMxMzg0MWVlN2FmMjU4 MzdhNmFlODZmZWU4NzI3M2Q2IF0KCkluIGNvbW1pdCA5OGUzODYyY2EyYjEgKCJrY206IGZpeCAw LWxlbmd0aCBjYXNlIGZvciBrY21fc2VuZG1zZygpIikKSSB0cmllZCB0byBhdm9pZCBza2IgYWxs b2NhdGlvbiBmb3IgMC1sZW5ndGggY2FzZSwgYnV0IG1pc3NlZAphIGNoZWNrIGZvciBOVUxMIHBv aW50ZXIgaW4gdGhlIG5vbiBFT1IgY2FzZS4KCkZpeGVzOiA5OGUzODYyY2EyYjEgKCJrY206IGZp eCAwLWxlbmd0aCBjYXNlIGZvciBrY21fc2VuZG1zZygpIikKUmVwb3J0ZWQtYnk6IERtaXRyeSBW eXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxh bmQuY29tPgpTaWduZWQtb2ZmLWJ5OiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25nQGdtYWlsLmNv bT4KQWNrZWQtYnk6IFRvbSBIZXJiZXJ0IDx0b21AaGVyYmVydGxhbmQuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2tjbS9r Y21zb2NrLmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQva2NtL2tjbXNvY2suYyBiL25ldC9rY20va2Nt c29jay5jCmluZGV4IDY0ZjBlODUuLmE2NDZmMzQgMTAwNjQ0Ci0tLSBhL25ldC9rY20va2Ntc29j ay5jCisrKyBiL25ldC9rY20va2Ntc29jay5jCkBAIC0xMDQ0LDggKzEwNDQsMTAgQEAgc3RhdGlj IGludCBrY21fc2VuZG1zZyhzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgbXNnaGRyICptc2cs IHNpemVfdCBsZW4pCiAJfSBlbHNlIHsKIAkJLyogTWVzc2FnZSBub3QgY29tcGxldGUsIHNhdmUg c3RhdGUgKi8KIHBhcnRpYWxfbWVzc2FnZToKLQkJa2NtLT5zZXFfc2tiID0gaGVhZDsKLQkJa2Nt X3R4X21zZyhoZWFkKS0+bGFzdF9za2IgPSBza2I7CisJCWlmIChoZWFkKSB7CisJCQlrY20tPnNl cV9za2IgPSBoZWFkOworCQkJa2NtX3R4X21zZyhoZWFkKS0+bGFzdF9za2IgPSBza2I7CisJCX0K IAl9CiAKIAlLQ01fU1RBVFNfQUREKGtjbS0+c3RhdHMudHhfYnl0ZXMsIGNvcGllZCk7Ci0tIAoy LjQuMTEKCgpGcm9tIGIwNmIwZmVjMWYwZGFkNjNkZmU2MDIzZTc3NDg3NjI1ZjgyZjhmYTcgTW9u IFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE9yIEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94 LmNvbT4KRGF0ZTogU3VuLCAxMiBGZWIgMjAxNyAxMToyMTozMSArMDIwMApTdWJqZWN0OiBbUEFU Q0ggMDMvMTRdIG5ldC9tbHg1ZTogRGlzYWJsZSBwcmVlbXB0aW9uIHdoZW4gZG9pbmcgVEMgc3Rh dGlzdGljcwogdXBjYWxsCgpbIFVwc3RyZWFtIGNvbW1pdCBmZWQwNmVlODliNzhkM2FmMzJlMjM1 ZTBlODlhZDBkOTQ2ZmNiOTVkIF0KCldoZW4gY2FsbGVkIGJ5IEhXIG9mZmxvYWRpbmcgZHJpdmVy cywgdGhlIFRDIGFjdGlvbiAoZS5nCm5ldC9zY2hlZC9hY3RfbWlycmVkLmMpIGNvZGUgdXNlcyB0 aGlzX2NwdSBsb2dpYywgZS5nCgogX2JzdGF0c19jcHVfdXBkYXRlKHRoaXNfY3B1X3B0cihhLT5j cHVfYnN0YXRzKSwgYnl0ZXMsIHBhY2tldHMpCgpwZXIgdGhlIGtlcm5lbCBkb2N1bWVudGlvbiwg cHJlZW1wdGlvbiBzaG91bGQgYmUgZGlzYWJsZWQsIGFkZCB0aGF0LgoKQmVmb3JlIHRoZSBmaXgs IHdoZW4gcnVubmluZyB3aXRoIENPTkZJR19QUkVFTVBUIHNldCwgd2UgZ2V0IGEKCkJVRzogdXNp bmcgc21wX3Byb2Nlc3Nvcl9pZCgpIGluIHByZWVtcHRpYmxlIFswMDAwMDAwMF0gY29kZTogdGMv Mzc5MwoKYXNzZXJpb24gZnJvbSB0aGUgVEMgYWN0aW9uIChtaXJyZWQpIHN0YXRzX3VwZGF0ZSBj YWxsYmFjay4KCkZpeGVzOiBhYWQ3ZTA4ZDM5YmQgKCduZXQvbWx4NWU6IEhhcmR3YXJlIG9mZmxv YWRlZCBmbG93ZXIgZmlsdGVyIHN0YXRpc3RpY3Mgc3VwcG9ydCcpClNpZ25lZC1vZmYtYnk6IE9y IEdlcmxpdHogPG9nZXJsaXR6QG1lbGxhbm94LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L21l bGxhbm94L21seDUvY29yZS9lbl90Yy5jIHwgNCArKysrCiAxIGZpbGUgY2hhbmdlZCwgNCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFub3gvbWx4 NS9jb3JlL2VuX3RjLmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUv ZW5fdGMuYwppbmRleCA2YmIyMWIzLi5hNTQzZWE2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYworKysgYi9kcml2ZXJzL25ldC9ldGhl cm5ldC9tZWxsYW5veC9tbHg1L2NvcmUvZW5fdGMuYwpAQCAtNTY3LDEwICs1NjcsMTQgQEAgaW50 IG1seDVlX3N0YXRzX2Zsb3dlcihzdHJ1Y3QgbWx4NWVfcHJpdiAqcHJpdiwKIAogCW1seDVfZmNf cXVlcnlfY2FjaGVkKGNvdW50ZXIsICZieXRlcywgJnBhY2tldHMsICZsYXN0dXNlKTsKIAorCXBy ZWVtcHRfZGlzYWJsZSgpOworCiAJdGNmX2V4dHNfdG9fbGlzdChmLT5leHRzLCAmYWN0aW9ucyk7 CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShhLCAmYWN0aW9ucywgbGlzdCkKIAkJdGNmX2FjdGlvbl9z dGF0c191cGRhdGUoYSwgYnl0ZXMsIHBhY2tldHMsIGxhc3R1c2UpOwogCisJcHJlZW1wdF9lbmFi bGUoKTsKKwogCXJldHVybiAwOwogfQogCi0tIAoyLjQuMTEKCgpGcm9tIGQxZmI2ZDMzZDgyMzk4 MjU3YzlkNzkzYTA4Zjg2MGE0NGVmODhiMzYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogU3VuLCAxMiBGZWIgMjAx NyAxNDowMzo1MiAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTRdIG5ldC9sbGM6IGF2b2lkIEJV R19PTigpIGluIHNrYl9vcnBoYW4oKQoKWyBVcHN0cmVhbSBjb21taXQgOGI3NGQ0MzllMTY5NzEx MGM1ZTVjNjAwNjQzZTgyM2ViMWRkMDc2MiBdCgpJdCBzZWVtcyBub2JvZHkgdXNlZCBMTEMgc2lu Y2UgbGludXgtMy4xMi4KCkZvcnR1bmF0ZWx5IGZ1enplcnMgbGlrZSBzeXprYWxsZXIgc3RpbGwg a25vdyBob3cgdG8gcnVuIHRoaXMgY29kZSwKb3RoZXJ3aXNlIGl0IHdvdWxkIGJlIG5vIGZ1bi4K ClNldHRpbmcgc2tiLT5zayB3aXRob3V0IHNrYi0+ZGVzdHJ1Y3RvciBsZWFkcyB0byBhbGwga2lu ZHMgb2YKYnVncywgd2Ugbm93IHByZWZlciB0byBiZSB2ZXJ5IHN0cmljdCBhYm91dCBpdC4KCklk ZWFsbHkgaGVyZSB3ZSB3b3VsZCB1c2Ugc2tiX3NldF9vd25lcigpIGJ1dCB0aGlzIGhlbHBlciBk b2VzIG5vdCBleGlzdCB5ZXQsCm9ubHkgQ0FOIHNlZW1zIHRvIGhhdmUgYSBwcml2YXRlIGhlbHBl ciBmb3IgdGhhdC4KCkZpeGVzOiAzNzZjNzMxMWJkYjYgKCJuZXQ6IGFkZCBhIHRlbXBvcmFyeSBz YW5pdHkgY2hlY2sgaW4gc2tiX29ycGhhbigpIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5k cmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2xsYy9sbGNfY29ubi5jIHwgMyArKysKIG5ldC9sbGMv bGxjX3NhcC5jICB8IDMgKysrCiAyIGZpbGVzIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL25ldC9sbGMvbGxjX2Nvbm4uYyBiL25ldC9sbGMvbGxjX2Nvbm4uYwppbmRleCAz ZTgyMWRhLi44YmM1YTFiIDEwMDY0NAotLS0gYS9uZXQvbGxjL2xsY19jb25uLmMKKysrIGIvbmV0 L2xsYy9sbGNfY29ubi5jCkBAIC04MjEsNyArODIxLDEwIEBAIHZvaWQgbGxjX2Nvbm5faGFuZGxl cihzdHJ1Y3QgbGxjX3NhcCAqc2FwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogCQkgKiBhbm90aGVy IHRyaWNrIHJlcXVpcmVkIHRvIGNvcGUgd2l0aCBob3cgdGhlIFBST0NPTSBzdGF0ZQogCQkgKiBt YWNoaW5lIHdvcmtzLiAtYWNtZQogCQkgKi8KKwkJc2tiX29ycGhhbihza2IpOworCQlzb2NrX2hv bGQoc2spOwogCQlza2ItPnNrID0gc2s7CisJCXNrYi0+ZGVzdHJ1Y3RvciA9IHNvY2tfZWZyZWU7 CiAJfQogCWlmICghc29ja19vd25lZF9ieV91c2VyKHNrKSkKIAkJbGxjX2Nvbm5fcmN2KHNrLCBz a2IpOwpkaWZmIC0tZ2l0IGEvbmV0L2xsYy9sbGNfc2FwLmMgYi9uZXQvbGxjL2xsY19zYXAuYwpp bmRleCBkMGUxZTgwLi41NDA0ZDBkIDEwMDY0NAotLS0gYS9uZXQvbGxjL2xsY19zYXAuYworKysg Yi9uZXQvbGxjL2xsY19zYXAuYwpAQCAtMjkwLDcgKzI5MCwxMCBAQCBzdGF0aWMgdm9pZCBsbGNf c2FwX3JjdihzdHJ1Y3QgbGxjX3NhcCAqc2FwLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCiAJZXYt PnR5cGUgICA9IExMQ19TQVBfRVZfVFlQRV9QRFU7CiAJZXYtPnJlYXNvbiA9IDA7CisJc2tiX29y cGhhbihza2IpOworCXNvY2tfaG9sZChzayk7CiAJc2tiLT5zayA9IHNrOworCXNrYi0+ZGVzdHJ1 Y3RvciA9IHNvY2tfZWZyZWU7CiAJbGxjX3NhcF9zdGF0ZV9wcm9jZXNzKHNhcCwgc2tiKTsKIH0K IAotLSAKMi40LjExCgoKRnJvbSA2YTNjZTllZDgzMWJkNjIwMWI4ZjFlMzA2ZDU1NzE5ODY3NWY3 OGExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJdmFuIEtob3JvbnpodWsgPGl2YW4u a2hvcm9uemh1a0BsaW5hcm8ub3JnPgpEYXRlOiBUdWUsIDE0IEZlYiAyMDE3IDE0OjQyOjE1ICsw MjAwClN1YmplY3Q6IFtQQVRDSCAwNS8xNF0gbmV0OiBldGhlcm5ldDogdGk6IGNwc3c6IGZpeCBj cHN3IGFzc2lnbm1lbnQgaW4gcmVzdW1lCgpbIFVwc3RyZWFtIGNvbW1pdCBhNjBjZWQ5OTBlMzA5 NjY2OTE1ZDIxNDQ1ZTk1MzQ3ZDEyNDA2Njk0IF0KClRoZXJlIGlzIGEgY29weS1wYXN0ZSBlcnJv ciwgd2hpY2ggaGlkZXMgYnJlYWtpbmcgb2YgcmVzdW1lCmZvciBDUFNXIGRyaXZlcjogdGhlcmUg d2FzIHJlcGxhY2VkIG5ldGRldl9wcml2KCkgdG8gbmRldl90b19jcHN3KG5kZXYpCmluIHN1c3Bl bmQsIGJ1dCBsZWZ0IGl0IHVuY2hhbmdlZCBpbiByZXN1bWUuCgpGaXhlczogNjA2ZjM5OTM5NTk1 YTRkNDU0MDQwNmJmYzExZjI2NWIyMDM2YWY2ZAoodGk6IGNwc3c6IG1vdmUgcGxhdGZvcm0gZGF0 YSBhbmQgc2xhdmVzIGluZm8gdG8gY3Bzd19jb21tb24pCgpSZXBvcnRlZC1ieTogQWxleGV5IFN0 YXJpa292c2tpeSA8QVN0YXJpa292c2tpeUB0b3Bjb24uY29tPgpTaWduZWQtb2ZmLWJ5OiBJdmFu IEtob3JvbnpodWsgPGl2YW4ua2hvcm9uemh1a0BsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRo ZXJuZXQvdGkvY3Bzdy5jIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAx IGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvdGkvY3Bzdy5jCmluZGV4IGI5MDg3YjguLjNmMTk3MWQg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3RpL2Nwc3cuYworKysgYi9kcml2ZXJz L25ldC9ldGhlcm5ldC90aS9jcHN3LmMKQEAgLTI5MjUsNyArMjkyNSw3IEBAIHN0YXRpYyBpbnQg Y3Bzd19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQogewogCXN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UJKnBkZXYgPSB0b19wbGF0Zm9ybV9kZXZpY2UoZGV2KTsKIAlzdHJ1Y3QgbmV0X2RldmljZQkq bmRldiA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwotCXN0cnVjdCBjcHN3X2NvbW1vbgkq Y3BzdyA9IG5ldGRldl9wcml2KG5kZXYpOworCXN0cnVjdCBjcHN3X2NvbW1vbgkqY3BzdyA9IG5k ZXZfdG9fY3BzdyhuZGV2KTsKIAogCS8qIFNlbGVjdCBkZWZhdWx0IHBpbiBzdGF0ZSAqLwogCXBp bmN0cmxfcG1fc2VsZWN0X2RlZmF1bHRfc3RhdGUoZGV2KTsKLS0gCjIuNC4xMQoKCkZyb20gOGY5 OTViM2NlN2ZkODQ5ZmUxNjlkMThjN2UzNGI1MzA5MWJhNWI5MyBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUdWUs IDE0IEZlYiAyMDE3IDA5OjAzOjUxIC0wODAwClN1YmplY3Q6IFtQQVRDSCAwNi8xNF0gcGFja2V0 OiBmaXggcmFjZXMgaW4gZmFub3V0X2FkZCgpCgpbIFVwc3RyZWFtIGNvbW1pdCBkMTk5ZmFiNjNj MTE5OThhNjAyMjA1ZjdlZTdmZjdjMDVjOTcxNjRiIF0KCk11bHRpcGxlIHRocmVhZHMgY2FuIGNh bGwgZmFub3V0X2FkZCgpIGF0IHRoZSBzYW1lIHRpbWUuCgpXZSBuZWVkIHRvIGdyYWIgZmFub3V0 X211dGV4IGVhcmxpZXIgdG8gYXZvaWQgcmFjZXMgdGhhdCBjb3VsZApsZWFkIHRvIG9uZSB0aHJl YWQgZnJlZWluZyBwby0+cm9sbG92ZXIgdGhhdCB3YXMgc2V0IGJ5IGFub3RoZXIgdGhyZWFkLgoK RG8gdGhlIHNhbWUgaW4gZmFub3V0X3JlbGVhc2UoKSwgZm9yIHBlYWNlIG9mIG1pbmQsIGFuZCB0 byBoZWxwIHVzCmZpbmRpbmcgbG9ja2RlcCBpc3N1ZXMgZWFybGllci4KCkZpeGVzOiBkYzk5ZjYw MDY5OGQgKCJwYWNrZXQ6IEFkZCBmYW5vdXQgc3VwcG9ydC4iKQpGaXhlczogMDY0OGFiNzBhZmU2 ICgicGFja2V0OiByb2xsb3ZlciBwcmVwYXJlOiBwZXItc29ja2V0IHN0YXRlIikKU2lnbmVkLW9m Zi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpDYzogV2lsbGVtIGRlIEJy dWlqbiA8d2lsbGVtYkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQuYyB8IDU1ICsr KysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgMzAgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv bmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKaW5kZXggNDU4 NzIyYi4uODcxMTNlODYgMTAwNjQ0Ci0tLSBhL25ldC9wYWNrZXQvYWZfcGFja2V0LmMKKysrIGIv bmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtMTYxOSw2ICsxNjE5LDcgQEAgc3RhdGljIHZvaWQg ZmFub3V0X3JlbGVhc2VfZGF0YShzdHJ1Y3QgcGFja2V0X2Zhbm91dCAqZikKIAogc3RhdGljIGlu dCBmYW5vdXRfYWRkKHN0cnVjdCBzb2NrICpzaywgdTE2IGlkLCB1MTYgdHlwZV9mbGFncykKIHsK KwlzdHJ1Y3QgcGFja2V0X3JvbGxvdmVyICpyb2xsb3ZlciA9IE5VTEw7CiAJc3RydWN0IHBhY2tl dF9zb2NrICpwbyA9IHBrdF9zayhzayk7CiAJc3RydWN0IHBhY2tldF9mYW5vdXQgKmYsICptYXRj aDsKIAl1OCB0eXBlID0gdHlwZV9mbGFncyAmIDB4ZmY7CkBAIC0xNjQxLDIzICsxNjQyLDI4IEBA IHN0YXRpYyBpbnQgZmFub3V0X2FkZChzdHJ1Y3Qgc29jayAqc2ssIHUxNiBpZCwgdTE2IHR5cGVf ZmxhZ3MpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAorCW11dGV4X2xvY2soJmZhbm91dF9tdXRl eCk7CisKKwllcnIgPSAtRUlOVkFMOwogCWlmICghcG8tPnJ1bm5pbmcpCi0JCXJldHVybiAtRUlO VkFMOworCQlnb3RvIG91dDsKIAorCWVyciA9IC1FQUxSRUFEWTsKIAlpZiAocG8tPmZhbm91dCkK LQkJcmV0dXJuIC1FQUxSRUFEWTsKKwkJZ290byBvdXQ7CiAKIAlpZiAodHlwZSA9PSBQQUNLRVRf RkFOT1VUX1JPTExPVkVSIHx8CiAJICAgICh0eXBlX2ZsYWdzICYgUEFDS0VUX0ZBTk9VVF9GTEFH X1JPTExPVkVSKSkgewotCQlwby0+cm9sbG92ZXIgPSBremFsbG9jKHNpemVvZigqcG8tPnJvbGxv dmVyKSwgR0ZQX0tFUk5FTCk7Ci0JCWlmICghcG8tPnJvbGxvdmVyKQotCQkJcmV0dXJuIC1FTk9N RU07Ci0JCWF0b21pY19sb25nX3NldCgmcG8tPnJvbGxvdmVyLT5udW0sIDApOwotCQlhdG9taWNf bG9uZ19zZXQoJnBvLT5yb2xsb3Zlci0+bnVtX2h1Z2UsIDApOwotCQlhdG9taWNfbG9uZ19zZXQo JnBvLT5yb2xsb3Zlci0+bnVtX2ZhaWxlZCwgMCk7CisJCWVyciA9IC1FTk9NRU07CisJCXJvbGxv dmVyID0ga3phbGxvYyhzaXplb2YoKnJvbGxvdmVyKSwgR0ZQX0tFUk5FTCk7CisJCWlmICghcm9s bG92ZXIpCisJCQlnb3RvIG91dDsKKwkJYXRvbWljX2xvbmdfc2V0KCZyb2xsb3Zlci0+bnVtLCAw KTsKKwkJYXRvbWljX2xvbmdfc2V0KCZyb2xsb3Zlci0+bnVtX2h1Z2UsIDApOworCQlhdG9taWNf bG9uZ19zZXQoJnJvbGxvdmVyLT5udW1fZmFpbGVkLCAwKTsKKwkJcG8tPnJvbGxvdmVyID0gcm9s bG92ZXI7CiAJfQogCi0JbXV0ZXhfbG9jaygmZmFub3V0X211dGV4KTsKIAltYXRjaCA9IE5VTEw7 CiAJbGlzdF9mb3JfZWFjaF9lbnRyeShmLCAmZmFub3V0X2xpc3QsIGxpc3QpIHsKIAkJaWYgKGYt PmlkID09IGlkICYmCkBAIC0xNzA0LDExICsxNzEwLDExIEBAIHN0YXRpYyBpbnQgZmFub3V0X2Fk ZChzdHJ1Y3Qgc29jayAqc2ssIHUxNiBpZCwgdTE2IHR5cGVfZmxhZ3MpCiAJCX0KIAl9CiBvdXQ6 Ci0JbXV0ZXhfdW5sb2NrKCZmYW5vdXRfbXV0ZXgpOwotCWlmIChlcnIpIHsKLQkJa2ZyZWUocG8t PnJvbGxvdmVyKTsKKwlpZiAoZXJyICYmIHJvbGxvdmVyKSB7CisJCWtmcmVlKHJvbGxvdmVyKTsK IAkJcG8tPnJvbGxvdmVyID0gTlVMTDsKIAl9CisJbXV0ZXhfdW5sb2NrKCZmYW5vdXRfbXV0ZXgp OwogCXJldHVybiBlcnI7CiB9CiAKQEAgLTE3MTcsMjMgKzE3MjMsMjIgQEAgc3RhdGljIHZvaWQg ZmFub3V0X3JlbGVhc2Uoc3RydWN0IHNvY2sgKnNrKQogCXN0cnVjdCBwYWNrZXRfc29jayAqcG8g PSBwa3Rfc2soc2spOwogCXN0cnVjdCBwYWNrZXRfZmFub3V0ICpmOwogCi0JZiA9IHBvLT5mYW5v dXQ7Ci0JaWYgKCFmKQotCQlyZXR1cm47Ci0KIAltdXRleF9sb2NrKCZmYW5vdXRfbXV0ZXgpOwot CXBvLT5mYW5vdXQgPSBOVUxMOworCWYgPSBwby0+ZmFub3V0OworCWlmIChmKSB7CisJCXBvLT5m YW5vdXQgPSBOVUxMOworCisJCWlmIChhdG9taWNfZGVjX2FuZF90ZXN0KCZmLT5za19yZWYpKSB7 CisJCQlsaXN0X2RlbCgmZi0+bGlzdCk7CisJCQlkZXZfcmVtb3ZlX3BhY2soJmYtPnByb3RfaG9v ayk7CisJCQlmYW5vdXRfcmVsZWFzZV9kYXRhKGYpOworCQkJa2ZyZWUoZik7CisJCX0KIAotCWlm IChhdG9taWNfZGVjX2FuZF90ZXN0KCZmLT5za19yZWYpKSB7Ci0JCWxpc3RfZGVsKCZmLT5saXN0 KTsKLQkJZGV2X3JlbW92ZV9wYWNrKCZmLT5wcm90X2hvb2spOwotCQlmYW5vdXRfcmVsZWFzZV9k YXRhKGYpOwotCQlrZnJlZShmKTsKKwkJaWYgKHBvLT5yb2xsb3ZlcikKKwkJCWtmcmVlX3JjdShw by0+cm9sbG92ZXIsIHJjdSk7CiAJfQogCW11dGV4X3VubG9jaygmZmFub3V0X211dGV4KTsKLQot CWlmIChwby0+cm9sbG92ZXIpCi0JCWtmcmVlX3JjdShwby0+cm9sbG92ZXIsIHJjdSk7CiB9CiAK IHN0YXRpYyBib29sIHBhY2tldF9leHRyYV92bGFuX2xlbl9hbGxvd2VkKGNvbnN0IHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYsCi0tIAoyLjQuMTEKCgpGcm9tIGExZWMyYzBlMGEwZGU4MGE1MDZjYTMz MzUxMzZhMWY1NjAwYTllZTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFub29iIFNv bWFuIDxhbm9vYi5zb21hbkBjaXRyaXguY29tPgpEYXRlOiBXZWQsIDE1IEZlYiAyMDE3IDIwOjI1 OjM5ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwNy8xNF0gcGFja2V0OiBEbyBub3QgY2FsbCBmYW5v dXRfcmVsZWFzZSBmcm9tIGF0b21pYyBjb250ZXh0cwoKWyBVcHN0cmVhbSBjb21taXQgMmJkNjI0 YjQ2MTFmZmVlMzY0MjI3ODJkMTZlMWM5NDRkMTM1MWU5OCBdCgpDb21taXQgNjY2NDQ5ODI4MGNm ICgicGFja2V0OiBjYWxsIGZhbm91dF9yZWxlYXNlLCB3aGlsZSBVTlJFR0lTVEVSSU5HIGEKbmV0 ZGV2IiksIHVuZm9ydHVuYXRlbHksIGludHJvZHVjZWQgdGhlIGZvbGxvd2luZyBpc3N1ZXMuCgox LiBjYWxsaW5nIG11dGV4X2xvY2soJmZhbm91dF9tdXRleCkgKGZhbm91dF9yZWxlYXNlKCkpIGZy b20gaW5zaWRlCnJjdV9yZWFkLXNpZGUgY3JpdGljYWwgc2VjdGlvbi4gcmN1X3JlYWRfbG9jayBk aXNhYmxlcyBwcmVlbXB0aW9uLCBtb3N0IG9mdGVuLAp3aGljaCBwcm9oaWJpdHMgY2FsbGluZyBz bGVlcGluZyBmdW5jdGlvbnMuCgpbICBdIGluY2x1ZGUvbGludXgvcmN1cGRhdGUuaDo1NjAgSWxs ZWdhbCBjb250ZXh0IHN3aXRjaCBpbiBSQ1UgcmVhZC1zaWRlIGNyaXRpY2FsIHNlY3Rpb24hClsg IF0KWyAgXSByY3Vfc2NoZWR1bGVyX2FjdGl2ZSA9IDEsIGRlYnVnX2xvY2tzID0gMApbICBdIDQg bG9ja3MgaGVsZCBieSBvdnMtdnN3aXRjaGQvMTk2OToKWyAgXSAgIzA6ICAoY2JfbG9jayl7Kysr KysrfSwgYXQ6IFs8ZmZmZmZmZmY4MTU4YTZjOT5dIGdlbmxfcmN2KzB4MTkvMHg0MApbICBdICAj MTogIChvdnNfbXV0ZXgpeysuKy4rLn0sIGF0OiBbPGZmZmZmZmZmYTA0ODc4Y2E+XSBvdnNfdnBv cnRfY21kX2RlbCsweDRhLzB4MTAwIFtvcGVudnN3aXRjaF0KWyAgXSAgIzI6ICAocnRubF9tdXRl eCl7Ky4rLisufSwgYXQ6IFs8ZmZmZmZmZmY4MTU2NDE1Nz5dIHJ0bmxfbG9jaysweDE3LzB4MjAK WyAgXSAgIzM6ICAocmN1X3JlYWRfbG9jayl7Li4uLi4ufSwgYXQ6IFs8ZmZmZmZmZmY4MTYxNDE2 NT5dIHBhY2tldF9ub3RpZmllcisweDUvMHgzZjAKWyAgXQpbICBdIENhbGwgVHJhY2U6ClsgIF0g IFs8ZmZmZmZmZmY4MTM3NzBjMT5dIGR1bXBfc3RhY2srMHg4NS8weGM0ClsgIF0gIFs8ZmZmZmZm ZmY4MTBjOTA3Nz5dIGxvY2tkZXBfcmN1X3N1c3BpY2lvdXMrMHgxMDcvMHgxMTAKWyAgXSAgWzxm ZmZmZmZmZjgxMGEyZGE3Pl0gX19fbWlnaHRfc2xlZXArMHg1Ny8weDIxMApbICBdICBbPGZmZmZm ZmZmODEwYTJmZDA+XSBfX21pZ2h0X3NsZWVwKzB4NzAvMHg5MApbICBdICBbPGZmZmZmZmZmODE2 MmU4MGM+XSBtdXRleF9sb2NrX25lc3RlZCsweDNjLzB4M2EwClsgIF0gIFs8ZmZmZmZmZmY4MTBk ZTkzZj5dID8gdnByaW50a19kZWZhdWx0KzB4MWYvMHgzMApbICBdICBbPGZmZmZmZmZmODExODZl ODg+XSA/IHByaW50aysweDRkLzB4NGYKWyAgXSAgWzxmZmZmZmZmZjgxNjEwNmRkPl0gZmFub3V0 X3JlbGVhc2UrMHgxZC8weGUwClsgIF0gIFs8ZmZmZmZmZmY4MTYxNDQ1OT5dIHBhY2tldF9ub3Rp ZmllcisweDJmOS8weDNmMAoKMi4gY2FsbGluZyBtdXRleF9sb2NrKCZmYW5vdXRfbXV0ZXgpIGlu c2lkZSBzcGluX2xvY2soJnBvLT5iaW5kX2xvY2spLgoic2xlZXBpbmcgZnVuY3Rpb24gY2FsbGVk IGZyb20gaW52YWxpZCBjb250ZXh0IgoKWyAgXSBCVUc6IHNsZWVwaW5nIGZ1bmN0aW9uIGNhbGxl ZCBmcm9tIGludmFsaWQgY29udGV4dCBhdCBrZXJuZWwvbG9ja2luZy9tdXRleC5jOjYyMApbICBd IGluX2F0b21pYygpOiAxLCBpcnFzX2Rpc2FibGVkKCk6IDAsIHBpZDogMTk2OSwgbmFtZTogb3Zz LXZzd2l0Y2hkClsgIF0gSU5GTzogbG9ja2RlcCBpcyB0dXJuZWQgb2ZmLgpbICBdIENhbGwgVHJh Y2U6ClsgIF0gIFs8ZmZmZmZmZmY4MTM3NzBjMT5dIGR1bXBfc3RhY2srMHg4NS8weGM0ClsgIF0g IFs8ZmZmZmZmZmY4MTBhMmY1Mj5dIF9fX21pZ2h0X3NsZWVwKzB4MjAyLzB4MjEwClsgIF0gIFs8 ZmZmZmZmZmY4MTBhMmZkMD5dIF9fbWlnaHRfc2xlZXArMHg3MC8weDkwClsgIF0gIFs8ZmZmZmZm ZmY4MTYyZTgwYz5dIG11dGV4X2xvY2tfbmVzdGVkKzB4M2MvMHgzYTAKWyAgXSAgWzxmZmZmZmZm ZjgxNjEwNmRkPl0gZmFub3V0X3JlbGVhc2UrMHgxZC8weGUwClsgIF0gIFs8ZmZmZmZmZmY4MTYx NDQ1OT5dIHBhY2tldF9ub3RpZmllcisweDJmOS8weDNmMAoKMy4gY2FsbGluZyBkZXZfcmVtb3Zl X3BhY2soJmZhbm91dC0+cHJvdF9ob29rKSwgZnJvbSBpbnNpZGUKc3Bpbl9sb2NrKCZwby0+Ymlu ZF9sb2NrKSBvciByY3VfcmVhZC1zaWRlIGNyaXRpY2FsLXNlY3Rpb24uIGRldl9yZW1vdmVfcGFj aygpCi0+IHN5bmNocm9uaXplX25ldCgpLCB3aGljaCBtaWdodCBzbGVlcC4KClsgIF0gQlVHOiBz Y2hlZHVsaW5nIHdoaWxlIGF0b21pYzogb3ZzLXZzd2l0Y2hkLzE5NjkvMHgwMDAwMDAwMgpbICBd IElORk86IGxvY2tkZXAgaXMgdHVybmVkIG9mZi4KWyAgXSBDYWxsIFRyYWNlOgpbICBdICBbPGZm ZmZmZmZmODEzNzcwYzE+XSBkdW1wX3N0YWNrKzB4ODUvMHhjNApbICBdICBbPGZmZmZmZmZmODEx ODYyNzQ+XSBfX3NjaGVkdWxlX2J1ZysweDY0LzB4NzMKWyAgXSAgWzxmZmZmZmZmZjgxNjJiOGNi Pl0gX19zY2hlZHVsZSsweDZiLzB4ZDEwClsgIF0gIFs8ZmZmZmZmZmY4MTYyYzVkYj5dIHNjaGVk dWxlKzB4NmIvMHg4MApbICBdICBbPGZmZmZmZmZmODE2MzBiMWQ+XSBzY2hlZHVsZV90aW1lb3V0 KzB4MzhkLzB4NDEwClsgIF0gIFs8ZmZmZmZmZmY4MTBlYTNmZD5dIHN5bmNocm9uaXplX3NjaGVk X2V4cGVkaXRlZCsweDUzZC8weDgxMApbICBdICBbPGZmZmZmZmZmODEwZWE2ZGU+XSBzeW5jaHJv bml6ZV9yY3VfZXhwZWRpdGVkKzB4ZS8weDEwClsgIF0gIFs8ZmZmZmZmZmY4MTU0ZWFiNT5dIHN5 bmNocm9uaXplX25ldCsweDM1LzB4NTAKWyAgXSAgWzxmZmZmZmZmZjgxNTRlYWUzPl0gZGV2X3Jl bW92ZV9wYWNrKzB4MTMvMHgyMApbICBdICBbPGZmZmZmZmZmODE2MTA3N2U+XSBmYW5vdXRfcmVs ZWFzZSsweGJlLzB4ZTAKWyAgXSAgWzxmZmZmZmZmZjgxNjE0NDU5Pl0gcGFja2V0X25vdGlmaWVy KzB4MmY5LzB4M2YwCgo0LiBmYW5vdXRfcmVsZWFzZSgpIHJhY2VzIHdpdGggY2FsbHMgZnJvbSBk aWZmZXJlbnQgQ1BVLgoKVG8gZml4IHRoZSBhYm92ZSBwcm9ibGVtcywgcmVtb3ZlIHRoZSBjYWxs IHRvIGZhbm91dF9yZWxlYXNlKCkgdW5kZXIKcmN1X3JlYWRfbG9jaygpLiBJbnN0ZWFkLCBjYWxs IF9fZGV2X3JlbW92ZV9wYWNrKCZmYW5vdXQtPnByb3RfaG9vaykgYW5kCm5ldGRldl9ydW5fdG9k byB3aWxsIGJlIGhhcHB5IHRoYXQgJmRldi0+cHR5cGVfc3BlY2lmaWMgbGlzdCBpcyBlbXB0eS4g SW4gb3JkZXIKdG8gYWNoaWV2ZSB0aGlzLCBJIG1vdmVkIGRldl97YWRkLHJlbW92ZX1fcGFjaygp IG91dCBvZiBmYW5vdXRfe2FkZCxyZWxlYXNlfSB0bwpfX2Zhbm91dF97bGluayx1bmxpbmt9LiBT bywgY2FsbCB0byB7LF9ffXVucmVnaXN0ZXJfcHJvdF9ob29rKCkgd2lsbCBtYWtlIHN1cmUKZmFu b3V0LT5wcm90X2hvb2sgaXMgcmVtb3ZlZCBhcyB3ZWxsLgoKRml4ZXM6IDY2NjQ0OTgyODBjZiAo InBhY2tldDogY2FsbCBmYW5vdXRfcmVsZWFzZSwgd2hpbGUgVU5SRUdJU1RFUklORyBhIG5ldGRl diIpClJlcG9ydGVkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25l ZC1vZmYtYnk6IEFub29iIFNvbWFuIDxhbm9vYi5zb21hbkBjaXRyaXguY29tPgpBY2tlZC1ieTog RXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBT LiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3BhY2tldC9hZl9wYWNrZXQu YyB8IDMxICsrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAy MiBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9wYWNrZXQv YWZfcGFja2V0LmMgYi9uZXQvcGFja2V0L2FmX3BhY2tldC5jCmluZGV4IDg3MTEzZTg2Li4zNGRl MzI2IDEwMDY0NAotLS0gYS9uZXQvcGFja2V0L2FmX3BhY2tldC5jCisrKyBiL25ldC9wYWNrZXQv YWZfcGFja2V0LmMKQEAgLTE0OTcsNiArMTQ5Nyw4IEBAIHN0YXRpYyB2b2lkIF9fZmFub3V0X2xp bmsoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFja2V0X3NvY2sgKnBvKQogCWYtPmFycltmLT5u dW1fbWVtYmVyc10gPSBzazsKIAlzbXBfd21iKCk7CiAJZi0+bnVtX21lbWJlcnMrKzsKKwlpZiAo Zi0+bnVtX21lbWJlcnMgPT0gMSkKKwkJZGV2X2FkZF9wYWNrKCZmLT5wcm90X2hvb2spOwogCXNw aW5fdW5sb2NrKCZmLT5sb2NrKTsKIH0KIApAQCAtMTUxMyw2ICsxNTE1LDggQEAgc3RhdGljIHZv aWQgX19mYW5vdXRfdW5saW5rKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhY2tldF9zb2NrICpw bykKIAlCVUdfT04oaSA+PSBmLT5udW1fbWVtYmVycyk7CiAJZi0+YXJyW2ldID0gZi0+YXJyW2Yt Pm51bV9tZW1iZXJzIC0gMV07CiAJZi0+bnVtX21lbWJlcnMtLTsKKwlpZiAoZi0+bnVtX21lbWJl cnMgPT0gMCkKKwkJX19kZXZfcmVtb3ZlX3BhY2soJmYtPnByb3RfaG9vayk7CiAJc3Bpbl91bmxv Y2soJmYtPmxvY2spOwogfQogCkBAIC0xNjkzLDcgKzE2OTcsNiBAQCBzdGF0aWMgaW50IGZhbm91 dF9hZGQoc3RydWN0IHNvY2sgKnNrLCB1MTYgaWQsIHUxNiB0eXBlX2ZsYWdzKQogCQltYXRjaC0+ cHJvdF9ob29rLmZ1bmMgPSBwYWNrZXRfcmN2X2Zhbm91dDsKIAkJbWF0Y2gtPnByb3RfaG9vay5h Zl9wYWNrZXRfcHJpdiA9IG1hdGNoOwogCQltYXRjaC0+cHJvdF9ob29rLmlkX21hdGNoID0gbWF0 Y2hfZmFub3V0X2dyb3VwOwotCQlkZXZfYWRkX3BhY2soJm1hdGNoLT5wcm90X2hvb2spOwogCQls aXN0X2FkZCgmbWF0Y2gtPmxpc3QsICZmYW5vdXRfbGlzdCk7CiAJfQogCWVyciA9IC1FSU5WQUw7 CkBAIC0xNzE4LDcgKzE3MjEsMTIgQEAgc3RhdGljIGludCBmYW5vdXRfYWRkKHN0cnVjdCBzb2Nr ICpzaywgdTE2IGlkLCB1MTYgdHlwZV9mbGFncykKIAlyZXR1cm4gZXJyOwogfQogCi1zdGF0aWMg dm9pZCBmYW5vdXRfcmVsZWFzZShzdHJ1Y3Qgc29jayAqc2spCisvKiBJZiBwa3Rfc2soc2spLT5m YW5vdXQtPnNrX3JlZiBpcyB6ZXJvLCB0aGlzIGZ1bmN0aW9uIHJlbW92ZXMKKyAqIHBrdF9zayhz ayktPmZhbm91dCBmcm9tIGZhbm91dF9saXN0IGFuZCByZXR1cm5zIHBrdF9zayhzayktPmZhbm91 dC4KKyAqIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIGNhbGwgZmFu b3V0X3JlbGVhc2VfZGF0YSgpIGFuZAorICogZnJlZSB0aGUgcmV0dXJuZWQgcGFja2V0X2Zhbm91 dCAoYWZ0ZXIgc3luY2hyb25pemVfbmV0KCkpCisgKi8KK3N0YXRpYyBzdHJ1Y3QgcGFja2V0X2Zh bm91dCAqZmFub3V0X3JlbGVhc2Uoc3RydWN0IHNvY2sgKnNrKQogewogCXN0cnVjdCBwYWNrZXRf c29jayAqcG8gPSBwa3Rfc2soc2spOwogCXN0cnVjdCBwYWNrZXRfZmFub3V0ICpmOwpAQCAtMTcy OCwxNyArMTczNiwxNyBAQCBzdGF0aWMgdm9pZCBmYW5vdXRfcmVsZWFzZShzdHJ1Y3Qgc29jayAq c2spCiAJaWYgKGYpIHsKIAkJcG8tPmZhbm91dCA9IE5VTEw7CiAKLQkJaWYgKGF0b21pY19kZWNf YW5kX3Rlc3QoJmYtPnNrX3JlZikpIHsKKwkJaWYgKGF0b21pY19kZWNfYW5kX3Rlc3QoJmYtPnNr X3JlZikpCiAJCQlsaXN0X2RlbCgmZi0+bGlzdCk7Ci0JCQlkZXZfcmVtb3ZlX3BhY2soJmYtPnBy b3RfaG9vayk7Ci0JCQlmYW5vdXRfcmVsZWFzZV9kYXRhKGYpOwotCQkJa2ZyZWUoZik7Ci0JCX0K KwkJZWxzZQorCQkJZiA9IE5VTEw7CiAKIAkJaWYgKHBvLT5yb2xsb3ZlcikKIAkJCWtmcmVlX3Jj dShwby0+cm9sbG92ZXIsIHJjdSk7CiAJfQogCW11dGV4X3VubG9jaygmZmFub3V0X211dGV4KTsK KworCXJldHVybiBmOwogfQogCiBzdGF0aWMgYm9vbCBwYWNrZXRfZXh0cmFfdmxhbl9sZW5fYWxs b3dlZChjb25zdCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LApAQCAtMjk3MCw2ICsyOTc4LDcgQEAg c3RhdGljIGludCBwYWNrZXRfcmVsZWFzZShzdHJ1Y3Qgc29ja2V0ICpzb2NrKQogewogCXN0cnVj dCBzb2NrICpzayA9IHNvY2stPnNrOwogCXN0cnVjdCBwYWNrZXRfc29jayAqcG87CisJc3RydWN0 IHBhY2tldF9mYW5vdXQgKmY7CiAJc3RydWN0IG5ldCAqbmV0OwogCXVuaW9uIHRwYWNrZXRfcmVx X3UgcmVxX3U7CiAKQEAgLTMwMDksOSArMzAxOCwxNCBAQCBzdGF0aWMgaW50IHBhY2tldF9yZWxl YXNlKHN0cnVjdCBzb2NrZXQgKnNvY2spCiAJCXBhY2tldF9zZXRfcmluZyhzaywgJnJlcV91LCAx LCAxKTsKIAl9CiAKLQlmYW5vdXRfcmVsZWFzZShzayk7CisJZiA9IGZhbm91dF9yZWxlYXNlKHNr KTsKIAogCXN5bmNocm9uaXplX25ldCgpOworCisJaWYgKGYpIHsKKwkJZmFub3V0X3JlbGVhc2Vf ZGF0YShmKTsKKwkJa2ZyZWUoZik7CisJfQogCS8qCiAJICoJTm93IHRoZSBzb2NrZXQgaXMgZGVh ZC4gTm8gbW9yZSBpbnB1dCB3aWxsIGFwcGVhci4KIAkgKi8KQEAgLTM5NjMsNyArMzk3Nyw2IEBA IHN0YXRpYyBpbnQgcGFja2V0X25vdGlmaWVyKHN0cnVjdCBub3RpZmllcl9ibG9jayAqdGhpcywK IAkJCQl9CiAJCQkJaWYgKG1zZyA9PSBORVRERVZfVU5SRUdJU1RFUikgewogCQkJCQlwYWNrZXRf Y2FjaGVkX2Rldl9yZXNldChwbyk7Ci0JCQkJCWZhbm91dF9yZWxlYXNlKHNrKTsKIAkJCQkJcG8t PmlmaW5kZXggPSAtMTsKIAkJCQkJaWYgKHBvLT5wcm90X2hvb2suZGV2KQogCQkJCQkJZGV2X3B1 dChwby0+cHJvdF9ob29rLmRldik7Ci0tIAoyLjQuMTEKCgpGcm9tIDk3MTJhN2U2MmEyODc0MmRj OTU3OTNiNmFjYjY1NzAzYzllZGU1MmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1h cmN1cyBIdWV3ZSA8c3VzZS10dXhAZ214LmRlPgpEYXRlOiBXZWQsIDE1IEZlYiAyMDE3IDAxOjAw OjM2ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOC8xNF0gbmV0OiBuZWlnaDogRml4IG5ldGV2ZW50 CiBORVRFVkVOVF9ERUxBWV9QUk9CRV9USU1FX1VQREFURSBub3RpZmljYXRpb24KClsgVXBzdHJl YW0gY29tbWl0IDc2MjdhZTYwMzBmNTZhOWE5MWE1YjM4NjdiMjFmMzVkNzljMTZlNjQgXQoKV2hl biBzZXR0aW5nIGEgbmVpZ2ggcmVsYXRlZCBzeXNjdGwgcGFyYW1ldGVyLCB3ZSBhbHdheXMgc2Vu ZCBhCk5FVEVWRU5UX0RFTEFZX1BST0JFX1RJTUVfVVBEQVRFIG5ldGV2ZW50LiBGb3IgaW5zdGFu Y2UsIHdoZW4KZXhlY3V0aW5nCgoJc3lzY3RsIG5ldC5pcHY2Lm5laWdoLndscDNzMC5yZXRyYW5z X3RpbWVfbXM9MjAwMAoKYSBORVRFVkVOVF9ERUxBWV9QUk9CRV9USU1FX1VQREFURSBuZXRldmVu dCBpcyBnZW5lcmF0ZWQuCgpUaGlzIGlzIGNhdXNlZCBieSBjb21taXQgMmE0NTAxYWUxOGI1ICgi bmVpZ2g6IFNlbmQgYQpub3RpZmljYXRpb24gd2hlbiBERUxBWV9QUk9CRV9USU1FIGNoYW5nZXMi KS4gQWNjb3JkaW5nIHRvIHRoZQpjb21taXQncyBkZXNjcmlwdGlvbiwgaXQgd2FzIGludGVuZGVk IHRvIGdlbmVyYXRlIHN1Y2ggYW4gZXZlbnQKd2hlbiBzZXR0aW5nIHRoZSAiZGVsYXlfZmlyc3Rf cHJvYmVfdGltZSIgc3lzY3RsIHBhcmFtZXRlci4KCkluIG9yZGVyIHRvIGZpeCB0aGlzLCBvbmx5 IGdlbmVyYXRlIHRoaXMgZXZlbnQgd2hlbiBhY3R1YWxseQpzZXR0aW5nIHRoZSAiZGVsYXlfZmly c3RfcHJvYmVfdGltZSIgc3lzY3RsIHBhcmFtZXRlci4gVGhpcyBmaXgKc2hvdWxkIG5vdCBoYXZl IGFueSB1bmludGVuZGVkIHNpZGUtZWZmZWN0cywgYmVjYXVzZSBhbGwgYnV0IG9uZQpyZWdpc3Rl cmVkIG5ldGV2ZW50IGNhbGxiYWNrcyBjaGVjayBmb3Igb3RoZXIgbmV0ZXZlbnQgZXZlbnQKdHlw ZXMgKHRoZSByZWdpc3RlcmVkIGNhbGxiYWNrcyB3ZXJlIG9idGFpbmVkIGJ5IGdyZXBwaW5nIGZv cgoicmVnaXN0ZXJfbmV0ZXZlbnRfbm90aWZpZXIiKS4gVGhlIG9ubHkgY2FsbGJhY2sgdGhhdCB1 c2VzIHRoZQpORVRFVkVOVF9ERUxBWV9QUk9CRV9USU1FX1VQREFURSBldmVudCBpcwptbHhzd19z cF9yb3V0ZXJfbmV0ZXZlbnRfZXZlbnQoKSAoaW4KZHJpdmVycy9uZXQvZXRoZXJuZXQvbWVsbGFu b3gvbWx4c3cvc3BlY3RydW1fcm91dGVyLmMpOiBpbiBjYXNlCm9mIHRoaXMgZXZlbnQsIGl0IG9u bHkgYWNjZXNzZXMgdGhlIERFTEFZX1BST0JFX1RJTUUgb2YgdGhlCnBhc3NlZCBuZWlnaF9wYXJt cy4KCkZpeGVzOiAyYTQ1MDFhZTE4YjUgKCJuZWlnaDogU2VuZCBhIG5vdGlmaWNhdGlvbiB3aGVu IERFTEFZX1BST0JFX1RJTUUgY2hhbmdlcyIpClNpZ25lZC1vZmYtYnk6IE1hcmN1cyBIdWV3ZSA8 c3VzZS10dXhAZ214LmRlPgpSZXZpZXdlZC1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFu b3guY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2NvcmUvbmVpZ2hib3VyLmMgfCAzICsrLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL25ldC9jb3JlL25laWdo Ym91ci5jIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMKaW5kZXggMmFlOTI5Zi4uOTkwMWU1YiAxMDA2 NDQKLS0tIGEvbmV0L2NvcmUvbmVpZ2hib3VyLmMKKysrIGIvbmV0L2NvcmUvbmVpZ2hib3VyLmMK QEAgLTI5MjcsNyArMjkyNyw4IEBAIHN0YXRpYyB2b2lkIG5laWdoX3Byb2NfdXBkYXRlKHN0cnVj dCBjdGxfdGFibGUgKmN0bCwgaW50IHdyaXRlKQogCQlyZXR1cm47CiAKIAlzZXRfYml0KGluZGV4 LCBwLT5kYXRhX3N0YXRlKTsKLQljYWxsX25ldGV2ZW50X25vdGlmaWVycyhORVRFVkVOVF9ERUxB WV9QUk9CRV9USU1FX1VQREFURSwgcCk7CisJaWYgKGluZGV4ID09IE5FSUdIX1ZBUl9ERUxBWV9Q Uk9CRV9USU1FKQorCQljYWxsX25ldGV2ZW50X25vdGlmaWVycyhORVRFVkVOVF9ERUxBWV9QUk9C RV9USU1FX1VQREFURSwgcCk7CiAJaWYgKCFkZXYpIC8qIE5VTEwgZGV2IG1lYW5zIHRoaXMgaXMg ZGVmYXVsdCB2YWx1ZSAqLwogCQluZWlnaF9jb3B5X2RmbHRfcGFybXMobmV0LCBwLCBpbmRleCk7 CiB9Ci0tIAoyLjQuMTEKCgpGcm9tIDY5MTU3MzZmNDY1NWZjNTExMWJiZWY5ZjE1ZmZmNWRmNGQy ODgxNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJleSBLb25vdmFsb3YgPGFu ZHJleWtudmxAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCAxNiBGZWIgMjAxNyAxNzoyMjo0NiArMDEw MApTdWJqZWN0OiBbUEFUQ0ggMDkvMTRdIGRjY3A6IGZpeCBmcmVlaW5nIHNrYiB0b28gZWFybHkg Zm9yIElQVjZfUkVDVlBLVElORk8KClsgVXBzdHJlYW0gY29tbWl0IDVlZGFiY2E5ZDRjZmY3ZjFm MmI2OGYwYmFjNTVlZjk5ZDk3OThiYTQgXQoKSW4gdGhlIGN1cnJlbnQgRENDUCBpbXBsZW1lbnRh dGlvbiBhbiBza2IgZm9yIGEgRENDUF9QS1RfUkVRVUVTVCBwYWNrZXQKaXMgZm9yY2libHkgZnJl ZWQgdmlhIF9fa2ZyZWVfc2tiIGluIGRjY3BfcmN2X3N0YXRlX3Byb2Nlc3MgaWYKZGNjcF92Nl9j b25uX3JlcXVlc3Qgc3VjY2Vzc2Z1bGx5IHJldHVybnMuCgpIb3dldmVyLCBpZiBJUFY2X1JFQ1ZQ S1RJTkZPIGlzIHNldCBvbiBhIHNvY2tldCwgdGhlIGFkZHJlc3Mgb2YgdGhlIHNrYgppcyBzYXZl ZCB0byBpcmVxLT5wa3RvcHRzIGFuZCB0aGUgcmVmIGNvdW50IGZvciBza2IgaXMgaW5jcmVtZW50 ZWQgaW4KZGNjcF92Nl9jb25uX3JlcXVlc3QsIHNvIHNrYiBpcyBzdGlsbCBpbiB1c2UuIE5ldmVy dGhlbGVzcywgaXQgZ2V0cyBmcmVlZAppbiBkY2NwX3Jjdl9zdGF0ZV9wcm9jZXNzLgoKRml4IGJ5 IGNhbGxpbmcgY29uc3VtZV9za2IgaW5zdGVhZCBvZiBkb2luZyBnb3RvIGRpc2NhcmQgYW5kIHRo ZXJlZm9yZQpjYWxsaW5nIF9fa2ZyZWVfc2tiLgoKU2ltaWxhciBmaXhlcyBmb3IgVENQOgoKZmI3 ZTIzOTllYzE3ZjEwMDRjMGUwY2NmZDE3NDM5Zjg3NTllZGUwMSBbVENQXTogc2tiIGlzIHVuZXhw ZWN0ZWRseSBmcmVlZC4KMGFlYTc2ZDM1Yzk2NTFkNTViYmFmNzQ2ZTc5MTRlNWY5YWU1YTI1ZCB0 Y3A6IFNZTiBwYWNrZXRzIGFyZSBub3cKc2ltcGx5IGNvbnN1bWVkCgpTaWduZWQtb2ZmLWJ5OiBB bmRyZXkgS29ub3ZhbG92IDxhbmRyZXlrbnZsQGdvb2dsZS5jb20+CkFja2VkLWJ5OiBFcmljIER1 bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvZGNjcC9pbnB1dC5jIHwgMyArKy0KIDEg ZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9uZXQvZGNjcC9pbnB1dC5jIGIvbmV0L2RjY3AvaW5wdXQuYwppbmRleCBiYTM0NzE4Li44ZmVk YzJkIDEwMDY0NAotLS0gYS9uZXQvZGNjcC9pbnB1dC5jCisrKyBiL25ldC9kY2NwL2lucHV0LmMK QEAgLTYwNiw3ICs2MDYsOCBAQCBpbnQgZGNjcF9yY3Zfc3RhdGVfcHJvY2VzcyhzdHJ1Y3Qgc29j ayAqc2ssIHN0cnVjdCBza19idWZmICpza2IsCiAJCQlpZiAoaW5ldF9jc2soc2spLT5pY3NrX2Fm X29wcy0+Y29ubl9yZXF1ZXN0KHNrLAogCQkJCQkJCQkgICAgc2tiKSA8IDApCiAJCQkJcmV0dXJu IDE7Ci0JCQlnb3RvIGRpc2NhcmQ7CisJCQljb25zdW1lX3NrYihza2IpOworCQkJcmV0dXJuIDA7 CiAJCX0KIAkJaWYgKGRoLT5kY2NwaF90eXBlID09IERDQ1BfUEtUX1JFU0VUKQogCQkJZ290byBk aXNjYXJkOwotLSAKMi40LjExCgoKRnJvbSAwODQ5M2YyYTJmMzJkNTdjN2ZkMDNlN2NlN2RmYTJl NWVkNTk1YjhmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9sbyBBYmVuaSA8cGFi ZW5pQHJlZGhhdC5jb20+CkRhdGU6IEZyaSwgMTcgRmViIDIwMTcgMTk6MTQ6MjcgKzAxMDAKU3Vi amVjdDogW1BBVENIIDEwLzE0XSB2eGxhbjogZml4IG9vcHMgaW4gZGV2X2ZpbGxfbWV0YWRhdGFf ZHN0CgpbIFVwc3RyZWFtIGNvbW1pdCAyMmYwNzA4YTcxOGRhZWE1ZTc5ZGUyZDI5YjQ4MjlkZTAx NmE0ZmY0IF0KClNpbmNlIHRoZSBjb21taXQgMGMxZDcwYWY5MjRiICgibmV0OiB1c2UgZHN0X2Nh Y2hlIGZvciB2eGxhbiBkZXZpY2UiKQp2eGxhbl9maWxsX21ldGFkYXRhX2RzdCgpIGNhbGxzIHZ4 bGFuX2dldF9yb3V0ZSgpIHBhc3NpbmcgYSBOVUxMCmRzdF9jYWNoZSBwb2ludGVyLCBzbyB0aGUg bGF0dGVyIHNob3VsZCBleHBsaWNpdGx5IGNoZWNrIGZvcgp2YWxpZCBkc3RfY2FjaGUgcHRyLiBV bmZvcnR1bmF0ZWx5IHRoZSBjb21taXQgZDcxNzg1ZmZjN2U3ICgibmV0OiBhZGQKZHN0X2NhY2hl IHRvIG92cyB2eGxhbiBsd3R1bm5lbCIpIHJlbW92ZWQgc2FpZCBjaGVjay4KCkFzIGEgcmVzdWx0 IGlzIHBvc3NpYmxlIHRvIHRyaWdnZXIgYSBudWxsIHBvaW50ZXIgYWNjZXNzIGNhbGxpbmcKdnhs YW5fZmlsbF9tZXRhZGF0YV9kc3QoKSwgZS5nLiB3aXRoOgoKb3ZzLXZzY3RsIGFkZC1iciBvdnMt YnIwCm92cy12c2N0bCBhZGQtcG9ydCBvdnMtYnIwIHZ4bGFuMCAtLSBzZXQgaW50ZXJmYWNlIHZ4 bGFuMCBcCgl0eXBlPXZ4bGFuIG9wdGlvbnM6cmVtb3RlX2lwPTE5Mi4xNjguMS4xIFwKCW9wdGlv bnM6a2V5PTEyMzQgb3B0aW9uczpkc3RfcG9ydD00Nzg5IG9mcG9ydF9yZXF1ZXN0PTEwCmlwIGFk ZHJlc3MgYWRkIGRldiBvdnMtYnIwIDE3Mi4xNi4xLjIvMjQKb3ZzLXZzY3RsIHNldCBCcmlkZ2Ug b3ZzLWJyMCBpcGZpeD1AaSAtLSAtLWlkPUBpIGNyZWF0ZSBJUEZJWCBcCgl0YXJnZXRzPVwiMTcy LjE2LjEuMToxMjM0XCIgc2FtcGxpbmc9MQppcGVyZiAtYyAxNzIuMTYuMS4xIC11IC1sIDEwMDAg LWIgMTBNIC10IDEgLXAgMTIzNAoKVGhpcyBjb21taXQgYWRkcmVzc2VzIHRoZSBpc3N1ZSBwYXNz aW5nIHRvIHZ4bGFuX2dldF9yb3V0ZSgpIHRoZQpkc3RfY2FjaGUgYWxyZWFkeSBhdmFpbGFibGUg aW50byB0aGUgbHd0IGluZm8gcHJvY2Vzc2VkIGJ5CnZ4bGFuX2ZpbGxfbWV0YWRhdGFfZHN0KCku CgpGaXhlczogZDcxNzg1ZmZjN2U3ICgibmV0OiBhZGQgZHN0X2NhY2hlIHRvIG92cyB2eGxhbiBs d3R1bm5lbCIpClNpZ25lZC1vZmYtYnk6IFBhb2xvIEFiZW5pIDxwYWJlbmlAcmVkaGF0LmNvbT4K QWNrZWQtYnk6IEppcmkgQmVuYyA8amJlbmNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3Z4bGFu LmMgfCA2ICsrKystLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC92eGxhbi5jIGIvZHJpdmVycy9uZXQvdnhs YW4uYwppbmRleCAwZmFmYWE5Li5kNGY0OTViIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC92eGxh bi5jCisrKyBiL2RyaXZlcnMvbmV0L3Z4bGFuLmMKQEAgLTI0NDksNyArMjQ0OSw4IEBAIHN0YXRp YyBpbnQgdnhsYW5fZmlsbF9tZXRhZGF0YV9kc3Qoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgc3Ry dWN0IHNrX2J1ZmYgKnNrYikKIAkJCXJldHVybiAtRUlOVkFMOwogCQlydCA9IHZ4bGFuX2dldF9y b3V0ZSh2eGxhbiwgc2tiLCAwLCBpbmZvLT5rZXkudG9zLAogCQkJCSAgICAgaW5mby0+a2V5LnUu aXB2NC5kc3QsCi0JCQkJICAgICAmaW5mby0+a2V5LnUuaXB2NC5zcmMsIE5VTEwsIGluZm8pOwor CQkJCSAgICAgJmluZm8tPmtleS51LmlwdjQuc3JjLAorCQkJCSAgICAgJmluZm8tPmRzdF9jYWNo ZSwgaW5mbyk7CiAJCWlmIChJU19FUlIocnQpKQogCQkJcmV0dXJuIFBUUl9FUlIocnQpOwogCQlp cF9ydF9wdXQocnQpOwpAQCAtMjQ1OSw3ICsyNDYwLDggQEAgc3RhdGljIGludCB2eGxhbl9maWxs X21ldGFkYXRhX2RzdChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2ti KQogCiAJCW5kc3QgPSB2eGxhbjZfZ2V0X3JvdXRlKHZ4bGFuLCBza2IsIDAsIGluZm8tPmtleS50 b3MsCiAJCQkJCWluZm8tPmtleS5sYWJlbCwgJmluZm8tPmtleS51LmlwdjYuZHN0LAotCQkJCQkm aW5mby0+a2V5LnUuaXB2Ni5zcmMsIE5VTEwsIGluZm8pOworCQkJCQkmaW5mby0+a2V5LnUuaXB2 Ni5zcmMsCisJCQkJCSZpbmZvLT5kc3RfY2FjaGUsIGluZm8pOwogCQlpZiAoSVNfRVJSKG5kc3Qp KQogCQkJcmV0dXJuIFBUUl9FUlIobmRzdCk7CiAJCWRzdF9yZWxlYXNlKG5kc3QpOwotLSAKMi40 LjExCgoKRnJvbSAyYWRjNDBjOGM0MjIwM2YxMmI5N2VmZWJhN2E3YTU4N2NjYmEyNGU0IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KRGF0ZTogRnJpLCAxNyBGZWIgMjAxNyAxNjoxOTozOSAtMDUwMApTdWJqZWN0OiBb UEFUQ0ggMTEvMTRdIGlyZGE6IEZpeCBsb2NrZGVwIGFubm90YXRpb25zIGluIGhhc2hiaW5fZGVs ZXRlKCkuCgpbIFVwc3RyZWFtIGNvbW1pdCA0YzAzYjg2MmIxMmY5ODA0NTZmOWRlOTJkYjZkNTA4 YTQ5OTliNzg4IF0KCkEgbmVzdGVkIGxvY2sgZGVwdGggd2FzIGFkZGVkIHRvIHRoZSBoYXNiaW5f ZGVsZXRlKCkgY29kZSBidXQgaXQKZG9lc24ndCBhY3R1YWxseSB3b3JrIHNvbWUgd2VsbCBhbmQg cmVzdWx0cyBpbiB0b25zIG9mIGxvY2tkZXAgc3BsYXRzLgoKRml4IHRoZSBjb2RlIGluc3RlYWQg dG8gcHJvcGVybHkgZHJvcCB0aGUgbG9jayBhcm91bmQgdGhlIG9wZXJhdGlvbgphbmQganVzdCBr ZWVwIHBlZWtpbmcgdGhlIGhlYWQgb2YgdGhlIGhhc2hiaW4gcXVldWUuCgpSZXBvcnRlZC1ieTog RG1pdHJ5IFZ5dWtvdiA8ZHZ5dWtvdkBnb29nbGUuY29tPgpUZXN0ZWQtYnk6IERtaXRyeSBWeXVr b3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcmRhL2lycXVldWUuYyB8IDM0ICsrKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z KCspLCAxOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXJkYS9pcnF1ZXVlLmMgYi9u ZXQvaXJkYS9pcnF1ZXVlLmMKaW5kZXggYWNiZTYxYy4uMTYwZGM4OSAxMDA2NDQKLS0tIGEvbmV0 L2lyZGEvaXJxdWV1ZS5jCisrKyBiL25ldC9pcmRhL2lycXVldWUuYwpAQCAtMzgzLDkgKzM4Myw2 IEBAIEVYUE9SVF9TWU1CT0woaGFzaGJpbl9uZXcpOwogICogICAgZm9yIGRlYWxsb2NhdGluZyB0 aGlzIHN0cnVjdHVyZSBpZiBpdCdzIGNvbXBsZXguIElmIG5vdCB0aGUgdXNlciBjYW4KICAqICAg IGp1c3Qgc3VwcGx5IGtmcmVlLCB3aGljaCBzaG91bGQgdGFrZSBjYXJlIG9mIHRoZSBqb2IuCiAg Ki8KLSNpZmRlZiBDT05GSUdfTE9DS0RFUAotc3RhdGljIGludCBoYXNoYmluX2xvY2tfZGVwdGgg PSAwOwotI2VuZGlmCiBpbnQgaGFzaGJpbl9kZWxldGUoIGhhc2hiaW5fdCogaGFzaGJpbiwgRlJF RV9GVU5DIGZyZWVfZnVuYykKIHsKIAlpcmRhX3F1ZXVlX3QqIHF1ZXVlOwpAQCAtMzk2LDIyICsz OTMsMjcgQEAgaW50IGhhc2hiaW5fZGVsZXRlKCBoYXNoYmluX3QqIGhhc2hiaW4sIEZSRUVfRlVO QyBmcmVlX2Z1bmMpCiAJSVJEQV9BU1NFUlQoaGFzaGJpbi0+bWFnaWMgPT0gSEJfTUFHSUMsIHJl dHVybiAtMTspOwogCiAJLyogU3luY2hyb25pemUgKi8KLQlpZiAoIGhhc2hiaW4tPmhiX3R5cGUg JiBIQl9MT0NLICkgewotCQlzcGluX2xvY2tfaXJxc2F2ZV9uZXN0ZWQoJmhhc2hiaW4tPmhiX3Nw aW5sb2NrLCBmbGFncywKLQkJCQkJIGhhc2hiaW5fbG9ja19kZXB0aCsrKTsKLQl9CisJaWYgKGhh c2hiaW4tPmhiX3R5cGUgJiBIQl9MT0NLKQorCQlzcGluX2xvY2tfaXJxc2F2ZSgmaGFzaGJpbi0+ aGJfc3BpbmxvY2ssIGZsYWdzKTsKIAogCS8qCiAJICogIEZyZWUgdGhlIGVudHJpZXMgaW4gdGhl IGhhc2hiaW4sIFRPRE86IHVzZSBoYXNoYmluX2NsZWFyIHdoZW4KIAkgKiAgaXQgaGFzIGJlZW4g c2hvd24gdG8gd29yawogCSAqLwogCWZvciAoaSA9IDA7IGkgPCBIQVNIQklOX1NJWkU7IGkgKysg KSB7Ci0JCXF1ZXVlID0gZGVxdWV1ZV9maXJzdCgoaXJkYV9xdWV1ZV90KiopICZoYXNoYmluLT5o Yl9xdWV1ZVtpXSk7Ci0JCXdoaWxlIChxdWV1ZSApIHsKLQkJCWlmIChmcmVlX2Z1bmMpCi0JCQkJ KCpmcmVlX2Z1bmMpKHF1ZXVlKTsKLQkJCXF1ZXVlID0gZGVxdWV1ZV9maXJzdCgKLQkJCQkoaXJk YV9xdWV1ZV90KiopICZoYXNoYmluLT5oYl9xdWV1ZVtpXSk7CisJCXdoaWxlICgxKSB7CisJCQlx dWV1ZSA9IGRlcXVldWVfZmlyc3QoKGlyZGFfcXVldWVfdCoqKSAmaGFzaGJpbi0+aGJfcXVldWVb aV0pOworCisJCQlpZiAoIXF1ZXVlKQorCQkJCWJyZWFrOworCisJCQlpZiAoZnJlZV9mdW5jKSB7 CisJCQkJaWYgKGhhc2hiaW4tPmhiX3R5cGUgJiBIQl9MT0NLKQorCQkJCQlzcGluX3VubG9ja19p cnFyZXN0b3JlKCZoYXNoYmluLT5oYl9zcGlubG9jaywgZmxhZ3MpOworCQkJCWZyZWVfZnVuYyhx dWV1ZSk7CisJCQkJaWYgKGhhc2hiaW4tPmhiX3R5cGUgJiBIQl9MT0NLKQorCQkJCQlzcGluX2xv Y2tfaXJxc2F2ZSgmaGFzaGJpbi0+aGJfc3BpbmxvY2ssIGZsYWdzKTsKKwkJCX0KIAkJfQogCX0K IApAQCAtNDIwLDEyICs0MjIsOCBAQCBpbnQgaGFzaGJpbl9kZWxldGUoIGhhc2hiaW5fdCogaGFz aGJpbiwgRlJFRV9GVU5DIGZyZWVfZnVuYykKIAloYXNoYmluLT5tYWdpYyA9IH5IQl9NQUdJQzsK IAogCS8qIFJlbGVhc2UgbG9jayAqLwotCWlmICggaGFzaGJpbi0+aGJfdHlwZSAmIEhCX0xPQ0sp IHsKKwlpZiAoaGFzaGJpbi0+aGJfdHlwZSAmIEhCX0xPQ0spCiAJCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmhhc2hiaW4tPmhiX3NwaW5sb2NrLCBmbGFncyk7Ci0jaWZkZWYgQ09ORklHX0xPQ0tE RVAKLQkJaGFzaGJpbl9sb2NrX2RlcHRoLS07Ci0jZW5kaWYKLQl9CiAKIAkvKgogCSAqICBGcmVl IHRoZSBoYXNoYmluIHN0cnVjdHVyZQotLSAKMi40LjExCgoKRnJvbSA0ODgyYWMzMzc1YzBlODBm MTc0MjZjMDE0MzRlNTJhZWU4MmY1M2JlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAi TWljaGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhhdC5jb20+CkRhdGU6IFN1biwgMTkgRmViIDIw MTcgMDc6MTc6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEyLzE0XSBwdHJfcmluZzogZml4IHJh Y2UgY29uZGl0aW9ucyB3aGVuIHJlc2l6aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBlNzE2OTUzMDcx MTQzMzViZTFlZDkxMmY0YTM0NzM5NmMyZWQwZTY5IF0KClJlc2l6aW5nIGN1cnJlbnRseSBkcm9w cyBjb25zdW1lciBsb2NrLiAgVGhpcyBjYW4gY2F1c2UgZW50cmllcyB0byBiZQpyZW9yZGVyZWQs IHdoaWNoIGlzbid0IGdvb2QgaW4gaXRzZWxmLiAgTW9yZSBpbXBvcnRhbnRseSwgY29uc3VtZXIg Y2FuCmRldGVjdCBhIGZhbHNlIHJpbmcgZW1wdHkgY29uZGl0aW9uIGFuZCBibG9jayBmb3JldmVy LgoKRnVydGhlciwgbmVzdGluZyBvZiBjb25zdW1lciB3aXRoaW4gcHJvZHVjZXIgbG9jayBpcyBw cm9ibGVtYXRpYyBmb3IKdHVuLCBzaW5jZSBpdCBwcm9kdWNlcyBlbnRyaWVzIGluIGEgQkgsIHdo aWNoIGNhdXNlcyBhIGxvY2sgb3JkZXIKcmV2ZXJzYWw6CgogICAgICAgQ1BVMCAgICAgICAgICAg ICAgICAgICAgQ1BVMQogICAgICAgLS0tLSAgICAgICAgICAgICAgICAgICAgLS0tLQogIGNvbnN1 bWU6CiAgbG9jaygmKCZyLT5jb25zdW1lcl9sb2NrKS0+cmxvY2spOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVzaXplOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9j YWxfaXJxX2Rpc2FibGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2soJigm ci0+cHJvZHVjZXJfbG9jayktPnJsb2NrKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxvY2soJigmci0+Y29uc3VtZXJfbG9jayktPnJsb2NrKTsKICA8SW50ZXJydXB0PgogIHByb2R1 Y2U6CiAgbG9jaygmKCZyLT5wcm9kdWNlcl9sb2NrKS0+cmxvY2spOwoKVG8gZml4LCBuZXN0IHBy b2R1Y2VyIGxvY2sgd2l0aGluIGNvbnN1bWVyIGxvY2sgZHVyaW5nIHJlc2l6ZSwKYW5kIGtlZXAg Y29uc3VtZXIgbG9jayBkdXJpbmcgdGhlIHdob2xlIHN3YXAgb3BlcmF0aW9uLgoKUmVwb3J0ZWQt Ynk6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtl cm5lbC5vcmcKQ2M6ICJEYXZpZCBTLiBNaWxsZXIiIDxkYXZlbUBkYXZlbWxvZnQubmV0PgpBY2tl ZC1ieTogSmFzb24gV2FuZyA8amFzb3dhbmdAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogTWlj aGFlbCBTLiBUc2lya2luIDxtc3RAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbGludXgvcHRyX3Jpbmcu aCB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDMxIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9wdHJfcmluZy5oIGIvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oCmluZGV4IDIwNTIw MTEuLjZjNzA0NDQgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvbGludXgvcHRyX3JpbmcuaAorKysgYi9p bmNsdWRlL2xpbnV4L3B0cl9yaW5nLmgKQEAgLTExMSw2ICsxMTEsMTEgQEAgc3RhdGljIGlubGlu ZSBpbnQgX19wdHJfcmluZ19wcm9kdWNlKHN0cnVjdCBwdHJfcmluZyAqciwgdm9pZCAqcHRyKQog CXJldHVybiAwOwogfQogCisvKgorICogTm90ZTogcmVzaXplIChiZWxvdykgbmVzdHMgcHJvZHVj ZXIgbG9jayB3aXRoaW4gY29uc3VtZXIgbG9jaywgc28gaWYgeW91CisgKiBjb25zdW1lIGluIGlu dGVycnVwdCBvciBCSCBjb250ZXh0LCB5b3UgbXVzdCBkaXNhYmxlIGludGVycnVwdHMvQkggd2hl bgorICogY2FsbGluZyB0aGlzLgorICovCiBzdGF0aWMgaW5saW5lIGludCBwdHJfcmluZ19wcm9k dWNlKHN0cnVjdCBwdHJfcmluZyAqciwgdm9pZCAqcHRyKQogewogCWludCByZXQ7CkBAIC0yNDIs NiArMjQ3LDExIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqX19wdHJfcmluZ19jb25zdW1lKHN0cnVj dCBwdHJfcmluZyAqcikKIAlyZXR1cm4gcHRyOwogfQogCisvKgorICogTm90ZTogcmVzaXplIChi ZWxvdykgbmVzdHMgcHJvZHVjZXIgbG9jayB3aXRoaW4gY29uc3VtZXIgbG9jaywgc28gaWYgeW91 CisgKiBjYWxsIHRoaXMgaW4gaW50ZXJydXB0IG9yIEJIIGNvbnRleHQsIHlvdSBtdXN0IGRpc2Fi bGUgaW50ZXJydXB0cy9CSCB3aGVuCisgKiBwcm9kdWNpbmcuCisgKi8KIHN0YXRpYyBpbmxpbmUg dm9pZCAqcHRyX3JpbmdfY29uc3VtZShzdHJ1Y3QgcHRyX3JpbmcgKnIpCiB7CiAJdm9pZCAqcHRy OwpAQCAtMzU3LDcgKzM2Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqKl9fcHRyX3Jpbmdfc3dh cF9xdWV1ZShzdHJ1Y3QgcHRyX3JpbmcgKnIsIHZvaWQgKipxdWV1ZSwKIAl2b2lkICoqb2xkOwog CXZvaWQgKnB0cjsKIAotCXdoaWxlICgocHRyID0gcHRyX3JpbmdfY29uc3VtZShyKSkpCisJd2hp bGUgKChwdHIgPSBfX3B0cl9yaW5nX2NvbnN1bWUocikpKQogCQlpZiAocHJvZHVjZXIgPCBzaXpl KQogCQkJcXVldWVbcHJvZHVjZXIrK10gPSBwdHI7CiAJCWVsc2UgaWYgKGRlc3Ryb3kpCkBAIC0z NzIsNiArMzgyLDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCAqKl9fcHRyX3Jpbmdfc3dhcF9xdWV1 ZShzdHJ1Y3QgcHRyX3JpbmcgKnIsIHZvaWQgKipxdWV1ZSwKIAlyZXR1cm4gb2xkOwogfQogCisv KgorICogTm90ZTogcHJvZHVjZXIgbG9jayBpcyBuZXN0ZWQgd2l0aGluIGNvbnN1bWVyIGxvY2ss IHNvIGlmIHlvdQorICogcmVzaXplIHlvdSBtdXN0IG1ha2Ugc3VyZSBhbGwgdXNlcyBuZXN0IGNv cnJlY3RseS4KKyAqIEluIHBhcnRpY3VsYXIgaWYgeW91IGNvbnN1bWUgcmluZyBpbiBpbnRlcnJ1 cHQgb3IgQkggY29udGV4dCwgeW91IG11c3QKKyAqIGRpc2FibGUgaW50ZXJydXB0cy9CSCB3aGVu IGRvaW5nIHNvLgorICovCiBzdGF0aWMgaW5saW5lIGludCBwdHJfcmluZ19yZXNpemUoc3RydWN0 IHB0cl9yaW5nICpyLCBpbnQgc2l6ZSwgZ2ZwX3QgZ2ZwLAogCQkJCSAgdm9pZCAoKmRlc3Ryb3kp KHZvaWQgKikpCiB7CkBAIC0zODIsMTcgKzM5OCwyNSBAQCBzdGF0aWMgaW5saW5lIGludCBwdHJf cmluZ19yZXNpemUoc3RydWN0IHB0cl9yaW5nICpyLCBpbnQgc2l6ZSwgZ2ZwX3QgZ2ZwLAogCWlm ICghcXVldWUpCiAJCXJldHVybiAtRU5PTUVNOwogCi0Jc3Bpbl9sb2NrX2lycXNhdmUoJihyKS0+ cHJvZHVjZXJfbG9jaywgZmxhZ3MpOworCXNwaW5fbG9ja19pcnFzYXZlKCYociktPmNvbnN1bWVy X2xvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2soJihyKS0+cHJvZHVjZXJfbG9jayk7CiAKIAlvbGQg PSBfX3B0cl9yaW5nX3N3YXBfcXVldWUociwgcXVldWUsIHNpemUsIGdmcCwgZGVzdHJveSk7CiAK LQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCYociktPnByb2R1Y2VyX2xvY2ssIGZsYWdzKTsKKwlz cGluX3VubG9jaygmKHIpLT5wcm9kdWNlcl9sb2NrKTsKKwlzcGluX3VubG9ja19pcnFyZXN0b3Jl KCYociktPmNvbnN1bWVyX2xvY2ssIGZsYWdzKTsKIAogCWtmcmVlKG9sZCk7CiAKIAlyZXR1cm4g MDsKIH0KIAorLyoKKyAqIE5vdGU6IHByb2R1Y2VyIGxvY2sgaXMgbmVzdGVkIHdpdGhpbiBjb25z dW1lciBsb2NrLCBzbyBpZiB5b3UKKyAqIHJlc2l6ZSB5b3UgbXVzdCBtYWtlIHN1cmUgYWxsIHVz ZXMgbmVzdCBjb3JyZWN0bHkuCisgKiBJbiBwYXJ0aWN1bGFyIGlmIHlvdSBjb25zdW1lIHJpbmcg aW4gaW50ZXJydXB0IG9yIEJIIGNvbnRleHQsIHlvdSBtdXN0CisgKiBkaXNhYmxlIGludGVycnVw dHMvQkggd2hlbiBkb2luZyBzby4KKyAqLwogc3RhdGljIGlubGluZSBpbnQgcHRyX3JpbmdfcmVz aXplX211bHRpcGxlKHN0cnVjdCBwdHJfcmluZyAqKnJpbmdzLCBpbnQgbnJpbmdzLAogCQkJCQkg ICBpbnQgc2l6ZSwKIAkJCQkJICAgZ2ZwX3QgZ2ZwLCB2b2lkICgqZGVzdHJveSkodm9pZCAqKSkK QEAgLTQxMiwxMCArNDM2LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHB0cl9yaW5nX3Jlc2l6ZV9t dWx0aXBsZShzdHJ1Y3QgcHRyX3JpbmcgKipyaW5ncywgaW50IG5yaW5ncywKIAl9CiAKIAlmb3Ig KGkgPSAwOyBpIDwgbnJpbmdzOyArK2kpIHsKLQkJc3Bpbl9sb2NrX2lycXNhdmUoJihyaW5nc1tp XSktPnByb2R1Y2VyX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl9sb2NrX2lycXNhdmUoJihyaW5nc1tp XSktPmNvbnN1bWVyX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl9sb2NrKCYocmluZ3NbaV0pLT5wcm9k dWNlcl9sb2NrKTsKIAkJcXVldWVzW2ldID0gX19wdHJfcmluZ19zd2FwX3F1ZXVlKHJpbmdzW2ld LCBxdWV1ZXNbaV0sCiAJCQkJCQkgIHNpemUsIGdmcCwgZGVzdHJveSk7Ci0JCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJihyaW5nc1tpXSktPnByb2R1Y2VyX2xvY2ssIGZsYWdzKTsKKwkJc3Bpbl91 bmxvY2soJihyaW5nc1tpXSktPnByb2R1Y2VyX2xvY2spOworCQlzcGluX3VubG9ja19pcnFyZXN0 b3JlKCYocmluZ3NbaV0pLT5jb25zdW1lcl9sb2NrLCBmbGFncyk7CiAJfQogCiAJZm9yIChpID0g MDsgaSA8IG5yaW5nczsgKytpKQotLSAKMi40LjExCgoKRnJvbSA2NGYwZGU5YzI3YzFhMzkzN2Jl MGZiZDljNjFkMTRlMTJkYzA2M2RhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW9s byBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkRhdGU6IFR1ZSwgMjEgRmViIDIwMTcgMDk6MzM6 MTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEzLzE0XSBpcDogZml4IElQX0NIRUNLU1VNIGhhbmRs aW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBjYTRlZjQ1NzRmMWVlNTI1MmUyY2QzNjVmOGY1ZDViYWZk MDQ4ZjMyIF0KClRoZSBza2JzIHByb2Nlc3NlZCBieSBpcF9jbXNnX3JlY3YoKSBhcmUgbm90IGd1 YXJhbnRlZWQgdG8KYmUgbGluZWFyIGUuZy4gd2hlbiBzZW5kaW5nIFVEUCBwYWNrZXRzIG92ZXIg bG9vcGJhY2sgd2l0aApNU0dNT1JFLgpVc2luZyBjc3VtX3BhcnRpYWwoKSBvbiBbcG90ZW50aWFs bHldIHRoZSB3aG9sZSBza2IgbGVuCmlzIGRhbmdlcm91czsgaW5zdGVhZCBiZSBvbiB0aGUgc2Fm ZSBzaWRlIGFuZCB1c2Ugc2tiX2NoZWNrc3VtKCkuCgpUaGFua3MgdG8gc3l6a2FsbGVyIHRlYW0g dG8gZGV0ZWN0IHRoZSBpc3N1ZSBhbmQgcHJvdmlkZSB0aGUKcmVwcm9kdWNlci4KCnYxIC0+IHYy OgogLSBtb3ZlIHRoZSB2YXJpYWJsZSBkZWNsYXJhdGlvbiBpbiBhIHRpZ2h0ZXIgc2NvcGUKCkZp eGVzOiBhZDZmOTM5YWIxOTMgKCJpcDogQWRkIG9mZnNldCBwYXJhbWV0ZXIgdG8gaXBfY21zZ19y ZWN2IikKUmVwb3J0ZWQtYnk6IEFuZHJleSBLb25vdmFsb3YgPGFuZHJleWtudmxAZ29vZ2xlLmNv bT4KU2lnbmVkLW9mZi1ieTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpBY2tlZC1i eTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZp ZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L2lwdjQvaXBfc29ja2ds dWUuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaXBfc29ja2dsdWUuYyBiL25ldC9pcHY0 L2lwX3NvY2tnbHVlLmMKaW5kZXggNjUzMzZmMy4uOTgyNjY5NSAxMDA2NDQKLS0tIGEvbmV0L2lw djQvaXBfc29ja2dsdWUuYworKysgYi9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCkBAIC0xMDUsMTAg KzEwNSwxMCBAQCBzdGF0aWMgdm9pZCBpcF9jbXNnX3JlY3ZfY2hlY2tzdW0oc3RydWN0IG1zZ2hk ciAqbXNnLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCWlmIChza2ItPmlwX3N1bW1lZCAhPSBDSEVD S1NVTV9DT01QTEVURSkKIAkJcmV0dXJuOwogCi0JaWYgKG9mZnNldCAhPSAwKQotCQljc3VtID0g Y3N1bV9zdWIoY3N1bSwKLQkJCQljc3VtX3BhcnRpYWwoc2tiX3RyYW5zcG9ydF9oZWFkZXIoc2ti KSArIHRsZW4sCi0JCQkJCSAgICAgb2Zmc2V0LCAwKSk7CisJaWYgKG9mZnNldCAhPSAwKSB7CisJ CWludCB0ZW5kX29mZiA9IHNrYl90cmFuc3BvcnRfb2Zmc2V0KHNrYikgKyB0bGVuOworCQljc3Vt ID0gY3N1bV9zdWIoY3N1bSwgc2tiX2NoZWNrc3VtKHNrYiwgdGVuZF9vZmYsIG9mZnNldCwgMCkp OworCX0KIAogCXB1dF9jbXNnKG1zZywgU09MX0lQLCBJUF9DSEVDS1NVTSwgc2l6ZW9mKF9fd3N1 bSksICZjc3VtKTsKIH0KLS0gCjIuNC4xMQoKCkZyb20gZmZjM2UxNzNjMTFkZDVlMTI3OWUzYWM1 ZTBkMjY1NTQ5OTNmZmZkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWF4aW1lIEph eWF0IDxtYXhpbWUuamF5YXRAbW9iaWxlLWRldmljZXMuZnI+CkRhdGU6IFR1ZSwgMjEgRmViIDIw MTcgMTg6MzU6NTEgKzAxMDAKU3ViamVjdDogW1BBVENIIDE0LzE0XSBuZXQ6IHNvY2tldDogZml4 IHJlY3ZtbXNnIG5vdCByZXR1cm5pbmcgZXJyb3IgZnJvbQogc29ja19lcnJvcgoKWyBVcHN0cmVh bSBjb21taXQgZTYyM2E5ZTlkZWMyOWFlODExZDExZjgzZDAwNzRiYTI1NGFiYTM3NCBdCgpDb21t aXQgMzRiODhhNjhmMjZhICgibmV0OiBGaXggdXNlIGFmdGVyIGZyZWUgaW4gdGhlIHJlY3ZtbXNn IGV4aXQgcGF0aCIpLApjaGFuZ2VkIHRoZSBleGl0IHBhdGggb2YgcmVjdm1tc2cgdG8gYWx3YXlz IHJldHVybiB0aGUgZGF0YWdyYW1zCnZhcmlhYmxlIGFuZCBtb2RpZmllZCB0aGUgZXJyb3IgcGF0 aHMgdG8gc2V0IHRoZSB2YXJpYWJsZSB0byB0aGUgZXJyb3IKY29kZSByZXR1cm5lZCBieSByZWN2 bXNnIGlmIG5lY2Vzc2FyeS4KCkhvd2V2ZXIgaW4gdGhlIGNhc2Ugc29ja19lcnJvciByZXR1cm5l ZCBhbiBlcnJvciwgdGhlIGVycm9yIGNvZGUgd2FzCnRoZW4gaWdub3JlZCwgYW5kIHJlY3ZtbXNn IHJldHVybmVkIDAuCgpDaGFuZ2UgdGhlIGVycm9yIHBhdGggb2YgcmVjdm1tc2cgdG8gY29ycmVj dGx5IHJldHVybiB0aGUgZXJyb3IgY29kZQpvZiBzb2NrX2Vycm9yLgoKVGhlIGJ1ZyB3YXMgdHJp Z2dlcmVkIGJ5IHVzaW5nIHJlY3ZtbXNnIG9uIGEgQ0FOIGludGVyZmFjZSB3aGljaCB3YXMKbm90 IHVwLiBMaW51eCA0LjYgYW5kIGxhdGVyIHJldHVybiAwIGluIHRoaXMgY2FzZSB3aGlsZSBlYXJs aWVyCnJlbGVhc2VzIHJldHVybmVkIC1FTkVURE9XTi4KCkZpeGVzOiAzNGI4OGE2OGYyNmEgKCJu ZXQ6IEZpeCB1c2UgYWZ0ZXIgZnJlZSBpbiB0aGUgcmVjdm1tc2cgZXhpdCBwYXRoIikKU2lnbmVk LW9mZi1ieTogTWF4aW1lIEpheWF0IDxtYXhpbWUuamF5YXRAbW9iaWxlLWRldmljZXMuZnI+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvc29ja2V0LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5k ZXggNzNkYzY5Zi4uNmJiY2NmMCAxMDA2NDQKLS0tIGEvbmV0L3NvY2tldC5jCisrKyBiL25ldC9z b2NrZXQuYwpAQCAtMjE5Nyw4ICsyMTk3LDEwIEBAIGludCBfX3N5c19yZWN2bW1zZyhpbnQgZmQs IHN0cnVjdCBtbXNnaGRyIF9fdXNlciAqbW1zZywgdW5zaWduZWQgaW50IHZsZW4sCiAJCXJldHVy biBlcnI7CiAKIAllcnIgPSBzb2NrX2Vycm9yKHNvY2stPnNrKTsKLQlpZiAoZXJyKQorCWlmIChl cnIpIHsKKwkJZGF0YWdyYW1zID0gZXJyOwogCQlnb3RvIG91dF9wdXQ7CisJfQogCiAJZW50cnkg PSBtbXNnOwogCWNvbXBhdF9lbnRyeSA9IChzdHJ1Y3QgY29tcGF0X21tc2doZHIgX191c2VyICop bW1zZzsKLS0gCjIuNC4xMQoK ----Next_Part(Thu_Feb_23_14_54_47_2017_970)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_410.mbox" RnJvbSBjMzlkYWYxZWMzMTBjNmYzMzA4NjNlNTgxZmEyOTc0MTkwNmQwYTQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiTWljaGFlbCBTLiBUc2lya2luIiA8bXN0QHJlZGhhdC5jb20+ CkRhdGU6IFN1biwgMTkgRmViIDIwMTcgMDc6MTc6MTcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEv M10gcHRyX3Jpbmc6IGZpeCByYWNlIGNvbmRpdGlvbnMgd2hlbiByZXNpemluZwoKWyBVcHN0cmVh bSBjb21taXQgZTcxNjk1MzA3MTE0MzM1YmUxZWQ5MTJmNGEzNDczOTZjMmVkMGU2OSBdCgpSZXNp emluZyBjdXJyZW50bHkgZHJvcHMgY29uc3VtZXIgbG9jay4gIFRoaXMgY2FuIGNhdXNlIGVudHJp ZXMgdG8gYmUKcmVvcmRlcmVkLCB3aGljaCBpc24ndCBnb29kIGluIGl0c2VsZi4gIE1vcmUgaW1w b3J0YW50bHksIGNvbnN1bWVyIGNhbgpkZXRlY3QgYSBmYWxzZSByaW5nIGVtcHR5IGNvbmRpdGlv biBhbmQgYmxvY2sgZm9yZXZlci4KCkZ1cnRoZXIsIG5lc3Rpbmcgb2YgY29uc3VtZXIgd2l0aGlu IHByb2R1Y2VyIGxvY2sgaXMgcHJvYmxlbWF0aWMgZm9yCnR1biwgc2luY2UgaXQgcHJvZHVjZXMg ZW50cmllcyBpbiBhIEJILCB3aGljaCBjYXVzZXMgYSBsb2NrIG9yZGVyCnJldmVyc2FsOgoKICAg ICAgIENQVTAgICAgICAgICAgICAgICAgICAgIENQVTEKICAgICAgIC0tLS0gICAgICAgICAgICAg ICAgICAgIC0tLS0KICBjb25zdW1lOgogIGxvY2soJigmci0+Y29uc3VtZXJfbG9jayktPnJsb2Nr KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2l6ZToKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsb2NrKCYoJnItPnByb2R1Y2VyX2xvY2spLT5ybG9jayk7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBsb2NrKCYoJnItPmNvbnN1bWVyX2xvY2spLT5ybG9jayk7CiAg PEludGVycnVwdD4KICBwcm9kdWNlOgogIGxvY2soJigmci0+cHJvZHVjZXJfbG9jayktPnJsb2Nr KTsKClRvIGZpeCwgbmVzdCBwcm9kdWNlciBsb2NrIHdpdGhpbiBjb25zdW1lciBsb2NrIGR1cmlu ZyByZXNpemUsCmFuZCBrZWVwIGNvbnN1bWVyIGxvY2sgZHVyaW5nIHRoZSB3aG9sZSBzd2FwIG9w ZXJhdGlvbi4KClJlcG9ydGVkLWJ5OiBEbWl0cnkgVnl1a292IDxkdnl1a292QGdvb2dsZS5jb20+ CkNjOiBzdGFibGVAdmdlci5rZXJuZWwub3JnCkNjOiAiRGF2aWQgUy4gTWlsbGVyIiA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KQWNrZWQtYnk6IEphc29uIFdhbmcgPGphc293YW5nQHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IE1pY2hhZWwgUy4gVHNpcmtpbiA8bXN0QHJlZGhhdC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNs dWRlL2xpbnV4L3B0cl9yaW5nLmggfCAzNiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAzMSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvcHRyX3JpbmcuaCBiL2luY2x1ZGUvbGludXgvcHRy X3JpbmcuaAppbmRleCAyMDUyMDExLi42YzcwNDQ0IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4 L3B0cl9yaW5nLmgKKysrIGIvaW5jbHVkZS9saW51eC9wdHJfcmluZy5oCkBAIC0xMTEsNiArMTEx LDExIEBAIHN0YXRpYyBpbmxpbmUgaW50IF9fcHRyX3JpbmdfcHJvZHVjZShzdHJ1Y3QgcHRyX3Jp bmcgKnIsIHZvaWQgKnB0cikKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIE5vdGU6IHJlc2l6ZSAo YmVsb3cpIG5lc3RzIHByb2R1Y2VyIGxvY2sgd2l0aGluIGNvbnN1bWVyIGxvY2ssIHNvIGlmIHlv dQorICogY29uc3VtZSBpbiBpbnRlcnJ1cHQgb3IgQkggY29udGV4dCwgeW91IG11c3QgZGlzYWJs ZSBpbnRlcnJ1cHRzL0JIIHdoZW4KKyAqIGNhbGxpbmcgdGhpcy4KKyAqLwogc3RhdGljIGlubGlu ZSBpbnQgcHRyX3JpbmdfcHJvZHVjZShzdHJ1Y3QgcHRyX3JpbmcgKnIsIHZvaWQgKnB0cikKIHsK IAlpbnQgcmV0OwpAQCAtMjQyLDYgKzI0NywxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKl9fcHRy X3JpbmdfY29uc3VtZShzdHJ1Y3QgcHRyX3JpbmcgKnIpCiAJcmV0dXJuIHB0cjsKIH0KIAorLyoK KyAqIE5vdGU6IHJlc2l6ZSAoYmVsb3cpIG5lc3RzIHByb2R1Y2VyIGxvY2sgd2l0aGluIGNvbnN1 bWVyIGxvY2ssIHNvIGlmIHlvdQorICogY2FsbCB0aGlzIGluIGludGVycnVwdCBvciBCSCBjb250 ZXh0LCB5b3UgbXVzdCBkaXNhYmxlIGludGVycnVwdHMvQkggd2hlbgorICogcHJvZHVjaW5nLgor ICovCiBzdGF0aWMgaW5saW5lIHZvaWQgKnB0cl9yaW5nX2NvbnN1bWUoc3RydWN0IHB0cl9yaW5n ICpyKQogewogCXZvaWQgKnB0cjsKQEAgLTM1Nyw3ICszNjcsNyBAQCBzdGF0aWMgaW5saW5lIHZv aWQgKipfX3B0cl9yaW5nX3N3YXBfcXVldWUoc3RydWN0IHB0cl9yaW5nICpyLCB2b2lkICoqcXVl dWUsCiAJdm9pZCAqKm9sZDsKIAl2b2lkICpwdHI7CiAKLQl3aGlsZSAoKHB0ciA9IHB0cl9yaW5n X2NvbnN1bWUocikpKQorCXdoaWxlICgocHRyID0gX19wdHJfcmluZ19jb25zdW1lKHIpKSkKIAkJ aWYgKHByb2R1Y2VyIDwgc2l6ZSkKIAkJCXF1ZXVlW3Byb2R1Y2VyKytdID0gcHRyOwogCQllbHNl IGlmIChkZXN0cm95KQpAQCAtMzcyLDYgKzM4MiwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgKipf X3B0cl9yaW5nX3N3YXBfcXVldWUoc3RydWN0IHB0cl9yaW5nICpyLCB2b2lkICoqcXVldWUsCiAJ cmV0dXJuIG9sZDsKIH0KIAorLyoKKyAqIE5vdGU6IHByb2R1Y2VyIGxvY2sgaXMgbmVzdGVkIHdp dGhpbiBjb25zdW1lciBsb2NrLCBzbyBpZiB5b3UKKyAqIHJlc2l6ZSB5b3UgbXVzdCBtYWtlIHN1 cmUgYWxsIHVzZXMgbmVzdCBjb3JyZWN0bHkuCisgKiBJbiBwYXJ0aWN1bGFyIGlmIHlvdSBjb25z dW1lIHJpbmcgaW4gaW50ZXJydXB0IG9yIEJIIGNvbnRleHQsIHlvdSBtdXN0CisgKiBkaXNhYmxl IGludGVycnVwdHMvQkggd2hlbiBkb2luZyBzby4KKyAqLwogc3RhdGljIGlubGluZSBpbnQgcHRy X3JpbmdfcmVzaXplKHN0cnVjdCBwdHJfcmluZyAqciwgaW50IHNpemUsIGdmcF90IGdmcCwKIAkJ CQkgIHZvaWQgKCpkZXN0cm95KSh2b2lkICopKQogewpAQCAtMzgyLDE3ICszOTgsMjUgQEAgc3Rh dGljIGlubGluZSBpbnQgcHRyX3JpbmdfcmVzaXplKHN0cnVjdCBwdHJfcmluZyAqciwgaW50IHNp emUsIGdmcF90IGdmcCwKIAlpZiAoIXF1ZXVlKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXNwaW5f bG9ja19pcnFzYXZlKCYociktPnByb2R1Y2VyX2xvY2ssIGZsYWdzKTsKKwlzcGluX2xvY2tfaXJx c2F2ZSgmKHIpLT5jb25zdW1lcl9sb2NrLCBmbGFncyk7CisJc3Bpbl9sb2NrKCYociktPnByb2R1 Y2VyX2xvY2spOwogCiAJb2xkID0gX19wdHJfcmluZ19zd2FwX3F1ZXVlKHIsIHF1ZXVlLCBzaXpl LCBnZnAsIGRlc3Ryb3kpOwogCi0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmKHIpLT5wcm9kdWNl cl9sb2NrLCBmbGFncyk7CisJc3Bpbl91bmxvY2soJihyKS0+cHJvZHVjZXJfbG9jayk7CisJc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmKHIpLT5jb25zdW1lcl9sb2NrLCBmbGFncyk7CiAKIAlrZnJl ZShvbGQpOwogCiAJcmV0dXJuIDA7CiB9CiAKKy8qCisgKiBOb3RlOiBwcm9kdWNlciBsb2NrIGlz IG5lc3RlZCB3aXRoaW4gY29uc3VtZXIgbG9jaywgc28gaWYgeW91CisgKiByZXNpemUgeW91IG11 c3QgbWFrZSBzdXJlIGFsbCB1c2VzIG5lc3QgY29ycmVjdGx5LgorICogSW4gcGFydGljdWxhciBp ZiB5b3UgY29uc3VtZSByaW5nIGluIGludGVycnVwdCBvciBCSCBjb250ZXh0LCB5b3UgbXVzdAor ICogZGlzYWJsZSBpbnRlcnJ1cHRzL0JIIHdoZW4gZG9pbmcgc28uCisgKi8KIHN0YXRpYyBpbmxp bmUgaW50IHB0cl9yaW5nX3Jlc2l6ZV9tdWx0aXBsZShzdHJ1Y3QgcHRyX3JpbmcgKipyaW5ncywg aW50IG5yaW5ncywKIAkJCQkJICAgaW50IHNpemUsCiAJCQkJCSAgIGdmcF90IGdmcCwgdm9pZCAo KmRlc3Ryb3kpKHZvaWQgKikpCkBAIC00MTIsMTAgKzQzNiwxMiBAQCBzdGF0aWMgaW5saW5lIGlu dCBwdHJfcmluZ19yZXNpemVfbXVsdGlwbGUoc3RydWN0IHB0cl9yaW5nICoqcmluZ3MsIGludCBu cmluZ3MsCiAJfQogCiAJZm9yIChpID0gMDsgaSA8IG5yaW5nczsgKytpKSB7Ci0JCXNwaW5fbG9j a19pcnFzYXZlKCYocmluZ3NbaV0pLT5wcm9kdWNlcl9sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9j a19pcnFzYXZlKCYocmluZ3NbaV0pLT5jb25zdW1lcl9sb2NrLCBmbGFncyk7CisJCXNwaW5fbG9j aygmKHJpbmdzW2ldKS0+cHJvZHVjZXJfbG9jayk7CiAJCXF1ZXVlc1tpXSA9IF9fcHRyX3Jpbmdf c3dhcF9xdWV1ZShyaW5nc1tpXSwgcXVldWVzW2ldLAogCQkJCQkJICBzaXplLCBnZnAsIGRlc3Ry b3kpOwotCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCYocmluZ3NbaV0pLT5wcm9kdWNlcl9sb2Nr LCBmbGFncyk7CisJCXNwaW5fdW5sb2NrKCYocmluZ3NbaV0pLT5wcm9kdWNlcl9sb2NrKTsKKwkJ c3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmKHJpbmdzW2ldKS0+Y29uc3VtZXJfbG9jaywgZmxhZ3Mp OwogCX0KIAogCWZvciAoaSA9IDA7IGkgPCBucmluZ3M7ICsraSkKLS0gCjIuNC4xMQoKCkZyb20g ZWMyZjJiNTJlZmU3MzQ3YWNjNGZhZWQ4ODZkYzg4MjU1OGY2Y2E5OSBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogUGFvbG8gQWJlbmkgPHBhYmVuaUByZWRoYXQuY29tPgpEYXRlOiBUdWUs IDIxIEZlYiAyMDE3IDA5OjMzOjE4ICswMTAwClN1YmplY3Q6IFtQQVRDSCAyLzNdIGlwOiBmaXgg SVBfQ0hFQ0tTVU0gaGFuZGxpbmcKClsgVXBzdHJlYW0gY29tbWl0IGNhNGVmNDU3NGYxZWU1MjUy ZTJjZDM2NWY4ZjVkNWJhZmQwNDhmMzIgXQoKVGhlIHNrYnMgcHJvY2Vzc2VkIGJ5IGlwX2Ntc2df cmVjdigpIGFyZSBub3QgZ3VhcmFudGVlZCB0bwpiZSBsaW5lYXIgZS5nLiB3aGVuIHNlbmRpbmcg VURQIHBhY2tldHMgb3ZlciBsb29wYmFjayB3aXRoCk1TR01PUkUuClVzaW5nIGNzdW1fcGFydGlh bCgpIG9uIFtwb3RlbnRpYWxseV0gdGhlIHdob2xlIHNrYiBsZW4KaXMgZGFuZ2Vyb3VzOyBpbnN0 ZWFkIGJlIG9uIHRoZSBzYWZlIHNpZGUgYW5kIHVzZSBza2JfY2hlY2tzdW0oKS4KClRoYW5rcyB0 byBzeXprYWxsZXIgdGVhbSB0byBkZXRlY3QgdGhlIGlzc3VlIGFuZCBwcm92aWRlIHRoZQpyZXBy b2R1Y2VyLgoKdjEgLT4gdjI6CiAtIG1vdmUgdGhlIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGluIGEg dGlnaHRlciBzY29wZQoKRml4ZXM6IGFkNmY5MzlhYjE5MyAoImlwOiBBZGQgb2Zmc2V0IHBhcmFt ZXRlciB0byBpcF9jbXNnX3JlY3YiKQpSZXBvcnRlZC1ieTogQW5kcmV5IEtvbm92YWxvdiA8YW5k cmV5a252bEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJl ZGhhdC5jb20+CkFja2VkLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBu ZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQgaW5z ZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9pcF9zb2Nr Z2x1ZS5jIGIvbmV0L2lwdjQvaXBfc29ja2dsdWUuYwppbmRleCA5MDAwMTE3Li5mYzRiZjRkIDEw MDY0NAotLS0gYS9uZXQvaXB2NC9pcF9zb2NrZ2x1ZS5jCisrKyBiL25ldC9pcHY0L2lwX3NvY2tn bHVlLmMKQEAgLTExNiwxMCArMTE2LDEwIEBAIHN0YXRpYyB2b2lkIGlwX2Ntc2dfcmVjdl9jaGVj a3N1bShzdHJ1Y3QgbXNnaGRyICptc2csIHN0cnVjdCBza19idWZmICpza2IsCiAJaWYgKHNrYi0+ aXBfc3VtbWVkICE9IENIRUNLU1VNX0NPTVBMRVRFKQogCQlyZXR1cm47CiAKLQlpZiAob2Zmc2V0 ICE9IDApCi0JCWNzdW0gPSBjc3VtX3N1Yihjc3VtLAotCQkJCWNzdW1fcGFydGlhbChza2JfdHJh bnNwb3J0X2hlYWRlcihza2IpICsgdGxlbiwKLQkJCQkJICAgICBvZmZzZXQsIDApKTsKKwlpZiAo b2Zmc2V0ICE9IDApIHsKKwkJaW50IHRlbmRfb2ZmID0gc2tiX3RyYW5zcG9ydF9vZmZzZXQoc2ti KSArIHRsZW47CisJCWNzdW0gPSBjc3VtX3N1Yihjc3VtLCBza2JfY2hlY2tzdW0oc2tiLCB0ZW5k X29mZiwgb2Zmc2V0LCAwKSk7CisJfQogCiAJcHV0X2Ntc2cobXNnLCBTT0xfSVAsIElQX0NIRUNL U1VNLCBzaXplb2YoX193c3VtKSwgJmNzdW0pOwogfQotLSAKMi40LjExCgoKRnJvbSBmMDliNTU0 MzU4NDU4M2YyNWU3Y2FmNzg5ZGQwMGQzZmU0MTE3Y2VmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBNYXhpbWUgSmF5YXQgPG1heGltZS5qYXlhdEBtb2JpbGUtZGV2aWNlcy5mcj4KRGF0 ZTogVHVlLCAyMSBGZWIgMjAxNyAxODozNTo1MSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBu ZXQ6IHNvY2tldDogZml4IHJlY3ZtbXNnIG5vdCByZXR1cm5pbmcgZXJyb3IgZnJvbQogc29ja19l cnJvcgoKWyBVcHN0cmVhbSBjb21taXQgZTYyM2E5ZTlkZWMyOWFlODExZDExZjgzZDAwNzRiYTI1 NGFiYTM3NCBdCgpDb21taXQgMzRiODhhNjhmMjZhICgibmV0OiBGaXggdXNlIGFmdGVyIGZyZWUg aW4gdGhlIHJlY3ZtbXNnIGV4aXQgcGF0aCIpLApjaGFuZ2VkIHRoZSBleGl0IHBhdGggb2YgcmVj dm1tc2cgdG8gYWx3YXlzIHJldHVybiB0aGUgZGF0YWdyYW1zCnZhcmlhYmxlIGFuZCBtb2RpZmll ZCB0aGUgZXJyb3IgcGF0aHMgdG8gc2V0IHRoZSB2YXJpYWJsZSB0byB0aGUgZXJyb3IKY29kZSBy ZXR1cm5lZCBieSByZWN2bXNnIGlmIG5lY2Vzc2FyeS4KCkhvd2V2ZXIgaW4gdGhlIGNhc2Ugc29j a19lcnJvciByZXR1cm5lZCBhbiBlcnJvciwgdGhlIGVycm9yIGNvZGUgd2FzCnRoZW4gaWdub3Jl ZCwgYW5kIHJlY3ZtbXNnIHJldHVybmVkIDAuCgpDaGFuZ2UgdGhlIGVycm9yIHBhdGggb2YgcmVj dm1tc2cgdG8gY29ycmVjdGx5IHJldHVybiB0aGUgZXJyb3IgY29kZQpvZiBzb2NrX2Vycm9yLgoK VGhlIGJ1ZyB3YXMgdHJpZ2dlcmVkIGJ5IHVzaW5nIHJlY3ZtbXNnIG9uIGEgQ0FOIGludGVyZmFj ZSB3aGljaCB3YXMKbm90IHVwLiBMaW51eCA0LjYgYW5kIGxhdGVyIHJldHVybiAwIGluIHRoaXMg Y2FzZSB3aGlsZSBlYXJsaWVyCnJlbGVhc2VzIHJldHVybmVkIC1FTkVURE9XTi4KCkZpeGVzOiAz NGI4OGE2OGYyNmEgKCJuZXQ6IEZpeCB1c2UgYWZ0ZXIgZnJlZSBpbiB0aGUgcmVjdm1tc2cgZXhp dCBwYXRoIikKU2lnbmVkLW9mZi1ieTogTWF4aW1lIEpheWF0IDxtYXhpbWUuamF5YXRAbW9iaWxl LWRldmljZXMuZnI+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMgfCA0ICsrKy0KIDEgZmlsZSBjaGFuZ2VkLCAzIGlu c2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9u ZXQvc29ja2V0LmMKaW5kZXggMDc1OGUxMy4uMDJiZDkyNCAxMDA2NDQKLS0tIGEvbmV0L3NvY2tl dC5jCisrKyBiL25ldC9zb2NrZXQuYwpAQCAtMjIyOCw4ICsyMjI4LDEwIEBAIGludCBfX3N5c19y ZWN2bW1zZyhpbnQgZmQsIHN0cnVjdCBtbXNnaGRyIF9fdXNlciAqbW1zZywgdW5zaWduZWQgaW50 IHZsZW4sCiAJCXJldHVybiBlcnI7CiAKIAllcnIgPSBzb2NrX2Vycm9yKHNvY2stPnNrKTsKLQlp ZiAoZXJyKQorCWlmIChlcnIpIHsKKwkJZGF0YWdyYW1zID0gZXJyOwogCQlnb3RvIG91dF9wdXQ7 CisJfQogCiAJZW50cnkgPSBtbXNnOwogCWNvbXBhdF9lbnRyeSA9IChzdHJ1Y3QgY29tcGF0X21t c2doZHIgX191c2VyICopbW1zZzsKLS0gCjIuNC4xMQoK ----Next_Part(Thu_Feb_23_14_54_47_2017_970)----