From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5B23C43331 for ; Sun, 10 Nov 2019 05:47:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 7D2A2215EA for ; Sun, 10 Nov 2019 05:47:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725836AbfKJFrO (ORCPT ); Sun, 10 Nov 2019 00:47:14 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:36748 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725805AbfKJFrO (ORCPT ); Sun, 10 Nov 2019 00:47:14 -0500 Received: from localhost (unknown [IPv6:2601:601:9f00:1e2::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id E99FE153B04A7 for ; Sat, 9 Nov 2019 21:47:11 -0800 (PST) Date: Sat, 09 Nov 2019 21:47:09 -0800 (PST) Message-Id: <20191109.214709.2055803887587817489.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Sat_Nov__9_21_47_09_2019_112)--" Content-Transfer-Encoding: 7bit X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Sat, 09 Nov 2019 21:47:12 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Sat_Nov__9_21_47_09_2019_112)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.19 and v5.3 stable, respectively. Thank you! ----Next_Part(Sat_Nov__9_21_47_09_2019_112)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_419.mbox" RnJvbSAwYTJhMTAwNzkwMmM1YTdlYmYwZDQ0YzIwNDVhY2MwOTczNmJiNTdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXkgVm9zYnVyZ2ggPGpheS52b3NidXJnaEBjYW5vbmljYWwu Y29tPgpEYXRlOiBGcmksIDEgTm92IDIwMTkgMjE6NTY6NDIgLTA3MDAKU3ViamVjdDogW1BBVENI IDAxLzE1XSBib25kaW5nOiBmaXggc3RhdGUgdHJhbnNpdGlvbiBpc3N1ZSBpbiBsaW5rIG1vbml0 b3JpbmcKClsgVXBzdHJlYW0gY29tbWl0IDE4OTliYjMyNTE0OWU0ODFkZTMxYTRmMzJiNTllYTZm MjRlMTc2ZWEgXQoKU2luY2UgZGU3N2VjZDRlZjAyICgiYm9uZGluZzogaW1wcm92ZSBsaW5rLXN0 YXR1cyB1cGRhdGUgaW4KbWlpLW1vbml0b3JpbmciKSwgdGhlIGJvbmRpbmcgZHJpdmVyIGhhcyB1 dGlsaXplZCB0d28gc2VwYXJhdGUgdmFyaWFibGVzCnRvIGluZGljYXRlIHRoZSBuZXh0IGxpbmsg c3RhdGUgYSBwYXJ0aWN1bGFyIHNsYXZlIHNob3VsZCB0cmFuc2l0aW9uIHRvLgpFYWNoIGlzIHVz ZWQgdG8gY29tbXVuaWNhdGUgdG8gYSBkaWZmZXJlbnQgcG9ydGlvbiBvZiB0aGUgbGluayBzdGF0 ZQpjaGFuZ2UgY29tbWl0IGxvZ2ljOyBvbmUgdG8gdGhlIGJvbmRfbWlpbW9uX2NvbW1pdCBmdW5j dGlvbiBpdHNlbGYsIGFuZAphbm90aGVyIHRvIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGxvZ2ljLgoK CVVuZm9ydHVuYXRlbHksIHRoZSB0d28gdmFyaWFibGVzIGNhbiBiZWNvbWUgdW5zeW5jaHJvbml6 ZWQsCnJlc3VsdGluZyBpbiBpbmNvcnJlY3QgbGluayBzdGF0ZSB0cmFuc2l0aW9ucyB3aXRoaW4g Ym9uZGluZy4gIFRoaXMgY2FuCmNhdXNlIHNsYXZlcyB0byBiZWNvbWUgc3R1Y2sgaW4gYW4gaW5j b3JyZWN0IGxpbmsgc3RhdGUgdW50aWwgYQpzdWJzZXF1ZW50IGNhcnJpZXIgc3RhdGUgdHJhbnNp dGlvbi4KCglUaGUgaXNzdWUgb2NjdXJzIHdoZW4gYSBzcGVjaWFsIGNhc2UgaW4gYm9uZF9zbGF2 ZV9uZXRkZXZfZXZlbnQKc2V0cyBzbGF2ZS0+bGluayBkaXJlY3RseSB0byBCT05EX0xJTktfRkFJ TC4gIE9uIHRoZSBuZXh0IHBhc3MgdGhyb3VnaApib25kX21paW1vbl9pbnNwZWN0IGFmdGVyIHRo ZSBzbGF2ZSBnb2VzIGNhcnJpZXIgdXAsIHRoZSBCT05EX0xJTktfRkFJTApjYXNlIHdpbGwgc2V0 IHRoZSBwcm9wb3NlZCBuZXh0IHN0YXRlIChsaW5rX25ld19zdGF0ZSkgdG8gQk9ORF9MSU5LX1VQ LApidXQgdGhlIG5ld19saW5rIHRvIEJPTkRfTElOS19ET1dOLiAgVGhlIHNldHRpbmcgb2YgdGhl IGZpbmFsIGxpbmsgc3RhdGUKZnJvbSBuZXdfbGluayBjb21lcyBhZnRlciB0aGF0IGZyb20gbGlu a19uZXdfc3RhdGUsIGFuZCBzbyB0aGUgc2xhdmUKd2lsbCBlbmQgdXAgaW5jb3JyZWN0bHkgaW4g X0RPV04gc3RhdGUuCgoJUmVzb2x2ZSB0aGlzIGJ5IGNvbWJpbmluZyB0aGUgdHdvIHZhcmlhYmxl cyBpbnRvIG9uZS4KClJlcG9ydGVkLWJ5OiBBbGVrc2VpIFpha2hhcm92IDx6YWtoYXJvdi5hLmdA eWFuZGV4LnJ1PgpSZXBvcnRlZC1ieTogU2hhIFpoYW5nIDx6aGFuZ3NoYS56aGFuZ0BodWF3ZWku Y29tPgpDYzogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+CkZpeGVzOiBkZTc3 ZWNkNGVmMDIgKCJib25kaW5nOiBpbXByb3ZlIGxpbmstc3RhdHVzIHVwZGF0ZSBpbiBtaWktbW9u aXRvcmluZyIpClNpZ25lZC1vZmYtYnk6IEpheSBWb3NidXJnaCA8amF5LnZvc2J1cmdoQGNhbm9u aWNhbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgNDEgKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL25ldC9ib25kaW5nLmggICAgICAgICAg IHwgIDMgKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2 ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCmluZGV4IDI4MDRlMmQxYWU1ZS4uMTM2YTk3MmVh OTAzIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCisrKyBiL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAgLTIwNzQsOCArMjA3NCw3IEBAIHN0YXRp YyBpbnQgYm9uZF9taWltb25faW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAlpZ25vcmVf dXBkZWxheSA9ICFyY3VfZGVyZWZlcmVuY2UoYm9uZC0+Y3Vycl9hY3RpdmVfc2xhdmUpOwogCiAJ Ym9uZF9mb3JfZWFjaF9zbGF2ZV9yY3UoYm9uZCwgc2xhdmUsIGl0ZXIpIHsKLQkJc2xhdmUtPm5l d19saW5rID0gQk9ORF9MSU5LX05PQ0hBTkdFOwotCQlzbGF2ZS0+bGlua19uZXdfc3RhdGUgPSBz bGF2ZS0+bGluazsKKwkJYm9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUsIEJPTkRfTElOS19O T0NIQU5HRSk7CiAKIAkJbGlua19zdGF0ZSA9IGJvbmRfY2hlY2tfZGV2X2xpbmsoYm9uZCwgc2xh dmUtPmRldiwgMCk7CiAKQEAgLTIxMTEsNyArMjExMCw3IEBAIHN0YXRpYyBpbnQgYm9uZF9taWlt b25faW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCX0KIAogCQkJaWYgKHNsYXZlLT5k ZWxheSA8PSAwKSB7Ci0JCQkJc2xhdmUtPm5ld19saW5rID0gQk9ORF9MSU5LX0RPV047CisJCQkJ Ym9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUsIEJPTkRfTElOS19ET1dOKTsKIAkJCQljb21t aXQrKzsKIAkJCQljb250aW51ZTsKIAkJCX0KQEAgLTIxNTAsNyArMjE0OSw3IEBAIHN0YXRpYyBp bnQgYm9uZF9taWltb25faW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCQlzbGF2ZS0+ ZGVsYXkgPSAwOwogCiAJCQlpZiAoc2xhdmUtPmRlbGF5IDw9IDApIHsKLQkJCQlzbGF2ZS0+bmV3 X2xpbmsgPSBCT05EX0xJTktfVVA7CisJCQkJYm9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUs IEJPTkRfTElOS19VUCk7CiAJCQkJY29tbWl0Kys7CiAJCQkJaWdub3JlX3VwZGVsYXkgPSBmYWxz ZTsKIAkJCQljb250aW51ZTsKQEAgLTIxODgsNyArMjE4Nyw3IEBAIHN0YXRpYyB2b2lkIGJvbmRf bWlpbW9uX2NvbW1pdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAlzdHJ1Y3Qgc2xhdmUgKnNsYXZl LCAqcHJpbWFyeTsKIAogCWJvbmRfZm9yX2VhY2hfc2xhdmUoYm9uZCwgc2xhdmUsIGl0ZXIpIHsK LQkJc3dpdGNoIChzbGF2ZS0+bmV3X2xpbmspIHsKKwkJc3dpdGNoIChzbGF2ZS0+bGlua19uZXdf c3RhdGUpIHsKIAkJY2FzZSBCT05EX0xJTktfTk9DSEFOR0U6CiAJCQkvKiBGb3IgODAyLjNhZCBt b2RlLCBjaGVjayBjdXJyZW50IHNsYXZlIHNwZWVkIGFuZAogCQkJICogZHVwbGV4IGFnYWluIGlu IGNhc2UgaXRzIHBvcnQgd2FzIGRpc2FibGVkIGFmdGVyCkBAIC0yMjYzLDggKzIyNjIsOCBAQCBz dGF0aWMgdm9pZCBib25kX21paW1vbl9jb21taXQoc3RydWN0IGJvbmRpbmcgKmJvbmQpCiAKIAkJ ZGVmYXVsdDoKIAkJCW5ldGRldl9lcnIoYm9uZC0+ZGV2LCAiaW52YWxpZCBuZXcgbGluayAlZCBv biBzbGF2ZSAlc1xuIiwKLQkJCQkgICBzbGF2ZS0+bmV3X2xpbmssIHNsYXZlLT5kZXYtPm5hbWUp OwotCQkJc2xhdmUtPm5ld19saW5rID0gQk9ORF9MSU5LX05PQ0hBTkdFOworCQkJCSAgIHNsYXZl LT5saW5rX25ld19zdGF0ZSwgc2xhdmUtPmRldi0+bmFtZSk7CisJCQlib25kX3Byb3Bvc2VfbGlu a19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX05PQ0hBTkdFKTsKIAogCQkJY29udGludWU7CiAJCX0K QEAgLTI2NjQsMTMgKzI2NjMsMTMgQEAgc3RhdGljIHZvaWQgYm9uZF9sb2FkYmFsYW5jZV9hcnBf bW9uKHN0cnVjdCBib25kaW5nICpib25kKQogCWJvbmRfZm9yX2VhY2hfc2xhdmVfcmN1KGJvbmQs IHNsYXZlLCBpdGVyKSB7CiAJCXVuc2lnbmVkIGxvbmcgdHJhbnNfc3RhcnQgPSBkZXZfdHJhbnNf c3RhcnQoc2xhdmUtPmRldik7CiAKLQkJc2xhdmUtPm5ld19saW5rID0gQk9ORF9MSU5LX05PQ0hB TkdFOworCQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX05PQ0hBTkdF KTsKIAogCQlpZiAoc2xhdmUtPmxpbmsgIT0gQk9ORF9MSU5LX1VQKSB7CiAJCQlpZiAoYm9uZF90 aW1lX2luX2ludGVydmFsKGJvbmQsIHRyYW5zX3N0YXJ0LCAxKSAmJgogCQkJICAgIGJvbmRfdGlt ZV9pbl9pbnRlcnZhbChib25kLCBzbGF2ZS0+bGFzdF9yeCwgMSkpIHsKIAotCQkJCXNsYXZlLT5u ZXdfbGluayA9IEJPTkRfTElOS19VUDsKKwkJCQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2 ZSwgQk9ORF9MSU5LX1VQKTsKIAkJCQlzbGF2ZV9zdGF0ZV9jaGFuZ2VkID0gMTsKIAogCQkJCS8q IHByaW1hcnlfc2xhdmUgaGFzIG5vIG1lYW5pbmcgaW4gcm91bmQtcm9iaW4KQEAgLTI2OTcsNyAr MjY5Niw3IEBAIHN0YXRpYyB2b2lkIGJvbmRfbG9hZGJhbGFuY2VfYXJwX21vbihzdHJ1Y3QgYm9u ZGluZyAqYm9uZCkKIAkJCWlmICghYm9uZF90aW1lX2luX2ludGVydmFsKGJvbmQsIHRyYW5zX3N0 YXJ0LCAyKSB8fAogCQkJICAgICFib25kX3RpbWVfaW5faW50ZXJ2YWwoYm9uZCwgc2xhdmUtPmxh c3RfcngsIDIpKSB7CiAKLQkJCQlzbGF2ZS0+bmV3X2xpbmsgPSBCT05EX0xJTktfRE9XTjsKKwkJ CQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX0RPV04pOwogCQkJCXNs YXZlX3N0YXRlX2NoYW5nZWQgPSAxOwogCiAJCQkJaWYgKHNsYXZlLT5saW5rX2ZhaWx1cmVfY291 bnQgPCBVSU5UX01BWCkKQEAgLTI3MjksOCArMjcyOCw4IEBAIHN0YXRpYyB2b2lkIGJvbmRfbG9h ZGJhbGFuY2VfYXJwX21vbihzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCWdvdG8gcmVfYXJtOwog CiAJCWJvbmRfZm9yX2VhY2hfc2xhdmUoYm9uZCwgc2xhdmUsIGl0ZXIpIHsKLQkJCWlmIChzbGF2 ZS0+bmV3X2xpbmsgIT0gQk9ORF9MSU5LX05PQ0hBTkdFKQotCQkJCXNsYXZlLT5saW5rID0gc2xh dmUtPm5ld19saW5rOworCQkJaWYgKHNsYXZlLT5saW5rX25ld19zdGF0ZSAhPSBCT05EX0xJTktf Tk9DSEFOR0UpCisJCQkJc2xhdmUtPmxpbmsgPSBzbGF2ZS0+bGlua19uZXdfc3RhdGU7CiAJCX0K IAogCQlpZiAoc2xhdmVfc3RhdGVfY2hhbmdlZCkgewpAQCAtMjc1Myw5ICsyNzUyLDkgQEAgc3Rh dGljIHZvaWQgYm9uZF9sb2FkYmFsYW5jZV9hcnBfbW9uKHN0cnVjdCBib25kaW5nICpib25kKQog fQogCiAvKiBDYWxsZWQgdG8gaW5zcGVjdCBzbGF2ZXMgZm9yIGFjdGl2ZS1iYWNrdXAgbW9kZSBB UlAgbW9uaXRvciBsaW5rIHN0YXRlCi0gKiBjaGFuZ2VzLiAgU2V0cyBuZXdfbGluayBpbiBzbGF2 ZXMgdG8gc3BlY2lmeSB3aGF0IGFjdGlvbiBzaG91bGQgdGFrZQotICogcGxhY2UgZm9yIHRoZSBz bGF2ZS4gIFJldHVybnMgMCBpZiBubyBjaGFuZ2VzIGFyZSBmb3VuZCwgPjAgaWYgY2hhbmdlcwot ICogdG8gbGluayBzdGF0ZXMgbXVzdCBiZSBjb21taXR0ZWQuCisgKiBjaGFuZ2VzLiAgU2V0cyBw cm9wb3NlZCBsaW5rIHN0YXRlIGluIHNsYXZlcyB0byBzcGVjaWZ5IHdoYXQgYWN0aW9uCisgKiBz aG91bGQgdGFrZSBwbGFjZSBmb3IgdGhlIHNsYXZlLiAgUmV0dXJucyAwIGlmIG5vIGNoYW5nZXMg YXJlIGZvdW5kLCA+MAorICogaWYgY2hhbmdlcyB0byBsaW5rIHN0YXRlcyBtdXN0IGJlIGNvbW1p dHRlZC4KICAqCiAgKiBDYWxsZWQgd2l0aCByY3VfcmVhZF9sb2NrIGhlbGQuCiAgKi8KQEAgLTI3 NjcsMTIgKzI3NjYsMTIgQEAgc3RhdGljIGludCBib25kX2FiX2FycF9pbnNwZWN0KHN0cnVjdCBi b25kaW5nICpib25kKQogCWludCBjb21taXQgPSAwOwogCiAJYm9uZF9mb3JfZWFjaF9zbGF2ZV9y Y3UoYm9uZCwgc2xhdmUsIGl0ZXIpIHsKLQkJc2xhdmUtPm5ld19saW5rID0gQk9ORF9MSU5LX05P Q0hBTkdFOworCQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX05PQ0hB TkdFKTsKIAkJbGFzdF9yeCA9IHNsYXZlX2xhc3RfcngoYm9uZCwgc2xhdmUpOwogCiAJCWlmIChz bGF2ZS0+bGluayAhPSBCT05EX0xJTktfVVApIHsKIAkJCWlmIChib25kX3RpbWVfaW5faW50ZXJ2 YWwoYm9uZCwgbGFzdF9yeCwgMSkpIHsKLQkJCQlzbGF2ZS0+bmV3X2xpbmsgPSBCT05EX0xJTktf VVA7CisJCQkJYm9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUsIEJPTkRfTElOS19VUCk7CiAJ CQkJY29tbWl0Kys7CiAJCQl9CiAJCQljb250aW51ZTsKQEAgLTI4MDAsNyArMjc5OSw3IEBAIHN0 YXRpYyBpbnQgYm9uZF9hYl9hcnBfaW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJaWYg KCFib25kX2lzX2FjdGl2ZV9zbGF2ZShzbGF2ZSkgJiYKIAkJICAgICFyY3VfYWNjZXNzX3BvaW50 ZXIoYm9uZC0+Y3VycmVudF9hcnBfc2xhdmUpICYmCiAJCSAgICAhYm9uZF90aW1lX2luX2ludGVy dmFsKGJvbmQsIGxhc3RfcngsIDMpKSB7Ci0JCQlzbGF2ZS0+bmV3X2xpbmsgPSBCT05EX0xJTktf RE9XTjsKKwkJCWJvbmRfcHJvcG9zZV9saW5rX3N0YXRlKHNsYXZlLCBCT05EX0xJTktfRE9XTik7 CiAJCQljb21taXQrKzsKIAkJfQogCkBAIC0yODEzLDcgKzI4MTIsNyBAQCBzdGF0aWMgaW50IGJv bmRfYWJfYXJwX2luc3BlY3Qoc3RydWN0IGJvbmRpbmcgKmJvbmQpCiAJCWlmIChib25kX2lzX2Fj dGl2ZV9zbGF2ZShzbGF2ZSkgJiYKIAkJICAgICghYm9uZF90aW1lX2luX2ludGVydmFsKGJvbmQs IHRyYW5zX3N0YXJ0LCAyKSB8fAogCQkgICAgICFib25kX3RpbWVfaW5faW50ZXJ2YWwoYm9uZCwg bGFzdF9yeCwgMikpKSB7Ci0JCQlzbGF2ZS0+bmV3X2xpbmsgPSBCT05EX0xJTktfRE9XTjsKKwkJ CWJvbmRfcHJvcG9zZV9saW5rX3N0YXRlKHNsYXZlLCBCT05EX0xJTktfRE9XTik7CiAJCQljb21t aXQrKzsKIAkJfQogCX0KQEAgLTI4MzMsNyArMjgzMiw3IEBAIHN0YXRpYyB2b2lkIGJvbmRfYWJf YXJwX2NvbW1pdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAlzdHJ1Y3Qgc2xhdmUgKnNsYXZlOwog CiAJYm9uZF9mb3JfZWFjaF9zbGF2ZShib25kLCBzbGF2ZSwgaXRlcikgewotCQlzd2l0Y2ggKHNs YXZlLT5uZXdfbGluaykgeworCQlzd2l0Y2ggKHNsYXZlLT5saW5rX25ld19zdGF0ZSkgewogCQlj YXNlIEJPTkRfTElOS19OT0NIQU5HRToKIAkJCWNvbnRpbnVlOwogCkBAIC0yODg2LDcgKzI4ODUs NyBAQCBzdGF0aWMgdm9pZCBib25kX2FiX2FycF9jb21taXQoc3RydWN0IGJvbmRpbmcgKmJvbmQp CiAKIAkJZGVmYXVsdDoKIAkJCW5ldGRldl9lcnIoYm9uZC0+ZGV2LCAiaW1wb3NzaWJsZTogbmV3 X2xpbmsgJWQgb24gc2xhdmUgJXNcbiIsCi0JCQkJICAgc2xhdmUtPm5ld19saW5rLCBzbGF2ZS0+ ZGV2LT5uYW1lKTsKKwkJCQkgICBzbGF2ZS0+bGlua19uZXdfc3RhdGUsIHNsYXZlLT5kZXYtPm5h bWUpOwogCQkJY29udGludWU7CiAJCX0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvYm9uZGlu Zy5oIGIvaW5jbHVkZS9uZXQvYm9uZGluZy5oCmluZGV4IGI0NmQ2OGFjZjcwMS4uODExNjY0ODg3 M2MzIDEwMDY0NAotLS0gYS9pbmNsdWRlL25ldC9ib25kaW5nLmgKKysrIGIvaW5jbHVkZS9uZXQv Ym9uZGluZy5oCkBAIC0xNDksNyArMTQ5LDYgQEAgc3RydWN0IHNsYXZlIHsKIAl1bnNpZ25lZCBs b25nIHRhcmdldF9sYXN0X2FycF9yeFtCT05EX01BWF9BUlBfVEFSR0VUU107CiAJczggICAgIGxp bms7CQkvKiBvbmUgb2YgQk9ORF9MSU5LX1hYWFggKi8KIAlzOCAgICAgbGlua19uZXdfc3RhdGU7 CS8qIG9uZSBvZiBCT05EX0xJTktfWFhYWCAqLwotCXM4ICAgICBuZXdfbGluazsKIAl1OCAgICAg YmFja3VwOjEsICAgLyogaW5kaWNhdGVzIGJhY2t1cCBzbGF2ZS4gVmFsdWUgY29ycmVzcG9uZHMg d2l0aAogCQkJICAgICAgQk9ORF9TVEFURV9BQ1RJVkUgYW5kIEJPTkRfU1RBVEVfQkFDS1VQICov CiAJICAgICAgIGluYWN0aXZlOjEsIC8qIGluZGljYXRlcyBpbmFjdGl2ZSBzbGF2ZSAqLwpAQCAt NTM5LDcgKzUzOCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBib25kX3Byb3Bvc2VfbGlua19zdGF0 ZShzdHJ1Y3Qgc2xhdmUgKnNsYXZlLCBpbnQgc3RhdGUpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBi b25kX2NvbW1pdF9saW5rX3N0YXRlKHN0cnVjdCBzbGF2ZSAqc2xhdmUsIGJvb2wgbm90aWZ5KQog ewotCWlmIChzbGF2ZS0+bGluayA9PSBzbGF2ZS0+bGlua19uZXdfc3RhdGUpCisJaWYgKHNsYXZl LT5saW5rX25ld19zdGF0ZSA9PSBCT05EX0xJTktfTk9DSEFOR0UpCiAJCXJldHVybjsKIAogCXNs YXZlLT5saW5rID0gc2xhdmUtPmxpbmtfbmV3X3N0YXRlOwotLSAKMi4yMC4xCgoKRnJvbSBhZTEy MzI4ZTBhNmYzOWFhNWQ4Y2Y0NmZhYzM3ODYwOTViYmQ2MWQ4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBPbGl2ZXIgTmV1a3VtIDxvbmV1a3VtQHN1c2UuY29tPgpEYXRlOiBUaHUsIDcg Tm92IDIwMTkgMDk6NDg6MDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzE1XSBDREMtTkNNOiBo YW5kbGUgaW5jb21wbGV0ZSB0cmFuc2ZlciBvZiBNVFUKClsgVXBzdHJlYW0gY29tbWl0IDMzMmY5 ODlhM2IwMDQxYjgxMDgzNmM1YzM3NDdlNTlhYWQ3ZTlkMGIgXQoKQSBtYWxpY2lvdXMgZGV2aWNl IG1heSBnaXZlIGhhbGYgYW4gYW5zd2VyIHdoZW4gYXNrZWQKZm9yIGl0cyBNVFUuIFRoZSBkcml2 ZXIgd2lsbCBwcm9jZWVkIGFmdGVyIHRoaXMgd2l0aAphIGdhcmJhZ2UgTVRVLiBBbnl0aGluZyBi dXQgYSBjb21wbGV0ZSBhbnN3ZXIgbXVzdCBiZSB0cmVhdGVkCmFzIGFuIGVycm9yLgoKVjI6IHVz ZWQgc2l6ZW9mIGFzIHJlcXVlc3QgYnkgQWxleGFuZGVyCgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5 OiBzeXpib3QrMDYzMWQ4Nzg4MjNjZTI0MTE2MzZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpT aWduZWQtb2ZmLWJ5OiBPbGl2ZXIgTmV1a3VtIDxvbmV1a3VtQHN1c2UuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9u ZXQvdXNiL2NkY19uY20uYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jZGNfbmNt LmMgYi9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCmluZGV4IGY1M2UzZTRlMjVmMy4uYTU3ZDgy ZWYwZjgxIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCisrKyBiL2RyaXZl cnMvbmV0L3VzYi9jZGNfbmNtLmMKQEAgLTU3OCw4ICs1NzgsOCBAQCBzdGF0aWMgdm9pZCBjZGNf bmNtX3NldF9kZ3JhbV9zaXplKHN0cnVjdCB1c2JuZXQgKmRldiwgaW50IG5ld19zaXplKQogCS8q IHJlYWQgY3VycmVudCBtdHUgdmFsdWUgZnJvbSBkZXZpY2UgKi8KIAllcnIgPSB1c2JuZXRfcmVh ZF9jbWQoZGV2LCBVU0JfQ0RDX0dFVF9NQVhfREFUQUdSQU1fU0laRSwKIAkJCSAgICAgIFVTQl9U WVBFX0NMQVNTIHwgVVNCX0RJUl9JTiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UsCi0JCQkgICAgICAw LCBpZmFjZV9ubywgJm1heF9kYXRhZ3JhbV9zaXplLCAyKTsKLQlpZiAoZXJyIDwgMCkgeworCQkJ ICAgICAgMCwgaWZhY2Vfbm8sICZtYXhfZGF0YWdyYW1fc2l6ZSwgc2l6ZW9mKG1heF9kYXRhZ3Jh bV9zaXplKSk7CisJaWYgKGVyciA8IHNpemVvZihtYXhfZGF0YWdyYW1fc2l6ZSkpIHsKIAkJZGV2 X2RiZygmZGV2LT5pbnRmLT5kZXYsICJHRVRfTUFYX0RBVEFHUkFNX1NJWkUgZmFpbGVkXG4iKTsK IAkJZ290byBvdXQ7CiAJfQpAQCAtNTkwLDcgKzU5MCw3IEBAIHN0YXRpYyB2b2lkIGNkY19uY21f c2V0X2RncmFtX3NpemUoc3RydWN0IHVzYm5ldCAqZGV2LCBpbnQgbmV3X3NpemUpCiAJbWF4X2Rh dGFncmFtX3NpemUgPSBjcHVfdG9fbGUxNihjdHgtPm1heF9kYXRhZ3JhbV9zaXplKTsKIAllcnIg PSB1c2JuZXRfd3JpdGVfY21kKGRldiwgVVNCX0NEQ19TRVRfTUFYX0RBVEFHUkFNX1NJWkUsCiAJ CQkgICAgICAgVVNCX1RZUEVfQ0xBU1MgfCBVU0JfRElSX09VVCB8IFVTQl9SRUNJUF9JTlRFUkZB Q0UsCi0JCQkgICAgICAgMCwgaWZhY2Vfbm8sICZtYXhfZGF0YWdyYW1fc2l6ZSwgMik7CisJCQkg ICAgICAgMCwgaWZhY2Vfbm8sICZtYXhfZGF0YWdyYW1fc2l6ZSwgc2l6ZW9mKG1heF9kYXRhZ3Jh bV9zaXplKSk7CiAJaWYgKGVyciA8IDApCiAJCWRldl9kYmcoJmRldi0+aW50Zi0+ZGV2LCAiU0VU X01BWF9EQVRBR1JBTV9TSVpFIGZhaWxlZFxuIik7CiAKLS0gCjIuMjAuMQoKCkZyb20gZWM5ZmU3 YzE4M2Y1MjBjMjZjNTAxMTJlMjY0MTRiZjE5MTk1YWUyMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9yZz4KRGF0ZTogVGh1LCA3IE5v diAyMDE5IDE4OjI5OjUyICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMy8xNV0gaXB2NDogRml4IHRh YmxlIGlkIHJlZmVyZW5jZSBpbiBmaWJfc3luY19kb3duX2FkZHIKClsgVXBzdHJlYW0gY29tbWl0 IGUwYTMxMjYyOWZlZmE5NDM1MzRmYzQ2ZjdiZmJlNmRlM2ZkYWY0NjMgXQoKSGVuZHJpayByZXBv cnRlZCByb3V0ZXMgaW4gdGhlIG1haW4gdGFibGUgdXNpbmcgc291cmNlIGFkZHJlc3MgYXJlIG5v dApyZW1vdmVkIHdoZW4gdGhlIGFkZHJlc3MgaXMgcmVtb3ZlZC4gVGhlIHByb2JsZW0gaXMgdGhh dCBmaWJfc3luY19kb3duX2FkZHIKZG9lcyBub3QgYWNjb3VudCBmb3IgZGV2aWNlcyBpbiB0aGUg ZGVmYXVsdCBWUkYgd2hpY2ggYXJlIGFzc29jaWF0ZWQKd2l0aCB0aGUgbWFpbiB0YWJsZS4gRml4 IGJ5IHVwZGF0aW5nIHRoZSB0YWJsZSBpZCByZWZlcmVuY2UuCgpGaXhlczogNWE1NmEwYjNhNDVk ICgibmV0OiBEb24ndCBkZWxldGUgcm91dGVzIGluIGRpZmZlcmVudCBWUkZzIikKUmVwb3J0ZWQt Ynk6IEhlbmRyaWsgRG9ubmVyIDxoZEBvcy1jaWxsYXRpb24uZGU+ClNpZ25lZC1vZmYtYnk6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9maWJfc2VtYW50aWNzLmMg fCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50 aWNzLmMKaW5kZXggNDQ2MjA0Y2E3NDA2Li5hOGZjNGU4M2NkOTUgMTAwNjQ0Ci0tLSBhL25ldC9p cHY0L2ZpYl9zZW1hbnRpY3MuYworKysgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKQEAgLTE0 MjEsOCArMTQyMSw4IEBAIGludCBmaWJfc3luY19kb3duX2FkZHIoc3RydWN0IG5ldF9kZXZpY2Ug KmRldiwgX19iZTMyIGxvY2FsKQogCWludCByZXQgPSAwOwogCXVuc2lnbmVkIGludCBoYXNoID0g ZmliX2xhZGRyX2hhc2hmbihsb2NhbCk7CiAJc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQgPSAmZmli X2luZm9fbGFkZHJoYXNoW2hhc2hdOworCWludCB0Yl9pZCA9IGwzbWRldl9maWJfdGFibGUoZGV2 KSA/IDogUlRfVEFCTEVfTUFJTjsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KGRldik7Ci0J aW50IHRiX2lkID0gbDNtZGV2X2ZpYl90YWJsZShkZXYpOwogCXN0cnVjdCBmaWJfaW5mbyAqZmk7 CiAKIAlpZiAoIWZpYl9pbmZvX2xhZGRyaGFzaCB8fCBsb2NhbCA9PSAwKQotLSAKMi4yMC4xCgoK RnJvbSA1MTgwZTZiNjA1MGVjZTQxMzk1MmExNzJkZGFkYzE0OGZjZWQ3YThiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgU3ZlcmRsaW4gPGFsZXhhbmRlci5zdmVyZGxp bkBub2tpYS5jb20+CkRhdGU6IEZyaSwgOCBOb3YgMjAxOSAxMDowMDo0NCArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMDQvMTVdIG5ldDogZXRoZXJuZXQ6IG9jdGVvbl9tZ210OiBBY2NvdW50IGZvciBz ZWNvbmQgcG9zc2libGUKIFZMQU4gaGVhZGVyCgpbIFVwc3RyZWFtIGNvbW1pdCBlNGRkNTYwODAz M2VmZTdiNjAzMGNkZTM1OWJmZGJhZWI3M2JjMjJkIF0KCk9jdGVvbidzIGlucHV0IHJpbmctYnVm ZmVyIGVudHJ5IGhhcyAxNCBiaXRzLXdpZGUgc2l6ZSBmaWVsZCwgc28gdG8gYWNjb3VudApmb3Ig c2Vjb25kIHBvc3NpYmxlIFZMQU4gaGVhZGVyIG1heF9tdHUgbXVzdCBiZSBmdXJ0aGVyIHJlZHVj ZWQuCgpGaXhlczogMTA5Y2MxNjUyNmM2ZCAoImV0aGVybmV0L2Nhdml1bTogdXNlIGNvcmUgbWlu L21heCBNVFUgY2hlY2tpbmciKQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgU3ZlcmRsaW4gPGFs ZXhhbmRlci5zdmVyZGxpbkBub2tpYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxl ciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0v b2N0ZW9uL29jdGVvbl9tZ210LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24o KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZp dW0vb2N0ZW9uL29jdGVvbl9tZ210LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vb2N0 ZW9uL29jdGVvbl9tZ210LmMKaW5kZXggYmI0M2RkYjc1MzllLi41OTJmYjllODQ3YjkgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Nhdml1bS9vY3Rlb24vb2N0ZW9uX21nbXQuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vb2N0ZW9uL29jdGVvbl9tZ210LmMKQEAg LTE0OTUsNyArMTQ5NSw3IEBAIHN0YXRpYyBpbnQgb2N0ZW9uX21nbXRfcHJvYmUoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldikKIAluZXRkZXYtPmV0aHRvb2xfb3BzID0gJm9jdGVvbl9tZ210 X2V0aHRvb2xfb3BzOwogCiAJbmV0ZGV2LT5taW5fbXR1ID0gNjQgLSBPQ1RFT05fTUdNVF9SWF9I RUFEUk9PTTsKLQluZXRkZXYtPm1heF9tdHUgPSAxNjM4MyAtIE9DVEVPTl9NR01UX1JYX0hFQURS T09NOworCW5ldGRldi0+bWF4X210dSA9IDE2MzgzIC0gT0NURU9OX01HTVRfUlhfSEVBRFJPT00g LSBWTEFOX0hMRU47CiAKIAltYWMgPSBvZl9nZXRfbWFjX2FkZHJlc3MocGRldi0+ZGV2Lm9mX25v ZGUpOwogCi0tIAoyLjIwLjEKCgpGcm9tIDVlMDg5MGYzM2Q4MTA3OWRiYTVkNWJmZjg4MzZkOTRm Yjc0ZWJkMzcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1 bWF6ZXRAZ29vZ2xlLmNvbT4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDIwOjA4OjE5IC0wODAwClN1 YmplY3Q6IFtQQVRDSCAwNS8xNV0gbmV0OiBmaXggZGF0YS1yYWNlIGluIG5laWdoX2V2ZW50X3Nl bmQoKQoKWyBVcHN0cmVhbSBjb21taXQgMWI1M2Q2NDQzNWQ1NjkwMmZjMjM0ZmYyNTA3MTQyZDk3 MWEwOTY4NyBdCgpLQ1NBTiByZXBvcnRlZCB0aGUgZm9sbG93aW5nIGRhdGEtcmFjZSBbMV0KClRo ZSBmaXggd2lsbCBhbHNvIHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gb3B0aW1pemluZyBvdXQK dGhlIGNvbmRpdGlvbi4KClsxXQoKQlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIG5laWdoX3Jlc29s dmVfb3V0cHV0IC8gbmVpZ2hfcmVzb2x2ZV9vdXRwdXQKCndyaXRlIHRvIDB4ZmZmZjg4ODBhNDFk YmE3OCBvZiA4IGJ5dGVzIGJ5IGludGVycnVwdCBvbiBjcHUgMToKIG5laWdoX2V2ZW50X3NlbmQg aW5jbHVkZS9uZXQvbmVpZ2hib3VyLmg6NDQzIFtpbmxpbmVdCiBuZWlnaF9yZXNvbHZlX291dHB1 dCsweDc4LzB4NDgwIG5ldC9jb3JlL25laWdoYm91ci5jOjE0NzQKIG5laWdoX291dHB1dCBpbmNs dWRlL25ldC9uZWlnaGJvdXIuaDo1MTEgW2lubGluZV0KIGlwX2ZpbmlzaF9vdXRwdXQyKzB4NGFm LzB4ZTQwIG5ldC9pcHY0L2lwX291dHB1dC5jOjIyOAogX19pcF9maW5pc2hfb3V0cHV0IG5ldC9p cHY0L2lwX291dHB1dC5jOjMwOCBbaW5saW5lXQogX19pcF9maW5pc2hfb3V0cHV0KzB4MjNhLzB4 NDkwIG5ldC9pcHY0L2lwX291dHB1dC5jOjI5MAogaXBfZmluaXNoX291dHB1dCsweDQxLzB4MTYw IG5ldC9pcHY0L2lwX291dHB1dC5jOjMxOAogTkZfSE9PS19DT05EIGluY2x1ZGUvbGludXgvbmV0 ZmlsdGVyLmg6Mjk0IFtpbmxpbmVdCiBpcF9vdXRwdXQrMHhkZi8weDIxMCBuZXQvaXB2NC9pcF9v dXRwdXQuYzo0MzIKIGRzdF9vdXRwdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDM2IFtpbmxpbmVdCiBp cF9sb2NhbF9vdXQrMHg3NC8weDkwIG5ldC9pcHY0L2lwX291dHB1dC5jOjEyNQogX19pcF9xdWV1 ZV94bWl0KzB4M2E4LzB4YTQwIG5ldC9pcHY0L2lwX291dHB1dC5jOjUzMgogaXBfcXVldWVfeG1p dCsweDQ1LzB4NjAgaW5jbHVkZS9uZXQvaXAuaDoyMzcKIF9fdGNwX3RyYW5zbWl0X3NrYisweGU4 MS8weDFkNjAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjExNjkKIHRjcF90cmFuc21pdF9za2IgbmV0 L2lwdjQvdGNwX291dHB1dC5jOjExODUgW2lubGluZV0KIF9fdGNwX3JldHJhbnNtaXRfc2tiKzB4 NGJkLzB4MTVmMCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6Mjk3NgogdGNwX3JldHJhbnNtaXRfc2ti KzB4MzYvMHgxYTAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjI5OTkKIHRjcF9yZXRyYW5zbWl0X3Rp bWVyKzB4NzE5LzB4MTZkMCBuZXQvaXB2NC90Y3BfdGltZXIuYzo1MTUKIHRjcF93cml0ZV90aW1l cl9oYW5kbGVyKzB4NDJkLzB4NTEwIG5ldC9pcHY0L3RjcF90aW1lci5jOjU5OAogdGNwX3dyaXRl X3RpbWVyKzB4ZDEvMHhmMCBuZXQvaXB2NC90Y3BfdGltZXIuYzo2MTgKCnJlYWQgdG8gMHhmZmZm ODg4MGE0MWRiYTc4IG9mIDggYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAwOgogbmVpZ2hfZXZl bnRfc2VuZCBpbmNsdWRlL25ldC9uZWlnaGJvdXIuaDo0NDIgW2lubGluZV0KIG5laWdoX3Jlc29s dmVfb3V0cHV0KzB4NTcvMHg0ODAgbmV0L2NvcmUvbmVpZ2hib3VyLmM6MTQ3NAogbmVpZ2hfb3V0 cHV0IGluY2x1ZGUvbmV0L25laWdoYm91ci5oOjUxMSBbaW5saW5lXQogaXBfZmluaXNoX291dHB1 dDIrMHg0YWYvMHhlNDAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MjI4CiBfX2lwX2ZpbmlzaF9vdXRw dXQgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MzA4IFtpbmxpbmVdCiBfX2lwX2ZpbmlzaF9vdXRwdXQr MHgyM2EvMHg0OTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MjkwCiBpcF9maW5pc2hfb3V0cHV0KzB4 NDEvMHgxNjAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MzE4CiBORl9IT09LX0NPTkQgaW5jbHVkZS9s aW51eC9uZXRmaWx0ZXIuaDoyOTQgW2lubGluZV0KIGlwX291dHB1dCsweGRmLzB4MjEwIG5ldC9p cHY0L2lwX291dHB1dC5jOjQzMgogZHN0X291dHB1dCBpbmNsdWRlL25ldC9kc3QuaDo0MzYgW2lu bGluZV0KIGlwX2xvY2FsX291dCsweDc0LzB4OTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MTI1CiBf X2lwX3F1ZXVlX3htaXQrMHgzYTgvMHhhNDAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6NTMyCiBpcF9x dWV1ZV94bWl0KzB4NDUvMHg2MCBpbmNsdWRlL25ldC9pcC5oOjIzNwogX190Y3BfdHJhbnNtaXRf c2tiKzB4ZTgxLzB4MWQ2MCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6MTE2OQogdGNwX3RyYW5zbWl0 X3NrYiBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6MTE4NSBbaW5saW5lXQogX190Y3BfcmV0cmFuc21p dF9za2IrMHg0YmQvMHgxNWYwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzoyOTc2CiB0Y3BfcmV0cmFu c21pdF9za2IrMHgzNi8weDFhMCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6Mjk5OQogdGNwX3JldHJh bnNtaXRfdGltZXIrMHg3MTkvMHgxNmQwIG5ldC9pcHY0L3RjcF90aW1lci5jOjUxNQogdGNwX3dy aXRlX3RpbWVyX2hhbmRsZXIrMHg0MmQvMHg1MTAgbmV0L2lwdjQvdGNwX3RpbWVyLmM6NTk4CgpS ZXBvcnRlZCBieSBLZXJuZWwgQ29uY3VycmVuY3kgU2FuaXRpemVyIG9uOgpDUFU6IDAgUElEOiAw IENvbW06IHN3YXBwZXIvMCBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6 IEdvb2dsZSBHb29nbGUgQ29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9T IEdvb2dsZSAwMS8wMS8yMDExCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0 QGdvb2dsZS5jb20+ClJlcG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmggfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAy IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQv bmVpZ2hib3VyLmggYi9pbmNsdWRlL25ldC9uZWlnaGJvdXIuaAppbmRleCBiZWVlZWQxMjY4NzIu LmM4NDgwN2MxYzViZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKKysrIGIv aW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKQEAgLTQzMCw4ICs0MzAsOCBAQCBzdGF0aWMgaW5saW5l IGludCBuZWlnaF9ldmVudF9zZW5kKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogewogCXVuc2lnbmVkIGxvbmcgbm93ID0gamlmZmllczsKIAkKLQlpZiAobmVp Z2gtPnVzZWQgIT0gbm93KQotCQluZWlnaC0+dXNlZCA9IG5vdzsKKwlpZiAoUkVBRF9PTkNFKG5l aWdoLT51c2VkKSAhPSBub3cpCisJCVdSSVRFX09OQ0UobmVpZ2gtPnVzZWQsIG5vdyk7CiAJaWYg KCEobmVpZ2gtPm51ZF9zdGF0ZSYoTlVEX0NPTk5FQ1RFRHxOVURfREVMQVl8TlVEX1BST0JFKSkp CiAJCXJldHVybiBfX25laWdoX2V2ZW50X3NlbmQobmVpZ2gsIHNrYik7CiAJcmV0dXJuIDA7Ci0t IAoyLjIwLjEKCgpGcm9tIGM1MmJkNmM5ZGM1MTM5MDQzYjIzMDA1N2Q4YmI2NjJhODVhMDQ0NDUg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFNlYW4gVHJhbmNoZXR0aSA8c3RyYW5jaGVA Y29kZWF1cm9yYS5vcmc+CkRhdGU6IE1vbiwgNCBOb3YgMjAxOSAxNzo1NDoyMiAtMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMDYvMTVdIG5ldDogcXVhbGNvbW06IHJtbmV0OiBGaXggcG90ZW50aWFsIFVB RiB3aGVuCiB1bnJlZ2lzdGVyaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBlN2E4NmM2ODdlNjRhYjI0 Zjg4MzMwYWQyNGVjYzk0NDJjZTQwYzVhIF0KCkR1cmluZyB0aGUgZXhpdC91bnJlZ2lzdHJhdGlv biBwcm9jZXNzIG9mIHRoZSBSbU5ldCBkcml2ZXIsIHRoZSBmdW5jdGlvbgpybW5ldF91bnJlZ2lz dGVyX3JlYWxfZGV2aWNlKCkgaXMgY2FsbGVkIHRvIGhhbmRsZSBmcmVlaW5nIHRoZSBkcml2ZXIn cwppbnRlcm5hbCBzdGF0ZSBhbmQgcmVtb3ZpbmcgdGhlIFJYIGhhbmRsZXIgb24gdGhlIHVuZGVy bHlpbmcgcGh5c2ljYWwKZGV2aWNlLiBIb3dldmVyLCB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB0 aGlzIGZ1bmN0aW9uIHBlcmZvcm1zIGlzIHdyb25nCmFuZCBjYW4gbGVhZCB0byBhIHVzZSBhZnRl ciBmcmVlIG9mIHRoZSBybW5ldF9wb3J0IHN0cnVjdHVyZS4KCkJlZm9yZSBjYWxsaW5nIG5ldGRl dl9yeF9oYW5kbGVyX3VucmVnaXN0ZXIoKSwgdGhpcyBwb3J0IHN0cnVjdHVyZSBpcwpmcmVlZCB3 aXRoIGtmcmVlKCkuIElmIHBhY2tldHMgYXJlIHJlY2VpdmVkIG9uIGFueSBSbU5ldCBkZXZpY2Vz IGJlZm9yZQpzeW5jaHJvbml6ZV9uZXQoKSBjb21wbGV0ZXMsIHRoZXkgd2lsbCBhdHRlbXB0IHRv IHVzZSB0aGlzIGFscmVhZHktZnJlZWQKcG9ydCBzdHJ1Y3R1cmUgd2hlbiBwcm9jZXNzaW5nIHRo ZSBwYWNrZXQuIEFzIHN1Y2gsIGJlZm9yZSBjbGVhbmluZyB1cCBhbnkKb3RoZXIgaW50ZXJuYWwg c3RhdGUsIHRoZSBSWCBoYW5kbGVyIG11c3QgYmUgdW5yZWdpc3RlcmVkIGluIG9yZGVyIHRvCmd1 YXJhbnRlZSB0aGF0IG5vIGZ1cnRoZXIgcGFja2V0cyB3aWxsIGFycml2ZSBvbiB0aGUgZGV2aWNl LgoKRml4ZXM6IGNlZWQ3M2EyY2Y0YSAoImRyaXZlcnM6IG5ldDogZXRoZXJuZXQ6IHF1YWxjb21t OiBybW5ldDogSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiIpClNpZ25lZC1vZmYtYnk6IFNlYW4gVHJh bmNoZXR0aSA8c3RyYW5jaGVAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9x dWFsY29tbS9ybW5ldC9ybW5ldF9jb25maWcuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIg aW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF9jb25maWcuYyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3F1YWxjb21tL3JtbmV0L3JtbmV0X2NvbmZpZy5jCmluZGV4IDVmNGU0NDdjNWRjZS4uZjY2 ZDEyNTVlMzZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5l dC9ybW5ldF9jb25maWcuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5l dC9ybW5ldF9jb25maWcuYwpAQCAtNjYsMTAgKzY2LDEwIEBAIHN0YXRpYyBpbnQgcm1uZXRfdW5y ZWdpc3Rlcl9yZWFsX2RldmljZShzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYsCiAJaWYgKHBv cnQtPm5yX3JtbmV0X2RldnMpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Ja2ZyZWUocG9ydCk7Ci0K IAluZXRkZXZfcnhfaGFuZGxlcl91bnJlZ2lzdGVyKHJlYWxfZGV2KTsKIAorCWtmcmVlKHBvcnQp OworCiAJLyogcmVsZWFzZSByZWZlcmVuY2Ugb24gcmVhbF9kZXYgKi8KIAlkZXZfcHV0KHJlYWxf ZGV2KTsKIAotLSAKMi4yMC4xCgoKRnJvbSBhZjc1YjIzMGNkNzk4OGRlYjg5NjQzNTY4NDM5MzJm NzBlYjg4MDljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIE1vcmdh ZG8gPGFsZWtzYW5kZXJAYWxla3NhbmRlci5lcz4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDExOjU3 OjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwNy8xNV0gbmV0OiB1c2I6IHFtaV93d2FuOiBhZGQg c3VwcG9ydCBmb3IgRFc1ODIxZSB3aXRoIGVTSU0KIHN1cHBvcnQKClsgVXBzdHJlYW0gY29tbWl0 IGU0OTdkZjY4NmU4ZmVkOGMxZGQ2OTE3OTAxMDY1NjM2Mjg1OGVkYjMgXQoKRXhhY3RseSBzYW1l IGxheW91dCBhcyB0aGUgZGVmYXVsdCBEVzU4MjFlIG1vZHVsZSwganVzdCBhIGRpZmZlcmVudAp2 aWQvcGlkLgoKVGhlIFFNSSBpbnRlcmZhY2UgaXMgZXhwb3NlZCBpbiBVU0IgY29uZmlndXJhdGlv biAjMToKClA6ICBWZW5kb3I9NDEzYyBQcm9kSUQ9ODFlMCBSZXY9MDMuMTgKUzogIE1hbnVmYWN0 dXJlcj1EZWxsIEluYy4KUzogIFByb2R1Y3Q9RFc1ODIxZS1lU0lNIFNuYXBkcmFnb24gWDIwIExU RQpTOiAgU2VyaWFsTnVtYmVyPTAxMjM0NTY3ODlBQkNERUYKQzogICNJZnM9IDYgQ2ZnIz0gMSBB dHI9YTAgTXhQd3I9NTAwbUEKSTogIElmIz0weDAgQWx0PSAwICNFUHM9IDMgQ2xzPWZmKHZlbmQu KSBTdWI9ZmYgUHJvdD1mZiBEcml2ZXI9cW1pX3d3YW4KSTogIElmIz0weDEgQWx0PSAwICNFUHM9 IDEgQ2xzPTAzKEhJRCAgKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9dXNiaGlkCkk6ICBJZiM9MHgy IEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikgU3ViPTAwIFByb3Q9MDAgRHJpdmVyPW9wdGlv bgpJOiAgSWYjPTB4MyBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj0wMCBQcm90PTAw IERyaXZlcj1vcHRpb24KSTogIElmIz0weDQgQWx0PSAwICNFUHM9IDMgQ2xzPWZmKHZlbmQuKSBT dWI9MDAgUHJvdD0wMCBEcml2ZXI9b3B0aW9uCkk6ICBJZiM9MHg1IEFsdD0gMCAjRVBzPSAyIENs cz1mZih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYgRHJpdmVyPW9wdGlvbgoKU2lnbmVkLW9mZi1ieTog QWxla3NhbmRlciBNb3JnYWRvIDxhbGVrc2FuZGVyQGFsZWtzYW5kZXIuZXM+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC91c2IvcW1pX3d3YW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2Iv cW1pX3d3YW4uYwppbmRleCA2ZjUxN2U2NzMwMjAuLjlmMDM3YzUwMDU0ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2Fu LmMKQEAgLTEyOTcsNiArMTI5Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNiX2RldmljZV9p ZCBwcm9kdWN0c1tdID0gewogCXtRTUlfRklYRURfSU5URigweDQxM2MsIDB4ODFiNiwgOCl9LAkv KiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEzYywgMHg4MWI2 LCAxMCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEz YywgMHg4MWQ3LCAwKX0sCS8qIERlbGwgV2lyZWxlc3MgNTgyMWUgKi8KKwl7UU1JX0ZJWEVEX0lO VEYoMHg0MTNjLCAweDgxZTAsIDApfSwJLyogRGVsbCBXaXJlbGVzcyA1ODIxZSB3aXRoIGVTSU0g c3VwcG9ydCovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDNmMCwgMHg0ZTFkLCA4KX0sCS8qIEhQIGx0 NDExMSBMVEUvRVYtRE8vSFNQQSsgR29iaSA0RyBNb2R1bGUgKi8KIAl7UU1JX0ZJWEVEX0lOVEYo MHgwM2YwLCAweDlkMWQsIDEpfSwJLyogSFAgbHQ0MTIwIFNuYXBkcmFnb24gWDUgTFRFICovCiAJ e1FNSV9GSVhFRF9JTlRGKDB4MjJkZSwgMHg5MDYxLCAzKX0sCS8qIFdlVGVsZWNvbSBXUEQtNjAw TiAqLwotLSAKMi4yMC4xCgoKRnJvbSBhZmEzYzk4M2NmZDY1YWJlZmQ2MTE1NTBiZTgzZjc1Njhh Y2EwZGYyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW4gQmlhbiA8YmlhbnBhbjIw MTZAMTYzLmNvbT4KRGF0ZTogVHVlLCA1IE5vdiAyMDE5IDE2OjM0OjA3ICswODAwClN1YmplY3Q6 IFtQQVRDSCAwOC8xNV0gTkZDOiBmZHA6IGZpeCBpbmNvcnJlY3QgZnJlZSBvYmplY3QKClsgVXBz dHJlYW0gY29tbWl0IDUxN2NlNGU5MzM2ODkzOGIyMDQ0NTEyODVlNTMwMTQ1NDk4MDQ4NjggXQoK VGhlIGFkZHJlc3Mgb2YgZndfdnNjX2NmZyBpcyBvbiBzdGFjay4gUmVsZWFzaW5nIGl0IHdpdGgg ZGV2bV9rZnJlZSgpIGlzCmluY29ycmVjdCwgd2hpY2ggbWF5IHJlc3VsdCBpbiBhIHN5c3RlbSBj cmFzaCBvciBvdGhlciBzZWN1cml0eSBpbXBhY3RzLgpUaGUgZXhwZWN0ZWQgb2JqZWN0IHRvIGZy ZWUgaXMgKmZ3X3ZzY19jZmcuCgpTaWduZWQtb2ZmLWJ5OiBQYW4gQmlhbiA8YmlhbnBhbjIwMTZA MTYzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIGRyaXZlcnMvbmZjL2ZkcC9pMmMuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAx IGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmZjL2Zk cC9pMmMuYyBiL2RyaXZlcnMvbmZjL2ZkcC9pMmMuYwppbmRleCBkOGQ3MGRkODMwYjAuLjdmMTQz Mzg3YjlmZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZmMvZmRwL2kyYy5jCisrKyBiL2RyaXZlcnMv bmZjL2ZkcC9pMmMuYwpAQCAtMjY3LDcgKzI2Nyw3IEBAIHN0YXRpYyB2b2lkIGZkcF9uY2lfaTJj X3JlYWRfZGV2aWNlX3Byb3BlcnRpZXMoc3RydWN0IGRldmljZSAqZGV2LAogCQkJCQkJICAqZndf dnNjX2NmZywgbGVuKTsKIAogCQlpZiAocikgewotCQkJZGV2bV9rZnJlZShkZXYsIGZ3X3ZzY19j ZmcpOworCQkJZGV2bV9rZnJlZShkZXYsICpmd192c2NfY2ZnKTsKIAkJCWdvdG8gdnNjX3JlYWRf ZXJyOwogCQl9CiAJfSBlbHNlIHsKLS0gCjIuMjAuMQoKCkZyb20gODVmYmQ1ZWZmMGFiNmVkM2Jh NjYxMWIxYWVkNjA5NjRjNDU0NDczMSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogUGFu IEJpYW4gPGJpYW5wYW4yMDE2QDE2My5jb20+CkRhdGU6IFRodSwgNyBOb3YgMjAxOSAxNDoyOTo1 MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDkvMTVdIG5mYzogbmV0bGluazogZml4IGRvdWJsZSBk ZXZpY2UgcmVmZXJlbmNlIGRyb3AKClsgVXBzdHJlYW0gY29tbWl0IDAyNWVjNDBiODFkNzg1YTk4 Zjc2YjhiZGI1MDlhYzEwNzczYjRmMTIgXQoKVGhlIGZ1bmN0aW9uIG5mY19wdXRfZGV2aWNlKGRl dikgaXMgY2FsbGVkIHR3aWNlIHRvIGRyb3AgdGhlIHJlZmVyZW5jZQp0byBkZXYgd2hlbiB0aGVy ZSBpcyBubyBhc3NvY2lhdGVkIGxvY2FsIGxsY3AuIFJlbW92ZSBvbmUgb2YgdGhlbSB0byBmaXgK dGhlIGJ1Zy4KCkZpeGVzOiA1MmZlYjQ0NGE5MDMgKCJORkM6IEV4dGVuZCBuZXRsaW5rIGludGVy ZmFjZSBmb3IgTFRPLCBSVywgYW5kIE1JVVggcGFyYW1ldGVycyBzdXBwb3J0IikKRml4ZXM6IGQ5 YjhkOGUxOWIwNyAoIk5GQzogbGxjcDogU2VydmljZSBOYW1lIExvb2t1cCBuZXRsaW5rIGludGVy ZmFjZSIpClNpZ25lZC1vZmYtYnk6IFBhbiBCaWFuIDxiaWFucGFuMjAxNkAxNjMuY29tPgpSZXZp ZXdlZC1ieTogSm9oYW4gSG92b2xkIDxqb2hhbkBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25mYy9uZXRsaW5r LmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9u ZXQvbmZjL25ldGxpbmsuYyBiL25ldC9uZmMvbmV0bGluay5jCmluZGV4IGIzNjYyMjY0YWEyNC4u MzA5Mzg4NTRiYjhkIDEwMDY0NAotLS0gYS9uZXQvbmZjL25ldGxpbmsuYworKysgYi9uZXQvbmZj L25ldGxpbmsuYwpAQCAtMTExMCw3ICsxMTEwLDYgQEAgc3RhdGljIGludCBuZmNfZ2VubF9sbGNf c2V0X3BhcmFtcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQog CiAJbG9jYWwgPSBuZmNfbGxjcF9maW5kX2xvY2FsKGRldik7CiAJaWYgKCFsb2NhbCkgewotCQlu ZmNfcHV0X2RldmljZShkZXYpOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXhpdDsKIAl9CkBA IC0xMTcwLDcgKzExNjksNiBAQCBzdGF0aWMgaW50IG5mY19nZW5sX2xsY19zZHJlcShzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCiAJbG9jYWwgPSBuZmNfbGxj cF9maW5kX2xvY2FsKGRldik7CiAJaWYgKCFsb2NhbCkgewotCQluZmNfcHV0X2RldmljZShkZXYp OwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXhpdDsKIAl9Ci0tIAoyLjIwLjEKCgpGcm9tIDRh NTJhOWM2Yjc5MDMzNThiMGJlMTRiYjk0NmQ2MmVhYTI5NmEyOGYgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFBhbiBCaWFuIDxiaWFucGFuMjAxNkAxNjMuY29tPgpEYXRlOiBUaHUsIDcg Tm92IDIwMTkgMDk6MzM6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIDEwLzE1XSBORkM6IHN0MjFu ZmNhOiBmaXggZG91YmxlIGZyZWUKClsgVXBzdHJlYW0gY29tbWl0IDk5YThlZmJiNmUzMGI3MmFj OThjZWNmODExMDNmODQ3YWJmZmIxZTUgXQoKVGhlIHZhcmlhYmxlIG5mY2lkX3NrYiBpcyBub3Qg Y2hhbmdlZCBpbiB0aGUgY2FsbGVlIG5mY19oY2lfZ2V0X3BhcmFtKCkKaWYgZXJyb3Igb2NjdXJz LiBDb25zZXF1ZW50bHksIHRoZSBmcmVlZCB2YXJpYWJsZSBuZmNpZF9za2Igd2lsbCBiZQpmcmVl ZCBhZ2FpbiwgcmVzdWx0aW5nIGluIGEgZG91YmxlIGZyZWUgYnVnLiBTZXQgbmZjaWRfc2tiIHRv IE5VTEwgYWZ0ZXIKcmVsZWFzaW5nIGl0IHRvIGZpeCB0aGUgYnVnLgoKU2lnbmVkLW9mZi1ieTog UGFuIEJpYW4gPGJpYW5wYW4yMDE2QDE2My5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25mYy9zdDIxbmZjYS9jb3Jl LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmZjL3N0MjFuZmNhL2NvcmUuYyBiL2RyaXZlcnMvbmZjL3N0MjFuZmNhL2NvcmUuYwpp bmRleCBlODAzZmRmYTkxODkuLmYzNzA2OWI1M2IyMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZmMv c3QyMW5mY2EvY29yZS5jCisrKyBiL2RyaXZlcnMvbmZjL3N0MjFuZmNhL2NvcmUuYwpAQCAtNzE5 LDYgKzcxOSw3IEBAIHN0YXRpYyBpbnQgc3QyMW5mY2FfaGNpX2NvbXBsZXRlX3RhcmdldF9kaXNj b3ZlcmVkKHN0cnVjdCBuZmNfaGNpX2RldiAqaGRldiwKIAkJCQkJCQlORkNfUFJPVE9fRkVMSUNB X01BU0s7CiAJCX0gZWxzZSB7CiAJCQlrZnJlZV9za2IobmZjaWRfc2tiKTsKKwkJCW5mY2lkX3Nr YiA9IE5VTEw7CiAJCQkvKiBQMlAgaW4gdHlwZSBBICovCiAJCQlyID0gbmZjX2hjaV9nZXRfcGFy YW0oaGRldiwgU1QyMU5GQ0FfUkZfUkVBREVSX0ZfR0FURSwKIAkJCQkJU1QyMU5GQ0FfUkZfUkVB REVSX0ZfTkZDSUQxLAotLSAKMi4yMC4xCgoKRnJvbSAxMDI5Y2NiNDYwNDg2OTlkMDJmMjZlNmQw MzcwYzllYzg3YTViZjgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYW5pc2ggQ2hv cHJhIDxtYW5pc2hjQG1hcnZlbGwuY29tPgpEYXRlOiBGcmksIDggTm92IDIwMTkgMDI6NDI6MzAg LTA4MDAKU3ViamVjdDogW1BBVENIIDExLzE1XSBxZWRlOiBmaXggTlVMTCBwb2ludGVyIGRlcmVm IGluIF9fcWVkZV9yZW1vdmUoKQoKWyBVcHN0cmVhbSBjb21taXQgZGVhYmM4NzExMWM2OTAwOTdj MDM3NjVlYTAxN2NkNTAwZjczNzZmYyBdCgpXaGlsZSByZWJvb3RpbmcgdGhlIHN5c3RlbSB3aXRo IFNSLUlPViB2ZnMgZW5hYmxlZCBsZWFkcwp0byBiZWxvdyBjcmFzaCBkdWUgdG8gcmVjdXJyZW5j ZSBvZiBfX3FlZGVfcmVtb3ZlKCkgb24gdGhlIFZGCmRldmljZXMgKGZpcnN0IGZyb20gLnNodXRk b3duKCkgZmxvdyBvZiB0aGUgVkYgaXRzZWxmIGFuZAphbm90aGVyIGZyb20gUEYncyAuc2h1dGRv d24oKSBmbG93IGV4ZWN1dGluZyBwY2lfZGlzYWJsZV9zcmlvdigpKQoKVGhpcyBwYXRjaCBhZGRz IGEgc2FmZWd1YXJkIGluIF9fcWVkZV9yZW1vdmUoKSBmbG93IHRvIGZpeCB0aGlzLApzbyB0aGF0 IGRyaXZlciBkb2Vzbid0IGF0dGVtcHQgdG8gcmVtb3ZlICJhbHJlYWR5IHJlbW92ZWQiIGRldmlj ZXMuCgpbICAxOTQuMzYwMTM0XSBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVsIE5VTEwgcG9p bnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwOGRjClsgIDE5NC4zNjAyMjddIElQOiBb PGZmZmZmZmZmYzAzNTUzYzQ+XSBfX3FlZGVfcmVtb3ZlKzB4MjQvMHgxMzAgW3FlZGVdClsgIDE5 NC4zNjAzMDRdIFBHRCAwClsgIDE5NC4zNjAzMjVdIE9vcHM6IDAwMDAgWyMxXSBTTVAKWyAgMTk0 LjM2MDM2MF0gTW9kdWxlcyBsaW5rZWQgaW46IHRjcF9scCBmdXNlIHR1biBicmlkZ2Ugc3RwIGxs YyBkZXZsaW5rIGJvbmRpbmcgaXBfc2V0IG5mbmV0bGluayBpYl9pc2VydCBpc2NzaV90YXJnZXRf bW9kIGliX3NycHQgdGFyZ2V0X2NvcmVfbW9kIGliX3NycCBzY3NpX3RyYW5zcG9ydF9zcnAgc2Nz aV90Z3QgaWJfaXBvaWIgaWJfdW1hZCBycGNyZG1hIHN1bnJwYyByZG1hX3VjbSBpYl91dmVyYnMg aWJfaXNlciByZG1hX2NtIGl3X2NtIGliX2NtIGxpYmlzY3NpIHNjc2lfdHJhbnNwb3J0X2lzY3Np IGRlbGxfc21iaW9zIGlUQ09fd2R0IGlUQ09fdmVuZG9yX3N1cHBvcnQgZGVsbF93bWlfZGVzY3Jp cHRvciBkY2RiYXMgdmZhdCBmYXQgcGNjX2NwdWZyZXEgc2t4X2VkYWMgaW50ZWxfcG93ZXJjbGFt cCBjb3JldGVtcCBpbnRlbF9yYXBsIGlvc2ZfbWJpIGt2bV9pbnRlbCBrdm0gaXJxYnlwYXNzIGNy YzMyX3BjbG11bCBnaGFzaF9jbG11bG5pX2ludGVsIGFlc25pX2ludGVsIGxydyBnZjEyOG11bCBn bHVlX2hlbHBlciBhYmxrX2hlbHBlciBjcnlwdGQgcWVkciBpYl9jb3JlIHBjc3BrciBzZXMgZW5j bG9zdXJlIGpveWRldiBpcG1pX3NzaWYgc2cgaTJjX2k4MDEgbHBjX2ljaCBtZWlfbWUgbWVpIHdt aSBpcG1pX3NpIGlwbWlfZGV2aW50ZiBpcG1pX21zZ2hhbmRsZXIgdHBtX2NyYiBhY3BpX3BhZCBh Y3BpX3Bvd2VyX21ldGVyIHhmcyBsaWJjcmMzMmMgc2RfbW9kIGNyY190MTBkaWYgY3JjdDEwZGlm X2dlbmVyaWMgY3JjdDEwZGlmX3BjbG11bCBjcmN0MTBkaWZfY29tbW9uIGNyYzMyY19pbnRlbCBt Z2FnMjAwClsgIDE5NC4zNjEwNDRdICBxZWRlIGkyY19hbGdvX2JpdCBkcm1fa21zX2hlbHBlciBx ZWQgc3lzY29weWFyZWEgc3lzZmlsbHJlY3QgbnZtZSBzeXNpbWdibHQgZmJfc3lzX2ZvcHMgdHRt IG52bWVfY29yZSBtcHQzc2FzIGNyYzggcHRwIGRybSBwcHNfY29yZSBhaGNpIHJhaWRfY2xhc3Mg c2NzaV90cmFuc3BvcnRfc2FzIGxpYmFoY2kgbGliYXRhIGRybV9wYW5lbF9vcmllbnRhdGlvbl9x dWlya3MgbmZpdCBsaWJudmRpbW0gZG1fbWlycm9yIGRtX3JlZ2lvbl9oYXNoIGRtX2xvZyBkbV9t b2QgW2xhc3QgdW5sb2FkZWQ6IGlwX3RhYmxlc10KWyAgMTk0LjM2MTI5N10gQ1BVOiA1MSBQSUQ6 IDc5OTYgQ29tbTogcmVib290IEtkdW1wOiBsb2FkZWQgTm90IHRhaW50ZWQgMy4xMC4wLTEwNjIu ZWw3Lng4Nl82NCAjMQpbICAxOTQuMzYxMzU5XSBIYXJkd2FyZSBuYW1lOiBEZWxsIEluYy4gUG93 ZXJFZGdlIE1YODQwYy8wNzQwSFcsIEJJT1MgMi40LjYgMTAvMTUvMjAxOQpbICAxOTQuMzYxNDEy XSB0YXNrOiBmZmZmOWNlYTliMzYwMDAwIHRpOiBmZmZmOWNlYWJlYmRjMDAwIHRhc2sudGk6IGZm ZmY5Y2VhYmViZGMwMDAKWyAgMTk0LjM2MTQ2M10gUklQOiAwMDEwOls8ZmZmZmZmZmZjMDM1NTNj ND5dICBbPGZmZmZmZmZmYzAzNTUzYzQ+XSBfX3FlZGVfcmVtb3ZlKzB4MjQvMHgxMzAgW3FlZGVd ClsgIDE5NC4zNjE1MzRdIFJTUDogMDAxODpmZmZmOWNlYWJlYmRmYWMwICBFRkxBR1M6IDAwMDEw MjgyClsgIDE5NC4zNjE1NzBdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZmZmY5Y2QwMTM4 NDYwOTggUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5NC4zNjE2MjFdIFJEWDogMDAwMDAwMDAw MDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmOWNkMDEzODQ2MDk4ClsgIDE5 NC4zNjE2NjhdIFJCUDogZmZmZjljZWFiZWJkZmFlOCBSMDg6IDAwMDAwMDAwMDAwMDAwMDAgUjA5 OiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5NC4zNjE3MTVdIFIxMDogMDAwMDAwMDBiZmUxNDIwMSBS MTE6IGZmZmY5Y2VhYmZlMTQxZTAgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5NC4zNjE3NjJd IFIxMzogZmZmZjljZDAxMzg0NjA5OCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1OiBmZmZmOWNl YWI1ZTQ4MDAwClsgIDE5NC4zNjE4MTBdIEZTOiAgMDAwMDdmNzk5YzAyZDg4MCgwMDAwKSBHUzpm ZmZmOWNlYWNiMGMwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAgMTk0LjM2MTg2 NV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1MDAzMwpbICAx OTQuMzYxOTAzXSBDUjI6IDAwMDAwMDAwMDAwMDA4ZGMgQ1IzOiAwMDAwMDAxYmRhYzc2MDAwIENS NDogMDAwMDAwMDAwMDc2MDdlMApbICAxOTQuMzYxOTUzXSBEUjA6IDAwMDAwMDAwMDAwMDAwMDAg RFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAxOTQuMzYyMDAy XSBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERSNzogMDAwMDAw MDAwMDAwMDQwMApbICAxOTQuMzYyMDUxXSBQS1JVOiA1NTU1NTU1NApbICAxOTQuMzYyMDczXSBD YWxsIFRyYWNlOgpbICAxOTQuMzYyMTA5XSAgWzxmZmZmZmZmZmMwMzU1NTAwPl0gcWVkZV9yZW1v dmUrMHgxMC8weDIwIFtxZWRlXQpbICAxOTQuMzYyMTgwXSAgWzxmZmZmZmZmZmI5N2QwZjNlPl0g cGNpX2RldmljZV9yZW1vdmUrMHgzZS8weGMwClsgIDE5NC4zNjIyNDBdICBbPGZmZmZmZmZmYjk4 YjNjNTI+XSBfX2RldmljZV9yZWxlYXNlX2RyaXZlcisweDgyLzB4ZjAKWyAgMTk0LjM2MjI4NV0g IFs8ZmZmZmZmZmZiOThiM2NlMz5dIGRldmljZV9yZWxlYXNlX2RyaXZlcisweDIzLzB4MzAKWyAg MTk0LjM2MjM0M10gIFs8ZmZmZmZmZmZiOTdjODZkND5dIHBjaV9zdG9wX2J1c19kZXZpY2UrMHg4 NC8weGEwClsgIDE5NC4zNjIzODhdICBbPGZmZmZmZmZmYjk3Yzg3ZTI+XSBwY2lfc3RvcF9hbmRf cmVtb3ZlX2J1c19kZXZpY2UrMHgxMi8weDIwClsgIDE5NC4zNjI0NTBdICBbPGZmZmZmZmZmYjk3 ZjE1M2Y+XSBwY2lfaW92X3JlbW92ZV92aXJ0Zm4rMHhhZi8weDE2MApbICAxOTQuMzYyNDk2XSAg WzxmZmZmZmZmZmI5N2YxYWVjPl0gc3Jpb3ZfZGlzYWJsZSsweDNjLzB4ZjAKWyAgMTk0LjM2MjUz NF0gIFs8ZmZmZmZmZmZiOTdmMWJjMz5dIHBjaV9kaXNhYmxlX3NyaW92KzB4MjMvMHgzMApbICAx OTQuMzYyNTk5XSAgWzxmZmZmZmZmZmMwMmY4M2MzPl0gcWVkX3NyaW92X2Rpc2FibGUrMHg1ZTMv MHg2NTAgW3FlZF0KWyAgMTk0LjM2MjY1OF0gIFs8ZmZmZmZmZmZiOTYyMmRmNj5dID8ga2ZyZWUr MHgxMDYvMHgxNDAKWyAgMTk0LjM2MjcwOV0gIFs8ZmZmZmZmZmZjMDJjYzBjMD5dID8gcWVkX2Zy ZWVfc3RyZWFtX21lbSsweDcwLzB4OTAgW3FlZF0KWyAgMTk0LjM2Mjc1NF0gIFs8ZmZmZmZmZmZi OTYyMmRmNj5dID8ga2ZyZWUrMHgxMDYvMHgxNDAKWyAgMTk0LjM2MjgwM10gIFs8ZmZmZmZmZmZj MDJjZDY1OT5dIHFlZF9zbG93cGF0aF9zdG9wKzB4MWE5LzB4MWQwIFtxZWRdClsgIDE5NC4zNjI4 NTRdICBbPGZmZmZmZmZmYzAzNTU0NGU+XSBfX3FlZGVfcmVtb3ZlKzB4YWUvMHgxMzAgW3FlZGVd ClsgIDE5NC4zNjI5MDRdICBbPGZmZmZmZmZmYzAzNTU0ZTA+XSBxZWRlX3NodXRkb3duKzB4MTAv MHgyMCBbcWVkZV0KWyAgMTk0LjM2Mjk1Nl0gIFs8ZmZmZmZmZmZiOTdjZjkwYT5dIHBjaV9kZXZp Y2Vfc2h1dGRvd24rMHgzYS8weDYwClsgIDE5NC4zNjMwMTBdICBbPGZmZmZmZmZmYjk4YjE4MGI+ XSBkZXZpY2Vfc2h1dGRvd24rMHhmYi8weDFmMApbICAxOTQuMzYzMDY2XSAgWzxmZmZmZmZmZmI5 NGI2NmM2Pl0ga2VybmVsX3Jlc3RhcnRfcHJlcGFyZSsweDM2LzB4NDAKWyAgMTk0LjM2MzEwN10g IFs8ZmZmZmZmZmZiOTRiNjZlMj5dIGtlcm5lbF9yZXN0YXJ0KzB4MTIvMHg2MApbICAxOTQuMzYz MTQ2XSAgWzxmZmZmZmZmZmI5NGI2OTU5Pl0gU1lTQ19yZWJvb3QrMHgyMjkvMHgyNjAKWyAgMTk0 LjM2MzE5Nl0gIFs8ZmZmZmZmZmZiOTVmMjAwZD5dID8gaGFuZGxlX21tX2ZhdWx0KzB4MzlkLzB4 OWIwClsgIDE5NC4zNjMyNTNdICBbPGZmZmZmZmZmYjk0MmI2MjE+XSA/IF9fc3dpdGNoX3RvKzB4 MTUxLzB4NTgwClsgIDE5NC4zNjMzMDRdICBbPGZmZmZmZmZmYjliN2VjMjg+XSA/IF9fc2NoZWR1 bGUrMHg0NDgvMHg5YzAKWyAgMTk0LjM2MzM0M10gIFs8ZmZmZmZmZmZiOTRiNjlmZT5dIFN5U19y ZWJvb3QrMHhlLzB4MTAKWyAgMTk0LjM2MzM4N10gIFs8ZmZmZmZmZmZiOWI4YmVkZT5dIHN5c3Rl bV9jYWxsX2Zhc3RwYXRoKzB4MjUvMHgyYQpbICAxOTQuMzYzNDMwXSBDb2RlOiBmOSBlOSAzNyBm ZiBmZiBmZiA5MCAwZiAxZiA0NCAwMCAwMCA1NSA0OCA4OSBlNSA0MSA1NyA0MSA1NiA0MSA1NSA0 YyA4ZCBhZiA5OCAwMCAwMCAwMCA0MSA1NCA0YyA4OSBlZiA0MSA4OSBmNCA1MyBlOCA0YyBlNCA1 NSBmOSA8ODA+IGI4IGRjIDA4IDAwIDAwIDAxIDQ4IDg5IGMzIDRjIDhkIGI4IGMwIDA4IDAwIDAw IDRjIDhiIGIwIGMwClsgIDE5NC4zNjM3MTJdIFJJUCAgWzxmZmZmZmZmZmMwMzU1M2M0Pl0gX19x ZWRlX3JlbW92ZSsweDI0LzB4MTMwIFtxZWRlXQpbICAxOTQuMzYzNzY0XSAgUlNQIDxmZmZmOWNl YWJlYmRmYWMwPgpbICAxOTQuMzYzNzkxXSBDUjI6IDAwMDAwMDAwMDAwMDA4ZGMKClNpZ25lZC1v ZmYtYnk6IE1hbmlzaCBDaG9wcmEgPG1hbmlzaGNAbWFydmVsbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEFyaWVsIEVsaW9yIDxhZWxpb3JAbWFydmVsbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN1ZGFyc2Fu YSBLYWxsdXJ1IDxza2FsbHVydUBtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3Fs b2dpYy9xZWRlL3FlZGVfbWFpbi5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L3Fsb2dpYy9xZWRlL3FlZGVfbWFpbi5jCmluZGV4IGYzZDljNDBjNDExNS4uNjMwYjEzYTljM2Q1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4u YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYwpAQCAt MTE3MCw4ICsxMTcwLDE2IEBAIGVudW0gcWVkZV9yZW1vdmVfbW9kZSB7CiBzdGF0aWMgdm9pZCBf X3FlZGVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBlbnVtIHFlZGVfcmVtb3ZlX21vZGUg bW9kZSkKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IHBjaV9nZXRfZHJ2ZGF0YShwZGV2 KTsKLQlzdHJ1Y3QgcWVkZV9kZXYgKmVkZXYgPSBuZXRkZXZfcHJpdihuZGV2KTsKLQlzdHJ1Y3Qg cWVkX2RldiAqY2RldiA9IGVkZXYtPmNkZXY7CisJc3RydWN0IHFlZGVfZGV2ICplZGV2OworCXN0 cnVjdCBxZWRfZGV2ICpjZGV2OworCisJaWYgKCFuZGV2KSB7CisJCWRldl9pbmZvKCZwZGV2LT5k ZXYsICJEZXZpY2UgaGFzIGFscmVhZHkgYmVlbiByZW1vdmVkXG4iKTsKKwkJcmV0dXJuOworCX0K KworCWVkZXYgPSBuZXRkZXZfcHJpdihuZGV2KTsKKwljZGV2ID0gZWRldi0+Y2RldjsKIAogCURQ X0lORk8oZWRldiwgIlN0YXJ0aW5nIHFlZGVfcmVtb3ZlXG4iKTsKIAotLSAKMi4yMC4xCgoKRnJv bSA3YjQyZjY2NGVkMTA2YWViOTNhYTQxNmYyMzM5ZGFmODdjY2ZhMTEyIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBDbGF1ZGl1IE1hbm9pbCA8Y2xhdWRpdS5tYW5vaWxAbnhwLmNvbT4K RGF0ZTogVHVlLCA1IE5vdiAyMDE5IDIzOjUwOjEzICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8x NV0gbmV0OiBtc2NjOiBvY2Vsb3Q6IGRvbid0IGhhbmRsZSBuZXRkZXYgZXZlbnRzIGZvciBvdGhl cgogbmV0ZGV2cwoKWyBVcHN0cmVhbSBjb21taXQgN2FmYjNlNTc1ZTVhYTlmNWEyMDBhM2ViM2Y0 NWQ4MTMwZjZkNjYwMSBdCgpUaGUgY2hlY2sgdGhhdCB0aGUgZXZlbnQgaXMgYWN0dWFsbHkgZm9y IHRoaXMgZGV2aWNlIHNob3VsZCBiZSBtb3ZlZApmcm9tIHRoZSAicG9ydCIgaGFuZGxlciB0byB0 aGUgbmV0IGRldmljZSBoYW5kbGVyLgoKT3RoZXJ3aXNlIHRoZSBwb3J0IGhhbmRsZXIgd2lsbCBk ZW55IGJvbmRpbmcgY29uZmlndXJhdGlvbiBmb3Igb3RoZXIKbmV0IGRldmljZXMgaW4gdGhlIHNh bWUgc3lzdGVtIChsaWtlIGVuZXRjIGluIHRoZSBMUzEwMjhBKSB0aGF0IGRvbid0CmhhdmUgdGhl IGxhZ191cHBlcl9pbmZvLT50eF90eXBlIHJlc3RyaWN0aW9uIHRoYXQgb2NlbG90IGhhcy4KCkZp eGVzOiBkYzk2ZWUzNzMwZmMgKCJuZXQ6IG1zY2M6IG9jZWxvdDogYWRkIGJvbmRpbmcgc3VwcG9y dCIpClNpZ25lZC1vZmYtYnk6IENsYXVkaXUgTWFub2lsIDxjbGF1ZGl1Lm1hbm9pbEBueHAuY29t PgpTaWduZWQtb2ZmLWJ5OiBWbGFkaW1pciBPbHRlYW4gPG9sdGVhbnZAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L21zY2Mvb2NlbG90LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29j ZWxvdC5jCmluZGV4IDczMmJhMjFkMzM2OS4uYWQwOWRiNGNlNjhlIDEwMDY0NAotLS0gYS9kcml2 ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0 L21zY2Mvb2NlbG90LmMKQEAgLTE1MDYsOSArMTUwNiw2IEBAIHN0YXRpYyBpbnQgb2NlbG90X25l dGRldmljZV9wb3J0X2V2ZW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3RydWN0IG9jZWxv dF9wb3J0ICpvY2Vsb3RfcG9ydCA9IG5ldGRldl9wcml2KGRldik7CiAJaW50IGVyciA9IDA7CiAK LQlpZiAoIW9jZWxvdF9uZXRkZXZpY2VfZGV2X2NoZWNrKGRldikpCi0JCXJldHVybiAwOwotCiAJ c3dpdGNoIChldmVudCkgewogCWNhc2UgTkVUREVWX0NIQU5HRVVQUEVSOgogCQlpZiAobmV0aWZf aXNfYnJpZGdlX21hc3RlcihpbmZvLT51cHBlcl9kZXYpKSB7CkBAIC0xNTQ1LDYgKzE1NDIsOSBA QCBzdGF0aWMgaW50IG9jZWxvdF9uZXRkZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Jsb2Nr ICp1bnVzZWQsCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IG5ldGRldl9ub3RpZmllcl9pbmZv X3RvX2RldihwdHIpOwogCWludCByZXQgPSAwOwogCisJaWYgKCFvY2Vsb3RfbmV0ZGV2aWNlX2Rl dl9jaGVjayhkZXYpKQorCQlyZXR1cm4gMDsKKwogCWlmIChldmVudCA9PSBORVRERVZfUFJFQ0hB TkdFVVBQRVIgJiYKIAkgICAgbmV0aWZfaXNfbGFnX21hc3RlcihpbmZvLT51cHBlcl9kZXYpKSB7 CiAJCXN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKmxhZ191cHBlcl9pbmZvID0gaW5mby0+ dXBwZXJfaW5mbzsKLS0gCjIuMjAuMQoKCkZyb20gZWM4YmFlNmQ4NjgwMGZlMGYzMWE0NWMwNjFj YjE1YzRjN2JkZGZjYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2xhdWRpdSBNYW5v aWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+CkRhdGU6IFR1ZSwgNSBOb3YgMjAxOSAyMzo1MDox NCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMTVdIG5ldDogbXNjYzogb2NlbG90OiBmaXggTlVM TCBwb2ludGVyIG9uIExBRyBzbGF2ZQogcmVtb3ZhbAoKWyBVcHN0cmVhbSBjb21taXQgM2IzZWVk OGVlYzQ3MjU5OTM5ZWU2YzNkNThhZWExYzMxMWRkZWUzYiBdCgpsYWdfdXBwZXJfaW5mbyBtYXkg YmUgTlVMTCBvbiBzbGF2ZSByZW1vdmFsLgoKRml4ZXM6IGRjOTZlZTM3MzBmYyAoIm5ldDogbXNj Yzogb2NlbG90OiBhZGQgYm9uZGluZyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTogQ2xhdWRpdSBN YW5vaWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIE9s dGVhbiA8b2x0ZWFudkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxv dC5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYwppbmRleCBhZDA5ZGI0Y2U2OGUuLmUwNWE1 OWFlOWE1OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYwor KysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCkBAIC0xNTUwLDcgKzE1NTAs OCBAQCBzdGF0aWMgaW50IG9jZWxvdF9uZXRkZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlmaWVyX2Js b2NrICp1bnVzZWQsCiAJCXN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKmxhZ191cHBlcl9p bmZvID0gaW5mby0+dXBwZXJfaW5mbzsKIAkJc3RydWN0IG5ldGxpbmtfZXh0X2FjayAqZXh0YWNr OwogCi0JCWlmIChsYWdfdXBwZXJfaW5mby0+dHhfdHlwZSAhPSBORVRERVZfTEFHX1RYX1RZUEVf SEFTSCkgeworCQlpZiAobGFnX3VwcGVyX2luZm8gJiYKKwkJICAgIGxhZ191cHBlcl9pbmZvLT50 eF90eXBlICE9IE5FVERFVl9MQUdfVFhfVFlQRV9IQVNIKSB7CiAJCQlleHRhY2sgPSBuZXRkZXZf bm90aWZpZXJfaW5mb190b19leHRhY2soJmluZm8tPmluZm8pOwogCQkJTkxfU0VUX0VSUl9NU0df TU9EKGV4dGFjaywgIkxBRyBkZXZpY2UgdXNpbmcgdW5zdXBwb3J0ZWQgVHggdHlwZSIpOwogCi0t IAoyLjIwLjEKCgpGcm9tIDg0NTg2NGY0MTY0NDBhZDE0MTZiMGY0ZWU1OTMxNDdhMmVmNzkzNjAg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29v Z2xlLmNvbT4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDA5OjI2OjE5IC0wODAwClN1YmplY3Q6IFtQ QVRDSCAxNC8xNV0gaXB2NjogZml4ZXMgcnQ2X3Byb2JlKCkgYW5kIGZpYjZfbmgtPmxhc3RfcHJv YmUgaW5pdAoKWyBVcHN0cmVhbSBjb21taXQgMWJlZjRjMjIzYjg1ODhjZjUwNDMzYmRjMmM2OTUz ZDgyOTQ5YjNiMyBdCgpXaGlsZSBsb29raW5nIGF0IGEgc3l6Ym90IEtDU0FOIHJlcG9ydCBbMV0s IEkgZm91bmQgbXVsdGlwbGUKaXNzdWVzIGluIHRoaXMgY29kZSA6CgoxKSBmaWI2X25oLT5sYXN0 X3Byb2JlIGhhcyBhbiBpbml0aWFsIHZhbHVlIG9mIDAuCgogICBXaGlsZSBwcm9iYWJseSBva2F5 IG9uIDY0Yml0IGtlcm5lbHMsIHRoaXMgY2F1c2VzIGFuIGlzc3VlCiAgIG9uIDMyYml0IGtlcm5l bHMgc2luY2UgdGhlIHRpbWVfYWZ0ZXIoamlmZmllcywgMCArIGludGVydmFsKQogICBtaWdodCBi ZSBmYWxzZSB+MjQgZGF5cyBhZnRlciBib290IChmb3IgSFo9MTAwMCkKCjIpIFRoZSBkYXRhLXJh Y2UgZm91bmQgYnkgS0NTQU4KICAgSSBjb3VsZCB1c2UgUkVBRF9PTkNFKCkgYW5kIFdSSVRFX09O Q0UoKSwgYnV0IHdlIGFsc28gY2FuCiAgIHRha2UgdGhlIG9wcG9ydHVuaXR5IG9mIG5vdCBwaWxp bmctdXAgdG9vIG1hbnkgcnQ2X3Byb2JlX2RlZmVycmVkKCkKICAgd29ya3MgYnkgdXNpbmcgaW5z dGVhZCBjbXB4Y2hnKCkgc28gdGhhdCBvbmx5IG9uZSBjcHUgd2lucyB0aGUgcmFjZS4KClsxXQpC VUc6IEtDU0FOOiBkYXRhLXJhY2UgaW4gZmluZF9tYXRjaCAvIGZpbmRfbWF0Y2gKCndyaXRlIHRv IDB4ZmZmZjg4ODBiYjdhYWJlOCBvZiA4IGJ5dGVzIGJ5IGludGVycnVwdCBvbiBjcHUgMToKIHJ0 Nl9wcm9iZSBuZXQvaXB2Ni9yb3V0ZS5jOjY2MyBbaW5saW5lXQogZmluZF9tYXRjaCBuZXQvaXB2 Ni9yb3V0ZS5jOjc1NyBbaW5saW5lXQogZmluZF9tYXRjaCsweDViZC8weDc5MCBuZXQvaXB2Ni9y b3V0ZS5jOjczMwogX19maW5kX3JyX2xlYWYrMHhlMy8weDc4MCBuZXQvaXB2Ni9yb3V0ZS5jOjgz MQogZmluZF9ycl9sZWFmIG5ldC9pcHY2L3JvdXRlLmM6ODUyIFtpbmxpbmVdCiBydDZfc2VsZWN0 IG5ldC9pcHY2L3JvdXRlLmM6ODk2IFtpbmxpbmVdCiBmaWI2X3RhYmxlX2xvb2t1cCsweDM4My8w eDY1MCBuZXQvaXB2Ni9yb3V0ZS5jOjIxNjQKIGlwNl9wb2xfcm91dGUrMHhlZS8weDVjMCBuZXQv aXB2Ni9yb3V0ZS5jOjIyMDAKIGlwNl9wb2xfcm91dGVfb3V0cHV0KzB4NDgvMHg2MCBuZXQvaXB2 Ni9yb3V0ZS5jOjI0NTIKIGZpYjZfcnVsZV9sb29rdXArMHgzZDYvMHg0NzAgbmV0L2lwdjYvZmli Nl9ydWxlcy5jOjExNwogaXA2X3JvdXRlX291dHB1dF9mbGFnc19ub3JlZisweDE2Yi8weDIzMCBu ZXQvaXB2Ni9yb3V0ZS5jOjI0ODQKIGlwNl9yb3V0ZV9vdXRwdXRfZmxhZ3MrMHg1MC8weDFhMCBu ZXQvaXB2Ni9yb3V0ZS5jOjI0OTcKIGlwNl9kc3RfbG9va3VwX3RhaWwrMHgyNWQvMHhjMzAgbmV0 L2lwdjYvaXA2X291dHB1dC5jOjEwNDkKIGlwNl9kc3RfbG9va3VwX2Zsb3crMHg2OC8weDEyMCBu ZXQvaXB2Ni9pcDZfb3V0cHV0LmM6MTE1MAogaW5ldDZfY3NrX3JvdXRlX3NvY2tldCsweDJmNy8w eDQyMCBuZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYzoxMDYKIGluZXQ2X2Nza194bWl0 KzB4OTEvMHgxZjAgbmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmM6MTIxCiBfX3RjcF90 cmFuc21pdF9za2IrMHhlODEvMHgxZDYwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzoxMTY5CiB0Y3Bf dHJhbnNtaXRfc2tiIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzoxMTg1IFtpbmxpbmVdCiB0Y3BfeG1p dF9wcm9iZV9za2IrMHgxOWIvMHgxZDAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjM3MzUKCnJlYWQg dG8gMHhmZmZmODg4MGJiN2FhYmU4IG9mIDggYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAwOgog cnQ2X3Byb2JlIG5ldC9pcHY2L3JvdXRlLmM6NjU3IFtpbmxpbmVdCiBmaW5kX21hdGNoIG5ldC9p cHY2L3JvdXRlLmM6NzU3IFtpbmxpbmVdCiBmaW5kX21hdGNoKzB4NTIxLzB4NzkwIG5ldC9pcHY2 L3JvdXRlLmM6NzMzCiBfX2ZpbmRfcnJfbGVhZisweGUzLzB4NzgwIG5ldC9pcHY2L3JvdXRlLmM6 ODMxCiBmaW5kX3JyX2xlYWYgbmV0L2lwdjYvcm91dGUuYzo4NTIgW2lubGluZV0KIHJ0Nl9zZWxl Y3QgbmV0L2lwdjYvcm91dGUuYzo4OTYgW2lubGluZV0KIGZpYjZfdGFibGVfbG9va3VwKzB4Mzgz LzB4NjUwIG5ldC9pcHY2L3JvdXRlLmM6MjE2NAogaXA2X3BvbF9yb3V0ZSsweGVlLzB4NWMwIG5l dC9pcHY2L3JvdXRlLmM6MjIwMAogaXA2X3BvbF9yb3V0ZV9vdXRwdXQrMHg0OC8weDYwIG5ldC9p cHY2L3JvdXRlLmM6MjQ1MgogZmliNl9ydWxlX2xvb2t1cCsweDNkNi8weDQ3MCBuZXQvaXB2Ni9m aWI2X3J1bGVzLmM6MTE3CiBpcDZfcm91dGVfb3V0cHV0X2ZsYWdzX25vcmVmKzB4MTZiLzB4MjMw IG5ldC9pcHY2L3JvdXRlLmM6MjQ4NAogaXA2X3JvdXRlX291dHB1dF9mbGFncysweDUwLzB4MWEw IG5ldC9pcHY2L3JvdXRlLmM6MjQ5NwogaXA2X2RzdF9sb29rdXBfdGFpbCsweDI1ZC8weGMzMCBu ZXQvaXB2Ni9pcDZfb3V0cHV0LmM6MTA0OQogaXA2X2RzdF9sb29rdXBfZmxvdysweDY4LzB4MTIw IG5ldC9pcHY2L2lwNl9vdXRwdXQuYzoxMTUwCiBpbmV0Nl9jc2tfcm91dGVfc29ja2V0KzB4MmY3 LzB4NDIwIG5ldC9pcHY2L2luZXQ2X2Nvbm5lY3Rpb25fc29jay5jOjEwNgogaW5ldDZfY3NrX3ht aXQrMHg5MS8weDFmMCBuZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYzoxMjEKIF9fdGNw X3RyYW5zbWl0X3NrYisweGU4MS8weDFkNjAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjExNjkKClJl cG9ydGVkIGJ5IEtlcm5lbCBDb25jdXJyZW5jeSBTYW5pdGl6ZXIgb246CkNQVTogMCBQSUQ6IDE4 ODk0IENvbW06IHVkZXZkIE5vdCB0YWludGVkIDUuNC4wLXJjMysgIzAKSGFyZHdhcmUgbmFtZTog R29vZ2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1Mg R29vZ2xlIDAxLzAxLzIwMTEKCkZpeGVzOiBjYzNhODZjODAyZjAgKCJpcHY2OiBDaGFuZ2UgcnQ2 X3Byb2JlIHRvIHRha2UgYSBmaWI2X25oIikKRml4ZXM6IGY1NDdmYWM2MjRiZSAoImlwdjY6IHJh dGUtbGltaXQgcHJvYmVzIGZvciBuZWlnaGJvdXJsZXNzIHJvdXRlcyIpClNpZ25lZC1vZmYtYnk6 IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KUmVwb3J0ZWQtYnk6IHN5emJvdCA8 c3l6a2FsbGVyQGdvb2dsZWdyb3Vwcy5jb20+ClJldmlld2VkLWJ5OiBEYXZpZCBBaGVybiA8ZHNh aGVybkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9yb3V0ZS5jIHwgMTMgKysrKysrKysrKy0tLQogMSBm aWxlIGNoYW5nZWQsIDEwIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRlLmMKaW5kZXggYzg4NTg2MzgwMTM0 Li4wNzZjMjFmNmE2NDUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2L3JvdXRlLmMKKysrIGIvbmV0L2lw djYvcm91dGUuYwpAQCAtNTIxLDYgKzUyMSw3IEBAIHN0YXRpYyB2b2lkIHJ0Nl9wcm9iZShzdHJ1 Y3QgZmliNl9pbmZvICpydCkKIHsKIAlzdHJ1Y3QgX19ydDZfcHJvYmVfd29yayAqd29yayA9IE5V TEw7CiAJY29uc3Qgc3RydWN0IGluNl9hZGRyICpuaF9ndzsKKwl1bnNpZ25lZCBsb25nIGxhc3Rf cHJvYmU7CiAJc3RydWN0IG5laWdoYm91ciAqbmVpZ2g7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRl djsKIAlzdHJ1Y3QgaW5ldDZfZGV2ICppZGV2OwpAQCAtNTM5LDYgKzU0MCw3IEBAIHN0YXRpYyB2 b2lkIHJ0Nl9wcm9iZShzdHJ1Y3QgZmliNl9pbmZvICpydCkKIAluaF9ndyA9ICZydC0+ZmliNl9u aC5uaF9ndzsKIAlkZXYgPSBydC0+ZmliNl9uaC5uaF9kZXY7CiAJcmN1X3JlYWRfbG9ja19iaCgp OworCWxhc3RfcHJvYmUgPSBSRUFEX09OQ0UocnQtPmxhc3RfcHJvYmUpOwogCWlkZXYgPSBfX2lu Nl9kZXZfZ2V0KGRldik7CiAJbmVpZ2ggPSBfX2lwdjZfbmVpZ2hfbG9va3VwX25vcmVmKGRldiwg bmhfZ3cpOwogCWlmIChuZWlnaCkgewpAQCAtNTU0LDEzICs1NTYsMTUgQEAgc3RhdGljIHZvaWQg cnQ2X3Byb2JlKHN0cnVjdCBmaWI2X2luZm8gKnJ0KQogCQkJCV9fbmVpZ2hfc2V0X3Byb2JlX29u Y2UobmVpZ2gpOwogCQl9CiAJCXdyaXRlX3VubG9jaygmbmVpZ2gtPmxvY2spOwotCX0gZWxzZSBp ZiAodGltZV9hZnRlcihqaWZmaWVzLCBydC0+bGFzdF9wcm9iZSArCisJfSBlbHNlIGlmICh0aW1l X2FmdGVyKGppZmZpZXMsIGxhc3RfcHJvYmUgKwogCQkJCSAgICAgICBpZGV2LT5jbmYucnRyX3By b2JlX2ludGVydmFsKSkgewogCQl3b3JrID0ga21hbGxvYyhzaXplb2YoKndvcmspLCBHRlBfQVRP TUlDKTsKIAl9CiAKLQlpZiAod29yaykgewotCQlydC0+bGFzdF9wcm9iZSA9IGppZmZpZXM7CisJ aWYgKCF3b3JrIHx8IGNtcHhjaGcoJnJ0LT5sYXN0X3Byb2JlLAorCQkJICAgICBsYXN0X3Byb2Jl LCBqaWZmaWVzKSAhPSBsYXN0X3Byb2JlKSB7CisJCWtmcmVlKHdvcmspOworCX0gZWxzZSB7CiAJ CUlOSVRfV09SSygmd29yay0+d29yaywgcnQ2X3Byb2JlX2RlZmVycmVkKTsKIAkJd29yay0+dGFy Z2V0ID0gKm5oX2d3OwogCQlkZXZfaG9sZChkZXYpOwpAQCAtMzA2Niw2ICszMDcwLDkgQEAgc3Rh dGljIHN0cnVjdCBmaWI2X2luZm8gKmlwNl9yb3V0ZV9pbmZvX2NyZWF0ZShzdHJ1Y3QgZmliNl9j b25maWcgKmNmZywKIAlpZiAoIXJ0KQogCQlnb3RvIG91dDsKIAorI2lmZGVmIENPTkZJR19JUFY2 X1JPVVRFUl9QUkVGCisJcnQtPmxhc3RfcHJvYmUgPSBqaWZmaWVzOworI2VuZGlmCiAJaWYgKGNm Zy0+ZmNfZmxhZ3MgJiBSVEZfQUREUkNPTkYpCiAJCXJ0LT5kc3Rfbm9jb3VudCA9IHRydWU7CiAK LS0gCjIuMjAuMQoKCkZyb20gNWVlZWNiMDNmNTI5MTA3Y2QxY2E2NThjZDg4ZjI5MjhkNTFiNGZm ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU2FsaWwgTWVodGEgPHNhbGlsLm1laHRh QGh1YXdlaS5jb20+CkRhdGU6IFRodSwgNyBOb3YgMjAxOSAxNzowOTo1MyArMDAwMApTdWJqZWN0 OiBbUEFUQ0ggMTUvMTVdIG5ldDogaG5zOiBGaXggdGhlIHN0cmF5IG5ldHBvbGwgbG9ja3MgY2F1 c2luZyBkZWFkbG9jawogaW4gTkFQSSBwYXRoCgpbIFVwc3RyZWFtIGNvbW1pdCBiZjVhNmI0YzQ3 NGM1ODkyNDRkYzI1ZWUxYWYyYzNjODI5MjI4ZWY4IF0KClRoaXMgcGF0Y2ggZml4ZXMgdGhlIHBy b2JsZW0gb2YgdGhlIHNwaW4gbG9ja3MsIG9yaWdpbmFsbHkKbWVhbnQgZm9yIHRoZSBuZXRwb2xs IHBhdGggb2YgaG5zIGRyaXZlciwgY2F1c2luZyBkZWFkbG9jayBpbgp0aGUgbm9ybWFsIE5BUEkg cG9sbCBwYXRoLiBUaGUgaXNzdWUgaGFwcGVuZWQgZHVlIHRvIHRoZSBwcmVzZW5jZQpvZiB0aGUg c3RyYXkgbGVmdG92ZXIgc3BpbiBsb2NrIGNvZGUgcmVsYXRlZCB0byB0aGUgbmV0cG9sbCwKd2hv c2Ugc3VwcG9ydCB3YXMgZWFybGllciByZW1vdmVkIGZyb20gdGhlIEhOU1sxXSwgZ290IGFjdGl2 YXRlZApkdWUgdG8gZW5hYmxpbmcgb2YgTkVUX1BPTExfQ09OVFJPTExFUiBzd2l0Y2guCgpFYXJs aWVyIGJhY2tncm91bmQ6ClRoZSBuZXRwb2xsIGhhbmRsaW5nIGNvZGUgb3JpZ2luYWxseSBoYWQg dGhpcyBidWcoYXMgaWRlbnRpZmllZApieSBNYXJjIFp5bmdpZXJbMl0pIG9mIHdyb25nIHNwaW4g bG9jayBBUEkgYmVpbmcgdXNlZCB3aGljaCBkaWQKbm90IGRpc2FibGUgdGhlIGludGVycnVwdHMg YW5kIGhlbmNlIGNvdWxkIGNhdXNlIGxvY2tpbmcgaXNzdWVzLgppLmUuIGlmIHRoZSBsb2NrIHdl cmUgZmlyc3QgYWNxdWlyZWQgaW4gY29udGV4dCB0byB0aHJlYWQgbGlrZQonaXAnIHV0aWwgYW5k IHRoaXMgbG9jayBpZiBldmVyIGdvdCBsYXRlciBhY3F1aXJlZCBhZ2FpbiBpbgpjb250ZXh0IHRv IHRoZSBpbnRlcnJ1cHQgY29udGV4dCBsaWtlIFRYL1JYIChJbnRlcnJ1cHRzIGNvdWxkCmFsd2F5 cyBwcmUtZW1wdCB0aGUgbG9jayBob2xkaW5nIHRhc2sgYW5kIGFjcXVpcmUgdGhlIGxvY2sgYWdh aW4pCmFuZCBoZW5jZSBjb3VsZCBjYXVzZSBkZWFkbG9jay4KClByb3Bvc2VkIFNvbHV0aW9uOgox LiBJZiB0aGUgbmV0cG9sbCB3YXMgZW5hYmxlZCBpbiB0aGUgSE5TIGRyaXZlciwgd2hpY2ggaXMg bm90CiAgIHJpZ2h0IG5vdywgd2UgY291bGQgaGF2ZSBzaW1wbHkgdXNlZCBzcGluX1t1bl1sb2Nr X2lycXNhdmUoKQoyLiBCdXQgYXMgbmV0cG9sbCBpcyBkaXNhYmxlZCwgdGhlcmVmb3JlLCBpdCBp cyBiZXN0IHRvIGdldCByaWQKICAgb2YgdGhlIGV4aXN0aW5nIGxvY2tzIGFuZCBzdHJheSBjb2Rl IGZvciBub3cuIFRoaXMgc2hvdWxkCiAgIHNvbHZlIHRoZSBwcm9ibGVtIHJlcG9ydGVkIGJ5IE1h cmMuCgpbMV0gaHR0cHM6Ly9naXQua2VybmVsLm9yZy90b3J2YWxkcy9jLzRiZDJjMDNiZTcKWzJd IGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gvMTE4OTEzOS8KCkZpeGVzOiA0YmQy YzAzYmU3MDcgKCJuZXQ6IGhuczogcmVtb3ZlIG5kb19wb2xsX2NvbnRyb2xsZXIiKQpDYzogbGlw ZW5nIDxsaXBlbmczMjFAaHVhd2VpLmNvbT4KQ2M6IFlpc2VuIFpodWFuZyA8eWlzZW4uemh1YW5n QGh1YXdlaS5jb20+CkNjOiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+CkNjOiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ClJlcG9ydGVkLWJ5OiBNYXJjIFp5 bmdpZXIgPG1hekBrZXJuZWwub3JnPgpBY2tlZC1ieTogTWFyYyBaeW5naWVyIDxtYXpAa2VybmVs Lm9yZz4KVGVzdGVkLWJ5OiBNYXJjIFp5bmdpZXIgPG1hekBrZXJuZWwub3JnPgpTaWduZWQtb2Zm LWJ5OiBTYWxpbCBNZWh0YSA8c2FsaWwubWVodGFAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L2hpc2lsaWNvbi9obnMvaG5hZS5jICAgICB8ICAxIC0KIGRyaXZlcnMvbmV0L2V0aGVy bmV0L2hpc2lsaWNvbi9obnMvaG5hZS5oICAgICB8ICAzIC0tLQogZHJpdmVycy9uZXQvZXRoZXJu ZXQvaGlzaWxpY29uL2hucy9obnNfZW5ldC5jIHwgMjIgKy0tLS0tLS0tLS0tLS0tLS0tLQogMyBm aWxlcyBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obmFlLmMgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huYWUuYwppbmRleCBjN2ZhOTdhN2UxZjQuLmI3NThi M2U3OTMzNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9o bmFlLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obmFlLmMKQEAg LTIwMyw3ICsyMDMsNiBAQCBobmFlX2luaXRfcmluZyhzdHJ1Y3QgaG5hZV9xdWV1ZSAqcSwgc3Ry dWN0IGhuYWVfcmluZyAqcmluZywgaW50IGZsYWdzKQogCiAJcmluZy0+cSA9IHE7CiAJcmluZy0+ ZmxhZ3MgPSBmbGFnczsKLQlzcGluX2xvY2tfaW5pdCgmcmluZy0+bG9jayk7CiAJcmluZy0+Y29h bF9wYXJhbSA9IHEtPmhhbmRsZS0+Y29hbF9wYXJhbTsKIAlhc3NlcnQoIXJpbmctPmRlc2MgJiYg IXJpbmctPmRlc2NfY2IgJiYgIXJpbmctPmRlc2NfZG1hX2FkZHIpOwogCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huYWUuaCBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L2hpc2lsaWNvbi9obnMvaG5hZS5oCmluZGV4IDA4YTc1MGZiNjBjNC4uYzhjYmJlNWQ1 NTQ5IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huYWUu aAorKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huYWUuaApAQCAtMjc4 LDkgKzI3OCw2IEBAIHN0cnVjdCBobmFlX3JpbmcgewogCS8qIHN0YXRpc3RpYyAqLwogCXN0cnVj dCByaW5nX3N0YXRzIHN0YXRzOwogCi0JLyogcmluZyBsb2NrIGZvciBwb2xsIG9uZSAqLwotCXNw aW5sb2NrX3QgbG9jazsKLQogCWRtYV9hZGRyX3QgZGVzY19kbWFfYWRkcjsKIAl1MzIgYnVmX3Np emU7ICAgICAgIC8qIHNpemUgZm9yIGhuYWVfZGVzYy0+YWRkciwgcHJlc2V0IGJ5IEFFICovCiAJ dTE2IGRlc2NfbnVtOyAgICAgICAvKiB0b3RhbCBudW1iZXIgb2YgZGVzYyAqLwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obnNfZW5ldC5jIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obnNfZW5ldC5jCmluZGV4IDFjNzBmOWFhMGFh Ny4uN2Y4Y2Y4MDllMDJiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGlj b24vaG5zL2huc19lbmV0LmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hu cy9obnNfZW5ldC5jCkBAIC05NDcsMTUgKzk0Nyw2IEBAIHN0YXRpYyBpbnQgaXNfdmFsaWRfY2xl YW5faGVhZChzdHJ1Y3QgaG5hZV9yaW5nICpyaW5nLCBpbnQgaCkKIAlyZXR1cm4gdSA+IGMgPyAo aCA+IGMgJiYgaCA8PSB1KSA6IChoID4gYyB8fCBoIDw9IHUpOwogfQogCi0vKiBuZXRpZl90eF9s b2NrIHdpbGwgdHVybiBkb3duIHRoZSBwZXJmb3JtYW5jZSwgc2V0IG9ubHkgd2hlbiBuZWNlc3Nh cnkgKi8KLSNpZmRlZiBDT05GSUdfTkVUX1BPTExfQ09OVFJPTExFUgotI2RlZmluZSBORVRJRl9U WF9MT0NLKHJpbmcpIHNwaW5fbG9jaygmKHJpbmcpLT5sb2NrKQotI2RlZmluZSBORVRJRl9UWF9V TkxPQ0socmluZykgc3Bpbl91bmxvY2soJihyaW5nKS0+bG9jaykKLSNlbHNlCi0jZGVmaW5lIE5F VElGX1RYX0xPQ0socmluZykKLSNkZWZpbmUgTkVUSUZfVFhfVU5MT0NLKHJpbmcpCi0jZW5kaWYK LQogLyogcmVjbGFpbSBhbGwgZGVzYyBpbiBvbmUgYnVkZ2V0CiAgKiByZXR1cm4gZXJyb3Igb3Ig bnVtYmVyIG9mIGRlc2MgbGVmdAogICovCkBAIC05NjksMjEgKzk2MCwxNiBAQCBzdGF0aWMgaW50 IGhuc19uaWNfdHhfcG9sbF9vbmUoc3RydWN0IGhuc19uaWNfcmluZ19kYXRhICpyaW5nX2RhdGEs CiAJaW50IGhlYWQ7CiAJaW50IGJ5dGVzLCBwa3RzOwogCi0JTkVUSUZfVFhfTE9DSyhyaW5nKTsK LQogCWhlYWQgPSByZWFkbF9yZWxheGVkKHJpbmctPmlvX2Jhc2UgKyBSQ0JfUkVHX0hFQUQpOwog CXJtYigpOyAvKiBtYWtlIHN1cmUgaGVhZCBpcyByZWFkeSBiZWZvcmUgdG91Y2ggYW55IGRhdGEg Ki8KIAotCWlmIChpc19yaW5nX2VtcHR5KHJpbmcpIHx8IGhlYWQgPT0gcmluZy0+bmV4dF90b19j bGVhbikgewotCQlORVRJRl9UWF9VTkxPQ0socmluZyk7CisJaWYgKGlzX3JpbmdfZW1wdHkocmlu ZykgfHwgaGVhZCA9PSByaW5nLT5uZXh0X3RvX2NsZWFuKQogCQlyZXR1cm4gMDsgLyogbm8gZGF0 YSB0byBwb2xsICovCi0JfQogCiAJaWYgKCFpc192YWxpZF9jbGVhbl9oZWFkKHJpbmcsIGhlYWQp KSB7CiAJCW5ldGRldl9lcnIobmRldiwgIndyb25nIGhlYWQgKCVkLCAlZC0lZClcbiIsIGhlYWQs CiAJCQkgICByaW5nLT5uZXh0X3RvX3VzZSwgcmluZy0+bmV4dF90b19jbGVhbik7CiAJCXJpbmct PnN0YXRzLmlvX2Vycl9jbnQrKzsKLQkJTkVUSUZfVFhfVU5MT0NLKHJpbmcpOwogCQlyZXR1cm4g LUVJTzsKIAl9CiAKQEAgLTk5OCw4ICs5ODQsNiBAQCBzdGF0aWMgaW50IGhuc19uaWNfdHhfcG9s bF9vbmUoc3RydWN0IGhuc19uaWNfcmluZ19kYXRhICpyaW5nX2RhdGEsCiAJcmluZy0+c3RhdHMu dHhfcGt0cyArPSBwa3RzOwogCXJpbmctPnN0YXRzLnR4X2J5dGVzICs9IGJ5dGVzOwogCi0JTkVU SUZfVFhfVU5MT0NLKHJpbmcpOwotCiAJZGV2X3F1ZXVlID0gbmV0ZGV2X2dldF90eF9xdWV1ZShu ZGV2LCByaW5nX2RhdGEtPnF1ZXVlX2luZGV4KTsKIAluZXRkZXZfdHhfY29tcGxldGVkX3F1ZXVl KGRldl9xdWV1ZSwgcGt0cywgYnl0ZXMpOwogCkBAIC0xMDU5LDE2ICsxMDQzLDEyIEBAIHN0YXRp YyB2b2lkIGhuc19uaWNfdHhfY2xyX2FsbF9idWZzKHN0cnVjdCBobnNfbmljX3JpbmdfZGF0YSAq cmluZ19kYXRhKQogCWludCBoZWFkOwogCWludCBieXRlcywgcGt0czsKIAotCU5FVElGX1RYX0xP Q0socmluZyk7Ci0KIAloZWFkID0gcmluZy0+bmV4dF90b191c2U7IC8qIG50dSA6c29mdCBzZXR0 ZWQgcmluZyBwb3NpdGlvbiovCiAJYnl0ZXMgPSAwOwogCXBrdHMgPSAwOwogCXdoaWxlIChoZWFk ICE9IHJpbmctPm5leHRfdG9fY2xlYW4pCiAJCWhuc19uaWNfcmVjbGFpbV9vbmVfZGVzYyhyaW5n LCAmYnl0ZXMsICZwa3RzKTsKIAotCU5FVElGX1RYX1VOTE9DSyhyaW5nKTsKLQogCWRldl9xdWV1 ZSA9IG5ldGRldl9nZXRfdHhfcXVldWUobmRldiwgcmluZ19kYXRhLT5xdWV1ZV9pbmRleCk7CiAJ bmV0ZGV2X3R4X3Jlc2V0X3F1ZXVlKGRldl9xdWV1ZSk7CiB9Ci0tIAoyLjIwLjEKCg== ----Next_Part(Sat_Nov__9_21_47_09_2019_112)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_53.mbox" RnJvbSBmMmIyYzYwZjdhYTUzNzlhMzlmYmYyMTdkYzI0ZTBhNGQ1NDljNDRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYXkgVm9zYnVyZ2ggPGpheS52b3NidXJnaEBjYW5vbmljYWwu Y29tPgpEYXRlOiBGcmksIDEgTm92IDIwMTkgMjE6NTY6NDIgLTA3MDAKU3ViamVjdDogW1BBVENI IDAxLzI0XSBib25kaW5nOiBmaXggc3RhdGUgdHJhbnNpdGlvbiBpc3N1ZSBpbiBsaW5rIG1vbml0 b3JpbmcKClsgVXBzdHJlYW0gY29tbWl0IDE4OTliYjMyNTE0OWU0ODFkZTMxYTRmMzJiNTllYTZm MjRlMTc2ZWEgXQoKU2luY2UgZGU3N2VjZDRlZjAyICgiYm9uZGluZzogaW1wcm92ZSBsaW5rLXN0 YXR1cyB1cGRhdGUgaW4KbWlpLW1vbml0b3JpbmciKSwgdGhlIGJvbmRpbmcgZHJpdmVyIGhhcyB1 dGlsaXplZCB0d28gc2VwYXJhdGUgdmFyaWFibGVzCnRvIGluZGljYXRlIHRoZSBuZXh0IGxpbmsg c3RhdGUgYSBwYXJ0aWN1bGFyIHNsYXZlIHNob3VsZCB0cmFuc2l0aW9uIHRvLgpFYWNoIGlzIHVz ZWQgdG8gY29tbXVuaWNhdGUgdG8gYSBkaWZmZXJlbnQgcG9ydGlvbiBvZiB0aGUgbGluayBzdGF0 ZQpjaGFuZ2UgY29tbWl0IGxvZ2ljOyBvbmUgdG8gdGhlIGJvbmRfbWlpbW9uX2NvbW1pdCBmdW5j dGlvbiBpdHNlbGYsIGFuZAphbm90aGVyIHRvIHRoZSBzdGF0ZSB0cmFuc2l0aW9uIGxvZ2ljLgoK CVVuZm9ydHVuYXRlbHksIHRoZSB0d28gdmFyaWFibGVzIGNhbiBiZWNvbWUgdW5zeW5jaHJvbml6 ZWQsCnJlc3VsdGluZyBpbiBpbmNvcnJlY3QgbGluayBzdGF0ZSB0cmFuc2l0aW9ucyB3aXRoaW4g Ym9uZGluZy4gIFRoaXMgY2FuCmNhdXNlIHNsYXZlcyB0byBiZWNvbWUgc3R1Y2sgaW4gYW4gaW5j b3JyZWN0IGxpbmsgc3RhdGUgdW50aWwgYQpzdWJzZXF1ZW50IGNhcnJpZXIgc3RhdGUgdHJhbnNp dGlvbi4KCglUaGUgaXNzdWUgb2NjdXJzIHdoZW4gYSBzcGVjaWFsIGNhc2UgaW4gYm9uZF9zbGF2 ZV9uZXRkZXZfZXZlbnQKc2V0cyBzbGF2ZS0+bGluayBkaXJlY3RseSB0byBCT05EX0xJTktfRkFJ TC4gIE9uIHRoZSBuZXh0IHBhc3MgdGhyb3VnaApib25kX21paW1vbl9pbnNwZWN0IGFmdGVyIHRo ZSBzbGF2ZSBnb2VzIGNhcnJpZXIgdXAsIHRoZSBCT05EX0xJTktfRkFJTApjYXNlIHdpbGwgc2V0 IHRoZSBwcm9wb3NlZCBuZXh0IHN0YXRlIChsaW5rX25ld19zdGF0ZSkgdG8gQk9ORF9MSU5LX1VQ LApidXQgdGhlIG5ld19saW5rIHRvIEJPTkRfTElOS19ET1dOLiAgVGhlIHNldHRpbmcgb2YgdGhl IGZpbmFsIGxpbmsgc3RhdGUKZnJvbSBuZXdfbGluayBjb21lcyBhZnRlciB0aGF0IGZyb20gbGlu a19uZXdfc3RhdGUsIGFuZCBzbyB0aGUgc2xhdmUKd2lsbCBlbmQgdXAgaW5jb3JyZWN0bHkgaW4g X0RPV04gc3RhdGUuCgoJUmVzb2x2ZSB0aGlzIGJ5IGNvbWJpbmluZyB0aGUgdHdvIHZhcmlhYmxl cyBpbnRvIG9uZS4KClJlcG9ydGVkLWJ5OiBBbGVrc2VpIFpha2hhcm92IDx6YWtoYXJvdi5hLmdA eWFuZGV4LnJ1PgpSZXBvcnRlZC1ieTogU2hhIFpoYW5nIDx6aGFuZ3NoYS56aGFuZ0BodWF3ZWku Y29tPgpDYzogTWFoZXNoIEJhbmRld2FyIDxtYWhlc2hiQGdvb2dsZS5jb20+CkZpeGVzOiBkZTc3 ZWNkNGVmMDIgKCJib25kaW5nOiBpbXByb3ZlIGxpbmstc3RhdHVzIHVwZGF0ZSBpbiBtaWktbW9u aXRvcmluZyIpClNpZ25lZC1vZmYtYnk6IEpheSBWb3NidXJnaCA8amF5LnZvc2J1cmdoQGNhbm9u aWNhbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jIHwgNDQgKysrKysrKysr KysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL25ldC9ib25kaW5nLmggICAgICAgICAg IHwgIDMgKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMgYi9kcml2 ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCmluZGV4IDIxZDhmY2M4M2M5Yy4uNGVkYjY5YjFk MTI2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jCisrKyBiL2Ry aXZlcnMvbmV0L2JvbmRpbmcvYm9uZF9tYWluLmMKQEAgLTIwODYsOCArMjA4Niw3IEBAIHN0YXRp YyBpbnQgYm9uZF9taWltb25faW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAlpZ25vcmVf dXBkZWxheSA9ICFyY3VfZGVyZWZlcmVuY2UoYm9uZC0+Y3Vycl9hY3RpdmVfc2xhdmUpOwogCiAJ Ym9uZF9mb3JfZWFjaF9zbGF2ZV9yY3UoYm9uZCwgc2xhdmUsIGl0ZXIpIHsKLQkJc2xhdmUtPm5l d19saW5rID0gQk9ORF9MSU5LX05PQ0hBTkdFOwotCQlzbGF2ZS0+bGlua19uZXdfc3RhdGUgPSBz bGF2ZS0+bGluazsKKwkJYm9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUsIEJPTkRfTElOS19O T0NIQU5HRSk7CiAKIAkJbGlua19zdGF0ZSA9IGJvbmRfY2hlY2tfZGV2X2xpbmsoYm9uZCwgc2xh dmUtPmRldiwgMCk7CiAKQEAgLTIxMjEsNyArMjEyMCw3IEBAIHN0YXRpYyBpbnQgYm9uZF9taWlt b25faW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCX0KIAogCQkJaWYgKHNsYXZlLT5k ZWxheSA8PSAwKSB7Ci0JCQkJc2xhdmUtPm5ld19saW5rID0gQk9ORF9MSU5LX0RPV047CisJCQkJ Ym9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUsIEJPTkRfTElOS19ET1dOKTsKIAkJCQljb21t aXQrKzsKIAkJCQljb250aW51ZTsKIAkJCX0KQEAgLTIxNTgsNyArMjE1Nyw3IEBAIHN0YXRpYyBp bnQgYm9uZF9taWltb25faW5zcGVjdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCQlzbGF2ZS0+ ZGVsYXkgPSAwOwogCiAJCQlpZiAoc2xhdmUtPmRlbGF5IDw9IDApIHsKLQkJCQlzbGF2ZS0+bmV3 X2xpbmsgPSBCT05EX0xJTktfVVA7CisJCQkJYm9uZF9wcm9wb3NlX2xpbmtfc3RhdGUoc2xhdmUs IEJPTkRfTElOS19VUCk7CiAJCQkJY29tbWl0Kys7CiAJCQkJaWdub3JlX3VwZGVsYXkgPSBmYWxz ZTsKIAkJCQljb250aW51ZTsKQEAgLTIxOTYsNyArMjE5NSw3IEBAIHN0YXRpYyB2b2lkIGJvbmRf bWlpbW9uX2NvbW1pdChzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAlzdHJ1Y3Qgc2xhdmUgKnNsYXZl LCAqcHJpbWFyeTsKIAogCWJvbmRfZm9yX2VhY2hfc2xhdmUoYm9uZCwgc2xhdmUsIGl0ZXIpIHsK LQkJc3dpdGNoIChzbGF2ZS0+bmV3X2xpbmspIHsKKwkJc3dpdGNoIChzbGF2ZS0+bGlua19uZXdf c3RhdGUpIHsKIAkJY2FzZSBCT05EX0xJTktfTk9DSEFOR0U6CiAJCQkvKiBGb3IgODAyLjNhZCBt b2RlLCBjaGVjayBjdXJyZW50IHNsYXZlIHNwZWVkIGFuZAogCQkJICogZHVwbGV4IGFnYWluIGlu IGNhc2UgaXRzIHBvcnQgd2FzIGRpc2FibGVkIGFmdGVyCkBAIC0yMjY4LDggKzIyNjcsOCBAQCBz dGF0aWMgdm9pZCBib25kX21paW1vbl9jb21taXQoc3RydWN0IGJvbmRpbmcgKmJvbmQpCiAKIAkJ ZGVmYXVsdDoKIAkJCXNsYXZlX2Vycihib25kLT5kZXYsIHNsYXZlLT5kZXYsICJpbnZhbGlkIG5l dyBsaW5rICVkIG9uIHNsYXZlXG4iLAotCQkJCSAgc2xhdmUtPm5ld19saW5rKTsKLQkJCXNsYXZl LT5uZXdfbGluayA9IEJPTkRfTElOS19OT0NIQU5HRTsKKwkJCQkgIHNsYXZlLT5saW5rX25ld19z dGF0ZSk7CisJCQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX05PQ0hB TkdFKTsKIAogCQkJY29udGludWU7CiAJCX0KQEAgLTI2NzcsMTMgKzI2NzYsMTMgQEAgc3RhdGlj IHZvaWQgYm9uZF9sb2FkYmFsYW5jZV9hcnBfbW9uKHN0cnVjdCBib25kaW5nICpib25kKQogCWJv bmRfZm9yX2VhY2hfc2xhdmVfcmN1KGJvbmQsIHNsYXZlLCBpdGVyKSB7CiAJCXVuc2lnbmVkIGxv bmcgdHJhbnNfc3RhcnQgPSBkZXZfdHJhbnNfc3RhcnQoc2xhdmUtPmRldik7CiAKLQkJc2xhdmUt Pm5ld19saW5rID0gQk9ORF9MSU5LX05PQ0hBTkdFOworCQlib25kX3Byb3Bvc2VfbGlua19zdGF0 ZShzbGF2ZSwgQk9ORF9MSU5LX05PQ0hBTkdFKTsKIAogCQlpZiAoc2xhdmUtPmxpbmsgIT0gQk9O RF9MSU5LX1VQKSB7CiAJCQlpZiAoYm9uZF90aW1lX2luX2ludGVydmFsKGJvbmQsIHRyYW5zX3N0 YXJ0LCAxKSAmJgogCQkJICAgIGJvbmRfdGltZV9pbl9pbnRlcnZhbChib25kLCBzbGF2ZS0+bGFz dF9yeCwgMSkpIHsKIAotCQkJCXNsYXZlLT5uZXdfbGluayA9IEJPTkRfTElOS19VUDsKKwkJCQli b25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2ZSwgQk9ORF9MSU5LX1VQKTsKIAkJCQlzbGF2ZV9z dGF0ZV9jaGFuZ2VkID0gMTsKIAogCQkJCS8qIHByaW1hcnlfc2xhdmUgaGFzIG5vIG1lYW5pbmcg aW4gcm91bmQtcm9iaW4KQEAgLTI3MDgsNyArMjcwNyw3IEBAIHN0YXRpYyB2b2lkIGJvbmRfbG9h ZGJhbGFuY2VfYXJwX21vbihzdHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJCWlmICghYm9uZF90aW1l X2luX2ludGVydmFsKGJvbmQsIHRyYW5zX3N0YXJ0LCAyKSB8fAogCQkJICAgICFib25kX3RpbWVf aW5faW50ZXJ2YWwoYm9uZCwgc2xhdmUtPmxhc3RfcngsIDIpKSB7CiAKLQkJCQlzbGF2ZS0+bmV3 X2xpbmsgPSBCT05EX0xJTktfRE9XTjsKKwkJCQlib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzbGF2 ZSwgQk9ORF9MSU5LX0RPV04pOwogCQkJCXNsYXZlX3N0YXRlX2NoYW5nZWQgPSAxOwogCiAJCQkJ aWYgKHNsYXZlLT5saW5rX2ZhaWx1cmVfY291bnQgPCBVSU5UX01BWCkKQEAgLTI3MzksOCArMjcz OCw4IEBAIHN0YXRpYyB2b2lkIGJvbmRfbG9hZGJhbGFuY2VfYXJwX21vbihzdHJ1Y3QgYm9uZGlu ZyAqYm9uZCkKIAkJCWdvdG8gcmVfYXJtOwogCiAJCWJvbmRfZm9yX2VhY2hfc2xhdmUoYm9uZCwg c2xhdmUsIGl0ZXIpIHsKLQkJCWlmIChzbGF2ZS0+bmV3X2xpbmsgIT0gQk9ORF9MSU5LX05PQ0hB TkdFKQotCQkJCXNsYXZlLT5saW5rID0gc2xhdmUtPm5ld19saW5rOworCQkJaWYgKHNsYXZlLT5s aW5rX25ld19zdGF0ZSAhPSBCT05EX0xJTktfTk9DSEFOR0UpCisJCQkJc2xhdmUtPmxpbmsgPSBz bGF2ZS0+bGlua19uZXdfc3RhdGU7CiAJCX0KIAogCQlpZiAoc2xhdmVfc3RhdGVfY2hhbmdlZCkg ewpAQCAtMjc2Myw5ICsyNzYyLDkgQEAgc3RhdGljIHZvaWQgYm9uZF9sb2FkYmFsYW5jZV9hcnBf bW9uKHN0cnVjdCBib25kaW5nICpib25kKQogfQogCiAvKiBDYWxsZWQgdG8gaW5zcGVjdCBzbGF2 ZXMgZm9yIGFjdGl2ZS1iYWNrdXAgbW9kZSBBUlAgbW9uaXRvciBsaW5rIHN0YXRlCi0gKiBjaGFu Z2VzLiAgU2V0cyBuZXdfbGluayBpbiBzbGF2ZXMgdG8gc3BlY2lmeSB3aGF0IGFjdGlvbiBzaG91 bGQgdGFrZQotICogcGxhY2UgZm9yIHRoZSBzbGF2ZS4gIFJldHVybnMgMCBpZiBubyBjaGFuZ2Vz IGFyZSBmb3VuZCwgPjAgaWYgY2hhbmdlcwotICogdG8gbGluayBzdGF0ZXMgbXVzdCBiZSBjb21t aXR0ZWQuCisgKiBjaGFuZ2VzLiAgU2V0cyBwcm9wb3NlZCBsaW5rIHN0YXRlIGluIHNsYXZlcyB0 byBzcGVjaWZ5IHdoYXQgYWN0aW9uCisgKiBzaG91bGQgdGFrZSBwbGFjZSBmb3IgdGhlIHNsYXZl LiAgUmV0dXJucyAwIGlmIG5vIGNoYW5nZXMgYXJlIGZvdW5kLCA+MAorICogaWYgY2hhbmdlcyB0 byBsaW5rIHN0YXRlcyBtdXN0IGJlIGNvbW1pdHRlZC4KICAqCiAgKiBDYWxsZWQgd2l0aCByY3Vf cmVhZF9sb2NrIGhlbGQuCiAgKi8KQEAgLTI3NzcsMTIgKzI3NzYsMTIgQEAgc3RhdGljIGludCBi b25kX2FiX2FycF9pbnNwZWN0KHN0cnVjdCBib25kaW5nICpib25kKQogCWludCBjb21taXQgPSAw OwogCiAJYm9uZF9mb3JfZWFjaF9zbGF2ZV9yY3UoYm9uZCwgc2xhdmUsIGl0ZXIpIHsKLQkJc2xh dmUtPm5ld19saW5rID0gQk9ORF9MSU5LX05PQ0hBTkdFOworCQlib25kX3Byb3Bvc2VfbGlua19z dGF0ZShzbGF2ZSwgQk9ORF9MSU5LX05PQ0hBTkdFKTsKIAkJbGFzdF9yeCA9IHNsYXZlX2xhc3Rf cngoYm9uZCwgc2xhdmUpOwogCiAJCWlmIChzbGF2ZS0+bGluayAhPSBCT05EX0xJTktfVVApIHsK IAkJCWlmIChib25kX3RpbWVfaW5faW50ZXJ2YWwoYm9uZCwgbGFzdF9yeCwgMSkpIHsKLQkJCQlz bGF2ZS0+bmV3X2xpbmsgPSBCT05EX0xJTktfVVA7CisJCQkJYm9uZF9wcm9wb3NlX2xpbmtfc3Rh dGUoc2xhdmUsIEJPTkRfTElOS19VUCk7CiAJCQkJY29tbWl0Kys7CiAJCQl9CiAJCQljb250aW51 ZTsKQEAgLTI4MTAsNyArMjgwOSw3IEBAIHN0YXRpYyBpbnQgYm9uZF9hYl9hcnBfaW5zcGVjdChz dHJ1Y3QgYm9uZGluZyAqYm9uZCkKIAkJaWYgKCFib25kX2lzX2FjdGl2ZV9zbGF2ZShzbGF2ZSkg JiYKIAkJICAgICFyY3VfYWNjZXNzX3BvaW50ZXIoYm9uZC0+Y3VycmVudF9hcnBfc2xhdmUpICYm CiAJCSAgICAhYm9uZF90aW1lX2luX2ludGVydmFsKGJvbmQsIGxhc3RfcngsIDMpKSB7Ci0JCQlz bGF2ZS0+bmV3X2xpbmsgPSBCT05EX0xJTktfRE9XTjsKKwkJCWJvbmRfcHJvcG9zZV9saW5rX3N0 YXRlKHNsYXZlLCBCT05EX0xJTktfRE9XTik7CiAJCQljb21taXQrKzsKIAkJfQogCkBAIC0yODIz LDcgKzI4MjIsNyBAQCBzdGF0aWMgaW50IGJvbmRfYWJfYXJwX2luc3BlY3Qoc3RydWN0IGJvbmRp bmcgKmJvbmQpCiAJCWlmIChib25kX2lzX2FjdGl2ZV9zbGF2ZShzbGF2ZSkgJiYKIAkJICAgICgh Ym9uZF90aW1lX2luX2ludGVydmFsKGJvbmQsIHRyYW5zX3N0YXJ0LCAyKSB8fAogCQkgICAgICFi b25kX3RpbWVfaW5faW50ZXJ2YWwoYm9uZCwgbGFzdF9yeCwgMikpKSB7Ci0JCQlzbGF2ZS0+bmV3 X2xpbmsgPSBCT05EX0xJTktfRE9XTjsKKwkJCWJvbmRfcHJvcG9zZV9saW5rX3N0YXRlKHNsYXZl LCBCT05EX0xJTktfRE9XTik7CiAJCQljb21taXQrKzsKIAkJfQogCX0KQEAgLTI4NDMsNyArMjg0 Miw3IEBAIHN0YXRpYyB2b2lkIGJvbmRfYWJfYXJwX2NvbW1pdChzdHJ1Y3QgYm9uZGluZyAqYm9u ZCkKIAlzdHJ1Y3Qgc2xhdmUgKnNsYXZlOwogCiAJYm9uZF9mb3JfZWFjaF9zbGF2ZShib25kLCBz bGF2ZSwgaXRlcikgewotCQlzd2l0Y2ggKHNsYXZlLT5uZXdfbGluaykgeworCQlzd2l0Y2ggKHNs YXZlLT5saW5rX25ld19zdGF0ZSkgewogCQljYXNlIEJPTkRfTElOS19OT0NIQU5HRToKIAkJCWNv bnRpbnVlOwogCkBAIC0yODkzLDggKzI4OTIsOSBAQCBzdGF0aWMgdm9pZCBib25kX2FiX2FycF9j b21taXQoc3RydWN0IGJvbmRpbmcgKmJvbmQpCiAJCQljb250aW51ZTsKIAogCQlkZWZhdWx0Ogot CQkJc2xhdmVfZXJyKGJvbmQtPmRldiwgc2xhdmUtPmRldiwgImltcG9zc2libGU6IG5ld19saW5r ICVkIG9uIHNsYXZlXG4iLAotCQkJCSAgc2xhdmUtPm5ld19saW5rKTsKKwkJCXNsYXZlX2Vycihi b25kLT5kZXYsIHNsYXZlLT5kZXYsCisJCQkJICAiaW1wb3NzaWJsZTogbGlua19uZXdfc3RhdGUg JWQgb24gc2xhdmVcbiIsCisJCQkJICBzbGF2ZS0+bGlua19uZXdfc3RhdGUpOwogCQkJY29udGlu dWU7CiAJCX0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvYm9uZGluZy5oIGIvaW5jbHVkZS9u ZXQvYm9uZGluZy5oCmluZGV4IGY3ZmU0NTY4OTE0Mi4uZDQxNmFmNzI0MDRiIDEwMDY0NAotLS0g YS9pbmNsdWRlL25ldC9ib25kaW5nLmgKKysrIGIvaW5jbHVkZS9uZXQvYm9uZGluZy5oCkBAIC0x NTksNyArMTU5LDYgQEAgc3RydWN0IHNsYXZlIHsKIAl1bnNpZ25lZCBsb25nIHRhcmdldF9sYXN0 X2FycF9yeFtCT05EX01BWF9BUlBfVEFSR0VUU107CiAJczggICAgIGxpbms7CQkvKiBvbmUgb2Yg Qk9ORF9MSU5LX1hYWFggKi8KIAlzOCAgICAgbGlua19uZXdfc3RhdGU7CS8qIG9uZSBvZiBCT05E X0xJTktfWFhYWCAqLwotCXM4ICAgICBuZXdfbGluazsKIAl1OCAgICAgYmFja3VwOjEsICAgLyog aW5kaWNhdGVzIGJhY2t1cCBzbGF2ZS4gVmFsdWUgY29ycmVzcG9uZHMgd2l0aAogCQkJICAgICAg Qk9ORF9TVEFURV9BQ1RJVkUgYW5kIEJPTkRfU1RBVEVfQkFDS1VQICovCiAJICAgICAgIGluYWN0 aXZlOjEsIC8qIGluZGljYXRlcyBpbmFjdGl2ZSBzbGF2ZSAqLwpAQCAtNTQ5LDcgKzU0OCw3IEBA IHN0YXRpYyBpbmxpbmUgdm9pZCBib25kX3Byb3Bvc2VfbGlua19zdGF0ZShzdHJ1Y3Qgc2xhdmUg KnNsYXZlLCBpbnQgc3RhdGUpCiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBib25kX2NvbW1pdF9saW5r X3N0YXRlKHN0cnVjdCBzbGF2ZSAqc2xhdmUsIGJvb2wgbm90aWZ5KQogewotCWlmIChzbGF2ZS0+ bGluayA9PSBzbGF2ZS0+bGlua19uZXdfc3RhdGUpCisJaWYgKHNsYXZlLT5saW5rX25ld19zdGF0 ZSA9PSBCT05EX0xJTktfTk9DSEFOR0UpCiAJCXJldHVybjsKIAogCXNsYXZlLT5saW5rID0gc2xh dmUtPmxpbmtfbmV3X3N0YXRlOwotLSAKMi4yMC4xCgoKRnJvbSBiZTJlNmIyMWZjNDM4MmY4ZjNm MDIzOGVkMDdhNGMxMGU1OTFlMDMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBPbGl2 ZXIgTmV1a3VtIDxvbmV1a3VtQHN1c2UuY29tPgpEYXRlOiBUaHUsIDcgTm92IDIwMTkgMDk6NDg6 MDEgKzAxMDAKU3ViamVjdDogW1BBVENIIDAyLzI0XSBDREMtTkNNOiBoYW5kbGUgaW5jb21wbGV0 ZSB0cmFuc2ZlciBvZiBNVFUKClsgVXBzdHJlYW0gY29tbWl0IDMzMmY5ODlhM2IwMDQxYjgxMDgz NmM1YzM3NDdlNTlhYWQ3ZTlkMGIgXQoKQSBtYWxpY2lvdXMgZGV2aWNlIG1heSBnaXZlIGhhbGYg YW4gYW5zd2VyIHdoZW4gYXNrZWQKZm9yIGl0cyBNVFUuIFRoZSBkcml2ZXIgd2lsbCBwcm9jZWVk IGFmdGVyIHRoaXMgd2l0aAphIGdhcmJhZ2UgTVRVLiBBbnl0aGluZyBidXQgYSBjb21wbGV0ZSBh bnN3ZXIgbXVzdCBiZSB0cmVhdGVkCmFzIGFuIGVycm9yLgoKVjI6IHVzZWQgc2l6ZW9mIGFzIHJl cXVlc3QgYnkgQWxleGFuZGVyCgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBzeXpib3QrMDYzMWQ4 Nzg4MjNjZTI0MTE2MzZAc3l6a2FsbGVyLmFwcHNwb3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBP bGl2ZXIgTmV1a3VtIDxvbmV1a3VtQHN1c2UuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL2NkY19uY20u YyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3VzYi9jZGNfbmNtLmMgYi9kcml2ZXJzL25l dC91c2IvY2RjX25jbS5jCmluZGV4IDAwY2FiM2Y0M2E0Yy4uYTI0NTU5N2EzOTAyIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC91c2IvY2RjX25jbS5jCisrKyBiL2RyaXZlcnMvbmV0L3VzYi9jZGNf bmNtLmMKQEAgLTU3OCw4ICs1NzgsOCBAQCBzdGF0aWMgdm9pZCBjZGNfbmNtX3NldF9kZ3JhbV9z aXplKHN0cnVjdCB1c2JuZXQgKmRldiwgaW50IG5ld19zaXplKQogCS8qIHJlYWQgY3VycmVudCBt dHUgdmFsdWUgZnJvbSBkZXZpY2UgKi8KIAllcnIgPSB1c2JuZXRfcmVhZF9jbWQoZGV2LCBVU0Jf Q0RDX0dFVF9NQVhfREFUQUdSQU1fU0laRSwKIAkJCSAgICAgIFVTQl9UWVBFX0NMQVNTIHwgVVNC X0RJUl9JTiB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UsCi0JCQkgICAgICAwLCBpZmFjZV9ubywgJm1h eF9kYXRhZ3JhbV9zaXplLCAyKTsKLQlpZiAoZXJyIDwgMCkgeworCQkJICAgICAgMCwgaWZhY2Vf bm8sICZtYXhfZGF0YWdyYW1fc2l6ZSwgc2l6ZW9mKG1heF9kYXRhZ3JhbV9zaXplKSk7CisJaWYg KGVyciA8IHNpemVvZihtYXhfZGF0YWdyYW1fc2l6ZSkpIHsKIAkJZGV2X2RiZygmZGV2LT5pbnRm LT5kZXYsICJHRVRfTUFYX0RBVEFHUkFNX1NJWkUgZmFpbGVkXG4iKTsKIAkJZ290byBvdXQ7CiAJ fQpAQCAtNTkwLDcgKzU5MCw3IEBAIHN0YXRpYyB2b2lkIGNkY19uY21fc2V0X2RncmFtX3NpemUo c3RydWN0IHVzYm5ldCAqZGV2LCBpbnQgbmV3X3NpemUpCiAJbWF4X2RhdGFncmFtX3NpemUgPSBj cHVfdG9fbGUxNihjdHgtPm1heF9kYXRhZ3JhbV9zaXplKTsKIAllcnIgPSB1c2JuZXRfd3JpdGVf Y21kKGRldiwgVVNCX0NEQ19TRVRfTUFYX0RBVEFHUkFNX1NJWkUsCiAJCQkgICAgICAgVVNCX1RZ UEVfQ0xBU1MgfCBVU0JfRElSX09VVCB8IFVTQl9SRUNJUF9JTlRFUkZBQ0UsCi0JCQkgICAgICAg MCwgaWZhY2Vfbm8sICZtYXhfZGF0YWdyYW1fc2l6ZSwgMik7CisJCQkgICAgICAgMCwgaWZhY2Vf bm8sICZtYXhfZGF0YWdyYW1fc2l6ZSwgc2l6ZW9mKG1heF9kYXRhZ3JhbV9zaXplKSk7CiAJaWYg KGVyciA8IDApCiAJCWRldl9kYmcoJmRldi0+aW50Zi0+ZGV2LCAiU0VUX01BWF9EQVRBR1JBTV9T SVpFIGZhaWxlZFxuIik7CiAKLS0gCjIuMjAuMQoKCkZyb20gYTQzY2IyMDI2Y2NjMDYwNTNiMTE2 MGQzZGI5ZTBiOWNlMDRhNGQ5NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRGF2aWQg QWhlcm4gPGRzYWhlcm5Aa2VybmVsLm9yZz4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDE4OjI5OjUy ICswMDAwClN1YmplY3Q6IFtQQVRDSCAwMy8yNF0gaXB2NDogRml4IHRhYmxlIGlkIHJlZmVyZW5j ZSBpbiBmaWJfc3luY19kb3duX2FkZHIKClsgVXBzdHJlYW0gY29tbWl0IGUwYTMxMjYyOWZlZmE5 NDM1MzRmYzQ2ZjdiZmJlNmRlM2ZkYWY0NjMgXQoKSGVuZHJpayByZXBvcnRlZCByb3V0ZXMgaW4g dGhlIG1haW4gdGFibGUgdXNpbmcgc291cmNlIGFkZHJlc3MgYXJlIG5vdApyZW1vdmVkIHdoZW4g dGhlIGFkZHJlc3MgaXMgcmVtb3ZlZC4gVGhlIHByb2JsZW0gaXMgdGhhdCBmaWJfc3luY19kb3du X2FkZHIKZG9lcyBub3QgYWNjb3VudCBmb3IgZGV2aWNlcyBpbiB0aGUgZGVmYXVsdCBWUkYgd2hp Y2ggYXJlIGFzc29jaWF0ZWQKd2l0aCB0aGUgbWFpbiB0YWJsZS4gRml4IGJ5IHVwZGF0aW5nIHRo ZSB0YWJsZSBpZCByZWZlcmVuY2UuCgpGaXhlczogNWE1NmEwYjNhNDVkICgibmV0OiBEb24ndCBk ZWxldGUgcm91dGVzIGluIGRpZmZlcmVudCBWUkZzIikKUmVwb3J0ZWQtYnk6IEhlbmRyaWsgRG9u bmVyIDxoZEBvcy1jaWxsYXRpb24uZGU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2Fo ZXJuQGtlcm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2NC9maWJfc2VtYW50aWNzLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2NC9maWJfc2VtYW50aWNzLmMgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKaW5kZXggMDkx M2EwOTBiMmJmLi5mMTg4OGM2ODM0MjYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2ZpYl9zZW1hbnRp Y3MuYworKysgYi9uZXQvaXB2NC9maWJfc2VtYW50aWNzLmMKQEAgLTE4MTQsOCArMTgxNCw4IEBA IGludCBmaWJfc3luY19kb3duX2FkZHIoc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgX19iZTMyIGxv Y2FsKQogCWludCByZXQgPSAwOwogCXVuc2lnbmVkIGludCBoYXNoID0gZmliX2xhZGRyX2hhc2hm bihsb2NhbCk7CiAJc3RydWN0IGhsaXN0X2hlYWQgKmhlYWQgPSAmZmliX2luZm9fbGFkZHJoYXNo W2hhc2hdOworCWludCB0Yl9pZCA9IGwzbWRldl9maWJfdGFibGUoZGV2KSA/IDogUlRfVEFCTEVf TUFJTjsKIAlzdHJ1Y3QgbmV0ICpuZXQgPSBkZXZfbmV0KGRldik7Ci0JaW50IHRiX2lkID0gbDNt ZGV2X2ZpYl90YWJsZShkZXYpOwogCXN0cnVjdCBmaWJfaW5mbyAqZmk7CiAKIAlpZiAoIWZpYl9p bmZvX2xhZGRyaGFzaCB8fCBsb2NhbCA9PSAwKQotLSAKMi4yMC4xCgoKRnJvbSA1N2EzNDhhN2Q0 MWVhOWUxMjc2YzZkZmU3NWNlODJlYmRhN2Y1N2Q4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBBbGV4YW5kZXIgU3ZlcmRsaW4gPGFsZXhhbmRlci5zdmVyZGxpbkBub2tpYS5jb20+CkRh dGU6IEZyaSwgOCBOb3YgMjAxOSAxMDowMDo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMjRd IG5ldDogZXRoZXJuZXQ6IG9jdGVvbl9tZ210OiBBY2NvdW50IGZvciBzZWNvbmQgcG9zc2libGUK IFZMQU4gaGVhZGVyCgpbIFVwc3RyZWFtIGNvbW1pdCBlNGRkNTYwODAzM2VmZTdiNjAzMGNkZTM1 OWJmZGJhZWI3M2JjMjJkIF0KCk9jdGVvbidzIGlucHV0IHJpbmctYnVmZmVyIGVudHJ5IGhhcyAx NCBiaXRzLXdpZGUgc2l6ZSBmaWVsZCwgc28gdG8gYWNjb3VudApmb3Igc2Vjb25kIHBvc3NpYmxl IFZMQU4gaGVhZGVyIG1heF9tdHUgbXVzdCBiZSBmdXJ0aGVyIHJlZHVjZWQuCgpGaXhlczogMTA5 Y2MxNjUyNmM2ZCAoImV0aGVybmV0L2Nhdml1bTogdXNlIGNvcmUgbWluL21heCBNVFUgY2hlY2tp bmciKQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgU3ZlcmRsaW4gPGFsZXhhbmRlci5zdmVyZGxp bkBub2tpYS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vb2N0ZW9uL29jdGVvbl9t Z210LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vb2N0ZW9uL29jdGVv bl9tZ210LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9jYXZpdW0vb2N0ZW9uL29jdGVvbl9tZ210 LmMKaW5kZXggMGU1ZGU4OGZkNmU4Li5jZGQ3ZTVkYTRhNzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2Nhdml1bS9vY3Rlb24vb2N0ZW9uX21nbXQuYworKysgYi9kcml2ZXJzL25l dC9ldGhlcm5ldC9jYXZpdW0vb2N0ZW9uL29jdGVvbl9tZ210LmMKQEAgLTE0OTksNyArMTQ5OSw3 IEBAIHN0YXRpYyBpbnQgb2N0ZW9uX21nbXRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIAluZXRkZXYtPmV0aHRvb2xfb3BzID0gJm9jdGVvbl9tZ210X2V0aHRvb2xfb3BzOwog CiAJbmV0ZGV2LT5taW5fbXR1ID0gNjQgLSBPQ1RFT05fTUdNVF9SWF9IRUFEUk9PTTsKLQluZXRk ZXYtPm1heF9tdHUgPSAxNjM4MyAtIE9DVEVPTl9NR01UX1JYX0hFQURST09NOworCW5ldGRldi0+ bWF4X210dSA9IDE2MzgzIC0gT0NURU9OX01HTVRfUlhfSEVBRFJPT00gLSBWTEFOX0hMRU47CiAK IAltYWMgPSBvZl9nZXRfbWFjX2FkZHJlc3MocGRldi0+ZGV2Lm9mX25vZGUpOwogCi0tIAoyLjIw LjEKCgpGcm9tIGI2OWEwMTA1MjZjZGRiYWZhZDU4ZGMwOWZmNmM1MWI4MDdjYWVhNjIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEVyaWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNv bT4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDIwOjA4OjE5IC0wODAwClN1YmplY3Q6IFtQQVRDSCAw NS8yNF0gbmV0OiBmaXggZGF0YS1yYWNlIGluIG5laWdoX2V2ZW50X3NlbmQoKQoKWyBVcHN0cmVh bSBjb21taXQgMWI1M2Q2NDQzNWQ1NjkwMmZjMjM0ZmYyNTA3MTQyZDk3MWEwOTY4NyBdCgpLQ1NB TiByZXBvcnRlZCB0aGUgZm9sbG93aW5nIGRhdGEtcmFjZSBbMV0KClRoZSBmaXggd2lsbCBhbHNv IHByZXZlbnQgdGhlIGNvbXBpbGVyIGZyb20gb3B0aW1pemluZyBvdXQKdGhlIGNvbmRpdGlvbi4K ClsxXQoKQlVHOiBLQ1NBTjogZGF0YS1yYWNlIGluIG5laWdoX3Jlc29sdmVfb3V0cHV0IC8gbmVp Z2hfcmVzb2x2ZV9vdXRwdXQKCndyaXRlIHRvIDB4ZmZmZjg4ODBhNDFkYmE3OCBvZiA4IGJ5dGVz IGJ5IGludGVycnVwdCBvbiBjcHUgMToKIG5laWdoX2V2ZW50X3NlbmQgaW5jbHVkZS9uZXQvbmVp Z2hib3VyLmg6NDQzIFtpbmxpbmVdCiBuZWlnaF9yZXNvbHZlX291dHB1dCsweDc4LzB4NDgwIG5l dC9jb3JlL25laWdoYm91ci5jOjE0NzQKIG5laWdoX291dHB1dCBpbmNsdWRlL25ldC9uZWlnaGJv dXIuaDo1MTEgW2lubGluZV0KIGlwX2ZpbmlzaF9vdXRwdXQyKzB4NGFmLzB4ZTQwIG5ldC9pcHY0 L2lwX291dHB1dC5jOjIyOAogX19pcF9maW5pc2hfb3V0cHV0IG5ldC9pcHY0L2lwX291dHB1dC5j OjMwOCBbaW5saW5lXQogX19pcF9maW5pc2hfb3V0cHV0KzB4MjNhLzB4NDkwIG5ldC9pcHY0L2lw X291dHB1dC5jOjI5MAogaXBfZmluaXNoX291dHB1dCsweDQxLzB4MTYwIG5ldC9pcHY0L2lwX291 dHB1dC5jOjMxOAogTkZfSE9PS19DT05EIGluY2x1ZGUvbGludXgvbmV0ZmlsdGVyLmg6Mjk0IFtp bmxpbmVdCiBpcF9vdXRwdXQrMHhkZi8weDIxMCBuZXQvaXB2NC9pcF9vdXRwdXQuYzo0MzIKIGRz dF9vdXRwdXQgaW5jbHVkZS9uZXQvZHN0Lmg6NDM2IFtpbmxpbmVdCiBpcF9sb2NhbF9vdXQrMHg3 NC8weDkwIG5ldC9pcHY0L2lwX291dHB1dC5jOjEyNQogX19pcF9xdWV1ZV94bWl0KzB4M2E4LzB4 YTQwIG5ldC9pcHY0L2lwX291dHB1dC5jOjUzMgogaXBfcXVldWVfeG1pdCsweDQ1LzB4NjAgaW5j bHVkZS9uZXQvaXAuaDoyMzcKIF9fdGNwX3RyYW5zbWl0X3NrYisweGU4MS8weDFkNjAgbmV0L2lw djQvdGNwX291dHB1dC5jOjExNjkKIHRjcF90cmFuc21pdF9za2IgbmV0L2lwdjQvdGNwX291dHB1 dC5jOjExODUgW2lubGluZV0KIF9fdGNwX3JldHJhbnNtaXRfc2tiKzB4NGJkLzB4MTVmMCBuZXQv aXB2NC90Y3Bfb3V0cHV0LmM6Mjk3NgogdGNwX3JldHJhbnNtaXRfc2tiKzB4MzYvMHgxYTAgbmV0 L2lwdjQvdGNwX291dHB1dC5jOjI5OTkKIHRjcF9yZXRyYW5zbWl0X3RpbWVyKzB4NzE5LzB4MTZk MCBuZXQvaXB2NC90Y3BfdGltZXIuYzo1MTUKIHRjcF93cml0ZV90aW1lcl9oYW5kbGVyKzB4NDJk LzB4NTEwIG5ldC9pcHY0L3RjcF90aW1lci5jOjU5OAogdGNwX3dyaXRlX3RpbWVyKzB4ZDEvMHhm MCBuZXQvaXB2NC90Y3BfdGltZXIuYzo2MTgKCnJlYWQgdG8gMHhmZmZmODg4MGE0MWRiYTc4IG9m IDggYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAwOgogbmVpZ2hfZXZlbnRfc2VuZCBpbmNsdWRl L25ldC9uZWlnaGJvdXIuaDo0NDIgW2lubGluZV0KIG5laWdoX3Jlc29sdmVfb3V0cHV0KzB4NTcv MHg0ODAgbmV0L2NvcmUvbmVpZ2hib3VyLmM6MTQ3NAogbmVpZ2hfb3V0cHV0IGluY2x1ZGUvbmV0 L25laWdoYm91ci5oOjUxMSBbaW5saW5lXQogaXBfZmluaXNoX291dHB1dDIrMHg0YWYvMHhlNDAg bmV0L2lwdjQvaXBfb3V0cHV0LmM6MjI4CiBfX2lwX2ZpbmlzaF9vdXRwdXQgbmV0L2lwdjQvaXBf b3V0cHV0LmM6MzA4IFtpbmxpbmVdCiBfX2lwX2ZpbmlzaF9vdXRwdXQrMHgyM2EvMHg0OTAgbmV0 L2lwdjQvaXBfb3V0cHV0LmM6MjkwCiBpcF9maW5pc2hfb3V0cHV0KzB4NDEvMHgxNjAgbmV0L2lw djQvaXBfb3V0cHV0LmM6MzE4CiBORl9IT09LX0NPTkQgaW5jbHVkZS9saW51eC9uZXRmaWx0ZXIu aDoyOTQgW2lubGluZV0KIGlwX291dHB1dCsweGRmLzB4MjEwIG5ldC9pcHY0L2lwX291dHB1dC5j OjQzMgogZHN0X291dHB1dCBpbmNsdWRlL25ldC9kc3QuaDo0MzYgW2lubGluZV0KIGlwX2xvY2Fs X291dCsweDc0LzB4OTAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6MTI1CiBfX2lwX3F1ZXVlX3htaXQr MHgzYTgvMHhhNDAgbmV0L2lwdjQvaXBfb3V0cHV0LmM6NTMyCiBpcF9xdWV1ZV94bWl0KzB4NDUv MHg2MCBpbmNsdWRlL25ldC9pcC5oOjIzNwogX190Y3BfdHJhbnNtaXRfc2tiKzB4ZTgxLzB4MWQ2 MCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6MTE2OQogdGNwX3RyYW5zbWl0X3NrYiBuZXQvaXB2NC90 Y3Bfb3V0cHV0LmM6MTE4NSBbaW5saW5lXQogX190Y3BfcmV0cmFuc21pdF9za2IrMHg0YmQvMHgx NWYwIG5ldC9pcHY0L3RjcF9vdXRwdXQuYzoyOTc2CiB0Y3BfcmV0cmFuc21pdF9za2IrMHgzNi8w eDFhMCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6Mjk5OQogdGNwX3JldHJhbnNtaXRfdGltZXIrMHg3 MTkvMHgxNmQwIG5ldC9pcHY0L3RjcF90aW1lci5jOjUxNQogdGNwX3dyaXRlX3RpbWVyX2hhbmRs ZXIrMHg0MmQvMHg1MTAgbmV0L2lwdjQvdGNwX3RpbWVyLmM6NTk4CgpSZXBvcnRlZCBieSBLZXJu ZWwgQ29uY3VycmVuY3kgU2FuaXRpemVyIG9uOgpDUFU6IDAgUElEOiAwIENvbW06IHN3YXBwZXIv MCBOb3QgdGFpbnRlZCA1LjQuMC1yYzMrICMwCkhhcmR3YXJlIG5hbWU6IEdvb2dsZSBHb29nbGUg Q29tcHV0ZSBFbmdpbmUvR29vZ2xlIENvbXB1dGUgRW5naW5lLCBCSU9TIEdvb2dsZSAwMS8wMS8y MDExCgpTaWduZWQtb2ZmLWJ5OiBFcmljIER1bWF6ZXQgPGVkdW1hemV0QGdvb2dsZS5jb20+ClJl cG9ydGVkLWJ5OiBzeXpib3QgPHN5emthbGxlckBnb29nbGVncm91cHMuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9u ZXQvbmVpZ2hib3VyLmggfCA0ICsrLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmggYi9p bmNsdWRlL25ldC9uZWlnaGJvdXIuaAppbmRleCA1MGE2N2JkNmE0MzQuLmI4NDUyY2MwZTA1OSAx MDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvbmVpZ2hib3VyLmgKKysrIGIvaW5jbHVkZS9uZXQvbmVp Z2hib3VyLmgKQEAgLTQzOSw4ICs0MzksOCBAQCBzdGF0aWMgaW5saW5lIGludCBuZWlnaF9ldmVu dF9zZW5kKHN0cnVjdCBuZWlnaGJvdXIgKm5laWdoLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQogewog CXVuc2lnbmVkIGxvbmcgbm93ID0gamlmZmllczsKIAkKLQlpZiAobmVpZ2gtPnVzZWQgIT0gbm93 KQotCQluZWlnaC0+dXNlZCA9IG5vdzsKKwlpZiAoUkVBRF9PTkNFKG5laWdoLT51c2VkKSAhPSBu b3cpCisJCVdSSVRFX09OQ0UobmVpZ2gtPnVzZWQsIG5vdyk7CiAJaWYgKCEobmVpZ2gtPm51ZF9z dGF0ZSYoTlVEX0NPTk5FQ1RFRHxOVURfREVMQVl8TlVEX1BST0JFKSkpCiAJCXJldHVybiBfX25l aWdoX2V2ZW50X3NlbmQobmVpZ2gsIHNrYik7CiAJcmV0dXJuIDA7Ci0tIAoyLjIwLjEKCgpGcm9t IGJhMDRkOWRlNGRiMjE3YzBlYTFiZDY5MTMwOTFhN2YyMWEyZWI5MTggTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206IFNlYW4gVHJhbmNoZXR0aSA8c3RyYW5jaGVAY29kZWF1cm9yYS5vcmc+ CkRhdGU6IE1vbiwgNCBOb3YgMjAxOSAxNzo1NDoyMiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYv MjRdIG5ldDogcXVhbGNvbW06IHJtbmV0OiBGaXggcG90ZW50aWFsIFVBRiB3aGVuCiB1bnJlZ2lz dGVyaW5nCgpbIFVwc3RyZWFtIGNvbW1pdCBlN2E4NmM2ODdlNjRhYjI0Zjg4MzMwYWQyNGVjYzk0 NDJjZTQwYzVhIF0KCkR1cmluZyB0aGUgZXhpdC91bnJlZ2lzdHJhdGlvbiBwcm9jZXNzIG9mIHRo ZSBSbU5ldCBkcml2ZXIsIHRoZSBmdW5jdGlvbgpybW5ldF91bnJlZ2lzdGVyX3JlYWxfZGV2aWNl KCkgaXMgY2FsbGVkIHRvIGhhbmRsZSBmcmVlaW5nIHRoZSBkcml2ZXIncwppbnRlcm5hbCBzdGF0 ZSBhbmQgcmVtb3ZpbmcgdGhlIFJYIGhhbmRsZXIgb24gdGhlIHVuZGVybHlpbmcgcGh5c2ljYWwK ZGV2aWNlLiBIb3dldmVyLCB0aGUgb3JkZXIgb2Ygb3BlcmF0aW9ucyB0aGlzIGZ1bmN0aW9uIHBl cmZvcm1zIGlzIHdyb25nCmFuZCBjYW4gbGVhZCB0byBhIHVzZSBhZnRlciBmcmVlIG9mIHRoZSBy bW5ldF9wb3J0IHN0cnVjdHVyZS4KCkJlZm9yZSBjYWxsaW5nIG5ldGRldl9yeF9oYW5kbGVyX3Vu cmVnaXN0ZXIoKSwgdGhpcyBwb3J0IHN0cnVjdHVyZSBpcwpmcmVlZCB3aXRoIGtmcmVlKCkuIElm IHBhY2tldHMgYXJlIHJlY2VpdmVkIG9uIGFueSBSbU5ldCBkZXZpY2VzIGJlZm9yZQpzeW5jaHJv bml6ZV9uZXQoKSBjb21wbGV0ZXMsIHRoZXkgd2lsbCBhdHRlbXB0IHRvIHVzZSB0aGlzIGFscmVh ZHktZnJlZWQKcG9ydCBzdHJ1Y3R1cmUgd2hlbiBwcm9jZXNzaW5nIHRoZSBwYWNrZXQuIEFzIHN1 Y2gsIGJlZm9yZSBjbGVhbmluZyB1cCBhbnkKb3RoZXIgaW50ZXJuYWwgc3RhdGUsIHRoZSBSWCBo YW5kbGVyIG11c3QgYmUgdW5yZWdpc3RlcmVkIGluIG9yZGVyIHRvCmd1YXJhbnRlZSB0aGF0IG5v IGZ1cnRoZXIgcGFja2V0cyB3aWxsIGFycml2ZSBvbiB0aGUgZGV2aWNlLgoKRml4ZXM6IGNlZWQ3 M2EyY2Y0YSAoImRyaXZlcnM6IG5ldDogZXRoZXJuZXQ6IHF1YWxjb21tOiBybW5ldDogSW5pdGlh bCBpbXBsZW1lbnRhdGlvbiIpClNpZ25lZC1vZmYtYnk6IFNlYW4gVHJhbmNoZXR0aSA8c3RyYW5j aGVAY29kZWF1cm9yYS5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9y bW5ldF9jb25maWcuYyB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29t bS9ybW5ldC9ybW5ldF9jb25maWcuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3F1YWxjb21tL3Jt bmV0L3JtbmV0X2NvbmZpZy5jCmluZGV4IDljNTRiNzE1MjI4ZS4uMDZkZTU5NTIxZmM0IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF9jb25maWcu YworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xdWFsY29tbS9ybW5ldC9ybW5ldF9jb25maWcu YwpAQCAtNTcsMTAgKzU3LDEwIEBAIHN0YXRpYyBpbnQgcm1uZXRfdW5yZWdpc3Rlcl9yZWFsX2Rl dmljZShzdHJ1Y3QgbmV0X2RldmljZSAqcmVhbF9kZXYsCiAJaWYgKHBvcnQtPm5yX3JtbmV0X2Rl dnMpCiAJCXJldHVybiAtRUlOVkFMOwogCi0Ja2ZyZWUocG9ydCk7Ci0KIAluZXRkZXZfcnhfaGFu ZGxlcl91bnJlZ2lzdGVyKHJlYWxfZGV2KTsKIAorCWtmcmVlKHBvcnQpOworCiAJLyogcmVsZWFz ZSByZWZlcmVuY2Ugb24gcmVhbF9kZXYgKi8KIAlkZXZfcHV0KHJlYWxfZGV2KTsKIAotLSAKMi4y MC4xCgoKRnJvbSAwZTA3NjMwYTdjMTM3NzUyZGMzZWU0OTViNTU3MmI0YWM4ZTAxYjkxIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBKYWt1YiBLaWNpbnNraSA8amFrdWIua2ljaW5za2lA bmV0cm9ub21lLmNvbT4KRGF0ZTogTW9uLCA0IE5vdiAyMDE5IDE1OjM2OjU3IC0wODAwClN1Ympl Y3Q6IFtQQVRDSCAwNy8yNF0gbmV0L3RsczogZml4IHNrX21zZyB0cmltIG9uIGZhbGxiYWNrIHRv IGNvcHkgbW9kZQoKWyBVcHN0cmVhbSBjb21taXQgNjgzOTE2ZjZhODQwMjM0MDc3NjFkODQzMDQ4 ZjFhZWE0ODZiMjYxMiBdCgpza19tc2dfdHJpbSgpIHRyaWVzIHRvIG9ubHkgdXBkYXRlIGN1cnIg cG9pbnRlciBpZiBpdCBmYWxscyBpbnRvCnRoZSB0cmltbWVkIHJlZ2lvbi4gVGhlIGxvZ2ljLCBo b3dldmVyLCBkb2VzIG5vdCB0YWtlIGludG8gdGhlCmFjY291bnQgcG9pbnRlciB3cmFwcGluZyB0 aGF0IHNrX21zZ19pdGVyX3Zhcl9wcmV2KCkgZG9lcyBub3IKKGFzIEpvaG4gcG9pbnRzIG91dCkg dGhlIGZhY3QgdGhhdCBtc2ctPnNnIGlzIGEgcmluZyBidWZmZXIuCgpUaGlzIG1lYW5zIHRoYXQg d2hlbiB0aGUgbWVzc2FnZSB3YXMgdHJpbW1lZCBjb21wbGV0ZWx5LCB0aGUgbmV3CmN1cnIgcG9p bnRlciB3b3VsZCBoYXZlIHRoZSB2YWx1ZSBvZiBNQVhfTVNHX0ZSQUdTIC0gMSwgd2hpY2ggaXMK bmVpdGhlciBzbWFsbGVyIHRoYW4gYW55IG90aGVyIHZhbHVlLCBub3Igd291bGQgaXQgYWN0dWFs bHkgYmUKY29ycmVjdC4KClNwZWNpYWwgY2FzZSB0aGUgdHJpbW1pbmcgdG8gMCBsZW5ndGggYSBs aXR0bGUgYml0IGFuZCByZXdvcmsKdGhlIGNvbXBhcmlzb24gYmV0d2VlbiBjdXJyIGFuZCBlbmQg dG8gdGFrZSBpbnRvIGFjY291bnQgd3JhcHBpbmcuCgpUaGlzIGJ1ZyBjYXVzZWQgdGhlIFRMUyBj b2RlIHRvIG5vdCBjb3B5IGFsbCBvZiB0aGUgbWVzc2FnZSwgaWYKemVybyBjb3B5IGZpbGxlZCBp biBmZXdlciBzZyBlbnRyaWVzIHRoYW4gbWVtY29weSB3b3VsZCBuZWVkLgoKQmlnIHRoYW5rcyB0 byBBbGV4YW5kZXIgUG90YXBlbmtvIGZvciB0aGUgbm9uLUtNU0FOIHJlcHJvZHVjZXIuCgp2MjoK IC0gdGFrZSBpbnRvIGFjY291bnQgdGhhdCBtc2ctPnNnIGlzIGEgcmluZyBidWZmZXIgKEpvaG4p LgoKTGluazogaHR0cHM6Ly9sb3JlLmtlcm5lbC5vcmcvbmV0ZGV2LzIwMTkxMDMwMTYwNTQyLjMw Mjk1LTEtamFrdWIua2ljaW5za2lAbmV0cm9ub21lLmNvbS8gKHYxKQoKRml4ZXM6IGQ4MjllOWM0 MTEyYiAoInRsczogY29udmVydCB0byBnZW5lcmljIHNrX21zZyBpbnRlcmZhY2UiKQpSZXBvcnRl ZC1ieTogc3l6Ym90K2Y4NDk1YmZmMjNhODc5YTZkMGJkQHN5emthbGxlci5hcHBzcG90bWFpbC5j b20KUmVwb3J0ZWQtYnk6IHN5emJvdCs2ZjUwYzk5ZThmNjE5NGJmMzYzZkBzeXprYWxsZXIuYXBw c3BvdG1haWwuY29tCkNvLWRldmVsb3BlZC1ieTogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFi ZW5kQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2lu c2tpQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IEpvaG4gRmFzdGFiZW5kIDxqb2huLmZh c3RhYmVuZEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL2xpbnV4L3NrbXNnLmggfCAgOSArKysrKystLS0K IG5ldC9jb3JlL3NrbXNnLmMgICAgICB8IDIwICsrKysrKysrKysrKysrKy0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9saW51eC9za21zZy5oIGIvaW5jbHVkZS9saW51eC9za21zZy5oCmluZGV4IGU0YjNm YjRiYjc3Yy4uY2U3MDU1MjU5ODc3IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L3NrbXNnLmgK KysrIGIvaW5jbHVkZS9saW51eC9za21zZy5oCkBAIC0xMzksNiArMTM5LDExIEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBza19tc2dfYXBwbHlfYnl0ZXMoc3RydWN0IHNrX3Bzb2NrICpwc29jaywgdTMy IGJ5dGVzKQogCX0KIH0KIAorc3RhdGljIGlubGluZSB1MzIgc2tfbXNnX2l0ZXJfZGlzdCh1MzIg c3RhcnQsIHUzMiBlbmQpCit7CisJcmV0dXJuIGVuZCA+PSBzdGFydCA/IGVuZCAtIHN0YXJ0IDog ZW5kICsgKE1BWF9NU0dfRlJBR1MgLSBzdGFydCk7Cit9CisKICNkZWZpbmUgc2tfbXNnX2l0ZXJf dmFyX3ByZXYodmFyKQkJCVwKIAlkbyB7CQkJCQkJXAogCQlpZiAodmFyID09IDApCQkJCVwKQEAg LTE5OCw5ICsyMDMsNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBza19tc2dfZWxlbV91c2VkKGNvbnN0 IHN0cnVjdCBza19tc2cgKm1zZykKIAlpZiAoc2tfbXNnX2Z1bGwobXNnKSkKIAkJcmV0dXJuIE1B WF9NU0dfRlJBR1M7CiAKLQlyZXR1cm4gbXNnLT5zZy5lbmQgPj0gbXNnLT5zZy5zdGFydCA/Ci0J CW1zZy0+c2cuZW5kIC0gbXNnLT5zZy5zdGFydCA6Ci0JCW1zZy0+c2cuZW5kICsgKE1BWF9NU0df RlJBR1MgLSBtc2ctPnNnLnN0YXJ0KTsKKwlyZXR1cm4gc2tfbXNnX2l0ZXJfZGlzdChtc2ctPnNn LnN0YXJ0LCBtc2ctPnNnLmVuZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNjYXR0ZXJs aXN0ICpza19tc2dfZWxlbShzdHJ1Y3Qgc2tfbXNnICptc2csIGludCB3aGljaCkKZGlmZiAtLWdp dCBhL25ldC9jb3JlL3NrbXNnLmMgYi9uZXQvY29yZS9za21zZy5jCmluZGV4IDY4MzJlZWI0Yjc4 NS4uYzEwZTNlNTYwMDZlIDEwMDY0NAotLS0gYS9uZXQvY29yZS9za21zZy5jCisrKyBiL25ldC9j b3JlL3NrbXNnLmMKQEAgLTI3MSwxOCArMjcxLDI4IEBAIHZvaWQgc2tfbXNnX3RyaW0oc3RydWN0 IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tfbXNnICptc2csIGludCBsZW4pCiAKIAltc2ctPnNnLmRhdGFb aV0ubGVuZ3RoIC09IHRyaW07CiAJc2tfbWVtX3VuY2hhcmdlKHNrLCB0cmltKTsKKwkvKiBBZGp1 c3QgY29weWJyZWFrIGlmIGl0IGZhbGxzIGludG8gdGhlIHRyaW1tZWQgcGFydCBvZiBsYXN0IGJ1 ZiAqLworCWlmIChtc2ctPnNnLmN1cnIgPT0gaSAmJiBtc2ctPnNnLmNvcHlicmVhayA+IG1zZy0+ c2cuZGF0YVtpXS5sZW5ndGgpCisJCW1zZy0+c2cuY29weWJyZWFrID0gbXNnLT5zZy5kYXRhW2ld Lmxlbmd0aDsKIG91dDoKLQkvKiBJZiB3ZSB0cmltIGRhdGEgYmVmb3JlIGN1cnIgcG9pbnRlciB1 cGRhdGUgY29weWJyZWFrIGFuZCBjdXJyZW50Ci0JICogc28gdGhhdCBhbnkgZnV0dXJlIGNvcHkg b3BlcmF0aW9ucyBzdGFydCBhdCBuZXcgY29weSBsb2NhdGlvbi4KKwlza19tc2dfaXRlcl92YXJf bmV4dChpKTsKKwltc2ctPnNnLmVuZCA9IGk7CisKKwkvKiBJZiB3ZSB0cmltIGRhdGEgYSBmdWxs IHNnIGVsZW0gYmVmb3JlIGN1cnIgcG9pbnRlciB1cGRhdGUKKwkgKiBjb3B5YnJlYWsgYW5kIGN1 cnJlbnQgc28gdGhhdCBhbnkgZnV0dXJlIGNvcHkgb3BlcmF0aW9ucworCSAqIHN0YXJ0IGF0IG5l dyBjb3B5IGxvY2F0aW9uLgogCSAqIEhvd2V2ZXIgdHJpbWVkIGRhdGEgdGhhdCBoYXMgbm90IHll dCBiZWVuIHVzZWQgaW4gYSBjb3B5IG9wCiAJICogZG9lcyBub3QgcmVxdWlyZSBhbiB1cGRhdGUu CiAJICovCi0JaWYgKG1zZy0+c2cuY3VyciA+PSBpKSB7CisJaWYgKCFtc2ctPnNnLnNpemUpIHsK KwkJbXNnLT5zZy5jdXJyID0gbXNnLT5zZy5zdGFydDsKKwkJbXNnLT5zZy5jb3B5YnJlYWsgPSAw OworCX0gZWxzZSBpZiAoc2tfbXNnX2l0ZXJfZGlzdChtc2ctPnNnLnN0YXJ0LCBtc2ctPnNnLmN1 cnIpID49CisJCSAgIHNrX21zZ19pdGVyX2Rpc3QobXNnLT5zZy5zdGFydCwgbXNnLT5zZy5lbmQp KSB7CisJCXNrX21zZ19pdGVyX3Zhcl9wcmV2KGkpOwogCQltc2ctPnNnLmN1cnIgPSBpOwogCQlt c2ctPnNnLmNvcHlicmVhayA9IG1zZy0+c2cuZGF0YVtpXS5sZW5ndGg7CiAJfQotCXNrX21zZ19p dGVyX3Zhcl9uZXh0KGkpOwotCW1zZy0+c2cuZW5kID0gaTsKIH0KIEVYUE9SVF9TWU1CT0xfR1BM KHNrX21zZ190cmltKTsKIAotLSAKMi4yMC4xCgoKRnJvbSA2OTUzMTkxYzFiNjFmMTU4OTYwNDkw MzJmNWQzM2QwMjBlMGNiZGQzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2Fu ZGVyIE1vcmdhZG8gPGFsZWtzYW5kZXJAYWxla3NhbmRlci5lcz4KRGF0ZTogVGh1LCA3IE5vdiAy MDE5IDExOjU3OjAxICswMTAwClN1YmplY3Q6IFtQQVRDSCAwOC8yNF0gbmV0OiB1c2I6IHFtaV93 d2FuOiBhZGQgc3VwcG9ydCBmb3IgRFc1ODIxZSB3aXRoIGVTSU0KIHN1cHBvcnQKClsgVXBzdHJl YW0gY29tbWl0IGU0OTdkZjY4NmU4ZmVkOGMxZGQ2OTE3OTAxMDY1NjM2Mjg1OGVkYjMgXQoKRXhh Y3RseSBzYW1lIGxheW91dCBhcyB0aGUgZGVmYXVsdCBEVzU4MjFlIG1vZHVsZSwganVzdCBhIGRp ZmZlcmVudAp2aWQvcGlkLgoKVGhlIFFNSSBpbnRlcmZhY2UgaXMgZXhwb3NlZCBpbiBVU0IgY29u ZmlndXJhdGlvbiAjMToKClA6ICBWZW5kb3I9NDEzYyBQcm9kSUQ9ODFlMCBSZXY9MDMuMTgKUzog IE1hbnVmYWN0dXJlcj1EZWxsIEluYy4KUzogIFByb2R1Y3Q9RFc1ODIxZS1lU0lNIFNuYXBkcmFn b24gWDIwIExURQpTOiAgU2VyaWFsTnVtYmVyPTAxMjM0NTY3ODlBQkNERUYKQzogICNJZnM9IDYg Q2ZnIz0gMSBBdHI9YTAgTXhQd3I9NTAwbUEKSTogIElmIz0weDAgQWx0PSAwICNFUHM9IDMgQ2xz PWZmKHZlbmQuKSBTdWI9ZmYgUHJvdD1mZiBEcml2ZXI9cW1pX3d3YW4KSTogIElmIz0weDEgQWx0 PSAwICNFUHM9IDEgQ2xzPTAzKEhJRCAgKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9dXNiaGlkCkk6 ICBJZiM9MHgyIEFsdD0gMCAjRVBzPSAzIENscz1mZih2ZW5kLikgU3ViPTAwIFByb3Q9MDAgRHJp dmVyPW9wdGlvbgpJOiAgSWYjPTB4MyBBbHQ9IDAgI0VQcz0gMyBDbHM9ZmYodmVuZC4pIFN1Yj0w MCBQcm90PTAwIERyaXZlcj1vcHRpb24KSTogIElmIz0weDQgQWx0PSAwICNFUHM9IDMgQ2xzPWZm KHZlbmQuKSBTdWI9MDAgUHJvdD0wMCBEcml2ZXI9b3B0aW9uCkk6ICBJZiM9MHg1IEFsdD0gMCAj RVBzPSAyIENscz1mZih2ZW5kLikgU3ViPWZmIFByb3Q9ZmYgRHJpdmVyPW9wdGlvbgoKU2lnbmVk LW9mZi1ieTogQWxla3NhbmRlciBNb3JnYWRvIDxhbGVrc2FuZGVyQGFsZWtzYW5kZXIuZXM+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC91c2IvcW1pX3d3YW4uYyB8IDEgKwogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0 aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJz L25ldC91c2IvcW1pX3d3YW4uYwppbmRleCAzZDc3Y2Q0MDJiYTkuLmJhNjgyYmJhNzg1MSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNi L3FtaV93d2FuLmMKQEAgLTEzNjEsNiArMTM2MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdXNi X2RldmljZV9pZCBwcm9kdWN0c1tdID0gewogCXtRTUlfRklYRURfSU5URigweDQxM2MsIDB4ODFi NiwgOCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4NDEz YywgMHg4MWI2LCAxMCl9LAkvKiBEZWxsIFdpcmVsZXNzIDU4MTFlICovCiAJe1FNSV9GSVhFRF9J TlRGKDB4NDEzYywgMHg4MWQ3LCAwKX0sCS8qIERlbGwgV2lyZWxlc3MgNTgyMWUgKi8KKwl7UU1J X0ZJWEVEX0lOVEYoMHg0MTNjLCAweDgxZTAsIDApfSwJLyogRGVsbCBXaXJlbGVzcyA1ODIxZSB3 aXRoIGVTSU0gc3VwcG9ydCovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDNmMCwgMHg0ZTFkLCA4KX0s CS8qIEhQIGx0NDExMSBMVEUvRVYtRE8vSFNQQSsgR29iaSA0RyBNb2R1bGUgKi8KIAl7UU1JX0ZJ WEVEX0lOVEYoMHgwM2YwLCAweDlkMWQsIDEpfSwJLyogSFAgbHQ0MTIwIFNuYXBkcmFnb24gWDUg TFRFICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MjJkZSwgMHg5MDYxLCAzKX0sCS8qIFdlVGVsZWNv bSBXUEQtNjAwTiAqLwotLSAKMi4yMC4xCgoKRnJvbSAzYzgwOTJhMzAyOTBkMGM1OWU5NzZiNTQy ZTdiNTBjMGJhZmYzOWRmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQYW4gQmlhbiA8 YmlhbnBhbjIwMTZAMTYzLmNvbT4KRGF0ZTogVHVlLCA1IE5vdiAyMDE5IDE2OjM0OjA3ICswODAw ClN1YmplY3Q6IFtQQVRDSCAwOS8yNF0gTkZDOiBmZHA6IGZpeCBpbmNvcnJlY3QgZnJlZSBvYmpl Y3QKClsgVXBzdHJlYW0gY29tbWl0IDUxN2NlNGU5MzM2ODkzOGIyMDQ0NTEyODVlNTMwMTQ1NDk4 MDQ4NjggXQoKVGhlIGFkZHJlc3Mgb2YgZndfdnNjX2NmZyBpcyBvbiBzdGFjay4gUmVsZWFzaW5n IGl0IHdpdGggZGV2bV9rZnJlZSgpIGlzCmluY29ycmVjdCwgd2hpY2ggbWF5IHJlc3VsdCBpbiBh IHN5c3RlbSBjcmFzaCBvciBvdGhlciBzZWN1cml0eSBpbXBhY3RzLgpUaGUgZXhwZWN0ZWQgb2Jq ZWN0IHRvIGZyZWUgaXMgKmZ3X3ZzY19jZmcuCgpTaWduZWQtb2ZmLWJ5OiBQYW4gQmlhbiA8Ymlh bnBhbjIwMTZAMTYzLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBk YXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmZjL2ZkcC9pMmMuYyB8IDIgKy0KIDEgZmlsZSBj aGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmZjL2ZkcC9pMmMuYyBiL2RyaXZlcnMvbmZjL2ZkcC9pMmMuYwppbmRleCAxY2QxMTNjOGQ3 Y2IuLmFkMGFiYjFmMGJhZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZmMvZmRwL2kyYy5jCisrKyBi L2RyaXZlcnMvbmZjL2ZkcC9pMmMuYwpAQCAtMjU5LDcgKzI1OSw3IEBAIHN0YXRpYyB2b2lkIGZk cF9uY2lfaTJjX3JlYWRfZGV2aWNlX3Byb3BlcnRpZXMoc3RydWN0IGRldmljZSAqZGV2LAogCQkJ CQkJICAqZndfdnNjX2NmZywgbGVuKTsKIAogCQlpZiAocikgewotCQkJZGV2bV9rZnJlZShkZXYs IGZ3X3ZzY19jZmcpOworCQkJZGV2bV9rZnJlZShkZXYsICpmd192c2NfY2ZnKTsKIAkJCWdvdG8g dnNjX3JlYWRfZXJyOwogCQl9CiAJfSBlbHNlIHsKLS0gCjIuMjAuMQoKCkZyb20gMzc3NjRlZTBi OTE1ZDBkYTI4ZTYxMjYzYmZhYzFlN2MxMTgzZjBlMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogUGFuIEJpYW4gPGJpYW5wYW4yMDE2QDE2My5jb20+CkRhdGU6IFRodSwgNyBOb3YgMjAx OSAxNDoyOTo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMTAvMjRdIG5mYzogbmV0bGluazogZml4 IGRvdWJsZSBkZXZpY2UgcmVmZXJlbmNlIGRyb3AKClsgVXBzdHJlYW0gY29tbWl0IDAyNWVjNDBi ODFkNzg1YTk4Zjc2YjhiZGI1MDlhYzEwNzczYjRmMTIgXQoKVGhlIGZ1bmN0aW9uIG5mY19wdXRf ZGV2aWNlKGRldikgaXMgY2FsbGVkIHR3aWNlIHRvIGRyb3AgdGhlIHJlZmVyZW5jZQp0byBkZXYg d2hlbiB0aGVyZSBpcyBubyBhc3NvY2lhdGVkIGxvY2FsIGxsY3AuIFJlbW92ZSBvbmUgb2YgdGhl bSB0byBmaXgKdGhlIGJ1Zy4KCkZpeGVzOiA1MmZlYjQ0NGE5MDMgKCJORkM6IEV4dGVuZCBuZXRs aW5rIGludGVyZmFjZSBmb3IgTFRPLCBSVywgYW5kIE1JVVggcGFyYW1ldGVycyBzdXBwb3J0IikK Rml4ZXM6IGQ5YjhkOGUxOWIwNyAoIk5GQzogbGxjcDogU2VydmljZSBOYW1lIExvb2t1cCBuZXRs aW5rIGludGVyZmFjZSIpClNpZ25lZC1vZmYtYnk6IFBhbiBCaWFuIDxiaWFucGFuMjAxNkAxNjMu Y29tPgpSZXZpZXdlZC1ieTogSm9oYW4gSG92b2xkIDxqb2hhbkBrZXJuZWwub3JnPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L25m Yy9uZXRsaW5rLmMgfCAyIC0tCiAxIGZpbGUgY2hhbmdlZCwgMiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvbmZjL25ldGxpbmsuYyBiL25ldC9uZmMvbmV0bGluay5jCmluZGV4IDE3ZTZj YTYyZjFiZS4uYWZkZTBkNzYzMDM5IDEwMDY0NAotLS0gYS9uZXQvbmZjL25ldGxpbmsuYworKysg Yi9uZXQvbmZjL25ldGxpbmsuYwpAQCAtMTA5OSw3ICsxMDk5LDYgQEAgc3RhdGljIGludCBuZmNf Z2VubF9sbGNfc2V0X3BhcmFtcyhzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZv ICppbmZvKQogCiAJbG9jYWwgPSBuZmNfbGxjcF9maW5kX2xvY2FsKGRldik7CiAJaWYgKCFsb2Nh bCkgewotCQluZmNfcHV0X2RldmljZShkZXYpOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXhp dDsKIAl9CkBAIC0xMTU5LDcgKzExNTgsNiBAQCBzdGF0aWMgaW50IG5mY19nZW5sX2xsY19zZHJl cShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgZ2VubF9pbmZvICppbmZvKQogCiAJbG9jYWwg PSBuZmNfbGxjcF9maW5kX2xvY2FsKGRldik7CiAJaWYgKCFsb2NhbCkgewotCQluZmNfcHV0X2Rl dmljZShkZXYpOwogCQlyYyA9IC1FTk9ERVY7CiAJCWdvdG8gZXhpdDsKIAl9Ci0tIAoyLjIwLjEK CgpGcm9tIGQ3M2JmY2RlYTJhZjgzOTI5OWExYzFlMWJjODNmYzY5NzZlYzcyZTQgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFBhbiBCaWFuIDxiaWFucGFuMjAxNkAxNjMuY29tPgpEYXRl OiBUaHUsIDcgTm92IDIwMTkgMDk6MzM6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIDExLzI0XSBO RkM6IHN0MjFuZmNhOiBmaXggZG91YmxlIGZyZWUKClsgVXBzdHJlYW0gY29tbWl0IDk5YThlZmJi NmUzMGI3MmFjOThjZWNmODExMDNmODQ3YWJmZmIxZTUgXQoKVGhlIHZhcmlhYmxlIG5mY2lkX3Nr YiBpcyBub3QgY2hhbmdlZCBpbiB0aGUgY2FsbGVlIG5mY19oY2lfZ2V0X3BhcmFtKCkKaWYgZXJy b3Igb2NjdXJzLiBDb25zZXF1ZW50bHksIHRoZSBmcmVlZCB2YXJpYWJsZSBuZmNpZF9za2Igd2ls bCBiZQpmcmVlZCBhZ2FpbiwgcmVzdWx0aW5nIGluIGEgZG91YmxlIGZyZWUgYnVnLiBTZXQgbmZj aWRfc2tiIHRvIE5VTEwgYWZ0ZXIKcmVsZWFzaW5nIGl0IHRvIGZpeCB0aGUgYnVnLgoKU2lnbmVk LW9mZi1ieTogUGFuIEJpYW4gPGJpYW5wYW4yMDE2QDE2My5jb20+ClNpZ25lZC1vZmYtYnk6IERh dmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25mYy9zdDIx bmZjYS9jb3JlLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmZjL3N0MjFuZmNhL2NvcmUuYyBiL2RyaXZlcnMvbmZjL3N0MjFuZmNh L2NvcmUuYwppbmRleCBmOWFjMTc2Y2YyNTcuLjJjZTE3OTMyYTA3MyAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZmMvc3QyMW5mY2EvY29yZS5jCisrKyBiL2RyaXZlcnMvbmZjL3N0MjFuZmNhL2NvcmUu YwpAQCAtNzA4LDYgKzcwOCw3IEBAIHN0YXRpYyBpbnQgc3QyMW5mY2FfaGNpX2NvbXBsZXRlX3Rh cmdldF9kaXNjb3ZlcmVkKHN0cnVjdCBuZmNfaGNpX2RldiAqaGRldiwKIAkJCQkJCQlORkNfUFJP VE9fRkVMSUNBX01BU0s7CiAJCX0gZWxzZSB7CiAJCQlrZnJlZV9za2IobmZjaWRfc2tiKTsKKwkJ CW5mY2lkX3NrYiA9IE5VTEw7CiAJCQkvKiBQMlAgaW4gdHlwZSBBICovCiAJCQlyID0gbmZjX2hj aV9nZXRfcGFyYW0oaGRldiwgU1QyMU5GQ0FfUkZfUkVBREVSX0ZfR0FURSwKIAkJCQkJU1QyMU5G Q0FfUkZfUkVBREVSX0ZfTkZDSUQxLAotLSAKMi4yMC4xCgoKRnJvbSAzNWVhMjRlNTQ1YTAyNTAy MDIyZjYyMzA0Y2Y3OTk5Yjc2NzI2YmM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBN YW5pc2ggQ2hvcHJhIDxtYW5pc2hjQG1hcnZlbGwuY29tPgpEYXRlOiBGcmksIDggTm92IDIwMTkg MDI6NDI6MzAgLTA4MDAKU3ViamVjdDogW1BBVENIIDEyLzI0XSBxZWRlOiBmaXggTlVMTCBwb2lu dGVyIGRlcmVmIGluIF9fcWVkZV9yZW1vdmUoKQoKWyBVcHN0cmVhbSBjb21taXQgZGVhYmM4NzEx MWM2OTAwOTdjMDM3NjVlYTAxN2NkNTAwZjczNzZmYyBdCgpXaGlsZSByZWJvb3RpbmcgdGhlIHN5 c3RlbSB3aXRoIFNSLUlPViB2ZnMgZW5hYmxlZCBsZWFkcwp0byBiZWxvdyBjcmFzaCBkdWUgdG8g cmVjdXJyZW5jZSBvZiBfX3FlZGVfcmVtb3ZlKCkgb24gdGhlIFZGCmRldmljZXMgKGZpcnN0IGZy b20gLnNodXRkb3duKCkgZmxvdyBvZiB0aGUgVkYgaXRzZWxmIGFuZAphbm90aGVyIGZyb20gUEYn cyAuc2h1dGRvd24oKSBmbG93IGV4ZWN1dGluZyBwY2lfZGlzYWJsZV9zcmlvdigpKQoKVGhpcyBw YXRjaCBhZGRzIGEgc2FmZWd1YXJkIGluIF9fcWVkZV9yZW1vdmUoKSBmbG93IHRvIGZpeCB0aGlz LApzbyB0aGF0IGRyaXZlciBkb2Vzbid0IGF0dGVtcHQgdG8gcmVtb3ZlICJhbHJlYWR5IHJlbW92 ZWQiIGRldmljZXMuCgpbICAxOTQuMzYwMTM0XSBCVUc6IHVuYWJsZSB0byBoYW5kbGUga2VybmVs IE5VTEwgcG9pbnRlciBkZXJlZmVyZW5jZSBhdCAwMDAwMDAwMDAwMDAwOGRjClsgIDE5NC4zNjAy MjddIElQOiBbPGZmZmZmZmZmYzAzNTUzYzQ+XSBfX3FlZGVfcmVtb3ZlKzB4MjQvMHgxMzAgW3Fl ZGVdClsgIDE5NC4zNjAzMDRdIFBHRCAwClsgIDE5NC4zNjAzMjVdIE9vcHM6IDAwMDAgWyMxXSBT TVAKWyAgMTk0LjM2MDM2MF0gTW9kdWxlcyBsaW5rZWQgaW46IHRjcF9scCBmdXNlIHR1biBicmlk Z2Ugc3RwIGxsYyBkZXZsaW5rIGJvbmRpbmcgaXBfc2V0IG5mbmV0bGluayBpYl9pc2VydCBpc2Nz aV90YXJnZXRfbW9kIGliX3NycHQgdGFyZ2V0X2NvcmVfbW9kIGliX3NycCBzY3NpX3RyYW5zcG9y dF9zcnAgc2NzaV90Z3QgaWJfaXBvaWIgaWJfdW1hZCBycGNyZG1hIHN1bnJwYyByZG1hX3VjbSBp Yl91dmVyYnMgaWJfaXNlciByZG1hX2NtIGl3X2NtIGliX2NtIGxpYmlzY3NpIHNjc2lfdHJhbnNw b3J0X2lzY3NpIGRlbGxfc21iaW9zIGlUQ09fd2R0IGlUQ09fdmVuZG9yX3N1cHBvcnQgZGVsbF93 bWlfZGVzY3JpcHRvciBkY2RiYXMgdmZhdCBmYXQgcGNjX2NwdWZyZXEgc2t4X2VkYWMgaW50ZWxf cG93ZXJjbGFtcCBjb3JldGVtcCBpbnRlbF9yYXBsIGlvc2ZfbWJpIGt2bV9pbnRlbCBrdm0gaXJx YnlwYXNzIGNyYzMyX3BjbG11bCBnaGFzaF9jbG11bG5pX2ludGVsIGFlc25pX2ludGVsIGxydyBn ZjEyOG11bCBnbHVlX2hlbHBlciBhYmxrX2hlbHBlciBjcnlwdGQgcWVkciBpYl9jb3JlIHBjc3Br ciBzZXMgZW5jbG9zdXJlIGpveWRldiBpcG1pX3NzaWYgc2cgaTJjX2k4MDEgbHBjX2ljaCBtZWlf bWUgbWVpIHdtaSBpcG1pX3NpIGlwbWlfZGV2aW50ZiBpcG1pX21zZ2hhbmRsZXIgdHBtX2NyYiBh Y3BpX3BhZCBhY3BpX3Bvd2VyX21ldGVyIHhmcyBsaWJjcmMzMmMgc2RfbW9kIGNyY190MTBkaWYg Y3JjdDEwZGlmX2dlbmVyaWMgY3JjdDEwZGlmX3BjbG11bCBjcmN0MTBkaWZfY29tbW9uIGNyYzMy Y19pbnRlbCBtZ2FnMjAwClsgIDE5NC4zNjEwNDRdICBxZWRlIGkyY19hbGdvX2JpdCBkcm1fa21z X2hlbHBlciBxZWQgc3lzY29weWFyZWEgc3lzZmlsbHJlY3QgbnZtZSBzeXNpbWdibHQgZmJfc3lz X2ZvcHMgdHRtIG52bWVfY29yZSBtcHQzc2FzIGNyYzggcHRwIGRybSBwcHNfY29yZSBhaGNpIHJh aWRfY2xhc3Mgc2NzaV90cmFuc3BvcnRfc2FzIGxpYmFoY2kgbGliYXRhIGRybV9wYW5lbF9vcmll bnRhdGlvbl9xdWlya3MgbmZpdCBsaWJudmRpbW0gZG1fbWlycm9yIGRtX3JlZ2lvbl9oYXNoIGRt X2xvZyBkbV9tb2QgW2xhc3QgdW5sb2FkZWQ6IGlwX3RhYmxlc10KWyAgMTk0LjM2MTI5N10gQ1BV OiA1MSBQSUQ6IDc5OTYgQ29tbTogcmVib290IEtkdW1wOiBsb2FkZWQgTm90IHRhaW50ZWQgMy4x MC4wLTEwNjIuZWw3Lng4Nl82NCAjMQpbICAxOTQuMzYxMzU5XSBIYXJkd2FyZSBuYW1lOiBEZWxs IEluYy4gUG93ZXJFZGdlIE1YODQwYy8wNzQwSFcsIEJJT1MgMi40LjYgMTAvMTUvMjAxOQpbICAx OTQuMzYxNDEyXSB0YXNrOiBmZmZmOWNlYTliMzYwMDAwIHRpOiBmZmZmOWNlYWJlYmRjMDAwIHRh c2sudGk6IGZmZmY5Y2VhYmViZGMwMDAKWyAgMTk0LjM2MTQ2M10gUklQOiAwMDEwOls8ZmZmZmZm ZmZjMDM1NTNjND5dICBbPGZmZmZmZmZmYzAzNTUzYzQ+XSBfX3FlZGVfcmVtb3ZlKzB4MjQvMHgx MzAgW3FlZGVdClsgIDE5NC4zNjE1MzRdIFJTUDogMDAxODpmZmZmOWNlYWJlYmRmYWMwICBFRkxB R1M6IDAwMDEwMjgyClsgIDE5NC4zNjE1NzBdIFJBWDogMDAwMDAwMDAwMDAwMDAwMCBSQlg6IGZm ZmY5Y2QwMTM4NDYwOTggUkNYOiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5NC4zNjE2MjFdIFJEWDog MDAwMDAwMDAwMDAwMDAwMCBSU0k6IDAwMDAwMDAwMDAwMDAwMDAgUkRJOiBmZmZmOWNkMDEzODQ2 MDk4ClsgIDE5NC4zNjE2NjhdIFJCUDogZmZmZjljZWFiZWJkZmFlOCBSMDg6IDAwMDAwMDAwMDAw MDAwMDAgUjA5OiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5NC4zNjE3MTVdIFIxMDogMDAwMDAwMDBi ZmUxNDIwMSBSMTE6IGZmZmY5Y2VhYmZlMTQxZTAgUjEyOiAwMDAwMDAwMDAwMDAwMDAwClsgIDE5 NC4zNjE3NjJdIFIxMzogZmZmZjljZDAxMzg0NjA5OCBSMTQ6IDAwMDAwMDAwMDAwMDAwMDAgUjE1 OiBmZmZmOWNlYWI1ZTQ4MDAwClsgIDE5NC4zNjE4MTBdIEZTOiAgMDAwMDdmNzk5YzAyZDg4MCgw MDAwKSBHUzpmZmZmOWNlYWNiMGMwMDAwKDAwMDApIGtubEdTOjAwMDAwMDAwMDAwMDAwMDAKWyAg MTk0LjM2MTg2NV0gQ1M6ICAwMDEwIERTOiAwMDAwIEVTOiAwMDAwIENSMDogMDAwMDAwMDA4MDA1 MDAzMwpbICAxOTQuMzYxOTAzXSBDUjI6IDAwMDAwMDAwMDAwMDA4ZGMgQ1IzOiAwMDAwMDAxYmRh Yzc2MDAwIENSNDogMDAwMDAwMDAwMDc2MDdlMApbICAxOTQuMzYxOTUzXSBEUjA6IDAwMDAwMDAw MDAwMDAwMDAgRFIxOiAwMDAwMDAwMDAwMDAwMDAwIERSMjogMDAwMDAwMDAwMDAwMDAwMApbICAx OTQuMzYyMDAyXSBEUjM6IDAwMDAwMDAwMDAwMDAwMDAgRFI2OiAwMDAwMDAwMGZmZmUwZmYwIERS NzogMDAwMDAwMDAwMDAwMDQwMApbICAxOTQuMzYyMDUxXSBQS1JVOiA1NTU1NTU1NApbICAxOTQu MzYyMDczXSBDYWxsIFRyYWNlOgpbICAxOTQuMzYyMTA5XSAgWzxmZmZmZmZmZmMwMzU1NTAwPl0g cWVkZV9yZW1vdmUrMHgxMC8weDIwIFtxZWRlXQpbICAxOTQuMzYyMTgwXSAgWzxmZmZmZmZmZmI5 N2QwZjNlPl0gcGNpX2RldmljZV9yZW1vdmUrMHgzZS8weGMwClsgIDE5NC4zNjIyNDBdICBbPGZm ZmZmZmZmYjk4YjNjNTI+XSBfX2RldmljZV9yZWxlYXNlX2RyaXZlcisweDgyLzB4ZjAKWyAgMTk0 LjM2MjI4NV0gIFs8ZmZmZmZmZmZiOThiM2NlMz5dIGRldmljZV9yZWxlYXNlX2RyaXZlcisweDIz LzB4MzAKWyAgMTk0LjM2MjM0M10gIFs8ZmZmZmZmZmZiOTdjODZkND5dIHBjaV9zdG9wX2J1c19k ZXZpY2UrMHg4NC8weGEwClsgIDE5NC4zNjIzODhdICBbPGZmZmZmZmZmYjk3Yzg3ZTI+XSBwY2lf c3RvcF9hbmRfcmVtb3ZlX2J1c19kZXZpY2UrMHgxMi8weDIwClsgIDE5NC4zNjI0NTBdICBbPGZm ZmZmZmZmYjk3ZjE1M2Y+XSBwY2lfaW92X3JlbW92ZV92aXJ0Zm4rMHhhZi8weDE2MApbICAxOTQu MzYyNDk2XSAgWzxmZmZmZmZmZmI5N2YxYWVjPl0gc3Jpb3ZfZGlzYWJsZSsweDNjLzB4ZjAKWyAg MTk0LjM2MjUzNF0gIFs8ZmZmZmZmZmZiOTdmMWJjMz5dIHBjaV9kaXNhYmxlX3NyaW92KzB4MjMv MHgzMApbICAxOTQuMzYyNTk5XSAgWzxmZmZmZmZmZmMwMmY4M2MzPl0gcWVkX3NyaW92X2Rpc2Fi bGUrMHg1ZTMvMHg2NTAgW3FlZF0KWyAgMTk0LjM2MjY1OF0gIFs8ZmZmZmZmZmZiOTYyMmRmNj5d ID8ga2ZyZWUrMHgxMDYvMHgxNDAKWyAgMTk0LjM2MjcwOV0gIFs8ZmZmZmZmZmZjMDJjYzBjMD5d ID8gcWVkX2ZyZWVfc3RyZWFtX21lbSsweDcwLzB4OTAgW3FlZF0KWyAgMTk0LjM2Mjc1NF0gIFs8 ZmZmZmZmZmZiOTYyMmRmNj5dID8ga2ZyZWUrMHgxMDYvMHgxNDAKWyAgMTk0LjM2MjgwM10gIFs8 ZmZmZmZmZmZjMDJjZDY1OT5dIHFlZF9zbG93cGF0aF9zdG9wKzB4MWE5LzB4MWQwIFtxZWRdClsg IDE5NC4zNjI4NTRdICBbPGZmZmZmZmZmYzAzNTU0NGU+XSBfX3FlZGVfcmVtb3ZlKzB4YWUvMHgx MzAgW3FlZGVdClsgIDE5NC4zNjI5MDRdICBbPGZmZmZmZmZmYzAzNTU0ZTA+XSBxZWRlX3NodXRk b3duKzB4MTAvMHgyMCBbcWVkZV0KWyAgMTk0LjM2Mjk1Nl0gIFs8ZmZmZmZmZmZiOTdjZjkwYT5d IHBjaV9kZXZpY2Vfc2h1dGRvd24rMHgzYS8weDYwClsgIDE5NC4zNjMwMTBdICBbPGZmZmZmZmZm Yjk4YjE4MGI+XSBkZXZpY2Vfc2h1dGRvd24rMHhmYi8weDFmMApbICAxOTQuMzYzMDY2XSAgWzxm ZmZmZmZmZmI5NGI2NmM2Pl0ga2VybmVsX3Jlc3RhcnRfcHJlcGFyZSsweDM2LzB4NDAKWyAgMTk0 LjM2MzEwN10gIFs8ZmZmZmZmZmZiOTRiNjZlMj5dIGtlcm5lbF9yZXN0YXJ0KzB4MTIvMHg2MApb ICAxOTQuMzYzMTQ2XSAgWzxmZmZmZmZmZmI5NGI2OTU5Pl0gU1lTQ19yZWJvb3QrMHgyMjkvMHgy NjAKWyAgMTk0LjM2MzE5Nl0gIFs8ZmZmZmZmZmZiOTVmMjAwZD5dID8gaGFuZGxlX21tX2ZhdWx0 KzB4MzlkLzB4OWIwClsgIDE5NC4zNjMyNTNdICBbPGZmZmZmZmZmYjk0MmI2MjE+XSA/IF9fc3dp dGNoX3RvKzB4MTUxLzB4NTgwClsgIDE5NC4zNjMzMDRdICBbPGZmZmZmZmZmYjliN2VjMjg+XSA/ IF9fc2NoZWR1bGUrMHg0NDgvMHg5YzAKWyAgMTk0LjM2MzM0M10gIFs8ZmZmZmZmZmZiOTRiNjlm ZT5dIFN5U19yZWJvb3QrMHhlLzB4MTAKWyAgMTk0LjM2MzM4N10gIFs8ZmZmZmZmZmZiOWI4YmVk ZT5dIHN5c3RlbV9jYWxsX2Zhc3RwYXRoKzB4MjUvMHgyYQpbICAxOTQuMzYzNDMwXSBDb2RlOiBm OSBlOSAzNyBmZiBmZiBmZiA5MCAwZiAxZiA0NCAwMCAwMCA1NSA0OCA4OSBlNSA0MSA1NyA0MSA1 NiA0MSA1NSA0YyA4ZCBhZiA5OCAwMCAwMCAwMCA0MSA1NCA0YyA4OSBlZiA0MSA4OSBmNCA1MyBl OCA0YyBlNCA1NSBmOSA8ODA+IGI4IGRjIDA4IDAwIDAwIDAxIDQ4IDg5IGMzIDRjIDhkIGI4IGMw IDA4IDAwIDAwIDRjIDhiIGIwIGMwClsgIDE5NC4zNjM3MTJdIFJJUCAgWzxmZmZmZmZmZmMwMzU1 M2M0Pl0gX19xZWRlX3JlbW92ZSsweDI0LzB4MTMwIFtxZWRlXQpbICAxOTQuMzYzNzY0XSAgUlNQ IDxmZmZmOWNlYWJlYmRmYWMwPgpbICAxOTQuMzYzNzkxXSBDUjI6IDAwMDAwMDAwMDAwMDA4ZGMK ClNpZ25lZC1vZmYtYnk6IE1hbmlzaCBDaG9wcmEgPG1hbmlzaGNAbWFydmVsbC5jb20+ClNpZ25l ZC1vZmYtYnk6IEFyaWVsIEVsaW9yIDxhZWxpb3JAbWFydmVsbC5jb20+ClNpZ25lZC1vZmYtYnk6 IFN1ZGFyc2FuYSBLYWxsdXJ1IDxza2FsbHVydUBtYXJ2ZWxsLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2V0 aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfbWFpbi5jIHwgMTIgKysrKysrKysrKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21haW4uYyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L3Fsb2dpYy9xZWRlL3FlZGVfbWFpbi5jCmluZGV4IDhkMWMyMDhmNzc4Zi4uYTIy MGNjN2M5NDdhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9x ZWRlX21haW4uYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9xbG9naWMvcWVkZS9xZWRlX21h aW4uYwpAQCAtMTIwOCw4ICsxMjA4LDE2IEBAIGVudW0gcWVkZV9yZW1vdmVfbW9kZSB7CiBzdGF0 aWMgdm9pZCBfX3FlZGVfcmVtb3ZlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBlbnVtIHFlZGVfcmVt b3ZlX21vZGUgbW9kZSkKIHsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqbmRldiA9IHBjaV9nZXRfZHJ2 ZGF0YShwZGV2KTsKLQlzdHJ1Y3QgcWVkZV9kZXYgKmVkZXYgPSBuZXRkZXZfcHJpdihuZGV2KTsK LQlzdHJ1Y3QgcWVkX2RldiAqY2RldiA9IGVkZXYtPmNkZXY7CisJc3RydWN0IHFlZGVfZGV2ICpl ZGV2OworCXN0cnVjdCBxZWRfZGV2ICpjZGV2OworCisJaWYgKCFuZGV2KSB7CisJCWRldl9pbmZv KCZwZGV2LT5kZXYsICJEZXZpY2UgaGFzIGFscmVhZHkgYmVlbiByZW1vdmVkXG4iKTsKKwkJcmV0 dXJuOworCX0KKworCWVkZXYgPSBuZXRkZXZfcHJpdihuZGV2KTsKKwljZGV2ID0gZWRldi0+Y2Rl djsKIAogCURQX0lORk8oZWRldiwgIlN0YXJ0aW5nIHFlZGVfcmVtb3ZlXG4iKTsKIAotLSAKMi4y MC4xCgoKRnJvbSA3NjVhODk0NDNhMTJjYTg3OGU3ZjkzYWQ0ZDEyYWNiNDU4OWRjYzQ2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDbGF1ZGl1IE1hbm9pbCA8Y2xhdWRpdS5tYW5vaWxA bnhwLmNvbT4KRGF0ZTogVHVlLCA1IE5vdiAyMDE5IDIzOjUwOjEzICswMjAwClN1YmplY3Q6IFtQ QVRDSCAxMy8yNF0gbmV0OiBtc2NjOiBvY2Vsb3Q6IGRvbid0IGhhbmRsZSBuZXRkZXYgZXZlbnRz IGZvciBvdGhlcgogbmV0ZGV2cwoKWyBVcHN0cmVhbSBjb21taXQgN2FmYjNlNTc1ZTVhYTlmNWEy MDBhM2ViM2Y0NWQ4MTMwZjZkNjYwMSBdCgpUaGUgY2hlY2sgdGhhdCB0aGUgZXZlbnQgaXMgYWN0 dWFsbHkgZm9yIHRoaXMgZGV2aWNlIHNob3VsZCBiZSBtb3ZlZApmcm9tIHRoZSAicG9ydCIgaGFu ZGxlciB0byB0aGUgbmV0IGRldmljZSBoYW5kbGVyLgoKT3RoZXJ3aXNlIHRoZSBwb3J0IGhhbmRs ZXIgd2lsbCBkZW55IGJvbmRpbmcgY29uZmlndXJhdGlvbiBmb3Igb3RoZXIKbmV0IGRldmljZXMg aW4gdGhlIHNhbWUgc3lzdGVtIChsaWtlIGVuZXRjIGluIHRoZSBMUzEwMjhBKSB0aGF0IGRvbid0 CmhhdmUgdGhlIGxhZ191cHBlcl9pbmZvLT50eF90eXBlIHJlc3RyaWN0aW9uIHRoYXQgb2NlbG90 IGhhcy4KCkZpeGVzOiBkYzk2ZWUzNzMwZmMgKCJuZXQ6IG1zY2M6IG9jZWxvdDogYWRkIGJvbmRp bmcgc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IENsYXVkaXUgTWFub2lsIDxjbGF1ZGl1Lm1hbm9p bEBueHAuY29tPgpTaWduZWQtb2ZmLWJ5OiBWbGFkaW1pciBPbHRlYW4gPG9sdGVhbnZAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYyB8IDYgKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5l dC9tc2NjL29jZWxvdC5jCmluZGV4IDY5MzJlNjE1ZDRiMC4uZjUwNzI0NjUwMzg4IDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCisrKyBiL2RyaXZlcnMvbmV0 L2V0aGVybmV0L21zY2Mvb2NlbG90LmMKQEAgLTE0OTksOSArMTQ5OSw2IEBAIHN0YXRpYyBpbnQg b2NlbG90X25ldGRldmljZV9wb3J0X2V2ZW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJc3Ry dWN0IG9jZWxvdF9wb3J0ICpvY2Vsb3RfcG9ydCA9IG5ldGRldl9wcml2KGRldik7CiAJaW50IGVy ciA9IDA7CiAKLQlpZiAoIW9jZWxvdF9uZXRkZXZpY2VfZGV2X2NoZWNrKGRldikpCi0JCXJldHVy biAwOwotCiAJc3dpdGNoIChldmVudCkgewogCWNhc2UgTkVUREVWX0NIQU5HRVVQUEVSOgogCQlp ZiAobmV0aWZfaXNfYnJpZGdlX21hc3RlcihpbmZvLT51cHBlcl9kZXYpKSB7CkBAIC0xNTM4LDYg KzE1MzUsOSBAQCBzdGF0aWMgaW50IG9jZWxvdF9uZXRkZXZpY2VfZXZlbnQoc3RydWN0IG5vdGlm aWVyX2Jsb2NrICp1bnVzZWQsCiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IG5ldGRldl9ub3Rp Zmllcl9pbmZvX3RvX2RldihwdHIpOwogCWludCByZXQgPSAwOwogCisJaWYgKCFvY2Vsb3RfbmV0 ZGV2aWNlX2Rldl9jaGVjayhkZXYpKQorCQlyZXR1cm4gMDsKKwogCWlmIChldmVudCA9PSBORVRE RVZfUFJFQ0hBTkdFVVBQRVIgJiYKIAkgICAgbmV0aWZfaXNfbGFnX21hc3RlcihpbmZvLT51cHBl cl9kZXYpKSB7CiAJCXN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKmxhZ191cHBlcl9pbmZv ID0gaW5mby0+dXBwZXJfaW5mbzsKLS0gCjIuMjAuMQoKCkZyb20gNmUzYmE0NGRmMTdmNTc3Yjhk YWEyNDQzY2ZkYzYwZTQ1NTAzNGJiNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQ2xh dWRpdSBNYW5vaWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+CkRhdGU6IFR1ZSwgNSBOb3YgMjAx OSAyMzo1MDoxNCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMTQvMjRdIG5ldDogbXNjYzogb2NlbG90 OiBmaXggTlVMTCBwb2ludGVyIG9uIExBRyBzbGF2ZQogcmVtb3ZhbAoKWyBVcHN0cmVhbSBjb21t aXQgM2IzZWVkOGVlYzQ3MjU5OTM5ZWU2YzNkNThhZWExYzMxMWRkZWUzYiBdCgpsYWdfdXBwZXJf aW5mbyBtYXkgYmUgTlVMTCBvbiBzbGF2ZSByZW1vdmFsLgoKRml4ZXM6IGRjOTZlZTM3MzBmYyAo Im5ldDogbXNjYzogb2NlbG90OiBhZGQgYm9uZGluZyBzdXBwb3J0IikKU2lnbmVkLW9mZi1ieTog Q2xhdWRpdSBNYW5vaWwgPGNsYXVkaXUubWFub2lsQG54cC5jb20+ClNpZ25lZC1vZmYtYnk6IFZs YWRpbWlyIE9sdGVhbiA8b2x0ZWFudkBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9ldGhlcm5ldC9t c2NjL29jZWxvdC5jIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxv dC5jIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3QuYwppbmRleCBmNTA3MjQ2NTAz ODguLmRjNzg5NDBmMDhmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9v Y2Vsb3QuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9tc2NjL29jZWxvdC5jCkBAIC0xNTQz LDcgKzE1NDMsOCBAQCBzdGF0aWMgaW50IG9jZWxvdF9uZXRkZXZpY2VfZXZlbnQoc3RydWN0IG5v dGlmaWVyX2Jsb2NrICp1bnVzZWQsCiAJCXN0cnVjdCBuZXRkZXZfbGFnX3VwcGVyX2luZm8gKmxh Z191cHBlcl9pbmZvID0gaW5mby0+dXBwZXJfaW5mbzsKIAkJc3RydWN0IG5ldGxpbmtfZXh0X2Fj ayAqZXh0YWNrOwogCi0JCWlmIChsYWdfdXBwZXJfaW5mby0+dHhfdHlwZSAhPSBORVRERVZfTEFH X1RYX1RZUEVfSEFTSCkgeworCQlpZiAobGFnX3VwcGVyX2luZm8gJiYKKwkJICAgIGxhZ191cHBl cl9pbmZvLT50eF90eXBlICE9IE5FVERFVl9MQUdfVFhfVFlQRV9IQVNIKSB7CiAJCQlleHRhY2sg PSBuZXRkZXZfbm90aWZpZXJfaW5mb190b19leHRhY2soJmluZm8tPmluZm8pOwogCQkJTkxfU0VU X0VSUl9NU0dfTU9EKGV4dGFjaywgIkxBRyBkZXZpY2UgdXNpbmcgdW5zdXBwb3J0ZWQgVHggdHlw ZSIpOwogCi0tIAoyLjIwLjEKCgpGcm9tIDMyZWVkOGI1OWM3YmUxMGQ2YWFjOTUxY2YxODQ1ZTZl NWI2ZjQ0ODMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpha3ViIEtpY2luc2tpIDxq YWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBUdWUsIDUgTm92IDIwMTkgMTQ6MjQ6 MzQgLTA4MDAKU3ViamVjdDogW1BBVENIIDE1LzI0XSBuZXQvdGxzOiBkb24ndCBwYXkgYXR0ZW50 aW9uIHRvIHNrX3dyaXRlX3BlbmRpbmcgd2hlbgogcHVzaGluZyBwYXJ0aWFsIHJlY29yZHMKClsg VXBzdHJlYW0gY29tbWl0IDAyYjFmYTA3YmI1OGY1ZDFmMzQ5YjViMDllYjkzNjczOWE3YjIwZmMg XQoKc2tfd3JpdGVfcGVuZGluZyBiZWluZyBub3QgemVybyBkb2VzIG5vdCBndWFyYW50ZWUgdGhh dCBwYXJ0aWFsCnJlY29yZCB3aWxsIGJlIHB1c2hlZC4gSWYgdGhlIHRocmVhZCB3YWl0aW5nIGZv ciBtZW1vcnkgdGltZXMgb3V0CnRoZSBwZW5kaW5nIHJlY29yZCBtYXkgZ2V0IHN0dWNrLgoKSW4g Y2FzZSBvZiB0bHNfZGV2aWNlIHRoZXJlIGlzIG5vIHBhdGggd2hlcmUgcGFyaWFsIHJlY29yZCBp cwpzZXQgYW5kIHdyaXRlciBwcmVzZW50IGluIHRoZSBmaXJzdCBwbGFjZS4gUGFydGlhbCByZWNv cmQgaXMKc2V0IG9ubHkgaW4gdGxzX3B1c2hfc2coKSBhbmQgdGxzX3B1c2hfc2coKSB3aWxsIHJl dHVybiBhbgplcnJvciBpbW1lZGlhdGVseS4gQWxsIHRsc19kZXZpY2UgY2FsbGVycyBvZiB0bHNf cHVzaF9zZygpCndpbGwgcmV0dXJuIChhbmQgbm90IHdhaXQgZm9yIG1lbW9yeSkgaWYgaXQgZmFp bGVkLgoKRml4ZXM6IGE0MjA1NWU4ZDJjMyAoIm5ldC90bHM6IEFkZCBzdXBwb3J0IGZvciBhc3lu YyBlbmNyeXB0aW9uIG9mIHJlY29yZHMgZm9yIHBlcmZvcm1hbmNlIikKU2lnbmVkLW9mZi1ieTog SmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ClJldmlld2VkLWJ5 OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpTaWduZWQtb2ZmLWJ5 OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNf ZGV2aWNlLmMgfCA0ICsrKy0KIG5ldC90bHMvdGxzX3N3LmMgICAgIHwgOSArKystLS0tLS0KIDIg ZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC90bHMvdGxzX2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5kZXggNDM5 MjJkODZlNTEwLi40NzllYmMwZWQ4NjYgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2RldmljZS5j CisrKyBiL25ldC90bHMvdGxzX2RldmljZS5jCkBAIC01NzUsOSArNTc1LDExIEBAIHN0YXRpYyBp bnQgdGxzX2RldmljZV9wdXNoX3BlbmRpbmdfcmVjb3JkKHN0cnVjdCBzb2NrICpzaywgaW50IGZs YWdzKQogCiB2b2lkIHRsc19kZXZpY2Vfd3JpdGVfc3BhY2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1 Y3QgdGxzX2NvbnRleHQgKmN0eCkKIHsKLQlpZiAoIXNrLT5za193cml0ZV9wZW5kaW5nICYmIHRs c19pc19wYXJ0aWFsbHlfc2VudF9yZWNvcmQoY3R4KSkgeworCWlmICh0bHNfaXNfcGFydGlhbGx5 X3NlbnRfcmVjb3JkKGN0eCkpIHsKIAkJZ2ZwX3Qgc2tfYWxsb2NhdGlvbiA9IHNrLT5za19hbGxv Y2F0aW9uOwogCisJCVdBUk5fT05fT05DRShzay0+c2tfd3JpdGVfcGVuZGluZyk7CisKIAkJc2st PnNrX2FsbG9jYXRpb24gPSBHRlBfQVRPTUlDOwogCQl0bHNfcHVzaF9wYXJ0aWFsX3JlY29yZChz aywgY3R4LAogCQkJCQlNU0dfRE9OVFdBSVQgfCBNU0dfTk9TSUdOQUwgfApkaWZmIC0tZ2l0IGEv bmV0L3Rscy90bHNfc3cuYyBiL25ldC90bHMvdGxzX3N3LmMKaW5kZXggOTFkMjFiMDQ4YTliLi5i NzUxYWRjMzg3NmMgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX3N3LmMKKysrIGIvbmV0L3Rscy90 bHNfc3cuYwpAQCAtMjE4MiwxMiArMjE4Miw5IEBAIHZvaWQgdGxzX3N3X3dyaXRlX3NwYWNlKHN0 cnVjdCBzb2NrICpzaywgc3RydWN0IHRsc19jb250ZXh0ICpjdHgpCiAJc3RydWN0IHRsc19zd19j b250ZXh0X3R4ICp0eF9jdHggPSB0bHNfc3dfY3R4X3R4KGN0eCk7CiAKIAkvKiBTY2hlZHVsZSB0 aGUgdHJhbnNtaXNzaW9uIGlmIHR4IGxpc3QgaXMgcmVhZHkgKi8KLQlpZiAoaXNfdHhfcmVhZHko dHhfY3R4KSAmJiAhc2stPnNrX3dyaXRlX3BlbmRpbmcpIHsKLQkJLyogU2NoZWR1bGUgdGhlIHRy YW5zbWlzc2lvbiAqLwotCQlpZiAoIXRlc3RfYW5kX3NldF9iaXQoQklUX1RYX1NDSEVEVUxFRCwK LQkJCQkgICAgICAmdHhfY3R4LT50eF9iaXRtYXNrKSkKLQkJCXNjaGVkdWxlX2RlbGF5ZWRfd29y aygmdHhfY3R4LT50eF93b3JrLndvcmssIDApOwotCX0KKwlpZiAoaXNfdHhfcmVhZHkodHhfY3R4 KSAmJgorCSAgICAhdGVzdF9hbmRfc2V0X2JpdChCSVRfVFhfU0NIRURVTEVELCAmdHhfY3R4LT50 eF9iaXRtYXNrKSkKKwkJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZ0eF9jdHgtPnR4X3dvcmsud29y aywgMCk7CiB9CiAKIHZvaWQgdGxzX3N3X3N0cnBhcnNlcl9hcm0oc3RydWN0IHNvY2sgKnNrLCBz dHJ1Y3QgdGxzX2NvbnRleHQgKnRsc19jdHgpCi0tIAoyLjIwLjEKCgpGcm9tIDZmZTE4YjkwYjFl ZGJmNjFkYTMxNjhmNmExMWJmN2QwMmNhMmNjYzQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZy b206IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUuY29tPgpEYXRlOiBU dWUsIDUgTm92IDIwMTkgMTQ6MjQ6MzUgLTA4MDAKU3ViamVjdDogW1BBVENIIDE2LzI0XSBuZXQv dGxzOiBhZGQgYSBUWCBsb2NrCgpbIFVwc3RyZWFtIGNvbW1pdCA3OWZmZTYwODdlOTE0NWQyMzc3 Mzg1Y2FjNDhkMGQ2YTZiNDIyNWE1IF0KClRMUyBUWCBuZWVkcyB0byByZWxlYXNlIGFuZCByZS1h Y3F1aXJlIHRoZSBzb2NrZXQgbG9jayBpZiBzZW5kIGJ1ZmZlcgpmaWxscyB1cC4KClRMUyBTVyBU WCBwYXRoIGN1cnJlbnRseSBkZXBlbmRzIG9uIG9ubHkgYWxsb3dpbmcgb25lIHRocmVhZCB0byBl bnRlcgp0aGUgZnVuY3Rpb24gYnkgdGhlIGFidXNlIG9mIHNrX3dyaXRlX3BlbmRpbmcuIElmIGFu b3RoZXIgd3JpdGVyIGlzCmFscmVhZHkgd2FpdGluZyBmb3IgbWVtb3J5IG5vIG5ldyBvbmVzIGFy ZSBhbGxvd2VkIGluLgoKVGhpcyBoYXMgdHdvIHByb2JsZW1zOgogLSB3cml0ZXJzIGRvbid0IHdh a2Ugb3RoZXIgdGhyZWFkcyB1cCB3aGVuIHRoZXkgbGVhdmUgdGhlIGtlcm5lbDsKICAgbWVhbmlu ZyB0aGF0IHRoaXMgc2NoZW1lIHdvcmtzIGZvciBzaW5nbGUgZXh0cmEgdGhyZWFkIChzZWNvbmQK ICAgYXBwbGljYXRpb24gdGhyZWFkIG9yIGRlbGF5ZWQgd29yaykgYmVjYXVzZSBtZW1vcnkgYmVj b21pbmcKICAgYXZhaWxhYmxlIHdpbGwgc2VuZCBhIHdha2UgdXAgcmVxdWVzdCwgYnV0IGFzIE1h bGxlc2hhbSBhbmQKICAgUG9vamEgcmVwb3J0IHdpdGggbGFyZ2VyIG51bWJlciBvZiB0aHJlYWRz IGl0IGxlYWRzIHRvIHRocmVhZHMKICAgYmVpbmcgcHV0IHRvIHNsZWVwIGluZGVmaW5pdGVseTsK IC0gdGhlIGRlbGF5ZWQgd29yayBkb2VzIG5vdCBnZXQgX3NjaGVkdWxlZF8gYnV0IGl0IG1heSBf cnVuXyB3aGVuCiAgIG90aGVyIHdyaXRlcnMgYXJlIHByZXNlbnQgbGVhZGluZyB0byBjcmFzaGVz IGFzIHdyaXRlcnMgZG9uJ3QKICAgZXhwZWN0IHN0YXRlIHRvIGNoYW5nZSB1bmRlciB0aGVpciBm ZWV0IChzYW1lIHJlY29yZHMgZ2V0IHB1c2hlZAogICBhbmQgZnJlZWQgbXVsdGlwbGUgdGltZXMp OyBpdCdzIGhhcmQgdG8gcmVsaWFibHkgYmFpbCBmcm9tIHRoZQogICB3b3JrLCBob3dldmVyLCBi ZWNhdXNlIHRoZSBtZXJlIHByZXNlbmNlIG9mIGEgd3JpdGVyIGRvZXMgbm90CiAgIGd1YXJhbnRl ZSB0aGF0IHRoZSB3cml0ZXIgd2lsbCBwdXNoIHBlbmRpbmcgcmVjb3JkcyBiZWZvcmUgZXhpdGlu Zy4KCkVuc3VyaW5nIHdha2V1cHMgYWx3YXlzIGhhcHBlbiB3aWxsIG1ha2UgdGhlIGNvZGUgYmFz aWNhbGx5IG9wZW4KY29kZSBhIG11dGV4LiBKdXN0IHVzZSBhIG11dGV4LgoKVGhlIFRMUyBIVyBU WCBwYXRoIGRvZXMgbm90IGhhdmUgYW55IGxvY2tpbmcgKG5vdCBldmVuIHRoZQpza193cml0ZV9w ZW5kaW5nIGhhY2spLCB5ZXQgaXQgdXNlcyBhIHBlci1zb2NrZXQgc2dfdHhfZGF0YQphcnJheSB0 byBwdXNoIHJlY29yZHMuCgpGaXhlczogYTQyMDU1ZThkMmMzICgibmV0L3RsczogQWRkIHN1cHBv cnQgZm9yIGFzeW5jIGVuY3J5cHRpb24gb2YgcmVjb3JkcyBmb3IgcGVyZm9ybWFuY2UiKQpSZXBv cnRlZC1ieTogTWFsbGVzaGFtICBKYXRoYXJha29uZGEgPG1hbGxlc2g1MzdAZ21haWwuY29tPgpS ZXBvcnRlZC1ieTogUG9vamEgVHJpdmVkaSA8cG9vamF0cml2ZWRpQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJvbm9tZS5jb20+ClJl dmlld2VkLWJ5OiBTaW1vbiBIb3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5j bHVkZS9uZXQvdGxzLmggICAgfCAgNSArKysrKwogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCAgNiAr KysrKysKIG5ldC90bHMvdGxzX21haW4uYyAgIHwgIDIgKysKIG5ldC90bHMvdGxzX3N3LmMgICAg IHwgMjEgKysrKysrKy0tLS0tLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlv bnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L3Rscy5oIGIv aW5jbHVkZS9uZXQvdGxzLmgKaW5kZXggNDFiMmQ0MWJiMWI4Li5iZDFlZjFhOTE1ZTkgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L3Rscy5oCisrKyBiL2luY2x1ZGUvbmV0L3Rscy5oCkBAIC00MCw2 ICs0MCw3IEBACiAjaW5jbHVkZSA8bGludXgvc29ja2V0Lmg+CiAjaW5jbHVkZSA8bGludXgvdGNw Lmg+CiAjaW5jbHVkZSA8bGludXgvc2ttc2cuaD4KKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgog I2luY2x1ZGUgPGxpbnV4L25ldGRldmljZS5oPgogCiAjaW5jbHVkZSA8bmV0L3RjcC5oPgpAQCAt MjY4LDYgKzI2OSwxMCBAQCBzdHJ1Y3QgdGxzX2NvbnRleHQgewogCiAJYm9vbCBpbl90Y3Bfc2Vu ZHBhZ2VzOwogCWJvb2wgcGVuZGluZ19vcGVuX3JlY29yZF9mcmFnczsKKworCXN0cnVjdCBtdXRl eCB0eF9sb2NrOyAvKiBwcm90ZWN0cyBwYXJ0aWFsbHlfc2VudF8qIGZpZWxkcyBhbmQKKwkJCSAg ICAgICAqIHBlci10eXBlIFRYIGZpZWxkcworCQkJICAgICAgICovCiAJdW5zaWduZWQgbG9uZyBm bGFnczsKIAogCS8qIGNhY2hlIGNvbGQgc3R1ZmYgKi8KZGlmZiAtLWdpdCBhL25ldC90bHMvdGxz X2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5kZXggNDc5ZWJjMGVkODY2Li42YjBj OWI3OThkOWMgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2RldmljZS5jCisrKyBiL25ldC90bHMv dGxzX2RldmljZS5jCkBAIC00ODIsOCArNDgyLDEwIEBAIHN0YXRpYyBpbnQgdGxzX3B1c2hfZGF0 YShzdHJ1Y3Qgc29jayAqc2ssCiBpbnQgdGxzX2RldmljZV9zZW5kbXNnKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IG1zZ2hkciAqbXNnLCBzaXplX3Qgc2l6ZSkKIHsKIAl1bnNpZ25lZCBjaGFyIHJl Y29yZF90eXBlID0gVExTX1JFQ09SRF9UWVBFX0RBVEE7CisJc3RydWN0IHRsc19jb250ZXh0ICp0 bHNfY3R4ID0gdGxzX2dldF9jdHgoc2spOwogCWludCByYzsKIAorCW11dGV4X2xvY2soJnRsc19j dHgtPnR4X2xvY2spOwogCWxvY2tfc29jayhzayk7CiAKIAlpZiAodW5saWtlbHkobXNnLT5tc2df Y29udHJvbGxlbikpIHsKQEAgLTQ5NywxMiArNDk5LDE0IEBAIGludCB0bHNfZGV2aWNlX3NlbmRt c2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICptc2csIHNpemVfdCBzaXplKQogCiBv dXQ6CiAJcmVsZWFzZV9zb2NrKHNrKTsKKwltdXRleF91bmxvY2soJnRsc19jdHgtPnR4X2xvY2sp OwogCXJldHVybiByYzsKIH0KIAogaW50IHRsc19kZXZpY2Vfc2VuZHBhZ2Uoc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKIAkJCWludCBvZmZzZXQsIHNpemVfdCBzaXplLCBpbnQg ZmxhZ3MpCiB7CisJc3RydWN0IHRsc19jb250ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9jdHgoc2sp OwogCXN0cnVjdCBpb3ZfaXRlcgltc2dfaXRlcjsKIAljaGFyICprYWRkciA9IGttYXAocGFnZSk7 CiAJc3RydWN0IGt2ZWMgaW92OwpAQCAtNTExLDYgKzUxNSw3IEBAIGludCB0bHNfZGV2aWNlX3Nl bmRwYWdlKHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJaWYgKGZsYWdzICYg TVNHX1NFTkRQQUdFX05PVExBU1QpCiAJCWZsYWdzIHw9IE1TR19NT1JFOwogCisJbXV0ZXhfbG9j aygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9ja19zb2NrKHNrKTsKIAogCWlmIChmbGFncyAmIE1T R19PT0IpIHsKQEAgLTUyNyw2ICs1MzIsNyBAQCBpbnQgdGxzX2RldmljZV9zZW5kcGFnZShzdHJ1 Y3Qgc29jayAqc2ssIHN0cnVjdCBwYWdlICpwYWdlLAogCiBvdXQ6CiAJcmVsZWFzZV9zb2NrKHNr KTsKKwltdXRleF91bmxvY2soJnRsc19jdHgtPnR4X2xvY2spOwogCXJldHVybiByYzsKIH0KIApk aWZmIC0tZ2l0IGEvbmV0L3Rscy90bHNfbWFpbi5jIGIvbmV0L3Rscy90bHNfbWFpbi5jCmluZGV4 IDQzMjUyYTgwMWMzZi4uOTMxM2RkNTEwMjNhIDEwMDY0NAotLS0gYS9uZXQvdGxzL3Rsc19tYWlu LmMKKysrIGIvbmV0L3Rscy90bHNfbWFpbi5jCkBAIC0yNTgsNiArMjU4LDcgQEAgdm9pZCB0bHNf Y3R4X2ZyZWUoc3RydWN0IHRsc19jb250ZXh0ICpjdHgpCiAKIAltZW16ZXJvX2V4cGxpY2l0KCZj dHgtPmNyeXB0b19zZW5kLCBzaXplb2YoY3R4LT5jcnlwdG9fc2VuZCkpOwogCW1lbXplcm9fZXhw bGljaXQoJmN0eC0+Y3J5cHRvX3JlY3YsIHNpemVvZihjdHgtPmNyeXB0b19yZWN2KSk7CisJbXV0 ZXhfZGVzdHJveSgmY3R4LT50eF9sb2NrKTsKIAlrZnJlZShjdHgpOwogfQogCkBAIC02MTUsNiAr NjE2LDcgQEAgc3RhdGljIHN0cnVjdCB0bHNfY29udGV4dCAqY3JlYXRlX2N0eChzdHJ1Y3Qgc29j ayAqc2spCiAJY3R4LT5nZXRzb2Nrb3B0ID0gc2stPnNrX3Byb3QtPmdldHNvY2tvcHQ7CiAJY3R4 LT5za19wcm90b19jbG9zZSA9IHNrLT5za19wcm90LT5jbG9zZTsKIAljdHgtPnVuaGFzaCA9IHNr LT5za19wcm90LT51bmhhc2g7CisJbXV0ZXhfaW5pdCgmY3R4LT50eF9sb2NrKTsKIAlyZXR1cm4g Y3R4OwogfQogCmRpZmYgLS1naXQgYS9uZXQvdGxzL3Rsc19zdy5jIGIvbmV0L3Rscy90bHNfc3cu YwppbmRleCBiNzUxYWRjMzg3NmMuLjg4MWYwNmY0NjVmOCAxMDA2NDQKLS0tIGEvbmV0L3Rscy90 bHNfc3cuYworKysgYi9uZXQvdGxzL3Rsc19zdy5jCkBAIC04OTcsMTUgKzg5Nyw5IEBAIGludCB0 bHNfc3dfc2VuZG1zZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBtc2doZHIgKm1zZywgc2l6ZV90 IHNpemUpCiAJaWYgKG1zZy0+bXNnX2ZsYWdzICYgfihNU0dfTU9SRSB8IE1TR19ET05UV0FJVCB8 IE1TR19OT1NJR05BTCkpCiAJCXJldHVybiAtRU5PVFNVUFA7CiAKKwltdXRleF9sb2NrKCZ0bHNf Y3R4LT50eF9sb2NrKTsKIAlsb2NrX3NvY2soc2spOwogCi0JLyogV2FpdCB0aWxsIHRoZXJlIGlz IGFueSBwZW5kaW5nIHdyaXRlIG9uIHNvY2tldCAqLwotCWlmICh1bmxpa2VseShzay0+c2tfd3Jp dGVfcGVuZGluZykpIHsKLQkJcmV0ID0gd2FpdF9vbl9wZW5kaW5nX3dyaXRlcihzaywgJnRpbWVv KTsKLQkJaWYgKHVubGlrZWx5KHJldCkpCi0JCQlnb3RvIHNlbmRfZW5kOwotCX0KLQogCWlmICh1 bmxpa2VseShtc2ctPm1zZ19jb250cm9sbGVuKSkgewogCQlyZXQgPSB0bHNfcHJvY2Nlc3NfY21z ZyhzaywgbXNnLCAmcmVjb3JkX3R5cGUpOwogCQlpZiAocmV0KSB7CkBAIC0xMDkxLDYgKzEwODUs NyBAQCBpbnQgdGxzX3N3X3NlbmRtc2coc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgbXNnaGRyICpt c2csIHNpemVfdCBzaXplKQogCXJldCA9IHNrX3N0cmVhbV9lcnJvcihzaywgbXNnLT5tc2dfZmxh Z3MsIHJldCk7CiAKIAlyZWxlYXNlX3NvY2soc2spOworCW11dGV4X3VubG9jaygmdGxzX2N0eC0+ dHhfbG9jayk7CiAJcmV0dXJuIGNvcGllZCA/IGNvcGllZCA6IHJldDsKIH0KIApAQCAtMTExNCwx MyArMTEwOSw2IEBAIHN0YXRpYyBpbnQgdGxzX3N3X2RvX3NlbmRwYWdlKHN0cnVjdCBzb2NrICpz aywgc3RydWN0IHBhZ2UgKnBhZ2UsCiAJZW9yID0gIShmbGFncyAmIChNU0dfTU9SRSB8IE1TR19T RU5EUEFHRV9OT1RMQVNUKSk7CiAJc2tfY2xlYXJfYml0KFNPQ0tXUV9BU1lOQ19OT1NQQUNFLCBz ayk7CiAKLQkvKiBXYWl0IHRpbGwgdGhlcmUgaXMgYW55IHBlbmRpbmcgd3JpdGUgb24gc29ja2V0 ICovCi0JaWYgKHVubGlrZWx5KHNrLT5za193cml0ZV9wZW5kaW5nKSkgewotCQlyZXQgPSB3YWl0 X29uX3BlbmRpbmdfd3JpdGVyKHNrLCAmdGltZW8pOwotCQlpZiAodW5saWtlbHkocmV0KSkKLQkJ CWdvdG8gc2VuZHBhZ2VfZW5kOwotCX0KLQogCS8qIENhbGwgdGhlIHNrX3N0cmVhbSBmdW5jdGlv bnMgdG8gbWFuYWdlIHRoZSBzbmRidWYgbWVtLiAqLwogCXdoaWxlIChzaXplID4gMCkgewogCQlz aXplX3QgY29weSwgcmVxdWlyZWRfc2l6ZTsKQEAgLTEyMTksMTUgKzEyMDcsMTggQEAgc3RhdGlj IGludCB0bHNfc3dfZG9fc2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFn ZSwKIGludCB0bHNfc3dfc2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFn ZSwKIAkJICAgIGludCBvZmZzZXQsIHNpemVfdCBzaXplLCBpbnQgZmxhZ3MpCiB7CisJc3RydWN0 IHRsc19jb250ZXh0ICp0bHNfY3R4ID0gdGxzX2dldF9jdHgoc2spOwogCWludCByZXQ7CiAKIAlp ZiAoZmxhZ3MgJiB+KE1TR19NT1JFIHwgTVNHX0RPTlRXQUlUIHwgTVNHX05PU0lHTkFMIHwKIAkJ ICAgICAgTVNHX1NFTkRQQUdFX05PVExBU1QgfCBNU0dfU0VORFBBR0VfTk9QT0xJQ1kpKQogCQly ZXR1cm4gLUVOT1RTVVBQOwogCisJbXV0ZXhfbG9jaygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9j a19zb2NrKHNrKTsKIAlyZXQgPSB0bHNfc3dfZG9fc2VuZHBhZ2Uoc2ssIHBhZ2UsIG9mZnNldCwg c2l6ZSwgZmxhZ3MpOwogCXJlbGVhc2Vfc29jayhzayk7CisJbXV0ZXhfdW5sb2NrKCZ0bHNfY3R4 LT50eF9sb2NrKTsKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0yMTcyLDkgKzIxNjMsMTEgQEAgc3Rh dGljIHZvaWQgdHhfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAogCWlm ICghdGVzdF9hbmRfY2xlYXJfYml0KEJJVF9UWF9TQ0hFRFVMRUQsICZjdHgtPnR4X2JpdG1hc2sp KQogCQlyZXR1cm47CisJbXV0ZXhfbG9jaygmdGxzX2N0eC0+dHhfbG9jayk7CiAJbG9ja19zb2Nr KHNrKTsKIAl0bHNfdHhfcmVjb3JkcyhzaywgLTEpOwogCXJlbGVhc2Vfc29jayhzayk7CisJbXV0 ZXhfdW5sb2NrKCZ0bHNfY3R4LT50eF9sb2NrKTsKIH0KIAogdm9pZCB0bHNfc3dfd3JpdGVfc3Bh Y2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgdGxzX2NvbnRleHQgKmN0eCkKLS0gCjIuMjAuMQoK CkZyb20gZmQ4OGUzMGFhMGEzMjJkZmRiOGM4NDYzYjM2YzEwMTJiMWU4MDhhNCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogSmFrdWIgS2ljaW5za2kgPGpha3ViLmtpY2luc2tpQG5ldHJv bm9tZS5jb20+CkRhdGU6IFR1ZSwgNSBOb3YgMjAxOSAxNDoyNDozNiAtMDgwMApTdWJqZWN0OiBb UEFUQ0ggMTcvMjRdIHNlbGZ0ZXN0cy90bHM6IGFkZCB0ZXN0IGZvciBjb25jdXJyZW50IHJlY3Yg YW5kIHNlbmQKClsgVXBzdHJlYW0gY29tbWl0IDQxMDk4YWY1OWQ4ZDc1M2FhOGQzYmI0MzEwY2M0 ZWNiNjFmYzgyYzcgXQoKQWRkIGEgdGVzdCB3aGljaCBzcGF3bnMgMTYgdGhyZWFkcyBhbmQgcGVy Zm9ybXMgY29uY3VycmVudApzZW5kIGFuZCByZWN2IGNhbGxzIG9uIHRoZSBzYW1lIHNvY2tldC4K ClNpZ25lZC1vZmYtYnk6IEpha3ViIEtpY2luc2tpIDxqYWt1Yi5raWNpbnNraUBuZXRyb25vbWUu Y29tPgpSZXZpZXdlZC1ieTogU2ltb24gSG9ybWFuIDxzaW1vbi5ob3JtYW5AbmV0cm9ub21lLmNv bT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0Pgot LS0KIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYyB8IDEwOCArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCAxMDggaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL25ldC90bHMuYwppbmRleCA0YzI4NWI2ZTFkYjguLjFjOGYxOTRkNjU1NiAx MDA2NDQKLS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Rscy5jCisrKyBiL3Rvb2xz L3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC90bHMuYwpAQCAtODk4LDYgKzg5OCwxMTQgQEAgVEVTVF9G KHRscywgbm9uYmxvY2tpbmcpCiAJfQogfQogCitzdGF0aWMgdm9pZAordGVzdF9tdXRsaXByb2Mo c3RydWN0IF9fdGVzdF9tZXRhZGF0YSAqX21ldGFkYXRhLCBzdHJ1Y3QgX3Rlc3RfZGF0YV90bHMg KnNlbGYsCisJICAgICAgIGJvb2wgc2VuZHBnLCB1bnNpZ25lZCBpbnQgbl9yZWFkZXJzLCB1bnNp Z25lZCBpbnQgbl93cml0ZXJzKQoreworCWNvbnN0IHVuc2lnbmVkIGludCBuX2NoaWxkcmVuID0g bl9yZWFkZXJzICsgbl93cml0ZXJzOworCWNvbnN0IHNpemVfdCBkYXRhID0gNiAqIDEwMDAgKiAx MDAwOworCWNvbnN0IHNpemVfdCBmaWxlX3N6ID0gZGF0YSAvIDEwMDsKKwlzaXplX3QgcmVhZF9i aWFzLCB3cml0ZV9iaWFzOworCWludCBpLCBmZCwgY2hpbGRfaWQ7CisJY2hhciBidWZbZmlsZV9z el07CisJcGlkX3QgcGlkOworCisJLyogT25seSBhbGxvdyBtdWx0aXBsZXMgZm9yIHNpbXBsaWNp dHkgKi8KKwlBU1NFUlRfRVEoIShuX3JlYWRlcnMgJSBuX3dyaXRlcnMpIHx8ICEobl93cml0ZXJz ICUgbl9yZWFkZXJzKSwgdHJ1ZSk7CisJcmVhZF9iaWFzID0gbl93cml0ZXJzIC8gbl9yZWFkZXJz ID86IDE7CisJd3JpdGVfYmlhcyA9IG5fcmVhZGVycyAvIG5fd3JpdGVycyA/OiAxOworCisJLyog cHJlcCBhIGZpbGUgdG8gc2VuZCAqLworCWZkID0gb3BlbigiL3RtcC8iLCBPX1RNUEZJTEUgfCBP X1JEV1IsIDA2MDApOworCUFTU0VSVF9HRShmZCwgMCk7CisKKwltZW1zZXQoYnVmLCAweGFjLCBm aWxlX3N6KTsKKwlBU1NFUlRfRVEod3JpdGUoZmQsIGJ1ZiwgZmlsZV9zeiksIGZpbGVfc3opOwor CisJLyogc3Bhd24gY2hpbGRyZW4gKi8KKwlmb3IgKGNoaWxkX2lkID0gMDsgY2hpbGRfaWQgPCBu X2NoaWxkcmVuOyBjaGlsZF9pZCsrKSB7CisJCXBpZCA9IGZvcmsoKTsKKwkJQVNTRVJUX05FKHBp ZCwgLTEpOworCQlpZiAoIXBpZCkKKwkJCWJyZWFrOworCX0KKworCS8qIHBhcmVudCB3YWl0cyBm b3IgYWxsIGNoaWxkcmVuICovCisJaWYgKHBpZCkgeworCQlmb3IgKGkgPSAwOyBpIDwgbl9jaGls ZHJlbjsgaSsrKSB7CisJCQlpbnQgc3RhdHVzOworCisJCQl3YWl0KCZzdGF0dXMpOworCQkJRVhQ RUNUX0VRKHN0YXR1cywgMCk7CisJCX0KKworCQlyZXR1cm47CisJfQorCisJLyogU3BsaXQgdGhy ZWFkcyBmb3IgcmVhZGluZyBhbmQgd3JpdGluZyAqLworCWlmIChjaGlsZF9pZCA8IG5fcmVhZGVy cykgeworCQlzaXplX3QgbGVmdCA9IGRhdGEgKiByZWFkX2JpYXM7CisJCWNoYXIgcmJbODAwMV07 CisKKwkJd2hpbGUgKGxlZnQpIHsKKwkJCWludCByZXM7CisKKwkJCXJlcyA9IHJlY3Yoc2VsZi0+ Y2ZkLCByYiwKKwkJCQkgICBsZWZ0ID4gc2l6ZW9mKHJiKSA/IHNpemVvZihyYikgOiBsZWZ0LCAw KTsKKworCQkJRVhQRUNUX0dFKHJlcywgMCk7CisJCQlsZWZ0IC09IHJlczsKKwkJfQorCX0gZWxz ZSB7CisJCXNpemVfdCBsZWZ0ID0gZGF0YSAqIHdyaXRlX2JpYXM7CisKKwkJd2hpbGUgKGxlZnQp IHsKKwkJCWludCByZXM7CisKKwkJCUFTU0VSVF9FUShsc2VlayhmZCwgMCwgU0VFS19TRVQpLCAw KTsKKwkJCWlmIChzZW5kcGcpCisJCQkJcmVzID0gc2VuZGZpbGUoc2VsZi0+ZmQsIGZkLCBOVUxM LAorCQkJCQkgICAgICAgbGVmdCA+IGZpbGVfc3ogPyBmaWxlX3N6IDogbGVmdCk7CisJCQllbHNl CisJCQkJcmVzID0gc2VuZChzZWxmLT5mZCwgYnVmLAorCQkJCQkgICBsZWZ0ID4gZmlsZV9zeiA/ IGZpbGVfc3ogOiBsZWZ0LCAwKTsKKworCQkJRVhQRUNUX0dFKHJlcywgMCk7CisJCQlsZWZ0IC09 IHJlczsKKwkJfQorCX0KK30KKworVEVTVF9GKHRscywgbXV0bGlwcm9jX2V2ZW4pCit7CisJdGVz dF9tdXRsaXByb2MoX21ldGFkYXRhLCBzZWxmLCBmYWxzZSwgNiwgNik7Cit9CisKK1RFU1RfRih0 bHMsIG11dGxpcHJvY19yZWFkZXJzKQoreworCXRlc3RfbXV0bGlwcm9jKF9tZXRhZGF0YSwgc2Vs ZiwgZmFsc2UsIDQsIDEyKTsKK30KKworVEVTVF9GKHRscywgbXV0bGlwcm9jX3dyaXRlcnMpCit7 CisJdGVzdF9tdXRsaXByb2MoX21ldGFkYXRhLCBzZWxmLCBmYWxzZSwgMTAsIDIpOworfQorCitU RVNUX0YodGxzLCBtdXRsaXByb2Nfc2VuZHBhZ2VfZXZlbikKK3sKKwl0ZXN0X211dGxpcHJvYyhf bWV0YWRhdGEsIHNlbGYsIHRydWUsIDYsIDYpOworfQorCitURVNUX0YodGxzLCBtdXRsaXByb2Nf c2VuZHBhZ2VfcmVhZGVycykKK3sKKwl0ZXN0X211dGxpcHJvYyhfbWV0YWRhdGEsIHNlbGYsIHRy dWUsIDQsIDEyKTsKK30KKworVEVTVF9GKHRscywgbXV0bGlwcm9jX3NlbmRwYWdlX3dyaXRlcnMp Cit7CisJdGVzdF9tdXRsaXByb2MoX21ldGFkYXRhLCBzZWxmLCB0cnVlLCAxMCwgMik7Cit9CisK IFRFU1RfRih0bHMsIGNvbnRyb2xfbXNnKQogewogCWlmIChzZWxmLT5ub3RscykKLS0gCjIuMjAu MQoKCkZyb20gMTFjYTczMmFmMDFhZGZlNGE3ODA0ZmUxMTM1NjJmNWJkNjM4OTRlMyBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29t PgpEYXRlOiBUaHUsIDcgTm92IDIwMTkgMDk6MjY6MTkgLTA4MDAKU3ViamVjdDogW1BBVENIIDE4 LzI0XSBpcHY2OiBmaXhlcyBydDZfcHJvYmUoKSBhbmQgZmliNl9uaC0+bGFzdF9wcm9iZSBpbml0 CgpbIFVwc3RyZWFtIGNvbW1pdCAxYmVmNGMyMjNiODU4OGNmNTA0MzNiZGMyYzY5NTNkODI5NDli M2IzIF0KCldoaWxlIGxvb2tpbmcgYXQgYSBzeXpib3QgS0NTQU4gcmVwb3J0IFsxXSwgSSBmb3Vu ZCBtdWx0aXBsZQppc3N1ZXMgaW4gdGhpcyBjb2RlIDoKCjEpIGZpYjZfbmgtPmxhc3RfcHJvYmUg aGFzIGFuIGluaXRpYWwgdmFsdWUgb2YgMC4KCiAgIFdoaWxlIHByb2JhYmx5IG9rYXkgb24gNjRi aXQga2VybmVscywgdGhpcyBjYXVzZXMgYW4gaXNzdWUKICAgb24gMzJiaXQga2VybmVscyBzaW5j ZSB0aGUgdGltZV9hZnRlcihqaWZmaWVzLCAwICsgaW50ZXJ2YWwpCiAgIG1pZ2h0IGJlIGZhbHNl IH4yNCBkYXlzIGFmdGVyIGJvb3QgKGZvciBIWj0xMDAwKQoKMikgVGhlIGRhdGEtcmFjZSBmb3Vu ZCBieSBLQ1NBTgogICBJIGNvdWxkIHVzZSBSRUFEX09OQ0UoKSBhbmQgV1JJVEVfT05DRSgpLCBi dXQgd2UgYWxzbyBjYW4KICAgdGFrZSB0aGUgb3Bwb3J0dW5pdHkgb2Ygbm90IHBpbGluZy11cCB0 b28gbWFueSBydDZfcHJvYmVfZGVmZXJyZWQoKQogICB3b3JrcyBieSB1c2luZyBpbnN0ZWFkIGNt cHhjaGcoKSBzbyB0aGF0IG9ubHkgb25lIGNwdSB3aW5zIHRoZSByYWNlLgoKWzFdCkJVRzogS0NT QU46IGRhdGEtcmFjZSBpbiBmaW5kX21hdGNoIC8gZmluZF9tYXRjaAoKd3JpdGUgdG8gMHhmZmZm ODg4MGJiN2FhYmU4IG9mIDggYnl0ZXMgYnkgaW50ZXJydXB0IG9uIGNwdSAxOgogcnQ2X3Byb2Jl IG5ldC9pcHY2L3JvdXRlLmM6NjYzIFtpbmxpbmVdCiBmaW5kX21hdGNoIG5ldC9pcHY2L3JvdXRl LmM6NzU3IFtpbmxpbmVdCiBmaW5kX21hdGNoKzB4NWJkLzB4NzkwIG5ldC9pcHY2L3JvdXRlLmM6 NzMzCiBfX2ZpbmRfcnJfbGVhZisweGUzLzB4NzgwIG5ldC9pcHY2L3JvdXRlLmM6ODMxCiBmaW5k X3JyX2xlYWYgbmV0L2lwdjYvcm91dGUuYzo4NTIgW2lubGluZV0KIHJ0Nl9zZWxlY3QgbmV0L2lw djYvcm91dGUuYzo4OTYgW2lubGluZV0KIGZpYjZfdGFibGVfbG9va3VwKzB4MzgzLzB4NjUwIG5l dC9pcHY2L3JvdXRlLmM6MjE2NAogaXA2X3BvbF9yb3V0ZSsweGVlLzB4NWMwIG5ldC9pcHY2L3Jv dXRlLmM6MjIwMAogaXA2X3BvbF9yb3V0ZV9vdXRwdXQrMHg0OC8weDYwIG5ldC9pcHY2L3JvdXRl LmM6MjQ1MgogZmliNl9ydWxlX2xvb2t1cCsweDNkNi8weDQ3MCBuZXQvaXB2Ni9maWI2X3J1bGVz LmM6MTE3CiBpcDZfcm91dGVfb3V0cHV0X2ZsYWdzX25vcmVmKzB4MTZiLzB4MjMwIG5ldC9pcHY2 L3JvdXRlLmM6MjQ4NAogaXA2X3JvdXRlX291dHB1dF9mbGFncysweDUwLzB4MWEwIG5ldC9pcHY2 L3JvdXRlLmM6MjQ5NwogaXA2X2RzdF9sb29rdXBfdGFpbCsweDI1ZC8weGMzMCBuZXQvaXB2Ni9p cDZfb3V0cHV0LmM6MTA0OQogaXA2X2RzdF9sb29rdXBfZmxvdysweDY4LzB4MTIwIG5ldC9pcHY2 L2lwNl9vdXRwdXQuYzoxMTUwCiBpbmV0Nl9jc2tfcm91dGVfc29ja2V0KzB4MmY3LzB4NDIwIG5l dC9pcHY2L2luZXQ2X2Nvbm5lY3Rpb25fc29jay5jOjEwNgogaW5ldDZfY3NrX3htaXQrMHg5MS8w eDFmMCBuZXQvaXB2Ni9pbmV0Nl9jb25uZWN0aW9uX3NvY2suYzoxMjEKIF9fdGNwX3RyYW5zbWl0 X3NrYisweGU4MS8weDFkNjAgbmV0L2lwdjQvdGNwX291dHB1dC5jOjExNjkKIHRjcF90cmFuc21p dF9za2IgbmV0L2lwdjQvdGNwX291dHB1dC5jOjExODUgW2lubGluZV0KIHRjcF94bWl0X3Byb2Jl X3NrYisweDE5Yi8weDFkMCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6MzczNQoKcmVhZCB0byAweGZm ZmY4ODgwYmI3YWFiZTggb2YgOCBieXRlcyBieSBpbnRlcnJ1cHQgb24gY3B1IDA6CiBydDZfcHJv YmUgbmV0L2lwdjYvcm91dGUuYzo2NTcgW2lubGluZV0KIGZpbmRfbWF0Y2ggbmV0L2lwdjYvcm91 dGUuYzo3NTcgW2lubGluZV0KIGZpbmRfbWF0Y2grMHg1MjEvMHg3OTAgbmV0L2lwdjYvcm91dGUu Yzo3MzMKIF9fZmluZF9ycl9sZWFmKzB4ZTMvMHg3ODAgbmV0L2lwdjYvcm91dGUuYzo4MzEKIGZp bmRfcnJfbGVhZiBuZXQvaXB2Ni9yb3V0ZS5jOjg1MiBbaW5saW5lXQogcnQ2X3NlbGVjdCBuZXQv aXB2Ni9yb3V0ZS5jOjg5NiBbaW5saW5lXQogZmliNl90YWJsZV9sb29rdXArMHgzODMvMHg2NTAg bmV0L2lwdjYvcm91dGUuYzoyMTY0CiBpcDZfcG9sX3JvdXRlKzB4ZWUvMHg1YzAgbmV0L2lwdjYv cm91dGUuYzoyMjAwCiBpcDZfcG9sX3JvdXRlX291dHB1dCsweDQ4LzB4NjAgbmV0L2lwdjYvcm91 dGUuYzoyNDUyCiBmaWI2X3J1bGVfbG9va3VwKzB4M2Q2LzB4NDcwIG5ldC9pcHY2L2ZpYjZfcnVs ZXMuYzoxMTcKIGlwNl9yb3V0ZV9vdXRwdXRfZmxhZ3Nfbm9yZWYrMHgxNmIvMHgyMzAgbmV0L2lw djYvcm91dGUuYzoyNDg0CiBpcDZfcm91dGVfb3V0cHV0X2ZsYWdzKzB4NTAvMHgxYTAgbmV0L2lw djYvcm91dGUuYzoyNDk3CiBpcDZfZHN0X2xvb2t1cF90YWlsKzB4MjVkLzB4YzMwIG5ldC9pcHY2 L2lwNl9vdXRwdXQuYzoxMDQ5CiBpcDZfZHN0X2xvb2t1cF9mbG93KzB4NjgvMHgxMjAgbmV0L2lw djYvaXA2X291dHB1dC5jOjExNTAKIGluZXQ2X2Nza19yb3V0ZV9zb2NrZXQrMHgyZjcvMHg0MjAg bmV0L2lwdjYvaW5ldDZfY29ubmVjdGlvbl9zb2NrLmM6MTA2CiBpbmV0Nl9jc2tfeG1pdCsweDkx LzB4MWYwIG5ldC9pcHY2L2luZXQ2X2Nvbm5lY3Rpb25fc29jay5jOjEyMQogX190Y3BfdHJhbnNt aXRfc2tiKzB4ZTgxLzB4MWQ2MCBuZXQvaXB2NC90Y3Bfb3V0cHV0LmM6MTE2OQoKUmVwb3J0ZWQg YnkgS2VybmVsIENvbmN1cnJlbmN5IFNhbml0aXplciBvbjoKQ1BVOiAwIFBJRDogMTg4OTQgQ29t bTogdWRldmQgTm90IHRhaW50ZWQgNS40LjAtcmMzKyAjMApIYXJkd2FyZSBuYW1lOiBHb29nbGUg R29vZ2xlIENvbXB1dGUgRW5naW5lL0dvb2dsZSBDb21wdXRlIEVuZ2luZSwgQklPUyBHb29nbGUg MDEvMDEvMjAxMQoKRml4ZXM6IGNjM2E4NmM4MDJmMCAoImlwdjY6IENoYW5nZSBydDZfcHJvYmUg dG8gdGFrZSBhIGZpYjZfbmgiKQpGaXhlczogZjU0N2ZhYzYyNGJlICgiaXB2NjogcmF0ZS1saW1p dCBwcm9iZXMgZm9yIG5laWdoYm91cmxlc3Mgcm91dGVzIikKU2lnbmVkLW9mZi1ieTogRXJpYyBE dW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1ieTogc3l6Ym90IDxzeXprYWxs ZXJAZ29vZ2xlZ3JvdXBzLmNvbT4KUmV2aWV3ZWQtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdt YWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQu bmV0PgotLS0KIG5ldC9pcHY2L3JvdXRlLmMgfCAxMyArKysrKysrKysrLS0tCiAxIGZpbGUgY2hh bmdlZCwgMTAgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRleCA1NDYwODhlNTA4MTUuLjJiMjVh MGRlMDM2NCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUuYworKysgYi9uZXQvaXB2Ni9yb3V0 ZS5jCkBAIC02MjEsNiArNjIxLDcgQEAgc3RhdGljIHZvaWQgcnQ2X3Byb2JlKHN0cnVjdCBmaWI2 X25oICpmaWI2X25oKQogewogCXN0cnVjdCBfX3J0Nl9wcm9iZV93b3JrICp3b3JrID0gTlVMTDsK IAljb25zdCBzdHJ1Y3QgaW42X2FkZHIgKm5oX2d3OworCXVuc2lnbmVkIGxvbmcgbGFzdF9wcm9i ZTsKIAlzdHJ1Y3QgbmVpZ2hib3VyICpuZWlnaDsKIAlzdHJ1Y3QgbmV0X2RldmljZSAqZGV2Owog CXN0cnVjdCBpbmV0Nl9kZXYgKmlkZXY7CkBAIC02MzksNiArNjQwLDcgQEAgc3RhdGljIHZvaWQg cnQ2X3Byb2JlKHN0cnVjdCBmaWI2X25oICpmaWI2X25oKQogCW5oX2d3ID0gJmZpYjZfbmgtPmZp Yl9uaF9ndzY7CiAJZGV2ID0gZmliNl9uaC0+ZmliX25oX2RldjsKIAlyY3VfcmVhZF9sb2NrX2Jo KCk7CisJbGFzdF9wcm9iZSA9IFJFQURfT05DRShmaWI2X25oLT5sYXN0X3Byb2JlKTsKIAlpZGV2 ID0gX19pbjZfZGV2X2dldChkZXYpOwogCW5laWdoID0gX19pcHY2X25laWdoX2xvb2t1cF9ub3Jl ZihkZXYsIG5oX2d3KTsKIAlpZiAobmVpZ2gpIHsKQEAgLTY1NCwxMyArNjU2LDE1IEBAIHN0YXRp YyB2b2lkIHJ0Nl9wcm9iZShzdHJ1Y3QgZmliNl9uaCAqZmliNl9uaCkKIAkJCQlfX25laWdoX3Nl dF9wcm9iZV9vbmNlKG5laWdoKTsKIAkJfQogCQl3cml0ZV91bmxvY2soJm5laWdoLT5sb2NrKTsK LQl9IGVsc2UgaWYgKHRpbWVfYWZ0ZXIoamlmZmllcywgZmliNl9uaC0+bGFzdF9wcm9iZSArCisJ fSBlbHNlIGlmICh0aW1lX2FmdGVyKGppZmZpZXMsIGxhc3RfcHJvYmUgKwogCQkJCSAgICAgICBp ZGV2LT5jbmYucnRyX3Byb2JlX2ludGVydmFsKSkgewogCQl3b3JrID0ga21hbGxvYyhzaXplb2Yo KndvcmspLCBHRlBfQVRPTUlDKTsKIAl9CiAKLQlpZiAod29yaykgewotCQlmaWI2X25oLT5sYXN0 X3Byb2JlID0gamlmZmllczsKKwlpZiAoIXdvcmsgfHwgY21weGNoZygmZmliNl9uaC0+bGFzdF9w cm9iZSwKKwkJCSAgICAgbGFzdF9wcm9iZSwgamlmZmllcykgIT0gbGFzdF9wcm9iZSkgeworCQlr ZnJlZSh3b3JrKTsKKwl9IGVsc2UgewogCQlJTklUX1dPUksoJndvcmstPndvcmssIHJ0Nl9wcm9i ZV9kZWZlcnJlZCk7CiAJCXdvcmstPnRhcmdldCA9ICpuaF9ndzsKIAkJZGV2X2hvbGQoZGV2KTsK QEAgLTMzODUsNiArMzM4OSw5IEBAIGludCBmaWI2X25oX2luaXQoc3RydWN0IG5ldCAqbmV0LCBz dHJ1Y3QgZmliNl9uaCAqZmliNl9uaCwKIAlpbnQgZXJyOwogCiAJZmliNl9uaC0+ZmliX25oX2Zh bWlseSA9IEFGX0lORVQ2OworI2lmZGVmIENPTkZJR19JUFY2X1JPVVRFUl9QUkVGCisJZmliNl9u aC0+bGFzdF9wcm9iZSA9IGppZmZpZXM7CisjZW5kaWYKIAogCWVyciA9IC1FTk9ERVY7CiAJaWYg KGNmZy0+ZmNfaWZpbmRleCkgewotLSAKMi4yMC4xCgoKRnJvbSA2NTIzYTQ2YWQzMmFmNmM1MGI2 NjViZDBiNzhhZDU2ZGVjN2RiOWM5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTYWxp bCBNZWh0YSA8c2FsaWwubWVodGFAaHVhd2VpLmNvbT4KRGF0ZTogVGh1LCA3IE5vdiAyMDE5IDE3 OjA5OjUzICswMDAwClN1YmplY3Q6IFtQQVRDSCAxOS8yNF0gbmV0OiBobnM6IEZpeCB0aGUgc3Ry YXkgbmV0cG9sbCBsb2NrcyBjYXVzaW5nIGRlYWRsb2NrCiBpbiBOQVBJIHBhdGgKClsgVXBzdHJl YW0gY29tbWl0IGJmNWE2YjRjNDc0YzU4OTI0NGRjMjVlZTFhZjJjM2M4MjkyMjhlZjggXQoKVGhp cyBwYXRjaCBmaXhlcyB0aGUgcHJvYmxlbSBvZiB0aGUgc3BpbiBsb2Nrcywgb3JpZ2luYWxseQpt ZWFudCBmb3IgdGhlIG5ldHBvbGwgcGF0aCBvZiBobnMgZHJpdmVyLCBjYXVzaW5nIGRlYWRsb2Nr IGluCnRoZSBub3JtYWwgTkFQSSBwb2xsIHBhdGguIFRoZSBpc3N1ZSBoYXBwZW5lZCBkdWUgdG8g dGhlIHByZXNlbmNlCm9mIHRoZSBzdHJheSBsZWZ0b3ZlciBzcGluIGxvY2sgY29kZSByZWxhdGVk IHRvIHRoZSBuZXRwb2xsLAp3aG9zZSBzdXBwb3J0IHdhcyBlYXJsaWVyIHJlbW92ZWQgZnJvbSB0 aGUgSE5TWzFdLCBnb3QgYWN0aXZhdGVkCmR1ZSB0byBlbmFibGluZyBvZiBORVRfUE9MTF9DT05U Uk9MTEVSIHN3aXRjaC4KCkVhcmxpZXIgYmFja2dyb3VuZDoKVGhlIG5ldHBvbGwgaGFuZGxpbmcg Y29kZSBvcmlnaW5hbGx5IGhhZCB0aGlzIGJ1ZyhhcyBpZGVudGlmaWVkCmJ5IE1hcmMgWnluZ2ll clsyXSkgb2Ygd3Jvbmcgc3BpbiBsb2NrIEFQSSBiZWluZyB1c2VkIHdoaWNoIGRpZApub3QgZGlz YWJsZSB0aGUgaW50ZXJydXB0cyBhbmQgaGVuY2UgY291bGQgY2F1c2UgbG9ja2luZyBpc3N1ZXMu CmkuZS4gaWYgdGhlIGxvY2sgd2VyZSBmaXJzdCBhY3F1aXJlZCBpbiBjb250ZXh0IHRvIHRocmVh ZCBsaWtlCidpcCcgdXRpbCBhbmQgdGhpcyBsb2NrIGlmIGV2ZXIgZ290IGxhdGVyIGFjcXVpcmVk IGFnYWluIGluCmNvbnRleHQgdG8gdGhlIGludGVycnVwdCBjb250ZXh0IGxpa2UgVFgvUlggKElu dGVycnVwdHMgY291bGQKYWx3YXlzIHByZS1lbXB0IHRoZSBsb2NrIGhvbGRpbmcgdGFzayBhbmQg YWNxdWlyZSB0aGUgbG9jayBhZ2FpbikKYW5kIGhlbmNlIGNvdWxkIGNhdXNlIGRlYWRsb2NrLgoK UHJvcG9zZWQgU29sdXRpb246CjEuIElmIHRoZSBuZXRwb2xsIHdhcyBlbmFibGVkIGluIHRoZSBI TlMgZHJpdmVyLCB3aGljaCBpcyBub3QKICAgcmlnaHQgbm93LCB3ZSBjb3VsZCBoYXZlIHNpbXBs eSB1c2VkIHNwaW5fW3VuXWxvY2tfaXJxc2F2ZSgpCjIuIEJ1dCBhcyBuZXRwb2xsIGlzIGRpc2Fi bGVkLCB0aGVyZWZvcmUsIGl0IGlzIGJlc3QgdG8gZ2V0IHJpZAogICBvZiB0aGUgZXhpc3Rpbmcg bG9ja3MgYW5kIHN0cmF5IGNvZGUgZm9yIG5vdy4gVGhpcyBzaG91bGQKICAgc29sdmUgdGhlIHBy b2JsZW0gcmVwb3J0ZWQgYnkgTWFyYy4KClsxXSBodHRwczovL2dpdC5rZXJuZWwub3JnL3RvcnZh bGRzL2MvNGJkMmMwM2JlNwpbMl0gaHR0cHM6Ly9wYXRjaHdvcmsub3psYWJzLm9yZy9wYXRjaC8x MTg5MTM5LwoKRml4ZXM6IDRiZDJjMDNiZTcwNyAoIm5ldDogaG5zOiByZW1vdmUgbmRvX3BvbGxf Y29udHJvbGxlciIpCkNjOiBsaXBlbmcgPGxpcGVuZzMyMUBodWF3ZWkuY29tPgpDYzogWWlzZW4g Wmh1YW5nIDx5aXNlbi56aHVhbmdAaHVhd2VpLmNvbT4KQ2M6IEVyaWMgRHVtYXpldCA8ZWR1bWF6 ZXRAZ29vZ2xlLmNvbT4KQ2M6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4K UmVwb3J0ZWQtYnk6IE1hcmMgWnluZ2llciA8bWF6QGtlcm5lbC5vcmc+CkFja2VkLWJ5OiBNYXJj IFp5bmdpZXIgPG1hekBrZXJuZWwub3JnPgpUZXN0ZWQtYnk6IE1hcmMgWnluZ2llciA8bWF6QGtl cm5lbC5vcmc+ClNpZ25lZC1vZmYtYnk6IFNhbGlsIE1laHRhIDxzYWxpbC5tZWh0YUBodWF3ZWku Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obmFlLmMgICAgIHwgIDEg LQogZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obmFlLmggICAgIHwgIDMgLS0t CiBkcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huc19lbmV0LmMgfCAyMiArLS0t LS0tLS0tLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAyNSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5z L2huYWUuYyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5hZS5jCmluZGV4 IDZkMDQ1N2ViNGZhYS4uMDgzMzkyNzhjNzIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhl cm5ldC9oaXNpbGljb24vaG5zL2huYWUuYworKysgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNp bGljb24vaG5zL2huYWUuYwpAQCAtMTk5LDcgKzE5OSw2IEBAIGhuYWVfaW5pdF9yaW5nKHN0cnVj dCBobmFlX3F1ZXVlICpxLCBzdHJ1Y3QgaG5hZV9yaW5nICpyaW5nLCBpbnQgZmxhZ3MpCiAKIAly aW5nLT5xID0gcTsKIAlyaW5nLT5mbGFncyA9IGZsYWdzOwotCXNwaW5fbG9ja19pbml0KCZyaW5n LT5sb2NrKTsKIAlyaW5nLT5jb2FsX3BhcmFtID0gcS0+aGFuZGxlLT5jb2FsX3BhcmFtOwogCWFz c2VydCghcmluZy0+ZGVzYyAmJiAhcmluZy0+ZGVzY19jYiAmJiAhcmluZy0+ZGVzY19kbWFfYWRk cik7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5h ZS5oIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvaGlzaWxpY29uL2hucy9obmFlLmgKaW5kZXggZTlj NjdjMDZiZmQyLi42YWI5NDU4MzAyZTEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0 L2hpc2lsaWNvbi9obnMvaG5hZS5oCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2hpc2lsaWNv bi9obnMvaG5hZS5oCkBAIC0yNzQsOSArMjc0LDYgQEAgc3RydWN0IGhuYWVfcmluZyB7CiAJLyog c3RhdGlzdGljICovCiAJc3RydWN0IHJpbmdfc3RhdHMgc3RhdHM7CiAKLQkvKiByaW5nIGxvY2sg Zm9yIHBvbGwgb25lICovCi0Jc3BpbmxvY2tfdCBsb2NrOwotCiAJZG1hX2FkZHJfdCBkZXNjX2Rt YV9hZGRyOwogCXUzMiBidWZfc2l6ZTsgICAgICAgLyogc2l6ZSBmb3IgaG5hZV9kZXNjLT5hZGRy LCBwcmVzZXQgYnkgQUUgKi8KIAl1MTYgZGVzY19udW07ICAgICAgIC8qIHRvdGFsIG51bWJlciBv ZiBkZXNjICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5z L2huc19lbmV0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9oaXNpbGljb24vaG5zL2huc19lbmV0 LmMKaW5kZXggMjIzNWRkNTVmYWIyLi41NmU4ZDRkZWUwZTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv bmV0L2V0aGVybmV0L2hpc2lsaWNvbi9obnMvaG5zX2VuZXQuYworKysgYi9kcml2ZXJzL25ldC9l dGhlcm5ldC9oaXNpbGljb24vaG5zL2huc19lbmV0LmMKQEAgLTk0MywxNSArOTQzLDYgQEAgc3Rh dGljIGludCBpc192YWxpZF9jbGVhbl9oZWFkKHN0cnVjdCBobmFlX3JpbmcgKnJpbmcsIGludCBo KQogCXJldHVybiB1ID4gYyA/IChoID4gYyAmJiBoIDw9IHUpIDogKGggPiBjIHx8IGggPD0gdSk7 CiB9CiAKLS8qIG5ldGlmX3R4X2xvY2sgd2lsbCB0dXJuIGRvd24gdGhlIHBlcmZvcm1hbmNlLCBz ZXQgb25seSB3aGVuIG5lY2Vzc2FyeSAqLwotI2lmZGVmIENPTkZJR19ORVRfUE9MTF9DT05UUk9M TEVSCi0jZGVmaW5lIE5FVElGX1RYX0xPQ0socmluZykgc3Bpbl9sb2NrKCYocmluZyktPmxvY2sp Ci0jZGVmaW5lIE5FVElGX1RYX1VOTE9DSyhyaW5nKSBzcGluX3VubG9jaygmKHJpbmcpLT5sb2Nr KQotI2Vsc2UKLSNkZWZpbmUgTkVUSUZfVFhfTE9DSyhyaW5nKQotI2RlZmluZSBORVRJRl9UWF9V TkxPQ0socmluZykKLSNlbmRpZgotCiAvKiByZWNsYWltIGFsbCBkZXNjIGluIG9uZSBidWRnZXQK ICAqIHJldHVybiBlcnJvciBvciBudW1iZXIgb2YgZGVzYyBsZWZ0CiAgKi8KQEAgLTk2NSwyMSAr OTU2LDE2IEBAIHN0YXRpYyBpbnQgaG5zX25pY190eF9wb2xsX29uZShzdHJ1Y3QgaG5zX25pY19y aW5nX2RhdGEgKnJpbmdfZGF0YSwKIAlpbnQgaGVhZDsKIAlpbnQgYnl0ZXMsIHBrdHM7CiAKLQlO RVRJRl9UWF9MT0NLKHJpbmcpOwotCiAJaGVhZCA9IHJlYWRsX3JlbGF4ZWQocmluZy0+aW9fYmFz ZSArIFJDQl9SRUdfSEVBRCk7CiAJcm1iKCk7IC8qIG1ha2Ugc3VyZSBoZWFkIGlzIHJlYWR5IGJl Zm9yZSB0b3VjaCBhbnkgZGF0YSAqLwogCi0JaWYgKGlzX3JpbmdfZW1wdHkocmluZykgfHwgaGVh ZCA9PSByaW5nLT5uZXh0X3RvX2NsZWFuKSB7Ci0JCU5FVElGX1RYX1VOTE9DSyhyaW5nKTsKKwlp ZiAoaXNfcmluZ19lbXB0eShyaW5nKSB8fCBoZWFkID09IHJpbmctPm5leHRfdG9fY2xlYW4pCiAJ CXJldHVybiAwOyAvKiBubyBkYXRhIHRvIHBvbGwgKi8KLQl9CiAKIAlpZiAoIWlzX3ZhbGlkX2Ns ZWFuX2hlYWQocmluZywgaGVhZCkpIHsKIAkJbmV0ZGV2X2VycihuZGV2LCAid3JvbmcgaGVhZCAo JWQsICVkLSVkKVxuIiwgaGVhZCwKIAkJCSAgIHJpbmctPm5leHRfdG9fdXNlLCByaW5nLT5uZXh0 X3RvX2NsZWFuKTsKIAkJcmluZy0+c3RhdHMuaW9fZXJyX2NudCsrOwotCQlORVRJRl9UWF9VTkxP Q0socmluZyk7CiAJCXJldHVybiAtRUlPOwogCX0KIApAQCAtOTk0LDggKzk4MCw2IEBAIHN0YXRp YyBpbnQgaG5zX25pY190eF9wb2xsX29uZShzdHJ1Y3QgaG5zX25pY19yaW5nX2RhdGEgKnJpbmdf ZGF0YSwKIAlyaW5nLT5zdGF0cy50eF9wa3RzICs9IHBrdHM7CiAJcmluZy0+c3RhdHMudHhfYnl0 ZXMgKz0gYnl0ZXM7CiAKLQlORVRJRl9UWF9VTkxPQ0socmluZyk7Ci0KIAlkZXZfcXVldWUgPSBu ZXRkZXZfZ2V0X3R4X3F1ZXVlKG5kZXYsIHJpbmdfZGF0YS0+cXVldWVfaW5kZXgpOwogCW5ldGRl dl90eF9jb21wbGV0ZWRfcXVldWUoZGV2X3F1ZXVlLCBwa3RzLCBieXRlcyk7CiAKQEAgLTEwNTUs MTYgKzEwMzksMTIgQEAgc3RhdGljIHZvaWQgaG5zX25pY190eF9jbHJfYWxsX2J1ZnMoc3RydWN0 IGhuc19uaWNfcmluZ19kYXRhICpyaW5nX2RhdGEpCiAJaW50IGhlYWQ7CiAJaW50IGJ5dGVzLCBw a3RzOwogCi0JTkVUSUZfVFhfTE9DSyhyaW5nKTsKLQogCWhlYWQgPSByaW5nLT5uZXh0X3RvX3Vz ZTsgLyogbnR1IDpzb2Z0IHNldHRlZCByaW5nIHBvc2l0aW9uKi8KIAlieXRlcyA9IDA7CiAJcGt0 cyA9IDA7CiAJd2hpbGUgKGhlYWQgIT0gcmluZy0+bmV4dF90b19jbGVhbikKIAkJaG5zX25pY19y ZWNsYWltX29uZV9kZXNjKHJpbmcsICZieXRlcywgJnBrdHMpOwogCi0JTkVUSUZfVFhfVU5MT0NL KHJpbmcpOwotCiAJZGV2X3F1ZXVlID0gbmV0ZGV2X2dldF90eF9xdWV1ZShuZGV2LCByaW5nX2Rh dGEtPnF1ZXVlX2luZGV4KTsKIAluZXRkZXZfdHhfcmVzZXRfcXVldWUoZGV2X3F1ZXVlKTsKIH0K LS0gCjIuMjAuMQoKCkZyb20gZmQxYWQyZTU0NzlmMDViMzc5MzEzMDMzZTQxYzY1MGIyOTFhYzJm YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBn b29nbGUuY29tPgpEYXRlOiBNb24sIDQgTm92IDIwMTkgMjE6Mzg6NDMgLTA4MDAKU3ViamVjdDog W1BBVENIIDIwLzI0XSBuZXQ6IHByZXZlbnQgbG9hZC9zdG9yZSB0ZWFyaW5nIG9uIHNrLT5za19z dGFtcAoKWyBVcHN0cmVhbSBjb21taXQgZjc1MzU5ZjNhYzg1NTk0MGM1NzE4YWYxMGJhMDg5Yjg5 NzdiZjMzOSBdCgpBZGQgYSBjb3VwbGUgb2YgUkVBRF9PTkNFKCkgYW5kIFdSSVRFX09OQ0UoKSB0 byBwcmV2ZW50CmxvYWQtdGVhcmluZyBhbmQgc3RvcmUtdGVhcmluZyBpbiBzb2NrX3JlYWRfdGlt ZXN0YW1wKCkKYW5kIHNvY2tfd3JpdGVfdGltZXN0YW1wKCkKClRoaXMgbWlnaHQgcHJldmVudCBh bm90aGVyIEtDU0FOIHJlcG9ydC4KCkZpeGVzOiAzYTBlZDNlOTYxOTcgKCJzb2NrOiBNYWtlIHNv Y2stPnNrX3N0YW1wIHRocmVhZC1zYWZlIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpDYzogRGVlcGEgRGluYW1hbmkgPGRlZXBhLmtlcm5lbEBnbWFp bC5jb20+CkFja2VkLWJ5OiBEZWVwYSBEaW5hbWFuaSA8ZGVlcGEua2VybmVsQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGluY2x1ZGUvbmV0L3NvY2suaCB8IDQgKystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zb2NrLmggYi9p bmNsdWRlL25ldC9zb2NrLmgKaW5kZXggMmM1M2YxYTFkOTA1Li4xODRhNzU0OWU0MzMgMTAwNjQ0 Ci0tLSBhL2luY2x1ZGUvbmV0L3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9zb2NrLmgKQEAgLTIz MjYsNyArMjMyNiw3IEBAIHN0YXRpYyBpbmxpbmUga3RpbWVfdCBzb2NrX3JlYWRfdGltZXN0YW1w KHN0cnVjdCBzb2NrICpzaykKIAogCXJldHVybiBrdDsKICNlbHNlCi0JcmV0dXJuIHNrLT5za19z dGFtcDsKKwlyZXR1cm4gUkVBRF9PTkNFKHNrLT5za19zdGFtcCk7CiAjZW5kaWYKIH0KIApAQCAt MjMzNyw3ICsyMzM3LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHNvY2tfd3JpdGVfdGltZXN0YW1w KHN0cnVjdCBzb2NrICpzaywga3RpbWVfdCBrdCkKIAlzay0+c2tfc3RhbXAgPSBrdDsKIAl3cml0 ZV9zZXF1bmxvY2soJnNrLT5za19zdGFtcF9zZXEpOwogI2Vsc2UKLQlzay0+c2tfc3RhbXAgPSBr dDsKKwlXUklURV9PTkNFKHNrLT5za19zdGFtcCwga3QpOwogI2VuZGlmCiB9CiAKLS0gCjIuMjAu MQoKCkZyb20gNGI2YmQyYTQ4ODZhNjg0YzljZWJlZjNmNzYyM2ExMjhjMjI3MTM5ZiBNb24gU2Vw IDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSm9obiBIdXJsZXkgPGpvaG4uaHVybGV5QG5ldHJvbm9t ZS5jb20+CkRhdGU6IFNhdCwgMiBOb3YgMjAxOSAxNDoxNzo0NyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggMjEvMjRdIG5ldDogc2NoZWQ6IHByZXZlbnQgZHVwbGljYXRlIGZsb3dlciBydWxlcyBmcm9t CiB0Y2ZfcHJvdG8gZGVzdHJveSByYWNlCgpbIFVwc3RyZWFtIGNvbW1pdCA1OWViODdjYjUyYzlm NzE2NDgwNGJjODYzOWM0ZDAzYmE5YjBjMTY5IF0KCldoZW4gYSBuZXcgZmlsdGVyIGlzIGFkZGVk IHRvIGNsc19hcGksIHRoZSBmdW5jdGlvbgp0Y2ZfY2hhaW5fdHBfaW5zZXJ0X3VuaXF1ZSgpIGxv b2tzIHVwIHRoZSBwcm90b2NvbC9wcmlvcml0eS9jaGFpbiB0bwpkZXRlcm1pbmUgaWYgdGhlIHRj Zl9wcm90byBpcyBkdXBsaWNhdGVkIGluIHRoZSBjaGFpbidzIGhhc2h0YWJsZS4gSXQgdGhlbgpj cmVhdGVzIGEgbmV3IGVudHJ5IG9yIGNvbnRpbnVlcyB3aXRoIGFuIGV4aXN0aW5nIG9uZS4gSW4g Y2xzX2Zsb3dlciwgdGhpcwphbGxvd3MgdGhlIGZ1bmN0aW9uIGZsX2h0X2luc2VydF91bnF1ZSB0 byBkZXRlcm1pbmUgaWYgYSBmaWx0ZXIgaXMgYQpkdXBsaWNhdGUgYW5kIHJlamVjdCBhcHByb3By aWF0ZWx5LCBtZWFuaW5nIHRoYXQgdGhlIGR1cGxpY2F0ZSB3aWxsIG5vdCBiZQpwYXNzZWQgdG8g ZHJpdmVycyB2aWEgdGhlIG9mZmxvYWQgaG9va3MuIEhvd2V2ZXIsIHdoZW4gYSB0Y2ZfcHJvdG8g aXMKZGVzdHJveWVkIGl0IGlzIHJlbW92ZWQgZnJvbSBpdHMgY2hhaW4gYmVmb3JlIGEgaGFyZHdh cmUgcmVtb3ZlIGhvb2sgaXMKaGl0LiBUaGlzIGNhbiBsZWFkIHRvIGEgcmFjZSB3aGVyZWJ5IHRo ZSBkcml2ZXIgaGFzIG5vdCByZWNlaXZlZCB0aGUKcmVtb3ZlIG1lc3NhZ2UgYnV0IGR1cGxpY2F0 ZSBmbG93cyBjYW4gYmUgYWNjZXB0ZWQuIFRoaXMsIGluIHR1cm4sIGNhbgpsZWFkIHRvIHRoZSBv ZmZsb2FkIGRyaXZlciByZWNlaXZpbmcgaW5jb3JyZWN0IGR1cGxpY2F0ZSBmbG93cyBhbmQgb3V0 IG9mCm9yZGVyIGFkZC9kZWxldGUgbWVzc2FnZXMuCgpQcmV2ZW50IGR1cGxpY2F0ZXMgYnkgdXRp bGlzaW5nIGFuIGFwcHJvYWNoIHN1Z2dlc3RlZCBieSBWbGFkIEJ1c2xvdi4gQQpoYXNoIHRhYmxl IHBlciBibG9jayBzdG9yZXMgZWFjaCB1bmlxdWUgY2hhaW4vcHJvdG9jb2wvcHJpbyBiZWluZwpk ZXN0cm95ZWQuIFRoaXMgZW50cnkgaXMgb25seSByZW1vdmVkIHdoZW4gdGhlIGZ1bGwgZGVzdHJv eSAoYW5kIGhhcmR3YXJlCm9mZmxvYWQpIGhhcyBjb21wbGV0ZWQuIElmIGEgbmV3IGZsb3cgaXMg YmVpbmcgYWRkZWQgd2l0aCB0aGUgc2FtZQppZGVudGllcnMgYXMgYSB0Y19wcm90byBiZWluZyBk ZXRyb3llZCwgdGhlbiB0aGUgYWRkIHJlcXVlc3QgaXMgcmVwbGF5ZWQKdW50aWwgdGhlIGRlc3Ry b3kgaXMgY29tcGxldGUuCgpGaXhlczogOGI2NDY3OGUwYWY4ICgibmV0OiBzY2hlZDogcmVmYWN0 b3IgdHAgaW5zZXJ0L2RlbGV0ZSBmb3IgY29uY3VycmVudCBleGVjdXRpb24iKQpTaWduZWQtb2Zm LWJ5OiBKb2huIEh1cmxleSA8am9obi5odXJsZXlAbmV0cm9ub21lLmNvbT4KU2lnbmVkLW9mZi1i eTogVmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBTaW1vbiBI b3JtYW4gPHNpbW9uLmhvcm1hbkBuZXRyb25vbWUuY29tPgpSZXBvcnRlZC1ieTogTG91aXMgUGVl bnMgPGxvdWlzLnBlZW5zQG5ldHJvbm9tZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5o IHwgIDQgKysKIG5ldC9zY2hlZC9jbHNfYXBpLmMgICAgICAgfCA4MyArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwgODMgaW5zZXJ0aW9ucygr KSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5o IGIvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAppbmRleCA1OGIxZmJjODg0YTcuLjUwZWEyN2Qw ZjdjNSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAorKysgYi9pbmNsdWRl L25ldC9zY2hfZ2VuZXJpYy5oCkBAIC0xMyw2ICsxMyw3IEBACiAjaW5jbHVkZSA8bGludXgvcmVm Y291bnQuaD4KICNpbmNsdWRlIDxsaW51eC93b3JrcXVldWUuaD4KICNpbmNsdWRlIDxsaW51eC9t dXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L2hhc2h0YWJsZS5oPgogI2luY2x1ZGUgPG5ldC9nZW5f c3RhdHMuaD4KICNpbmNsdWRlIDxuZXQvcnRuZXRsaW5rLmg+CiAjaW5jbHVkZSA8bmV0L2Zsb3df b2ZmbG9hZC5oPgpAQCAtMzU5LDYgKzM2MCw3IEBAIHN0cnVjdCB0Y2ZfcHJvdG8gewogCWJvb2wJ CQlkZWxldGluZzsKIAlyZWZjb3VudF90CQlyZWZjbnQ7CiAJc3RydWN0IHJjdV9oZWFkCQlyY3U7 CisJc3RydWN0IGhsaXN0X25vZGUJZGVzdHJveV9odF9ub2RlOwogfTsKIAogc3RydWN0IHFkaXNj X3NrYl9jYiB7CkBAIC00MDksNiArNDExLDggQEAgc3RydWN0IHRjZl9ibG9jayB7CiAJCXN0cnVj dCBsaXN0X2hlYWQgZmlsdGVyX2NoYWluX2xpc3Q7CiAJfSBjaGFpbjA7CiAJc3RydWN0IHJjdV9o ZWFkIHJjdTsKKwlERUNMQVJFX0hBU0hUQUJMRShwcm90b19kZXN0cm95X2h0LCA3KTsKKwlzdHJ1 Y3QgbXV0ZXggcHJvdG9fZGVzdHJveV9sb2NrOyAvKiBMb2NrIGZvciBwcm90b19kZXN0cm95IGhh c2h0YWJsZS4gKi8KIH07CiAKICNpZmRlZiBDT05GSUdfUFJPVkVfTE9DS0lORwpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL2Nsc19hcGkuYyBiL25ldC9zY2hlZC9jbHNfYXBpLmMKaW5kZXggNmIxMjg4 M2UwNGI4Li41YzE3Njk5OTlhOTIgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9jbHNfYXBpLmMKKysr IGIvbmV0L3NjaGVkL2Nsc19hcGkuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9pZHIuaD4KICNpbmNsdWRlIDxsaW51eC9yaGFzaHRh YmxlLmg+CisjaW5jbHVkZSA8bGludXgvamhhc2guaD4KICNpbmNsdWRlIDxuZXQvbmV0X25hbWVz cGFjZS5oPgogI2luY2x1ZGUgPG5ldC9zb2NrLmg+CiAjaW5jbHVkZSA8bmV0L25ldGxpbmsuaD4K QEAgLTQ1LDYgKzQ2LDYyIEBAIHN0YXRpYyBMSVNUX0hFQUQodGNmX3Byb3RvX2Jhc2UpOwogLyog UHJvdGVjdHMgbGlzdCBvZiByZWdpc3RlcmVkIFRDIG1vZHVsZXMuIEl0IGlzIHB1cmUgU01QIGxv Y2suICovCiBzdGF0aWMgREVGSU5FX1JXTE9DSyhjbHNfbW9kX2xvY2spOwogCitzdGF0aWMgdTMy IGRlc3Ryb3lfb2JqX2hhc2hmbihjb25zdCBzdHJ1Y3QgdGNmX3Byb3RvICp0cCkKK3sKKwlyZXR1 cm4gamhhc2hfM3dvcmRzKHRwLT5jaGFpbi0+aW5kZXgsIHRwLT5wcmlvLAorCQkJICAgIChfX2Zv cmNlIF9fdTMyKXRwLT5wcm90b2NvbCwgMCk7Cit9CisKK3N0YXRpYyB2b2lkIHRjZl9wcm90b19z aWduYWxfZGVzdHJveWluZyhzdHJ1Y3QgdGNmX2NoYWluICpjaGFpbiwKKwkJCQkJc3RydWN0IHRj Zl9wcm90byAqdHApCit7CisJc3RydWN0IHRjZl9ibG9jayAqYmxvY2sgPSBjaGFpbi0+YmxvY2s7 CisKKwltdXRleF9sb2NrKCZibG9jay0+cHJvdG9fZGVzdHJveV9sb2NrKTsKKwloYXNoX2FkZF9y Y3UoYmxvY2stPnByb3RvX2Rlc3Ryb3lfaHQsICZ0cC0+ZGVzdHJveV9odF9ub2RlLAorCQkgICAg IGRlc3Ryb3lfb2JqX2hhc2hmbih0cCkpOworCW11dGV4X3VubG9jaygmYmxvY2stPnByb3RvX2Rl c3Ryb3lfbG9jayk7Cit9CisKK3N0YXRpYyBib29sIHRjZl9wcm90b19jbXAoY29uc3Qgc3RydWN0 IHRjZl9wcm90byAqdHAxLAorCQkJICBjb25zdCBzdHJ1Y3QgdGNmX3Byb3RvICp0cDIpCit7CisJ cmV0dXJuIHRwMS0+Y2hhaW4tPmluZGV4ID09IHRwMi0+Y2hhaW4tPmluZGV4ICYmCisJICAgICAg IHRwMS0+cHJpbyA9PSB0cDItPnByaW8gJiYKKwkgICAgICAgdHAxLT5wcm90b2NvbCA9PSB0cDIt PnByb3RvY29sOworfQorCitzdGF0aWMgYm9vbCB0Y2ZfcHJvdG9fZXhpc3RzX2Rlc3Ryb3lpbmco c3RydWN0IHRjZl9jaGFpbiAqY2hhaW4sCisJCQkJCXN0cnVjdCB0Y2ZfcHJvdG8gKnRwKQorewor CXUzMiBoYXNoID0gZGVzdHJveV9vYmpfaGFzaGZuKHRwKTsKKwlzdHJ1Y3QgdGNmX3Byb3RvICpp dGVyOworCWJvb2wgZm91bmQgPSBmYWxzZTsKKworCXJjdV9yZWFkX2xvY2soKTsKKwloYXNoX2Zv cl9lYWNoX3Bvc3NpYmxlX3JjdShjaGFpbi0+YmxvY2stPnByb3RvX2Rlc3Ryb3lfaHQsIGl0ZXIs CisJCQkJICAgZGVzdHJveV9odF9ub2RlLCBoYXNoKSB7CisJCWlmICh0Y2ZfcHJvdG9fY21wKHRw LCBpdGVyKSkgeworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJCX0KKwl9CisJcmN1X3Jl YWRfdW5sb2NrKCk7CisKKwlyZXR1cm4gZm91bmQ7Cit9CisKK3N0YXRpYyB2b2lkCit0Y2ZfcHJv dG9fc2lnbmFsX2Rlc3Ryb3llZChzdHJ1Y3QgdGNmX2NoYWluICpjaGFpbiwgc3RydWN0IHRjZl9w cm90byAqdHApCit7CisJc3RydWN0IHRjZl9ibG9jayAqYmxvY2sgPSBjaGFpbi0+YmxvY2s7CisK KwltdXRleF9sb2NrKCZibG9jay0+cHJvdG9fZGVzdHJveV9sb2NrKTsKKwlpZiAoaGFzaF9oYXNo ZWQoJnRwLT5kZXN0cm95X2h0X25vZGUpKQorCQloYXNoX2RlbF9yY3UoJnRwLT5kZXN0cm95X2h0 X25vZGUpOworCW11dGV4X3VubG9jaygmYmxvY2stPnByb3RvX2Rlc3Ryb3lfbG9jayk7Cit9CisK IC8qIEZpbmQgY2xhc3NpZmllciB0eXBlIGJ5IHN0cmluZyBuYW1lICovCiAKIHN0YXRpYyBjb25z dCBzdHJ1Y3QgdGNmX3Byb3RvX29wcyAqX190Y2ZfcHJvdG9fbG9va3VwX29wcyhjb25zdCBjaGFy ICpraW5kKQpAQCAtMjMyLDkgKzI4OSwxMSBAQCBzdGF0aWMgdm9pZCB0Y2ZfcHJvdG9fZ2V0KHN0 cnVjdCB0Y2ZfcHJvdG8gKnRwKQogc3RhdGljIHZvaWQgdGNmX2NoYWluX3B1dChzdHJ1Y3QgdGNm X2NoYWluICpjaGFpbik7CiAKIHN0YXRpYyB2b2lkIHRjZl9wcm90b19kZXN0cm95KHN0cnVjdCB0 Y2ZfcHJvdG8gKnRwLCBib29sIHJ0bmxfaGVsZCwKLQkJCSAgICAgIHN0cnVjdCBuZXRsaW5rX2V4 dF9hY2sgKmV4dGFjaykKKwkJCSAgICAgIGJvb2wgc2lnX2Rlc3Ryb3ksIHN0cnVjdCBuZXRsaW5r X2V4dF9hY2sgKmV4dGFjaykKIHsKIAl0cC0+b3BzLT5kZXN0cm95KHRwLCBydG5sX2hlbGQsIGV4 dGFjayk7CisJaWYgKHNpZ19kZXN0cm95KQorCQl0Y2ZfcHJvdG9fc2lnbmFsX2Rlc3Ryb3llZCh0 cC0+Y2hhaW4sIHRwKTsKIAl0Y2ZfY2hhaW5fcHV0KHRwLT5jaGFpbik7CiAJbW9kdWxlX3B1dCh0 cC0+b3BzLT5vd25lcik7CiAJa2ZyZWVfcmN1KHRwLCByY3UpOwpAQCAtMjQ0LDcgKzMwMyw3IEBA IHN0YXRpYyB2b2lkIHRjZl9wcm90b19wdXQoc3RydWN0IHRjZl9wcm90byAqdHAsIGJvb2wgcnRu bF9oZWxkLAogCQkJICBzdHJ1Y3QgbmV0bGlua19leHRfYWNrICpleHRhY2spCiB7CiAJaWYgKHJl ZmNvdW50X2RlY19hbmRfdGVzdCgmdHAtPnJlZmNudCkpCi0JCXRjZl9wcm90b19kZXN0cm95KHRw LCBydG5sX2hlbGQsIGV4dGFjayk7CisJCXRjZl9wcm90b19kZXN0cm95KHRwLCBydG5sX2hlbGQs IHRydWUsIGV4dGFjayk7CiB9CiAKIHN0YXRpYyBpbnQgd2Fsa2VyX2NoZWNrX2VtcHR5KHN0cnVj dCB0Y2ZfcHJvdG8gKnRwLCB2b2lkICpmaCwKQEAgLTM2OCw2ICs0MjcsNyBAQCBzdGF0aWMgYm9v bCB0Y2ZfY2hhaW5fZGV0YWNoKHN0cnVjdCB0Y2ZfY2hhaW4gKmNoYWluKQogc3RhdGljIHZvaWQg dGNmX2Jsb2NrX2Rlc3Ryb3koc3RydWN0IHRjZl9ibG9jayAqYmxvY2spCiB7CiAJbXV0ZXhfZGVz dHJveSgmYmxvY2stPmxvY2spOworCW11dGV4X2Rlc3Ryb3koJmJsb2NrLT5wcm90b19kZXN0cm95 X2xvY2spOwogCWtmcmVlX3JjdShibG9jaywgcmN1KTsKIH0KIApAQCAtNTQzLDYgKzYwMywxMiBA QCBzdGF0aWMgdm9pZCB0Y2ZfY2hhaW5fZmx1c2goc3RydWN0IHRjZl9jaGFpbiAqY2hhaW4sIGJv b2wgcnRubF9oZWxkKQogCiAJbXV0ZXhfbG9jaygmY2hhaW4tPmZpbHRlcl9jaGFpbl9sb2NrKTsK IAl0cCA9IHRjZl9jaGFpbl9kZXJlZmVyZW5jZShjaGFpbi0+ZmlsdGVyX2NoYWluLCBjaGFpbik7 CisJd2hpbGUgKHRwKSB7CisJCXRwX25leHQgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHRw LT5uZXh0LCAxKTsKKwkJdGNmX3Byb3RvX3NpZ25hbF9kZXN0cm95aW5nKGNoYWluLCB0cCk7CisJ CXRwID0gdHBfbmV4dDsKKwl9CisJdHAgPSB0Y2ZfY2hhaW5fZGVyZWZlcmVuY2UoY2hhaW4tPmZp bHRlcl9jaGFpbiwgY2hhaW4pOwogCVJDVV9JTklUX1BPSU5URVIoY2hhaW4tPmZpbHRlcl9jaGFp biwgTlVMTCk7CiAJdGNmX2NoYWluMF9oZWFkX2NoYW5nZShjaGFpbiwgTlVMTCk7CiAJY2hhaW4t PmZsdXNoaW5nID0gdHJ1ZTsKQEAgLTEwMDIsNiArMTA2OCw3IEBAIHN0YXRpYyBzdHJ1Y3QgdGNm X2Jsb2NrICp0Y2ZfYmxvY2tfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IFFkaXNjICpx LAogCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKIAl9CiAJbXV0ZXhfaW5pdCgmYmxvY2stPmxv Y2spOworCW11dGV4X2luaXQoJmJsb2NrLT5wcm90b19kZXN0cm95X2xvY2spOwogCWZsb3dfYmxv Y2tfaW5pdCgmYmxvY2stPmZsb3dfYmxvY2spOwogCUlOSVRfTElTVF9IRUFEKCZibG9jay0+Y2hh aW5fbGlzdCk7CiAJSU5JVF9MSVNUX0hFQUQoJmJsb2NrLT5vd25lcl9saXN0KTsKQEAgLTE3NTQs NiArMTgyMSwxMiBAQCBzdGF0aWMgc3RydWN0IHRjZl9wcm90byAqdGNmX2NoYWluX3RwX2luc2Vy dF91bmlxdWUoc3RydWN0IHRjZl9jaGFpbiAqY2hhaW4sCiAKIAltdXRleF9sb2NrKCZjaGFpbi0+ ZmlsdGVyX2NoYWluX2xvY2spOwogCisJaWYgKHRjZl9wcm90b19leGlzdHNfZGVzdHJveWluZyhj aGFpbiwgdHBfbmV3KSkgeworCQltdXRleF91bmxvY2soJmNoYWluLT5maWx0ZXJfY2hhaW5fbG9j ayk7CisJCXRjZl9wcm90b19kZXN0cm95KHRwX25ldywgcnRubF9oZWxkLCBmYWxzZSwgTlVMTCk7 CisJCXJldHVybiBFUlJfUFRSKC1FQUdBSU4pOworCX0KKwogCXRwID0gdGNmX2NoYWluX3RwX2Zp bmQoY2hhaW4sICZjaGFpbl9pbmZvLAogCQkJICAgICAgIHByb3RvY29sLCBwcmlvLCBmYWxzZSk7 CiAJaWYgKCF0cCkKQEAgLTE3NjEsMTAgKzE4MzQsMTAgQEAgc3RhdGljIHN0cnVjdCB0Y2ZfcHJv dG8gKnRjZl9jaGFpbl90cF9pbnNlcnRfdW5pcXVlKHN0cnVjdCB0Y2ZfY2hhaW4gKmNoYWluLAog CW11dGV4X3VubG9jaygmY2hhaW4tPmZpbHRlcl9jaGFpbl9sb2NrKTsKIAogCWlmICh0cCkgewot CQl0Y2ZfcHJvdG9fZGVzdHJveSh0cF9uZXcsIHJ0bmxfaGVsZCwgTlVMTCk7CisJCXRjZl9wcm90 b19kZXN0cm95KHRwX25ldywgcnRubF9oZWxkLCBmYWxzZSwgTlVMTCk7CiAJCXRwX25ldyA9IHRw OwogCX0gZWxzZSBpZiAoZXJyKSB7Ci0JCXRjZl9wcm90b19kZXN0cm95KHRwX25ldywgcnRubF9o ZWxkLCBOVUxMKTsKKwkJdGNmX3Byb3RvX2Rlc3Ryb3kodHBfbmV3LCBydG5sX2hlbGQsIGZhbHNl LCBOVUxMKTsKIAkJdHBfbmV3ID0gRVJSX1BUUihlcnIpOwogCX0KIApAQCAtMTgwMiw2ICsxODc1 LDcgQEAgc3RhdGljIHZvaWQgdGNmX2NoYWluX3RwX2RlbGV0ZV9lbXB0eShzdHJ1Y3QgdGNmX2No YWluICpjaGFpbiwKIAkJcmV0dXJuOwogCX0KIAorCXRjZl9wcm90b19zaWduYWxfZGVzdHJveWlu ZyhjaGFpbiwgdHApOwogCW5leHQgPSB0Y2ZfY2hhaW5fZGVyZWZlcmVuY2UoY2hhaW5faW5mby5u ZXh0LCBjaGFpbik7CiAJaWYgKHRwID09IGNoYWluLT5maWx0ZXJfY2hhaW4pCiAJCXRjZl9jaGFp bjBfaGVhZF9jaGFuZ2UoY2hhaW4sIG5leHQpOwpAQCAtMjMyMSw2ICsyMzk1LDcgQEAgc3RhdGlj IGludCB0Y19kZWxfdGZpbHRlcihzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3Qgbmxtc2doZHIg Km4sCiAJCWVyciA9IC1FSU5WQUw7CiAJCWdvdG8gZXJyb3V0X2xvY2tlZDsKIAl9IGVsc2UgaWYg KHQtPnRjbV9oYW5kbGUgPT0gMCkgeworCQl0Y2ZfcHJvdG9fc2lnbmFsX2Rlc3Ryb3lpbmcoY2hh aW4sIHRwKTsKIAkJdGNmX2NoYWluX3RwX3JlbW92ZShjaGFpbiwgJmNoYWluX2luZm8sIHRwKTsK IAkJbXV0ZXhfdW5sb2NrKCZjaGFpbi0+ZmlsdGVyX2NoYWluX2xvY2spOwogCi0tIAoyLjIwLjEK CgpGcm9tIDAxMThhMzRjMGI2NmMyMzA2YTcyMmFlYzU5MDQyMjI1YmE4OGZhMTkgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFVyc3VsYSBCcmF1biA8dWJyYXVuQGxpbnV4LmlibS5jb20+ CkRhdGU6IFdlZCwgNiBOb3YgMjAxOSAxMDo0OTo1NyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjIv MjRdIG5ldC9zbWM6IGZpeCBldGhlcm5ldCBpbnRlcmZhY2UgcmVmY291bnRpbmcKClsgVXBzdHJl YW0gY29tbWl0IDk4ZjMzNzU1MDViOGQ2NTE3YmQ2NzEwYmM2ZDRmNjI4OWVlYjMwYWEgXQoKSWYg YSBwbmV0IHRhYmxlIGVudHJ5IGlzIHRvIGJlIGFkZGVkIG1lbnRpb25pbmcgYSB2YWxpZCBldGhl cm5ldAppbnRlcmZhY2UsIGJ1dCBhbiBpbnZhbGlkIGluZmluaWJhbmQgb3IgSVNNIGRldmljZSwg dGhlIGRldl9wdXQoKQpvcGVyYXRpb24gZm9yIHRoZSBldGhlcm5ldCBpbnRlcmZhY2UgaXMgY2Fs bGVkIHR3aWNlLCByZXN1bHRpbmcKaW4gYSBuZWdhdGl2ZSByZWZjb3VudCBmb3IgdGhlIGV0aGVy bmV0IGludGVyZmFjZSwgd2hpY2ggZGlzYWJsZXMKcmVtb3ZhbCBvZiBzdWNoIGEgbmV0d29yayBp bnRlcmZhY2UuCgpUaGlzIHBhdGNoIHJlbW92ZXMgb25lIG9mIHRoZSBkZXZfcHV0KCkgY2FsbHMu CgpGaXhlczogODkwYTJjYjRhOTY2ICgibmV0L3NtYzogcmV3b3JrIHBuZXQgdGFibGUiKQpTaWdu ZWQtb2ZmLWJ5OiBVcnN1bGEgQnJhdW4gPHVicmF1bkBsaW51eC5pYm0uY29tPgpTaWduZWQtb2Zm LWJ5OiBLYXJzdGVuIEdyYXVsIDxrZ3JhdWxAbGludXguaWJtLmNvbT4KU2lnbmVkLW9mZi1ieTog RGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zbWMvc21jX3Bu ZXQuYyB8IDIgLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L25ldC9zbWMvc21jX3BuZXQuYyBiL25ldC9zbWMvc21jX3BuZXQuYwppbmRleCBiYWIyZGE4Y2Yx N2EuLmEyMDU5NDA1NmZlZiAxMDA2NDQKLS0tIGEvbmV0L3NtYy9zbWNfcG5ldC5jCisrKyBiL25l dC9zbWMvc21jX3BuZXQuYwpAQCAtMzc2LDggKzM3Niw2IEBAIHN0YXRpYyBpbnQgc21jX3BuZXRf ZmlsbF9lbnRyeShzdHJ1Y3QgbmV0ICpuZXQsCiAJcmV0dXJuIDA7CiAKIGVycm9yOgotCWlmIChw bmV0ZWxlbS0+bmRldikKLQkJZGV2X3B1dChwbmV0ZWxlbS0+bmRldik7CiAJcmV0dXJuIHJjOwog fQogCi0tIAoyLjIwLjEKCgpGcm9tIDZkNjMzZjBjZWJkYTQ5NDcxMDcxM2NhMzNiNjBjNjU0OWE3 MjRjMzIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFN0ZWZhbm8gR2FyemFyZWxsYSA8 c2dhcnphcmVAcmVkaGF0LmNvbT4KRGF0ZTogRnJpLCA4IE5vdiAyMDE5IDE3OjA4OjUwICswMTAw ClN1YmplY3Q6IFtQQVRDSCAyMy8yNF0gdnNvY2svdmlydGlvOiBmaXggc29jayByZWZjbnQgaG9s ZGluZyBkdXJpbmcgdGhlCiBzaHV0ZG93bgoKWyBVcHN0cmVhbSBjb21taXQgYWQ4YTcyMjAzNTVk MzljZGRjZThlYWMxY2VhOTY3NzMzM2U4YjgyMSBdCgpUaGUgIjQyZjVjZGE1ZWFmNCIgY29tbWl0 IHJpZ2h0bHkgc2V0IFNPQ0tfRE9ORSBvbiBwZWVyIHNodXRkb3duLApidXQgdGhlcmUgaXMgYW4g aXNzdWUgaWYgd2UgcmVjZWl2ZSB0aGUgU0hVVERPV04oUkRXUikgd2hpbGUgdGhlCnZpcnRpb190 cmFuc3BvcnRfY2xvc2VfdGltZW91dCgpIGlzIHNjaGVkdWxlZC4KSW4gdGhpcyBjYXNlLCB3aGVu IHRoZSB0aW1lb3V0IGZpcmVzLCB0aGUgU09DS19ET05FIGlzIGFscmVhZHkKc2V0IGFuZCB0aGUg dmlydGlvX3RyYW5zcG9ydF9jbG9zZV90aW1lb3V0KCkgd2lsbCBub3QgY2FsbAp2aXJ0aW9fdHJh bnNwb3J0X3Jlc2V0KCkgYW5kIHZpcnRpb190cmFuc3BvcnRfZG9fY2xvc2UoKS4KVGhpcyBjYXVz ZXMgdGhhdCBib3RoIHNvY2tldHMgcmVtYWluIG9wZW4gYW5kIHdpbGwgbmV2ZXIgYmUgcmVsZWFz ZWQsCnByZXZlbnRpbmcgdGhlIHVubG9hZGluZyBvZiBbdmlydGlvfHZob3N0XV90cmFuc3BvcnQg bW9kdWxlcy4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBpc3N1ZSwgY2FsbGluZyB2aXJ0aW9fdHJh bnNwb3J0X3Jlc2V0KCkgYW5kCnZpcnRpb190cmFuc3BvcnRfZG9fY2xvc2UoKSB3aGVuIHdlIHJl Y2VpdmUgdGhlIFNIVVRET1dOKFJEV1IpCmFuZCB0aGVyZSBpcyBub3RoaW5nIGxlZnQgdG8gcmVh ZC4KCkZpeGVzOiA0MmY1Y2RhNWVhZjQgKCJ2c29jay92aXJ0aW86IHNldCBTT0NLX0RPTkUgb24g cGVlciBzaHV0ZG93biIpCkNjOiBTdGVwaGVuIEJhcmJlciA8c21iYXJiZXJAY2hyb21pdW0ub3Jn PgpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJlZGhhdC5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvdm13X3Zzb2NrL3ZpcnRpb190cmFuc3BvcnRfY29tbW9uLmMgfCA4ICsrKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydF9jb21tb24uYyBiL25ldC92bXdfdnNv Y2svdmlydGlvX3RyYW5zcG9ydF9jb21tb24uYwppbmRleCBhN2FkZmZkMDYyYzcuLjA1OGQ1OWZj ZWRkZCAxMDA2NDQKLS0tIGEvbmV0L3Ztd192c29jay92aXJ0aW9fdHJhbnNwb3J0X2NvbW1vbi5j CisrKyBiL25ldC92bXdfdnNvY2svdmlydGlvX3RyYW5zcG9ydF9jb21tb24uYwpAQCAtODcwLDkg Kzg3MCwxMSBAQCB2aXJ0aW9fdHJhbnNwb3J0X3JlY3ZfY29ubmVjdGVkKHN0cnVjdCBzb2NrICpz aywKIAkJaWYgKGxlMzJfdG9fY3B1KHBrdC0+aGRyLmZsYWdzKSAmIFZJUlRJT19WU09DS19TSFVU RE9XTl9TRU5EKQogCQkJdnNrLT5wZWVyX3NodXRkb3duIHw9IFNFTkRfU0hVVERPV047CiAJCWlm ICh2c2stPnBlZXJfc2h1dGRvd24gPT0gU0hVVERPV05fTUFTSyAmJgotCQkgICAgdnNvY2tfc3Ry ZWFtX2hhc19kYXRhKHZzaykgPD0gMCkgewotCQkJc29ja19zZXRfZmxhZyhzaywgU09DS19ET05F KTsKLQkJCXNrLT5za19zdGF0ZSA9IFRDUF9DTE9TSU5HOworCQkgICAgdnNvY2tfc3RyZWFtX2hh c19kYXRhKHZzaykgPD0gMCAmJgorCQkgICAgIXNvY2tfZmxhZyhzaywgU09DS19ET05FKSkgewor CQkJKHZvaWQpdmlydGlvX3RyYW5zcG9ydF9yZXNldCh2c2ssIE5VTEwpOworCisJCQl2aXJ0aW9f dHJhbnNwb3J0X2RvX2Nsb3NlKHZzaywgdHJ1ZSk7CiAJCX0KIAkJaWYgKGxlMzJfdG9fY3B1KHBr dC0+aGRyLmZsYWdzKSkKIAkJCXNrLT5za19zdGF0ZV9jaGFuZ2Uoc2spOwotLSAKMi4yMC4xCgoK RnJvbSA0NDI2MTNiNmI5MTk2MDBhMzgyOTcyMzFlNjE5Njg2MzZjZjllNjM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29t PgpEYXRlOiBXZWQsIDYgTm92IDIwMTkgMjE6NTE6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIIDI0 LzI0XSByODE2OTogZml4IHBhZ2UgcmVhZCBpbiByODE2OGdfbWRpb19yZWFkCgpbIFVwc3RyZWFt IGNvbW1pdCA5YzY4NTBmZWEzZWRlZmVmNmU3MTUzYjJjNDY2ZjA5MTU1Mzk5ODgyIF0KCkZ1bmN0 aW9ucyBsaWtlIHBoeV9tb2RpZnlfcGFnZWQoKSByZWFkIHRoZSBjdXJyZW50IHBhZ2UsIG9uIFJl YWx0ZWsKUEhZJ3MgdGhpcyBtZWFucyByZWFkaW5nIHRoZSB2YWx1ZSBvZiByZWdpc3RlciAweDFm LiBBZGQgc3BlY2lhbApoYW5kbGluZyBmb3IgcmVhZGluZyB0aGlzIHJlZ2lzdGVyLCBzaW1pbGFy IHRvIHdoYXQgd2UgZG8gYWxyZWFkeQppbiByODE2OGdfbWRpb193cml0ZSgpLiBDdXJyZW50bHkg d2UgcmVhZCBhIHJhbmRvbSB2YWx1ZSB0aGF0IGJ5CmNoYW5jZSBzZWVtcyB0byBiZSAwIGFsd2F5 cy4KCkZpeGVzOiBhMjkyOGQyODY0M2UgKCJyODE2OTogdXNlIHBhZ2VkIHZlcnNpb25zIG9mIHBo eWxpYiBNRElPIGFjY2VzcyBmdW5jdGlvbnMiKQpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdl aXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9y ODE2OV9tYWluLmMgfCAzICsrKwogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jIGIvZHJp dmVycy9uZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMKaW5kZXggYmFlMDA3NGFiOWFh Li40MTI5ZGNlZTYzZTYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsv cjgxNjlfbWFpbi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFp bi5jCkBAIC04NjMsNiArODYzLDkgQEAgc3RhdGljIHZvaWQgcjgxNjhnX21kaW9fd3JpdGUoc3Ry dWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHAsIGludCByZWcsIGludCB2YWx1ZSkKIAogc3RhdGljIGlu dCByODE2OGdfbWRpb19yZWFkKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwLCBpbnQgcmVnKQog eworCWlmIChyZWcgPT0gMHgxZikKKwkJcmV0dXJuIHRwLT5vY3BfYmFzZSA9PSBPQ1BfU1REX1BI WV9CQVNFID8gMCA6IHRwLT5vY3BfYmFzZSA+PiA0OworCiAJaWYgKHRwLT5vY3BfYmFzZSAhPSBP Q1BfU1REX1BIWV9CQVNFKQogCQlyZWcgLT0gMHgxMDsKIAotLSAKMi4yMC4xCgo= ----Next_Part(Sat_Nov__9_21_47_09_2019_112)----