From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mike Rapoport Subject: [PATCH 19/21] treewide: add checks for the return value of memblock_alloc*() Date: Wed, 16 Jan 2019 15:44:19 +0200 Message-ID: <1547646261-32535-20-git-send-email-rppt__26500.0004125342$1547646307$gmane$org@linux.ibm.com> References: <1547646261-32535-1-git-send-email-rppt@linux.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gjlWQ-00078S-9D for xen-devel@lists.xenproject.org; Wed, 16 Jan 2019 13:46:22 +0000 Received: from pps.filterd (m0098413.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id x0GDejn7083445 for ; Wed, 16 Jan 2019 08:46:17 -0500 Received: from e06smtp05.uk.ibm.com (e06smtp05.uk.ibm.com [195.75.94.101]) by mx0b-001b2d01.pphosted.com with ESMTP id 2q25k88jhw-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Wed, 16 Jan 2019 08:46:17 -0500 Received: from localhost by e06smtp05.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 16 Jan 2019 13:46:12 -0000 In-Reply-To: <1547646261-32535-1-git-send-email-rppt@linux.ibm.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: linux-mm@kvack.org Cc: Rich Felker , linux-ia64@vger.kernel.org, devicetree@vger.kernel.org, Catalin Marinas , Heiko Carstens , x86@kernel.org, linux-mips@vger.kernel.org, Max Filippov , Guo Ren , sparclinux@vger.kernel.org, Christoph Hellwig , linux-s390@vger.kernel.org, linux-c6x-dev@linux-c6x.org, Yoshinori Sato , Richard Weinberger , linux-sh@vger.kernel.org, Russell King , kasan-dev@googlegroups.com, Mike Rapoport , Geert Uytterhoeven , Mark Salter , Dennis Zhou , Matt Turner , linux-snps-arc@lists.infradead.org, uclinux-h8-devel@lists.sourceforge.jp, Petr Mladek , linux-xtensa@linux-xten List-Id: xen-devel@lists.xenproject.org QWRkIGNoZWNrIGZvciB0aGUgcmV0dXJuIHZhbHVlIG9mIG1lbWJsb2NrX2FsbG9jKigpIGZ1bmN0 aW9ucyBhbmQgY2FsbApwYW5pYygpIGluIGNhc2Ugb2YgZXJyb3IuClRoZSBwYW5pYyBtZXNzYWdl IHJlcGVhdHMgdGhlIG9uZSB1c2VkIGJ5IHBhbmljaW5nIG1lbWJsb2NrIGFsbG9jYXRvcnMgd2l0 aAphZGp1c3RtZW50IG9mIHBhcmFtZXRlcnMgdG8gaW5jbHVkZSBvbmx5IHJlbGV2YW50IG9uZXMu CgpUaGUgcmVwbGFjZW1lbnQgd2FzIG1vc3RseSBhdXRvbWF0ZWQgd2l0aCBzZW1hbnRpYyBwYXRj aGVzIGxpa2UgdGhlIG9uZQpiZWxvdyB3aXRoIG1hbnVhbCBtYXNzYWdpbmcgb2YgZm9ybWF0IHN0 cmluZ3MuCgpAQApleHByZXNzaW9uIHB0ciwgc2l6ZSwgYWxpZ247CkBACnB0ciA9IG1lbWJsb2Nr X2FsbG9jKHNpemUsIGFsaWduKTsKKyBpZiAoIXB0cikKKyAJcGFuaWMoIiVzOiBGYWlsZWQgdG8g YWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLCBfX2Z1bmNfXywKc2l6ZSwgYWxpZ24p OwoKU2lnbmVkLW9mZi1ieTogTWlrZSBSYXBvcG9ydCA8cnBwdEBsaW51eC5pYm0uY29tPgotLS0K IGFyY2gvYWxwaGEva2VybmVsL2NvcmVfY2lhLmMgICAgICAgICAgICAgIHwgIDMgKysrCiBhcmNo L2FscGhhL2tlcm5lbC9jb3JlX21hcnZlbC5jICAgICAgICAgICB8ICA2ICsrKysrKwogYXJjaC9h bHBoYS9rZXJuZWwvcGNpLW5vb3AuYyAgICAgICAgICAgICAgfCAxMSArKysrKysrKysrLQogYXJj aC9hbHBoYS9rZXJuZWwvcGNpLmMgICAgICAgICAgICAgICAgICAgfCAxMSArKysrKysrKysrLQog YXJjaC9hbHBoYS9rZXJuZWwvcGNpX2lvbW11LmMgICAgICAgICAgICAgfCAxMiArKysrKysrKysr KysKIGFyY2gvYXJjL21tL2hpZ2htZW0uYyAgICAgICAgICAgICAgICAgICAgIHwgIDQgKysrKwog YXJjaC9hcm0va2VybmVsL3NldHVwLmMgICAgICAgICAgICAgICAgICAgfCAgNiArKysrKysKIGFy Y2gvYXJtL21tL21tdS5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTQgKysrKysrKysrKysr Ky0KIGFyY2gvYXJtNjQva2VybmVsL3NldHVwLmMgICAgICAgICAgICAgICAgIHwgIDkgKysrKysr LS0tCiBhcmNoL2FybTY0L21tL2thc2FuX2luaXQuYyAgICAgICAgICAgICAgICB8IDEwICsrKysr KysrKysKIGFyY2gvYzZ4L21tL2RtYS1jb2hlcmVudC5jICAgICAgICAgICAgICAgIHwgIDQgKysr KwogYXJjaC9jNngvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMyArKysKIGFy Y2gvY3NreS9tbS9oaWdobWVtLmMgICAgICAgICAgICAgICAgICAgIHwgIDUgKysrKysKIGFyY2gv aDgzMDAvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBhcmNoL202OGsv YXRhcmkvc3RyYW0uYyAgICAgICAgICAgICAgICAgICB8ICA0ICsrKysKIGFyY2gvbTY4ay9tbS9p bml0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBhcmNoL202OGsvbW0vbWNmbW11 LmMgICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKysrKwogYXJjaC9tNjhrL21tL21vdG9yb2xh LmMgICAgICAgICAgICAgICAgICAgfCAgOSArKysrKysrKysKIGFyY2gvbTY4ay9tbS9zdW4zbW11 LmMgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKysrCiBhcmNoL202OGsvc3VuMy9zdW4zZHZt YS5jICAgICAgICAgICAgICAgICB8ICAzICsrKwogYXJjaC9taWNyb2JsYXplL21tL2luaXQuYyAg ICAgICAgICAgICAgICAgfCAgOCArKysrKystLQogYXJjaC9taXBzL2Nhdml1bS1vY3Rlb24vZG1h LW9jdGVvbi5jICAgICAgfCAgMyArKysKIGFyY2gvbWlwcy9rZXJuZWwvc2V0dXAuYyAgICAgICAg ICAgICAgICAgIHwgIDMgKysrCiBhcmNoL21pcHMva2VybmVsL3RyYXBzLmMgICAgICAgICAgICAg ICAgICB8ICAzICsrKwogYXJjaC9taXBzL21tL2luaXQuYyAgICAgICAgICAgICAgICAgICAgICAg fCAgNSArKysrKwogYXJjaC9uZHMzMi9tbS9pbml0LmMgICAgICAgICAgICAgICAgICAgICAgfCAx MiArKysrKysrKysrKysKIGFyY2gvb3BlbnJpc2MvbW0vaW9yZW1hcC5jICAgICAgICAgICAgICAg IHwgIDggKysrKysrLS0KIGFyY2gvcG93ZXJwYy9rZXJuZWwvZHRfY3B1X2Z0cnMuYyAgICAgICAg IHwgIDUgKysrKysKIGFyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzMyLmMgICAgICAgICAgICAgIHwg IDMgKysrCiBhcmNoL3Bvd2VycGMva2VybmVsL3NldHVwLWNvbW1vbi5jICAgICAgICB8ICAzICsr KwogYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cF82NC5jICAgICAgICAgICAgfCAgNCArKysrCiBh cmNoL3Bvd2VycGMvbGliL2FsbG9jLmMgICAgICAgICAgICAgICAgICB8ICAzICsrKwogYXJjaC9w b3dlcnBjL21tL2hhc2hfdXRpbHNfNjQuYyAgICAgICAgICAgfCAgMyArKysKIGFyY2gvcG93ZXJw Yy9tbS9tbXVfY29udGV4dF9ub2hhc2guYyAgICAgIHwgIDkgKysrKysrKysrCiBhcmNoL3Bvd2Vy cGMvbW0vcGd0YWJsZS1ib29rM2UuYyAgICAgICAgICB8IDEyICsrKysrKysrKystLQogYXJjaC9w b3dlcnBjL21tL3BndGFibGUtYm9vazNzNjQuYyAgICAgICAgfCAgMyArKysKIGFyY2gvcG93ZXJw Yy9tbS9wZ3RhYmxlLXJhZGl4LmMgICAgICAgICAgIHwgIDkgKysrKysrKystCiBhcmNoL3Bvd2Vy cGMvbW0vcHBjX21tdV8zMi5jICAgICAgICAgICAgICB8ICAzICsrKwogYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy9wYXNlbWkvaW9tbXUuYyAgICAgfCAgMyArKysKIGFyY2gvcG93ZXJwYy9wbGF0Zm9y bXMvcG93ZXJtYWMvbnZyYW0uYyAgIHwgIDMgKysrCiBhcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bv d2VybnYvb3BhbC5jICAgICB8ICAzICsrKwogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52 L3BjaS1pb2RhLmMgfCAgOCArKysrKysrKwogYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wczMvc2V0 dXAuYyAgICAgICAgfCAgMyArKysKIGFyY2gvcG93ZXJwYy9zeXNkZXYvbXNpX2JpdG1hcC5jICAg ICAgICAgIHwgIDMgKysrCiBhcmNoL3MzOTAva2VybmVsL3NldHVwLmMgICAgICAgICAgICAgICAg ICB8IDEzICsrKysrKysrKysrKysKIGFyY2gvczM5MC9rZXJuZWwvc21wLmMgICAgICAgICAgICAg ICAgICAgIHwgIDUgKysrKy0KIGFyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYyAgICAgICAgICAg ICAgIHwgIDYgKysrKysrCiBhcmNoL3MzOTAvbnVtYS9tb2RlX2VtdS5jICAgICAgICAgICAgICAg ICB8ICAzICsrKwogYXJjaC9zMzkwL251bWEvbnVtYS5jICAgICAgICAgICAgICAgICAgICAgfCAg NiArKysrKy0KIGFyY2gvczM5MC9udW1hL3RvcHRyZWUuYyAgICAgICAgICAgICAgICAgIHwgIDgg KysrKysrLS0KIGFyY2gvc2gvbW0vaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYg KysrKysrCiBhcmNoL3NoL21tL251bWEuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsr KysKIGFyY2gvdW0vZHJpdmVycy9uZXRfa2Vybi5jICAgICAgICAgICAgICAgIHwgIDMgKysrCiBh cmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYyAgICAgICAgICAgICB8ICAzICsrKwogYXJjaC91 bS9rZXJuZWwvaW5pdHJkLmMgICAgICAgICAgICAgICAgICAgfCAgMiArKwogYXJjaC91bS9rZXJu ZWwvbWVtLmMgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysrKysrKysrKysrCiBhcmNo L3VuaWNvcmUzMi9rZXJuZWwvc2V0dXAuYyAgICAgICAgICAgICB8ICA0ICsrKysKIGFyY2gvdW5p Y29yZTMyL21tL21tdS5jICAgICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrKysrKy0tCiBh cmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMgICAgICAgICAgICAgICB8ICAzICsrKwogYXJjaC94 ODYva2VybmVsL2FwaWMvaW9fYXBpYy5jICAgICAgICAgICAgfCAgNSArKysrKwogYXJjaC94ODYv a2VybmVsL2U4MjAuYyAgICAgICAgICAgICAgICAgICAgfCAgMyArKysKIGFyY2gveDg2L3BsYXRm b3JtL29scGMvb2xwY19kdC5jICAgICAgICAgIHwgIDMgKysrCiBhcmNoL3g4Ni94ZW4vcDJtLmMg ICAgICAgICAgICAgICAgICAgICAgICB8IDExICsrKysrKysrKy0tCiBhcmNoL3h0ZW5zYS9tbS9r YXNhbl9pbml0LmMgICAgICAgICAgICAgICB8ICA0ICsrKysKIGFyY2gveHRlbnNhL21tL21tdS5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKysrCiBkcml2ZXJzL2Nsay90aS9jbGsuYyAgICAg ICAgICAgICAgICAgICAgICB8ICAzICsrKwogZHJpdmVycy9tYWNpbnRvc2gvc211LmMgICAgICAg ICAgICAgICAgICAgfCAgMyArKysKIGRyaXZlcnMvb2YvZmR0LmMgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDggKysrKysrKy0KIGRyaXZlcnMvb2YvdW5pdHRlc3QuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDggKysrKysrKy0KIGRyaXZlcnMveGVuL3N3aW90bGIteGVuLmMgICAgICAgICAg ICAgICAgIHwgIDcgKysrKystLQoga2VybmVsL3Bvd2VyL3NuYXBzaG90LmMgICAgICAgICAgICAg ICAgICAgfCAgMyArKysKIGxpYi9jcHVtYXNrLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDMgKysrCiBtbS9rYXNhbi9pbml0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEw ICsrKysrKysrLS0KIG1tL3NwYXJzZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTkgKysrKysrKysrKysrKysrKystLQogNzQgZmlsZXMgY2hhbmdlZCwgNDE1IGluc2VydGlvbnMo KyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEva2VybmVsL2NvcmVf Y2lhLmMgYi9hcmNoL2FscGhhL2tlcm5lbC9jb3JlX2NpYS5jCmluZGV4IDQ2NmNkNDQuLmY0ODkx NzAgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2VybmVsL2NvcmVfY2lhLmMKKysrIGIvYXJjaC9h bHBoYS9rZXJuZWwvY29yZV9jaWEuYwpAQCAtMzMyLDYgKzMzMiw5IEBAIGNpYV9wcmVwYXJlX3Ri aWFfd29ya2Fyb3VuZChpbnQgd2luZG93KQogCiAJLyogVXNlIG1pbmltYWwgMUsgbWFwLiAqLwog CXBwdGUgPSBtZW1ibG9ja19hbGxvYyhDSUFfQlJPS0VOX1RCSUFfU0laRSwgMzI3NjgpOworCWlm ICghcHB0ZSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXMgYWxpZ249 MHgleFxuIiwKKwkJICAgICAgX19mdW5jX18sIENJQV9CUk9LRU5fVEJJQV9TSVpFLCAzMjc2OCk7 CiAJcHRlID0gKHZpcnRfdG9fcGh5cyhwcHRlKSA+PiAoUEFHRV9TSElGVCAtIDEpKSB8IDE7CiAK IAlmb3IgKGkgPSAwOyBpIDwgQ0lBX0JST0tFTl9UQklBX1NJWkUgLyBzaXplb2YodW5zaWduZWQg bG9uZyk7ICsraSkKZGlmZiAtLWdpdCBhL2FyY2gvYWxwaGEva2VybmVsL2NvcmVfbWFydmVsLmMg Yi9hcmNoL2FscGhhL2tlcm5lbC9jb3JlX21hcnZlbC5jCmluZGV4IGMxZDBjMTguLmNkNjhiNDAg MTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2VybmVsL2NvcmVfbWFydmVsLmMKKysrIGIvYXJjaC9h bHBoYS9rZXJuZWwvY29yZV9tYXJ2ZWwuYwpAQCAtODMsNiArODMsOSBAQCBta19yZXNvdXJjZV9u YW1lKGludCBwZSwgaW50IHBvcnQsIGNoYXIgKnN0cikKIAkKIAlzcHJpbnRmKHRtcCwgIlBDSSAl cyBQRSAlZCBQT1JUICVkIiwgc3RyLCBwZSwgcG9ydCk7CiAJbmFtZSA9IG1lbWJsb2NrX2FsbG9j KHN0cmxlbih0bXApICsgMSwgU01QX0NBQ0hFX0JZVEVTKTsKKwlpZiAoIW5hbWUpCisJCXBhbmlj KCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlc1xuIiwgX19mdW5jX18sCisJCSAgICAg IHN0cmxlbih0bXApICsgMSk7CiAJc3RyY3B5KG5hbWUsIHRtcCk7CiAKIAlyZXR1cm4gbmFtZTsK QEAgLTExOCw2ICsxMjEsOSBAQCBhbGxvY19pbzcodW5zaWduZWQgaW50IHBlKQogCX0KIAogCWlv NyA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqaW83KSwgU01QX0NBQ0hFX0JZVEVTKTsKKwlpZiAo IWlvNykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzXG4iLCBfX2Z1 bmNfXywKKwkJICAgICAgc2l6ZW9mKCppbzcpKTsKIAlpbzctPnBlID0gcGU7CiAJcmF3X3NwaW5f bG9ja19pbml0KCZpbzctPmlycV9sb2NrKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJu ZWwvcGNpLW5vb3AuYyBiL2FyY2gvYWxwaGEva2VybmVsL3BjaS1ub29wLmMKaW5kZXggMDkxY2Zm My4uN2Q3NDc3NCAxMDA2NDQKLS0tIGEvYXJjaC9hbHBoYS9rZXJuZWwvcGNpLW5vb3AuYworKysg Yi9hcmNoL2FscGhhL2tlcm5lbC9wY2ktbm9vcC5jCkBAIC0zNCw2ICszNCw5IEBAIGFsbG9jX3Bj aV9jb250cm9sbGVyKHZvaWQpCiAJc3RydWN0IHBjaV9jb250cm9sbGVyICpob3NlOwogCiAJaG9z ZSA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqaG9zZSksIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYg KCFob3NlKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXNcbiIsIF9f ZnVuY19fLAorCQkgICAgICBzaXplb2YoKmhvc2UpKTsKIAogCSpob3NlX3RhaWwgPSBob3NlOwog CWhvc2VfdGFpbCA9ICZob3NlLT5uZXh0OwpAQCAtNDQsNyArNDcsMTMgQEAgYWxsb2NfcGNpX2Nv bnRyb2xsZXIodm9pZCkKIHN0cnVjdCByZXNvdXJjZSAqIF9faW5pdAogYWxsb2NfcmVzb3VyY2Uo dm9pZCkKIHsKLQlyZXR1cm4gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKHN0cnVjdCByZXNvdXJjZSks IFNNUF9DQUNIRV9CWVRFUyk7CisJdm9pZCAqcHRyID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKHN0 cnVjdCByZXNvdXJjZSksIFNNUF9DQUNIRV9CWVRFUyk7CisKKwlpZiAoIXB0cikKKwkJcGFuaWMo IiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzXG4iLCBfX2Z1bmNfXywKKwkJICAgICAg c2l6ZW9mKHN0cnVjdCByZXNvdXJjZSkpOworCisJcmV0dXJuIHB0cjsKIH0KIAogU1lTQ0FMTF9E RUZJTkUzKHBjaWNvbmZpZ19pb2Jhc2UsIGxvbmcsIHdoaWNoLCB1bnNpZ25lZCBsb25nLCBidXMs CmRpZmYgLS1naXQgYS9hcmNoL2FscGhhL2tlcm5lbC9wY2kuYyBiL2FyY2gvYWxwaGEva2VybmVs L3BjaS5jCmluZGV4IDk3MDk4MTIuLmI0ZWI3NDMgMTAwNjQ0Ci0tLSBhL2FyY2gvYWxwaGEva2Vy bmVsL3BjaS5jCisrKyBiL2FyY2gvYWxwaGEva2VybmVsL3BjaS5jCkBAIC0zOTMsNiArMzkzLDkg QEAgYWxsb2NfcGNpX2NvbnRyb2xsZXIodm9pZCkKIAlzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhv c2U7CiAKIAlob3NlID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKCpob3NlKSwgU01QX0NBQ0hFX0JZ VEVTKTsKKwlpZiAoIWhvc2UpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBi eXRlc1xuIiwgX19mdW5jX18sCisJCSAgICAgIHNpemVvZigqaG9zZSkpOwogCiAJKmhvc2VfdGFp bCA9IGhvc2U7CiAJaG9zZV90YWlsID0gJmhvc2UtPm5leHQ7CkBAIC00MDMsNyArNDA2LDEzIEBA IGFsbG9jX3BjaV9jb250cm9sbGVyKHZvaWQpCiBzdHJ1Y3QgcmVzb3VyY2UgKiBfX2luaXQKIGFs bG9jX3Jlc291cmNlKHZvaWQpCiB7Ci0JcmV0dXJuIG1lbWJsb2NrX2FsbG9jKHNpemVvZihzdHJ1 Y3QgcmVzb3VyY2UpLCBTTVBfQ0FDSEVfQllURVMpOworCXZvaWQgKnB0ciA9IG1lbWJsb2NrX2Fs bG9jKHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpLCBTTVBfQ0FDSEVfQllURVMpOworCisJaWYgKCFw dHIpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlc1xuIiwgX19mdW5j X18sCisJCSAgICAgIHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpKTsKKworCXJldHVybiBwdHI7CiB9 CiAKIApkaWZmIC0tZ2l0IGEvYXJjaC9hbHBoYS9rZXJuZWwvcGNpX2lvbW11LmMgYi9hcmNoL2Fs cGhhL2tlcm5lbC9wY2lfaW9tbXUuYwppbmRleCBlNGNmNzdiLi40MDk2MTczIDEwMDY0NAotLS0g YS9hcmNoL2FscGhhL2tlcm5lbC9wY2lfaW9tbXUuYworKysgYi9hcmNoL2FscGhhL2tlcm5lbC9w Y2lfaW9tbXUuYwpAQCAtODAsNiArODAsOSBAQCBpb21tdV9hcmVuYV9uZXdfbm9kZShpbnQgbmlk LCBzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UsIGRtYV9hZGRyX3QgYmFzZSwKIAkJICAgICAg ICIgICAgZmFsbGluZyBiYWNrIHRvIHN5c3RlbS13aWRlIGFsbG9jYXRpb25cbiIsCiAJCSAgICAg ICBfX2Z1bmNfXywgbmlkKTsKIAkJYXJlbmEgPSBtZW1ibG9ja19hbGxvYyhzaXplb2YoKmFyZW5h KSwgU01QX0NBQ0hFX0JZVEVTKTsKKwkJaWYgKCFhcmVuYSkKKwkJCXBhbmljKCIlczogRmFpbGVk IHRvIGFsbG9jYXRlICVsdSBieXRlc1xuIiwgX19mdW5jX18sCisJCQkgICAgICBzaXplb2YoKmFy ZW5hKSk7CiAJfQogCiAJYXJlbmEtPnB0ZXMgPSBtZW1ibG9ja19hbGxvY19ub2RlKHNpemVvZigq YXJlbmEpLCBhbGlnbiwgbmlkKTsKQEAgLTg4LDEyICs5MSwyMSBAQCBpb21tdV9hcmVuYV9uZXdf bm9kZShpbnQgbmlkLCBzdHJ1Y3QgcGNpX2NvbnRyb2xsZXIgKmhvc2UsIGRtYV9hZGRyX3QgYmFz ZSwKIAkJICAgICAgICIgICAgZmFsbGluZyBiYWNrIHRvIHN5c3RlbS13aWRlIGFsbG9jYXRpb25c biIsCiAJCSAgICAgICBfX2Z1bmNfXywgbmlkKTsKIAkJYXJlbmEtPnB0ZXMgPSBtZW1ibG9ja19h bGxvYyhtZW1fc2l6ZSwgYWxpZ24pOworCQlpZiAoIWFyZW5hLT5wdGVzKQorCQkJcGFuaWMoIiVz OiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAorCQkJICAgICAg X19mdW5jX18sIG1lbV9zaXplLCBhbGlnbik7CiAJfQogCiAjZWxzZSAvKiBDT05GSUdfRElTQ09O VElHTUVNICovCiAKIAlhcmVuYSA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqYXJlbmEpLCBTTVBf Q0FDSEVfQllURVMpOworCWlmICghYXJlbmEpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9j YXRlICVsdSBieXRlc1xuIiwgX19mdW5jX18sCisJCSAgICAgIHNpemVvZigqYXJlbmEpKTsKIAlh cmVuYS0+cHRlcyA9IG1lbWJsb2NrX2FsbG9jKG1lbV9zaXplLCBhbGlnbik7CisJaWYgKCFhcmVu YS0+cHRlcykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWdu PTB4JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgbWVtX3NpemUsIGFsaWduKTsKIAogI2VuZGlm IC8qIENPTkZJR19ESVNDT05USUdNRU0gKi8KIApkaWZmIC0tZ2l0IGEvYXJjaC9hcmMvbW0vaGln aG1lbS5jIGIvYXJjaC9hcmMvbW0vaGlnaG1lbS5jCmluZGV4IDQ4ZTcwMDEuLjExZjU3ZTIgMTAw NjQ0Ci0tLSBhL2FyY2gvYXJjL21tL2hpZ2htZW0uYworKysgYi9hcmNoL2FyYy9tbS9oaWdobWVt LmMKQEAgLTEyNCw2ICsxMjQsMTAgQEAgc3RhdGljIG5vaW5saW5lIHB0ZV90ICogX19pbml0IGFs bG9jX2ttYXBfcGd0YWJsZSh1bnNpZ25lZCBsb25nIGt2YWRkcikKIAlwbWRfayA9IHBtZF9vZmZz ZXQocHVkX2ssIGt2YWRkcik7CiAKIAlwdGVfayA9IChwdGVfdCAqKW1lbWJsb2NrX2FsbG9jX2xv dyhQQUdFX1NJWkUsIFBBR0VfU0laRSk7CisJaWYgKCFwdGVfaykKKwkJcGFuaWMoIiVzOiBGYWls ZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAorCQkgICAgICBfX2Z1bmNf XywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCiAJcG1kX3BvcHVsYXRlX2tlcm5lbCgmaW5pdF9t bSwgcG1kX2ssIHB0ZV9rKTsKIAlyZXR1cm4gcHRlX2s7CiB9CmRpZmYgLS1naXQgYS9hcmNoL2Fy bS9rZXJuZWwvc2V0dXAuYyBiL2FyY2gvYXJtL2tlcm5lbC9zZXR1cC5jCmluZGV4IDM3NWIxM2Yu LjVkNzhiNmEgMTAwNjQ0Ci0tLSBhL2FyY2gvYXJtL2tlcm5lbC9zZXR1cC5jCisrKyBiL2FyY2gv YXJtL2tlcm5lbC9zZXR1cC5jCkBAIC04NjcsNiArODY3LDkgQEAgc3RhdGljIHZvaWQgX19pbml0 IHJlcXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKGNvbnN0IHN0cnVjdCBtYWNoaW5lX2Rlc2MgKm1k ZXNjKQogCQlib290X2FsaWFzX3N0YXJ0ID0gcGh5c190b19pZG1hcChzdGFydCk7CiAJCWlmIChh cm1faGFzX2lkbWFwX2FsaWFzKCkgJiYgYm9vdF9hbGlhc19zdGFydCAhPSBJRE1BUF9JTlZBTElE X0FERFIpIHsKIAkJCXJlcyA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqcmVzKSwgU01QX0NBQ0hF X0JZVEVTKTsKKwkJCWlmICghcmVzKQorCQkJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRl ICV6dSBieXRlc1xuIiwKKwkJCQkgICAgICBfX2Z1bmNfXywgc2l6ZW9mKCpyZXMpKTsKIAkJCXJl cy0+bmFtZSA9ICJTeXN0ZW0gUkFNIChib290IGFsaWFzKSI7CiAJCQlyZXMtPnN0YXJ0ID0gYm9v dF9hbGlhc19zdGFydDsKIAkJCXJlcy0+ZW5kID0gcGh5c190b19pZG1hcChlbmQpOwpAQCAtODc1 LDYgKzg3OCw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCByZXF1ZXN0X3N0YW5kYXJkX3Jlc291cmNl cyhjb25zdCBzdHJ1Y3QgbWFjaGluZV9kZXNjICptZGVzYykKIAkJfQogCiAJCXJlcyA9IG1lbWJs b2NrX2FsbG9jKHNpemVvZigqcmVzKSwgU01QX0NBQ0hFX0JZVEVTKTsKKwkJaWYgKCFyZXMpCisJ CQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXNcbiIsIF9fZnVuY19fLAor CQkJICAgICAgc2l6ZW9mKCpyZXMpKTsKIAkJcmVzLT5uYW1lICA9ICJTeXN0ZW0gUkFNIjsKIAkJ cmVzLT5zdGFydCA9IHN0YXJ0OwogCQlyZXMtPmVuZCA9IGVuZDsKZGlmZiAtLWdpdCBhL2FyY2gv YXJtL21tL21tdS5jIGIvYXJjaC9hcm0vbW0vbW11LmMKaW5kZXggNTdkZTBkZC4uZjNjZTM0MSAx MDA2NDQKLS0tIGEvYXJjaC9hcm0vbW0vbW11LmMKKysrIGIvYXJjaC9hcm0vbW0vbW11LmMKQEAg LTcyMSw3ICs3MjEsMTMgQEAgRVhQT1JUX1NZTUJPTChwaHlzX21lbV9hY2Nlc3NfcHJvdCk7CiAK IHN0YXRpYyB2b2lkIF9faW5pdCAqZWFybHlfYWxsb2ModW5zaWduZWQgbG9uZyBzeikKIHsKLQly ZXR1cm4gbWVtYmxvY2tfYWxsb2Moc3osIHN6KTsKKwl2b2lkICpwdHIgPSBtZW1ibG9ja19hbGxv Yyhzeiwgc3opOworCisJaWYgKCFwdHIpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRl ICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJICAgICAgX19mdW5jX18sIHN6LCBzeik7CisK KwlyZXR1cm4gcHRyOwogfQogCiBzdGF0aWMgdm9pZCAqX19pbml0IGxhdGVfYWxsb2ModW5zaWdu ZWQgbG9uZyBzeikKQEAgLTk5NCw2ICsxMDAwLDkgQEAgdm9pZCBfX2luaXQgaW90YWJsZV9pbml0 KHN0cnVjdCBtYXBfZGVzYyAqaW9fZGVzYywgaW50IG5yKQogCQlyZXR1cm47CiAKIAlzdm0gPSBt ZW1ibG9ja19hbGxvYyhzaXplb2YoKnN2bSkgKiBuciwgX19hbGlnbm9mX18oKnN2bSkpOworCWlm ICghc3ZtKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXMgYWxpZ249 MHglenhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBzaXplb2YoKnN2bSkgKiBuciwgX19hbGlnbm9m X18oKnN2bSkpOwogCiAJZm9yIChtZCA9IGlvX2Rlc2M7IG5yOyBtZCsrLCBuci0tKSB7CiAJCWNy ZWF0ZV9tYXBwaW5nKG1kKTsKQEAgLTEwMTYsNiArMTAyNSw5IEBAIHZvaWQgX19pbml0IHZtX3Jl c2VydmVfYXJlYV9lYXJseSh1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgc2l6ZSwK IAlzdHJ1Y3Qgc3RhdGljX3ZtICpzdm07CiAKIAlzdm0gPSBtZW1ibG9ja19hbGxvYyhzaXplb2Yo KnN2bSksIF9fYWxpZ25vZl9fKCpzdm0pKTsKKwlpZiAoIXN2bSkKKwkJcGFuaWMoIiVzOiBGYWls ZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGFsaWduPTB4JXp4XG4iLAorCQkgICAgICBfX2Z1bmNf Xywgc2l6ZW9mKCpzdm0pLCBfX2FsaWdub2ZfXygqc3ZtKSk7CiAKIAl2bSA9ICZzdm0tPnZtOwog CXZtLT5hZGRyID0gKHZvaWQgKilhZGRyOwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm02NC9rZXJuZWwv c2V0dXAuYyBiL2FyY2gvYXJtNjQva2VybmVsL3NldHVwLmMKaW5kZXggNGIwZTEyMy4uM2NkZWU1 YyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9rZXJuZWwvc2V0dXAuYworKysgYi9hcmNoL2FybTY0 L2tlcm5lbC9zZXR1cC5jCkBAIC0yMDksNiArMjA5LDcgQEAgc3RhdGljIHZvaWQgX19pbml0IHJl cXVlc3Rfc3RhbmRhcmRfcmVzb3VyY2VzKHZvaWQpCiAJc3RydWN0IG1lbWJsb2NrX3JlZ2lvbiAq cmVnaW9uOwogCXN0cnVjdCByZXNvdXJjZSAqcmVzOwogCXVuc2lnbmVkIGxvbmcgaSA9IDA7CisJ c2l6ZV90IGFsbG9jX3NpemU7CiAKIAlrZXJuZWxfY29kZS5zdGFydCAgID0gX19wYV9zeW1ib2wo X3RleHQpOwogCWtlcm5lbF9jb2RlLmVuZCAgICAgPSBfX3BhX3N5bWJvbChfX2luaXRfYmVnaW4g LSAxKTsKQEAgLTIxNiw5ICsyMTcsMTEgQEAgc3RhdGljIHZvaWQgX19pbml0IHJlcXVlc3Rfc3Rh bmRhcmRfcmVzb3VyY2VzKHZvaWQpCiAJa2VybmVsX2RhdGEuZW5kICAgICA9IF9fcGFfc3ltYm9s KF9lbmQgLSAxKTsKIAogCW51bV9zdGFuZGFyZF9yZXNvdXJjZXMgPSBtZW1ibG9jay5tZW1vcnku Y250OwotCXN0YW5kYXJkX3Jlc291cmNlcyA9IG1lbWJsb2NrX2FsbG9jX2xvdyhudW1fc3RhbmRh cmRfcmVzb3VyY2VzICoKLQkJCQkJICAgICAgICBzaXplb2YoKnN0YW5kYXJkX3Jlc291cmNlcyks Ci0JCQkJCSAgICAgICAgU01QX0NBQ0hFX0JZVEVTKTsKKwlhbGxvY19zaXplID0gbnVtX3N0YW5k YXJkX3Jlc291cmNlcyAqIHNpemVvZigqc3RhbmRhcmRfcmVzb3VyY2VzKTsKKwlzdGFuZGFyZF9y ZXNvdXJjZXMgPSBtZW1ibG9ja19hbGxvY19sb3coYWxsb2Nfc2l6ZSwgU01QX0NBQ0hFX0JZVEVT KTsKKwlpZiAoIXN0YW5kYXJkX3Jlc291cmNlcykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxs b2NhdGUgJWx1IGJ5dGVzIGFsaWduPSV4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgYWxsb2Nfc2l6 ZSwgU01QX0NBQ0hFX0JZVEVTKTsKIAogCWZvcl9lYWNoX21lbWJsb2NrKG1lbW9yeSwgcmVnaW9u KSB7CiAJCXJlcyA9ICZzdGFuZGFyZF9yZXNvdXJjZXNbaSsrXTsKZGlmZiAtLWdpdCBhL2FyY2gv YXJtNjQvbW0va2FzYW5faW5pdC5jIGIvYXJjaC9hcm02NC9tbS9rYXNhbl9pbml0LmMKaW5kZXgg NGI1NWIxNS4uNDNkMTNjNyAxMDA2NDQKLS0tIGEvYXJjaC9hcm02NC9tbS9rYXNhbl9pbml0LmMK KysrIGIvYXJjaC9hcm02NC9tbS9rYXNhbl9pbml0LmMKQEAgLTQwLDYgKzQwLDExIEBAIHN0YXRp YyBwaHlzX2FkZHJfdCBfX2luaXQga2FzYW5fYWxsb2NfemVyb2VkX3BhZ2UoaW50IG5vZGUpCiAJ dm9pZCAqcCA9IG1lbWJsb2NrX2FsbG9jX3RyeV9uaWQoUEFHRV9TSVpFLCBQQUdFX1NJWkUsCiAJ CQkJCSAgICAgIF9fcGEoTUFYX0RNQV9BRERSRVNTKSwKIAkJCQkJICAgICAgTUVNQkxPQ0tfQUxM T0NfS0FTQU4sIG5vZGUpOworCWlmICghcCkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2Nh dGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4IG5pZD0lZCBmcm9tPSVsbHhcbiIsCisJCSAgICAgIF9f ZnVuY19fLCBQQUdFX1NJWkUsIFBBR0VfU0laRSwgbm9kZSwKKwkJICAgICAgX19wYShNQVhfRE1B X0FERFJFU1MpKTsKKwogCXJldHVybiBfX3BhKHApOwogfQogCkBAIC00OCw2ICs1MywxMSBAQCBz dGF0aWMgcGh5c19hZGRyX3QgX19pbml0IGthc2FuX2FsbG9jX3Jhd19wYWdlKGludCBub2RlKQog CXZvaWQgKnAgPSBtZW1ibG9ja19hbGxvY190cnlfbmlkX3JhdyhQQUdFX1NJWkUsIFBBR0VfU0la RSwKIAkJCQkJCV9fcGEoTUFYX0RNQV9BRERSRVNTKSwKIAkJCQkJCU1FTUJMT0NLX0FMTE9DX0tB U0FOLCBub2RlKTsKKwlpZiAoIXApCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVs dSBieXRlcyBhbGlnbj0weCVseCBuaWQ9JWQgZnJvbT0lbGx4XG4iLAorCQkgICAgICBfX2Z1bmNf XywgUEFHRV9TSVpFLCBQQUdFX1NJWkUsIG5vZGUsCisJCSAgICAgIF9fcGEoTUFYX0RNQV9BRERS RVNTKSk7CisKIAlyZXR1cm4gX19wYShwKTsKIH0KIApkaWZmIC0tZ2l0IGEvYXJjaC9jNngvbW0v ZG1hLWNvaGVyZW50LmMgYi9hcmNoL2M2eC9tbS9kbWEtY29oZXJlbnQuYwppbmRleCAwYmUyODk4 Li4wZDM3MDFiIDEwMDY0NAotLS0gYS9hcmNoL2M2eC9tbS9kbWEtY29oZXJlbnQuYworKysgYi9h cmNoL2M2eC9tbS9kbWEtY29oZXJlbnQuYwpAQCAtMTM4LDYgKzEzOCwxMCBAQCB2b2lkIF9faW5p dCBjb2hlcmVudF9tZW1faW5pdChwaHlzX2FkZHJfdCBzdGFydCwgdTMyIHNpemUpCiAKIAlkbWFf Yml0bWFwID0gbWVtYmxvY2tfYWxsb2MoQklUU19UT19MT05HUyhkbWFfcGFnZXMpICogc2l6ZW9m KGxvbmcpLAogCQkJCSAgICBzaXplb2YobG9uZykpOworCWlmICghZG1hX2JpdG1hcCkKKwkJcGFu aWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGFsaWduPTB4JXp4XG4iLAorCQkg ICAgICBfX2Z1bmNfXywgQklUU19UT19MT05HUyhkbWFfcGFnZXMpICogc2l6ZW9mKGxvbmcpLAor CQkgICAgICBzaXplb2YobG9uZykpOwogfQogCiBzdGF0aWMgdm9pZCBjNnhfZG1hX3N5bmMoc3Ry dWN0IGRldmljZSAqZGV2LCBwaHlzX2FkZHJfdCBwYWRkciwgc2l6ZV90IHNpemUsCmRpZmYgLS1n aXQgYS9hcmNoL2M2eC9tbS9pbml0LmMgYi9hcmNoL2M2eC9tbS9pbml0LmMKaW5kZXggZTgzYzA0 Ni4uZmU1ODJjMyAxMDA2NDQKLS0tIGEvYXJjaC9jNngvbW0vaW5pdC5jCisrKyBiL2FyY2gvYzZ4 L21tL2luaXQuYwpAQCAtNDAsNiArNDAsOSBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lk KQogCiAJZW1wdHlfemVyb19wYWdlICAgICAgPSAodW5zaWduZWQgbG9uZykgbWVtYmxvY2tfYWxs b2MoUEFHRV9TSVpFLAogCQkJCQkJCSAgICAgIFBBR0VfU0laRSk7CisJaWYgKCFlbXB0eV96ZXJv X3BhZ2UpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0w eCVseFxuIiwKKwkJICAgICAgX19mdW5jX18sIFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKIAogCS8q CiAJICogU2V0IHVwIHVzZXIgZGF0YSBzcGFjZQpkaWZmIC0tZ2l0IGEvYXJjaC9jc2t5L21tL2hp Z2htZW0uYyBiL2FyY2gvY3NreS9tbS9oaWdobWVtLmMKaW5kZXggNTNiMWJmYS4uMzMxN2I3NzQg MTAwNjQ0Ci0tLSBhL2FyY2gvY3NreS9tbS9oaWdobWVtLmMKKysrIGIvYXJjaC9jc2t5L21tL2hp Z2htZW0uYwpAQCAtMTQxLDYgKzE0MSwxMSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgZml4cmFuZ2Vf aW5pdCh1bnNpZ25lZCBsb25nIHN0YXJ0LCB1bnNpZ25lZCBsb25nIGVuZCwKIAkJCWZvciAoOyAo ayA8IFBUUlNfUEVSX1BNRCkgJiYgKHZhZGRyICE9IGVuZCk7IHBtZCsrLCBrKyspIHsKIAkJCQlp ZiAocG1kX25vbmUoKnBtZCkpIHsKIAkJCQkJcHRlID0gKHB0ZV90ICopIG1lbWJsb2NrX2FsbG9j X2xvdyhQQUdFX1NJWkUsIFBBR0VfU0laRSk7CisJCQkJCWlmICghcHRlKQorCQkJCQkJcGFuaWMo IiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPSVseFxuIiwKKwkJCQkJCSAg ICAgIF9fZnVuY19fLCBQQUdFX1NJWkUsCisJCQkJCQkgICAgICBQQUdFX1NJWkUpOworCiAJCQkJ CXNldF9wbWQocG1kLCBfX3BtZChfX3BhKHB0ZSkpKTsKIAkJCQkJQlVHX09OKHB0ZSAhPSBwdGVf b2Zmc2V0X2tlcm5lbChwbWQsIDApKTsKIAkJCQl9CmRpZmYgLS1naXQgYS9hcmNoL2g4MzAwL21t L2luaXQuYyBiL2FyY2gvaDgzMDAvbW0vaW5pdC5jCmluZGV4IGExNTc4OTAuLjBmMDRhNWUgMTAw NjQ0Ci0tLSBhL2FyY2gvaDgzMDAvbW0vaW5pdC5jCisrKyBiL2FyY2gvaDgzMDAvbW0vaW5pdC5j CkBAIC02OCw2ICs2OCw5IEBAIHZvaWQgX19pbml0IHBhZ2luZ19pbml0KHZvaWQpCiAJICogdG8g YSBjb3VwbGUgb2YgYWxsb2NhdGVkIHBhZ2VzLgogCSAqLwogCWVtcHR5X3plcm9fcGFnZSA9ICh1 bnNpZ25lZCBsb25nKW1lbWJsb2NrX2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAo IWVtcHR5X3plcm9fcGFnZSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5 dGVzIGFsaWduPTB4JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJ WkUpOwogCiAJLyoKIAkgKiBTZXQgdXAgU0ZDL0RGQyByZWdpc3RlcnMgKHVzZXIgZGF0YSBzcGFj ZSkuCmRpZmYgLS1naXQgYS9hcmNoL202OGsvYXRhcmkvc3RyYW0uYyBiL2FyY2gvbTY4ay9hdGFy aS9zdHJhbS5jCmluZGV4IDZmZmMyMDQuLjYxNTJmOWYgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9h dGFyaS9zdHJhbS5jCisrKyBiL2FyY2gvbTY4ay9hdGFyaS9zdHJhbS5jCkBAIC05Nyw2ICs5Nywx MCBAQCB2b2lkIF9faW5pdCBhdGFyaV9zdHJhbV9yZXNlcnZlX3BhZ2VzKHZvaWQgKnN0YXJ0X21l bSkKIAkJcHJfZGVidWcoImF0YXJpX3N0cmFtIHBvb2w6IGtlcm5lbCBpbiBTVC1SQU0sIHVzaW5n IGFsbG9jX2Jvb3RtZW0hXG4iKTsKIAkJc3RyYW1fcG9vbC5zdGFydCA9IChyZXNvdXJjZV9zaXpl X3QpbWVtYmxvY2tfYWxsb2NfbG93KHBvb2xfc2l6ZSwKIAkJCQkJCQkJICAgICAgIFBBR0VfU0la RSk7CisJCWlmICghc3RyYW1fcG9vbC5zdGFydCkKKwkJCXBhbmljKCIlczogRmFpbGVkIHRvIGFs bG9jYXRlICVsdSBieXRlcyBhbGlnbj0lbHhcbiIsCisJCQkgICAgICBfX2Z1bmNfXywgcG9vbF9z aXplLCBQQUdFX1NJWkUpOworCiAJCXN0cmFtX3Bvb2wuZW5kID0gc3RyYW1fcG9vbC5zdGFydCAr IHBvb2xfc2l6ZSAtIDE7CiAJCXJlcXVlc3RfcmVzb3VyY2UoJmlvbWVtX3Jlc291cmNlLCAmc3Ry YW1fcG9vbCk7CiAJCXN0cmFtX3ZpcnRfb2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL2FyY2gvbTY4 ay9tbS9pbml0LmMgYi9hcmNoL202OGsvbW0vaW5pdC5jCmluZGV4IDkzM2MzM2UuLjg4NjhhNGMg MTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9tbS9pbml0LmMKKysrIGIvYXJjaC9tNjhrL21tL2luaXQu YwpAQCAtOTQsNiArOTQsOSBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogCWhpZ2hf bWVtb3J5ID0gKHZvaWQgKikgZW5kX21lbTsKIAogCWVtcHR5X3plcm9fcGFnZSA9IG1lbWJsb2Nr X2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAoIWVtcHR5X3plcm9fcGFnZSkKKwkJ cGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAor CQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCiAJLyoKIAkgKiBTZXQg dXAgU0ZDL0RGQyByZWdpc3RlcnMgKHVzZXIgZGF0YSBzcGFjZSkuCmRpZmYgLS1naXQgYS9hcmNo L202OGsvbW0vbWNmbW11LmMgYi9hcmNoL202OGsvbW0vbWNmbW11LmMKaW5kZXggNDkyZjk1My4u NmNiMWU0MSAxMDA2NDQKLS0tIGEvYXJjaC9tNjhrL21tL21jZm1tdS5jCisrKyBiL2FyY2gvbTY4 ay9tbS9tY2ZtbXUuYwpAQCAtNDQsNiArNDQsOSBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2 b2lkKQogCWludCBpOwogCiAJZW1wdHlfemVyb19wYWdlID0gKHZvaWQgKikgbWVtYmxvY2tfYWxs b2MoUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCWlmICghZW1wdHlfemVyb19wYWdlKQorCQlwYW5p YygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249MHglbHhcbiIsCisJCSAg ICAgIF9fZnVuY19fLCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CiAKIAlwZ19kaXIgPSBzd2FwcGVy X3BnX2RpcjsKIAltZW1zZXQoc3dhcHBlcl9wZ19kaXIsIDAsIHNpemVvZihzd2FwcGVyX3BnX2Rp cikpOwpAQCAtNTEsNiArNTQsOSBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogCXNp emUgPSBudW1fcGFnZXMgKiBzaXplb2YocHRlX3QpOwogCXNpemUgPSAoc2l6ZSArIFBBR0VfU0la RSkgJiB+KFBBR0VfU0laRS0xKTsKIAluZXh0X3BndGFibGUgPSAodW5zaWduZWQgbG9uZykgbWVt YmxvY2tfYWxsb2Moc2l6ZSwgUEFHRV9TSVpFKTsKKwlpZiAoIW5leHRfcGd0YWJsZSkKKwkJcGFu aWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAorCQkg ICAgICBfX2Z1bmNfXywgc2l6ZSwgUEFHRV9TSVpFKTsKIAogCWJvb3RtZW1fZW5kID0gKG5leHRf cGd0YWJsZSArIHNpemUgKyBQQUdFX1NJWkUpICYgUEFHRV9NQVNLOwogCXBnX2RpciArPSBQQUdF X09GRlNFVCA+PiBQR0RJUl9TSElGVDsKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9tbS9tb3Rvcm9s YS5jIGIvYXJjaC9tNjhrL21tL21vdG9yb2xhLmMKaW5kZXggM2YzZDBiZi4uMzU2NjAxYiAxMDA2 NDQKLS0tIGEvYXJjaC9tNjhrL21tL21vdG9yb2xhLmMKKysrIGIvYXJjaC9tNjhrL21tL21vdG9y b2xhLmMKQEAgLTU1LDYgKzU1LDkgQEAgc3RhdGljIHB0ZV90ICogX19pbml0IGtlcm5lbF9wYWdl X3RhYmxlKHZvaWQpCiAJcHRlX3QgKnB0YWJsZXA7CiAKIAlwdGFibGVwID0gKHB0ZV90ICopbWVt YmxvY2tfYWxsb2NfbG93KFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAoIXB0YWJsZXApCisJ CXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0lbHhcbiIsCisJ CSAgICAgIF9fZnVuY19fLCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CiAKIAljbGVhcl9wYWdlKHB0 YWJsZXApOwogCV9fZmx1c2hfcGFnZV90b19yYW0ocHRhYmxlcCk7CkBAIC05Niw2ICs5OSw5IEBA IHN0YXRpYyBwbWRfdCAqIF9faW5pdCBrZXJuZWxfcHRyX3RhYmxlKHZvaWQpCiAJaWYgKCgodW5z aWduZWQgbG9uZylsYXN0X3BndGFibGUgJiB+UEFHRV9NQVNLKSA9PSAwKSB7CiAJCWxhc3RfcGd0 YWJsZSA9IChwbWRfdCAqKW1lbWJsb2NrX2FsbG9jX2xvdyhQQUdFX1NJWkUsCiAJCQkJCQkJICAg UEFHRV9TSVpFKTsKKwkJaWYgKCFsYXN0X3BndGFibGUpCisJCQlwYW5pYygiJXM6IEZhaWxlZCB0 byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249JWx4XG4iLAorCQkJICAgICAgX19mdW5jX18sIFBB R0VfU0laRSwgUEFHRV9TSVpFKTsKIAogCQljbGVhcl9wYWdlKGxhc3RfcGd0YWJsZSk7CiAJCV9f Zmx1c2hfcGFnZV90b19yYW0obGFzdF9wZ3RhYmxlKTsKQEAgLTI3OCw2ICsyODQsOSBAQCB2b2lk IF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogCSAqIHRvIGEgY291cGxlIG9mIGFsbG9jYXRlZCBw YWdlcwogCSAqLwogCWVtcHR5X3plcm9fcGFnZSA9IG1lbWJsb2NrX2FsbG9jKFBBR0VfU0laRSwg UEFHRV9TSVpFKTsKKwlpZiAoIWVtcHR5X3plcm9fcGFnZSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQg dG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywg UEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCiAJLyoKIAkgKiBTZXQgdXAgU0ZDL0RGQyByZWdpc3Rl cnMKZGlmZiAtLWdpdCBhL2FyY2gvbTY4ay9tbS9zdW4zbW11LmMgYi9hcmNoL202OGsvbW0vc3Vu M21tdS5jCmluZGV4IGY3MzZkYjQuLmVjYTFjNDYgMTAwNjQ0Ci0tLSBhL2FyY2gvbTY4ay9tbS9z dW4zbW11LmMKKysrIGIvYXJjaC9tNjhrL21tL3N1bjNtbXUuYwpAQCAtNDYsNiArNDYsOSBAQCB2 b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogCXVuc2lnbmVkIGxvbmcgc2l6ZTsKIAogCWVt cHR5X3plcm9fcGFnZSA9IG1lbWJsb2NrX2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlp ZiAoIWVtcHR5X3plcm9fcGFnZSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1 IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdF X1NJWkUpOwogCiAJYWRkcmVzcyA9IFBBR0VfT0ZGU0VUOwogCXBnX2RpciA9IHN3YXBwZXJfcGdf ZGlyOwpAQCAtNTYsNiArNTksOSBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2b2lkKQogCXNp emUgPSAoc2l6ZSArIFBBR0VfU0laRSkgJiB+KFBBR0VfU0laRS0xKTsKIAogCW5leHRfcGd0YWJs ZSA9ICh1bnNpZ25lZCBsb25nKW1lbWJsb2NrX2FsbG9jKHNpemUsIFBBR0VfU0laRSk7CisJaWYg KCFuZXh0X3BndGFibGUpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRl cyBhbGlnbj0weCVseFxuIiwKKwkJICAgICAgX19mdW5jX18sIHNpemUsIFBBR0VfU0laRSk7CiAJ Ym9vdG1lbV9lbmQgPSAobmV4dF9wZ3RhYmxlICsgc2l6ZSArIFBBR0VfU0laRSkgJiBQQUdFX01B U0s7CiAKIAkvKiBNYXAgd2hvbGUgbWVtb3J5IGZyb20gUEFHRV9PRkZTRVQgKDB4MEUwMDAwMDAp ICovCmRpZmYgLS1naXQgYS9hcmNoL202OGsvc3VuMy9zdW4zZHZtYS5jIGIvYXJjaC9tNjhrL3N1 bjMvc3VuM2R2bWEuYwppbmRleCA0ZDY0NzExLi4zOTlmM2QwIDEwMDY0NAotLS0gYS9hcmNoL202 OGsvc3VuMy9zdW4zZHZtYS5jCisrKyBiL2FyY2gvbTY4ay9zdW4zL3N1bjNkdm1hLmMKQEAgLTI2 OSw2ICsyNjksOSBAQCB2b2lkIF9faW5pdCBkdm1hX2luaXQodm9pZCkKIAogCWlvbW11X3VzZSA9 IG1lbWJsb2NrX2FsbG9jKElPTU1VX1RPVEFMX0VOVFJJRVMgKiBzaXplb2YodW5zaWduZWQgbG9u ZyksCiAJCQkJICAgU01QX0NBQ0hFX0JZVEVTKTsKKwlpZiAoIWlvbW11X3VzZSkKKwkJcGFuaWMo IiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBfX2Z1bmNfXywKKwkJICAgICAg SU9NTVVfVE9UQUxfRU5UUklFUyAqIHNpemVvZih1bnNpZ25lZCBsb25nKSk7CiAKIAlkdm1hX3Vu bWFwX2lvbW11KERWTUFfU1RBUlQsIERWTUFfU0laRSk7CiAKZGlmZiAtLWdpdCBhL2FyY2gvbWlj cm9ibGF6ZS9tbS9pbml0LmMgYi9hcmNoL21pY3JvYmxhemUvbW0vaW5pdC5jCmluZGV4IGJkMWNk NGIuLjdlOTdkNDQgMTAwNjQ0Ci0tLSBhL2FyY2gvbWljcm9ibGF6ZS9tbS9pbml0LmMKKysrIGIv YXJjaC9taWNyb2JsYXplL21tL2luaXQuYwpAQCAtMzc0LDEwICszNzQsMTQgQEAgdm9pZCAqIF9f cmVmIHphbGxvY19tYXliZV9ib290bWVtKHNpemVfdCBzaXplLCBnZnBfdCBtYXNrKQogewogCXZv aWQgKnA7CiAKLQlpZiAobWVtX2luaXRfZG9uZSkKKwlpZiAobWVtX2luaXRfZG9uZSkgewogCQlw ID0ga3phbGxvYyhzaXplLCBtYXNrKTsKLQllbHNlCisJfSBlbHNlIHsKIAkJcCA9IG1lbWJsb2Nr X2FsbG9jKHNpemUsIFNNUF9DQUNIRV9CWVRFUyk7CisJCWlmICghcCkKKwkJCXBhbmljKCIlczog RmFpbGVkIHRvIGFsbG9jYXRlICV6dSBieXRlc1xuIiwKKwkJCSAgICAgIF9fZnVuY19fLCBzaXpl KTsKKwl9CiAKIAlyZXR1cm4gcDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9jYXZpdW0tb2N0 ZW9uL2RtYS1vY3Rlb24uYyBiL2FyY2gvbWlwcy9jYXZpdW0tb2N0ZW9uL2RtYS1vY3Rlb24uYwpp bmRleCBlOGViNjBlLi5kYjFkZWIyIDEwMDY0NAotLS0gYS9hcmNoL21pcHMvY2F2aXVtLW9jdGVv bi9kbWEtb2N0ZW9uLmMKKysrIGIvYXJjaC9taXBzL2Nhdml1bS1vY3Rlb24vZG1hLW9jdGVvbi5j CkBAIC0yNDUsNiArMjQ1LDkgQEAgdm9pZCBfX2luaXQgcGxhdF9zd2lvdGxiX3NldHVwKHZvaWQp CiAJc3dpb3RsYnNpemUgPSBzd2lvdGxiX25zbGFicyA8PCBJT19UTEJfU0hJRlQ7CiAKIAlvY3Rl b25fc3dpb3RsYiA9IG1lbWJsb2NrX2FsbG9jX2xvdyhzd2lvdGxic2l6ZSwgUEFHRV9TSVpFKTsK KwlpZiAoIW9jdGVvbl9zd2lvdGxiKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAl bHUgYnl0ZXMgYWxpZ249JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgc3dpb3RsYnNpemUsIFBB R0VfU0laRSk7CiAKIAlpZiAoc3dpb3RsYl9pbml0X3dpdGhfdGJsKG9jdGVvbl9zd2lvdGxiLCBz d2lvdGxiX25zbGFicywgMSkgPT0gLUVOT01FTSkKIAkJcGFuaWMoIkNhbm5vdCBhbGxvY2F0ZSBT V0lPVExCIGJ1ZmZlciIpOwpkaWZmIC0tZ2l0IGEvYXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jIGIv YXJjaC9taXBzL2tlcm5lbC9zZXR1cC5jCmluZGV4IDhjNmM0OGVkLi45MWJjOTYyIDEwMDY0NAot LS0gYS9hcmNoL21pcHMva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9taXBzL2tlcm5lbC9zZXR1 cC5jCkBAIC05MTgsNiArOTE4LDkgQEAgc3RhdGljIHZvaWQgX19pbml0IHJlc291cmNlX2luaXQo dm9pZCkKIAkJCWVuZCA9IEhJR0hNRU1fU1RBUlQgLSAxOwogCiAJCXJlcyA9IG1lbWJsb2NrX2Fs bG9jKHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpLCBTTVBfQ0FDSEVfQllURVMpOworCQlpZiAoIXJl cykKKwkJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICV6dSBieXRlc1xuIiwgX19mdW5j X18sCisJCQkgICAgICBzaXplb2Yoc3RydWN0IHJlc291cmNlKSk7CiAKIAkJcmVzLT5zdGFydCA9 IHN0YXJ0OwogCQlyZXMtPmVuZCA9IGVuZDsKZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9rZXJuZWwv dHJhcHMuYyBiL2FyY2gvbWlwcy9rZXJuZWwvdHJhcHMuYwppbmRleCAyYmJkZWU1Li42NGI1NDFh IDEwMDY0NAotLS0gYS9hcmNoL21pcHMva2VybmVsL3RyYXBzLmMKKysrIGIvYXJjaC9taXBzL2tl cm5lbC90cmFwcy5jCkBAIC0yMjkyLDYgKzIyOTIsOSBAQCB2b2lkIF9faW5pdCB0cmFwX2luaXQo dm9pZCkKIAogCQllYmFzZSA9ICh1bnNpZ25lZCBsb25nKQogCQkJbWVtYmxvY2tfYWxsb2Moc2l6 ZSwgMSA8PCBmbHMoc2l6ZSkpOworCQlpZiAoIWViYXNlKQorCQkJcGFuaWMoIiVzOiBGYWlsZWQg dG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JXhcbiIsCisJCQkgICAgICBfX2Z1bmNfXywg c2l6ZSwgMSA8PCBmbHMoc2l6ZSkpOwogCiAJCS8qCiAJCSAqIFRyeSB0byBlbnN1cmUgZWJhc2Ug cmVzaWRlcyBpbiBLU2VnMCBpZiBwb3NzaWJsZS4KZGlmZiAtLWdpdCBhL2FyY2gvbWlwcy9tbS9p bml0LmMgYi9hcmNoL21pcHMvbW0vaW5pdC5jCmluZGV4IGI1MjFkOGUuLjg5ZTJhZmMgMTAwNjQ0 Ci0tLSBhL2FyY2gvbWlwcy9tbS9pbml0LmMKKysrIGIvYXJjaC9taXBzL21tL2luaXQuYwpAQCAt MjQ1LDYgKzI0NSwxMSBAQCB2b2lkIF9faW5pdCBmaXhyYW5nZV9pbml0KHVuc2lnbmVkIGxvbmcg c3RhcnQsIHVuc2lnbmVkIGxvbmcgZW5kLAogCQkJCWlmIChwbWRfbm9uZSgqcG1kKSkgewogCQkJ CQlwdGUgPSAocHRlX3QgKikgbWVtYmxvY2tfYWxsb2NfbG93KFBBR0VfU0laRSwKIAkJCQkJCQkJ CSAgIFBBR0VfU0laRSk7CisJCQkJCWlmICghcHRlKQorCQkJCQkJcGFuaWMoIiVzOiBGYWlsZWQg dG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPSVseFxuIiwKKwkJCQkJCSAgICAgIF9fZnVuY19f LCBQQUdFX1NJWkUsCisJCQkJCQkgICAgICBQQUdFX1NJWkUpOworCiAJCQkJCXNldF9wbWQocG1k LCBfX3BtZCgodW5zaWduZWQgbG9uZylwdGUpKTsKIAkJCQkJQlVHX09OKHB0ZSAhPSBwdGVfb2Zm c2V0X2tlcm5lbChwbWQsIDApKTsKIAkJCQl9CmRpZmYgLS1naXQgYS9hcmNoL25kczMyL21tL2lu aXQuYyBiL2FyY2gvbmRzMzIvbW0vaW5pdC5jCmluZGV4IGQxZTUyMWMuLjFkMDM2MzMgMTAwNjQ0 Ci0tLSBhL2FyY2gvbmRzMzIvbW0vaW5pdC5jCisrKyBiL2FyY2gvbmRzMzIvbW0vaW5pdC5jCkBA IC03OSw2ICs3OSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBtYXBfcmFtKHZvaWQpCiAKIAkJLyog QWxsb2Mgb25lIHBhZ2UgZm9yIGhvbGRpbmcgUFRFJ3MuLi4gKi8KIAkJcHRlID0gbWVtYmxvY2tf YWxsb2MoUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCQlpZiAoIXB0ZSkKKwkJCXBhbmljKCIlczog RmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJCSAgICAgIF9f ZnVuY19fLCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CiAJCXNldF9wbWQocG1lLCBfX3BtZChfX3Bh KHB0ZSkgKyBfUEFHRV9LRVJORUxfVEFCTEUpKTsKIAogCQkvKiBGaWxsIHRoZSBuZXdseSBhbGxv Y2F0ZWQgcGFnZSB3aXRoIFBURSdTICovCkBAIC0xMTEsNiArMTE0LDkgQEAgc3RhdGljIHZvaWQg X19pbml0IGZpeGVkcmFuZ2VfaW5pdCh2b2lkKQogCXB1ZCA9IHB1ZF9vZmZzZXQocGdkLCB2YWRk cik7CiAJcG1kID0gcG1kX29mZnNldChwdWQsIHZhZGRyKTsKIAlmaXhtYXBfcG1kX3AgPSBtZW1i bG9ja19hbGxvYyhQQUdFX1NJWkUsIFBBR0VfU0laRSk7CisJaWYgKCFmaXhtYXBfcG1kX3ApCisJ CXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwK KwkJICAgICAgX19mdW5jX18sIFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKIAlzZXRfcG1kKHBtZCwg X19wbWQoX19wYShmaXhtYXBfcG1kX3ApICsgX1BBR0VfS0VSTkVMX1RBQkxFKSk7CiAKICNpZmRl ZiBDT05GSUdfSElHSE1FTQpAQCAtMTIzLDYgKzEyOSw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBm aXhlZHJhbmdlX2luaXQodm9pZCkKIAlwdWQgPSBwdWRfb2Zmc2V0KHBnZCwgdmFkZHIpOwogCXBt ZCA9IHBtZF9vZmZzZXQocHVkLCB2YWRkcik7CiAJcHRlID0gbWVtYmxvY2tfYWxsb2MoUEFHRV9T SVpFLCBQQUdFX1NJWkUpOworCWlmICghcHRlKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxv Y2F0ZSAlbHUgYnl0ZXMgYWxpZ249MHglbHhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBQQUdFX1NJ WkUsIFBBR0VfU0laRSk7CiAJc2V0X3BtZChwbWQsIF9fcG1kKF9fcGEocHRlKSArIF9QQUdFX0tF Uk5FTF9UQUJMRSkpOwogCXBrbWFwX3BhZ2VfdGFibGUgPSBwdGU7CiAjZW5kaWYgLyogQ09ORklH X0hJR0hNRU0gKi8KQEAgLTE0OCw2ICsxNTcsOSBAQCB2b2lkIF9faW5pdCBwYWdpbmdfaW5pdCh2 b2lkKQogCiAJLyogYWxsb2NhdGUgc3BhY2UgZm9yIGVtcHR5X3plcm9fcGFnZSAqLwogCXplcm9f cGFnZSA9IG1lbWJsb2NrX2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAoIXplcm9f cGFnZSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4 JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCXpvbmVf c2l6ZXNfaW5pdCgpOwogCiAJZW1wdHlfemVyb19wYWdlID0gdmlydF90b19wYWdlKHplcm9fcGFn ZSk7CmRpZmYgLS1naXQgYS9hcmNoL29wZW5yaXNjL21tL2lvcmVtYXAuYyBiL2FyY2gvb3BlbnJp c2MvbW0vaW9yZW1hcC5jCmluZGV4IDA1MWJjYjQuLmE4NTA5OTUgMTAwNjQ0Ci0tLSBhL2FyY2gv b3BlbnJpc2MvbW0vaW9yZW1hcC5jCisrKyBiL2FyY2gvb3BlbnJpc2MvbW0vaW9yZW1hcC5jCkBA IC0xMjIsMTAgKzEyMiwxNCBAQCBwdGVfdCBfX3JlZiAqcHRlX2FsbG9jX29uZV9rZXJuZWwoc3Ry dWN0IG1tX3N0cnVjdCAqbW0pCiB7CiAJcHRlX3QgKnB0ZTsKIAotCWlmIChsaWtlbHkobWVtX2lu aXRfZG9uZSkpCisJaWYgKGxpa2VseShtZW1faW5pdF9kb25lKSkgewogCQlwdGUgPSAocHRlX3Qg KilnZXRfemVyb2VkX3BhZ2UoR0ZQX0tFUk5FTCk7Ci0JZWxzZQorCX0gZWxzZSB7CiAJCXB0ZSA9 IG1lbWJsb2NrX2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwkJaWYgKCFwdGUpCisJCQlw YW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249MHglbHhcbiIsCisJ CQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCX0KIAogCXJldHVybiBw dGU7CiB9CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL2R0X2NwdV9mdHJzLmMgYi9h cmNoL3Bvd2VycGMva2VybmVsL2R0X2NwdV9mdHJzLmMKaW5kZXggMjU1NDgyNC4uZGQxN2NiOSAx MDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9kdF9jcHVfZnRycy5jCisrKyBiL2FyY2gv cG93ZXJwYy9rZXJuZWwvZHRfY3B1X2Z0cnMuYwpAQCAtMTAwOCw2ICsxMDA4LDExIEBAIHN0YXRp YyBpbnQgX19pbml0IGR0X2NwdV9mdHJzX3NjYW5fY2FsbGJhY2sodW5zaWduZWQgbG9uZyBub2Rl LCBjb25zdCBjaGFyCiAJb2Zfc2Nhbl9mbGF0X2R0X3N1Ym5vZGVzKG5vZGUsIGNvdW50X2NwdWZl YXR1cmVzX3N1Ym5vZGVzLAogCQkJCQkJJm5yX2R0X2NwdV9mZWF0dXJlcyk7CiAJZHRfY3B1X2Zl YXR1cmVzID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKHN0cnVjdCBkdF9jcHVfZmVhdHVyZSkgKiBu cl9kdF9jcHVfZmVhdHVyZXMsIFBBR0VfU0laRSk7CisJaWYgKCFkdF9jcHVfZmVhdHVyZXMpCisJ CXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwK KwkJICAgICAgX19mdW5jX18sCisJCSAgICAgIHNpemVvZihzdHJ1Y3QgZHRfY3B1X2ZlYXR1cmUp ICogbnJfZHRfY3B1X2ZlYXR1cmVzLAorCQkgICAgICBQQUdFX1NJWkUpOwogCiAJY3B1ZmVhdHVy ZXNfc2V0dXBfc3RhcnQoaXNhKTsKIApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9w Y2lfMzIuYyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvcGNpXzMyLmMKaW5kZXggZDNmMDRmMi4uMDQx N2ZkYSAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC9wY2lfMzIuYworKysgYi9hcmNo L3Bvd2VycGMva2VybmVsL3BjaV8zMi5jCkBAIC0yMDUsNiArMjA1LDkgQEAgcGNpX2NyZWF0ZV9P Rl9idXNfbWFwKHZvaWQpCiAKIAlvZl9wcm9wID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKHN0cnVj dCBwcm9wZXJ0eSkgKyAyNTYsCiAJCQkJIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYgKCFvZl9wcm9w KQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXNcbiIsIF9fZnVuY19f LAorCQkgICAgICBzaXplb2Yoc3RydWN0IHByb3BlcnR5KSArIDI1Nik7CiAJZG4gPSBvZl9maW5k X25vZGVfYnlfcGF0aCgiLyIpOwogCWlmIChkbikgewogCQltZW1zZXQob2ZfcHJvcCwgLTEsIHNp emVvZihzdHJ1Y3QgcHJvcGVydHkpICsgMjU2KTsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9r ZXJuZWwvc2V0dXAtY29tbW9uLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwLWNvbW1vbi5j CmluZGV4IDgyYmU0OGMuLjE4MTBmMDkgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9rZXJuZWwv c2V0dXAtY29tbW9uLmMKKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC9zZXR1cC1jb21tb24uYwpA QCAtNDYxLDYgKzQ2MSw5IEBAIHZvaWQgX19pbml0IHNtcF9zZXR1cF9jcHVfbWFwcyh2b2lkKQog CiAJY3B1X3RvX3BoeXNfaWQgPSBtZW1ibG9ja19hbGxvYyhucl9jcHVfaWRzICogc2l6ZW9mKHUz MiksCiAJCQkJCV9fYWxpZ25vZl9fKHUzMikpOworCWlmICghY3B1X3RvX3BoeXNfaWQpCisJCXBh bmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICV6dSBieXRlcyBhbGlnbj0weCV6eFxuIiwKKwkJ ICAgICAgX19mdW5jX18sIG5yX2NwdV9pZHMgKiBzaXplb2YodTMyKSwgX19hbGlnbm9mX18odTMy KSk7CiAKIAlmb3JfZWFjaF9ub2RlX2J5X3R5cGUoZG4sICJjcHUiKSB7CiAJCWNvbnN0IF9fYmUz MiAqaW50c2VydjsKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXBfNjQuYyBi L2FyY2gvcG93ZXJwYy9rZXJuZWwvc2V0dXBfNjQuYwppbmRleCAzZGNkNzc5Li5kZDYyYjA1IDEw MDY0NAotLS0gYS9hcmNoL3Bvd2VycGMva2VybmVsL3NldHVwXzY0LmMKKysrIGIvYXJjaC9wb3dl cnBjL2tlcm5lbC9zZXR1cF82NC5jCkBAIC05MzEsNiArOTMxLDEwIEBAIHN0YXRpYyB2b2lkIF9f cmVmIGluaXRfZmFsbGJhY2tfZmx1c2godm9pZCkKIAlsMWRfZmx1c2hfZmFsbGJhY2tfYXJlYSA9 IG1lbWJsb2NrX2FsbG9jX3RyeV9uaWQobDFkX3NpemUgKiAyLAogCQkJCQkJbDFkX3NpemUsIE1F TUJMT0NLX0xPV19MSU1JVCwKIAkJCQkJCWxpbWl0LCBOVU1BX05PX05PREUpOworCWlmICghbDFk X2ZsdXNoX2ZhbGxiYWNrX2FyZWEpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVs bHUgYnl0ZXMgYWxpZ249MHglbGx4IG1heF9hZGRyPSVwYVxuIiwKKwkJICAgICAgX19mdW5jX18s IGwxZF9zaXplICogMiwgbDFkX3NpemUsICZsaW1pdCk7CisKIAogCWZvcl9lYWNoX3Bvc3NpYmxl X2NwdShjcHUpIHsKIAkJc3RydWN0IHBhY2Ffc3RydWN0ICpwYWNhID0gcGFjYV9wdHJzW2NwdV07 CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvbGliL2FsbG9jLmMgYi9hcmNoL3Bvd2VycGMvbGli L2FsbG9jLmMKaW5kZXggZGVkZjg4YS4uY2UxODA4NyAxMDA2NDQKLS0tIGEvYXJjaC9wb3dlcnBj L2xpYi9hbGxvYy5jCisrKyBiL2FyY2gvcG93ZXJwYy9saWIvYWxsb2MuYwpAQCAtMTUsNiArMTUs OSBAQCB2b2lkICogX19yZWYgemFsbG9jX21heWJlX2Jvb3RtZW0oc2l6ZV90IHNpemUsIGdmcF90 IG1hc2spCiAJCXAgPSBremFsbG9jKHNpemUsIG1hc2spOwogCWVsc2UgewogCQlwID0gbWVtYmxv Y2tfYWxsb2Moc2l6ZSwgU01QX0NBQ0hFX0JZVEVTKTsKKwkJaWYgKCFwKQorCQkJcGFuaWMoIiVz OiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBfX2Z1bmNfXywKKwkJCSAgICAgIHNp emUpOwogCX0KIAlyZXR1cm4gcDsKIH0KZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9oYXNo X3V0aWxzXzY0LmMgYi9hcmNoL3Bvd2VycGMvbW0vaGFzaF91dGlsc182NC5jCmluZGV4IGM3ZDVm NDguLmRkZjNiOWMgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJwYy9tbS9oYXNoX3V0aWxzXzY0LmMK KysrIGIvYXJjaC9wb3dlcnBjL21tL2hhc2hfdXRpbHNfNjQuYwpAQCAtOTE1LDYgKzkxNSw5IEBA IHN0YXRpYyB2b2lkIF9faW5pdCBodGFiX2luaXRpYWxpemUodm9pZCkKIAkJbGluZWFyX21hcF9o YXNoX3Nsb3RzID0gbWVtYmxvY2tfYWxsb2NfdHJ5X25pZCgKIAkJCQlsaW5lYXJfbWFwX2hhc2hf Y291bnQsIDEsIE1FTUJMT0NLX0xPV19MSU1JVCwKIAkJCQlwcGM2NF9ybWFfc2l6ZSwJTlVNQV9O T19OT0RFKTsKKwkJaWYgKCFsaW5lYXJfbWFwX2hhc2hfc2xvdHMpCisJCQlwYW5pYygiJXM6IEZh aWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgbWF4X2FkZHI9JXBhXG4iLAorCQkJICAgICAgX19m dW5jX18sIGxpbmVhcl9tYXBfaGFzaF9jb3VudCwgJnBwYzY0X3JtYV9zaXplKTsKIAl9CiAjZW5k aWYgLyogQ09ORklHX0RFQlVHX1BBR0VBTExPQyAqLwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2Vy cGMvbW0vbW11X2NvbnRleHRfbm9oYXNoLmMgYi9hcmNoL3Bvd2VycGMvbW0vbW11X2NvbnRleHRf bm9oYXNoLmMKaW5kZXggMjJkNzFhNTguLjE5NDVjNWYgMTAwNjQ0Ci0tLSBhL2FyY2gvcG93ZXJw Yy9tbS9tbXVfY29udGV4dF9ub2hhc2guYworKysgYi9hcmNoL3Bvd2VycGMvbW0vbW11X2NvbnRl eHRfbm9oYXNoLmMKQEAgLTQ2MSwxMCArNDYxLDE5IEBAIHZvaWQgX19pbml0IG1tdV9jb250ZXh0 X2luaXQodm9pZCkKIAkgKiBBbGxvY2F0ZSB0aGUgbWFwcyB1c2VkIGJ5IGNvbnRleHQgbWFuYWdl bWVudAogCSAqLwogCWNvbnRleHRfbWFwID0gbWVtYmxvY2tfYWxsb2MoQ1RYX01BUF9TSVpFLCBT TVBfQ0FDSEVfQllURVMpOworCWlmICghY29udGV4dF9tYXApCisJCXBhbmljKCIlczogRmFpbGVk IHRvIGFsbG9jYXRlICV6dSBieXRlc1xuIiwgX19mdW5jX18sCisJCSAgICAgIENUWF9NQVBfU0la RSk7CiAJY29udGV4dF9tbSA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZih2b2lkICopICogKExBU1Rf Q09OVEVYVCArIDEpLAogCQkJCSAgICBTTVBfQ0FDSEVfQllURVMpOworCWlmICghY29udGV4dF9t bSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBfX2Z1bmNf XywKKwkJICAgICAgc2l6ZW9mKHZvaWQgKikgKiAoTEFTVF9DT05URVhUICsgMSkpOwogI2lmZGVm IENPTkZJR19TTVAKIAlzdGFsZV9tYXBbYm9vdF9jcHVpZF0gPSBtZW1ibG9ja19hbGxvYyhDVFhf TUFQX1NJWkUsIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYgKCFzdGFsZV9tYXBbYm9vdF9jcHVpZF0p CisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICV6dSBieXRlc1xuIiwgX19mdW5jX18s CisJCSAgICAgIENUWF9NQVBfU0laRSk7CiAKIAljcHVocF9zZXR1cF9zdGF0ZV9ub2NhbGxzKENQ VUhQX1BPV0VSUENfTU1VX0NUWF9QUkVQQVJFLAogCQkJCSAgInBvd2VycGMvbW11L2N0eDpwcmVw YXJlIiwKZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlLWJvb2szZS5jIGIvYXJj aC9wb3dlcnBjL21tL3BndGFibGUtYm9vazNlLmMKaW5kZXggNTNjYmM3ZC4uMTAzMmVmNyAxMDA2 NDQKLS0tIGEvYXJjaC9wb3dlcnBjL21tL3BndGFibGUtYm9vazNlLmMKKysrIGIvYXJjaC9wb3dl cnBjL21tL3BndGFibGUtYm9vazNlLmMKQEAgLTU3LDggKzU3LDE2IEBAIHZvaWQgdm1lbW1hcF9y ZW1vdmVfbWFwcGluZyh1bnNpZ25lZCBsb25nIHN0YXJ0LAogCiBzdGF0aWMgX19yZWYgdm9pZCAq ZWFybHlfYWxsb2NfcGd0YWJsZSh1bnNpZ25lZCBsb25nIHNpemUpCiB7Ci0JcmV0dXJuIG1lbWJs b2NrX2FsbG9jX3RyeV9uaWQoc2l6ZSwgc2l6ZSwgTUVNQkxPQ0tfTE9XX0xJTUlULAotCQkJCSAg ICAgIF9fcGEoTUFYX0RNQV9BRERSRVNTKSwgTlVNQV9OT19OT0RFKTsKKwl2b2lkICpwdHI7CisK KwlwdHIgPSBtZW1ibG9ja19hbGxvY190cnlfbmlkKHNpemUsIHNpemUsIE1FTUJMT0NLX0xPV19M SU1JVCwKKwkJCQkgICAgIF9fcGEoTUFYX0RNQV9BRERSRVNTKSwgTlVNQV9OT19OT0RFKTsKKwor CWlmICghcHRyKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxp Z249MHglbHggbWF4X2FkZHI9JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgc2l6ZSwgc2l6ZSwg X19wYShNQVhfRE1BX0FERFJFU1MpKTsKKworCXJldHVybiBwdHI7CiB9CiAKIC8qCmRpZmYgLS1n aXQgYS9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZS1ib29rM3M2NC5jIGIvYXJjaC9wb3dlcnBjL21t L3BndGFibGUtYm9vazNzNjQuYwppbmRleCA1NTg3NmI3Li42OGU5NWY4IDEwMDY0NAotLS0gYS9h cmNoL3Bvd2VycGMvbW0vcGd0YWJsZS1ib29rM3M2NC5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9w Z3RhYmxlLWJvb2szczY0LmMKQEAgLTE5Nyw2ICsxOTcsOSBAQCB2b2lkIF9faW5pdCBtbXVfcGFy dGl0aW9uX3RhYmxlX2luaXQodm9pZCkKIAlCVUlMRF9CVUdfT05fTVNHKChQQVRCX1NJWkVfU0hJ RlQgPiAzNiksICJQYXJ0aXRpb24gdGFibGUgc2l6ZSB0b28gbGFyZ2UuIik7CiAJLyogSW5pdGlh bGl6ZSB0aGUgUGFydGl0aW9uIFRhYmxlIHdpdGggbm8gZW50cmllcyAqLwogCXBhcnRpdGlvbl90 YiA9IG1lbWJsb2NrX2FsbG9jKHBhdGJfc2l6ZSwgcGF0Yl9zaXplKTsKKwlpZiAoIXBhcnRpdGlv bl90YikKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4 JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgcGF0Yl9zaXplLCBwYXRiX3NpemUpOwogCiAJLyoK IAkgKiB1cGRhdGUgcGFydGl0aW9uIHRhYmxlIGNvbnRyb2wgcmVnaXN0ZXIsCmRpZmYgLS1naXQg YS9hcmNoL3Bvd2VycGMvbW0vcGd0YWJsZS1yYWRpeC5jIGIvYXJjaC9wb3dlcnBjL21tL3BndGFi bGUtcmFkaXguYwppbmRleCAyOWJjZWE1Li42ZmMwNWZkIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2Vy cGMvbW0vcGd0YWJsZS1yYWRpeC5jCisrKyBiL2FyY2gvcG93ZXJwYy9tbS9wZ3RhYmxlLXJhZGl4 LmMKQEAgLTUzLDEzICs1MywyMCBAQCBzdGF0aWMgX19yZWYgdm9pZCAqZWFybHlfYWxsb2NfcGd0 YWJsZSh1bnNpZ25lZCBsb25nIHNpemUsIGludCBuaWQsCiB7CiAJcGh5c19hZGRyX3QgbWluX2Fk ZHIgPSBNRU1CTE9DS19MT1dfTElNSVQ7CiAJcGh5c19hZGRyX3QgbWF4X2FkZHIgPSBNRU1CTE9D S19BTExPQ19BTllXSEVSRTsKKwl2b2lkICpwdHI7CiAKIAlpZiAocmVnaW9uX3N0YXJ0KQogCQlt aW5fYWRkciA9IHJlZ2lvbl9zdGFydDsKIAlpZiAocmVnaW9uX2VuZCkKIAkJbWF4X2FkZHIgPSBy ZWdpb25fZW5kOwogCi0JcmV0dXJuIG1lbWJsb2NrX2FsbG9jX3RyeV9uaWQoc2l6ZSwgc2l6ZSwg bWluX2FkZHIsIG1heF9hZGRyLCBuaWQpOworCXB0ciA9IG1lbWJsb2NrX2FsbG9jX3RyeV9uaWQo c2l6ZSwgc2l6ZSwgbWluX2FkZHIsIG1heF9hZGRyLCBuaWQpOworCisJaWYgKCFwdHIpCisJCXBh bmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseCBuaWQ9JWQg ZnJvbT0lcGEgbWF4X2FkZHI9JXBhXG4iLAorCQkgICAgICBfX2Z1bmNfXywgc2l6ZSwgc2l6ZSwg bmlkLCAmbWluX2FkZHIsICZtYXhfYWRkcik7CisKKwlyZXR1cm4gcHRyOwogfQogCiBzdGF0aWMg aW50IGVhcmx5X21hcF9rZXJuZWxfcGFnZSh1bnNpZ25lZCBsb25nIGVhLCB1bnNpZ25lZCBsb25n IHBhLApkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL21tL3BwY19tbXVfMzIuYyBiL2FyY2gvcG93 ZXJwYy9tbS9wcGNfbW11XzMyLmMKaW5kZXggMzZhNjY0Zi4uYTg1YjJmNCAxMDA2NDQKLS0tIGEv YXJjaC9wb3dlcnBjL21tL3BwY19tbXVfMzIuYworKysgYi9hcmNoL3Bvd2VycGMvbW0vcHBjX21t dV8zMi5jCkBAIC0yMTIsNiArMjEyLDkgQEAgdm9pZCBfX2luaXQgTU1VX2luaXRfaHcodm9pZCkK IAkgKi8KIAlpZiAoIHBwY19tZC5wcm9ncmVzcyApIHBwY19tZC5wcm9ncmVzcygiaGFzaDpmaW5k IHBpZWNlIiwgMHgzMjIpOwogCUhhc2ggPSBtZW1ibG9ja19hbGxvYyhIYXNoX3NpemUsIEhhc2hf c2l6ZSk7CisJaWYgKCFIYXNoKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUg Ynl0ZXMgYWxpZ249MHglbHhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBIYXNoX3NpemUsIEhhc2hf c2l6ZSk7CiAJX1NEUjEgPSBfX3BhKEhhc2gpIHwgU0RSMV9MT1dfQklUUzsKIAogCUhhc2hfZW5k ID0gKHN0cnVjdCBoYXNoX3B0ZSAqKSAoKHVuc2lnbmVkIGxvbmcpSGFzaCArIEhhc2hfc2l6ZSk7 CmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9pb21tdS5jIGIvYXJj aC9wb3dlcnBjL3BsYXRmb3Jtcy9wYXNlbWkvaW9tbXUuYwppbmRleCBmNjI5MzBmLi5hYjc1ZTcw IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bhc2VtaS9pb21tdS5jCisrKyBi L2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcGFzZW1pL2lvbW11LmMKQEAgLTIxMSw2ICsyMTEsOSBA QCBzdGF0aWMgaW50IF9faW5pdCBpb2JfaW5pdChzdHJ1Y3QgZGV2aWNlX25vZGUgKmRuKQogCWlv Yl9sMl9iYXNlID0gbWVtYmxvY2tfYWxsb2NfdHJ5X25pZF9yYXcoMVVMIDw8IDIxLCAxVUwgPDwg MjEsCiAJCQkJCU1FTUJMT0NLX0xPV19MSU1JVCwgMHg4MDAwMDAwMCwKIAkJCQkJTlVNQV9OT19O T0RFKTsKKwlpZiAoIWlvYl9sMl9iYXNlKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0 ZSAlbHUgYnl0ZXMgYWxpZ249MHglbHggbWF4X2FkZHI9JXhcbiIsCisJCSAgICAgIF9fZnVuY19f LCAxVUwgPDwgMjEsIDFVTCA8PCAyMSwgMHg4MDAwMDAwMCk7CiAKIAlwcl9pbmZvKCJJT0JNQVAg TDIgYWxsb2NhdGVkIGF0OiAlcFxuIiwgaW9iX2wyX2Jhc2UpOwogCmRpZmYgLS1naXQgYS9hcmNo L3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybWFjL252cmFtLmMgYi9hcmNoL3Bvd2VycGMvcGxhdGZv cm1zL3Bvd2VybWFjL252cmFtLmMKaW5kZXggYWU1NGQ3Zi4uZTBhMWQxNSAxMDA2NDQKLS0tIGEv YXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm1hYy9udnJhbS5jCisrKyBiL2FyY2gvcG93ZXJw Yy9wbGF0Zm9ybXMvcG93ZXJtYWMvbnZyYW0uYwpAQCAtNTE0LDYgKzUxNCw5IEBAIHN0YXRpYyBp bnQgX19pbml0IGNvcmU5OV9udnJhbV9zZXR1cChzdHJ1Y3QgZGV2aWNlX25vZGUgKmRwLCB1bnNp Z25lZCBsb25nIGFkZHIpCiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAludnJhbV9pbWFnZSA9IG1l bWJsb2NrX2FsbG9jKE5WUkFNX1NJWkUsIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYgKCFudnJhbV9p bWFnZSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXNcbiIsIF9fZnVu Y19fLAorCQkgICAgICBOVlJBTV9TSVpFKTsKIAludnJhbV9kYXRhID0gaW9yZW1hcChhZGRyLCBO VlJBTV9TSVpFKjIpOwogCW52cmFtX25hZGRycyA9IDE7IC8qIE1ha2Ugc3VyZSB3ZSBnZXQgdGhl IGNvcnJlY3QgY2FzZSAqLwogCmRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bv d2VybnYvb3BhbC5jIGIvYXJjaC9wb3dlcnBjL3BsYXRmb3Jtcy9wb3dlcm52L29wYWwuYwppbmRl eCA4ZTE1N2Y5Li4zOGZiNjc4IDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bv d2VybnYvb3BhbC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9vcGFsLmMK QEAgLTE3Miw2ICsxNzIsOSBAQCBpbnQgX19pbml0IGVhcmx5X2luaXRfZHRfc2Nhbl9yZWNvdmVy YWJsZV9yYW5nZXModW5zaWduZWQgbG9uZyBub2RlLAogCSAqIEFsbG9jYXRlIGEgYnVmZmVyIHRv IGhvbGQgdGhlIE1DIHJlY292ZXJhYmxlIHJhbmdlcy4KIAkgKi8KIAltY19yZWNvdmVyYWJsZV9y YW5nZSA9IG1lbWJsb2NrX2FsbG9jKHNpemUsIF9fYWxpZ25vZl9fKHU2NCkpOworCWlmICghbWNf cmVjb3ZlcmFibGVfcmFuZ2UpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICV1IGJ5 dGVzIGFsaWduPTB4JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgc2l6ZSwgX19hbGlnbm9mX18o dTY0KSk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgbWNfcmVjb3ZlcmFibGVfcmFuZ2VfbGVuOyBpKysp IHsKIAkJbWNfcmVjb3ZlcmFibGVfcmFuZ2VbaV0uc3RhcnRfYWRkciA9CmRpZmYgLS1naXQgYS9h cmNoL3Bvd2VycGMvcGxhdGZvcm1zL3Bvd2VybnYvcGNpLWlvZGEuYyBiL2FyY2gvcG93ZXJwYy9w bGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jCmluZGV4IDFkNjQwNmEuLjQ4MTdmMTUgMTAwNjQ0 Ci0tLSBhL2FyY2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jCisrKyBiL2Fy Y2gvcG93ZXJwYy9wbGF0Zm9ybXMvcG93ZXJudi9wY2ktaW9kYS5jCkBAIC0zNzI3LDYgKzM3Mjcs OSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcG52X3BjaV9pbml0X2lvZGFfcGhiKHN0cnVjdCBkZXZp Y2Vfbm9kZSAqbnAsCiAJcHJfZGVidWcoIiAgUEhCLUlEICA6IDB4JTAxNmxseFxuIiwgcGhiX2lk KTsKIAogCXBoYiA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqcGhiKSwgU01QX0NBQ0hFX0JZVEVT KTsKKwlpZiAoIXBoYikKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVz XG4iLCBfX2Z1bmNfXywKKwkJICAgICAgc2l6ZW9mKCpwaGIpKTsKIAogCS8qIEFsbG9jYXRlIFBD SSBjb250cm9sbGVyICovCiAJcGhiLT5ob3NlID0gaG9zZSA9IHBjaWJpb3NfYWxsb2NfY29udHJv bGxlcihucCk7CkBAIC0zNzczLDYgKzM3NzYsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQgcG52X3Bj aV9pbml0X2lvZGFfcGhiKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsCiAJCXBoYi0+ZGlhZ19kYXRh X3NpemUgPSBQTlZfUENJX0RJQUdfQlVGX1NJWkU7CiAKIAlwaGItPmRpYWdfZGF0YSA9IG1lbWJs b2NrX2FsbG9jKHBoYi0+ZGlhZ19kYXRhX3NpemUsIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYgKCFw aGItPmRpYWdfZGF0YSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXUgYnl0ZXNc biIsIF9fZnVuY19fLAorCQkgICAgICBwaGItPmRpYWdfZGF0YV9zaXplKTsKIAogCS8qIFBhcnNl IDMyLWJpdCBhbmQgSU8gcmFuZ2VzIChpZiBhbnkpICovCiAJcGNpX3Byb2Nlc3NfYnJpZGdlX09G X3Jhbmdlcyhob3NlLCBucCwgIWhvc2UtPmdsb2JhbF9udW1iZXIpOwpAQCAtMzgzMiw2ICszODM4 LDggQEAgc3RhdGljIHZvaWQgX19pbml0IHBudl9wY2lfaW5pdF9pb2RhX3BoYihzdHJ1Y3QgZGV2 aWNlX25vZGUgKm5wLAogCXBlbWFwX29mZiA9IHNpemU7CiAJc2l6ZSArPSBwaGItPmlvZGEudG90 YWxfcGVfbnVtICogc2l6ZW9mKHN0cnVjdCBwbnZfaW9kYV9wZSk7CiAJYXV4ID0gbWVtYmxvY2tf YWxsb2Moc2l6ZSwgU01QX0NBQ0hFX0JZVEVTKTsKKwlpZiAoIWF1eCkKKwkJcGFuaWMoIiVzOiBG YWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzXG4iLCBfX2Z1bmNfXywgc2l6ZSk7CiAJcGhiLT5p b2RhLnBlX2FsbG9jID0gYXV4OwogCXBoYi0+aW9kYS5tNjRfc2VnbWFwID0gYXV4ICsgbTY0bWFw X29mZjsKIAlwaGItPmlvZGEubTMyX3NlZ21hcCA9IGF1eCArIG0zMm1hcF9vZmY7CmRpZmYgLS1n aXQgYS9hcmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzMy9zZXR1cC5jIGIvYXJjaC9wb3dlcnBjL3Bs YXRmb3Jtcy9wczMvc2V0dXAuYwppbmRleCA2NThiZmFiLi40Y2U1NDU4IDEwMDY0NAotLS0gYS9h cmNoL3Bvd2VycGMvcGxhdGZvcm1zL3BzMy9zZXR1cC5jCisrKyBiL2FyY2gvcG93ZXJwYy9wbGF0 Zm9ybXMvcHMzL3NldHVwLmMKQEAgLTEyNyw2ICsxMjcsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQg cHJlYWxsb2Moc3RydWN0IHBzM19wcmVhbGxvYyAqcCkKIAkJcmV0dXJuOwogCiAJcC0+YWRkcmVz cyA9IG1lbWJsb2NrX2FsbG9jKHAtPnNpemUsIHAtPmFsaWduKTsKKwlpZiAoIXAtPmFkZHJlc3Mp CisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxu IiwKKwkJICAgICAgX19mdW5jX18sIHAtPnNpemUsIHAtPmFsaWduKTsKIAogCXByaW50ayhLRVJO X0lORk8gIiVzOiAlbHUgYnl0ZXMgYXQgJXBcbiIsIHAtPm5hbWUsIHAtPnNpemUsCiAJICAgICAg IHAtPmFkZHJlc3MpOwpkaWZmIC0tZ2l0IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9tc2lfYml0bWFw LmMgYi9hcmNoL3Bvd2VycGMvc3lzZGV2L21zaV9iaXRtYXAuYwppbmRleCBkNDU0NTBmLi41MWE2 NzlhIDEwMDY0NAotLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L21zaV9iaXRtYXAuYworKysgYi9h cmNoL3Bvd2VycGMvc3lzZGV2L21zaV9iaXRtYXAuYwpAQCAtMTI5LDYgKzEyOSw5IEBAIGludCBf X3JlZiBtc2lfYml0bWFwX2FsbG9jKHN0cnVjdCBtc2lfYml0bWFwICpibXAsIHVuc2lnbmVkIGlu dCBpcnFfY291bnQsCiAJCWJtcC0+Yml0bWFwID0ga3phbGxvYyhzaXplLCBHRlBfS0VSTkVMKTsK IAllbHNlIHsKIAkJYm1wLT5iaXRtYXAgPSBtZW1ibG9ja19hbGxvYyhzaXplLCBTTVBfQ0FDSEVf QllURVMpOworCQlpZiAoIWJtcC0+Yml0bWFwKQorCQkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxs b2NhdGUgJXUgYnl0ZXNcbiIsIF9fZnVuY19fLAorCQkJICAgICAgc2l6ZSk7CiAJCS8qIHRoZSBi aXRtYXAgd29uJ3QgYmUgZnJlZWQgZnJvbSBtZW1ibG9jayBhbGxvY2F0b3IgKi8KIAkJa21lbWxl YWtfbm90X2xlYWsoYm1wLT5iaXRtYXApOwogCX0KZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJu ZWwvc2V0dXAuYyBiL2FyY2gvczM5MC9rZXJuZWwvc2V0dXAuYwppbmRleCBkYTQ4Mzk3Li5lMDkx NWM0IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC9zMzkw L2tlcm5lbC9zZXR1cC5jCkBAIC0zNzgsNiArMzc4LDEwIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBz ZXR1cF9sb3djb3JlKHZvaWQpCiAJICovCiAJQlVJTERfQlVHX09OKHNpemVvZihzdHJ1Y3QgbG93 Y29yZSkgIT0gTENfUEFHRVMgKiBQQUdFX1NJWkUpOwogCWxjID0gbWVtYmxvY2tfYWxsb2NfbG93 KHNpemVvZigqbGMpLCBzaXplb2YoKmxjKSk7CisJaWYgKCFsYykKKwkJcGFuaWMoIiVzOiBGYWls ZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGFsaWduPSV6eFxuIiwKKwkJICAgICAgX19mdW5jX18s IHNpemVvZigqbGMpLCBzaXplb2YoKmxjKSk7CisKIAlsYy0+cmVzdGFydF9wc3cubWFzayA9IFBT V19LRVJORUxfQklUUzsKIAlsYy0+cmVzdGFydF9wc3cuYWRkciA9ICh1bnNpZ25lZCBsb25nKSBy ZXN0YXJ0X2ludF9oYW5kbGVyOwogCWxjLT5leHRlcm5hbF9uZXdfcHN3Lm1hc2sgPSBQU1dfS0VS TkVMX0JJVFMgfApAQCAtNDIyLDYgKzQyNiw5IEBAIHN0YXRpYyB2b2lkIF9faW5pdCBzZXR1cF9s b3djb3JlKHZvaWQpCiAJICogYWxsIENQVXMgaW4gY2FzdCAqb25lKiBvZiB0aGVtIGRvZXMgYSBQ U1cgcmVzdGFydC4KIAkgKi8KIAlyZXN0YXJ0X3N0YWNrID0gbWVtYmxvY2tfYWxsb2MoVEhSRUFE X1NJWkUsIFRIUkVBRF9TSVpFKTsKKwlpZiAoIXJlc3RhcnRfc3RhY2spCisJCXBhbmljKCIlczog RmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJICAgICAgX19m dW5jX18sIFRIUkVBRF9TSVpFLCBUSFJFQURfU0laRSk7CiAJcmVzdGFydF9zdGFjayArPSBTVEFD S19JTklUX09GRlNFVDsKIAogCS8qCkBAIC00ODgsNiArNDk1LDkgQEAgc3RhdGljIHZvaWQgX19p bml0IHNldHVwX3Jlc291cmNlcyh2b2lkKQogCiAJZm9yX2VhY2hfbWVtYmxvY2sobWVtb3J5LCBy ZWcpIHsKIAkJcmVzID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKCpyZXMpLCA4KTsKKwkJaWYgKCFy ZXMpCisJCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249MHgl eFxuIiwKKwkJCSAgICAgIF9fZnVuY19fLCBzaXplb2YoKnJlcyksIDgpOwogCQlyZXMtPmZsYWdz ID0gSU9SRVNPVVJDRV9CVVNZIHwgSU9SRVNPVVJDRV9TWVNURU1fUkFNOwogCiAJCXJlcy0+bmFt ZSA9ICJTeXN0ZW0gUkFNIjsKQEAgLTUwMiw2ICs1MTIsOSBAQCBzdGF0aWMgdm9pZCBfX2luaXQg c2V0dXBfcmVzb3VyY2VzKHZvaWQpCiAJCQkJY29udGludWU7CiAJCQlpZiAoc3RkX3Jlcy0+ZW5k ID4gcmVzLT5lbmQpIHsKIAkJCQlzdWJfcmVzID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKCpzdWJf cmVzKSwgOCk7CisJCQkJaWYgKCFzdWJfcmVzKQorCQkJCQlwYW5pYygiJXM6IEZhaWxlZCB0byBh bGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249MHgleFxuIiwKKwkJCQkJICAgICAgX19mdW5jX18sIHNp emVvZigqc3ViX3JlcyksIDgpOwogCQkJCSpzdWJfcmVzID0gKnN0ZF9yZXM7CiAJCQkJc3ViX3Jl cy0+ZW5kID0gcmVzLT5lbmQ7CiAJCQkJc3RkX3Jlcy0+c3RhcnQgPSByZXMtPmVuZCArIDE7CmRp ZmYgLS1naXQgYS9hcmNoL3MzOTAva2VybmVsL3NtcC5jIGIvYXJjaC9zMzkwL2tlcm5lbC9zbXAu YwppbmRleCA5MDYxNTk3Li4xN2M2MjZlMiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC9z bXAuYworKysgYi9hcmNoL3MzOTAva2VybmVsL3NtcC5jCkBAIC02NTMsNyArNjUzLDcgQEAgdm9p ZCBfX2luaXQgc21wX3NhdmVfZHVtcF9jcHVzKHZvaWQpCiAJLyogQWxsb2NhdGUgYSBwYWdlIGFz IGR1bXBpbmcgYXJlYSBmb3IgdGhlIHN0b3JlIHN0YXR1cyBzaWdwcyAqLwogCXBhZ2UgPSBtZW1i bG9ja19waHlzX2FsbG9jX3JhbmdlKFBBR0VfU0laRSwgUEFHRV9TSVpFLCAwLCAxVUwgPDwgMzEp OwogCWlmICghcGFnZSkKLQkJcGFuaWMoIkVSUk9SOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXggYnl0 ZXMgYmVsb3cgJWx4XG4iLAorCQlwYW5pYygiRVJST1I6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHgg Ynl0ZXMgYmVsb3cgJWx4XG4iLAogCQkgICAgICBQQUdFX1NJWkUsIDFVTCA8PCAzMSk7CiAKIAkv KiBTZXQgbXVsdGktdGhyZWFkaW5nIHN0YXRlIHRvIHRoZSBwcmV2aW91cyBzeXN0ZW0uICovCkBA IC03NjUsNiArNzY1LDkgQEAgdm9pZCBfX2luaXQgc21wX2RldGVjdF9jcHVzKHZvaWQpCiAKIAkv KiBHZXQgQ1BVIGluZm9ybWF0aW9uICovCiAJaW5mbyA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigq aW5mbyksIDgpOworCWlmICghaW5mbykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUg JXp1IGJ5dGVzIGFsaWduPTB4JXhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBzaXplb2YoKmluZm8p LCA4KTsKIAlzbXBfZ2V0X2NvcmVfaW5mbyhpbmZvLCAxKTsKIAkvKiBGaW5kIGJvb3QgQ1BVIHR5 cGUgKi8KIAlpZiAoc2NscC5oYXNfY29yZV90eXBlKSB7CmRpZmYgLS1naXQgYS9hcmNoL3MzOTAv a2VybmVsL3RvcG9sb2d5LmMgYi9hcmNoL3MzOTAva2VybmVsL3RvcG9sb2d5LmMKaW5kZXggODk5 MmIwNC4uODk2NGEzZiAxMDA2NDQKLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCisr KyBiL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYwpAQCAtNTIwLDYgKzUyMCw5IEBAIHN0YXRp YyB2b2lkIF9faW5pdCBhbGxvY19tYXNrcyhzdHJ1Y3Qgc3lzaW5mb18xNV8xX3ggKmluZm8sCiAJ bnJfbWFza3MgPSBtYXgobnJfbWFza3MsIDEpOwogCWZvciAoaSA9IDA7IGkgPCBucl9tYXNrczsg aSsrKSB7CiAJCW1hc2stPm5leHQgPSBtZW1ibG9ja19hbGxvYyhzaXplb2YoKm1hc2stPm5leHQp LCA4KTsKKwkJaWYgKCFtYXNrLT5uZXh0KQorCQkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2Nh dGUgJXp1IGJ5dGVzIGFsaWduPTB4JXhcbiIsCisJCQkgICAgICBfX2Z1bmNfXywgc2l6ZW9mKCpt YXNrLT5uZXh0KSwgOCk7CiAJCW1hc2sgPSBtYXNrLT5uZXh0OwogCX0KIH0KQEAgLTUzOCw2ICs1 NDEsOSBAQCB2b2lkIF9faW5pdCB0b3BvbG9neV9pbml0X2Vhcmx5KHZvaWQpCiAJaWYgKCFNQUNI SU5FX0hBU19UT1BPTE9HWSkKIAkJZ290byBvdXQ7CiAJdGxfaW5mbyA9IG1lbWJsb2NrX2FsbG9j KFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAoIXRsX2luZm8pCisJCXBhbmljKCIlczogRmFp bGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJICAgICAgX19mdW5j X18sIFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKIAlpbmZvID0gdGxfaW5mbzsKIAlzdG9yZV90b3Bv bG9neShpbmZvKTsKIAlwcl9pbmZvKCJUaGUgQ1BVIGNvbmZpZ3VyYXRpb24gdG9wb2xvZ3kgb2Yg dGhlIG1hY2hpbmUgaXM6ICVkICVkICVkICVkICVkICVkIC8gJWRcbiIsCmRpZmYgLS1naXQgYS9h cmNoL3MzOTAvbnVtYS9tb2RlX2VtdS5jIGIvYXJjaC9zMzkwL251bWEvbW9kZV9lbXUuYwppbmRl eCBiZmJhMjczLi43MWExMmE0IDEwMDY0NAotLS0gYS9hcmNoL3MzOTAvbnVtYS9tb2RlX2VtdS5j CisrKyBiL2FyY2gvczM5MC9udW1hL21vZGVfZW11LmMKQEAgLTMxMyw2ICszMTMsOSBAQCBzdGF0 aWMgdm9pZCBfX3JlZiBjcmVhdGVfY29yZV90b19ub2RlX21hcCh2b2lkKQogCWludCBpOwogCiAJ ZW11X2NvcmVzID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKCplbXVfY29yZXMpLCA4KTsKKwlpZiAo IWVtdV9jb3JlcykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGFs aWduPTB4JXhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBzaXplb2YoKmVtdV9jb3JlcyksIDgpOwog CWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGVtdV9jb3Jlcy0+dG9fbm9kZV9pZCk7IGkrKykK IAkJZW11X2NvcmVzLT50b19ub2RlX2lkW2ldID0gTk9ERV9JRF9GUkVFOwogfQpkaWZmIC0tZ2l0 IGEvYXJjaC9zMzkwL251bWEvbnVtYS5jIGIvYXJjaC9zMzkwL251bWEvbnVtYS5jCmluZGV4IDJk MTI3MWUuLjhlYjllOTcgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9udW1hL251bWEuYworKysgYi9h cmNoL3MzOTAvbnVtYS9udW1hLmMKQEAgLTkyLDggKzkyLDEyIEBAIHN0YXRpYyB2b2lkIF9faW5p dCBudW1hX3NldHVwX21lbW9yeSh2b2lkKQogCX0gd2hpbGUgKGN1cl9iYXNlIDwgZW5kX29mX2Ry YW0pOwogCiAJLyogQWxsb2NhdGUgYW5kIGZpbGwgb3V0IG5vZGVfZGF0YSAqLwotCWZvciAobmlk ID0gMDsgbmlkIDwgTUFYX05VTU5PREVTOyBuaWQrKykKKwlmb3IgKG5pZCA9IDA7IG5pZCA8IE1B WF9OVU1OT0RFUzsgbmlkKyspIHsKIAkJTk9ERV9EQVRBKG5pZCkgPSBtZW1ibG9ja19hbGxvYyhz aXplb2YocGdfZGF0YV90KSwgOCk7CisJCWlmICghTk9ERV9EQVRBKG5pZCkpCisJCQlwYW5pYygi JXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXMgYWxpZ249MHgleFxuIiwKKwkJCSAgICAg IF9fZnVuY19fLCBzaXplb2YocGdfZGF0YV90KSwgOCk7CisJfQogCiAJZm9yX2VhY2hfb25saW5l X25vZGUobmlkKSB7CiAJCXVuc2lnbmVkIGxvbmcgc3RhcnRfcGZuLCBlbmRfcGZuOwpkaWZmIC0t Z2l0IGEvYXJjaC9zMzkwL251bWEvdG9wdHJlZS5jIGIvYXJjaC9zMzkwL251bWEvdG9wdHJlZS5j CmluZGV4IDcxYTYwOGMuLjAxMThjNzcgMTAwNjQ0Ci0tLSBhL2FyY2gvczM5MC9udW1hL3RvcHRy ZWUuYworKysgYi9hcmNoL3MzOTAvbnVtYS90b3B0cmVlLmMKQEAgLTMxLDEwICszMSwxNCBAQCBz dHJ1Y3QgdG9wdHJlZSBfX3JlZiAqdG9wdHJlZV9hbGxvYyhpbnQgbGV2ZWwsIGludCBpZCkKIHsK IAlzdHJ1Y3QgdG9wdHJlZSAqcmVzOwogCi0JaWYgKHNsYWJfaXNfYXZhaWxhYmxlKCkpCisJaWYg KHNsYWJfaXNfYXZhaWxhYmxlKCkpIHsKIAkJcmVzID0ga3phbGxvYyhzaXplb2YoKnJlcyksIEdG UF9LRVJORUwpOwotCWVsc2UKKwl9IGVsc2UgewogCQlyZXMgPSBtZW1ibG9ja19hbGxvYyhzaXpl b2YoKnJlcyksIDgpOworCQlpZiAoIXJlcykKKwkJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9j YXRlICV6dSBieXRlcyBhbGlnbj0weCV4XG4iLAorCQkJICAgICAgX19mdW5jX18sIHNpemVvZigq cmVzKSwgOCk7CisJfQogCWlmICghcmVzKQogCQlyZXR1cm4gcmVzOwogCmRpZmYgLS1naXQgYS9h cmNoL3NoL21tL2luaXQuYyBiL2FyY2gvc2gvbW0vaW5pdC5jCmluZGV4IGEwZmE0ZGUuLmZjZWVm ZDkgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvbW0vaW5pdC5jCisrKyBiL2FyY2gvc2gvbW0vaW5pdC5j CkBAIC0xMjgsNiArMTI4LDkgQEAgc3RhdGljIHBtZF90ICogX19pbml0IG9uZV9tZF90YWJsZV9p bml0KHB1ZF90ICpwdWQpCiAJCXBtZF90ICpwbWQ7CiAKIAkJcG1kID0gbWVtYmxvY2tfYWxsb2Mo UEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCQlpZiAoIXBtZCkKKwkJCXBhbmljKCIlczogRmFpbGVk IHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJCSAgICAgIF9fZnVuY19f LCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CiAJCXB1ZF9wb3B1bGF0ZSgmaW5pdF9tbSwgcHVkLCBw bWQpOwogCQlCVUdfT04ocG1kICE9IHBtZF9vZmZzZXQocHVkLCAwKSk7CiAJfQpAQCAtMTQxLDYg KzE0NCw5IEBAIHN0YXRpYyBwdGVfdCAqIF9faW5pdCBvbmVfcGFnZV90YWJsZV9pbml0KHBtZF90 ICpwbWQpCiAJCXB0ZV90ICpwdGU7CiAKIAkJcHRlID0gbWVtYmxvY2tfYWxsb2MoUEFHRV9TSVpF LCBQQUdFX1NJWkUpOworCQlpZiAoIXB0ZSkKKwkJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9j YXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJCSAgICAgIF9fZnVuY19fLCBQQUdFX1NJ WkUsIFBBR0VfU0laRSk7CiAJCXBtZF9wb3B1bGF0ZV9rZXJuZWwoJmluaXRfbW0sIHBtZCwgcHRl KTsKIAkJQlVHX09OKHB0ZSAhPSBwdGVfb2Zmc2V0X2tlcm5lbChwbWQsIDApKTsKIAl9CmRpZmYg LS1naXQgYS9hcmNoL3NoL21tL251bWEuYyBiL2FyY2gvc2gvbW0vbnVtYS5jCmluZGV4IGM0YmRl NjEuLmY3ZTQ0MzkgMTAwNjQ0Ci0tLSBhL2FyY2gvc2gvbW0vbnVtYS5jCisrKyBiL2FyY2gvc2gv bW0vbnVtYS5jCkBAIC00Myw2ICs0MywxMCBAQCB2b2lkIF9faW5pdCBzZXR1cF9ib290bWVtX25v ZGUoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQpCiAJLyog Tm9kZS1sb2NhbCBwZ2RhdCAqLwogCU5PREVfREFUQShuaWQpID0gbWVtYmxvY2tfYWxsb2Nfbm9k ZShzaXplb2Yoc3RydWN0IHBnbGlzdF9kYXRhKSwKIAkJCQkJICAgICBTTVBfQ0FDSEVfQllURVMs IG5pZCk7CisJaWYgKCFOT0RFX0RBVEEobmlkKSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxs b2NhdGUgJXp1IGJ5dGVzIGFsaWduPTB4JXggbmlkPSVkXG4iLAorCQkgICAgICBfX2Z1bmNfXywg c2l6ZW9mKHN0cnVjdCBwZ2xpc3RfZGF0YSksIFNNUF9DQUNIRV9CWVRFUywKKwkJICAgICAgbmlk KTsKIAogCU5PREVfREFUQShuaWQpLT5ub2RlX3N0YXJ0X3BmbiA9IHN0YXJ0X3BmbjsKIAlOT0RF X0RBVEEobmlkKS0+bm9kZV9zcGFubmVkX3BhZ2VzID0gZW5kX3BmbiAtIHN0YXJ0X3BmbjsKZGlm ZiAtLWdpdCBhL2FyY2gvdW0vZHJpdmVycy9uZXRfa2Vybi5jIGIvYXJjaC91bS9kcml2ZXJzL25l dF9rZXJuLmMKaW5kZXggZDgwY2ZiMS4uNmU1YmU1ZiAxMDA2NDQKLS0tIGEvYXJjaC91bS9kcml2 ZXJzL25ldF9rZXJuLmMKKysrIGIvYXJjaC91bS9kcml2ZXJzL25ldF9rZXJuLmMKQEAgLTY0OSw2 ICs2NDksOSBAQCBzdGF0aWMgaW50IF9faW5pdCBldGhfc2V0dXAoY2hhciAqc3RyKQogCX0KIAog CW5ldyA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqbmV3KSwgU01QX0NBQ0hFX0JZVEVTKTsKKwlp ZiAoIW5ldykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBf X2Z1bmNfXywKKwkJICAgICAgc2l6ZW9mKCpuZXcpKTsKIAogCUlOSVRfTElTVF9IRUFEKCZuZXct Pmxpc3QpOwogCW5ldy0+aW5kZXggPSBuOwpkaWZmIC0tZ2l0IGEvYXJjaC91bS9kcml2ZXJzL3Zl Y3Rvcl9rZXJuLmMgYi9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYwppbmRleCAwNDZmYTll Li41OTZlNzA1IDEwMDY0NAotLS0gYS9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYworKysg Yi9hcmNoL3VtL2RyaXZlcnMvdmVjdG9yX2tlcm4uYwpAQCAtMTU3Niw2ICsxNTc2LDkgQEAgc3Rh dGljIGludCBfX2luaXQgdmVjdG9yX3NldHVwKGNoYXIgKnN0cikKIAkJcmV0dXJuIDE7CiAJfQog CW5ldyA9IG1lbWJsb2NrX2FsbG9jKHNpemVvZigqbmV3KSwgU01QX0NBQ0hFX0JZVEVTKTsKKwlp ZiAoIW5ldykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBf X2Z1bmNfXywKKwkJICAgICAgc2l6ZW9mKCpuZXcpKTsKIAlJTklUX0xJU1RfSEVBRCgmbmV3LT5s aXN0KTsKIAluZXctPnVuaXQgPSBuOwogCW5ldy0+YXJndW1lbnRzID0gc3RyOwpkaWZmIC0tZ2l0 IGEvYXJjaC91bS9rZXJuZWwvaW5pdHJkLmMgYi9hcmNoL3VtL2tlcm5lbC9pbml0cmQuYwppbmRl eCBjZTE2OWVhLi4xZGNkMzEwIDEwMDY0NAotLS0gYS9hcmNoL3VtL2tlcm5lbC9pbml0cmQuYwor KysgYi9hcmNoL3VtL2tlcm5lbC9pbml0cmQuYwpAQCAtMzcsNiArMzcsOCBAQCBpbnQgX19pbml0 IHJlYWRfaW5pdHJkKHZvaWQpCiAJfQogCiAJYXJlYSA9IG1lbWJsb2NrX2FsbG9jKHNpemUsIFNN UF9DQUNIRV9CWVRFUyk7CisJaWYgKCFhcmVhKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxv Y2F0ZSAlbGx1IGJ5dGVzXG4iLCBfX2Z1bmNfXywgc2l6ZSk7CiAKIAlpZiAobG9hZF9pbml0cmQo aW5pdHJkLCBhcmVhLCBzaXplKSA9PSAtMSkKIAkJcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9hcmNo L3VtL2tlcm5lbC9tZW0uYyBiL2FyY2gvdW0va2VybmVsL21lbS5jCmluZGV4IDc5OWI1NzEuLjk5 YWExMWIgMTAwNjQ0Ci0tLSBhL2FyY2gvdW0va2VybmVsL21lbS5jCisrKyBiL2FyY2gvdW0va2Vy bmVsL21lbS5jCkBAIC02Niw2ICs2NiwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb25lX3BhZ2Vf dGFibGVfaW5pdChwbWRfdCAqcG1kKQogCWlmIChwbWRfbm9uZSgqcG1kKSkgewogCQlwdGVfdCAq cHRlID0gKHB0ZV90ICopIG1lbWJsb2NrX2FsbG9jX2xvdyhQQUdFX1NJWkUsCiAJCQkJCQkJICBQ QUdFX1NJWkUpOworCQlpZiAoIXB0ZSkKKwkJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRl ICVsdSBieXRlcyBhbGlnbj0lbHhcbiIsCisJCQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQ QUdFX1NJWkUpOworCiAJCXNldF9wbWQocG1kLCBfX3BtZChfS0VSTlBHX1RBQkxFICsKIAkJCQkJ ICAgKHVuc2lnbmVkIGxvbmcpIF9fcGEocHRlKSkpOwogCQlpZiAocHRlICE9IHB0ZV9vZmZzZXRf a2VybmVsKHBtZCwgMCkpCkBAIC03Nyw2ICs4MSwxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQgb25l X21kX3RhYmxlX2luaXQocHVkX3QgKnB1ZCkKIHsKICNpZmRlZiBDT05GSUdfM19MRVZFTF9QR1RB QkxFUwogCXBtZF90ICpwbWRfdGFibGUgPSAocG1kX3QgKikgbWVtYmxvY2tfYWxsb2NfbG93KFBB R0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAoIXBtZF90YWJsZSkKKwkJcGFuaWMoIiVzOiBGYWls ZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPSVseFxuIiwKKwkJICAgICAgX19mdW5jX18s IFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwogCXNldF9wdWQocHVkLCBfX3B1ZChfS0VSTlBHX1RB QkxFICsgKHVuc2lnbmVkIGxvbmcpIF9fcGEocG1kX3RhYmxlKSkpOwogCWlmIChwbWRfdGFibGUg IT0gcG1kX29mZnNldChwdWQsIDApKQogCQlCVUcoKTsKQEAgLTEyNiw2ICsxMzQsMTAgQEAgc3Rh dGljIHZvaWQgX19pbml0IGZpeGFkZHJfdXNlcl9pbml0KCB2b2lkKQogCiAJZml4cmFuZ2VfaW5p dCggRklYQUREUl9VU0VSX1NUQVJULCBGSVhBRERSX1VTRVJfRU5ELCBzd2FwcGVyX3BnX2Rpcik7 CiAJdiA9ICh1bnNpZ25lZCBsb25nKSBtZW1ibG9ja19hbGxvY19sb3coc2l6ZSwgUEFHRV9TSVpF KTsKKwlpZiAoIXYpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBh bGlnbj0lbHhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBzaXplLCBQQUdFX1NJWkUpOworCiAJbWVt Y3B5KCh2b2lkICopIHYgLCAodm9pZCAqKSBGSVhBRERSX1VTRVJfU1RBUlQsIHNpemUpOwogCXAg PSBfX3BhKHYpOwogCWZvciAoIDsgc2l6ZSA+IDA7IHNpemUgLT0gUEFHRV9TSVpFLCB2YWRkciAr PSBQQUdFX1NJWkUsCkBAIC0xNDYsNiArMTU4LDEwIEBAIHZvaWQgX19pbml0IHBhZ2luZ19pbml0 KHZvaWQpCiAKIAllbXB0eV96ZXJvX3BhZ2UgPSAodW5zaWduZWQgbG9uZyAqKSBtZW1ibG9ja19h bGxvY19sb3coUEFHRV9TSVpFLAogCQkJCQkJCSAgICAgICBQQUdFX1NJWkUpOworCWlmICghZW1w dHlfemVyb19wYWdlKQorCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMg YWxpZ249JWx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwor CiAJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoem9uZXNfc2l6ZSk7IGkrKykKIAkJem9uZXNf c2l6ZVtpXSA9IDA7CiAKZGlmZiAtLWdpdCBhL2FyY2gvdW5pY29yZTMyL2tlcm5lbC9zZXR1cC5j IGIvYXJjaC91bmljb3JlMzIva2VybmVsL3NldHVwLmMKaW5kZXggNGIwY2I2OC4uZDMyMzljZiAx MDA2NDQKLS0tIGEvYXJjaC91bmljb3JlMzIva2VybmVsL3NldHVwLmMKKysrIGIvYXJjaC91bmlj b3JlMzIva2VybmVsL3NldHVwLmMKQEAgLTIwNyw2ICsyMDcsMTAgQEAgcmVxdWVzdF9zdGFuZGFy ZF9yZXNvdXJjZXMoc3RydWN0IG1lbWluZm8gKm1pKQogCQkJY29udGludWU7CiAKIAkJcmVzID0g bWVtYmxvY2tfYWxsb2NfbG93KHNpemVvZigqcmVzKSwgU01QX0NBQ0hFX0JZVEVTKTsKKwkJaWYg KCFyZXMpCisJCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXMgYWxpZ249 JXhcbiIsCisJCQkgICAgICBfX2Z1bmNfXywgc2l6ZW9mKCpyZXMpLCBTTVBfQ0FDSEVfQllURVMp OworCiAJCXJlcy0+bmFtZSAgPSAiU3lzdGVtIFJBTSI7CiAJCXJlcy0+c3RhcnQgPSBtaS0+YmFu a1tpXS5zdGFydDsKIAkJcmVzLT5lbmQgICA9IG1pLT5iYW5rW2ldLnN0YXJ0ICsgbWktPmJhbmtb aV0uc2l6ZSAtIDE7CmRpZmYgLS1naXQgYS9hcmNoL3VuaWNvcmUzMi9tbS9tbXUuYyBiL2FyY2gv dW5pY29yZTMyL21tL21tdS5jCmluZGV4IGE0MDIxOTIuLmFhMjA2MGIgMTAwNjQ0Ci0tLSBhL2Fy Y2gvdW5pY29yZTMyL21tL21tdS5jCisrKyBiL2FyY2gvdW5pY29yZTMyL21tL21tdS5jCkBAIC0x NDUsOCArMTQ1LDEzIEBAIHN0YXRpYyBwdGVfdCAqIF9faW5pdCBlYXJseV9wdGVfYWxsb2MocG1k X3QgKnBtZCwgdW5zaWduZWQgbG9uZyBhZGRyLAogCQl1bnNpZ25lZCBsb25nIHByb3QpCiB7CiAJ aWYgKHBtZF9ub25lKCpwbWQpKSB7Ci0JCXB0ZV90ICpwdGUgPSBtZW1ibG9ja19hbGxvYyhQVFJT X1BFUl9QVEUgKiBzaXplb2YocHRlX3QpLAotCQkJCQkgICAgUFRSU19QRVJfUFRFICogc2l6ZW9m KHB0ZV90KSk7CisJCXNpemVfdCBzaXplID0gUFRSU19QRVJfUFRFICogc2l6ZW9mKHB0ZV90KTsK KwkJcHRlX3QgKnB0ZSA9IG1lbWJsb2NrX2FsbG9jKHNpemUsIHNpemUpOworCisJCWlmICghcHRl KQorCQkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzIGFsaWduPSV6eFxu IiwKKwkJCSAgICAgIF9fZnVuY19fLCBzaXplLCBzaXplKTsKKwogCQlfX3BtZF9wb3B1bGF0ZShw bWQsIF9fcGEocHRlKSB8IHByb3QpOwogCX0KIAlCVUdfT04ocG1kX2JhZCgqcG1kKSk7CkBAIC0z NDksNiArMzU0LDkgQEAgc3RhdGljIHZvaWQgX19pbml0IGRldmljZW1hcHNfaW5pdCh2b2lkKQog CSAqIEFsbG9jYXRlIHRoZSB2ZWN0b3IgcGFnZSBlYXJseS4KIAkgKi8KIAl2ZWN0b3JzID0gbWVt YmxvY2tfYWxsb2MoUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCWlmICghdmVjdG9ycykKKwkJcGFu aWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAorCQkg ICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCiAJZm9yIChhZGRyID0gVk1B TExPQ19FTkQ7IGFkZHI7IGFkZHIgKz0gUEdESVJfU0laRSkKIAkJcG1kX2NsZWFyKHBtZF9vZmZf ayhhZGRyKSk7CkBAIC00MjYsNiArNDM0LDkgQEAgdm9pZCBfX2luaXQgcGFnaW5nX2luaXQodm9p ZCkKIAogCS8qIGFsbG9jYXRlIHRoZSB6ZXJvIHBhZ2UuICovCiAJemVyb19wYWdlID0gbWVtYmxv Y2tfYWxsb2MoUEFHRV9TSVpFLCBQQUdFX1NJWkUpOworCWlmICghemVyb19wYWdlKQorCQlwYW5p YygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249MHglbHhcbiIsCisJCSAg ICAgIF9fZnVuY19fLCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CiAKIAlib290bWVtX2luaXQoKTsK IApkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVsL2FjcGkvYm9vdC5jIGIvYXJjaC94ODYva2Vy bmVsL2FjcGkvYm9vdC5jCmluZGV4IDI2MjRkZTEuLjhkY2JmNjggMTAwNjQ0Ci0tLSBhL2FyY2gv eDg2L2tlcm5lbC9hY3BpL2Jvb3QuYworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYWNwaS9ib290LmMK QEAgLTkzNSw2ICs5MzUsOSBAQCBzdGF0aWMgaW50IF9faW5pdCBhY3BpX3BhcnNlX2hwZXQoc3Ry dWN0IGFjcGlfdGFibGVfaGVhZGVyICp0YWJsZSkKICNkZWZpbmUgSFBFVF9SRVNPVVJDRV9OQU1F X1NJWkUgOQogCWhwZXRfcmVzID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKCpocGV0X3JlcykgKyBI UEVUX1JFU09VUkNFX05BTUVfU0laRSwKIAkJCQkgIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYgKCFo cGV0X3JlcykKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBf X2Z1bmNfXywKKwkJICAgICAgc2l6ZW9mKCpocGV0X3JlcykgKyBIUEVUX1JFU09VUkNFX05BTUVf U0laRSk7CiAKIAlocGV0X3Jlcy0+bmFtZSA9ICh2b2lkICopJmhwZXRfcmVzWzFdOwogCWhwZXRf cmVzLT5mbGFncyA9IElPUkVTT1VSQ0VfTUVNOwpkaWZmIC0tZ2l0IGEvYXJjaC94ODYva2VybmVs L2FwaWMvaW9fYXBpYy5jIGIvYXJjaC94ODYva2VybmVsL2FwaWMvaW9fYXBpYy5jCmluZGV4IDI5 NTNiYmYuLjM5N2JmYzggMTAwNjQ0Ci0tLSBhL2FyY2gveDg2L2tlcm5lbC9hcGljL2lvX2FwaWMu YworKysgYi9hcmNoL3g4Ni9rZXJuZWwvYXBpYy9pb19hcGljLmMKQEAgLTI1NzksNiArMjU3OSw4 IEBAIHN0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgKiBfX2luaXQgaW9hcGljX3NldHVwX3Jlc291cmNl cyh2b2lkKQogCW4gKj0gbnJfaW9hcGljczsKIAogCW1lbSA9IG1lbWJsb2NrX2FsbG9jKG4sIFNN UF9DQUNIRV9CWVRFUyk7CisJaWYgKCFtZW0pCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9j YXRlICVsdSBieXRlc1xuIiwgX19mdW5jX18sIG4pOwogCXJlcyA9ICh2b2lkICopbWVtOwogCiAJ bWVtICs9IHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpICogbnJfaW9hcGljczsKQEAgLTI2MjMsNiAr MjYyNSw5IEBAIHZvaWQgX19pbml0IGlvX2FwaWNfaW5pdF9tYXBwaW5ncyh2b2lkKQogI2VuZGlm CiAJCQlpb2FwaWNfcGh5cyA9ICh1bnNpZ25lZCBsb25nKW1lbWJsb2NrX2FsbG9jKFBBR0VfU0la RSwKIAkJCQkJCQkJICAgIFBBR0VfU0laRSk7CisJCQlpZiAoIWlvYXBpY19waHlzKQorCQkJCXBh bmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJ CQkgICAgICBfX2Z1bmNfXywgUEFHRV9TSVpFLCBQQUdFX1NJWkUpOwogCQkJaW9hcGljX3BoeXMg PSBfX3BhKGlvYXBpY19waHlzKTsKIAkJfQogCQlzZXRfZml4bWFwX25vY2FjaGUoaWR4LCBpb2Fw aWNfcGh5cyk7CmRpZmYgLS1naXQgYS9hcmNoL3g4Ni9rZXJuZWwvZTgyMC5jIGIvYXJjaC94ODYv a2VybmVsL2U4MjAuYwppbmRleCA5YzBlYjU0Li4xZjE4ZWMwIDEwMDY0NAotLS0gYS9hcmNoL3g4 Ni9rZXJuZWwvZTgyMC5jCisrKyBiL2FyY2gveDg2L2tlcm5lbC9lODIwLmMKQEAgLTEwOTUsNiAr MTA5NSw5IEBAIHZvaWQgX19pbml0IGU4MjBfX3Jlc2VydmVfcmVzb3VyY2VzKHZvaWQpCiAKIAly ZXMgPSBtZW1ibG9ja19hbGxvYyhzaXplb2YoKnJlcykgKiBlODIwX3RhYmxlLT5ucl9lbnRyaWVz LAogCQkJICAgICBTTVBfQ0FDSEVfQllURVMpOworCWlmICghcmVzKQorCQlwYW5pYygiJXM6IEZh aWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXNcbiIsIF9fZnVuY19fLAorCQkgICAgICBzaXplb2Yo KnJlcykgKiBlODIwX3RhYmxlLT5ucl9lbnRyaWVzKTsKIAllODIwX3JlcyA9IHJlczsKIAogCWZv ciAoaSA9IDA7IGkgPCBlODIwX3RhYmxlLT5ucl9lbnRyaWVzOyBpKyspIHsKZGlmZiAtLWdpdCBh L2FyY2gveDg2L3BsYXRmb3JtL29scGMvb2xwY19kdC5jIGIvYXJjaC94ODYvcGxhdGZvcm0vb2xw Yy9vbHBjX2R0LmMKaW5kZXggYjRhYjc3OS4uZGFkM2I2MCAxMDA2NDQKLS0tIGEvYXJjaC94ODYv cGxhdGZvcm0vb2xwYy9vbHBjX2R0LmMKKysrIGIvYXJjaC94ODYvcGxhdGZvcm0vb2xwYy9vbHBj X2R0LmMKQEAgLTE0MSw2ICsxNDEsOSBAQCB2b2lkICogX19pbml0IHByb21fZWFybHlfYWxsb2Mo dW5zaWduZWQgbG9uZyBzaXplKQogCQkgKiB3YXN0ZWQgYm9vdG1lbSkgYW5kIGhhbmQgb2ZmIGNo dW5rcyBvZiBpdCB0byBjYWxsZXJzLgogCQkgKi8KIAkJcmVzID0gbWVtYmxvY2tfYWxsb2MoY2h1 bmtfc2l6ZSwgU01QX0NBQ0hFX0JZVEVTKTsKKwkJaWYgKCFyZXMpCisJCQlwYW5pYygiJXM6IEZh aWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXNcbiIsIF9fZnVuY19fLAorCQkJICAgICAgY2h1bmtf c2l6ZSk7CiAJCUJVR19PTighcmVzKTsKIAkJcHJvbV9lYXJseV9hbGxvY2F0ZWQgKz0gY2h1bmtf c2l6ZTsKIAkJbWVtc2V0KHJlcywgMCwgY2h1bmtfc2l6ZSk7CmRpZmYgLS1naXQgYS9hcmNoL3g4 Ni94ZW4vcDJtLmMgYi9hcmNoL3g4Ni94ZW4vcDJtLmMKaW5kZXggMDU1ZTM3ZS4uOTVjZTliNSAx MDA2NDQKLS0tIGEvYXJjaC94ODYveGVuL3AybS5jCisrKyBiL2FyY2gveDg2L3hlbi9wMm0uYwpA QCAtMTgxLDggKzE4MSwxNSBAQCBzdGF0aWMgdm9pZCBwMm1faW5pdF9pZGVudGl0eSh1bnNpZ25l ZCBsb25nICpwMm0sIHVuc2lnbmVkIGxvbmcgcGZuKQogCiBzdGF0aWMgdm9pZCAqIF9fcmVmIGFs bG9jX3AybV9wYWdlKHZvaWQpCiB7Ci0JaWYgKHVubGlrZWx5KCFzbGFiX2lzX2F2YWlsYWJsZSgp KSkKLQkJcmV0dXJuIG1lbWJsb2NrX2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKwlpZiAo dW5saWtlbHkoIXNsYWJfaXNfYXZhaWxhYmxlKCkpKSB7CisJCXZvaWQgKnB0ciA9IG1lbWJsb2Nr X2FsbG9jKFBBR0VfU0laRSwgUEFHRV9TSVpFKTsKKworCQlpZiAoIXB0cikKKwkJCXBhbmljKCIl czogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0weCVseFxuIiwKKwkJCSAgICAg IF9fZnVuY19fLCBQQUdFX1NJWkUsIFBBR0VfU0laRSk7CisKKwkJcmV0dXJuIHB0cjsKKwl9CiAK IAlyZXR1cm4gKHZvaWQgKilfX2dldF9mcmVlX3BhZ2UoR0ZQX0tFUk5FTCk7CiB9CmRpZmYgLS1n aXQgYS9hcmNoL3h0ZW5zYS9tbS9rYXNhbl9pbml0LmMgYi9hcmNoL3h0ZW5zYS9tbS9rYXNhbl9p bml0LmMKaW5kZXggNDg1Mjg0OC4uYWY3MTUyNSAxMDA2NDQKLS0tIGEvYXJjaC94dGVuc2EvbW0v a2FzYW5faW5pdC5jCisrKyBiL2FyY2gveHRlbnNhL21tL2thc2FuX2luaXQuYwpAQCAtNDUsNiAr NDUsMTAgQEAgc3RhdGljIHZvaWQgX19pbml0IHBvcHVsYXRlKHZvaWQgKnN0YXJ0LCB2b2lkICpl bmQpCiAJcG1kX3QgKnBtZCA9IHBtZF9vZmZzZXQocGdkLCB2YWRkcik7CiAJcHRlX3QgKnB0ZSA9 IG1lbWJsb2NrX2FsbG9jKG5fcGFnZXMgKiBzaXplb2YocHRlX3QpLCBQQUdFX1NJWkUpOwogCisJ aWYgKCFwdGUpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGln bj0weCVseFxuIiwKKwkJICAgICAgX19mdW5jX18sIG5fcGFnZXMgKiBzaXplb2YocHRlX3QpLCBQ QUdFX1NJWkUpOworCiAJcHJfZGVidWcoIiVzOiAlcCAtICVwXG4iLCBfX2Z1bmNfXywgc3RhcnQs IGVuZCk7CiAKIAlmb3IgKGkgPSBqID0gMDsgaSA8IG5fcG1kczsgKytpKSB7CmRpZmYgLS1naXQg YS9hcmNoL3h0ZW5zYS9tbS9tbXUuYyBiL2FyY2gveHRlbnNhL21tL21tdS5jCmluZGV4IGE0ZGNm ZDMuLjAzNjc4YzQgMTAwNjQ0Ci0tLSBhL2FyY2gveHRlbnNhL21tL21tdS5jCisrKyBiL2FyY2gv eHRlbnNhL21tL21tdS5jCkBAIC0zMiw2ICszMiw5IEBAIHN0YXRpYyB2b2lkICogX19pbml0IGlu aXRfcG1kKHVuc2lnbmVkIGxvbmcgdmFkZHIsIHVuc2lnbmVkIGxvbmcgbl9wYWdlcykKIAkJIF9f ZnVuY19fLCB2YWRkciwgbl9wYWdlcyk7CiAKIAlwdGUgPSBtZW1ibG9ja19hbGxvY19sb3cobl9w YWdlcyAqIHNpemVvZihwdGVfdCksIFBBR0VfU0laRSk7CisJaWYgKCFwdGUpCisJCXBhbmljKCIl czogRmFpbGVkIHRvIGFsbG9jYXRlICVsdSBieXRlcyBhbGlnbj0lbHhcbiIsCisJCSAgICAgIF9f ZnVuY19fLCBuX3BhZ2VzICogc2l6ZW9mKHB0ZV90KSwgUEFHRV9TSVpFKTsKIAogCWZvciAoaSA9 IDA7IGkgPCBuX3BhZ2VzOyArK2kpCiAJCXB0ZV9jbGVhcihOVUxMLCAwLCBwdGUgKyBpKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvY2xrL3RpL2Nsay5jIGIvZHJpdmVycy9jbGsvdGkvY2xrLmMKaW5k ZXggZDBjZDU4NS4uNWQ3ZmIyZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGkvY2xrLmMKKysr IGIvZHJpdmVycy9jbGsvdGkvY2xrLmMKQEAgLTM1MSw2ICszNTEsOSBAQCB2b2lkIF9faW5pdCBv bWFwMl9jbGtfbGVnYWN5X3Byb3ZpZGVyX2luaXQoaW50IGluZGV4LCB2b2lkIF9faW9tZW0gKm1l bSkKIAlzdHJ1Y3QgY2xrX2lvbWFwICppbzsKIAogCWlvID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9m KCppbyksIFNNUF9DQUNIRV9CWVRFUyk7CisJaWYgKCFpbykKKwkJcGFuaWMoIiVzOiBGYWlsZWQg dG8gYWxsb2NhdGUgJXp1IGJ5dGVzXG4iLCBfX2Z1bmNfXywKKwkJICAgICAgc2l6ZW9mKCppbykp OwogCiAJaW8tPm1lbSA9IG1lbTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9tYWNpbnRvc2gvc211 LmMgYi9kcml2ZXJzL21hY2ludG9zaC9zbXUuYwppbmRleCA0MmNmNjhkLi42YTg0NDEyIDEwMDY0 NAotLS0gYS9kcml2ZXJzL21hY2ludG9zaC9zbXUuYworKysgYi9kcml2ZXJzL21hY2ludG9zaC9z bXUuYwpAQCAtNDkzLDYgKzQ5Myw5IEBAIGludCBfX2luaXQgc211X2luaXQgKHZvaWQpCiAJfQog CiAJc211ID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKHN0cnVjdCBzbXVfZGV2aWNlKSwgU01QX0NB Q0hFX0JZVEVTKTsKKwlpZiAoIXNtdSkKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUg JXp1IGJ5dGVzXG4iLCBfX2Z1bmNfXywKKwkJICAgICAgc2l6ZW9mKHN0cnVjdCBzbXVfZGV2aWNl KSk7CiAKIAlzcGluX2xvY2tfaW5pdCgmc211LT5sb2NrKTsKIAlJTklUX0xJU1RfSEVBRCgmc211 LT5jbWRfbGlzdCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL29mL2ZkdC5jIGIvZHJpdmVycy9vZi9m ZHQuYwppbmRleCA3MDk5YzY1Li43OTY0NjBjIDEwMDY0NAotLS0gYS9kcml2ZXJzL29mL2ZkdC5j CisrKyBiL2RyaXZlcnMvb2YvZmR0LmMKQEAgLTExODUsNyArMTE4NSwxMyBAQCBpbnQgX19pbml0 IF9fd2VhayBlYXJseV9pbml0X2R0X3Jlc2VydmVfbWVtb3J5X2FyY2gocGh5c19hZGRyX3QgYmFz ZSwKIAogc3RhdGljIHZvaWQgKiBfX2luaXQgZWFybHlfaW5pdF9kdF9hbGxvY19tZW1vcnlfYXJj aCh1NjQgc2l6ZSwgdTY0IGFsaWduKQogewotCXJldHVybiBtZW1ibG9ja19hbGxvYyhzaXplLCBh bGlnbik7CisJdm9pZCAqcHRyID0gbWVtYmxvY2tfYWxsb2Moc2l6ZSwgYWxpZ24pOworCisJaWYg KCFwdHIpCisJCXBhbmljKCIlczogRmFpbGVkIHRvIGFsbG9jYXRlICVsbHUgYnl0ZXMgYWxpZ249 MHglbGx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgc2l6ZSwgYWxpZ24pOworCisJcmV0dXJuIHB0 cjsKIH0KIAogYm9vbCBfX2luaXQgZWFybHlfaW5pdF9kdF92ZXJpZnkodm9pZCAqcGFyYW1zKQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9vZi91bml0dGVzdC5jIGIvZHJpdmVycy9vZi91bml0dGVzdC5j CmluZGV4IDg0NDI3MzguLjEwZjY1OTkgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvb2YvdW5pdHRlc3Qu YworKysgYi9kcml2ZXJzL29mL3VuaXR0ZXN0LmMKQEAgLTIyMzQsNyArMjIzNCwxMyBAQCBzdGF0 aWMgc3RydWN0IGRldmljZV9ub2RlICpvdmVybGF5X2Jhc2Vfcm9vdDsKIAogc3RhdGljIHZvaWQg KiBfX2luaXQgZHRfYWxsb2NfbWVtb3J5KHU2NCBzaXplLCB1NjQgYWxpZ24pCiB7Ci0JcmV0dXJu IG1lbWJsb2NrX2FsbG9jKHNpemUsIGFsaWduKTsKKwl2b2lkICpwdHIgPSBtZW1ibG9ja19hbGxv YyhzaXplLCBhbGlnbik7CisKKwlpZiAoIXB0cikKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxs b2NhdGUgJWxsdSBieXRlcyBhbGlnbj0weCVsbHhcbiIsCisJCSAgICAgIF9fZnVuY19fLCBzaXpl LCBhbGlnbik7CisKKwlyZXR1cm4gcHRyOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvZHJpdmVycy94 ZW4vc3dpb3RsYi14ZW4uYyBiL2RyaXZlcnMveGVuL3N3aW90bGIteGVuLmMKaW5kZXggOTg5Y2Y4 Ny4uZDNlNDlmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy94ZW4vc3dpb3RsYi14ZW4uYworKysgYi9k cml2ZXJzL3hlbi9zd2lvdGxiLXhlbi5jCkBAIC0yMTQsMTAgKzIxNCwxMyBAQCBpbnQgX19yZWYg eGVuX3N3aW90bGJfaW5pdChpbnQgdmVyYm9zZSwgYm9vbCBlYXJseSkKIAkvKgogCSAqIEdldCBJ TyBUTEIgbWVtb3J5IGZyb20gYW55IGxvY2F0aW9uLgogCSAqLwotCWlmIChlYXJseSkKKwlpZiAo ZWFybHkpIHsKIAkJeGVuX2lvX3RsYl9zdGFydCA9IG1lbWJsb2NrX2FsbG9jKFBBR0VfQUxJR04o Ynl0ZXMpLAogCQkJCQkJICBQQUdFX1NJWkUpOwotCWVsc2UgeworCQlpZiAoIXhlbl9pb190bGJf c3RhcnQpCisJCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMgYWxpZ249 MHglbHhcbiIsCisJCQkgICAgICBfX2Z1bmNfXywgUEFHRV9BTElHTihieXRlcyksIFBBR0VfU0la RSk7CisJfSBlbHNlIHsKICNkZWZpbmUgU0xBQlNfUEVSX1BBR0UgKDEgPDwgKFBBR0VfU0hJRlQg LSBJT19UTEJfU0hJRlQpKQogI2RlZmluZSBJT19UTEJfTUlOX1NMQUJTICgoMTw8MjApID4+IElP X1RMQl9TSElGVCkKIAkJd2hpbGUgKChTTEFCU19QRVJfUEFHRSA8PCBvcmRlcikgPiBJT19UTEJf TUlOX1NMQUJTKSB7CmRpZmYgLS1naXQgYS9rZXJuZWwvcG93ZXIvc25hcHNob3QuYyBiL2tlcm5l bC9wb3dlci9zbmFwc2hvdC5jCmluZGV4IDQ4MDJiMDMuLmYwOGExZTQgMTAwNjQ0Ci0tLSBhL2tl cm5lbC9wb3dlci9zbmFwc2hvdC5jCisrKyBiL2tlcm5lbC9wb3dlci9zbmFwc2hvdC5jCkBAIC05 NjUsNiArOTY1LDkgQEAgdm9pZCBfX2luaXQgX19yZWdpc3Rlcl9ub3NhdmVfcmVnaW9uKHVuc2ln bmVkIGxvbmcgc3RhcnRfcGZuLAogCQkvKiBUaGlzIGFsbG9jYXRpb24gY2Fubm90IGZhaWwgKi8K IAkJcmVnaW9uID0gbWVtYmxvY2tfYWxsb2Moc2l6ZW9mKHN0cnVjdCBub3NhdmVfcmVnaW9uKSwK IAkJCQkJU01QX0NBQ0hFX0JZVEVTKTsKKwkJaWYgKCFyZWdpb24pCisJCQlwYW5pYygiJXM6IEZh aWxlZCB0byBhbGxvY2F0ZSAlenUgYnl0ZXNcbiIsIF9fZnVuY19fLAorCQkJICAgICAgc2l6ZW9m KHN0cnVjdCBub3NhdmVfcmVnaW9uKSk7CiAJfQogCXJlZ2lvbi0+c3RhcnRfcGZuID0gc3RhcnRf cGZuOwogCXJlZ2lvbi0+ZW5kX3BmbiA9IGVuZF9wZm47CmRpZmYgLS1naXQgYS9saWIvY3B1bWFz ay5jIGIvbGliL2NwdW1hc2suYwppbmRleCAwODdhM2U5Li4wY2I2NzJlIDEwMDY0NAotLS0gYS9s aWIvY3B1bWFzay5jCisrKyBiL2xpYi9jcHVtYXNrLmMKQEAgLTE2NSw2ICsxNjUsOSBAQCBFWFBP UlRfU1lNQk9MKHphbGxvY19jcHVtYXNrX3Zhcik7CiB2b2lkIF9faW5pdCBhbGxvY19ib290bWVt X2NwdW1hc2tfdmFyKGNwdW1hc2tfdmFyX3QgKm1hc2spCiB7CiAJKm1hc2sgPSBtZW1ibG9ja19h bGxvYyhjcHVtYXNrX3NpemUoKSwgU01QX0NBQ0hFX0JZVEVTKTsKKwlpZiAoISptYXNrKQorCQlw YW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAldSBieXRlc1xuIiwgX19mdW5jX18sCisJCSAg ICAgIGNwdW1hc2tfc2l6ZSgpKTsKIH0KIAogLyoqCmRpZmYgLS1naXQgYS9tbS9rYXNhbi9pbml0 LmMgYi9tbS9rYXNhbi9pbml0LmMKaW5kZXggNDVhMWI1ZS4uYWY5MDdkOCAxMDA2NDQKLS0tIGEv bW0va2FzYW4vaW5pdC5jCisrKyBiL21tL2thc2FuL2luaXQuYwpAQCAtODMsOCArODMsMTQgQEAg c3RhdGljIGlubGluZSBib29sIGthc2FuX2Vhcmx5X3NoYWRvd19wYWdlX2VudHJ5KHB0ZV90IHB0 ZSkKIAogc3RhdGljIF9faW5pdCB2b2lkICplYXJseV9hbGxvYyhzaXplX3Qgc2l6ZSwgaW50IG5v ZGUpCiB7Ci0JcmV0dXJuIG1lbWJsb2NrX2FsbG9jX3RyeV9uaWQoc2l6ZSwgc2l6ZSwgX19wYShN QVhfRE1BX0FERFJFU1MpLAotCQkJCQlNRU1CTE9DS19BTExPQ19BQ0NFU1NJQkxFLCBub2RlKTsK Kwl2b2lkICpwdHIgPSBtZW1ibG9ja19hbGxvY190cnlfbmlkKHNpemUsIHNpemUsIF9fcGEoTUFY X0RNQV9BRERSRVNTKSwKKwkJCQkJICAgTUVNQkxPQ0tfQUxMT0NfQUNDRVNTSUJMRSwgbm9kZSk7 CisKKwlpZiAoIXB0cikKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJXp1IGJ5dGVz IGFsaWduPSV6eCBuaWQ9JWQgZnJvbT0lbGx4XG4iLAorCQkgICAgICBfX2Z1bmNfXywgc2l6ZSwg c2l6ZSwgbm9kZSwgKHU2NClfX3BhKE1BWF9ETUFfQUREUkVTUykpOworCisJcmV0dXJuIHB0cjsK IH0KIAogc3RhdGljIHZvaWQgX19yZWYgemVyb19wdGVfcG9wdWxhdGUocG1kX3QgKnBtZCwgdW5z aWduZWQgbG9uZyBhZGRyLApkaWZmIC0tZ2l0IGEvbW0vc3BhcnNlLmMgYi9tbS9zcGFyc2UuYwpp bmRleCA3ZWE1ZGM2Li5hZDk0MjQyIDEwMDY0NAotLS0gYS9tbS9zcGFyc2UuYworKysgYi9tbS9z cGFyc2UuYwpAQCAtNjUsMTEgKzY1LDE1IEBAIHN0YXRpYyBub2lubGluZSBzdHJ1Y3QgbWVtX3Nl Y3Rpb24gX19yZWYgKnNwYXJzZV9pbmRleF9hbGxvYyhpbnQgbmlkKQogCXVuc2lnbmVkIGxvbmcg YXJyYXlfc2l6ZSA9IFNFQ1RJT05TX1BFUl9ST09UICoKIAkJCQkgICBzaXplb2Yoc3RydWN0IG1l bV9zZWN0aW9uKTsKIAotCWlmIChzbGFiX2lzX2F2YWlsYWJsZSgpKQorCWlmIChzbGFiX2lzX2F2 YWlsYWJsZSgpKSB7CiAJCXNlY3Rpb24gPSBremFsbG9jX25vZGUoYXJyYXlfc2l6ZSwgR0ZQX0tF Uk5FTCwgbmlkKTsKLQllbHNlCisJfSBlbHNlIHsKIAkJc2VjdGlvbiA9IG1lbWJsb2NrX2FsbG9j X25vZGUoYXJyYXlfc2l6ZSwgU01QX0NBQ0hFX0JZVEVTLAogCQkJCQkgICAgICBuaWQpOworCQlp ZiAoIXNlY3Rpb24pCisJCQlwYW5pYygiJXM6IEZhaWxlZCB0byBhbGxvY2F0ZSAlbHUgYnl0ZXMg bmlkPSVkXG4iLAorCQkJICAgICAgX19mdW5jX18sIGFycmF5X3NpemUsIG5pZCk7CisJfQogCiAJ cmV0dXJuIHNlY3Rpb247CiB9CkBAIC0yMTgsNiArMjIyLDkgQEAgdm9pZCBfX2luaXQgbWVtb3J5 X3ByZXNlbnQoaW50IG5pZCwgdW5zaWduZWQgbG9uZyBzdGFydCwgdW5zaWduZWQgbG9uZyBlbmQp CiAJCXNpemUgPSBzaXplb2Yoc3RydWN0IG1lbV9zZWN0aW9uKikgKiBOUl9TRUNUSU9OX1JPT1RT OwogCQlhbGlnbiA9IDEgPDwgKElOVEVSTk9ERV9DQUNIRV9TSElGVCk7CiAJCW1lbV9zZWN0aW9u ID0gbWVtYmxvY2tfYWxsb2Moc2l6ZSwgYWxpZ24pOworCQlpZiAoIW1lbV9zZWN0aW9uKQorCQkJ cGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4XG4iLAor CQkJICAgICAgX19mdW5jX18sIHNpemUsIGFsaWduKTsKIAl9CiAjZW5kaWYKIApAQCAtNDExLDYg KzQxOCwxMCBAQCBzdHJ1Y3QgcGFnZSBfX2luaXQgKnNwYXJzZV9tZW1fbWFwX3BvcHVsYXRlKHVu c2lnbmVkIGxvbmcgcG51bSwgaW50IG5pZCwKIAltYXAgPSBtZW1ibG9ja19hbGxvY190cnlfbmlk KHNpemUsCiAJCQkJCSAgUEFHRV9TSVpFLCBfX3BhKE1BWF9ETUFfQUREUkVTUyksCiAJCQkJCSAg TUVNQkxPQ0tfQUxMT0NfQUNDRVNTSUJMRSwgbmlkKTsKKwlpZiAoIW1hcCkKKwkJcGFuaWMoIiVz OiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVzIGFsaWduPTB4JWx4IG5pZD0lZCBmcm9tPSVs eFxuIiwKKwkJICAgICAgX19mdW5jX18sIHNpemUsIFBBR0VfU0laRSwgbmlkLCBfX3BhKE1BWF9E TUFfQUREUkVTUykpOworCiAJcmV0dXJuIG1hcDsKIH0KICNlbmRpZiAvKiAhQ09ORklHX1NQQVJT RU1FTV9WTUVNTUFQICovCkBAIC00MjUsNiArNDM2LDEwIEBAIHN0YXRpYyB2b2lkIF9faW5pdCBz cGFyc2VfYnVmZmVyX2luaXQodW5zaWduZWQgbG9uZyBzaXplLCBpbnQgbmlkKQogCQltZW1ibG9j a19hbGxvY190cnlfbmlkX3JhdyhzaXplLCBQQUdFX1NJWkUsCiAJCQkJCQlfX3BhKE1BWF9ETUFf QUREUkVTUyksCiAJCQkJCQlNRU1CTE9DS19BTExPQ19BQ0NFU1NJQkxFLCBuaWQpOworCWlmICgh c3BhcnNlbWFwX2J1ZikKKwkJcGFuaWMoIiVzOiBGYWlsZWQgdG8gYWxsb2NhdGUgJWx1IGJ5dGVz IGFsaWduPTB4JWx4IG5pZD0lZCBmcm9tPSVseFxuIiwKKwkJICAgICAgX19mdW5jX18sIHNpemUs IFBBR0VfU0laRSwgbmlkLCBfX3BhKE1BWF9ETUFfQUREUkVTUykpOworCiAJc3BhcnNlbWFwX2J1 Zl9lbmQgPSBzcGFyc2VtYXBfYnVmICsgc2l6ZTsKIH0KIAotLSAKMi43LjQKCgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBs aXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2pl Y3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs