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=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS autolearn=ham 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 B9A49C43381 for ; Thu, 7 Mar 2019 22:47:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4EA3E20675 for ; Thu, 7 Mar 2019 22:47:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726227AbfCGWrI (ORCPT ); Thu, 7 Mar 2019 17:47:08 -0500 Received: from shards.monkeyblade.net ([23.128.96.9]:55436 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726166AbfCGWrI (ORCPT ); Thu, 7 Mar 2019 17:47:08 -0500 Received: from localhost (unknown [IPv6:2601:601:9f80:35cd::d71]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 3261D14EB1D19 for ; Thu, 7 Mar 2019 14:47:05 -0800 (PST) Date: Thu, 07 Mar 2019 14:47:03 -0800 (PST) Message-Id: <20190307.144703.1075331851621417702.davem@davemloft.net> To: stable@vger.kernel.org Subject: [PATCHES] Networking From: David Miller X-Mailer: Mew version 6.8 on Emacs 26.1 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Mar__7_14_47_03_2019_588)--" 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]); Thu, 07 Mar 2019 14:47:06 -0800 (PST) Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org ----Next_Part(Thu_Mar__7_14_47_03_2019_588)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Please queue up the following networking bug fixes for v4.20 and v5.0 -stable, respectively. Thank you. ----Next_Part(Thu_Mar__7_14_47_03_2019_588)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_420.mbox" RnJvbSA5NDM5MTYyODdiNGU4YmRiOWYzNzFjOWEzMDVlM2E5NjM1MzI1NGNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRh dGU6IFN1biwgMyBNYXIgMjAxOSAwNzozNDo1NyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDEvNDJd IGlwNm1yOiBEbyBub3QgY2FsbCBfX0lQNl9JTkNfU1RBVFMoKSBmcm9tIHByZWVtcHRpYmxlCiBj b250ZXh0CgpbIFVwc3RyZWFtIGNvbW1pdCA4N2MxMWYxZGRiYmFkMzhhZDhiYWQ0N2FmMTMzYTgy MDg5ODVmYmRmIF0KClNpbWlsYXIgdG8gY29tbWl0IDQ0ZjQ5ZGQ4YjVhNiAoImlwbXI6IGZpeCBw b3NzaWJsZSByYWNlIHJlc3VsdGluZyBmcm9tCmltcHJvcGVyIHVzYWdlIG9mIElQX0lOQ19TVEFU U19CSCgpIGluIHByZWVtcHRpYmxlIGNvbnRleHQuIiksIHdlIGNhbm5vdAphc3N1bWUgcHJlZW1w dGlvbiBpcyBkaXNhYmxlZCB3aGVuIGluY3JlbWVudGluZyB0aGUgY291bnRlciBhbmQKYWNjZXNz aW5nIGEgcGVyLUNQVSB2YXJpYWJsZS4KClByZWVtcHRpb24gY2FuIGJlIGVuYWJsZWQgd2hlbiB3 ZSBhZGQgYSByb3V0ZSBpbiBwcm9jZXNzIGNvbnRleHQgdGhhdApjb3JyZXNwb25kcyB0byBwYWNr ZXRzIHN0b3JlZCBpbiB0aGUgdW5yZXNvbHZlZCBxdWV1ZSwgd2hpY2ggYXJlIHRoZW4KZm9yd2Fy ZGVkIHVzaW5nIHRoaXMgcm91dGUgWzFdLgoKRml4IHRoaXMgYnkgdXNpbmcgSVA2X0lOQ19TVEFU UygpIHdoaWNoIHRha2VzIGNhcmUgb2YgZGlzYWJsaW5nCnByZWVtcHRpb24gb24gYXJjaGl0ZWN0 dXJlcyB3aGVyZSBpdCBpcyBuZWVkZWQuCgpbMV0KWyAgMTU3LjQ1MTQ0N10gQlVHOiB1c2luZyBf X3RoaXNfY3B1X2FkZCgpIGluIHByZWVtcHRpYmxlIFswMDAwMDAwMF0gY29kZTogc21jcm91dGVk LzIzMTQKWyAgMTU3LjQ2MDQwOV0gY2FsbGVyIGlzIGlwNm1yX2ZvcndhcmQyKzB4NzNlLzB4MTBl MApbICAxNTcuNDYwNDM0XSBDUFU6IDMgUElEOiAyMzE0IENvbW06IHNtY3JvdXRlZCBOb3QgdGFp bnRlZCA1LjAuMC1yYzctY3VzdG9tLTAzNjM1LWcyMmYyNzEyMTEzZjEgIzEzMzYKWyAgMTU3LjQ2 MDQ0OV0gSGFyZHdhcmUgbmFtZTogTWVsbGFub3ggVGVjaG5vbG9naWVzIEx0ZC4gTVNOMjEwMC1D QjJGTy9TQTAwMTAxNywgQklPUyA1LjYuNSAwNi8wNy8yMDE2ClsgIDE1Ny40NjA0NjFdIENhbGwg VHJhY2U6ClsgIDE1Ny40NjA0ODZdICBkdW1wX3N0YWNrKzB4ZjkvMHgxYmUKWyAgMTU3LjQ2MDU1 M10gIGNoZWNrX3ByZWVtcHRpb25fZGlzYWJsZWQrMHgxZDYvMHgyMDAKWyAgMTU3LjQ2MDU3Nl0g IGlwNm1yX2ZvcndhcmQyKzB4NzNlLzB4MTBlMApbICAxNTcuNDYwNzA1XSAgaXA2X21yX2Zvcndh cmQrMHg5YTAvMHgxNTEwClsgIDE1Ny40NjA3NzFdICBpcDZtcl9tZmNfYWRkKzB4MTZiMy8weDFl MDAKWyAgMTU3LjQ2MTE1NV0gIGlwNl9tcm91dGVfc2V0c29ja29wdCsweDNjYi8weDEzYzAKWyAg MTU3LjQ2MTM4NF0gIGRvX2lwdjZfc2V0c29ja29wdC5pc3JhLjgrMHgzNDgvMHg0MDYwClsgIDE1 Ny40NjIwMTNdICBpcHY2X3NldHNvY2tvcHQrMHg5MC8weDExMApbICAxNTcuNDYyMDM2XSAgcmF3 djZfc2V0c29ja29wdCsweDRhLzB4MTIwClsgIDE1Ny40NjIwNThdICBfX3N5c19zZXRzb2Nrb3B0 KzB4MTZiLzB4MzQwClsgIDE1Ny40NjIxOThdICBfX3g2NF9zeXNfc2V0c29ja29wdCsweGJmLzB4 MTYwClsgIDE1Ny40NjIyMjBdICBkb19zeXNjYWxsXzY0KzB4MTRkLzB4NjEwClsgIDE1Ny40NjIz NDldICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlCgpGaXhlczogMDkx MmVhMzhkZTYxICgiW0lQVjZdIE1ST1VURTogQWRkIHN0YXRzIGluIG11bHRpY2FzdCByb3V0aW5n IG1vZHVsZSBtZXRob2QgaXA2X21yX2ZvcndhcmQoKS4iKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2No aW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBBbWl0IENvaGVuIDxhbWl0 Y0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZtci5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9pcDZtci5jIGIvbmV0L2lwdjYvaXA2bXIuYwppbmRleCBlZGRhM2Y5ZGFhYjkuLjllZDA4 YWM2MDY2YyAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZt ci5jCkBAIC0xOTY0LDEwICsxOTY0LDEwIEBAIGludCBpcDZtcl9jb21wYXRfaW9jdGwoc3RydWN0 IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkIF9fdXNlciAqYXJnKQogCiBzdGF0aWMg aW5saW5lIGludCBpcDZtcl9mb3J3YXJkMl9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0JX19JUDZfSU5DX1NUQVRTKG5ldCwg aXA2X2RzdF9pZGV2KHNrYl9kc3Qoc2tiKSksCi0JCQlJUFNUQVRTX01JQl9PVVRGT1JXREFUQUdS QU1TKTsKLQlfX0lQNl9BRERfU1RBVFMobmV0LCBpcDZfZHN0X2lkZXYoc2tiX2RzdChza2IpKSwK LQkJCUlQU1RBVFNfTUlCX09VVE9DVEVUUywgc2tiLT5sZW4pOworCUlQNl9JTkNfU1RBVFMobmV0 LCBpcDZfZHN0X2lkZXYoc2tiX2RzdChza2IpKSwKKwkJICAgICAgSVBTVEFUU19NSUJfT1VURk9S V0RBVEFHUkFNUyk7CisJSVA2X0FERF9TVEFUUyhuZXQsIGlwNl9kc3RfaWRldihza2JfZHN0KHNr YikpLAorCQkgICAgICBJUFNUQVRTX01JQl9PVVRPQ1RFVFMsIHNrYi0+bGVuKTsKIAlyZXR1cm4g ZHN0X291dHB1dChuZXQsIHNrLCBza2IpOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIGRiZTlkNmZi NzZhMjk3YWZhNGY4OWM1OGQ5ZmUyNjI5M2QwMjE5NGUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRhdGU6IE1vbiwg NCBNYXIgMjAxOSAxOTozOTowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDIvNDJdIG5ldDogZHNh OiBtdjg4ZTZ4eHg6IGFkZCBjYWxsIHRvCiBtdjg4ZTZ4eHhfcG9ydHNfY21vZGVfaW5pdCB0byBw cm9iZSBmb3IgbmV3IERTQSBmcmFtZXdvcmsKClsgVXBzdHJlYW0gY29tbWl0IDNhY2NhMWRkMTcw NjAzMzJjZmFiMTU2OTM3MzNjZGFmOWZiYTFjOTAgXQoKSW4gdGhlIG9yaWdpbmFsIHBhdGNoIEkg bWlzc2VkIHRvIGFkZCBtdjg4ZTZ4eHhfcG9ydHNfY21vZGVfaW5pdCgpCnRvIHRoZSBzZWNvbmQg cHJvYmUgZnVuY3Rpb24sIHRoZSBvbmUgZm9yIHRoZSBuZXcgRFNBIGZyYW1ld29yay4KCkZpeGVz OiBlZDhmZTIwMjA1YWMgKCJuZXQ6IGRzYTogbXY4OGU2eHh4OiBwcmV2ZW50IGludGVycnVwdCBz dG9ybSBjYXVzZWQgYnkgbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZSIpClJlcG9ydGVkLWJ5OiBT aGFva3VuIFpoYW5nIDx6aGFuZ3NoYW9rdW5AaGlzaWxpY29uLmNvbT4KU3VnZ2VzdGVkLWJ5OiBB bmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2Vp dCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3 QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212 ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCBi MDExM2Y2ZmRiYjQuLjQ4N2YxZGNkMDA2ZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212 ODhlNnh4eC9jaGlwLmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAg LTQ4MjEsNiArNDgyMSw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlv X2RldmljZSAqbWRpb2RldikKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAorCW12ODhlNnh4eF9w b3J0c19jbW9kZV9pbml0KGNoaXApOwogCW12ODhlNnh4eF9waHlfaW5pdChjaGlwKTsKIAogCWlm IChjaGlwLT5pbmZvLT5vcHMtPmdldF9lZXByb20pIHsKLS0gCjIuMjAuMQoKCkZyb20gMTQxZTM0 ZGIwOWU2YjY1NWM4ZTAyOTVlNTFjYjliZmM4ZjdjZGZlMiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KRGF0ZTogRnJp LCAxIE1hciAyMDE5IDE5OjUzOjU3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy80Ml0gbmV0OiBk c2E6IG12ODhlNnh4eDogaGFuZGxlIHVua25vd24gZHVwbGV4IG1vZGVzCiBncmFjZWZ1bGx5IGlu IG12ODhlNnh4eF9wb3J0X3NldF9kdXBsZXgKClsgVXBzdHJlYW0gY29tbWl0IGM2MTk1YThiZGZj NjJhN2NlY2Y3ZGY2ODVlNjQ4NDdhNGI3MDAyNzUgXQoKV2hlbiB0ZXN0aW5nIGFub3RoZXIgaXNz dWUgSSBmYWNlZCB0aGUgcHJvYmxlbSB0aGF0Cm12ODhlNnh4eF9wb3J0X3NldHVwX21hYygpIGZh aWxlZCBkdWUgdG8gRFVQTEVYX1VOS05PV04gYmVpbmcgcGFzc2VkCmFzIGFyZ3VtZW50IHRvIG12 ODhlNnh4eF9wb3J0X3NldF9kdXBsZXgoKS4gV2Ugc2hvdWxkIGhhbmRsZSB0aGlzIGNhc2UKZ3Jh Y2VmdWxseSBhbmQgcmV0dXJuIC1FT1BOT1RTVVBQLCBsaWtlIGUuZy4gbXY4OGU2eHh4X3BvcnRf c2V0X3NwZWVkKCkKaXMgZG9pbmcgaXQuCgpGaXhlczogN2YxYWUwN2I1MWU4ICgibmV0OiBkc2E6 IG12ODhlNnh4eDogYWRkIHBvcnQgZHVwbGV4IHNldHRlciIpClNpZ25lZC1vZmYtYnk6IEhlaW5l ciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVu biA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jIGIvZHJpdmVycy9uZXQvZHNh L212ODhlNnh4eC9wb3J0LmMKaW5kZXggY2Q3ZGI2MGE1MDhiLi5lY2U4OTc1NmEwNzAgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0 L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCkBAIC0xOTAsNyArMTkwLDcgQEAgaW50IG12ODhlNnh4eF9w b3J0X3NldF9kdXBsZXgoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50 IGR1cCkKIAkJLyogbm9ybWFsIGR1cGxleCBkZXRlY3Rpb24gKi8KIAkJYnJlYWs7CiAJZGVmYXVs dDoKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAllcnIg PSBtdjg4ZTZ4eHhfcG9ydF93cml0ZShjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9NQUNfQ1RM LCByZWcpOwotLSAKMi4yMC4xCgoKRnJvbSA2OGNkN2ZjYzJjNzM1ZGUyN2FkMmUyYTgwOGYzNGJl MzgzZTcyMmQ2IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQg PGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDIgTWFyIDIwMTkgMTA6MDY6MDUgKzAx MDAKU3ViamVjdDogW1BBVENIIDA0LzQyXSBuZXQ6IGRzYTogbXY4ZTZ4eHg6IGZpeCBudW1iZXIg b2YgaW50ZXJuYWwgUEhZcyBmb3IKIDg4RTZ4OTAgZmFtaWx5CgpbIFVwc3RyZWFtIGNvbW1pdCA5 NTE1MGYyOWFlNDgwMjc2ZTc2MzY4Y2RmOGE5NTI0YjVhOTZjMGNhIF0KClBvcnRzIDkgYW5kIDEw IGRvbid0IGhhdmUgaW50ZXJuYWwgUEhZJ3MgYnV0IGFyZSAoZGVwZW5kZW50IG9uIHRoZQp2ZXJz aW9uKSBTRVJERVMvU0dNSUkvWEFVSS9SWEFVSSBwb3J0cy4KCnYyOgotIGZpeCBpdCBmb3IgYWxs IDg4RTZ4OTAgZmFtaWx5IG1lbWJlcnMKCkZpeGVzOiBiYzM5MzE1NTdkMWQgKCJuZXQ6IGRzYTog bXY4OGU2eHh4OiBBZGQgbnVtYmVyIG9mIGludGVybmFsIFBIWXMiKQpTaWduZWQtb2ZmLWJ5OiBI ZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3 IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMg fCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMg Yi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCA0ODdmMWRjZDAwNmQuLmI3 NGNkNDlkMGZiMCAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMK KysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAgLTQyMDYsNyArNDIwNiw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10g PSB7CiAJCS5uYW1lID0gIk1hcnZlbGwgODhFNjE5MCIsCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5 NiwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCArIFo4MCAqLwotCQkubnVtX2ludGVybmFsX3Bo eXMgPSAxMSwKKwkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJ CS5tYXhfdmlkID0gODE5MSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNDIyOSw3ICs0 MjI5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFi bGVbXSA9IHsKIAkJLm5hbWUgPSAiTWFydmVsbCA4OEU2MTkwWCIsCiAJCS5udW1fZGF0YWJhc2Vz ID0gNDA5NiwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCArIFo4MCAqLwotCQkubnVtX2ludGVy bmFsX3BoeXMgPSAxMSwKKwkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0g MTYsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNDI1 Miw3ICs0MjUyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4 eHhfdGFibGVbXSA9IHsKIAkJLm5hbWUgPSAiTWFydmVsbCA4OEU2MTkxIiwKIAkJLm51bV9kYXRh YmFzZXMgPSA0MDk2LAogCQkubnVtX3BvcnRzID0gMTEsCS8qIDEwICsgWjgwICovCi0JCS5udW1f aW50ZXJuYWxfcGh5cyA9IDExLAorCQkubnVtX2ludGVybmFsX3BoeXMgPSA5LAogCQkubWF4X3Zp ZCA9IDgxOTEsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAw eDAsCkBAIC00Mjk5LDcgKzQyOTksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9p bmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubmFtZSA9ICJNYXJ2ZWxsIDg4RTYyOTAiLAog CQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgKyBaODAg Ki8KLQkJLm51bV9pbnRlcm5hbF9waHlzID0gMTEsCisJCS5udW1faW50ZXJuYWxfcGh5cyA9IDks CiAJCS5udW1fZ3BpbyA9IDE2LAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5wb3J0X2Jhc2VfYWRk ciA9IDB4MCwKQEAgLTQ0NjEsNyArNDQ2MSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2 eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5uYW1lID0gIk1hcnZlbGwgODhFNjM5 MCIsCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAr IFo4MCAqLwotCQkubnVtX2ludGVybmFsX3BoeXMgPSAxMSwKKwkJLm51bV9pbnRlcm5hbF9waHlz ID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLnBvcnRfYmFz ZV9hZGRyID0gMHgwLApAQCAtNDQ4NCw3ICs0NDg0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBt djg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm5hbWUgPSAiTWFydmVsbCA4 OEU2MzkwWCIsCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKIAkJLm51bV9wb3J0cyA9IDExLAkv KiAxMCArIFo4MCAqLwotCQkubnVtX2ludGVybmFsX3BoeXMgPSAxMSwKKwkJLm51bV9pbnRlcm5h bF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLnBv cnRfYmFzZV9hZGRyID0gMHgwLAotLSAKMi4yMC4xCgoKRnJvbSBiNDRiMGUxNzA5YTQxZTUyNGNj ZmU1MjliNTNkY2NkMjYwNzU4YjBkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYXZ5 YSBTcmVlIEtvdGFnaXJpIDxrYXZ5YXNyZWUua290YWdpcmlAbWljcm9jaGlwLmNvbT4KRGF0ZTog VGh1LCAyOCBGZWIgMjAxOSAwNzozMjoyMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDUvNDJdIG5l dDogbXNjYzogRW5hYmxlIGFsbCBwb3J0cyBpbiBRU0dNSUkKClsgVXBzdHJlYW0gY29tbWl0IDA4 NGU1YmIxNmJkN2RjMmI1NTFiYmQ5ZmIzNThiZjczZTAzZWU4ZDggXQoKV2hlbiBPY2Vsb3QgcGh5 LW1vZGUgaXMgUVNHTUlJLCBhbGwgNCBwb3J0cyBpbnZvbHZlZCBpbgpRU0dNSUkgc2hhbGwgYmUg a2VwdCBvdXQgb2YgcmVzZXQgYW5kClR4IGxhbmVzIHNoYWxsIGJlIGVuYWJsZWQgdG8gcGFzcyB0 aGUgZGF0YS4KCkZpeGVzOiBhNTU2Yzc2YWRjMDUgKCJuZXQ6IG1zY2M6IEFkZCBpbml0aWFsIE9j ZWxvdCBzd2l0Y2ggc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEthdnlhIFNyZWUgS290YWdpcmkg PGthdnlhc3JlZS5rb3RhZ2lyaUBtaWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVlbiBI ZWdlbHVuZCA8U3RlZW4uSGVnZWx1bmRAbWljcm9jaGlwLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5OiBT dGVlbiBIZWdlbHVuZCA8U3RlZW4uSGVnZWx1bmRAbWljcm9jaGlwLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfYm9hcmQuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMKaW5kZXggNGMyM2QxOGJiZjQ0Li4xNGI4M2JiZjgy OGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfYm9hcmQuYwpAQCAtMjY2LDYg KzI2Niw3IEBAIHN0YXRpYyBpbnQgbXNjY19vY2Vsb3RfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAkJc3RydWN0IHBoeSAqc2VyZGVzOwogCQl2b2lkIF9faW9tZW0gKnJlZ3M7 CiAJCWNoYXIgcmVzX25hbWVbOF07CisJCWludCBwaHlfbW9kZTsKIAkJdTMyIHBvcnQ7CiAKIAkJ aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKHBvcnRucCwgInJlZyIsICZwb3J0KSkKQEAgLTI5MSwx MSArMjkyLDExIEBAIHN0YXRpYyBpbnQgbXNjY19vY2Vsb3RfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAKLQkJZXJyID0gb2Zf Z2V0X3BoeV9tb2RlKHBvcnRucCk7Ci0JCWlmIChlcnIgPCAwKQorCQlwaHlfbW9kZSA9IG9mX2dl dF9waHlfbW9kZShwb3J0bnApOworCQlpZiAocGh5X21vZGUgPCAwKQogCQkJb2NlbG90LT5wb3J0 c1twb3J0XS0+cGh5X21vZGUgPSBQSFlfSU5URVJGQUNFX01PREVfTkE7CiAJCWVsc2UKLQkJCW9j ZWxvdC0+cG9ydHNbcG9ydF0tPnBoeV9tb2RlID0gZXJyOworCQkJb2NlbG90LT5wb3J0c1twb3J0 XS0+cGh5X21vZGUgPSBwaHlfbW9kZTsKIAogCQlzd2l0Y2ggKG9jZWxvdC0+cG9ydHNbcG9ydF0t PnBoeV9tb2RlKSB7CiAJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX05BOgpAQCAtMzAzLDYgKzMw NCwxMyBAQCBzdGF0aWMgaW50IG1zY2Nfb2NlbG90X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiAJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJOgogCQkJYnJlYWs7CiAJ CWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1FTR01JSToKKwkJCS8qIEVuc3VyZSBjbG9jayBzaWdu YWxzIGFuZCBzcGVlZCBpcyBzZXQgb24gYWxsCisJCQkgKiBRU0dNSUkgbGlua3MKKwkJCSAqLwor CQkJb2NlbG90X3BvcnRfd3JpdGVsKG9jZWxvdC0+cG9ydHNbcG9ydF0sCisJCQkJCSAgIERFVl9D TE9DS19DRkdfTElOS19TUEVFRAorCQkJCQkgICAoT0NFTE9UX1NQRUVEXzEwMDApLAorCQkJCQkg ICBERVZfQ0xPQ0tfQ0ZHKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZGV2X2VycihvY2Vs b3QtPmRldiwKLS0gCjIuMjAuMQoKCkZyb20gYzEzMWJiMDMyMTk5NGY3NmFmZTJjMmNhNmE3Yjlj YzI1N2I3ZTY2MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDI4IEZlYiAyMDE5IDEyOjU1OjQzIC0wODAw ClN1YmplY3Q6IFtQQVRDSCAwNi80Ml0gbmV0OiBzY2hlZDogcHV0IGJhY2sgcS5xbGVuIGludG8g YSBzaW5nbGUgbG9jYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDQ2YjFjMThmOWRlYjMyNmE3ZTE4 MzQ4ZTY2OGU0YzdhYjdjNzQ1OGIgXQoKSW4gdGhlIHNlcmllcyBmYzhiODFhNTk4MWYgKCJNZXJn ZSBicmFuY2ggJ2xvY2tsZXNzLXFkaXNjLXNlcmllcyciKQpKb2huIG1hZGUgdGhlIGFzc3VtcHRp b24gdGhhdCB0aGUgZGF0YSBwYXRoIGhhZCBubyBuZWVkIHRvIHJlYWQKdGhlIHFkaXNjIHFsZW4g KG51bWJlciBvZiBwYWNrZXRzIGluIHRoZSBxZGlzYykuCgpJdCBpcyB0cnVlIHdoZW4gcGZpZm9f ZmFzdCBpcyB1c2VkIGFzIHRoZSByb290IHFkaXNjLCBvciBhcyBkaXJlY3QgTVEvTVFQUklPCmNo aWxkcmVuLgoKQnV0IHBmaWZvX2Zhc3QgY2FuIGJlIHVzZWQgYXMgbGVhZiBpbiBjbGFzcyBmdWxs IHFkaXNjcywgYW5kIGV4aXN0aW5nCmxvZ2ljIG5lZWRzIHRvIGFjY2VzcyB0aGUgY2hpbGQgcWxl biBpbiBhbiBlZmZpY2llbnQgd2F5LgoKSFRCIGJyZWFrcyBiYWRseSwgc2luY2UgaXQgdXNlcyBj bC0+bGVhZi5xLT5xLnFsZW4gaW4gOgogIGh0Yl9hY3RpdmF0ZSgpIC0+IFdBUk5fT04oKQogIGh0 Yl9kZXF1ZXVlX3RyZWUoKSB0byBkZWNpZGUgaWYgYSBjbGFzcyBjYW4gYmUgaHRiX2RlYWN0aXZh dGVkCiAgd2hlbiBpdCBoYXMgbm8gbW9yZSBwYWNrZXRzLgoKSEZTQywgRFJSLCBDQlEsIFFGUSBo YXZlIHNpbWlsYXIgaXNzdWVzLCBhbmQgc29tZSBjYWxscyB0bwpxZGlzY190cmVlX3JlZHVjZV9i YWNrbG9nKCkgYWxzbyByZWFkIHEucWxlbiBkaXJlY3RseS4KClVzaW5nIHFkaXNjX3FsZW5fc3Vt KCkgKHdoaWNoIGl0ZXJhdGVzIG92ZXIgYWxsIHBvc3NpYmxlIGNwdXMpCmluIHRoZSBkYXRhIHBh dGggaXMgYSBub24gc3RhcnRlci4KCkl0IHNlZW1zIHdlIGhhdmUgdG8gcHV0IGJhY2sgcWxlbiBp biBhIGNlbnRyYWwgbG9jYXRpb24sCmF0IGxlYXN0IGZvciBzdGFibGUga2VybmVscy4KCkZvciBh bGwgcWRpc2MgYnV0IHBmaWZvX2Zhc3QsIHFsZW4gaXMgZ3VhcmRlZCBieSB0aGUgcWRpc2MgbG9j aywKc28gdGhlIGV4aXN0aW5nIHEucWxlbnsrK3wtLX0gYXJlIGNvcnJlY3QuCgpGb3IgJ2xvY2ts ZXNzJyBxZGlzYyAocGZpZm9fZmFzdCBzbyBmYXIpLCB3ZSBuZWVkIHRvIHVzZSBhdG9taWNfe2lu Y3xkZWN9KCkKYmVjYXVzZSB0aGUgc3BpbmxvY2sgbWlnaHQgYmUgbm90IGhlbGQgKGZvciBleGFt cGxlIGZyb20KcGZpZm9fZmFzdF9lbnF1ZXVlKCkgYW5kIHBmaWZvX2Zhc3RfZGVxdWV1ZSgpKQoK VGhpcyBwYXRjaCBhZGRzIGF0b21pY19xbGVuIChpbiB0aGUgc2FtZSBsb2NhdGlvbiB0aGFuIHFs ZW4pCmFuZCByZW5hbWVzIHRoZSBmb2xsb3dpbmcgaGVscGVycywgc2luY2Ugd2Ugd2FudCB0byBl eHByZXNzCnRoZXkgY2FuIGJlIHVzZWQgd2l0aG91dCBxZGlzYyBsb2NrLCBhbmQgdGhhdCBxbGVu IGlzIG5vIGxvbmdlciBwZXJjcHUuCgotIHFkaXNjX3FzdGF0c19jcHVfcWxlbl9kZWMgLT4gcWRp c2NfcXN0YXRzX2F0b21pY19xbGVuX2RlYygpCi0gcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2luYyAt PiBxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5faW5jKCkKCkxhdGVyIChuZXQtbmV4dCkgd2UgbWln aHQgcmV2ZXJ0IHRoaXMgcGF0Y2ggYnkgdHJhY2tpbmcgYWxsIHRoZXNlCnFsZW4gdXNlcyBhbmQg cmVwbGFjZSB0aGVtIGJ5IGEgbW9yZSBlZmZpY2llbnQgbWV0aG9kIChub3QgaGF2aW5nCnRvIGFj Y2VzcyBhIHByZWNpc2UgcWxlbiwgYnV0IGFuIGVtcHR5L25vbl9lbXB0eSBzdGF0dXMgdGhhdCBt aWdodApiZSBsZXNzIGV4cGVuc2l2ZSB0byBtYWludGFpbi90cmFjaykuCgpBbm90aGVyIHBvc3Np YmlsaXR5IGlzIHRvIGhhdmUgYSBsZWdhY3kgcGZpZm9fZmFzdCB2ZXJzaW9uIHRoYXQgd291bGQK YmUgdXNlZCB3aGVuIHVzZWQgYSBhIGNoaWxkIHFkaXNjLCBzaW5jZSB0aGUgcGFyZW50IHFkaXNj IG5lZWRzCmEgc3BpbmxvY2sgYW55d2F5LiBCdXQgdGhlbiwgZnV0dXJlIGxvY2tsZXNzIHFkaXNj cyB3b3VsZCBhbHNvCmhhdmUgdGhlIHNhbWUgcHJvYmxlbS4KCkZpeGVzOiA3ZTY2MDE2ZjJjNjUg KCJuZXQ6IHNjaGVkOiBoZWxwZXJzIHRvIHN1bSBxbGVuIGFuZCBxbGVuIGZvciBwZXIgY3B1IGxv Z2ljIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpD YzogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4KQ2M6IEphbWFsIEhh ZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25n QGdtYWlsLmNvbT4KQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25l dC9zY2hfZ2VuZXJpYy5oIHwgMzEgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogbmV0 L2NvcmUvZ2VuX3N0YXRzLmMgICAgICB8ICAyIC0tCiBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYyAg IHwgMTMgKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAy NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIv aW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAppbmRleCA0ZDczNjQyN2E0Y2IuLjEzMzI3YmQ0MzIz MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAorKysgYi9pbmNsdWRlL25l dC9zY2hfZ2VuZXJpYy5oCkBAIC00OCw3ICs0OCwxMCBAQCBzdHJ1Y3QgcWRpc2Nfc2l6ZV90YWJs ZSB7CiBzdHJ1Y3QgcWRpc2Nfc2tiX2hlYWQgewogCXN0cnVjdCBza19idWZmCSpoZWFkOwogCXN0 cnVjdCBza19idWZmCSp0YWlsOwotCV9fdTMyCQlxbGVuOworCXVuaW9uIHsKKwkJdTMyCQlxbGVu OworCQlhdG9taWNfdAlhdG9taWNfcWxlbjsKKwl9OwogCXNwaW5sb2NrX3QJbG9jazsKIH07CiAK QEAgLTQwNSwyNyArNDA4LDE5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxZGlzY19jYl9wcml2YXRl X3ZhbGlkYXRlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGludCBzeikKIAlCVUlMRF9CVUdf T04oc2l6ZW9mKHFjYi0+ZGF0YSkgPCBzeik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IHFkaXNj X3FsZW5fY3B1KGNvbnN0IHN0cnVjdCBRZGlzYyAqcSkKLXsKLQlyZXR1cm4gdGhpc19jcHVfcHRy KHEtPmNwdV9xc3RhdHMpLT5xbGVuOwotfQotCiBzdGF0aWMgaW5saW5lIGludCBxZGlzY19xbGVu KGNvbnN0IHN0cnVjdCBRZGlzYyAqcSkKIHsKIAlyZXR1cm4gcS0+cS5xbGVuOwogfQogCi1zdGF0 aWMgaW5saW5lIGludCBxZGlzY19xbGVuX3N1bShjb25zdCBzdHJ1Y3QgUWRpc2MgKnEpCitzdGF0 aWMgaW5saW5lIHUzMiBxZGlzY19xbGVuX3N1bShjb25zdCBzdHJ1Y3QgUWRpc2MgKnEpCiB7Ci0J X191MzIgcWxlbiA9IHEtPnFzdGF0cy5xbGVuOwotCWludCBpOworCXUzMiBxbGVuID0gcS0+cXN0 YXRzLnFsZW47CiAKLQlpZiAocS0+ZmxhZ3MgJiBUQ1FfRl9OT0xPQ0spIHsKLQkJZm9yX2VhY2hf cG9zc2libGVfY3B1KGkpCi0JCQlxbGVuICs9IHBlcl9jcHVfcHRyKHEtPmNwdV9xc3RhdHMsIGkp LT5xbGVuOwotCX0gZWxzZSB7CisJaWYgKHEtPmZsYWdzICYgVENRX0ZfTk9MT0NLKQorCQlxbGVu ICs9IGF0b21pY19yZWFkKCZxLT5xLmF0b21pY19xbGVuKTsKKwllbHNlCiAJCXFsZW4gKz0gcS0+ cS5xbGVuOwotCX0KIAogCXJldHVybiBxbGVuOwogfQpAQCAtNzk4LDE0ICs3OTMsMTQgQEAgc3Rh dGljIGlubGluZSB2b2lkIHFkaXNjX3FzdGF0c19jcHVfYmFja2xvZ19pbmMoc3RydWN0IFFkaXNj ICpzY2gsCiAJdGhpc19jcHVfYWRkKHNjaC0+Y3B1X3FzdGF0cy0+YmFja2xvZywgcWRpc2NfcGt0 X2xlbihza2IpKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHFkaXNjX3FzdGF0c19jcHVfcWxl bl9pbmMoc3RydWN0IFFkaXNjICpzY2gpCitzdGF0aWMgaW5saW5lIHZvaWQgcWRpc2NfcXN0YXRz X2F0b21pY19xbGVuX2luYyhzdHJ1Y3QgUWRpc2MgKnNjaCkKIHsKLQl0aGlzX2NwdV9pbmMoc2No LT5jcHVfcXN0YXRzLT5xbGVuKTsKKwlhdG9taWNfaW5jKCZzY2gtPnEuYXRvbWljX3FsZW4pOwog fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2RlYyhzdHJ1Y3Qg UWRpc2MgKnNjaCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5f ZGVjKHN0cnVjdCBRZGlzYyAqc2NoKQogewotCXRoaXNfY3B1X2RlYyhzY2gtPmNwdV9xc3RhdHMt PnFsZW4pOworCWF0b21pY19kZWMoJnNjaC0+cS5hdG9taWNfcWxlbik7CiB9CiAKIHN0YXRpYyBp bmxpbmUgdm9pZCBxZGlzY19xc3RhdHNfY3B1X3JlcXVldWVzX2luYyhzdHJ1Y3QgUWRpc2MgKnNj aCkKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dlbl9zdGF0cy5jIGIvbmV0L2NvcmUvZ2VuX3N0YXRz LmMKaW5kZXggOWJmMWI5YWQxNzgwLi5hYzY3OWY3NGJhNDcgMTAwNjQ0Ci0tLSBhL25ldC9jb3Jl L2dlbl9zdGF0cy5jCisrKyBiL25ldC9jb3JlL2dlbl9zdGF0cy5jCkBAIC0yOTEsNyArMjkxLDYg QEAgX19nbmV0X3N0YXRzX2NvcHlfcXVldWVfY3B1KHN0cnVjdCBnbmV0X3N0YXRzX3F1ZXVlICpx c3RhdHMsCiAJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpIHsKIAkJY29uc3Qgc3RydWN0IGduZXRf c3RhdHNfcXVldWUgKnFjcHUgPSBwZXJfY3B1X3B0cihxLCBpKTsKIAotCQlxc3RhdHMtPnFsZW4g PSAwOwogCQlxc3RhdHMtPmJhY2tsb2cgKz0gcWNwdS0+YmFja2xvZzsKIAkJcXN0YXRzLT5kcm9w cyArPSBxY3B1LT5kcm9wczsKIAkJcXN0YXRzLT5yZXF1ZXVlcyArPSBxY3B1LT5yZXF1ZXVlczsK QEAgLTMwNyw3ICszMDYsNiBAQCB2b2lkIF9fZ25ldF9zdGF0c19jb3B5X3F1ZXVlKHN0cnVjdCBn bmV0X3N0YXRzX3F1ZXVlICpxc3RhdHMsCiAJaWYgKGNwdSkgewogCQlfX2duZXRfc3RhdHNfY29w eV9xdWV1ZV9jcHUocXN0YXRzLCBjcHUpOwogCX0gZWxzZSB7Ci0JCXFzdGF0cy0+cWxlbiA9IHEt PnFsZW47CiAJCXFzdGF0cy0+YmFja2xvZyA9IHEtPmJhY2tsb2c7CiAJCXFzdGF0cy0+ZHJvcHMg PSBxLT5kcm9wczsKIAkJcXN0YXRzLT5yZXF1ZXVlcyA9IHEtPnJlcXVldWVzOwpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMgYi9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwppbmRl eCBkZTE2NjNmN2QzYWQuLjUyZjQyOWIxY2RkNSAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9n ZW5lcmljLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKQEAgLTY4LDcgKzY4LDcgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfZGVxdWV1ZV9iYWRfdHhxKHN0cnVj dCBRZGlzYyAqcSkKIAkJCXNrYiA9IF9fc2tiX2RlcXVldWUoJnEtPnNrYl9iYWRfdHhxKTsKIAkJ CWlmIChxZGlzY19pc19wZXJjcHVfc3RhdHMocSkpIHsKIAkJCQlxZGlzY19xc3RhdHNfY3B1X2Jh Y2tsb2dfZGVjKHEsIHNrYik7Ci0JCQkJcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2RlYyhxKTsKKwkJ CQlxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5fZGVjKHEpOwogCQkJfSBlbHNlIHsKIAkJCQlxZGlz Y19xc3RhdHNfYmFja2xvZ19kZWMocSwgc2tiKTsKIAkJCQlxLT5xLnFsZW4tLTsKQEAgLTEwOCw3 ICsxMDgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcWRpc2NfZW5xdWV1ZV9za2JfYmFkX3R4cShz dHJ1Y3QgUWRpc2MgKnEsCiAKIAlpZiAocWRpc2NfaXNfcGVyY3B1X3N0YXRzKHEpKSB7CiAJCXFk aXNjX3FzdGF0c19jcHVfYmFja2xvZ19pbmMocSwgc2tiKTsKLQkJcWRpc2NfcXN0YXRzX2NwdV9x bGVuX2luYyhxKTsKKwkJcWRpc2NfcXN0YXRzX2F0b21pY19xbGVuX2luYyhxKTsKIAl9IGVsc2Ug ewogCQlxZGlzY19xc3RhdHNfYmFja2xvZ19pbmMocSwgc2tiKTsKIAkJcS0+cS5xbGVuKys7CkBA IC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIGlubGluZSBpbnQgZGV2X3JlcXVldWVfc2tiX2xvY2tl ZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnEpCiAKIAkJcWRpc2NfcXN0YXRz X2NwdV9yZXF1ZXVlc19pbmMocSk7CiAJCXFkaXNjX3FzdGF0c19jcHVfYmFja2xvZ19pbmMocSwg c2tiKTsKLQkJcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2luYyhxKTsKKwkJcWRpc2NfcXN0YXRzX2F0 b21pY19xbGVuX2luYyhxKTsKIAogCQlza2IgPSBuZXh0OwogCX0KQEAgLTI1Miw3ICsyNTIsNyBA QCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRlcXVldWVfc2tiKHN0cnVjdCBRZGlzYyAqcSwgYm9v bCAqdmFsaWRhdGUsCiAJCQlza2IgPSBfX3NrYl9kZXF1ZXVlKCZxLT5nc29fc2tiKTsKIAkJCWlm IChxZGlzY19pc19wZXJjcHVfc3RhdHMocSkpIHsKIAkJCQlxZGlzY19xc3RhdHNfY3B1X2JhY2ts b2dfZGVjKHEsIHNrYik7Ci0JCQkJcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2RlYyhxKTsKKwkJCQlx ZGlzY19xc3RhdHNfYXRvbWljX3FsZW5fZGVjKHEpOwogCQkJfSBlbHNlIHsKIAkJCQlxZGlzY19x c3RhdHNfYmFja2xvZ19kZWMocSwgc2tiKTsKIAkJCQlxLT5xLnFsZW4tLTsKQEAgLTY0NSw3ICs2 NDUsNyBAQCBzdGF0aWMgaW50IHBmaWZvX2Zhc3RfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnFkaXNjLAogCWlmICh1bmxpa2VseShlcnIpKQogCQlyZXR1cm4gcWRp c2NfZHJvcF9jcHUoc2tiLCBxZGlzYywgdG9fZnJlZSk7CiAKLQlxZGlzY19xc3RhdHNfY3B1X3Fs ZW5faW5jKHFkaXNjKTsKKwlxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5faW5jKHFkaXNjKTsKIAkv KiBOb3RlOiBza2IgY2FuIG5vdCBiZSB1c2VkIGFmdGVyIHNrYl9hcnJheV9wcm9kdWNlKCksCiAJ ICogc28gd2UgYmV0dGVyIG5vdCB1c2UgcWRpc2NfcXN0YXRzX2NwdV9iYWNrbG9nX2luYygpCiAJ ICovCkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpwZmlmb19mYXN0 X2RlcXVldWUoc3RydWN0IFFkaXNjICpxZGlzYykKIAlpZiAobGlrZWx5KHNrYikpIHsKIAkJcWRp c2NfcXN0YXRzX2NwdV9iYWNrbG9nX2RlYyhxZGlzYywgc2tiKTsKIAkJcWRpc2NfYnN0YXRzX2Nw dV91cGRhdGUocWRpc2MsIHNrYik7Ci0JCXFkaXNjX3FzdGF0c19jcHVfcWxlbl9kZWMocWRpc2Mp OworCQlxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5fZGVjKHFkaXNjKTsKIAl9CiAKIAlyZXR1cm4g c2tiOwpAQCAtNzE0LDcgKzcxNCw2IEBAIHN0YXRpYyB2b2lkIHBmaWZvX2Zhc3RfcmVzZXQoc3Ry dWN0IFFkaXNjICpxZGlzYykKIAkJc3RydWN0IGduZXRfc3RhdHNfcXVldWUgKnEgPSBwZXJfY3B1 X3B0cihxZGlzYy0+Y3B1X3FzdGF0cywgaSk7CiAKIAkJcS0+YmFja2xvZyA9IDA7Ci0JCXEtPnFs ZW4gPSAwOwogCX0KIH0KIAotLSAKMi4yMC4xCgoKRnJvbSAwNmYwMGEzMDJiMmM0YzUxYzMwMGNk NTc2MWVlMTZjZjQ2NmVkY2QzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVIYWli aW5nIDx5dWVoYWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFNhdCwgMiBNYXIgMjAxOSAxMDozNDo1 NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvNDJdIG5ldC1zeXNmczogRml4IG1lbSBsZWFrIGlu IG5ldGRldl9yZWdpc3Rlcl9rb2JqZWN0CgpbIFVwc3RyZWFtIGNvbW1pdCA4OTVhNWU5NmRiZDYz ODZjOGU3OGU1Yjc4ZTA2N2RjYzY3YjdmMGFiIF0KCnN5emthbGxlciByZXBvcnQgdGhpczoKQlVH OiBtZW1vcnkgbGVhawp1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4ODM3YTcxYTUwMCAoc2l6 ZSAyNTYpOgogIGNvbW0gInN5ei1leGVjdXRvci4yIiwgcGlkIDk3NzAsIGppZmZpZXMgNDI5Nzgy NTEyNSAoYWdlIDE3Ljg0M3MpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDAw IDAwIDAwIGFkIDRlIGFkIGRlIGZmIGZmIGZmIGZmIDAwIDAwIDAwIDAwICAuLi4uLk4uLi4uLi4u Li4uCiAgICBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiAyMCBjMCBlZiA4NiBmZiBmZiBmZiBmZiAg Li4uLi4uLi4gLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAwMDAwMDBkYjEyNjI0Yj5dIG5l dGRldl9yZWdpc3Rlcl9rb2JqZWN0KzB4MTI0LzB4MmUwIG5ldC9jb3JlL25ldC1zeXNmcy5jOjE3 NTEKICAgIFs8MDAwMDAwMDBkYzQ5YTk5ND5dIHJlZ2lzdGVyX25ldGRldmljZSsweGNjMS8weDEy NzAgbmV0L2NvcmUvZGV2LmM6ODUxNgogICAgWzwwMDAwMDAwMGU1ZjNmZWEwPl0gdHVuX3NldF9p ZmYgZHJpdmVycy9uZXQvdHVuLmM6MjY0OSBbaW5saW5lXQogICAgWzwwMDAwMDAwMGU1ZjNmZWEw Pl0gX190dW5fY2hyX2lvY3RsKzB4MjIxOC8weDNkMjAgZHJpdmVycy9uZXQvdHVuLmM6Mjg4Mwog ICAgWzwwMDAwMDAwMDFiOGFjMTI3Pl0gdmZzX2lvY3RsIGZzL2lvY3RsLmM6NDYgW2lubGluZV0K ICAgIFs8MDAwMDAwMDAxYjhhYzEyNz5dIGRvX3Zmc19pb2N0bCsweDFhNS8weDEwZTAgZnMvaW9j dGwuYzo2OTAKICAgIFs8MDAwMDAwMDA3OWIyNjlmOD5dIGtzeXNfaW9jdGwrMHg4OS8weGEwIGZz L2lvY3RsLmM6NzA1CiAgICBbPDAwMDAwMDAwZGU2NDliZWI+XSBfX2RvX3N5c19pb2N0bCBmcy9p b2N0bC5jOjcxMiBbaW5saW5lXQogICAgWzwwMDAwMDAwMGRlNjQ5YmViPl0gX19zZV9zeXNfaW9j dGwgZnMvaW9jdGwuYzo3MTAgW2lubGluZV0KICAgIFs8MDAwMDAwMDBkZTY0OWJlYj5dIF9feDY0 X3N5c19pb2N0bCsweDc0LzB4YjAgZnMvaW9jdGwuYzo3MTAKICAgIFs8MDAwMDAwMDA3ZWJkZWQx ZT5dIGRvX3N5c2NhbGxfNjQrMHhjOC8weDU4MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTAK ICAgIFs8MDAwMDAwMDBkYjMxNWQzNj5dIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ5LzB4YmUKICAgIFs8MDAwMDAwMDAxMTViZTliYj5dIDB4ZmZmZmZmZmZmZmZmZmZmZgoKSXQg c2hvdWxkIGNhbGwga3NldF91bnJlZ2lzdGVyIHRvIGZyZWUgJ2Rldi0+cXVldWVzX2tzZXQnCmlu IGVycm9yIHBhdGggb2YgcmVnaXN0ZXJfcXVldWVfa29iamVjdHMsIG90aGVyd2lzZSB3aWxsIGNh dXNlIGEgbWVtIGxlYWsuCgpSZXBvcnRlZC1ieTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5j b20+CkZpeGVzOiAxZDI0ZWI0ODE1ZDEgKCJ4cHM6IFRyYW5zbWl0IFBhY2tldCBTdGVlcmluZyIp ClNpZ25lZC1vZmYtYnk6IFl1ZUhhaWJpbmcgPHl1ZWhhaWJpbmdAaHVhd2VpLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9j b3JlL25ldC1zeXNmcy5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25ldC9jb3JlL25ldC1zeXNmcy5j CmluZGV4IGJkNjdjNGQwZmNmZC4uMmFhYmI3ZWIwODU0IDEwMDY0NAotLS0gYS9uZXQvY29yZS9u ZXQtc3lzZnMuYworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwpAQCAtMTU0Nyw2ICsxNTQ3LDkg QEAgc3RhdGljIGludCByZWdpc3Rlcl9xdWV1ZV9rb2JqZWN0cyhzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogZXJyb3I6CiAJbmV0ZGV2X3F1ZXVlX3VwZGF0ZV9rb2JqZWN0cyhkZXYsIHR4cSwgMCk7 CiAJbmV0X3J4X3F1ZXVlX3VwZGF0ZV9rb2JqZWN0cyhkZXYsIHJ4cSwgMCk7CisjaWZkZWYgQ09O RklHX1NZU0ZTCisJa3NldF91bnJlZ2lzdGVyKGRldi0+cXVldWVzX2tzZXQpOworI2VuZGlmCiAJ cmV0dXJuIGVycm9yOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDhiNTc2YmEwMjZmYjQ1YThhZjQ1 NjI0ODVkNTBhMjJmMzQ4ODcwNDYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtyaXN0 aWFuIEV2ZW5zZW4gPGtyaXN0aWFuLmV2ZW5zZW5AZ21haWwuY29tPgpEYXRlOiBTYXQsIDIgTWFy IDIwMTkgMTM6MzI6MjYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4LzQyXSBxbWlfd3dhbjogQWRk IHN1cHBvcnQgZm9yIFF1ZWN0ZWwgRUcxMi9FTTEyCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA4MjJlNDRiNDVlYjk5MWM2MzQ4N2M1ZTJjZTdkNjM2 NDExODcwYThkIF0KClF1ZWN0ZWwgRUcxMiAobW9kdWxlKS9FTTEyIChNLjIgY2FyZCkgaXMgYSBD YXQuIDEyIExURSBtb2RlbS4gVGhlIG1vZGVtCmJlaGF2ZXMgaW4gdGhlIHNhbWUgd2F5IGFzIHRo ZSBFUDA2LCBzbyB0aGUgInNldCBEVFIiLXF1aXJrIG11c3QgYmUKYXBwbGllZCBhbmQgdGhlIGRp YWdub3N0aWMtaW50ZXJmYWNlIGNoZWNrIHBlcmZvcm1lZC4gU2luY2UgdGhlCmRpYWdub3N0aWMt Y2hlY2sgbm93IGFwcGxpZXMgdG8gbW9yZSBtb2RlbXMsIEkgaGF2ZSByZW5hbWVkIHRoZSBmdW5j dGlvbgpmcm9tIHF1ZWN0ZWxfZXAwNl9kaWFnX2RldGVjdGVkKCkgdG8gcXVlY3RlbF9kaWFnX2Rl dGVjdGVkKCkuCgpTaWduZWQtb2ZmLWJ5OiBLcmlzdGlhbiBFdmVuc2VuIDxrcmlzdGlhbi5ldmVu c2VuQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAyNiArKysrKysrKysrKysrKysrKystLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYwppbmRleCA3MzVhZDgzOGUyYmEuLjZlMzgxMzU0ZjY1OCAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvdXNiL3FtaV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAg LTk3Niw2ICs5NzYsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1 Y3RzW10gPSB7CiAJCQkJCSAgICAgIDB4ZmYpLAogCQkuZHJpdmVyX2luZm8JICAgID0gKHVuc2ln bmVkIGxvbmcpJnFtaV93d2FuX2luZm9fcXVpcmtfZHRyLAogCX0sCisJewkvKiBRdWVjdGVsIEVH MTIvRU0xMiAqLworCQlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDJjN2MsIDB4MDUx MiwKKwkJCQkJICAgICAgVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCQkJCQkgICAgICBVU0JfU1VC Q0xBU1NfVkVORE9SX1NQRUMsCisJCQkJCSAgICAgIDB4ZmYpLAorCQkuZHJpdmVyX2luZm8JICAg ID0gKHVuc2lnbmVkIGxvbmcpJnFtaV93d2FuX2luZm9fcXVpcmtfZHRyLAorCX0sCiAKIAkvKiAz LiBDb21iaW5lZCBpbnRlcmZhY2UgZGV2aWNlcyBtYXRjaGluZyBvbiBpbnRlcmZhY2UgbnVtYmVy ICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDQwOCwgMHhlYTQyLCA0KX0sCS8qIFlvdGEgLyBNZWdh Zm9uIE0xMDAtMSAqLwpAQCAtMTM0MywxNyArMTM1MCwyMCBAQCBzdGF0aWMgYm9vbCBxdWVjdGVs X2VjMjBfZGV0ZWN0ZWQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCiAJcmV0dXJuIGZhbHNl OwogfQogCi1zdGF0aWMgYm9vbCBxdWVjdGVsX2VwMDZfZGlhZ19kZXRlY3RlZChzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZikKK3N0YXRpYyBib29sIHF1ZWN0ZWxfZGlhZ19kZXRlY3RlZChzdHJ1 Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKIHsKIAlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50 ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKIAlzdHJ1Y3QgdXNiX2ludGVyZmFjZV9kZXNjcmlwdG9y IGludGZfZGVzYyA9IGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjOworCXUxNiBpZF92ZW5kb3Ig PSBsZTE2X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpOworCXUxNiBpZF9wcm9kdWN0 ID0gbGUxNl90b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCk7CiAKLQlpZiAobGUxNl90 b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSAweDJjN2MgJiYKLQkgICAgbGUxNl90 b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkgPT0gMHgwMzA2ICYmCi0JICAgIGludGZf ZGVzYy5iTnVtRW5kcG9pbnRzID09IDIpCi0JCXJldHVybiB0cnVlOworCWlmIChpZF92ZW5kb3Ig IT0gMHgyYzdjIHx8IGludGZfZGVzYy5iTnVtRW5kcG9pbnRzICE9IDIpCisJCXJldHVybiBmYWxz ZTsKIAotCXJldHVybiBmYWxzZTsKKwlpZiAoaWRfcHJvZHVjdCA9PSAweDAzMDYgfHwgaWRfcHJv ZHVjdCA9PSAweDA1MTIpCisJCXJldHVybiB0cnVlOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOwog fQogCiBzdGF0aWMgaW50IHFtaV93d2FuX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRm LApAQCAtMTM5MCwxMyArMTQwMCwxMyBAQCBzdGF0aWMgaW50IHFtaV93d2FuX3Byb2JlKHN0cnVj dCB1c2JfaW50ZXJmYWNlICppbnRmLAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQkvKiBRdWVj dGVsIEVQMDYvRU0wNi9FRzA2IHN1cHBvcnRzIGR5bmFtaWMgaW50ZXJmYWNlIGNvbmZpZ3VyYXRp b24sIHNvCisJLyogU2V2ZXJhbCBRdWVjdGVsIG1vZGVtcyBzdXBwb3J0cyBkeW5hbWljIGludGVy ZmFjZSBjb25maWd1cmF0aW9uLCBzbwogCSAqIHdlIG5lZWQgdG8gbWF0Y2ggb24gY2xhc3Mvc3Vi Y2xhc3MvcHJvdG9jb2wuIFRoZXNlIHZhbHVlcyBhcmUKIAkgKiBpZGVudGljYWwgZm9yIHRoZSBk aWFnbm9zdGljLSBhbmQgUU1JLWludGVyZmFjZSwgYnV0IGJOdW1FbmRwb2ludHMgaXMKIAkgKiBk aWZmZXJlbnQuIElnbm9yZSB0aGUgY3VycmVudCBpbnRlcmZhY2UgaWYgdGhlIG51bWJlciBvZiBl bmRwb2ludHMKIAkgKiB0aGUgbnVtYmVyIGZvciB0aGUgZGlhZyBpbnRlcmZhY2UgKHR3bykuCiAJ ICovCi0JaWYgKHF1ZWN0ZWxfZXAwNl9kaWFnX2RldGVjdGVkKGludGYpKQorCWlmIChxdWVjdGVs X2RpYWdfZGV0ZWN0ZWQoaW50ZikpCiAJCXJldHVybiAtRU5PREVWOwogCiAJcmV0dXJuIHVzYm5l dF9wcm9iZShpbnRmLCBpZCk7Ci0tIAoyLjIwLjEKCgpGcm9tIDkxNWY5NDkxYTQ1ZTE2NzE5NDk0 MGJmNTY5NjI5NzZiMGNmOGY3NGEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBM b25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzIE1hciAyMDE5IDE2OjUwOjI2 ICswODAwClN1YmplY3Q6IFtQQVRDSCAwOS80Ml0gc2N0cDogY2FsbCBpb3ZfaXRlcl9yZXZlcnQo KSBhZnRlciBzZW5kaW5nIEFCT1JUCgpbIFVwc3RyZWFtIGNvbW1pdCA5MDFlZmUxMjMxOGIxZWE4 ZDNlMmM4OGE3Yjc1ZWQ2ZTZkNWQ3MjQ1IF0KClRoZSB1c2VyIG1zZyBpcyBhbHNvIGNvcGllZCB0 byB0aGUgYWJvcnQgcGFja2V0IHdoZW4gZG9pbmcgU0NUUF9BQk9SVCBpbgpzY3RwX3NlbmRtc2df Y2hlY2tfc2ZsYWdzKCkuIFdoZW4gU0NUUF9TRU5EQUxMIGlzIHNldCwgaW92X2l0ZXJfcmV2ZXJ0 KCkKc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQgZm9yIHNlbmRpbmcgYWJvcnQgb24gdGhlIG5leHQg YXNvYyB3aXRoIGNvcHlpbmcKdGhpcyBtc2cuIE90aGVyd2lzZSwgbWVtY3B5X2Zyb21fbXNnKCkg aW4gc2N0cF9tYWtlX2Fib3J0X3VzZXIoKSB3aWxsCmZhaWwgYW5kIHJldHVybiBlcnJvci4KCkZp eGVzOiA0OTEwMjgwNTAzZjMgKCJzY3RwOiBhZGQgc3VwcG9ydCBmb3Igc25kIGZsYWcgU0NUUF9T RU5EQUxMIHByb2Nlc3MgaW4gc2VuZG1zZyIpClJlcG9ydGVkLWJ5OiBZaW5nIFh1IDx5aW54dUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAv c29ja2V0LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggYjdhNTM0ZjZk N2MyLi4xYjU3MjhlOWM0OTcgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25l dC9zY3RwL3NvY2tldC5jCkBAIC0xODY2LDYgKzE4NjYsNyBAQCBzdGF0aWMgaW50IHNjdHBfc2Vu ZG1zZ19jaGVja19zZmxhZ3Moc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAKIAkJcHJf ZGVidWcoIiVzOiBhYm9ydGluZyBhc3NvY2lhdGlvbjolcFxuIiwgX19mdW5jX18sIGFzb2MpOwog CQlzY3RwX3ByaW1pdGl2ZV9BQk9SVChuZXQsIGFzb2MsIGNodW5rKTsKKwkJaW92X2l0ZXJfcmV2 ZXJ0KCZtc2ctPm1zZ19pdGVyLCBtc2dfbGVuKTsKIAogCQlyZXR1cm4gMDsKIAl9Ci0tIAoyLjIw LjEKCgpGcm9tIGExN2VjMmNiNjViNWI1Y2U3ZjFlZTZhYWM1NWRlOGY2MzRkODA0MWQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fu b25pY2FsLmNvbT4KRGF0ZTogTW9uLCA0IE1hciAyMDE5IDE1OjAwOjAzICswODAwClN1YmplY3Q6 IFtQQVRDSCAxMC80Ml0gc2t5MjogRGlzYWJsZSBNU0kgb24gRGVsbCBJbnNwaXJvbiAxNTQ1IGFu ZCBHYXRld2F5CiBQLTc5CgpbIFVwc3RyZWFtIGNvbW1pdCBiMzNiN2NkNmZkODY0NzhkZDI4OTBh OWFiZWI2ZjAzNmFhMDFmZGY3IF0KClNvbWUgc2t5MiBjaGlwcyBmaXJlIElSUSBhZnRlciBTMywg YmVmb3JlIHRoZSBkcml2ZXIgaXMgZnVsbHkgcmVzdW1lZDoKWyA2ODYuODA0ODc3XSBkb19JUlE6 IDEuMzcgTm8gaXJxIGhhbmRsZXIgZm9yIHZlY3RvcgoKVGhpcyBpcyBsaWtlbHkgYSBwbGF0Zm9y bSBidWcgdGhhdCBkZXZpY2UgaXNuJ3QgZnVsbHkgcXVpZXNjZWQgZHVyaW5nClMzLiBVc2UgTVNJ LVgsIG1hc2thYmxlIE1TSSBvciBJTlR4IGNhbiBwcmV2ZW50IHRoaXMgaXNzdWUgZnJvbQpoYXBw ZW5pbmcuCgpTaW5jZSBNU0ktWCBhbmQgbWFza2FibGUgTVNJIGFyZSBub3Qgc3VwcG9ydGVkIGJ5 IHRoaXMgZGV2aWNlLCBmYWxsYmFjawp0byB1c2UgSU5UeCBvbiBhZmZlY3RlZCBwbGF0Zm9ybXMu CgpCdWdMaW5rOiBodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC9idWdzLzE4MDcyNTkKQnVnTGlu azogaHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvYnVncy8xODA5ODQzClNpZ25lZC1vZmYtYnk6 IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKystCiAx IGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWFydmVsbC9za3kyLmMKaW5kZXggYWUyZjM1MDM5MzQzLi4xNDg1ZjY2Y2Y3YjAgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVk ZSA8bGludXgvbWlpLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8 bGludXgvb2ZfbmV0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1pLmg+CiAKICNpbmNsdWRlIDxhc20v aXJxLmg+CiAKQEAgLTkzLDcgKzk0LDcgQEAgc3RhdGljIGludCBjb3B5YnJlYWsgX19yZWFkX21v c3RseSA9IDEyODsKIG1vZHVsZV9wYXJhbShjb3B5YnJlYWssIGludCwgMCk7CiBNT0RVTEVfUEFS TV9ERVNDKGNvcHlicmVhaywgIlJlY2VpdmUgY29weSB0aHJlc2hvbGQiKTsKIAotc3RhdGljIGlu dCBkaXNhYmxlX21zaSA9IDA7CitzdGF0aWMgaW50IGRpc2FibGVfbXNpID0gLTE7CiBtb2R1bGVf cGFyYW0oZGlzYWJsZV9tc2ksIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfbXNp LCAiRGlzYWJsZSBNZXNzYWdlIFNpZ25hbGVkIEludGVycnVwdCAoTVNJKSIpOwogCkBAIC00OTMx LDYgKzQ5MzIsMjQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnNreTJfbmFtZSh1OCBjaGlwaWQsIGNo YXIgKmJ1ZiwgaW50IHN6KQogCXJldHVybiBidWY7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1pX3N5c3RlbV9pZCBtc2lfYmxhY2tsaXN0W10gPSB7CisJeworCQkuaWRlbnQgPSAiRGVsbCBJ bnNwaXJvbiAxNTQ1IiwKKwkJLm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5E T1IsICJEZWxsIEluYy4iKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSW5zcGly b24gMTU0NSIpLAorCQl9LAorCX0sCisJeworCQkuaWRlbnQgPSAiR2F0ZXdheSBQLTc5IiwKKwkJ Lm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJHYXRld2F5IiksCisJ CQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlAtNzkiKSwKKwkJfSwKKwl9LAorCXt9Cit9 OworCiBzdGF0aWMgaW50IHNreTJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgKmRl djE7CkBAIC01MDQyLDYgKzUwNjEsOSBAQCBzdGF0aWMgaW50IHNreTJfcHJvYmUoc3RydWN0IHBj aV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAJCWdvdG8gZXJy X291dF9mcmVlX3BjaTsKIAl9CiAKKwlpZiAoZGlzYWJsZV9tc2kgPT0gLTEpCisJCWRpc2FibGVf bXNpID0gISFkbWlfY2hlY2tfc3lzdGVtKG1zaV9ibGFja2xpc3QpOworCiAJaWYgKCFkaXNhYmxl X21zaSAmJiBwY2lfZW5hYmxlX21zaShwZGV2KSA9PSAwKSB7CiAJCWVyciA9IHNreTJfdGVzdF9t c2koaHcpOwogCQlpZiAoZXJyKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIGFiZmJhMzBiMzg1ZjU3MjU1 OTJiNGJhMTNmMmNlZTljZmIyOGQ1YjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElk byBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAzIE1hciAyMDE5IDA3 OjM1OjUxICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMS80Ml0gdGVhbTogRnJlZSBCUEYgZmlsdGVy IHdoZW4gdW5yZWdpc3RlcmluZyBuZXRkZXYKClsgVXBzdHJlYW0gY29tbWl0IDY5MmMzMWJkNDA1 NDIxMjMxMjM5NmIxZDMwM2JmZmFiMmM1YjkzYTcgXQoKV2hlbiB0ZWFtIGlzIHVzZWQgaW4gbG9h ZGJhbGFuY2UgbW9kZSBhIEJQRiBmaWx0ZXIgY2FuIGJlIHVzZWQgdG8KcHJvdmlkZSBhIGhhc2gg d2hpY2ggd2lsbCBkZXRlcm1pbmUgdGhlIFR4IHBvcnQuCgpXaGVuIHRoZSBuZXRkZXYgaXMgbGF0 ZXIgdW5yZWdpc3RlcmVkIHRoZSBmaWx0ZXIgaXMgbm90IGZyZWVkIHdoaWNoCnJlc3VsdHMgaW4g bWVtb3J5IGxlYWtzIFsxXS4KCkZpeCBieSBmcmVlaW5nIHRoZSBwcm9ncmFtIGFuZCB0aGUgY29y cmVzcG9uZGluZyBmaWx0ZXIgd2hlbgp1bnJlZ2lzdGVyaW5nIHRoZSBuZXRkZXYuCgpbMV0KdW5y ZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODgxZGJjNDdjYzggKHNpemUgMTYpOgogIGNvbW0gInRl YW1kIiwgcGlkIDMwNjgsIGppZmZpZXMgNDI5NDk5Nzc3OSAoYWdlIDQzOC4yNDdzKQogIGhleCBk dW1wIChmaXJzdCAxNiBieXRlcyk6CiAgICBhMyAwMCA2YiA2YiA2YiA2YiA2YiA2YiA4OCBhNSA4 MiBlMSA4MSA4OCBmZiBmZiAgLi5ra2tra2suLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAw MDAwMDA4YTNiNDdlMz5dIHRlYW1fbmxfY21kX29wdGlvbnNfc2V0KzB4ODhmLzB4MTFiMAogICAg WzwwMDAwMDAwMGM0ZjRmMjdlPl0gZ2VubF9mYW1pbHlfcmN2X21zZysweDc4Zi8weDEwODAKICAg IFs8MDAwMDAwMDA2MTBlZjgzOD5dIGdlbmxfcmN2X21zZysweGNhLzB4MTcwCiAgICBbPDAwMDAw MDAwYTI4MWRmOTM+XSBuZXRsaW5rX3Jjdl9za2IrMHgxMzIvMHgzODAKICAgIFs8MDAwMDAwMDA0 ZDk0NDhhMj5dIGdlbmxfcmN2KzB4MjkvMHg0MAogICAgWzwwMDAwMDAwMDAzMjFiMmY0Pl0gbmV0 bGlua191bmljYXN0KzB4NGMwLzB4NjkwCiAgICBbPDAwMDAwMDAwOGMyNWRmZmI+XSBuZXRsaW5r X3NlbmRtc2crMHg5MjkvMHhlMTAKICAgIFs8MDAwMDAwMDAwNjgyOThjNT5dIHNvY2tfc2VuZG1z ZysweGM4LzB4MTEwCiAgICBbPDAwMDAwMDAwODJhNjFmZjA+XSBfX19zeXNfc2VuZG1zZysweDc3 YS8weDhmMAogICAgWzwwMDAwMDAwMDY2M2FlMjlkPl0gX19zeXNfc2VuZG1zZysweGY3LzB4MjUw CiAgICBbPDAwMDAwMDAwMjdjNWYxMWE+XSBkb19zeXNjYWxsXzY0KzB4MTRkLzB4NjEwCiAgICBb PDAwMDAwMDAwNmNmYmM4ZDM+XSBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8w eGJlCiAgICBbPDAwMDAwMDAwZTIzMTk3ZTI+XSAweGZmZmZmZmZmZmZmZmZmZmYKdW5yZWZlcmVu Y2VkIG9iamVjdCAweGZmZmY4ODgxZTE4MmE1ODggKHNpemUgMjA0OCk6CiAgY29tbSAidGVhbWQi LCBwaWQgMzA2OCwgamlmZmllcyA0Mjk0OTk3NzgwIChhZ2UgNDM4LjI0N3MpCiAgaGV4IGR1bXAg KGZpcnN0IDMyIGJ5dGVzKToKICAgIDIwIDAwIDAwIDAwIDAyIDAwIDAwIDAwIDMwIDAwIDAwIDAw IDI4IGYwIGZmIGZmICAgLi4uLi4uLjAuLi4oLi4uCiAgICAwNyAwMCAwMCAwMCAwMCAwMCAwMCAw MCAyOCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4oLi4uLi4uLgogIGJhY2t0cmFjZToK ICAgIFs8MDAwMDAwMDAyZGFmMDFmYj5dIGxiX2JwZl9mdW5jX3NldCsweDQ1Yy8weDZkMAogICAg WzwwMDAwMDAwMDhhM2I0N2UzPl0gdGVhbV9ubF9jbWRfb3B0aW9uc19zZXQrMHg4OGYvMHgxMWIw CiAgICBbPDAwMDAwMDAwYzRmNGYyN2U+XSBnZW5sX2ZhbWlseV9yY3ZfbXNnKzB4NzhmLzB4MTA4 MAogICAgWzwwMDAwMDAwMDYxMGVmODM4Pl0gZ2VubF9yY3ZfbXNnKzB4Y2EvMHgxNzAKICAgIFs8 MDAwMDAwMDBhMjgxZGY5Mz5dIG5ldGxpbmtfcmN2X3NrYisweDEzMi8weDM4MAogICAgWzwwMDAw MDAwMDRkOTQ0OGEyPl0gZ2VubF9yY3YrMHgyOS8weDQwCiAgICBbPDAwMDAwMDAwMDMyMWIyZjQ+ XSBuZXRsaW5rX3VuaWNhc3QrMHg0YzAvMHg2OTAKICAgIFs8MDAwMDAwMDA4YzI1ZGZmYj5dIG5l dGxpbmtfc2VuZG1zZysweDkyOS8weGUxMAogICAgWzwwMDAwMDAwMDA2ODI5OGM1Pl0gc29ja19z ZW5kbXNnKzB4YzgvMHgxMTAKICAgIFs8MDAwMDAwMDA4MmE2MWZmMD5dIF9fX3N5c19zZW5kbXNn KzB4NzdhLzB4OGYwCiAgICBbPDAwMDAwMDAwNjYzYWUyOWQ+XSBfX3N5c19zZW5kbXNnKzB4Zjcv MHgyNTAKICAgIFs8MDAwMDAwMDAyN2M1ZjExYT5dIGRvX3N5c2NhbGxfNjQrMHgxNGQvMHg2MTAK ICAgIFs8MDAwMDAwMDA2Y2ZiYzhkMz5dIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ5LzB4YmUKICAgIFs8MDAwMDAwMDBlMjMxOTdlMj5dIDB4ZmZmZmZmZmZmZmZmZmZmZgoKRml4 ZXM6IDAxZDdmMzBhOWY5NiAoInRlYW06IGFkZCBsb2FkYmFsYW5jZSBtb2RlIikKU2lnbmVkLW9m Zi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogQW1p dCBDb2hlbiA8YW1pdGNAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW1fbW9kZV9sb2FkYmFsYW5jZS5jIHwg MTUgKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbV9tb2RlX2xvYWRiYWxhbmNlLmMgYi9kcml2 ZXJzL25ldC90ZWFtL3RlYW1fbW9kZV9sb2FkYmFsYW5jZS5jCmluZGV4IGE1ZWY5NzAxMGViMy4u NTU0MWUxYzE5OTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZWFtL3RlYW1fbW9kZV9sb2Fk YmFsYW5jZS5jCisrKyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbV9tb2RlX2xvYWRiYWxhbmNlLmMK QEAgLTMyNSw2ICszMjUsMjAgQEAgc3RhdGljIGludCBsYl9icGZfZnVuY19zZXQoc3RydWN0IHRl YW0gKnRlYW0sIHN0cnVjdCB0ZWFtX2dzZXR0ZXJfY3R4ICpjdHgpCiAJcmV0dXJuIDA7CiB9CiAK K3N0YXRpYyB2b2lkIGxiX2JwZl9mdW5jX2ZyZWUoc3RydWN0IHRlYW0gKnRlYW0pCit7CisJc3Ry dWN0IGxiX3ByaXYgKmxiX3ByaXYgPSBnZXRfbGJfcHJpdih0ZWFtKTsKKwlzdHJ1Y3QgYnBmX3By b2cgKmZwOworCisJaWYgKCFsYl9wcml2LT5leC0+b3JpZ19mcHJvZykKKwkJcmV0dXJuOworCisJ X19mcHJvZ19kZXN0cm95KGxiX3ByaXYtPmV4LT5vcmlnX2Zwcm9nKTsKKwlmcCA9IHJjdV9kZXJl ZmVyZW5jZV9wcm90ZWN0ZWQobGJfcHJpdi0+ZnAsCisJCQkJICAgICAgIGxvY2tkZXBfaXNfaGVs ZCgmdGVhbS0+bG9jaykpOworCWJwZl9wcm9nX2Rlc3Ryb3koZnApOworfQorCiBzdGF0aWMgaW50 IGxiX3R4X21ldGhvZF9nZXQoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0ZWFtX2dzZXR0ZXJf Y3R4ICpjdHgpCiB7CiAJc3RydWN0IGxiX3ByaXYgKmxiX3ByaXYgPSBnZXRfbGJfcHJpdih0ZWFt KTsKQEAgLTYzOSw2ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCBsYl9leGl0KHN0cnVjdCB0ZWFtICp0 ZWFtKQogCiAJdGVhbV9vcHRpb25zX3VucmVnaXN0ZXIodGVhbSwgbGJfb3B0aW9ucywKIAkJCQlB UlJBWV9TSVpFKGxiX29wdGlvbnMpKTsKKwlsYl9icGZfZnVuY19mcmVlKHRlYW0pOwogCWNhbmNl bF9kZWxheWVkX3dvcmtfc3luYygmbGJfcHJpdi0+ZXgtPnN0YXRzLnJlZnJlc2hfZHcpOwogCWZy ZWVfcGVyY3B1KGxiX3ByaXYtPnBjcHVfc3RhdHMpOwogCWtmcmVlKGxiX3ByaXYtPmV4KTsKLS0g CjIuMjAuMQoKCkZyb20gNTkyMjg3OWU2MTY5OTdkOTE4ZTIzZDBmY2Y3Mjc1YzQ0NjQ2MWQzYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpayBIdWduZSA8ZXJpay5odWduZUBnbWFp bC5jb20+CkRhdGU6IE1vbiwgNCBNYXIgMjAxOSAyMzoyNjoxMCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMTIvNDJdIHRpcGM6IGZpeCBSRE0vREdSQU0gY29ubmVjdCgpIHJlZ3Jlc3Npb24KClsgVXBz dHJlYW0gY29tbWl0IDBlNjMyMDg5MTVhOGQ3NTkwZDBhNjIxOGRhZGIyYTZhMDBhYzcwNWEgXQoK Rml4IHJlZ3Jlc3Npb24gYnVnIGludHJvZHVjZWQgaW4KY29tbWl0IDM2NWFkMzUzYzI1NiAoInRp cGM6IHJlZHVjZSByaXNrIG9mIHVzZXIgc3RhcnZhdGlvbiBkdXJpbmcgbGluawpjb25nZXN0aW9u IikKCk9ubHkgc2lnbmFsIC1FREVTVEFERFJSRVEgZm9yIFJETS9ER1JBTSBpZiB3ZSBkb24ndCBo YXZlIGEgY2FjaGVkCnNvY2thZGRyLgoKRml4ZXM6IDM2NWFkMzUzYzI1NiAoInRpcGM6IHJlZHVj ZSByaXNrIG9mIHVzZXIgc3RhcnZhdGlvbiBkdXJpbmcgbGluayBjb25nZXN0aW9uIikKU2lnbmVk LW9mZi1ieTogRXJpayBIdWduZSA8ZXJpay5odWduZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3NvY2tldC5jIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCA4ZjM0 ZGIyYTk3ODUuLjYxNWRlMDkxMGEwNyAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysr IGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTEzMjAsNyArMTMyMCw3IEBAIHN0YXRpYyBpbnQgX190 aXBjX3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgc2l6ZV90 IGRsZW4pCiAKIAlpZiAodW5saWtlbHkoIWRlc3QpKSB7CiAJCWRlc3QgPSAmdHNrLT5wZWVyOwot CQlpZiAoIXN5biB8fCBkZXN0LT5mYW1pbHkgIT0gQUZfVElQQykKKwkJaWYgKCFzeW4gJiYgZGVz dC0+ZmFtaWx5ICE9IEFGX1RJUEMpCiAJCQlyZXR1cm4gLUVERVNUQUREUlJFUTsKIAl9CiAKLS0g CjIuMjAuMQoKCkZyb20gOTVlZjY1NTAzYzQ3ZGRiMjExY2YzMjcxMThkOTg5NDg0ODVmM2M2YiBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogTWljaGFlbCBDaGFuIDxtaWNoYWVsLmNoYW5A YnJvYWRjb20uY29tPgpEYXRlOiBXZWQsIDI3IEZlYiAyMDE5IDAzOjU4OjUzIC0wNTAwClN1Ympl Y3Q6IFtQQVRDSCAxMy80Ml0gYm54dF9lbjogRHJvcCBvdmVyc2l6ZSBUWCBwYWNrZXRzIHRvIHBy ZXZlbnQgZXJyb3JzLgoKWyBVcHN0cmVhbSBjb21taXQgMmIzYzY4ODUzODYwMjBiMWI5ZDkyZDQ1 ZTgzNDk2MzdlMjdkMWY2NiBdCgpUaGVyZSBoYXZlIGJlZW4gcmVwb3J0cyBvZiBvdmVyc2l6ZSBV RFAgcGFja2V0cyBiZWluZyBzZW50IHRvIHRoZQpkcml2ZXIgdG8gYmUgdHJhbnNtaXR0ZWQsIGNh dXNpbmcgZXJyb3IgY29uZGl0aW9ucy4gIFRoZSBpc3N1ZSBpcwpsaWtlbHkgY2F1c2VkIGJ5IHRo ZSBkc3Qgb2YgdGhlIFNLQiBzd2l0Y2hpbmcgYmV0d2VlbiAnbG8nIHdpdGgKNjRLIE1UVSBhbmQg dGhlIGhhcmR3YXJlIGRldmljZSB3aXRoIGEgc21hbGxlciBNVFUuICBQYXRjaGVzIGFyZQpiZWlu ZyBwcm9wb3NlZCBieSBNYWhlc2ggQmFuZGV3YXIgPG1haGVzaGJAZ29vZ2xlLmNvbT4gdG8gZml4 IHRoZQppc3N1ZS4KCkluIHRoZSBtZWFudGltZSwgYWRkIGEgcXVpY2sgbGVuZ3RoIGNoZWNrIGlu IHRoZSBkcml2ZXIgdG8gcHJldmVudAp0aGUgZXJyb3IuICBUaGUgZHJpdmVyIHVzZXMgdGhlIFRY IHBhY2tldCBzaXplIGFzIGluZGV4IHRvIGxvb2sgdXAgYW4KYXJyYXkgdG8gc2V0dXAgdGhlIFRY IEJELiAgVGhlIGFycmF5IGlzIGxhcmdlIGVub3VnaCB0byBzdXBwb3J0IGFsbCBNVFUKc2l6ZXMg c3VwcG9ydGVkIGJ5IHRoZSBkcml2ZXIuICBUaGUgb3ZlcnNpemUgVFggcGFja2V0IGNhdXNlcyB0 aGUKZHJpdmVyIHRvIGluZGV4IGJleW9uZCB0aGUgYXJyYXkgYW5kIHB1dCBnYXJiYWdlIHZhbHVl cyBpbnRvIHRoZQpUWCBCRC4gIEFkZCBhIHNpbXBsZSBjaGVjayB0byBwcmV2ZW50IHRoaXMuCgpT aWduZWQtb2ZmLWJ5OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+ClNp Z25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBk cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9ibnh0L2JueHQuYyB8IDYgKysrKysrCiAxIGZp bGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRo ZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgYi9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNv bS9ibnh0L2JueHQuYwppbmRleCAwOTAyMDc4MTdhZDguLjI5YjA2OGI4MWUyYSAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKKysrIGIvZHJpdmVy cy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMKQEAgLTQ5Nyw2ICs0OTcsMTIgQEAg c3RhdGljIG5ldGRldl90eF90IGJueHRfc3RhcnRfeG1pdChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBz dHJ1Y3QgbmV0X2RldmljZSAqZGV2KQogCX0KIAogCWxlbmd0aCA+Pj0gOTsKKwlpZiAodW5saWtl bHkobGVuZ3RoID49IEFSUkFZX1NJWkUoYm54dF9saGludF9hcnIpKSkgeworCQlkZXZfd2Fybl9y YXRlbGltaXRlZCgmcGRldi0+ZGV2LCAiRHJvcHBlZCBvdmVyc2l6ZSAlZCBieXRlcyBUWCBwYWNr ZXQuXG4iLAorCQkJCSAgICAgc2tiLT5sZW4pOworCQlpID0gMDsKKwkJZ290byB0eF9kbWFfZXJy b3I7CisJfQogCWZsYWdzIHw9IGJueHRfbGhpbnRfYXJyW2xlbmd0aF07CiAJdHhiZC0+dHhfYmRf bGVuX2ZsYWdzX3R5cGUgPSBjcHVfdG9fbGUzMihmbGFncyk7CiAKLS0gCjIuMjAuMQoKCkZyb20g Mjk2MWMwOWU0NjRmNDYxYzJjYjVhZjE4YWViOTUzOTZlMTQyN2VmMCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogSmlyaSBCZW5jIDxqYmVuY0ByZWRoYXQuY29tPgpEYXRlOiBUaHUsIDI4 IEZlYiAyMDE5IDE0OjU2OjA0ICswMTAwClN1YmplY3Q6IFtQQVRDSCAxNC80Ml0gZ2VuZXZlOiBj b3JyZWN0bHkgaGFuZGxlIGlwdjYuZGlzYWJsZSBtb2R1bGUgcGFyYW1ldGVyCgpbIFVwc3RyZWFt IGNvbW1pdCBjZjFjOWNjYmE3MzA4ZTQ4YTY4ZmE3N2Y0NzYyODdkOWQ2MTRlNGM3IF0KCldoZW4g SVB2NiBpcyBjb21waWxlZCBidXQgZGlzYWJsZWQgYXQgcnVudGltZSwgZ2VuZXZlX3NvY2tfYWRk IHJldHVybnMKLUVBRk5PU1VQUE9SVC4gRm9yIG1ldGFkYXRhIGJhc2VkIHR1bm5lbHMsIHRoaXMg Y2F1c2VzIGZhaWx1cmUgb2YgdGhlIHdob2xlCm9wZXJhdGlvbiBvZiBicmluZ2luZyB1cCB0aGUg dHVubmVsLgoKSWdub3JlIGZhaWx1cmUgb2YgSVB2NiBzb2NrZXQgY3JlYXRpb24gZm9yIG1ldGFk YXRhIGJhc2VkIHR1bm5lbHMgY2F1c2VkIGJ5CklQdjYgbm90IGJlaW5nIGF2YWlsYWJsZS4KClRo aXMgaXMgdGhlIHNhbWUgZml4IGFzIHdoYXQgY29tbWl0IGQwNzRiZjk2MDA0NCAoInZ4bGFuOiBj b3JyZWN0bHkgaGFuZGxlCmlwdjYuZGlzYWJsZSBtb2R1bGUgcGFyYW1ldGVyIikgaXMgZG9pbmcg Zm9yIHZ4bGFuLgoKTm90ZSB0aGVyZSdzIGFsc28gY29tbWl0IGMwYTQ3ZTQ0YzA5OCAoImdlbmV2 ZTogc2hvdWxkIG5vdCBjYWxsIHJ0Nl9sb29rdXAoKQp3aGVuIGlwdjYgd2FzIGRpc2FibGVkIikg d2hpY2ggZml4ZXMgYSBzaW1pbGFyIGlzc3VlIGJ1dCBmb3IgcmVndWxhcgp0dW5uZWxzLCB3aGls ZSB0aGlzIHBhdGNoIGlzIG5lZWRlZCBmb3IgbWV0YWRhdGEgYmFzZWQgdHVubmVscy4KClNpZ25l ZC1vZmYtYnk6IEppcmkgQmVuYyA8amJlbmNAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2dlbmV2 ZS5jIHwgMTEgKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMgYi9kcml2ZXJz L25ldC9nZW5ldmUuYwppbmRleCAyZTZlMTFkOGNmNWMuLmQ2YWQ4MzMxY2E0ZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9uZXQvZ2VuZXZlLmMKKysrIGIvZHJpdmVycy9uZXQvZ2VuZXZlLmMKQEAgLTYz NywxNSArNjM3LDIwIEBAIHN0YXRpYyBpbnQgZ2VuZXZlX3NvY2tfYWRkKHN0cnVjdCBnZW5ldmVf ZGV2ICpnZW5ldmUsIGJvb2wgaXB2NikKIHN0YXRpYyBpbnQgZ2VuZXZlX29wZW4oc3RydWN0IG5l dF9kZXZpY2UgKmRldikKIHsKIAlzdHJ1Y3QgZ2VuZXZlX2RldiAqZ2VuZXZlID0gbmV0ZGV2X3By aXYoZGV2KTsKLQlib29sIGlwdjYgPSAhIShnZW5ldmUtPmluZm8ubW9kZSAmIElQX1RVTk5FTF9J TkZPX0lQVjYpOwogCWJvb2wgbWV0YWRhdGEgPSBnZW5ldmUtPmNvbGxlY3RfbWQ7CisJYm9vbCBp cHY0LCBpcHY2OwogCWludCByZXQgPSAwOwogCisJaXB2NiA9IGdlbmV2ZS0+aW5mby5tb2RlICYg SVBfVFVOTkVMX0lORk9fSVBWNiB8fCBtZXRhZGF0YTsKKwlpcHY0ID0gIWlwdjYgfHwgbWV0YWRh dGE7CiAjaWYgSVNfRU5BQkxFRChDT05GSUdfSVBWNikKLQlpZiAoaXB2NiB8fCBtZXRhZGF0YSkK KwlpZiAoaXB2NikgewogCQlyZXQgPSBnZW5ldmVfc29ja19hZGQoZ2VuZXZlLCB0cnVlKTsKKwkJ aWYgKHJldCA8IDAgJiYgcmV0ICE9IC1FQUZOT1NVUFBPUlQpCisJCQlpcHY0ID0gZmFsc2U7CisJ fQogI2VuZGlmCi0JaWYgKCFyZXQgJiYgKCFpcHY2IHx8IG1ldGFkYXRhKSkKKwlpZiAoaXB2NCkK IAkJcmV0ID0gZ2VuZXZlX3NvY2tfYWRkKGdlbmV2ZSwgZmFsc2UpOwogCWlmIChyZXQgPCAwKQog CQlnZW5ldmVfc29ja19yZWxlYXNlKGdlbmV2ZSk7Ci0tIAoyLjIwLjEKCgpGcm9tIDkwNGU2YjM4 Zjg4MzQ2YWMxYTUxMTA4OTBiN2E2YzBjMmU3MGRjNWEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEhhaXlhbmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+CkRhdGU6IEZyaSwg MjIgRmViIDIwMTkgMTg6MjU6MDMgKzAwMDAKU3ViamVjdDogW1BBVENIIDE1LzQyXSBodl9uZXR2 c2M6IEZpeCBJUCBoZWFkZXIgY2hlY2tzdW0gZm9yIGNvYWxlc2NlZCBwYWNrZXRzCgpbIFVwc3Ry ZWFtIGNvbW1pdCBiZjQ4NjQ4ZDY1MGRiMTE0NmI3NWI5YmQzNTg1MDI0MzFlODZjZjRmIF0KCklu Y29taW5nIHBhY2tldHMgbWF5IGhhdmUgSVAgaGVhZGVyIGNoZWNrc3VtIHZlcmlmaWVkIGJ5IHRo ZSBob3N0LgpUaGV5IG1heSBub3QgaGF2ZSBJUCBoZWFkZXIgY2hlY2tzdW0gY29tcHV0ZWQgYWZ0 ZXIgY29hbGVzY2luZy4KVGhpcyBwYXRjaCByZS1jb21wdXRlIHRoZSBjaGVja3N1bSB3aGVuIG5l Y2Vzc2FyeSwgb3RoZXJ3aXNlIHRoZQpwYWNrZXRzIG1heSBiZSBkcm9wcGVkLCBiZWNhdXNlIExp bnV4IG5ldHdvcmsgc3RhY2sgYWx3YXlzIGNoZWNrcyBpdC4KClNpZ25lZC1vZmYtYnk6IEhhaXlh bmcgWmhhbmcgPGhhaXlhbmd6QG1pY3Jvc29mdC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMu IE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9oeXBlcnYvbmV0 dnNjX2Rydi5jIHwgMjIgKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDE5 IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQv aHlwZXJ2L25ldHZzY19kcnYuYyBiL2RyaXZlcnMvbmV0L2h5cGVydi9uZXR2c2NfZHJ2LmMKaW5k ZXggODBkOTI5N2FkOWQ5Li4xMzY1MzNlMmU0ODcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2h5 cGVydi9uZXR2c2NfZHJ2LmMKKysrIGIvZHJpdmVycy9uZXQvaHlwZXJ2L25ldHZzY19kcnYuYwpA QCAtNzQ0LDYgKzc0NCwxNCBAQCB2b2lkIG5ldHZzY19saW5rc3RhdHVzX2NhbGxiYWNrKHN0cnVj dCBuZXRfZGV2aWNlICpuZXQsCiAJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZuZGV2X2N0eC0+ZHdv cmssIDApOwogfQogCitzdGF0aWMgdm9pZCBuZXR2c2NfY29tcF9pcGNzdW0oc3RydWN0IHNrX2J1 ZmYgKnNrYikKK3sKKwlzdHJ1Y3QgaXBoZHIgKmlwaCA9IChzdHJ1Y3QgaXBoZHIgKilza2ItPmRh dGE7CisKKwlpcGgtPmNoZWNrID0gMDsKKwlpcGgtPmNoZWNrID0gaXBfZmFzdF9jc3VtKGlwaCwg aXBoLT5paGwpOworfQorCiBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKm5ldHZzY19hbGxvY19yZWN2 X3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LAogCQkJCQkgICAgIHN0cnVjdCBuZXR2c2NfY2hh bm5lbCAqbnZjaGFuKQogewpAQCAtNzcwLDkgKzc3OCwxNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1 ZmYgKm5ldHZzY19hbGxvY19yZWN2X3NrYihzdHJ1Y3QgbmV0X2RldmljZSAqbmV0LAogCS8qIHNr YiBpcyBhbHJlYWR5IGNyZWF0ZWQgd2l0aCBDSEVDS1NVTV9OT05FICovCiAJc2tiX2NoZWNrc3Vt X25vbmVfYXNzZXJ0KHNrYik7CiAKLQkvKgotCSAqIEluIExpbnV4LCB0aGUgSVAgY2hlY2tzdW0g aXMgYWx3YXlzIGNoZWNrZWQuCi0JICogRG8gTDQgY2hlY2tzdW0gb2ZmbG9hZCBpZiBlbmFibGVk IGFuZCBwcmVzZW50LgorCS8qIEluY29taW5nIHBhY2tldHMgbWF5IGhhdmUgSVAgaGVhZGVyIGNo ZWNrc3VtIHZlcmlmaWVkIGJ5IHRoZSBob3N0LgorCSAqIFRoZXkgbWF5IG5vdCBoYXZlIElQIGhl YWRlciBjaGVja3N1bSBjb21wdXRlZCBhZnRlciBjb2FsZXNjaW5nLgorCSAqIFdlIGNvbXB1dGUg aXQgaGVyZSBpZiB0aGUgZmxhZ3MgYXJlIHNldCwgYmVjYXVzZSBvbiBMaW51eCwgdGhlIElQCisJ ICogY2hlY2tzdW0gaXMgYWx3YXlzIGNoZWNrZWQuCisJICovCisJaWYgKGNzdW1faW5mbyAmJiBj c3VtX2luZm8tPnJlY2VpdmUuaXBfY2hlY2tzdW1fdmFsdWVfaW52YWxpZCAmJgorCSAgICBjc3Vt X2luZm8tPnJlY2VpdmUuaXBfY2hlY2tzdW1fc3VjY2VlZGVkICYmCisJICAgIHNrYi0+cHJvdG9j b2wgPT0gaHRvbnMoRVRIX1BfSVApKQorCQluZXR2c2NfY29tcF9pcGNzdW0oc2tiKTsKKworCS8q IERvIEw0IGNoZWNrc3VtIG9mZmxvYWQgaWYgZW5hYmxlZCBhbmQgcHJlc2VudC4KIAkgKi8KIAlp ZiAoY3N1bV9pbmZvICYmIChuZXQtPmZlYXR1cmVzICYgTkVUSUZfRl9SWENTVU0pKSB7CiAJCWlm IChjc3VtX2luZm8tPnJlY2VpdmUudGNwX2NoZWNrc3VtX3N1Y2NlZWRlZCB8fAotLSAKMi4yMC4x CgoKRnJvbSBjNmY4MWM1NzdjNjA5Y2Y3ZGQ2ODMzZTE2MDc2ZjhlY2JkMTc4NTVkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIYW5nYmluIExpdSA8bGl1aGFuZ2JpbkBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMjcgRmViIDIwMTkgMTY6MTU6MjkgKzA4MDAKU3ViamVjdDogW1BBVENIIDE2 LzQyXSBpcHY0OiBBZGQgSUNNUHY2IHN1cHBvcnQgd2hlbiBwYXJzZSByb3V0ZSBpcHByb3RvCgpb IFVwc3RyZWFtIGNvbW1pdCA1ZTFhOTllYWU4NDk5OWEyNTM2ZjUwYTBiZWFmNWQ1MjYyMzM3ZjQw IF0KCkZvciBpcCBydWxlcywgd2UgbmVlZCB0byB1c2UgJ2lwcHJvdG8gaXB2Ni1pY21wJyB0byBt YXRjaCBJQ01QdjYgaGVhZGVycy4KQnV0IGZvciBpcCAtNiByb3V0ZSwgY3VycmVudGx5IHdlIG9u bHkgc3VwcG9ydCB0Y3AsIHVkcCBhbmQgaWNtcC4KCkFkZCBJQ01QdjYgc3VwcG9ydCBzbyB3ZSBj YW4gbWF0Y2ggaXB2Ni1pY21wIHJ1bGVzIGZvciByb3V0ZSBsb29rdXAuCgp2MjogQXMgRGF2aWQg QWhlcm4gYW5kIFNhYnJpbmEgRHVicm9jYSBzdWdnZXN0ZWQsIEFkZCBhbiBhcmd1bWVudCB0bwpy dG1fZ2V0cm91dGVfcGFyc2VfaXBfcHJvdG8oKSB0byBoYW5kbGUgSUNNUC9JQ01QdjYgd2l0aCBk aWZmZXJlbnQgZmFtaWx5LgoKUmVwb3J0ZWQtYnk6IEppYW5saW4gU2hpIDxqaXNoaUByZWRoYXQu Y29tPgpGaXhlczogZWFjYjkzODRhM2ZlICgiaXB2Njogc3VwcG9ydCBzcG9ydCwgZHBvcnQgYW5k IGlwX3Byb3RvIGluIFJUTV9HRVRST1VURSIpClNpZ25lZC1vZmYtYnk6IEhhbmdiaW4gTGl1IDxs aXVoYW5nYmluQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZl bUBkYXZlbWxvZnQubmV0PgotLS0KIGluY2x1ZGUvbmV0L2lwLmggICB8ICAyICstCiBuZXQvaXB2 NC9uZXRsaW5rLmMgfCAxNyArKysrKysrKysrKysrLS0tLQogbmV0L2lwdjQvcm91dGUuYyAgIHwg IDIgKy0KIG5ldC9pcHY2L3JvdXRlLmMgICB8ICAzICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxNyBp bnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2lw LmggYi9pbmNsdWRlL25ldC9pcC5oCmluZGV4IDcyNTkzZTE3MWQxNC4uMzBjNjU3YjEyOGNlIDEw MDY0NAotLS0gYS9pbmNsdWRlL25ldC9pcC5oCisrKyBiL2luY2x1ZGUvbmV0L2lwLmgKQEAgLTcx NCw3ICs3MTQsNyBAQCBleHRlcm4gaW50IHN5c2N0bF9pY21wX21zZ3NfYnVyc3Q7CiBpbnQgaXBf bWlzY19wcm9jX2luaXQodm9pZCk7CiAjZW5kaWYKIAotaW50IHJ0bV9nZXRyb3V0ZV9wYXJzZV9p cF9wcm90byhzdHJ1Y3QgbmxhdHRyICphdHRyLCB1OCAqaXBfcHJvdG8sCitpbnQgcnRtX2dldHJv dXRlX3BhcnNlX2lwX3Byb3RvKHN0cnVjdCBubGF0dHIgKmF0dHIsIHU4ICppcF9wcm90bywgdTgg ZmFtaWx5LAogCQkJCXN0cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjayk7CiAKICNlbmRpZgkv KiBfSVBfSCAqLwpkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvbmV0bGluay5jIGIvbmV0L2lwdjQvbmV0 bGluay5jCmluZGV4IGY4NmJiNGYwNjYwOS4uZDhlM2ExZmI4ZTgyIDEwMDY0NAotLS0gYS9uZXQv aXB2NC9uZXRsaW5rLmMKKysrIGIvbmV0L2lwdjQvbmV0bGluay5jCkBAIC0zLDkgKzMsMTAgQEAK ICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPG5ldC9uZXRfbmFtZXNwYWNlLmg+ CiAjaW5jbHVkZSA8bmV0L25ldGxpbmsuaD4KKyNpbmNsdWRlIDxsaW51eC9pbjYuaD4KICNpbmNs dWRlIDxuZXQvaXAuaD4KIAotaW50IHJ0bV9nZXRyb3V0ZV9wYXJzZV9pcF9wcm90byhzdHJ1Y3Qg bmxhdHRyICphdHRyLCB1OCAqaXBfcHJvdG8sCitpbnQgcnRtX2dldHJvdXRlX3BhcnNlX2lwX3By b3RvKHN0cnVjdCBubGF0dHIgKmF0dHIsIHU4ICppcF9wcm90bywgdTggZmFtaWx5LAogCQkJCXN0 cnVjdCBuZXRsaW5rX2V4dF9hY2sgKmV4dGFjaykKIHsKIAkqaXBfcHJvdG8gPSBubGFfZ2V0X3U4 KGF0dHIpOwpAQCAtMTMsMTEgKzE0LDE5IEBAIGludCBydG1fZ2V0cm91dGVfcGFyc2VfaXBfcHJv dG8oc3RydWN0IG5sYXR0ciAqYXR0ciwgdTggKmlwX3Byb3RvLAogCXN3aXRjaCAoKmlwX3Byb3Rv KSB7CiAJY2FzZSBJUFBST1RPX1RDUDoKIAljYXNlIElQUFJPVE9fVURQOgorCQlyZXR1cm4gMDsK IAljYXNlIElQUFJPVE9fSUNNUDoKKwkJaWYgKGZhbWlseSAhPSBBRl9JTkVUKQorCQkJYnJlYWs7 CisJCXJldHVybiAwOworI2lmIElTX0VOQUJMRUQoQ09ORklHX0lQVjYpCisJY2FzZSBJUFBST1RP X0lDTVBWNjoKKwkJaWYgKGZhbWlseSAhPSBBRl9JTkVUNikKKwkJCWJyZWFrOwogCQlyZXR1cm4g MDsKLQlkZWZhdWx0OgotCQlOTF9TRVRfRVJSX01TRyhleHRhY2ssICJVbnN1cHBvcnRlZCBpcCBw cm90byIpOwotCQlyZXR1cm4gLUVPUE5PVFNVUFA7CisjZW5kaWYKIAl9CisJTkxfU0VUX0VSUl9N U0coZXh0YWNrLCAiVW5zdXBwb3J0ZWQgaXAgcHJvdG8iKTsKKwlyZXR1cm4gLUVPUE5PVFNVUFA7 CiB9CiBFWFBPUlRfU1lNQk9MX0dQTChydG1fZ2V0cm91dGVfcGFyc2VfaXBfcHJvdG8pOwpkaWZm IC0tZ2l0IGEvbmV0L2lwdjQvcm91dGUuYyBiL25ldC9pcHY0L3JvdXRlLmMKaW5kZXggZDFkZGYx ZDAzNzIxLi5lZmU0NTIwMGRiNGYgMTAwNjQ0Ci0tLSBhL25ldC9pcHY0L3JvdXRlLmMKKysrIGIv bmV0L2lwdjQvcm91dGUuYwpAQCAtMjgwMyw3ICsyODAzLDcgQEAgc3RhdGljIGludCBpbmV0X3J0 bV9nZXRyb3V0ZShzdHJ1Y3Qgc2tfYnVmZiAqaW5fc2tiLCBzdHJ1Y3Qgbmxtc2doZHIgKm5saCwK IAogCWlmICh0YltSVEFfSVBfUFJPVE9dKSB7CiAJCWVyciA9IHJ0bV9nZXRyb3V0ZV9wYXJzZV9p cF9wcm90byh0YltSVEFfSVBfUFJPVE9dLAotCQkJCQkJICAmaXBfcHJvdG8sIGV4dGFjayk7CisJ CQkJCQkgICZpcF9wcm90bywgQUZfSU5FVCwgZXh0YWNrKTsKIAkJaWYgKGVycikKIAkJCXJldHVy biBlcnI7CiAJfQpkaWZmIC0tZ2l0IGEvbmV0L2lwdjYvcm91dGUuYyBiL25ldC9pcHY2L3JvdXRl LmMKaW5kZXggMDU5ZjA1MzFmN2MxLi5hNjhkNDQ3YjZlMmMgMTAwNjQ0Ci0tLSBhL25ldC9pcHY2 L3JvdXRlLmMKKysrIGIvbmV0L2lwdjYvcm91dGUuYwpAQCAtNDg4MCw3ICs0ODgwLDggQEAgc3Rh dGljIGludCBpbmV0Nl9ydG1fZ2V0cm91dGUoc3RydWN0IHNrX2J1ZmYgKmluX3NrYiwgc3RydWN0 IG5sbXNnaGRyICpubGgsCiAKIAlpZiAodGJbUlRBX0lQX1BST1RPXSkgewogCQllcnIgPSBydG1f Z2V0cm91dGVfcGFyc2VfaXBfcHJvdG8odGJbUlRBX0lQX1BST1RPXSwKLQkJCQkJCSAgJmZsNi5m bG93aTZfcHJvdG8sIGV4dGFjayk7CisJCQkJCQkgICZmbDYuZmxvd2k2X3Byb3RvLCBBRl9JTkVU NiwKKwkJCQkJCSAgZXh0YWNrKTsKIAkJaWYgKGVycikKIAkJCWdvdG8gZXJyb3V0OwogCX0KLS0g CjIuMjAuMQoKCkZyb20gMDU2NTU4ODcwOWNkYzc0ZDQ3YTNmY2RkMWQ1NTkzYmFiZWZiOTNhYSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogQnJ5YW4gV2hpdGVoZWFkIDxCcnlhbi5XaGl0 ZWhlYWRAbWljcm9jaGlwLmNvbT4KRGF0ZTogVHVlLCAyNiBGZWIgMjAxOSAxNDowNjoyNiAtMDUw MApTdWJqZWN0OiBbUEFUQ0ggMTcvNDJdIGxhbjc0M3g6IEZpeCBUWCBTdGFsbCBJc3N1ZQoKWyBV cHN0cmVhbSBjb21taXQgOTA0OTBlZjcyNjk5MDY0MjNhMWMxYjkxN2ZjMjRiZThiMTYwMjY1OCBd CgpJdCBoYXMgYmVlbiBvYnNlcnZlZCB0aGF0IHR4IHF1ZXVlIHN0YWxscyB3aGlsZSBkb3dubG9h ZGluZwpmcm9tIGNlcnRhaW4gd2ViIHNpdGVzIChleGFtcGxlIHd3dy5zcGVlZHRlc3QubmV0KQoK VGhlIGNhdXNlIGhhcyBiZWVuIHRyYWNrZWQgZG93biB0byBhIGNvcm5lciBjYXNlIHdoZXJlCmRt YSBkZXNjcmlwdG9ycyB3aGVyZSBub3Qgc2V0dXAgcHJvcGVybHkuIEFuZCB0aGVyZSBmb3IgYSB0 eApjb21wbGV0aW9uIGludGVycnVwdCB3YXMgbm90IHNpZ25hbGVkLgoKVGhpcyBmaXggY29ycmVj dHMgdGhlIHByb2JsZW0gYnkgcHJvcGVybHkgbWFya2luZyB0aGUgZW5kIG9mCmEgbXVsdGkgZGVz Y3JpcHRvciB0cmFuc21pc3Npb24uCgpGaXhlczogMjNmMDcwM2MxMjViICgibGFuNzQzeDogQWRk IG1haW4gc291cmNlIGZpbGVzIGZvciBuZXcgbGFuNzQzeCBkcml2ZXIiKQpTaWduZWQtb2ZmLWJ5 OiBCcnlhbiBXaGl0ZWhlYWQgPEJyeWFuLldoaXRlaGVhZEBtaWNyb2NoaXAuY29tPgpTaWduZWQt b2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVy cy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jIHwgMTYgKysrKysrKysrKysr LS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5j IGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWljcm9jaGlwL2xhbjc0M3hfbWFpbi5jCmluZGV4IDFj ZThiNzI5OTI5Zi4uNjcxZWE3NWQwYTRhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5l dC9taWNyb2NoaXAvbGFuNzQzeF9tYWluLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbWlj cm9jaGlwL2xhbjc0M3hfbWFpbi5jCkBAIC0xNDAwLDcgKzE0MDAsOCBAQCBzdGF0aWMgaW50IGxh bjc0M3hfdHhfZnJhbWVfc3RhcnQoc3RydWN0IGxhbjc0M3hfdHggKnR4LAogfQogCiBzdGF0aWMg dm9pZCBsYW43NDN4X3R4X2ZyYW1lX2FkZF9sc28oc3RydWN0IGxhbjc0M3hfdHggKnR4LAotCQkJ CSAgICAgdW5zaWduZWQgaW50IGZyYW1lX2xlbmd0aCkKKwkJCQkgICAgIHVuc2lnbmVkIGludCBm cmFtZV9sZW5ndGgsCisJCQkJICAgICBpbnQgbnJfZnJhZ3MpCiB7CiAJLyogY2FsbGVkIG9ubHkg ZnJvbSB3aXRoaW4gbGFuNzQzeF90eF94bWl0X2ZyYW1lLgogCSAqIGFzc3VtaW5nIHR4LT5yaW5n X2xvY2sgaGFzIGFscmVhZHkgYmVlbiBhY3F1aXJlZC4KQEAgLTE0MTAsNiArMTQxMSwxMCBAQCBz dGF0aWMgdm9pZCBsYW43NDN4X3R4X2ZyYW1lX2FkZF9sc28oc3RydWN0IGxhbjc0M3hfdHggKnR4 LAogCiAJLyogd3JhcCB1cCBwcmV2aW91cyBkZXNjcmlwdG9yICovCiAJdHgtPmZyYW1lX2RhdGEw IHw9IFRYX0RFU0NfREFUQTBfRVhUXzsKKwlpZiAobnJfZnJhZ3MgPD0gMCkgeworCQl0eC0+ZnJh bWVfZGF0YTAgfD0gVFhfREVTQ19EQVRBMF9MU187CisJCXR4LT5mcmFtZV9kYXRhMCB8PSBUWF9E RVNDX0RBVEEwX0lPQ187CisJfQogCXR4X2Rlc2NyaXB0b3IgPSAmdHgtPnJpbmdfY3B1X3B0clt0 eC0+ZnJhbWVfdGFpbF07CiAJdHhfZGVzY3JpcHRvci0+ZGF0YTAgPSB0eC0+ZnJhbWVfZGF0YTA7 CiAKQEAgLTE1MTQsOCArMTUxOSwxMSBAQCBzdGF0aWMgdm9pZCBsYW43NDN4X3R4X2ZyYW1lX2Vu ZChzdHJ1Y3QgbGFuNzQzeF90eCAqdHgsCiAJdTMyIHR4X3RhaWxfZmxhZ3MgPSAwOwogCiAJLyog d3JhcCB1cCBwcmV2aW91cyBkZXNjcmlwdG9yICovCi0JdHgtPmZyYW1lX2RhdGEwIHw9IFRYX0RF U0NfREFUQTBfTFNfOwotCXR4LT5mcmFtZV9kYXRhMCB8PSBUWF9ERVNDX0RBVEEwX0lPQ187CisJ aWYgKCh0eC0+ZnJhbWVfZGF0YTAgJiBUWF9ERVNDX0RBVEEwX0RUWVBFX01BU0tfKSA9PQorCSAg ICBUWF9ERVNDX0RBVEEwX0RUWVBFX0RBVEFfKSB7CisJCXR4LT5mcmFtZV9kYXRhMCB8PSBUWF9E RVNDX0RBVEEwX0xTXzsKKwkJdHgtPmZyYW1lX2RhdGEwIHw9IFRYX0RFU0NfREFUQTBfSU9DXzsK Kwl9CiAKIAl0eF9kZXNjcmlwdG9yID0gJnR4LT5yaW5nX2NwdV9wdHJbdHgtPmZyYW1lX3RhaWxd OwogCWJ1ZmZlcl9pbmZvID0gJnR4LT5idWZmZXJfaW5mb1t0eC0+ZnJhbWVfdGFpbF07CkBAIC0x NjAwLDcgKzE2MDgsNyBAQCBzdGF0aWMgbmV0ZGV2X3R4X3QgbGFuNzQzeF90eF94bWl0X2ZyYW1l KHN0cnVjdCBsYW43NDN4X3R4ICp0eCwKIAl9CiAKIAlpZiAoZ3NvKQotCQlsYW43NDN4X3R4X2Zy YW1lX2FkZF9sc28odHgsIGZyYW1lX2xlbmd0aCk7CisJCWxhbjc0M3hfdHhfZnJhbWVfYWRkX2xz byh0eCwgZnJhbWVfbGVuZ3RoLCBucl9mcmFncyk7CiAKIAlpZiAobnJfZnJhZ3MgPD0gMCkKIAkJ Z290byBmaW5pc2g7Ci0tIAoyLjIwLjEKCgpGcm9tIGJlOTZjOTFhMGUyMTQ1YTk2ZWFjMjdjOTEx NDI4YWI2MGZiNWM5OTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEFuZHJldyBMdW5u IDxhbmRyZXdAbHVubi5jaD4KRGF0ZTogRnJpLCAxIE1hciAyMDE5IDIzOjQzOjM5ICswMTAwClN1 YmplY3Q6IFtQQVRDSCAxOC80Ml0gbmV0OiBkc2E6IG12ODhlNnh4eDogRml4IHN0YXRpc3RpY3Mg b24gbXY4OGU2MTYxCgpbIFVwc3RyZWFtIGNvbW1pdCBhNmRhMjFiYjBlYWU0NTlhMzc1ZDViZDQ4 YmFlZDgyMWQxNDMwMWQwIF0KCkRlc3BpdGUgd2hhdCB0aGUgZGF0ZXNoZWV0IHNheXMsIHRoZSBz aWxpY29uIGltcGxlbWVudHMgdGhlIG9sZGVyIHdheQpvZiBzbmFwc2hvdGluZyB0aGUgc3RhdGlz dGljcy4gQ2hhbmdlIHRoZSBvcC4KClJlcG9ydGVkLWJ5OiBDaHJpcy5IZWFseUB6aWkuYWVybwpU ZXN0ZWQtYnk6IENocmlzLkhlYWx5QHppaS5hZXJvCkZpeGVzOiAwYWM2NGMzOTQ5MDAgKCJuZXQ6 IGRzYTogbXY4OGU2eHh4OiBtdjg4ZTYxNjEgdXNlcyBtdjg4ZTYzMjAgc3RhdHMgc25hcHNob3Qi KQpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4 eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggYjc0Y2Q0 OWQwZmIwLi45NDIyMmI0MzUzNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4 eHgvY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC0zMDgy LDcgKzMwODIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9vcHMgbXY4OGU2MTYx X29wcyA9IHsKIAkucG9ydF9kaXNhYmxlX3ByaV9vdmVycmlkZSA9IG12ODhlNnh4eF9wb3J0X2Rp c2FibGVfcHJpX292ZXJyaWRlLAogCS5wb3J0X2xpbmtfc3RhdGUgPSBtdjg4ZTYzNTJfcG9ydF9s aW5rX3N0YXRlLAogCS5wb3J0X2dldF9jbW9kZSA9IG12ODhlNjE4NV9wb3J0X2dldF9jbW9kZSwK LQkuc3RhdHNfc25hcHNob3QgPSBtdjg4ZTYzMjBfZzFfc3RhdHNfc25hcHNob3QsCisJLnN0YXRz X3NuYXBzaG90ID0gbXY4OGU2eHh4X2cxX3N0YXRzX3NuYXBzaG90LAogCS5zdGF0c19zZXRfaGlz dG9ncmFtID0gbXY4OGU2MDk1X2cxX3N0YXRzX3NldF9oaXN0b2dyYW0sCiAJLnN0YXRzX2dldF9z c2V0X2NvdW50ID0gbXY4OGU2MDk1X3N0YXRzX2dldF9zc2V0X2NvdW50LAogCS5zdGF0c19nZXRf c3RyaW5ncyA9IG12ODhlNjA5NV9zdGF0c19nZXRfc3RyaW5ncywKLS0gCjIuMjAuMQoKCkZyb20g NzdiMWViZGExYTRlZGI4MjQ3NTliYjIxNjkzYzRjODYxOTlmM2I2MiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKRnJvbTogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpEYXRlOiBUaHUsIDI4 IEZlYiAyMDE5IDE4OjE0OjAzICswMTAwClN1YmplY3Q6IFtQQVRDSCAxOS80Ml0gbmV0OiBkc2E6 IG12ODhlNnh4eDogRml4IHU2NCBzdGF0aXN0aWNzCgpbIFVwc3RyZWFtIGNvbW1pdCA2ZTQ2ZTJk ODIxYmIyMmIyODVhZTgxODc5NTkwOTZiNjVkMDYzYjBkIF0KClRoZSBzd2l0Y2ggbWFpbnRhaW5z IHU2NCBjb3VudGVycyBmb3IgdGhlIG51bWJlciBvZiBvY3RldHMgc2VudCBhbmQKcmVjZWl2ZWQu IFRoZXNlIGFyZSBrZXB0IGFzIHR3byB1MzIncyB3aGljaCBuZWVkIHRvIGJlIGNvbWJpbmVkLiAg Rml4CnRoZSBjb21iaW5nLCB3aGljaCB3cm9uZ2x5IHdvcmtlZCBvbiB1MTYncy4KCkZpeGVzOiA4 MGM0NjI3YjI3MTkgKCJkc2E6IG12ODh4Nnh4eDogUmVmYWN0b3IgZ2V0dGluZyBhIHNpbmdsZSBz dGF0aXN0aWMiKQpSZXBvcnRlZC1ieTogQ2hyaXMgSGVhbHkgPENocmlzLkhlYWx5QHppaS5hZXJv PgpTaWduZWQtb2ZmLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25l dC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlv bigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4 eHgvY2hpcC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggOTQyMjJi NDM1Mzc4Li4wMTY2Zjc0MGU2MjUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4 eHgvY2hpcC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC04OTYs NyArODk2LDcgQEAgc3RhdGljIHVpbnQ2NF90IF9tdjg4ZTZ4eHhfZ2V0X2V0aHRvb2xfc3RhdChz dHJ1Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsCiAJZGVmYXVsdDoKIAkJcmV0dXJuIFU2NF9NQVg7 CiAJfQotCXZhbHVlID0gKCgodTY0KWhpZ2gpIDw8IDE2KSB8IGxvdzsKKwl2YWx1ZSA9ICgoKHU2 NCloaWdoKSA8PCAzMikgfCBsb3c7CiAJcmV0dXJuIHZhbHVlOwogfQogCi0tIAoyLjIwLjEKCgpG cm9tIDI3ODUwMTY0YjI3ZDA0NGQ4MmVhZTk3OGQ0ODg4NzgxMzE3ZTUwOGUgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IFBhdWwgTW9vcmUgPHBhdWxAcGF1bC1tb29yZS5jb20+CkRhdGU6 IE1vbiwgMjUgRmViIDIwMTkgMTk6MDY6MDYgLTA1MDAKU3ViamVjdDogW1BBVENIIDIwLzQyXSBu ZXRsYWJlbDogZml4IG91dC1vZi1ib3VuZHMgbWVtb3J5IGFjY2Vzc2VzCgpbIFVwc3RyZWFtIGNv bW1pdCA1NTc4ZGU0ODM0ZmUwZjJhMzRmZWRjNzM3NGJlNjkxNDQzMzk2ZDFmIF0KClRoZXJlIGFy ZSB0d28gYXJyYXkgb3V0LW9mLWJvdW5kcyBtZW1vcnkgYWNjZXNzZXMsIG9uZSBpbgpjaXBzb192 NF9tYXBfbHZsX3ZhbGlkKCksIHRoZSBvdGhlciBpbiBuZXRsYmxfYml0bWFwX3dhbGsoKS4gIEJv dGgKZXJyb3JzIGFyZSBlbWJhcmFzc2luZ2x5IHNpbXBsZSwgYW5kIHRoZSBmaXhlcyBhcmUgc3Ry YWlnaHRmb3J3YXJkLgoKQXMgYSBGWUkgZm9yIGFueW9uZSBiYWNrcG9ydGluZyB0aGlzIHBhdGNo IHRvIGtlcm5lbHMgcHJpb3IgdG8gdjQuOCwKeW91J2xsIHdhbnQgdG8gYXBwbHkgdGhlIG5ldGxi bF9iaXRtYXBfd2FsaygpIHBhdGNoIHRvCmNpcHNvX3Y0X2JpdG1hcF93YWxrKCkgYXMgbmV0bGJs X2JpdG1hcF93YWxrKCkgZG9lc24ndCBleGlzdCBiZWZvcmUKTGludXggdjQuOC4KClJlcG9ydGVk LWJ5OiBKYW5uIEhvcm4gPGphbm5oQGdvb2dsZS5jb20+CkZpeGVzOiA0NDZmZGE0ZjI2ODIgKCJb TmV0TGFiZWxdOiBDSVBTT3Y0IGVuZ2luZSIpCkZpeGVzOiAzZmFhOGY5ODJmOTUgKCJuZXRsYWJl bDogTW92ZSBiaXRtYXAgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyB0byB0aGUgTmV0TGFiZWwgY29y ZS4iKQpTaWduZWQtb2ZmLWJ5OiBQYXVsIE1vb3JlIDxwYXVsQHBhdWwtbW9vcmUuY29tPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0 L2lwdjQvY2lwc29faXB2NC5jICAgICAgICB8IDMgKystCiBuZXQvbmV0bGFiZWwvbmV0bGFiZWxf a2FwaS5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2NpcHNvX2lwdjQuYyBiL25ldC9pcHY0L2Np cHNvX2lwdjQuYwppbmRleCA3NzdmYTNiN2ZiMTMuLmY0YjgzZGUyMjYzZSAxMDA2NDQKLS0tIGEv bmV0L2lwdjQvY2lwc29faXB2NC5jCisrKyBiL25ldC9pcHY0L2NpcHNvX2lwdjQuYwpAQCAtNjY3 LDcgKzY2Nyw4IEBAIHN0YXRpYyBpbnQgY2lwc29fdjRfbWFwX2x2bF92YWxpZChjb25zdCBzdHJ1 Y3QgY2lwc29fdjRfZG9pICpkb2lfZGVmLCB1OCBsZXZlbCkKIAljYXNlIENJUFNPX1Y0X01BUF9Q QVNTOgogCQlyZXR1cm4gMDsKIAljYXNlIENJUFNPX1Y0X01BUF9UUkFOUzoKLQkJaWYgKGRvaV9k ZWYtPm1hcC5zdGQtPmx2bC5jaXBzb1tsZXZlbF0gPCBDSVBTT19WNF9JTlZfTFZMKQorCQlpZiAo KGxldmVsIDwgZG9pX2RlZi0+bWFwLnN0ZC0+bHZsLmNpcHNvX3NpemUpICYmCisJCSAgICAoZG9p X2RlZi0+bWFwLnN0ZC0+bHZsLmNpcHNvW2xldmVsXSA8IENJUFNPX1Y0X0lOVl9MVkwpKQogCQkJ cmV0dXJuIDA7CiAJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL25ldC9uZXRsYWJlbC9uZXRsYWJl bF9rYXBpLmMgYi9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfa2FwaS5jCmluZGV4IGVhN2M2NzA1MDc5 Mi4uZWUzZTViNjQ3MWE2IDEwMDY0NAotLS0gYS9uZXQvbmV0bGFiZWwvbmV0bGFiZWxfa2FwaS5j CisrKyBiL25ldC9uZXRsYWJlbC9uZXRsYWJlbF9rYXBpLmMKQEAgLTkwMyw3ICs5MDMsOCBAQCBp bnQgbmV0bGJsX2JpdG1hcF93YWxrKGNvbnN0IHVuc2lnbmVkIGNoYXIgKmJpdG1hcCwgdTMyIGJp dG1hcF9sZW4sCiAJCSAgICAoc3RhdGUgPT0gMCAmJiAoYnl0ZSAmIGJpdG1hc2spID09IDApKQog CQkJcmV0dXJuIGJpdF9zcG90OwogCi0JCWJpdF9zcG90Kys7CisJCWlmICgrK2JpdF9zcG90ID49 IGJpdG1hcF9sZW4pCisJCQlyZXR1cm4gLTE7CiAJCWJpdG1hc2sgPj49IDE7CiAJCWlmIChiaXRt YXNrID09IDApIHsKIAkJCWJ5dGUgPSBiaXRtYXBbKytieXRlX29mZnNldF07Ci0tIAoyLjIwLjEK CgpGcm9tIDBkMDZiNzE0MGViNDU3Y2I2MDYxOTIwOTgwNzM1ZjYzYWI2NjgzNGIgTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IFNoZW5nIExhbiA8bGFuc2hlbmdAaHVhd2VpLmNvbT4KRGF0 ZTogVGh1LCAyOCBGZWIgMjAxOSAxODo0Nzo1OCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMjEvNDJd IG5ldDogbmV0ZW06IGZpeCBza2IgbGVuZ3RoIEJVR19PTiBpbiBfX3NrYl90b19zZ3ZlYwoKWyBV cHN0cmVhbSBjb21taXQgNTg0NWY3MDYzODhhNGNkZTBmNmI4MGY5ZTVkMzM1MjdlOTQyYjdkOSBd CgpJdCBjYW4gYmUgcmVwcm9kdWNlZCBieSBmb2xsb3dpbmcgc3RlcHM6CjEuIHZpcnRpb19uZXQg TklDIGlzIGNvbmZpZ3VyZWQgd2l0aCBnc28vdHNvIG9uCjIuIGNvbmZpZ3VyZSBuZ2lueCBhcyBo dHRwIHNlcnZlciB3aXRoIGFuIGluZGV4IGZpbGUgYmlnZ2VyIHRoYW4gMU0gYnl0ZXMKMy4gdXNl IHRjIG5ldGVtIHRvIHByb2R1Y2UgZHVwbGljYXRlIHBhY2tldHMgYW5kIGRlbGF5OgogICB0YyBx ZGlzYyBhZGQgZGV2IGV0aDAgcm9vdCBuZXRlbSBkZWxheSAxMDBtcyAxMG1zIDMwJSBkdXBsaWNh dGUgOTAlCjQuIGNvbnRpbnVhbGx5IGN1cmwgdGhlIG5naW54IGh0dHAgc2VydmVyIHRvIGdldCBp bmRleCBmaWxlIG9uIGNsaWVudAo1LiBCVUdfT04gaXMgc2VlbiBxdWlja2x5CgpbMTAyNTg2OTAu MzcxMTI5XSBrZXJuZWwgQlVHIGF0IG5ldC9jb3JlL3NrYnVmZi5jOjQwMjghClsxMDI1ODY5MC4z NzE3NDhdIGludmFsaWQgb3Bjb2RlOiAwMDAwIFsjMV0gU01QIFBUSQpbMTAyNTg2OTAuMzcyMDk0 XSBDUFU6IDUgUElEOiAwIENvbW06IHN3YXBwZXIvNSBUYWludGVkOiBHICAgICAgICBXICAgICAg ICAgNS4wLjAtcmM2ICMyClsxMDI1ODY5MC4zNzIwOTRdIFJTUDogMDAxODpmZmZmYTA1Nzk3YjQz ZGEwIEVGTEFHUzogMDAwMTAyMDIKWzEwMjU4NjkwLjM3MjA5NF0gUkJQOiAwMDAwMDAwMDAwMDAw NWVhIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAwMDAwMDA1ZWEKWzEwMjU4Njkw LjM3MjA5NF0gUjEwOiBmZmZmYTA1NzkzMzRkODAwIFIxMTogMDAwMDAwMDAwMDAwMDJjMCBSMTI6 IDAwMDAwMDAwMDAwMDAwMDIKWzEwMjU4NjkwLjM3MjA5NF0gUjEzOiAwMDAwMDAwMDAwMDAwMDAw IFIxNDogZmZmZmEwNTc5MzEyMjkwMCBSMTU6IGZmZmZhMDU3OGY3Y2IwMjgKWzEwMjU4NjkwLjM3 MjA5NF0gRlM6ICAwMDAwMDAwMDAwMDAwMDAwKDAwMDApIEdTOmZmZmZhMDU3OTdiNDAwMDAoMDAw MCkga25sR1M6MDAwMDAwMDAwMDAwMDAwMApbMTAyNTg2OTAuMzcyMDk0XSBDUzogIDAwMTAgRFM6 IDAwMDAgRVM6IDAwMDAgQ1IwOiAwMDAwMDAwMDgwMDUwMDMzClsxMDI1ODY5MC4zNzIwOTRdIENS MjogMDAwMDdmMWE2ZGMwMDg2OCBDUjM6IDAwMDAwMDAwMTAwMGUwMDAgQ1I0OiAwMDAwMDAwMDAw MDAwNmUwClsxMDI1ODY5MC4zNzIwOTRdIENhbGwgVHJhY2U6ClsxMDI1ODY5MC4zNzIwOTRdICA8 SVJRPgpbMTAyNTg2OTAuMzcyMDk0XSAgc2tiX3RvX3NndmVjKzB4MTEvMHg0MApbMTAyNTg2OTAu MzcyMDk0XSAgc3RhcnRfeG1pdCsweDM4Yy8weDUyMCBbdmlydGlvX25ldF0KWzEwMjU4NjkwLjM3 MjA5NF0gIGRldl9oYXJkX3N0YXJ0X3htaXQrMHg5Yi8weDIwMApbMTAyNTg2OTAuMzcyMDk0XSAg c2NoX2RpcmVjdF94bWl0KzB4ZmYvMHgyNjAKWzEwMjU4NjkwLjM3MjA5NF0gIF9fcWRpc2NfcnVu KzB4MTVlLzB4NGUwClsxMDI1ODY5MC4zNzIwOTRdICBuZXRfdHhfYWN0aW9uKzB4MTM3LzB4MjEw ClsxMDI1ODY5MC4zNzIwOTRdICBfX2RvX3NvZnRpcnErMHhkNi8weDJhOQpbMTAyNTg2OTAuMzcy MDk0XSAgaXJxX2V4aXQrMHhkZS8weGYwClsxMDI1ODY5MC4zNzIwOTRdICBzbXBfYXBpY190aW1l cl9pbnRlcnJ1cHQrMHg3NC8weDE0MApbMTAyNTg2OTAuMzcyMDk0XSAgYXBpY190aW1lcl9pbnRl cnJ1cHQrMHhmLzB4MjAKWzEwMjU4NjkwLjM3MjA5NF0gIDwvSVJRPgoKSW4gX19za2JfdG9fc2d2 ZWMoKSwgdGhlIHNrYi0+bGVuIGlzIG5vdCBlcXVhbCB0byB0aGUgc3VtIG9mIHRoZSBza2Incwps aW5lYXIgZGF0YSBzaXplIGFuZCBub25saW5lYXIgZGF0YSBzaXplLCB0aHVzIEJVR19PTiB0cmln Z2VyZWQuCkJlY2F1c2UgdGhlIHNrYiBpcyBjbG9uZWQgYW5kIGEgcGFydCBvZiBub25saW5lYXIg ZGF0YSBpcyBzcGxpdCBvZmYuCgpEdXBsaWNhdGUgcGFja2V0IGlzIGNsb25lZCBpbiBuZXRlbV9l bnF1ZXVlKCkgYW5kIG1heSBiZSBkZWxheWVkCnNvbWUgdGltZSBpbiBxZGlzYy4gV2hlbiBxZGlz YyBsZW4gcmVhY2hlZCB0aGUgbGltaXQgYW5kIHJldHVybnMKTkVUX1hNSVRfRFJPUCwgdGhlIHNr YiB3aWxsIGJlIHJldHJhbnNtaXQgbGF0ZXIgaW4gd3JpdGUgcXVldWUuCnRoZSBza2Igd2lsbCBi ZSBmcmFnbWVudGVkIGJ5IHRzb19mcmFnbWVudCgpLCB0aGUgbGltaXQgc2l6ZQp0aGF0IGRlcGVu ZHMgb24gY3duZCBhbmQgbXNzIGRlY3JlYXNlLCB0aGUgc2tiJ3Mgbm9ubGluZWFyCmRhdGEgd2ls bCBiZSBzcGxpdCBvZmYuIFRoZSBsZW5ndGggb2YgdGhlIHNrYiBjbG9uZWQgYnkgbmV0ZW0Kd2ls bCBub3QgYmUgdXBkYXRlZC4gV2hlbiB3ZSB1c2UgdmlydGlvX25ldCBOSUMgYW5kIGludm9rZSBz a2JfdG9fc2d2ZWMoKSwKdGhlIEJVR19PTiB0cmlnZ2VyLgoKVG8gZml4IGl0LCBuZXRlbSByZXR1 cm5zIE5FVF9YTUlUX1NVQ0NFU1MgdG8gdXBwZXIgc3RhY2sKd2hlbiBpdCBjbG9uZXMgYSBkdXBs aWNhdGUgcGFja2V0LgoKRml4ZXM6IDM1ZDg4OWQxICgic2NoX25ldGVtOiBmaXggc2tiIGxlYWsg aW4gbmV0ZW1fZW5xdWV1ZSgpIikKU2lnbmVkLW9mZi1ieTogU2hlbmcgTGFuIDxsYW5zaGVuZ0Bo dWF3ZWkuY29tPgpSZXBvcnRlZC1ieTogUWluIEppIDxqaXFpbi5qaUBodWF3ZWkuY29tPgpTdWdn ZXN0ZWQtYnk6IEVyaWMgRHVtYXpldCA8ZXJpYy5kdW1hemV0QGdtYWlsLmNvbT4KU2lnbmVkLW9m Zi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBE YXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL3NjaF9u ZXRlbS5jIHwgMTAgKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwg MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvc2NoX25ldGVtLmMgYi9uZXQv c2NoZWQvc2NoX25ldGVtLmMKaW5kZXggMjJjZDQ2YTYwMDU3Li5mZmI5ZTIxZmZjNWMgMTAwNjQ0 Ci0tLSBhL25ldC9zY2hlZC9zY2hfbmV0ZW0uYworKysgYi9uZXQvc2NoZWQvc2NoX25ldGVtLmMK QEAgLTQzMCw2ICs0MzAsNyBAQCBzdGF0aWMgaW50IG5ldGVtX2VucXVldWUoc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IFFkaXNjICpzY2gsCiAJaW50IG5iID0gMDsKIAlpbnQgY291bnQgPSAx OwogCWludCByYyA9IE5FVF9YTUlUX1NVQ0NFU1M7CisJaW50IHJjX2Ryb3AgPSBORVRfWE1JVF9E Uk9QOwogCiAJLyogRG8gbm90IGZvb2wgcWRpc2NfZHJvcF9hbGwoKSAqLwogCXNrYi0+cHJldiA9 IE5VTEw7CkBAIC00NjksNiArNDcwLDcgQEAgc3RhdGljIGludCBuZXRlbV9lbnF1ZXVlKHN0cnVj dCBza19idWZmICpza2IsIHN0cnVjdCBRZGlzYyAqc2NoLAogCQlxLT5kdXBsaWNhdGUgPSAwOwog CQlyb290cS0+ZW5xdWV1ZShza2IyLCByb290cSwgdG9fZnJlZSk7CiAJCXEtPmR1cGxpY2F0ZSA9 IGR1cHNhdmU7CisJCXJjX2Ryb3AgPSBORVRfWE1JVF9TVUNDRVNTOwogCX0KIAogCS8qCkBAIC00 ODEsNyArNDgzLDcgQEAgc3RhdGljIGludCBuZXRlbV9lbnF1ZXVlKHN0cnVjdCBza19idWZmICpz a2IsIHN0cnVjdCBRZGlzYyAqc2NoLAogCQlpZiAoc2tiX2lzX2dzbyhza2IpKSB7CiAJCQlzZWdz ID0gbmV0ZW1fc2VnbWVudChza2IsIHNjaCwgdG9fZnJlZSk7CiAJCQlpZiAoIXNlZ3MpCi0JCQkJ cmV0dXJuIE5FVF9YTUlUX0RST1A7CisJCQkJcmV0dXJuIHJjX2Ryb3A7CiAJCX0gZWxzZSB7CiAJ CQlzZWdzID0gc2tiOwogCQl9CkBAIC01MDQsOCArNTA2LDEwIEBAIHN0YXRpYyBpbnQgbmV0ZW1f ZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnNjaCwKIAkJCTE8PChw cmFuZG9tX3UzMigpICUgOCk7CiAJfQogCi0JaWYgKHVubGlrZWx5KHNjaC0+cS5xbGVuID49IHNj aC0+bGltaXQpKQotCQlyZXR1cm4gcWRpc2NfZHJvcF9hbGwoc2tiLCBzY2gsIHRvX2ZyZWUpOwor CWlmICh1bmxpa2VseShzY2gtPnEucWxlbiA+PSBzY2gtPmxpbWl0KSkgeworCQlxZGlzY19kcm9w X2FsbChza2IsIHNjaCwgdG9fZnJlZSk7CisJCXJldHVybiByY19kcm9wOworCX0KIAogCXFkaXNj X3FzdGF0c19iYWNrbG9nX2luYyhzY2gsIHNrYik7CiAKLS0gCjIuMjAuMQoKCkZyb20gZjg0NmNh NzlkYjYwMzQ0YWYyMzM3ZDA1NTM4ZGQyNWQyMDE1MzRjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogWXVlSGFpYmluZyA8eXVlaGFpYmluZ0BodWF3ZWkuY29tPgpEYXRlOiBGcmksIDIy IEZlYiAyMDE5IDE1OjM3OjU4ICswODAwClN1YmplY3Q6IFtQQVRDSCAyMi80Ml0gbmV0OiBuZmM6 IEZpeCBOVUxMIGRlcmVmZXJlbmNlIG9uIG5mY19sbGNwX2J1aWxkX3RsdgogZmFpbHMKClsgVXBz dHJlYW0gY29tbWl0IDU4YmRkNTQ0ZTI5MzNhMjFhNTFlZWNmMTdjM2Y1Zjk0MDM4MjYxYjUgXQoK S0FTQU4gcmVwb3J0IHRoaXM6CgpCVUc6IEtBU0FOOiBudWxsLXB0ci1kZXJlZiBpbiBuZmNfbGxj cF9idWlsZF9nYisweDM3Zi8weDU0MCBbbmZjXQpSZWFkIG9mIHNpemUgMyBhdCBhZGRyIDAwMDAw MDAwMDAwMDAwMDAgYnkgdGFzayBzeXotZXhlY3V0b3IuMC81NDAxCgpDUFU6IDAgUElEOiA1NDAx IENvbW06IHN5ei1leGVjdXRvci4wIE5vdCB0YWludGVkIDUuMC4wLXJjNysgIzQ1CkhhcmR3YXJl IG5hbWU6IFFFTVUgU3RhbmRhcmQgUEMgKGk0NDBGWCArIFBJSVgsIDE5OTYpLCBCSU9TIDEuMTAu Mi0xdWJ1bnR1MSAwNC8wMS8yMDE0CkNhbGwgVHJhY2U6CiBfX2R1bXBfc3RhY2sgbGliL2R1bXBf c3RhY2suYzo3NyBbaW5saW5lXQogZHVtcF9zdGFjaysweGZhLzB4MWNlIGxpYi9kdW1wX3N0YWNr LmM6MTEzCiBrYXNhbl9yZXBvcnQrMHgxNzEvMHgxOGQgbW0va2FzYW4vcmVwb3J0LmM6MzIxCiBt ZW1jcHkrMHgxZi8weDUwIG1tL2thc2FuL2NvbW1vbi5jOjEzMAogbmZjX2xsY3BfYnVpbGRfZ2Ir MHgzN2YvMHg1NDAgW25mY10KIG5mY19sbGNwX3JlZ2lzdGVyX2RldmljZSsweDZlYi8weGI1MCBb bmZjXQogbmZjX3JlZ2lzdGVyX2RldmljZSsweDUwLzB4MWQwIFtuZmNdCiBuZmNzaW1fZGV2aWNl X25ldysweDM5NC8weDY3ZCBbbmZjc2ltXQogPyAweGZmZmZmZmZmYzEwODAwMDAKIG5mY3NpbV9p bml0KzB4NmIvMHgxMDAwIFtuZmNzaW1dCiBkb19vbmVfaW5pdGNhbGwrMHhmYS8weDVjYSBpbml0 L21haW4uYzo4ODcKIGRvX2luaXRfbW9kdWxlKzB4MjA0LzB4NWY2IGtlcm5lbC9tb2R1bGUuYzoz NDYwCiBsb2FkX21vZHVsZSsweDY2YjIvMHg4NTcwIGtlcm5lbC9tb2R1bGUuYzozODA4CiBfX2Rv X3N5c19maW5pdF9tb2R1bGUrMHgyMzgvMHgyYTAga2VybmVsL21vZHVsZS5jOjM5MDIKIGRvX3N5 c2NhbGxfNjQrMHgxNDcvMHg2MDAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6MjkwCiBlbnRyeV9T WVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlClJJUDogMDAzMzoweDQ2MmU5OQpDb2Rl OiBmNyBkOCA2NCA4OSAwMiBiOCBmZiBmZiBmZiBmZiBjMyA2NiAwZiAxZiA0NCAwMCAwMCA0OCA4 OSBmOCA0OCA4OSBmNyA0OCA4OSBkNiA0OCA4OSBjYSA0ZCA4OSBjMiA0ZCA4OSBjOCA0YyA4YiA0 YyAyNCAwOCAwZiAwNSA8NDg+IDNkIDAxIGYwIGZmIGZmIDczIDAxIGMzIDQ4IGM3IGMxIGJjIGZm IGZmIGZmIGY3IGQ4IDY0IDg5IDAxIDQ4ClJTUDogMDAyYjowMDAwN2Y5Y2I3OWRjYzU4IEVGTEFH UzogMDAwMDAyNDYgT1JJR19SQVg6IDAwMDAwMDAwMDAwMDAxMzkKUkFYOiBmZmZmZmZmZmZmZmZm ZmRhIFJCWDogMDAwMDAwMDAwMDczYmYwMCBSQ1g6IDAwMDAwMDAwMDA0NjJlOTkKUkRYOiAwMDAw MDAwMDAwMDAwMDAwIFJTSTogMDAwMDAwMDAyMDAwMDI4MCBSREk6IDAwMDAwMDAwMDAwMDAwMDMK UkJQOiAwMDAwN2Y5Y2I3OWRjYzcwIFIwODogMDAwMDAwMDAwMDAwMDAwMCBSMDk6IDAwMDAwMDAw MDAwMDAwMDAKUjEwOiAwMDAwMDAwMDAwMDAwMDAwIFIxMTogMDAwMDAwMDAwMDAwMDI0NiBSMTI6 IDAwMDA3ZjljYjc5ZGQ2YmMKUjEzOiAwMDAwMDAwMDAwNGJjZWZiIFIxNDogMDAwMDAwMDAwMDZm NzAzMCBSMTU6IDAwMDAwMDAwMDAwMDAwMDQKCm5mY19sbGNwX2J1aWxkX3RsdiB3aWxsIHJldHVy biBOVUxMIG9uIGZhaWxzLCBjYWxsZXIgc2hvdWxkIGNoZWNrIGl0LApvdGhlcndpc2Ugd2lsbCB0 cmlnZ2VyIGEgTlVMTCBkZXJlZmVyZW5jZS4KClJlcG9ydGVkLWJ5OiBIdWxrIFJvYm90IDxodWxr Y2lAaHVhd2VpLmNvbT4KRml4ZXM6IGVkYTIxZjE2YTVlZCAoIk5GQzogU2V0IE1JVSBhbmQgUlcg dmFsdWVzIGZyb20gQ09OTkVDVCBhbmQgQ0MgTExDUCBmcmFtZXMiKQpGaXhlczogZDY0Njk2MGY3 OTg2ICgiTkZDOiBJbml0aWFsIExMQ1Agc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IFl1ZUhhaWJp bmcgPHl1ZWhhaWJpbmdAaHVhd2VpLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9uZmMvbGxjcF9jb21tYW5kcy5jIHwgMjAg KysrKysrKysrKysrKysrKysrKysKIG5ldC9uZmMvbGxjcF9jb3JlLmMgICAgIHwgMjQgKysrKysr KysrKysrKysrKysrKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQwIGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0L25mYy9sbGNwX2NvbW1hbmRzLmMgYi9uZXQv bmZjL2xsY3BfY29tbWFuZHMuYwppbmRleCA2YTE5NmU0MzhiNmMuLmQxZmMwMTllOTMyZSAxMDA2 NDQKLS0tIGEvbmV0L25mYy9sbGNwX2NvbW1hbmRzLmMKKysrIGIvbmV0L25mYy9sbGNwX2NvbW1h bmRzLmMKQEAgLTQxOSw2ICs0MTksMTAgQEAgaW50IG5mY19sbGNwX3NlbmRfY29ubmVjdChzdHJ1 Y3QgbmZjX2xsY3Bfc29jayAqc29jaykKIAkJCQkJCSAgICAgIHNvY2stPnNlcnZpY2VfbmFtZSwK IAkJCQkJCSAgICAgIHNvY2stPnNlcnZpY2VfbmFtZV9sZW4sCiAJCQkJCQkgICAgICAmc2Vydmlj ZV9uYW1lX3Rsdl9sZW5ndGgpOworCQlpZiAoIXNlcnZpY2VfbmFtZV90bHYpIHsKKwkJCWVyciA9 IC1FTk9NRU07CisJCQlnb3RvIGVycm9yX3RsdjsKKwkJfQogCQlzaXplICs9IHNlcnZpY2VfbmFt ZV90bHZfbGVuZ3RoOwogCX0KIApAQCAtNDI5LDkgKzQzMywxNyBAQCBpbnQgbmZjX2xsY3Bfc2Vu ZF9jb25uZWN0KHN0cnVjdCBuZmNfbGxjcF9zb2NrICpzb2NrKQogCiAJbWl1eF90bHYgPSBuZmNf bGxjcF9idWlsZF90bHYoTExDUF9UTFZfTUlVWCwgKHU4ICopJm1pdXgsIDAsCiAJCQkJICAgICAg Jm1pdXhfdGx2X2xlbmd0aCk7CisJaWYgKCFtaXV4X3RsdikgeworCQllcnIgPSAtRU5PTUVNOwor CQlnb3RvIGVycm9yX3RsdjsKKwl9CiAJc2l6ZSArPSBtaXV4X3Rsdl9sZW5ndGg7CiAKIAlyd190 bHYgPSBuZmNfbGxjcF9idWlsZF90bHYoTExDUF9UTFZfUlcsICZydywgMCwgJnJ3X3Rsdl9sZW5n dGgpOworCWlmICghcndfdGx2KSB7CisJCWVyciA9IC1FTk9NRU07CisJCWdvdG8gZXJyb3JfdGx2 OworCX0KIAlzaXplICs9IHJ3X3Rsdl9sZW5ndGg7CiAKIAlwcl9kZWJ1ZygiU0tCIHNpemUgJWQg U04gbGVuZ3RoICV6dVxuIiwgc2l6ZSwgc29jay0+c2VydmljZV9uYW1lX2xlbik7CkBAIC00ODQs OSArNDk2LDE3IEBAIGludCBuZmNfbGxjcF9zZW5kX2NjKHN0cnVjdCBuZmNfbGxjcF9zb2NrICpz b2NrKQogCiAJbWl1eF90bHYgPSBuZmNfbGxjcF9idWlsZF90bHYoTExDUF9UTFZfTUlVWCwgKHU4 ICopJm1pdXgsIDAsCiAJCQkJICAgICAgJm1pdXhfdGx2X2xlbmd0aCk7CisJaWYgKCFtaXV4X3Rs dikgeworCQllcnIgPSAtRU5PTUVNOworCQlnb3RvIGVycm9yX3RsdjsKKwl9CiAJc2l6ZSArPSBt aXV4X3Rsdl9sZW5ndGg7CiAKIAlyd190bHYgPSBuZmNfbGxjcF9idWlsZF90bHYoTExDUF9UTFZf UlcsICZydywgMCwgJnJ3X3Rsdl9sZW5ndGgpOworCWlmICghcndfdGx2KSB7CisJCWVyciA9IC1F Tk9NRU07CisJCWdvdG8gZXJyb3JfdGx2OworCX0KIAlzaXplICs9IHJ3X3Rsdl9sZW5ndGg7CiAK IAlza2IgPSBsbGNwX2FsbG9jYXRlX3BkdShzb2NrLCBMTENQX1BEVV9DQywgc2l6ZSk7CmRpZmYg LS1naXQgYS9uZXQvbmZjL2xsY3BfY29yZS5jIGIvbmV0L25mYy9sbGNwX2NvcmUuYwppbmRleCBl ZjQwMjZhMjNlODAuLjRmYTAxNTIwOGFhYiAxMDA2NDQKLS0tIGEvbmV0L25mYy9sbGNwX2NvcmUu YworKysgYi9uZXQvbmZjL2xsY3BfY29yZS5jCkBAIC01MzIsMTAgKzUzMiwxMCBAQCBzdGF0aWMg dTggbmZjX2xsY3BfcmVzZXJ2ZV9zZHBfc3NhcChzdHJ1Y3QgbmZjX2xsY3BfbG9jYWwgKmxvY2Fs KQogCiBzdGF0aWMgaW50IG5mY19sbGNwX2J1aWxkX2diKHN0cnVjdCBuZmNfbGxjcF9sb2NhbCAq bG9jYWwpCiB7Ci0JdTggKmdiX2N1ciwgKnZlcnNpb25fdGx2LCB2ZXJzaW9uLCB2ZXJzaW9uX2xl bmd0aDsKLQl1OCAqbHRvX3RsdiwgbHRvX2xlbmd0aDsKLQl1OCAqd2tzX3Rsdiwgd2tzX2xlbmd0 aDsKLQl1OCAqbWl1eF90bHYsIG1pdXhfbGVuZ3RoOworCXU4ICpnYl9jdXIsIHZlcnNpb24sIHZl cnNpb25fbGVuZ3RoOworCXU4IGx0b19sZW5ndGgsIHdrc19sZW5ndGgsIG1pdXhfbGVuZ3RoOwor CXU4ICp2ZXJzaW9uX3RsdiA9IE5VTEwsICpsdG9fdGx2ID0gTlVMTCwKKwkgICAqd2tzX3RsdiA9 IE5VTEwsICptaXV4X3RsdiA9IE5VTEw7CiAJX19iZTE2IHdrcyA9IGNwdV90b19iZTE2KGxvY2Fs LT5sb2NhbF93a3MpOwogCXU4IGdiX2xlbiA9IDA7CiAJaW50IHJldCA9IDA7CkBAIC01NDMsMTcg KzU0MywzMyBAQCBzdGF0aWMgaW50IG5mY19sbGNwX2J1aWxkX2diKHN0cnVjdCBuZmNfbGxjcF9s b2NhbCAqbG9jYWwpCiAJdmVyc2lvbiA9IExMQ1BfVkVSU0lPTl8xMTsKIAl2ZXJzaW9uX3RsdiA9 IG5mY19sbGNwX2J1aWxkX3RsdihMTENQX1RMVl9WRVJTSU9OLCAmdmVyc2lvbiwKIAkJCQkJIDEs ICZ2ZXJzaW9uX2xlbmd0aCk7CisJaWYgKCF2ZXJzaW9uX3RsdikgeworCQlyZXQgPSAtRU5PTUVN OworCQlnb3RvIG91dDsKKwl9CiAJZ2JfbGVuICs9IHZlcnNpb25fbGVuZ3RoOwogCiAJbHRvX3Rs diA9IG5mY19sbGNwX2J1aWxkX3RsdihMTENQX1RMVl9MVE8sICZsb2NhbC0+bHRvLCAxLCAmbHRv X2xlbmd0aCk7CisJaWYgKCFsdG9fdGx2KSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0 OworCX0KIAlnYl9sZW4gKz0gbHRvX2xlbmd0aDsKIAogCXByX2RlYnVnKCJMb2NhbCB3a3MgMHgl bHhcbiIsIGxvY2FsLT5sb2NhbF93a3MpOwogCXdrc190bHYgPSBuZmNfbGxjcF9idWlsZF90bHYo TExDUF9UTFZfV0tTLCAodTggKikmd2tzLCAyLCAmd2tzX2xlbmd0aCk7CisJaWYgKCF3a3NfdGx2 KSB7CisJCXJldCA9IC1FTk9NRU07CisJCWdvdG8gb3V0OworCX0KIAlnYl9sZW4gKz0gd2tzX2xl bmd0aDsKIAogCW1pdXhfdGx2ID0gbmZjX2xsY3BfYnVpbGRfdGx2KExMQ1BfVExWX01JVVgsICh1 OCAqKSZsb2NhbC0+bWl1eCwgMCwKIAkJCQkgICAgICAmbWl1eF9sZW5ndGgpOworCWlmICghbWl1 eF90bHYpIHsKKwkJcmV0ID0gLUVOT01FTTsKKwkJZ290byBvdXQ7CisJfQogCWdiX2xlbiArPSBt aXV4X2xlbmd0aDsKIAogCWdiX2xlbiArPSBBUlJBWV9TSVpFKGxsY3BfbWFnaWMpOwotLSAKMi4y MC4xCgoKRnJvbSBhMjhjOTM3MmUyMmYwNzk3OWFmYTMwY2Q0YTIzZmExZWI3YzdjMDRiIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSYWphc2luZ2ggVGhhdmFtYW5pIDxULlJhamFzaW5n aEBsYW5kaXNneXIuY29tPgpEYXRlOiBXZWQsIDI3IEZlYiAyMDE5IDE3OjQzOjE5ICswNTMwClN1 YmplY3Q6IFtQQVRDSCAyMy80Ml0gbmV0OiBwaHk6IE1pY3JlbCBLU1o4MDYxOiBsaW5rIGZhaWx1 cmUgYWZ0ZXIgY2FibGUKIGNvbm5lY3QKClsgVXBzdHJlYW0gY29tbWl0IDIzMmJhM2E1MWNjMjI0 YjMzOWM3MTE0ODg4ZWQ3ZjBkNGQ5NTY5NWUgXQoKV2l0aCBNaWNyZWwgS1NaODA2MSBQSFksIHRo ZSBsaW5rIG1heSBvY2Nhc2lvbmFsbHkgbm90IGNvbWUgdXAgYWZ0ZXIKRXRoZXJuZXQgY2FibGUg Y29ubmVjdC4gVGhlIHZlbmRvcidzIChNaWNyb2NoaXAsIGZvcm1lciBNaWNyZWwpIGVycmF0YQpz aGVldCA4MDAwMDY4OEEucGRmIGRlc2NyaXBlcyB0aGUgcHJvYmxlbSBhbmQgcG9zc2libGUgd29y a2Fyb3VuZHMgaW4KZGV0YWlsLCBzZWUgYmVsb3cuClRoZSBiYXRjaCBpbXBsZW1lbnRzIHdvcmth cm91bmQgMSwgd2hpY2ggcGVybWFuZW50bHkgZml4ZXMgdGhlIGlzc3VlLgoKREVTQ1JJUFRJT04K TGluay11cCBtYXkgbm90IG9jY3VyIHByb3Blcmx5IHdoZW4gdGhlIEV0aGVybmV0IGNhYmxlIGlz IGluaXRpYWxseQpjb25uZWN0ZWQuIFRoaXMgaXNzdWUgb2NjdXJzIG1vcmUgY29tbW9ubHkgd2hl biB0aGUgY2FibGUgaXMgY29ubmVjdGVkCnNsb3dseSwgYnV0IGl0IG1heSBvY2N1ciBhbnkgdGlt ZSBhIGNhYmxlIGlzIGNvbm5lY3RlZC4gVGhpcyBpc3N1ZSBvY2N1cnMKaW4gdGhlIGF1dG8tbmVn b3RpYXRpb24gY2lyY3VpdCwgYW5kIHdpbGwgbm90IG9jY3VyIGlmIGF1dG8tbmVnb3RpYXRpb24K aXMgZGlzYWJsZWQgKHdoaWNoIHJlcXVpcmVzIHRoYXQgdGhlIHR3byBsaW5rIHBhcnRuZXJzIGJl IHNldCB0byB0aGUKc2FtZSBzcGVlZCBhbmQgZHVwbGV4KS4KCkVORCBVU0VSIElNUExJQ0FUSU9O UwpXaGVuIHRoaXMgaXNzdWUgb2NjdXJzLCBsaW5rIGlzIG5vdCBlc3RhYmxpc2hlZC4gU3Vic2Vx dWVudCBjYWJsZQpwbHVnL3VucGxhdWcgY3ljbGUgd2lsbCBub3QgY29ycmVjdCB0aGUgaXNzdWUu CgpXT1JrIEFST1VORApUaGVyZSBhcmUgZm91ciBhcHByb2FjaGVzIHRvIHdvcmsgYXJvdW5kIHRo aXMgaXNzdWU6CjEuIFRoaXMgaXNzdWUgY2FuIGJlIHByZXZlbnRlZCBieSBzZXR0aW5nIGJpdCAx NSBpbiBNTUQgZGV2aWNlIGFkZHJlc3MgMSwKICAgcmVnaXN0ZXIgMiwgcHJpb3IgdG8gY29ubmVj dGluZyB0aGUgY2FibGUgb3IgcHJpb3IgdG8gc2V0dGluZyB0aGUKICAgUmVzdGFydCBBdXRvLW5l Z290aWF0aW9uIGJpdCBpbiByZWdpc3RlciAwaC4gVGhlIE1NRCByZWdpc3RlcnMgYXJlCiAgIGFj Y2Vzc2VkIHZpYSB0aGUgaW5kaXJlY3QgYWNjZXNzIHJlZ2lzdGVycyBEaCBhbmQgRWgsIG9yIHZp YSB0aGUgTWljcmVsCiAgIEV0aFV0aWwgdXRpbGl0eSBhcyBzaG93biBoZXJlOgogICAuIGlmIHVz aW5nIHRoZSBFdGhVdGlsIHV0aWxpdHkgKHVzdWFsbHkgd2l0aCBhIE1pY3JlbCBLU1o4MDYxCiAg ICAgRXZhbHVhdGlvbiBCb2FyZCksIHR5cGUgdGhlIGZvbGxvd2luZyBjb21tYW5kczoKICAgICA+ IGFkZHJlc3MgMQogICAgID4gbW1kIDEKICAgICA+IGl3IDIgYjYxYQogICAuIEFsdGVybmF0aXZl bHksIHdyaXRlIHRoZSBmb2xsb3dpbmcgcmVnaXN0ZXJzIHRvIHdyaXRlIHRvIHRoZQogICAgIGlu ZGlyZWN0IE1NRCByZWdpc3RlcjoKICAgICBXcml0ZSByZWdpc3RlciBEaCwgZGF0YSAwMDAxaAog ICAgIFdyaXRlIHJlZ2lzdGVyIEVoLCBkYXRhIDAwMDJoCiAgICAgV3JpdGUgcmVnaXN0ZXIgRGgs IGRhdGEgNDAwMWgKICAgICBXcml0ZSByZWdpc3RlciBFaCwgZGF0YSBCNjFBaAoyLiBUaGUgaXNz dWUgY2FuIGJlIGF2b2lkZWQgYnkgZGlzYWJsaW5nIGF1dG8tbmVnb3RpYXRpb24gaW4gdGhlIEtT WjgwNjEsCiAgIGVpdGhlciBieSB0aGUgc3RyYXBwaW5nIG9wdGlvbiwgb3IgYnkgY2xlYXJpbmcg Yml0IDEyIGluIHJlZ2lzdGVyIDBoLgogICBDYXJlIG11c3QgYmUgdGFrZW4gdG8gZW5zdXJlIHRo YXQgdGhlIEtTWjgwNjEgYW5kIHRoZSBsaW5rIHBhcnRuZXIKICAgd2lsbCBsaW5rIHdpdGggdGhl IHNhbWUgc3BlZWQgYW5kIGR1cGxleC4gTm90ZSB0aGF0IHRoZSBLU1o4MDYxCiAgIGRlZmF1bHRz IHRvIGZ1bGwtZHVwbGV4IHdoZW4gYXV0by1uZWdvdGlhdGlvbiBpcyBvZmYsIGJ1dCBvdGhlcgog ICBkZXZpY2VzIG1heSBkZWZhdWx0IHRvIGhhbGYtZHVwbGV4IGluIHRoZSBldmVudCBvZiBmYWls ZWQKICAgYXV0by1uZWdvdGlhdGlvbi4KMy4gVGhlIGlzc3VlIGNhbiBiZSBhdm9pZGVkIGJ5IGNv bm5lY3RpbmcgdGhlIGNhYmxlIHByaW9yIHRvIHBvd2VyaW5nLXVwCiAgIG9yIHJlc2V0dGluZyB0 aGUgS1NaODA2MSwgYW5kIGxlYXZpbmcgaXQgcGx1Z2dlZCBpbiB0aGVyZWFmdGVyLgo0LiBJZiB0 aGUgYWJvdmUgbWVhc3VyZXMgYXJlIG5vdCB0YWtlbiBhbmQgdGhlIHByb2JsZW0gb2NjdXJzLCBs aW5rIGNhbgogICBiZSByZWNvdmVyZWQgYnkgc2V0dGluZyB0aGUgUmVzdGFydCBBdXRvLU5lZ290 aWF0aW9uIGJpdCBpbgogICByZWdpc3RlciAwaCwgb3IgYnkgcmVzZXR0aW5nIG9yIHBvd2VyIGN5 Y2xpbmcgdGhlIGRldmljZS4gUmVzZXQgbWF5CiAgIGJlIGVpdGhlciBoYXJkd2FyZSByZXNldCBv ciBzb2Z0d2FyZSByZXNldCAocmVnaXN0ZXIgMGgsIGJpdCAxNSkuCgpQTEFOClRoaXMgZXJyYXRh IHdpbGwgbm90IGJlIGNvcnJlY3RlZCBpbiB0aGUgZnV0dXJlIHJldmlzaW9uLgoKRml4ZXM6IDdh YjU5ZGMxNWUyZiAoImRyaXZlcnMvbmV0L3BoeS9taWNyZWxfcGh5OiBBZGQgc3VwcG9ydCBmb3Ig bmV3IFBIWXMiKQpTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kZXIgT25uYXNjaCA8YWxleGFuZGVyLm9u bmFzY2hAbGFuZGlzZ3lyLmNvbT4KU2lnbmVkLW9mZi1ieTogUmFqYXNpbmdoIFRoYXZhbWFuaSA8 VC5SYWphc2luZ2hAbGFuZGlzZ3lyLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRy ZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxv ZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3BoeS9taWNyZWwuYyB8IDEzICsrKysrKysrKysrKy0K IDEgZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvcGh5L21pY3JlbC5jIGIvZHJpdmVycy9uZXQvcGh5L21pY3JlbC5j CmluZGV4IDIyZGZiZDRjNmFhZi4uMjAxNTJlYjAwOGQ1IDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9waHkvbWljcmVsLmMKKysrIGIvZHJpdmVycy9uZXQvcGh5L21pY3JlbC5jCkBAIC0zMzksNiAr MzM5LDE3IEBAIHN0YXRpYyBpbnQga3N6ODA0MV9jb25maWdfYW5lZyhzdHJ1Y3QgcGh5X2Rldmlj ZSAqcGh5ZGV2KQogCXJldHVybiBnZW5waHlfY29uZmlnX2FuZWcocGh5ZGV2KTsKIH0KIAorc3Rh dGljIGludCBrc3o4MDYxX2NvbmZpZ19pbml0KHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYpCit7 CisJaW50IHJldDsKKworCXJldCA9IHBoeV93cml0ZV9tbWQocGh5ZGV2LCBNRElPX01NRF9QTUFQ TUQsIE1ESU9fREVWSUQxLCAweEI2MUEpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwly ZXR1cm4ga3N6cGh5X2NvbmZpZ19pbml0KHBoeWRldik7Cit9CisKIHN0YXRpYyBpbnQga3N6OTAy MV9sb2FkX3ZhbHVlc19mcm9tX29mKHN0cnVjdCBwaHlfZGV2aWNlICpwaHlkZXYsCiAJCQkJICAg ICAgIGNvbnN0IHN0cnVjdCBkZXZpY2Vfbm9kZSAqb2Zfbm9kZSwKIAkJCQkgICAgICAgdTE2IHJl ZywKQEAgLTkyMCw3ICs5MzEsNyBAQCBzdGF0aWMgc3RydWN0IHBoeV9kcml2ZXIga3NwaHlfZHJp dmVyW10gPSB7CiAJLmZlYXR1cmVzCT0gUEhZX0JBU0lDX0ZFQVRVUkVTLAogCS5mbGFncwkJPSBQ SFlfSEFTX0lOVEVSUlVQVCwKIAkuZHJpdmVyX2RhdGEJPSAma3M4NzM3X3R5cGUsCi0JLmNvbmZp Z19pbml0CT0ga3N6cGh5X2NvbmZpZ19pbml0LAorCS5jb25maWdfaW5pdAk9IGtzejgwNjFfY29u ZmlnX2luaXQsCiAJLmFja19pbnRlcnJ1cHQJPSBrc3pwaHlfYWNrX2ludGVycnVwdCwKIAkuY29u ZmlnX2ludHIJPSBrc3pwaHlfY29uZmlnX2ludHIsCiAJLnN1c3BlbmQJPSBnZW5waHlfc3VzcGVu ZCwKLS0gCjIuMjAuMQoKCkZyb20gODJjNTM1M2RlZGVhOGZjYzFiZDMxNWU1ODIxODVjN2NlZWE5 ZTY0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2Fs bHdlaXQxQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyNiBGZWIgMjAxOSAxOToyOToyMiArMDEwMApT dWJqZWN0OiBbUEFUQ0ggMjQvNDJdIG5ldDogcGh5OiBwaHlsaW5rOiBmaXggdW5pbml0aWFsaXpl ZCB2YXJpYWJsZSBpbgogcGh5bGlua19nZXRfbWFjX3N0YXRlCgpbIFVwc3RyZWFtIGNvbW1pdCBk MjVlZDQxM2Q1ZTUxNjQ0ZTE4ZjY2ZTM0ZWVjMDQ5ZjE3YTdhYmNiIF0KCldoZW4gZGVidWdnaW5n IGFuIGlzc3VlIEkgZm91bmQgaW1wbGF1c2libGUgdmFsdWVzIGluIHN0YXRlLT5wYXVzZS4KUmVh c29uIGluIHRoYXQgc3RhdGUtPnBhdXNlIGlzbid0IGluaXRpYWxpemVkIGFuZCBsYXRlciBvbmx5 IHNpbmdsZQpiaXRzIGFyZSBjaGFuZ2VkLiBBbHNvIHRoZSBzdHJ1Y3QgaXRzZWxmIGlzbid0IGlu aXRpYWxpemVkIGluCnBoeWxpbmtfcmVzb2x2ZSgpLiBTbyBiZXR0ZXIgaW5pdGlhbGl6ZSBzdGF0 ZS0+cGF1c2UgYW5kIG90aGVyCm5vdCB5ZXQgaW5pdGlhbGl6ZWQgZmllbGRzLgoKdjI6Ci0gdXNl IHJpZ2h0IGZ1bmN0aW9uIG5hbWUgaW4gc3ViamVjdAp2MzoKLSBpbml0aWFsaXplIGFkZGl0aW9u YWwgZmllbGRzCgpGaXhlczogOTUyNWFlODM5NTliICgicGh5bGluazogYWRkIHBoeWxpbmsgaW5m cmFzdHJ1Y3R1cmUiKQpTaWduZWQtb2ZmLWJ5OiBIZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvcGh5L3BoeWxpbmsuYyB8IDQgKysrKwogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BoeS9waHls aW5rLmMgYi9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCmluZGV4IGI2MGM4MjA2NWZkMS4uOTMz NjVhNWMyNTU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9waHkvcGh5bGluay5jCisrKyBiL2Ry aXZlcnMvbmV0L3BoeS9waHlsaW5rLmMKQEAgLTMyMSw2ICszMjEsMTAgQEAgc3RhdGljIGludCBw aHlsaW5rX2dldF9tYWNfc3RhdGUoc3RydWN0IHBoeWxpbmsgKnBsLCBzdHJ1Y3QgcGh5bGlua19s aW5rX3N0YXRlICoKIAlsaW5rbW9kZV96ZXJvKHN0YXRlLT5scF9hZHZlcnRpc2luZyk7CiAJc3Rh dGUtPmludGVyZmFjZSA9IHBsLT5saW5rX2NvbmZpZy5pbnRlcmZhY2U7CiAJc3RhdGUtPmFuX2Vu YWJsZWQgPSBwbC0+bGlua19jb25maWcuYW5fZW5hYmxlZDsKKwlzdGF0ZS0+c3BlZWQgPSBTUEVF RF9VTktOT1dOOworCXN0YXRlLT5kdXBsZXggPSBEVVBMRVhfVU5LTk9XTjsKKwlzdGF0ZS0+cGF1 c2UgPSBNTE9fUEFVU0VfTk9ORTsKKwlzdGF0ZS0+YW5fY29tcGxldGUgPSAwOwogCXN0YXRlLT5s aW5rID0gMTsKIAogCXJldHVybiBwbC0+b3BzLT5tYWNfbGlua19zdGF0ZShuZGV2LCBzdGF0ZSk7 Ci0tIAoyLjIwLjEKCgpGcm9tIGQ0YTliMjQxMDczMmE5OWU5M2FlMzM3NzBkMGNkNDYzMGQwZmRk NmEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1hbyBXZW5hbiA8bWFvd2VuYW5AaHVh d2VpLmNvbT4KRGF0ZTogRnJpLCAxIE1hciAyMDE5IDIzOjA2OjQwICswODAwClN1YmplY3Q6IFtQ QVRDSCAyNS80Ml0gbmV0OiBzaXQ6IGZpeCBtZW1vcnkgbGVhayBpbiBzaXRfaW5pdF9uZXQoKQoK WyBVcHN0cmVhbSBjb21taXQgMDdmMTJiMjZlMjFhYjM1OTI2MWJmNzVjZmNiNDI0ZmRjN2RhZWI2 ZCBdCgpJZiByZWdpc3Rlcl9uZXRkZXYoKSBpcyBmYWlsZWQgdG8gcmVnaXN0ZXIgc2l0bi0+ZmJf dHVubmVsX2RldiwKaXQgd2lsbCBnbyB0byBlcnJfcmVnX2RldiBhbmQgZm9yZ2V0IHRvIGZyZWUg bmV0ZGV2KHNpdG4tPmZiX3R1bm5lbF9kZXYpLgoKQlVHOiBtZW1vcnkgbGVhawp1bnJlZmVyZW5j ZWQgb2JqZWN0IDB4ZmZmZjg4ODM3OGRhYWQwMCAoc2l6ZSA1MTIpOgogIGNvbW0gInN5ei1leGVj dXRvci4xIiwgcGlkIDQwMDYsIGppZmZpZXMgNDI5NTEyMTE0MiAoYWdlIDE2LjExNXMpCiAgaGV4 IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIGU2IGVkIGMwIDgzIDg4IGZmIGZmIDAwIDAw IDAwIDAwIDAwIDAwIDAwIDAwICAuLi4uLi4uLi4uLi4uLi4uCiAgICAwMCAwMCAwMCAwMCAwMCAw MCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4uLi4uLi4uLgpiYWNrdHJh Y2U6CiAgICBbPDAwMDAwMDAwZDZkY2I2M2U+XSBrdm1hbGxvYyBpbmNsdWRlL2xpbnV4L21tLmg6 NTc3IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwZDZkY2I2M2U+XSBrdnphbGxvYyBpbmNsdWRlL2xp bnV4L21tLmg6NTg1IFtpbmxpbmVdCiAgICBbPDAwMDAwMDAwZDZkY2I2M2U+XSBuZXRpZl9hbGxv Y19uZXRkZXZfcXVldWVzIG5ldC9jb3JlL2Rldi5jOjgzODAgW2lubGluZV0KICAgIFs8MDAwMDAw MDBkNmRjYjYzZT5dIGFsbG9jX25ldGRldl9tcXMrMHg2MDAvMHhjYzAgbmV0L2NvcmUvZGV2LmM6 ODk3MAogICAgWzwwMDAwMDAwMDg2N2UxNzJmPl0gc2l0X2luaXRfbmV0KzB4Mjk1LzB4YTQwIG5l dC9pcHY2L3NpdC5jOjE4NDgKICAgIFs8MDAwMDAwMDA4NzEwMTlmYT5dIG9wc19pbml0KzB4YWQv MHgzZTAgbmV0L2NvcmUvbmV0X25hbWVzcGFjZS5jOjEyOQogICAgWzwwMDAwMDAwMDMxOTUwN2Y2 Pl0gc2V0dXBfbmV0KzB4MmJhLzB4NjkwIG5ldC9jb3JlL25ldF9uYW1lc3BhY2UuYzozMTQKICAg IFs8MDAwMDAwMDA4N2RiNGY5Nj5dIGNvcHlfbmV0X25zKzB4MWRjLzB4MzMwIG5ldC9jb3JlL25l dF9uYW1lc3BhY2UuYzo0MzcKICAgIFs8MDAwMDAwMDA1N2VmYzY1MT5dIGNyZWF0ZV9uZXdfbmFt ZXNwYWNlcysweDM4Mi8weDczMCBrZXJuZWwvbnNwcm94eS5jOjEwNwogICAgWzwwMDAwMDAwMDY3 NmY4M2RlPl0gY29weV9uYW1lc3BhY2VzKzB4MmVkLzB4M2QwIGtlcm5lbC9uc3Byb3h5LmM6MTY1 CiAgICBbPDAwMDAwMDAwMzBiNzRiYWM+XSBjb3B5X3Byb2Nlc3MucGFydC4yNysweDIzMWUvMHg2 ZGIwIGtlcm5lbC9mb3JrLmM6MTkxOQogICAgWzwwMDAwMDAwMGZmZjc4NzQ2Pl0gY29weV9wcm9j ZXNzIGtlcm5lbC9mb3JrLmM6MTcxMyBbaW5saW5lXQogICAgWzwwMDAwMDAwMGZmZjc4NzQ2Pl0g X2RvX2ZvcmsrMHgxYmMvMHhlOTAga2VybmVsL2ZvcmsuYzoyMjI0CiAgICBbPDAwMDAwMDAwMWMy ZTBkMWM+XSBkb19zeXNjYWxsXzY0KzB4YzgvMHg1ODAgYXJjaC94ODYvZW50cnkvY29tbW9uLmM6 MjkwCiAgICBbPDAwMDAwMDAwZWM0OGJkNDQ+XSBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJh bWUrMHg0OS8weGJlCiAgICBbPDAwMDAwMDAwMzlhY2ZmOGE+XSAweGZmZmZmZmZmZmZmZmZmZmYK ClNpZ25lZC1vZmYtYnk6IE1hbyBXZW5hbiA8bWFvd2VuYW5AaHVhd2VpLmNvbT4KU2lnbmVkLW9m Zi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY2 L3NpdC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKCmRpZmYgLS1naXQg YS9uZXQvaXB2Ni9zaXQuYyBiL25ldC9pcHY2L3NpdC5jCmluZGV4IGU4YTFkYWJlZjgwMy4uMDll NDQwZThkZmFlIDEwMDY0NAotLS0gYS9uZXQvaXB2Ni9zaXQuYworKysgYi9uZXQvaXB2Ni9zaXQu YwpAQCAtMTg3Myw2ICsxODczLDcgQEAgc3RhdGljIGludCBfX25ldF9pbml0IHNpdF9pbml0X25l dChzdHJ1Y3QgbmV0ICpuZXQpCiAKIGVycl9yZWdfZGV2OgogCWlwaXA2X2Rldl9mcmVlKHNpdG4t PmZiX3R1bm5lbF9kZXYpOworCWZyZWVfbmV0ZGV2KHNpdG4tPmZiX3R1bm5lbF9kZXYpOwogZXJy X2FsbG9jX2RldjoKIAlyZXR1cm4gZXJyOwogfQotLSAKMi4yMC4xCgoKRnJvbSA3YjVjNjUyZGU1 YmVkMDgwNTIyYmUxMDc1NDRkMTEzYjkwOWE5Mzc0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpG cm9tOiBFcmljIEJpZ2dlcnMgPGViaWdnZXJzQGdvb2dsZS5jb20+CkRhdGU6IFRodSwgMjEgRmVi IDIwMTkgMTQ6MTM6NTYgLTA4MDAKU3ViamVjdDogW1BBVENIIDI2LzQyXSBuZXQ6IHNvY2tldDog c2V0IHNvY2stPnNrIHRvIE5VTEwgYWZ0ZXIgY2FsbGluZwogcHJvdG9fb3BzOjpyZWxlYXNlKCkK ClsgVXBzdHJlYW0gY29tbWl0IGZmN2IxMWFhNDgxZjY4MmUwZTk3MTFhYmZlYjdkMDNmNWNkNjEy YmYgXQoKQ29tbWl0IDkwNjBjYjcxOWU2MSAoIm5ldDogY3J5cHRvIHNldCBzayB0byBOVUxMIHdo ZW4gYWZfYWxnX3JlbGVhc2UuIikKZml4ZWQgYSB1c2UtYWZ0ZXItZnJlZSBpbiBzb2NrZnNfc2V0 YXR0cigpIHdoZW4gYW4gQUZfQUxHIHNvY2tldCBpcwpjbG9zZWQgY29uY3VycmVudGx5IHdpdGgg ZmNob3duYXQoKS4gIEhvd2V2ZXIsIGl0IGlnbm9yZWQgdGhhdCBtYW55Cm90aGVyIHByb3RvX29w czo6cmVsZWFzZSgpIG1ldGhvZHMgZG9uJ3Qgc2V0IHNvY2stPnNrIHRvIE5VTEwgYW5kCnRoZXJl Zm9yZSBhbGxvdyB0aGUgc2FtZSB1c2UtYWZ0ZXItZnJlZToKCiAgICAtIGJhc2Vfc29ja19yZWxl YXNlCiAgICAtIGJuZXBfc29ja19yZWxlYXNlCiAgICAtIGNtdHBfc29ja19yZWxlYXNlCiAgICAt IGRhdGFfc29ja19yZWxlYXNlCiAgICAtIGRuX3JlbGVhc2UKICAgIC0gaGNpX3NvY2tfcmVsZWFz ZQogICAgLSBoaWRwX3NvY2tfcmVsZWFzZQogICAgLSBpdWN2X3NvY2tfcmVsZWFzZQogICAgLSBs MmNhcF9zb2NrX3JlbGVhc2UKICAgIC0gbGxjcF9zb2NrX3JlbGVhc2UKICAgIC0gbGxjX3VpX3Jl bGVhc2UKICAgIC0gcmF3c29ja19yZWxlYXNlCiAgICAtIHJmY29tbV9zb2NrX3JlbGVhc2UKICAg IC0gc2NvX3NvY2tfcmVsZWFzZQogICAgLSBzdmNfcmVsZWFzZQogICAgLSB2Y2NfcmVsZWFzZQog ICAgLSB4MjVfcmVsZWFzZQoKUmF0aGVyIHRoYW4gZml4aW5nIGFsbCB0aGVzZSBhbmQgcmVseWlu ZyBvbiBldmVyeSBzb2NrZXQgdHlwZSB0byBnZXQKdGhpcyByaWdodCBmb3JldmVyLCBqdXN0IG1h a2UgX19zb2NrX3JlbGVhc2UoKSBzZXQgc29jay0+c2sgdG8gTlVMTAppdHNlbGYgYWZ0ZXIgY2Fs bGluZyBwcm90b19vcHM6OnJlbGVhc2UoKS4KClJlcHJvZHVjZXIgdGhhdCBwcm9kdWNlcyB0aGUg S0FTQU4gc3BsYXQgd2hlbiBhbnkgb2YgdGhlc2Ugc29ja2V0IHR5cGVzCmFyZSBjb25maWd1cmVk IGludG8gdGhlIGtlcm5lbDoKCiAgICAjaW5jbHVkZSA8cHRocmVhZC5oPgogICAgI2luY2x1ZGUg PHN0ZGxpYi5oPgogICAgI2luY2x1ZGUgPHN5cy9zb2NrZXQuaD4KICAgICNpbmNsdWRlIDx1bmlz dGQuaD4KCiAgICBwdGhyZWFkX3QgdDsKICAgIHZvbGF0aWxlIGludCBmZDsKCiAgICB2b2lkICpj bG9zZV90aHJlYWQodm9pZCAqYXJnKQogICAgewogICAgICAgIGZvciAoOzspIHsKICAgICAgICAg ICAgdXNsZWVwKHJhbmQoKSAlIDEwMCk7CiAgICAgICAgICAgIGNsb3NlKGZkKTsKICAgICAgICB9 CiAgICB9CgogICAgaW50IG1haW4oKQogICAgewogICAgICAgIHB0aHJlYWRfY3JlYXRlKCZ0LCBO VUxMLCBjbG9zZV90aHJlYWQsIE5VTEwpOwogICAgICAgIGZvciAoOzspIHsKICAgICAgICAgICAg ZmQgPSBzb2NrZXQocmFuZCgpICUgNTAsIHJhbmQoKSAlIDExLCAwKTsKICAgICAgICAgICAgZmNo b3duYXQoZmQsICIiLCAxMDAwLCAxMDAwLCAweDEwMDApOwogICAgICAgICAgICBjbG9zZShmZCk7 CiAgICAgICAgfQogICAgfQoKRml4ZXM6IDg2NzQxZWMyNTQ2MiAoIm5ldDogY29yZTogQWRkIGEg VUlEIGZpZWxkIHRvIHN0cnVjdCBzb2NrLiIpClNpZ25lZC1vZmYtYnk6IEVyaWMgQmlnZ2VycyA8 ZWJpZ2dlcnNAZ29vZ2xlLmNvbT4KQWNrZWQtYnk6IENvbmcgV2FuZyA8eGl5b3Uud2FuZ2NvbmdA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9m dC5uZXQ+Ci0tLQogbmV0L3NvY2tldC5jIHwgMSArCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRp b24oKykKCmRpZmYgLS1naXQgYS9uZXQvc29ja2V0LmMgYi9uZXQvc29ja2V0LmMKaW5kZXggOTNh NDVmMTVlZTQwLi5kNGFjNDMxYjc4YjIgMTAwNjQ0Ci0tLSBhL25ldC9zb2NrZXQuYworKysgYi9u ZXQvc29ja2V0LmMKQEAgLTU3Nyw2ICs1NzcsNyBAQCBzdGF0aWMgdm9pZCBfX3NvY2tfcmVsZWFz ZShzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBzdHJ1Y3QgaW5vZGUgKmlub2RlKQogCQlpZiAoaW5vZGUp CiAJCQlpbm9kZV9sb2NrKGlub2RlKTsKIAkJc29jay0+b3BzLT5yZWxlYXNlKHNvY2spOworCQlz b2NrLT5zayA9IE5VTEw7CiAJCWlmIChpbm9kZSkKIAkJCWlub2RlX3VubG9jayhpbm9kZSk7CiAJ CXNvY2stPm9wcyA9IE5VTEw7Ci0tIAoyLjIwLjEKCgpGcm9tIDU0OWM4MTdkYzMyMzg4YzMzZDVi NmU1MWFmNGI5NGE3N2ZkYjM3NmQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFR1bmcg Tmd1eWVuIDx0dW5nLnEubmd1eWVuQGRla3RlY2guY29tLmF1PgpEYXRlOiBNb24sIDI1IEZlYiAy MDE5IDEwOjU3OjIwICswNzAwClN1YmplY3Q6IFtQQVRDSCAyNy80Ml0gdGlwYzogZml4IHJhY2Ug Y29uZGl0aW9uIGNhdXNpbmcgaHVuZyBzZW5kdG8KClsgVXBzdHJlYW0gY29tbWl0IGJmZDA3ZjNk ZDRmMTExYjg4NGQ3OTIyYjM3ZWIyMzkyODBmODNkOGMgXQoKV2hlbiBzZW5kaW5nIG11bHRpY2Fz dCBtZXNzYWdlcyB2aWEgYmxvY2tpbmcgc29ja2V0LAppZiBzZW5kaW5nIGxpbmsgaXMgY29uZ2Vz dGVkICh0c2stPmNvbmdfbGlua19jbnQgaXMgc2V0IHRvIDEpLAp0aGUgc2VuZGluZyB0aHJlYWQg d2lsbCBiZSBwdXQgaW50byBzbGVlcGluZyBzdGF0ZS4gSG93ZXZlciwKdGlwY19za19maWx0ZXJf cmN2KCkgaXMgY2FsbGVkIHVuZGVyIHNvY2tldCBzcGluIGxvY2sgYnV0CnRpcGNfd2FpdF9mb3Jf Y29uZCgpIGlzIG5vdC4gU28sIHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0CnRoZSBzZXR0aW5n IG9mIHRzay0+Y29uZ19saW5rX2NudCB0byAwIGluIHRpcGNfc2tfcHJvdG9fcmN2KCkgaW4KQ1BV LTEgd2lsbCBiZSBwZXJjZWl2ZWQgYnkgQ1BVLTAuIElmIHRoYXQgaXMgdGhlIGNhc2UsIHRoZSBz ZW5kaW5nCnRocmVhZCBpbiBDUFUtMCBhZnRlciBiZWluZyB3YWtlbiB1cCwgd2lsbCBjb250aW51 ZSB0byBzZWUKdHNrLT5jb25nX2xpbmtfY250IGFzIDEgYW5kIHB1dCB0aGUgc2VuZGluZyB0aHJl YWQgaW50byBzbGVlcGluZwpzdGF0ZSBhZ2Fpbi4gVGhlIHNlbmRpbmcgdGhyZWFkIHdpbGwgc2xl ZXAgZm9yZXZlci4KCkNQVS0wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IENQVS0x CnRpcGNfd2FpdF9mb3JfY29uZCgpICAgICAgICAgICAgICAgICB8CnsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8CiAvLyBjb25kaXRpb25fID0gIXRzay0+Y29uZ19saW5rX2Nu dCB8CiB3aGlsZSAoKHJjXyA9ICEoY29uZGl0aW9uXykpKSB7ICAgICB8CiAgLi4uICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8CiAgcmVsZWFzZV9zb2NrKHNrXyk7ICAgICAgICAgICAg ICAgICB8CiAgd2FpdF93b2tlbigpOyAgICAgICAgICAgICAgICAgICAgICB8CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IGlmICghc29ja19vd25lZF9ieV91c2VyKHNrKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIHRpcGNfc2tfZmlsdGVyX3Jj digpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgdGlwY19za19wcm90b19yY3YoKQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIHRz ay0+Y29uZ19saW5rX2NudC0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgc2stPnNr X3dyaXRlX3NwYWNlKHNrKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgfQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIC4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgfQogIHNjaGVkX2Fubm90YXRlX3NsZWVwKCk7ICAgICAgICAg ICAgfAogIGxvY2tfc29jayhza18pOyAgICAgICAgICAgICAgICAgICAgfAogIHJlbW92ZV93YWl0 X3F1ZXVlKCk7ICAgICAgICAgICAgICAgfAogfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfAp9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAoKVGhpcyBjb21t aXQgZml4ZXMgaXQgYnkgYWRkaW5nIG1lbW9yeSBiYXJyaWVyIHRvIHRpcGNfc2tfcHJvdG9fcmN2 KCkKYW5kIHRpcGNfd2FpdF9mb3JfY29uZCgpLgoKQWNrZWQtYnk6IEpvbiBNYWxveSA8am9uLm1h bG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogVHVuZyBOZ3V5ZW4gPHR1bmcucS5uZ3V5 ZW5AZGVrdGVjaC5jb20uYXU+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvdGlwYy9zb2NrZXQuYyB8IDYgKysrKystCiAxIGZpbGUg Y2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCA2MTVkZTA5MTBhMDcuLmYw OGQ4ZTQ5MjNmMiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysrIGIvbmV0L3RpcGMv c29ja2V0LmMKQEAgLTM3NiwxMSArMzc2LDEzIEBAIHN0YXRpYyBpbnQgdGlwY19za19zb2NrX2Vy cihzdHJ1Y3Qgc29ja2V0ICpzb2NrLCBsb25nICp0aW1lb3V0KQogCiAjZGVmaW5lIHRpcGNfd2Fp dF9mb3JfY29uZChzb2NrXywgdGltZW9fLCBjb25kaXRpb25fKQkJCSAgICAgICBcCiAoeyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXAorCURFRklORV9XQUlUX0ZVTkMod2FpdF8sIHdva2VuX3dha2VfZnVu Y3Rpb24pOyAgICAgICAgICAgICAgICAgICAgICAgICAgXAogCXN0cnVjdCBzb2NrICpza187CQkJ CQkJICAgICAgIFwKIAlpbnQgcmNfOwkJCQkJCQkgICAgICAgXAogCQkJCQkJCQkJICAgICAgIFwK IAl3aGlsZSAoKHJjXyA9ICEoY29uZGl0aW9uXykpKSB7CQkJCQkgICAgICAgXAotCQlERUZJTkVf V0FJVF9GVU5DKHdhaXRfLCB3b2tlbl93YWtlX2Z1bmN0aW9uKTsJICAgICAgICAgICAgICAgXAor CQkvKiBjb3VwbGVkIHdpdGggc21wX3dtYigpIGluIHRpcGNfc2tfcHJvdG9fcmN2KCkgKi8gICAg ICAgICAgICBcCisJCXNtcF9ybWIoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKIAkJc2tfID0gKHNvY2tfKS0+c2s7CQkJCQkgICAgICAgXAog CQlyY18gPSB0aXBjX3NrX3NvY2tfZXJyKChzb2NrXyksIHRpbWVvXyk7CQkgICAgICAgXAogCQlp ZiAocmNfKQkJCQkJCSAgICAgICBcCkBAIC0xOTY4LDYgKzE5NzAsOCBAQCBzdGF0aWMgdm9pZCB0 aXBjX3NrX3Byb3RvX3JjdihzdHJ1Y3Qgc29jayAqc2ssCiAJCXJldHVybjsKIAljYXNlIFNPQ0tf V0FLRVVQOgogCQl0aXBjX2Rlc3RfZGVsKCZ0c2stPmNvbmdfbGlua3MsIG1zZ19vcmlnbm9kZSho ZHIpLCAwKTsKKwkJLyogY291cGxlZCB3aXRoIHNtcF9ybWIoKSBpbiB0aXBjX3dhaXRfZm9yX2Nv bmQoKSAqLworCQlzbXBfd21iKCk7CiAJCXRzay0+Y29uZ19saW5rX2NudC0tOwogCQl3YWtldXAg PSB0cnVlOwogCQlicmVhazsKLS0gCjIuMjAuMQoKCkZyb20gMDE5MDQ5NzhiYzIwYzY0NzFjZTU2 Yjc4M2Q4M2IwNjhiOWNmZDhhZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogVGltdXIg Q2VsaWsgPG1haWxAdGltdXJjZWxpay5kZT4KRGF0ZTogU2F0LCAyMyBGZWIgMjAxOSAxMjo1Mzox MyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMjgvNDJdIHR1bjogZml4IGJsb2NraW5nIHJlYWQKClsg VXBzdHJlYW0gY29tbWl0IDcxODI4YjIyNDA2OTJjZWMwZTY4YjhkODY3YmMwMGUxNzQ1ZTdmYWUg XQoKVGhpcyBwYXRjaCBtb3ZlcyBzZXR0aW5nIG9mIHRoZSBjdXJyZW50IHN0YXRlIGludG8gdGhl IGxvb3AuIE90aGVyd2lzZQp0aGUgdGFzayBtYXkgZW5kIHVwIGluIGEgYnVzeSB3YWl0IGxvb3Ag aWYgbm9uZSBvZiB0aGUgYnJlYWsgY29uZGl0aW9ucwphcmUgbWV0LgoKU2lnbmVkLW9mZi1ieTog VGltdXIgQ2VsaWsgPG1haWxAdGltdXJjZWxpay5kZT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4g TWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3R1bi5jIHwgNCAr Ky0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3R1bi5jIGIvZHJpdmVycy9uZXQvdHVuLmMKaW5kZXggMWU2 ZjBkYTFmYThlLi4wNTcyOGU1ODNkOTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3R1bi5jCisr KyBiL2RyaXZlcnMvbmV0L3R1bi5jCkBAIC0yMTQ3LDkgKzIxNDcsOSBAQCBzdGF0aWMgdm9pZCAq dHVuX3JpbmdfcmVjdihzdHJ1Y3QgdHVuX2ZpbGUgKnRmaWxlLCBpbnQgbm9ibG9jaywgaW50ICpl cnIpCiAJfQogCiAJYWRkX3dhaXRfcXVldWUoJnRmaWxlLT53cS53YWl0LCAmd2FpdCk7Ci0JY3Vy cmVudC0+c3RhdGUgPSBUQVNLX0lOVEVSUlVQVElCTEU7CiAKIAl3aGlsZSAoMSkgeworCQlzZXRf Y3VycmVudF9zdGF0ZShUQVNLX0lOVEVSUlVQVElCTEUpOwogCQlwdHIgPSBwdHJfcmluZ19jb25z dW1lKCZ0ZmlsZS0+dHhfcmluZyk7CiAJCWlmIChwdHIpCiAJCQlicmVhazsKQEAgLTIxNjUsNyAr MjE2NSw3IEBAIHN0YXRpYyB2b2lkICp0dW5fcmluZ19yZWN2KHN0cnVjdCB0dW5fZmlsZSAqdGZp bGUsIGludCBub2Jsb2NrLCBpbnQgKmVycikKIAkJc2NoZWR1bGUoKTsKIAl9CiAKLQljdXJyZW50 LT5zdGF0ZSA9IFRBU0tfUlVOTklORzsKKwlzZXRfY3VycmVudF9zdGF0ZShUQVNLX1JVTk5JTkcp OwogCXJlbW92ZV93YWl0X3F1ZXVlKCZ0ZmlsZS0+d3Eud2FpdCwgJndhaXQpOwogCiBvdXQ6Ci0t IAoyLjIwLjEKCgpGcm9tIDkyZGQ1YzU1OWNkZjUxZDU2ZDIzYmVkOGVhMTM3Yzc0ODYzYjRhYjcg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElnb3IgRHJ1emhpbmluIDxpZ29yLmRydXpo aW5pbkBjaXRyaXguY29tPgpEYXRlOiBUaHUsIDI4IEZlYiAyMDE5IDE0OjExOjI2ICswMDAwClN1 YmplY3Q6IFtQQVRDSCAyOS80Ml0geGVuLW5ldGJhY2s6IGRvbid0IHBvcHVsYXRlIHRoZSBoYXNo IGNhY2hlIG9uIFhlbkJ1cwogZGlzY29ubmVjdAoKWyBVcHN0cmVhbSBjb21taXQgYTIyODhkNGUz NTU5OTJkMzY5YzUwYzQ1ZDAxN2E4NWY2MDYxZmY3MSBdCgpPY2Nhc2lvbmFsbHksIGR1cmluZyB0 aGUgZGlzY29ubmVjdGlvbiBwcm9jZWR1cmUgb24gWGVuQnVzIHdoaWNoCmluY2x1ZGVzIGhhc2gg Y2FjaGUgZGVpbml0aWFsaXphdGlvbiB0aGVyZSBtaWdodCBiZSBzb21lIHBhY2tldHMKc3RpbGwg aW4tZmxpZ2h0IG9uIG90aGVyIHByb2Nlc3NvcnMuIEhhbmRsaW5nIG9mIHRoZXNlIHBhY2tldHMg aW5jbHVkZXMKaGFzaGluZyBhbmQgaGFzaCBjYWNoZSBwb3B1bGF0aW9uIHRoYXQgZmluYWxseSBy ZXN1bHRzIGluIGhhc2ggY2FjaGUKZGF0YSBzdHJ1Y3R1cmUgY29ycnVwdGlvbi4KCkluIG9yZGVy IHRvIGF2b2lkIHRoaXMgd2UgcHJldmVudCBoYXNoaW5nIG9mIHRob3NlIHBhY2tldHMgaWYgdGhl cmUKYXJlIG5vIHF1ZXVlcyBpbml0aWFsaXplZC4gSW4gdGhhdCBjYXNlIFJDVSBwcm90ZWN0aW9u IG9mIHF1ZXVlcyBndWFyZHMKdGhlIGhhc2ggY2FjaGUgYXMgd2VsbC4KClNpZ25lZC1vZmYtYnk6 IElnb3IgRHJ1emhpbmluIDxpZ29yLmRydXpoaW5pbkBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTog UGF1bCBEdXJyYW50IDxwYXVsLmR1cnJhbnRAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L3hlbi1u ZXRiYWNrL2hhc2guYyAgICAgIHwgMiArKwogZHJpdmVycy9uZXQveGVuLW5ldGJhY2svaW50ZXJm YWNlLmMgfCA3ICsrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svaGFzaC5jIGIvZHJpdmVycy9uZXQveGVu LW5ldGJhY2svaGFzaC5jCmluZGV4IDBjY2IwMjFmMWU3OC4uMTBkNTgwYzNkZWEzIDEwMDY0NAot LS0gYS9kcml2ZXJzL25ldC94ZW4tbmV0YmFjay9oYXNoLmMKKysrIGIvZHJpdmVycy9uZXQveGVu LW5ldGJhY2svaGFzaC5jCkBAIC00NTQsNiArNDU0LDggQEAgdm9pZCB4ZW52aWZfaW5pdF9oYXNo KHN0cnVjdCB4ZW52aWYgKnZpZikKIAlpZiAoeGVudmlmX2hhc2hfY2FjaGVfc2l6ZSA9PSAwKQog CQlyZXR1cm47CiAKKwlCVUdfT04odmlmLT5oYXNoLmNhY2hlLmNvdW50KTsKKwogCXNwaW5fbG9j a19pbml0KCZ2aWYtPmhhc2guY2FjaGUubG9jayk7CiAJSU5JVF9MSVNUX0hFQUQoJnZpZi0+aGFz aC5jYWNoZS5saXN0KTsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2lu dGVyZmFjZS5jIGIvZHJpdmVycy9uZXQveGVuLW5ldGJhY2svaW50ZXJmYWNlLmMKaW5kZXggMTgy ZDY3NzBmMTAyLi42ZGExMjUxOGU2OTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L3hlbi1uZXRi YWNrL2ludGVyZmFjZS5jCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL2ludGVyZmFjZS5j CkBAIC0xNTMsNiArMTUzLDEzIEBAIHN0YXRpYyB1MTYgeGVudmlmX3NlbGVjdF9xdWV1ZShzdHJ1 Y3QgbmV0X2RldmljZSAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAogewogCXN0cnVjdCB4ZW52 aWYgKnZpZiA9IG5ldGRldl9wcml2KGRldik7CiAJdW5zaWduZWQgaW50IHNpemUgPSB2aWYtPmhh c2guc2l6ZTsKKwl1bnNpZ25lZCBpbnQgbnVtX3F1ZXVlczsKKworCS8qIElmIHF1ZXVlcyBhcmUg bm90IHNldCB1cCBpbnRlcm5hbGx5IC0gYWx3YXlzIHJldHVybiAwCisJICogYXMgdGhlIHBhY2tl dCBnb2luZyB0byBiZSBkcm9wcGVkIGFueXdheSAqLworCW51bV9xdWV1ZXMgPSBSRUFEX09OQ0Uo dmlmLT5udW1fcXVldWVzKTsKKwlpZiAobnVtX3F1ZXVlcyA8IDEpCisJCXJldHVybiAwOwogCiAJ aWYgKHZpZi0+aGFzaC5hbGcgPT0gWEVOX05FVElGX0NUUkxfSEFTSF9BTEdPUklUSE1fTk9ORSkK IAkJcmV0dXJuIGZhbGxiYWNrKGRldiwgc2tiLCBOVUxMKSAlIGRldi0+cmVhbF9udW1fdHhfcXVl dWVzOwotLSAKMi4yMC4xCgoKRnJvbSA1OWUwNDRlOWM5ZTVkZGZjZTdjNTA0Nzk3MWY2MTA5NWIy MTJhY2Y1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBJZ29yIERydXpoaW5pbiA8aWdv ci5kcnV6aGluaW5AY2l0cml4LmNvbT4KRGF0ZTogVGh1LCAyOCBGZWIgMjAxOSAxMjo0ODowMyAr MDAwMApTdWJqZWN0OiBbUEFUQ0ggMzAvNDJdIHhlbi1uZXRiYWNrOiBmaXggb2NjYXNpb25hbCBs ZWFrIG9mIGdyYW50IHJlZiBtYXBwaW5ncwogdW5kZXIgbWVtb3J5IHByZXNzdXJlCgpbIFVwc3Ry ZWFtIGNvbW1pdCA5OWU4N2Y1NmI0OGY0OTBmYjE2YjZlMGY3NDY5MWMxZTY2NGRlYTk1IF0KClpl cm8tY29weSBjYWxsYmFjayBmbGFnIGlzIG5vdCB5ZXQgc2V0IG9uIGZyYWcgbGlzdCBza2IgYXQg dGhlIG1vbWVudAp4ZW52aWZfaGFuZGxlX2ZyYWdfbGlzdCgpIHJldHVybnMgLUVOT01FTS4gVGhp cyBldmVudHVhbGx5IHJlc3VsdHMgaW4KbGVha2luZyBncmFudCByZWYgbWFwcGluZ3Mgc2luY2Ug eGVudmlmX3plcm9jb3B5X2NhbGxiYWNrKCkgaXMgbmV2ZXIKY2FsbGVkIGZvciB0aGVzZSBmcmFn bWVudHMuIFRob3NlIGV2ZW50dWFsbHkgYnVpbGQgdXAgYW5kIGNhdXNlIFhlbgp0byBraWxsIERv bTAgYXMgdGhlIHNsb3RzIGdldCByZXVzZWQgZm9yIG5ldyBtYXBwaW5nczoKCiJkMHYwIEF0dGVt cHQgdG8gaW1wbGljaXRseSB1bm1hcCBhIGdyYW50ZWQgUFRFIGMwMTAwMDAzMjlmY2UwMDUiCgpU aGF0IGJlaGF2aW9yIGlzIG9ic2VydmVkIHVuZGVyIGNlcnRhaW4gd29ya2xvYWRzIHdoZXJlIHN1 ZGRlbiBzcGlrZXMKb2YgcGFnZSBjYWNoZSB3cml0ZXMgY29leGlzdCB3aXRoIGFjdGl2ZSBhdG9t aWMgc2tiIGFsbG9jYXRpb25zIGZyb20KbmV0d29yayB0cmFmZmljLiBBZGRpdGlvbmFsbHksIHJl d29yayB0aGUgbG9naWMgdG8gZGVhbCB3aXRoIGZyYWdfbGlzdApkZWFsbG9jYXRpb24gaW4gYSBz aW5nbGUgcGxhY2UuCgpTaWduZWQtb2ZmLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWwuZHVycmFudEBj aXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5OiBJZ29yIERydXpoaW5pbiA8aWdvci5kcnV6aGluaW5A Y2l0cml4LmNvbT4KQWNrZWQtYnk6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+ClNpZ25l ZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2 ZXJzL25ldC94ZW4tbmV0YmFjay9uZXRiYWNrLmMgfCAxMCArKysrKy0tLS0tCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L3hlbi1uZXRiYWNrL25ldGJhY2suYyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRiYWNrL25l dGJhY2suYwppbmRleCA4MGFhZTNhMzJjMmEuLmYwOTk0OGIwMDlkZCAxMDA2NDQKLS0tIGEvZHJp dmVycy9uZXQveGVuLW5ldGJhY2svbmV0YmFjay5jCisrKyBiL2RyaXZlcnMvbmV0L3hlbi1uZXRi YWNrL25ldGJhY2suYwpAQCAtMTA3MiwxMSArMTA3Miw2IEBAIHN0YXRpYyBpbnQgeGVudmlmX2hh bmRsZV9mcmFnX2xpc3Qoc3RydWN0IHhlbnZpZl9xdWV1ZSAqcXVldWUsIHN0cnVjdCBza19idWZm ICpzCiAJCXNrYl9mcmFnX3NpemVfc2V0KCZmcmFnc1tpXSwgbGVuKTsKIAl9CiAKLQkvKiBDb3Bp ZWQgYWxsIHRoZSBiaXRzIGZyb20gdGhlIGZyYWcgbGlzdCAtLSBmcmVlIGl0LiAqLwotCXNrYl9m cmFnX2xpc3RfaW5pdChza2IpOwotCXhlbnZpZl9za2JfemVyb2NvcHlfcHJlcGFyZShxdWV1ZSwg bnNrYik7Ci0Ja2ZyZWVfc2tiKG5za2IpOwotCiAJLyogUmVsZWFzZSBhbGwgdGhlIG9yaWdpbmFs IChmb3JlaWduKSBmcmFncy4gKi8KIAlmb3IgKGYgPSAwOyBmIDwgc2tiX3NoaW5mbyhza2IpLT5u cl9mcmFnczsgZisrKQogCQlza2JfZnJhZ191bnJlZihza2IsIGYpOwpAQCAtMTE0NSw2ICsxMTQw LDggQEAgc3RhdGljIGludCB4ZW52aWZfdHhfc3VibWl0KHN0cnVjdCB4ZW52aWZfcXVldWUgKnF1 ZXVlKQogCQl4ZW52aWZfZmlsbF9mcmFncyhxdWV1ZSwgc2tiKTsKIAogCQlpZiAodW5saWtlbHko c2tiX2hhc19mcmFnX2xpc3Qoc2tiKSkpIHsKKwkJCXN0cnVjdCBza19idWZmICpuc2tiID0gc2ti X3NoaW5mbyhza2IpLT5mcmFnX2xpc3Q7CisJCQl4ZW52aWZfc2tiX3plcm9jb3B5X3ByZXBhcmUo cXVldWUsIG5za2IpOwogCQkJaWYgKHhlbnZpZl9oYW5kbGVfZnJhZ19saXN0KHF1ZXVlLCBza2Ip KSB7CiAJCQkJaWYgKG5ldF9yYXRlbGltaXQoKSkKIAkJCQkJbmV0ZGV2X2VycihxdWV1ZS0+dmlm LT5kZXYsCkBAIC0xMTUzLDYgKzExNTAsOSBAQCBzdGF0aWMgaW50IHhlbnZpZl90eF9zdWJtaXQo c3RydWN0IHhlbnZpZl9xdWV1ZSAqcXVldWUpCiAJCQkJa2ZyZWVfc2tiKHNrYik7CiAJCQkJY29u dGludWU7CiAJCQl9CisJCQkvKiBDb3BpZWQgYWxsIHRoZSBiaXRzIGZyb20gdGhlIGZyYWcgbGlz dCAtLSBmcmVlIGl0LiAqLworCQkJc2tiX2ZyYWdfbGlzdF9pbml0KHNrYik7CisJCQlrZnJlZV9z a2IobnNrYik7CiAJCX0KIAogCQlza2ItPmRldiAgICAgID0gcXVldWUtPnZpZi0+ZGV2OwotLSAK Mi4yMC4xCgoKRnJvbSA5ZjM0ZGJkMzg4MDQ5MzcyYjQxNDU2NjZlNjZiOWEwY2FmZGY2NmIxIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUaW11ciBDZWxpayA8bWFpbEB0aW11cmNlbGlr LmRlPgpEYXRlOiBNb24sIDI1IEZlYiAyMDE5IDIxOjEzOjEzICswMTAwClN1YmplY3Q6IFtQQVRD SCAzMS80Ml0gdHVuOiByZW1vdmUgdW5uZWNlc3NhcnkgbWVtb3J5IGJhcnJpZXIKClsgVXBzdHJl YW0gY29tbWl0IGVjZWY2N2NiMTBkYjdiODNiM2I3MWM2MWRiYjI5YWEwNzBhYjAxMTIgXQoKUmVw bGFjZSBzZXRfY3VycmVudF9zdGF0ZSB3aXRoIF9fc2V0X2N1cnJlbnRfc3RhdGUgc2luY2Ugbm8g bWVtb3J5CmJhcnJpZXIgaXMgbmVlZGVkIGF0IHRoaXMgcG9pbnQuCgpTaWduZWQtb2ZmLWJ5OiBU aW11ciBDZWxpayA8bWFpbEB0aW11cmNlbGlrLmRlPgpSZXZpZXdlZC1ieTogRXJpYyBEdW1hemV0 IDxlZHVtYXpldEBnb29nbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvdHVuLmMgfCAyICstCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC90dW4uYyBiL2RyaXZlcnMvbmV0L3R1bi5jCmluZGV4IDA1NzI4ZTU4M2Q5MC4uZWZj MDhkYWQzYTFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90dW4uYworKysgYi9kcml2ZXJzL25l dC90dW4uYwpAQCAtMjE2NSw3ICsyMTY1LDcgQEAgc3RhdGljIHZvaWQgKnR1bl9yaW5nX3JlY3Yo c3RydWN0IHR1bl9maWxlICp0ZmlsZSwgaW50IG5vYmxvY2ssIGludCAqZXJyKQogCQlzY2hlZHVs ZSgpOwogCX0KIAotCXNldF9jdXJyZW50X3N0YXRlKFRBU0tfUlVOTklORyk7CisJX19zZXRfY3Vy cmVudF9zdGF0ZShUQVNLX1JVTk5JTkcpOwogCXJlbW92ZV93YWl0X3F1ZXVlKCZ0ZmlsZS0+d3Eu d2FpdCwgJndhaXQpOwogCiBvdXQ6Ci0tIAoyLjIwLjEKCgpGcm9tIDIzMTM0NmQ5YmZiZTE5MTJh YjBjNGFlY2MzYjczOGQ0YTI0OTY2NzggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE5h emFyb3YgU2VyZ2V5IDxzLW5hemFyb3ZAeWFuZGV4LnJ1PgpEYXRlOiBNb24sIDI1IEZlYiAyMDE5 IDE5OjI0OjE1ICswMzAwClN1YmplY3Q6IFtQQVRDSCAzMi80Ml0gbmV0OiBBZGQgX19pY21wX3Nl bmQgaGVscGVyLgoKWyBVcHN0cmVhbSBjb21taXQgOWVmNmI0MmFkNmZkNzkyOWRkMWI2MDkyY2Iw MjAxNGUzODJjNmE5MSBdCgpBZGQgX19pY21wX3NlbmQgZnVuY3Rpb24gaGF2aW5nIGlwX29wdGlv bnMgc3RydWN0IHBhcmFtZXRlcgoKU2lnbmVkLW9mZi1ieTogU2VyZ2V5IE5hemFyb3YgPHMtbmF6 YXJvdkB5YW5kZXgucnU+ClJldmlld2VkLWJ5OiBQYXVsIE1vb3JlIDxwYXVsQHBhdWwtbW9vcmUu Y29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+ Ci0tLQogaW5jbHVkZS9uZXQvaWNtcC5oIHwgOSArKysrKysrKy0KIG5ldC9pcHY0L2ljbXAuYyAg ICB8IDcgKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA0IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2luY2x1ZGUvbmV0L2ljbXAuaCBiL2luY2x1ZGUvbmV0L2lj bXAuaAppbmRleCAzZWYyNzQzYThlZWMuLjg2NjViZjI0ZTNiNyAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9uZXQvaWNtcC5oCisrKyBiL2luY2x1ZGUvbmV0L2ljbXAuaApAQCAtMjIsNiArMjIsNyBAQAog CiAjaW5jbHVkZSA8bmV0L2luZXRfc29jay5oPgogI2luY2x1ZGUgPG5ldC9zbm1wLmg+CisjaW5j bHVkZSA8bmV0L2lwLmg+CiAKIHN0cnVjdCBpY21wX2VyciB7CiAgIGludAkJZXJybm87CkBAIC0z OSw3ICs0MCwxMyBAQCBzdHJ1Y3QgbmV0X3Byb3RvX2ZhbWlseTsKIHN0cnVjdCBza19idWZmOwog c3RydWN0IG5ldDsKIAotdm9pZCBpY21wX3NlbmQoc3RydWN0IHNrX2J1ZmYgKnNrYl9pbiwgaW50 IHR5cGUsIGludCBjb2RlLCBfX2JlMzIgaW5mbyk7Cit2b2lkIF9faWNtcF9zZW5kKHN0cnVjdCBz a19idWZmICpza2JfaW4sIGludCB0eXBlLCBpbnQgY29kZSwgX19iZTMyIGluZm8sCisJCSBjb25z dCBzdHJ1Y3QgaXBfb3B0aW9ucyAqb3B0KTsKK3N0YXRpYyBpbmxpbmUgdm9pZCBpY21wX3NlbmQo c3RydWN0IHNrX2J1ZmYgKnNrYl9pbiwgaW50IHR5cGUsIGludCBjb2RlLCBfX2JlMzIgaW5mbykK K3sKKwlfX2ljbXBfc2VuZChza2JfaW4sIHR5cGUsIGNvZGUsIGluZm8sICZJUENCKHNrYl9pbikt Pm9wdCk7Cit9CisKIGludCBpY21wX3JjdihzdHJ1Y3Qgc2tfYnVmZiAqc2tiKTsKIHZvaWQgaWNt cF9lcnIoc3RydWN0IHNrX2J1ZmYgKnNrYiwgdTMyIGluZm8pOwogaW50IGljbXBfaW5pdCh2b2lk KTsKZGlmZiAtLWdpdCBhL25ldC9pcHY0L2ljbXAuYyBiL25ldC9pcHY0L2ljbXAuYwppbmRleCBk ODMyYmVlZDZlM2EuLmM4OTdmZWM5ZjkwMyAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaWNtcC5jCisr KyBiL25ldC9pcHY0L2ljbXAuYwpAQCAtNTcwLDcgKzU3MCw4IEBAIHN0YXRpYyBzdHJ1Y3QgcnRh YmxlICppY21wX3JvdXRlX2xvb2t1cChzdHJ1Y3QgbmV0ICpuZXQsCiAgKgkJCU1VU1QgcmVwbHkg dG8gb25seSB0aGUgZmlyc3QgZnJhZ21lbnQuCiAgKi8KIAotdm9pZCBpY21wX3NlbmQoc3RydWN0 IHNrX2J1ZmYgKnNrYl9pbiwgaW50IHR5cGUsIGludCBjb2RlLCBfX2JlMzIgaW5mbykKK3ZvaWQg X19pY21wX3NlbmQoc3RydWN0IHNrX2J1ZmYgKnNrYl9pbiwgaW50IHR5cGUsIGludCBjb2RlLCBf X2JlMzIgaW5mbywKKwkJIGNvbnN0IHN0cnVjdCBpcF9vcHRpb25zICpvcHQpCiB7CiAJc3RydWN0 IGlwaGRyICppcGg7CiAJaW50IHJvb207CkBAIC02OTEsNyArNjkyLDcgQEAgdm9pZCBpY21wX3Nl bmQoc3RydWN0IHNrX2J1ZmYgKnNrYl9pbiwgaW50IHR5cGUsIGludCBjb2RlLCBfX2JlMzIgaW5m bykKIAkJCQkJICBpcGgtPnRvczsKIAltYXJrID0gSVA0X1JFUExZX01BUksobmV0LCBza2JfaW4t Pm1hcmspOwogCi0JaWYgKGlwX29wdGlvbnNfZWNobyhuZXQsICZpY21wX3BhcmFtLnJlcGx5b3B0 cy5vcHQub3B0LCBza2JfaW4pKQorCWlmIChfX2lwX29wdGlvbnNfZWNobyhuZXQsICZpY21wX3Bh cmFtLnJlcGx5b3B0cy5vcHQub3B0LCBza2JfaW4sIG9wdCkpCiAJCWdvdG8gb3V0X3VubG9jazsK IAogCkBAIC03NDIsNyArNzQzLDcgQEAgdm9pZCBpY21wX3NlbmQoc3RydWN0IHNrX2J1ZmYgKnNr Yl9pbiwgaW50IHR5cGUsIGludCBjb2RlLCBfX2JlMzIgaW5mbykKIAlsb2NhbF9iaF9lbmFibGUo KTsKIG91dDo7CiB9Ci1FWFBPUlRfU1lNQk9MKGljbXBfc2VuZCk7CitFWFBPUlRfU1lNQk9MKF9f aWNtcF9zZW5kKTsKIAogCiBzdGF0aWMgdm9pZCBpY21wX3NvY2tldF9kZWxpdmVyKHN0cnVjdCBz a19idWZmICpza2IsIHUzMiBpbmZvKQotLSAKMi4yMC4xCgoKRnJvbSA5OTQwOTNmOGE4OWY0ZGU0 YzMwMTkzODhhOTI3ZTdiMzZjNTY2MDZmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBO YXphcm92IFNlcmdleSA8cy1uYXphcm92QHlhbmRleC5ydT4KRGF0ZTogTW9uLCAyNSBGZWIgMjAx OSAxOToyNzoxNSArMDMwMApTdWJqZWN0OiBbUEFUQ0ggMzMvNDJdIG5ldDogYXZvaWQgdXNlIElQ Q0IgaW4gY2lwc29fdjRfZXJyb3IKClsgVXBzdHJlYW0gY29tbWl0IDNkYTFlZDdhYzM5OGYzNGZm ZjE2OTQwMTdhMDcwNTRkNjljNWY1YzUgXQoKRXh0cmFjdCBJUCBvcHRpb25zIGluIGNpcHNvX3Y0 X2Vycm9yIGFuZCB1c2UgX19pY21wX3NlbmQuCgpTaWduZWQtb2ZmLWJ5OiBTZXJnZXkgTmF6YXJv diA8cy1uYXphcm92QHlhbmRleC5ydT4KQWNrZWQtYnk6IFBhdWwgTW9vcmUgPHBhdWxAcGF1bC1t b29yZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBpbmNsdWRlL25ldC9pcC5oICAgICAgfCAgMiArKwogbmV0L2lwdjQvY2lwc29f aXB2NC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KIG5ldC9pcHY0L2lwX29wdGlvbnMuYyB8IDIy ICsrKysrKysrKysrKysrKysrLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9pcC5oIGIvaW5jbHVk ZS9uZXQvaXAuaAppbmRleCAzMGM2NTdiMTI4Y2UuLmIyYjdjZGIzZjZmZCAxMDA2NDQKLS0tIGEv aW5jbHVkZS9uZXQvaXAuaAorKysgYi9pbmNsdWRlL25ldC9pcC5oCkBAIC02NjUsNiArNjY1LDgg QEAgc3RhdGljIGlubGluZSBpbnQgaXBfb3B0aW9uc19lY2hvKHN0cnVjdCBuZXQgKm5ldCwgc3Ry dWN0IGlwX29wdGlvbnMgKmRvcHQsCiB9CiAKIHZvaWQgaXBfb3B0aW9uc19mcmFnbWVudChzdHJ1 Y3Qgc2tfYnVmZiAqc2tiKTsKK2ludCBfX2lwX29wdGlvbnNfY29tcGlsZShzdHJ1Y3QgbmV0ICpu ZXQsIHN0cnVjdCBpcF9vcHRpb25zICpvcHQsCisJCQkgc3RydWN0IHNrX2J1ZmYgKnNrYiwgX19i ZTMyICppbmZvKTsKIGludCBpcF9vcHRpb25zX2NvbXBpbGUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1 Y3QgaXBfb3B0aW9ucyAqb3B0LAogCQkgICAgICAgc3RydWN0IHNrX2J1ZmYgKnNrYik7CiBpbnQg aXBfb3B0aW9uc19nZXQoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3QgaXBfb3B0aW9uc19yY3UgKipv cHRwLApkaWZmIC0tZ2l0IGEvbmV0L2lwdjQvY2lwc29faXB2NC5jIGIvbmV0L2lwdjQvY2lwc29f aXB2NC5jCmluZGV4IGY0YjgzZGUyMjYzZS4uZjAxNjVjNWYzNzZiIDEwMDY0NAotLS0gYS9uZXQv aXB2NC9jaXBzb19pcHY0LmMKKysrIGIvbmV0L2lwdjQvY2lwc29faXB2NC5jCkBAIC0xNzM2LDEz ICsxNzM2LDI2IEBAIGludCBjaXBzb192NF92YWxpZGF0ZShjb25zdCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiLCB1bnNpZ25lZCBjaGFyICoqb3B0aW9uKQogICovCiB2b2lkIGNpcHNvX3Y0X2Vycm9yKHN0 cnVjdCBza19idWZmICpza2IsIGludCBlcnJvciwgdTMyIGdhdGV3YXkpCiB7CisJdW5zaWduZWQg Y2hhciBvcHRidWZbc2l6ZW9mKHN0cnVjdCBpcF9vcHRpb25zKSArIDQwXTsKKwlzdHJ1Y3QgaXBf b3B0aW9ucyAqb3B0ID0gKHN0cnVjdCBpcF9vcHRpb25zICopb3B0YnVmOworCiAJaWYgKGlwX2hk cihza2IpLT5wcm90b2NvbCA9PSBJUFBST1RPX0lDTVAgfHwgZXJyb3IgIT0gLUVBQ0NFUykKIAkJ cmV0dXJuOwogCisJLyoKKwkgKiBXZSBtaWdodCBiZSBjYWxsZWQgYWJvdmUgdGhlIElQIGxheWVy LAorCSAqIHNvIHdlIGNhbiBub3QgdXNlIGljbXBfc2VuZCBhbmQgSVBDQiBoZXJlLgorCSAqLwor CisJbWVtc2V0KG9wdCwgMCwgc2l6ZW9mKHN0cnVjdCBpcF9vcHRpb25zKSk7CisJb3B0LT5vcHRs ZW4gPSBpcF9oZHIoc2tiKS0+aWhsKjQgLSBzaXplb2Yoc3RydWN0IGlwaGRyKTsKKwlpZiAoX19p cF9vcHRpb25zX2NvbXBpbGUoZGV2X25ldChza2ItPmRldiksIG9wdCwgc2tiLCBOVUxMKSkKKwkJ cmV0dXJuOworCiAJaWYgKGdhdGV3YXkpCi0JCWljbXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJF QUNILCBJQ01QX05FVF9BTk8sIDApOworCQlfX2ljbXBfc2VuZChza2IsIElDTVBfREVTVF9VTlJF QUNILCBJQ01QX05FVF9BTk8sIDAsIG9wdCk7CiAJZWxzZQotCQlpY21wX3NlbmQoc2tiLCBJQ01Q X0RFU1RfVU5SRUFDSCwgSUNNUF9IT1NUX0FOTywgMCk7CisJCV9faWNtcF9zZW5kKHNrYiwgSUNN UF9ERVNUX1VOUkVBQ0gsIElDTVBfSE9TVF9BTk8sIDAsIG9wdCk7CiB9CiAKIC8qKgpkaWZmIC0t Z2l0IGEvbmV0L2lwdjQvaXBfb3B0aW9ucy5jIGIvbmV0L2lwdjQvaXBfb3B0aW9ucy5jCmluZGV4 IGVkMTk0ZDQ2YzAwZS4uMzJhMzUwNDNjOWY1IDEwMDY0NAotLS0gYS9uZXQvaXB2NC9pcF9vcHRp b25zLmMKKysrIGIvbmV0L2lwdjQvaXBfb3B0aW9ucy5jCkBAIC0yNTEsOCArMjUxLDkgQEAgc3Rh dGljIHZvaWQgc3BlY19kc3RfZmlsbChfX2JlMzIgKnNwZWNfZHN0LCBzdHJ1Y3Qgc2tfYnVmZiAq c2tiKQogICogSWYgb3B0ID09IE5VTEwsIHRoZW4gc2tiLT5kYXRhIHNob3VsZCBwb2ludCB0byBJ UCBoZWFkZXIuCiAgKi8KIAotaW50IGlwX29wdGlvbnNfY29tcGlsZShzdHJ1Y3QgbmV0ICpuZXQs Ci0JCSAgICAgICBzdHJ1Y3QgaXBfb3B0aW9ucyAqb3B0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQor aW50IF9faXBfb3B0aW9uc19jb21waWxlKHN0cnVjdCBuZXQgKm5ldCwKKwkJCSBzdHJ1Y3QgaXBf b3B0aW9ucyAqb3B0LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAorCQkJIF9fYmUzMiAqaW5mbykKIHsK IAlfX2JlMzIgc3BlY19kc3QgPSBodG9ubChJTkFERFJfQU5ZKTsKIAl1bnNpZ25lZCBjaGFyICpw cF9wdHIgPSBOVUxMOwpAQCAtNDY4LDExICs0NjksMjIgQEAgaW50IGlwX29wdGlvbnNfY29tcGls ZShzdHJ1Y3QgbmV0ICpuZXQsCiAJCXJldHVybiAwOwogCiBlcnJvcjoKLQlpZiAoc2tiKSB7Ci0J CWljbXBfc2VuZChza2IsIElDTVBfUEFSQU1FVEVSUFJPQiwgMCwgaHRvbmwoKHBwX3B0ci1pcGgp PDwyNCkpOwotCX0KKwlpZiAoaW5mbykKKwkJKmluZm8gPSBodG9ubCgocHBfcHRyLWlwaCk8PDI0 KTsKIAlyZXR1cm4gLUVJTlZBTDsKIH0KKworaW50IGlwX29wdGlvbnNfY29tcGlsZShzdHJ1Y3Qg bmV0ICpuZXQsCisJCSAgICAgICBzdHJ1Y3QgaXBfb3B0aW9ucyAqb3B0LCBzdHJ1Y3Qgc2tfYnVm ZiAqc2tiKQoreworCWludCByZXQ7CisJX19iZTMyIGluZm87CisKKwlyZXQgPSBfX2lwX29wdGlv bnNfY29tcGlsZShuZXQsIG9wdCwgc2tiLCAmaW5mbyk7CisJaWYgKHJldCAhPSAwICYmIHNrYikK KwkJaWNtcF9zZW5kKHNrYiwgSUNNUF9QQVJBTUVURVJQUk9CLCAwLCBpbmZvKTsKKwlyZXR1cm4g cmV0OworfQogRVhQT1JUX1NZTUJPTChpcF9vcHRpb25zX2NvbXBpbGUpOwogCiAvKgotLSAKMi4y MC4xCgoKRnJvbSA4OWZkMDZlNDdkMGE3MGZlMzRjMDE5MGI2NGNjNGI5YzI1OTc3OThhIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBEYXZpZCBBaGVybiA8ZHNhaGVybkBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjYgRmViIDIwMTkgMDk6MDA6MDIgLTA4MDAKU3ViamVjdDogW1BBVENIIDM0 LzQyXSBpcHY0OiBSZXR1cm4gZXJyb3IgZm9yIFJUQV9WSUEgYXR0cmlidXRlCgpbIFVwc3RyZWFt IGNvbW1pdCBiNmU5ZTVkZjRlY2YxMDBmNmExMGFiMmFkZThlNDZkNDdhNGI5Nzc5IF0KCklQdjQg Y3VycmVudGx5IGRvZXMgbm90IHN1cHBvcnQgbmV4dGhvcHMgb3V0c2lkZSBvZiB0aGUgQUZfSU5F VCBmYW1pbHkuClNwZWNpZmljYWxseSwgaXQgZG9lcyBub3QgaGFuZGxlIFJUQV9WSUEgYXR0cmli dXRlLiBJZiBpdCBpcyBwYXNzZWQKaW4gYSByb3V0ZSBhZGQgcmVxdWVzdCwgdGhlIGFjdHVhbCBy b3V0ZSBhZGRlZCBvbmx5IHVzZXMgdGhlIGRldmljZQp3aGljaCBpcyBjbGVhcmx5IG5vdCB3aGF0 IHRoZSB1c2VyIGludGVuZGVkOgoKICAkIGlwIHJvIGFkZCAxNzIuMTYuMS4wLzI0IHZpYSBpbmV0 NiAyMDAxOmRiODoxOjoxIGRldiBldGgwCiAgJCBpcCBybyBscwogIC4uLgogIDE3Mi4xNi4xLjAv MjQgZGV2IGV0aDAKCkNhdGNoIHRoaXMgYW5kIGZhaWwgdGhlIHJvdXRlIGFkZDoKICAkIGlwIHJv IGFkZCAxNzIuMTYuMS4wLzI0IHZpYSBpbmV0NiAyMDAxOmRiODoxOjoxIGRldiBldGgwCiAgRXJy b3I6IElQdjQgZG9lcyBub3Qgc3VwcG9ydCBSVEFfVklBIGF0dHJpYnV0ZS4KCkZpeGVzOiAwM2Mw NTY2NTQyZjRjICgibXBsczogTmV0bGluayBjb21tYW5kcyB0byBhZGQsIHJlbW92ZSwgYW5kIGR1 bXAgcm91dGVzIikKU2lnbmVkLW9mZi1ieTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29t PgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0t LQogbmV0L2lwdjQvZmliX2Zyb250ZW5kLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGlu c2VydGlvbnMoKykKCmRpZmYgLS1naXQgYS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYyBiL25ldC9p cHY0L2ZpYl9mcm9udGVuZC5jCmluZGV4IGZlNGY2YTYyNDIzOC4uZWQxNGVjMjQ1NTg0IDEwMDY0 NAotLS0gYS9uZXQvaXB2NC9maWJfZnJvbnRlbmQuYworKysgYi9uZXQvaXB2NC9maWJfZnJvbnRl bmQuYwpAQCAtNzEwLDYgKzcxMCwxMCBAQCBzdGF0aWMgaW50IHJ0bV90b19maWJfY29uZmlnKHN0 cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJY2FzZSBSVEFfR0FURVdBWToK IAkJCWNmZy0+ZmNfZ3cgPSBubGFfZ2V0X2JlMzIoYXR0cik7CiAJCQlicmVhazsKKwkJY2FzZSBS VEFfVklBOgorCQkJTkxfU0VUX0VSUl9NU0coZXh0YWNrLCAiSVB2NCBkb2VzIG5vdCBzdXBwb3J0 IFJUQV9WSUEgYXR0cmlidXRlIik7CisJCQllcnIgPSAtRUlOVkFMOworCQkJZ290byBlcnJvdXQ7 CiAJCWNhc2UgUlRBX1BSSU9SSVRZOgogCQkJY2ZnLT5mY19wcmlvcml0eSA9IG5sYV9nZXRfdTMy KGF0dHIpOwogCQkJYnJlYWs7Ci0tIAoyLjIwLjEKCgpGcm9tIDc3MDYwNGIzMWU3ZmFlOGQxOGEz MDYwMmQ3MmM1OTY0Y2QxOThjMDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlk IEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KRGF0ZTogVHVlLCAyNiBGZWIgMjAxOSAwOTowMDow MyAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzUvNDJdIGlwdjY6IFJldHVybiBlcnJvciBmb3IgUlRB X1ZJQSBhdHRyaWJ1dGUKClsgVXBzdHJlYW0gY29tbWl0IGUzODE4NTQxYjQ5ZmI4ODY1MGJhMzM5 ZDMzY2M1M2U0MDk1ZGE1YjMgXQoKSVB2NiBjdXJyZW50bHkgZG9lcyBub3Qgc3VwcG9ydCBuZXh0 aG9wcyBvdXRzaWRlIG9mIHRoZSBBRl9JTkVUNiBmYW1pbHkuClNwZWNpZmljYWxseSwgaXQgZG9l cyBub3QgaGFuZGxlIFJUQV9WSUEgYXR0cmlidXRlLiBJZiBpdCBpcyBwYXNzZWQKaW4gYSByb3V0 ZSBhZGQgcmVxdWVzdCwgdGhlIGFjdHVhbCByb3V0ZSBhZGRlZCBvbmx5IHVzZXMgdGhlIGRldmlj ZQp3aGljaCBpcyBjbGVhcmx5IG5vdCB3aGF0IHRoZSB1c2VyIGludGVuZGVkOgoKICAkIGlwIC02 IHJvIGFkZCAyMDAxOmRiODoyOjovNjQgdmlhIGluZXQgMTcyLjE2LjEuMSBkZXYgZXRoMAogICQg aXAgcm8gbHMKICAuLi4KICAyMDAxOmRiODoyOjovNjQgZGV2IGV0aDAgbWV0cmljIDEwMjQgcHJl ZiBtZWRpdW0KCkNhdGNoIHRoaXMgYW5kIGZhaWwgdGhlIHJvdXRlIGFkZDoKICAkIGlwIC02IHJv IGFkZCAyMDAxOmRiODoyOjovNjQgdmlhIGluZXQgMTcyLjE2LjEuMSBkZXYgZXRoMAogIEVycm9y OiBJUHY2IGRvZXMgbm90IHN1cHBvcnQgUlRBX1ZJQSBhdHRyaWJ1dGUuCgpGaXhlczogMDNjMDU2 NjU0MmY0YyAoIm1wbHM6IE5ldGxpbmsgY29tbWFuZHMgdG8gYWRkLCByZW1vdmUsIGFuZCBkdW1w IHJvdXRlcyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9pcHY2L3JvdXRlLmMgfCA0ICsrKysKIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMo KykKCmRpZmYgLS1naXQgYS9uZXQvaXB2Ni9yb3V0ZS5jIGIvbmV0L2lwdjYvcm91dGUuYwppbmRl eCBhNjhkNDQ3YjZlMmMuLmM4N2NlNTczMjMzOCAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvcm91dGUu YworKysgYi9uZXQvaXB2Ni9yb3V0ZS5jCkBAIC00MTYzLDYgKzQxNjMsMTAgQEAgc3RhdGljIGlu dCBydG1fdG9fZmliNl9jb25maWcoc3RydWN0IHNrX2J1ZmYgKnNrYiwgc3RydWN0IG5sbXNnaGRy ICpubGgsCiAJCWNmZy0+ZmNfZ2F0ZXdheSA9IG5sYV9nZXRfaW42X2FkZHIodGJbUlRBX0dBVEVX QVldKTsKIAkJY2ZnLT5mY19mbGFncyB8PSBSVEZfR0FURVdBWTsKIAl9CisJaWYgKHRiW1JUQV9W SUFdKSB7CisJCU5MX1NFVF9FUlJfTVNHKGV4dGFjaywgIklQdjYgZG9lcyBub3Qgc3VwcG9ydCBS VEFfVklBIGF0dHJpYnV0ZSIpOworCQlnb3RvIGVycm91dDsKKwl9CiAKIAlpZiAodGJbUlRBX0RT VF0pIHsKIAkJaW50IHBsZW4gPSAocnRtLT5ydG1fZHN0X2xlbiArIDcpID4+IDM7Ci0tIAoyLjIw LjEKCgpGcm9tIGQ1OGQ0MzQwNTJlMjVjMzIxMjc0NWZhYjJjZjcwZjBlNmU4OWNhOGIgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAyNiBGZWIgMjAxOSAwOTowMDowNCAtMDgwMApTdWJqZWN0OiBbUEFUQ0ggMzYv NDJdIG1wbHM6IFJldHVybiBlcnJvciBmb3IgUlRBX0dBVEVXQVkgYXR0cmlidXRlCgpbIFVwc3Ry ZWFtIGNvbW1pdCBiZTQ4MjIwZWRkNDhjYTBkNTY5NzgyOTkyODQwNDg4YTUyMzczYTI0IF0KCk1Q TFMgZG9lcyBub3Qgc3VwcG9ydCBuZXh0aG9wcyB3aXRoIGFuIE1QTFMgYWRkcmVzcyBmYW1pbHku ClNwZWNpZmljYWxseSwgaXQgZG9lcyBub3QgaGFuZGxlIFJUQV9HQVRFV0FZIGF0dHJpYnV0ZS4g TWFrZSBpdApjbGVhciBieSByZXR1cm5pbmcgYW4gZXJyb3IuCgpGaXhlczogMDNjMDU2NjU0MmY0 YyAoIm1wbHM6IE5ldGxpbmsgY29tbWFuZHMgdG8gYWRkLCByZW1vdmUsIGFuZCBkdW1wIHJvdXRl cyIpClNpZ25lZC1vZmYtYnk6IERhdmlkIEFoZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9t cGxzL2FmX21wbHMuYyB8IDMgKysrCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvbmV0L21wbHMvYWZfbXBscy5jIGIvbmV0L21wbHMvYWZfbXBscy5jCmluZGV4 IDdkNTVkNGMwNDA4OC4uZmE3NjNlMmU1MGVjIDEwMDY0NAotLS0gYS9uZXQvbXBscy9hZl9tcGxz LmMKKysrIGIvbmV0L21wbHMvYWZfbXBscy5jCkBAIC0xODM4LDYgKzE4MzgsOSBAQCBzdGF0aWMg aW50IHJ0bV90b19yb3V0ZV9jb25maWcoc3RydWN0IHNrX2J1ZmYgKnNrYiwKIAkJCQlnb3RvIGVy cm91dDsKIAkJCWJyZWFrOwogCQl9CisJCWNhc2UgUlRBX0dBVEVXQVk6CisJCQlOTF9TRVRfRVJS X01TRyhleHRhY2ssICJNUExTIGRvZXMgbm90IHN1cHBvcnQgUlRBX0dBVEVXQVkgYXR0cmlidXRl Iik7CisJCQlnb3RvIGVycm91dDsKIAkJY2FzZSBSVEFfVklBOgogCQl7CiAJCQlpZiAobmxhX2dl dF92aWEobmxhLCAmY2ZnLT5yY192aWFfYWxlbiwKLS0gCjIuMjAuMQoKCkZyb20gMTQ1OTNhMjg2 MTYwMGU2NzYzZjJhMDljNDg1ZTg3ZmUxN2YyYmU0ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEK RnJvbTogRGF2aWQgQWhlcm4gPGRzYWhlcm5AZ21haWwuY29tPgpEYXRlOiBNb24sIDI1IEZlYiAy MDE5IDEzOjU1OjQ4IC0wODAwClN1YmplY3Q6IFtQQVRDSCAzNy80Ml0gaXB2NDogUGFzcyBvcmln aW5hbCBkZXZpY2UgdG8gaXBfcmN2X2ZpbmlzaF9jb3JlCgpbIFVwc3RyZWFtIGNvbW1pdCBhMWZk MWFkMjU1MmZhZDllNjQ5ZWViODVmZDc5MzAxZTI4ODBhODg2IF0KCmlwX3JvdXRlX2lucHV0X3Jj dSBleHBlY3RzIHRoZSBvcmlnaW5hbCBpbmdyZXNzIGRldmljZSAoZS5nLiwgZm9yCnByb3BlciBt dWx0aWNhc3QgaGFuZGxpbmcpLiBUaGUgc2tiLT5kZXYgY2FuIGJlIGNoYW5nZWQgYnkgbDNtZGV2 X2lwX3JjdiwKc28gZGV2IG5lZWRzIHRvIGJlIHNhdmVkIHByaW9yIHRvIGNhbGxpbmcgaXQuIFRo aXMgd2FzIHRoZSBiZWhhdmlvciBwcmlvcgp0byB0aGUgbGlzdGlmeSBjaGFuZ2VzLgoKRml4ZXM6 IDVmYTEyNzM5YTUzZDAgKCJuZXQ6IGlwdjQ6IGxpc3RpZnkgaXBfcmN2X2ZpbmlzaCIpCkNjOiBF ZHdhcmQgQ3JlZSA8ZWNyZWVAc29sYXJmbGFyZS5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIEFo ZXJuIDxkc2FoZXJuQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxk YXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9pcHY0L2lwX2lucHV0LmMgfCA5ICsrKysrLS0t LQogMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9uZXQvaXB2NC9pcF9pbnB1dC5jIGIvbmV0L2lwdjQvaXBfaW5wdXQuYwppbmRleCAz MTYzNDI4MjE5Y2QuLmE0MzNiNzRhNGY3NiAxMDA2NDQKLS0tIGEvbmV0L2lwdjQvaXBfaW5wdXQu YworKysgYi9uZXQvaXB2NC9pcF9pbnB1dC5jCkBAIC0zMDgsMTEgKzMwOCwxMCBAQCBzdGF0aWMg aW5saW5lIGJvb2wgaXBfcmN2X29wdGlvbnMoc3RydWN0IHNrX2J1ZmYgKnNrYikKIH0KIAogc3Rh dGljIGludCBpcF9yY3ZfZmluaXNoX2NvcmUoc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qgc29jayAq c2ssCi0JCQkgICAgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQorCQkJICAgICAgc3RydWN0IHNrX2J1 ZmYgKnNrYiwgc3RydWN0IG5ldF9kZXZpY2UgKmRldikKIHsKIAljb25zdCBzdHJ1Y3QgaXBoZHIg KmlwaCA9IGlwX2hkcihza2IpOwogCWludCAoKmVkZW11eCkoc3RydWN0IHNrX2J1ZmYgKnNrYik7 Ci0Jc3RydWN0IG5ldF9kZXZpY2UgKmRldiA9IHNrYi0+ZGV2OwogCXN0cnVjdCBydGFibGUgKnJ0 OwogCWludCBlcnI7CiAKQEAgLTQwMSw2ICs0MDAsNyBAQCBzdGF0aWMgaW50IGlwX3Jjdl9maW5p c2hfY29yZShzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIAogc3RhdGljIGludCBp cF9yY3ZfZmluaXNoKHN0cnVjdCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLCBzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogeworCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBza2ItPmRldjsKIAlpbnQg cmV0OwogCiAJLyogaWYgaW5ncmVzcyBkZXZpY2UgaXMgZW5zbGF2ZWQgdG8gYW4gTDMgbWFzdGVy IGRldmljZSBwYXNzIHRoZQpAQCAtNDEwLDcgKzQxMCw3IEBAIHN0YXRpYyBpbnQgaXBfcmN2X2Zp bmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywgc3RydWN0IHNrX2J1ZmYgKnNr YikKIAlpZiAoIXNrYikKIAkJcmV0dXJuIE5FVF9SWF9TVUNDRVNTOwogCi0JcmV0ID0gaXBfcmN2 X2ZpbmlzaF9jb3JlKG5ldCwgc2ssIHNrYik7CisJcmV0ID0gaXBfcmN2X2ZpbmlzaF9jb3JlKG5l dCwgc2ssIHNrYiwgZGV2KTsKIAlpZiAocmV0ICE9IE5FVF9SWF9EUk9QKQogCQlyZXQgPSBkc3Rf aW5wdXQoc2tiKTsKIAlyZXR1cm4gcmV0OwpAQCAtNTQ2LDYgKzU0Niw3IEBAIHN0YXRpYyB2b2lk IGlwX2xpc3RfcmN2X2ZpbmlzaChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBzb2NrICpzaywKIAog CUlOSVRfTElTVF9IRUFEKCZzdWJsaXN0KTsKIAlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUoc2ti LCBuZXh0LCBoZWFkLCBsaXN0KSB7CisJCXN0cnVjdCBuZXRfZGV2aWNlICpkZXYgPSBza2ItPmRl djsKIAkJc3RydWN0IGRzdF9lbnRyeSAqZHN0OwogCiAJCXNrYl9saXN0X2RlbF9pbml0KHNrYik7 CkBAIC01NTUsNyArNTU2LDcgQEAgc3RhdGljIHZvaWQgaXBfbGlzdF9yY3ZfZmluaXNoKHN0cnVj dCBuZXQgKm5ldCwgc3RydWN0IHNvY2sgKnNrLAogCQlza2IgPSBsM21kZXZfaXBfcmN2KHNrYik7 CiAJCWlmICghc2tiKQogCQkJY29udGludWU7Ci0JCWlmIChpcF9yY3ZfZmluaXNoX2NvcmUobmV0 LCBzaywgc2tiKSA9PSBORVRfUlhfRFJPUCkKKwkJaWYgKGlwX3Jjdl9maW5pc2hfY29yZShuZXQs IHNrLCBza2IsIGRldikgPT0gTkVUX1JYX0RST1ApCiAJCQljb250aW51ZTsKIAogCQlkc3QgPSBz a2JfZHN0KHNrYik7Ci0tIAoyLjIwLjEKCgpGcm9tIDgxMGQ4MGJhNjk2MmQ1ZWRiZTNhZmU0YzYw YmRlZjhlNGZjNTQxNjUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IE1heGltZSBDaGV2 YWxsaWVyIDxtYXhpbWUuY2hldmFsbGllckBib290bGluLmNvbT4KRGF0ZTogVGh1LCAyOCBGZWIg MjAxOSAyMjoxNDozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMzgvNDJdIG5ldDogZHNhOiBtdjg4 ZTZ4eHg6IHBvd2VyIHNlcmRlcyBvbi9vZmYgZm9yIDEwRwogaW50ZXJmYWNlcyBvbiA2MzkwWAoK WyBVcHN0cmVhbSBjb21taXQgZDIzNWM0OGI0MGQzOTkzMjg1ODVhNjhmM2Y5YmY3Y2MzMDYyZDU4 NiBdCgpVcG9uIHNldHRpbmcgdGhlIGNtb2RlIG9uIDYzOTAgYW5kIDYzOTBYLCB0aGUgYXNzb2Np YXRlZCBzZXJkZXMKaW50ZXJmYWNlcyBtdXN0IGJlIHBvd2VyZWQgb2ZmL29uLgoKQm90aCA2Mzkw WCBhbmQgNjM5MCBzaGFyZSBjb2RlIHRvIGRvIHNvLCBidXQgaXQgY3VycmVudGx5IHVzZXMgdGhl IDYzOTAKc3BlY2lmaWMgaGVscGVyIG12ODhlNjM5MF9zZXJkZXNfcG93ZXIoKSB0byBkaXNhYmxl IGFuZCBlbmFibGUgdGhlCnNlcmRlcyBpbnRlcmZhY2UuCgpUaGlzIGNhbGwgd2lsbCBmYWlsIHNp bGVudGx5IG9uIDYzOTBYIHdoZW4gdHJ5aW5nIHNvIHNldCBhIDEwRyBpbnRlcmZhY2UKc3VjaCBh cyBYQVVJIG9yIFJYQVVJLCBzaW5jZSBtdjg4ZTYzOTBfc2VyZGVzX3Bvd2VyKCkgaW50ZXJuYWxs eSBncmFicwp0aGUgbGFuZSBudW1iZXIgYmFzZWQgb24gbW9kZXMgc3VwcG9ydGVkIGJ5IHRoZSA2 MzkwLCBhbmQgcmV0dXJucyAwIHdoZW4KZ2V0dGluZyAtRU5PREVWIGFzIGEgbGFuZSBudW1iZXIu CgpVc2luZyBtdjg4ZTYzOTB4X3NlcmRlc19wb3dlcigpIHNob3VsZCBiZSBzYWZlIGhlcmUsIHNp bmNlIHdlIGV4cGxpY2l0bHkKcnVsZS1vdXQgYWxsIHBvcnRzIGJ1dCB0aGUgOSBhbmQgMTAsIGFu ZCBiZWNhdXNlIG1vZGVzIHN1cHBvcnRlZCBieSA2MzkwCnBvcnRzIDkgYW5kIDEwIGFyZSBhIHN1 YnNldCBvZiB0aG9zZSBzdXBwb3J0ZWQgb24gNjM5MFguCgpUaGlzIHdhcyB0ZXN0ZWQgb24gNjM5 MFggdXNpbmcgUlhBVUkgbW9kZS4KCkZpeGVzOiAzNjRlOWQ3Nzc2YTMgKCJuZXQ6IGRzYTogbXY4 OGU2eHh4OiBQb3dlciBvbi9vZmYgU0VSREVTIG9uIGNtb2RlIGNoYW5nZSIpClNpZ25lZC1vZmYt Ynk6IE1heGltZSBDaGV2YWxsaWVyIDxtYXhpbWUuY2hldmFsbGllckBib290bGluLmNvbT4KUmV2 aWV3ZWQtYnk6IEFuZHJldyBMdW5uIDxhbmRyZXdAbHVubi5jaD4KU2lnbmVkLW9mZi1ieTogRGF2 aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0L2RzYS9t djg4ZTZ4eHgvcG9ydC5jIHwgNCArKy0tCiAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCsp LCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgv cG9ydC5jIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMKaW5kZXggZWNlODk3NTZh MDcwLi43MWU2MDRlOTUzMWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgv cG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCkBAIC00MDUsNyAr NDA1LDcgQEAgaW50IG12ODhlNjM5MHhfcG9ydF9zZXRfY21vZGUoc3RydWN0IG12ODhlNnh4eF9j aGlwICpjaGlwLCBpbnQgcG9ydCwKIAkJCXJldHVybiBlcnI7CiAJfQogCi0JZXJyID0gbXY4OGU2 MzkwX3NlcmRlc19wb3dlcihjaGlwLCBwb3J0LCBmYWxzZSk7CisJZXJyID0gbXY4OGU2MzkweF9z ZXJkZXNfcG93ZXIoY2hpcCwgcG9ydCwgZmFsc2UpOwogCWlmIChlcnIpCiAJCXJldHVybiBlcnI7 CiAKQEAgLTQyMSw3ICs0MjEsNyBAQCBpbnQgbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZShzdHJ1 Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXAsIGludCBwb3J0LAogCQlpZiAoZXJyKQogCQkJcmV0dXJu IGVycjsKIAotCQllcnIgPSBtdjg4ZTYzOTBfc2VyZGVzX3Bvd2VyKGNoaXAsIHBvcnQsIHRydWUp OworCQllcnIgPSBtdjg4ZTYzOTB4X3NlcmRlc19wb3dlcihjaGlwLCBwb3J0LCB0cnVlKTsKIAkJ aWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAKLS0gCjIuMjAuMQoKCkZyb20gM2Y5ZmJiM2NlNzYz YTA3Zjg0Y2Q0YjY2NDIzNjdkZDcwMTFlMDI4MCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KRGF0ZTogVGh1LCAyOCBG ZWIgMjAxOSAwNzozOToxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMzkvNDJdIG5ldDogZHNhOiBt djg4ZTZ4eHg6IHByZXZlbnQgaW50ZXJydXB0IHN0b3JtIGNhdXNlZCBieQogbXY4OGU2MzkweF9w b3J0X3NldF9jbW9kZQoKWyBVcHN0cmVhbSBjb21taXQgZWQ4ZmUyMDIwNWFjMDU0YmY1ODUxNTY3 MDlkZTM5MTNkMTg5MGYzMCBdCgpXaGVuIGRlYnVnZ2luZyBhbm90aGVyIGlzc3VlIEkgZmFjZWQg YW4gaW50ZXJydXB0IHN0b3JtIGluIHRoaXMKZHJpdmVyICg4OEU2MzkwLCBwb3J0IDkgaW4gU0dN SUkgbW9kZSksIGNvbnNpc3Rpbmcgb2YgYWx0ZXJuYXRpbmcKbGluay11cCAvIGxpbmstZG93biBp bnRlcnJ1cHRzLiBBbmFseXNpcyBzaG93ZWQgdGhhdCB0aGUgZHJpdmVyCndhbnRlZCB0byBzZXQg YSBjbW9kZSB0aGF0IHdhcyBzZXQgYWxyZWFkeS4gQnV0IHNvIGZhcgptdjg4ZTYzOTB4X3BvcnRf c2V0X2Ntb2RlKCkgZG9lc24ndCBjaGVjayB0aGlzIGFuZCBwb3dlcnMgZG93bgpTRVJERVMsIHdo YXQgY2F1c2VzIHRoZSBsaW5rIHRvIGJyZWFrLCBhbmQgZXZlbnR1YWxseSByZXN1bHRzIGluCnRo ZSBkZXNjcmliZWQgaW50ZXJydXB0IHN0b3JtLgoKRml4IHRoaXMgYnkgY2hlY2tpbmcgd2hldGhl ciB0aGUgY21vZGUgYWN0dWFsbHkgY2hhbmdlcy4gV2Ugd2FudAp0aGF0IHRoZSB2ZXJ5IGZpcnN0 IGNhbGwgdG8gbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZSgpIGFsd2F5cwpjb25maWd1cmVzIHRo ZSByZWdpc3RlcnMsIHRoZXJlZm9yZSBpbml0aWFsaXplIHBvcnQuY21vZGUgd2l0aAphIHZhbHVl IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gYW55IHN1cHBvcnRlZCBjbW9kZSB2YWx1ZS4KV2UgaGF2 ZSB0byB0YWtlIGNhcmUgdGhhdCB3ZSBvbmx5IGluaXQgdGhlIHBvcnRzIGNtb2RlIG9uY2UKY2hp cC0+aW5mby0+bnVtX3BvcnRzIGlzIHNldC4KCnYyOgotIGFkZCBzbWFsbCBoZWxwZXIgYW5kIGlu aXQgdGhlIG51bWJlciBvZiBhY3R1YWwgcG9ydHMgb25seQoKRml4ZXM6IDM2NGU5ZDc3NzZhMyAo Im5ldDogZHNhOiBtdjg4ZTZ4eHg6IFBvd2VyIG9uL29mZiBTRVJERVMgb24gY21vZGUgY2hhbmdl IikKU2lnbmVkLW9mZi1ieTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IGRyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jIHwgMTAgKysrKysrKysrKwogZHJpdmVy cy9uZXQvZHNhL212ODhlNnh4eC9wb3J0LmMgfCAgNCArKysrCiBkcml2ZXJzL25ldC9kc2EvbXY4 OGU2eHh4L3BvcnQuaCB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jIGIvZHJpdmVycy9u ZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKaW5kZXggMDE2NmY3NDBlNjI1Li45MDIxZjAxNjUxZDYg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCisrKyBiL2RyaXZl cnMvbmV0L2RzYS9tdjg4ZTZ4eHgvY2hpcC5jCkBAIC00NTc5LDYgKzQ1NzksMTQgQEAgc3RhdGlj IGludCBtdjg4ZTZ4eHhfc21pX2luaXQoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLAogCXJl dHVybiAwOwogfQogCitzdGF0aWMgdm9pZCBtdjg4ZTZ4eHhfcG9ydHNfY21vZGVfaW5pdChzdHJ1 Y3QgbXY4OGU2eHh4X2NoaXAgKmNoaXApCit7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwOyBpIDwg bXY4OGU2eHh4X251bV9wb3J0cyhjaGlwKTsgaSsrKQorCQljaGlwLT5wb3J0c1tpXS5jbW9kZSA9 IE1WODhFNlhYWF9QT1JUX1NUU19DTU9ERV9JTlZBTElEOworfQorCiBzdGF0aWMgZW51bSBkc2Ff dGFnX3Byb3RvY29sIG12ODhlNnh4eF9nZXRfdGFnX3Byb3RvY29sKHN0cnVjdCBkc2Ffc3dpdGNo ICpkcywKIAkJCQkJCQlpbnQgcG9ydCkKIHsKQEAgLTQ2MTUsNiArNDYyMyw4IEBAIHN0YXRpYyBj b25zdCBjaGFyICptdjg4ZTZ4eHhfZHJ2X3Byb2JlKHN0cnVjdCBkZXZpY2UgKmRzYV9kZXYsCiAJ aWYgKGVycikKIAkJZ290byBmcmVlOwogCisJbXY4OGU2eHh4X3BvcnRzX2Ntb2RlX2luaXQoY2hp cCk7CisKIAltdXRleF9sb2NrKCZjaGlwLT5yZWdfbG9jayk7CiAJZXJyID0gbXY4OGU2eHh4X3N3 aXRjaF9yZXNldChjaGlwKTsKIAltdXRleF91bmxvY2soJmNoaXAtPnJlZ19sb2NrKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jIGIvZHJpdmVycy9uZXQvZHNh L212ODhlNnh4eC9wb3J0LmMKaW5kZXggNzFlNjA0ZTk1MzFhLi5hYmU4NmQ3NzgxZDggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0 L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCkBAIC0zOTUsNiArMzk1LDEwIEBAIGludCBtdjg4ZTYzOTB4 X3BvcnRfc2V0X2Ntb2RlKHN0cnVjdCBtdjg4ZTZ4eHhfY2hpcCAqY2hpcCwgaW50IHBvcnQsCiAJ CWNtb2RlID0gMDsKIAl9CiAKKwkvKiBjbW9kZSBkb2Vzbid0IGNoYW5nZSwgbm90aGluZyB0byBk byBmb3IgdXMgKi8KKwlpZiAoY21vZGUgPT0gY2hpcC0+cG9ydHNbcG9ydF0uY21vZGUpCisJCXJl dHVybiAwOworCiAJbGFuZSA9IG12ODhlNjM5MHhfc2VyZGVzX2dldF9sYW5lKGNoaXAsIHBvcnQp OwogCWlmIChsYW5lIDwgMCkKIAkJcmV0dXJuIGxhbmU7CmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9kc2EvbXY4OGU2eHh4L3BvcnQuaCBiL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5o CmluZGV4IDA5MWFhMDA1N2YxZi4uY2JiNjRhNzY4M2UyIDEwMDY0NAotLS0gYS9kcml2ZXJzL25l dC9kc2EvbXY4OGU2eHh4L3BvcnQuaAorKysgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3Bv cnQuaApAQCAtNTIsNiArNTIsNyBAQAogI2RlZmluZSBNVjg4RTYxODVfUE9SVF9TVFNfQ01PREVf MTAwMEJBU0VfWAkweDAwMDUKICNkZWZpbmUgTVY4OEU2MTg1X1BPUlRfU1RTX0NNT0RFX1BIWQkJ MHgwMDA2CiAjZGVmaW5lIE1WODhFNjE4NV9QT1JUX1NUU19DTU9ERV9ESVNBQkxFRAkweDAwMDcK KyNkZWZpbmUgTVY4OEU2WFhYX1BPUlRfU1RTX0NNT0RFX0lOVkFMSUQJMHhmZgogCiAvKiBPZmZz ZXQgMHgwMTogTUFDIChvciBQQ1Mgb3IgUGh5c2ljYWwpIENvbnRyb2wgUmVnaXN0ZXIgKi8KICNk ZWZpbmUgTVY4OEU2WFhYX1BPUlRfTUFDX0NUTAkJCQkweDAxCi0tIAoyLjIwLjEKCgpGcm9tIDMw ZThmZTgyMDAyOTFhNmUxYWEzMzE4NzBlOGU4NmQ3NmRiYmJhMTAgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpEYXRlOiBG cmksIDIyIEZlYiAyMDE5IDEyOjMzOjI1ICswMTAwClN1YmplY3Q6IFtQQVRDSCA0MC80Ml0gbmV0 L3NjaGVkOiBhY3RfaXB0OiBmaXggcmVmY291bnQgbGVhayB3aGVuIHJlcGxhY2UKIGZhaWxzCgpb IFVwc3RyZWFtIGNvbW1pdCA4ZjY3YzkwZWU5MTQ4ZWFiM2QyYjQzOTNjM2NmNzY0ODliMjdmODdj IF0KCkFmdGVyIGNvbW1pdCA0ZThkZGQ3ZjE3NTggKCJuZXQ6IHNjaGVkOiBkb24ndCByZWxlYXNl IHJlZmVyZW5jZSBvbiBhY3Rpb24Kb3ZlcndyaXRlIiksIHRoZSBlcnJvciBwYXRoIG9mIGFsbCBh Y3Rpb25zIHdhcyBjb252ZXJ0ZWQgdG8gZHJvcCByZWZjb3VudAphbHNvIHdoZW4gdGhlIGFjdGlv biB3YXMgYmVpbmcgb3ZlcndyaXR0ZW4uIEJ1dCB3ZSBmb3Jnb3QgYWN0X2lwdF9pbml0KCksCmlu IGNhc2UgYWxsb2NhdGlvbiBvZiAndG5hbWUnIHdhcyBub3Qgc3VjY2Vzc2Z1bDoKCiAjIHRjIGFj dGlvbiBhZGQgYWN0aW9uIHh0IC1qIExPRyAtLWxvZy1wcmVmaXggaGVsbG8gaW5kZXggMTAwCiB0 YWJsZW5hbWU6IG1hbmdsZSBob29rOiBORl9JUF9QT1NUX1JPVVRJTkcKICAgICAgICAgdGFyZ2V0 OiAgTE9HIGxldmVsIHdhcm5pbmcgcHJlZml4ICJoZWxsbyIgaW5kZXggMTAwCiAjIHRjIGFjdGlv biBzaG93IGFjdGlvbiB4dAogdG90YWwgYWN0cyAxCgogICAgICAgICBhY3Rpb24gb3JkZXIgMDog dGFibGVuYW1lOiBtYW5nbGUgIGhvb2s6IE5GX0lQX1BPU1RfUk9VVElORwogICAgICAgICB0YXJn ZXQgIExPRyBsZXZlbCB3YXJuaW5nIHByZWZpeCAiaGVsbG8iCiAgICAgICAgIGluZGV4IDEwMCBy ZWYgMSBiaW5kIDAKICMgdGMgYWN0aW9uIHJlcGxhY2UgYWN0aW9uIHh0IC1qIExPRyAtLWxvZy1w cmVmaXggd29ybGQgaW5kZXggMTAwCiB0YWJsZW5hbWU6IG1hbmdsZSBob29rOiBORl9JUF9QT1NU X1JPVVRJTkcKICAgICAgICAgdGFyZ2V0OiAgTE9HIGxldmVsIHdhcm5pbmcgcHJlZml4ICJ3b3Js ZCIgaW5kZXggMTAwCiBSVE5FVExJTksgYW5zd2VyczogQ2Fubm90IGFsbG9jYXRlIG1lbW9yeQog V2UgaGF2ZSBhbiBlcnJvciB0YWxraW5nIHRvIHRoZSBrZXJuZWwKICMgdGMgYWN0aW9uIHNob3cg YWN0aW9uIHh0CiB0b3RhbCBhY3RzIDEKCiAgICAgICAgIGFjdGlvbiBvcmRlciAwOiB0YWJsZW5h bWU6IG1hbmdsZSAgaG9vazogTkZfSVBfUE9TVF9ST1VUSU5HCiAgICAgICAgIHRhcmdldCAgTE9H IGxldmVsIHdhcm5pbmcgcHJlZml4ICJoZWxsbyIKICAgICAgICAgaW5kZXggMTAwIHJlZiAyIGJp bmQgMAoKRW5zdXJlIHdlIGNhbGwgdGNmX2lkcl9yZWxlYXNlKCksIGluIGNhc2UgJ3RuYW1lJyBh bGxvY2F0aW9uIGZhaWxlZCwgYWxzbwp3aGVuIHRoZSBhY3Rpb24gaXMgYmVpbmcgcmVwbGFjZWQu CgpGaXhlczogNGU4ZGRkN2YxNzU4ICgibmV0OiBzY2hlZDogZG9uJ3QgcmVsZWFzZSByZWZlcmVu Y2Ugb24gYWN0aW9uIG92ZXJ3cml0ZSIpClNpZ25lZC1vZmYtYnk6IERhdmlkZSBDYXJhdHRpIDxk Y2FyYXR0aUByZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjaGVkL2FjdF9pcHQuYyB8IDMgKy0tCiAxIGZpbGUg Y2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV0 L3NjaGVkL2FjdF9pcHQuYyBiL25ldC9zY2hlZC9hY3RfaXB0LmMKaW5kZXggOGFmNmMxMWQyNDgy Li5mYWExYWRkZjg5YjMgMTAwNjQ0Ci0tLSBhL25ldC9zY2hlZC9hY3RfaXB0LmMKKysrIGIvbmV0 L3NjaGVkL2FjdF9pcHQuYwpAQCAtMTk5LDggKzE5OSw3IEBAIHN0YXRpYyBpbnQgX190Y2ZfaXB0 X2luaXQoc3RydWN0IG5ldCAqbmV0LCB1bnNpZ25lZCBpbnQgaWQsIHN0cnVjdCBubGF0dHIgKm5s YSwKIGVycjI6CiAJa2ZyZWUodG5hbWUpOwogZXJyMToKLQlpZiAocmV0ID09IEFDVF9QX0NSRUFU RUQpCi0JCXRjZl9pZHJfcmVsZWFzZSgqYSwgYmluZCk7CisJdGNmX2lkcl9yZWxlYXNlKCphLCBi aW5kKTsKIAlyZXR1cm4gZXJyOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIGQ0OTBlZWJjYTgyMDQ3 ZDg3MDU2ZjE0MWZkZjQ4NWRjNjM4NWFlMTMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206 IERhdmlkZSBDYXJhdHRpIDxkY2FyYXR0aUByZWRoYXQuY29tPgpEYXRlOiBGcmksIDIyIEZlYiAy MDE5IDEyOjMzOjI2ICswMTAwClN1YmplY3Q6IFtQQVRDSCA0MS80Ml0gbmV0L3NjaGVkOiBhY3Rf c2tiZWRpdDogZml4IHJlZmNvdW50IGxlYWsgd2hlbiByZXBsYWNlCiBmYWlscwoKWyBVcHN0cmVh bSBjb21taXQgNjE5MWRhOTgwNjJkMjUyNzZhM2I4OGZiMmE5NGRjYmNmYjNlYTY1ZCBdCgp3aGVu IGFjdF9za2JlZGl0IHdhcyBjb252ZXJ0ZWQgdG8gdXNlIFJDVSBpbiB0aGUgZGF0YSBwbGFuZSwg d2UgYWRkZWQgYW4KZXJyb3IgcGF0aCwgYnV0IHdlIGZvcmdvdCB0byBkcm9wIHRoZSBhY3Rpb24g cmVmY291bnQgaW4gY2FzZSBvZiBmYWlsdXJlCmR1cmluZyBhICdyZXBsYWNlJyBvcGVyYXRpb246 CgogIyB0YyBhY3Rpb25zIGFkZCBhY3Rpb24gc2tiZWRpdCBwdHlwZSBvdGhlcmhvc3QgcGFzcyBp bmRleCAxMDAKICMgdGMgYWN0aW9uIHNob3cgYWN0aW9uIHNrYmVkaXQKIHRvdGFsIGFjdHMgMQoK ICAgICAgICAgYWN0aW9uIG9yZGVyIDA6IHNrYmVkaXQgIHB0eXBlIG90aGVyaG9zdCBwYXNzCiAg ICAgICAgICBpbmRleCAxMDAgcmVmIDEgYmluZCAwCiAjIHRjIGFjdGlvbnMgcmVwbGFjZSBhY3Rp b24gc2tiZWRpdCBwdHlwZSBvdGhlcmhvc3QgZHJvcCBpbmRleCAxMDAKIFJUTkVUTElOSyBhbnN3 ZXJzOiBDYW5ub3QgYWxsb2NhdGUgbWVtb3J5CiBXZSBoYXZlIGFuIGVycm9yIHRhbGtpbmcgdG8g dGhlIGtlcm5lbAogIyB0YyBhY3Rpb24gc2hvdyBhY3Rpb24gc2tiZWRpdAogdG90YWwgYWN0cyAx CgogICAgICAgICBhY3Rpb24gb3JkZXIgMDogc2tiZWRpdCAgcHR5cGUgb3RoZXJob3N0IHBhc3MK ICAgICAgICAgIGluZGV4IDEwMCByZWYgMiBiaW5kIDAKCkVuc3VyZSB3ZSBjYWxsIHRjZl9pZHJf cmVsZWFzZSgpLCBpbiBjYXNlICdwYXJhbXNfbmV3JyBhbGxvY2F0aW9uIGZhaWxlZCwKYWxzbyB3 aGVuIHRoZSBhY3Rpb24gaXMgYmVpbmcgcmVwbGFjZWQuCgpGaXhlczogYzc0OWNkZGE5MDg5ICgi bmV0L3NjaGVkOiBhY3Rfc2tiZWRpdDogZG9uJ3QgdXNlIHNwaW5sb2NrIGluIHRoZSBkYXRhIHBh dGgiKQpTaWduZWQtb2ZmLWJ5OiBEYXZpZGUgQ2FyYXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4K U2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0K IG5ldC9zY2hlZC9hY3Rfc2tiZWRpdC5jIHwgMyArLS0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2Vy dGlvbigrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X3NrYmVk aXQuYyBiL25ldC9zY2hlZC9hY3Rfc2tiZWRpdC5jCmluZGV4IDY0ZGJhMzcwOGZjZS4uY2ZjZWVk MjhjMzMzIDEwMDY0NAotLS0gYS9uZXQvc2NoZWQvYWN0X3NrYmVkaXQuYworKysgYi9uZXQvc2No ZWQvYWN0X3NrYmVkaXQuYwpAQCAtMTg5LDggKzE4OSw3IEBAIHN0YXRpYyBpbnQgdGNmX3NrYmVk aXRfaW5pdChzdHJ1Y3QgbmV0ICpuZXQsIHN0cnVjdCBubGF0dHIgKm5sYSwKIAogCXBhcmFtc19u ZXcgPSBremFsbG9jKHNpemVvZigqcGFyYW1zX25ldyksIEdGUF9LRVJORUwpOwogCWlmICh1bmxp a2VseSghcGFyYW1zX25ldykpIHsKLQkJaWYgKHJldCA9PSBBQ1RfUF9DUkVBVEVEKQotCQkJdGNm X2lkcl9yZWxlYXNlKCphLCBiaW5kKTsKKwkJdGNmX2lkcl9yZWxlYXNlKCphLCBiaW5kKTsKIAkJ cmV0dXJuIC1FTk9NRU07CiAJfQogCi0tIAoyLjIwLjEKCgpGcm9tIDI1OTE3MWI3ZmE1OTgyYzJi ZGZkYmQyNmIyYzY4Yzc3OWI1NGZmMmUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFZs YWQgQnVzbG92IDx2bGFkYnVAbWVsbGFub3guY29tPgpEYXRlOiBNb24sIDI1IEZlYiAyMDE5IDE3 OjI4OjI3ICswMjAwClN1YmplY3Q6IFtQQVRDSCA0Mi80Ml0gbmV0OiBzY2hlZDogYWN0X3R1bm5l bF9rZXk6IGZpeCBOVUxMIHBvaW50ZXIKIGRlcmVmZXJlbmNlIGR1cmluZyBpbml0CgpbIFVwc3Ry ZWFtIGNvbW1pdCBhM2RmNjMzYTNjOTJiYjk2YjA2NTUyYzNmODI4ZDdjMjY3Nzc0Mzc5IF0KCk1l dGFkYXRhIHBvaW50ZXIgaXMgb25seSBpbml0aWFsaXplZCBmb3IgYWN0aW9uIFRDQV9UVU5ORUxf S0VZX0FDVF9TRVQsIGJ1dAppdCBpcyB1bmNvbmRpdGlvbmFsbHkgZGVyZWZlcmVuY2VkIGluIHR1 bm5lbF9rZXlfaW5pdCgpIGVycm9yIGhhbmRsZXIuClZlcmlmeSB0aGF0IG1ldGFkYXRhIHBvaW50 ZXIgaXMgbm90IE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQgaW4KdHVubmVsX2tleV9pbml0 IGVycm9yIGhhbmRsaW5nIGNvZGUuCgpGaXhlczogZWUyOGJiNTZhYzViICgibmV0L3NjaGVkOiBm aXggbWVtb3J5IGxlYWsgaW4gYWN0X3R1bm5lbF9rZXlfaW5pdCgpIikKU2lnbmVkLW9mZi1ieTog VmxhZCBCdXNsb3YgPHZsYWRidUBtZWxsYW5veC5jb20+ClJldmlld2VkLWJ5OiBEYXZpZGUgQ2Fy YXR0aSA8ZGNhcmF0dGlAcmVkaGF0LmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQgUy4gTWlsbGVy IDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9zY2hlZC9hY3RfdHVubmVsX2tleS5jIHwg MyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9uZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYyBiL25ldC9zY2hlZC9hY3RfdHVu bmVsX2tleS5jCmluZGV4IDkwNDczMGI4Y2U4Zi4uNmYxNjIwMmQ0YjRmIDEwMDY0NAotLS0gYS9u ZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXkuYworKysgYi9uZXQvc2NoZWQvYWN0X3R1bm5lbF9rZXku YwpAQCAtMzc3LDcgKzM3Nyw4IEBAIHN0YXRpYyBpbnQgdHVubmVsX2tleV9pbml0KHN0cnVjdCBu ZXQgKm5ldCwgc3RydWN0IG5sYXR0ciAqbmxhLAogCXJldHVybiByZXQ7CiAKIHJlbGVhc2VfdHVu X21ldGE6Ci0JZHN0X3JlbGVhc2UoJm1ldGFkYXRhLT5kc3QpOworCWlmIChtZXRhZGF0YSkKKwkJ ZHN0X3JlbGVhc2UoJm1ldGFkYXRhLT5kc3QpOwogCiBlcnJfb3V0OgogCWlmIChleGlzdHMpCi0t IAoyLjIwLjEKCg== ----Next_Part(Thu_Mar__7_14_47_03_2019_588)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="net_50.mbox" RnJvbSA5YTZhYjE4MGIzMDI3ODcwYjQwZWY4OWM3N2M0Y2M4MjRmYTdjNmRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBJZG8gU2NoaW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+CkRh dGU6IFN1biwgMyBNYXIgMjAxOSAwNzozNDo1NyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDEvMTJd IGlwNm1yOiBEbyBub3QgY2FsbCBfX0lQNl9JTkNfU1RBVFMoKSBmcm9tIHByZWVtcHRpYmxlCiBj b250ZXh0CgpbIFVwc3RyZWFtIGNvbW1pdCA4N2MxMWYxZGRiYmFkMzhhZDhiYWQ0N2FmMTMzYTgy MDg5ODVmYmRmIF0KClNpbWlsYXIgdG8gY29tbWl0IDQ0ZjQ5ZGQ4YjVhNiAoImlwbXI6IGZpeCBw b3NzaWJsZSByYWNlIHJlc3VsdGluZyBmcm9tCmltcHJvcGVyIHVzYWdlIG9mIElQX0lOQ19TVEFU U19CSCgpIGluIHByZWVtcHRpYmxlIGNvbnRleHQuIiksIHdlIGNhbm5vdAphc3N1bWUgcHJlZW1w dGlvbiBpcyBkaXNhYmxlZCB3aGVuIGluY3JlbWVudGluZyB0aGUgY291bnRlciBhbmQKYWNjZXNz aW5nIGEgcGVyLUNQVSB2YXJpYWJsZS4KClByZWVtcHRpb24gY2FuIGJlIGVuYWJsZWQgd2hlbiB3 ZSBhZGQgYSByb3V0ZSBpbiBwcm9jZXNzIGNvbnRleHQgdGhhdApjb3JyZXNwb25kcyB0byBwYWNr ZXRzIHN0b3JlZCBpbiB0aGUgdW5yZXNvbHZlZCBxdWV1ZSwgd2hpY2ggYXJlIHRoZW4KZm9yd2Fy ZGVkIHVzaW5nIHRoaXMgcm91dGUgWzFdLgoKRml4IHRoaXMgYnkgdXNpbmcgSVA2X0lOQ19TVEFU UygpIHdoaWNoIHRha2VzIGNhcmUgb2YgZGlzYWJsaW5nCnByZWVtcHRpb24gb24gYXJjaGl0ZWN0 dXJlcyB3aGVyZSBpdCBpcyBuZWVkZWQuCgpbMV0KWyAgMTU3LjQ1MTQ0N10gQlVHOiB1c2luZyBf X3RoaXNfY3B1X2FkZCgpIGluIHByZWVtcHRpYmxlIFswMDAwMDAwMF0gY29kZTogc21jcm91dGVk LzIzMTQKWyAgMTU3LjQ2MDQwOV0gY2FsbGVyIGlzIGlwNm1yX2ZvcndhcmQyKzB4NzNlLzB4MTBl MApbICAxNTcuNDYwNDM0XSBDUFU6IDMgUElEOiAyMzE0IENvbW06IHNtY3JvdXRlZCBOb3QgdGFp bnRlZCA1LjAuMC1yYzctY3VzdG9tLTAzNjM1LWcyMmYyNzEyMTEzZjEgIzEzMzYKWyAgMTU3LjQ2 MDQ0OV0gSGFyZHdhcmUgbmFtZTogTWVsbGFub3ggVGVjaG5vbG9naWVzIEx0ZC4gTVNOMjEwMC1D QjJGTy9TQTAwMTAxNywgQklPUyA1LjYuNSAwNi8wNy8yMDE2ClsgIDE1Ny40NjA0NjFdIENhbGwg VHJhY2U6ClsgIDE1Ny40NjA0ODZdICBkdW1wX3N0YWNrKzB4ZjkvMHgxYmUKWyAgMTU3LjQ2MDU1 M10gIGNoZWNrX3ByZWVtcHRpb25fZGlzYWJsZWQrMHgxZDYvMHgyMDAKWyAgMTU3LjQ2MDU3Nl0g IGlwNm1yX2ZvcndhcmQyKzB4NzNlLzB4MTBlMApbICAxNTcuNDYwNzA1XSAgaXA2X21yX2Zvcndh cmQrMHg5YTAvMHgxNTEwClsgIDE1Ny40NjA3NzFdICBpcDZtcl9tZmNfYWRkKzB4MTZiMy8weDFl MDAKWyAgMTU3LjQ2MTE1NV0gIGlwNl9tcm91dGVfc2V0c29ja29wdCsweDNjYi8weDEzYzAKWyAg MTU3LjQ2MTM4NF0gIGRvX2lwdjZfc2V0c29ja29wdC5pc3JhLjgrMHgzNDgvMHg0MDYwClsgIDE1 Ny40NjIwMTNdICBpcHY2X3NldHNvY2tvcHQrMHg5MC8weDExMApbICAxNTcuNDYyMDM2XSAgcmF3 djZfc2V0c29ja29wdCsweDRhLzB4MTIwClsgIDE1Ny40NjIwNThdICBfX3N5c19zZXRzb2Nrb3B0 KzB4MTZiLzB4MzQwClsgIDE1Ny40NjIxOThdICBfX3g2NF9zeXNfc2V0c29ja29wdCsweGJmLzB4 MTYwClsgIDE1Ny40NjIyMjBdICBkb19zeXNjYWxsXzY0KzB4MTRkLzB4NjEwClsgIDE1Ny40NjIz NDldICBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8weGJlCgpGaXhlczogMDkx MmVhMzhkZTYxICgiW0lQVjZdIE1ST1VURTogQWRkIHN0YXRzIGluIG11bHRpY2FzdCByb3V0aW5n IG1vZHVsZSBtZXRob2QgaXA2X21yX2ZvcndhcmQoKS4iKQpTaWduZWQtb2ZmLWJ5OiBJZG8gU2No aW1tZWwgPGlkb3NjaEBtZWxsYW5veC5jb20+ClJlcG9ydGVkLWJ5OiBBbWl0IENvaGVuIDxhbWl0 Y0BtZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2 ZW1sb2Z0Lm5ldD4KLS0tCiBuZXQvaXB2Ni9pcDZtci5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNo YW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9uZXQv aXB2Ni9pcDZtci5jIGIvbmV0L2lwdjYvaXA2bXIuYwppbmRleCBjYzAxYWEzZjJiNWUuLmFmOTFh MWE0MDJmMSAxMDA2NDQKLS0tIGEvbmV0L2lwdjYvaXA2bXIuYworKysgYi9uZXQvaXB2Ni9pcDZt ci5jCkBAIC0xOTY0LDEwICsxOTY0LDEwIEBAIGludCBpcDZtcl9jb21wYXRfaW9jdGwoc3RydWN0 IHNvY2sgKnNrLCB1bnNpZ25lZCBpbnQgY21kLCB2b2lkIF9fdXNlciAqYXJnKQogCiBzdGF0aWMg aW5saW5lIGludCBpcDZtcl9mb3J3YXJkMl9maW5pc2goc3RydWN0IG5ldCAqbmV0LCBzdHJ1Y3Qg c29jayAqc2ssIHN0cnVjdCBza19idWZmICpza2IpCiB7Ci0JX19JUDZfSU5DX1NUQVRTKG5ldCwg aXA2X2RzdF9pZGV2KHNrYl9kc3Qoc2tiKSksCi0JCQlJUFNUQVRTX01JQl9PVVRGT1JXREFUQUdS QU1TKTsKLQlfX0lQNl9BRERfU1RBVFMobmV0LCBpcDZfZHN0X2lkZXYoc2tiX2RzdChza2IpKSwK LQkJCUlQU1RBVFNfTUlCX09VVE9DVEVUUywgc2tiLT5sZW4pOworCUlQNl9JTkNfU1RBVFMobmV0 LCBpcDZfZHN0X2lkZXYoc2tiX2RzdChza2IpKSwKKwkJICAgICAgSVBTVEFUU19NSUJfT1VURk9S V0RBVEFHUkFNUyk7CisJSVA2X0FERF9TVEFUUyhuZXQsIGlwNl9kc3RfaWRldihza2JfZHN0KHNr YikpLAorCQkgICAgICBJUFNUQVRTX01JQl9PVVRPQ1RFVFMsIHNrYi0+bGVuKTsKIAlyZXR1cm4g ZHN0X291dHB1dChuZXQsIHNrLCBza2IpOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDU2ZGQ5Yzhl ZjZkNzk0YjIxM2QyNzdjMWFhZTBjMDA4N2VmMGFkYWQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CkZyb206IEhlaW5lciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+CkRhdGU6IE1vbiwg NCBNYXIgMjAxOSAxOTozOTowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMDIvMTJdIG5ldDogZHNh OiBtdjg4ZTZ4eHg6IGFkZCBjYWxsIHRvCiBtdjg4ZTZ4eHhfcG9ydHNfY21vZGVfaW5pdCB0byBw cm9iZSBmb3IgbmV3IERTQSBmcmFtZXdvcmsKClsgVXBzdHJlYW0gY29tbWl0IDNhY2NhMWRkMTcw NjAzMzJjZmFiMTU2OTM3MzNjZGFmOWZiYTFjOTAgXQoKSW4gdGhlIG9yaWdpbmFsIHBhdGNoIEkg bWlzc2VkIHRvIGFkZCBtdjg4ZTZ4eHhfcG9ydHNfY21vZGVfaW5pdCgpCnRvIHRoZSBzZWNvbmQg cHJvYmUgZnVuY3Rpb24sIHRoZSBvbmUgZm9yIHRoZSBuZXcgRFNBIGZyYW1ld29yay4KCkZpeGVz OiBlZDhmZTIwMjA1YWMgKCJuZXQ6IGRzYTogbXY4OGU2eHh4OiBwcmV2ZW50IGludGVycnVwdCBz dG9ybSBjYXVzZWQgYnkgbXY4OGU2MzkweF9wb3J0X3NldF9jbW9kZSIpClJlcG9ydGVkLWJ5OiBT aGFva3VuIFpoYW5nIDx6aGFuZ3NoYW9rdW5AaGlzaWxpY29uLmNvbT4KU3VnZ2VzdGVkLWJ5OiBB bmRyZXcgTHVubiA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IEhlaW5lciBLYWxsd2Vp dCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVubiA8YW5kcmV3 QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0 Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYyB8IDEgKwogMSBmaWxl IGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212 ODhlNnh4eC9jaGlwLmMgYi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCA3 ZTNjMDBiZDk1MzIuLmUwMWQ3ZWE2MmE3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212 ODhlNnh4eC9jaGlwLmMKKysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAg LTQ4NDcsNiArNDg0Nyw3IEBAIHN0YXRpYyBpbnQgbXY4OGU2eHh4X3Byb2JlKHN0cnVjdCBtZGlv X2RldmljZSAqbWRpb2RldikKIAlpZiAoZXJyKQogCQlnb3RvIG91dDsKIAorCW12ODhlNnh4eF9w b3J0c19jbW9kZV9pbml0KGNoaXApOwogCW12ODhlNnh4eF9waHlfaW5pdChjaGlwKTsKIAogCWlm IChjaGlwLT5pbmZvLT5vcHMtPmdldF9lZXByb20pIHsKLS0gCjIuMjAuMQoKCkZyb20gZDgzMWNj ZTA4ZWExMGU2ODkwNDEzZmFiOTdhN2Y3OWQ1YWY2Y2U4MiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdlaXQxQGdtYWlsLmNvbT4KRGF0ZTogRnJp LCAxIE1hciAyMDE5IDE5OjUzOjU3ICswMTAwClN1YmplY3Q6IFtQQVRDSCAwMy8xMl0gbmV0OiBk c2E6IG12ODhlNnh4eDogaGFuZGxlIHVua25vd24gZHVwbGV4IG1vZGVzCiBncmFjZWZ1bGx5IGlu IG12ODhlNnh4eF9wb3J0X3NldF9kdXBsZXgKClsgVXBzdHJlYW0gY29tbWl0IGM2MTk1YThiZGZj NjJhN2NlY2Y3ZGY2ODVlNjQ4NDdhNGI3MDAyNzUgXQoKV2hlbiB0ZXN0aW5nIGFub3RoZXIgaXNz dWUgSSBmYWNlZCB0aGUgcHJvYmxlbSB0aGF0Cm12ODhlNnh4eF9wb3J0X3NldHVwX21hYygpIGZh aWxlZCBkdWUgdG8gRFVQTEVYX1VOS05PV04gYmVpbmcgcGFzc2VkCmFzIGFyZ3VtZW50IHRvIG12 ODhlNnh4eF9wb3J0X3NldF9kdXBsZXgoKS4gV2Ugc2hvdWxkIGhhbmRsZSB0aGlzIGNhc2UKZ3Jh Y2VmdWxseSBhbmQgcmV0dXJuIC1FT1BOT1RTVVBQLCBsaWtlIGUuZy4gbXY4OGU2eHh4X3BvcnRf c2V0X3NwZWVkKCkKaXMgZG9pbmcgaXQuCgpGaXhlczogN2YxYWUwN2I1MWU4ICgibmV0OiBkc2E6 IG12ODhlNnh4eDogYWRkIHBvcnQgZHVwbGV4IHNldHRlciIpClNpZ25lZC1vZmYtYnk6IEhlaW5l ciBLYWxsd2VpdCA8aGthbGx3ZWl0MUBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcgTHVu biA8YW5kcmV3QGx1bm4uY2g+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1A ZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L3BvcnQuYyB8IDIg Ky0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jIGIvZHJpdmVycy9uZXQvZHNh L212ODhlNnh4eC9wb3J0LmMKaW5kZXggNzlhYjUxZTY5YWVlLi4xODRjMmIxYjMxMTUgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvbmV0L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCisrKyBiL2RyaXZlcnMvbmV0 L2RzYS9tdjg4ZTZ4eHgvcG9ydC5jCkBAIC0xOTAsNyArMTkwLDcgQEAgaW50IG12ODhlNnh4eF9w b3J0X3NldF9kdXBsZXgoc3RydWN0IG12ODhlNnh4eF9jaGlwICpjaGlwLCBpbnQgcG9ydCwgaW50 IGR1cCkKIAkJLyogbm9ybWFsIGR1cGxleCBkZXRlY3Rpb24gKi8KIAkJYnJlYWs7CiAJZGVmYXVs dDoKLQkJcmV0dXJuIC1FSU5WQUw7CisJCXJldHVybiAtRU9QTk9UU1VQUDsKIAl9CiAKIAllcnIg PSBtdjg4ZTZ4eHhfcG9ydF93cml0ZShjaGlwLCBwb3J0LCBNVjg4RTZYWFhfUE9SVF9NQUNfQ1RM LCByZWcpOwotLSAKMi4yMC4xCgoKRnJvbSBlYmQzMjMwODRmZDZjNjhjMzRiOTM5OTYzYmIzMmEy YTU0MzNkNmMyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBIZWluZXIgS2FsbHdlaXQg PGhrYWxsd2VpdDFAZ21haWwuY29tPgpEYXRlOiBTYXQsIDIgTWFyIDIwMTkgMTA6MDY6MDUgKzAx MDAKU3ViamVjdDogW1BBVENIIDA0LzEyXSBuZXQ6IGRzYTogbXY4ZTZ4eHg6IGZpeCBudW1iZXIg b2YgaW50ZXJuYWwgUEhZcyBmb3IKIDg4RTZ4OTAgZmFtaWx5CgpbIFVwc3RyZWFtIGNvbW1pdCA5 NTE1MGYyOWFlNDgwMjc2ZTc2MzY4Y2RmOGE5NTI0YjVhOTZjMGNhIF0KClBvcnRzIDkgYW5kIDEw IGRvbid0IGhhdmUgaW50ZXJuYWwgUEhZJ3MgYnV0IGFyZSAoZGVwZW5kZW50IG9uIHRoZQp2ZXJz aW9uKSBTRVJERVMvU0dNSUkvWEFVSS9SWEFVSSBwb3J0cy4KCnYyOgotIGZpeCBpdCBmb3IgYWxs IDg4RTZ4OTAgZmFtaWx5IG1lbWJlcnMKCkZpeGVzOiBiYzM5MzE1NTdkMWQgKCJuZXQ6IGRzYTog bXY4OGU2eHh4OiBBZGQgbnVtYmVyIG9mIGludGVybmFsIFBIWXMiKQpTaWduZWQtb2ZmLWJ5OiBI ZWluZXIgS2FsbHdlaXQgPGhrYWxsd2VpdDFAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmV3 IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpTaWduZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRh dmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMg fCAxMiArKysrKystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMg Yi9kcml2ZXJzL25ldC9kc2EvbXY4OGU2eHh4L2NoaXAuYwppbmRleCBlMDFkN2VhNjJhNzcuLjc2 Y2MxNjNiM2NmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMK KysrIGIvZHJpdmVycy9uZXQvZHNhL212ODhlNnh4eC9jaGlwLmMKQEAgLTQyMjIsNyArNDIyMiw3 IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10g PSB7CiAJCS5uYW1lID0gIk1hcnZlbGwgODhFNjE5MCIsCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5 NiwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCArIFo4MCAqLwotCQkubnVtX2ludGVybmFsX3Bo eXMgPSAxMSwKKwkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJ CS5tYXhfdmlkID0gODE5MSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNDI0NSw3ICs0 MjQ1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFi bGVbXSA9IHsKIAkJLm5hbWUgPSAiTWFydmVsbCA4OEU2MTkwWCIsCiAJCS5udW1fZGF0YWJhc2Vz ID0gNDA5NiwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCArIFo4MCAqLwotCQkubnVtX2ludGVy bmFsX3BoeXMgPSAxMSwKKwkJLm51bV9pbnRlcm5hbF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0g MTYsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLnBvcnRfYmFzZV9hZGRyID0gMHgwLApAQCAtNDI2 OCw3ICs0MjY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdjg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4 eHhfdGFibGVbXSA9IHsKIAkJLm5hbWUgPSAiTWFydmVsbCA4OEU2MTkxIiwKIAkJLm51bV9kYXRh YmFzZXMgPSA0MDk2LAogCQkubnVtX3BvcnRzID0gMTEsCS8qIDEwICsgWjgwICovCi0JCS5udW1f aW50ZXJuYWxfcGh5cyA9IDExLAorCQkubnVtX2ludGVybmFsX3BoeXMgPSA5LAogCQkubWF4X3Zp ZCA9IDgxOTEsCiAJCS5wb3J0X2Jhc2VfYWRkciA9IDB4MCwKIAkJLnBoeV9iYXNlX2FkZHIgPSAw eDAsCkBAIC00MzE1LDcgKzQzMTUsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG12ODhlNnh4eF9p bmZvIG12ODhlNnh4eF90YWJsZVtdID0gewogCQkubmFtZSA9ICJNYXJ2ZWxsIDg4RTYyOTAiLAog CQkubnVtX2RhdGFiYXNlcyA9IDQwOTYsCiAJCS5udW1fcG9ydHMgPSAxMSwJLyogMTAgKyBaODAg Ki8KLQkJLm51bV9pbnRlcm5hbF9waHlzID0gMTEsCisJCS5udW1faW50ZXJuYWxfcGh5cyA9IDks CiAJCS5udW1fZ3BpbyA9IDE2LAogCQkubWF4X3ZpZCA9IDgxOTEsCiAJCS5wb3J0X2Jhc2VfYWRk ciA9IDB4MCwKQEAgLTQ0NzcsNyArNDQ3Nyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXY4OGU2 eHh4X2luZm8gbXY4OGU2eHh4X3RhYmxlW10gPSB7CiAJCS5uYW1lID0gIk1hcnZlbGwgODhFNjM5 MCIsCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKIAkJLm51bV9wb3J0cyA9IDExLAkvKiAxMCAr IFo4MCAqLwotCQkubnVtX2ludGVybmFsX3BoeXMgPSAxMSwKKwkJLm51bV9pbnRlcm5hbF9waHlz ID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLnBvcnRfYmFz ZV9hZGRyID0gMHgwLApAQCAtNDUwMCw3ICs0NTAwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBt djg4ZTZ4eHhfaW5mbyBtdjg4ZTZ4eHhfdGFibGVbXSA9IHsKIAkJLm5hbWUgPSAiTWFydmVsbCA4 OEU2MzkwWCIsCiAJCS5udW1fZGF0YWJhc2VzID0gNDA5NiwKIAkJLm51bV9wb3J0cyA9IDExLAkv KiAxMCArIFo4MCAqLwotCQkubnVtX2ludGVybmFsX3BoeXMgPSAxMSwKKwkJLm51bV9pbnRlcm5h bF9waHlzID0gOSwKIAkJLm51bV9ncGlvID0gMTYsCiAJCS5tYXhfdmlkID0gODE5MSwKIAkJLnBv cnRfYmFzZV9hZGRyID0gMHgwLAotLSAKMi4yMC4xCgoKRnJvbSBjNGIxNjk0YjFlN2NlN2Y2Y2Ni YjNlOGRkY2VlNTQ1MzhkMDMzNTgyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLYXZ5 YSBTcmVlIEtvdGFnaXJpIDxrYXZ5YXNyZWUua290YWdpcmlAbWljcm9jaGlwLmNvbT4KRGF0ZTog VGh1LCAyOCBGZWIgMjAxOSAwNzozMjoyMiArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTJdIG5l dDogbXNjYzogRW5hYmxlIGFsbCBwb3J0cyBpbiBRU0dNSUkKClsgVXBzdHJlYW0gY29tbWl0IDA4 NGU1YmIxNmJkN2RjMmI1NTFiYmQ5ZmIzNThiZjczZTAzZWU4ZDggXQoKV2hlbiBPY2Vsb3QgcGh5 LW1vZGUgaXMgUVNHTUlJLCBhbGwgNCBwb3J0cyBpbnZvbHZlZCBpbgpRU0dNSUkgc2hhbGwgYmUg a2VwdCBvdXQgb2YgcmVzZXQgYW5kClR4IGxhbmVzIHNoYWxsIGJlIGVuYWJsZWQgdG8gcGFzcyB0 aGUgZGF0YS4KCkZpeGVzOiBhNTU2Yzc2YWRjMDUgKCJuZXQ6IG1zY2M6IEFkZCBpbml0aWFsIE9j ZWxvdCBzd2l0Y2ggc3VwcG9ydCIpClNpZ25lZC1vZmYtYnk6IEthdnlhIFNyZWUgS290YWdpcmkg PGthdnlhc3JlZS5rb3RhZ2lyaUBtaWNyb2NoaXAuY29tPgpTaWduZWQtb2ZmLWJ5OiBTdGVlbiBI ZWdlbHVuZCA8U3RlZW4uSGVnZWx1bmRAbWljcm9jaGlwLmNvbT4KQ28tZGV2ZWxvcGVkLWJ5OiBT dGVlbiBIZWdlbHVuZCA8U3RlZW4uSGVnZWx1bmRAbWljcm9jaGlwLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMgfCAxNCArKysrKysrKysrKy0tLQogMSBmaWxl IGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfYm9hcmQuYyBiL2RyaXZlcnMvbmV0L2V0 aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMKaW5kZXggY2EzZWEyZmJmY2QwLi44MGQ4Nzc5OGM2 MmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21zY2Mvb2NlbG90X2JvYXJkLmMK KysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvbXNjYy9vY2Vsb3RfYm9hcmQuYwpAQCAtMjY3LDYg KzI2Nyw3IEBAIHN0YXRpYyBpbnQgbXNjY19vY2Vsb3RfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKIAkJc3RydWN0IHBoeSAqc2VyZGVzOwogCQl2b2lkIF9faW9tZW0gKnJlZ3M7 CiAJCWNoYXIgcmVzX25hbWVbOF07CisJCWludCBwaHlfbW9kZTsKIAkJdTMyIHBvcnQ7CiAKIAkJ aWYgKG9mX3Byb3BlcnR5X3JlYWRfdTMyKHBvcnRucCwgInJlZyIsICZwb3J0KSkKQEAgLTI5Miwx MSArMjkzLDExIEBAIHN0YXRpYyBpbnQgbXNjY19vY2Vsb3RfcHJvYmUoc3RydWN0IHBsYXRmb3Jt X2RldmljZSAqcGRldikKIAkJaWYgKGVycikKIAkJCXJldHVybiBlcnI7CiAKLQkJZXJyID0gb2Zf Z2V0X3BoeV9tb2RlKHBvcnRucCk7Ci0JCWlmIChlcnIgPCAwKQorCQlwaHlfbW9kZSA9IG9mX2dl dF9waHlfbW9kZShwb3J0bnApOworCQlpZiAocGh5X21vZGUgPCAwKQogCQkJb2NlbG90LT5wb3J0 c1twb3J0XS0+cGh5X21vZGUgPSBQSFlfSU5URVJGQUNFX01PREVfTkE7CiAJCWVsc2UKLQkJCW9j ZWxvdC0+cG9ydHNbcG9ydF0tPnBoeV9tb2RlID0gZXJyOworCQkJb2NlbG90LT5wb3J0c1twb3J0 XS0+cGh5X21vZGUgPSBwaHlfbW9kZTsKIAogCQlzd2l0Y2ggKG9jZWxvdC0+cG9ydHNbcG9ydF0t PnBoeV9tb2RlKSB7CiAJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX05BOgpAQCAtMzA0LDYgKzMw NSwxMyBAQCBzdGF0aWMgaW50IG1zY2Nfb2NlbG90X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZp Y2UgKnBkZXYpCiAJCWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1NHTUlJOgogCQkJYnJlYWs7CiAJ CWNhc2UgUEhZX0lOVEVSRkFDRV9NT0RFX1FTR01JSToKKwkJCS8qIEVuc3VyZSBjbG9jayBzaWdu YWxzIGFuZCBzcGVlZCBpcyBzZXQgb24gYWxsCisJCQkgKiBRU0dNSUkgbGlua3MKKwkJCSAqLwor CQkJb2NlbG90X3BvcnRfd3JpdGVsKG9jZWxvdC0+cG9ydHNbcG9ydF0sCisJCQkJCSAgIERFVl9D TE9DS19DRkdfTElOS19TUEVFRAorCQkJCQkgICAoT0NFTE9UX1NQRUVEXzEwMDApLAorCQkJCQkg ICBERVZfQ0xPQ0tfQ0ZHKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZGV2X2VycihvY2Vs b3QtPmRldiwKLS0gCjIuMjAuMQoKCkZyb20gODIzNTUzOTIyYjBjMWM2YmZiMjBiZDFlODdmODNl M2YwZDU5NDBiZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpYyBEdW1hemV0IDxl ZHVtYXpldEBnb29nbGUuY29tPgpEYXRlOiBUaHUsIDI4IEZlYiAyMDE5IDEyOjU1OjQzIC0wODAw ClN1YmplY3Q6IFtQQVRDSCAwNi8xMl0gbmV0OiBzY2hlZDogcHV0IGJhY2sgcS5xbGVuIGludG8g YSBzaW5nbGUgbG9jYXRpb24KClsgVXBzdHJlYW0gY29tbWl0IDQ2YjFjMThmOWRlYjMyNmE3ZTE4 MzQ4ZTY2OGU0YzdhYjdjNzQ1OGIgXQoKSW4gdGhlIHNlcmllcyBmYzhiODFhNTk4MWYgKCJNZXJn ZSBicmFuY2ggJ2xvY2tsZXNzLXFkaXNjLXNlcmllcyciKQpKb2huIG1hZGUgdGhlIGFzc3VtcHRp b24gdGhhdCB0aGUgZGF0YSBwYXRoIGhhZCBubyBuZWVkIHRvIHJlYWQKdGhlIHFkaXNjIHFsZW4g KG51bWJlciBvZiBwYWNrZXRzIGluIHRoZSBxZGlzYykuCgpJdCBpcyB0cnVlIHdoZW4gcGZpZm9f ZmFzdCBpcyB1c2VkIGFzIHRoZSByb290IHFkaXNjLCBvciBhcyBkaXJlY3QgTVEvTVFQUklPCmNo aWxkcmVuLgoKQnV0IHBmaWZvX2Zhc3QgY2FuIGJlIHVzZWQgYXMgbGVhZiBpbiBjbGFzcyBmdWxs IHFkaXNjcywgYW5kIGV4aXN0aW5nCmxvZ2ljIG5lZWRzIHRvIGFjY2VzcyB0aGUgY2hpbGQgcWxl biBpbiBhbiBlZmZpY2llbnQgd2F5LgoKSFRCIGJyZWFrcyBiYWRseSwgc2luY2UgaXQgdXNlcyBj bC0+bGVhZi5xLT5xLnFsZW4gaW4gOgogIGh0Yl9hY3RpdmF0ZSgpIC0+IFdBUk5fT04oKQogIGh0 Yl9kZXF1ZXVlX3RyZWUoKSB0byBkZWNpZGUgaWYgYSBjbGFzcyBjYW4gYmUgaHRiX2RlYWN0aXZh dGVkCiAgd2hlbiBpdCBoYXMgbm8gbW9yZSBwYWNrZXRzLgoKSEZTQywgRFJSLCBDQlEsIFFGUSBo YXZlIHNpbWlsYXIgaXNzdWVzLCBhbmQgc29tZSBjYWxscyB0bwpxZGlzY190cmVlX3JlZHVjZV9i YWNrbG9nKCkgYWxzbyByZWFkIHEucWxlbiBkaXJlY3RseS4KClVzaW5nIHFkaXNjX3FsZW5fc3Vt KCkgKHdoaWNoIGl0ZXJhdGVzIG92ZXIgYWxsIHBvc3NpYmxlIGNwdXMpCmluIHRoZSBkYXRhIHBh dGggaXMgYSBub24gc3RhcnRlci4KCkl0IHNlZW1zIHdlIGhhdmUgdG8gcHV0IGJhY2sgcWxlbiBp biBhIGNlbnRyYWwgbG9jYXRpb24sCmF0IGxlYXN0IGZvciBzdGFibGUga2VybmVscy4KCkZvciBh bGwgcWRpc2MgYnV0IHBmaWZvX2Zhc3QsIHFsZW4gaXMgZ3VhcmRlZCBieSB0aGUgcWRpc2MgbG9j aywKc28gdGhlIGV4aXN0aW5nIHEucWxlbnsrK3wtLX0gYXJlIGNvcnJlY3QuCgpGb3IgJ2xvY2ts ZXNzJyBxZGlzYyAocGZpZm9fZmFzdCBzbyBmYXIpLCB3ZSBuZWVkIHRvIHVzZSBhdG9taWNfe2lu Y3xkZWN9KCkKYmVjYXVzZSB0aGUgc3BpbmxvY2sgbWlnaHQgYmUgbm90IGhlbGQgKGZvciBleGFt cGxlIGZyb20KcGZpZm9fZmFzdF9lbnF1ZXVlKCkgYW5kIHBmaWZvX2Zhc3RfZGVxdWV1ZSgpKQoK VGhpcyBwYXRjaCBhZGRzIGF0b21pY19xbGVuIChpbiB0aGUgc2FtZSBsb2NhdGlvbiB0aGFuIHFs ZW4pCmFuZCByZW5hbWVzIHRoZSBmb2xsb3dpbmcgaGVscGVycywgc2luY2Ugd2Ugd2FudCB0byBl eHByZXNzCnRoZXkgY2FuIGJlIHVzZWQgd2l0aG91dCBxZGlzYyBsb2NrLCBhbmQgdGhhdCBxbGVu IGlzIG5vIGxvbmdlciBwZXJjcHUuCgotIHFkaXNjX3FzdGF0c19jcHVfcWxlbl9kZWMgLT4gcWRp c2NfcXN0YXRzX2F0b21pY19xbGVuX2RlYygpCi0gcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2luYyAt PiBxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5faW5jKCkKCkxhdGVyIChuZXQtbmV4dCkgd2UgbWln aHQgcmV2ZXJ0IHRoaXMgcGF0Y2ggYnkgdHJhY2tpbmcgYWxsIHRoZXNlCnFsZW4gdXNlcyBhbmQg cmVwbGFjZSB0aGVtIGJ5IGEgbW9yZSBlZmZpY2llbnQgbWV0aG9kIChub3QgaGF2aW5nCnRvIGFj Y2VzcyBhIHByZWNpc2UgcWxlbiwgYnV0IGFuIGVtcHR5L25vbl9lbXB0eSBzdGF0dXMgdGhhdCBt aWdodApiZSBsZXNzIGV4cGVuc2l2ZSB0byBtYWludGFpbi90cmFjaykuCgpBbm90aGVyIHBvc3Np YmlsaXR5IGlzIHRvIGhhdmUgYSBsZWdhY3kgcGZpZm9fZmFzdCB2ZXJzaW9uIHRoYXQgd291bGQK YmUgdXNlZCB3aGVuIHVzZWQgYSBhIGNoaWxkIHFkaXNjLCBzaW5jZSB0aGUgcGFyZW50IHFkaXNj IG5lZWRzCmEgc3BpbmxvY2sgYW55d2F5LiBCdXQgdGhlbiwgZnV0dXJlIGxvY2tsZXNzIHFkaXNj cyB3b3VsZCBhbHNvCmhhdmUgdGhlIHNhbWUgcHJvYmxlbS4KCkZpeGVzOiA3ZTY2MDE2ZjJjNjUg KCJuZXQ6IHNjaGVkOiBoZWxwZXJzIHRvIHN1bSBxbGVuIGFuZCBxbGVuIGZvciBwZXIgY3B1IGxv Z2ljIikKU2lnbmVkLW9mZi1ieTogRXJpYyBEdW1hemV0IDxlZHVtYXpldEBnb29nbGUuY29tPgpD YzogSm9obiBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4KQ2M6IEphbWFsIEhh ZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBDb25nIFdhbmcgPHhpeW91Lndhbmdjb25n QGdtYWlsLmNvbT4KQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGkudXM+ClNpZ25lZC1vZmYt Ynk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1sb2Z0Lm5ldD4KLS0tCiBpbmNsdWRlL25l dC9zY2hfZ2VuZXJpYy5oIHwgMzEgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLQogbmV0 L2NvcmUvZ2VuX3N0YXRzLmMgICAgICB8ICAyIC0tCiBuZXQvc2NoZWQvc2NoX2dlbmVyaWMuYyAg IHwgMTMgKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAy NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL25ldC9zY2hfZ2VuZXJpYy5oIGIv aW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAppbmRleCA5NDgxZjJjMTQyZTIuLmU3ZWI0YWE2Y2Nj OSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9uZXQvc2NoX2dlbmVyaWMuaAorKysgYi9pbmNsdWRlL25l dC9zY2hfZ2VuZXJpYy5oCkBAIC01MSw3ICs1MSwxMCBAQCBzdHJ1Y3QgcWRpc2Nfc2l6ZV90YWJs ZSB7CiBzdHJ1Y3QgcWRpc2Nfc2tiX2hlYWQgewogCXN0cnVjdCBza19idWZmCSpoZWFkOwogCXN0 cnVjdCBza19idWZmCSp0YWlsOwotCV9fdTMyCQlxbGVuOworCXVuaW9uIHsKKwkJdTMyCQlxbGVu OworCQlhdG9taWNfdAlhdG9taWNfcWxlbjsKKwl9OwogCXNwaW5sb2NrX3QJbG9jazsKIH07CiAK QEAgLTQwOCwyNyArNDExLDE5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBxZGlzY19jYl9wcml2YXRl X3ZhbGlkYXRlKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IsIGludCBzeikKIAlCVUlMRF9CVUdf T04oc2l6ZW9mKHFjYi0+ZGF0YSkgPCBzeik7CiB9CiAKLXN0YXRpYyBpbmxpbmUgaW50IHFkaXNj X3FsZW5fY3B1KGNvbnN0IHN0cnVjdCBRZGlzYyAqcSkKLXsKLQlyZXR1cm4gdGhpc19jcHVfcHRy KHEtPmNwdV9xc3RhdHMpLT5xbGVuOwotfQotCiBzdGF0aWMgaW5saW5lIGludCBxZGlzY19xbGVu KGNvbnN0IHN0cnVjdCBRZGlzYyAqcSkKIHsKIAlyZXR1cm4gcS0+cS5xbGVuOwogfQogCi1zdGF0 aWMgaW5saW5lIGludCBxZGlzY19xbGVuX3N1bShjb25zdCBzdHJ1Y3QgUWRpc2MgKnEpCitzdGF0 aWMgaW5saW5lIHUzMiBxZGlzY19xbGVuX3N1bShjb25zdCBzdHJ1Y3QgUWRpc2MgKnEpCiB7Ci0J X191MzIgcWxlbiA9IHEtPnFzdGF0cy5xbGVuOwotCWludCBpOworCXUzMiBxbGVuID0gcS0+cXN0 YXRzLnFsZW47CiAKLQlpZiAocS0+ZmxhZ3MgJiBUQ1FfRl9OT0xPQ0spIHsKLQkJZm9yX2VhY2hf cG9zc2libGVfY3B1KGkpCi0JCQlxbGVuICs9IHBlcl9jcHVfcHRyKHEtPmNwdV9xc3RhdHMsIGkp LT5xbGVuOwotCX0gZWxzZSB7CisJaWYgKHEtPmZsYWdzICYgVENRX0ZfTk9MT0NLKQorCQlxbGVu ICs9IGF0b21pY19yZWFkKCZxLT5xLmF0b21pY19xbGVuKTsKKwllbHNlCiAJCXFsZW4gKz0gcS0+ cS5xbGVuOwotCX0KIAogCXJldHVybiBxbGVuOwogfQpAQCAtODI1LDE0ICs4MjAsMTQgQEAgc3Rh dGljIGlubGluZSB2b2lkIHFkaXNjX3FzdGF0c19jcHVfYmFja2xvZ19pbmMoc3RydWN0IFFkaXNj ICpzY2gsCiAJdGhpc19jcHVfYWRkKHNjaC0+Y3B1X3FzdGF0cy0+YmFja2xvZywgcWRpc2NfcGt0 X2xlbihza2IpKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIHFkaXNjX3FzdGF0c19jcHVfcWxl bl9pbmMoc3RydWN0IFFkaXNjICpzY2gpCitzdGF0aWMgaW5saW5lIHZvaWQgcWRpc2NfcXN0YXRz X2F0b21pY19xbGVuX2luYyhzdHJ1Y3QgUWRpc2MgKnNjaCkKIHsKLQl0aGlzX2NwdV9pbmMoc2No LT5jcHVfcXN0YXRzLT5xbGVuKTsKKwlhdG9taWNfaW5jKCZzY2gtPnEuYXRvbWljX3FsZW4pOwog fQogCi1zdGF0aWMgaW5saW5lIHZvaWQgcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2RlYyhzdHJ1Y3Qg UWRpc2MgKnNjaCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5f ZGVjKHN0cnVjdCBRZGlzYyAqc2NoKQogewotCXRoaXNfY3B1X2RlYyhzY2gtPmNwdV9xc3RhdHMt PnFsZW4pOworCWF0b21pY19kZWMoJnNjaC0+cS5hdG9taWNfcWxlbik7CiB9CiAKIHN0YXRpYyBp bmxpbmUgdm9pZCBxZGlzY19xc3RhdHNfY3B1X3JlcXVldWVzX2luYyhzdHJ1Y3QgUWRpc2MgKnNj aCkKZGlmZiAtLWdpdCBhL25ldC9jb3JlL2dlbl9zdGF0cy5jIGIvbmV0L2NvcmUvZ2VuX3N0YXRz LmMKaW5kZXggOWJmMWI5YWQxNzgwLi5hYzY3OWY3NGJhNDcgMTAwNjQ0Ci0tLSBhL25ldC9jb3Jl L2dlbl9zdGF0cy5jCisrKyBiL25ldC9jb3JlL2dlbl9zdGF0cy5jCkBAIC0yOTEsNyArMjkxLDYg QEAgX19nbmV0X3N0YXRzX2NvcHlfcXVldWVfY3B1KHN0cnVjdCBnbmV0X3N0YXRzX3F1ZXVlICpx c3RhdHMsCiAJZm9yX2VhY2hfcG9zc2libGVfY3B1KGkpIHsKIAkJY29uc3Qgc3RydWN0IGduZXRf c3RhdHNfcXVldWUgKnFjcHUgPSBwZXJfY3B1X3B0cihxLCBpKTsKIAotCQlxc3RhdHMtPnFsZW4g PSAwOwogCQlxc3RhdHMtPmJhY2tsb2cgKz0gcWNwdS0+YmFja2xvZzsKIAkJcXN0YXRzLT5kcm9w cyArPSBxY3B1LT5kcm9wczsKIAkJcXN0YXRzLT5yZXF1ZXVlcyArPSBxY3B1LT5yZXF1ZXVlczsK QEAgLTMwNyw3ICszMDYsNiBAQCB2b2lkIF9fZ25ldF9zdGF0c19jb3B5X3F1ZXVlKHN0cnVjdCBn bmV0X3N0YXRzX3F1ZXVlICpxc3RhdHMsCiAJaWYgKGNwdSkgewogCQlfX2duZXRfc3RhdHNfY29w eV9xdWV1ZV9jcHUocXN0YXRzLCBjcHUpOwogCX0gZWxzZSB7Ci0JCXFzdGF0cy0+cWxlbiA9IHEt PnFsZW47CiAJCXFzdGF0cy0+YmFja2xvZyA9IHEtPmJhY2tsb2c7CiAJCXFzdGF0cy0+ZHJvcHMg PSBxLT5kcm9wczsKIAkJcXN0YXRzLT5yZXF1ZXVlcyA9IHEtPnJlcXVldWVzOwpkaWZmIC0tZ2l0 IGEvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMgYi9uZXQvc2NoZWQvc2NoX2dlbmVyaWMuYwppbmRl eCA5NjhhODVmZTRkNGEuLmRlMzFmMmYzYjk3MyAxMDA2NDQKLS0tIGEvbmV0L3NjaGVkL3NjaF9n ZW5lcmljLmMKKysrIGIvbmV0L3NjaGVkL3NjaF9nZW5lcmljLmMKQEAgLTY4LDcgKzY4LDcgQEAg c3RhdGljIGlubGluZSBzdHJ1Y3Qgc2tfYnVmZiAqX19za2JfZGVxdWV1ZV9iYWRfdHhxKHN0cnVj dCBRZGlzYyAqcSkKIAkJCXNrYiA9IF9fc2tiX2RlcXVldWUoJnEtPnNrYl9iYWRfdHhxKTsKIAkJ CWlmIChxZGlzY19pc19wZXJjcHVfc3RhdHMocSkpIHsKIAkJCQlxZGlzY19xc3RhdHNfY3B1X2Jh Y2tsb2dfZGVjKHEsIHNrYik7Ci0JCQkJcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2RlYyhxKTsKKwkJ CQlxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5fZGVjKHEpOwogCQkJfSBlbHNlIHsKIAkJCQlxZGlz Y19xc3RhdHNfYmFja2xvZ19kZWMocSwgc2tiKTsKIAkJCQlxLT5xLnFsZW4tLTsKQEAgLTEwOCw3 ICsxMDgsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcWRpc2NfZW5xdWV1ZV9za2JfYmFkX3R4cShz dHJ1Y3QgUWRpc2MgKnEsCiAKIAlpZiAocWRpc2NfaXNfcGVyY3B1X3N0YXRzKHEpKSB7CiAJCXFk aXNjX3FzdGF0c19jcHVfYmFja2xvZ19pbmMocSwgc2tiKTsKLQkJcWRpc2NfcXN0YXRzX2NwdV9x bGVuX2luYyhxKTsKKwkJcWRpc2NfcXN0YXRzX2F0b21pY19xbGVuX2luYyhxKTsKIAl9IGVsc2Ug ewogCQlxZGlzY19xc3RhdHNfYmFja2xvZ19pbmMocSwgc2tiKTsKIAkJcS0+cS5xbGVuKys7CkBA IC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIGlubGluZSBpbnQgZGV2X3JlcXVldWVfc2tiX2xvY2tl ZChzdHJ1Y3Qgc2tfYnVmZiAqc2tiLCBzdHJ1Y3QgUWRpc2MgKnEpCiAKIAkJcWRpc2NfcXN0YXRz X2NwdV9yZXF1ZXVlc19pbmMocSk7CiAJCXFkaXNjX3FzdGF0c19jcHVfYmFja2xvZ19pbmMocSwg c2tiKTsKLQkJcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2luYyhxKTsKKwkJcWRpc2NfcXN0YXRzX2F0 b21pY19xbGVuX2luYyhxKTsKIAogCQlza2IgPSBuZXh0OwogCX0KQEAgLTI1Miw3ICsyNTIsNyBA QCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmRlcXVldWVfc2tiKHN0cnVjdCBRZGlzYyAqcSwgYm9v bCAqdmFsaWRhdGUsCiAJCQlza2IgPSBfX3NrYl9kZXF1ZXVlKCZxLT5nc29fc2tiKTsKIAkJCWlm IChxZGlzY19pc19wZXJjcHVfc3RhdHMocSkpIHsKIAkJCQlxZGlzY19xc3RhdHNfY3B1X2JhY2ts b2dfZGVjKHEsIHNrYik7Ci0JCQkJcWRpc2NfcXN0YXRzX2NwdV9xbGVuX2RlYyhxKTsKKwkJCQlx ZGlzY19xc3RhdHNfYXRvbWljX3FsZW5fZGVjKHEpOwogCQkJfSBlbHNlIHsKIAkJCQlxZGlzY19x c3RhdHNfYmFja2xvZ19kZWMocSwgc2tiKTsKIAkJCQlxLT5xLnFsZW4tLTsKQEAgLTY0NSw3ICs2 NDUsNyBAQCBzdGF0aWMgaW50IHBmaWZvX2Zhc3RfZW5xdWV1ZShzdHJ1Y3Qgc2tfYnVmZiAqc2ti LCBzdHJ1Y3QgUWRpc2MgKnFkaXNjLAogCWlmICh1bmxpa2VseShlcnIpKQogCQlyZXR1cm4gcWRp c2NfZHJvcF9jcHUoc2tiLCBxZGlzYywgdG9fZnJlZSk7CiAKLQlxZGlzY19xc3RhdHNfY3B1X3Fs ZW5faW5jKHFkaXNjKTsKKwlxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5faW5jKHFkaXNjKTsKIAkv KiBOb3RlOiBza2IgY2FuIG5vdCBiZSB1c2VkIGFmdGVyIHNrYl9hcnJheV9wcm9kdWNlKCksCiAJ ICogc28gd2UgYmV0dGVyIG5vdCB1c2UgcWRpc2NfcXN0YXRzX2NwdV9iYWNrbG9nX2luYygpCiAJ ICovCkBAIC02NzAsNyArNjcwLDcgQEAgc3RhdGljIHN0cnVjdCBza19idWZmICpwZmlmb19mYXN0 X2RlcXVldWUoc3RydWN0IFFkaXNjICpxZGlzYykKIAlpZiAobGlrZWx5KHNrYikpIHsKIAkJcWRp c2NfcXN0YXRzX2NwdV9iYWNrbG9nX2RlYyhxZGlzYywgc2tiKTsKIAkJcWRpc2NfYnN0YXRzX2Nw dV91cGRhdGUocWRpc2MsIHNrYik7Ci0JCXFkaXNjX3FzdGF0c19jcHVfcWxlbl9kZWMocWRpc2Mp OworCQlxZGlzY19xc3RhdHNfYXRvbWljX3FsZW5fZGVjKHFkaXNjKTsKIAl9CiAKIAlyZXR1cm4g c2tiOwpAQCAtNzE0LDcgKzcxNCw2IEBAIHN0YXRpYyB2b2lkIHBmaWZvX2Zhc3RfcmVzZXQoc3Ry dWN0IFFkaXNjICpxZGlzYykKIAkJc3RydWN0IGduZXRfc3RhdHNfcXVldWUgKnEgPSBwZXJfY3B1 X3B0cihxZGlzYy0+Y3B1X3FzdGF0cywgaSk7CiAKIAkJcS0+YmFja2xvZyA9IDA7Ci0JCXEtPnFs ZW4gPSAwOwogCX0KIH0KIAotLSAKMi4yMC4xCgoKRnJvbSA0MjAzMmY3YTkwZTExMmU1ZjZkMTE5 NTVkOGJhN2RlNDU3NDg5MDhkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBZdWVIYWli aW5nIDx5dWVoYWliaW5nQGh1YXdlaS5jb20+CkRhdGU6IFNhdCwgMiBNYXIgMjAxOSAxMDozNDo1 NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggMDcvMTJdIG5ldC1zeXNmczogRml4IG1lbSBsZWFrIGlu IG5ldGRldl9yZWdpc3Rlcl9rb2JqZWN0CgpbIFVwc3RyZWFtIGNvbW1pdCA4OTVhNWU5NmRiZDYz ODZjOGU3OGU1Yjc4ZTA2N2RjYzY3YjdmMGFiIF0KCnN5emthbGxlciByZXBvcnQgdGhpczoKQlVH OiBtZW1vcnkgbGVhawp1bnJlZmVyZW5jZWQgb2JqZWN0IDB4ZmZmZjg4ODM3YTcxYTUwMCAoc2l6 ZSAyNTYpOgogIGNvbW0gInN5ei1leGVjdXRvci4yIiwgcGlkIDk3NzAsIGppZmZpZXMgNDI5Nzgy NTEyNSAoYWdlIDE3Ljg0M3MpCiAgaGV4IGR1bXAgKGZpcnN0IDMyIGJ5dGVzKToKICAgIDAwIDAw IDAwIDAwIGFkIDRlIGFkIGRlIGZmIGZmIGZmIGZmIDAwIDAwIDAwIDAwICAuLi4uLk4uLi4uLi4u Li4uCiAgICBmZiBmZiBmZiBmZiBmZiBmZiBmZiBmZiAyMCBjMCBlZiA4NiBmZiBmZiBmZiBmZiAg Li4uLi4uLi4gLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAwMDAwMDBkYjEyNjI0Yj5dIG5l dGRldl9yZWdpc3Rlcl9rb2JqZWN0KzB4MTI0LzB4MmUwIG5ldC9jb3JlL25ldC1zeXNmcy5jOjE3 NTEKICAgIFs8MDAwMDAwMDBkYzQ5YTk5ND5dIHJlZ2lzdGVyX25ldGRldmljZSsweGNjMS8weDEy NzAgbmV0L2NvcmUvZGV2LmM6ODUxNgogICAgWzwwMDAwMDAwMGU1ZjNmZWEwPl0gdHVuX3NldF9p ZmYgZHJpdmVycy9uZXQvdHVuLmM6MjY0OSBbaW5saW5lXQogICAgWzwwMDAwMDAwMGU1ZjNmZWEw Pl0gX190dW5fY2hyX2lvY3RsKzB4MjIxOC8weDNkMjAgZHJpdmVycy9uZXQvdHVuLmM6Mjg4Mwog ICAgWzwwMDAwMDAwMDFiOGFjMTI3Pl0gdmZzX2lvY3RsIGZzL2lvY3RsLmM6NDYgW2lubGluZV0K ICAgIFs8MDAwMDAwMDAxYjhhYzEyNz5dIGRvX3Zmc19pb2N0bCsweDFhNS8weDEwZTAgZnMvaW9j dGwuYzo2OTAKICAgIFs8MDAwMDAwMDA3OWIyNjlmOD5dIGtzeXNfaW9jdGwrMHg4OS8weGEwIGZz L2lvY3RsLmM6NzA1CiAgICBbPDAwMDAwMDAwZGU2NDliZWI+XSBfX2RvX3N5c19pb2N0bCBmcy9p b2N0bC5jOjcxMiBbaW5saW5lXQogICAgWzwwMDAwMDAwMGRlNjQ5YmViPl0gX19zZV9zeXNfaW9j dGwgZnMvaW9jdGwuYzo3MTAgW2lubGluZV0KICAgIFs8MDAwMDAwMDBkZTY0OWJlYj5dIF9feDY0 X3N5c19pb2N0bCsweDc0LzB4YjAgZnMvaW9jdGwuYzo3MTAKICAgIFs8MDAwMDAwMDA3ZWJkZWQx ZT5dIGRvX3N5c2NhbGxfNjQrMHhjOC8weDU4MCBhcmNoL3g4Ni9lbnRyeS9jb21tb24uYzoyOTAK ICAgIFs8MDAwMDAwMDBkYjMxNWQzNj5dIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ5LzB4YmUKICAgIFs8MDAwMDAwMDAxMTViZTliYj5dIDB4ZmZmZmZmZmZmZmZmZmZmZgoKSXQg c2hvdWxkIGNhbGwga3NldF91bnJlZ2lzdGVyIHRvIGZyZWUgJ2Rldi0+cXVldWVzX2tzZXQnCmlu IGVycm9yIHBhdGggb2YgcmVnaXN0ZXJfcXVldWVfa29iamVjdHMsIG90aGVyd2lzZSB3aWxsIGNh dXNlIGEgbWVtIGxlYWsuCgpSZXBvcnRlZC1ieTogSHVsayBSb2JvdCA8aHVsa2NpQGh1YXdlaS5j b20+CkZpeGVzOiAxZDI0ZWI0ODE1ZDEgKCJ4cHM6IFRyYW5zbWl0IFBhY2tldCBTdGVlcmluZyIp ClNpZ25lZC1vZmYtYnk6IFl1ZUhhaWJpbmcgPHl1ZWhhaWJpbmdAaHVhd2VpLmNvbT4KU2lnbmVk LW9mZi1ieTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC9j b3JlL25ldC1zeXNmcy5jIHwgMyArKysKIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9uZXQvY29yZS9uZXQtc3lzZnMuYyBiL25ldC9jb3JlL25ldC1zeXNmcy5j CmluZGV4IGZmOWZkMmJiNGNlNC4uNzNhZDc2MDdkY2QxIDEwMDY0NAotLS0gYS9uZXQvY29yZS9u ZXQtc3lzZnMuYworKysgYi9uZXQvY29yZS9uZXQtc3lzZnMuYwpAQCAtMTU0Nyw2ICsxNTQ3LDkg QEAgc3RhdGljIGludCByZWdpc3Rlcl9xdWV1ZV9rb2JqZWN0cyhzdHJ1Y3QgbmV0X2RldmljZSAq ZGV2KQogZXJyb3I6CiAJbmV0ZGV2X3F1ZXVlX3VwZGF0ZV9rb2JqZWN0cyhkZXYsIHR4cSwgMCk7 CiAJbmV0X3J4X3F1ZXVlX3VwZGF0ZV9rb2JqZWN0cyhkZXYsIHJ4cSwgMCk7CisjaWZkZWYgQ09O RklHX1NZU0ZTCisJa3NldF91bnJlZ2lzdGVyKGRldi0+cXVldWVzX2tzZXQpOworI2VuZGlmCiAJ cmV0dXJuIGVycm9yOwogfQogCi0tIAoyLjIwLjEKCgpGcm9tIDI4ZGNiMzQxZWE5NmExYjBhNzdm YjY0NzViN2FhMzI2MWVmZTdlNDUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtyaXN0 aWFuIEV2ZW5zZW4gPGtyaXN0aWFuLmV2ZW5zZW5AZ21haWwuY29tPgpEYXRlOiBTYXQsIDIgTWFy IDIwMTkgMTM6MzI6MjYgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4LzEyXSBxbWlfd3dhbjogQWRk IHN1cHBvcnQgZm9yIFF1ZWN0ZWwgRUcxMi9FTTEyCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQt VHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5n OiA4Yml0CgpbIFVwc3RyZWFtIGNvbW1pdCA4MjJlNDRiNDVlYjk5MWM2MzQ4N2M1ZTJjZTdkNjM2 NDExODcwYThkIF0KClF1ZWN0ZWwgRUcxMiAobW9kdWxlKS9FTTEyIChNLjIgY2FyZCkgaXMgYSBD YXQuIDEyIExURSBtb2RlbS4gVGhlIG1vZGVtCmJlaGF2ZXMgaW4gdGhlIHNhbWUgd2F5IGFzIHRo ZSBFUDA2LCBzbyB0aGUgInNldCBEVFIiLXF1aXJrIG11c3QgYmUKYXBwbGllZCBhbmQgdGhlIGRp YWdub3N0aWMtaW50ZXJmYWNlIGNoZWNrIHBlcmZvcm1lZC4gU2luY2UgdGhlCmRpYWdub3N0aWMt Y2hlY2sgbm93IGFwcGxpZXMgdG8gbW9yZSBtb2RlbXMsIEkgaGF2ZSByZW5hbWVkIHRoZSBmdW5j dGlvbgpmcm9tIHF1ZWN0ZWxfZXAwNl9kaWFnX2RldGVjdGVkKCkgdG8gcXVlY3RlbF9kaWFnX2Rl dGVjdGVkKCkuCgpTaWduZWQtb2ZmLWJ5OiBLcmlzdGlhbiBFdmVuc2VuIDxrcmlzdGlhbi5ldmVu c2VuQGdtYWlsLmNvbT4KQWNrZWQtYnk6IEJqw7hybiBNb3JrIDxiam9ybkBtb3JrLm5vPgpTaWdu ZWQtb2ZmLWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogZHJp dmVycy9uZXQvdXNiL3FtaV93d2FuLmMgfCAyNiArKysrKysrKysrKysrKysrKystLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMgYi9kcml2ZXJzL25ldC91c2IvcW1pX3d3 YW4uYwppbmRleCAxOGFmMmY4ZWVlOTYuLjc0YmViYmRiNGIxNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9uZXQvdXNiL3FtaV93d2FuLmMKKysrIGIvZHJpdmVycy9uZXQvdXNiL3FtaV93d2FuLmMKQEAg LTk3Niw2ICs5NzYsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCB1c2JfZGV2aWNlX2lkIHByb2R1 Y3RzW10gPSB7CiAJCQkJCSAgICAgIDB4ZmYpLAogCQkuZHJpdmVyX2luZm8JICAgID0gKHVuc2ln bmVkIGxvbmcpJnFtaV93d2FuX2luZm9fcXVpcmtfZHRyLAogCX0sCisJewkvKiBRdWVjdGVsIEVH MTIvRU0xMiAqLworCQlVU0JfREVWSUNFX0FORF9JTlRFUkZBQ0VfSU5GTygweDJjN2MsIDB4MDUx MiwKKwkJCQkJICAgICAgVVNCX0NMQVNTX1ZFTkRPUl9TUEVDLAorCQkJCQkgICAgICBVU0JfU1VC Q0xBU1NfVkVORE9SX1NQRUMsCisJCQkJCSAgICAgIDB4ZmYpLAorCQkuZHJpdmVyX2luZm8JICAg ID0gKHVuc2lnbmVkIGxvbmcpJnFtaV93d2FuX2luZm9fcXVpcmtfZHRyLAorCX0sCiAKIAkvKiAz LiBDb21iaW5lZCBpbnRlcmZhY2UgZGV2aWNlcyBtYXRjaGluZyBvbiBpbnRlcmZhY2UgbnVtYmVy ICovCiAJe1FNSV9GSVhFRF9JTlRGKDB4MDQwOCwgMHhlYTQyLCA0KX0sCS8qIFlvdGEgLyBNZWdh Zm9uIE0xMDAtMSAqLwpAQCAtMTM0MywxNyArMTM1MCwyMCBAQCBzdGF0aWMgYm9vbCBxdWVjdGVs X2VjMjBfZGV0ZWN0ZWQoc3RydWN0IHVzYl9pbnRlcmZhY2UgKmludGYpCiAJcmV0dXJuIGZhbHNl OwogfQogCi1zdGF0aWMgYm9vbCBxdWVjdGVsX2VwMDZfZGlhZ19kZXRlY3RlZChzdHJ1Y3QgdXNi X2ludGVyZmFjZSAqaW50ZikKK3N0YXRpYyBib29sIHF1ZWN0ZWxfZGlhZ19kZXRlY3RlZChzdHJ1 Y3QgdXNiX2ludGVyZmFjZSAqaW50ZikKIHsKIAlzdHJ1Y3QgdXNiX2RldmljZSAqZGV2ID0gaW50 ZXJmYWNlX3RvX3VzYmRldihpbnRmKTsKIAlzdHJ1Y3QgdXNiX2ludGVyZmFjZV9kZXNjcmlwdG9y IGludGZfZGVzYyA9IGludGYtPmN1cl9hbHRzZXR0aW5nLT5kZXNjOworCXUxNiBpZF92ZW5kb3Ig PSBsZTE2X3RvX2NwdShkZXYtPmRlc2NyaXB0b3IuaWRWZW5kb3IpOworCXUxNiBpZF9wcm9kdWN0 ID0gbGUxNl90b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCk7CiAKLQlpZiAobGUxNl90 b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkVmVuZG9yKSA9PSAweDJjN2MgJiYKLQkgICAgbGUxNl90 b19jcHUoZGV2LT5kZXNjcmlwdG9yLmlkUHJvZHVjdCkgPT0gMHgwMzA2ICYmCi0JICAgIGludGZf ZGVzYy5iTnVtRW5kcG9pbnRzID09IDIpCi0JCXJldHVybiB0cnVlOworCWlmIChpZF92ZW5kb3Ig IT0gMHgyYzdjIHx8IGludGZfZGVzYy5iTnVtRW5kcG9pbnRzICE9IDIpCisJCXJldHVybiBmYWxz ZTsKIAotCXJldHVybiBmYWxzZTsKKwlpZiAoaWRfcHJvZHVjdCA9PSAweDAzMDYgfHwgaWRfcHJv ZHVjdCA9PSAweDA1MTIpCisJCXJldHVybiB0cnVlOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOwog fQogCiBzdGF0aWMgaW50IHFtaV93d2FuX3Byb2JlKHN0cnVjdCB1c2JfaW50ZXJmYWNlICppbnRm LApAQCAtMTM5MCwxMyArMTQwMCwxMyBAQCBzdGF0aWMgaW50IHFtaV93d2FuX3Byb2JlKHN0cnVj dCB1c2JfaW50ZXJmYWNlICppbnRmLAogCQlyZXR1cm4gLUVOT0RFVjsKIAl9CiAKLQkvKiBRdWVj dGVsIEVQMDYvRU0wNi9FRzA2IHN1cHBvcnRzIGR5bmFtaWMgaW50ZXJmYWNlIGNvbmZpZ3VyYXRp b24sIHNvCisJLyogU2V2ZXJhbCBRdWVjdGVsIG1vZGVtcyBzdXBwb3J0cyBkeW5hbWljIGludGVy ZmFjZSBjb25maWd1cmF0aW9uLCBzbwogCSAqIHdlIG5lZWQgdG8gbWF0Y2ggb24gY2xhc3Mvc3Vi Y2xhc3MvcHJvdG9jb2wuIFRoZXNlIHZhbHVlcyBhcmUKIAkgKiBpZGVudGljYWwgZm9yIHRoZSBk aWFnbm9zdGljLSBhbmQgUU1JLWludGVyZmFjZSwgYnV0IGJOdW1FbmRwb2ludHMgaXMKIAkgKiBk aWZmZXJlbnQuIElnbm9yZSB0aGUgY3VycmVudCBpbnRlcmZhY2UgaWYgdGhlIG51bWJlciBvZiBl bmRwb2ludHMKIAkgKiB0aGUgbnVtYmVyIGZvciB0aGUgZGlhZyBpbnRlcmZhY2UgKHR3bykuCiAJ ICovCi0JaWYgKHF1ZWN0ZWxfZXAwNl9kaWFnX2RldGVjdGVkKGludGYpKQorCWlmIChxdWVjdGVs X2RpYWdfZGV0ZWN0ZWQoaW50ZikpCiAJCXJldHVybiAtRU5PREVWOwogCiAJcmV0dXJuIHVzYm5l dF9wcm9iZShpbnRmLCBpZCk7Ci0tIAoyLjIwLjEKCgpGcm9tIGQzMzYzNzFiMzUyMmQ3OTk3NTFk Mzk3Y2E1MjMyNjMyZDZlYWQwZWYgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFhpbiBM b25nIDxsdWNpZW4ueGluQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzIE1hciAyMDE5IDE2OjUwOjI2 ICswODAwClN1YmplY3Q6IFtQQVRDSCAwOS8xMl0gc2N0cDogY2FsbCBpb3ZfaXRlcl9yZXZlcnQo KSBhZnRlciBzZW5kaW5nIEFCT1JUCgpbIFVwc3RyZWFtIGNvbW1pdCA5MDFlZmUxMjMxOGIxZWE4 ZDNlMmM4OGE3Yjc1ZWQ2ZTZkNWQ3MjQ1IF0KClRoZSB1c2VyIG1zZyBpcyBhbHNvIGNvcGllZCB0 byB0aGUgYWJvcnQgcGFja2V0IHdoZW4gZG9pbmcgU0NUUF9BQk9SVCBpbgpzY3RwX3NlbmRtc2df Y2hlY2tfc2ZsYWdzKCkuIFdoZW4gU0NUUF9TRU5EQUxMIGlzIHNldCwgaW92X2l0ZXJfcmV2ZXJ0 KCkKc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQgZm9yIHNlbmRpbmcgYWJvcnQgb24gdGhlIG5leHQg YXNvYyB3aXRoIGNvcHlpbmcKdGhpcyBtc2cuIE90aGVyd2lzZSwgbWVtY3B5X2Zyb21fbXNnKCkg aW4gc2N0cF9tYWtlX2Fib3J0X3VzZXIoKSB3aWxsCmZhaWwgYW5kIHJldHVybiBlcnJvci4KCkZp eGVzOiA0OTEwMjgwNTAzZjMgKCJzY3RwOiBhZGQgc3VwcG9ydCBmb3Igc25kIGZsYWcgU0NUUF9T RU5EQUxMIHByb2Nlc3MgaW4gc2VuZG1zZyIpClJlcG9ydGVkLWJ5OiBZaW5nIFh1IDx5aW54dUBy ZWRoYXQuY29tPgpTaWduZWQtb2ZmLWJ5OiBYaW4gTG9uZyA8bHVjaWVuLnhpbkBnbWFpbC5jb20+ CkFja2VkLWJ5OiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpTaWduZWQtb2Zm LWJ5OiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVtQGRhdmVtbG9mdC5uZXQ+Ci0tLQogbmV0L3NjdHAv c29ja2V0LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdp dCBhL25ldC9zY3RwL3NvY2tldC5jIGIvbmV0L3NjdHAvc29ja2V0LmMKaW5kZXggNjVkNmQwNDU0 NmFlLi5hMjc3MWIzYjNjMTQgMTAwNjQ0Ci0tLSBhL25ldC9zY3RwL3NvY2tldC5jCisrKyBiL25l dC9zY3RwL3NvY2tldC5jCkBAIC0xODY2LDYgKzE4NjYsNyBAQCBzdGF0aWMgaW50IHNjdHBfc2Vu ZG1zZ19jaGVja19zZmxhZ3Moc3RydWN0IHNjdHBfYXNzb2NpYXRpb24gKmFzb2MsCiAKIAkJcHJf ZGVidWcoIiVzOiBhYm9ydGluZyBhc3NvY2lhdGlvbjolcFxuIiwgX19mdW5jX18sIGFzb2MpOwog CQlzY3RwX3ByaW1pdGl2ZV9BQk9SVChuZXQsIGFzb2MsIGNodW5rKTsKKwkJaW92X2l0ZXJfcmV2 ZXJ0KCZtc2ctPm1zZ19pdGVyLCBtc2dfbGVuKTsKIAogCQlyZXR1cm4gMDsKIAl9Ci0tIAoyLjIw LjEKCgpGcm9tIDE0Y2EyMDcyMDNiMTY4YWJkNmY1MWU3MzI0ZDI4NjMxOTFjYjBkMGEgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxCkZyb206IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fu b25pY2FsLmNvbT4KRGF0ZTogTW9uLCA0IE1hciAyMDE5IDE1OjAwOjAzICswODAwClN1YmplY3Q6 IFtQQVRDSCAxMC8xMl0gc2t5MjogRGlzYWJsZSBNU0kgb24gRGVsbCBJbnNwaXJvbiAxNTQ1IGFu ZCBHYXRld2F5CiBQLTc5CgpbIFVwc3RyZWFtIGNvbW1pdCBiMzNiN2NkNmZkODY0NzhkZDI4OTBh OWFiZWI2ZjAzNmFhMDFmZGY3IF0KClNvbWUgc2t5MiBjaGlwcyBmaXJlIElSUSBhZnRlciBTMywg YmVmb3JlIHRoZSBkcml2ZXIgaXMgZnVsbHkgcmVzdW1lZDoKWyA2ODYuODA0ODc3XSBkb19JUlE6 IDEuMzcgTm8gaXJxIGhhbmRsZXIgZm9yIHZlY3RvcgoKVGhpcyBpcyBsaWtlbHkgYSBwbGF0Zm9y bSBidWcgdGhhdCBkZXZpY2UgaXNuJ3QgZnVsbHkgcXVpZXNjZWQgZHVyaW5nClMzLiBVc2UgTVNJ LVgsIG1hc2thYmxlIE1TSSBvciBJTlR4IGNhbiBwcmV2ZW50IHRoaXMgaXNzdWUgZnJvbQpoYXBw ZW5pbmcuCgpTaW5jZSBNU0ktWCBhbmQgbWFza2FibGUgTVNJIGFyZSBub3Qgc3VwcG9ydGVkIGJ5 IHRoaXMgZGV2aWNlLCBmYWxsYmFjawp0byB1c2UgSU5UeCBvbiBhZmZlY3RlZCBwbGF0Zm9ybXMu CgpCdWdMaW5rOiBodHRwczovL2J1Z3MubGF1bmNocGFkLm5ldC9idWdzLzE4MDcyNTkKQnVnTGlu azogaHR0cHM6Ly9idWdzLmxhdW5jaHBhZC5uZXQvYnVncy8xODA5ODQzClNpZ25lZC1vZmYtYnk6 IEthaS1IZW5nIEZlbmcgPGthaS5oZW5nLmZlbmdAY2Fub25pY2FsLmNvbT4KU2lnbmVkLW9mZi1i eTogRGF2aWQgUy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIGRyaXZlcnMvbmV0 L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jIHwgMjQgKysrKysrKysrKysrKysrKysrKysrKystCiAx IGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdp dCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jIGIvZHJpdmVycy9uZXQvZXRo ZXJuZXQvbWFydmVsbC9za3kyLmMKaW5kZXggNTc3MjdmZTE1MDFlLi44YjM0OTVlZTJiNmUgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jCisrKyBiL2RyaXZl cnMvbmV0L2V0aGVybmV0L21hcnZlbGwvc2t5Mi5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVk ZSA8bGludXgvbWlpLmg+CiAjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+CiAjaW5jbHVkZSA8 bGludXgvb2ZfbmV0Lmg+CisjaW5jbHVkZSA8bGludXgvZG1pLmg+CiAKICNpbmNsdWRlIDxhc20v aXJxLmg+CiAKQEAgLTkzLDcgKzk0LDcgQEAgc3RhdGljIGludCBjb3B5YnJlYWsgX19yZWFkX21v c3RseSA9IDEyODsKIG1vZHVsZV9wYXJhbShjb3B5YnJlYWssIGludCwgMCk7CiBNT0RVTEVfUEFS TV9ERVNDKGNvcHlicmVhaywgIlJlY2VpdmUgY29weSB0aHJlc2hvbGQiKTsKIAotc3RhdGljIGlu dCBkaXNhYmxlX21zaSA9IDA7CitzdGF0aWMgaW50IGRpc2FibGVfbXNpID0gLTE7CiBtb2R1bGVf cGFyYW0oZGlzYWJsZV9tc2ksIGludCwgMCk7CiBNT0RVTEVfUEFSTV9ERVNDKGRpc2FibGVfbXNp LCAiRGlzYWJsZSBNZXNzYWdlIFNpZ25hbGVkIEludGVycnVwdCAoTVNJKSIpOwogCkBAIC00OTE3 LDYgKzQ5MTgsMjQgQEAgc3RhdGljIGNvbnN0IGNoYXIgKnNreTJfbmFtZSh1OCBjaGlwaWQsIGNo YXIgKmJ1ZiwgaW50IHN6KQogCXJldHVybiBidWY7CiB9CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZG1pX3N5c3RlbV9pZCBtc2lfYmxhY2tsaXN0W10gPSB7CisJeworCQkuaWRlbnQgPSAiRGVsbCBJ bnNwaXJvbiAxNTQ1IiwKKwkJLm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5E T1IsICJEZWxsIEluYy4iKSwKKwkJCURNSV9NQVRDSChETUlfUFJPRFVDVF9OQU1FLCAiSW5zcGly b24gMTU0NSIpLAorCQl9LAorCX0sCisJeworCQkuaWRlbnQgPSAiR2F0ZXdheSBQLTc5IiwKKwkJ Lm1hdGNoZXMgPSB7CisJCQlETUlfTUFUQ0goRE1JX1NZU19WRU5ET1IsICJHYXRld2F5IiksCisJ CQlETUlfTUFUQ0goRE1JX1BST0RVQ1RfTkFNRSwgIlAtNzkiKSwKKwkJfSwKKwl9LAorCXt9Cit9 OworCiBzdGF0aWMgaW50IHNreTJfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0 cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiB7CiAJc3RydWN0IG5ldF9kZXZpY2UgKmRldiwgKmRl djE7CkBAIC01MDI4LDYgKzUwNDcsOSBAQCBzdGF0aWMgaW50IHNreTJfcHJvYmUoc3RydWN0IHBj aV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCiAJCWdvdG8gZXJy X291dF9mcmVlX3BjaTsKIAl9CiAKKwlpZiAoZGlzYWJsZV9tc2kgPT0gLTEpCisJCWRpc2FibGVf bXNpID0gISFkbWlfY2hlY2tfc3lzdGVtKG1zaV9ibGFja2xpc3QpOworCiAJaWYgKCFkaXNhYmxl X21zaSAmJiBwY2lfZW5hYmxlX21zaShwZGV2KSA9PSAwKSB7CiAJCWVyciA9IHNreTJfdGVzdF9t c2koaHcpOwogCQlpZiAoZXJyKSB7Ci0tIAoyLjIwLjEKCgpGcm9tIDRlM2MwODgwOTRlMDE1MTE4 M2Y3NmE4N2ZlNzIxNTQ0MjIxOTY3ODcgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IElk byBTY2hpbW1lbCA8aWRvc2NoQG1lbGxhbm94LmNvbT4KRGF0ZTogU3VuLCAzIE1hciAyMDE5IDA3 OjM1OjUxICswMDAwClN1YmplY3Q6IFtQQVRDSCAxMS8xMl0gdGVhbTogRnJlZSBCUEYgZmlsdGVy IHdoZW4gdW5yZWdpc3RlcmluZyBuZXRkZXYKClsgVXBzdHJlYW0gY29tbWl0IDY5MmMzMWJkNDA1 NDIxMjMxMjM5NmIxZDMwM2JmZmFiMmM1YjkzYTcgXQoKV2hlbiB0ZWFtIGlzIHVzZWQgaW4gbG9h ZGJhbGFuY2UgbW9kZSBhIEJQRiBmaWx0ZXIgY2FuIGJlIHVzZWQgdG8KcHJvdmlkZSBhIGhhc2gg d2hpY2ggd2lsbCBkZXRlcm1pbmUgdGhlIFR4IHBvcnQuCgpXaGVuIHRoZSBuZXRkZXYgaXMgbGF0 ZXIgdW5yZWdpc3RlcmVkIHRoZSBmaWx0ZXIgaXMgbm90IGZyZWVkIHdoaWNoCnJlc3VsdHMgaW4g bWVtb3J5IGxlYWtzIFsxXS4KCkZpeCBieSBmcmVlaW5nIHRoZSBwcm9ncmFtIGFuZCB0aGUgY29y cmVzcG9uZGluZyBmaWx0ZXIgd2hlbgp1bnJlZ2lzdGVyaW5nIHRoZSBuZXRkZXYuCgpbMV0KdW5y ZWZlcmVuY2VkIG9iamVjdCAweGZmZmY4ODgxZGJjNDdjYzggKHNpemUgMTYpOgogIGNvbW0gInRl YW1kIiwgcGlkIDMwNjgsIGppZmZpZXMgNDI5NDk5Nzc3OSAoYWdlIDQzOC4yNDdzKQogIGhleCBk dW1wIChmaXJzdCAxNiBieXRlcyk6CiAgICBhMyAwMCA2YiA2YiA2YiA2YiA2YiA2YiA4OCBhNSA4 MiBlMSA4MSA4OCBmZiBmZiAgLi5ra2tra2suLi4uLi4uLgogIGJhY2t0cmFjZToKICAgIFs8MDAw MDAwMDA4YTNiNDdlMz5dIHRlYW1fbmxfY21kX29wdGlvbnNfc2V0KzB4ODhmLzB4MTFiMAogICAg WzwwMDAwMDAwMGM0ZjRmMjdlPl0gZ2VubF9mYW1pbHlfcmN2X21zZysweDc4Zi8weDEwODAKICAg IFs8MDAwMDAwMDA2MTBlZjgzOD5dIGdlbmxfcmN2X21zZysweGNhLzB4MTcwCiAgICBbPDAwMDAw MDAwYTI4MWRmOTM+XSBuZXRsaW5rX3Jjdl9za2IrMHgxMzIvMHgzODAKICAgIFs8MDAwMDAwMDA0 ZDk0NDhhMj5dIGdlbmxfcmN2KzB4MjkvMHg0MAogICAgWzwwMDAwMDAwMDAzMjFiMmY0Pl0gbmV0 bGlua191bmljYXN0KzB4NGMwLzB4NjkwCiAgICBbPDAwMDAwMDAwOGMyNWRmZmI+XSBuZXRsaW5r X3NlbmRtc2crMHg5MjkvMHhlMTAKICAgIFs8MDAwMDAwMDAwNjgyOThjNT5dIHNvY2tfc2VuZG1z ZysweGM4LzB4MTEwCiAgICBbPDAwMDAwMDAwODJhNjFmZjA+XSBfX19zeXNfc2VuZG1zZysweDc3 YS8weDhmMAogICAgWzwwMDAwMDAwMDY2M2FlMjlkPl0gX19zeXNfc2VuZG1zZysweGY3LzB4MjUw CiAgICBbPDAwMDAwMDAwMjdjNWYxMWE+XSBkb19zeXNjYWxsXzY0KzB4MTRkLzB4NjEwCiAgICBb PDAwMDAwMDAwNmNmYmM4ZDM+XSBlbnRyeV9TWVNDQUxMXzY0X2FmdGVyX2h3ZnJhbWUrMHg0OS8w eGJlCiAgICBbPDAwMDAwMDAwZTIzMTk3ZTI+XSAweGZmZmZmZmZmZmZmZmZmZmYKdW5yZWZlcmVu Y2VkIG9iamVjdCAweGZmZmY4ODgxZTE4MmE1ODggKHNpemUgMjA0OCk6CiAgY29tbSAidGVhbWQi LCBwaWQgMzA2OCwgamlmZmllcyA0Mjk0OTk3NzgwIChhZ2UgNDM4LjI0N3MpCiAgaGV4IGR1bXAg KGZpcnN0IDMyIGJ5dGVzKToKICAgIDIwIDAwIDAwIDAwIDAyIDAwIDAwIDAwIDMwIDAwIDAwIDAw IDI4IGYwIGZmIGZmICAgLi4uLi4uLjAuLi4oLi4uCiAgICAwNyAwMCAwMCAwMCAwMCAwMCAwMCAw MCAyOCAwMCAwMCAwMCAwMCAwMCAwMCAwMCAgLi4uLi4uLi4oLi4uLi4uLgogIGJhY2t0cmFjZToK ICAgIFs8MDAwMDAwMDAyZGFmMDFmYj5dIGxiX2JwZl9mdW5jX3NldCsweDQ1Yy8weDZkMAogICAg WzwwMDAwMDAwMDhhM2I0N2UzPl0gdGVhbV9ubF9jbWRfb3B0aW9uc19zZXQrMHg4OGYvMHgxMWIw CiAgICBbPDAwMDAwMDAwYzRmNGYyN2U+XSBnZW5sX2ZhbWlseV9yY3ZfbXNnKzB4NzhmLzB4MTA4 MAogICAgWzwwMDAwMDAwMDYxMGVmODM4Pl0gZ2VubF9yY3ZfbXNnKzB4Y2EvMHgxNzAKICAgIFs8 MDAwMDAwMDBhMjgxZGY5Mz5dIG5ldGxpbmtfcmN2X3NrYisweDEzMi8weDM4MAogICAgWzwwMDAw MDAwMDRkOTQ0OGEyPl0gZ2VubF9yY3YrMHgyOS8weDQwCiAgICBbPDAwMDAwMDAwMDMyMWIyZjQ+ XSBuZXRsaW5rX3VuaWNhc3QrMHg0YzAvMHg2OTAKICAgIFs8MDAwMDAwMDA4YzI1ZGZmYj5dIG5l dGxpbmtfc2VuZG1zZysweDkyOS8weGUxMAogICAgWzwwMDAwMDAwMDA2ODI5OGM1Pl0gc29ja19z ZW5kbXNnKzB4YzgvMHgxMTAKICAgIFs8MDAwMDAwMDA4MmE2MWZmMD5dIF9fX3N5c19zZW5kbXNn KzB4NzdhLzB4OGYwCiAgICBbPDAwMDAwMDAwNjYzYWUyOWQ+XSBfX3N5c19zZW5kbXNnKzB4Zjcv MHgyNTAKICAgIFs8MDAwMDAwMDAyN2M1ZjExYT5dIGRvX3N5c2NhbGxfNjQrMHgxNGQvMHg2MTAK ICAgIFs8MDAwMDAwMDA2Y2ZiYzhkMz5dIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsw eDQ5LzB4YmUKICAgIFs8MDAwMDAwMDBlMjMxOTdlMj5dIDB4ZmZmZmZmZmZmZmZmZmZmZgoKRml4 ZXM6IDAxZDdmMzBhOWY5NiAoInRlYW06IGFkZCBsb2FkYmFsYW5jZSBtb2RlIikKU2lnbmVkLW9m Zi1ieTogSWRvIFNjaGltbWVsIDxpZG9zY2hAbWVsbGFub3guY29tPgpSZXBvcnRlZC1ieTogQW1p dCBDb2hlbiA8YW1pdGNAbWVsbGFub3guY29tPgpBY2tlZC1ieTogSmlyaSBQaXJrbyA8amlyaUBt ZWxsYW5veC5jb20+ClNpZ25lZC1vZmYtYnk6IERhdmlkIFMuIE1pbGxlciA8ZGF2ZW1AZGF2ZW1s b2Z0Lm5ldD4KLS0tCiBkcml2ZXJzL25ldC90ZWFtL3RlYW1fbW9kZV9sb2FkYmFsYW5jZS5jIHwg MTUgKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3RlYW0vdGVhbV9tb2RlX2xvYWRiYWxhbmNlLmMgYi9kcml2 ZXJzL25ldC90ZWFtL3RlYW1fbW9kZV9sb2FkYmFsYW5jZS5jCmluZGV4IGE1ZWY5NzAxMGViMy4u NTU0MWUxYzE5OTM2IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC90ZWFtL3RlYW1fbW9kZV9sb2Fk YmFsYW5jZS5jCisrKyBiL2RyaXZlcnMvbmV0L3RlYW0vdGVhbV9tb2RlX2xvYWRiYWxhbmNlLmMK QEAgLTMyNSw2ICszMjUsMjAgQEAgc3RhdGljIGludCBsYl9icGZfZnVuY19zZXQoc3RydWN0IHRl YW0gKnRlYW0sIHN0cnVjdCB0ZWFtX2dzZXR0ZXJfY3R4ICpjdHgpCiAJcmV0dXJuIDA7CiB9CiAK K3N0YXRpYyB2b2lkIGxiX2JwZl9mdW5jX2ZyZWUoc3RydWN0IHRlYW0gKnRlYW0pCit7CisJc3Ry dWN0IGxiX3ByaXYgKmxiX3ByaXYgPSBnZXRfbGJfcHJpdih0ZWFtKTsKKwlzdHJ1Y3QgYnBmX3By b2cgKmZwOworCisJaWYgKCFsYl9wcml2LT5leC0+b3JpZ19mcHJvZykKKwkJcmV0dXJuOworCisJ X19mcHJvZ19kZXN0cm95KGxiX3ByaXYtPmV4LT5vcmlnX2Zwcm9nKTsKKwlmcCA9IHJjdV9kZXJl ZmVyZW5jZV9wcm90ZWN0ZWQobGJfcHJpdi0+ZnAsCisJCQkJICAgICAgIGxvY2tkZXBfaXNfaGVs ZCgmdGVhbS0+bG9jaykpOworCWJwZl9wcm9nX2Rlc3Ryb3koZnApOworfQorCiBzdGF0aWMgaW50 IGxiX3R4X21ldGhvZF9nZXQoc3RydWN0IHRlYW0gKnRlYW0sIHN0cnVjdCB0ZWFtX2dzZXR0ZXJf Y3R4ICpjdHgpCiB7CiAJc3RydWN0IGxiX3ByaXYgKmxiX3ByaXYgPSBnZXRfbGJfcHJpdih0ZWFt KTsKQEAgLTYzOSw2ICs2NTMsNyBAQCBzdGF0aWMgdm9pZCBsYl9leGl0KHN0cnVjdCB0ZWFtICp0 ZWFtKQogCiAJdGVhbV9vcHRpb25zX3VucmVnaXN0ZXIodGVhbSwgbGJfb3B0aW9ucywKIAkJCQlB UlJBWV9TSVpFKGxiX29wdGlvbnMpKTsKKwlsYl9icGZfZnVuY19mcmVlKHRlYW0pOwogCWNhbmNl bF9kZWxheWVkX3dvcmtfc3luYygmbGJfcHJpdi0+ZXgtPnN0YXRzLnJlZnJlc2hfZHcpOwogCWZy ZWVfcGVyY3B1KGxiX3ByaXYtPnBjcHVfc3RhdHMpOwogCWtmcmVlKGxiX3ByaXYtPmV4KTsKLS0g CjIuMjAuMQoKCkZyb20gMzVlYWZjNDJiODFiYzg3NmFjMTk1NTFkYTVlODZlNThhZWU0ZWE2MyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogRXJpayBIdWduZSA8ZXJpay5odWduZUBnbWFp bC5jb20+CkRhdGU6IE1vbiwgNCBNYXIgMjAxOSAyMzoyNjoxMCArMDEwMApTdWJqZWN0OiBbUEFU Q0ggMTIvMTJdIHRpcGM6IGZpeCBSRE0vREdSQU0gY29ubmVjdCgpIHJlZ3Jlc3Npb24KClsgVXBz dHJlYW0gY29tbWl0IDBlNjMyMDg5MTVhOGQ3NTkwZDBhNjIxOGRhZGIyYTZhMDBhYzcwNWEgXQoK Rml4IHJlZ3Jlc3Npb24gYnVnIGludHJvZHVjZWQgaW4KY29tbWl0IDM2NWFkMzUzYzI1NiAoInRp cGM6IHJlZHVjZSByaXNrIG9mIHVzZXIgc3RhcnZhdGlvbiBkdXJpbmcgbGluawpjb25nZXN0aW9u IikKCk9ubHkgc2lnbmFsIC1FREVTVEFERFJSRVEgZm9yIFJETS9ER1JBTSBpZiB3ZSBkb24ndCBo YXZlIGEgY2FjaGVkCnNvY2thZGRyLgoKRml4ZXM6IDM2NWFkMzUzYzI1NiAoInRpcGM6IHJlZHVj ZSByaXNrIG9mIHVzZXIgc3RhcnZhdGlvbiBkdXJpbmcgbGluayBjb25nZXN0aW9uIikKU2lnbmVk LW9mZi1ieTogRXJpayBIdWduZSA8ZXJpay5odWduZUBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6 IEpvbiBNYWxveSA8am9uLm1hbG95QGVyaWNzc29uLmNvbT4KU2lnbmVkLW9mZi1ieTogRGF2aWQg Uy4gTWlsbGVyIDxkYXZlbUBkYXZlbWxvZnQubmV0PgotLS0KIG5ldC90aXBjL3NvY2tldC5jIHwg MiArLQogMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZm IC0tZ2l0IGEvbmV0L3RpcGMvc29ja2V0LmMgYi9uZXQvdGlwYy9zb2NrZXQuYwppbmRleCA3MDM0 M2FjNDQ4YjEuLjEzOTY5NGYyYzU3NiAxMDA2NDQKLS0tIGEvbmV0L3RpcGMvc29ja2V0LmMKKysr IGIvbmV0L3RpcGMvc29ja2V0LmMKQEAgLTEzMzMsNyArMTMzMyw3IEBAIHN0YXRpYyBpbnQgX190 aXBjX3NlbmRtc2coc3RydWN0IHNvY2tldCAqc29jaywgc3RydWN0IG1zZ2hkciAqbSwgc2l6ZV90 IGRsZW4pCiAKIAlpZiAodW5saWtlbHkoIWRlc3QpKSB7CiAJCWRlc3QgPSAmdHNrLT5wZWVyOwot CQlpZiAoIXN5biB8fCBkZXN0LT5mYW1pbHkgIT0gQUZfVElQQykKKwkJaWYgKCFzeW4gJiYgZGVz dC0+ZmFtaWx5ICE9IEFGX1RJUEMpCiAJCQlyZXR1cm4gLUVERVNUQUREUlJFUTsKIAl9CiAKLS0g CjIuMjAuMQoK ----Next_Part(Thu_Mar__7_14_47_03_2019_588)----