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=-4.0 required=3.0 tests=BAYES_00, 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 D3E25C433E1 for ; Sat, 15 Aug 2020 22:07:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9C4F120639 for ; Sat, 15 Aug 2020 22:07:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728368AbgHOWHO (ORCPT ); Sat, 15 Aug 2020 18:07:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728355AbgHOVus (ORCPT ); Sat, 15 Aug 2020 17:50:48 -0400 Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EE2ABC06134D for ; Fri, 14 Aug 2020 18:36:12 -0700 (PDT) Received: from localhost (unknown [IPv6:2601:601:9f00:477::3d5]) (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 1D31612795FB2 for ; Fri, 14 Aug 2020 18:19:24 -0700 (PDT) Date: Fri, 14 Aug 2020 18:36:07 -0700 (PDT) Message-Id: <20200814.183607.739398019556222061.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Fri_Aug_14_18_36_07_2020_759)--" 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]); Fri, 14 Aug 2020 18:19:24 -0700 (PDT) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Fri_Aug_14_18_36_07_2020_759)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v5.7 and v5.8 -stable, respectively. Thank you. ----Next_Part(Fri_Aug_14_18_36_07_2020_759)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_57.mbox" RnJvbSA0OGEwNDFhOWIyZjM3NjE1YzhkODQ4ZWM1YzViNGQ0MjE1ZDI3OGNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE9nbmVzcyA8am9obi5vZ25lc3NAbGludXRyb25peC5k ZT4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAyMTo0NToyNSArMDIwNgpTdWJqZWN0OiBbUEFUQ0gg MDEvMTNdIGFmX3BhY2tldDogVFBBQ0tFVF9WMzogZml4IGZpbGwgc3RhdHVzIHJ3bG9jayBpbWJh bGFuY2UKClsgVXBzdHJlYW0gY29tbWl0IDg4ZmQxY2I4MGRhYTIwYWYwNjNiY2U4MWUxZmFkMTRl OTQ1YThkYzQgXQoKQWZ0ZXIgQGJsa19maWxsX2luX3Byb2dfbG9jayBpcyBhY3F1aXJlZCB0aGVy ZSBpcyBhbiBlYXJseSBvdXQgdm5ldApzaXR1YXRpb24gdGhhdCBjYW4gb2NjdXIuIEluIHRoYXQg Y2FzZSwgdGhlIHJ3bG9jayBuZWVkcyB0byBiZQpyZWxlYXNlZC4KCkFsc28sIHNpbmNlIEBibGtf ZmlsbF9pbl9wcm9nX2xvY2sgaXMgb25seSBhY3F1aXJlZCB3aGVuIEB0cF92ZXJzaW9uCmlzIGV4 YWN0bHkgVFBBQ0tFVF9WMywgb25seSByZWxlYXNlIGl0IG9uIHRoYXQgZXhhY3QgY29uZGl0aW9u IGFzCndlbGwuCgpBbmQgZmluYWxseSwgYWRkIHNwYXJzZSBhbm5vdGF0aW9uIHNvIHRoYXQgaXQg aXMgY2xlYXJlciB0aGF0CnByYl9maWxsX2N1cnJfYmxvY2soKSBhbmQgcHJiX2NsZWFyX2Jsa19m aWxsX3N0YXR1cygpIGFyZSBhY3F1aXJpbmcKYW5kIHJlbGVhc2luZyBAYmxrX2ZpbGxfaW5fcHJv Z19sb2NrLCByZXNwZWN0aXZlbHkuIHNwYXJzZSBpcyBzdGlsbAp1bmFibGUgdG8gdW5kZXJzdGFu ZCB0aGUgYmFsYW5jZSwgYnV0IHRoZSB3YXJuaW5ncyBhcmUgbm93IG9uIGEKaGlnaGVyIGxldmVs IHRoYXQgbWFrZSBtb3JlIHNlbnNlLgoKRml4ZXM6IDYzMmNhNTBmMmNiZCAoImFmX3BhY2tldDog VFBBQ0tFVF9WMzogcmVwbGFjZSBidXN5LXdhaXQgbG9vcCIpClNpZ25lZC1vZmYtYnk6IEpvaG4g T2duZXNzIDxqb2huLm9nbmVzc0BsaW51dHJvbml4LmRlPgpSZXBvcnRlZC1ieToga2VybmVsIHRl c3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgOSArKysr KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKaW5kZXggMjliZDQwNWFkYmJkLi4zMDFmNDFkNDkyOWIgMTAwNjQ0Ci0tLSBhL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtOTQyLDYgKzk0 Miw3IEBAIHN0YXRpYyBpbnQgcHJiX3F1ZXVlX2Zyb3plbihzdHJ1Y3QgdHBhY2tldF9rYmRxX2Nv cmUgKnBrYykKIH0KIAogc3RhdGljIHZvaWQgcHJiX2NsZWFyX2Jsa19maWxsX3N0YXR1cyhzdHJ1 Y3QgcGFja2V0X3JpbmdfYnVmZmVyICpyYikKKwlfX3JlbGVhc2VzKCZwa2MtPmJsa19maWxsX2lu X3Byb2dfbG9jaykKIHsKIAlzdHJ1Y3QgdHBhY2tldF9rYmRxX2NvcmUgKnBrYyAgPSBHRVRfUEJE UUNfRlJPTV9SQihyYik7CiAJYXRvbWljX2RlYygmcGtjLT5ibGtfZmlsbF9pbl9wcm9nKTsKQEAg LTk4OSw2ICs5OTAsNyBAQCBzdGF0aWMgdm9pZCBwcmJfZmlsbF9jdXJyX2Jsb2NrKGNoYXIgKmN1 cnIsCiAJCQkJc3RydWN0IHRwYWNrZXRfa2JkcV9jb3JlICpwa2MsCiAJCQkJc3RydWN0IHRwYWNr ZXRfYmxvY2tfZGVzYyAqcGJkLAogCQkJCXVuc2lnbmVkIGludCBsZW4pCisJX19hY3F1aXJlcygm cGtjLT5ibGtfZmlsbF9pbl9wcm9nX2xvY2spCiB7CiAJc3RydWN0IHRwYWNrZXQzX2hkciAqcHBk OwogCkBAIC0yMjg2LDggKzIyODgsMTEgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmIChkb192bmV0ICYmCiAJ ICAgIHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwgaC5yYXcgKyBtYWNvZmYgLQogCQkJCSAg ICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyKSwKLQkJCQkgICAgdmlvX2xlKCksIHRydWUs IDApKQorCQkJCSAgICB2aW9fbGUoKSwgdHJ1ZSwgMCkpIHsKKwkJaWYgKHBvLT50cF92ZXJzaW9u ID09IFRQQUNLRVRfVjMpCisJCQlwcmJfY2xlYXJfYmxrX2ZpbGxfc3RhdHVzKCZwby0+cnhfcmlu Zyk7CiAJCWdvdG8gZHJvcF9uX2FjY291bnQ7CisJfQogCiAJaWYgKHBvLT50cF92ZXJzaW9uIDw9 IFRQQUNLRVRfVjIpIHsKIAkJcGFja2V0X2luY3JlbWVudF9yeF9oZWFkKHBvLCAmcG8tPnJ4X3Jp bmcpOwpAQCAtMjM5Myw3ICsyMzk4LDcgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlfX2NsZWFyX2JpdChzbG90 X2lkLCBwby0+cnhfcmluZy5yeF9vd25lcl9tYXApOwogCQlzcGluX3VubG9jaygmc2stPnNrX3Jl Y2VpdmVfcXVldWUubG9jayk7CiAJCXNrLT5za19kYXRhX3JlYWR5KHNrKTsKLQl9IGVsc2Ugewor CX0gZWxzZSBpZiAocG8tPnRwX3ZlcnNpb24gPT0gVFBBQ0tFVF9WMykgewogCQlwcmJfY2xlYXJf YmxrX2ZpbGxfc3RhdHVzKCZwby0+cnhfcmluZyk7CiAJfQogCi0tIAoyLjI2LjIKCgpGcm9tIDNm NGU3ZDlhYjdiMzg2NjgwNDUxOTcxMGIyYjFkMWIyMTU2ZmUxOTEgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFhpZSBIZSA8eGllLmhlLjAxNDFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDUg QXVnIDIwMjAgMTg6NTA6NDAgLTA3MDAKU3ViamVjdDogW1BBVENIIDAyLzEzXSBkcml2ZXJzL25l dC93YW4vbGFwYmV0aGVyOiBBZGRlZCBuZWVkZWRfaGVhZHJvb20gYW5kIGEKIHNrYi0+bGVuIGNo ZWNrCgpbIFVwc3RyZWFtIGNvbW1pdCBjN2NhMDNjMjE2YWNiMTQ0NjZhNzEzZmVkZjFiOWYyYzI0 OTk0ZWYyIF0KCjEuIEFkZGVkIGEgc2tiLT5sZW4gY2hlY2sKClRoaXMgZHJpdmVyIGV4cGVjdHMg dXBwZXIgbGF5ZXJzIHRvIGluY2x1ZGUgYSBwc2V1ZG8gaGVhZGVyIG9mIDEgYnl0ZQp3aGVuIHBh c3NpbmcgZG93biBhIHNrYiBmb3IgdHJhbnNtaXNzaW9uLiBUaGlzIGRyaXZlciB3aWxsIHJlYWQg dGhpcwoxLWJ5dGUgaGVhZGVyLiBUaGlzIHBhdGNoIGFkZGVkIGEgc2tiLT5sZW4gY2hlY2sgYmVm b3JlIHJlYWRpbmcgdGhlCmhlYWRlciB0byBtYWtlIHN1cmUgdGhlIGhlYWRlciBleGlzdHMuCgoy LiBDaGFuZ2VkIHRvIHVzZSBuZWVkZWRfaGVhZHJvb20gaW5zdGVhZCBvZiBoYXJkX2hlYWRlcl9s ZW4gdG8gcmVxdWVzdApuZWNlc3NhcnkgaGVhZHJvb20gdG8gYmUgYWxsb2NhdGVkCgpJbiBuZXQv cGFja2V0L2FmX3BhY2tldC5jLCB0aGUgZnVuY3Rpb24gcGFja2V0X3NuZCBmaXJzdCByZXNlcnZl cyBhCmhlYWRyb29tIG9mIGxlbmd0aCAoZGV2LT5oYXJkX2hlYWRlcl9sZW4gKyBkZXYtPm5lZWRl ZF9oZWFkcm9vbSkuClRoZW4gaWYgdGhlIHNvY2tldCBpcyBhIFNPQ0tfREdSQU0gc29ja2V0LCBp dCBjYWxscyBkZXZfaGFyZF9oZWFkZXIsCndoaWNoIGNhbGxzIGRldi0+aGVhZGVyX29wcy0+Y3Jl YXRlLCB0byBjcmVhdGUgdGhlIGxpbmsgbGF5ZXIgaGVhZGVyLgpJZiB0aGUgc29ja2V0IGlzIGEg U09DS19SQVcgc29ja2V0LCBpdCAidW4tcmVzZXJ2ZXMiIGEgaGVhZHJvb20gb2YKbGVuZ3RoIChk ZXYtPmhhcmRfaGVhZGVyX2xlbiksIGFuZCBhc3N1bWVzIHRoZSB1c2VyIHRvIHByb3ZpZGUgdGhl CmFwcHJvcHJpYXRlIGxpbmsgbGF5ZXIgaGVhZGVyLgoKU28gYWNjb3JkaW5nIHRvIHRoZSBsb2dp YyBvZiBhZl9wYWNrZXQuYywgZGV2LT5oYXJkX2hlYWRlcl9sZW4gc2hvdWxkCmJlIHRoZSBsZW5n dGggb2YgdGhlIGhlYWRlciB0aGF0IHdvdWxkIGJlIGNyZWF0ZWQgYnkKZGV2LT5oZWFkZXJfb3Bz LT5jcmVhdGUuCgpIb3dldmVyLCB0aGlzIGRyaXZlciBkb2Vzbid0IHByb3ZpZGUgZGV2LT5oZWFk ZXJfb3BzLCBzbyBsb2dpY2FsbHkKZGV2LT5oYXJkX2hlYWRlcl9sZW4gc2hvdWxkIGJlIDAuCgpT byB3ZSBzaG91bGQgdXNlIGRldi0+bmVlZGVkX2hlYWRyb29tIGluc3RlYWQgb2YgZGV2LT5oYXJk X2hlYWRlcl9sZW4KdG8gcmVxdWVzdCBuZWNlc3NhcnkgaGVhZHJvb20gdG8gYmUgYWxsb2NhdGVk LgoKVGhpcyBjaGFuZ2UgZml4ZXMga2VybmVsIHBhbmljIHdoZW4gdGhpcyBkcml2ZXIgaXMgdXNl ZCB3aXRoIEFGX1BBQ0tFVApTT0NLX1JBVyBzb2NrZXRzLgoKQ2FsbCBzdGFjayB3aGVuIHBhbmlj OgoKWyAgMTY4LjM5OTE5N10gc2tidWZmOiBza2JfdW5kZXJfcGFuaWM6IHRleHQ6ZmZmZmZmZmY4 MTlkOTVmYiBsZW46MjAKcHV0OjE0IGhlYWQ6ZmZmZjg4ODI3MDRjMGEwMCBkYXRhOmZmZmY4ODgy NzA0YzA5ZmQgdGFpbDoweDExIGVuZDoweGMwCmRldjp2ZXRoMAouLi4KWyAgMTY4LjM5OTI1NV0g Q2FsbCBUcmFjZToKWyAgMTY4LjM5OTI1OV0gIHNrYl9wdXNoLmNvbGQrMHgxNC8weDI0ClsgIDE2 OC4zOTkyNjJdICBldGhfaGVhZGVyKzB4MmIvMHhjMApbICAxNjguMzk5MjY3XSAgbGFwYmV0aF9k YXRhX3RyYW5zbWl0KzB4OWEvMHhiMCBbbGFwYmV0aGVyXQpbICAxNjguMzk5Mjc1XSAgbGFwYl9k YXRhX3RyYW5zbWl0KzB4MjIvMHgyYyBbbGFwYl0KWyAgMTY4LjM5OTI3N10gIGxhcGJfdHJhbnNt aXRfYnVmZmVyKzB4NzEvMHhiMCBbbGFwYl0KWyAgMTY4LjM5OTI3OV0gIGxhcGJfa2ljaysweGUz LzB4MWMwIFtsYXBiXQpbICAxNjguMzk5MjgxXSAgbGFwYl9kYXRhX3JlcXVlc3QrMHg3Ni8weGMw IFtsYXBiXQpbICAxNjguMzk5MjgzXSAgbGFwYmV0aF94bWl0KzB4NTYvMHg5MCBbbGFwYmV0aGVy XQpbICAxNjguMzk5Mjg2XSAgZGV2X2hhcmRfc3RhcnRfeG1pdCsweDkxLzB4MWYwClsgIDE2OC4z OTkyODldICA/IGlycV9pbml0X3BlcmNwdV9pcnFzdGFjaysweGMwLzB4MTAwClsgIDE2OC4zOTky OTFdICBfX2Rldl9xdWV1ZV94bWl0KzB4NzIxLzB4OGUwClsgIDE2OC4zOTkyOTVdICA/IHBhY2tl dF9wYXJzZV9oZWFkZXJzLmlzcmEuMCsweGQyLzB4MTEwClsgIDE2OC4zOTkyOTddICBkZXZfcXVl dWVfeG1pdCsweDEwLzB4MjAKWyAgMTY4LjM5OTI5OF0gIHBhY2tldF9zZW5kbXNnKzB4YmYwLzB4 MTliMAouLi4uLi4KCkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1kZWJydWlqbi5rZXJuZWxA Z21haWwuY29tPgpDYzogTWFydGluIFNjaGlsbGVyIDxtc0BkZXYudGR0LmRlPgpDYzogQnJpYW4g Tm9ycmlzIDxicmlhbm5vcnJpc0BjaHJvbWl1bS5vcmc+ClNpZ25lZC1vZmYtYnk6IFhpZSBIZSA8 eGllLmhlLjAxNDFAZ21haWwuY29tPgpBY2tlZC1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVt YkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvd2FuL2xhcGJldGhlci5jIHwgMTAgKysrKysrKysr LQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9sYXBiZXRoZXIuYyBiL2RyaXZlcnMvbmV0L3dhbi9sYXBi ZXRoZXIuYwppbmRleCBiMjg2ODQzMzcxOGYuLjFlYTE1ZjIxMjNlZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvd2FuL2xhcGJldGhlci5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi9sYXBiZXRoZXIu YwpAQCAtMTU3LDYgKzE1NywxMiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgbGFwYmV0aF94bWl0KHN0 cnVjdCBza19idWZmICpza2IsCiAJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikpCiAJCWdvdG8gZHJv cDsKIAorCS8qIFRoZXJlIHNob3VsZCBiZSBhIHBzZXVkbyBoZWFkZXIgb2YgMSBieXRlIGFkZGVk IGJ5IHVwcGVyIGxheWVycy4KKwkgKiBDaGVjayB0byBtYWtlIHN1cmUgaXQgaXMgdGhlcmUgYmVm b3JlIHJlYWRpbmcgaXQuCisJICovCisJaWYgKHNrYi0+bGVuIDwgMSkKKwkJZ290byBkcm9wOwor CiAJc3dpdGNoIChza2ItPmRhdGFbMF0pIHsKIAljYXNlIFgyNV9JRkFDRV9EQVRBOgogCQlicmVh azsKQEAgLTMwNSw2ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBsYXBiZXRoX3NldHVwKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5uZXRkZXZfb3BzCSAgICAgPSAmbGFwYmV0aF9uZXRkZXZf b3BzOwogCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlOwogCWRldi0+dHlwZSAgICAgICAg ICAgID0gQVJQSFJEX1gyNTsKKwlkZXYtPmhhcmRfaGVhZGVyX2xlbiA9IDA7CiAJZGV2LT5tdHUg ICAgICAgICAgICAgPSAxMDAwOwogCWRldi0+YWRkcl9sZW4gICAgICAgID0gMDsKIH0KQEAgLTMz MSw3ICszMzgsOCBAQCBzdGF0aWMgaW50IGxhcGJldGhfbmV3X2RldmljZShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCSAqIHRoZW4gdGhpcyBkcml2ZXIgcHJlcGVuZHMgYSBsZW5ndGggZmllbGQg b2YgMiBieXRlcywKIAkgKiB0aGVuIHRoZSB1bmRlcmx5aW5nIEV0aGVybmV0IGRldmljZSBwcmVw ZW5kcyBpdHMgb3duIGhlYWRlci4KIAkgKi8KLQluZGV2LT5oYXJkX2hlYWRlcl9sZW4gPSAtMSAr IDMgKyAyICsgZGV2LT5oYXJkX2hlYWRlcl9sZW47CisJbmRldi0+bmVlZGVkX2hlYWRyb29tID0g LTEgKyAzICsgMiArIGRldi0+aGFyZF9oZWFkZXJfbGVuCisJCQkJCSAgICsgZGV2LT5uZWVkZWRf aGVhZHJvb207CiAKIAlsYXBiZXRoID0gbmV0ZGV2X3ByaXYobmRldik7CiAJbGFwYmV0aC0+YXhk ZXYgPSBuZGV2OwotLSAKMi4yNi4yCgoKRnJvbSBjY2ExMDQ1MTA5ZGY5NDQ0YzljNjk5ZTIwMmYz M2E0NjdkMTY2MGI3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWFvaGUgTGluIDxs aW5taWFvaGVAaHVhd2VpLmNvbT4KRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAwODoxNjo1OCAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggMDMvMTNdIG5ldDogRml4IHBvdGVudGlhbCBtZW1vcnkgbGVhayBp biBwcm90b19yZWdpc3RlcigpCgpbIFVwc3RyZWFtIGNvbW1pdCAwZjU5MDdhZjM5MTM3ZjgxODNl ZDUzNmFhYTAwZjMyMmQ3MzY1MTMwIF0KCklmIHdlIGZhaWxlZCB0byBhc3NpZ24gcHJvdG8gaWR4 LCB3ZSBmcmVlIHRoZSB0d3NrX3NsYWJfbmFtZSBidXQgZm9yZ2V0IHRvCmZyZWUgdGhlIHR3c2tf c2xhYi4gQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHR3X3Byb3RfY2xlYW51cCgpIHRvIGZyZWUgdGhl c2UKdG9nZXRoZXIgYW5kIGFsc28gdXNlIHRoaXMgaGVscGVyIGZ1bmN0aW9uIGluIHByb3RvX3Vu cmVnaXN0ZXIoKS4KCkZpeGVzOiBiNDVjZTMyMTM1ZDEgKCJzb2NrOiBmaXggcG90ZW50aWFsIG1l bW9yeSBsZWFrIGluIHByb3RvX3JlZ2lzdGVyKCkiKQpTaWduZWQtb2ZmLWJ5OiBNaWFvaGUgTGlu IDxsaW5taWFvaGVAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NvY2suYyB8IDI1ICsrKysrKysrKysr KysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMK aW5kZXggYmM2ZmU0MTE0Mzc0Li43YjBmZWVlYTYxYjYgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3Nv Y2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTMzNTQsNiArMzM1NCwxNiBAQCBzdGF0aWMg dm9pZCBzb2NrX2ludXNlX2FkZChzdHJ1Y3QgbmV0ICpuZXQsIGludCB2YWwpCiB9CiAjZW5kaWYK IAorc3RhdGljIHZvaWQgdHdfcHJvdF9jbGVhbnVwKHN0cnVjdCB0aW1ld2FpdF9zb2NrX29wcyAq dHdza19wcm90KQoreworCWlmICghdHdza19wcm90KQorCQlyZXR1cm47CisJa2ZyZWUodHdza19w cm90LT50d3NrX3NsYWJfbmFtZSk7CisJdHdza19wcm90LT50d3NrX3NsYWJfbmFtZSA9IE5VTEw7 CisJa21lbV9jYWNoZV9kZXN0cm95KHR3c2tfcHJvdC0+dHdza19zbGFiKTsKKwl0d3NrX3Byb3Qt PnR3c2tfc2xhYiA9IE5VTEw7Cit9CisKIHN0YXRpYyB2b2lkIHJlcV9wcm90X2NsZWFudXAoc3Ry dWN0IHJlcXVlc3Rfc29ja19vcHMgKnJza19wcm90KQogewogCWlmICghcnNrX3Byb3QpCkBAIC0z NDI0LDcgKzM0MzQsNyBAQCBpbnQgcHJvdG9fcmVnaXN0ZXIoc3RydWN0IHByb3RvICpwcm90LCBp bnQgYWxsb2Nfc2xhYikKIAkJCQkJCSAgcHJvdC0+c2xhYl9mbGFncywKIAkJCQkJCSAgTlVMTCk7 CiAJCQlpZiAocHJvdC0+dHdza19wcm90LT50d3NrX3NsYWIgPT0gTlVMTCkKLQkJCQlnb3RvIG91 dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYl9uYW1lOworCQkJCWdvdG8gb3V0X2ZyZWVfdGltZXdh aXRfc29ja19zbGFiOwogCQl9CiAJfQogCkBAIC0zNDMyLDE1ICszNDQyLDE1IEBAIGludCBwcm90 b19yZWdpc3RlcihzdHJ1Y3QgcHJvdG8gKnByb3QsIGludCBhbGxvY19zbGFiKQogCXJldCA9IGFz c2lnbl9wcm90b19pZHgocHJvdCk7CiAJaWYgKHJldCkgewogCQltdXRleF91bmxvY2soJnByb3Rv X2xpc3RfbXV0ZXgpOwotCQlnb3RvIG91dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYl9uYW1lOwor CQlnb3RvIG91dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYjsKIAl9CiAJbGlzdF9hZGQoJnByb3Qt Pm5vZGUsICZwcm90b19saXN0KTsKIAltdXRleF91bmxvY2soJnByb3RvX2xpc3RfbXV0ZXgpOwog CXJldHVybiByZXQ7CiAKLW91dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYl9uYW1lOgorb3V0X2Zy ZWVfdGltZXdhaXRfc29ja19zbGFiOgogCWlmIChhbGxvY19zbGFiICYmIHByb3QtPnR3c2tfcHJv dCkKLQkJa2ZyZWUocHJvdC0+dHdza19wcm90LT50d3NrX3NsYWJfbmFtZSk7CisJCXR3X3Byb3Rf Y2xlYW51cChwcm90LT50d3NrX3Byb3QpOwogb3V0X2ZyZWVfcmVxdWVzdF9zb2NrX3NsYWI6CiAJ aWYgKGFsbG9jX3NsYWIpIHsKIAkJcmVxX3Byb3RfY2xlYW51cChwcm90LT5yc2tfcHJvdCk7CkBA IC0zNDY0LDEyICszNDc0LDcgQEAgdm9pZCBwcm90b191bnJlZ2lzdGVyKHN0cnVjdCBwcm90byAq cHJvdCkKIAlwcm90LT5zbGFiID0gTlVMTDsKIAogCXJlcV9wcm90X2NsZWFudXAocHJvdC0+cnNr X3Byb3QpOwotCi0JaWYgKHByb3QtPnR3c2tfcHJvdCAhPSBOVUxMICYmIHByb3QtPnR3c2tfcHJv dC0+dHdza19zbGFiICE9IE5VTEwpIHsKLQkJa21lbV9jYWNoZV9kZXN0cm95KHByb3QtPnR3c2tf cHJvdC0+dHdza19zbGFiKTsKLQkJa2ZyZWUocHJvdC0+dHdza19wcm90LT50d3NrX3NsYWJfbmFt ZSk7Ci0JCXByb3QtPnR3c2tfcHJvdC0+dHdza19zbGFiID0gTlVMTDsKLQl9CisJdHdfcHJvdF9j bGVhbnVwKHByb3QtPnR3c2tfcHJvdCk7CiB9CiBFWFBPUlRfU1lNQk9MKHByb3RvX3VucmVnaXN0 ZXIpOwogCi0tIAoyLjI2LjIKCgpGcm9tIDI3NmQ3MzA4ZmJiM2UzZDljYTU4MTU3Yjc5NzNkODQz ZmRjZDFlNDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFFpbmd5dSBMaSA8aWVhdG11 dHRvbmNodWFuQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAwOTo1MTowMCArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDQvMTNdIG5ldC9uZmMvcmF3c29jay5jOiBhZGQgQ0FQX05FVF9S QVcgY2hlY2suCgpbIFVwc3RyZWFtIGNvbW1pdCAyNjg5NmYwMTQ2N2EyODY1MWY3YTUzNjE0M2Zl NWFjODQ0OWQ0MDQxIF0KCldoZW4gY3JlYXRpbmcgYSByYXcgQUZfTkZDIHNvY2tldCwgQ0FQX05F VF9SQVcgbmVlZHMgdG8gYmUgY2hlY2tlZCBmaXJzdC4KClNpZ25lZC1vZmYtYnk6IFFpbmd5dSBM aSA8aWVhdG11dHRvbmNodWFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZmMvcmF3c29jay5jIHwgNyArKysr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9uZmMvcmF3c29jay5jIGIvbmV0L25mYy9yYXdzb2NrLmMKaW5kZXggYmE1 ZmZkM2JhZGQzLi5iNWM4NjdmZTMyMzIgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvcmF3c29jay5jCisr KyBiL25ldC9uZmMvcmF3c29jay5jCkBAIC0zMzIsMTAgKzMzMiwxMyBAQCBzdGF0aWMgaW50IHJh d3NvY2tfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywKIAlpZiAo KHNvY2stPnR5cGUgIT0gU09DS19TRVFQQUNLRVQpICYmIChzb2NrLT50eXBlICE9IFNPQ0tfUkFX KSkKIAkJcmV0dXJuIC1FU09DS1ROT1NVUFBPUlQ7CiAKLQlpZiAoc29jay0+dHlwZSA9PSBTT0NL X1JBVykKKwlpZiAoc29jay0+dHlwZSA9PSBTT0NLX1JBVykgeworCQlpZiAoIWNhcGFibGUoQ0FQ X05FVF9SQVcpKQorCQkJcmV0dXJuIC1FUEVSTTsKIAkJc29jay0+b3BzID0gJnJhd3NvY2tfcmF3 X29wczsKLQllbHNlCisJfSBlbHNlIHsKIAkJc29jay0+b3BzID0gJnJhd3NvY2tfb3BzOworCX0K IAogCXNrID0gc2tfYWxsb2MobmV0LCBQRl9ORkMsIEdGUF9BVE9NSUMsIG5mY19wcm90by0+cHJv dG8sIGtlcm4pOwogCWlmICghc2spCi0tIAoyLjI2LjIKCgpGcm9tIGNlODZkMzBmNzVhZTZjMWQy YjBkN2M1ZWQ0OTBmODg4NDZmOGE3MTcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpv aGFuIEhvdm9sZCA8am9oYW5Aa2VybmVsLm9yZz4KRGF0ZTogVGh1LCA2IEF1ZyAyMDIwIDE3OjM3 OjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS8xM10gbmV0OiBwaHk6IGZpeCBtZW1vcnkgbGVh ayBpbiBkZXZpY2UtY3JlYXRlIGVycm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGQwMmNiYzQ2 MTM2MTA1Y2Y4NmY4NGFjMzU1ZTE2ZjA0Njk2ZjUzOGQgXQoKQSByZWNlbnQgY29tbWl0IGludHJv ZHVjZWQgYSBsYXRlIGVycm9yIHBhdGggaW4gcGh5X2RldmljZV9jcmVhdGUoKQp3aGljaCBmYWls cyB0byByZWxlYXNlIHRoZSBkZXZpY2UgbmFtZSBhbGxvY2F0ZWQgYnkgZGV2X3NldF9uYW1lKCku CgpGaXhlczogMTNkMGFiNjc1MGIyICgibmV0OiBwaHk6IGNoZWNrIHJldHVybiBjb2RlIHdoZW4g cmVxdWVzdGluZyBQSFkgZHJpdmVyIG1vZHVsZSIpCkNjOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxs d2VpdDFAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb2hhbiBIb3ZvbGQgPGpvaGFuQGtlcm5l bC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIHwgOCArKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2Uu YwppbmRleCAwODgxYjRiOTIzNjMuLmQ5YmRjMTliMDFjYyAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvcGh5L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBA IC02MTYsNyArNjE2LDkgQEAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeV9kZXZpY2VfY3JlYXRlKHN0 cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCB1MzIgcGh5X2lkLAogCWlmIChjNDVfaWRzKQog CQlkZXYtPmM0NV9pZHMgPSAqYzQ1X2lkczsKIAlkZXYtPmlycSA9IGJ1cy0+aXJxW2FkZHJdOwor CiAJZGV2X3NldF9uYW1lKCZtZGlvZGV2LT5kZXYsIFBIWV9JRF9GTVQsIGJ1cy0+aWQsIGFkZHIp OworCWRldmljZV9pbml0aWFsaXplKCZtZGlvZGV2LT5kZXYpOwogCiAJZGV2LT5zdGF0ZSA9IFBI WV9ET1dOOwogCkBAIC02NTAsMTAgKzY1Miw4IEBAIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlfZGV2 aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgdTMyIHBoeV9pZCwKIAkJ cmV0ID0gcGh5X3JlcXVlc3RfZHJpdmVyX21vZHVsZShkZXYsIHBoeV9pZCk7CiAJfQogCi0JaWYg KCFyZXQpIHsKLQkJZGV2aWNlX2luaXRpYWxpemUoJm1kaW9kZXYtPmRldik7Ci0JfSBlbHNlIHsK LQkJa2ZyZWUoZGV2KTsKKwlpZiAocmV0KSB7CisJCXB1dF9kZXZpY2UoJm1kaW9kZXYtPmRldik7 CiAJCWRldiA9IEVSUl9QVFIocmV0KTsKIAl9CiAKLS0gCjIuMjYuMgoKCkZyb20gZTU1MDRlN2Iy ZTE4YjYyMTNiMzI2NmY2ZjMyYjBjMDQwNjg0Zjc3YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTWlhb2hlIExpbiA8bGlubWlhb2hlQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgNiBBdWcg MjAyMCAxOTo1MzoxNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTNdIG5ldDogU2V0IGZwdXRf bmVlZGVkIGlmZiBGRFBVVF9GUFVUIGlzIHNldAoKWyBVcHN0cmVhbSBjb21taXQgY2U3ODdhNWEw NzRhODZmNzZmNWQzZmQ4MDRmYTc4ZTAxYmZiOWU4OSBdCgpXZSBzaG91bGQgZnB1dCgpIGZpbGUg aWZmIEZEUFVUX0ZQVVQgaXMgc2V0LiBTbyB3ZSBzaG91bGQgc2V0IGZwdXRfbmVlZGVkCmFjY29y ZGluZ2x5LgoKRml4ZXM6IDAwZTE4OGVmNmE3ZSAoInNvY2tmZF9sb29rdXBfbGlnaHQoKTogc3dp dGNoIHRvIGZkZ2V0XldeV2F3YXkgZnJvbSBmZ2V0X2xpZ2h0IikKU2lnbmVkLW9mZi1ieTogTWlh b2hlIExpbiA8bGlubWlhb2hlQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggMmRkNzM5ZmJhODY2Li45MGUyMTI0MTBk MzcgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTUwMCw3 ICs1MDAsNyBAQCBzdGF0aWMgc3RydWN0IHNvY2tldCAqc29ja2ZkX2xvb2t1cF9saWdodChpbnQg ZmQsIGludCAqZXJyLCBpbnQgKmZwdXRfbmVlZGVkKQogCWlmIChmLmZpbGUpIHsKIAkJc29jayA9 IHNvY2tfZnJvbV9maWxlKGYuZmlsZSwgZXJyKTsKIAkJaWYgKGxpa2VseShzb2NrKSkgewotCQkJ KmZwdXRfbmVlZGVkID0gZi5mbGFnczsKKwkJCSpmcHV0X25lZWRlZCA9IGYuZmxhZ3MgJiBGRFBV VF9GUFVUOwogCQkJcmV0dXJuIHNvY2s7CiAJCX0KIAkJZmRwdXQoZik7Ci0tIAoyLjI2LjIKCgpG cm9tIGUxMDU1N2FkZTZjYTk0YzUwNjFmZTY4ZmRmYWRiODEyY2JkYTljMDYgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IElyYSBXZWlueSA8aXJhLndlaW55QGludGVsLmNvbT4KRGF0ZTog TW9uLCAxMCBBdWcgMjAyMCAxNzowMjo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTNdIG5l dC90bHM6IEZpeCBrbWFwIHVzYWdlCgpbIFVwc3RyZWFtIGNvbW1pdCBiMDZjMTlkOWY4MjdmNjc0 MzEyMjc5NTU3MGJmYzBjNzJkYjQ4MmIwIF0KCldoZW4gTVNHX09PQiBpcyBzcGVjaWZpZWQgdG8g dGxzX2RldmljZV9zZW5kcGFnZSgpIHRoZSBtYXBwZWQgcGFnZSBpcwpuZXZlciB1bm1hcHBlZC4K CkhvbGQgb2ZmIG1hcHBpbmcgdGhlIHBhZ2UgdW50aWwgYWZ0ZXIgdGhlIGZsYWdzIGFyZSBjaGVj a2VkIGFuZCB0aGUgcGFnZQppcyBhY3R1YWxseSBuZWVkZWQuCgpGaXhlczogZThmNjk3OTk4MTBj ICgibmV0L3RsczogQWRkIGdlbmVyaWMgTklDIG9mZmxvYWQgaW5mcmFzdHJ1Y3R1cmUiKQpTaWdu ZWQtb2ZmLWJ5OiBJcmEgV2VpbnkgPGlyYS53ZWlueUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBK YWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCAz ICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC90bHMvdGxzX2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5k ZXggYTU2MmViYWFhMzNjLi4wYWQ4YjUzYThjYTQgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2Rl dmljZS5jCisrKyBiL25ldC90bHMvdGxzX2RldmljZS5jCkBAIC01NjEsNyArNTYxLDcgQEAgaW50 IHRsc19kZXZpY2Vfc2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwK IHsKIAlzdHJ1Y3QgdGxzX2NvbnRleHQgKnRsc19jdHggPSB0bHNfZ2V0X2N0eChzayk7CiAJc3Ry dWN0IGlvdl9pdGVyCW1zZ19pdGVyOwotCWNoYXIgKmthZGRyID0ga21hcChwYWdlKTsKKwljaGFy ICprYWRkcjsKIAlzdHJ1Y3Qga3ZlYyBpb3Y7CiAJaW50IHJjOwogCkBAIC01NzYsNiArNTc2LDcg QEAgaW50IHRsc19kZXZpY2Vfc2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAq cGFnZSwKIAkJZ290byBvdXQ7CiAJfQogCisJa2FkZHIgPSBrbWFwKHBhZ2UpOwogCWlvdi5pb3Zf YmFzZSA9IGthZGRyICsgb2Zmc2V0OwogCWlvdi5pb3ZfbGVuID0gc2l6ZTsKIAlpb3ZfaXRlcl9r dmVjKCZtc2dfaXRlciwgV1JJVEUsICZpb3YsIDEsIHNpemUpOwotLSAKMi4yNi4yCgoKRnJvbSA5 NjJjYTA1YmVhMjljNzA4NzA3ZWRmZjVjNGNjZjAxNzFjM2Y1OTJmIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYXNvbiBCYXJvbiA8amJhcm9uQGFrYW1haS5jb20+CkRhdGU6IE1vbiwg MTAgQXVnIDIwMjAgMTM6Mzg6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIIDA4LzEzXSB0Y3A6IGNv cnJlY3QgcmVhZCBvZiBURk8ga2V5cyBvbiBiaWcgZW5kaWFuIHN5c3RlbXMKClsgVXBzdHJlYW0g Y29tbWl0IGYxOTAwOGU2NzYzNjZjNDRlOTI0MWFmNTdmMzMxYjZjNmVkZjk1NTIgXQoKV2hlbiBU Rk8ga2V5cyBhcmUgcmVhZCBiYWNrIG9uIGJpZyBlbmRpYW4gc3lzdGVtcyBlaXRoZXIgdmlhIHRo ZSBnbG9iYWwKc3lzY3RsIGludGVyZmFjZSBvciB2aWEgZ2V0c29ja29wdCgpIHVzaW5nIFRDUF9G QVNUT1BFTl9LRVksIHRoZSB2YWx1ZXMKZG9uJ3QgbWF0Y2ggd2hhdCB3YXMgd3JpdHRlbi4KCkZv ciBleGFtcGxlLCBvbiBzMzkweDoKCiMgZWNobyAiMS0yLTMtNCIgPiAvcHJvYy9zeXMvbmV0L2lw djQvdGNwX2Zhc3RvcGVuX2tleQojIGNhdCAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2Zhc3RvcGVu X2tleQowMjAwMDAwMC0wMTAwMDAwMC0wNDAwMDAwMC0wMzAwMDAwMAoKSW5zdGVhZCBvZjoKCiMg Y2F0IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfZmFzdG9wZW5fa2V5CjAwMDAwMDAxLTAwMDAwMDAy LTAwMDAwMDAzLTAwMDAwMDA0CgpGaXggdGhpcyBieSBjb252ZXJ0aW5nIHRvIHRoZSBjb3JyZWN0 IGVuZGlhbm5lc3Mgb24gcmVhZC4gVGhpcyB3YXMKcmVwb3J0ZWQgYnkgQ29saW4gSWFuIEtpbmcg d2hlbiBydW5uaW5nIHRoZSAndGNwX2Zhc3RvcGVuX2JhY2t1cF9rZXknIG5ldApzZWxmdGVzdCBv biBzMzkweCwgd2hpY2ggZGVwZW5kcyBvbiB0aGUgcmVhZCB2YWx1ZSBtYXRjaGluZyB3aGF0IHdh cwp3cml0dGVuLiBJJ3ZlIGNvbmZpcm1lZCB0aGF0IHRoZSB0ZXN0IG5vdyBwYXNzZXMgb24gYmln IGFuZCBsaXR0bGUgZW5kaWFuCnN5c3RlbXMuCgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBCYXJvbiA8 amJhcm9uQGFrYW1haS5jb20+CkZpeGVzOiA0MzhhYzg4MDA5YmMgKCJuZXQ6IGZhc3RvcGVuOiBy b2J1c3RuZXNzIGFuZCBlbmRpYW5uZXNzIGZpeGVzIGZvciBTaXBIYXNoIikKQ2M6IEFyZCBCaWVz aGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPgpDYzogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBDb2xpbiBJYW4gS2luZyA8 Y29saW4ua2luZ0BjYW5vbmljYWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGNwLmggICAgICAgICAgfCAg MiArKwogbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgfCAxNiArKysrLS0tLS0tLS0tLS0tCiBu ZXQvaXB2NC90Y3AuYyAgICAgICAgICAgICB8IDE2ICsrKystLS0tLS0tLS0tLS0KIG5ldC9pcHY0 L3RjcF9mYXN0b3Blbi5jICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaAppbmRleCA2ZjhlNjBjNmZiYzcu LmVjYjY2ZDAxMTM1ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVk ZS9uZXQvdGNwLmgKQEAgLTE2NjksNiArMTY2OSw4IEBAIHZvaWQgdGNwX2Zhc3RvcGVuX2Rlc3Ry b3lfY2lwaGVyKHN0cnVjdCBzb2NrICpzayk7CiB2b2lkIHRjcF9mYXN0b3Blbl9jdHhfZGVzdHJv eShzdHJ1Y3QgbmV0ICpuZXQpOwogaW50IHRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkgICAgICB2b2lkICpwcmltYXJ5X2tleSwg dm9pZCAqYmFja3VwX2tleSk7CitpbnQgdGNwX2Zhc3RvcGVuX2dldF9jaXBoZXIoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9uX3NvY2sgKmljc2ssCisJCQkgICAgdTY0ICpr ZXkpOwogdm9pZCB0Y3BfZmFzdG9wZW5fYWRkX3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IpOwogc3RydWN0IHNvY2sgKnRjcF90cnlfZmFzdG9wZW4oc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAgICAgc3RydWN0IHJlcXVlc3Rfc29jayAq cmVxLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgYi9uZXQvaXB2NC9z eXNjdGxfbmV0X2lwdjQuYwppbmRleCA4MWIyNjdlOTkwYTEuLmUwN2MxYjQyOWIwOSAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvc3lzY3RsX25l dF9pcHY0LmMKQEAgLTMwNywyNCArMzA3LDE2IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfZmFzdG9w ZW5fa2V5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJc3RydWN0IGN0bF90 YWJsZSB0YmwgPSB7IC5tYXhsZW4gPSAoKFRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIICoKIAkJCQkJ ICAgIDIgKiBUQ1BfRkFTVE9QRU5fS0VZX01BWCkgKwogCQkJCQkgICAgKFRDUF9GQVNUT1BFTl9L RVlfTUFYICogNSkpIH07Ci0Jc3RydWN0IHRjcF9mYXN0b3Blbl9jb250ZXh0ICpjdHg7Ci0JdTMy IHVzZXJfa2V5W1RDUF9GQVNUT1BFTl9LRVlfTUFYICogNF07Ci0JX19sZTMyIGtleVtUQ1BfRkFT VE9QRU5fS0VZX01BWCAqIDRdOworCXUzMiB1c2VyX2tleVtUQ1BfRkFTVE9QRU5fS0VZX0JVRl9M RU5HVEggLyBzaXplb2YodTMyKV07CisJX19sZTMyIGtleVtUQ1BfRkFTVE9QRU5fS0VZX0JVRl9M RU5HVEggLyBzaXplb2YoX19sZTMyKV07CiAJY2hhciAqYmFja3VwX2RhdGE7Ci0JaW50IHJldCwg aSA9IDAsIG9mZiA9IDAsIG5fa2V5cyA9IDA7CisJaW50IHJldCwgaSA9IDAsIG9mZiA9IDAsIG5f a2V5czsKIAogCXRibC5kYXRhID0ga21hbGxvYyh0YmwubWF4bGVuLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIXRibC5kYXRhKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJjdV9yZWFkX2xvY2soKTsKLQlj dHggPSByY3VfZGVyZWZlcmVuY2UobmV0LT5pcHY0LnRjcF9mYXN0b3Blbl9jdHgpOwotCWlmIChj dHgpIHsKLQkJbl9rZXlzID0gdGNwX2Zhc3RvcGVuX2NvbnRleHRfbGVuKGN0eCk7Ci0JCW1lbWNw eSgma2V5WzBdLCAmY3R4LT5rZXlbMF0sIFRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIICogbl9rZXlz KTsKLQl9Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0KKwluX2tleXMgPSB0Y3BfZmFzdG9wZW5fZ2V0 X2NpcGhlcihuZXQsIE5VTEwsICh1NjQgKilrZXkpOwogCWlmICghbl9rZXlzKSB7CiAJCW1lbXNl dCgma2V5WzBdLCAwLCBUQ1BfRkFTVE9QRU5fS0VZX0xFTkdUSCk7CiAJCW5fa2V5cyA9IDE7CmRp ZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IGVlZTE4MjU5 YTI0ZS4uNGYxMWU2OGE0ZWZhIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQv aXB2NC90Y3AuYwpAQCAtMzUzOCwyMiArMzUzOCwxNCBAQCBzdGF0aWMgaW50IGRvX3RjcF9nZXRz b2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLAogCQlyZXR1cm4gMDsKIAogCWNhc2Ug VENQX0ZBU1RPUEVOX0tFWTogewotCQlfX3U4IGtleVtUQ1BfRkFTVE9QRU5fS0VZX0JVRl9MRU5H VEhdOwotCQlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2NvbnRleHQgKmN0eDsKLQkJdW5zaWduZWQgaW50 IGtleV9sZW4gPSAwOworCQl1NjQga2V5W1RDUF9GQVNUT1BFTl9LRVlfQlVGX0xFTkdUSCAvIHNp emVvZih1NjQpXTsKKwkJdW5zaWduZWQgaW50IGtleV9sZW47CiAKIAkJaWYgKGdldF91c2VyKGxl biwgb3B0bGVuKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCi0JCXJjdV9yZWFkX2xvY2soKTsKLQkJ Y3R4ID0gcmN1X2RlcmVmZXJlbmNlKGljc2stPmljc2tfYWNjZXB0X3F1ZXVlLmZhc3RvcGVucS5j dHgpOwotCQlpZiAoY3R4KSB7Ci0JCQlrZXlfbGVuID0gdGNwX2Zhc3RvcGVuX2NvbnRleHRfbGVu KGN0eCkgKgotCQkJCQlUQ1BfRkFTVE9QRU5fS0VZX0xFTkdUSDsKLQkJCW1lbWNweSgma2V5WzBd LCAmY3R4LT5rZXlbMF0sIGtleV9sZW4pOwotCQl9Ci0JCXJjdV9yZWFkX3VubG9jaygpOwotCisJ CWtleV9sZW4gPSB0Y3BfZmFzdG9wZW5fZ2V0X2NpcGhlcihuZXQsIGljc2ssIGtleSkgKgorCQkJ CVRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIOwogCQlsZW4gPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGxl biwga2V5X2xlbik7CiAJCWlmIChwdXRfdXNlcihsZW4sIG9wdGxlbikpCiAJCQlyZXR1cm4gLUVG QVVMVDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jIGIvbmV0L2lwdjQvdGNw X2Zhc3RvcGVuLmMKaW5kZXggMTlhZDk1ODZjNzIwLi4xYmI4NTgyMWYxZTYgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCisrKyBiL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCkBA IC0xMDgsNiArMTA4LDI5IEBAIGludCB0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLAogCXJldHVybiBlcnI7CiB9CiAKK2ludCB0Y3BfZmFz dG9wZW5fZ2V0X2NpcGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBpbmV0X2Nvbm5lY3Rpb25f c29jayAqaWNzaywKKwkJCSAgICB1NjQgKmtleSkKK3sKKwlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2Nv bnRleHQgKmN0eDsKKwlpbnQgbl9rZXlzID0gMCwgaTsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlp ZiAoaWNzaykKKwkJY3R4ID0gcmN1X2RlcmVmZXJlbmNlKGljc2stPmljc2tfYWNjZXB0X3F1ZXVl LmZhc3RvcGVucS5jdHgpOworCWVsc2UKKwkJY3R4ID0gcmN1X2RlcmVmZXJlbmNlKG5ldC0+aXB2 NC50Y3BfZmFzdG9wZW5fY3R4KTsKKwlpZiAoY3R4KSB7CisJCW5fa2V5cyA9IHRjcF9mYXN0b3Bl bl9jb250ZXh0X2xlbihjdHgpOworCQlmb3IgKGkgPSAwOyBpIDwgbl9rZXlzOyBpKyspIHsKKwkJ CXB1dF91bmFsaWduZWRfbGU2NChjdHgtPmtleVtpXS5rZXlbMF0sIGtleSArIChpICogMikpOwor CQkJcHV0X3VuYWxpZ25lZF9sZTY0KGN0eC0+a2V5W2ldLmtleVsxXSwga2V5ICsgKGkgKiAyKSAr IDEpOworCQl9CisJfQorCXJjdV9yZWFkX3VubG9jaygpOworCisJcmV0dXJuIG5fa2V5czsKK30K Kwogc3RhdGljIGJvb2wgX190Y3BfZmFzdG9wZW5fY29va2llX2dlbl9jaXBoZXIoc3RydWN0IHJl cXVlc3Rfc29jayAqcmVxLAogCQkJCQkgICAgIHN0cnVjdCBza19idWZmICpzeW4sCiAJCQkJCSAg ICAgY29uc3Qgc2lwaGFzaF9rZXlfdCAqa2V5LAotLSAKMi4yNi4yCgoKRnJvbSBmMjg0NjQ4YjFh MjE5NTdkYTM4ZWZkNGUwYWFmYmNhOTQ1YmU2MTUyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBSb25hayBEb3NoaSA8ZG9zaGlyQHZtd2FyZS5jb20+CkRhdGU6IE1vbiwgMTAgQXVnIDIw MjAgMDk6NTU6NTUgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzEzXSB2bXhuZXQzOiB1c2UgY29y cmVjdCB0Y3AgaGRyIGxlbmd0aCB3aGVuIHBhY2tldCBpcwogZW5jYXBzdWxhdGVkCgpbIFVwc3Ry ZWFtIGNvbW1pdCA4YTdmMjgwZjI5YTgwZjZlMDc5OGY1ZDZlMDdjNWRkODcyNjYyMGZlIF0KCkNv bW1pdCBkYWNjZTJiZTMzMTIgKCJ2bXhuZXQzOiBhZGQgZ2VuZXZlIGFuZCB2eGxhbiB0dW5uZWwg b2ZmbG9hZApzdXBwb3J0IikgYWRkZWQgc3VwcG9ydCBmb3IgZW5jYXBzdWxhdGlvbiBvZmZsb2Fk LiBIb3dldmVyLCB3aGlsZQpjYWxjdWxhdGluZyB0Y3AgaGRyIGxlbmd0aCwgaXQgZG9lcyBub3Qg dGFrZSBpbnRvIGFjY291bnQgaWYgdGhlCnBhY2tldCBpcyBlbmNhcHN1bGF0ZWQgb3Igbm90LgoK VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlIGJ5IHVzaW5nIGNvcnJlY3QgcmVmZXJlbmNlIGZv ciBpbm5lcgp0Y3AgaGVhZGVyLgoKRml4ZXM6IGRhY2NlMmJlMzMxMiAoInZteG5ldDM6IGFkZCBn ZW5ldmUgYW5kIHZ4bGFuIHR1bm5lbCBvZmZsb2FkIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBS b25hayBEb3NoaSA8ZG9zaGlyQHZtd2FyZS5jb20+CkFja2VkLWJ5OiBHdW9saW4gWWFuZyA8Z3lh bmdAdm13YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYyB8IDMgKyst CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jIGIvZHJpdmVycy9uZXQvdm14 bmV0My92bXhuZXQzX2Rydi5jCmluZGV4IDcyMmNiMDU0YTVjZC4uZDQyMjA3ZGMyNWRkIDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMKKysrIGIvZHJpdmVycy9u ZXQvdm14bmV0My92bXhuZXQzX2Rydi5jCkBAIC04NjEsNyArODYxLDggQEAgdm14bmV0M19wYXJz ZV9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHZteG5ldDNfdHhfcXVldWUgKnRxLAog CiAJCQlzd2l0Y2ggKHByb3RvY29sKSB7CiAJCQljYXNlIElQUFJPVE9fVENQOgotCQkJCWN0eC0+ bDRfaGRyX3NpemUgPSB0Y3BfaGRybGVuKHNrYik7CisJCQkJY3R4LT5sNF9oZHJfc2l6ZSA9IHNr Yi0+ZW5jYXBzdWxhdGlvbiA/IGlubmVyX3RjcF9oZHJsZW4oc2tiKSA6CisJCQkJCQkgICB0Y3Bf aGRybGVuKHNrYik7CiAJCQkJYnJlYWs7CiAJCQljYXNlIElQUFJPVE9fVURQOgogCQkJCWN0eC0+ bDRfaGRyX3NpemUgPSBzaXplb2Yoc3RydWN0IHVkcGhkcik7Ci0tIAoyLjI2LjIKCgpGcm9tIDk4 NDhlYmQyNThiMjY5Mjk0NzJiN2Q2Njk2NDllNjFlMDBjZmI3YjAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRpbSBGcm9pZGNvZXVyIDx0aW0uZnJvaWRjb2V1ckB0ZXNzYXJlcy5uZXQ+ CkRhdGU6IFR1ZSwgMTEgQXVnIDIwMjAgMjA6MzM6MjMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzEzXSBuZXQ6IHJlZmFjdG9yIGJpbmRfYnVja2V0IGZhc3RyZXVzZSBpbnRvIGhlbHBlcgoKWyBV cHN0cmVhbSBjb21taXQgNjJmZmM1ODlhYmIxNzY4MjE2NjJlZmM0NTI1ZWU0YWMwYjljMzg5NCBd CgpSZWZhY3RvciB0aGUgZmFzdHJldXNlIHVwZGF0ZSBjb2RlIGluIGluZXRfY3NrX2dldF9wb3J0 IGludG8gYSBzbWFsbApoZWxwZXIgZnVuY3Rpb24gdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gb3Ro ZXIgcGxhY2VzLgoKQWNrZWQtYnk6IE1hdHRoaWV1IEJhZXJ0cyA8bWF0dGhpZXUuYmFlcnRzQHRl c3NhcmVzLm5ldD4KU2lnbmVkLW9mZi1ieTogVGltIEZyb2lkY29ldXIgPHRpbS5mcm9pZGNvZXVy QHRlc3NhcmVzLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmggfCAgNCAr KwogbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyAgICB8IDk3ICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA0NCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29j ay5oIGIvaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaAppbmRleCBhM2YwNzZiZWZh NGYuLmNjZWVjNDY3ZWQ5ZSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9u X3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oCkBAIC0zMDks NiArMzA5LDEwIEBAIGludCBpbmV0X2Nza19jb21wYXRfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAq c2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiBpbnQgaW5ldF9jc2tfY29tcGF0X3NldHNvY2tv cHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogCQkJICAgICAgIGNo YXIgX191c2VyICpvcHR2YWwsIHVuc2lnbmVkIGludCBvcHRsZW4pOwogCisvKiB1cGRhdGUgdGhl IGZhc3QgcmV1c2UgZmxhZyB3aGVuIGFkZGluZyBhIHNvY2tldCAqLwordm9pZCBpbmV0X2Nza191 cGRhdGVfZmFzdHJldXNlKHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YiwKKwkJCSAgICAgICBz dHJ1Y3Qgc29jayAqc2spOworCiBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0X2Nza191cGRhdGVfcG10 dShzdHJ1Y3Qgc29jayAqc2ssIHUzMiBtdHUpOwogCiAjZGVmaW5lIFRDUF9QSU5HUE9OR19USFJF U0gJMwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9p cHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggNjVjMjlmMmJkODlmLi45OGFhOTBhMjg2 OTEgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0 L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMjk2LDYgKzI5Niw1NyBAQCBzdGF0aWMg aW5saW5lIGludCBza19yZXVzZXBvcnRfbWF0Y2goc3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRi LAogCQkJCSAgICBpcHY2X29ubHlfc29jayhzayksIHRydWUsIGZhbHNlKTsKIH0KIAordm9pZCBp bmV0X2Nza191cGRhdGVfZmFzdHJldXNlKHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YiwKKwkJ CSAgICAgICBzdHJ1Y3Qgc29jayAqc2spCit7CisJa3VpZF90IHVpZCA9IHNvY2tfaV91aWQoc2sp OworCWJvb2wgcmV1c2UgPSBzay0+c2tfcmV1c2UgJiYgc2stPnNrX3N0YXRlICE9IFRDUF9MSVNU RU47CisKKwlpZiAoaGxpc3RfZW1wdHkoJnRiLT5vd25lcnMpKSB7CisJCXRiLT5mYXN0cmV1c2Ug PSByZXVzZTsKKwkJaWYgKHNrLT5za19yZXVzZXBvcnQpIHsKKwkJCXRiLT5mYXN0cmV1c2Vwb3J0 ID0gRkFTVFJFVVNFUE9SVF9BTlk7CisJCQl0Yi0+ZmFzdHVpZCA9IHVpZDsKKwkJCXRiLT5mYXN0 X3Jjdl9zYWRkciA9IHNrLT5za19yY3Zfc2FkZHI7CisJCQl0Yi0+ZmFzdF9pcHY2X29ubHkgPSBp cHY2X29ubHlfc29jayhzayk7CisJCQl0Yi0+ZmFzdF9za19mYW1pbHkgPSBzay0+c2tfZmFtaWx5 OworI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCisJCQl0Yi0+ZmFzdF92Nl9yY3Zfc2FkZHIg PSBzay0+c2tfdjZfcmN2X3NhZGRyOworI2VuZGlmCisJCX0gZWxzZSB7CisJCQl0Yi0+ZmFzdHJl dXNlcG9ydCA9IDA7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoIXJldXNlKQorCQkJdGItPmZhc3Ry ZXVzZSA9IDA7CisJCWlmIChzay0+c2tfcmV1c2Vwb3J0KSB7CisJCQkvKiBXZSBkaWRuJ3QgbWF0 Y2ggb3Igd2UgZG9uJ3QgaGF2ZSBmYXN0cmV1c2Vwb3J0IHNldCBvbgorCQkJICogdGhlIHRiLCBi dXQgd2UgaGF2ZSBza19yZXVzZXBvcnQgc2V0IG9uIHRoaXMgc29ja2V0CisJCQkgKiBhbmQgd2Ug a25vdyB0aGF0IHRoZXJlIGFyZSBubyBiaW5kIGNvbmZsaWN0cyB3aXRoCisJCQkgKiB0aGlzIHNv Y2tldCBpbiB0aGlzIHRiLCBzbyByZXNldCBvdXIgdGIncyByZXVzZXBvcnQKKwkJCSAqIHNldHRp bmdzIHNvIHRoYXQgYW55IHN1YnNlcXVlbnQgc29ja2V0cyB0aGF0IG1hdGNoCisJCQkgKiBvdXIg Y3VycmVudCBzb2NrZXQgd2lsbCBiZSBwdXQgb24gdGhlIGZhc3QgcGF0aC4KKwkJCSAqCisJCQkg KiBJZiB3ZSByZXNldCB3ZSBuZWVkIHRvIHNldCBGQVNUUkVVU0VQT1JUX1NUUklDVCBzbyB3ZQor CQkJICogZG8gZXh0cmEgY2hlY2tpbmcgZm9yIGFsbCBzdWJzZXF1ZW50IHNrX3JldXNlcG9ydAor CQkJICogc29ja3MuCisJCQkgKi8KKwkJCWlmICghc2tfcmV1c2Vwb3J0X21hdGNoKHRiLCBzaykp IHsKKwkJCQl0Yi0+ZmFzdHJldXNlcG9ydCA9IEZBU1RSRVVTRVBPUlRfU1RSSUNUOworCQkJCXRi LT5mYXN0dWlkID0gdWlkOworCQkJCXRiLT5mYXN0X3Jjdl9zYWRkciA9IHNrLT5za19yY3Zfc2Fk ZHI7CisJCQkJdGItPmZhc3RfaXB2Nl9vbmx5ID0gaXB2Nl9vbmx5X3NvY2soc2spOworCQkJCXRi LT5mYXN0X3NrX2ZhbWlseSA9IHNrLT5za19mYW1pbHk7CisjaWYgSVNfRU5BQkxFRChDT05GSUdf SVBWNikKKwkJCQl0Yi0+ZmFzdF92Nl9yY3Zfc2FkZHIgPSBzay0+c2tfdjZfcmN2X3NhZGRyOwor I2VuZGlmCisJCQl9CisJCX0gZWxzZSB7CisJCQl0Yi0+ZmFzdHJldXNlcG9ydCA9IDA7CisJCX0K Kwl9Cit9CisKIC8qIE9idGFpbiBhIHJlZmVyZW5jZSB0byBhIGxvY2FsIHBvcnQgZm9yIHRoZSBn aXZlbiBzb2NrLAogICogaWYgc251bSBpcyB6ZXJvIGl0IG1lYW5zIHNlbGVjdCBhbnkgYXZhaWxh YmxlIGxvY2FsIHBvcnQuCiAgKiBXZSB0cnkgdG8gYWxsb2NhdGUgYW4gb2RkIHBvcnQgKGFuZCBs ZWF2ZSBldmVuIHBvcnRzIGZvciBjb25uZWN0KCkpCkBAIC0zMDgsNyArMzU5LDYgQEAgaW50IGlu ZXRfY3NrX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSkKIAlz dHJ1Y3QgaW5ldF9iaW5kX2hhc2hidWNrZXQgKmhlYWQ7CiAJc3RydWN0IG5ldCAqbmV0ID0gc29j a19uZXQoc2spOwogCXN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YiA9IE5VTEw7Ci0Ja3VpZF90 IHVpZCA9IHNvY2tfaV91aWQoc2spOwogCWludCBsM21kZXY7CiAKIAlsM21kZXYgPSBpbmV0X3Nr X2JvdW5kX2wzbWRldihzayk7CkBAIC0zNDUsNDkgKzM5NSw4IEBAIGludCBpbmV0X2Nza19nZXRf cG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pCiAJCQlnb3RvIGZhaWxf dW5sb2NrOwogCX0KIHN1Y2Nlc3M6Ci0JaWYgKGhsaXN0X2VtcHR5KCZ0Yi0+b3duZXJzKSkgewot CQl0Yi0+ZmFzdHJldXNlID0gcmV1c2U7Ci0JCWlmIChzay0+c2tfcmV1c2Vwb3J0KSB7Ci0JCQl0 Yi0+ZmFzdHJldXNlcG9ydCA9IEZBU1RSRVVTRVBPUlRfQU5ZOwotCQkJdGItPmZhc3R1aWQgPSB1 aWQ7Ci0JCQl0Yi0+ZmFzdF9yY3Zfc2FkZHIgPSBzay0+c2tfcmN2X3NhZGRyOwotCQkJdGItPmZh c3RfaXB2Nl9vbmx5ID0gaXB2Nl9vbmx5X3NvY2soc2spOwotCQkJdGItPmZhc3Rfc2tfZmFtaWx5 ID0gc2stPnNrX2ZhbWlseTsKLSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQotCQkJdGItPmZh c3RfdjZfcmN2X3NhZGRyID0gc2stPnNrX3Y2X3Jjdl9zYWRkcjsKLSNlbmRpZgotCQl9IGVsc2Ug ewotCQkJdGItPmZhc3RyZXVzZXBvcnQgPSAwOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKCFyZXVz ZSkKLQkJCXRiLT5mYXN0cmV1c2UgPSAwOwotCQlpZiAoc2stPnNrX3JldXNlcG9ydCkgewotCQkJ LyogV2UgZGlkbid0IG1hdGNoIG9yIHdlIGRvbid0IGhhdmUgZmFzdHJldXNlcG9ydCBzZXQgb24K LQkJCSAqIHRoZSB0YiwgYnV0IHdlIGhhdmUgc2tfcmV1c2Vwb3J0IHNldCBvbiB0aGlzIHNvY2tl dAotCQkJICogYW5kIHdlIGtub3cgdGhhdCB0aGVyZSBhcmUgbm8gYmluZCBjb25mbGljdHMgd2l0 aAotCQkJICogdGhpcyBzb2NrZXQgaW4gdGhpcyB0Yiwgc28gcmVzZXQgb3VyIHRiJ3MgcmV1c2Vw b3J0Ci0JCQkgKiBzZXR0aW5ncyBzbyB0aGF0IGFueSBzdWJzZXF1ZW50IHNvY2tldHMgdGhhdCBt YXRjaAotCQkJICogb3VyIGN1cnJlbnQgc29ja2V0IHdpbGwgYmUgcHV0IG9uIHRoZSBmYXN0IHBh dGguCi0JCQkgKgotCQkJICogSWYgd2UgcmVzZXQgd2UgbmVlZCB0byBzZXQgRkFTVFJFVVNFUE9S VF9TVFJJQ1Qgc28gd2UKLQkJCSAqIGRvIGV4dHJhIGNoZWNraW5nIGZvciBhbGwgc3Vic2VxdWVu dCBza19yZXVzZXBvcnQKLQkJCSAqIHNvY2tzLgotCQkJICovCi0JCQlpZiAoIXNrX3JldXNlcG9y dF9tYXRjaCh0Yiwgc2spKSB7Ci0JCQkJdGItPmZhc3RyZXVzZXBvcnQgPSBGQVNUUkVVU0VQT1JU X1NUUklDVDsKLQkJCQl0Yi0+ZmFzdHVpZCA9IHVpZDsKLQkJCQl0Yi0+ZmFzdF9yY3Zfc2FkZHIg PSBzay0+c2tfcmN2X3NhZGRyOwotCQkJCXRiLT5mYXN0X2lwdjZfb25seSA9IGlwdjZfb25seV9z b2NrKHNrKTsKLQkJCQl0Yi0+ZmFzdF9za19mYW1pbHkgPSBzay0+c2tfZmFtaWx5OwotI2lmIElT X0VOQUJMRUQoQ09ORklHX0lQVjYpCi0JCQkJdGItPmZhc3RfdjZfcmN2X3NhZGRyID0gc2stPnNr X3Y2X3Jjdl9zYWRkcjsKLSNlbmRpZgotCQkJfQotCQl9IGVsc2UgewotCQkJdGItPmZhc3RyZXVz ZXBvcnQgPSAwOwotCQl9Ci0JfQorCWluZXRfY3NrX3VwZGF0ZV9mYXN0cmV1c2UodGIsIHNrKTsK KwogCWlmICghaW5ldF9jc2soc2spLT5pY3NrX2JpbmRfaGFzaCkKIAkJaW5ldF9iaW5kX2hhc2go c2ssIHRiLCBwb3J0KTsKIAlXQVJOX09OKGluZXRfY3NrKHNrKS0+aWNza19iaW5kX2hhc2ggIT0g dGIpOwotLSAKMi4yNi4yCgoKRnJvbSBhNGZmOTY0NDc0Y2EyNmMyN2ZlNTgyYjEwOWQ2NWViZjgx NzQyYTU2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gRnJvaWRjb2V1ciA8dGlt LmZyb2lkY29ldXJAdGVzc2FyZXMubmV0PgpEYXRlOiBUdWUsIDExIEF1ZyAyMDIwIDIwOjMzOjI0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS8xM10gbmV0OiBpbml0aWFsaXplIGZhc3RyZXVzZSBv biBpbmV0X2luaGVyaXRfcG9ydAoKWyBVcHN0cmVhbSBjb21taXQgZDc2ZjMzNTFjZWEyZDkyN2Zk ZjcwZGQ3YzA2ODk4MjM1MDM1ZTg0ZSBdCgpJbiB0aGUgY2FzZSBvZiBUUFJPWFksIGJpbmRfY29u ZmxpY3Qgb3B0aW1pemF0aW9ucyBmb3IgU09fUkVVU0VBRERSIG9yClNPX1JFVVNFUE9SVCBhcmUg YnJva2VuLCBwb3NzaWJseSByZXN1bHRpbmcgaW4gTyhuKSBpbnN0ZWFkIG9mIE8oMSkgYmluZApi ZWhhdmlvdXIgb3IgaW4gdGhlIGluY29ycmVjdCByZXVzZSBvZiBhIGJpbmQuCgp0aGUga2VybmVs IGtlZXBzIHRyYWNrIGZvciBlYWNoIGJpbmRfYnVja2V0IGlmIGFsbCBzb2NrZXRzIGluIHRoZQpi aW5kX2J1Y2tldCBzdXBwb3J0IFNPX1JFVVNFQUREUiBvciBTT19SRVVTRVBPUlQgaW4gdHdvIGZh c3RyZXVzZSBmbGFncy4KVGhlc2UgZmxhZ3MgYWxsb3cgc2tpcHBpbmcgdGhlIGNvc3RseSBiaW5k X2NvbmZsaWN0IGNoZWNrIHdoZW4gcG9zc2libGUKKG1lYW5pbmcgd2hlbiBhbGwgc29ja2V0cyBo YXZlIHRoZSBwcm9wZXIgU09fUkVVU0Ugb3B0aW9uKS4KCkZvciBldmVyeSBzb2NrZXQgYWRkZWQg dG8gYSBiaW5kX2J1Y2tldCwgdGhlc2UgZmxhZ3MgbmVlZCB0byBiZSB1cGRhdGVkLgpBcyBzb29u IGFzIGEgc29ja2V0IHRoYXQgZG9lcyBub3Qgc3VwcG9ydCByZXVzZSBpcyBhZGRlZCwgdGhlIGZs YWcgaXMKc2V0IHRvIGZhbHNlIGFuZCB3aWxsIG5ldmVyIGdvIGJhY2sgdG8gdHJ1ZSwgdW5sZXNz IHRoZSBiaW5kX2J1Y2tldCBpcwpkZWxldGVkLgoKTm90ZSB0aGF0IHRoZXJlIGlzIG5vIG1lY2hh bmlzbSB0byByZS1ldmFsdWF0ZSB0aGVzZSBmbGFncyB3aGVuIGEgc29ja2V0CmlzIHJlbW92ZWQg KHRoaXMgbWlnaHQgbWFrZSBzZW5zZSB3aGVuIHJlbW92aW5nIGEgc29ja2V0IHRoYXQgd291bGQg bm90CmFsbG93IHJldXNlOyB0aGlzIGxlYXZlcyByb29tIGZvciBhIGZ1dHVyZSBwYXRjaCkuCgpG b3IgdGhpcyBvcHRpbWl6YXRpb24gdG8gd29yaywgaXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhlc2Ug ZmxhZ3MgYXJlCnByb3Blcmx5IGluaXRpYWxpemVkIGFuZCB1cGRhdGVkLgoKV2hlbiBhIGNoaWxk IHNvY2tldCBpcyBjcmVhdGVkIGZyb20gYSBsaXN0ZW4gc29ja2V0IGluCl9faW5ldF9pbmhlcml0 X3BvcnQsIHRoZSBUUFJPWFkgY2FzZSBjb3VsZCBjcmVhdGUgYSBuZXcgYmluZCBidWNrZXQKd2l0 aG91dCBwcm9wZXJseSBpbml0aWFsaXppbmcgdGhlc2UgZmxhZ3MsIHRodXMgcHJldmVudGluZyB0 aGUKb3B0aW1pemF0aW9uIHRvIHdvcmsuIEFsdGVybmF0aXZlbHksIGEgc29ja2V0IG5vdCBhbGxv d2luZyByZXVzZSBjb3VsZApiZSBhZGRlZCB0byBhbiBleGlzdGluZyBiaW5kIGJ1Y2tldCB3aXRo b3V0IHVwZGF0aW5nIHRoZSBmbGFncywgY2F1c2luZwpiaW5kX2NvbmZsaWN0IHRvIG5ldmVyIGJl IGNhbGxlZCBhcyBpdCBzaG91bGQuCgpDYWxsIGluZXRfY3NrX3VwZGF0ZV9mYXN0cmV1c2Ugd2hl biBfX2luZXRfaW5oZXJpdF9wb3J0IGRlY2lkZXMgdG8gY3JlYXRlCmEgbmV3IGJpbmRfYnVja2V0 IG9yIHVzZSBhIGRpZmZlcmVudCBiaW5kX2J1Y2tldCB0aGFuIHRoZSBvbmUgb2YgdGhlCmxpc3Rl biBzb2NrZXQuCgpGaXhlczogMDkzZDI4MjMyMWRhICgidHByb3h5OiBmaXggaGFzaCBsb2NraW5n IGlzc3VlIHdoZW4gdXNpbmcgcG9ydCByZWRpcmVjdGlvbiBpbiBfX2luZXRfaW5oZXJpdF9wb3J0 KCkiKQpBY2tlZC1ieTogTWF0dGhpZXUgQmFlcnRzIDxtYXR0aGlldS5iYWVydHNAdGVzc2FyZXMu bmV0PgpTaWduZWQtb2ZmLWJ5OiBUaW0gRnJvaWRjb2V1ciA8dGltLmZyb2lkY29ldXJAdGVzc2Fy ZXMubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5j IGIvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMKaW5kZXggMmJiYWFmMGM3MTc2Li4wMDZhMzRi MTg1MzcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCisrKyBiL25ldC9p cHY0L2luZXRfaGFzaHRhYmxlcy5jCkBAIC0xNjMsNiArMTYzLDcgQEAgaW50IF9faW5ldF9pbmhl cml0X3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqY2hpbGQpCiAJCQkJ cmV0dXJuIC1FTk9NRU07CiAJCQl9CiAJCX0KKwkJaW5ldF9jc2tfdXBkYXRlX2Zhc3RyZXVzZSh0 YiwgY2hpbGQpOwogCX0KIAlpbmV0X2JpbmRfaGFzaChjaGlsZCwgdGIsIHBvcnQpOwogCXNwaW5f dW5sb2NrKCZoZWFkLT5sb2NrKTsKLS0gCjIuMjYuMgoKCkZyb20gMmFkNmVlOTc1MmJjYmZiNzlj OThmMzZkZTU0YzMxMDUwNWFmMDliZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3Rl ZmFubyBHYXJ6YXJlbGxhIDxzZ2FyemFyZUByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDEyIEF1ZyAy MDIwIDE0OjU2OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8xM10gdnNvY2s6IGZpeCBwb3Rl bnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluCiB2c29ja19wb2xsKCkKClsgVXBzdHJl YW0gY29tbWl0IDE5ODBjMDU4NDQ4MzBhNDQ3MDhjOThjOTZkNjAwODMzYWEzZmFlMDggXQoKc3l6 Ym90IHJlcG9ydGVkIHRoaXMgaXNzdWUgd2hlcmUgaW4gdGhlIHZzb2NrX3BvbGwoKSB3ZSBmaW5k IHRoZQpzb2NrZXQgc3RhdGUgYXQgVENQX0VTVEFCTElTSEVELCBidXQgJ3RyYW5zcG9ydCcgaXMg bnVsbDoKICBnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQsIHByb2JhYmx5IGZvciBub24tY2Fub25p Y2FsIGFkZHJlc3MgMHhkZmZmZmMwMDAwMDAwMDEyOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgS0FT QU4KICBLQVNBTjogbnVsbC1wdHItZGVyZWYgaW4gcmFuZ2UgWzB4MDAwMDAwMDAwMDAwMDA5MC0w eDAwMDAwMDAwMDAwMDAwOTddCiAgQ1BVOiAwIFBJRDogODIyNyBDb21tOiBzeXotZXhlY3V0b3Iu MiBOb3QgdGFpbnRlZCA1LjguMC1yYzctc3l6a2FsbGVyICMwCiAgSGFyZHdhcmUgbmFtZTogR29v Z2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29v Z2xlIDAxLzAxLzIwMTEKICBSSVA6IDAwMTA6dnNvY2tfcG9sbCsweDc1YS8weDhlMCBuZXQvdm13 X3Zzb2NrL2FmX3Zzb2NrLmM6MTAzOAogIENhbGwgVHJhY2U6CiAgIHNvY2tfcG9sbCsweDE1OS8w eDQ2MCBuZXQvc29ja2V0LmM6MTI2NgogICB2ZnNfcG9sbCBpbmNsdWRlL2xpbnV4L3BvbGwuaDo5 MCBbaW5saW5lXQogICBkb19wb2xsZmQgZnMvc2VsZWN0LmM6ODY5IFtpbmxpbmVdCiAgIGRvX3Bv bGwgZnMvc2VsZWN0LmM6OTE3IFtpbmxpbmVdCiAgIGRvX3N5c19wb2xsKzB4NjA3LzB4ZDQwIGZz L3NlbGVjdC5jOjEwMTEKICAgX19kb19zeXNfcG9sbCBmcy9zZWxlY3QuYzoxMDY5IFtpbmxpbmVd CiAgIF9fc2Vfc3lzX3BvbGwgZnMvc2VsZWN0LmM6MTA1NyBbaW5saW5lXQogICBfX3g2NF9zeXNf cG9sbCsweDE4Yy8weDQ0MCBmcy9zZWxlY3QuYzoxMDU3CiAgIGRvX3N5c2NhbGxfNjQrMHg2MC8w eGUwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjM4NAogICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVy X2h3ZnJhbWUrMHg0NC8weGE5CgpUaGlzIGlzc3VlIGNhbiBoYXBwZW4gaWYgdGhlIFRDUF9FU1RB QkxJU0hFRCBzdGF0ZSBpcyBzZXQgYWZ0ZXIgd2UgcmVhZAp0aGUgdnNrLT50cmFuc3BvcnQgaW4g dGhlIHZzb2NrX3BvbGwoKS4KCldlIGNvdWxkIHB1dCBiYXJyaWVycyB0byBzeW5jaHJvbml6ZSwg YnV0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGR1cmluZwpjb25uZWN0aW9uIHNldHVwLCBzbyB3ZSBj YW4gc2ltcGx5IGNoZWNrIHRoYXQgJ3RyYW5zcG9ydCcgaXMgdmFsaWQuCgpGaXhlczogYzBjZmEy ZDhhNzg4ICgidnNvY2s6IGFkZCBtdWx0aS10cmFuc3BvcnRzIHN1cHBvcnQiKQpSZXBvcnRlZC1h bmQtdGVzdGVkLWJ5OiBzeXpib3QrYTYxYmFjMmZjYzFhN2M2NjIzZmVAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJl ZGhhdC5jb20+ClJldmlld2VkLWJ5OiBKb3JnZW4gSGFuc2VuIDxqaGFuc2VuQHZtd2FyZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL2FmX3Zz b2NrLmMgYi9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKaW5kZXggNjI2YmY5MDQ0NDE4Li42Y2Qw ZGYxYzVjYWYgMTAwNjQ0Ci0tLSBhL25ldC92bXdfdnNvY2svYWZfdnNvY2suYworKysgYi9uZXQv dm13X3Zzb2NrL2FmX3Zzb2NrLmMKQEAgLTEwMzIsNyArMTAzMiw3IEBAIHN0YXRpYyBfX3BvbGxf dCB2c29ja19wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQl9 CiAKIAkJLyogQ29ubmVjdGVkIHNvY2tldHMgdGhhdCBjYW4gcHJvZHVjZSBkYXRhIGNhbiBiZSB3 cml0dGVuLiAqLwotCQlpZiAoc2stPnNrX3N0YXRlID09IFRDUF9FU1RBQkxJU0hFRCkgeworCQlp ZiAodHJhbnNwb3J0ICYmIHNrLT5za19zdGF0ZSA9PSBUQ1BfRVNUQUJMSVNIRUQpIHsKIAkJCWlm ICghKHNrLT5za19zaHV0ZG93biAmIFNFTkRfU0hVVERPV04pKSB7CiAJCQkJYm9vbCBzcGFjZV9h dmFpbF9ub3cgPSBmYWxzZTsKIAkJCQlpbnQgcmV0ID0gdHJhbnNwb3J0LT5ub3RpZnlfcG9sbF9v dXQoCi0tIAoyLjI2LjIKCgpGcm9tIGMwNmMyODAwM2NhYmZjNmE5OTg3YzliN2RkNzE0ZDVkYzM1 ZGU5YjcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9NYXJlaz0yMEJl aD1DMz1CQW4/PSA8bWFyZWsuYmVodW5AbmljLmN6PgpEYXRlOiBNb24sIDEwIEF1ZyAyMDIwIDE3 OjAxOjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8xM10gbmV0OiBwaHk6IG1hcnZlbGwxMGc6 IGZpeCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDFiOGVmMTQyM2RiZmQzNGRlMjQzOWEyZGI0NTdiODQ0 ODBiN2M4YTggXQoKQ29tbWl0IGMzZTMwMmVkY2EyNCAoIm5ldDogcGh5OiBtYXJ2ZWxsMTBnOiBm aXggdGVtcGVyYXR1cmUgc2Vuc29yIG9uIDIxMTAiKQphZGRlZCBhIGNoZWNrIGZvciBQSFkgSUQg dmlhIHBoeWRldi0+ZHJ2LT5waHlfaWQgaW4gYSBmdW5jdGlvbiB3aGljaCBpcwpjYWxsZWQgYnkg ZGV2cmVzIGF0IGEgdGltZSB3aGVuIHBoeWRldi0+ZHJ2IGlzIGFscmVhZHkgc2V0IHRvIG51bGwg YnkKcGh5X3JlbW92ZSBmdW5jdGlvbi4KClRoaXMgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGNh biBiZSB0cmlnZ2VyZWQgdmlhIFNGUCBzdWJzeXN0ZW0gd2l0aCBhClNGUCBtb2R1bGUgY29udGFp bmluZyB0aGlzIE1hcnZlbGwgUEhZLiBXaGVuIHRoZSBTRlAgaW50ZXJmYWNlIGlzIHB1dApkb3du LCB0aGUgU0ZQIHN1YnN5c3RlbSByZW1vdmVzIHRoZSBQSFkuCgpGaXhlczogYzNlMzAyZWRjYTI0 ICgibmV0OiBwaHk6IG1hcnZlbGwxMGc6IGZpeCB0ZW1wZXJhdHVyZSBzZW5zb3Igb24gMjExMCIp ClNpZ25lZC1vZmYtYnk6IE1hcmVrIEJlaMO6biA8bWFyZWsuYmVodW5AbmljLmN6PgpDYzogTWF4 aW1lIENoZXZhbGxpZXIgPG1heGltZS5jaGV2YWxsaWVyQGJvb3RsaW4uY29tPgpDYzogQW5kcmV3 IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpDYzogQmFydWNoIFNpYWNoIDxiYXJ1Y2hAdGtvcy5jby5p bD4KQ2M6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9waHkvbWFydmVsbDEwZy5jIHwgMTggKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9waHkvbWFydmVsbDEwZy5jIGIvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwxMGcuYwpp bmRleCAxZjFhMDFjOThlNDQuLjA2ZGZhYmUyOTdhZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cGh5L21hcnZlbGwxMGcuYworKysgYi9kcml2ZXJzL25ldC9waHkvbWFydmVsbDEwZy5jCkBAIC0y MDUsMTMgKzIwNSw2IEBAIHN0YXRpYyBpbnQgbXYzMzEwX2h3bW9uX2NvbmZpZyhzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LCBib29sIGVuYWJsZSkKIAkJCSAgICAgIE1WX1YyX1RFTVBfQ1RSTF9N QVNLLCB2YWwpOwogfQogCi1zdGF0aWMgdm9pZCBtdjMzMTBfaHdtb25fZGlzYWJsZSh2b2lkICpk YXRhKQotewotCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBkYXRhOwotCi0JbXYzMzEwX2h3 bW9uX2NvbmZpZyhwaHlkZXYsIGZhbHNlKTsKLX0KLQogc3RhdGljIGludCBtdjMzMTBfaHdtb25f cHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmcGh5ZGV2LT5tZGlvLmRldjsKQEAgLTIzNSwxMCArMjI4LDYgQEAgc3RhdGljIGludCBtdjMz MTBfaHdtb25fcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCi0JcmV0ID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgbXYzMzEw X2h3bW9uX2Rpc2FibGUsIHBoeWRldik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCXBy aXYtPmh3bW9uX2RldiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfaW5mbyhkZXYs CiAJCQkJcHJpdi0+aHdtb25fbmFtZSwgcGh5ZGV2LAogCQkJCSZtdjMzMTBfaHdtb25fY2hpcF9p bmZvLCBOVUxMKTsKQEAgLTQyMyw2ICs0MTIsMTEgQEAgc3RhdGljIGludCBtdjMzMTBfcHJvYmUo c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gcGh5X3NmcF9wcm9iZShwaHlkZXYs ICZtdjMzMTBfc2ZwX29wcyk7CiB9CiAKK3N0YXRpYyB2b2lkIG12MzMxMF9yZW1vdmUoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwltdjMzMTBfaHdtb25fY29uZmlnKHBoeWRldiwgZmFs c2UpOworfQorCiBzdGF0aWMgaW50IG12MzMxMF9zdXNwZW5kKHN0cnVjdCBwaHlfZGV2aWNlICpw aHlkZXYpCiB7CiAJcmV0dXJuIG12MzMxMF9wb3dlcl9kb3duKHBoeWRldik7CkBAIC03NjMsNiAr NzU3LDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG12MzMxMF9kcml2ZXJzW10gPSB7CiAJ CS5yZWFkX3N0YXR1cwk9IG12MzMxMF9yZWFkX3N0YXR1cywKIAkJLmdldF90dW5hYmxlCT0gbXYz MzEwX2dldF90dW5hYmxlLAogCQkuc2V0X3R1bmFibGUJPSBtdjMzMTBfc2V0X3R1bmFibGUsCisJ CS5yZW1vdmUJCT0gbXYzMzEwX3JlbW92ZSwKIAl9LAogCXsKIAkJLnBoeV9pZAkJPSBNQVJWRUxM X1BIWV9JRF84OEUyMTEwLApAQCAtNzc4LDYgKzc3Myw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGh5X2Ry aXZlciBtdjMzMTBfZHJpdmVyc1tdID0gewogCQkucmVhZF9zdGF0dXMJPSBtdjMzMTBfcmVhZF9z dGF0dXMsCiAJCS5nZXRfdHVuYWJsZQk9IG12MzMxMF9nZXRfdHVuYWJsZSwKIAkJLnNldF90dW5h YmxlCT0gbXYzMzEwX3NldF90dW5hYmxlLAorCQkucmVtb3ZlCQk9IG12MzMxMF9yZW1vdmUsCiAJ fSwKIH07CiAKLS0gCjIuMjYuMgoK ----Next_Part(Fri_Aug_14_18_36_07_2020_759)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_58.mbox" RnJvbSBiOTUxYzY3ZTM0ZGJhYWY0OThhZmUyMzAxODMxYzIxYjIzM2Y3OWU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIE9nbmVzcyA8am9obi5vZ25lc3NAbGludXRyb25peC5k ZT4KRGF0ZTogVGh1LCAxMyBBdWcgMjAyMCAyMTo0NToyNSArMDIwNgpTdWJqZWN0OiBbUEFUQ0gg MDEvMTVdIGFmX3BhY2tldDogVFBBQ0tFVF9WMzogZml4IGZpbGwgc3RhdHVzIHJ3bG9jayBpbWJh bGFuY2UKClsgVXBzdHJlYW0gY29tbWl0IDg4ZmQxY2I4MGRhYTIwYWYwNjNiY2U4MWUxZmFkMTRl OTQ1YThkYzQgXQoKQWZ0ZXIgQGJsa19maWxsX2luX3Byb2dfbG9jayBpcyBhY3F1aXJlZCB0aGVy ZSBpcyBhbiBlYXJseSBvdXQgdm5ldApzaXR1YXRpb24gdGhhdCBjYW4gb2NjdXIuIEluIHRoYXQg Y2FzZSwgdGhlIHJ3bG9jayBuZWVkcyB0byBiZQpyZWxlYXNlZC4KCkFsc28sIHNpbmNlIEBibGtf ZmlsbF9pbl9wcm9nX2xvY2sgaXMgb25seSBhY3F1aXJlZCB3aGVuIEB0cF92ZXJzaW9uCmlzIGV4 YWN0bHkgVFBBQ0tFVF9WMywgb25seSByZWxlYXNlIGl0IG9uIHRoYXQgZXhhY3QgY29uZGl0aW9u IGFzCndlbGwuCgpBbmQgZmluYWxseSwgYWRkIHNwYXJzZSBhbm5vdGF0aW9uIHNvIHRoYXQgaXQg aXMgY2xlYXJlciB0aGF0CnByYl9maWxsX2N1cnJfYmxvY2soKSBhbmQgcHJiX2NsZWFyX2Jsa19m aWxsX3N0YXR1cygpIGFyZSBhY3F1aXJpbmcKYW5kIHJlbGVhc2luZyBAYmxrX2ZpbGxfaW5fcHJv Z19sb2NrLCByZXNwZWN0aXZlbHkuIHNwYXJzZSBpcyBzdGlsbAp1bmFibGUgdG8gdW5kZXJzdGFu ZCB0aGUgYmFsYW5jZSwgYnV0IHRoZSB3YXJuaW5ncyBhcmUgbm93IG9uIGEKaGlnaGVyIGxldmVs IHRoYXQgbWFrZSBtb3JlIHNlbnNlLgoKRml4ZXM6IDYzMmNhNTBmMmNiZCAoImFmX3BhY2tldDog VFBBQ0tFVF9WMzogcmVwbGFjZSBidXN5LXdhaXQgbG9vcCIpClNpZ25lZC1vZmYtYnk6IEpvaG4g T2duZXNzIDxqb2huLm9nbmVzc0BsaW51dHJvbml4LmRlPgpSZXBvcnRlZC1ieToga2VybmVsIHRl c3Qgcm9ib3QgPGxrcEBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8 ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jIHwgOSArKysr KysrLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvbmV0L3BhY2tldC9hZl9wYWNrZXQuYyBiL25ldC9wYWNrZXQvYWZfcGFja2V0 LmMKaW5kZXggMjliZDQwNWFkYmJkLi4zMDFmNDFkNDkyOWIgMTAwNjQ0Ci0tLSBhL25ldC9wYWNr ZXQvYWZfcGFja2V0LmMKKysrIGIvbmV0L3BhY2tldC9hZl9wYWNrZXQuYwpAQCAtOTQyLDYgKzk0 Miw3IEBAIHN0YXRpYyBpbnQgcHJiX3F1ZXVlX2Zyb3plbihzdHJ1Y3QgdHBhY2tldF9rYmRxX2Nv cmUgKnBrYykKIH0KIAogc3RhdGljIHZvaWQgcHJiX2NsZWFyX2Jsa19maWxsX3N0YXR1cyhzdHJ1 Y3QgcGFja2V0X3JpbmdfYnVmZmVyICpyYikKKwlfX3JlbGVhc2VzKCZwa2MtPmJsa19maWxsX2lu X3Byb2dfbG9jaykKIHsKIAlzdHJ1Y3QgdHBhY2tldF9rYmRxX2NvcmUgKnBrYyAgPSBHRVRfUEJE UUNfRlJPTV9SQihyYik7CiAJYXRvbWljX2RlYygmcGtjLT5ibGtfZmlsbF9pbl9wcm9nKTsKQEAg LTk4OSw2ICs5OTAsNyBAQCBzdGF0aWMgdm9pZCBwcmJfZmlsbF9jdXJyX2Jsb2NrKGNoYXIgKmN1 cnIsCiAJCQkJc3RydWN0IHRwYWNrZXRfa2JkcV9jb3JlICpwa2MsCiAJCQkJc3RydWN0IHRwYWNr ZXRfYmxvY2tfZGVzYyAqcGJkLAogCQkJCXVuc2lnbmVkIGludCBsZW4pCisJX19hY3F1aXJlcygm cGtjLT5ibGtfZmlsbF9pbl9wcm9nX2xvY2spCiB7CiAJc3RydWN0IHRwYWNrZXQzX2hkciAqcHBk OwogCkBAIC0yMjg2LDggKzIyODgsMTEgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCWlmIChkb192bmV0ICYmCiAJ ICAgIHZpcnRpb19uZXRfaGRyX2Zyb21fc2tiKHNrYiwgaC5yYXcgKyBtYWNvZmYgLQogCQkJCSAg ICBzaXplb2Yoc3RydWN0IHZpcnRpb19uZXRfaGRyKSwKLQkJCQkgICAgdmlvX2xlKCksIHRydWUs IDApKQorCQkJCSAgICB2aW9fbGUoKSwgdHJ1ZSwgMCkpIHsKKwkJaWYgKHBvLT50cF92ZXJzaW9u ID09IFRQQUNLRVRfVjMpCisJCQlwcmJfY2xlYXJfYmxrX2ZpbGxfc3RhdHVzKCZwby0+cnhfcmlu Zyk7CiAJCWdvdG8gZHJvcF9uX2FjY291bnQ7CisJfQogCiAJaWYgKHBvLT50cF92ZXJzaW9uIDw9 IFRQQUNLRVRfVjIpIHsKIAkJcGFja2V0X2luY3JlbWVudF9yeF9oZWFkKHBvLCAmcG8tPnJ4X3Jp bmcpOwpAQCAtMjM5Myw3ICsyMzk4LDcgQEAgc3RhdGljIGludCB0cGFja2V0X3JjdihzdHJ1Y3Qg c2tfYnVmZiAqc2tiLCBzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAogCQlfX2NsZWFyX2JpdChzbG90 X2lkLCBwby0+cnhfcmluZy5yeF9vd25lcl9tYXApOwogCQlzcGluX3VubG9jaygmc2stPnNrX3Jl Y2VpdmVfcXVldWUubG9jayk7CiAJCXNrLT5za19kYXRhX3JlYWR5KHNrKTsKLQl9IGVsc2Ugewor CX0gZWxzZSBpZiAocG8tPnRwX3ZlcnNpb24gPT0gVFBBQ0tFVF9WMykgewogCQlwcmJfY2xlYXJf YmxrX2ZpbGxfc3RhdHVzKCZwby0+cnhfcmluZyk7CiAJfQogCi0tIAoyLjI2LjIKCgpGcm9tIGI1 Yjc3ZWE1OWRkYTAyN2E4NDI2ZWY4ODlmMzIxMjkyOGFhMTZkMDcgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFhpZSBIZSA8eGllLmhlLjAxNDFAZ21haWwuY29tPgpEYXRlOiBXZWQsIDUg QXVnIDIwMjAgMTg6NTA6NDAgLTA3MDAKU3ViamVjdDogW1BBVENIIDAyLzE1XSBkcml2ZXJzL25l dC93YW4vbGFwYmV0aGVyOiBBZGRlZCBuZWVkZWRfaGVhZHJvb20gYW5kIGEKIHNrYi0+bGVuIGNo ZWNrCgpbIFVwc3RyZWFtIGNvbW1pdCBjN2NhMDNjMjE2YWNiMTQ0NjZhNzEzZmVkZjFiOWYyYzI0 OTk0ZWYyIF0KCjEuIEFkZGVkIGEgc2tiLT5sZW4gY2hlY2sKClRoaXMgZHJpdmVyIGV4cGVjdHMg dXBwZXIgbGF5ZXJzIHRvIGluY2x1ZGUgYSBwc2V1ZG8gaGVhZGVyIG9mIDEgYnl0ZQp3aGVuIHBh c3NpbmcgZG93biBhIHNrYiBmb3IgdHJhbnNtaXNzaW9uLiBUaGlzIGRyaXZlciB3aWxsIHJlYWQg dGhpcwoxLWJ5dGUgaGVhZGVyLiBUaGlzIHBhdGNoIGFkZGVkIGEgc2tiLT5sZW4gY2hlY2sgYmVm b3JlIHJlYWRpbmcgdGhlCmhlYWRlciB0byBtYWtlIHN1cmUgdGhlIGhlYWRlciBleGlzdHMuCgoy LiBDaGFuZ2VkIHRvIHVzZSBuZWVkZWRfaGVhZHJvb20gaW5zdGVhZCBvZiBoYXJkX2hlYWRlcl9s ZW4gdG8gcmVxdWVzdApuZWNlc3NhcnkgaGVhZHJvb20gdG8gYmUgYWxsb2NhdGVkCgpJbiBuZXQv cGFja2V0L2FmX3BhY2tldC5jLCB0aGUgZnVuY3Rpb24gcGFja2V0X3NuZCBmaXJzdCByZXNlcnZl cyBhCmhlYWRyb29tIG9mIGxlbmd0aCAoZGV2LT5oYXJkX2hlYWRlcl9sZW4gKyBkZXYtPm5lZWRl ZF9oZWFkcm9vbSkuClRoZW4gaWYgdGhlIHNvY2tldCBpcyBhIFNPQ0tfREdSQU0gc29ja2V0LCBp dCBjYWxscyBkZXZfaGFyZF9oZWFkZXIsCndoaWNoIGNhbGxzIGRldi0+aGVhZGVyX29wcy0+Y3Jl YXRlLCB0byBjcmVhdGUgdGhlIGxpbmsgbGF5ZXIgaGVhZGVyLgpJZiB0aGUgc29ja2V0IGlzIGEg U09DS19SQVcgc29ja2V0LCBpdCAidW4tcmVzZXJ2ZXMiIGEgaGVhZHJvb20gb2YKbGVuZ3RoIChk ZXYtPmhhcmRfaGVhZGVyX2xlbiksIGFuZCBhc3N1bWVzIHRoZSB1c2VyIHRvIHByb3ZpZGUgdGhl CmFwcHJvcHJpYXRlIGxpbmsgbGF5ZXIgaGVhZGVyLgoKU28gYWNjb3JkaW5nIHRvIHRoZSBsb2dp YyBvZiBhZl9wYWNrZXQuYywgZGV2LT5oYXJkX2hlYWRlcl9sZW4gc2hvdWxkCmJlIHRoZSBsZW5n dGggb2YgdGhlIGhlYWRlciB0aGF0IHdvdWxkIGJlIGNyZWF0ZWQgYnkKZGV2LT5oZWFkZXJfb3Bz LT5jcmVhdGUuCgpIb3dldmVyLCB0aGlzIGRyaXZlciBkb2Vzbid0IHByb3ZpZGUgZGV2LT5oZWFk ZXJfb3BzLCBzbyBsb2dpY2FsbHkKZGV2LT5oYXJkX2hlYWRlcl9sZW4gc2hvdWxkIGJlIDAuCgpT byB3ZSBzaG91bGQgdXNlIGRldi0+bmVlZGVkX2hlYWRyb29tIGluc3RlYWQgb2YgZGV2LT5oYXJk X2hlYWRlcl9sZW4KdG8gcmVxdWVzdCBuZWNlc3NhcnkgaGVhZHJvb20gdG8gYmUgYWxsb2NhdGVk LgoKVGhpcyBjaGFuZ2UgZml4ZXMga2VybmVsIHBhbmljIHdoZW4gdGhpcyBkcml2ZXIgaXMgdXNl ZCB3aXRoIEFGX1BBQ0tFVApTT0NLX1JBVyBzb2NrZXRzLgoKQ2FsbCBzdGFjayB3aGVuIHBhbmlj OgoKWyAgMTY4LjM5OTE5N10gc2tidWZmOiBza2JfdW5kZXJfcGFuaWM6IHRleHQ6ZmZmZmZmZmY4 MTlkOTVmYiBsZW46MjAKcHV0OjE0IGhlYWQ6ZmZmZjg4ODI3MDRjMGEwMCBkYXRhOmZmZmY4ODgy NzA0YzA5ZmQgdGFpbDoweDExIGVuZDoweGMwCmRldjp2ZXRoMAouLi4KWyAgMTY4LjM5OTI1NV0g Q2FsbCBUcmFjZToKWyAgMTY4LjM5OTI1OV0gIHNrYl9wdXNoLmNvbGQrMHgxNC8weDI0ClsgIDE2 OC4zOTkyNjJdICBldGhfaGVhZGVyKzB4MmIvMHhjMApbICAxNjguMzk5MjY3XSAgbGFwYmV0aF9k YXRhX3RyYW5zbWl0KzB4OWEvMHhiMCBbbGFwYmV0aGVyXQpbICAxNjguMzk5Mjc1XSAgbGFwYl9k YXRhX3RyYW5zbWl0KzB4MjIvMHgyYyBbbGFwYl0KWyAgMTY4LjM5OTI3N10gIGxhcGJfdHJhbnNt aXRfYnVmZmVyKzB4NzEvMHhiMCBbbGFwYl0KWyAgMTY4LjM5OTI3OV0gIGxhcGJfa2ljaysweGUz LzB4MWMwIFtsYXBiXQpbICAxNjguMzk5MjgxXSAgbGFwYl9kYXRhX3JlcXVlc3QrMHg3Ni8weGMw IFtsYXBiXQpbICAxNjguMzk5MjgzXSAgbGFwYmV0aF94bWl0KzB4NTYvMHg5MCBbbGFwYmV0aGVy XQpbICAxNjguMzk5Mjg2XSAgZGV2X2hhcmRfc3RhcnRfeG1pdCsweDkxLzB4MWYwClsgIDE2OC4z OTkyODldICA/IGlycV9pbml0X3BlcmNwdV9pcnFzdGFjaysweGMwLzB4MTAwClsgIDE2OC4zOTky OTFdICBfX2Rldl9xdWV1ZV94bWl0KzB4NzIxLzB4OGUwClsgIDE2OC4zOTkyOTVdICA/IHBhY2tl dF9wYXJzZV9oZWFkZXJzLmlzcmEuMCsweGQyLzB4MTEwClsgIDE2OC4zOTkyOTddICBkZXZfcXVl dWVfeG1pdCsweDEwLzB4MjAKWyAgMTY4LjM5OTI5OF0gIHBhY2tldF9zZW5kbXNnKzB4YmYwLzB4 MTliMAouLi4uLi4KCkNjOiBXaWxsZW0gZGUgQnJ1aWpuIDx3aWxsZW1kZWJydWlqbi5rZXJuZWxA Z21haWwuY29tPgpDYzogTWFydGluIFNjaGlsbGVyIDxtc0BkZXYudGR0LmRlPgpDYzogQnJpYW4g Tm9ycmlzIDxicmlhbm5vcnJpc0BjaHJvbWl1bS5vcmc+ClNpZ25lZC1vZmYtYnk6IFhpZSBIZSA8 eGllLmhlLjAxNDFAZ21haWwuY29tPgpBY2tlZC1ieTogV2lsbGVtIGRlIEJydWlqbiA8d2lsbGVt YkBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVt bG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvd2FuL2xhcGJldGhlci5jIHwgMTAgKysrKysrKysr LQogMSBmaWxlIGNoYW5nZWQsIDkgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L3dhbi9sYXBiZXRoZXIuYyBiL2RyaXZlcnMvbmV0L3dhbi9sYXBi ZXRoZXIuYwppbmRleCBiMjg2ODQzMzcxOGYuLjFlYTE1ZjIxMjNlZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQvd2FuL2xhcGJldGhlci5jCisrKyBiL2RyaXZlcnMvbmV0L3dhbi9sYXBiZXRoZXIu YwpAQCAtMTU3LDYgKzE1NywxMiBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgbGFwYmV0aF94bWl0KHN0 cnVjdCBza19idWZmICpza2IsCiAJaWYgKCFuZXRpZl9ydW5uaW5nKGRldikpCiAJCWdvdG8gZHJv cDsKIAorCS8qIFRoZXJlIHNob3VsZCBiZSBhIHBzZXVkbyBoZWFkZXIgb2YgMSBieXRlIGFkZGVk IGJ5IHVwcGVyIGxheWVycy4KKwkgKiBDaGVjayB0byBtYWtlIHN1cmUgaXQgaXMgdGhlcmUgYmVm b3JlIHJlYWRpbmcgaXQuCisJICovCisJaWYgKHNrYi0+bGVuIDwgMSkKKwkJZ290byBkcm9wOwor CiAJc3dpdGNoIChza2ItPmRhdGFbMF0pIHsKIAljYXNlIFgyNV9JRkFDRV9EQVRBOgogCQlicmVh azsKQEAgLTMwNSw2ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBsYXBiZXRoX3NldHVwKHN0cnVjdCBu ZXRfZGV2aWNlICpkZXYpCiAJZGV2LT5uZXRkZXZfb3BzCSAgICAgPSAmbGFwYmV0aF9uZXRkZXZf b3BzOwogCWRldi0+bmVlZHNfZnJlZV9uZXRkZXYgPSB0cnVlOwogCWRldi0+dHlwZSAgICAgICAg ICAgID0gQVJQSFJEX1gyNTsKKwlkZXYtPmhhcmRfaGVhZGVyX2xlbiA9IDA7CiAJZGV2LT5tdHUg ICAgICAgICAgICAgPSAxMDAwOwogCWRldi0+YWRkcl9sZW4gICAgICAgID0gMDsKIH0KQEAgLTMz MSw3ICszMzgsOCBAQCBzdGF0aWMgaW50IGxhcGJldGhfbmV3X2RldmljZShzdHJ1Y3QgbmV0X2Rl dmljZSAqZGV2KQogCSAqIHRoZW4gdGhpcyBkcml2ZXIgcHJlcGVuZHMgYSBsZW5ndGggZmllbGQg b2YgMiBieXRlcywKIAkgKiB0aGVuIHRoZSB1bmRlcmx5aW5nIEV0aGVybmV0IGRldmljZSBwcmVw ZW5kcyBpdHMgb3duIGhlYWRlci4KIAkgKi8KLQluZGV2LT5oYXJkX2hlYWRlcl9sZW4gPSAtMSAr IDMgKyAyICsgZGV2LT5oYXJkX2hlYWRlcl9sZW47CisJbmRldi0+bmVlZGVkX2hlYWRyb29tID0g LTEgKyAzICsgMiArIGRldi0+aGFyZF9oZWFkZXJfbGVuCisJCQkJCSAgICsgZGV2LT5uZWVkZWRf aGVhZHJvb207CiAKIAlsYXBiZXRoID0gbmV0ZGV2X3ByaXYobmRldik7CiAJbGFwYmV0aC0+YXhk ZXYgPSBuZGV2OwotLSAKMi4yNi4yCgoKRnJvbSBiYzhjYjI1MGE3MzE2NjVhODA2ZGE5MzgxNWE1 NGM0ZTI5M2Y0NmE3IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNaWFvaGUgTGluIDxs aW5taWFvaGVAaHVhd2VpLmNvbT4KRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAwODoxNjo1OCAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggMDMvMTVdIG5ldDogRml4IHBvdGVudGlhbCBtZW1vcnkgbGVhayBp biBwcm90b19yZWdpc3RlcigpCgpbIFVwc3RyZWFtIGNvbW1pdCAwZjU5MDdhZjM5MTM3ZjgxODNl ZDUzNmFhYTAwZjMyMmQ3MzY1MTMwIF0KCklmIHdlIGZhaWxlZCB0byBhc3NpZ24gcHJvdG8gaWR4 LCB3ZSBmcmVlIHRoZSB0d3NrX3NsYWJfbmFtZSBidXQgZm9yZ2V0IHRvCmZyZWUgdGhlIHR3c2tf c2xhYi4gQWRkIGEgaGVscGVyIGZ1bmN0aW9uIHR3X3Byb3RfY2xlYW51cCgpIHRvIGZyZWUgdGhl c2UKdG9nZXRoZXIgYW5kIGFsc28gdXNlIHRoaXMgaGVscGVyIGZ1bmN0aW9uIGluIHByb3RvX3Vu cmVnaXN0ZXIoKS4KCkZpeGVzOiBiNDVjZTMyMTM1ZDEgKCJzb2NrOiBmaXggcG90ZW50aWFsIG1l bW9yeSBsZWFrIGluIHByb3RvX3JlZ2lzdGVyKCkiKQpTaWduZWQtb2ZmLWJ5OiBNaWFvaGUgTGlu IDxsaW5taWFvaGVAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9jb3JlL3NvY2suYyB8IDI1ICsrKysrKysrKysr KysrKy0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBpbnNlcnRpb25zKCspLCAxMCBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvY29yZS9zb2NrLmMgYi9uZXQvY29yZS9zb2NrLmMK aW5kZXggMmU1Yjc4NzBlNWQzLi5hMTRhOGNiNmNjY2EgMTAwNjQ0Ci0tLSBhL25ldC9jb3JlL3Nv Y2suYworKysgYi9uZXQvY29yZS9zb2NrLmMKQEAgLTM0NDMsNiArMzQ0MywxNiBAQCBzdGF0aWMg dm9pZCBzb2NrX2ludXNlX2FkZChzdHJ1Y3QgbmV0ICpuZXQsIGludCB2YWwpCiB9CiAjZW5kaWYK IAorc3RhdGljIHZvaWQgdHdfcHJvdF9jbGVhbnVwKHN0cnVjdCB0aW1ld2FpdF9zb2NrX29wcyAq dHdza19wcm90KQoreworCWlmICghdHdza19wcm90KQorCQlyZXR1cm47CisJa2ZyZWUodHdza19w cm90LT50d3NrX3NsYWJfbmFtZSk7CisJdHdza19wcm90LT50d3NrX3NsYWJfbmFtZSA9IE5VTEw7 CisJa21lbV9jYWNoZV9kZXN0cm95KHR3c2tfcHJvdC0+dHdza19zbGFiKTsKKwl0d3NrX3Byb3Qt PnR3c2tfc2xhYiA9IE5VTEw7Cit9CisKIHN0YXRpYyB2b2lkIHJlcV9wcm90X2NsZWFudXAoc3Ry dWN0IHJlcXVlc3Rfc29ja19vcHMgKnJza19wcm90KQogewogCWlmICghcnNrX3Byb3QpCkBAIC0z NTEzLDcgKzM1MjMsNyBAQCBpbnQgcHJvdG9fcmVnaXN0ZXIoc3RydWN0IHByb3RvICpwcm90LCBp bnQgYWxsb2Nfc2xhYikKIAkJCQkJCSAgcHJvdC0+c2xhYl9mbGFncywKIAkJCQkJCSAgTlVMTCk7 CiAJCQlpZiAocHJvdC0+dHdza19wcm90LT50d3NrX3NsYWIgPT0gTlVMTCkKLQkJCQlnb3RvIG91 dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYl9uYW1lOworCQkJCWdvdG8gb3V0X2ZyZWVfdGltZXdh aXRfc29ja19zbGFiOwogCQl9CiAJfQogCkBAIC0zNTIxLDE1ICszNTMxLDE1IEBAIGludCBwcm90 b19yZWdpc3RlcihzdHJ1Y3QgcHJvdG8gKnByb3QsIGludCBhbGxvY19zbGFiKQogCXJldCA9IGFz c2lnbl9wcm90b19pZHgocHJvdCk7CiAJaWYgKHJldCkgewogCQltdXRleF91bmxvY2soJnByb3Rv X2xpc3RfbXV0ZXgpOwotCQlnb3RvIG91dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYl9uYW1lOwor CQlnb3RvIG91dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYjsKIAl9CiAJbGlzdF9hZGQoJnByb3Qt Pm5vZGUsICZwcm90b19saXN0KTsKIAltdXRleF91bmxvY2soJnByb3RvX2xpc3RfbXV0ZXgpOwog CXJldHVybiByZXQ7CiAKLW91dF9mcmVlX3RpbWV3YWl0X3NvY2tfc2xhYl9uYW1lOgorb3V0X2Zy ZWVfdGltZXdhaXRfc29ja19zbGFiOgogCWlmIChhbGxvY19zbGFiICYmIHByb3QtPnR3c2tfcHJv dCkKLQkJa2ZyZWUocHJvdC0+dHdza19wcm90LT50d3NrX3NsYWJfbmFtZSk7CisJCXR3X3Byb3Rf Y2xlYW51cChwcm90LT50d3NrX3Byb3QpOwogb3V0X2ZyZWVfcmVxdWVzdF9zb2NrX3NsYWI6CiAJ aWYgKGFsbG9jX3NsYWIpIHsKIAkJcmVxX3Byb3RfY2xlYW51cChwcm90LT5yc2tfcHJvdCk7CkBA IC0zNTUzLDEyICszNTYzLDcgQEAgdm9pZCBwcm90b191bnJlZ2lzdGVyKHN0cnVjdCBwcm90byAq cHJvdCkKIAlwcm90LT5zbGFiID0gTlVMTDsKIAogCXJlcV9wcm90X2NsZWFudXAocHJvdC0+cnNr X3Byb3QpOwotCi0JaWYgKHByb3QtPnR3c2tfcHJvdCAhPSBOVUxMICYmIHByb3QtPnR3c2tfcHJv dC0+dHdza19zbGFiICE9IE5VTEwpIHsKLQkJa21lbV9jYWNoZV9kZXN0cm95KHByb3QtPnR3c2tf cHJvdC0+dHdza19zbGFiKTsKLQkJa2ZyZWUocHJvdC0+dHdza19wcm90LT50d3NrX3NsYWJfbmFt ZSk7Ci0JCXByb3QtPnR3c2tfcHJvdC0+dHdza19zbGFiID0gTlVMTDsKLQl9CisJdHdfcHJvdF9j bGVhbnVwKHByb3QtPnR3c2tfcHJvdCk7CiB9CiBFWFBPUlRfU1lNQk9MKHByb3RvX3VucmVnaXN0 ZXIpOwogCi0tIAoyLjI2LjIKCgpGcm9tIDFhZGU0NGU2MTRiMDFjMGM4MWNhNmU3ODE4ZWE0N2Y2 MzZlNDUwMGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFFpbmd5dSBMaSA8aWVhdG11 dHRvbmNodWFuQGdtYWlsLmNvbT4KRGF0ZTogTW9uLCAxMCBBdWcgMjAyMCAwOTo1MTowMCArMDgw MApTdWJqZWN0OiBbUEFUQ0ggMDQvMTVdIG5ldC9uZmMvcmF3c29jay5jOiBhZGQgQ0FQX05FVF9S QVcgY2hlY2suCgpbIFVwc3RyZWFtIGNvbW1pdCAyNjg5NmYwMTQ2N2EyODY1MWY3YTUzNjE0M2Zl NWFjODQ0OWQ0MDQxIF0KCldoZW4gY3JlYXRpbmcgYSByYXcgQUZfTkZDIHNvY2tldCwgQ0FQX05F VF9SQVcgbmVlZHMgdG8gYmUgY2hlY2tlZCBmaXJzdC4KClNpZ25lZC1vZmYtYnk6IFFpbmd5dSBM aSA8aWVhdG11dHRvbmNodWFuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWls bGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZmMvcmF3c29jay5jIHwgNyArKysr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL25ldC9uZmMvcmF3c29jay5jIGIvbmV0L25mYy9yYXdzb2NrLmMKaW5kZXggYmE1 ZmZkM2JhZGQzLi5iNWM4NjdmZTMyMzIgMTAwNjQ0Ci0tLSBhL25ldC9uZmMvcmF3c29jay5jCisr KyBiL25ldC9uZmMvcmF3c29jay5jCkBAIC0zMzIsMTAgKzMzMiwxMyBAQCBzdGF0aWMgaW50IHJh d3NvY2tfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2tldCAqc29jaywKIAlpZiAo KHNvY2stPnR5cGUgIT0gU09DS19TRVFQQUNLRVQpICYmIChzb2NrLT50eXBlICE9IFNPQ0tfUkFX KSkKIAkJcmV0dXJuIC1FU09DS1ROT1NVUFBPUlQ7CiAKLQlpZiAoc29jay0+dHlwZSA9PSBTT0NL X1JBVykKKwlpZiAoc29jay0+dHlwZSA9PSBTT0NLX1JBVykgeworCQlpZiAoIWNhcGFibGUoQ0FQ X05FVF9SQVcpKQorCQkJcmV0dXJuIC1FUEVSTTsKIAkJc29jay0+b3BzID0gJnJhd3NvY2tfcmF3 X29wczsKLQllbHNlCisJfSBlbHNlIHsKIAkJc29jay0+b3BzID0gJnJhd3NvY2tfb3BzOworCX0K IAogCXNrID0gc2tfYWxsb2MobmV0LCBQRl9ORkMsIEdGUF9BVE9NSUMsIG5mY19wcm90by0+cHJv dG8sIGtlcm4pOwogCWlmICghc2spCi0tIAoyLjI2LjIKCgpGcm9tIDhmNDg5YzJhMGNmZmU5OGFl NzAzMDUxNWJkOTg5Mjg0YTI2NTI4MGIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEpv aGFuIEhvdm9sZCA8am9oYW5Aa2VybmVsLm9yZz4KRGF0ZTogVGh1LCA2IEF1ZyAyMDIwIDE3OjM3 OjUzICswMjAwClN1YmplY3Q6IFtQQVRDSCAwNS8xNV0gbmV0OiBwaHk6IGZpeCBtZW1vcnkgbGVh ayBpbiBkZXZpY2UtY3JlYXRlIGVycm9yIHBhdGgKClsgVXBzdHJlYW0gY29tbWl0IGQwMmNiYzQ2 MTM2MTA1Y2Y4NmY4NGFjMzU1ZTE2ZjA0Njk2ZjUzOGQgXQoKQSByZWNlbnQgY29tbWl0IGludHJv ZHVjZWQgYSBsYXRlIGVycm9yIHBhdGggaW4gcGh5X2RldmljZV9jcmVhdGUoKQp3aGljaCBmYWls cyB0byByZWxlYXNlIHRoZSBkZXZpY2UgbmFtZSBhbGxvY2F0ZWQgYnkgZGV2X3NldF9uYW1lKCku CgpGaXhlczogMTNkMGFiNjc1MGIyICgibmV0OiBwaHk6IGNoZWNrIHJldHVybiBjb2RlIHdoZW4g cmVxdWVzdGluZyBQSFkgZHJpdmVyIG1vZHVsZSIpCkNjOiBIZWluZXIgS2FsbHdlaXQgPGhrYWxs d2VpdDFAZ21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBKb2hhbiBIb3ZvbGQgPGpvaGFuQGtlcm5l bC5vcmc+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5l dD4KLS0tCiBkcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIHwgOCArKysrLS0tLQogMSBmaWxl IGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jIGIvZHJpdmVycy9uZXQvcGh5L3BoeV9kZXZpY2Uu YwppbmRleCBiNDk3OGM1ZmIyY2EuLjk4MzY5NDMwYTNiZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9u ZXQvcGh5L3BoeV9kZXZpY2UuYworKysgYi9kcml2ZXJzL25ldC9waHkvcGh5X2RldmljZS5jCkBA IC02MTYsNyArNjE2LDkgQEAgc3RydWN0IHBoeV9kZXZpY2UgKnBoeV9kZXZpY2VfY3JlYXRlKHN0 cnVjdCBtaWlfYnVzICpidXMsIGludCBhZGRyLCB1MzIgcGh5X2lkLAogCWlmIChjNDVfaWRzKQog CQlkZXYtPmM0NV9pZHMgPSAqYzQ1X2lkczsKIAlkZXYtPmlycSA9IGJ1cy0+aXJxW2FkZHJdOwor CiAJZGV2X3NldF9uYW1lKCZtZGlvZGV2LT5kZXYsIFBIWV9JRF9GTVQsIGJ1cy0+aWQsIGFkZHIp OworCWRldmljZV9pbml0aWFsaXplKCZtZGlvZGV2LT5kZXYpOwogCiAJZGV2LT5zdGF0ZSA9IFBI WV9ET1dOOwogCkBAIC02NTAsMTAgKzY1Miw4IEBAIHN0cnVjdCBwaHlfZGV2aWNlICpwaHlfZGV2 aWNlX2NyZWF0ZShzdHJ1Y3QgbWlpX2J1cyAqYnVzLCBpbnQgYWRkciwgdTMyIHBoeV9pZCwKIAkJ cmV0ID0gcGh5X3JlcXVlc3RfZHJpdmVyX21vZHVsZShkZXYsIHBoeV9pZCk7CiAJfQogCi0JaWYg KCFyZXQpIHsKLQkJZGV2aWNlX2luaXRpYWxpemUoJm1kaW9kZXYtPmRldik7Ci0JfSBlbHNlIHsK LQkJa2ZyZWUoZGV2KTsKKwlpZiAocmV0KSB7CisJCXB1dF9kZXZpY2UoJm1kaW9kZXYtPmRldik7 CiAJCWRldiA9IEVSUl9QVFIocmV0KTsKIAl9CiAKLS0gCjIuMjYuMgoKCkZyb20gYTkxZTI4NTg3 NTljY2E3OTI3MDNhY2FiMTg4YjBmNDRjNzMyZDVhMCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogTWlhb2hlIExpbiA8bGlubWlhb2hlQGh1YXdlaS5jb20+CkRhdGU6IFRodSwgNiBBdWcg MjAyMCAxOTo1MzoxNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMTVdIG5ldDogU2V0IGZwdXRf bmVlZGVkIGlmZiBGRFBVVF9GUFVUIGlzIHNldAoKWyBVcHN0cmVhbSBjb21taXQgY2U3ODdhNWEw NzRhODZmNzZmNWQzZmQ4MDRmYTc4ZTAxYmZiOWU4OSBdCgpXZSBzaG91bGQgZnB1dCgpIGZpbGUg aWZmIEZEUFVUX0ZQVVQgaXMgc2V0LiBTbyB3ZSBzaG91bGQgc2V0IGZwdXRfbmVlZGVkCmFjY29y ZGluZ2x5LgoKRml4ZXM6IDAwZTE4OGVmNmE3ZSAoInNvY2tmZF9sb29rdXBfbGlnaHQoKTogc3dp dGNoIHRvIGZkZ2V0XldeV2F3YXkgZnJvbSBmZ2V0X2xpZ2h0IikKU2lnbmVkLW9mZi1ieTogTWlh b2hlIExpbiA8bGlubWlhb2hlQGh1YXdlaS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1p bGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvc29ja2V0LmMgfCAyICstCiAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9u ZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggOTc2NDI2ZDAzZjA5Li40ODFmZDVmMjU2 NjkgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9uZXQvc29ja2V0LmMKQEAgLTUwMCw3 ICs1MDAsNyBAQCBzdGF0aWMgc3RydWN0IHNvY2tldCAqc29ja2ZkX2xvb2t1cF9saWdodChpbnQg ZmQsIGludCAqZXJyLCBpbnQgKmZwdXRfbmVlZGVkKQogCWlmIChmLmZpbGUpIHsKIAkJc29jayA9 IHNvY2tfZnJvbV9maWxlKGYuZmlsZSwgZXJyKTsKIAkJaWYgKGxpa2VseShzb2NrKSkgewotCQkJ KmZwdXRfbmVlZGVkID0gZi5mbGFnczsKKwkJCSpmcHV0X25lZWRlZCA9IGYuZmxhZ3MgJiBGRFBV VF9GUFVUOwogCQkJcmV0dXJuIHNvY2s7CiAJCX0KIAkJZmRwdXQoZik7Ci0tIAoyLjI2LjIKCgpG cm9tIDZmZGU0Zjc1Y2NmN2Y4ZTNkYmNjYmJkNWNlMjcxM2Y2YzgxOTg2ZDQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IElyYSBXZWlueSA8aXJhLndlaW55QGludGVsLmNvbT4KRGF0ZTog TW9uLCAxMCBBdWcgMjAyMCAxNzowMjo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTVdIG5l dC90bHM6IEZpeCBrbWFwIHVzYWdlCgpbIFVwc3RyZWFtIGNvbW1pdCBiMDZjMTlkOWY4MjdmNjc0 MzEyMjc5NTU3MGJmYzBjNzJkYjQ4MmIwIF0KCldoZW4gTVNHX09PQiBpcyBzcGVjaWZpZWQgdG8g dGxzX2RldmljZV9zZW5kcGFnZSgpIHRoZSBtYXBwZWQgcGFnZSBpcwpuZXZlciB1bm1hcHBlZC4K CkhvbGQgb2ZmIG1hcHBpbmcgdGhlIHBhZ2UgdW50aWwgYWZ0ZXIgdGhlIGZsYWdzIGFyZSBjaGVj a2VkIGFuZCB0aGUgcGFnZQppcyBhY3R1YWxseSBuZWVkZWQuCgpGaXhlczogZThmNjk3OTk4MTBj ICgibmV0L3RsczogQWRkIGdlbmVyaWMgTklDIG9mZmxvYWQgaW5mcmFzdHJ1Y3R1cmUiKQpTaWdu ZWQtb2ZmLWJ5OiBJcmEgV2VpbnkgPGlyYS53ZWlueUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBK YWt1YiBLaWNpbnNraSA8a3ViYUBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBN aWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3Rscy90bHNfZGV2aWNlLmMgfCAz ICsrLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlm ZiAtLWdpdCBhL25ldC90bHMvdGxzX2RldmljZS5jIGIvbmV0L3Rscy90bHNfZGV2aWNlLmMKaW5k ZXggMGU1NWY4MzY1Y2UyLi4wY2JhZDU2NmYyODEgMTAwNjQ0Ci0tLSBhL25ldC90bHMvdGxzX2Rl dmljZS5jCisrKyBiL25ldC90bHMvdGxzX2RldmljZS5jCkBAIC01NjEsNyArNTYxLDcgQEAgaW50 IHRsc19kZXZpY2Vfc2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAqcGFnZSwK IHsKIAlzdHJ1Y3QgdGxzX2NvbnRleHQgKnRsc19jdHggPSB0bHNfZ2V0X2N0eChzayk7CiAJc3Ry dWN0IGlvdl9pdGVyCW1zZ19pdGVyOwotCWNoYXIgKmthZGRyID0ga21hcChwYWdlKTsKKwljaGFy ICprYWRkcjsKIAlzdHJ1Y3Qga3ZlYyBpb3Y7CiAJaW50IHJjOwogCkBAIC01NzYsNiArNTc2LDcg QEAgaW50IHRsc19kZXZpY2Vfc2VuZHBhZ2Uoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3QgcGFnZSAq cGFnZSwKIAkJZ290byBvdXQ7CiAJfQogCisJa2FkZHIgPSBrbWFwKHBhZ2UpOwogCWlvdi5pb3Zf YmFzZSA9IGthZGRyICsgb2Zmc2V0OwogCWlvdi5pb3ZfbGVuID0gc2l6ZTsKIAlpb3ZfaXRlcl9r dmVjKCZtc2dfaXRlciwgV1JJVEUsICZpb3YsIDEsIHNpemUpOwotLSAKMi4yNi4yCgoKRnJvbSA0 NTFlNjdhMTJjM2VkYmZhNzNlZjBmN2Q4YzU0OGNiN2E3YTU2Y2NiIE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiBKYXNvbiBCYXJvbiA8amJhcm9uQGFrYW1haS5jb20+CkRhdGU6IE1vbiwg MTAgQXVnIDIwMjAgMTM6Mzg6MzkgLTA0MDAKU3ViamVjdDogW1BBVENIIDA4LzE1XSB0Y3A6IGNv cnJlY3QgcmVhZCBvZiBURk8ga2V5cyBvbiBiaWcgZW5kaWFuIHN5c3RlbXMKClsgVXBzdHJlYW0g Y29tbWl0IGYxOTAwOGU2NzYzNjZjNDRlOTI0MWFmNTdmMzMxYjZjNmVkZjk1NTIgXQoKV2hlbiBU Rk8ga2V5cyBhcmUgcmVhZCBiYWNrIG9uIGJpZyBlbmRpYW4gc3lzdGVtcyBlaXRoZXIgdmlhIHRo ZSBnbG9iYWwKc3lzY3RsIGludGVyZmFjZSBvciB2aWEgZ2V0c29ja29wdCgpIHVzaW5nIFRDUF9G QVNUT1BFTl9LRVksIHRoZSB2YWx1ZXMKZG9uJ3QgbWF0Y2ggd2hhdCB3YXMgd3JpdHRlbi4KCkZv ciBleGFtcGxlLCBvbiBzMzkweDoKCiMgZWNobyAiMS0yLTMtNCIgPiAvcHJvYy9zeXMvbmV0L2lw djQvdGNwX2Zhc3RvcGVuX2tleQojIGNhdCAvcHJvYy9zeXMvbmV0L2lwdjQvdGNwX2Zhc3RvcGVu X2tleQowMjAwMDAwMC0wMTAwMDAwMC0wNDAwMDAwMC0wMzAwMDAwMAoKSW5zdGVhZCBvZjoKCiMg Y2F0IC9wcm9jL3N5cy9uZXQvaXB2NC90Y3BfZmFzdG9wZW5fa2V5CjAwMDAwMDAxLTAwMDAwMDAy LTAwMDAwMDAzLTAwMDAwMDA0CgpGaXggdGhpcyBieSBjb252ZXJ0aW5nIHRvIHRoZSBjb3JyZWN0 IGVuZGlhbm5lc3Mgb24gcmVhZC4gVGhpcyB3YXMKcmVwb3J0ZWQgYnkgQ29saW4gSWFuIEtpbmcg d2hlbiBydW5uaW5nIHRoZSAndGNwX2Zhc3RvcGVuX2JhY2t1cF9rZXknIG5ldApzZWxmdGVzdCBv biBzMzkweCwgd2hpY2ggZGVwZW5kcyBvbiB0aGUgcmVhZCB2YWx1ZSBtYXRjaGluZyB3aGF0IHdh cwp3cml0dGVuLiBJJ3ZlIGNvbmZpcm1lZCB0aGF0IHRoZSB0ZXN0IG5vdyBwYXNzZXMgb24gYmln IGFuZCBsaXR0bGUgZW5kaWFuCnN5c3RlbXMuCgpTaWduZWQtb2ZmLWJ5OiBKYXNvbiBCYXJvbiA8 amJhcm9uQGFrYW1haS5jb20+CkZpeGVzOiA0MzhhYzg4MDA5YmMgKCJuZXQ6IGZhc3RvcGVuOiBy b2J1c3RuZXNzIGFuZCBlbmRpYW5uZXNzIGZpeGVzIGZvciBTaXBIYXNoIikKQ2M6IEFyZCBCaWVz aGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPgpDYzogRXJpYyBEdW1hemV0IDxlZHVt YXpldEBnb29nbGUuY29tPgpSZXBvcnRlZC1hbmQtdGVzdGVkLWJ5OiBDb2xpbiBJYW4gS2luZyA8 Y29saW4ua2luZ0BjYW5vbmljYWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIg PGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogaW5jbHVkZS9uZXQvdGNwLmggICAgICAgICAgfCAg MiArKwogbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgfCAxNiArKysrLS0tLS0tLS0tLS0tCiBu ZXQvaXB2NC90Y3AuYyAgICAgICAgICAgICB8IDE2ICsrKystLS0tLS0tLS0tLS0KIG5ldC9pcHY0 L3RjcF9mYXN0b3Blbi5jICAgIHwgMjMgKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9uZXQvdGNwLmggYi9pbmNsdWRlL25ldC90Y3AuaAppbmRleCA0ZGU5NDg1ZjczZDku LjBjMWQyODQzYTZkNyAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvdGNwLmgKKysrIGIvaW5jbHVk ZS9uZXQvdGNwLmgKQEAgLTE2NjQsNiArMTY2NCw4IEBAIHZvaWQgdGNwX2Zhc3RvcGVuX2Rlc3Ry b3lfY2lwaGVyKHN0cnVjdCBzb2NrICpzayk7CiB2b2lkIHRjcF9mYXN0b3Blbl9jdHhfZGVzdHJv eShzdHJ1Y3QgbmV0ICpuZXQpOwogaW50IHRjcF9mYXN0b3Blbl9yZXNldF9jaXBoZXIoc3RydWN0 IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAqc2ssCiAJCQkgICAgICB2b2lkICpwcmltYXJ5X2tleSwg dm9pZCAqYmFja3VwX2tleSk7CitpbnQgdGNwX2Zhc3RvcGVuX2dldF9jaXBoZXIoc3RydWN0IG5l dCAqbmV0LCBzdHJ1Y3QgaW5ldF9jb25uZWN0aW9uX3NvY2sgKmljc2ssCisJCQkgICAgdTY0ICpr ZXkpOwogdm9pZCB0Y3BfZmFzdG9wZW5fYWRkX3NrYihzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBz a19idWZmICpza2IpOwogc3RydWN0IHNvY2sgKnRjcF90cnlfZmFzdG9wZW4oc3RydWN0IHNvY2sg KnNrLCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogCQkJICAgICAgc3RydWN0IHJlcXVlc3Rfc29jayAq cmVxLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMgYi9uZXQvaXB2NC9z eXNjdGxfbmV0X2lwdjQuYwppbmRleCA1NjUzZTNiMDExYmYuLjU0MDIzYTQ2ZGIwNCAxMDA2NDQK LS0tIGEvbmV0L2lwdjQvc3lzY3RsX25ldF9pcHY0LmMKKysrIGIvbmV0L2lwdjQvc3lzY3RsX25l dF9pcHY0LmMKQEAgLTMwMSwyNCArMzAxLDE2IEBAIHN0YXRpYyBpbnQgcHJvY190Y3BfZmFzdG9w ZW5fa2V5KHN0cnVjdCBjdGxfdGFibGUgKnRhYmxlLCBpbnQgd3JpdGUsCiAJc3RydWN0IGN0bF90 YWJsZSB0YmwgPSB7IC5tYXhsZW4gPSAoKFRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIICoKIAkJCQkJ ICAgIDIgKiBUQ1BfRkFTVE9QRU5fS0VZX01BWCkgKwogCQkJCQkgICAgKFRDUF9GQVNUT1BFTl9L RVlfTUFYICogNSkpIH07Ci0Jc3RydWN0IHRjcF9mYXN0b3Blbl9jb250ZXh0ICpjdHg7Ci0JdTMy IHVzZXJfa2V5W1RDUF9GQVNUT1BFTl9LRVlfTUFYICogNF07Ci0JX19sZTMyIGtleVtUQ1BfRkFT VE9QRU5fS0VZX01BWCAqIDRdOworCXUzMiB1c2VyX2tleVtUQ1BfRkFTVE9QRU5fS0VZX0JVRl9M RU5HVEggLyBzaXplb2YodTMyKV07CisJX19sZTMyIGtleVtUQ1BfRkFTVE9QRU5fS0VZX0JVRl9M RU5HVEggLyBzaXplb2YoX19sZTMyKV07CiAJY2hhciAqYmFja3VwX2RhdGE7Ci0JaW50IHJldCwg aSA9IDAsIG9mZiA9IDAsIG5fa2V5cyA9IDA7CisJaW50IHJldCwgaSA9IDAsIG9mZiA9IDAsIG5f a2V5czsKIAogCXRibC5kYXRhID0ga21hbGxvYyh0YmwubWF4bGVuLCBHRlBfS0VSTkVMKTsKIAlp ZiAoIXRibC5kYXRhKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCXJjdV9yZWFkX2xvY2soKTsKLQlj dHggPSByY3VfZGVyZWZlcmVuY2UobmV0LT5pcHY0LnRjcF9mYXN0b3Blbl9jdHgpOwotCWlmIChj dHgpIHsKLQkJbl9rZXlzID0gdGNwX2Zhc3RvcGVuX2NvbnRleHRfbGVuKGN0eCk7Ci0JCW1lbWNw eSgma2V5WzBdLCAmY3R4LT5rZXlbMF0sIFRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIICogbl9rZXlz KTsKLQl9Ci0JcmN1X3JlYWRfdW5sb2NrKCk7Ci0KKwluX2tleXMgPSB0Y3BfZmFzdG9wZW5fZ2V0 X2NpcGhlcihuZXQsIE5VTEwsICh1NjQgKilrZXkpOwogCWlmICghbl9rZXlzKSB7CiAJCW1lbXNl dCgma2V5WzBdLCAwLCBUQ1BfRkFTVE9QRU5fS0VZX0xFTkdUSCk7CiAJCW5fa2V5cyA9IDE7CmRp ZmYgLS1naXQgYS9uZXQvaXB2NC90Y3AuYyBiL25ldC9pcHY0L3RjcC5jCmluZGV4IDZmMGNhZjlh ODY2ZC4uMzBjMTE0MjU4NGIxIDEwMDY0NAotLS0gYS9uZXQvaXB2NC90Y3AuYworKysgYi9uZXQv aXB2NC90Y3AuYwpAQCAtMzY5NCwyMiArMzY5NCwxNCBAQCBzdGF0aWMgaW50IGRvX3RjcF9nZXRz b2Nrb3B0KHN0cnVjdCBzb2NrICpzaywgaW50IGxldmVsLAogCQlyZXR1cm4gMDsKIAogCWNhc2Ug VENQX0ZBU1RPUEVOX0tFWTogewotCQlfX3U4IGtleVtUQ1BfRkFTVE9QRU5fS0VZX0JVRl9MRU5H VEhdOwotCQlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2NvbnRleHQgKmN0eDsKLQkJdW5zaWduZWQgaW50 IGtleV9sZW4gPSAwOworCQl1NjQga2V5W1RDUF9GQVNUT1BFTl9LRVlfQlVGX0xFTkdUSCAvIHNp emVvZih1NjQpXTsKKwkJdW5zaWduZWQgaW50IGtleV9sZW47CiAKIAkJaWYgKGdldF91c2VyKGxl biwgb3B0bGVuKSkKIAkJCXJldHVybiAtRUZBVUxUOwogCi0JCXJjdV9yZWFkX2xvY2soKTsKLQkJ Y3R4ID0gcmN1X2RlcmVmZXJlbmNlKGljc2stPmljc2tfYWNjZXB0X3F1ZXVlLmZhc3RvcGVucS5j dHgpOwotCQlpZiAoY3R4KSB7Ci0JCQlrZXlfbGVuID0gdGNwX2Zhc3RvcGVuX2NvbnRleHRfbGVu KGN0eCkgKgotCQkJCQlUQ1BfRkFTVE9QRU5fS0VZX0xFTkdUSDsKLQkJCW1lbWNweSgma2V5WzBd LCAmY3R4LT5rZXlbMF0sIGtleV9sZW4pOwotCQl9Ci0JCXJjdV9yZWFkX3VubG9jaygpOwotCisJ CWtleV9sZW4gPSB0Y3BfZmFzdG9wZW5fZ2V0X2NpcGhlcihuZXQsIGljc2ssIGtleSkgKgorCQkJ CVRDUF9GQVNUT1BFTl9LRVlfTEVOR1RIOwogCQlsZW4gPSBtaW5fdCh1bnNpZ25lZCBpbnQsIGxl biwga2V5X2xlbik7CiAJCWlmIChwdXRfdXNlcihsZW4sIG9wdGxlbikpCiAJCQlyZXR1cm4gLUVG QVVMVDsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jIGIvbmV0L2lwdjQvdGNw X2Zhc3RvcGVuLmMKaW5kZXggMTlhZDk1ODZjNzIwLi4xYmI4NTgyMWYxZTYgMTAwNjQ0Ci0tLSBh L25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCisrKyBiL25ldC9pcHY0L3RjcF9mYXN0b3Blbi5jCkBA IC0xMDgsNiArMTA4LDI5IEBAIGludCB0Y3BfZmFzdG9wZW5fcmVzZXRfY2lwaGVyKHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLAogCXJldHVybiBlcnI7CiB9CiAKK2ludCB0Y3BfZmFz dG9wZW5fZ2V0X2NpcGhlcihzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBpbmV0X2Nvbm5lY3Rpb25f c29jayAqaWNzaywKKwkJCSAgICB1NjQgKmtleSkKK3sKKwlzdHJ1Y3QgdGNwX2Zhc3RvcGVuX2Nv bnRleHQgKmN0eDsKKwlpbnQgbl9rZXlzID0gMCwgaTsKKworCXJjdV9yZWFkX2xvY2soKTsKKwlp ZiAoaWNzaykKKwkJY3R4ID0gcmN1X2RlcmVmZXJlbmNlKGljc2stPmljc2tfYWNjZXB0X3F1ZXVl LmZhc3RvcGVucS5jdHgpOworCWVsc2UKKwkJY3R4ID0gcmN1X2RlcmVmZXJlbmNlKG5ldC0+aXB2 NC50Y3BfZmFzdG9wZW5fY3R4KTsKKwlpZiAoY3R4KSB7CisJCW5fa2V5cyA9IHRjcF9mYXN0b3Bl bl9jb250ZXh0X2xlbihjdHgpOworCQlmb3IgKGkgPSAwOyBpIDwgbl9rZXlzOyBpKyspIHsKKwkJ CXB1dF91bmFsaWduZWRfbGU2NChjdHgtPmtleVtpXS5rZXlbMF0sIGtleSArIChpICogMikpOwor CQkJcHV0X3VuYWxpZ25lZF9sZTY0KGN0eC0+a2V5W2ldLmtleVsxXSwga2V5ICsgKGkgKiAyKSAr IDEpOworCQl9CisJfQorCXJjdV9yZWFkX3VubG9jaygpOworCisJcmV0dXJuIG5fa2V5czsKK30K Kwogc3RhdGljIGJvb2wgX190Y3BfZmFzdG9wZW5fY29va2llX2dlbl9jaXBoZXIoc3RydWN0IHJl cXVlc3Rfc29jayAqcmVxLAogCQkJCQkgICAgIHN0cnVjdCBza19idWZmICpzeW4sCiAJCQkJCSAg ICAgY29uc3Qgc2lwaGFzaF9rZXlfdCAqa2V5LAotLSAKMi4yNi4yCgoKRnJvbSA1YjZjNTJmMTJi NzRjMjcxNGQ2NDFmNWFlOTMxOGFiYjcxYThjZDZiIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBSb25hayBEb3NoaSA8ZG9zaGlyQHZtd2FyZS5jb20+CkRhdGU6IE1vbiwgMTAgQXVnIDIw MjAgMDk6NTU6NTUgLTA3MDAKU3ViamVjdDogW1BBVENIIDA5LzE1XSB2bXhuZXQzOiB1c2UgY29y cmVjdCB0Y3AgaGRyIGxlbmd0aCB3aGVuIHBhY2tldCBpcwogZW5jYXBzdWxhdGVkCgpbIFVwc3Ry ZWFtIGNvbW1pdCA4YTdmMjgwZjI5YTgwZjZlMDc5OGY1ZDZlMDdjNWRkODcyNjYyMGZlIF0KCkNv bW1pdCBkYWNjZTJiZTMzMTIgKCJ2bXhuZXQzOiBhZGQgZ2VuZXZlIGFuZCB2eGxhbiB0dW5uZWwg b2ZmbG9hZApzdXBwb3J0IikgYWRkZWQgc3VwcG9ydCBmb3IgZW5jYXBzdWxhdGlvbiBvZmZsb2Fk LiBIb3dldmVyLCB3aGlsZQpjYWxjdWxhdGluZyB0Y3AgaGRyIGxlbmd0aCwgaXQgZG9lcyBub3Qg dGFrZSBpbnRvIGFjY291bnQgaWYgdGhlCnBhY2tldCBpcyBlbmNhcHN1bGF0ZWQgb3Igbm90LgoK VGhpcyBwYXRjaCBmaXhlcyB0aGlzIGlzc3VlIGJ5IHVzaW5nIGNvcnJlY3QgcmVmZXJlbmNlIGZv ciBpbm5lcgp0Y3AgaGVhZGVyLgoKRml4ZXM6IGRhY2NlMmJlMzMxMiAoInZteG5ldDM6IGFkZCBn ZW5ldmUgYW5kIHZ4bGFuIHR1bm5lbCBvZmZsb2FkIHN1cHBvcnQiKQpTaWduZWQtb2ZmLWJ5OiBS b25hayBEb3NoaSA8ZG9zaGlyQHZtd2FyZS5jb20+CkFja2VkLWJ5OiBHdW9saW4gWWFuZyA8Z3lh bmdAdm13YXJlLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3ZteG5ldDMvdm14bmV0M19kcnYuYyB8IDMgKyst CiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdm14bmV0My92bXhuZXQzX2Rydi5jIGIvZHJpdmVycy9uZXQvdm14 bmV0My92bXhuZXQzX2Rydi5jCmluZGV4IGNhMzk1Zjk2NzlkMC4uMjgxODAxNTMyNGI4IDEwMDY0 NAotLS0gYS9kcml2ZXJzL25ldC92bXhuZXQzL3ZteG5ldDNfZHJ2LmMKKysrIGIvZHJpdmVycy9u ZXQvdm14bmV0My92bXhuZXQzX2Rydi5jCkBAIC04ODYsNyArODg2LDggQEAgdm14bmV0M19wYXJz ZV9oZHIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IHZteG5ldDNfdHhfcXVldWUgKnRxLAog CiAJCQlzd2l0Y2ggKHByb3RvY29sKSB7CiAJCQljYXNlIElQUFJPVE9fVENQOgotCQkJCWN0eC0+ bDRfaGRyX3NpemUgPSB0Y3BfaGRybGVuKHNrYik7CisJCQkJY3R4LT5sNF9oZHJfc2l6ZSA9IHNr Yi0+ZW5jYXBzdWxhdGlvbiA/IGlubmVyX3RjcF9oZHJsZW4oc2tiKSA6CisJCQkJCQkgICB0Y3Bf aGRybGVuKHNrYik7CiAJCQkJYnJlYWs7CiAJCQljYXNlIElQUFJPVE9fVURQOgogCQkJCWN0eC0+ bDRfaGRyX3NpemUgPSBzaXplb2Yoc3RydWN0IHVkcGhkcik7Ci0tIAoyLjI2LjIKCgpGcm9tIGQz MTA2ZmY2OGY4NjdlZDBjMTQxNDZkOThmMDBiMDhmN2UxY2M3M2UgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IFRpbSBGcm9pZGNvZXVyIDx0aW0uZnJvaWRjb2V1ckB0ZXNzYXJlcy5uZXQ+ CkRhdGU6IFR1ZSwgMTEgQXVnIDIwMjAgMjA6MzM6MjMgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzE1XSBuZXQ6IHJlZmFjdG9yIGJpbmRfYnVja2V0IGZhc3RyZXVzZSBpbnRvIGhlbHBlcgoKWyBV cHN0cmVhbSBjb21taXQgNjJmZmM1ODlhYmIxNzY4MjE2NjJlZmM0NTI1ZWU0YWMwYjljMzg5NCBd CgpSZWZhY3RvciB0aGUgZmFzdHJldXNlIHVwZGF0ZSBjb2RlIGluIGluZXRfY3NrX2dldF9wb3J0 IGludG8gYSBzbWFsbApoZWxwZXIgZnVuY3Rpb24gdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gb3Ro ZXIgcGxhY2VzLgoKQWNrZWQtYnk6IE1hdHRoaWV1IEJhZXJ0cyA8bWF0dGhpZXUuYmFlcnRzQHRl c3NhcmVzLm5ldD4KU2lnbmVkLW9mZi1ieTogVGltIEZyb2lkY29ldXIgPHRpbS5mcm9pZGNvZXVy QHRlc3NhcmVzLm5ldD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZl bWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2luZXRfY29ubmVjdGlvbl9zb2NrLmggfCAgNCAr KwogbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyAgICB8IDk3ICsrKysrKysrKysrKysr KystLS0tLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA1NyBpbnNlcnRpb25zKCspLCA0NCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29j ay5oIGIvaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9uX3NvY2suaAppbmRleCBlNWIzODhmNWZh MjAuLjFkNTliZjU1YmI0ZCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvaW5ldF9jb25uZWN0aW9u X3NvY2suaAorKysgYi9pbmNsdWRlL25ldC9pbmV0X2Nvbm5lY3Rpb25fc29jay5oCkBAIC0zMTYs NiArMzE2LDEwIEBAIGludCBpbmV0X2Nza19jb21wYXRfZ2V0c29ja29wdChzdHJ1Y3Qgc29jayAq c2ssIGludCBsZXZlbCwgaW50IG9wdG5hbWUsCiBpbnQgaW5ldF9jc2tfY29tcGF0X3NldHNvY2tv cHQoc3RydWN0IHNvY2sgKnNrLCBpbnQgbGV2ZWwsIGludCBvcHRuYW1lLAogCQkJICAgICAgIGNo YXIgX191c2VyICpvcHR2YWwsIHVuc2lnbmVkIGludCBvcHRsZW4pOwogCisvKiB1cGRhdGUgdGhl IGZhc3QgcmV1c2UgZmxhZyB3aGVuIGFkZGluZyBhIHNvY2tldCAqLwordm9pZCBpbmV0X2Nza191 cGRhdGVfZmFzdHJldXNlKHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YiwKKwkJCSAgICAgICBz dHJ1Y3Qgc29jayAqc2spOworCiBzdHJ1Y3QgZHN0X2VudHJ5ICppbmV0X2Nza191cGRhdGVfcG10 dShzdHJ1Y3Qgc29jayAqc2ssIHUzMiBtdHUpOwogCiAjZGVmaW5lIFRDUF9QSU5HUE9OR19USFJF U0gJMwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYyBiL25ldC9p cHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKaW5kZXggYWZhZjU4MmE1YWE5Li5hMWJlMDIwYmRl OGUgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfY29ubmVjdGlvbl9zb2NrLmMKKysrIGIvbmV0 L2lwdjQvaW5ldF9jb25uZWN0aW9uX3NvY2suYwpAQCAtMjk2LDYgKzI5Niw1NyBAQCBzdGF0aWMg aW5saW5lIGludCBza19yZXVzZXBvcnRfbWF0Y2goc3RydWN0IGluZXRfYmluZF9idWNrZXQgKnRi LAogCQkJCSAgICBpcHY2X29ubHlfc29jayhzayksIHRydWUsIGZhbHNlKTsKIH0KIAordm9pZCBp bmV0X2Nza191cGRhdGVfZmFzdHJldXNlKHN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YiwKKwkJ CSAgICAgICBzdHJ1Y3Qgc29jayAqc2spCit7CisJa3VpZF90IHVpZCA9IHNvY2tfaV91aWQoc2sp OworCWJvb2wgcmV1c2UgPSBzay0+c2tfcmV1c2UgJiYgc2stPnNrX3N0YXRlICE9IFRDUF9MSVNU RU47CisKKwlpZiAoaGxpc3RfZW1wdHkoJnRiLT5vd25lcnMpKSB7CisJCXRiLT5mYXN0cmV1c2Ug PSByZXVzZTsKKwkJaWYgKHNrLT5za19yZXVzZXBvcnQpIHsKKwkJCXRiLT5mYXN0cmV1c2Vwb3J0 ID0gRkFTVFJFVVNFUE9SVF9BTlk7CisJCQl0Yi0+ZmFzdHVpZCA9IHVpZDsKKwkJCXRiLT5mYXN0 X3Jjdl9zYWRkciA9IHNrLT5za19yY3Zfc2FkZHI7CisJCQl0Yi0+ZmFzdF9pcHY2X29ubHkgPSBp cHY2X29ubHlfc29jayhzayk7CisJCQl0Yi0+ZmFzdF9za19mYW1pbHkgPSBzay0+c2tfZmFtaWx5 OworI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCisJCQl0Yi0+ZmFzdF92Nl9yY3Zfc2FkZHIg PSBzay0+c2tfdjZfcmN2X3NhZGRyOworI2VuZGlmCisJCX0gZWxzZSB7CisJCQl0Yi0+ZmFzdHJl dXNlcG9ydCA9IDA7CisJCX0KKwl9IGVsc2UgeworCQlpZiAoIXJldXNlKQorCQkJdGItPmZhc3Ry ZXVzZSA9IDA7CisJCWlmIChzay0+c2tfcmV1c2Vwb3J0KSB7CisJCQkvKiBXZSBkaWRuJ3QgbWF0 Y2ggb3Igd2UgZG9uJ3QgaGF2ZSBmYXN0cmV1c2Vwb3J0IHNldCBvbgorCQkJICogdGhlIHRiLCBi dXQgd2UgaGF2ZSBza19yZXVzZXBvcnQgc2V0IG9uIHRoaXMgc29ja2V0CisJCQkgKiBhbmQgd2Ug a25vdyB0aGF0IHRoZXJlIGFyZSBubyBiaW5kIGNvbmZsaWN0cyB3aXRoCisJCQkgKiB0aGlzIHNv Y2tldCBpbiB0aGlzIHRiLCBzbyByZXNldCBvdXIgdGIncyByZXVzZXBvcnQKKwkJCSAqIHNldHRp bmdzIHNvIHRoYXQgYW55IHN1YnNlcXVlbnQgc29ja2V0cyB0aGF0IG1hdGNoCisJCQkgKiBvdXIg Y3VycmVudCBzb2NrZXQgd2lsbCBiZSBwdXQgb24gdGhlIGZhc3QgcGF0aC4KKwkJCSAqCisJCQkg KiBJZiB3ZSByZXNldCB3ZSBuZWVkIHRvIHNldCBGQVNUUkVVU0VQT1JUX1NUUklDVCBzbyB3ZQor CQkJICogZG8gZXh0cmEgY2hlY2tpbmcgZm9yIGFsbCBzdWJzZXF1ZW50IHNrX3JldXNlcG9ydAor CQkJICogc29ja3MuCisJCQkgKi8KKwkJCWlmICghc2tfcmV1c2Vwb3J0X21hdGNoKHRiLCBzaykp IHsKKwkJCQl0Yi0+ZmFzdHJldXNlcG9ydCA9IEZBU1RSRVVTRVBPUlRfU1RSSUNUOworCQkJCXRi LT5mYXN0dWlkID0gdWlkOworCQkJCXRiLT5mYXN0X3Jjdl9zYWRkciA9IHNrLT5za19yY3Zfc2Fk ZHI7CisJCQkJdGItPmZhc3RfaXB2Nl9vbmx5ID0gaXB2Nl9vbmx5X3NvY2soc2spOworCQkJCXRi LT5mYXN0X3NrX2ZhbWlseSA9IHNrLT5za19mYW1pbHk7CisjaWYgSVNfRU5BQkxFRChDT05GSUdf SVBWNikKKwkJCQl0Yi0+ZmFzdF92Nl9yY3Zfc2FkZHIgPSBzay0+c2tfdjZfcmN2X3NhZGRyOwor I2VuZGlmCisJCQl9CisJCX0gZWxzZSB7CisJCQl0Yi0+ZmFzdHJldXNlcG9ydCA9IDA7CisJCX0K Kwl9Cit9CisKIC8qIE9idGFpbiBhIHJlZmVyZW5jZSB0byBhIGxvY2FsIHBvcnQgZm9yIHRoZSBn aXZlbiBzb2NrLAogICogaWYgc251bSBpcyB6ZXJvIGl0IG1lYW5zIHNlbGVjdCBhbnkgYXZhaWxh YmxlIGxvY2FsIHBvcnQuCiAgKiBXZSB0cnkgdG8gYWxsb2NhdGUgYW4gb2RkIHBvcnQgKGFuZCBs ZWF2ZSBldmVuIHBvcnRzIGZvciBjb25uZWN0KCkpCkBAIC0zMDgsNyArMzU5LDYgQEAgaW50IGlu ZXRfY3NrX2dldF9wb3J0KHN0cnVjdCBzb2NrICpzaywgdW5zaWduZWQgc2hvcnQgc251bSkKIAlz dHJ1Y3QgaW5ldF9iaW5kX2hhc2hidWNrZXQgKmhlYWQ7CiAJc3RydWN0IG5ldCAqbmV0ID0gc29j a19uZXQoc2spOwogCXN0cnVjdCBpbmV0X2JpbmRfYnVja2V0ICp0YiA9IE5VTEw7Ci0Ja3VpZF90 IHVpZCA9IHNvY2tfaV91aWQoc2spOwogCWludCBsM21kZXY7CiAKIAlsM21kZXYgPSBpbmV0X3Nr X2JvdW5kX2wzbWRldihzayk7CkBAIC0zNDUsNDkgKzM5NSw4IEBAIGludCBpbmV0X2Nza19nZXRf cG9ydChzdHJ1Y3Qgc29jayAqc2ssIHVuc2lnbmVkIHNob3J0IHNudW0pCiAJCQlnb3RvIGZhaWxf dW5sb2NrOwogCX0KIHN1Y2Nlc3M6Ci0JaWYgKGhsaXN0X2VtcHR5KCZ0Yi0+b3duZXJzKSkgewot CQl0Yi0+ZmFzdHJldXNlID0gcmV1c2U7Ci0JCWlmIChzay0+c2tfcmV1c2Vwb3J0KSB7Ci0JCQl0 Yi0+ZmFzdHJldXNlcG9ydCA9IEZBU1RSRVVTRVBPUlRfQU5ZOwotCQkJdGItPmZhc3R1aWQgPSB1 aWQ7Ci0JCQl0Yi0+ZmFzdF9yY3Zfc2FkZHIgPSBzay0+c2tfcmN2X3NhZGRyOwotCQkJdGItPmZh c3RfaXB2Nl9vbmx5ID0gaXB2Nl9vbmx5X3NvY2soc2spOwotCQkJdGItPmZhc3Rfc2tfZmFtaWx5 ID0gc2stPnNrX2ZhbWlseTsKLSNpZiBJU19FTkFCTEVEKENPTkZJR19JUFY2KQotCQkJdGItPmZh c3RfdjZfcmN2X3NhZGRyID0gc2stPnNrX3Y2X3Jjdl9zYWRkcjsKLSNlbmRpZgotCQl9IGVsc2Ug ewotCQkJdGItPmZhc3RyZXVzZXBvcnQgPSAwOwotCQl9Ci0JfSBlbHNlIHsKLQkJaWYgKCFyZXVz ZSkKLQkJCXRiLT5mYXN0cmV1c2UgPSAwOwotCQlpZiAoc2stPnNrX3JldXNlcG9ydCkgewotCQkJ LyogV2UgZGlkbid0IG1hdGNoIG9yIHdlIGRvbid0IGhhdmUgZmFzdHJldXNlcG9ydCBzZXQgb24K LQkJCSAqIHRoZSB0YiwgYnV0IHdlIGhhdmUgc2tfcmV1c2Vwb3J0IHNldCBvbiB0aGlzIHNvY2tl dAotCQkJICogYW5kIHdlIGtub3cgdGhhdCB0aGVyZSBhcmUgbm8gYmluZCBjb25mbGljdHMgd2l0 aAotCQkJICogdGhpcyBzb2NrZXQgaW4gdGhpcyB0Yiwgc28gcmVzZXQgb3VyIHRiJ3MgcmV1c2Vw b3J0Ci0JCQkgKiBzZXR0aW5ncyBzbyB0aGF0IGFueSBzdWJzZXF1ZW50IHNvY2tldHMgdGhhdCBt YXRjaAotCQkJICogb3VyIGN1cnJlbnQgc29ja2V0IHdpbGwgYmUgcHV0IG9uIHRoZSBmYXN0IHBh dGguCi0JCQkgKgotCQkJICogSWYgd2UgcmVzZXQgd2UgbmVlZCB0byBzZXQgRkFTVFJFVVNFUE9S VF9TVFJJQ1Qgc28gd2UKLQkJCSAqIGRvIGV4dHJhIGNoZWNraW5nIGZvciBhbGwgc3Vic2VxdWVu dCBza19yZXVzZXBvcnQKLQkJCSAqIHNvY2tzLgotCQkJICovCi0JCQlpZiAoIXNrX3JldXNlcG9y dF9tYXRjaCh0Yiwgc2spKSB7Ci0JCQkJdGItPmZhc3RyZXVzZXBvcnQgPSBGQVNUUkVVU0VQT1JU X1NUUklDVDsKLQkJCQl0Yi0+ZmFzdHVpZCA9IHVpZDsKLQkJCQl0Yi0+ZmFzdF9yY3Zfc2FkZHIg PSBzay0+c2tfcmN2X3NhZGRyOwotCQkJCXRiLT5mYXN0X2lwdjZfb25seSA9IGlwdjZfb25seV9z b2NrKHNrKTsKLQkJCQl0Yi0+ZmFzdF9za19mYW1pbHkgPSBzay0+c2tfZmFtaWx5OwotI2lmIElT X0VOQUJMRUQoQ09ORklHX0lQVjYpCi0JCQkJdGItPmZhc3RfdjZfcmN2X3NhZGRyID0gc2stPnNr X3Y2X3Jjdl9zYWRkcjsKLSNlbmRpZgotCQkJfQotCQl9IGVsc2UgewotCQkJdGItPmZhc3RyZXVz ZXBvcnQgPSAwOwotCQl9Ci0JfQorCWluZXRfY3NrX3VwZGF0ZV9mYXN0cmV1c2UodGIsIHNrKTsK KwogCWlmICghaW5ldF9jc2soc2spLT5pY3NrX2JpbmRfaGFzaCkKIAkJaW5ldF9iaW5kX2hhc2go c2ssIHRiLCBwb3J0KTsKIAlXQVJOX09OKGluZXRfY3NrKHNrKS0+aWNza19iaW5kX2hhc2ggIT0g dGIpOwotLSAKMi4yNi4yCgoKRnJvbSAyZmJhOTliODc3NDdiNTJjNjI3NDA3YThlNzAyMDljNjJh ZWYzODAzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gRnJvaWRjb2V1ciA8dGlt LmZyb2lkY29ldXJAdGVzc2FyZXMubmV0PgpEYXRlOiBUdWUsIDExIEF1ZyAyMDIwIDIwOjMzOjI0 ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMS8xNV0gbmV0OiBpbml0aWFsaXplIGZhc3RyZXVzZSBv biBpbmV0X2luaGVyaXRfcG9ydAoKWyBVcHN0cmVhbSBjb21taXQgZDc2ZjMzNTFjZWEyZDkyN2Zk ZjcwZGQ3YzA2ODk4MjM1MDM1ZTg0ZSBdCgpJbiB0aGUgY2FzZSBvZiBUUFJPWFksIGJpbmRfY29u ZmxpY3Qgb3B0aW1pemF0aW9ucyBmb3IgU09fUkVVU0VBRERSIG9yClNPX1JFVVNFUE9SVCBhcmUg YnJva2VuLCBwb3NzaWJseSByZXN1bHRpbmcgaW4gTyhuKSBpbnN0ZWFkIG9mIE8oMSkgYmluZApi ZWhhdmlvdXIgb3IgaW4gdGhlIGluY29ycmVjdCByZXVzZSBvZiBhIGJpbmQuCgp0aGUga2VybmVs IGtlZXBzIHRyYWNrIGZvciBlYWNoIGJpbmRfYnVja2V0IGlmIGFsbCBzb2NrZXRzIGluIHRoZQpi aW5kX2J1Y2tldCBzdXBwb3J0IFNPX1JFVVNFQUREUiBvciBTT19SRVVTRVBPUlQgaW4gdHdvIGZh c3RyZXVzZSBmbGFncy4KVGhlc2UgZmxhZ3MgYWxsb3cgc2tpcHBpbmcgdGhlIGNvc3RseSBiaW5k X2NvbmZsaWN0IGNoZWNrIHdoZW4gcG9zc2libGUKKG1lYW5pbmcgd2hlbiBhbGwgc29ja2V0cyBo YXZlIHRoZSBwcm9wZXIgU09fUkVVU0Ugb3B0aW9uKS4KCkZvciBldmVyeSBzb2NrZXQgYWRkZWQg dG8gYSBiaW5kX2J1Y2tldCwgdGhlc2UgZmxhZ3MgbmVlZCB0byBiZSB1cGRhdGVkLgpBcyBzb29u IGFzIGEgc29ja2V0IHRoYXQgZG9lcyBub3Qgc3VwcG9ydCByZXVzZSBpcyBhZGRlZCwgdGhlIGZs YWcgaXMKc2V0IHRvIGZhbHNlIGFuZCB3aWxsIG5ldmVyIGdvIGJhY2sgdG8gdHJ1ZSwgdW5sZXNz IHRoZSBiaW5kX2J1Y2tldCBpcwpkZWxldGVkLgoKTm90ZSB0aGF0IHRoZXJlIGlzIG5vIG1lY2hh bmlzbSB0byByZS1ldmFsdWF0ZSB0aGVzZSBmbGFncyB3aGVuIGEgc29ja2V0CmlzIHJlbW92ZWQg KHRoaXMgbWlnaHQgbWFrZSBzZW5zZSB3aGVuIHJlbW92aW5nIGEgc29ja2V0IHRoYXQgd291bGQg bm90CmFsbG93IHJldXNlOyB0aGlzIGxlYXZlcyByb29tIGZvciBhIGZ1dHVyZSBwYXRjaCkuCgpG b3IgdGhpcyBvcHRpbWl6YXRpb24gdG8gd29yaywgaXQgaXMgbWFuZGF0b3J5IHRoYXQgdGhlc2Ug ZmxhZ3MgYXJlCnByb3Blcmx5IGluaXRpYWxpemVkIGFuZCB1cGRhdGVkLgoKV2hlbiBhIGNoaWxk IHNvY2tldCBpcyBjcmVhdGVkIGZyb20gYSBsaXN0ZW4gc29ja2V0IGluCl9faW5ldF9pbmhlcml0 X3BvcnQsIHRoZSBUUFJPWFkgY2FzZSBjb3VsZCBjcmVhdGUgYSBuZXcgYmluZCBidWNrZXQKd2l0 aG91dCBwcm9wZXJseSBpbml0aWFsaXppbmcgdGhlc2UgZmxhZ3MsIHRodXMgcHJldmVudGluZyB0 aGUKb3B0aW1pemF0aW9uIHRvIHdvcmsuIEFsdGVybmF0aXZlbHksIGEgc29ja2V0IG5vdCBhbGxv d2luZyByZXVzZSBjb3VsZApiZSBhZGRlZCB0byBhbiBleGlzdGluZyBiaW5kIGJ1Y2tldCB3aXRo b3V0IHVwZGF0aW5nIHRoZSBmbGFncywgY2F1c2luZwpiaW5kX2NvbmZsaWN0IHRvIG5ldmVyIGJl IGNhbGxlZCBhcyBpdCBzaG91bGQuCgpDYWxsIGluZXRfY3NrX3VwZGF0ZV9mYXN0cmV1c2Ugd2hl biBfX2luZXRfaW5oZXJpdF9wb3J0IGRlY2lkZXMgdG8gY3JlYXRlCmEgbmV3IGJpbmRfYnVja2V0 IG9yIHVzZSBhIGRpZmZlcmVudCBiaW5kX2J1Y2tldCB0aGFuIHRoZSBvbmUgb2YgdGhlCmxpc3Rl biBzb2NrZXQuCgpGaXhlczogMDkzZDI4MjMyMWRhICgidHByb3h5OiBmaXggaGFzaCBsb2NraW5n IGlzc3VlIHdoZW4gdXNpbmcgcG9ydCByZWRpcmVjdGlvbiBpbiBfX2luZXRfaW5oZXJpdF9wb3J0 KCkiKQpBY2tlZC1ieTogTWF0dGhpZXUgQmFlcnRzIDxtYXR0aGlldS5iYWVydHNAdGVzc2FyZXMu bmV0PgpTaWduZWQtb2ZmLWJ5OiBUaW0gRnJvaWRjb2V1ciA8dGltLmZyb2lkY29ldXJAdGVzc2Fy ZXMubmV0PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5u ZXQ+Ci0tLQogbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMgfCAxICsKIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5j IGIvbmV0L2lwdjQvaW5ldF9oYXNodGFibGVzLmMKaW5kZXggMmJiYWFmMGM3MTc2Li4wMDZhMzRi MTg1MzcgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L2luZXRfaGFzaHRhYmxlcy5jCisrKyBiL25ldC9p cHY0L2luZXRfaGFzaHRhYmxlcy5jCkBAIC0xNjMsNiArMTYzLDcgQEAgaW50IF9faW5ldF9pbmhl cml0X3BvcnQoY29uc3Qgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqY2hpbGQpCiAJCQkJ cmV0dXJuIC1FTk9NRU07CiAJCQl9CiAJCX0KKwkJaW5ldF9jc2tfdXBkYXRlX2Zhc3RyZXVzZSh0 YiwgY2hpbGQpOwogCX0KIAlpbmV0X2JpbmRfaGFzaChjaGlsZCwgdGIsIHBvcnQpOwogCXNwaW5f dW5sb2NrKCZoZWFkLT5sb2NrKTsKLS0gCjIuMjYuMgoKCkZyb20gNDdkYjY2NTBhNzkwZThjMTVj MGQwZTkwZDQ5NTJmODU4YWYzYTQzZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogU3Rl ZmFubyBHYXJ6YXJlbGxhIDxzZ2FyemFyZUByZWRoYXQuY29tPgpEYXRlOiBXZWQsIDEyIEF1ZyAy MDIwIDE0OjU2OjAyICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMi8xNV0gdnNvY2s6IGZpeCBwb3Rl bnRpYWwgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGluCiB2c29ja19wb2xsKCkKClsgVXBzdHJl YW0gY29tbWl0IDE5ODBjMDU4NDQ4MzBhNDQ3MDhjOThjOTZkNjAwODMzYWEzZmFlMDggXQoKc3l6 Ym90IHJlcG9ydGVkIHRoaXMgaXNzdWUgd2hlcmUgaW4gdGhlIHZzb2NrX3BvbGwoKSB3ZSBmaW5k IHRoZQpzb2NrZXQgc3RhdGUgYXQgVENQX0VTVEFCTElTSEVELCBidXQgJ3RyYW5zcG9ydCcgaXMg bnVsbDoKICBnZW5lcmFsIHByb3RlY3Rpb24gZmF1bHQsIHByb2JhYmx5IGZvciBub24tY2Fub25p Y2FsIGFkZHJlc3MgMHhkZmZmZmMwMDAwMDAwMDEyOiAwMDAwIFsjMV0gUFJFRU1QVCBTTVAgS0FT QU4KICBLQVNBTjogbnVsbC1wdHItZGVyZWYgaW4gcmFuZ2UgWzB4MDAwMDAwMDAwMDAwMDA5MC0w eDAwMDAwMDAwMDAwMDAwOTddCiAgQ1BVOiAwIFBJRDogODIyNyBDb21tOiBzeXotZXhlY3V0b3Iu MiBOb3QgdGFpbnRlZCA1LjguMC1yYzctc3l6a2FsbGVyICMwCiAgSGFyZHdhcmUgbmFtZTogR29v Z2xlIEdvb2dsZSBDb21wdXRlIEVuZ2luZS9Hb29nbGUgQ29tcHV0ZSBFbmdpbmUsIEJJT1MgR29v Z2xlIDAxLzAxLzIwMTEKICBSSVA6IDAwMTA6dnNvY2tfcG9sbCsweDc1YS8weDhlMCBuZXQvdm13 X3Zzb2NrL2FmX3Zzb2NrLmM6MTAzOAogIENhbGwgVHJhY2U6CiAgIHNvY2tfcG9sbCsweDE1OS8w eDQ2MCBuZXQvc29ja2V0LmM6MTI2NgogICB2ZnNfcG9sbCBpbmNsdWRlL2xpbnV4L3BvbGwuaDo5 MCBbaW5saW5lXQogICBkb19wb2xsZmQgZnMvc2VsZWN0LmM6ODY5IFtpbmxpbmVdCiAgIGRvX3Bv bGwgZnMvc2VsZWN0LmM6OTE3IFtpbmxpbmVdCiAgIGRvX3N5c19wb2xsKzB4NjA3LzB4ZDQwIGZz L3NlbGVjdC5jOjEwMTEKICAgX19kb19zeXNfcG9sbCBmcy9zZWxlY3QuYzoxMDY5IFtpbmxpbmVd CiAgIF9fc2Vfc3lzX3BvbGwgZnMvc2VsZWN0LmM6MTA1NyBbaW5saW5lXQogICBfX3g2NF9zeXNf cG9sbCsweDE4Yy8weDQ0MCBmcy9zZWxlY3QuYzoxMDU3CiAgIGRvX3N5c2NhbGxfNjQrMHg2MC8w eGUwIGFyY2gveDg2L2VudHJ5L2NvbW1vbi5jOjM4NAogICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVy X2h3ZnJhbWUrMHg0NC8weGE5CgpUaGlzIGlzc3VlIGNhbiBoYXBwZW4gaWYgdGhlIFRDUF9FU1RB QkxJU0hFRCBzdGF0ZSBpcyBzZXQgYWZ0ZXIgd2UgcmVhZAp0aGUgdnNrLT50cmFuc3BvcnQgaW4g dGhlIHZzb2NrX3BvbGwoKS4KCldlIGNvdWxkIHB1dCBiYXJyaWVycyB0byBzeW5jaHJvbml6ZSwg YnV0IHRoaXMgY2FuIG9ubHkgaGFwcGVuIGR1cmluZwpjb25uZWN0aW9uIHNldHVwLCBzbyB3ZSBj YW4gc2ltcGx5IGNoZWNrIHRoYXQgJ3RyYW5zcG9ydCcgaXMgdmFsaWQuCgpGaXhlczogYzBjZmEy ZDhhNzg4ICgidnNvY2s6IGFkZCBtdWx0aS10cmFuc3BvcnRzIHN1cHBvcnQiKQpSZXBvcnRlZC1h bmQtdGVzdGVkLWJ5OiBzeXpib3QrYTYxYmFjMmZjYzFhN2M2NjIzZmVAc3l6a2FsbGVyLmFwcHNw b3RtYWlsLmNvbQpTaWduZWQtb2ZmLWJ5OiBTdGVmYW5vIEdhcnphcmVsbGEgPHNnYXJ6YXJlQHJl ZGhhdC5jb20+ClJldmlld2VkLWJ5OiBKb3JnZW4gSGFuc2VuIDxqaGFuc2VuQHZtd2FyZS5jb20+ ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0t CiBuZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNl cnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9uZXQvdm13X3Zzb2NrL2FmX3Zz b2NrLmMgYi9uZXQvdm13X3Zzb2NrL2FmX3Zzb2NrLmMKaW5kZXggNjI2YmY5MDQ0NDE4Li42Y2Qw ZGYxYzVjYWYgMTAwNjQ0Ci0tLSBhL25ldC92bXdfdnNvY2svYWZfdnNvY2suYworKysgYi9uZXQv dm13X3Zzb2NrL2FmX3Zzb2NrLmMKQEAgLTEwMzIsNyArMTAzMiw3IEBAIHN0YXRpYyBfX3BvbGxf dCB2c29ja19wb2xsKHN0cnVjdCBmaWxlICpmaWxlLCBzdHJ1Y3Qgc29ja2V0ICpzb2NrLAogCQl9 CiAKIAkJLyogQ29ubmVjdGVkIHNvY2tldHMgdGhhdCBjYW4gcHJvZHVjZSBkYXRhIGNhbiBiZSB3 cml0dGVuLiAqLwotCQlpZiAoc2stPnNrX3N0YXRlID09IFRDUF9FU1RBQkxJU0hFRCkgeworCQlp ZiAodHJhbnNwb3J0ICYmIHNrLT5za19zdGF0ZSA9PSBUQ1BfRVNUQUJMSVNIRUQpIHsKIAkJCWlm ICghKHNrLT5za19zaHV0ZG93biAmIFNFTkRfU0hVVERPV04pKSB7CiAJCQkJYm9vbCBzcGFjZV9h dmFpbF9ub3cgPSBmYWxzZTsKIAkJCQlpbnQgcmV0ID0gdHJhbnNwb3J0LT5ub3RpZnlfcG9sbF9v dXQoCi0tIAoyLjI2LjIKCgpGcm9tIGUxOTUxNmFhNGNkZThjZDc5MGMyMGE5NWUyYWNiNDFkZjFl N2IwMWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT9NYXJlaz0yMEJl aD1DMz1CQW4/PSA8bWFyZWsuYmVodW5AbmljLmN6PgpEYXRlOiBNb24sIDEwIEF1ZyAyMDIwIDE3 OjAxOjU4ICswMjAwClN1YmplY3Q6IFtQQVRDSCAxMy8xNV0gbmV0OiBwaHk6IG1hcnZlbGwxMGc6 IGZpeCBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1U eXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQKClsgVXBzdHJlYW0gY29tbWl0IDFiOGVmMTQyM2RiZmQzNGRlMjQzOWEyZGI0NTdiODQ0 ODBiN2M4YTggXQoKQ29tbWl0IGMzZTMwMmVkY2EyNCAoIm5ldDogcGh5OiBtYXJ2ZWxsMTBnOiBm aXggdGVtcGVyYXR1cmUgc2Vuc29yIG9uIDIxMTAiKQphZGRlZCBhIGNoZWNrIGZvciBQSFkgSUQg dmlhIHBoeWRldi0+ZHJ2LT5waHlfaWQgaW4gYSBmdW5jdGlvbiB3aGljaCBpcwpjYWxsZWQgYnkg ZGV2cmVzIGF0IGEgdGltZSB3aGVuIHBoeWRldi0+ZHJ2IGlzIGFscmVhZHkgc2V0IHRvIG51bGwg YnkKcGh5X3JlbW92ZSBmdW5jdGlvbi4KClRoaXMgbnVsbCBwb2ludGVyIGRlcmVmZXJlbmNlIGNh biBiZSB0cmlnZ2VyZWQgdmlhIFNGUCBzdWJzeXN0ZW0gd2l0aCBhClNGUCBtb2R1bGUgY29udGFp bmluZyB0aGlzIE1hcnZlbGwgUEhZLiBXaGVuIHRoZSBTRlAgaW50ZXJmYWNlIGlzIHB1dApkb3du LCB0aGUgU0ZQIHN1YnN5c3RlbSByZW1vdmVzIHRoZSBQSFkuCgpGaXhlczogYzNlMzAyZWRjYTI0 ICgibmV0OiBwaHk6IG1hcnZlbGwxMGc6IGZpeCB0ZW1wZXJhdHVyZSBzZW5zb3Igb24gMjExMCIp ClNpZ25lZC1vZmYtYnk6IE1hcmVrIEJlaMO6biA8bWFyZWsuYmVodW5AbmljLmN6PgpDYzogTWF4 aW1lIENoZXZhbGxpZXIgPG1heGltZS5jaGV2YWxsaWVyQGJvb3RsaW4uY29tPgpDYzogQW5kcmV3 IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpDYzogQmFydWNoIFNpYWNoIDxiYXJ1Y2hAdGtvcy5jby5p bD4KQ2M6IFJ1c3NlbGwgS2luZyA8cm1rK2tlcm5lbEBhcm1saW51eC5vcmcudWs+ClNpZ25lZC1v ZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJz L25ldC9waHkvbWFydmVsbDEwZy5jIHwgMTggKysrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNyBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC9waHkvbWFydmVsbDEwZy5jIGIvZHJpdmVycy9uZXQvcGh5L21hcnZlbGwxMGcuYwpp bmRleCBkNGMyZTYyYjI0MzkuLjE3OWY1ZWE0MDVkOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQv cGh5L21hcnZlbGwxMGcuYworKysgYi9kcml2ZXJzL25ldC9waHkvbWFydmVsbDEwZy5jCkBAIC0y MDUsMTMgKzIwNSw2IEBAIHN0YXRpYyBpbnQgbXYzMzEwX2h3bW9uX2NvbmZpZyhzdHJ1Y3QgcGh5 X2RldmljZSAqcGh5ZGV2LCBib29sIGVuYWJsZSkKIAkJCSAgICAgIE1WX1YyX1RFTVBfQ1RSTF9N QVNLLCB2YWwpOwogfQogCi1zdGF0aWMgdm9pZCBtdjMzMTBfaHdtb25fZGlzYWJsZSh2b2lkICpk YXRhKQotewotCXN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYgPSBkYXRhOwotCi0JbXYzMzEwX2h3 bW9uX2NvbmZpZyhwaHlkZXYsIGZhbHNlKTsKLX0KLQogc3RhdGljIGludCBtdjMzMTBfaHdtb25f cHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIHsKIAlzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmcGh5ZGV2LT5tZGlvLmRldjsKQEAgLTIzNSwxMCArMjI4LDYgQEAgc3RhdGljIGludCBtdjMz MTBfaHdtb25fcHJvYmUoc3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlpZiAocmV0KQogCQly ZXR1cm4gcmV0OwogCi0JcmV0ID0gZGV2bV9hZGRfYWN0aW9uX29yX3Jlc2V0KGRldiwgbXYzMzEw X2h3bW9uX2Rpc2FibGUsIHBoeWRldik7Ci0JaWYgKHJldCkKLQkJcmV0dXJuIHJldDsKLQogCXBy aXYtPmh3bW9uX2RldiA9IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfaW5mbyhkZXYs CiAJCQkJcHJpdi0+aHdtb25fbmFtZSwgcGh5ZGV2LAogCQkJCSZtdjMzMTBfaHdtb25fY2hpcF9p bmZvLCBOVUxMKTsKQEAgLTQyMyw2ICs0MTIsMTEgQEAgc3RhdGljIGludCBtdjMzMTBfcHJvYmUo c3RydWN0IHBoeV9kZXZpY2UgKnBoeWRldikKIAlyZXR1cm4gcGh5X3NmcF9wcm9iZShwaHlkZXYs ICZtdjMzMTBfc2ZwX29wcyk7CiB9CiAKK3N0YXRpYyB2b2lkIG12MzMxMF9yZW1vdmUoc3RydWN0 IHBoeV9kZXZpY2UgKnBoeWRldikKK3sKKwltdjMzMTBfaHdtb25fY29uZmlnKHBoeWRldiwgZmFs c2UpOworfQorCiBzdGF0aWMgaW50IG12MzMxMF9zdXNwZW5kKHN0cnVjdCBwaHlfZGV2aWNlICpw aHlkZXYpCiB7CiAJcmV0dXJuIG12MzMxMF9wb3dlcl9kb3duKHBoeWRldik7CkBAIC03NjIsNiAr NzU2LDcgQEAgc3RhdGljIHN0cnVjdCBwaHlfZHJpdmVyIG12MzMxMF9kcml2ZXJzW10gPSB7CiAJ CS5yZWFkX3N0YXR1cwk9IG12MzMxMF9yZWFkX3N0YXR1cywKIAkJLmdldF90dW5hYmxlCT0gbXYz MzEwX2dldF90dW5hYmxlLAogCQkuc2V0X3R1bmFibGUJPSBtdjMzMTBfc2V0X3R1bmFibGUsCisJ CS5yZW1vdmUJCT0gbXYzMzEwX3JlbW92ZSwKIAl9LAogCXsKIAkJLnBoeV9pZAkJPSBNQVJWRUxM X1BIWV9JRF84OEUyMTEwLApAQCAtNzc2LDYgKzc3MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGh5X2Ry aXZlciBtdjMzMTBfZHJpdmVyc1tdID0gewogCQkucmVhZF9zdGF0dXMJPSBtdjMzMTBfcmVhZF9z dGF0dXMsCiAJCS5nZXRfdHVuYWJsZQk9IG12MzMxMF9nZXRfdHVuYWJsZSwKIAkJLnNldF90dW5h YmxlCT0gbXYzMzEwX3NldF90dW5hYmxlLAorCQkucmVtb3ZlCQk9IG12MzMxMF9yZW1vdmUsCiAJ fSwKIH07CiAKLS0gCjIuMjYuMgoKCkZyb20gNjQ5YTI0OWQxOGNjZTAyODliZTYwMWJiNDljZWRh MzNjMGVjYTdjMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRmxvcmlhbiBXZXN0cGhh bCA8ZndAc3RybGVuLmRlPgpEYXRlOiBGcmksIDE0IEF1ZyAyMDIwIDE1OjU2OjM0ICswMjAwClN1 YmplY3Q6IFtQQVRDSCAxNC8xNV0gbXB0Y3A6IHNlbmRtc2c6IHJlc2V0IGl0ZXIgb24gZXJyb3IK ClsgVXBzdHJlYW0gY29tbWl0IDM1NzU5MzgzMTMzZjY0ZDkwZWJhMTIwYTBkM2VmZThmNzEyNDE2 NTAgXQoKT25jZSB3ZSd2ZSBjb3BpZWQgZGF0YSBmcm9tIHRoZSBpdGVyYXRvciB3ZSBuZWVkIHRv IHJldmVydCBpbiBjYXNlIHdlCmVuZCB1cCBub3Qgc2VuZGluZyBhbnkgZGF0YS4KClRoaXMgYnVn IGRvZXNuJ3QgdHJpZ2dlciB3aXRoIG5vcm1hbCAncG9sbCcgYmFzZWQgdGVzdHMsIGJlY2F1c2UK d2Ugb25seSBmZWVkIGEgc21hbGwgY2h1bmsgb2YgZGF0YSB0byBrZXJuZWwgYWZ0ZXIgcG9sbCBp bmRpY2F0ZWQKUE9MTE9VVC4gIFdpdGggYmxvY2tpbmcgSU8gYW5kIGxhcmdlIHdyaXRlcyB0aGlz IHRyaWdnZXJzLiBSZWNlaXZlcgplbmRzIHVwIHdpdGggbGVzcyBkYXRhIHRoYW4gaXQgc2hvdWxk IGdldC4KCkZpeGVzOiA3MjUxMWFhYjk1Yzk0ZCAoIm1wdGNwOiBhdm9pZCBibG9ja2luZyBpbiB0 Y3Bfc2VuZHBhZ2VzIikKU2lnbmVkLW9mZi1ieTogRmxvcmlhbiBXZXN0cGhhbCA8ZndAc3RybGVu LmRlPgpSZXZpZXdlZC1ieTogTWF0IE1hcnRpbmVhdSA8bWF0aGV3LmoubWFydGluZWF1QGxpbnV4 LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIG5ldC9tcHRjcC9wcm90b2NvbC5jIHwgOCArKysrKystLQogMSBmaWxlIGNo YW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv bXB0Y3AvcHJvdG9jb2wuYyBiL25ldC9tcHRjcC9wcm90b2NvbC5jCmluZGV4IGMwYWJlNzM4ZTdk My4uYWM4ODgwNTE0ZDVkIDEwMDY0NAotLS0gYS9uZXQvbXB0Y3AvcHJvdG9jb2wuYworKysgYi9u ZXQvbXB0Y3AvcHJvdG9jb2wuYwpAQCAtNjA1LDggKzYwNSwxMCBAQCBzdGF0aWMgaW50IG1wdGNw X3NlbmRtc2dfZnJhZyhzdHJ1Y3Qgc29jayAqc2ssIHN0cnVjdCBzb2NrICpzc2ssCiAJCWlmICgh cHNpemUpCiAJCQlyZXR1cm4gLUVJTlZBTDsKIAotCQlpZiAoIXNrX3dtZW1fc2NoZWR1bGUoc2ss IHBzaXplICsgZGZyYWctPm92ZXJoZWFkKSkKKwkJaWYgKCFza193bWVtX3NjaGVkdWxlKHNrLCBw c2l6ZSArIGRmcmFnLT5vdmVyaGVhZCkpIHsKKwkJCWlvdl9pdGVyX3JldmVydCgmbXNnLT5tc2df aXRlciwgcHNpemUpOwogCQkJcmV0dXJuIC1FTk9NRU07CisJCX0KIAl9IGVsc2UgewogCQlvZmZz ZXQgPSBkZnJhZy0+b2Zmc2V0OwogCQlwc2l6ZSA9IG1pbl90KHNpemVfdCwgZGZyYWctPmRhdGFf bGVuLCBhdmFpbF9zaXplKTsKQEAgLTYxNyw4ICs2MTksMTAgQEAgc3RhdGljIGludCBtcHRjcF9z ZW5kbXNnX2ZyYWcoc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc29jayAqc3NrLAogCSAqLwogCXJl dCA9IGRvX3RjcF9zZW5kcGFnZXMoc3NrLCBwYWdlLCBvZmZzZXQsIHBzaXplLAogCQkJICAgICAg IG1zZy0+bXNnX2ZsYWdzIHwgTVNHX1NFTkRQQUdFX05PVExBU1QgfCBNU0dfRE9OVFdBSVQpOwot CWlmIChyZXQgPD0gMCkKKwlpZiAocmV0IDw9IDApIHsKKwkJaW92X2l0ZXJfcmV2ZXJ0KCZtc2ct Pm1zZ19pdGVyLCBwc2l6ZSk7CiAJCXJldHVybiByZXQ7CisJfQogCiAJZnJhZ190cnVlc2l6ZSAr PSByZXQ7CiAJaWYgKCFyZXRyYW5zbWlzc2lvbikgewotLSAKMi4yNi4yCgoKRnJvbSBhYjkwYWNj Mjg4ZTlkOGUzOTAyZjIwMTdmNzQxYTM4OTVhN2Y5MWIzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAw MQpGcm9tOiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgpEYXRlOiBGcmksIDcg QXVnIDIwMjAgMDk6MzY6MzIgKzAyMDAKU3ViamVjdDogW1BBVENIIDE1LzE1XSByODE1MjogVXNl IE1BQyBhZGRyZXNzIGZyb20gY29ycmVjdCBkZXZpY2UgdHJlZSBub2RlCgpbIFVwc3RyZWFtIGNv bW1pdCBiOWI0MGVlNGRiNmNiMTg2MzQxYjk3YmNhNGYwZDdhYTJhMDQyYTY2IF0KClF1ZXJ5IHRo ZSBVU0IgZGV2aWNlJ3MgZGV2aWNlIHRyZWUgbm9kZSB3aGVuIGxvb2tpbmcgZm9yIGEgTUFDIGFk ZHJlc3MuClRoZSBzdHJ1Y3QgZGV2aWNlIGVtYmVkZGVkIGludG8gdGhlIHN0cnVjdCBuZXRfZGV2 aWNlIGRvZXMgbm90IGhhdmUgYQpkZXZpY2UgdHJlZSBub2RlIGF0dGFjaGVkIGF0IGFsbC4KClRo ZSByZWFzb24gd2h5IHRoaXMgd2VudCB1bm5vdGljZWQgaXMgYmVjYXVzZSB0aGUgc3lzdGVtIHdo ZXJlIHRoaXMgd2FzCnRlc3RlZCB3YXMgb25lIG9mIHRoZSBmZXcgZGV2ZWxvcG1lbnQgdW5pdHMg dGhhdCBoYWQgaXRzIE9UUCBwcm9ncmFtbWVkLAphcyBvcHBvc2VkIHRvIHByb2R1Y3Rpb24gc3lz dGVtcyB3aGVyZSB0aGUgTUFDIGFkZHJlc3MgaXMgc3RvcmVkIGluIGEKc2VwYXJhdGUgRUVQUk9N IGFuZCBpcyBwYXNzZWQgdmlhIGRldmljZSB0cmVlIGJ5IHRoZSBmaXJtd2FyZS4KClJlcG9ydGVk LWJ5OiBFSiBIc3UgPGVqaEBudmlkaWEuY29tPgpGaXhlczogYWNiNmQzNzcxYTAzICgicjgxNTI6 IFVzZSBNQUMgYWRkcmVzcyBmcm9tIGRldmljZSB0cmVlIGlmIGF2YWlsYWJsZSIpClNpZ25lZC1v ZmYtYnk6IFRoaWVycnkgUmVkaW5nIDx0cmVkaW5nQG52aWRpYS5jb20+ClJldmlld2VkLWJ5OiBF SiBIc3UgPGVqaEBudmlkaWEuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdXNiL3I4MTUyLmMgfCAyICstCiAx IGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQg YS9kcml2ZXJzL25ldC91c2IvcjgxNTIuYyBiL2RyaXZlcnMvbmV0L3VzYi9yODE1Mi5jCmluZGV4 IDdkMzlmOTk4NTM1ZC4uMmIwMmZlZmQwOTRkIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC91c2Iv cjgxNTIuYworKysgYi9kcml2ZXJzL25ldC91c2IvcjgxNTIuYwpAQCAtMTUwNCw3ICsxNTA0LDcg QEAgc3RhdGljIGludCBkZXRlcm1pbmVfZXRoZXJuZXRfYWRkcihzdHJ1Y3QgcjgxNTIgKnRwLCBz dHJ1Y3Qgc29ja2FkZHIgKnNhKQogCiAJc2EtPnNhX2ZhbWlseSA9IGRldi0+dHlwZTsKIAotCXJl dCA9IGV0aF9wbGF0Zm9ybV9nZXRfbWFjX2FkZHJlc3MoJmRldi0+ZGV2LCBzYS0+c2FfZGF0YSk7 CisJcmV0ID0gZXRoX3BsYXRmb3JtX2dldF9tYWNfYWRkcmVzcygmdHAtPnVkZXYtPmRldiwgc2Et PnNhX2RhdGEpOwogCWlmIChyZXQgPCAwKSB7CiAJCWlmICh0cC0+dmVyc2lvbiA9PSBSVExfVkVS XzAxKSB7CiAJCQlyZXQgPSBwbGFfb2NwX3JlYWQodHAsIFBMQV9JRFIsIDgsIHNhLT5zYV9kYXRh KTsKLS0gCjIuMjYuMgoK ----Next_Part(Fri_Aug_14_18_36_07_2020_759)----