From nobody Sat May 18 23:14:49 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org ARC-Seal: i=1; a=rsa-sha256; t=1649161055; cv=none; d=zohomail.com; s=zohoarc; b=OsMCUeWfKrmC7X/pVHMAxFdisBgFckPRDHLGr5x9kyr57TinhBvFIYENyaHToNC/dO1BEgpWUqjXI+iLLfuNCgkvBGpu3yJJNlIb8gd4APZ/ay6GOI0G9c13OLH4fqgn16kJowIIEO9EwypskKHH+M1TZMDEhxjnL2MCH0rIZWc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649161055; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=iUnWHaeaBZp6aTAy0V9EIUSiF4hl+ZXBR73MEyRTvSg=; b=FzcyRAnDdw8rYtxMSm8G4moeW2JpPr4n+xEqX8n5DLAPuzcx03zI0l1YCWMdo+s6ClFPziKu+vdk+REXMCa9S751ZXwpboOABUxvRQdiCOW2HiBamforaeiedcfREkzGgc7MeRR0MH/Xxi1q8pyMj+Loe/gnAxwj6T9J0sQ3mNU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1649161055613164.76073665444198; Tue, 5 Apr 2022 05:17:35 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.298890.509202 (Exim 4.92) (envelope-from ) id 1nbi7A-00068g-Oj; Tue, 05 Apr 2022 12:16:52 +0000 Received: by outflank-mailman (output) from mailman id 298890.509202; Tue, 05 Apr 2022 12:16:52 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nbi7A-00068Z-Ih; Tue, 05 Apr 2022 12:16:52 +0000 Received: by outflank-mailman (input) for mailman id 298890; Tue, 05 Apr 2022 12:12:13 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nbhuU-0006xb-Fc for xen-devel@lists.xen.org; Tue, 05 Apr 2022 12:03:46 +0000 Received: from mail.xenproject.org (mail.xenproject.org [104.130.215.37]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 6ec7e771-b4d8-11ec-a405-831a346695d4; Tue, 05 Apr 2022 14:03:41 +0200 (CEST) Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nbhu2-0008EH-C2; Tue, 05 Apr 2022 12:03:18 +0000 Received: from julieng by xenbits.xenproject.org with local (Exim 4.92) (envelope-from ) id 1nbhu2-0005jJ-9A; Tue, 05 Apr 2022 12:03:18 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 6ec7e771-b4d8-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Date:Message-Id:Subject:CC:From:To:MIME-Version: Content-Transfer-Encoding:Content-Type; bh=iUnWHaeaBZp6aTAy0V9EIUSiF4hl+ZXBR73MEyRTvSg=; b=HKSbbTsW9QpqRBC2guAk8uPhqK 2Znrqb55SQawBvu7QyW9e+B4aRTW6mMN3mVqTrfsxn33b1xf29cenUGb/0fzc5fz4MTvHOQvYClFc 6JaAe5KRjtLRpfY7+olhEfNxiMNjPRXNCbLenzSrBTD//77iwsw6ylK7rfMriRbUfC6g=; Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8" Content-Transfer-Encoding: binary MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) To: xen-announce@lists.xen.org, xen-devel@lists.xen.org, xen-users@lists.xen.org, oss-security@lists.openwall.com From: Xen.org security team CC: Xen.org security team Subject: Xen Security Advisory 400 v2 (CVE-2022-26358,CVE-2022-26359,CVE-2022-26360,CVE-2022-26361) - IOMMU: RMRR (VT-d) and unity map (AMD-Vi) handling issues Message-Id: Date: Tue, 05 Apr 2022 12:03:18 +0000 X-Zoho-Virus-Status: 1 X-ZohoMail-DKIM: pass (identity @xen.org) X-ZM-MESSAGEID: 1649161057980100001 --=separator Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Reported-by: Roger Pau Monn=C3=A9 Reviewed-by: Kevin Tian Reviewed-by: Paul Durrant Reviewed-by: Roger Pau Monn=C3=A9 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Xen Security Advisory CVE-2022-26358,CVE-2022-26359,CVE-2022-26360,CVE-202= 2-26361 / XSA-400 version 2 IOMMU: RMRR (VT-d) and unity map (AMD-Vi) handling issues UPDATES IN VERSION 2 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Public release. ISSUE DESCRIPTION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Certain PCI devices in a system might be assigned Reserved Memory Regions (specified via Reserved Memory Region Reporting, "RMRR") for Intel VT-d or Unity Mapping ranges for AMD-Vi. These are typically used for platform tasks such as legacy USB emulation. Since the precise purpose of these regions is unknown, once a device associated with such a region is active, the mappings of these regions need to remain continuouly accessible by the device. This requirement has been violated. Subsequent DMA or interrupts from the device may have unpredictable behaviour, ranging from IOMMU faults to memory corruption. IMPACT =3D=3D=3D=3D=3D=3D The precise impact is system specific, but would likely be a Denial of Service (DoS) affecting the entire host. Privilege escalation and information leaks cannot be ruled out. VULNERABLE SYSTEMS =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D All Xen versions supporting PCI passthrough are affected. Only x86 systems with IOMMU hardware are vulnerable. Arm systems as well as x86 systems without IOMMU hardware or without any IOMMUs in use are not vulnerable. Only x86 guests which have physical devices passed through to them, and only when any such device has an associated RMRR or unity map, can leverage the vulnerability. (Whether a device is associated with an RMRR or unity map is not easy to discern.) MITIGATION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Not passing through physical devices to untrusted guests when the devices have assoicated RMRRs / unity maps will avoid the vulnerability. CREDITS =3D=3D=3D=3D=3D=3D=3D Aspects of this issue were discovered by Jan Beulich of SUSE and Roger Pau Monn=C3=A9 of Citrix. RESOLUTION =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Applying the appropriate set of attached patches resolves this issue. Note that patches for released versions are generally prepared to apply to the stable branches, and may not apply cleanly to the most recent release tarball. Downstreams are encouraged to update to the tip of the stable branch before applying these patches. xsa400/xsa400-??.patch xen-unstable xsa400/xsa400-4.16-*.patch Xen 4.16.x xsa400/xsa400-4.15-*.patch Xen 4.15.x xsa400/xsa400-4.14-*.patch Xen 4.14.x xsa400/xsa400-4.13-*.patch Xen 4.13.x xsa400/xsa400-4.12-*.patch Xen 4.12.x $ sha256sum xsa400*/* 108544235a011e96e8717e9e744190fd8128e99cca8141f682667bd7b8533f45 xsa400/xs= a400-01.patch 1648ef0213dd6beeaa782a18926416a00aa51ad89136aa1565debd5312bf58aa xsa400/xs= a400-02.patch 39e02738ce3d3a65c02355dd45cb844ecca8be9715b7887dedcdaada02c4bda1 xsa400/xs= a400-03.patch 2d5e7f4090418d817df002b7cd7a9a40246ff9900faf53fc2b2f685ac77b2a0e xsa400/xs= a400-4.12-00.patch a4291033d1960f8095a11e765072f60cf9e5be07d4cd0cbfed1896f9c66a4576 xsa400/xs= a400-4.12-01.patch 2f5b2ce22ae6cba8a5380ccf63ae2dcf6e7ce8f29a33c87c0630abc6c1d24793 xsa400/xs= a400-4.12-02.patch 86ee30d46957f63e4516ea47f14470579d0906fd536b39e31645e2cd471c1b49 xsa400/xs= a400-4.12-03.patch 546430f61df3eb92a55e32047cce8557d85a8e860f67d558c35fea44e7c56b18 xsa400/xs= a400-4.12-04.patch 178463bf81b138668c2f036b11a0b9406a6f5bb98c0643741787ccdf276495d9 xsa400/xs= a400-4.12-05.patch b19c599eb5eb17f8e0e17879174a4235fdc3f2172bc77bffdee60074ef2d7c90 xsa400/xs= a400-4.12-06.patch 02eae481f2b06763dd913b46a65837791147b7916bbd0ed50e5d972784b310aa xsa400/xs= a400-4.12-07.patch 298339cc343d9803158abd0c36030f36e7dc8360ccfed320f34ff01813c47434 xsa400/xs= a400-4.12-08.patch 9253d7120db39a1e3c14fc6b8735577f3d215837996eed057511146c0ba199d6 xsa400/xs= a400-4.12-09.patch 762bbe418c028449812b4441c4e369230477eeea4d863c05a2efd9c7e5e19bc3 xsa400/xs= a400-4.12-10.patch 7172957a27cdf02327c28b5cfedf35b12e76cb17237cbb9c318442961f503fe6 xsa400/xs= a400-4.12-11.patch c685d9ee2453728f509a78506930f756118ff443fbe6d5307873e90455b5e131 xsa400/xs= a400-4.13-00.patch 0b0a80a249c9c58726f913df24163976cfaadabc685d3d274dd7b972fe4cbffc xsa400/xs= a400-4.13-01.patch eabee7d9cabe00748e78fda0363818ca6085ac395804658a11f94394236d2734 xsa400/xs= a400-4.13-02.patch 66cd2a0ee8a002668e04e2bb7192ac2f774012434765988bdea0a7e79621f58c xsa400/xs= a400-4.13-03.patch 4457c142c1fdc67e0dc77a57bc57159ee63dc1946e432ae1225937c7ed3a3e82 xsa400/xs= a400-4.13-04.patch 2feabcbcf160d8c1130b2c86efd98dd9fee0332489520f3a10aa8bb37d6a5a20 xsa400/xs= a400-4.13-05.patch 903099123d37806b7fe684d75ab0fb6a28b4609d7370cce65a9ba5ab4db43ddd xsa400/xs= a400-4.13-06.patch e8a39d36f629b7f79634d09d22ace97f1c23ee10ee9fef6afd68ec2204c55d81 xsa400/xs= a400-4.13-07.patch d85c63917542d2d2b47dd6322b4c32364719be4707acf616290aacd536c57805 xsa400/xs= a400-4.13-08.patch 5496ca04a2789603069ca8e8d3bf6d301c19c799ccff813bf17865b46f687757 xsa400/xs= a400-4.13-09.patch 8b343f3616c0283caac334b4f0cc42b1523f2dc9de3463f2edadbf1a11c17a22 xsa400/xs= a400-4.13-10.patch 577d20d2ed5da8a89f32eae717a140f9ec3900e31fc9e10ee23e37ae5dc19d4a xsa400/xs= a400-4.13-11.patch bfa82c6beae9ec8ab88e042296442eed3ca162b42124c982785c7c0d95440480 xsa400/xs= a400-4.14-01.patch f8f7da8d0cc3d149874956e9aefe666a2e33275dba66ed0d55f0b559d078f01f xsa400/xs= a400-4.14-02.patch 49acd3d795aa091f8fa1c72b5064b5a71966e77c9785f5d0f8226d99daba3ead xsa400/xs= a400-4.14-03.patch 0ce4435a8c7fd6f4186ea31d29932094b1a902d9d0c5dafa3fcb1c15c5eca88c xsa400/xs= a400-4.14-04.patch aeae4cef4bf31ecd854ad820239fe793f36ed81c0ad28ce3935ab3f83c3ee58c xsa400/xs= a400-4.14-05.patch f8d93e2ab3f891f70abd17ddba9aae8237605f1f680754ff9df646e5ddb9d419 xsa400/xs= a400-4.14-06.patch afb9f731ba7a53930626e322ebb39db19f817b5c60710fc934c395fcdea4c7f4 xsa400/xs= a400-4.14-07.patch c236bb7b5c692cf30e7b84e6668f87b248bcf80c6df1dd74c655b91b955eb271 xsa400/xs= a400-4.14-08.patch 6c4d44983eae92212be6bda7663198260bdeb0506c5b622c38ddbcedf9360d69 xsa400/xs= a400-4.14-09.patch 5393c6681c675c666396f6725c2ac2e48293465e97bc228dcfc410ee84d8ba7c xsa400/xs= a400-4.14-10.patch 8d1dcdeb4d9420840a6753bb56f35bf199af63a6c477f2352e47222df5337c1a xsa400/xs= a400-4.14-11.patch f52a70fd92c4819658630c9d478ae03a9801352b024240059877d0ee2002e31e xsa400/xs= a400-4.15-01.patch 243a0b20b20c78b41f833004c82ce26b1249285671f150bdfe4a2314860df316 xsa400/xs= a400-4.15-02.patch 175f2472f80dacffcee578543f4fc4521f5533de46199ce86b072bfd0ede9ae3 xsa400/xs= a400-4.15-03.patch dee6fbe9e3c03d695bae1f81cebca80ca54ecf02a51db64ae5f3d313837eed8c xsa400/xs= a400-4.15-04.patch 55a35033b8ba45b1c9c556e0c2866733e518137299f2f3f4d41046766898aeb5 xsa400/xs= a400-4.15-05.patch 94ec5289a3a632fed8d220478847ef3b780d7db345f30ee9d6b186905de61048 xsa400/xs= a400-4.15-06.patch 50cbb08b931cd1cc8ec3e2aa17b537db80dcd03a6de0994331fc3818f53cbfe4 xsa400/xs= a400-4.15-07.patch e4c77fac42b8b0b50cdc9de30f406176c44de75d647e36b4bbd6360dd70c8aa6 xsa400/xs= a400-4.15-08.patch 652cd8700b830b3520db325cfd90eab6c08bd423debb21c05caa7edfef9ee671 xsa400/xs= a400-4.15-09.patch 50e58d663690475ce35a0a65eda88a2c2da319ddc02eb15b5a7d568a8f0a0366 xsa400/xs= a400-4.15-10.patch 37a18da6ad1f529bfdc4156225f18c17c10a45302b7d6045ee38c934656589da xsa400/xs= a400-4.15-11.patch ff069d123df2aba7a4f3185f21f7ca36b34fc026dcdd279224c86698f84c0975 xsa400/xs= a400-4.15-12.patch 76497919563cdf2804f5071325c032acd04cf8df75c0dcb4b207a93b9ae80927 xsa400/xs= a400-4.16-01.patch 150f2a7621ec17d6369a6ebbc2c08c502f3524acb89855a86a25d7b4fa3e3270 xsa400/xs= a400-4.16-02.patch cd59bca0fcab4bda1d0ea839501543a59b53aef61e96a0d949675bc5550a6fcb xsa400/xs= a400-4.16-03.patch 098edab3ed8915a3598badaa1d452f7c8ab2d8e72879dd9bf941b2093e6df9d1 xsa400/xs= a400-4.16-04.patch a85640291e1bc1cdb757172eb6d2036834ad2eb7b84252cc64d29db3feeff331 xsa400/xs= a400-4.16-05.patch 99d43caf1ce60f421d940c2774e2a59d65d1f0dcccd941f13066117a19222b22 xsa400/xs= a400-4.16-06.patch fbe5ec58da594dffd3e63c18406280f27d976609350d7c7083acbf2f2e6538cd xsa400/xs= a400-4.16-07.patch e6b0d400beda8ff0e9bdbfd033bc23935069b41dbd5dddf863dbd70de44d908f xsa400/xs= a400-4.16-08.patch 965f96bdb33a872942de42597c7cc32012020f37b25a84015ecc55387d6b07dd xsa400/xs= a400-4.16-09.patch 7996b1462374168ddc9cbc01c990d5cb40140d7a100096f284f6b74fb4ad7ec4 xsa400/xs= a400-4.16-10.patch 23e325be799b299e9621e76eeff646b81518a4124474fb766d3bf6f0cc925083 xsa400/xs= a400-4.16-11.patch 6fa43e1a8f53184724cd4a7b5c13f0fd699c998af968bafaefda570432b5a7d8 xsa400/xs= a400-4.16-12.patch 82306d680ef445bee04969028184f65b5e106c89c308fbb876b858f77fea9506 xsa400/xs= a400-04.patch ccf3ff62b427d3d2ea46d4da96beeef2cb64674bc0d247352233c4b84a21f205 xsa400/xs= a400-05.patch 8b3f767ca659e8bbf4983927999bdb92d9fa42e3a88973e22facda0e23f29a84 xsa400/xs= a400-06.patch bb570b89a2d4b535831d9211bf08cc0c62c060dc7808911afd8186082b884cf8 xsa400/xs= a400-07.patch 8382fd5336b5b4b3388dee099da00b1e728dea77d96825c6088991d7e50f333b xsa400/xs= a400-08.patch 6909363863932ca77c9b7384516965bc1697fab9b4814294a1675fb6ce8e166e xsa400/xs= a400-09.patch c37fee4dd9ab2bf64ebb8b9c553f793bfcef9a7cf1972b0000fe6ce28b9e8e60 xsa400/xs= a400-10.patch 70f11f64457c9703f09c3121d08d5ff4676af20bd42eb1262c433a5e0f79ea41 xsa400/xs= a400-11.patch 724e34d262939162ecab713c070cc07b8f7baeca50ee8b62bb59460ec4f7fbdb xsa400/xs= a400-12.patch $ DEPLOYMENT DURING EMBARGO =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Deployment of the patches described above (or others which are substantially similar) is permitted during the embargo, even on public-facing systems with untrusted guest users and administrators. HOWEVER, deployment of the mitigation is NOT permitted (except where all the affected systems and VMs are administered and used only by organisations which are members of the Xen Project Security Issues Predisclosure List). Specifically, deployment on public cloud systems is NOT permitted. This is because removal of pass-through devices or their replacement by emulated devices is a guest visible configuration change, which may lead to re-discovery of the issue. Deployment of this mitigation is permitted only AFTER the embargo ends. AND: Distribution of updated software is prohibited (except to other members of the predisclosure list). (Note: this during-embargo deployment notice is retained in post-embargo publicly released Xen Project advisories, even though it is then no longer applicable. This is to enable the community to have oversight of the Xen Project Security Team's decisionmaking.) For more information about permissible uses of embargoed information, consult the Xen Project community's agreed Security Policy: http://www.xenproject.org/security-policy.html -----BEGIN PGP SIGNATURE----- iQFABAEBCAAqFiEEI+MiLBRfRHX6gGCng/4UyVfoK9kFAmJML+0MHHBncEB4ZW4u b3JnAAoJEIP+FMlX6CvZQl8IALuh2RTTSiQBYeybKZPr3QEOfy+L3VFzNbRZeGBc jpN12lXjzkFvVuTXDu6Cgw1g6yhRrcRnhGWhx3T8RpGeYhHq1GeKSw7+c4NTsiDL 21P9F3mEban6tOUa82V2PTkYfAMMpbn5apOcsMvdlPoEgXdgLPh5HoVIvXQQO6Ni 3MkCN7foV3M07jAiB4ehqrsPLhzGSCCRJfiD9PA1/RnnzCBrspyyWepF7mwzh2cx 1kENmG8mSwA3Eg0fNUMDBi6W+drNmIx4gooYo3LBnCyMgzUrv7+bzkvjpcU8+dAq H5i2Morbx4j0F/TcQ8+23KjzNvJHbiqKVrIFCoa1z54dGC8=3D =3Dtz+l -----END PGP SIGNATURE----- --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-01.patch" Content-Disposition: attachment; filename="xsa400/xsa400-01.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggKGRlKWFzc2lnbiBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSB1cGRhdGVkLgoKQWxzbyBhZGp1c3QgYSByZWxhdGVk IGxvZyBtZXNzYWdlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM1OCAvIHBhcnQg b2YgWFNBLTQwMC4KCkZpeGVzOiA4Yjk5ZjQ0MDBiNjkgKCJWVC1kOiBmaXgg Uk1SUiByZWxhdGVkIGVycm9yIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmll d2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4KUmV2aWV3ZWQt Ynk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgotLS0KdjI6 IERvbid0IHVubWFwIFJNUlJzIGZvciBEb20wLgoKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTI0MTQsNiArMjQxNCwxMCBA QCBzdGF0aWMgaW50IGNmX2NoZWNrIHJlYXNzaWduX2RldmljZV9vd25lCiB7 CiAgICAgaW50IHJldDsKIAorICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3Vu bWFwKHNvdXJjZSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0ICkKKyAg ICAgICAgcmV0dXJuIHJldDsKKwogICAgIC8qCiAgICAgICogSWYgdGhlIGRl dmljZSBiZWxvbmdzIHRvIHRoZSBoYXJkd2FyZSBkb21haW4sIGFuZCBpdCBo YXMgUk1SUiwgZG9uJ3QKICAgICAgKiByZW1vdmUgaXQgZnJvbSB0aGUgaGFy ZHdhcmUgZG9tYWluLCBiZWNhdXNlIEJJT1MgbWF5IHVzZSBSTVJSIGF0CkBA IC0yNDQyLDEwICsyNDQ2LDYgQEAgc3RhdGljIGludCBjZl9jaGVjayByZWFz c2lnbl9kZXZpY2Vfb3duZQogICAgICAgICAgICAgfQogICAgIH0KIAotICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2Zm4sIHBk ZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAgcmV0dXJuIHJldDsKLQog ICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWlu ICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBsaXN0X21vdmUoJnBkZXYt PmRvbWFpbl9saXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwpAQCAtMjUzMCw5 ICsyNTMwLDggQEAgc3RhdGljIGludCBjZl9jaGVjayBpbnRlbF9pb21tdV9h c3NpZ25fZAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0ID0gcmVhc3Np Z25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7Ci0gICAg aWYgKCByZXQgfHwgZCA9PSBkb21faW8gKQotICAgICAgICByZXR1cm4gcmV0 OworICAgIGlmICggZCA9PSBkb21faW8gKQorICAgICAgICByZXR1cm4gcmVh c3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7CiAK ICAgICAvKiBTZXR1cCBybXJyIGlkZW50aXR5IG1hcHBpbmcgKi8KICAgICBm b3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBpICkKQEAgLTI1NDUs MjAgKzI1NDQsMzcgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbnRlbF9pb21t dV9hc3NpZ25fZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgZmxhZyk7CiAgICAgICAgICAg ICBpZiAoIHJldCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg aW50IHJjOwotCi0gICAgICAgICAgICAgICAgcmMgPSByZWFzc2lnbl9kZXZp Y2Vfb3duZXJzaGlwKGQsIHMsIGRldmZuLCBwZGV2KTsKICAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfRVJSIFZURFBSRUZJWAotICAgICAgICAg ICAgICAgICAgICAgICAiIGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uICgl IlBSSXg2NCIsJSJQUkl4NjQiXSBmb3IgRG9tJWQgKCVkKVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgcm1yci0+YmFzZV9hZGRyZXNzLCBybXJyLT5l bmRfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWlu X2lkLCByZXQpOwotICAgICAgICAgICAgICAgIGlmICggcmMgKQotICAgICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIgVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAi IGZhaWxlZCB0byByZWNsYWltICVwcCBmcm9tICVwZCAoJWQpXG4iLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMyhzZWcsIGJ1cywg ZGV2Zm4pLCBkLCByYyk7Ci0gICAgICAgICAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICIlcGQ6IGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uIFslIlBS SXg2NCIsJSJQUkl4NjQiXTogJWRcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgIGQsIHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJlc3Ms IHJldCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9 CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoICFyZXQgKQorICAgICAg ICByZXQgPSByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlwKHMsIGQsIGRldmZu LCBwZGV2KTsKKworICAgIC8qIFNlZSByZWFzc2lnbl9kZXZpY2Vfb3duZXJz aGlwKCkgZm9yIHRoZSBod2RvbSBhc3BlY3QuICovCisgICAgaWYgKCAhcmV0 IHx8IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgIHJldHVybiBy ZXQ7CisKKyAgICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBp ICkKKyAgICB7CisgICAgICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBzZWcg JiYKKyAgICAgICAgICAgICBQQ0lfQlVTKGJkZikgPT0gYnVzICYmCisgICAg ICAgICAgICAgUENJX0RFVkZOMihiZGYpID09IGRldmZuICkKKyAgICAgICAg eworICAgICAgICAgICAgaW50IHJjID0gaW9tbXVfaWRlbnRpdHlfbWFwcGlu ZyhkLCBwMm1fYWNjZXNzX3gsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJtcnItPmJhc2VfYWRkcmVzcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ ZW5kX2FkZHJlc3MsIDApOworCisgICAgICAgICAgICBpZiAoIHJjICYmIHJj ICE9IC1FTk9FTlQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWAorICAgICAgICAgICAgICAg ICAgICAgICAiJXBkOiBjYW5ub3QgdW5tYXAgcmVzZXJ2ZWQgcmVnaW9uIFsl IlBSSXg2NCIsJSJQUkl4NjQiXTogJWRcbiIsCisgICAgICAgICAgICAgICAg ICAgICAgIGQsIHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJl c3MsIHJjKTsKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg IH0K --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-02.patch" Content-Disposition: attachment; filename="xsa400/xsa400-02.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggYWRkL3JlbW92ZSBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSBjbGVhcmVkLgoKQWxzbyBzd2l0Y2ggdG8gJXBkIGlu IHJlbGF0ZWQgbG9nIG1lc3NhZ2VzLgoKRml4ZXM6IGZhODhjZmFkZjkxOCAo InZ0LWQ6IE1hcCBSTVJSIGluIGludGVsX2lvbW11X2FkZF9kZXZpY2UoKSBp ZiB0aGUgZGV2aWNlIGhhcyBSTVJSIikKRml4ZXM6IDhiOTlmNDQwMGI2OSAo IlZULWQ6IGZpeCBSTVJSIHJlbGF0ZWQgZXJyb3IgaGFuZGxpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgotLS0Kdjc6IFJlLWJhc2UuCnYyOiBOZXcuCgotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMTk5MiwxNCArMTk5 Miw2IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW50ZWxfaW9tbXVfYWRkX2Rl dmkKICAgICBpZiAoICFwZGV2LT5kb21haW4gKQogICAgICAgICByZXR1cm4g LUVJTlZBTDsKIAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmco cGRldi0+ZG9tYWluLCBkZXZmbiwgcGRldik7Ci0gICAgaWYgKCByZXQgKQot ICAgIHsKLSAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCwg ImQlZDogY29udGV4dCBtYXBwaW5nIGZhaWxlZFxuIiwKLSAgICAgICAgICAg ICAgICBwZGV2LT5kb21haW4tPmRvbWFpbl9pZCk7Ci0gICAgICAgIHJldHVy biByZXQ7Ci0gICAgfQotCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2UgKCBy bXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5zZWdt ZW50ID09IHBkZXYtPnNlZyAmJgpAQCAtMjAxNiwxMiArMjAwOCwxNyBAQCBz dGF0aWMgaW50IGNmX2NoZWNrIGludGVsX2lvbW11X2FkZF9kZXZpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJtcnItPmJh c2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJlc3MsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOwogICAgICAgICAgICAg aWYgKCByZXQgKQotICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VS UiBWVERQUkVGSVgsICJkJWQ6IFJNUlIgbWFwcGluZyBmYWlsZWRcbiIsCi0g ICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21haW4tPmRvbWFpbl9p ZCk7CisgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBS RUZJWCwgIiVwZDogUk1SUiBtYXBwaW5nIGZhaWxlZFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFpbik7CiAgICAgICAgIH0KICAg ICB9CiAKLSAgICByZXR1cm4gMDsKKyAgICByZXQgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYpOworICAgIGlm ICggcmV0ICkKKyAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJ WCwgIiVwZDogY29udGV4dCBtYXBwaW5nIGZhaWxlZFxuIiwKKyAgICAgICAg ICAgICAgICBwZGV2LT5kb21haW4pOworCisgICAgcmV0dXJuIHJldDsKIH0K IAogc3RhdGljIGludCBjZl9jaGVjayBpbnRlbF9pb21tdV9lbmFibGVfZGV2 aWNlKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQpAQCAtMjA0MywxMSArMjA0MCwx NSBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIGludGVsX2lvbW11X3JlbW92ZV9k CiB7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwogICAgIHUx NiBiZGY7Ci0gICAgaW50IGk7CisgICAgaW50IHJldCwgaTsKIAogICAgIGlm ICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwog CisgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRldi0+ZG9tYWlu LCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByZXQgKQorICAgICAgICByZXR1 cm4gcmV0OworCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2UgKCBybXJyLCBi ZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5zZWdtZW50ICE9 IHBkZXYtPnNlZyB8fApAQCAtMjA2Myw3ICsyMDY0LDcgQEAgc3RhdGljIGlu dCBjZl9jaGVjayBpbnRlbF9pb21tdV9yZW1vdmVfZAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJtcnItPmVuZF9hZGRyZXNzLCAwKTsKICAg ICB9CiAKLSAgICByZXR1cm4gZG9tYWluX2NvbnRleHRfdW5tYXAocGRldi0+ ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgcmV0dXJuIDA7CiB9CiAKIHN0 YXRpYyBpbnQgX19od2RvbV9pbml0IGNmX2NoZWNrIHNldHVwX2h3ZG9tX2Rl dmljZSgK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-03.patch" Content-Disposition: attachment; filename="xsa400/xsa400-03.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHRpZ2h0ZW4gaW9tbXVfYWxsb2NfcGd0YWJsZSgpJ3Mg cGFyYW1ldGVyCgpUaGlzIGlzIHRvIG1ha2UgbW9yZSBvYnZpb3VzIHRoYXQg bm90aGluZyBvdXRzaWRlIG9mIGRvbWFpbl9pb21tdShkKQphY3R1YWxseSBj aGFuZ2VzIG9yIGlzIG90aGVyd2lzZSBuZWVkZWQgYnkgdGhlIGZ1bmN0aW9u LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpTaWduZWQtb2Zm LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K UmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZp ZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Ci0t LQp2MzogUmUtYmFzZS4KdjI6IE5ldy4KCi0tLSBhL3hlbi9hcmNoL3g4Ni9p bmNsdWRlL2FzbS9pb21tdS5oCisrKyBiL3hlbi9hcmNoL3g4Ni9pbmNsdWRl L2FzbS9pb21tdS5oCkBAIC0xNDIsNyArMTQyLDggQEAgc3RhdGljIGlubGlu ZSB2b2lkIGlvbW11X3N5bmNfY2FjaGUoY29ucwogfQogCiBpbnQgX19tdXN0 X2NoZWNrIGlvbW11X2ZyZWVfcGd0YWJsZXMoc3RydWN0IGRvbWFpbiAqZCk7 Ci1zdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hlY2sgaW9tbXVfYWxsb2Nf cGd0YWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKK3N0cnVjdCBkb21haW5faW9t bXU7CitzdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hlY2sgaW9tbXVfYWxs b2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCk7CiAKICNlbmRp ZiAvKiAhX19BUkNIX1g4Nl9JT01NVV9IX18gKi8KIC8qCi0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTE4NCw3 ICsxODQsNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9mcm9tX2RmbihzdHJ1 Y3QgZG9tCiAgICAgdW5zaWduZWQgbG9uZyAgbmV4dF90YWJsZV9tZm47CiAg ICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgIHN0cnVjdCBwYWdlX2luZm8g KnRhYmxlOwotICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0g ZG9tX2lvbW11KGQpOworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0g ZG9tX2lvbW11KGQpOwogCiAgICAgdGFibGUgPSBoZC0+YXJjaC5hbWQucm9v dF90YWJsZTsKICAgICBsZXZlbCA9IGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9k ZTsKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9m cm9tX2RmbihzdHJ1Y3QgZG9tCiAgICAgICAgICAgICBtZm4gPSBuZXh0X3Rh YmxlX21mbjsKIAogICAgICAgICAgICAgLyogYWxsb2NhdGUgbG93ZXIgbGV2 ZWwgcGFnZSB0YWJsZSAqLwotICAgICAgICAgICAgdGFibGUgPSBpb21tdV9h bGxvY19wZ3RhYmxlKGQpOworICAgICAgICAgICAgdGFibGUgPSBpb21tdV9h bGxvY19wZ3RhYmxlKGhkKTsKICAgICAgICAgICAgIGlmICggdGFibGUgPT0g TlVMTCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgQU1EX0lP TU1VX0VSUk9SKCJjYW5ub3QgYWxsb2NhdGUgSS9PIHBhZ2UgdGFibGVcbiIp OwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBpbnQgaW9tbXVfcGRlX2Zy b21fZGZuKHN0cnVjdCBkb20KIAogICAgICAgICAgICAgaWYgKCBuZXh0X3Rh YmxlX21mbiA9PSAwICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICB0YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoZCk7CisgICAgICAgICAg ICAgICAgdGFibGUgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKICAgICAg ICAgICAgICAgICBpZiAoIHRhYmxlID09IE5VTEwgKQogICAgICAgICAgICAg ICAgIHsKICAgICAgICAgICAgICAgICAgICAgQU1EX0lPTU1VX0VSUk9SKCJj YW5ub3QgYWxsb2NhdGUgSS9PIHBhZ2UgdGFibGVcbiIpOwpAQCAtNTU1LDcg KzU1NSw3IEBAIGludCBfX2luaXQgY2ZfY2hlY2sgYW1kX2lvbW11X3F1YXJh bnRpbmUKIAogICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2Nr KTsKIAotICAgIGhkLT5hcmNoLmFtZC5yb290X3RhYmxlID0gaW9tbXVfYWxs b2NfcGd0YWJsZShkKTsKKyAgICBoZC0+YXJjaC5hbWQucm9vdF90YWJsZSA9 IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwogICAgIGlmICggIWhkLT5hcmNo LmFtZC5yb290X3RhYmxlICkKICAgICAgICAgZ290byBvdXQ7CiAKQEAgLTU3 MCw3ICs1NzAsNyBAQCBpbnQgX19pbml0IGNmX2NoZWNrIGFtZF9pb21tdV9x dWFyYW50aW5lCiAgICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0 aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKICAgICAgICAg ICogemVyb2VkLgogICAgICAgICAgKi8KLSAgICAgICAgcGcgPSBpb21tdV9h bGxvY19wZ3RhYmxlKGQpOworICAgICAgICBwZyA9IGlvbW11X2FsbG9jX3Bn dGFibGUoaGQpOwogICAgICAgICBpZiAoICFwZyApCiAgICAgICAgICAgICBi cmVhazsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNp X2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI0Miw3ICsyNDIsNyBAQCBpbnQgYW1k X2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRvbWFpbiAqCiAKICAgICBpZiAo IHVubGlrZWx5KCFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSkgKQogICAgIHsK LSAgICAgICAgaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBpb21tdV9hbGxv Y19wZ3RhYmxlKGQpOworICAgICAgICBoZC0+YXJjaC5hbWQucm9vdF90YWJs ZSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwogICAgICAgICBpZiAoICFo ZC0+YXJjaC5hbWQucm9vdF90YWJsZSApCiAgICAgICAgICAgICByZXR1cm4g LUVOT01FTTsKICAgICB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jCkBAIC0zMTgsNyArMzE4LDcgQEAgc3RhdGljIHU2NCBhZGRy X3RvX2RtYV9wYWdlX21hZGRyKHN0cnVjdAogICAgIHsKICAgICAgICAgc3Ry dWN0IHBhZ2VfaW5mbyAqcGc7CiAKLSAgICAgICAgaWYgKCAhYWxsb2MgfHwg IShwZyA9IGlvbW11X2FsbG9jX3BndGFibGUoZG9tYWluKSkgKQorICAgICAg ICBpZiAoICFhbGxvYyB8fCAhKHBnID0gaW9tbXVfYWxsb2NfcGd0YWJsZSho ZCkpICkKICAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgICAgIGhkLT5h cmNoLnZ0ZC5wZ2RfbWFkZHIgPSBwYWdlX3RvX21hZGRyKHBnKTsKQEAgLTMz OCw3ICszMzgsNyBAQCBzdGF0aWMgdTY0IGFkZHJfdG9fZG1hX3BhZ2VfbWFk ZHIoc3RydWN0CiAgICAgICAgICAgICBpZiAoICFhbGxvYyApCiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHBnID0gaW9tbXVfYWxs b2NfcGd0YWJsZShkb21haW4pOworICAgICAgICAgICAgcGcgPSBpb21tdV9h bGxvY19wZ3RhYmxlKGhkKTsKICAgICAgICAgICAgIGlmICggIXBnICkKICAg ICAgICAgICAgICAgICBicmVhazsKIApAQCAtMjc2Myw3ICsyNzYzLDcgQEAg c3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sgaW50ZWxfaW9tbXVfcQogICAg ICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBwZyA9IGlvbW11X2FsbG9j X3BndGFibGUoZCk7CisgICAgcGcgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhk KTsKIAogICAgIHJjID0gLUVOT01FTTsKICAgICBpZiAoICFwZyApCkBAIC0y NzgyLDcgKzI3ODIsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBjZl9jaGVjayBp bnRlbF9pb21tdV9xCiAgICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFu ZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKICAgICAg ICAgICogemVyb2VkLgogICAgICAgICAgKi8KLSAgICAgICAgcGcgPSBpb21t dV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBwZyA9IGlvbW11X2FsbG9j X3BndGFibGUoaGQpOwogCiAgICAgICAgIGlmICggIXBnICkKICAgICAgICAg ICAgIGdvdG8gb3V0OwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94 ODYvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYv aW9tbXUuYwpAQCAtNDIwLDkgKzQyMCw4IEBAIGludCBpb21tdV9mcmVlX3Bn dGFibGVzKHN0cnVjdCBkb21haW4gKmQKICAgICByZXR1cm4gMDsKIH0KIAot c3RydWN0IHBhZ2VfaW5mbyAqaW9tbXVfYWxsb2NfcGd0YWJsZShzdHJ1Y3Qg ZG9tYWluICpkKQorc3RydWN0IHBhZ2VfaW5mbyAqaW9tbXVfYWxsb2NfcGd0 YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKIHsKLSAgICBzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAgICB1bnNpZ25l ZCBpbnQgbWVtZmxhZ3MgPSAwOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBn OwogICAgIHZvaWQgKnA7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-00.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-00.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBzcGxpdCBkb21pZCBtYXAgY2xlYW51cCBjaGVjayBpbnRvIGEg ZnVuY3Rpb24KClRoaXMgbG9naWMgd2lsbCB3YW50IGludm9raW5nIGZyb20g ZWxzZXdoZXJlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTE1Miw2ICsxNTIsNjggQEAgc3RhdGljIHZvaWQgX19pbml0 IGZyZWVfaW50ZWxfaW9tbXUoc3RydQogICAgIHhmcmVlKGludGVsKTsKIH0K IAorc3RhdGljIHZvaWQgY2xlYW51cF9kb21pZF9tYXAoc3RydWN0IGRvbWFp biAqZG9tYWluLCBzdHJ1Y3QgaW9tbXUgKmlvbW11KQoreworICAgIGludCBp b21tdV9kb21pZCA9IGRvbWFpbl9pb21tdV9kb21pZChkb21haW4sIGlvbW11 KTsKKworICAgIGlmICggaW9tbXVfZG9taWQgPj0gMCApCisgICAgeworICAg ICAgICAvKgorICAgICAgICAgKiBVcGRhdGUgZG9taWRfbWFwW10gL2JlZm9y ZS8gZG9taWRfYml0bWFwW10gdG8gYXZvaWQgYSByYWNlIHdpdGgKKyAgICAg ICAgICogY29udGV4dF9zZXRfZG9tYWluX2lkKCksIHNldHRpbmcgdGhlIHNs b3QgdG8gRE9NSURfSU5WQUxJRCBmb3IKKyAgICAgICAgICogLT5kb21pZF9t YXBbXSByZWFkcyB0byBwcm9kdWNlIGEgc3VpdGFibGUgdmFsdWUgd2hpbGUg dGhlIGJpdCBpcworICAgICAgICAgKiBzdGlsbCBzZXQuCisgICAgICAgICAq LworICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2lvbW11X2RvbWlkXSA9IERP TUlEX0lOVkFMSUQ7CisgICAgICAgIGNsZWFyX2JpdChpb21tdV9kb21pZCwg aW9tbXUtPmRvbWlkX2JpdG1hcCk7CisgICAgfQorfQorCitzdGF0aWMgYm9v bCBhbnlfcGRldl9iZWhpbmRfaW9tbXUoY29uc3Qgc3RydWN0IGRvbWFpbiAq ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaW9tbXUgKmlvbW11KQorewor ICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2OworCisgICAgZm9yX2Vh Y2hfcGRldiAoIGQsIHBkZXYgKQorICAgIHsKKyAgICAgICAgY29uc3Qgc3Ry dWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOworCisgICAgICAgIGlmICggcGRl diA9PSBleGNsdWRlICkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg ICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7 CisgICAgICAgIGlmICggZHJoZCAmJiBkcmhkLT5pb21tdSA9PSBpb21tdSAp CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1 cm4gZmFsc2U7Cit9CisKKy8qCisgKiBJZiBubyBvdGhlciBkZXZpY2VzIHVu ZGVyIHRoZSBzYW1lIGlvbW11IG93bmVkIGJ5IHRoaXMgZG9tYWluLAorICog Y2xlYXIgaW9tbXUgaW4gaW9tbXVfYml0bWFwIGFuZCBjbGVhciBkb21haW5f aWQgaW4gZG9taWRfYml0bWFwLgorICovCitzdGF0aWMgdm9pZCBjaGVja19j bGVhbnVwX2RvbWlkX21hcChzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9k ZXYgKmV4Y2x1ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgaW9tbXUgKmlvbW11KQoreworICAgIGJvb2wgZm91bmQg PSBhbnlfcGRldl9iZWhpbmRfaW9tbXUoZCwgZXhjbHVkZSwgaW9tbXUpOwor CisgICAgLyoKKyAgICAgKiBIaWRkZW4gZGV2aWNlcyBhcmUgYXNzb2NpYXRl ZCB3aXRoIERvbVhFTiBidXQgdXNhYmxlIGJ5IHRoZSBoYXJkd2FyZQorICAg ICAqIGRvbWFpbi4gSGVuY2UgdGhleSBuZWVkIGNvbnNpZGVyaW5nIGhlcmUg YXMgd2VsbC4KKyAgICAgKi8KKyAgICBpZiAoICFmb3VuZCAmJiBpc19oYXJk d2FyZV9kb21haW4oZCkgKQorICAgICAgICBmb3VuZCA9IGFueV9wZGV2X2Jl aGluZF9pb21tdShkb21feGVuLCBleGNsdWRlLCBpb21tdSk7CisKKyAgICBp ZiAoICFmb3VuZCApCisgICAgeworICAgICAgICBjbGVhcl9iaXQoaW9tbXUt PmluZGV4LCAmZG9tX2lvbW11KGQpLT5hcmNoLmlvbW11X2JpdG1hcCk7Cisg ICAgICAgIGNsZWFudXBfZG9taWRfbWFwKGQsIGlvbW11KTsKKyAgICB9Cit9 CisKIHN0YXRpYyBpbnQgaW9tbXVzX2luY29oZXJlbnQ7CiAKIHN0YXRpYyB2 b2lkIHN5bmNfY2FjaGUoY29uc3Qgdm9pZCAqYWRkciwgdW5zaWduZWQgaW50 IHNpemUpCkBAIC0xNjcxLDcgKzE3MzMsNiBAQCBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgc3RydWN0IGlvbW11ICpp b21tdTsKICAgICBpbnQgcmV0ID0gMDsKICAgICB1OCBzZWcgPSBwZGV2LT5z ZWcsIGJ1cyA9IHBkZXYtPmJ1cywgdG1wX2J1cywgdG1wX2RldmZuLCBzZWNi dXM7Ci0gICAgaW50IGZvdW5kID0gMDsKIAogICAgIGRyaGQgPSBhY3BpX2Zp bmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CiAgICAgaWYgKCAhZHJoZCAp CkBAIC0xNzQwLDQ1ICsxODAxLDggQEAgc3RhdGljIGludCBkb21haW5fY29u dGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICBnb3RvIG91dDsKICAgICB9 CiAKLSAgICAvKgotICAgICAqIGlmIG5vIG90aGVyIGRldmljZXMgdW5kZXIg dGhlIHNhbWUgaW9tbXUgb3duZWQgYnkgdGhpcyBkb21haW4sCi0gICAgICog Y2xlYXIgaW9tbXUgaW4gaW9tbXVfYml0bWFwIGFuZCBjbGVhciBkb21haW5f aWQgaW4gZG9taWRfYml0bXAKLSAgICAgKi8KLSAgICBmb3JfZWFjaF9wZGV2 ICggZG9tYWluLCBwZGV2ICkKLSAgICB7Ci0gICAgICAgIGlmICggcGRldi0+ c2VnID09IHNlZyAmJiBwZGV2LT5idXMgPT0gYnVzICYmIHBkZXYtPmRldmZu ID09IGRldmZuICkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAg IGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7Ci0g ICAgICAgIGlmICggZHJoZCAmJiBkcmhkLT5pb21tdSA9PSBpb21tdSApCi0g ICAgICAgIHsKLSAgICAgICAgICAgIGZvdW5kID0gMTsKLSAgICAgICAgICAg IGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCBmb3VuZCA9 PSAwICkKLSAgICB7Ci0gICAgICAgIGludCBpb21tdV9kb21pZDsKLQotICAg ICAgICBjbGVhcl9iaXQoaW9tbXUtPmluZGV4LCAmZG9tX2lvbW11KGRvbWFp biktPmFyY2guaW9tbXVfYml0bWFwKTsKLQotICAgICAgICBpb21tdV9kb21p ZCA9IGRvbWFpbl9pb21tdV9kb21pZChkb21haW4sIGlvbW11KTsKLSAgICAg ICAgaWYgKCBpb21tdV9kb21pZCA9PSAtMSApCi0gICAgICAgIHsKLSAgICAg ICAgICAgIHJldCA9IC1FSU5WQUw7Ci0gICAgICAgICAgICBnb3RvIG91dDsK LSAgICAgICAgfQotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFVwZGF0ZSBk b21pZF9tYXBbXSAvYmVmb3JlLyBkb21pZF9iaXRtYXBbXSB0byBhdm9pZCBh IHJhY2Ugd2l0aAotICAgICAgICAgKiBjb250ZXh0X3NldF9kb21haW5faWQo KSwgc2V0dGluZyB0aGUgc2xvdCB0byBET01JRF9JTlZBTElEIGZvcgotICAg ICAgICAgKiAtPmRvbWlkX21hcFtdIHJlYWRzIHRvIHByb2R1Y2UgYSBzdWl0 YWJsZSB2YWx1ZSB3aGlsZSB0aGUgYml0IGlzCi0gICAgICAgICAqIHN0aWxs IHNldC4KLSAgICAgICAgICovCi0gICAgICAgIGlvbW11LT5kb21pZF9tYXBb aW9tbXVfZG9taWRdID0gRE9NSURfSU5WQUxJRDsKLSAgICAgICAgY2xlYXJf Yml0KGlvbW11X2RvbWlkLCBpb21tdS0+ZG9taWRfYml0bWFwKTsKLSAgICB9 CisgICAgaWYgKCAhcmV0ICkKKyAgICAgICAgY2hlY2tfY2xlYW51cF9kb21p ZF9tYXAoZG9tYWluLCBwZGV2LCBpb21tdSk7CiAKIG91dDoKICAgICByZXR1 cm4gcmV0Owo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-01.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-01.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggKGRlKWFzc2lnbiBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSB1cGRhdGVkLgoKQWxzbyBhZGp1c3QgYSByZWxhdGVk IGxvZyBtZXNzYWdlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM1OCAvIHBhcnQg b2YgWFNBLTQwMC4KCkZpeGVzOiA4Yjk5ZjQ0MDBiNjkgKCJWVC1kOiBmaXgg Uk1SUiByZWxhdGVkIGVycm9yIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmll d2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4KUmV2aWV3ZWQt Ynk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTIzNTIsNiAr MjM1MiwxMCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNo aXAoCiB7CiAgICAgaW50IHJldDsKIAorICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X3VubWFwKHNvdXJjZSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0 ICkKKyAgICAgICAgcmV0dXJuIHJldDsKKwogICAgIC8qCiAgICAgICogRGV2 aWNlcyBhc3NpZ25lZCB0byB1bnRydXN0ZWQgZG9tYWlucyAoaGVyZSBhc3N1 bWVkIHRvIGJlIGFueSBkb21VKQogICAgICAqIGNhbiBhdHRlbXB0IHRvIHNl bmQgYXJiaXRyYXJ5IExBUElDL01TSSBtZXNzYWdlcy4gV2UgYXJlIHVucHJv dGVjdGVkCkBAIC0yMzg4LDEwICsyMzkyLDYgQEAgc3RhdGljIGludCByZWFz c2lnbl9kZXZpY2Vfb3duZXJzaGlwKAogICAgICAgICAgICAgfQogICAgIH0K IAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2 Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAgcmV0dXJuIHJl dDsKLQogICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ ZG9tYWluICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBsaXN0X21vdmUo JnBkZXYtPmRvbWFpbl9saXN0LCAmZG9tX2lvLT5hcmNoLnBkZXZfbGlzdCk7 CkBAIC0yNDY4LDkgKzI0NjgsOCBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11 X2Fzc2lnbl9kZXZpY2UoCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXQg PSByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlwKHMsIGQsIGRldmZuLCBwZGV2 KTsKLSAgICBpZiAoIHJldCB8fCBkID09IGRvbV9pbyApCi0gICAgICAgIHJl dHVybiByZXQ7CisgICAgaWYgKCBkID09IGRvbV9pbyApCisgICAgICAgIHJl dHVybiByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlwKHMsIGQsIGRldmZuLCBw ZGV2KTsKIAogICAgIC8qIFNldHVwIHJtcnIgaWRlbnRpdHkgbWFwcGluZyAq LwogICAgIGZvcl9lYWNoX3JtcnJfZGV2aWNlKCBybXJyLCBiZGYsIGkgKQpA QCAtMjQ4MywyMCArMjQ4MiwzNyBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11 X2Fzc2lnbl9kZXZpY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJtcnItPmVuZF9hZGRyZXNzLCBmbGFnKTsKICAgICAg ICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg ICAgICBpbnQgcmM7Ci0KLSAgICAgICAgICAgICAgICByYyA9IHJlYXNzaWdu X2RldmljZV9vd25lcnNoaXAoZCwgcywgZGV2Zm4sIHBkZXYpOwogICAgICAg ICAgICAgICAgIHByaW50ayhYRU5MT0dfR19FUlIgVlREUFJFRklYCi0gICAg ICAgICAgICAgICAgICAgICAgICIgY2Fubm90IG1hcCByZXNlcnZlZCByZWdp b24gKCUiUFJJeDY0IiwlIlBSSXg2NCJdIGZvciBEb20lZCAoJWQpXG4iLAot ICAgICAgICAgICAgICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJt cnItPmVuZF9hZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICBkLT5k b21haW5faWQsIHJldCk7Ci0gICAgICAgICAgICAgICAgaWYgKCByYyApCi0g ICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICBwcmludGso WEVOTE9HX0VSUiBWVERQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICIgZmFpbGVkIHRvIHJlY2xhaW0gJTA0eDolMDJ4OiUwMnguJXUgZnJv bSAlcGQgKCVkKVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl ZywgYnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwgZCwg cmMpOwotICAgICAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7Ci0g ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAiJXBk OiBjYW5ub3QgbWFwIHJlc2VydmVkIHJlZ2lvbiBbJSJQUkl4NjQiLCUiUFJJ eDY0Il06ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBkLCBybXJy LT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRyZXNzLCByZXQpOworICAg ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9 CisgICAgfQorCisgICAgaWYgKCAhcmV0ICkKKyAgICAgICAgcmV0ID0gcmVh c3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7CisK KyAgICAvKiBTZWUgcmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcCgpIGZvciB0 aGUgaHdkb20gYXNwZWN0LiAqLworICAgIGlmICggIXJldCB8fCBpc19oYXJk d2FyZV9kb21haW4oZCkgKQorICAgICAgICByZXR1cm4gcmV0OworCisgICAg Zm9yX2VhY2hfcm1ycl9kZXZpY2UoIHJtcnIsIGJkZiwgaSApCisgICAgewor ICAgICAgICBpZiAoIHJtcnItPnNlZ21lbnQgPT0gc2VnICYmCisgICAgICAg ICAgICAgUENJX0JVUyhiZGYpID09IGJ1cyAmJgorICAgICAgICAgICAgIFBD SV9ERVZGTjIoYmRmKSA9PSBkZXZmbiApCisgICAgICAgIHsKKyAgICAgICAg ICAgIGludCByYyA9IGlvbW11X2lkZW50aXR5X21hcHBpbmcoZCwgcDJtX2Fj Y2Vzc194LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJtcnItPmVuZF9hZGRyZXNz LCAwKTsKKworICAgICAgICAgICAgaWYgKCByYyAmJiByYyAhPSAtRU5PRU5U ICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgKKyAgICAgICAgICAgICAgICAgICAgICAgIiVw ZDogY2Fubm90IHVubWFwIHJlc2VydmVkIHJlZ2lvbiBbJSJQUkl4NjQiLCUi UFJJeDY0Il06ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICBkLCBy bXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRyZXNzLCByYyk7Cisg ICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwogICAgICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-02.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-02.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggYWRkL3JlbW92ZSBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSBjbGVhcmVkLgoKQWxzbyBzd2l0Y2ggdG8gJXBkIGlu IHJlbGF0ZWQgbG9nIG1lc3NhZ2VzLgoKRml4ZXM6IGZhODhjZmFkZjkxOCAo InZ0LWQ6IE1hcCBSTVJSIGluIGludGVsX2lvbW11X2FkZF9kZXZpY2UoKSBp ZiB0aGUgZGV2aWNlIGhhcyBSTVJSIikKRml4ZXM6IDhiOTlmNDQwMGI2OSAo IlZULWQ6IGZpeCBSTVJSIHJlbGF0ZWQgZXJyb3IgaGFuZGxpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTE5ODUsMTQgKzE5ODUsNiBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X2FkZF9kZXZpY2UodTggZGV2CiAgICAgaWYgKCAhcGRldi0+ZG9tYWlu ICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICByZXQgPSBkb21h aW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYp OwotICAgIGlmICggcmV0ICkKLSAgICB7Ci0gICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsICJkJWQ6IGNvbnRleHQgbWFwcGluZyBmYWls ZWRcbiIsCi0gICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5f aWQpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQogICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7CiAgICAg ICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBwZGV2LT5zZWcgJiYKQEAgLTIw MDksMTIgKzIwMDEsMTcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hZGRf ZGV2aWNlKHU4IGRldgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRy ZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKICAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiZCVkOiBSTVJSIG1h cHBpbmcgZmFpbGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IFJNUlIgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21h aW4pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyhwZGV2LT5kb21haW4sIGRl dmZuLCBwZGV2KTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGRwcmludGso WEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IGNvbnRleHQgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluKTsKKwor ICAgIHJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf ZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTIwMzYs MTEgKzIwMzMsMTUgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVf ZGV2aWNlKHU4CiB7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJy OwogICAgIHUxNiBiZGY7Ci0gICAgaW50IGk7CisgICAgaW50IHJldCwgaTsK IAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogCisgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRl di0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByZXQgKQorICAg ICAgICByZXR1cm4gcmV0OworCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2Ug KCBybXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5z ZWdtZW50ICE9IHBkZXYtPnNlZyB8fApAQCAtMjA1Niw3ICsyMDU3LDcgQEAg c3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ZW5kX2FkZHJlc3Ms IDApOwogICAgIH0KIAotICAgIHJldHVybiBkb21haW5fY29udGV4dF91bm1h cChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICByZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fZGV2 aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-03.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-03.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBkcm9wIG93bmVyc2hpcCBjaGVja2luZyBmcm9tIGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKCkKCkRlc3BpdGUgcHV0dGluZyBpbiBxdWl0 ZSBhIGJpdCBvZiBlZmZvcnQgaXQgd2FzIG5vdCBwb3NzaWJsZSB0bwplc3Rh Ymxpc2ggd2h5IGV4YWN0bHkgdGhpcyBjb2RlIGV4aXN0cyAoYmV5b25kIHBv c3NpYmx5IHNhbml0eQpjaGVja2luZykuIEluc3RlYWQgb2YgYSBzdWJzZXF1 ZW50IGNoYW5nZSBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGlzCmxvZ2ljLCBz aW1wbHkgZ2V0IHJpZCBvZiBpdC4KClRha2UgdGhlIG9wcG9ydHVuaXR5IGFu ZCBtb3ZlIHRoZSByZXNwZWN0aXZlIHVubWFwX3Z0ZF9kb21haW5fcGFnZSgp IG91dApvZiB0aGUgbG9ja2VkIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KCi0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMTIsMjggKzEx Miw2IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNvbnRleHRfZ2V0 X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb21tdSAq aW9tbXUpCi17Ci0gICAgdW5zaWduZWQgbG9uZyBkb21faW5kZXgsIG5yX2Rv bTsKLSAgICBpbnQgZG9taWQgPSAtMTsKLQotICAgIGlmIChpb21tdSAmJiBj b250ZXh0KQotICAgIHsKLSAgICAgICAgbnJfZG9tID0gY2FwX25kb21zKGlv bW11LT5jYXApOwotCi0gICAgICAgIGRvbV9pbmRleCA9IGNvbnRleHRfZG9t YWluX2lkKCpjb250ZXh0KTsKLQotICAgICAgICBpZiAoIGRvbV9pbmRleCA8 IG5yX2RvbSAmJiBpb21tdS0+ZG9taWRfbWFwICkKLSAgICAgICAgICAgIGRv bWlkID0gaW9tbXUtPmRvbWlkX21hcFtkb21faW5kZXhdOwotICAgICAgICBl bHNlCi0gICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRyBWVERQUkVG SVgsCi0gICAgICAgICAgICAgICAgICAgICJkb21faW5kZXggJWx1IGV4Y2Vl ZHMgbnJfZG9tICVsdSBvciBpb21tdSBoYXMgbm8gZG9taWRfbWFwXG4iLAot ICAgICAgICAgICAgICAgICAgICBkb21faW5kZXgsIG5yX2RvbSk7Ci0gICAg fQotICAgIHJldHVybiBkb21pZDsKLX0KLQogc3RhdGljIHN0cnVjdCBpbnRl bF9pb21tdSAqX19pbml0IGFsbG9jX2ludGVsX2lvbW11KHZvaWQpCiB7CiAg ICAgc3RydWN0IGludGVsX2lvbW11ICppbnRlbDsKQEAgLTE0MzMsNDkgKzE0 MTEsOSBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAKICAg ICBpZiAoIGNvbnRleHRfcHJlc2VudCgqY29udGV4dCkgKQogICAgIHsKLSAg ICAgICAgaW50IHJlcyA9IDA7Ci0KLSAgICAgICAgLyogVHJ5IHRvIGdldCBk b21haW4gb3duZXJzaGlwIGZyb20gZGV2aWNlIHN0cnVjdHVyZS4gIElmIHRo YXQncwotICAgICAgICAgKiBub3QgYXZhaWxhYmxlLCB0cnkgdG8gcmVhZCBp dCBmcm9tIHRoZSBjb250ZXh0IGl0c2VsZi4gKi8KLSAgICAgICAgaWYgKCBw ZGV2ICkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKCBwZGV2LT5kb21h aW4gIT0gZG9tYWluICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICBwcmludGsoWEVOTE9HX0dfSU5GTyBWVERQUkVGSVgKLSAgICAgICAgICAg ICAgICAgICAgICAgImQlZDogJTA0eDolMDJ4OiUwMnguJXUgb3duZWQgYnkg ZCVkISIsCi0gICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLAotICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgUENJX1NM T1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCi0gICAgICAgICAgICAgICAg ICAgICAgIHBkZXYtPmRvbWFpbiA/IHBkZXYtPmRvbWFpbi0+ZG9tYWluX2lk IDogLTEpOwotICAgICAgICAgICAgICAgIHJlcyA9IC1FSU5WQUw7Ci0gICAg ICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7 Ci0gICAgICAgICAgICBpbnQgY2RvbWFpbjsKLSAgICAgICAgICAgIGNkb21h aW4gPSBjb250ZXh0X2dldF9kb21haW5faWQoY29udGV4dCwgaW9tbXUpOwot ICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIGNkb21haW4gPCAwICkK LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9H X0dfV0FSTklORyBWVERQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAg ImQlZDogJTA0eDolMDJ4OiUwMnguJXUgbWFwcGVkLCBidXQgY2FuJ3QgZmlu ZCBvd25lciFcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ ZG9tYWluX2lkLAotICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywg UENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwotICAgICAgICAg ICAgICAgIHJlcyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0gICAgICAg ICAgICBlbHNlIGlmICggY2RvbWFpbiAhPSBkb21haW4tPmRvbWFpbl9pZCAp Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX0lORk8gVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICJk JWQ6ICUwNHg6JTAyeDolMDJ4LiV1IGFscmVhZHkgbWFwcGVkIHRvIGQlZCEi LAotICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRl dmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAotICAgICAgICAgICAgICAgICAgICAg ICBjZG9tYWluKTsKLSAgICAgICAgICAgICAgICByZXMgPSAtRUlOVkFMOwot ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgdW5tYXBfdnRk X2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7CiAgICAgICAgIHNwaW5f dW5sb2NrKCZpb21tdS0+bG9jayk7Ci0gICAgICAgIHJldHVybiByZXM7Cisg ICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMp OworICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKICAgICBpZiAoIGlvbW11 X2h3ZG9tX3Bhc3N0aHJvdWdoICYmIGlzX2hhcmR3YXJlX2RvbWFpbihkb21h aW4pICkK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-04.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-04.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiByZS1hc3NpZ24gZGV2aWNlcyBkaXJlY3RseQoKRGV2aWNlcyB3 aXRoIFJNUlJzLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQgaG93L3do ZW4gdGhlIHNwZWNpZmllZAptZW1vcnkgcmVnaW9ucyBtYXkgZ2V0IGFjY2Vz c2VkLCBtYXkgbm90IGJlIGxlZnQgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIK cmVzcGVjdGl2ZSBtYXBwaW5ncyAoYXMgbG9uZyBhcyBpdCdzIG5vdCBjZXJ0 YWluIHRoYXQgdGhlIGRldmljZSBoYXMKYmVlbiBmdWxseSBxdWllc2NlZCku IEhlbmNlIHJhdGhlciB0aGFuIHVubWFwcGluZyB0aGUgb2xkIGNvbnRleHQg YW5kCnRoZW4gbWFwcGluZyB0aGUgbmV3IG9uZSwgcmUtYXNzaWdubWVudCBu ZWVkcyB0byBiZSBkb25lIGluIGEgc2luZ2xlCnN0ZXAuCgpUaGlzIGlzIENW RS0yMDIyLTI2MzU5IC8gcGFydCBvZiBYU0EtNDAwLgoKUmVwb3J0ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKU2lt aWxhcmx5IHF1YXJhbnRpbmluZyBzY3JhdGNoLXBhZ2UgbW9kZSByZWxpZXMg b24gcGFnZSB0YWJsZXMgdG8gYmUKY29udGludW91c2x5IHdpcmVkIHVwLgoK VG8gYXZvaWQgY29tcGxpY2F0aW5nIHRoaW5ncyBtb3JlIHRoYW4gbmVjZXNz YXJ5LCB0cmVhdCBhbGwgZGV2aWNlcwptb3N0bHkgZXF1YWxseSwgaS5lLiBy ZWdhcmRsZXNzIG9mIHRoZWlyIGFzc29jaWF0aW9uIHdpdGggYW55IFJNUlJz LiBUaGUKbWFpbiBkaWZmZXJlbmNlIGlzIHdoZW4gaXQgY29tZXMgdG8gdXBk YXRpbmcgY29udGV4dCBlbnRyaWVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21p YyB3aGVuIHRoZXJlIGFyZSBSTVJScy4gWWV0IGF0b21pY2l0eSBjYW4gb25s eSBiZSBhY2hpZXZlZAp3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBv ZiB3aGljaCB3ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClRoZSBzZWVtaW5n bHkgY29tcGxpY2F0ZWQgY2hvaWNlIG9mIG5vbi1uZWdhdGl2ZSByZXR1cm4g dmFsdWVzIGZvcgpkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpIGlzIHRv IGxpbWl0IGNvZGUgY2h1cm46IFRoaXMgd2F5IGNhbGxlcnMKcGFzc2luZyBO VUxMIGZvciBwZGV2IGRvbid0IG5lZWQgZmlkZGxpbmcgd2l0aC4KClNpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2 aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0 ZXJuLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVy bi5oCkBAIC03MSw3ICs3MSw4IEBAIHZvaWQgZnJlZV9wZ3RhYmxlX21hZGRy KHU2NCBtYWRkcik7CiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdlKHU2NCBt YWRkcik7CiB2b2lkIHVubWFwX3Z0ZF9kb21haW5fcGFnZSh2b2lkICp2YSk7 CiBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoc3RydWN0IGRvbWFp biAqZG9tYWluLCBzdHJ1Y3QgaW9tbXUgKmlvbW11LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHU4IGJ1cywgdTggZGV2Zm4sIGNvbnN0IHN0 cnVjdCBwY2lfZGV2ICopOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2 LCB1bnNpZ25lZCBpbnQgbW9kZSk7CiBpbnQgZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IGlvbW11ICpp b21tdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggYnVzLCB1 OCBkZXZmbik7CiBpbnQgaW50ZWxfaW9tbXVfZ2V0X3Jlc2VydmVkX2Rldmlj ZV9tZW1vcnkoaW9tbXVfZ3JkbV90ICpmdW5jLCB2b2lkICpjdHh0KTsKQEAg LTkxLDggKzkyLDggQEAgaW50IGlzX2lnZF92dF9lbmFibGVkX3F1aXJrKHZv aWQpOwogdm9pZCBwbGF0Zm9ybV9xdWlya3NfaW5pdCh2b2lkKTsKIHZvaWQg dnRkX29wc19wcmVhbWJsZV9xdWlyayhzdHJ1Y3QgaW9tbXUqIGlvbW11KTsK IHZvaWQgdnRkX29wc19wb3N0YW1ibGVfcXVpcmsoc3RydWN0IGlvbW11KiBp b21tdSk7Ci1pbnQgX19tdXN0X2NoZWNrIG1lX3dpZmlfcXVpcmsoc3RydWN0 IGRvbWFpbiAqZG9tYWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHU4IGJ1cywgdTggZGV2Zm4sIGludCBtYXApOworaW50IF9fbXVzdF9j aGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdWlu dDhfdCBidXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1vZGUpOwogdm9pZCBwY2lfdnRk X3F1aXJrKGNvbnN0IHN0cnVjdCBwY2lfZGV2ICopOwogdm9pZCBxdWlya19p b21tdV9jYXBzKHN0cnVjdCBpb21tdSAqaW9tbXUpOwogCi0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMDgsNiArMTA4LDcg QEAgc3RhdGljIGludCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAg ICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0bWFwKTsK KyAgICBjb250ZXh0LT5oaSAmPSB+KCgoMSA8PCBESURfRklFTERfV0lEVEgp IC0gMSkgPDwgRElEX0hJR0hfT0ZGU0VUKTsKICAgICBjb250ZXh0LT5oaSB8 PSAoaSAmICgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkpIDw8IERJRF9I SUdIX09GRlNFVDsKICAgICByZXR1cm4gMDsKIH0KQEAgLTEzOTEsMTUgKzEz OTIsMjcgQEAgc3RhdGljIHZvaWQgX19od2RvbV9pbml0IGludGVsX2lvbW11 X2h3ZAogICAgIH0KIH0KIAorLyoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJu cworICogLSBhIG5lZ2F0aXZlIGVycm5vIHZhbHVlIHVwb24gZXJyb3IsCisg KiAtIHplcm8gdXBvbiBzdWNjZXNzIHdoZW4gcHJldmlvdXNseSB0aGUgZW50 cnkgd2FzIG5vbi1wcmVzZW50LCBvciB0aGlzIGlzbid0CisgKiAgIHRoZSAi bWFpbiIgcmVxdWVzdCBmb3IgYSBkZXZpY2UgKHBkZXYgPT0gTlVMTCksIG9y IGZvciBuby1vcCBxdWFyYW50aW5pbmcKKyAqICAgYXNzaWdubWVudHMsCisg KiAtIHBvc2l0aXZlIChvbmUpIHVwb24gc3VjY2VzcyB3aGVuIHByZXZpb3Vz bHkgdGhlIGVudHJ5IHdhcyBwcmVzZW50IGFuZCB0aGlzCisgKiAgIGlzIHRo ZSAibWFpbiIgcmVxdWVzdCBmb3IgYSBkZXZpY2UgKHBkZXYgIT0gTlVMTCku CisgKi8KIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICBz dHJ1Y3QgZG9tYWluICpkb21haW4sCiAgICAgc3RydWN0IGlvbW11ICppb21t dSwKLSAgICB1OCBidXMsIHU4IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNpX2Rl diAqcGRldikKKyAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwgY29u c3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsCisgICAgdW5zaWduZWQgaW50IG1v ZGUpCiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZG9tYWluKTsKLSAgICBzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4 dCwgKmNvbnRleHRfZW50cmllczsKKyAgICBzdHJ1Y3QgY29udGV4dF9lbnRy eSAqY29udGV4dCwgKmNvbnRleHRfZW50cmllcywgbGN0eHQ7CisgICAgX191 aW50MTI4X3Qgb2xkOwogICAgIHU2NCBtYWRkciwgcGdkX21hZGRyOwotICAg IHUxNiBzZWcgPSBpb21tdS0+aW50ZWwtPmRyaGQtPnNlZ21lbnQ7CisgICAg dWludDE2X3Qgc2VnID0gaW9tbXUtPmludGVsLT5kcmhkLT5zZWdtZW50LCBw cmV2X2RpZCA9IDA7CisgICAgc3RydWN0IGRvbWFpbiAqcHJldl9kb20gPSBO VUxMOwogICAgIGludCBhZ2F3LCByYywgcmV0OwogICAgIGJvb2xfdCBmbHVz aF9kZXZfaW90bGI7CiAKQEAgLTE0MDgsMTcgKzE0MjEsMzIgQEAgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIG1hZGRyID0gYnVzX3Rv X2NvbnRleHRfbWFkZHIoaW9tbXUsIGJ1cyk7CiAgICAgY29udGV4dF9lbnRy aWVzID0gKHN0cnVjdCBjb250ZXh0X2VudHJ5ICopbWFwX3Z0ZF9kb21haW5f cGFnZShtYWRkcik7CiAgICAgY29udGV4dCA9ICZjb250ZXh0X2VudHJpZXNb ZGV2Zm5dOworICAgIG9sZCA9IChsY3R4dCA9ICpjb250ZXh0KS5mdWxsOwog Ci0gICAgaWYgKCBjb250ZXh0X3ByZXNlbnQoKmNvbnRleHQpICkKKyAgICBp ZiAoIGNvbnRleHRfcHJlc2VudChsY3R4dCkgKQogICAgIHsKLSAgICAgICAg c3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKLSAgICAgICAgdW5tYXBfdnRk X2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7Ci0gICAgICAgIHJldHVy biAwOworICAgICAgICBkb21pZF90IGRvbWlkOworCisgICAgICAgIHByZXZf ZGlkID0gY29udGV4dF9kb21haW5faWQobGN0eHQpOworICAgICAgICBkb21p ZCA9IGlvbW11LT5kb21pZF9tYXBbcHJldl9kaWRdOworICAgICAgICBpZiAo IGRvbWlkIDwgRE9NSURfRklSU1RfUkVTRVJWRUQgKQorICAgICAgICAgICAg cHJldl9kb20gPSByY3VfbG9ja19kb21haW5fYnlfaWQoZG9taWQpOworICAg ICAgICBlbHNlIGlmICggZG9taWQgPT0gRE9NSURfSU8gKQorICAgICAgICAg ICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW4oZG9tX2lvKTsKKyAgICAg ICAgaWYgKCAhcHJldl9kb20gKQorICAgICAgICB7CisgICAgICAgICAgICBz cGluX3VubG9jaygmaW9tbXUtPmxvY2spOworICAgICAgICAgICAgdW5tYXBf dnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7CisgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19ERUJVRyBWVERQUkVGSVgsCisgICAgICAgICAg ICAgICAgICAgICJubyBkb21haW4gZm9yIGRpZCAldSAobnJfZG9tICV1KVxu IiwKKyAgICAgICAgICAgICAgICAgICAgcHJldl9kaWQsIGNhcF9uZG9tcyhp b21tdS0+Y2FwKSk7CisgICAgICAgICAgICByZXR1cm4gLUVTUkNIOworICAg ICAgICB9CiAgICAgfQogCiAgICAgaWYgKCBpb21tdV9od2RvbV9wYXNzdGhy b3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9tYWluKSApCiAgICAgewot ICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKCpjb250ZXh0 LCBDT05URVhUX1RUX1BBU1NfVEhSVSk7CisgICAgICAgIGNvbnRleHRfc2V0 X3RyYW5zbGF0aW9uX3R5cGUobGN0eHQsIENPTlRFWFRfVFRfUEFTU19USFJV KTsKICAgICAgICAgYWdhdyA9IGxldmVsX3RvX2FnYXcoaW9tbXUtPm5yX3B0 X2xldmVscyk7CiAgICAgfQogICAgIGVsc2UKQEAgLTE0MzUsNiArMTQ2Myw4 IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICAgICAg ICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsK ICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwog ICAgICAgICAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0 X2VudHJpZXMpOworICAgICAgICAgICAgICAgIGlmICggcHJldl9kb20gKQor ICAgICAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihwcmV2X2Rv bSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAg ICAgICB9CiAgICAgICAgIH0KQEAgLTE0NTIsMzMgKzE0ODIsMTAyIEBAIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICAgICAgICAgICAg ICBnb3RvIG5vbWVtOwogICAgICAgICB9CiAKLSAgICAgICAgY29udGV4dF9z ZXRfYWRkcmVzc19yb290KCpjb250ZXh0LCBwZ2RfbWFkZHIpOworICAgICAg ICBjb250ZXh0X3NldF9hZGRyZXNzX3Jvb3QobGN0eHQsIHBnZF9tYWRkcik7 CiAgICAgICAgIGlmICggYXRzX2VuYWJsZWQgJiYgZWNhcF9kZXZfaW90bGIo aW9tbXUtPmVjYXApICkKLSAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5z bGF0aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRfREVWX0lPVExCKTsK KyAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUobGN0 eHQsIENPTlRFWFRfVFRfREVWX0lPVExCKTsKICAgICAgICAgZWxzZQotICAg ICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25fdHlwZSgqY29udGV4 dCwgQ09OVEVYVF9UVF9NVUxUSV9MRVZFTCk7CisgICAgICAgICAgICBjb250 ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBDT05URVhUX1RUX01V TFRJX0xFVkVMKTsKIAogICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gu bWFwcGluZ19sb2NrKTsKICAgICB9CiAKLSAgICBpZiAoIGNvbnRleHRfc2V0 X2RvbWFpbl9pZChjb250ZXh0LCBkb21haW4sIGlvbW11KSApCisgICAgcmMg PSBjb250ZXh0X3NldF9kb21haW5faWQoJmxjdHh0LCBkb21haW4sIGlvbW11 KTsKKyAgICBpZiAoIHJjICkKICAgICB7CisgICAgdW5sb2NrOgogICAgICAg ICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwogICAgICAgICB1bm1hcF92 dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsKLSAgICAgICAgcmV0 dXJuIC1FRkFVTFQ7CisgICAgICAgIGlmICggcHJldl9kb20gKQorICAgICAg ICAgICAgcmN1X3VubG9ja19kb21haW4ocHJldl9kb20pOworICAgICAgICBy ZXR1cm4gcmM7CisgICAgfQorCisgICAgaWYgKCAhcHJldl9kb20gKQorICAg IHsKKyAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc193aWR0aChsY3R4dCwg YWdhdyk7CisgICAgICAgIGNvbnRleHRfc2V0X2ZhdWx0X2VuYWJsZShsY3R4 dCk7CisgICAgICAgIGNvbnRleHRfc2V0X3ByZXNlbnQobGN0eHQpOworICAg IH0KKyAgICBlbHNlIGlmICggcHJldl9kb20gPT0gZG9tYWluICkKKyAgICB7 CisgICAgICAgIEFTU0VSVChsY3R4dC5mdWxsID09IGNvbnRleHQtPmZ1bGwp OworICAgICAgICByYyA9ICEhcGRldjsKKyAgICAgICAgZ290byB1bmxvY2s7 CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIEFTU0VSVChjb250 ZXh0X2FkZHJlc3Nfd2lkdGgobGN0eHQpID09IGFnYXcpOworICAgICAgICBB U1NFUlQoIWNvbnRleHRfZmF1bHRfZGlzYWJsZShsY3R4dCkpOworICAgIH0K KworICAgIGlmICggY3B1X2hhc19jeDE2ICkKKyAgICB7CisgICAgICAgIF9f dWludDEyOF90IHJlcyA9IGNtcHhjaGcxNmIoY29udGV4dCwgJm9sZCwgJmxj dHh0LmZ1bGwpOworCisgICAgICAgIC8qCisgICAgICAgICAqIEhhcmR3YXJl IGRvZXMgbm90IHVwZGF0ZSB0aGUgY29udGV4dCBlbnRyeSBiZWhpbmQgb3Vy IGJhY2tzLAorICAgICAgICAgKiBzbyB0aGUgcmV0dXJuIHZhbHVlIHNob3Vs ZCBtYXRjaCAib2xkIi4KKyAgICAgICAgICovCisgICAgICAgIGlmICggcmVz ICE9IG9sZCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggcGRldiAp CisgICAgICAgICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoZG9t YWluLCBwZGV2LCBpb21tdSk7CisgICAgICAgICAgICBwcmludGsoWEVOTE9H X0VSUgorICAgICAgICAgICAgICAgICAgICIlMDR4OiUwMng6JTAyeC4ldTog dW5leHBlY3RlZCBjb250ZXh0IGVudHJ5ICUwMTZseF8lMDE2bHggKGV4cGVj dGVkICUwMTZseF8lMDE2bHgpXG4iLAorICAgICAgICAgICAgICAgICAgIHBk ZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5D KGRldmZuKSwKKyAgICAgICAgICAgICAgICAgICAodWludDY0X3QpKHJlcyA+ PiA2NCksICh1aW50NjRfdClyZXMsCisgICAgICAgICAgICAgICAgICAgKHVp bnQ2NF90KShvbGQgPj4gNjQpLCAodWludDY0X3Qpb2xkKTsKKyAgICAgICAg ICAgIHJjID0gLUVJTFNFUTsKKyAgICAgICAgICAgIGdvdG8gdW5sb2NrOwor ICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKCAhcHJldl9kb20gfHwg IShtb2RlICYgTUFQX1dJVEhfUk1SUikgKQorICAgIHsKKyAgICAgICAgY29u dGV4dF9jbGVhcl9wcmVzZW50KCpjb250ZXh0KTsKKyAgICAgICAgaW9tbXVf c3luY19jYWNoZShjb250ZXh0LCBzaXplb2YoKmNvbnRleHQpKTsKKworICAg ICAgICB3cml0ZV9hdG9taWMoJmNvbnRleHQtPmhpLCBsY3R4dC5oaSk7Cisg ICAgICAgIC8qIE5vIGJhcnJpZXIgc2hvdWxkIGJlIG5lZWRlZCBiZXR3ZWVu IHRoZXNlIHR3by4gKi8KKyAgICAgICAgd3JpdGVfYXRvbWljKCZjb250ZXh0 LT5sbywgbGN0eHQubG8pOworICAgIH0KKyAgICBlbHNlIC8qIEJlc3QgZWZm b3J0LCB1cGRhdGluZyBESUQgbGFzdC4gKi8KKyAgICB7CisgICAgICAgICAv KgorICAgICAgICAgICogQnkgbm9uLWF0b21pY2FsbHkgdXBkYXRpbmcgdGhl IGNvbnRleHQgZW50cnkncyBESUQgZmllbGQgbGFzdCwKKyAgICAgICAgICAq IGR1cmluZyBhIHNob3J0IHdpbmRvdyBpbiB0aW1lIFRMQiBlbnRyaWVzIHdp dGggdGhlIG9sZCBkb21haW4gSUQKKyAgICAgICAgICAqIGJ1dCB0aGUgbmV3 IHBhZ2UgdGFibGVzIG1heSBiZSBpbnNlcnRlZC4gIFRoaXMgY291bGQgYWZm ZWN0IEkvTworICAgICAgICAgICogb2Ygb3RoZXIgZGV2aWNlcyB1c2luZyB0 aGlzIHNhbWUgKG9sZCkgZG9tYWluIElELiAgU3VjaCB1cGRhdGluZworICAg ICAgICAgICogdGhlcmVmb3JlIGlzIG5vdCBhIHByb2JsZW0gaWYgdGhpcyB3 YXMgdGhlIG9ubHkgZGV2aWNlIGFzc29jaWF0ZWQKKyAgICAgICAgICAqIHdp dGggdGhlIG9sZCBkb21haW4gSUQuICBEaXZlcnRpbmcgSS9PIG9mIGFueSBv ZiBhIGR5aW5nIGRvbWFpbidzCisgICAgICAgICAgKiBkZXZpY2VzIHRvIHRo ZSBxdWFyYW50aW5lIHBhZ2UgdGFibGVzIGlzIGludGVuZGVkIGFueXdheS4K KyAgICAgICAgICAqLworICAgICAgICBpZiAoICEobW9kZSAmIChNQVBfT1dO RVJfRFlJTkcgfCBNQVBfU0lOR0xFX0RFVklDRSkpICkKKyAgICAgICAgICAg IHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgKKyAgICAgICAgICAg ICAgICAgICAiICUwNHg6JTAyeDolMDJ4LiV1OiByZWFzc2lnbm1lbnQgbWF5 IGNhdXNlICVwZCBkYXRhIGNvcnJ1cHRpb25cbiIsCisgICAgICAgICAgICAg ICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2 Zm4pLCBwcmV2X2RvbSk7CisKKyAgICAgICAgd3JpdGVfYXRvbWljKCZjb250 ZXh0LT5sbywgbGN0eHQubG8pOworICAgICAgICAvKiBObyBiYXJyaWVyIHNo b3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVzZSB0d28uICovCisgICAgICAg IHdyaXRlX2F0b21pYygmY29udGV4dC0+aGksIGxjdHh0LmhpKTsKICAgICB9 CiAKLSAgICBjb250ZXh0X3NldF9hZGRyZXNzX3dpZHRoKCpjb250ZXh0LCBh Z2F3KTsKLSAgICBjb250ZXh0X3NldF9mYXVsdF9lbmFibGUoKmNvbnRleHQp OwotICAgIGNvbnRleHRfc2V0X3ByZXNlbnQoKmNvbnRleHQpOwogICAgIGlv bW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6ZW9mKHN0cnVjdCBjb250ZXh0 X2VudHJ5KSk7CiAgICAgc3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKIAot ICAgIC8qIENvbnRleHQgZW50cnkgd2FzIHByZXZpb3VzbHkgbm9uLXByZXNl bnQgKHdpdGggZG9taWQgMCkuICovCi0gICAgcmMgPSBpb21tdV9mbHVzaF9j b250ZXh0X2RldmljZShpb21tdSwgMCwgUENJX0JERjIoYnVzLCBkZXZmbiks Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUFfQ0NN RF9NQVNLX05PQklULCAxKTsKKyAgICByYyA9IGlvbW11X2ZsdXNoX2NvbnRl eHRfZGV2aWNlKGlvbW11LCBwcmV2X2RpZCwgUENJX0JERjIoYnVzLCBkZXZm biksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUFf Q0NNRF9NQVNLX05PQklULCAhcHJldl9kb20pOwogICAgIGZsdXNoX2Rldl9p b3RsYiA9ICEhZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUpOwotICAgIHJldCA9 IGlvbW11X2ZsdXNoX2lvdGxiX2RzaShpb21tdSwgMCwgMSwgZmx1c2hfZGV2 X2lvdGxiKTsKKyAgICByZXQgPSBpb21tdV9mbHVzaF9pb3RsYl9kc2koaW9t bXUsIHByZXZfZGlkLCAhcHJldl9kb20sIGZsdXNoX2Rldl9pb3RsYik7CiAK ICAgICAvKgogICAgICAqIFRoZSBjdXJyZW50IGxvZ2ljIGZvciByZXR1cm5z OgpAQCAtMTQ5OSwxNyArMTU5OCwzNSBAQCBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUoCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRl eHRfZW50cmllcyk7CiAKICAgICBpZiAoICFzZWcgJiYgIXJjICkKLSAgICAg ICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVzLCBkZXZmbiwgTUFQ X01FX1BIQU5UT01fRlVOQyk7CisgICAgICAgIHJjID0gbWVfd2lmaV9xdWly ayhkb21haW4sIGJ1cywgZGV2Zm4sIG1vZGUpOwogCi0gICAgcmV0dXJuIHJj OworICAgIGlmICggcmMgKQorICAgIHsKKyAgICAgICAgaWYgKCAhcHJldl9k b20gKQorICAgICAgICAgICAgZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAgICBlbHNlIGlmICgg cHJldl9kb20gIT0gZG9tYWluICkgLyogQXZvaWQgaW5maW5pdGUgcmVjdXJz aW9uLiAqLworICAgICAgICAgICAgZG9tYWluX2NvbnRleHRfbWFwcGluZ19v bmUocHJldl9kb20sIGlvbW11LCBidXMsIGRldmZuLCBwZGV2LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSAmIE1BUF9X SVRIX1JNUlIpOworICAgIH0KKworICAgIGlmICggcHJldl9kb20gKQorICAg ICAgICByY3VfdW5sb2NrX2RvbWFpbihwcmV2X2RvbSk7CisKKyAgICByZXR1 cm4gcmMgPzogcGRldiAmJiBwcmV2X2RvbTsKIH0KIAorc3RhdGljIGludCBk b21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90 IGRldmZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgcGNpX2RldiAqcGRldik7CisKIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZuLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogewogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJo ZDsKKyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CiAg ICAgaW50IHJldCA9IDA7Ci0gICAgdTggc2VnID0gcGRldi0+c2VnLCBidXMg PSBwZGV2LT5idXMsIHNlY2J1czsKKyAgICB1bnNpZ25lZCBpbnQgaSwgbW9k ZSA9IDA7CisgICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2VnLCBiZGY7Cisg ICAgdWludDhfdCBidXMgPSBwZGV2LT5idXMsIHNlY2J1czsKIAogICAgIGRy aGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CiAgICAg aWYgKCAhZHJoZCApCkBAIC0xNTE3LDggKzE2MzQsMzAgQEAgc3RhdGljIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogCiAgICAgQVNTRVJU KHBjaWRldnNfbG9ja2VkKCkpOwogCisgICAgZm9yX2VhY2hfcm1ycl9kZXZp Y2UoIHJtcnIsIGJkZiwgaSApCisgICAgeworICAgICAgICBpZiAoIHJtcnIt PnNlZ21lbnQgIT0gcGRldi0+c2VnIHx8CisgICAgICAgICAgICAgYmRmICE9 IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ZGV2Zm4pICkKKyAgICAgICAg ICAgIGNvbnRpbnVlOworCisgICAgICAgIG1vZGUgfD0gTUFQX1dJVEhfUk1S UjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKCBkb21haW4g IT0gcGRldi0+ZG9tYWluICkKKyAgICB7CisgICAgICAgIGlmICggcGRldi0+ ZG9tYWluLT5pc19keWluZyApCisgICAgICAgICAgICBtb2RlIHw9IE1BUF9P V05FUl9EWUlORzsKKyAgICAgICAgZWxzZSBpZiAoIGRyaGQgJiYKKyAgICAg ICAgICAgICAgICAgICFhbnlfcGRldl9iZWhpbmRfaW9tbXUocGRldi0+ZG9t YWluLCBwZGV2LCBkcmhkLT5pb21tdSkgJiYKKyAgICAgICAgICAgICAgICAg ICFwZGV2LT5waGFudG9tX3N0cmlkZSApCisgICAgICAgICAgICBtb2RlIHw9 IE1BUF9TSU5HTEVfREVWSUNFOworICAgIH0KKwogICAgIHN3aXRjaCAoIHBk ZXYtPnR5cGUgKQogICAgIHsKKyAgICAgICAgYm9vbCBwcmV2X3ByZXNlbnQ7 CisKICAgICBjYXNlIERFVl9UWVBFX1BDSV9IT1NUX0JSSURHRToKICAgICAg ICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAgICBwcmludGsoVlRE UFJFRklYICJkJWQ6SG9zdGJyaWRnZTogc2tpcCAlMDR4OiUwMng6JTAyeC4l dSBtYXBcbiIsCkBAIC0xNTM5LDcgKzE2NzgsOSBAQCBzdGF0aWMgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAgICAgICAg ICAgZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVzLAogICAgICAgICAgICAg ICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKICAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWlu LCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGRldik7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIG1vZGUpOworICAg ICAgICBpZiAoIHJldCA+IDAgKQorICAgICAgICAgICAgcmV0ID0gMDsKICAg ICAgICAgaWYgKCAhcmV0ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYmIGF0 c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkKICAgICAgICAgICAgIGVuYWJs ZV9hdHNfZGV2aWNlKHBkZXYsICZkcmhkLT5pb21tdS0+YXRzX2RldmljZXMp OwogCkBAIC0xNTUyLDIwICsxNjkzLDMzIEBAIHN0YXRpYyBpbnQgZG9tYWlu X2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICBQ Q0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAKICAgICAgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhk LT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGRldik7Ci0gICAgICAgIGlmICggcmV0ICkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRl diwgbW9kZSk7CisgICAgICAgIGlmICggcmV0IDwgMCApCiAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgcHJldl9wcmVzZW50ID0gcmV0OworICAgICAg ICByZXQgPSAwOwogCiAgICAgICAgIGlmICggZmluZF91cHN0cmVhbV9icmlk Z2Uoc2VnLCAmYnVzLCAmZGV2Zm4sICZzZWNidXMpIDwgMSApCiAgICAgICAg ICAgICBicmVhazsKIAogICAgICAgICAvKgorICAgICAgICAgKiBTdHJpY3Rs eSBzcGVha2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBvbmx5IG9uZSBiZWhp bmQgdGhpcyBicmlkZ2UKKyAgICAgICAgICogYW5kIHRoZSBvbmx5IG9uZSB3 aXRoIHRoaXMgKHNlY2J1cywwLDApIHR1cGxlLCBpdCBjb3VsZCBiZSBhbGxv d2VkCisgICAgICAgICAqIHRvIGJlIHJlLWFzc2lnbmVkIHJlZ2FyZGxlc3Mg b2YgUk1SUiBwcmVzZW5jZS4gIEJ1dCBsZXQncyBkZWFsIHdpdGgKKyAgICAg ICAgICogdGhhdCBjYXNlIG9ubHkgaWYgaXQgaXMgYWN0dWFsbHkgZm91bmQg aW4gdGhlIHdpbGQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHByZXZf cHJlc2VudCAmJiAobW9kZSAmIE1BUF9XSVRIX1JNUlIpICYmCisgICAgICAg ICAgICAgZG9tYWluICE9IHBkZXYtPmRvbWFpbiApCisgICAgICAgICAgICBy ZXQgPSAtRU9QTk9UU1VQUDsKKworICAgICAgICAvKgogICAgICAgICAgKiBN YXBwaW5nIGEgYnJpZGdlIHNob3VsZCwgaWYgYW55dGhpbmcsIHBhc3MgdGhl IHN0cnVjdCBwY2lfZGV2IG9mCiAgICAgICAgICAqIHRoYXQgYnJpZGdlLiBT aW5jZSBicmlkZ2VzIGRvbid0IG5vcm1hbGx5IGdldCBhc3NpZ25lZCB0byBn dWVzdHMsCiAgICAgICAgICAqIHRoZWlyIG93bmVyIHdvdWxkIGJlIHRoZSB3 cm9uZyBvbmUuIFBhc3MgTlVMTCBpbnN0ZWFkLgogICAgICAgICAgKi8KLSAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWlu LCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgIGlmICgg cmV0ID49IDAgKQorICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5VTEwsIG1vZGUpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIERldmlj ZXMgYmVoaW5kIFBDSWUtdG8tUENJL1BDSXggYnJpZGdlIG1heSBnZW5lcmF0 ZSBkaWZmZXJlbnQKQEAgLTE1ODAsNyArMTczNCwxNSBAQCBzdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGlmICgg IXJldCAmJiBwZGV2X3R5cGUoc2VnLCBidXMsIGRldmZuKSA9PSBERVZfVFlQ RV9QQ0llMlBDSV9CUklER0UgJiYKICAgICAgICAgICAgICAoc2VjYnVzICE9 IHBkZXYtPmJ1cyB8fCBwZGV2LT5kZXZmbiAhPSAwKSApCiAgICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRy aGQtPmlvbW11LCBzZWNidXMsIDAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIG1vZGUpOwor CisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgeworICAgICAgICAgICAg aWYgKCAhcHJldl9wcmVzZW50ICkKKyAgICAgICAgICAgICAgICBkb21haW5f Y29udGV4dF91bm1hcChkb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICAgICAg ICAgIGVsc2UgaWYgKCBwZGV2LT5kb21haW4gIT0gZG9tYWluICkgLyogQXZv aWQgaW5maW5pdGUgcmVjdXJzaW9uLiAqLworICAgICAgICAgICAgICAgIGRv bWFpbl9jb250ZXh0X21hcHBpbmcocGRldi0+ZG9tYWluLCBkZXZmbiwgcGRl dik7CisgICAgICAgIH0KIAogICAgICAgICBicmVhazsKIApAQCAtMjI5MSw5 ICsyNDUzLDggQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Vfb3duZXJz aGlwKAogewogICAgIGludCByZXQ7CiAKLSAgICByZXQgPSBkb21haW5fY29u dGV4dF91bm1hcChzb3VyY2UsIGRldmZuLCBwZGV2KTsKLSAgICBpZiAoIHJl dCApCi0gICAgICAgIHJldHVybiByZXQ7CisgICAgaWYgKCAhaGFzX2FyY2hf cGRldnModGFyZ2V0KSApCisgICAgICAgIHZteF9waV9ob29rc19hc3NpZ24o dGFyZ2V0KTsKIAogICAgIC8qCiAgICAgICogRGV2aWNlcyBhc3NpZ25lZCB0 byB1bnRydXN0ZWQgZG9tYWlucyAoaGVyZSBhc3N1bWVkIHRvIGJlIGFueSBk b21VKQpAQCAtMjMwMyw2ICsyNDY0LDMxIEBAIHN0YXRpYyBpbnQgcmVhc3Np Z25fZGV2aWNlX293bmVyc2hpcCgKICAgICBpZiAoICh0YXJnZXQgIT0gaGFy ZHdhcmVfZG9tYWluKSAmJiAhaW9tbXVfaW50cmVtYXAgKQogICAgICAgICB1 bnRydXN0ZWRfbXNpID0gdHJ1ZTsKIAorICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X21hcHBpbmcodGFyZ2V0LCBkZXZmbiwgcGRldik7CisgICAgaWYgKCBy ZXQgKQorICAgIHsKKyAgICAgICAgaWYgKCAhaGFzX2FyY2hfcGRldnModGFy Z2V0KSApCisgICAgICAgICAgICB2bXhfcGlfaG9va3NfZGVhc3NpZ24odGFy Z2V0KTsKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAo IHBkZXYtPmRldmZuID09IGRldmZuICkKKyAgICB7CisgICAgICAgIGNvbnN0 IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCA9IGFjcGlfZmluZF9tYXRj aGVkX2RyaGRfdW5pdChwZGV2KTsKKworICAgICAgICBpZiAoIGRyaGQgKQor ICAgICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoc291cmNlLCBw ZGV2LCBkcmhkLT5pb21tdSk7CisgICAgfQorCisgICAgaWYgKCBkZXZmbiA9 PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gdGFyZ2V0ICkKKyAg ICB7CisgICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZ0 YXJnZXQtPmFyY2gucGRldl9saXN0KTsKKyAgICAgICAgcGRldi0+ZG9tYWlu ID0gdGFyZ2V0OworICAgIH0KKworICAgIGlmICggIWhhc19hcmNoX3BkZXZz KHNvdXJjZSkgKQorICAgICAgICB2bXhfcGlfaG9va3NfZGVhc3NpZ24oc291 cmNlKTsKKwogICAgIC8qCiAgICAgICogSWYgdGhlIGRldmljZSBiZWxvbmdz IHRvIHRoZSBoYXJkd2FyZSBkb21haW4sIGFuZCBpdCBoYXMgUk1SUiwgZG9u J3QKICAgICAgKiByZW1vdmUgaXQgZnJvbSB0aGUgaGFyZHdhcmUgZG9tYWlu LCBiZWNhdXNlIEJJT1MgbWF5IHVzZSBSTVJSIGF0CkBAIC0yMzMxLDM0ICsy NTE3LDcgQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlw KAogICAgICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICggZGV2Zm4gPT0g cGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IGRvbV9pbyApCi0gICAg ewotICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmZG9t X2lvLT5hcmNoLnBkZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9 IGRvbV9pbzsKLSAgICB9Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhz b3VyY2UpICkKLSAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWduKHNvdXJj ZSk7Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0YXJnZXQpICkKLSAg ICAgICAgdm14X3BpX2hvb2tzX2Fzc2lnbih0YXJnZXQpOwotCi0gICAgcmV0 ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyh0YXJnZXQsIGRldmZuLCBwZGV2 KTsKLSAgICBpZiAoIHJldCApCi0gICAgewotICAgICAgICBpZiAoICFoYXNf YXJjaF9wZGV2cyh0YXJnZXQpICkKLSAgICAgICAgICAgIHZteF9waV9ob29r c19kZWFzc2lnbih0YXJnZXQpOwotCi0gICAgICAgIHJldHVybiByZXQ7Ci0g ICAgfQotCi0gICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2 LT5kb21haW4gIT0gdGFyZ2V0ICkKLSAgICB7Ci0gICAgICAgIGxpc3RfbW92 ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZ0YXJnZXQtPmFyY2gucGRldl9saXN0 KTsKLSAgICAgICAgcGRldi0+ZG9tYWluID0gdGFyZ2V0OwotICAgIH0KLQot ICAgIHJldHVybiByZXQ7CisgICAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBp bnQgaW50ZWxfaW9tbXVfYXNzaWduX2RldmljZSgKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAgLTIwMSw4ICsyMDEsMTIgQEAg c3RydWN0IHJvb3RfZW50cnkgewogICAgIGRvIHsocm9vdCkudmFsIHw9ICgo dmFsdWUpICYgUEFHRV9NQVNLXzRLKTt9IHdoaWxlKDApCiAKIHN0cnVjdCBj b250ZXh0X2VudHJ5IHsKLSAgICB1NjQgbG87Ci0gICAgdTY0IGhpOworICAg IHVuaW9uIHsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVpbnQ2 NF90IGxvLCBoaTsKKyAgICAgICAgfTsKKyAgICAgICAgX191aW50MTI4X3Qg ZnVsbDsKKyAgICB9OwogfTsKICNkZWZpbmUgUk9PVF9FTlRSWV9OUiAoUEFH RV9TSVpFXzRLL3NpemVvZihzdHJ1Y3Qgcm9vdF9lbnRyeSkpCiAjZGVmaW5l IGNvbnRleHRfcHJlc2VudChjKSAoKGMpLmxvICYgMSkKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYwpAQCAtMzMwLDcgKzMzMCw4 IEBAIHZvaWQgX19pbml0IHBsYXRmb3JtX3F1aXJrc19pbml0KHZvaWQpCiAg Ki8KIAogc3RhdGljIGludCBfX211c3RfY2hlY2sgbWFwX21lX3BoYW50b21f ZnVuY3Rpb24oc3RydWN0IGRvbWFpbiAqZG9tYWluLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTMyIGRldiwg aW50IG1hcCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkZXYsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBp bnQgbW9kZSkKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7 CiAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXY7CkBAIC0zNDEsOSArMzQyLDkg QEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgbWFwX21lX3BoYW50b21fZgog ICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7 CiAKICAgICAvKiBtYXAgb3IgdW5tYXAgTUUgcGhhbnRvbSBmdW5jdGlvbiAq LwotICAgIGlmICggbWFwICkKKyAgICBpZiAoICEobW9kZSAmIFVOTUFQX01F X1BIQU5UT01fRlVOQykgKQogICAgICAgICByYyA9IGRvbWFpbl9jb250ZXh0 X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIDAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0RFVkZOKGRl diwgNyksIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpLCBOVUxMLCBtb2RlKTsKICAg ICBlbHNlCiAgICAgICAgIHJjID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KGRvbWFpbiwgZHJoZC0+aW9tbXUsIDAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpKTsKQEAgLTM1 MSw3ICszNTIsOCBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBtYXBfbWVf cGhhbnRvbV9mCiAgICAgcmV0dXJuIHJjOwogfQogCi1pbnQgbWVfd2lmaV9x dWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGJ1cywgdTggZGV2Zm4s IGludCBtYXApCitpbnQgbWVfd2lmaV9xdWlyayhzdHJ1Y3QgZG9tYWluICpk b21haW4sIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLAorICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAgICAgdTMyIGlkOwog ICAgIGludCByYyA9IDA7CkBAIC0zNzUsNyArMzc3LDcgQEAgaW50IG1lX3dp ZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgICAgICAgICAg Y2FzZSAweDQyM2I4MDg2OgogICAgICAgICAgICAgY2FzZSAweDQyM2M4MDg2 OgogICAgICAgICAgICAgY2FzZSAweDQyM2Q4MDg2OgotICAgICAgICAgICAg ICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAzLCBt YXApOworICAgICAgICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVu Y3Rpb24oZG9tYWluLCAzLCBtb2RlKTsKICAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl YWs7CkBAIC00MDEsNyArNDAzLDcgQEAgaW50IG1lX3dpZmlfcXVpcmsoc3Ry dWN0IGRvbWFpbiAqZG9tYWluLAogICAgICAgICAgICAgY2FzZSAweDQyMzg4 MDg2OiAgICAgICAgLyogUHVtYSBQZWFrICovCiAgICAgICAgICAgICBjYXNl IDB4NDIyYjgwODY6CiAgICAgICAgICAgICBjYXNlIDB4NDIyYzgwODY6Ci0g ICAgICAgICAgICAgICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5jdGlvbihk b21haW4sIDIyLCBtYXApOworICAgICAgICAgICAgICAgIHJjID0gbWFwX21l X3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAyMiwgbW9kZSk7CiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAg ICAgICAgICAgIGJyZWFrOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvdnRkLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L3Z0ZC5oCkBAIC0yMiw4ICsyMiwxNCBAQAogCiAjaW5jbHVkZSA8eGVuL2lv bW11Lmg+CiAKLSNkZWZpbmUgTUFQX01FX1BIQU5UT01fRlVOQyAgICAgIDEK LSNkZWZpbmUgVU5NQVBfTUVfUEhBTlRPTV9GVU5DICAgIDAKKy8qCisgKiBW YWx1ZXMgZm9yIGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKCkncyBhbmQg bWVfd2lmaV9xdWlyaygpJ3MgIm1vZGUiCisgKiBwYXJhbWV0ZXJzLgorICov CisjZGVmaW5lIE1BUF9XSVRIX1JNUlIgICAgICAgICAoMXUgPDwgMCkKKyNk ZWZpbmUgTUFQX09XTkVSX0RZSU5HICAgICAgICgxdSA8PCAxKQorI2RlZmlu ZSBNQVBfU0lOR0xFX0RFVklDRSAgICAgKDF1IDw8IDIpCisjZGVmaW5lIFVO TUFQX01FX1BIQU5UT01fRlVOQyAoMXUgPDwgMykKIAogLyogQWxsb3cgZm9y IGJvdGggSU9BUElDIGFuZCBJT1NBUElDLiAqLwogI2RlZmluZSBJT194QVBJ Q19yb3V0ZV9lbnRyeSBJT19BUElDX3JvdXRlX2VudHJ5Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-05.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-05.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IHJlLWFzc2lnbiBkZXZpY2VzIGRpcmVjdGx5CgpEZXZp Y2VzIHdpdGggdW5pdHkgbWFwIHJhbmdlcywgZHVlIHRvIGl0IGJlaW5nIHVu c3BlY2lmaWVkIGhvdy93aGVuCnRoZXNlIG1lbW9yeSByYW5nZXMgbWF5IGdl dCBhY2Nlc3NlZCwgbWF5IG5vdCBiZSBsZWZ0IGRpc2Nvbm5lY3RlZCBmcm9t CnRoZWlyIHVuaXR5IG1hcHBpbmdzIChhcyBsb25nIGFzIGl0J3Mgbm90IGNl cnRhaW4gdGhhdCB0aGUgZGV2aWNlIGhhcwpiZWVuIGZ1bGx5IHF1aWVzY2Vk KS4gSGVuY2UgcmF0aGVyIHRoYW4gdGVhcmluZyBkb3duIHRoZSBvbGQgcm9v dCBwYWdlCnRhYmxlIHBvaW50ZXIgYW5kIHRoZW4gZXN0YWJsaXNoaW5nIHRo ZSBuZXcgb25lLCByZS1hc3NpZ25tZW50IG5lZWRzIHRvCmJlIGRvbmUgaW4g YSBzaW5nbGUgc3RlcC4KClRoaXMgaXMgQ1ZFLTIwMjItMjYzNjAgLyBwYXJ0 IG9mIFhTQS00MDAuCgpSZXBvcnRlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CgpTaW1pbGFybHkgcXVhcmFudGluaW5n IHNjcmF0Y2gtcGFnZSBtb2RlIHJlbGllcyBvbiBwYWdlIHRhYmxlcyB0byBi ZQpjb250aW51b3VzbHkgd2lyZWQgdXAuCgpUbyBhdm9pZCBjb21wbGljYXRp bmcgdGhpbmdzIG1vcmUgdGhhbiBuZWNlc3NhcnksIHRyZWF0IGFsbCBkZXZp Y2VzCm1vc3RseSBlcXVhbGx5LCBpLmUuIHJlZ2FyZGxlc3Mgb2YgdGhlaXIg YXNzb2NpYXRpb24gd2l0aCBhbnkgdW5pdHkgbWFwCnJhbmdlcy4gIFRoZSBt YWluIGRpZmZlcmVuY2UgaXMgd2hlbiBpdCBjb21lcyB0byB1cGRhdGluZyBE VEVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21pYyB3aGVuIHRoZXJlIGFyZSB1 bml0eSBtYXBwaW5ncy4gWWV0IGF0b21pY2l0eSBjYW4gb25seSBiZQphY2hp ZXZlZCB3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBvZiB3aGljaCB3 ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5o CkBAIC03OCw4ICs3OCwxMiBAQCB2b2lkIGFtZF9pb21tdV9zaGFyZV9wMm0o c3RydWN0IGRvbWFpbiAqCiBpbnQgZ2V0X2RtYV9yZXF1ZXN0b3JfaWQodTE2 IHNlZywgdTE2IGJkZik7CiB2b2lkIGFtZF9pb21tdV9zZXRfaW50cmVtYXBf dGFibGUoCiAgICAgdTMyICpkdGUsIHU2NCBpbnRyZW1hcF9wdHIsIHU4IGlu dF92YWxpZCk7Ci12b2lkIGFtZF9pb21tdV9zZXRfcm9vdF9wYWdlX3RhYmxl KAotICAgIHUzMiAqZHRlLCB1NjQgcm9vdF9wdHIsIHUxNiBkb21haW5faWQs IHU4IHBhZ2luZ19tb2RlLCB1OCB2YWxpZCk7CisjZGVmaW5lIFNFVF9ST09U X1ZBTElEICAgICAgICAgICgxdSA8PCAwKQorI2RlZmluZSBTRVRfUk9PVF9X SVRIX1VOSVRZX01BUCAoMXUgPDwgMSkKK2ludCBfX211c3RfY2hlY2sgYW1k X2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCisgICAgdWludDMyX3QgKmR0 ZSwgdWludDY0X3Qgcm9vdF9wdHIsIHVpbnQxNl90IGRvbWFpbl9pZCwgdWlu dDhfdCBwYWdpbmdfbW9kZSwKKyAgICB1bnNpZ25lZCBpbnQgZmxhZ3MpOwor cGFkZHJfdCBhbWRfaW9tbXVfZ2V0X3Jvb3RfcGFnZV90YWJsZShjb25zdCB1 aW50MzJfdCAqZHRlKTsKIHZvaWQgaW9tbXVfZHRlX3NldF9pb3RsYih1MzIg KmR0ZSwgdTggaSk7CiB2b2lkIGlvbW11X2R0ZV9hZGRfZGV2aWNlX2VudHJ5 KHUzMiAqZHRlLCBzdHJ1Y3QgaXZyc19tYXBwaW5ncyAqaXZyc19kZXYpOwog dm9pZCBpb21tdV9kdGVfc2V0X2d1ZXN0X2NyMyh1MzIgKmR0ZSwgdTE2IGRv bV9pZCwgdTY0IGdjcjMsCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfbWFwLmMKQEAgLTE1OCwxMiArMTU4LDEwNSBAQCBzdGF0 aWMgdW5zaWduZWQgaW50IHNldF9pb21tdV9wdGVfcHJlc2VuCiAgICAgcmV0 dXJuIGZsdXNoX2ZsYWdzOwogfQogCi12b2lkIGFtZF9pb21tdV9zZXRfcm9v dF9wYWdlX3RhYmxlKHVpbnQzMl90ICpkdGUsIHVpbnQ2NF90IHJvb3RfcHRy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50MTZf dCBkb21haW5faWQsIHVpbnQ4X3QgcGFnaW5nX21vZGUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgdmFsaWQpCisvKgor ICogVGhpcyBmdW5jdGlvbiByZXR1cm5zCisgKiAtIC1lcnJubyBmb3IgZXJy b3JzLAorICogLSAwIGZvciBhIHN1Y2Nlc3NmdWwgdXBkYXRlLCBhdG9taWMg d2hlbiBuZWNlc3NhcnkKKyAqIC0gMSBmb3IgYSBzdWNjZXNzZnVsIGJ1dCBu b24tYXRvbWljIHVwZGF0ZSwgd2hpY2ggbWF5IG5lZWQgdG8gYmUgd2FybmVk CisgKiAgIGFib3V0IGJ5IHRoZSBjYWxsZXIuCisgKi8KK2ludCBhbWRfaW9t bXVfc2V0X3Jvb3RfcGFnZV90YWJsZSh1aW50MzJfdCAqZHRlLCB1aW50NjRf dCByb290X3B0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1aW50MTZfdCBkb21haW5faWQsIHVpbnQ4X3QgcGFnaW5nX21vZGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50 IGZsYWdzKQogeworICAgIGJvb2wgdmFsaWQgPSBmbGFncyAmIFNFVF9ST09U X1ZBTElEOwogICAgIHVpbnQzMl90IGFkZHJfaGksIGFkZHJfbG8sIGVudHJ5 LCBkdGUwID0gZHRlWzBdOwogCisgICAgYWRkcl9sbyA9IHJvb3RfcHRyICYg RE1BXzMyQklUX01BU0s7CisgICAgYWRkcl9oaSA9IHJvb3RfcHRyID4+IDMy OworCisgICAgaWYgKCBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGR0ZTAsIElP TU1VX0RFVl9UQUJMRV9WQUxJRF9NQVNLLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfVkFMSURfU0hJRlQpICYm CisgICAgICAgICBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGR0ZTAsIElPTU1V X0RFVl9UQUJMRV9UUkFOU0xBVElPTl9WQUxJRF9NQVNLLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfVFJBTlNM QVRJT05fVkFMSURfU0hJRlQpICYmCisgICAgICAgICAoY3B1X2hhc19jeDE2 IHx8IChmbGFncyAmIFNFVF9ST09UX1dJVEhfVU5JVFlfTUFQKSkgKQorICAg IHsKKyAgICAgICAgdW5pb24geworICAgICAgICAgICAgdWludDMyX3QgZHRl WzRdOworICAgICAgICAgICAgdWludDY0X3QgcmF3NjRbMl07CisgICAgICAg ICAgICBfX3VpbnQxMjhfdCByYXcxMjg7CisgICAgICAgIH0gbGR0ZTsKKyAg ICAgICAgX191aW50MTI4X3Qgb2xkOworICAgICAgICBpbnQgcmV0ID0gMDsK KworICAgICAgICBtZW1jcHkobGR0ZS5kdGUsIGR0ZSwgc2l6ZW9mKGxkdGUp KTsKKyAgICAgICAgb2xkID0gbGR0ZS5yYXcxMjg7CisKKyAgICAgICAgc2V0 X2ZpZWxkX2luX3JlZ191MzIoZG9tYWluX2lkLCBsZHRlLmR0ZVsyXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0RP TUFJTl9JRF9NQVNLLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ T01NVV9ERVZfVEFCTEVfRE9NQUlOX0lEX1NISUZULCAmbGR0ZS5kdGVbMl0p OworCisgICAgICAgIHNldF9maWVsZF9pbl9yZWdfdTMyKGFkZHJfaGksIGxk dGUuZHRlWzFdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01N VV9ERVZfVEFCTEVfUEFHRV9UQUJMRV9QVFJfSElHSF9NQVNLLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfUEFHRV9U QUJMRV9QVFJfSElHSF9TSElGVCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJmxkdGUuZHRlWzFdKTsKKyAgICAgICAgc2V0X2ZpZWxkX2luX3Jl Z191MzIoSU9NTVVfQ09OVFJPTF9FTkFCTEVELCBsZHRlLmR0ZVsxXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0lP X1dSSVRFX1BFUk1JU1NJT05fTUFTSywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSU9NTVVfREVWX1RBQkxFX0lPX1dSSVRFX1BFUk1JU1NJT05f U0hJRlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZsZHRlLmR0 ZVsxXSk7CisgICAgICAgIHNldF9maWVsZF9pbl9yZWdfdTMyKElPTU1VX0NP TlRST0xfRU5BQkxFRCwgbGR0ZS5kdGVbMV0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9JT19SRUFEX1BFUk1JU1NJ T05fTUFTSywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVf REVWX1RBQkxFX0lPX1JFQURfUEVSTUlTU0lPTl9TSElGVCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJmxkdGUuZHRlWzFdKTsKKworICAgICAg ICBzZXRfZmllbGRfaW5fcmVnX3UzMihhZGRyX2xvID4+IFBBR0VfU0hJRlQs IGxkdGUuZHRlWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ T01NVV9ERVZfVEFCTEVfUEFHRV9UQUJMRV9QVFJfTE9XX01BU0ssCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9QQUdF X1RBQkxFX1BUUl9MT1dfU0hJRlQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICZsZHRlLmR0ZVswXSk7CisgICAgICAgIHNldF9maWVsZF9pbl9y ZWdfdTMyKHBhZ2luZ19tb2RlLCBsZHRlLmR0ZVswXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1BBR0lOR19NT0RF X01BU0ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RF Vl9UQUJMRV9QQUdJTkdfTU9ERV9TSElGVCwgJmxkdGUuZHRlWzBdKTsKKyAg ICAgICAgc2V0X2ZpZWxkX2luX3JlZ191MzIoSU9NTVVfQ09OVFJPTF9FTkFC TEVELCBsZHRlLmR0ZVswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgSU9NTVVfREVWX1RBQkxFX1RSQU5TTEFUSU9OX1ZBTElEX01BU0ssCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9U UkFOU0xBVElPTl9WQUxJRF9TSElGVCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmxkdGUuZHRlWzBdKTsKKyAgICAgICAgc2V0X2ZpZWxkX2lu X3JlZ191MzIodmFsaWQgPyBJT01NVV9DT05UUk9MX0VOQUJMRUQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBJT01NVV9DT05UUk9M X0RJU0FCTEVELAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZHRl LmR0ZVswXSwgSU9NTVVfREVWX1RBQkxFX1ZBTElEX01BU0ssCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9WQUxJRF9T SElGVCwgJmxkdGUuZHRlWzBdKTsKKworICAgICAgICBpZiAoIGNwdV9oYXNf Y3gxNiApCisgICAgICAgIHsKKyAgICAgICAgICAgIF9fdWludDEyOF90IHJl cyA9IGNtcHhjaGcxNmIoZHRlLCAmb2xkLCAmbGR0ZS5yYXcxMjgpOworCisg ICAgICAgICAgICAvKgorICAgICAgICAgICAgICogSGFyZHdhcmUgZG9lcyBu b3QgdXBkYXRlIHRoZSBEVEUgYmVoaW5kIG91ciBiYWNrcywgc28gdGhlCisg ICAgICAgICAgICAgKiByZXR1cm4gdmFsdWUgc2hvdWxkIG1hdGNoICJvbGQi LgorICAgICAgICAgICAgICovCisgICAgICAgICAgICBpZiAoIHJlcyAhPSBv bGQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHByaW50ayhY RU5MT0dfRVJSCisgICAgICAgICAgICAgICAgICAgICAgICJEb20lZDogdW5l eHBlY3RlZCBEVEUgJTAxNmx4XyUwMTZseCAoZXhwZWN0ZWQgJTAxNmx4XyUw MTZseClcbiIsCisgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KShyZXMgPj4gNjQp LCAodWludDY0X3QpcmVzLAorICAgICAgICAgICAgICAgICAgICAgICAodWlu dDY0X3QpKG9sZCA+PiA2NCksICh1aW50NjRfdClvbGQpOworICAgICAgICAg ICAgICAgIHJldCA9IC1FSUxTRVE7CisgICAgICAgICAgICB9CisgICAgICAg IH0KKyAgICAgICAgZWxzZSAvKiBCZXN0IGVmZm9ydCwgdXBkYXRpbmcgZG9t YWluX2lkIGxhc3QuICovCisgICAgICAgIHsKKyAgICAgICAgICAgIHVpbnQ2 NF90ICpwdHIgPSAodm9pZCAqKWR0ZTsKKworICAgICAgICAgICAgd3JpdGVf YXRvbWljKHB0ciArIDAsIGxkdGUucmF3NjRbMF0pOworICAgICAgICAgICAg LyogTm8gYmFycmllciBzaG91bGQgYmUgbmVlZGVkIGJldHdlZW4gdGhlc2Ug dHdvLiAqLworICAgICAgICAgICAgd3JpdGVfYXRvbWljKHB0ciArIDEsIGxk dGUucmF3NjRbMV0pOworCisgICAgICAgICAgICByZXQgPSAxOworICAgICAg ICB9CisKKyAgICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKICAgICBpZiAo IHZhbGlkIHx8CiAgICAgICAgICBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKGR0 ZTAsIElPTU1VX0RFVl9UQUJMRV9WQUxJRF9NQVNLLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJT01NVV9ERVZfVEFCTEVfVkFMSURfU0hJ RlQpICkKQEAgLTE4Myw5ICsyNzYsNiBAQCB2b2lkIGFtZF9pb21tdV9zZXRf cm9vdF9wYWdlX3RhYmxlKHVpbnQzCiAgICAgICAgICAgICAgICAgICAgICAg ICAgSU9NTVVfREVWX1RBQkxFX0RPTUFJTl9JRF9TSElGVCwgJmVudHJ5KTsK ICAgICBkdGVbMl0gPSBlbnRyeTsKIAotICAgIGFkZHJfbG8gPSByb290X3B0 ciAmIERNQV8zMkJJVF9NQVNLOwotICAgIGFkZHJfaGkgPSByb290X3B0ciA+ PiAzMjsKLQogICAgIHNldF9maWVsZF9pbl9yZWdfdTMyKGFkZHJfaGksIDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgSU9NTVVfREVWX1RBQkxFX1BB R0VfVEFCTEVfUFRSX0hJR0hfTUFTSywKICAgICAgICAgICAgICAgICAgICAg ICAgICBJT01NVV9ERVZfVEFCTEVfUEFHRV9UQUJMRV9QVFJfSElHSF9TSElG VCwgJmVudHJ5KTsKQEAgLTIxMiw2ICszMDIsMjAgQEAgdm9pZCBhbWRfaW9t bXVfc2V0X3Jvb3RfcGFnZV90YWJsZSh1aW50MwogICAgICAgICAgICAgICAg ICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9WQUxJRF9NQVNLLAogICAgICAg ICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9UQUJMRV9WQUxJRF9TSElG VCwgJmVudHJ5KTsKICAgICB3cml0ZV9hdG9taWMoJmR0ZVswXSwgZW50cnkp OworCisgICAgcmV0dXJuIDA7Cit9CisKK3BhZGRyX3QgYW1kX2lvbW11X2dl dF9yb290X3BhZ2VfdGFibGUoY29uc3QgdWludDMyX3QgKmR0ZSkKK3sKKyAg ICB1aW50MzJfdCBsbyA9IGdldF9maWVsZF9mcm9tX3JlZ191MzIoCisgICAg ICAgICAgICAgICAgICAgICAgZHRlWzBdLCBJT01NVV9ERVZfVEFCTEVfUEFH RV9UQUJMRV9QVFJfTE9XX01BU0ssCisgICAgICAgICAgICAgICAgICAgICAg SU9NTVVfREVWX1RBQkxFX1BBR0VfVEFCTEVfUFRSX0xPV19TSElGVCk7Cisg ICAgdWludDMyX3QgaGkgPSBnZXRfZmllbGRfZnJvbV9yZWdfdTMyKAorICAg ICAgICAgICAgICAgICAgICAgIGR0ZVsxXSwgSU9NTVVfREVWX1RBQkxFX1BB R0VfVEFCTEVfUFRSX0hJR0hfTUFTSywKKyAgICAgICAgICAgICAgICAgICAg ICBJT01NVV9ERVZfVEFCTEVfUEFHRV9UQUJMRV9QVFJfSElHSF9TSElGVCk7 CisKKyAgICByZXR1cm4gKChwYWRkcl90KWhpIDw8IDMyKSB8IChsbyA8PCBQ QUdFX1NISUZUKTsKIH0KIAogdm9pZCBpb21tdV9kdGVfc2V0X2lvdGxiKHVp bnQzMl90ICpkdGUsIHVpbnQ4X3QgaSkKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC0xMDksMjIg KzEwOSw2MCBAQCBzdGF0aWMgdm9pZCBkaXNhYmxlX3RyYW5zbGF0aW9uKHUz MiAqZHRlCiAgICAgZHRlWzBdID0gZW50cnk7CiB9CiAKLXN0YXRpYyB2b2lk IGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNlKAorc3RhdGljIGludCBf X211c3RfY2hlY2sgYWxsb2NhdGVfZG9tYWluX3Jlc291cmNlcyhzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCkKK3sKKyAgICBpbnQgcmM7CisKKyAgICBzcGlu X2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisgICAgcmMgPSBhbWRf aW9tbXVfYWxsb2Nfcm9vdChoZCk7CisgICAgc3Bpbl91bmxvY2soJmhkLT5h cmNoLm1hcHBpbmdfbG9jayk7CisKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0 YXRpYyBib29sIGFueV9wZGV2X2JlaGluZF9pb21tdShjb25zdCBzdHJ1Y3Qg ZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpleGNsdWRlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUg KmlvbW11KQoreworICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2Owor CisgICAgZm9yX2VhY2hfcGRldiAoIGQsIHBkZXYgKQorICAgIHsKKyAgICAg ICAgaWYgKCBwZGV2ID09IGV4Y2x1ZGUgKQorICAgICAgICAgICAgY29udGlu dWU7CisKKyAgICAgICAgaWYgKCBmaW5kX2lvbW11X2Zvcl9kZXZpY2UocGRl di0+c2VnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Q0lfQkRGMihwZGV2LT5idXMsIHBkZXYtPmRldmZuKSkgPT0gaW9tbXUgKQor ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJu IGZhbHNlOworfQorCitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9t bXVfc2V0dXBfZG9tYWluX2RldmljZSgKICAgICBzdHJ1Y3QgZG9tYWluICpk b21haW4sIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAogICAgIHU4IGRldmZu LCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLSAgICB2b2lkICpkdGU7Cisg ICAgdWludDMyX3QgKmR0ZTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwot ICAgIGludCByZXFfaWQsIHZhbGlkID0gMTsKLSAgICBpbnQgZHRlX2kgPSAw OworICAgIHVuc2lnbmVkIGludCByZXFfaWQsIHNyX2ZsYWdzOworICAgIGlu dCBkdGVfaSA9IDAsIHJjOwogICAgIHU4IGJ1cyA9IHBkZXYtPmJ1czsKLSAg ICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShk b21haW4pOworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGRvbWFpbik7CisgICAgY29uc3Qgc3RydWN0IGl2cnNfbWFwcGluZ3Mg Kml2cnNfZGV2OworCisgICAgQlVHX09OKCFoZC0+YXJjaC5wYWdpbmdfbW9k ZSB8fCAhaW9tbXUtPmRldl90YWJsZS5idWZmZXIpOwogCi0gICAgQlVHX09O KCAhaGQtPmFyY2gucm9vdF90YWJsZSB8fCAhaGQtPmFyY2gucGFnaW5nX21v ZGUgfHwKLSAgICAgICAgICAgICFpb21tdS0+ZGV2X3RhYmxlLmJ1ZmZlciAp OworICAgIHJjID0gYWxsb2NhdGVfZG9tYWluX3Jlc291cmNlcyhoZCk7Cisg ICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKIAotICAgIGlmICgg aW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWlu KGRvbWFpbikgKQotICAgICAgICB2YWxpZCA9IDA7CisgICAgcmVxX2lkID0g Z2V0X2RtYV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkRGMihwZGV2LT5idXMsIHBk ZXYtPmRldmZuKSk7CisgICAgaXZyc19kZXYgPSAmZ2V0X2l2cnNfbWFwcGlu Z3MoaW9tbXUtPnNlZylbcmVxX2lkXTsKKyAgICBzcl9mbGFncyA9IChpb21t dV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9t YWluKQorICAgICAgICAgICAgICAgID8gMCA6IFNFVF9ST09UX1ZBTElEKQor ICAgICAgICAgICAgICAgfCAoaXZyc19kZXYtPnVuaXR5X21hcCA/IFNFVF9S T09UX1dJVEhfVU5JVFlfTUFQIDogMCk7CiAKICAgICBpZiAoIGF0c19lbmFi bGVkICkKICAgICAgICAgZHRlX2kgPSAxOwpAQCAtMTMyLDMyICsxNzAsODcg QEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpYwog ICAgIC8qIGdldCBkZXZpY2UtdGFibGUgZW50cnkgKi8KICAgICByZXFfaWQg PSBnZXRfZG1hX3JlcXVlc3Rvcl9pZChpb21tdS0+c2VnLCBQQ0lfQkRGMihi dXMsIGRldmZuKSk7CiAgICAgZHRlID0gaW9tbXUtPmRldl90YWJsZS5idWZm ZXIgKyAocmVxX2lkICogSU9NTVVfREVWX1RBQkxFX0VOVFJZX1NJWkUpOwor ICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBpbmdzKGlvbW11LT5zZWcp W3JlcV9pZF07CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxv Y2ssIGZsYWdzKTsKIAogICAgIGlmICggIWlzX3RyYW5zbGF0aW9uX3ZhbGlk KCh1MzIgKilkdGUpICkKICAgICB7CiAgICAgICAgIC8qIGJpbmQgRFRFIHRv IGRvbWFpbiBwYWdlLXRhYmxlcyAqLwotICAgICAgICBhbWRfaW9tbXVfc2V0 X3Jvb3RfcGFnZV90YWJsZSgKLSAgICAgICAgICAgICh1MzIgKilkdGUsIHBh Z2VfdG9fbWFkZHIoaGQtPmFyY2gucm9vdF90YWJsZSksIGRvbWFpbi0+ZG9t YWluX2lkLAotICAgICAgICAgICAgaGQtPmFyY2gucGFnaW5nX21vZGUsIHZh bGlkKTsKKyAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90 YWJsZSgKKyAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKGhk LT5hcmNoLnJvb3RfdGFibGUpLAorICAgICAgICAgICAgICAgICBkb21haW4t PmRvbWFpbl9pZCwgaGQtPmFyY2gucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsK KyAgICAgICAgaWYgKCByYyApCisgICAgICAgIHsKKyAgICAgICAgICAgIEFT U0VSVChyYyA8IDApOworICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVz dG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKKyAgICAgICAgICAgIHJldHVy biByYzsKKyAgICAgICAgfQogCiAgICAgICAgIGlmICggcGNpX2F0c19kZXZp Y2UoaW9tbXUtPnNlZywgYnVzLCBwZGV2LT5kZXZmbikgJiYKICAgICAgICAg ICAgICBpb21tdV9oYXNfY2FwKGlvbW11LCBQQ0lfQ0FQX0lPVExCX1NISUZU KSApCiAgICAgICAgICAgICBpb21tdV9kdGVfc2V0X2lvdGxiKCh1MzIgKilk dGUsIGR0ZV9pKTsKIAogICAgICAgICBhbWRfaW9tbXVfZmx1c2hfZGV2aWNl KGlvbW11LCByZXFfaWQpOworICAgIH0KKyAgICBlbHNlIGlmICggYW1kX2lv bW11X2dldF9yb290X3BhZ2VfdGFibGUoZHRlKSAhPQorICAgICAgICAgICAg ICBwYWdlX3RvX21hZGRyKGhkLT5hcmNoLnJvb3RfdGFibGUpICkKKyAgICB7 CisgICAgICAgIC8qCisgICAgICAgICAqIFN0cmljdGx5IHNwZWFraW5nIGlm IHRoZSBkZXZpY2UgaXMgdGhlIG9ubHkgb25lIHdpdGggdGhpcyByZXF1ZXN0 b3IKKyAgICAgICAgICogSUQsIGl0IGNvdWxkIGJlIGFsbG93ZWQgdG8gYmUg cmUtYXNzaWduZWQgcmVnYXJkbGVzcyBvZiB1bml0eSBtYXAKKyAgICAgICAg ICogcHJlc2VuY2UuICBCdXQgbGV0J3MgZGVhbCB3aXRoIHRoYXQgY2FzZSBv bmx5IGlmIGl0IGlzIGFjdHVhbGx5CisgICAgICAgICAqIGZvdW5kIGluIHRo ZSB3aWxkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYgKCByZXFfaWQgIT0g UENJX0JERjIoYnVzLCBkZXZmbikgJiYKKyAgICAgICAgICAgICAoc3JfZmxh Z3MgJiBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCkgKQorICAgICAgICAgICAg cmMgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg cmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgKKyAgICAgICAg ICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5yb290 X3RhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSwgc3JfZmxhZ3MpOworICAgICAg ICBpZiAoIHJjIDwgMCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CisgICAg ICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCBy YyAmJgorICAgICAgICAgICAgIGRvbWFpbiAhPSBwZGV2LT5kb21haW4gJiYK KyAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAqIEJ5IG5vbi1hdG9t aWNhbGx5IHVwZGF0aW5nIHRoZSBEVEUncyBkb21haW4gSUQgZmllbGQgbGFz dCwKKyAgICAgICAgICAgICAgKiBkdXJpbmcgYSBzaG9ydCB3aW5kb3cgaW4g dGltZSBUTEIgZW50cmllcyB3aXRoIHRoZSBvbGQgZG9tYWluCisgICAgICAg ICAgICAgICogSUQgYnV0IHRoZSBuZXcgcGFnZSB0YWJsZXMgbWF5IGhhdmUg YmVlbiBpbnNlcnRlZC4gIFRoaXMgY291bGQKKyAgICAgICAgICAgICAgKiBh ZmZlY3QgSS9PIG9mIG90aGVyIGRldmljZXMgdXNpbmcgdGhpcyBzYW1lIChv bGQpIGRvbWFpbiBJRC4KKyAgICAgICAgICAgICAgKiBTdWNoIHVwZGF0aW5n IHRoZXJlZm9yZSBpcyBub3QgYSBwcm9ibGVtIGlmIHRoaXMgd2FzIHRoZSBv bmx5CisgICAgICAgICAgICAgICogZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCB0 aGUgb2xkIGRvbWFpbiBJRC4gIERpdmVydGluZyBJL08gb2YgYW55CisgICAg ICAgICAgICAgICogb2YgYSBkeWluZyBkb21haW4ncyBkZXZpY2VzIHRvIHRo ZSBxdWFyYW50aW5lIHBhZ2UgdGFibGVzIGlzCisgICAgICAgICAgICAgICog aW50ZW5kZWQgYW55d2F5LgorICAgICAgICAgICAgICAqLworICAgICAgICAg ICAgICFwZGV2LT5kb21haW4tPmlzX2R5aW5nICYmCisgICAgICAgICAgICAg KGFueV9wZGV2X2JlaGluZF9pb21tdShwZGV2LT5kb21haW4sIHBkZXYsIGlv bW11KSB8fAorICAgICAgICAgICAgICBwZGV2LT5waGFudG9tX3N0cmlkZSkg KQorICAgICAgICAgICAgcHJpbnRrKCIgJTA0eDolMDJ4OiUwMnguJXU6IHJl YXNzaWdubWVudCBtYXkgY2F1c2UgJXBkIGRhdGEgY29ycnVwdGlvblxuIiwK KyAgICAgICAgICAgICAgICAgICBwZGV2LT5zZWcsIGJ1cywgUENJX1NMT1Qo ZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCisgICAgICAgICAgICAgICAgICAg cGRldi0+ZG9tYWluKTsKIAotICAgICAgICBBTURfSU9NTVVfREVCVUcoIlNl dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAlI3gsIHR5cGUgPSAl I3gsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJyb290IHRhYmxlID0g JSMiUFJJeDY0IiwgIgotICAgICAgICAgICAgICAgICAgICAgICAgImRvbWFp biA9ICVkLCBwYWdpbmcgbW9kZSA9ICVkXG4iLAotICAgICAgICAgICAgICAg ICAgICAgICAgcmVxX2lkLCBwZGV2LT50eXBlLAotICAgICAgICAgICAgICAg ICAgICAgICAgcGFnZV90b19tYWRkcihoZC0+YXJjaC5yb290X3RhYmxlKSwK LSAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBo ZC0+YXJjaC5wYWdpbmdfbW9kZSk7CisgICAgICAgIGlmICggcGNpX2F0c19k ZXZpY2UoaW9tbXUtPnNlZywgYnVzLCBwZGV2LT5kZXZmbikgJiYKKyAgICAg ICAgICAgICBpb21tdV9oYXNfY2FwKGlvbW11LCBQQ0lfQ0FQX0lPVExCX1NI SUZUKSApCisgICAgICAgICAgICBBU1NFUlQoZ2V0X2ZpZWxkX2Zyb21fcmVn X3UzMigKKyAgICAgICAgICAgICAgICAgICAgICAgZHRlWzNdLCBJT01NVV9E RVZfVEFCTEVfSU9UTEJfU1VQUE9SVF9NQVNLLAorICAgICAgICAgICAgICAg ICAgICAgICBJT01NVV9ERVZfVEFCTEVfSU9UTEJfU1VQUE9SVF9TSElGVCkg PT0gZHRlX2kpOworCisgICAgICAgIGFtZF9pb21tdV9mbHVzaF9kZXZpY2Uo aW9tbXUsIHJlcV9pZCk7CiAgICAgfQogCiAgICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIAorICAgIEFNRF9JT01N VV9ERUJVRygiU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9ICUj eCwgdHlwZSA9ICUjeCwgIgorICAgICAgICAgICAgICAgICAgICAicm9vdCB0 YWJsZSA9ICUjIlBSSXg2NCIsICIKKyAgICAgICAgICAgICAgICAgICAgImRv bWFpbiA9ICVkLCBwYWdpbmcgbW9kZSA9ICVkXG4iLAorICAgICAgICAgICAg ICAgICAgICByZXFfaWQsIHBkZXYtPnR5cGUsCisgICAgICAgICAgICAgICAg ICAgIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2gucm9vdF90YWJsZSksCisgICAg ICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5w YWdpbmdfbW9kZSk7CisKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7 CiAKICAgICBpZiAoIHBjaV9hdHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1cywg cGRldi0+ZGV2Zm4pICYmCkBAIC0xNjgsNiArMjYxLDggQEAgc3RhdGljIHZv aWQgYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpYwogCiAgICAgICAgIGFt ZF9pb21tdV9mbHVzaF9pb3RsYihkZXZmbiwgcGRldiwgSU5WX0lPTU1VX0FM TF9QQUdFU19BRERSRVNTLCAwKTsKICAgICB9CisKKyAgICByZXR1cm4gMDsK IH0KIAogaW50IF9faW5pdCBhbWRfaW92X2RldGVjdCh2b2lkKQpAQCAtMjEx LDE3ICszMDYsNiBAQCBpbnQgYW1kX2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0 IGRvbWFpbl9pCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19t dXN0X2NoZWNrIGFsbG9jYXRlX2RvbWFpbl9yZXNvdXJjZXMoc3RydWN0IGRv bWFpbl9pb21tdSAqaGQpCi17Ci0gICAgaW50IHJjOwotCi0gICAgc3Bpbl9s b2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwotICAgIHJjID0gYW1kX2lv bW11X2FsbG9jX3Jvb3QoaGQpOwotICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJj aC5tYXBwaW5nX2xvY2spOwotCi0gICAgcmV0dXJuIHJjOwotfQotCiBpbnQg X19yZWFkX21vc3RseSBhbWRfaW9tbXVfbWluX3BhZ2luZ19tb2RlID0gMTsK IAogc3RhdGljIGludCBhbWRfaW9tbXVfZG9tYWluX2luaXQoc3RydWN0IGRv bWFpbiAqZCkKQEAgLTMxMCw3ICszOTQsNiBAQCBzdGF0aWMgaW50IHJlYXNz aWduX2RldmljZShzdHJ1Y3QgZG9tYWluCiB7CiAgICAgc3RydWN0IGFtZF9p b21tdSAqaW9tbXU7CiAgICAgaW50IGJkZiwgcmM7Ci0gICAgc3RydWN0IGRv bWFpbl9pb21tdSAqdCA9IGRvbV9pb21tdSh0YXJnZXQpOwogICAgIGNvbnN0 IHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX21hcHBpbmdzID0gZ2V0X2l2 cnNfbWFwcGluZ3MocGRldi0+c2VnKTsKIAogICAgIGJkZiA9IFBDSV9CREYy KHBkZXYtPmJ1cywgcGRldi0+ZGV2Zm4pOwpAQCAtMzI0LDcgKzQwNywxNSBA QCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluCiAg ICAgICAgIHJldHVybiAtRU5PREVWOwogICAgIH0KIAotICAgIGFtZF9pb21t dV9kaXNhYmxlX2RvbWFpbl9kZXZpY2Uoc291cmNlLCBpb21tdSwgZGV2Zm4s IHBkZXYpOworICAgIHJjID0gYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZp Y2UodGFyZ2V0LCBpb21tdSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmMg KQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICBpZiAoIGRldmZuID09IHBk ZXYtPmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSB0YXJnZXQgKQorICAgIHsK KyAgICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5fbGlzdCwgJnRhcmdl dC0+YXJjaC5wZGV2X2xpc3QpOworICAgICAgICBwZGV2LT5kb21haW4gPSB0 YXJnZXQ7CisgICAgfQogCiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNl IGJlbG9uZ3MgdG8gdGhlIGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBh IHVuaXR5IG1hcHBpbmcsCkBAIC0zNDAsMjcgKzQzMSwxMCBAQCBzdGF0aWMg aW50IHJlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluCiAgICAgICAgICAg ICByZXR1cm4gcmM7CiAgICAgfQogCi0gICAgaWYgKCBkZXZmbiA9PSBwZGV2 LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKLSAgICB7Ci0g ICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZkb21faW8t PmFyY2gucGRldl9saXN0KTsKLSAgICAgICAgcGRldi0+ZG9tYWluID0gZG9t X2lvOwotICAgIH0KLQotICAgIHJjID0gYWxsb2NhdGVfZG9tYWluX3Jlc291 cmNlcyh0KTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgcmV0dXJuIHJjOwot Ci0gICAgYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UodGFyZ2V0LCBp b21tdSwgZGV2Zm4sIHBkZXYpOwogICAgIEFNRF9JT01NVV9ERUJVRygiUmUt YXNzaWduICUwNHg6JTAyeDolMDJ4LiV1IGZyb20gZG9tJWQgdG8gZG9tJWRc biIsCiAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVz LCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKICAgICAgICAg ICAgICAgICAgICAgc291cmNlLT5kb21haW5faWQsIHRhcmdldC0+ZG9tYWlu X2lkKTsKIAotICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRl di0+ZG9tYWluICE9IHRhcmdldCApCi0gICAgewotICAgICAgICBsaXN0X21v dmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5hcmNoLnBkZXZfbGlz dCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9IHRhcmdldDsKLSAgICB9Ci0K ICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDkxLDggKzU2NSw3IEBAIHN0YXRp YyBpbnQgYW1kX2lvbW11X2FkZF9kZXZpY2UodTggZGV2Zm4KICAgICAgICAg cmV0dXJuIC1FTk9ERVY7CiAgICAgfQogCi0gICAgYW1kX2lvbW11X3NldHVw X2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBk ZXYpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBhbWRfaW9tbXVfc2V0 dXBfZG9tYWluX2RldmljZShwZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwg cGRldik7CiB9CiAKIHN0YXRpYyBpbnQgYW1kX2lvbW11X3JlbW92ZV9kZXZp Y2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-06.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-06.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSSkKCkFycmFuZ2UgZm9yIGRvbWFpbiBJRCBhbmQg cGFnZSB0YWJsZSByb290IHRvIGJlIHBhc3NlZCBhcm91bmQsIHRoZSBsYXR0 ZXIgaW4KcGFydGljdWxhciB0byBkb21haW5fcGdkX21hZGRyKCkgc3VjaCB0 aGF0IHRha2luZyBpdCBmcm9tIHRoZSBwZXItZG9tYWluCmZpZWxkcyBjYW4g YmUgb3ZlcnJpZGRlbi4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9l eHRlcm4uaApAQCAtNzIsOSArNzIsMTAgQEAgdm9pZCAqbWFwX3Z0ZF9kb21h aW5fcGFnZSh1NjQgbWFkZHIpOwogdm9pZCB1bm1hcF92dGRfZG9tYWluX3Bh Z2Uodm9pZCAqdmEpOwogaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25l KHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IGlvbW11ICppb21tdSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGJ1cywg dWludDhfdCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgdW5zaWduZWQgaW50IG1v ZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBwY2lfZGV2ICpwZGV2LCBkb21pZF90IGRvbWlkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgcGdkX21hZGRyLCB1bnNp Z25lZCBpbnQgbW9kZSk7CiBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IGlvbW11ICppb21tdSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggYnVzLCB1OCBkZXZm bik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVz LCB1aW50OF90IGRldmZuLCBkb21pZF90IGRvbWlkKTsKIGludCBpbnRlbF9p b21tdV9nZXRfcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeShpb21tdV9ncmRtX3Qg KmZ1bmMsIHZvaWQgKmN0eHQpOwogCiB1bnNpZ25lZCBpbnQgaW9fYXBpY19y ZWFkX3JlbWFwX3J0ZSh1bnNpZ25lZCBpbnQgYXBpYywgdW5zaWduZWQgaW50 IHJlZyk7CkBAIC05Myw3ICs5NCw4IEBAIHZvaWQgcGxhdGZvcm1fcXVpcmtz X2luaXQodm9pZCk7CiB2b2lkIHZ0ZF9vcHNfcHJlYW1ibGVfcXVpcmsoc3Ry dWN0IGlvbW11KiBpb21tdSk7CiB2b2lkIHZ0ZF9vcHNfcG9zdGFtYmxlX3F1 aXJrKHN0cnVjdCBpb21tdSogaW9tbXUpOwogaW50IF9fbXVzdF9jaGVjayBt ZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdWludDhfdCBi dXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBk ZXZmbiwgdW5zaWduZWQgaW50IG1vZGUpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQsIHBh ZGRyX3QgcGdkX21hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBtb2RlKTsKIHZvaWQgcGNpX3Z0ZF9xdWlyayhj b25zdCBzdHJ1Y3QgcGNpX2RldiAqKTsKIHZvaWQgcXVpcmtfaW9tbXVfY2Fw cyhzdHJ1Y3QgaW9tbXUgKmlvbW11KTsKIAotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMTQwNSwxMiArMTQwNSwxMiBAQCBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgc3RydWN0IGRv bWFpbiAqZG9tYWluLAogICAgIHN0cnVjdCBpb21tdSAqaW9tbXUsCiAgICAg dWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lf ZGV2ICpwZGV2LAotICAgIHVuc2lnbmVkIGludCBtb2RlKQorICAgIGRvbWlk X3QgZG9taWQsIHBhZGRyX3QgcGdkX21hZGRyLCB1bnNpZ25lZCBpbnQgbW9k ZSkKIHsKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21t dShkb21haW4pOwogICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0 LCAqY29udGV4dF9lbnRyaWVzLCBsY3R4dDsKICAgICBfX3VpbnQxMjhfdCBv bGQ7Ci0gICAgdTY0IG1hZGRyLCBwZ2RfbWFkZHI7CisgICAgdWludDY0X3Qg bWFkZHI7CiAgICAgdWludDE2X3Qgc2VnID0gaW9tbXUtPmludGVsLT5kcmhk LT5zZWdtZW50LCBwcmV2X2RpZCA9IDA7CiAgICAgc3RydWN0IGRvbWFpbiAq cHJldl9kb20gPSBOVUxMOwogICAgIGludCBhZ2F3LCByYywgcmV0OwpAQCAt MTQ1MSwxMCArMTQ1MSwxMiBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGlu Z19vbmUoCiAgICAgfQogICAgIGVsc2UKICAgICB7CisgICAgICAgIHBhZGRy X3Qgcm9vdCA9IHBnZF9tYWRkcjsKKwogICAgICAgICBzcGluX2xvY2soJmhk LT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKICAgICAgICAgLyogRW5zdXJlIHdl IGhhdmUgcGFnZXRhYmxlcyBhbGxvY2F0ZWQgZG93biB0byBsZWFmIFBURS4g Ki8KLSAgICAgICAgaWYgKCBoZC0+YXJjaC5wZ2RfbWFkZHIgPT0gMCApCisg ICAgICAgIGlmICggIXJvb3QgKQogICAgICAgICB7CiAgICAgICAgICAgICBh ZGRyX3RvX2RtYV9wYWdlX21hZGRyKGRvbWFpbiwgMCwgMSk7CiAgICAgICAg ICAgICBpZiAoIGhkLT5hcmNoLnBnZF9tYWRkciA9PSAwICkKQEAgLTE0Njcs MjIgKzE0NjksMjQgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25l KAogICAgICAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihwcmV2 X2RvbSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAg ICAgICAgICB9CisKKyAgICAgICAgICAgIHJvb3QgPSBoZC0+YXJjaC5wZ2Rf bWFkZHI7CiAgICAgICAgIH0KIAogICAgICAgICAvKiBTa2lwIHRvcCBsZXZl bHMgb2YgcGFnZSB0YWJsZXMgZm9yIDItIGFuZCAzLWxldmVsIERSSERzLiAq LwotICAgICAgICBwZ2RfbWFkZHIgPSBoZC0+YXJjaC5wZ2RfbWFkZHI7CiAg ICAgICAgIGZvciAoIGFnYXcgPSBsZXZlbF90b19hZ2F3KDQpOwogICAgICAg ICAgICAgICBhZ2F3ICE9IGxldmVsX3RvX2FnYXcoaW9tbXUtPm5yX3B0X2xl dmVscyk7CiAgICAgICAgICAgICAgIGFnYXctLSApCiAgICAgICAgIHsKLSAg ICAgICAgICAgIHN0cnVjdCBkbWFfcHRlICpwID0gbWFwX3Z0ZF9kb21haW5f cGFnZShwZ2RfbWFkZHIpOwotICAgICAgICAgICAgcGdkX21hZGRyID0gZG1h X3B0ZV9hZGRyKCpwKTsKKyAgICAgICAgICAgIHN0cnVjdCBkbWFfcHRlICpw ID0gbWFwX3Z0ZF9kb21haW5fcGFnZShyb290KTsKKworICAgICAgICAgICAg cm9vdCA9IGRtYV9wdGVfYWRkcigqcCk7CiAgICAgICAgICAgICB1bm1hcF92 dGRfZG9tYWluX3BhZ2UocCk7Ci0gICAgICAgICAgICBpZiAoIHBnZF9tYWRk ciA9PSAwICkKKyAgICAgICAgICAgIGlmICggIXJvb3QgKQogICAgICAgICAg ICAgICAgIGdvdG8gbm9tZW07CiAgICAgICAgIH0KIAotICAgICAgICBjb250 ZXh0X3NldF9hZGRyZXNzX3Jvb3QobGN0eHQsIHBnZF9tYWRkcik7CisgICAg ICAgIGNvbnRleHRfc2V0X2FkZHJlc3Nfcm9vdChsY3R4dCwgcm9vdCk7CiAg ICAgICAgIGlmICggYXRzX2VuYWJsZWQgJiYgZWNhcF9kZXZfaW90bGIoaW9t bXUtPmVjYXApICkKICAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0 aW9uX3R5cGUobGN0eHQsIENPTlRFWFRfVFRfREVWX0lPVExCKTsKICAgICAg ICAgZWxzZQpAQCAtMTU5OCwxNSArMTYwMiwyMSBAQCBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdl KGNvbnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFzZWcgJiYgIXJjICkK LSAgICAgICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVzLCBkZXZm biwgbW9kZSk7CisgICAgICAgIHJjID0gbWVfd2lmaV9xdWlyayhkb21haW4s IGJ1cywgZGV2Zm4sIGRvbWlkLCBwZ2RfbWFkZHIsIG1vZGUpOwogCiAgICAg aWYgKCByYyApCiAgICAgewogICAgICAgICBpZiAoICFwcmV2X2RvbSApCi0g ICAgICAgICAgICBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBp b21tdSwgYnVzLCBkZXZmbik7CisgICAgICAgICAgICBkb21haW5fY29udGV4 dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCk7CiAgICAgICAgIGVsc2UgaWYgKCBwcmV2X2RvbSAhPSBkb21haW4g KSAvKiBBdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uICovCisgICAgICAgIHsK KyAgICAgICAgICAgIGhkID0gZG9tX2lvbW11KHByZXZfZG9tKTsKICAgICAg ICAgICAgIGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKHByZXZfZG9tLCBp b21tdSwgYnVzLCBkZXZmbiwgcGRldiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGQtPmFyY2gucGdk X21hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbW9kZSAmIE1BUF9XSVRIX1JNUlIpOworICAgICAgICB9CiAgICAgfQog CiAgICAgaWYgKCBwcmV2X2RvbSApCkBAIC0xNjIzLDYgKzE2MzMsNyBAQCBz dGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiB7CiAg ICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIGNvbnN0IHN0 cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKKyAgICBwYWRkcl90IHBnZF9t YWRkciA9IGRvbV9pb21tdShkb21haW4pLT5hcmNoLnBnZF9tYWRkcjsKICAg ICBpbnQgcmV0ID0gMDsKICAgICB1bnNpZ25lZCBpbnQgaSwgbW9kZSA9IDA7 CiAgICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2VnLCBiZGY7CkBAIC0xNjc4 LDcgKzE2ODksOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmcoc3RydWN0CiAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5f aWQsIHNlZywgYnVzLAogICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGRl dmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKICAgICAgICAgcmV0ID0gZG9tYWlu X2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVz LCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGRldiwgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2Rf bWFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA+IDAgKQogICAgICAgICAg ICAgcmV0ID0gMDsKICAgICAgICAgaWYgKCAhcmV0ICYmIGRldmZuID09IHBk ZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkKQEAg LTE2OTMsNyArMTcwNSw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChk ZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAKICAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwg YnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGRldiwgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ZG9tYWluX2lkLCBw Z2RfbWFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA8IDAgKQogICAgICAg ICAgICAgYnJlYWs7CiAgICAgICAgIHByZXZfcHJlc2VudCA9IHJldDsKQEAg LTE3MTksNyArMTczMiw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICovCiAgICAgICAgIGlmICggcmV0 ID49IDAgKQogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFw cGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5V TEwsIG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRk ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGUpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIERldmljZXMg YmVoaW5kIFBDSWUtdG8tUENJL1BDSXggYnJpZGdlIG1heSBnZW5lcmF0ZSBk aWZmZXJlbnQKQEAgLTE3MzQsNyArMTc0OCw4IEBAIHN0YXRpYyBpbnQgZG9t YWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYgKCAhcmV0 ICYmIHBkZXZfdHlwZShzZWcsIGJ1cywgZGV2Zm4pID09IERFVl9UWVBFX1BD SWUyUENJX0JSSURHRSAmJgogICAgICAgICAgICAgIChzZWNidXMgIT0gcGRl di0+YnVzIHx8IHBkZXYtPmRldmZuICE9IDApICkKICAgICAgICAgICAgIHJl dCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+ aW9tbXUsIHNlY2J1cywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsIG1vZGUpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZG9tYWlu LT5kb21haW5faWQsIHBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOwogCiAgICAgICAgIGlm ICggcmV0ICkKICAgICAgICAgewpAQCAtMTc2Myw3ICsxNzc4LDcgQEAgc3Rh dGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogaW50IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICBzdHJ1Y3QgZG9tYWluICpk b21haW4sCiAgICAgc3RydWN0IGlvbW11ICppb21tdSwKLSAgICB1OCBidXMs IHU4IGRldmZuKQorICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBk b21pZF90IGRvbWlkKQogewogICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpj b250ZXh0LCAqY29udGV4dF9lbnRyaWVzOwogICAgIHU2NCBtYWRkcjsKQEAg LTE4MjEsNyArMTgzNiw3IEBAIGludCBkb21haW5fY29udGV4dF91bm1hcF9v bmUoCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmll cyk7CiAKICAgICBpZiAoICFpb21tdS0+aW50ZWwtPmRyaGQtPnNlZ21lbnQg JiYgIXJjICkKLSAgICAgICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwg YnVzLCBkZXZmbiwgVU5NQVBfTUVfUEhBTlRPTV9GVU5DKTsKKyAgICAgICAg cmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVzLCBkZXZmbiwgZG9taWQs IDAsIFVOTUFQX01FX1BIQU5UT01fRlVOQyk7CiAKICAgICByZXR1cm4gcmM7 CiB9CkBAIC0xODYwLDcgKzE4NzUsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9j b250ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgICAgICAgICBwcmludGsoVlRE UFJFRklYICJkJWQ6UENJZTogdW5tYXAgJTA0eDolMDJ4OiUwMnguJXVcbiIs CiAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywg YnVzLAogICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJ X0ZVTkMoZGV2Zm4pKTsKLSAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRf dW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21t dSwgYnVzLCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgaWYgKCAh cmV0ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRl diwgZHJoZCkgPiAwICkKICAgICAgICAgICAgIGRpc2FibGVfYXRzX2Rldmlj ZShwZGV2KTsKIApAQCAtMTg3MCw3ICsxODg2LDggQEAgc3RhdGljIGludCBk b21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICBpZiAoIGlv bW11X2RlYnVnICkKICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggImQl ZDpQQ0k6IHVubWFwICUwNHg6JTAyeDolMDJ4LiV1XG4iLAogICAgICAgICAg ICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywgUENJX1NM T1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwotICAgICAgICByZXQgPSBk b21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBk ZXZmbik7CisgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29u ZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwog ICAgICAgICBpZiAoIHJldCApCiAgICAgICAgICAgICBicmVhazsKIApAQCAt MTg4MiwxNCArMTg5OSwxNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwKHN0cnVjdCBkCiAgICAgICAgIC8qIFBDSWUgdG8gUENJL1BDSXgg YnJpZGdlICovCiAgICAgICAgIGlmICggcGRldl90eXBlKHNlZywgdG1wX2J1 cywgdG1wX2RldmZuKSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0UgKQog ICAgICAgICB7Ci0gICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91 bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgdG1wX2J1cywgdG1wX2RldmZuKTsK KyAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShk b21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21h aW5faWQpOwogICAgICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICAgICAg ICAgIHJldHVybiByZXQ7CiAKLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9j b250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBzZWNidXMsIDApOwor ICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIHNlY2J1cywgMCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7CiAg ICAgICAgIH0KICAgICAgICAgZWxzZSAvKiBMZWdhY3kgUENJIGJyaWRnZSAq LwotICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KGRvbWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbik7CisgICAgICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBp b21tdSwgdG1wX2J1cywgdG1wX2RldmZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsK IAogICAgICAgICBicmVhazsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvcXVpcmtzLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3F1aXJrcy5jCkBAIC0zMzEsNiArMzMxLDggQEAgdm9pZCBfX2lu aXQgcGxhdGZvcm1fcXVpcmtzX2luaXQodm9pZCkKIAogc3RhdGljIGludCBf X211c3RfY2hlY2sgbWFwX21lX3BoYW50b21fZnVuY3Rpb24oc3RydWN0IGRv bWFpbiAqZG9tYWluLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGRldiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlk X3QgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYWRkcl90IHBnZF9tYWRkciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBtb2RlKQogewogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJo ZDsKQEAgLTM0NCwxNiArMzQ2LDE3IEBAIHN0YXRpYyBpbnQgX19tdXN0X2No ZWNrIG1hcF9tZV9waGFudG9tX2YKICAgICAvKiBtYXAgb3IgdW5tYXAgTUUg cGhhbnRvbSBmdW5jdGlvbiAqLwogICAgIGlmICggIShtb2RlICYgVU5NQVBf TUVfUEhBTlRPTV9GVU5DKSApCiAgICAgICAgIHJjID0gZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgMCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVWRk4o ZGV2LCA3KSwgTlVMTCwgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUENJX0RFVkZOKGRldiwgNyksIE5VTEwsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWQs IHBnZF9tYWRkciwgbW9kZSk7CiAgICAgZWxzZQogICAgICAgICByYyA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGRyaGQtPmlvbW11LCAw LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lf REVWRk4oZGV2LCA3KSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpLCBkb21pZCk7CiAKICAgICBy ZXR1cm4gcmM7CiB9CiAKIGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21h aW4gKmRvbWFpbiwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSkKKyAgICAgICAgICAg ICAgICAgIGRvbWlkX3QgZG9taWQsIHBhZGRyX3QgcGdkX21hZGRyLCB1bnNp Z25lZCBpbnQgbW9kZSkKIHsKICAgICB1MzIgaWQ7CiAgICAgaW50IHJjID0g MDsKQEAgLTM3Nyw3ICszODAsNyBAQCBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1 Y3QgZG9tYWluICpkb21haW4sCiAgICAgICAgICAgICBjYXNlIDB4NDIzYjgw ODY6CiAgICAgICAgICAgICBjYXNlIDB4NDIzYzgwODY6CiAgICAgICAgICAg ICBjYXNlIDB4NDIzZDgwODY6Ci0gICAgICAgICAgICAgICAgcmMgPSBtYXBf bWVfcGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDMsIG1vZGUpOworICAgICAg ICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWlu LCAzLCBkb21pZCwgcGdkX21hZGRyLCBtb2RlKTsKICAgICAgICAgICAgICAg ICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAg ICAgYnJlYWs7CkBAIC00MDMsNyArNDA2LDcgQEAgaW50IG1lX3dpZmlfcXVp cmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgICAgICAgICAgY2FzZSAw eDQyMzg4MDg2OiAgICAgICAgLyogUHVtYSBQZWFrICovCiAgICAgICAgICAg ICBjYXNlIDB4NDIyYjgwODY6CiAgICAgICAgICAgICBjYXNlIDB4NDIyYzgw ODY6Ci0gICAgICAgICAgICAgICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5j dGlvbihkb21haW4sIDIyLCBtb2RlKTsKKyAgICAgICAgICAgICAgICByYyA9 IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMjIsIGRvbWlkLCBw Z2RfbWFkZHIsIG1vZGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-07.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-07.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSUkpCgpSZXBsYWNlIHRoZSBwYXNzaW5nIG9mIHN0 cnVjdCBkb21haW4gKiBieSBkb21pZF90IGluIHByZXBhcmF0aW9uIG9mCnBl ci1kZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBhbHNvIHJlcXVpcmlu ZyBwZXItZGV2aWNlIHBzZXVkbwpkb21haW4gSURzLCB3aGljaCBhcmVuJ3Qg Z29pbmcgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFueSBzdHJ1Y3QgZG9tYWlu Cmluc3RhbmNlcy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkIChl eGNlcHQgZm9yIHNsaWdodGx5IGFkanVzdGVkIGxvZyBtZXNzYWdlCnRleHQp LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTUyLDggKzUyLDggQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0 IHZ0ZF9mYXVsdF90YXNrbGV0Owogc3RhdGljIGludCBzZXR1cF9od2RvbV9k ZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICopOwogc3RhdGljIHZv aWQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKTsKIAotc3Rh dGljIGludCBkb21haW5faW9tbXVfZG9taWQoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb21tdSAq aW9tbXUpCitzdGF0aWMgaW50IGdldF9pb21tdV9kaWQoZG9taWRfdCBkb21p ZCwgY29uc3Qgc3RydWN0IGlvbW11ICppb21tdSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIHdhcm4pCiB7CiAgICAgdW5zaWduZWQgbG9uZyBu cl9kb20sIGk7CiAKQEAgLTYxLDIzICs2MSwyNCBAQCBzdGF0aWMgaW50IGRv bWFpbl9pb21tdV9kb21pZChzdHJ1Y3QgZG9tCiAgICAgaSA9IGZpbmRfZmly c3RfYml0KGlvbW11LT5kb21pZF9iaXRtYXAsIG5yX2RvbSk7CiAgICAgd2hp bGUgKCBpIDwgbnJfZG9tICkKICAgICB7Ci0gICAgICAgIGlmICggaW9tbXUt PmRvbWlkX21hcFtpXSA9PSBkLT5kb21haW5faWQgKQorICAgICAgICBpZiAo IGlvbW11LT5kb21pZF9tYXBbaV0gPT0gZG9taWQgKQogICAgICAgICAgICAg cmV0dXJuIGk7CiAKICAgICAgICAgaSA9IGZpbmRfbmV4dF9iaXQoaW9tbXUt PmRvbWlkX2JpdG1hcCwgbnJfZG9tLCBpKzEpOwogICAgIH0KIAotICAgIGRw cmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCi0gICAgICAgICAgICAiQ2Fu bm90IGdldCB2YWxpZCBpb21tdSBkb21pZDogZG9taWQ9JWQgaW9tbXUtPmlu ZGV4PSVkXG4iLAotICAgICAgICAgICAgZC0+ZG9tYWluX2lkLCBpb21tdS0+ aW5kZXgpOworICAgIGlmICggd2FybiApCisgICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsCisgICAgICAgICAgICAgICAgIk5vIHZhbGlk IGlvbW11ICV1IGRvbWlkIGZvciBEb20lZFxuIiwKKyAgICAgICAgICAgICAg ICBpb21tdS0+aW5kZXgsIGRvbWlkKTsKKwogICAgIHJldHVybiAtMTsKIH0K IAogI2RlZmluZSBESURfRklFTERfV0lEVEggMTYKICNkZWZpbmUgRElEX0hJ R0hfT0ZGU0VUIDgKIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lk KHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRvbWFpbiAqZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBpb21tdSAqaW9t bXUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90 IGRvbWlkLCBzdHJ1Y3QgaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVk IGxvbmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CkBAIC04OCw3 ICs4OSw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0 cnVjdAogICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChpb21tdS0+ZG9taWRfYml0 bWFwLCBucl9kb20pOwogICAgIHdoaWxlICggaSA8IG5yX2RvbSApCiAgICAg ewotICAgICAgICBpZiAoIGlvbW11LT5kb21pZF9tYXBbaV0gPT0gZC0+ZG9t YWluX2lkICkKKyAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ldID09 IGRvbWlkICkKICAgICAgICAgewogICAgICAgICAgICAgZm91bmQgPSAxOwog ICAgICAgICAgICAgYnJlYWs7CkBAIC0xMDQsNyArMTA1LDcgQEAgc3RhdGlj IGludCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiSU9NTVU6IG5vIGZy ZWUgZG9tYWluIGlkc1xuIik7CiAgICAgICAgICAgICByZXR1cm4gLUVGQVVM VDsKICAgICAgICAgfQotICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0g ZC0+ZG9tYWluX2lkOworICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0g ZG9taWQ7CiAgICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ZG9taWRf Yml0bWFwKTsKQEAgLTEzMSw5ICsxMzIsOSBAQCBzdGF0aWMgdm9pZCBfX2lu aXQgZnJlZV9pbnRlbF9pb21tdShzdHJ1CiAgICAgeGZyZWUoaW50ZWwpOwog fQogCi1zdGF0aWMgdm9pZCBjbGVhbnVwX2RvbWlkX21hcChzdHJ1Y3QgZG9t YWluICpkb21haW4sIHN0cnVjdCBpb21tdSAqaW9tbXUpCitzdGF0aWMgdm9p ZCBjbGVhbnVwX2RvbWlkX21hcChkb21pZF90IGRvbWlkLCBzdHJ1Y3QgaW9t bXUgKmlvbW11KQogewotICAgIGludCBpb21tdV9kb21pZCA9IGRvbWFpbl9p b21tdV9kb21pZChkb21haW4sIGlvbW11KTsKKyAgICBpbnQgaW9tbXVfZG9t aWQgPSBnZXRfaW9tbXVfZGlkKGRvbWlkLCBpb21tdSwgZmFsc2UpOwogCiAg ICAgaWYgKCBpb21tdV9kb21pZCA+PSAwICkKICAgICB7CkBAIC0xODksNyAr MTkwLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAo c3RydQogICAgIGlmICggIWZvdW5kICkKICAgICB7CiAgICAgICAgIGNsZWFy X2JpdChpb21tdS0+aW5kZXgsICZkb21faW9tbXUoZCktPmFyY2guaW9tbXVf Yml0bWFwKTsKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgaW9tbXUp OworICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChkLT5kb21haW5faWQsIGlv bW11KTsKICAgICB9CiB9CiAKQEAgLTY3MCw3ICs2NzEsNyBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsCiAgICAgICAgICAg ICBjb250aW51ZTsKIAogICAgICAgICBmbHVzaF9kZXZfaW90bGIgPSAhIWZp bmRfYXRzX2Rldl9kcmhkKGlvbW11KTsKLSAgICAgICAgaW9tbXVfZG9taWQ9 IGRvbWFpbl9pb21tdV9kb21pZChkLCBpb21tdSk7CisgICAgICAgIGlvbW11 X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkLT5kb21haW5faWQsIGlvbW11LCAh ZC0+aXNfZHlpbmcpOwogICAgICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0x ICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNDk1LDcgKzE0OTYs NyBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgIH0K IAotICAgIHJjID0gY29udGV4dF9zZXRfZG9tYWluX2lkKCZsY3R4dCwgZG9t YWluLCBpb21tdSk7CisgICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5faWQo JmxjdHh0LCBkb21pZCwgaW9tbXUpOwogICAgIGlmICggcmMgKQogICAgIHsK ICAgICB1bmxvY2s6CkBAIC0xODAzLDcgKzE4MDQsNyBAQCBpbnQgZG9tYWlu X2NvbnRleHRfdW5tYXBfb25lKAogICAgIGNvbnRleHRfY2xlYXJfZW50cnko KmNvbnRleHQpOwogICAgIGlvbW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6 ZW9mKHN0cnVjdCBjb250ZXh0X2VudHJ5KSk7CiAKLSAgICBpb21tdV9kb21p ZD0gZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOworICAgIGlv bW11X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkb21pZCwgaW9tbXUsICFkb21h aW4tPmlzX2R5aW5nKTsKICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkK ICAgICB7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-08.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-08.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IG1haW50YWluIGEgcGVyLWRldmljZSBwc2V1ZG8gZG9t YWluIElECgpJbiBvcmRlciB0byBzdWJzZXF1ZW50bHkgZW5hYmxlIHBlci1k ZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcywgd2UnbGwKbmVlZCBkb21h aW4tSUQtbGlrZSBpZGVudGlmaWVycyB0byBiZSBpbnNlcnRlZCBpbiB0aGUg cmVzcGVjdGl2ZSBkZXZpY2UKKEFNRCkgb3IgY29udGV4dCAoSW50ZWwpIHRh YmxlIGVudHJpZXMgYWxvbmdzaWRlIHRoZSBwZXItZGV2aWNlIHBhZ2UKdGFi bGUgcm9vdCBhZGRyZXNzZXMuCgpNYWtlIHVzZSBvZiAicmVhbCIgZG9tYWlu IElEcyBvY2N1cHlpbmcgb25seSBoYWxmIG9mIHRoZSB2YWx1ZSByYW5nZQpj b3ZlcmFibGUgYnkgZG9taWRfdC4KCk5vdGUgdGhhdCBpbiBWVC1kJ3MgaW9t bXVfYWxsb2MoKSBJIGRpZG4ndCB3YW50IHRvIGludHJvZHVjZSBuZXcgbWVt b3J5CmxlYWtzIGluIGNhc2Ugb2YgZXJyb3IsIGJ1dCBleGlzdGluZyBvbmVz IGRvbid0IGdldCBwbHVnZ2VkIC0gdGhhdCdsbCBiZQp0aGUgc3ViamVjdCBv ZiBhIGxhdGVyIGNoYW5nZS4KClRoZSBWVC1kIGNoYW5nZXMgYXJlIHNsaWdo dGx5IGFzeW1tZXRyaWMsIGJ1dCB0aGlzIHdheSB3ZSBjYW4gYXZvaWQKYXNz aWduaW5nIHBzZXVkbyBkb21haW4gSURzIHRvIGRldmljZXMgd2hpY2ggd291 bGQgbmV2ZXIgYmUgbWFwcGVkIHdoaWxlCnN0aWxsIGF2b2lkaW5nIHRvIGFk ZCBhIG5ldyBwYXJhbWV0ZXIgdG8gZG9tYWluX2NvbnRleHRfdW5tYXAoKS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpS ZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTExMiw2ICsx MTIsMTAgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9k ZXNjCiAgICAgICAgIG9wcy0+c3luY19jYWNoZShhZGRyLCBzaXplKTsgICAg ICAgICAgICAgICAgICAgIFwKIH0pCiAKK3Vuc2lnbmVkIGxvbmcgKmlvbW11 X2luaXRfZG9taWQodm9pZCk7Citkb21pZF90IGlvbW11X2FsbG9jX2RvbWlk KHVuc2lnbmVkIGxvbmcgKm1hcCk7Cit2b2lkIGlvbW11X2ZyZWVfZG9taWQo ZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyAqbWFwKTsKKwogI2VuZGlm IC8qICFfX0FSQ0hfWDg2X0lPTU1VX0hfXyAqLwogLyoKICAqIExvY2FsIHZh cmlhYmxlczoKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xNSw2ICsxNSwxMiBA QAogCiBzdHJ1Y3QgYXJjaF9wY2lfZGV2IHsKICAgICB2bWFza190IHVzZWRf dmVjdG9yczsKKyAgICAvKgorICAgICAqIFRoZXNlIGZpZWxkcyBhcmUgKGRl KWluaXRpYWxpemVkIHVuZGVyIHBjaWRldnMtbG9jay4gT3RoZXIgdXNlcyBv ZgorICAgICAqIHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6YXRpb24g YW5kIGhlbmNlIGRvbid0IHN0cmljdGx5IG5lZWQgYW55CisgICAgICogbG9j a2luZy4KKyAgICAgKi8KKyAgICBkb21pZF90IHBzZXVkb19kb21pZDsKIH07 CiAKIGludCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50 IHNlZywgdW5zaWduZWQgaW50IGJkZiwKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbWQtaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2Ft ZC1pb21tdS5oCkBAIC05Nyw2ICs5Nyw3IEBAIHN0cnVjdCBhbWRfaW9tbXUg ewogICAgIHN0cnVjdCByaW5nX2J1ZmZlciBjbWRfYnVmZmVyOwogICAgIHN0 cnVjdCByaW5nX2J1ZmZlciBldmVudF9sb2c7CiAgICAgc3RydWN0IHJpbmdf YnVmZmVyIHBwcl9sb2c7CisgICAgdW5zaWduZWQgbG9uZyAqZG9taWRfbWFw OwogCiAgICAgaW50IGV4Y2x1c2lvbl9lbmFibGU7CiAgICAgaW50IGV4Y2x1 c2lvbl9hbGxvd19hbGw7Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9kZXRlY3QuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKQEAgLTE1MCw2ICsxNTAsMTEgQEAg aW50IF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0X29uZV9hY3BpKAogICAgIGlm ICggcnQgKQogICAgICAgICBnb3RvIG91dDsKIAorICAgIGlvbW11LT5kb21p ZF9tYXAgPSBpb21tdV9pbml0X2RvbWlkKCk7CisgICAgcnQgPSAtRU5PTUVN OworICAgIGlmICggIWlvbW11LT5kb21pZF9tYXAgKQorICAgICAgICBnb3Rv IG91dDsKKwogICAgIHJ0ID0gcGNpX3JvX2RldmljZShpb21tdS0+c2VnLCBi dXMsIFBDSV9ERVZGTihkZXYsIGZ1bmMpKTsKICAgICBpZiAoIHJ0ICkKICAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIKQEAgLTE2MSw3ICsxNjYsMTAgQEAg aW50IF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0X29uZV9hY3BpKAogCiAgb3V0 OgogICAgIGlmICggcnQgKQorICAgIHsKKyAgICAgICAgeGZyZWUoaW9tbXUt PmRvbWlkX21hcCk7CiAgICAgICAgIHhmcmVlKGlvbW11KTsKKyAgICB9CiAK ICAgICByZXR1cm4gcnQ7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtNTQxLDYgKzU0MSw4 IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X2FkZF9kZXZpY2UodTggZGV2Zm4K IHsKICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKICAgICB1MTYgYmRm OworICAgIGJvb2wgZnJlc2hfZG9taWQgPSBmYWxzZTsKKyAgICBpbnQgcmV0 OwogCiAgICAgaWYgKCAhcGRldi0+ZG9tYWluICkKICAgICAgICAgcmV0dXJu IC1FSU5WQUw7CkBAIC01NjUsNyArNTY3LDIyIEBAIHN0YXRpYyBpbnQgYW1k X2lvbW11X2FkZF9kZXZpY2UodTggZGV2Zm4KICAgICAgICAgcmV0dXJuIC1F Tk9ERVY7CiAgICAgfQogCi0gICAgcmV0dXJuIGFtZF9pb21tdV9zZXR1cF9k b21haW5fZGV2aWNlKHBkZXYtPmRvbWFpbiwgaW9tbXUsIGRldmZuLCBwZGV2 KTsKKyAgICBpZiAoIGlvbW11X3F1YXJhbnRpbmUgJiYgcGRldi0+YXJjaC5w c2V1ZG9fZG9taWQgPT0gRE9NSURfSU5WQUxJRCApCisgICAgeworICAgICAg ICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IGlvbW11X2FsbG9jX2RvbWlk KGlvbW11LT5kb21pZF9tYXApOworICAgICAgICBpZiAoIHBkZXYtPmFyY2gu cHNldWRvX2RvbWlkID09IERPTUlEX0lOVkFMSUQgKQorICAgICAgICAgICAg cmV0dXJuIC1FTk9TUEM7CisgICAgICAgIGZyZXNoX2RvbWlkID0gdHJ1ZTsK KyAgICB9CisKKyAgICByZXQgPSBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2Rl dmljZShwZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwgcGRldik7CisgICAg aWYgKCByZXQgJiYgZnJlc2hfZG9taWQgKQorICAgIHsKKyAgICAgICAgaW9t bXVfZnJlZV9kb21pZChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgaW9tbXUt PmRvbWlkX21hcCk7CisgICAgICAgIHBkZXYtPmFyY2gucHNldWRvX2RvbWlk ID0gRE9NSURfSU5WQUxJRDsKKyAgICB9CisKKyAgICByZXR1cm4gcmV0Owog fQogCiBzdGF0aWMgaW50IGFtZF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4IGRl dmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTU4Nyw2ICs2MDQsMTAg QEAgc3RhdGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZQog ICAgIH0KIAogICAgIGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2Uo cGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBkZXYpOworCisgICAgaW9t bXVfZnJlZV9kb21pZChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgaW9tbXUt PmRvbWlkX21hcCk7CisgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBE T01JRF9JTlZBTElEOworCiAgICAgcmV0dXJuIDA7CiB9CiAKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvcGNpLmMKQEAgLTM0Myw2ICszNDMsNyBAQCBzdGF0aWMg c3RydWN0IHBjaV9kZXYgKmFsbG9jX3BkZXYoc3RydWN0CiAgICAgKigodTgq KSAmcGRldi0+YnVzKSA9IGJ1czsKICAgICAqKCh1OCopICZwZGV2LT5kZXZm bikgPSBkZXZmbjsKICAgICBwZGV2LT5kb21haW4gPSBOVUxMOworICAgIHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsKICAgICBJ TklUX0xJU1RfSEVBRCgmcGRldi0+bXNpX2xpc3QpOwogCiAgICAgaWYgKCBw Y2lfZmluZF9jYXBfb2Zmc2V0KHBzZWctPm5yLCBidXMsIFBDSV9TTE9UKGRl dmZuKSwgUENJX0ZVTkMoZGV2Zm4pLApAQCAtMTMxMSwxMCArMTMxMiwxMyBA QCBzdGF0aWMgaW50IF9kdW1wX3BjaV9kZXZpY2VzKHN0cnVjdCBwY2lfCiAK ICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcGRldiwgJnBzZWctPmFsbGRl dnNfbGlzdCwgYWxsZGV2c19saXN0ICkKICAgICB7Ci0gICAgICAgIHByaW50 aygiJTA0eDolMDJ4OiUwMnguJXUgLSBkb20gJS0zZCAtIG5vZGUgJS0zZCAt IE1TSXMgPCAiLAotICAgICAgICAgICAgICAgcHNlZy0+bnIsIHBkZXYtPmJ1 cywKLSAgICAgICAgICAgICAgIFBDSV9TTE9UKHBkZXYtPmRldmZuKSwgUENJ X0ZVTkMocGRldi0+ZGV2Zm4pLAotICAgICAgICAgICAgICAgcGRldi0+ZG9t YWluID8gcGRldi0+ZG9tYWluLT5kb21haW5faWQgOiAtMSwKKyAgICAgICAg cHJpbnRrKCIlMDR4OiUwMng6JTAyeC4ldSAtICIsIHBzZWctPm5yLCBwZGV2 LT5idXMsCisgICAgICAgICAgICAgICBQQ0lfU0xPVChwZGV2LT5kZXZmbiks IFBDSV9GVU5DKHBkZXYtPmRldmZuKSk7CisgICAgICAgIGlmICggcGRldi0+ ZG9tYWluID09IGRvbV9pbyApCisgICAgICAgICAgICBwcmludGsoIkRvbUlP OiV4IiwgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQpOworICAgICAgICBlbHNl IGlmICggcGRldi0+ZG9tYWluICkKKyAgICAgICAgICAgIHByaW50aygiRG9t JWQiLCBwZGV2LT5kb21haW4tPmRvbWFpbl9pZCk7CisgICAgICAgIHByaW50 aygiIC0gbm9kZSAlLTNkIC0gTVNJcyA8ICIsCiAgICAgICAgICAgICAgICAo cGRldi0+bm9kZSAhPSBOVU1BX05PX05PREUpID8gcGRldi0+bm9kZSA6IC0x KTsKICAgICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIG1zaSwgJnBkZXYt Pm1zaV9saXN0LCBsaXN0ICkKICAgICAgICAgICAgICAgIHByaW50aygiJWQg IiwgbXNpLT5pcnEpOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHhlbi9zY2hl ZC5oPgogI2luY2x1ZGUgPHhlbi94bWFsbG9jLmg+CiAjaW5jbHVkZSA8eGVu L2RvbWFpbl9wYWdlLmg+CisjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1 ZGUgPHhlbi9pb2NhcC5oPgogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogI2lu Y2x1ZGUgPHhlbi9udW1hLmg+CkBAIC0xMjM0LDcgKzEyMzUsNyBAQCBpbnQg X19pbml0IGlvbW11X2FsbG9jKHN0cnVjdCBhY3BpX2RyaGRfCiB7CiAgICAg c3RydWN0IGlvbW11ICppb21tdTsKICAgICB1bnNpZ25lZCBsb25nIHNhZ2F3 LCBucl9kb207Ci0gICAgaW50IGFnYXc7CisgICAgaW50IGFnYXcsIHJjOwog CiAgICAgaWYgKCBucl9pb21tdXMgPiBNQVhfSU9NTVVTICkKICAgICB7CkBA IC0xMzI0LDEwICsxMzI1LDE5IEBAIGludCBfX2luaXQgaW9tbXVfYWxsb2Mo c3RydWN0IGFjcGlfZHJoZF8KICAgICBpZiAoICFpb21tdS0+ZG9taWRfbWFw ICkKICAgICAgICAgcmV0dXJuIC1FTk9NRU0gOwogCisgICAgaW9tbXUtPnBz ZXVkb19kb21pZF9tYXAgPSBpb21tdV9pbml0X2RvbWlkKCk7CisgICAgcmMg PSAtRU5PTUVNOworICAgIGlmICggIWlvbW11LT5wc2V1ZG9fZG9taWRfbWFw ICkKKyAgICAgICAgZ290byBmcmVlOworCiAgICAgc3Bpbl9sb2NrX2luaXQo JmlvbW11LT5sb2NrKTsKICAgICBzcGluX2xvY2tfaW5pdCgmaW9tbXUtPnJl Z2lzdGVyX2xvY2spOwogCiAgICAgcmV0dXJuIDA7CisKKyBmcmVlOgorICAg IGlvbW11X2ZyZWUoZHJoZCk7CisgICAgcmV0dXJuIHJjOwogfQogCiB2b2lk IF9faW5pdCBpb21tdV9mcmVlKHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJo ZCkKQEAgLTEzNTAsNiArMTM2MCw3IEBAIHZvaWQgX19pbml0IGlvbW11X2Zy ZWUoc3RydWN0IGFjcGlfZHJoZF8KIAogICAgIHhmcmVlKGlvbW11LT5kb21p ZF9iaXRtYXApOwogICAgIHhmcmVlKGlvbW11LT5kb21pZF9tYXApOworICAg IHhmcmVlKGlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKIAogICAgIGZyZWVf aW50ZWxfaW9tbXUoaW9tbXUtPmludGVsKTsKICAgICBpZiAoIGlvbW11LT5t c2kuaXJxID49IDAgKQpAQCAtMTYyNiw4ICsxNjM3LDggQEAgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHJldHVybiByYyA/OiBwZGV2 ICYmIHByZXZfZG9tOwogfQogCi1zdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4X3QgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpw ZGV2KTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRv bWFpbl9jb250ZXh0X3VubWFwKAorICAgIHN0cnVjdCBkb21haW4gKmQsIHVp bnQ4X3QgZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIAogc3RhdGlj IGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdCBkb21haW4gKmRv bWFpbiwgdTggZGV2Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpCkBAIC0xNjM1LDYgKzE2NDYs NyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0 CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIGNvbnN0 IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKICAgICBwYWRkcl90IHBn ZF9tYWRkciA9IGRvbV9pb21tdShkb21haW4pLT5hcmNoLnBnZF9tYWRkcjsK KyAgICBkb21pZF90IG9yaWdfZG9taWQgPSBwZGV2LT5hcmNoLnBzZXVkb19k b21pZDsKICAgICBpbnQgcmV0ID0gMDsKICAgICB1bnNpZ25lZCBpbnQgaSwg bW9kZSA9IDA7CiAgICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2VnLCBiZGY7 CkBAIC0xNjg1LDYgKzE2OTcsMTQgQEAgc3RhdGljIGludCBkb21haW5fY29u dGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICBicmVhazsKIAogICAgIGNh c2UgREVWX1RZUEVfUENJZV9FTkRQT0lOVDoKKyAgICAgICAgaWYgKCBpb21t dV9xdWFyYW50aW5lICYmIG9yaWdfZG9taWQgPT0gRE9NSURfSU5WQUxJRCAp CisgICAgICAgIHsKKyAgICAgICAgICAgIHBkZXYtPmFyY2gucHNldWRvX2Rv bWlkID0KKyAgICAgICAgICAgICAgICBpb21tdV9hbGxvY19kb21pZChkcmhk LT5pb21tdS0+cHNldWRvX2RvbWlkX21hcCk7CisgICAgICAgICAgICBpZiAo IHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID09IERPTUlEX0lOVkFMSUQgKQor ICAgICAgICAgICAgICAgIHJldHVybiAtRU5PU1BDOworICAgICAgICB9CisK ICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAgICBwcmlu dGsoVlREUFJFRklYICJkJWQ6UENJZTogbWFwICUwNHg6JTAyeDolMDJ4LiV1 XG4iLAogICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBz ZWcsIGJ1cywKQEAgLTE3MDAsNiArMTcyMCwxNCBAQCBzdGF0aWMgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGJyZWFrOwog CiAgICAgY2FzZSBERVZfVFlQRV9QQ0k6CisgICAgICAgIGlmICggaW9tbXVf cXVhcmFudGluZSAmJiBvcmlnX2RvbWlkID09IERPTUlEX0lOVkFMSUQgKQor ICAgICAgICB7CisgICAgICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21p ZCA9CisgICAgICAgICAgICAgICAgaW9tbXVfYWxsb2NfZG9taWQoZHJoZC0+ aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOworICAgICAgICAgICAgaWYgKCBw ZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAg ICAgICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsKKyAgICAgICAgfQorCiAg ICAgICAgIGlmICggaW9tbXVfZGVidWcgKQogICAgICAgICAgICAgcHJpbnRr KFZURFBSRUZJWCAiZCVkOlBDSTogbWFwICUwNHg6JTAyeDolMDJ4LiV1XG4i LAogICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcs IGJ1cywKQEAgLTE3NzMsNiArMTgwMSwxMyBAQCBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgaWYgKCAhcmV0ICYmIGRl dmZuID09IHBkZXYtPmRldmZuICkKICAgICAgICAgcGNpX3Z0ZF9xdWlyayhw ZGV2KTsKIAorICAgIGlmICggcmV0ICYmIGRyaGQgJiYgb3JpZ19kb21pZCA9 PSBET01JRF9JTlZBTElEICkKKyAgICB7CisgICAgICAgIGlvbW11X2ZyZWVf ZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOwor ICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFM SUQ7CisgICAgfQorCiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAtMTg0Miw4 ICsxODc3LDEwIEBAIGludCBkb21haW5fY29udGV4dF91bm1hcF9vbmUoCiAg ICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQorc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZG9t YWluX2NvbnRleHRfdW5tYXAoCisgICAgc3RydWN0IGRvbWFpbiAqZG9tYWlu LAorICAgIHVpbnQ4X3QgZGV2Zm4sCisgICAgc3RydWN0IHBjaV9kZXYgKnBk ZXYpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAg IHN0cnVjdCBpb21tdSAqaW9tbXU7CkBAIC0xODUyLDcgKzE4ODksNyBAQCBz dGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkCiAKICAg ICBkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwog ICAgIGlmICggIWRyaGQgKQotICAgICAgICByZXR1cm4gLUVOT0RFVjsKKyAg ICAgICAgcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7CiAgICAgaW9tbXUgPSBk cmhkLT5pb21tdTsKIAogICAgIHN3aXRjaCAoIHBkZXYtPnR5cGUgKQpAQCAt MTg2Myw3ICsxOTAwLDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91 bm1hcChzdHJ1Y3QgZAogICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9t YWluX2lkLCBzZWcsIGJ1cywKICAgICAgICAgICAgICAgICAgICBQQ0lfU0xP VChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAgICAgICAgIGlmICggIWlz X2hhcmR3YXJlX2RvbWFpbihkb21haW4pICkKLSAgICAgICAgICAgIHJldHVy biAtRVBFUk07CisgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRVBFUk0p OwogICAgICAgICBnb3RvIG91dDsKIAogICAgIGNhc2UgREVWX1RZUEVfUENJ ZV9CUklER0U6CkBAIC0xOTAyLDExICsxOTM5LDkgQEAgc3RhdGljIGludCBk b21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICB7CiAgICAg ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWlu LCBpb21tdSwgdG1wX2J1cywgdG1wX2RldmZuLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lk KTsKLSAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAgICBy ZXR1cm4gcmV0OwotCi0gICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4 dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgc2VjYnVzLCAwLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ ZG9tYWluX2lkKTsKKyAgICAgICAgICAgIGlmICggIXJldCApCisgICAgICAg ICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFp biwgaW9tbXUsIHNlY2J1cywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwog ICAgICAgICB9CiAgICAgICAgIGVsc2UgLyogTGVnYWN5IFBDSSBicmlkZ2Ug Ki8KICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29u ZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCkBAIC0xOTI2 LDcgKzE5NjEsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFw KHN0cnVjdCBkCiAgICAgICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFwKGRv bWFpbiwgcGRldiwgaW9tbXUpOwogCiBvdXQ6Ci0gICAgcmV0dXJuIHJldDsK KyAgICByZXR1cm4gcmV0ID8gRVJSX1BUUihyZXQpIDogZHJoZDsKIH0KIAog c3RhdGljIHZvaWQgaW9tbXVfZG9tYWluX3RlYXJkb3duKHN0cnVjdCBkb21h aW4gKmQpCkBAIC0yMTUyLDE2ICsyMTg3LDE3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfaW9tbXVfZW5hYmxlX2RldmljZShzdHIKIAogc3RhdGljIGludCBpbnRl bF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2Rl diAqcGRldikKIHsKKyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQg KmRyaGQ7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwogICAg IHUxNiBiZGY7Ci0gICAgaW50IHJldCwgaTsKKyAgICB1bnNpZ25lZCBpbnQg aTsKIAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVy biAtRUlOVkFMOwogCi0gICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAo cGRldi0+ZG9tYWluLCBkZXZmbiwgcGRldik7Ci0gICAgaWYgKCByZXQgKQot ICAgICAgICByZXR1cm4gcmV0OworICAgIGRyaGQgPSBkb21haW5fY29udGV4 dF91bm1hcChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICBpZiAo IElTX0VSUihkcmhkKSApCisgICAgICAgIHJldHVybiBQVFJfRVJSKGRyaGQp OwogCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2UgKCBybXJyLCBiZGYsIGkg KQogICAgIHsKQEAgLTIxNzgsNiArMjIxNCwxMyBAQCBzdGF0aWMgaW50IGlu dGVsX2lvbW11X3JlbW92ZV9kZXZpY2UodTgKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7CiAgICAgfQog CisgICAgaWYgKCBkcmhkICkKKyAgICB7CisgICAgICAgIGlvbW11X2ZyZWVf ZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOwor ICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFM SUQ7CisgICAgfQorCiAgICAgcmV0dXJuIDA7CiB9CiAKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAgLTU0MSw2ICs1NDEsNyBA QCBzdHJ1Y3QgaW9tbXUgewogICAgIHN0cnVjdCBtc2lfZGVzYyBtc2k7CiAg ICAgc3RydWN0IGludGVsX2lvbW11ICppbnRlbDsKICAgICBzdHJ1Y3QgbGlz dF9oZWFkIGF0c19kZXZpY2VzOworICAgIHVuc2lnbmVkIGxvbmcgKnBzZXVk b19kb21pZF9tYXA7IC8qICJwc2V1ZG8iIGRvbWFpbiBpZCBiaXRtYXAgKi8K ICAgICB1bnNpZ25lZCBsb25nICpkb21pZF9iaXRtYXA7ICAvKiBkb21haW4g aWQgYml0bWFwICovCiAgICAgdTE2ICpkb21pZF9tYXA7ICAgICAgICAgICAg ICAgLyogZG9tYWluIGlkIG1hcHBpbmcgYXJyYXkgKi8KIH07Ci0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21tdS5jCkBAIC0zNzMsNiArMzcz LDUzIEBAIHZvaWQgX19od2RvbV9pbml0IGFyY2hfaW9tbXVfaHdkb21faW5p dCgKICAgICAgICAgcmV0dXJuOwogfQogCit1bnNpZ25lZCBsb25nICpfX2lu aXQgaW9tbXVfaW5pdF9kb21pZCh2b2lkKQoreworICAgIGlmICggIWlvbW11 X3F1YXJhbnRpbmUgKQorICAgICAgICByZXR1cm4gWkVST19CTE9DS19QVFI7 CisKKyAgICBCVUlMRF9CVUdfT04oRE9NSURfTUFTSyAqIDJVID49IFVJTlQx Nl9NQVgpOworCisgICAgcmV0dXJuIHh6YWxsb2NfYXJyYXkodW5zaWduZWQg bG9uZywKKyAgICAgICAgICAgICAgICAgICAgICAgICBCSVRTX1RPX0xPTkdT KFVJTlQxNl9NQVggLSBET01JRF9NQVNLKSk7Cit9CisKK2RvbWlkX3QgaW9t bXVfYWxsb2NfZG9taWQodW5zaWduZWQgbG9uZyAqbWFwKQoreworICAgIC8q CisgICAgICogVGhpcyBpcyB1c2VkIHVuaWZvcm1seSBhY3Jvc3MgYWxsIElP TU1Vcywgc3VjaCB0aGF0IG9uIHR5cGljYWwKKyAgICAgKiBzeXN0ZW1zIHdl IHdvdWxkbid0IHJlLXVzZSB0aGUgc2FtZSBJRCB2ZXJ5IHF1aWNrbHkgKHBl cmhhcHMgbmV2ZXIpLgorICAgICAqLworICAgIHN0YXRpYyB1bnNpZ25lZCBp bnQgc3RhcnQ7CisgICAgdW5zaWduZWQgaW50IGlkeCA9IGZpbmRfbmV4dF96 ZXJvX2JpdChtYXAsIFVJTlQxNl9NQVggLSBET01JRF9NQVNLLCBzdGFydCk7 CisKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CisKKyAgICBpZiAo IGlkeCA+PSBVSU5UMTZfTUFYIC0gRE9NSURfTUFTSyApCisgICAgICAgIGlk eCA9IGZpbmRfZmlyc3RfemVyb19iaXQobWFwLCBVSU5UMTZfTUFYIC0gRE9N SURfTUFTSyk7CisgICAgaWYgKCBpZHggPj0gVUlOVDE2X01BWCAtIERPTUlE X01BU0sgKQorICAgICAgICByZXR1cm4gRE9NSURfSU5WQUxJRDsKKworICAg IF9fc2V0X2JpdChpZHgsIG1hcCk7CisKKyAgICBzdGFydCA9IGlkeCArIDE7 CisKKyAgICByZXR1cm4gaWR4IHwgKERPTUlEX01BU0sgKyAxKTsKK30KKwor dm9pZCBpb21tdV9mcmVlX2RvbWlkKGRvbWlkX3QgZG9taWQsIHVuc2lnbmVk IGxvbmcgKm1hcCkKK3sKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7 CisKKyAgICBpZiAoIGRvbWlkID09IERPTUlEX0lOVkFMSUQgKQorICAgICAg ICByZXR1cm47CisKKyAgICBBU1NFUlQoZG9taWQgPiBET01JRF9NQVNLKTsK KworICAgIGlmICggIV9fdGVzdF9hbmRfY2xlYXJfYml0KGRvbWlkICYgRE9N SURfTUFTSywgbWFwKSApCisgICAgICAgIEJVRygpOworfQorCiAvKgogICog TG9jYWwgdmFyaWFibGVzOgogICogbW9kZTogQwotLS0gYS94ZW4vaW5jbHVk ZS9wdWJsaWMveGVuLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5o CkBAIC01ODQsNiArNTg0LDkgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUo bW11ZXh0X29wX3QpOwogLyogSWRsZSBkb21haW4uICovCiAjZGVmaW5lIERP TUlEX0lETEUgICAgICAgICAgIHhlbl9ta191aW50KDB4N0ZGRikKIAorLyog TWFzayBmb3IgdmFsaWQgZG9tYWluIGlkIHZhbHVlcyAqLworI2RlZmluZSBE T01JRF9NQVNLICAgICAgICAgICB4ZW5fbWtfdWludCgweDdGRkYpCisKICNp Zm5kZWYgX19BU1NFTUJMWV9fCiAKIHR5cGVkZWYgdWludDE2X3QgZG9taWRf dDsK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-09.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-09.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IGRyb3AgVExCIGZsdXNoZXMgZnJvbSBxdWFyYW50aW5l X2luaXQoKSBob29rcwoKVGhlIHBhZ2UgdGFibGVzIGp1c3QgY3JlYXRlZCBh cmVuJ3QgaG9va2VkIHVwIHlldCBhbnl3aGVyZSwgc28gdGhlcmUncwpub3Ro aW5nIHRoYXQgY291bGQgYmUgcHJlc2VudCBpbiBhbnkgVExCLCBhbmQgaGVu Y2Ugbm90aGluZyB0byBmbHVzaC4KRHJvcHBpbmcgdGhpcyBmbHVzaCBpcywg YXQgbGVhc3Qgb24gdGhlIFZULWQgc2lkZSwgYSBwcmVyZXEgdG8gcGVyLQpk ZXZpY2UgZG9tYWluIElEIHVzZSB3aGVuIHF1YXJhbnRpbmluZyBkZXZpY2Vz LCBhcyBkb21faW8gaXNuJ3QgZ29pbmcKdG8gYmUgYXNzaWduZWQgYSBESUQg YW55bW9yZTogVGhlIHdhcm5pbmcgaW4gZ2V0X2lvbW11X2RpZCgpIHdvdWxk CnRyaWdnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxA eGVuLm9yZz4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC04NDAsOCArODQwLDYgQEAgaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cgogIG91dDoK ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKIAot ICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfcGFnZXMoZCk7Ci0KICAgICAvKiBQ YWdlcyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCiAgICAgcmV0dXJuIGxl dmVsID8gLUVOT01FTSA6IDA7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0yODU4LDcgKzI4NTgsNiBAQCBzdGF0aWMg aW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lCiAgICAgc3RydWN0 IGRtYV9wdGUgKnBhcmVudDsKICAgICB1bnNpZ25lZCBpbnQgYWdhdyA9IHdp ZHRoX3RvX2FnYXcoREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCk7CiAg ICAgdW5zaWduZWQgaW50IGxldmVsID0gYWdhd190b19sZXZlbChhZ2F3KTsK LSAgICBpbnQgcmM7CiAKICAgICBpZiAoIGhkLT5hcmNoLnBnZF9tYWRkciAp CiAgICAgewpAQCAtMjkwNSwxMCArMjkwNCw4IEBAIHN0YXRpYyBpbnQgX19p bml0IGludGVsX2lvbW11X3F1YXJhbnRpbmUKICBvdXQ6CiAgICAgc3Bpbl91 bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKLSAgICByYyA9IGlv bW11X2ZsdXNoX2lvdGxiX2FsbChkKTsKLQogICAgIC8qIFBhZ2VzIGxlYWtl ZCBpbiBmYWlsdXJlIGNhc2UgKi8KLSAgICByZXR1cm4gbGV2ZWwgPyAtRU5P TUVNIDogcmM7CisgICAgcmV0dXJuIGxldmVsID8gLUVOT01FTSA6IDA7CiB9 CiAKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29uc3RyZWwgaW50 ZWxfaW9tbXVfb3BzID0gewo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-10.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-10.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IGFic3RyYWN0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2Ug dGFibGUgbGV2ZWxzCgpXZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBjb25zdGFu dCBlbHNld2hlcmUuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWxAeGVuLm9yZz4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2 bS9hbWQtaW9tbXUtcHJvdG8uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKQEAgLTE4NSw3ICsxODUsNyBA QCBzdGF0aWMgaW5saW5lIGludCBhbWRfaW9tbXVfZ2V0X3BhZ2luZ19tCiAg ICAgd2hpbGUgKCBtYXhfZnJhbWVzID4gUFRFX1BFUl9UQUJMRV9TSVpFICkK ICAgICB7CiAgICAgICAgIG1heF9mcmFtZXMgPSBQVEVfUEVSX1RBQkxFX0FM SUdOKG1heF9mcmFtZXMpID4+IFBURV9QRVJfVEFCTEVfU0hJRlQ7Ci0gICAg ICAgIGlmICggKytsZXZlbCA+IDYgKQorICAgICAgICBpZiAoICsrbGV2ZWwg PiBJT01NVV9NQVhfUFRfTEVWRUxTICkKICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOwogICAgIH0KIAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9zdm0vYW1kLWlvbW11LWRlZnMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9zdm0vYW1kLWlvbW11LWRlZnMuaApAQCAtMTE0LDYgKzExNCw4 IEBACiAjZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9QQUdFX1RBQkxFX1BUUl9M T1dfTUFTSwkJMHhGRkZGRjAwMAogI2RlZmluZSBJT01NVV9ERVZfVEFCTEVf UEFHRV9UQUJMRV9QVFJfTE9XX1NISUZUCTEyCiAKKyNkZWZpbmUgSU9NTVVf TUFYX1BUX0xFVkVMUyA2CisKIC8qIERldmljZVRhYmxlIEVudHJ5WzYzOjMy XSAqLwogI2RlZmluZSBJT01NVV9ERVZfVEFCTEVfR1ZfU0hJRlQgICAgICAg ICAgICAgICAgICAgIDIzCiAjZGVmaW5lIElPTU1VX0RFVl9UQUJMRV9HVl9N QVNLICAgICAgICAgICAgICAgICAgICAgMHg4MDAwMDAKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtNDc3LDcg KzQ3Nyw3IEBAIHN0YXRpYyBpbnQgaW9tbXVfcGRlX2Zyb21fZGZuKHN0cnVj dCBkb20KICAgICB0YWJsZSA9IGhkLT5hcmNoLnJvb3RfdGFibGU7CiAgICAg bGV2ZWwgPSBoZC0+YXJjaC5wYWdpbmdfbW9kZTsKIAotICAgIEJVR19PTigg dGFibGUgPT0gTlVMTCB8fCBsZXZlbCA8IDEgfHwgbGV2ZWwgPiA2ICk7Cisg ICAgQlVHX09OKCB0YWJsZSA9PSBOVUxMIHx8IGxldmVsIDwgMSB8fCBsZXZl bCA+IElPTU1VX01BWF9QVF9MRVZFTFMgKTsKIAogICAgIC8qCiAgICAgICog QSBmcmFtZSBudW1iZXIgcGFzdCB3aGF0IHRoZSBjdXJyZW50IHBhZ2UgdGFi bGVzIGNhbiByZXByZXNlbnQgY2FuJ3QK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.12-11.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.12-11.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHVzZSBwZXItZGV2aWNlIHBhZ2UgdGFibGVzIGZvciBx dWFyYW50aW5pbmcKCkRldmljZXMgd2l0aCBSTVJScyAvIHVuaXR5IG1hcHBl ZCByZWdpb25zLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQKaG93L3do ZW4gdGhlc2UgbWVtb3J5IHJlZ2lvbnMgbWF5IGJlIGFjY2Vzc2VkLCBtYXkg bm90IGJlIGxlZnQKZGlzY29ubmVjdGVkIGZyb20gdGhlIG1hcHBpbmdzIG9m IHRoZXNlIHJlZ2lvbnMgKGFzIGxvbmcgYXMgaXQncyBub3QKY2VydGFpbiB0 aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgcXVpZXNjZWQpLiBIZW5j ZSBldmVuIHRoZSBwYWdlCnRhYmxlcyB1c2VkIHdoZW4gcXVhcmFudGluaW5n IHN1Y2ggZGV2aWNlcyBuZWVkIHRvIGhhdmUgbWFwcGluZ3Mgb2YKdGhvc2Ug cmVnaW9ucy4gVGhpcyBpbXBsaWVzIGluc3RhbGxpbmcgcGFnZSB0YWJsZXMg aW4gdGhlIGZpcnN0IHBsYWNlCmV2ZW4gd2hlbiBub3QgaW4gc2NyYXRjaC1w YWdlIHF1YXJhbnRpbmluZyBtb2RlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM2 MSAvIHBhcnQgb2YgWFNBLTQwMC4KCldoaWxlIGZvciB0aGUgcHVycG9zZSBo ZXJlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBkZXZpY2VzIHdp dGgKUk1SUnMgLyB1bml0eSBtYXBwZWQgcmVnaW9ucyB1c2UgcGVyLWRldmlj ZSBwYWdlIHRhYmxlcywgZXh0ZW5kIHRoaXMgdG8KYWxsIGRldmljZXMgKGlu IHNjcmF0Y2gtcGFnZSBxdWFyYW50aW5pbmcgbW9kZSkuIFRoaXMgYWxsb3dz IHRoZSBsZWFmCnBhZ2VzIHRvIGJlIG1hcHBlZCByL3csIHRodXMgY292ZXJp bmcgYWxzbyBtZW1vcnkgd3JpdGVzIChyYXRoZXIgdGhhbgpqdXN0IHJlYWRz KSBpc3N1ZWQgYnkgbm9uLXF1aWVzY2VudCBkZXZpY2VzLgoKU2V0IHVwIHF1 YXJhbnRpbmUgcGFnZSB0YWJsZXMgYXMgbGF0ZSBhcyBwb3NzaWJsZSwgeWV0 IGVhcmx5IGVub3VnaCB0bwpub3QgZW5jb3VudGVyIGZhaWx1cmUgZHVyaW5n IGRlLWFzc2lnbi4gVGhpcyBtZWFucyBzZXR1cCBnZW5lcmFsbHkKaGFwcGVu cyBpbiBhc3NpZ25fZGV2aWNlKCksIHdoaWxlIChmb3Igbm93KSB0aGUgb25l IGluIGRlYXNzaWduX2RldmljZSgpCmlzIHRoZXJlIG1haW5seSB0byBiZSBv biB0aGUgc2FmZSBzaWRlLgoKSW4gVlQtZCdzIERJRCBhbGxvY2F0aW9uIGZ1 bmN0aW9uIGRvbid0IHJlcXVpcmUgdGhlIElPTU1VIGxvY2sgdG8gYmUKaGVs ZCBhbnltb3JlOiBBbGwgaW52b2x2ZWQgY29kZSBwYXRocyBob2xkIHBjaWRl dnNfbG9jaywgc28gdGhpcyB3YXkgd2UKYXZvaWQgdGhlIG5lZWQgdG8gYWNx dWlyZSB0aGUgSU9NTVUgbG9jayBhcm91bmQgdGhlIG5ldyBjYWxsIHRvCmNv bnRleHRfc2V0X2RvbWFpbl9pZCgpLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBE dXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFu IDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpA QCAtMTQyNCw3ICsxNDI0LDcgQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50 cnkoc3RydWN0IGRvbWFpbgogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0g PSBwMm1fZ2V0X2hvc3RwMm0oZCk7CiAgICAgaW50IHJldDsKIAotICAgIGlm ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQorICAg IGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewogICAg ICAgICBpZiAoICFoYXNfaW9tbXVfcHQoZCkgKQogICAgICAgICAgICAgcmV0 dXJuIDA7Ci0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGNpLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaApAQCAtMSw2ICsxLDggQEAKICNp Zm5kZWYgX19YODZfUENJX0hfXwogI2RlZmluZSBfX1g4Nl9QQ0lfSF9fCiAK KyNpbmNsdWRlIDx4ZW4vbW0uaD4KKwogI2RlZmluZSBDRjhfQkRGKGNmOCkg ICAgICggICgoY2Y4KSAmIDB4MDBmZmZmMDApID4+IDgpCiAjZGVmaW5lIENG OF9BRERSX0xPKGNmOCkgKCAgIChjZjgpICYgMHgwMDAwMDBmYykKICNkZWZp bmUgQ0Y4X0FERFJfSEkoY2Y4KSAoICAoKGNmOCkgJiAweDBmMDAwMDAwKSA+ PiAxNikKQEAgLTIwLDcgKzIyLDE4IEBAIHN0cnVjdCBhcmNoX3BjaV9kZXYg ewogICAgICAqIHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6YXRpb24g YW5kIGhlbmNlIGRvbid0IHN0cmljdGx5IG5lZWQgYW55CiAgICAgICogbG9j a2luZy4KICAgICAgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIC8qIFN1YnNl dCBvZiBzdHJ1Y3QgYXJjaF9pb21tdSdzIGZpZWxkcywgdG8gYmUgdXNlZCBp biBkb21faW8uICovCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1 aW50NjRfdCBwZ2RfbWFkZHI7CisgICAgICAgIH0gdnRkOworICAgICAgICBz dHJ1Y3QgeworICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcm9vdF90 YWJsZTsKKyAgICAgICAgfSBhbWQ7CisgICAgfTsKICAgICBkb21pZF90IHBz ZXVkb19kb21pZDsKKyAgICBtZm5fdCBsZWFmX21mbjsKKyAgICBzdHJ1Y3Qg cGFnZV9saXN0X2hlYWQgcGd0YWJsZXNfbGlzdDsKIH07CiAKIGludCBwY2lf Y29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IHNlZywgdW5zaWdu ZWQgaW50IGJkZiwKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3Zt L2FtZC1pb21tdS1wcm90by5oCisrKyBiL3hlbi9pbmNsdWRlL2FzbS14ODYv aHZtL3N2bS9hbWQtaW9tbXUtcHJvdG8uaApAQCAtNTEsNyArNTEsOCBAQCB2 b2lkIGdldF9pb21tdV9mZWF0dXJlcyhzdHJ1Y3QgYW1kX2lvbW11CiBpbnQg YW1kX2lvbW11X2luaXQodm9pZCk7CiBpbnQgYW1kX2lvbW11X3VwZGF0ZV9p dnJzX21hcHBpbmdfYWNwaSh2b2lkKTsKIAotaW50IGFtZF9pb21tdV9xdWFy YW50aW5lX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7CitpbnQgYW1kX2lvbW11 X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldik7Cit2b2lk IGFtZF9pb21tdV9xdWFyYW50aW5lX3RlYXJkb3duKHN0cnVjdCBwY2lfZGV2 ICpwZGV2KTsKIAogLyogbWFwcGluZyBmdW5jdGlvbnMgKi8KIGludCBfX211 c3RfY2hlY2sgYW1kX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21haW4gKmQs IGRmbl90IGRmbiwKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X21hcC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdV9tYXAuYwpAQCAtNzg0LDY0ICs3ODQsMTUwIEBAIHZvaWQgYW1k X2lvbW11X3NoYXJlX3AybShzdHJ1Y3QgZG9tYWluICoKICAgICB9CiB9CiAK LWludCBfX2luaXQgYW1kX2lvbW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3Qg ZG9tYWluICpkKQorc3RhdGljIGludCBmaWxsX3FwdCh1aW50NjRfdCAqdGhp cywgdW5zaWduZWQgaW50IGxldmVsLAorICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgcGFnZV9pbmZvICpwZ3NbSU9NTVVfTUFYX1BUX0xFVkVMU10sCisg ICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewot ICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwor ICAgIHVuc2lnbmVkIGludCBpOworICAgIGludCByYyA9IDA7CisKKyAgICBm b3IgKCBpID0gMDsgIXJjICYmIGkgPCBQVEVfUEVSX1RBQkxFX1NJWkU7ICsr aSApCisgICAgeworICAgICAgICB1aW50MzJfdCAqcHRlID0gKHVpbnQzMl90 ICopJnRoaXNbaV07CisgICAgICAgIHVpbnQ2NF90ICpuZXh0OworCisgICAg ICAgIGlmICggIWdldF9maWVsZF9mcm9tX3JlZ191MzIocHRlWzBdLCBJT01N VV9QVEVfUFJFU0VOVF9NQVNLLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIElPTU1VX1BURV9QUkVTRU5UX1NISUZUKSApCisgICAg ICAgIHsKKyAgICAgICAgICAgIGlmICggIXBnc1tsZXZlbF0gKQorICAgICAg ICAgICAgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAg ICogVGhlIHBndGFibGUgYWxsb2NhdG9yIGlzIGZpbmUgZm9yIHRoZSBsZWFm IHBhZ2UsIGFzIHdlbGwgYXMKKyAgICAgICAgICAgICAgICAgKiBwYWdlIHRh YmxlIHBhZ2VzLCBhbmQgdGhlIHJlc3VsdGluZyBhbGxvY2F0aW9ucyBhcmUg YWx3YXlzCisgICAgICAgICAgICAgICAgICogemVyb2VkLgorICAgICAgICAg ICAgICAgICAqLworICAgICAgICAgICAgICAgIHBnc1tsZXZlbF0gPSBhbGxv Y19hbWRfaW9tbXVfcGd0YWJsZSgpOworICAgICAgICAgICAgICAgIGlmICgg IXBnc1tsZXZlbF0gKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgcmMgPSAtRU5PTUVNOworICAgICAgICAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBw YWdlX2xpc3RfYWRkKHBnc1tsZXZlbF0sICZwZGV2LT5hcmNoLnBndGFibGVz X2xpc3QpOworCisgICAgICAgICAgICAgICAgaWYgKCBsZXZlbCApCisgICAg ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gX19t YXBfZG9tYWluX3BhZ2UocGdzW2xldmVsXSk7CisgICAgICAgICAgICAgICAg ICAgIHJjID0gZmlsbF9xcHQobmV4dCwgbGV2ZWwgLSAxLCBwZ3MsIHBkZXYp OworICAgICAgICAgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShuZXh0 KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAg ICAgICAgIC8qCisgICAgICAgICAgICAgKiBQREVzIGFyZSBlc3NlbnRpYWxs eSBhIHN1YnNldCBvZiBQVEVzLCBzbyB0aGlzIGZ1bmN0aW9uCisgICAgICAg ICAgICAgKiBpcyBmaW5lIHRvIHVzZSBldmVuIGF0IHRoZSBsZWFmLgorICAg ICAgICAgICAgICovCisgICAgICAgICAgICBzZXRfaW9tbXVfcGRlX3ByZXNl bnQocHRlLCBtZm5feChwYWdlX3RvX21mbihwZ3NbbGV2ZWxdKSksIGxldmVs LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUsIHRy dWUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCBsZXZlbCAmJgor ICAgICAgICAgICAgICAgICAgZ2V0X2ZpZWxkX2Zyb21fcmVnX3UzMihwdGVb MF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElPTU1VX1BERV9ORVhUX0xFVkVMX01BU0ssCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1BERV9ORVhUX0xFVkVM X1NISUZUKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHBhZGRyX3QgYWRk cl9oaSA9IGdldF9maWVsZF9mcm9tX3JlZ191MzIocHRlWzFdLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBJT01NVV9QVEVfQUREUl9ISUdIX01BU0ssCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX1BU RV9BRERSX0hJR0hfU0hJRlQpOworICAgICAgICAgICAgcGFkZHJfdCBhZGRy X2xvID0gZ2V0X2ZpZWxkX2Zyb21fcmVnX3UzMihwdGVbMF0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IElPTU1VX1BURV9BRERSX0xPV19NQVNLLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJT01NVV9QVEVf QUREUl9MT1dfU0hJRlQpOworICAgICAgICAgICAgdW5zaWduZWQgbG9uZyBt Zm4gPSAoYWRkcl9oaSA8PCAoMzIgLSBQQUdFX1NISUZUKSkgfCBhZGRyX2xv OworCisgICAgICAgICAgICBwYWdlX2xpc3RfYWRkKG1mbl90b19wYWdlKF9t Zm4obWZuKSksICZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3QpOworICAgICAg ICAgICAgbmV4dCA9IG1hcF9kb21haW5fcGFnZShfbWZuKG1mbikpOworICAg ICAgICAgICAgcmMgPSBmaWxsX3FwdChuZXh0LCBsZXZlbCAtIDEsIHBncywg cGRldik7CisgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShuZXh0KTsK KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsKK30KKworaW50 IGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0IHBjaV9kZXYgKnBk ZXYpCit7CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZG9tX2lvKTsKICAgICB1bnNpZ25lZCBsb25nIGVuZF9nZm4gPQogICAg ICAgICAxdWwgPDwgKERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEggLSBQ QUdFX1NISUZUKTsKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwgPSBhbWRfaW9t bXVfZ2V0X3BhZ2luZ19tb2RlKGVuZF9nZm4pOwotICAgIHVpbnQ2NF90ICp0 YWJsZTsKKyAgICB1bnNpZ25lZCBpbnQgcmVxX2lkID0gZ2V0X2RtYV9yZXF1 ZXN0b3JfaWQocGRldi0+c2VnLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBQQ0lfQkRGMihwZGV2LT5idXMsIHBk ZXYtPmRldmZuKSk7CisgICAgY29uc3Qgc3RydWN0IGl2cnNfbWFwcGluZ3Mg Kml2cnNfbWFwcGluZ3MgPSBnZXRfaXZyc19tYXBwaW5ncyhwZGV2LT5zZWcp OworICAgIGludCByYzsKIAotICAgIGlmICggaGQtPmFyY2gucm9vdF90YWJs ZSApCisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOworICAgIEFTU0VS VCghaGQtPmFyY2gucm9vdF90YWJsZSk7CisKKyAgICBBU1NFUlQocGRldi0+ YXJjaC5wc2V1ZG9fZG9taWQgIT0gRE9NSURfSU5WQUxJRCk7CisKKyAgICBp ZiAoIHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGUgKQogICAgIHsKLSAgICAg ICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIGNsZWFyX2RvbWFp bl9wYWdlKHBkZXYtPmFyY2gubGVhZl9tZm4pOwogICAgICAgICByZXR1cm4g MDsKICAgICB9CiAKLSAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7Ci0KLSAgICBoZC0+YXJjaC5yb290X3RhYmxlID0gYWxsb2NfYW1k X2lvbW11X3BndGFibGUoKTsKLSAgICBpZiAoICFoZC0+YXJjaC5yb290X3Rh YmxlICkKLSAgICAgICAgZ290byBvdXQ7Ci0KLSAgICB0YWJsZSA9IF9fbWFw X2RvbWFpbl9wYWdlKGhkLT5hcmNoLnJvb3RfdGFibGUpOwotICAgIHdoaWxl ICggbGV2ZWwgKQorICAgIHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBh bGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOworICAgIGlmICggIXBkZXYtPmFy Y2guYW1kLnJvb3RfdGFibGUgKQorICAgICAgICByZXR1cm4gLUVOT01FTTsK KworICAgIC8qIFRyYW5zaWVudGx5IGluc3RhbGwgdGhlIHJvb3QgaW50byBE b21JTywgZm9yIGlvbW11X2lkZW50aXR5X21hcHBpbmcoKS4gKi8KKyAgICBo ZC0+YXJjaC5yb290X3RhYmxlID0gcGRldi0+YXJjaC5hbWQucm9vdF90YWJs ZTsKKworICAgIHJjID0gYW1kX2lvbW11X3Jlc2VydmVfZG9tYWluX3VuaXR5 X21hcChkb21faW8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGl2cnNfbWFwcGluZ3NbcmVxX2lkXS51bml0eV9tYXAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDApOworCisgICAgaW9tbXVfaWRlbnRpdHlfbWFwX3RlYXJkb3duKGRvbV9p byk7CisgICAgaGQtPmFyY2gucm9vdF90YWJsZSA9IE5VTEw7CisKKyAgICBp ZiAoIHJjICkKKyAgICAgICAgcHJpbnRrKCIlMDR4OiUwMng6JTAyeC4ldTog cXVhcmFudGluZSB1bml0eSBtYXBwaW5nIGZhaWxlZFxuIiwKKyAgICAgICAg ICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLAorICAgICAgICAgICAgICAg UENJX1NMT1QocGRldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwZGV2LT5kZXZmbikp OworICAgIGVsc2UKICAgICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8g KnBnOwotICAgICAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICAgICAgdWludDY0 X3QgKnJvb3Q7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnc1tJT01N VV9NQVhfUFRfTEVWRUxTXSA9IHt9OwogCi0gICAgICAgIC8qCi0gICAgICAg ICAqIFRoZSBwZ3RhYmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVh ZiBwYWdlLCBhcyB3ZWxsIGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUgcGFn ZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMK LSAgICAgICAgICogemVyb2VkLgotICAgICAgICAgKi8KLSAgICAgICAgcGcg PSBhbGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOwotICAgICAgICBpZiAoICFw ZyApCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgc3Bpbl9sb2NrKCZo ZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAgICAgIGZvciAoIGkgPSAw OyBpIDwgUFRFX1BFUl9UQUJMRV9TSVpFOyBpKysgKQotICAgICAgICB7Ci0g ICAgICAgICAgICB1aW50MzJfdCAqcGRlID0gKHVpbnQzMl90ICopJnRhYmxl W2ldOworICAgICAgICByb290ID0gX19tYXBfZG9tYWluX3BhZ2UocGRldi0+ YXJjaC5hbWQucm9vdF90YWJsZSk7CisgICAgICAgIHJjID0gZmlsbF9xcHQo cm9vdCwgbGV2ZWwgLSAxLCBwZ3MsIHBkZXYpOworICAgICAgICB1bm1hcF9k b21haW5fcGFnZShyb290KTsKIAotICAgICAgICAgICAgLyoKLSAgICAgICAg ICAgICAqIFBERXMgYXJlIGVzc2VudGlhbGx5IGEgc3Vic2V0IG9mIFBURXMs IHNvIHRoaXMgZnVuY3Rpb24KLSAgICAgICAgICAgICAqIGlzIGZpbmUgdG8g dXNlIGV2ZW4gYXQgdGhlIGxlYWYuCi0gICAgICAgICAgICAgKi8KLSAgICAg ICAgICAgIHNldF9pb21tdV9wZGVfcHJlc2VudChwZGUsIG1mbl94KHBhZ2Vf dG9fbWZuKHBnKSksIGxldmVsIC0gMSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgIH0KKyAgICAg ICAgcGRldi0+YXJjaC5sZWFmX21mbiA9IHBhZ2VfdG9fbWZuKHBnc1swXSk7 CiAKLSAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UodGFibGUpOwotICAgICAg ICB0YWJsZSA9IF9fbWFwX2RvbWFpbl9wYWdlKHBnKTsKLSAgICAgICAgbGV2 ZWwtLTsKKyAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7CiAgICAgfQotICAgIHVubWFwX2RvbWFpbl9wYWdlKHRhYmxlKTsK IAotIG91dDoKLSAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19s b2NrKTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgYW1kX2lvbW11X3F1YXJh bnRpbmVfdGVhcmRvd24ocGRldik7CisKKyAgICByZXR1cm4gcmM7Cit9CisK K3ZvaWQgYW1kX2lvbW11X3F1YXJhbnRpbmVfdGVhcmRvd24oc3RydWN0IHBj aV9kZXYgKnBkZXYpCit7CisgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CisK KyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CisKKyAgICBpZiAoICFw ZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlICkKKyAgICAgICAgcmV0dXJuOwor CisgICAgd2hpbGUgKCAocGcgPSBwYWdlX2xpc3RfcmVtb3ZlX2hlYWQoJnBk ZXYtPmFyY2gucGd0YWJsZXNfbGlzdCkpICkKKyAgICAgICAgZnJlZV9hbWRf aW9tbXVfcGd0YWJsZShwZyk7CiAKLSAgICAvKiBQYWdlcyBsZWFrZWQgaW4g ZmFpbHVyZSBjYXNlICovCi0gICAgcmV0dXJuIGxldmVsID8gLUVOT01FTSA6 IDA7CisgICAgcGRldi0+YXJjaC5hbWQucm9vdF90YWJsZSA9IE5VTEw7CiB9 CiAKIC8qCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lf YW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L3BjaV9hbWRfaW9tbXUuYwpAQCAtMTUwLDYgKzE1MCw4IEBAIHN0YXRpYyBp bnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICB1OCBidXMg PSBwZGV2LT5idXM7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBk b21faW9tbXUoZG9tYWluKTsKICAgICBjb25zdCBzdHJ1Y3QgaXZyc19tYXBw aW5ncyAqaXZyc19kZXY7CisgICAgY29uc3Qgc3RydWN0IHBhZ2VfaW5mbyAq cm9vdF9wZzsKKyAgICBkb21pZF90IGRvbWlkOwogCiAgICAgQlVHX09OKCFo ZC0+YXJjaC5wYWdpbmdfbW9kZSB8fCAhaW9tbXUtPmRldl90YWJsZS5idWZm ZXIpOwogCkBAIC0xNzIsMTQgKzE3NCwyNSBAQCBzdGF0aWMgaW50IF9fbXVz dF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgZHRlID0gaW9tbXUtPmRl dl90YWJsZS5idWZmZXIgKyAocmVxX2lkICogSU9NTVVfREVWX1RBQkxFX0VO VFJZX1NJWkUpOwogICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBpbmdz KGlvbW11LT5zZWcpW3JlcV9pZF07CiAKKyAgICBpZiAoIGRvbWFpbiAhPSBk b21faW8gKQorICAgIHsKKyAgICAgICAgcm9vdF9wZyA9IGhkLT5hcmNoLnJv b3RfdGFibGU7CisgICAgICAgIGRvbWlkID0gZG9tYWluLT5kb21haW5faWQ7 CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJvb3RfcGcgPSBw ZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlOworICAgICAgICBkb21pZCA9IHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkOworICAgIH0KKwogICAgIHNwaW5fbG9j a19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogCiAgICAgaWYgKCAh aXNfdHJhbnNsYXRpb25fdmFsaWQoKHUzMiAqKWR0ZSkgKQogICAgIHsKICAg ICAgICAgLyogYmluZCBEVEUgdG8gZG9tYWluIHBhZ2UtdGFibGVzICovCiAg ICAgICAgIHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCi0g ICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5y b290X3RhYmxlKSwKLSAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5f aWQsIGhkLT5hcmNoLnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7CisgICAgICAg ICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihyb290X3BnKSwgZG9taWQs CisgICAgICAgICAgICAgICAgIGhkLT5hcmNoLnBhZ2luZ19tb2RlLCBzcl9m bGFncyk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAgICB7CiAgICAgICAg ICAgICBBU1NFUlQocmMgPCAwKTsKQEAgLTE5Myw4ICsyMDYsNyBAQCBzdGF0 aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAKICAgICAg ICAgYW1kX2lvbW11X2ZsdXNoX2RldmljZShpb21tdSwgcmVxX2lkKTsKICAg ICB9Ci0gICAgZWxzZSBpZiAoIGFtZF9pb21tdV9nZXRfcm9vdF9wYWdlX3Rh YmxlKGR0ZSkgIT0KLSAgICAgICAgICAgICAgcGFnZV90b19tYWRkcihoZC0+ YXJjaC5yb290X3RhYmxlKSApCisgICAgZWxzZSBpZiAoIGFtZF9pb21tdV9n ZXRfcm9vdF9wYWdlX3RhYmxlKGR0ZSkgIT0gcGFnZV90b19tYWRkcihyb290 X3BnKSApCiAgICAgewogICAgICAgICAvKgogICAgICAgICAgKiBTdHJpY3Rs eSBzcGVha2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBvbmx5IG9uZSB3aXRo IHRoaXMgcmVxdWVzdG9yCkBAIC0yMDcsOCArMjE5LDggQEAgc3RhdGljIGlu dCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwogICAgICAgICAgICAg cmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg cmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgKLSAgICAgICAg ICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5yb290 X3RhYmxlKSwKLSAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSwgc3JfZmxhZ3MpOworICAgICAg ICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKHJvb3RfcGcpLCBk b21pZCwKKyAgICAgICAgICAgICAgICAgICAgIGhkLT5hcmNoLnBhZ2luZ19t b2RlLCBzcl9mbGFncyk7CiAgICAgICAgIGlmICggcmMgPCAwICkKICAgICAg ICAgewogICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t bXUtPmxvY2ssIGZsYWdzKTsKQEAgLTIyNyw2ICsyMzksNyBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgICAgICAg ICAgICogaW50ZW5kZWQgYW55d2F5LgogICAgICAgICAgICAgICAqLwogICAg ICAgICAgICAgICFwZGV2LT5kb21haW4tPmlzX2R5aW5nICYmCisgICAgICAg ICAgICAgcGRldi0+ZG9tYWluICE9IGRvbV9pbyAmJgogICAgICAgICAgICAg IChhbnlfcGRldl9iZWhpbmRfaW9tbXUocGRldi0+ZG9tYWluLCBwZGV2LCBp b21tdSkgfHwKICAgICAgICAgICAgICAgcGRldi0+cGhhbnRvbV9zdHJpZGUp ICkKICAgICAgICAgICAgIHByaW50aygiICUwNHg6JTAyeDolMDJ4LiV1OiBy ZWFzc2lnbm1lbnQgbWF5IGNhdXNlICVwZCBkYXRhIGNvcnJ1cHRpb25cbiIs CkBAIC0yNDcsOSArMjYwLDggQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sg YW1kX2lvbW11X3NldHVwXwogICAgIEFNRF9JT01NVV9ERUJVRygiU2V0dXAg SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9ICUjeCwgdHlwZSA9ICUjeCwg IgogICAgICAgICAgICAgICAgICAgICAicm9vdCB0YWJsZSA9ICUjIlBSSXg2 NCIsICIKICAgICAgICAgICAgICAgICAgICAgImRvbWFpbiA9ICVkLCBwYWdp bmcgbW9kZSA9ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICByZXFfaWQs IHBkZXYtPnR5cGUsCi0gICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWFk ZHIoaGQtPmFyY2gucm9vdF90YWJsZSksCi0gICAgICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSk7Cisg ICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgcGRldi0+dHlwZSwgcGFnZV90 b19tYWRkcihyb290X3BnKSwKKyAgICAgICAgICAgICAgICAgICAgZG9taWQs IGhkLT5hcmNoLnBhZ2luZ19tb2RlKTsKIAogICAgIEFTU0VSVChwY2lkZXZz X2xvY2tlZCgpKTsKIApAQCAtMjk2LDcgKzMwOCw3IEBAIGludCBfX2luaXQg YW1kX2lvdl9kZXRlY3Qodm9pZCkKIAogaW50IGFtZF9pb21tdV9hbGxvY19y b290KHN0cnVjdCBkb21haW5faW9tbXUgKmhkKQogewotICAgIGlmICggdW5s aWtlbHkoIWhkLT5hcmNoLnJvb3RfdGFibGUpICkKKyAgICBpZiAoIHVubGlr ZWx5KCFoZC0+YXJjaC5yb290X3RhYmxlKSAmJiBoZCAhPSBkb21faW9tbXUo ZG9tX2lvKSApCiAgICAgewogICAgICAgICBoZC0+YXJjaC5yb290X3RhYmxl ID0gYWxsb2NfYW1kX2lvbW11X3BndGFibGUoKTsKICAgICAgICAgaWYgKCAh aGQtPmFyY2gucm9vdF90YWJsZSApCkBAIC0zNzYsNyArMzg4LDEwIEBAIHZv aWQgYW1kX2lvbW11X2Rpc2FibGVfZG9tYWluX2RldmljZShzdHIKIAogICAg ICAgICBBTURfSU9NTVVfREVCVUcoIkRpc2FibGU6IGRldmljZSBpZCA9ICUj eCwgIgogICAgICAgICAgICAgICAgICAgICAgICAgImRvbWFpbiA9ICVkLCBw YWdpbmcgbW9kZSA9ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAg cmVxX2lkLCAgZG9tYWluLT5kb21haW5faWQsCisgICAgICAgICAgICAgICAg ICAgICAgICByZXFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICBnZXRf ZmllbGRfZnJvbV9yZWdfdTMyKCgodWludDMyX3QgKilkdGUpWzJdLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJ T01NVV9ERVZfVEFCTEVfRE9NQUlOX0lEX01BU0ssCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElPTU1VX0RFVl9U QUJMRV9ET01BSU5fSURfU0hJRlQpLAogICAgICAgICAgICAgICAgICAgICAg ICAgZG9tX2lvbW11KGRvbWFpbiktPmFyY2gucGFnaW5nX21vZGUpOwogICAg IH0KICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywg ZmxhZ3MpOwpAQCAtNjA1LDYgKzYyMCw4IEBAIHN0YXRpYyBpbnQgYW1kX2lv bW11X3JlbW92ZV9kZXZpY2UodTggZGUKIAogICAgIGFtZF9pb21tdV9kaXNh YmxlX2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4s IHBkZXYpOwogCisgICAgYW1kX2lvbW11X3F1YXJhbnRpbmVfdGVhcmRvd24o cGRldik7CisKICAgICBpb21tdV9mcmVlX2RvbWlkKHBkZXYtPmFyY2gucHNl dWRvX2RvbWlkLCBpb21tdS0+ZG9taWRfbWFwKTsKICAgICBwZGV2LT5hcmNo LnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFMSUQ7CiAKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9pb21tdS5jCkBAIC00OTcsMTkgKzQ5NywxOSBAQCBpbnQg aW9tbXVfaW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21haW4KICAgICByZXR1 cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IGlvbW11X3F1YXJhbnRp bmVfaW5pdCh2b2lkKQoraW50IGlvbW11X3F1YXJhbnRpbmVfZGV2X2luaXQo ZGV2aWNlX3QgKmRldikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lv bW11ICpoZCA9IGRvbV9pb21tdShkb21faW8pOwotICAgIGludCByYzsKLQot ICAgIHJjID0gaW9tbXVfZG9tYWluX2luaXQoZG9tX2lvKTsKLSAgICBpZiAo IHJjICkKLSAgICAgICAgcmV0dXJuIHJjOwogCi0gICAgaWYgKCAhaGQtPnBs YXRmb3JtX29wcy0+cXVhcmFudGluZV9pbml0ICkKKyAgICBpZiAoICFpb21t dV9xdWFyYW50aW5lIHx8ICFoZC0+cGxhdGZvcm1fb3BzLT5xdWFyYW50aW5l X2luaXQgKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBoZC0+ cGxhdGZvcm1fb3BzLT5xdWFyYW50aW5lX2luaXQoZG9tX2lvKTsKKyAgICBy ZXR1cm4gaGQtPnBsYXRmb3JtX29wcy0+cXVhcmFudGluZV9pbml0KGRldik7 Cit9CisKK3N0YXRpYyBpbnQgX19pbml0IGlvbW11X3F1YXJhbnRpbmVfaW5p dCh2b2lkKQoreworICAgIHJldHVybiBpb21tdV9kb21haW5faW5pdChkb21f aW8pOwogfQogCiBpbnQgX19pbml0IGlvbW11X3NldHVwKHZvaWQpCi0tLSBh L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCkBAIC0xNTEyLDYgKzE1MTIsMTMgQEAg c3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKgogICAg ICAgICBtc2l4dGJsX2luaXQoZCk7CiAgICAgfQogCisgICAgaWYgKCBwZGV2 LT5kb21haW4gIT0gZG9tX2lvICkKKyAgICB7CisgICAgICAgIHJjID0gaW9t bXVfcXVhcmFudGluZV9kZXZfaW5pdChwY2lfdG9fZGV2KHBkZXYpKTsKKyAg ICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAg fQorCiAgICAgcGRldi0+ZmF1bHQuY291bnQgPSAwOwogCiAgICAgaWYgKCAo cmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5hc3NpZ25fZGV2aWNlKGQsIGRldmZu LCBwY2lfdG9fZGV2KHBkZXYpLCBmbGFnKSkgKQpAQCAtMTU1OCw5ICsxNTY1 LDE2IEBAIGludCBkZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbiAqZCwg dTEKICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAKICAgICAvKiBEZS1hc3Np Z25tZW50IGZyb20gZG9tX2lvIHNob3VsZCBkZS1xdWFyYW50aW5lIHRoZSBk ZXZpY2UgKi8KLSAgICB0YXJnZXQgPSAoKHBkZXYtPnF1YXJhbnRpbmUgfHwg aW9tbXVfcXVhcmFudGluZSkgJiYKLSAgICAgICAgICAgICAgcGRldi0+ZG9t YWluICE9IGRvbV9pbykgPwotICAgICAgICBkb21faW8gOiBoYXJkd2FyZV9k b21haW47CisgICAgaWYgKCAocGRldi0+cXVhcmFudGluZSB8fCBpb21tdV9x dWFyYW50aW5lKSAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKKyAgICB7 CisgICAgICAgIHJldCA9IGlvbW11X3F1YXJhbnRpbmVfZGV2X2luaXQocGNp X3RvX2RldihwZGV2KSk7CisgICAgICAgIGlmICggcmV0ICkKKyAgICAgICAg ICAgcmV0dXJuIHJldDsKKworICAgICAgICB0YXJnZXQgPSBkb21faW87Cisg ICAgfQorICAgIGVsc2UKKyAgICAgICAgdGFyZ2V0ID0gaGFyZHdhcmVfZG9t YWluOwogCiAgICAgd2hpbGUgKCBwZGV2LT5waGFudG9tX3N0cmlkZSApCiAg ICAgewotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpA QCAtNDMsNiArNDMsMTIgQEAKICNpbmNsdWRlICJ2dGQuaCIKICNpbmNsdWRl ICIuLi9hdHMuaCIKIAorI2RlZmluZSBERVZJQ0VfRE9NSUQoZCwgcGRldikg KChkKSAhPSBkb21faW8gPyAoZCktPmRvbWFpbl9pZCBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChwZGV2KS0+ YXJjaC5wc2V1ZG9fZG9taWQpCisjZGVmaW5lIERFVklDRV9QR1RBQkxFKGQs IHBkZXYpICgoZCkgIT0gZG9tX2lvIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgID8gZG9tX2lvbW11KGQpLT5hcmNoLnBnZF9tYWRkciBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChwZGV2KS0+ YXJjaC52dGQucGdkX21hZGRyKQorCiAvKiBQb3NzaWJsZSB1bmZpbHRlcmVk IExBUElDL01TSSBtZXNzYWdlcyBmcm9tIHVudHJ1c3RlZCBzb3VyY2VzPyAq LwogYm9vbCBfX3JlYWRfbW9zdGx5IHVudHJ1c3RlZF9tc2k7CiAKQEAgLTc4 LDEzICs4NCwxOCBAQCBzdGF0aWMgaW50IGdldF9pb21tdV9kaWQoZG9taWRf dCBkb21pZCwKIAogI2RlZmluZSBESURfRklFTERfV0lEVEggMTYKICNkZWZp bmUgRElEX0hJR0hfT0ZGU0VUIDgKKworLyoKKyAqIFRoaXMgZnVuY3Rpb24g bWF5IGhhdmUgImNvbnRleHQiIHBhc3NlZCBhcyBOVUxMLCB0byBtZXJlbHkg b2J0YWluIGEgRElECisgKiBmb3IgImRvbWlkIi4KKyAqLwogc3RhdGljIGlu dCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0IGNvbnRleHRfZW50cnkg KmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk b21pZF90IGRvbWlkLCBzdHJ1Y3QgaW9tbXUgKmlvbW11KQogewogICAgIHVu c2lnbmVkIGxvbmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CiAK LSAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5sb2NrKSk7Cisg ICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOwogCiAgICAgbnJfZG9tID0g Y2FwX25kb21zKGlvbW11LT5jYXApOwogICAgIGkgPSBmaW5kX2ZpcnN0X2Jp dChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20pOwpAQCAtMTEwLDggKzEy MSwxMyBAQCBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1 Y3QKICAgICB9CiAKICAgICBzZXRfYml0KGksIGlvbW11LT5kb21pZF9iaXRt YXApOwotICAgIGNvbnRleHQtPmhpICY9IH4oKCgxIDw8IERJRF9GSUVMRF9X SURUSCkgLSAxKSA8PCBESURfSElHSF9PRkZTRVQpOwotICAgIGNvbnRleHQt PmhpIHw9IChpICYgKCgxIDw8IERJRF9GSUVMRF9XSURUSCkgLSAxKSkgPDwg RElEX0hJR0hfT0ZGU0VUOworCisgICAgaWYgKCBjb250ZXh0ICkKKyAgICB7 CisgICAgICAgIGNvbnRleHQtPmhpICY9IH4oKCgxIDw8IERJRF9GSUVMRF9X SURUSCkgLSAxKSA8PCBESURfSElHSF9PRkZTRVQpOworICAgICAgICBjb250 ZXh0LT5oaSB8PSAoaSAmICgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkp IDw8IERJRF9ISUdIX09GRlNFVDsKKyAgICB9CisKICAgICByZXR1cm4gMDsK IH0KIApAQCAtMTc5LDggKzE5NSwxMiBAQCBzdGF0aWMgdm9pZCBjaGVja19j bGVhbnVwX2RvbWlkX21hcChzdHJ1CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBp b21tdSAqaW9tbXUpCiB7Ci0gICAgYm9vbCBmb3VuZCA9IGFueV9wZGV2X2Jl aGluZF9pb21tdShkLCBleGNsdWRlLCBpb21tdSk7CisgICAgYm9vbCBmb3Vu ZDsKIAorICAgIGlmICggZCA9PSBkb21faW8gKQorICAgICAgICByZXR1cm47 CisKKyAgICBmb3VuZCA9IGFueV9wZGV2X2JlaGluZF9pb21tdShkLCBleGNs dWRlLCBpb21tdSk7CiAgICAgLyoKICAgICAgKiBIaWRkZW4gZGV2aWNlcyBh cmUgYXNzb2NpYXRlZCB3aXRoIERvbVhFTiBidXQgdXNhYmxlIGJ5IHRoZSBo YXJkd2FyZQogICAgICAqIGRvbWFpbi4gSGVuY2UgdGhleSBuZWVkIGNvbnNp ZGVyaW5nIGhlcmUgYXMgd2VsbC4KQEAgLTE0NDMsNyArMTQ2Myw3IEBAIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICAgICAgZG9taWQg PSBpb21tdS0+ZG9taWRfbWFwW3ByZXZfZGlkXTsKICAgICAgICAgaWYgKCBk b21pZCA8IERPTUlEX0ZJUlNUX1JFU0VSVkVEICkKICAgICAgICAgICAgIHBy ZXZfZG9tID0gcmN1X2xvY2tfZG9tYWluX2J5X2lkKGRvbWlkKTsKLSAgICAg ICAgZWxzZSBpZiAoIGRvbWlkID09IERPTUlEX0lPICkKKyAgICAgICAgZWxz ZSBpZiAoIHBkZXYgPyBkb21pZCA9PSBwZGV2LT5hcmNoLnBzZXVkb19kb21p ZCA6IGRvbWlkID4gRE9NSURfTUFTSyApCiAgICAgICAgICAgICBwcmV2X2Rv bSA9IHJjdV9sb2NrX2RvbWFpbihkb21faW8pOwogICAgICAgICBpZiAoICFw cmV2X2RvbSApCiAgICAgICAgIHsKQEAgLTE2MjAsMTUgKzE2NDAsMTIgQEAg aW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHsKICAgICAg ICAgaWYgKCAhcHJldl9kb20gKQogICAgICAgICAgICAgZG9tYWluX2NvbnRl eHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21h aW5faWQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IERFVklDRV9ET01JRChkb21haW4sIHBkZXYpKTsKICAgICAgICAgZWxzZSBp ZiAoIHByZXZfZG9tICE9IGRvbWFpbiApIC8qIEF2b2lkIGluZmluaXRlIHJl Y3Vyc2lvbi4gKi8KLSAgICAgICAgewotICAgICAgICAgICAgaGQgPSBkb21f aW9tbXUocHJldl9kb20pOwogICAgICAgICAgICAgZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUocHJldl9kb20sIGlvbW11LCBidXMsIGRldmZuLCBwZGV2 LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluLT5kb21haW5faWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBoZC0+YXJjaC5wZ2RfbWFkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQocHJldl9k b20sIHBkZXYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgREVWSUNFX1BHVEFCTEUocHJldl9kb20sIHBkZXYpLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSAmIE1BUF9X SVRIX1JNUlIpOwotICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCBwcmV2 X2RvbSApCkBAIC0xNjQ1LDcgKzE2NjIsNyBAQCBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiB7CiAgICAgc3RydWN0IGFjcGlf ZHJoZF91bml0ICpkcmhkOwogICAgIGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJf dW5pdCAqcm1ycjsKLSAgICBwYWRkcl90IHBnZF9tYWRkciA9IGRvbV9pb21t dShkb21haW4pLT5hcmNoLnBnZF9tYWRkcjsKKyAgICBwYWRkcl90IHBnZF9t YWRkciA9IERFVklDRV9QR1RBQkxFKGRvbWFpbiwgcGRldik7CiAgICAgZG9t aWRfdCBvcmlnX2RvbWlkID0gcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQ7CiAg ICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWduZWQgaW50IGksIG1vZGUgPSAw OwpAQCAtMTY2OCw3ICsxNjg1LDcgQEAgc3RhdGljIGludCBkb21haW5fY29u dGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICBicmVhazsKICAgICB9CiAK LSAgICBpZiAoIGRvbWFpbiAhPSBwZGV2LT5kb21haW4gKQorICAgIGlmICgg ZG9tYWluICE9IHBkZXYtPmRvbWFpbiAmJiBwZGV2LT5kb21haW4gIT0gZG9t X2lvICkKICAgICB7CiAgICAgICAgIGlmICggcGRldi0+ZG9tYWluLT5pc19k eWluZyApCiAgICAgICAgICAgICBtb2RlIHw9IE1BUF9PV05FUl9EWUlORzsK QEAgLTE3MDksOCArMTcyNiw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgIHByaW50ayhWVERQUkVG SVggImQlZDpQQ0llOiBtYXAgJTA0eDolMDJ4OiUwMnguJXVcbiIsCiAgICAg ICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVzLAog ICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMo ZGV2Zm4pKTsKLSAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGlu Z19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgZG9t YWluLT5kb21haW5faWQsIHBnZF9tYWRkciwKKyAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwg YnVzLCBkZXZmbiwgcGRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFpbiwgcGRldiksIHBn ZF9tYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbW9kZSk7CiAgICAgICAgIGlmICggcmV0ID4gMCApCiAgICAgICAg ICAgICByZXQgPSAwOwpAQCAtMTczNCw4ICsxNzUxLDggQEAgc3RhdGljIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAgICAg ICAgICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKIAog ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21h aW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBkb21haW4tPmRvbWFp bl9pZCwgcGdkX21hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGRldiwgREVWSUNFX0RPTUlEKGRvbWFpbiwg cGRldiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBnZF9tYWRkciwgbW9kZSk7CiAgICAgICAgIGlmICggcmV0IDwgMCAp CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgcHJldl9wcmVzZW50ID0g cmV0OwpAQCAtMTc2MSw4ICsxNzc4LDggQEAgc3RhdGljIGludCBkb21haW5f Y29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAgKi8KICAgICAgICAg aWYgKCByZXQgPj0gMCApCiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29u dGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRl dmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwgZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRkciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1v ZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTlVMTCwgREVWSUNFX0RPTUlEKGRvbWFpbiwgcGRldiksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ2Rf bWFkZHIsIG1vZGUpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIERldmlj ZXMgYmVoaW5kIFBDSWUtdG8tUENJL1BDSXggYnJpZGdlIG1heSBnZW5lcmF0 ZSBkaWZmZXJlbnQKQEAgLTE3NzcsOCArMTc5NCw4IEBAIHN0YXRpYyBpbnQg ZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYgKCAh cmV0ICYmIHBkZXZfdHlwZShzZWcsIGJ1cywgZGV2Zm4pID09IERFVl9UWVBF X1BDSWUyUENJX0JSSURHRSAmJgogICAgICAgICAgICAgIChzZWNidXMgIT0g cGRldi0+YnVzIHx8IHBkZXYtPmRldmZuICE9IDApICkKICAgICAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJo ZC0+aW9tbXUsIHNlY2J1cywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGRvbWFpbi0+ZG9tYWluX2lk LCBwZ2RfbWFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIERFVklDRV9ET01JRChkb21h aW4sIHBkZXYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGdkX21hZGRyLCBtb2RlKTsKIAogICAgICAgICBpZiAo IHJldCApCiAgICAgICAgIHsKQEAgLTE5MTQsNyArMTkzMSw3IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRvbWEKICAgICAgICAg ICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsCiAgICAg ICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZm bikpOwogICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUo ZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9E T01JRChkb21haW4sIHBkZXYpKTsKICAgICAgICAgaWYgKCAhcmV0ICYmIGRl dmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwgZHJoZCkg PiAwICkKICAgICAgICAgICAgIGRpc2FibGVfYXRzX2RldmljZShwZGV2KTsK IApAQCAtMTkyNSw3ICsxOTQyLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBh Y3BpX2RyaGRfdW5pdCAqZG9tYQogICAgICAgICAgICAgcHJpbnRrKFZURFBS RUZJWCAiZCVkOlBDSTogdW5tYXAgJTA0eDolMDJ4OiUwMnguJXVcbiIsCiAg ICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVz LCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11 LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFpbiwg cGRldikpOwogICAgICAgICBpZiAoIHJldCApCiAgICAgICAgICAgICBicmVh azsKIApAQCAtMTkzNCwxOCArMTk1MSwxMiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGFjcGlfZHJoZF91bml0ICpkb21hCiAgICAgICAgIGlmICggZmluZF91 cHN0cmVhbV9icmlkZ2Uoc2VnLCAmdG1wX2J1cywgJnRtcF9kZXZmbiwgJnNl Y2J1cykgPCAxICkKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIHJl dCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0 bXBfYnVzLCB0bXBfZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAg ICAgICAgIC8qIFBDSWUgdG8gUENJL1BDSXggYnJpZGdlICovCi0gICAgICAg IGlmICggcGRldl90eXBlKHNlZywgdG1wX2J1cywgdG1wX2RldmZuKSA9PSBE RVZfVFlQRV9QQ0llMlBDSV9CUklER0UgKQotICAgICAgICB7Ci0gICAgICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBp b21tdSwgdG1wX2J1cywgdG1wX2RldmZuLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsK LSAgICAgICAgICAgIGlmICggIXJldCApCi0gICAgICAgICAgICAgICAgcmV0 ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIHNl Y2J1cywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwotICAgICAgICB9Ci0g ICAgICAgIGVsc2UgLyogTGVnYWN5IFBDSSBicmlkZ2UgKi8KLSAgICAgICAg ICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlv bW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwor ICAgICAgICBpZiAoICFyZXQgJiYgcGRldl90eXBlKHNlZywgdG1wX2J1cywg dG1wX2RldmZuKSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0UgKQorICAg ICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFp biwgaW9tbXUsIHNlY2J1cywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2 KSk7CiAKICAgICAgICAgYnJlYWs7CiAKQEAgLTE5OTIsNiArMjAwMywyNSBA QCBzdGF0aWMgdm9pZCBpb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0CiAg ICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiB9CiAK K3N0YXRpYyB2b2lkIHF1YXJhbnRpbmVfdGVhcmRvd24oc3RydWN0IHBjaV9k ZXYgKnBkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCkKK3sKKyAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpwZzsKKworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tl ZCgpKTsKKworICAgIGlmICggIXBkZXYtPmFyY2gudnRkLnBnZF9tYWRkciAp CisgICAgICAgIHJldHVybjsKKworICAgIHdoaWxlICggKHBnID0gcGFnZV9s aXN0X3JlbW92ZV9oZWFkKCZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3QpKSAp CisgICAgICAgIGZyZWVfZG9taGVhcF9wYWdlKHBnKTsKKworICAgIHBkZXYt PmFyY2gudnRkLnBnZF9tYWRkciA9IDA7CisKKyAgICBpZiAoIGRyaGQgKQor ICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChwZGV2LT5hcmNoLnBzZXVkb19k b21pZCwgZHJoZC0+aW9tbXUpOworfQorCiBzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBpbnRlbF9pb21tdV9tYXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBk Zm5fdCBkZm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBmbGFncywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCAqZmx1c2hfZmxhZ3MpCkBAIC0yMjE0LDYgKzIyNDQsOCBA QCBzdGF0aWMgaW50IGludGVsX2lvbW11X3JlbW92ZV9kZXZpY2UodTgKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBybXJyLT5lbmRfYWRkcmVz cywgMCk7CiAgICAgfQogCisgICAgcXVhcmFudGluZV90ZWFyZG93bihwZGV2 LCBkcmhkKTsKKwogICAgIGlmICggZHJoZCApCiAgICAgewogICAgICAgICBp b21tdV9mcmVlX2RvbWlkKHBkZXYtPmFyY2gucHNldWRvX2RvbWlkLApAQCAt Mjg1Miw2MCArMjg4NCwxMzkgQEAgc3RhdGljIHZvaWQgdnRkX2R1bXBfcDJt X3RhYmxlKHN0cnVjdCBkbwogICAgIHZ0ZF9kdW1wX3AybV90YWJsZV9sZXZl bChoZC0+YXJjaC5wZ2RfbWFkZHIsIGFnYXdfdG9fbGV2ZWwoaGQtPmFyY2gu YWdhdyksIDAsIDApOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBpbnRlbF9p b21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKK3N0YXRp YyBpbnQgZmlsbF9xcHQoc3RydWN0IGRtYV9wdGUgKnRoaXMsIHVuc2lnbmVk IGludCBsZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBtYWRk cnNbNl0sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewotICAgIHN0cnVjdCBk b21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOwotICAgIHN0cnVjdCBk bWFfcHRlICpwYXJlbnQ7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50 IHJjID0gMDsKKworICAgIGZvciAoIGkgPSAwOyAhcmMgJiYgaSA8IFBURV9O VU07ICsraSApCisgICAgeworICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcHRl ID0gJnRoaXNbaV0sICpuZXh0OworCisgICAgICAgIGlmICggIWRtYV9wdGVf cHJlc2VudCgqcHRlKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICgg IW1hZGRyc1tsZXZlbF0gKQorICAgICAgICAgICAgeworICAgICAgICAgICAg ICAgIC8qCisgICAgICAgICAgICAgICAgICogVGhlIHBndGFibGUgYWxsb2Nh dG9yIGlzIGZpbmUgZm9yIHRoZSBsZWFmIHBhZ2UsIGFzIHdlbGwgYXMKKyAg ICAgICAgICAgICAgICAgKiBwYWdlIHRhYmxlIHBhZ2VzLCBhbmQgdGhlIHJl c3VsdGluZyBhbGxvY2F0aW9ucyBhcmUgYWx3YXlzCisgICAgICAgICAgICAg ICAgICogemVyb2VkLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAg ICAgICAgIG1hZGRyc1tsZXZlbF0gPSBhbGxvY19wZ3RhYmxlX21hZGRyKE5V TEwsIDEpOworICAgICAgICAgICAgICAgIGlmICggIW1hZGRyc1tsZXZlbF0g KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmMg PSAtRU5PTUVNOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRk KG1hZGRyX3RvX3BhZ2UobWFkZHJzW2xldmVsXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAmcGRldi0+YXJjaC5wZ3RhYmxlc19saXN0KTsK KworICAgICAgICAgICAgICAgIGlmICggbGV2ZWwgKQorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IG1hcF92dGRfZG9t YWluX3BhZ2UobWFkZHJzW2xldmVsXSk7CisgICAgICAgICAgICAgICAgICAg IHJjID0gZmlsbF9xcHQobmV4dCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYp OworICAgICAgICAgICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2Uo bmV4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisg ICAgICAgICAgICBkbWFfc2V0X3B0ZV9hZGRyKCpwdGUsIG1hZGRyc1tsZXZl bF0pOworICAgICAgICAgICAgZG1hX3NldF9wdGVfcmVhZGFibGUoKnB0ZSk7 CisgICAgICAgICAgICBkbWFfc2V0X3B0ZV93cml0YWJsZSgqcHRlKTsKKyAg ICAgICAgfQorICAgICAgICBlbHNlIGlmICggbGV2ZWwgJiYgIWRtYV9wdGVf c3VwZXJwYWdlKCpwdGUpICkKKyAgICAgICAgeworICAgICAgICAgICAgcGFn ZV9saXN0X2FkZChtYWRkcl90b19wYWdlKGRtYV9wdGVfYWRkcigqcHRlKSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5hcmNoLnBndGFi bGVzX2xpc3QpOworICAgICAgICAgICAgbmV4dCA9IG1hcF92dGRfZG9tYWlu X3BhZ2UoZG1hX3B0ZV9hZGRyKCpwdGUpKTsKKyAgICAgICAgICAgIHJjID0g ZmlsbF9xcHQobmV4dCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYpOworICAg ICAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAg ICB9CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50 IGludGVsX2lvbW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAq cGRldikKK3sKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9p b21tdShkb21faW8pOworICAgIHBhZGRyX3QgbWFkZHI7CiAgICAgdW5zaWdu ZWQgaW50IGFnYXcgPSB3aWR0aF90b19hZ2F3KERFRkFVTFRfRE9NQUlOX0FE RFJFU1NfV0lEVEgpOwogICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFnYXdf dG9fbGV2ZWwoYWdhdyk7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91 bml0ICpkcmhkOworICAgIGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAq cm1ycjsKKyAgICB1bnNpZ25lZCBpbnQgaSwgYmRmOworICAgIGJvb2wgcm1y cl9mb3VuZCA9IGZhbHNlOworICAgIGludCByYzsKIAotICAgIGlmICggaGQt PmFyY2gucGdkX21hZGRyICkKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQo KSk7CisgICAgQVNTRVJUKCFoZC0+YXJjaC5wZ2RfbWFkZHIpOworCisgICAg aWYgKCBwZGV2LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgKQogICAgIHsKLSAgICAg ICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIGNsZWFyX2RvbWFp bl9wYWdlKHBkZXYtPmFyY2gubGVhZl9tZm4pOwogICAgICAgICByZXR1cm4g MDsKICAgICB9CiAKLSAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7CisgICAgZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5p dChwZGV2KTsKKyAgICBpZiAoICFkcmhkICkKKyAgICAgICAgcmV0dXJuIC1F Tk9ERVY7CiAKLSAgICBoZC0+YXJjaC5wZ2RfbWFkZHIgPSBhbGxvY19wZ3Rh YmxlX21hZGRyKE5VTEwsIDEpOwotICAgIGlmICggIWhkLT5hcmNoLnBnZF9t YWRkciApCi0gICAgICAgIGdvdG8gb3V0OworICAgIG1hZGRyID0gYWxsb2Nf cGd0YWJsZV9tYWRkcihOVUxMLCAxKTsKKyAgICBpZiAoICFtYWRkciApCisg ICAgICAgIHJldHVybiAtRU5PTUVNOwogCi0gICAgcGFyZW50ID0gbWFwX3Z0 ZF9kb21haW5fcGFnZShoZC0+YXJjaC5wZ2RfbWFkZHIpOwotICAgIHdoaWxl ICggbGV2ZWwgKQotICAgIHsKLSAgICAgICAgdWludDY0X3QgbWFkZHI7Ci0g ICAgICAgIHVuc2lnbmVkIGludCBvZmZzZXQ7CisgICAgcmMgPSBjb250ZXh0 X3NldF9kb21haW5faWQoTlVMTCwgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQs IGRyaGQtPmlvbW11KTsKIAotICAgICAgICAvKgotICAgICAgICAgKiBUaGUg cGd0YWJsZSBhbGxvY2F0b3IgaXMgZmluZSBmb3IgdGhlIGxlYWYgcGFnZSwg YXMgd2VsbCBhcwotICAgICAgICAgKiBwYWdlIHRhYmxlIHBhZ2VzLCBhbmQg dGhlIHJlc3VsdGluZyBhbGxvY2F0aW9ucyBhcmUgYWx3YXlzCi0gICAgICAg ICAqIHplcm9lZC4KLSAgICAgICAgICovCi0gICAgICAgIG1hZGRyID0gYWxs b2NfcGd0YWJsZV9tYWRkcihOVUxMLCAxKTsKLSAgICAgICAgaWYgKCAhbWFk ZHIgKQorICAgIC8qIFRyYW5zaWVudGx5IGluc3RhbGwgdGhlIHJvb3QgaW50 byBEb21JTywgZm9yIGlvbW11X2lkZW50aXR5X21hcHBpbmcoKS4gKi8KKyAg ICBoZC0+YXJjaC5wZ2RfbWFkZHIgPSBtYWRkcjsKKworICAgIGZvcl9lYWNo X3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKKyAgICB7CisgICAgICAg IGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgZm9y ICggb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgUFRFX05VTTsgb2Zmc2V0KysgKQor ICAgICAgICBpZiAoIHJtcnItPnNlZ21lbnQgPT0gcGRldi0+c2VnICYmCisg ICAgICAgICAgICAgYmRmID09IFBDSV9CREYyKHBkZXYtPmJ1cywgcGRldi0+ ZGV2Zm4pICkKICAgICAgICAgewotICAgICAgICAgICAgc3RydWN0IGRtYV9w dGUgKnB0ZSA9ICZwYXJlbnRbb2Zmc2V0XTsKKyAgICAgICAgICAgIHJtcnJf Zm91bmQgPSB0cnVlOwogCi0gICAgICAgICAgICBkbWFfc2V0X3B0ZV9hZGRy KCpwdGUsIG1hZGRyKTsKLSAgICAgICAgICAgIGRtYV9zZXRfcHRlX3JlYWRh YmxlKCpwdGUpOworICAgICAgICAgICAgcmMgPSBpb21tdV9pZGVudGl0eV9t YXBwaW5nKGRvbV9pbywgcDJtX2FjY2Vzc19ydywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3Ms IHJtcnItPmVuZF9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDApOworICAgICAgICAgICAgaWYgKCByYyApCisg ICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYCisg ICAgICAgICAgICAgICAgICAgICAgICIlMDR4OiUwMng6JTAyeC4ldTogUk1S UiBxdWFyYW50aW5lIG1hcHBpbmcgZmFpbGVkXG4iLAorICAgICAgICAgICAg ICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywKKyAgICAgICAgICAg ICAgICAgICAgICAgUENJX1NMT1QocGRldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhw ZGV2LT5kZXZmbikpOwogICAgICAgICB9Ci0gICAgICAgIGlvbW11X3N5bmNf Y2FjaGUocGFyZW50LCBQQUdFX1NJWkUpOworICAgIH0KIAotICAgICAgICB1 bm1hcF92dGRfZG9tYWluX3BhZ2UocGFyZW50KTsKLSAgICAgICAgcGFyZW50 ID0gbWFwX3Z0ZF9kb21haW5fcGFnZShtYWRkcik7Ci0gICAgICAgIGxldmVs LS07CisgICAgaW9tbXVfaWRlbnRpdHlfbWFwX3RlYXJkb3duKGRvbV9pbyk7 CisgICAgaGQtPmFyY2gucGdkX21hZGRyID0gMDsKKyAgICBwZGV2LT5hcmNo LnZ0ZC5wZ2RfbWFkZHIgPSBtYWRkcjsKKworICAgIGlmICggIXJjICkKKyAg ICB7CisgICAgICAgIHN0cnVjdCBkbWFfcHRlICpyb290OworICAgICAgICBw YWRkcl90IG1hZGRyc1s2XSA9IHt9OworCisgICAgICAgIHNwaW5fbG9jaygm aGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKworICAgICAgICByb290ID0gbWFw X3Z0ZF9kb21haW5fcGFnZShtYWRkcik7CisgICAgICAgIHJjID0gZmlsbF9x cHQocm9vdCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYpOworICAgICAgICB1 bm1hcF92dGRfZG9tYWluX3BhZ2Uocm9vdCk7CisKKyAgICAgICAgcGRldi0+ YXJjaC5sZWFmX21mbiA9IG1hZGRyX3RvX21mbihtYWRkcnNbMF0pOworCisg ICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwog ICAgIH0KLSAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UocGFyZW50KTsKIAot IG91dDoKLSAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2Nr KTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgcXVhcmFudGluZV90ZWFyZG93 bihwZGV2LCBkcmhkKTsKIAotICAgIC8qIFBhZ2VzIGxlYWtlZCBpbiBmYWls dXJlIGNhc2UgKi8KLSAgICByZXR1cm4gbGV2ZWwgPyAtRU5PTUVNIDogMDsK KyAgICByZXR1cm4gcmM7CiB9CiAKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMg X19pbml0Y29uc3RyZWwgaW50ZWxfaW9tbXVfb3BzID0gewotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAorKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaApAQCAtNTM1LDcgKzUzNSw3 IEBAIHN0cnVjdCBpb21tdSB7CiAgICAgdTMyIG5yX3B0X2xldmVsczsKICAg ICB1NjQJY2FwOwogICAgIHU2NAllY2FwOwotICAgIHNwaW5sb2NrX3QgbG9j azsgLyogcHJvdGVjdCBjb250ZXh0LCBkb21haW4gaWRzICovCisgICAgc3Bp bmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0IGNvbnRleHQgKi8KICAgICBzcGlu bG9ja190IHJlZ2lzdGVyX2xvY2s7IC8qIHByb3RlY3QgaW9tbXUgcmVnaXN0 ZXIgaGFuZGxpbmcgKi8KICAgICB1NjQgcm9vdF9tYWRkcjsgLyogcm9vdCBl bnRyeSBtYWNoaW5lIGFkZHJlc3MgKi8KICAgICBzdHJ1Y3QgbXNpX2Rlc2Mg bXNpOwotLS0gYS94ZW4vaW5jbHVkZS94ZW4vaW9tbXUuaAorKysgYi94ZW4v aW5jbHVkZS94ZW4vaW9tbXUuaApAQCAtMTg5LDcgKzE4OSw3IEBAIHR5cGVk ZWYgaW50IGlvbW11X2dyZG1fdCh4ZW5fcGZuX3Qgc3RhcnQKIHN0cnVjdCBp b21tdV9vcHMgewogICAgIGludCAoKmluaXQpKHN0cnVjdCBkb21haW4gKmQp OwogICAgIHZvaWQgKCpod2RvbV9pbml0KShzdHJ1Y3QgZG9tYWluICpkKTsK LSAgICBpbnQgKCpxdWFyYW50aW5lX2luaXQpKHN0cnVjdCBkb21haW4gKmQp OworICAgIGludCAoKnF1YXJhbnRpbmVfaW5pdCkoZGV2aWNlX3QgKmRldik7 CiAgICAgaW50ICgqYWRkX2RldmljZSkodTggZGV2Zm4sIGRldmljZV90ICpk ZXYpOwogICAgIGludCAoKmVuYWJsZV9kZXZpY2UpKGRldmljZV90ICpkZXYp OwogICAgIGludCAoKnJlbW92ZV9kZXZpY2UpKHU4IGRldmZuLCBkZXZpY2Vf dCAqZGV2KTsKQEAgLTI3Nyw2ICsyNzcsNyBAQCBpbnQgX19tdXN0X2NoZWNr IGlvbW11X3N1c3BlbmQodm9pZCk7CiB2b2lkIGlvbW11X3Jlc3VtZSh2b2lk KTsKIHZvaWQgaW9tbXVfY3Jhc2hfc2h1dGRvd24odm9pZCk7CiBpbnQgaW9t bXVfZ2V0X3Jlc2VydmVkX2RldmljZV9tZW1vcnkoaW9tbXVfZ3JkbV90ICos IHZvaWQgKik7CitpbnQgaW9tbXVfcXVhcmFudGluZV9kZXZfaW5pdChkZXZp Y2VfdCAqZGV2KTsKIAogdm9pZCBpb21tdV9zaGFyZV9wMm1fdGFibGUoc3Ry dWN0IGRvbWFpbiAqZCk7CiAK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-00.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-00.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBzcGxpdCBkb21pZCBtYXAgY2xlYW51cCBjaGVjayBpbnRvIGEg ZnVuY3Rpb24KClRoaXMgbG9naWMgd2lsbCB3YW50IGludm9raW5nIGZyb20g ZWxzZXdoZXJlLgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpT aWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTE1Myw2ICsxNTMsNTEgQEAgc3RhdGljIHZvaWQgY2xlYW51 cF9kb21pZF9tYXAoc3RydWN0IGRvbQogICAgIH0KIH0KIAorc3RhdGljIGJv b2wgYW55X3BkZXZfYmVoaW5kX2lvbW11KGNvbnN0IHN0cnVjdCBkb21haW4g KmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg c3RydWN0IHBjaV9kZXYgKmV4Y2x1ZGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUp Cit7CisgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXY7CisKKyAgICBm b3JfZWFjaF9wZGV2ICggZCwgcGRldiApCisgICAgeworICAgICAgICBjb25z dCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CisKKyAgICAgICAgaWYg KCBwZGV2ID09IGV4Y2x1ZGUgKQorICAgICAgICAgICAgY29udGludWU7CisK KyAgICAgICAgZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5pdChw ZGV2KTsKKyAgICAgICAgaWYgKCBkcmhkICYmIGRyaGQtPmlvbW11ID09IGlv bW11ICkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAg IHJldHVybiBmYWxzZTsKK30KKworLyoKKyAqIElmIG5vIG90aGVyIGRldmlj ZXMgdW5kZXIgdGhlIHNhbWUgaW9tbXUgb3duZWQgYnkgdGhpcyBkb21haW4s CisgKiBjbGVhciBpb21tdSBpbiBpb21tdV9iaXRtYXAgYW5kIGNsZWFyIGRv bWFpbl9pZCBpbiBkb21pZF9iaXRtYXAuCisgKi8KK3N0YXRpYyB2b2lkIGNo ZWNrX2NsZWFudXBfZG9taWRfbWFwKHN0cnVjdCBkb21haW4gKmQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg cGNpX2RldiAqZXhjbHVkZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQoreworICAgIGJv b2wgZm91bmQgPSBhbnlfcGRldl9iZWhpbmRfaW9tbXUoZCwgZXhjbHVkZSwg aW9tbXUpOworCisgICAgLyoKKyAgICAgKiBIaWRkZW4gZGV2aWNlcyBhcmUg YXNzb2NpYXRlZCB3aXRoIERvbVhFTiBidXQgdXNhYmxlIGJ5IHRoZSBoYXJk d2FyZQorICAgICAqIGRvbWFpbi4gSGVuY2UgdGhleSBuZWVkIGNvbnNpZGVy aW5nIGhlcmUgYXMgd2VsbC4KKyAgICAgKi8KKyAgICBpZiAoICFmb3VuZCAm JiBpc19oYXJkd2FyZV9kb21haW4oZCkgKQorICAgICAgICBmb3VuZCA9IGFu eV9wZGV2X2JlaGluZF9pb21tdShkb21feGVuLCBleGNsdWRlLCBpb21tdSk7 CisKKyAgICBpZiAoICFmb3VuZCApCisgICAgeworICAgICAgICBjbGVhcl9i aXQoaW9tbXUtPmluZGV4LCAmZG9tX2lvbW11KGQpLT5hcmNoLmlvbW11X2Jp dG1hcCk7CisgICAgICAgIGNsZWFudXBfZG9taWRfbWFwKGQsIGlvbW11KTsK KyAgICB9Cit9CisKIHN0YXRpYyBpbnQgaW9tbXVzX2luY29oZXJlbnQ7CiAK IHN0YXRpYyB2b2lkIHN5bmNfY2FjaGUoY29uc3Qgdm9pZCAqYWRkciwgdW5z aWduZWQgaW50IHNpemUpCkBAIC0xNjg1LDcgKzE3MzAsNiBAQCBzdGF0aWMg aW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXU7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdTgg c2VnID0gcGRldi0+c2VnLCBidXMgPSBwZGV2LT5idXMsIHRtcF9idXMsIHRt cF9kZXZmbiwgc2VjYnVzOwotICAgIGludCBmb3VuZCA9IDA7CiAKICAgICBk cmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwogICAg IGlmICggIWRyaGQgKQpAQCAtMTc2OSwyOCArMTgxMyw4IEBAIHN0YXRpYyBp bnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGQKICAgICBpZiAoIHJl dCApCiAgICAgICAgIGdvdG8gb3V0OwogCi0gICAgLyoKLSAgICAgKiBpZiBu byBvdGhlciBkZXZpY2VzIHVuZGVyIHRoZSBzYW1lIGlvbW11IG93bmVkIGJ5 IHRoaXMgZG9tYWluLAotICAgICAqIGNsZWFyIGlvbW11IGluIGlvbW11X2Jp dG1hcCBhbmQgY2xlYXIgZG9tYWluX2lkIGluIGRvbWlkX2JpdG1wCi0gICAg ICovCi0gICAgZm9yX2VhY2hfcGRldiAoIGRvbWFpbiwgcGRldiApCi0gICAg ewotICAgICAgICBpZiAoIHBkZXYtPnNlZyA9PSBzZWcgJiYgcGRldi0+YnVz ID09IGJ1cyAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiApCi0gICAgICAgICAg ICBjb250aW51ZTsKLQotICAgICAgICBkcmhkID0gYWNwaV9maW5kX21hdGNo ZWRfZHJoZF91bml0KHBkZXYpOwotICAgICAgICBpZiAoIGRyaGQgJiYgZHJo ZC0+aW9tbXUgPT0gaW9tbXUgKQotICAgICAgICB7Ci0gICAgICAgICAgICBm b3VuZCA9IDE7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAg IH0KLQotICAgIGlmICggZm91bmQgPT0gMCApCi0gICAgewotICAgICAgICBj bGVhcl9iaXQoaW9tbXUtPmluZGV4LCAmZG9tX2lvbW11KGRvbWFpbiktPmFy Y2guaW9tbXVfYml0bWFwKTsKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAo ZG9tYWluLCBpb21tdSk7Ci0gICAgfQorICAgIGlmICggIXJldCApCisgICAg ICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFwKGRvbWFpbiwgcGRldiwgaW9t bXUpOwogCiBvdXQ6CiAgICAgcmV0dXJuIHJldDsK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-01.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-01.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggKGRlKWFzc2lnbiBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSB1cGRhdGVkLgoKQWxzbyBhZGp1c3QgYSByZWxhdGVk IGxvZyBtZXNzYWdlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM1OCAvIHBhcnQg b2YgWFNBLTQwMC4KCkZpeGVzOiA4Yjk5ZjQ0MDBiNjkgKCJWVC1kOiBmaXgg Uk1SUiByZWxhdGVkIGVycm9yIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmll d2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4KUmV2aWV3ZWQt Ynk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTIzOTIsNiAr MjM5MiwxMCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNo aXAoCiB7CiAgICAgaW50IHJldDsKIAorICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X3VubWFwKHNvdXJjZSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0 ICkKKyAgICAgICAgcmV0dXJuIHJldDsKKwogICAgIC8qCiAgICAgICogRGV2 aWNlcyBhc3NpZ25lZCB0byB1bnRydXN0ZWQgZG9tYWlucyAoaGVyZSBhc3N1 bWVkIHRvIGJlIGFueSBkb21VKQogICAgICAqIGNhbiBhdHRlbXB0IHRvIHNl bmQgYXJiaXRyYXJ5IExBUElDL01TSSBtZXNzYWdlcy4gV2UgYXJlIHVucHJv dGVjdGVkCkBAIC0yNDI4LDEwICsyNDMyLDYgQEAgc3RhdGljIGludCByZWFz c2lnbl9kZXZpY2Vfb3duZXJzaGlwKAogICAgICAgICAgICAgfQogICAgIH0K IAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2 Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAgcmV0dXJuIHJl dDsKLQogICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ ZG9tYWluICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBsaXN0X21vdmUo JnBkZXYtPmRvbWFpbl9saXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwpAQCAt MjUwOCw5ICsyNTA4LDggQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0ID0gcmVh c3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7Ci0g ICAgaWYgKCByZXQgfHwgZCA9PSBkb21faW8gKQotICAgICAgICByZXR1cm4g cmV0OworICAgIGlmICggZCA9PSBkb21faW8gKQorICAgICAgICByZXR1cm4g cmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7 CiAKICAgICAvKiBTZXR1cCBybXJyIGlkZW50aXR5IG1hcHBpbmcgKi8KICAg ICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBpICkKQEAgLTI1 MjMsMjAgKzI1MjIsMzcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgZmxhZyk7CiAgICAgICAgICAg ICBpZiAoIHJldCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg aW50IHJjOwotCi0gICAgICAgICAgICAgICAgcmMgPSByZWFzc2lnbl9kZXZp Y2Vfb3duZXJzaGlwKGQsIHMsIGRldmZuLCBwZGV2KTsKICAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfRVJSIFZURFBSRUZJWAotICAgICAgICAg ICAgICAgICAgICAgICAiIGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uICgl IlBSSXg2NCIsJSJQUkl4NjQiXSBmb3IgRG9tJWQgKCVkKVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgcm1yci0+YmFzZV9hZGRyZXNzLCBybXJyLT5l bmRfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWlu X2lkLCByZXQpOwotICAgICAgICAgICAgICAgIGlmICggcmMgKQotICAgICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIgVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAi IGZhaWxlZCB0byByZWNsYWltICUwNHg6JTAyeDolMDJ4LiV1IGZyb20gJXBk ICglZClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1 cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksIGQsIHJjKTsK LSAgICAgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwotICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIiVwZDogY2Fu bm90IG1hcCByZXNlcnZlZCByZWdpb24gWyUiUFJJeDY0IiwlIlBSSXg2NCJd OiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZCwgcm1yci0+YmFz ZV9hZGRyZXNzLCBybXJyLT5lbmRfYWRkcmVzcywgcmV0KTsKKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg IH0KKworICAgIGlmICggIXJldCApCisgICAgICAgIHJldCA9IHJlYXNzaWdu X2RldmljZV9vd25lcnNoaXAocywgZCwgZGV2Zm4sIHBkZXYpOworCisgICAg LyogU2VlIHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAoKSBmb3IgdGhlIGh3 ZG9tIGFzcGVjdC4gKi8KKyAgICBpZiAoICFyZXQgfHwgaXNfaGFyZHdhcmVf ZG9tYWluKGQpICkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlKCBybXJyLCBiZGYsIGkgKQorICAgIHsKKyAgICAg ICAgaWYgKCBybXJyLT5zZWdtZW50ID09IHNlZyAmJgorICAgICAgICAgICAg IFBDSV9CVVMoYmRmKSA9PSBidXMgJiYKKyAgICAgICAgICAgICBQQ0lfREVW Rk4yKGJkZikgPT0gZGV2Zm4gKQorICAgICAgICB7CisgICAgICAgICAgICBp bnQgcmMgPSBpb21tdV9pZGVudGl0eV9tYXBwaW5nKGQsIHAybV9hY2Nlc3Nf eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcm1yci0+YmFzZV9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7 CisKKyAgICAgICAgICAgIGlmICggcmMgJiYgcmMgIT0gLUVOT0VOVCApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIgVlREUFJFRklYCisgICAgICAgICAgICAgICAgICAgICAgICIlcGQ6IGNh bm5vdCB1bm1hcCByZXNlcnZlZCByZWdpb24gWyUiUFJJeDY0IiwlIlBSSXg2 NCJdOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZCwgcm1yci0+ YmFzZV9hZGRyZXNzLCBybXJyLT5lbmRfYWRkcmVzcywgcmMpOworICAgICAg ICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-02.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-02.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggYWRkL3JlbW92ZSBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSBjbGVhcmVkLgoKQWxzbyBzd2l0Y2ggdG8gJXBkIGlu IHJlbGF0ZWQgbG9nIG1lc3NhZ2VzLgoKRml4ZXM6IGZhODhjZmFkZjkxOCAo InZ0LWQ6IE1hcCBSTVJSIGluIGludGVsX2lvbW11X2FkZF9kZXZpY2UoKSBp ZiB0aGUgZGV2aWNlIGhhcyBSTVJSIikKRml4ZXM6IDhiOTlmNDQwMGI2OSAo IlZULWQ6IGZpeCBSTVJSIHJlbGF0ZWQgZXJyb3IgaGFuZGxpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTE5OTMsMTQgKzE5OTMsNiBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X2FkZF9kZXZpY2UodTggZGV2CiAgICAgaWYgKCAhcGRldi0+ZG9tYWlu ICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICByZXQgPSBkb21h aW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYp OwotICAgIGlmICggcmV0ICkKLSAgICB7Ci0gICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsICJkJWQ6IGNvbnRleHQgbWFwcGluZyBmYWls ZWRcbiIsCi0gICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5f aWQpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQogICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7CiAgICAg ICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBwZGV2LT5zZWcgJiYKQEAgLTIw MTcsMTIgKzIwMDksMTcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hZGRf ZGV2aWNlKHU4IGRldgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRy ZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKICAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiZCVkOiBSTVJSIG1h cHBpbmcgZmFpbGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IFJNUlIgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21h aW4pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyhwZGV2LT5kb21haW4sIGRl dmZuLCBwZGV2KTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGRwcmludGso WEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IGNvbnRleHQgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluKTsKKwor ICAgIHJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf ZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTIwNDQs MTEgKzIwNDEsMTUgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVf ZGV2aWNlKHU4CiB7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJy OwogICAgIHUxNiBiZGY7Ci0gICAgaW50IGk7CisgICAgaW50IHJldCwgaTsK IAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogCisgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRl di0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByZXQgKQorICAg ICAgICByZXR1cm4gcmV0OworCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2Ug KCBybXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5z ZWdtZW50ICE9IHBkZXYtPnNlZyB8fApAQCAtMjA2NCw3ICsyMDY1LDcgQEAg c3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ZW5kX2FkZHJlc3Ms IDApOwogICAgIH0KIAotICAgIHJldHVybiBkb21haW5fY29udGV4dF91bm1h cChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICByZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fZGV2 aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-03.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-03.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBkcm9wIG93bmVyc2hpcCBjaGVja2luZyBmcm9tIGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKCkKCkRlc3BpdGUgcHV0dGluZyBpbiBxdWl0 ZSBhIGJpdCBvZiBlZmZvcnQgaXQgd2FzIG5vdCBwb3NzaWJsZSB0bwplc3Rh Ymxpc2ggd2h5IGV4YWN0bHkgdGhpcyBjb2RlIGV4aXN0cyAoYmV5b25kIHBv c3NpYmx5IHNhbml0eQpjaGVja2luZykuIEluc3RlYWQgb2YgYSBzdWJzZXF1 ZW50IGNoYW5nZSBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGlzCmxvZ2ljLCBz aW1wbHkgZ2V0IHJpZCBvZiBpdC4KClRha2UgdGhlIG9wcG9ydHVuaXR5IGFu ZCBtb3ZlIHRoZSByZXNwZWN0aXZlIHVubWFwX3Z0ZF9kb21haW5fcGFnZSgp IG91dApvZiB0aGUgbG9ja2VkIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KCi0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMTQsMjggKzEx NCw2IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNvbnRleHRfZ2V0 X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQotewotICAgIHVuc2lnbmVkIGxvbmcgZG9tX2luZGV4LCBu cl9kb207Ci0gICAgaW50IGRvbWlkID0gLTE7Ci0KLSAgICBpZiAoaW9tbXUg JiYgY29udGV4dCkKLSAgICB7Ci0gICAgICAgIG5yX2RvbSA9IGNhcF9uZG9t cyhpb21tdS0+Y2FwKTsKLQotICAgICAgICBkb21faW5kZXggPSBjb250ZXh0 X2RvbWFpbl9pZCgqY29udGV4dCk7Ci0KLSAgICAgICAgaWYgKCBkb21faW5k ZXggPCBucl9kb20gJiYgaW9tbXUtPmRvbWlkX21hcCApCi0gICAgICAgICAg ICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbZG9tX2luZGV4XTsKLSAgICAg ICAgZWxzZQotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcgVlRE UFJFRklYLAotICAgICAgICAgICAgICAgICAgICAiZG9tX2luZGV4ICVsdSBl eGNlZWRzIG5yX2RvbSAlbHUgb3IgaW9tbXUgaGFzIG5vIGRvbWlkX21hcFxu IiwKLSAgICAgICAgICAgICAgICAgICAgZG9tX2luZGV4LCBucl9kb20pOwot ICAgIH0KLSAgICByZXR1cm4gZG9taWQ7Ci19Ci0KIHN0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpCiB7CiAgICAgaW50IGlvbW11X2RvbWlkID0g ZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOwpAQCAtMTM5Miw0 OSArMTM3MCw5IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgK IAogICAgIGlmICggY29udGV4dF9wcmVzZW50KCpjb250ZXh0KSApCiAgICAg ewotICAgICAgICBpbnQgcmVzID0gMDsKLQotICAgICAgICAvKiBUcnkgdG8g Z2V0IGRvbWFpbiBvd25lcnNoaXAgZnJvbSBkZXZpY2Ugc3RydWN0dXJlLiAg SWYgdGhhdCdzCi0gICAgICAgICAqIG5vdCBhdmFpbGFibGUsIHRyeSB0byBy ZWFkIGl0IGZyb20gdGhlIGNvbnRleHQgaXRzZWxmLiAqLwotICAgICAgICBp ZiAoIHBkZXYgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIHBkZXYt PmRvbWFpbiAhPSBkb21haW4gKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPIFZURFBSRUZJWAotICAgICAg ICAgICAgICAgICAgICAgICAiZCVkOiAlMDR4OiUwMng6JTAyeC4ldSBvd25l ZCBieSBkJWQhIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5k b21haW5faWQsCi0gICAgICAgICAgICAgICAgICAgICAgIHNlZywgYnVzLCBQ Q0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwKLSAgICAgICAgICAg ICAgICAgICAgICAgcGRldi0+ZG9tYWluID8gcGRldi0+ZG9tYWluLT5kb21h aW5faWQgOiAtMSk7Ci0gICAgICAgICAgICAgICAgcmVzID0gLUVJTlZBTDsK LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBlbHNlCi0gICAg ICAgIHsKLSAgICAgICAgICAgIGludCBjZG9tYWluOwotICAgICAgICAgICAg Y2RvbWFpbiA9IGNvbnRleHRfZ2V0X2RvbWFpbl9pZChjb250ZXh0LCBpb21t dSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICggY2RvbWFpbiA8 IDAgKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHByaW50ayhY RU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAotICAgICAgICAgICAgICAgICAg ICAgICAiZCVkOiAlMDR4OiUwMng6JTAyeC4ldSBtYXBwZWQsIGJ1dCBjYW4n dCBmaW5kIG93bmVyIVxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluLT5kb21haW5faWQsCi0gICAgICAgICAgICAgICAgICAgICAgIHNlZywg YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Ci0gICAg ICAgICAgICAgICAgcmVzID0gLUVJTlZBTDsKLSAgICAgICAgICAgIH0KLSAg ICAgICAgICAgIGVsc2UgaWYgKCBjZG9tYWluICE9IGRvbWFpbi0+ZG9tYWlu X2lkICkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBwcmludGso WEVOTE9HX0dfSU5GTyBWVERQUkVGSVgKLSAgICAgICAgICAgICAgICAgICAg ICAgImQlZDogJTA0eDolMDJ4OiUwMnguJXUgYWxyZWFkeSBtYXBwZWQgdG8g ZCVkISIsCi0gICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLAotICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1cywgUENJX1NM T1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCi0gICAgICAgICAgICAgICAg ICAgICAgIGNkb21haW4pOwotICAgICAgICAgICAgICAgIHJlcyA9IC1FSU5W QUw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB1bm1h cF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsKICAgICAgICAg c3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKLSAgICAgICAgcmV0dXJuIHJl czsKKyAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50 cmllcyk7CisgICAgICAgIHJldHVybiAwOwogICAgIH0KIAogICAgIGlmICgg aW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWlu KGRvbWFpbikgKQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-04.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-04.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiByZS1hc3NpZ24gZGV2aWNlcyBkaXJlY3RseQoKRGV2aWNlcyB3 aXRoIFJNUlJzLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQgaG93L3do ZW4gdGhlIHNwZWNpZmllZAptZW1vcnkgcmVnaW9ucyBtYXkgZ2V0IGFjY2Vz c2VkLCBtYXkgbm90IGJlIGxlZnQgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIK cmVzcGVjdGl2ZSBtYXBwaW5ncyAoYXMgbG9uZyBhcyBpdCdzIG5vdCBjZXJ0 YWluIHRoYXQgdGhlIGRldmljZSBoYXMKYmVlbiBmdWxseSBxdWllc2NlZCku IEhlbmNlIHJhdGhlciB0aGFuIHVubWFwcGluZyB0aGUgb2xkIGNvbnRleHQg YW5kCnRoZW4gbWFwcGluZyB0aGUgbmV3IG9uZSwgcmUtYXNzaWdubWVudCBu ZWVkcyB0byBiZSBkb25lIGluIGEgc2luZ2xlCnN0ZXAuCgpUaGlzIGlzIENW RS0yMDIyLTI2MzU5IC8gcGFydCBvZiBYU0EtNDAwLgoKUmVwb3J0ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKU2lt aWxhcmx5IHF1YXJhbnRpbmluZyBzY3JhdGNoLXBhZ2UgbW9kZSByZWxpZXMg b24gcGFnZSB0YWJsZXMgdG8gYmUKY29udGludW91c2x5IHdpcmVkIHVwLgoK VG8gYXZvaWQgY29tcGxpY2F0aW5nIHRoaW5ncyBtb3JlIHRoYW4gbmVjZXNz YXJ5LCB0cmVhdCBhbGwgZGV2aWNlcwptb3N0bHkgZXF1YWxseSwgaS5lLiBy ZWdhcmRsZXNzIG9mIHRoZWlyIGFzc29jaWF0aW9uIHdpdGggYW55IFJNUlJz LiBUaGUKbWFpbiBkaWZmZXJlbmNlIGlzIHdoZW4gaXQgY29tZXMgdG8gdXBk YXRpbmcgY29udGV4dCBlbnRyaWVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21p YyB3aGVuIHRoZXJlIGFyZSBSTVJScy4gWWV0IGF0b21pY2l0eSBjYW4gb25s eSBiZSBhY2hpZXZlZAp3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBv ZiB3aGljaCB3ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClRoZSBzZWVtaW5n bHkgY29tcGxpY2F0ZWQgY2hvaWNlIG9mIG5vbi1uZWdhdGl2ZSByZXR1cm4g dmFsdWVzIGZvcgpkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpIGlzIHRv IGxpbWl0IGNvZGUgY2h1cm46IFRoaXMgd2F5IGNhbGxlcnMKcGFzc2luZyBO VUxMIGZvciBwZGV2IGRvbid0IG5lZWQgZmlkZGxpbmcgd2l0aC4KClNpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2 aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0 ZXJuLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVy bi5oCkBAIC04NSw3ICs4NSw4IEBAIHZvaWQgZnJlZV9wZ3RhYmxlX21hZGRy KHU2NCBtYWRkcik7CiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdlKHU2NCBt YWRkcik7CiB2b2lkIHVubWFwX3Z0ZF9kb21haW5fcGFnZSh2b2lkICp2YSk7 CiBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoc3RydWN0IGRvbWFp biAqZG9tYWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMsIHU4IGRldmZuLCBjb25z dCBzdHJ1Y3QgcGNpX2RldiAqKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldiwgdW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRf aW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 OCBidXMsIHU4IGRldmZuKTsKIGludCBpbnRlbF9pb21tdV9nZXRfcmVzZXJ2 ZWRfZGV2aWNlX21lbW9yeShpb21tdV9ncmRtX3QgKmZ1bmMsIHZvaWQgKmN0 eHQpOwpAQCAtMTA1LDggKzEwNiw4IEBAIGludCBpc19pZ2RfdnRfZW5hYmxl ZF9xdWlyayh2b2lkKTsKIHZvaWQgcGxhdGZvcm1fcXVpcmtzX2luaXQodm9p ZCk7CiB2b2lkIHZ0ZF9vcHNfcHJlYW1ibGVfcXVpcmsoc3RydWN0IHZ0ZF9p b21tdSAqaW9tbXUpOwogdm9pZCB2dGRfb3BzX3Bvc3RhbWJsZV9xdWlyayhz dHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7Ci1pbnQgX19tdXN0X2NoZWNrIG1l X3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHU4IGJ1cywgdTggZGV2Zm4sIGludCBt YXApOworaW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBk b21haW4gKmRvbWFpbiwgdWludDhfdCBidXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1v ZGUpOwogdm9pZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBwY2lfZGV2 ICopOwogdm9pZCBxdWlya19pb21tdV9jYXBzKHN0cnVjdCB2dGRfaW9tbXUg KmlvbW11KTsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t bXUuYwpAQCAtMTEwLDYgKzExMCw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9z ZXRfZG9tYWluX2lkKHN0cnVjdAogICAgIH0KIAogICAgIHNldF9iaXQoaSwg aW9tbXUtPmRvbWlkX2JpdG1hcCk7CisgICAgY29udGV4dC0+aGkgJj0gfigo KDEgPDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpIDw8IERJRF9ISUdIX09GRlNF VCk7CiAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAoKDEgPDwgRElEX0ZJRUxE X1dJRFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZTRVQ7CiAgICAgcmV0dXJu IDA7CiB9CkBAIC0xMzUwLDE1ICsxMzUxLDI3IEBAIHN0YXRpYyB2b2lkIF9f aHdkb21faW5pdCBpbnRlbF9pb21tdV9od2QKICAgICB9CiB9CiAKKy8qCisg KiBUaGlzIGZ1bmN0aW9uIHJldHVybnMKKyAqIC0gYSBuZWdhdGl2ZSBlcnJu byB2YWx1ZSB1cG9uIGVycm9yLAorICogLSB6ZXJvIHVwb24gc3VjY2VzcyB3 aGVuIHByZXZpb3VzbHkgdGhlIGVudHJ5IHdhcyBub24tcHJlc2VudCwgb3Ig dGhpcyBpc24ndAorICogICB0aGUgIm1haW4iIHJlcXVlc3QgZm9yIGEgZGV2 aWNlIChwZGV2ID09IE5VTEwpLCBvciBmb3Igbm8tb3AgcXVhcmFudGluaW5n CisgKiAgIGFzc2lnbm1lbnRzLAorICogLSBwb3NpdGl2ZSAob25lKSB1cG9u IHN1Y2Nlc3Mgd2hlbiBwcmV2aW91c2x5IHRoZSBlbnRyeSB3YXMgcHJlc2Vu dCBhbmQgdGhpcworICogICBpcyB0aGUgIm1haW4iIHJlcXVlc3QgZm9yIGEg ZGV2aWNlIChwZGV2ICE9IE5VTEwpLgorICovCiBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoCiAgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLAog ICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAotICAgIHU4IGJ1cywgdTgg ZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQorICAgIHVpbnQ4 X3QgYnVzLCB1aW50OF90IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldiwKKyAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICBzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21haW4pOwotICAgIHN0 cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4dF9lbnRyaWVz OworICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4 dF9lbnRyaWVzLCBsY3R4dDsKKyAgICBfX3VpbnQxMjhfdCBvbGQ7CiAgICAg dTY0IG1hZGRyLCBwZ2RfbWFkZHI7Ci0gICAgdTE2IHNlZyA9IGlvbW11LT5k cmhkLT5zZWdtZW50OworICAgIHVpbnQxNl90IHNlZyA9IGlvbW11LT5kcmhk LT5zZWdtZW50LCBwcmV2X2RpZCA9IDA7CisgICAgc3RydWN0IGRvbWFpbiAq cHJldl9kb20gPSBOVUxMOwogICAgIGludCBhZ2F3LCByYywgcmV0OwogICAg IGJvb2xfdCBmbHVzaF9kZXZfaW90bGI7CiAKQEAgLTEzNjcsMTcgKzEzODAs MzIgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIG1h ZGRyID0gYnVzX3RvX2NvbnRleHRfbWFkZHIoaW9tbXUsIGJ1cyk7CiAgICAg Y29udGV4dF9lbnRyaWVzID0gKHN0cnVjdCBjb250ZXh0X2VudHJ5ICopbWFw X3Z0ZF9kb21haW5fcGFnZShtYWRkcik7CiAgICAgY29udGV4dCA9ICZjb250 ZXh0X2VudHJpZXNbZGV2Zm5dOworICAgIG9sZCA9IChsY3R4dCA9ICpjb250 ZXh0KS5mdWxsOwogCi0gICAgaWYgKCBjb250ZXh0X3ByZXNlbnQoKmNvbnRl eHQpICkKKyAgICBpZiAoIGNvbnRleHRfcHJlc2VudChsY3R4dCkgKQogICAg IHsKLSAgICAgICAgc3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKLSAgICAg ICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7Ci0g ICAgICAgIHJldHVybiAwOworICAgICAgICBkb21pZF90IGRvbWlkOworCisg ICAgICAgIHByZXZfZGlkID0gY29udGV4dF9kb21haW5faWQobGN0eHQpOwor ICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbcHJldl9kaWRdOwor ICAgICAgICBpZiAoIGRvbWlkIDwgRE9NSURfRklSU1RfUkVTRVJWRUQgKQor ICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW5fYnlfaWQo ZG9taWQpOworICAgICAgICBlbHNlIGlmICggZG9taWQgPT0gRE9NSURfSU8g KQorICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW4oZG9t X2lvKTsKKyAgICAgICAgaWYgKCAhcHJldl9kb20gKQorICAgICAgICB7Cisg ICAgICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOworICAgICAg ICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7 CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRyBWVERQUkVGSVgs CisgICAgICAgICAgICAgICAgICAgICJubyBkb21haW4gZm9yIGRpZCAldSAo bnJfZG9tICV1KVxuIiwKKyAgICAgICAgICAgICAgICAgICAgcHJldl9kaWQs IGNhcF9uZG9tcyhpb21tdS0+Y2FwKSk7CisgICAgICAgICAgICByZXR1cm4g LUVTUkNIOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCBpb21tdV9o d2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9tYWlu KSApCiAgICAgewotICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90 eXBlKCpjb250ZXh0LCBDT05URVhUX1RUX1BBU1NfVEhSVSk7CisgICAgICAg IGNvbnRleHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUobGN0eHQsIENPTlRFWFRf VFRfUEFTU19USFJVKTsKICAgICAgICAgYWdhdyA9IGxldmVsX3RvX2FnYXco aW9tbXUtPm5yX3B0X2xldmVscyk7CiAgICAgfQogICAgIGVsc2UKQEAgLTEz OTQsNiArMTQyMiw4IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29u ZSgKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaW9t bXUtPmxvY2spOwogICAgICAgICAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5f cGFnZShjb250ZXh0X2VudHJpZXMpOworICAgICAgICAgICAgICAgIGlmICgg cHJldl9kb20gKQorICAgICAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2Rv bWFpbihwcmV2X2RvbSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE0MTEsMzMgKzE0 NDEsMTAyIEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAg ICAgICAgICAgICAgICBnb3RvIG5vbWVtOwogICAgICAgICB9CiAKLSAgICAg ICAgY29udGV4dF9zZXRfYWRkcmVzc19yb290KCpjb250ZXh0LCBwZ2RfbWFk ZHIpOworICAgICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3Jvb3QobGN0eHQs IHBnZF9tYWRkcik7CiAgICAgICAgIGlmICggYXRzX2VuYWJsZWQgJiYgZWNh cF9kZXZfaW90bGIoaW9tbXUtPmVjYXApICkKLSAgICAgICAgICAgIGNvbnRl eHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRf REVWX0lPVExCKTsKKyAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0 aW9uX3R5cGUobGN0eHQsIENPTlRFWFRfVFRfREVWX0lPVExCKTsKICAgICAg ICAgZWxzZQotICAgICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25f dHlwZSgqY29udGV4dCwgQ09OVEVYVF9UVF9NVUxUSV9MRVZFTCk7CisgICAg ICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBD T05URVhUX1RUX01VTFRJX0xFVkVMKTsKIAogICAgICAgICBzcGluX3VubG9j aygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICB9CiAKLSAgICBpZiAo IGNvbnRleHRfc2V0X2RvbWFpbl9pZChjb250ZXh0LCBkb21haW4sIGlvbW11 KSApCisgICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5faWQoJmxjdHh0LCBk b21haW4sIGlvbW11KTsKKyAgICBpZiAoIHJjICkKICAgICB7CisgICAgdW5s b2NrOgogICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwogICAg ICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsK LSAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAgIGlmICggcHJldl9k b20gKQorICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4ocHJldl9kb20p OworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgICAgaWYgKCAhcHJl dl9kb20gKQorICAgIHsKKyAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc193 aWR0aChsY3R4dCwgYWdhdyk7CisgICAgICAgIGNvbnRleHRfc2V0X2ZhdWx0 X2VuYWJsZShsY3R4dCk7CisgICAgICAgIGNvbnRleHRfc2V0X3ByZXNlbnQo bGN0eHQpOworICAgIH0KKyAgICBlbHNlIGlmICggcHJldl9kb20gPT0gZG9t YWluICkKKyAgICB7CisgICAgICAgIEFTU0VSVChsY3R4dC5mdWxsID09IGNv bnRleHQtPmZ1bGwpOworICAgICAgICByYyA9ICEhcGRldjsKKyAgICAgICAg Z290byB1bmxvY2s7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAg IEFTU0VSVChjb250ZXh0X2FkZHJlc3Nfd2lkdGgobGN0eHQpID09IGFnYXcp OworICAgICAgICBBU1NFUlQoIWNvbnRleHRfZmF1bHRfZGlzYWJsZShsY3R4 dCkpOworICAgIH0KKworICAgIGlmICggY3B1X2hhc19jeDE2ICkKKyAgICB7 CisgICAgICAgIF9fdWludDEyOF90IHJlcyA9IGNtcHhjaGcxNmIoY29udGV4 dCwgJm9sZCwgJmxjdHh0LmZ1bGwpOworCisgICAgICAgIC8qCisgICAgICAg ICAqIEhhcmR3YXJlIGRvZXMgbm90IHVwZGF0ZSB0aGUgY29udGV4dCBlbnRy eSBiZWhpbmQgb3VyIGJhY2tzLAorICAgICAgICAgKiBzbyB0aGUgcmV0dXJu IHZhbHVlIHNob3VsZCBtYXRjaCAib2xkIi4KKyAgICAgICAgICovCisgICAg ICAgIGlmICggcmVzICE9IG9sZCApCisgICAgICAgIHsKKyAgICAgICAgICAg IGlmICggcGRldiApCisgICAgICAgICAgICAgICAgY2hlY2tfY2xlYW51cF9k b21pZF9tYXAoZG9tYWluLCBwZGV2LCBpb21tdSk7CisgICAgICAgICAgICBw cmludGsoWEVOTE9HX0VSUgorICAgICAgICAgICAgICAgICAgICIlMDR4OiUw Mng6JTAyeC4ldTogdW5leHBlY3RlZCBjb250ZXh0IGVudHJ5ICUwMTZseF8l MDE2bHggKGV4cGVjdGVkICUwMTZseF8lMDE2bHgpXG4iLAorICAgICAgICAg ICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSwKKyAgICAgICAgICAgICAgICAgICAodWlu dDY0X3QpKHJlcyA+PiA2NCksICh1aW50NjRfdClyZXMsCisgICAgICAgICAg ICAgICAgICAgKHVpbnQ2NF90KShvbGQgPj4gNjQpLCAodWludDY0X3Qpb2xk KTsKKyAgICAgICAgICAgIHJjID0gLUVJTFNFUTsKKyAgICAgICAgICAgIGdv dG8gdW5sb2NrOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKCAh cHJldl9kb20gfHwgIShtb2RlICYgTUFQX1dJVEhfUk1SUikgKQorICAgIHsK KyAgICAgICAgY29udGV4dF9jbGVhcl9wcmVzZW50KCpjb250ZXh0KTsKKyAg ICAgICAgaW9tbXVfc3luY19jYWNoZShjb250ZXh0LCBzaXplb2YoKmNvbnRl eHQpKTsKKworICAgICAgICB3cml0ZV9hdG9taWMoJmNvbnRleHQtPmhpLCBs Y3R4dC5oaSk7CisgICAgICAgIC8qIE5vIGJhcnJpZXIgc2hvdWxkIGJlIG5l ZWRlZCBiZXR3ZWVuIHRoZXNlIHR3by4gKi8KKyAgICAgICAgd3JpdGVfYXRv bWljKCZjb250ZXh0LT5sbywgbGN0eHQubG8pOworICAgIH0KKyAgICBlbHNl IC8qIEJlc3QgZWZmb3J0LCB1cGRhdGluZyBESUQgbGFzdC4gKi8KKyAgICB7 CisgICAgICAgICAvKgorICAgICAgICAgICogQnkgbm9uLWF0b21pY2FsbHkg dXBkYXRpbmcgdGhlIGNvbnRleHQgZW50cnkncyBESUQgZmllbGQgbGFzdCwK KyAgICAgICAgICAqIGR1cmluZyBhIHNob3J0IHdpbmRvdyBpbiB0aW1lIFRM QiBlbnRyaWVzIHdpdGggdGhlIG9sZCBkb21haW4gSUQKKyAgICAgICAgICAq IGJ1dCB0aGUgbmV3IHBhZ2UgdGFibGVzIG1heSBiZSBpbnNlcnRlZC4gIFRo aXMgY291bGQgYWZmZWN0IEkvTworICAgICAgICAgICogb2Ygb3RoZXIgZGV2 aWNlcyB1c2luZyB0aGlzIHNhbWUgKG9sZCkgZG9tYWluIElELiAgU3VjaCB1 cGRhdGluZworICAgICAgICAgICogdGhlcmVmb3JlIGlzIG5vdCBhIHByb2Js ZW0gaWYgdGhpcyB3YXMgdGhlIG9ubHkgZGV2aWNlIGFzc29jaWF0ZWQKKyAg ICAgICAgICAqIHdpdGggdGhlIG9sZCBkb21haW4gSUQuICBEaXZlcnRpbmcg SS9PIG9mIGFueSBvZiBhIGR5aW5nIGRvbWFpbidzCisgICAgICAgICAgKiBk ZXZpY2VzIHRvIHRoZSBxdWFyYW50aW5lIHBhZ2UgdGFibGVzIGlzIGludGVu ZGVkIGFueXdheS4KKyAgICAgICAgICAqLworICAgICAgICBpZiAoICEobW9k ZSAmIChNQVBfT1dORVJfRFlJTkcgfCBNQVBfU0lOR0xFX0RFVklDRSkpICkK KyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgK KyAgICAgICAgICAgICAgICAgICAiICUwNHg6JTAyeDolMDJ4LiV1OiByZWFz c2lnbm1lbnQgbWF5IGNhdXNlICVwZCBkYXRhIGNvcnJ1cHRpb25cbiIsCisg ICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwg UENJX0ZVTkMoZGV2Zm4pLCBwcmV2X2RvbSk7CisKKyAgICAgICAgd3JpdGVf YXRvbWljKCZjb250ZXh0LT5sbywgbGN0eHQubG8pOworICAgICAgICAvKiBO byBiYXJyaWVyIHNob3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVzZSB0d28u ICovCisgICAgICAgIHdyaXRlX2F0b21pYygmY29udGV4dC0+aGksIGxjdHh0 LmhpKTsKICAgICB9CiAKLSAgICBjb250ZXh0X3NldF9hZGRyZXNzX3dpZHRo KCpjb250ZXh0LCBhZ2F3KTsKLSAgICBjb250ZXh0X3NldF9mYXVsdF9lbmFi bGUoKmNvbnRleHQpOwotICAgIGNvbnRleHRfc2V0X3ByZXNlbnQoKmNvbnRl eHQpOwogICAgIGlvbW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6ZW9mKHN0 cnVjdCBjb250ZXh0X2VudHJ5KSk7CiAgICAgc3Bpbl91bmxvY2soJmlvbW11 LT5sb2NrKTsKIAotICAgIC8qIENvbnRleHQgZW50cnkgd2FzIHByZXZpb3Vz bHkgbm9uLXByZXNlbnQgKHdpdGggZG9taWQgMCkuICovCi0gICAgcmMgPSBp b21tdV9mbHVzaF9jb250ZXh0X2RldmljZShpb21tdSwgMCwgUENJX0JERjIo YnVzLCBkZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBETUFfQ0NNRF9NQVNLX05PQklULCAxKTsKKyAgICByYyA9IGlvbW11 X2ZsdXNoX2NvbnRleHRfZGV2aWNlKGlvbW11LCBwcmV2X2RpZCwgUENJX0JE RjIoYnVzLCBkZXZmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBETUFfQ0NNRF9NQVNLX05PQklULCAhcHJldl9kb20pOwogICAg IGZsdXNoX2Rldl9pb3RsYiA9ICEhZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUp OwotICAgIHJldCA9IGlvbW11X2ZsdXNoX2lvdGxiX2RzaShpb21tdSwgMCwg MSwgZmx1c2hfZGV2X2lvdGxiKTsKKyAgICByZXQgPSBpb21tdV9mbHVzaF9p b3RsYl9kc2koaW9tbXUsIHByZXZfZGlkLCAhcHJldl9kb20sIGZsdXNoX2Rl dl9pb3RsYik7CiAKICAgICAvKgogICAgICAqIFRoZSBjdXJyZW50IGxvZ2lj IGZvciByZXR1cm5zOgpAQCAtMTQ1OCwxMiArMTU1NywyMSBAQCBpbnQgZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgdW5tYXBfdnRkX2RvbWFp bl9wYWdlKGNvbnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFzZWcgJiYg IXJjICkKLSAgICAgICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVz LCBkZXZmbiwgTUFQX01FX1BIQU5UT01fRlVOQyk7CisgICAgICAgIHJjID0g bWVfd2lmaV9xdWlyayhkb21haW4sIGJ1cywgZGV2Zm4sIG1vZGUpOwogCiAg ICAgaWYgKCByYyApCi0gICAgICAgIGRvbWFpbl9jb250ZXh0X3VubWFwX29u ZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuKTsKKyAgICB7CisgICAgICAg IGlmICggIXByZXZfZG9tICkKKyAgICAgICAgICAgIGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuKTsKKyAgICAg ICAgZWxzZSBpZiAoIHByZXZfZG9tICE9IGRvbWFpbiApIC8qIEF2b2lkIGlu ZmluaXRlIHJlY3Vyc2lvbi4gKi8KKyAgICAgICAgICAgIGRvbWFpbl9jb250 ZXh0X21hcHBpbmdfb25lKHByZXZfZG9tLCBpb21tdSwgYnVzLCBkZXZmbiwg cGRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUgJiBNQVBfV0lUSF9STVJSKTsKKyAgICB9CiAKLSAgICByZXR1cm4g cmM7CisgICAgaWYgKCBwcmV2X2RvbSApCisgICAgICAgIHJjdV91bmxvY2tf ZG9tYWluKHByZXZfZG9tKTsKKworICAgIHJldHVybiByYyA/OiBwZGV2ICYm IHByZXZfZG9tOwogfQogCiBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3Vu bWFwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4X3QgZGV2Zm4sCkBAIC0xNDcz LDggKzE1ODEsMTEgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBw aW5nKHN0cnVjdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogICAgIHN0cnVjdCBhY3BpX2Ry aGRfdW5pdCAqZHJoZDsKKyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3Vu aXQgKnJtcnI7CiAgICAgaW50IHJldCA9IDA7Ci0gICAgdTggc2VnID0gcGRl di0+c2VnLCBidXMgPSBwZGV2LT5idXMsIHNlY2J1czsKKyAgICB1bnNpZ25l ZCBpbnQgaSwgbW9kZSA9IDA7CisgICAgdWludDE2X3Qgc2VnID0gcGRldi0+ c2VnLCBiZGY7CisgICAgdWludDhfdCBidXMgPSBwZGV2LT5idXMsIHNlY2J1 czsKIAogICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQo cGRldik7CiAgICAgaWYgKCAhZHJoZCApCkBAIC0xNDkzLDggKzE2MDQsMjkg QEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAog CiAgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOwogCisgICAgZm9yX2Vh Y2hfcm1ycl9kZXZpY2UoIHJtcnIsIGJkZiwgaSApCisgICAgeworICAgICAg ICBpZiAoIHJtcnItPnNlZ21lbnQgIT0gcGRldi0+c2VnIHx8IGJkZiAhPSBw ZGV2LT5zYmRmLmJkZiApCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg ICAgICBtb2RlIHw9IE1BUF9XSVRIX1JNUlI7CisgICAgICAgIGJyZWFrOwor ICAgIH0KKworICAgIGlmICggZG9tYWluICE9IHBkZXYtPmRvbWFpbiApCisg ICAgeworICAgICAgICBpZiAoIHBkZXYtPmRvbWFpbi0+aXNfZHlpbmcgKQor ICAgICAgICAgICAgbW9kZSB8PSBNQVBfT1dORVJfRFlJTkc7CisgICAgICAg IGVsc2UgaWYgKCBkcmhkICYmCisgICAgICAgICAgICAgICAgICAhYW55X3Bk ZXZfYmVoaW5kX2lvbW11KHBkZXYtPmRvbWFpbiwgcGRldiwgZHJoZC0+aW9t bXUpICYmCisgICAgICAgICAgICAgICAgICAhcGRldi0+cGhhbnRvbV9zdHJp ZGUgKQorICAgICAgICAgICAgbW9kZSB8PSBNQVBfU0lOR0xFX0RFVklDRTsK KyAgICB9CisKICAgICBzd2l0Y2ggKCBwZGV2LT50eXBlICkKICAgICB7Cisg ICAgICAgIGJvb2wgcHJldl9wcmVzZW50OworCiAgICAgY2FzZSBERVZfVFlQ RV9QQ0lfSE9TVF9CUklER0U6CiAgICAgICAgIGlmICggaW9tbXVfZGVidWcg KQogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOkhvc3Ricmlk Z2U6IHNraXAgJTA0eDolMDJ4OiUwMnguJXUgbWFwXG4iLApAQCAtMTUxNSw3 ICsxNjQ3LDkgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5n KHN0cnVjdAogICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lk LCBzZWcsIGJ1cywKICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSk7CiAgICAgICAgIHJldCA9IGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywg ZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBkZXYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZGV2LCBtb2RlKTsKKyAgICAgICAgaWYgKCByZXQgPiAwICkK KyAgICAgICAgICAgIHJldCA9IDA7CiAgICAgICAgIGlmICggIXJldCAmJiBk ZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYsIGRyaGQp ID4gMCApCiAgICAgICAgICAgICBlbmFibGVfYXRzX2RldmljZShwZGV2LCAm ZHJoZC0+aW9tbXUtPmF0c19kZXZpY2VzKTsKIApAQCAtMTUyOCw5ICsxNjYy LDEwIEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1 Y3QKICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZmbiksIFBDSV9G VU5DKGRldmZuKSk7CiAKICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRl dik7Ci0gICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGRldiwgbW9kZSk7CisgICAgICAgIGlm ICggcmV0IDwgMCApCiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgcHJl dl9wcmVzZW50ID0gcmV0OwogCiAgICAgICAgIGlmICggKHJldCA9IGZpbmRf dXBzdHJlYW1fYnJpZGdlKHNlZywgJmJ1cywgJmRldmZuLCAmc2VjYnVzKSkg PCAxICkKICAgICAgICAgewpAQCAtMTUzOCw2ICsxNjczLDE1IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgICAgIHJldCA9IC1FTlhJTzsKICAg ICAgICAgfQorICAgICAgICAvKgorICAgICAgICAgKiBTdHJpY3RseSBzcGVh a2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBvbmx5IG9uZSBiZWhpbmQgdGhp cyBicmlkZ2UKKyAgICAgICAgICogYW5kIHRoZSBvbmx5IG9uZSB3aXRoIHRo aXMgKHNlY2J1cywwLDApIHR1cGxlLCBpdCBjb3VsZCBiZSBhbGxvd2VkCisg ICAgICAgICAqIHRvIGJlIHJlLWFzc2lnbmVkIHJlZ2FyZGxlc3Mgb2YgUk1S UiBwcmVzZW5jZS4gIEJ1dCBsZXQncyBkZWFsIHdpdGgKKyAgICAgICAgICog dGhhdCBjYXNlIG9ubHkgaWYgaXQgaXMgYWN0dWFsbHkgZm91bmQgaW4gdGhl IHdpbGQuCisgICAgICAgICAqLworICAgICAgICBlbHNlIGlmICggcHJldl9w cmVzZW50ICYmIChtb2RlICYgTUFQX1dJVEhfUk1SUikgJiYKKyAgICAgICAg ICAgICAgICAgIGRvbWFpbiAhPSBwZGV2LT5kb21haW4gKQorICAgICAgICAg ICAgcmV0ID0gLUVPUE5PVFNVUFA7CiAKICAgICAgICAgLyoKICAgICAgICAg ICogTWFwcGluZyBhIGJyaWRnZSBzaG91bGQsIGlmIGFueXRoaW5nLCBwYXNz IHRoZSBzdHJ1Y3QgcGNpX2RldiBvZgpAQCAtMTU0Niw3ICsxNjkwLDcgQEAg c3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAg ICAgICAgKi8KICAgICAgICAgaWYgKCByZXQgPj0gMCApCiAgICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRy aGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBtb2RlKTsK IAogICAgICAgICAvKgogICAgICAgICAgKiBEZXZpY2VzIGJlaGluZCBQQ0ll LXRvLVBDSS9QQ0l4IGJyaWRnZSBtYXkgZ2VuZXJhdGUgZGlmZmVyZW50CkBA IC0xNTYxLDEwICsxNzA1LDE1IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYgKCAhcmV0ICYmIHBkZXZf dHlwZShzZWcsIGJ1cywgZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JS SURHRSAmJgogICAgICAgICAgICAgIChzZWNidXMgIT0gcGRldi0+YnVzIHx8 IHBkZXYtPmRldmZuICE9IDApICkKICAgICAgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIHNl Y2J1cywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgbW9kZSk7CiAKICAgICAgICAgaWYg KCByZXQgKQotICAgICAgICAgICAgZG9tYWluX2NvbnRleHRfdW5tYXAoZG9t YWluLCBkZXZmbiwgcGRldik7CisgICAgICAgIHsKKyAgICAgICAgICAgIGlm ICggIXByZXZfcHJlc2VudCApCisgICAgICAgICAgICAgICAgZG9tYWluX2Nv bnRleHRfdW5tYXAoZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgICAgICAg ICBlbHNlIGlmICggcGRldi0+ZG9tYWluICE9IGRvbWFpbiApIC8qIEF2b2lk IGluZmluaXRlIHJlY3Vyc2lvbi4gKi8KKyAgICAgICAgICAgICAgICBkb21h aW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYp OworICAgICAgICB9CiAKICAgICAgICAgYnJlYWs7CiAKQEAgLTIzMzEsOSAr MjQ4MCw4IEBAIHN0YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlX293bmVyc2hp cCgKIHsKICAgICBpbnQgcmV0OwogCi0gICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfdW5tYXAoc291cmNlLCBkZXZmbiwgcGRldik7Ci0gICAgaWYgKCByZXQg KQotICAgICAgICByZXR1cm4gcmV0OworICAgIGlmICggIWhhc19hcmNoX3Bk ZXZzKHRhcmdldCkgKQorICAgICAgICB2bXhfcGlfaG9va3NfYXNzaWduKHRh cmdldCk7CiAKICAgICAvKgogICAgICAqIERldmljZXMgYXNzaWduZWQgdG8g dW50cnVzdGVkIGRvbWFpbnMgKGhlcmUgYXNzdW1lZCB0byBiZSBhbnkgZG9t VSkKQEAgLTIzNDMsNiArMjQ5MSwzMSBAQCBzdGF0aWMgaW50IHJlYXNzaWdu X2RldmljZV9vd25lcnNoaXAoCiAgICAgaWYgKCAodGFyZ2V0ICE9IGhhcmR3 YXJlX2RvbWFpbikgJiYgIWlvbW11X2ludHJlbWFwICkKICAgICAgICAgdW50 cnVzdGVkX21zaSA9IHRydWU7CiAKKyAgICByZXQgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nKHRhcmdldCwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0 ICkKKyAgICB7CisgICAgICAgIGlmICggIWhhc19hcmNoX3BkZXZzKHRhcmdl dCkgKQorICAgICAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWduKHRhcmdl dCk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAgaWYgKCBw ZGV2LT5kZXZmbiA9PSBkZXZmbiApCisgICAgeworICAgICAgICBjb25zdCBz dHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hl ZF9kcmhkX3VuaXQocGRldik7CisKKyAgICAgICAgaWYgKCBkcmhkICkKKyAg ICAgICAgICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFwKHNvdXJjZSwgcGRl diwgZHJoZC0+aW9tbXUpOworICAgIH0KKworICAgIGlmICggZGV2Zm4gPT0g cGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCApCisgICAg eworICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFy Z2V0LT5wZGV2X2xpc3QpOworICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJn ZXQ7CisgICAgfQorCisgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMoc291cmNl KSApCisgICAgICAgIHZteF9waV9ob29rc19kZWFzc2lnbihzb3VyY2UpOwor CiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNlIGJlbG9uZ3MgdG8gdGhl IGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBSTVJSLCBkb24ndAogICAg ICAqIHJlbW92ZSBpdCBmcm9tIHRoZSBoYXJkd2FyZSBkb21haW4sIGJlY2F1 c2UgQklPUyBtYXkgdXNlIFJNUlIgYXQKQEAgLTIzNzEsMzQgKzI1NDQsNyBA QCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAoCiAgICAg ICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5k ZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKLSAgICB7Ci0gICAg ICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZkb21faW8tPnBk ZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9IGRvbV9pbzsKLSAg ICB9Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhzb3VyY2UpICkKLSAg ICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWduKHNvdXJjZSk7Ci0KLSAgICBp ZiAoICFoYXNfYXJjaF9wZGV2cyh0YXJnZXQpICkKLSAgICAgICAgdm14X3Bp X2hvb2tzX2Fzc2lnbih0YXJnZXQpOwotCi0gICAgcmV0ID0gZG9tYWluX2Nv bnRleHRfbWFwcGluZyh0YXJnZXQsIGRldmZuLCBwZGV2KTsKLSAgICBpZiAo IHJldCApCi0gICAgewotICAgICAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0 YXJnZXQpICkKLSAgICAgICAgICAgIHZteF9waV9ob29rc19kZWFzc2lnbih0 YXJnZXQpOwotCi0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQotCi0gICAg aWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0g dGFyZ2V0ICkKLSAgICB7Ci0gICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9t YWluX2xpc3QsICZ0YXJnZXQtPnBkZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYt PmRvbWFpbiA9IHRhcmdldDsKLSAgICB9Ci0KLSAgICByZXR1cm4gcmV0Owor ICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGludGVsX2lvbW11X2Fz c2lnbl9kZXZpY2UoCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9p b21tdS5oCkBAIC0yMDIsOCArMjAyLDEyIEBAIHN0cnVjdCByb290X2VudHJ5 IHsKICAgICBkbyB7KHJvb3QpLnZhbCB8PSAoKHZhbHVlKSAmIFBBR0VfTUFT S180Syk7fSB3aGlsZSgwKQogCiBzdHJ1Y3QgY29udGV4dF9lbnRyeSB7Ci0g ICAgdTY0IGxvOwotICAgIHU2NCBoaTsKKyAgICB1bmlvbiB7CisgICAgICAg IHN0cnVjdCB7CisgICAgICAgICAgICB1aW50NjRfdCBsbywgaGk7CisgICAg ICAgIH07CisgICAgICAgIF9fdWludDEyOF90IGZ1bGw7CisgICAgfTsKIH07 CiAjZGVmaW5lIFJPT1RfRU5UUllfTlIgKFBBR0VfU0laRV80Sy9zaXplb2Yo c3RydWN0IHJvb3RfZW50cnkpKQogI2RlZmluZSBjb250ZXh0X3ByZXNlbnQo YykgKChjKS5sbyAmIDEpCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9xdWlya3MuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvcXVpcmtzLmMKQEAgLTM0Myw3ICszNDMsOCBAQCB2b2lkIF9faW5pdCBw bGF0Zm9ybV9xdWlya3NfaW5pdCh2b2lkKQogICovCiAKIHN0YXRpYyBpbnQg X19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKHN0cnVjdCBk b21haW4gKmRvbWFpbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHUzMiBkZXYsIGludCBtYXApCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAgICAg c3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIHN0cnVjdCBwY2lf ZGV2ICpwZGV2OwpAQCAtMzU0LDkgKzM1NSw5IEBAIHN0YXRpYyBpbnQgX19t dXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2YKICAgICBkcmhkID0gYWNwaV9m aW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwogCiAgICAgLyogbWFwIG9y IHVubWFwIE1FIHBoYW50b20gZnVuY3Rpb24gKi8KLSAgICBpZiAoIG1hcCAp CisgICAgaWYgKCAhKG1vZGUgJiBVTk1BUF9NRV9QSEFOVE9NX0ZVTkMpICkK ICAgICAgICAgcmMgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21h aW4sIGRyaGQtPmlvbW11LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpLCBOVUxMKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVW Rk4oZGV2LCA3KSwgTlVMTCwgbW9kZSk7CiAgICAgZWxzZQogICAgICAgICBy YyA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGRyaGQtPmlv bW11LCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfREVWRk4oZGV2LCA3KSk7CkBAIC0zNjQsNyArMzY1LDggQEAgc3Rh dGljIGludCBfX211c3RfY2hlY2sgbWFwX21lX3BoYW50b21fZgogICAgIHJl dHVybiByYzsKIH0KIAotaW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFp biAqZG9tYWluLCB1OCBidXMsIHU4IGRldmZuLCBpbnQgbWFwKQoraW50IG1l X3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1aW50OF90IGJ1 cywgdWludDhfdCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgIHVuc2lnbmVk IGludCBtb2RlKQogewogICAgIHUzMiBpZDsKICAgICBpbnQgcmMgPSAwOwpA QCAtMzg4LDcgKzM5MCw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBk b21haW4gKmRvbWFpbiwKICAgICAgICAgICAgIGNhc2UgMHg0MjNiODA4NjoK ICAgICAgICAgICAgIGNhc2UgMHg0MjNjODA4NjoKICAgICAgICAgICAgIGNh c2UgMHg0MjNkODA4NjoKLSAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9w aGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMywgbWFwKTsKKyAgICAgICAgICAg ICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMywg bW9kZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBk ZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDE0LDcgKzQx Niw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFp biwKICAgICAgICAgICAgIGNhc2UgMHg0MjM4ODA4NjogICAgICAgIC8qIFB1 bWEgUGVhayAqLwogICAgICAgICAgICAgY2FzZSAweDQyMmI4MDg2OgogICAg ICAgICAgICAgY2FzZSAweDQyMmM4MDg2OgotICAgICAgICAgICAgICAgIHJj ID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAyMiwgbWFwKTsK KyAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9u KGRvbWFpbiwgMjIsIG1vZGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog ICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsK LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z0ZC5oCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dGQuaApAQCAtMjIsOCAr MjIsMTQgQEAKIAogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogCi0jZGVmaW5l IE1BUF9NRV9QSEFOVE9NX0ZVTkMgICAgICAxCi0jZGVmaW5lIFVOTUFQX01F X1BIQU5UT01fRlVOQyAgICAwCisvKgorICogVmFsdWVzIGZvciBkb21haW5f Y29udGV4dF9tYXBwaW5nX29uZSgpJ3MgYW5kIG1lX3dpZmlfcXVpcmsoKSdz ICJtb2RlIgorICogcGFyYW1ldGVycy4KKyAqLworI2RlZmluZSBNQVBfV0lU SF9STVJSICAgICAgICAgKDF1IDw8IDApCisjZGVmaW5lIE1BUF9PV05FUl9E WUlORyAgICAgICAoMXUgPDwgMSkKKyNkZWZpbmUgTUFQX1NJTkdMRV9ERVZJ Q0UgICAgICgxdSA8PCAyKQorI2RlZmluZSBVTk1BUF9NRV9QSEFOVE9NX0ZV TkMgKDF1IDw8IDMpCiAKIC8qIEFsbG93IGZvciBib3RoIElPQVBJQyBhbmQg SU9TQVBJQy4gKi8KICNkZWZpbmUgSU9feEFQSUNfcm91dGVfZW50cnkgSU9f QVBJQ19yb3V0ZV9lbnRyeQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-05.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-05.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IHJlLWFzc2lnbiBkZXZpY2VzIGRpcmVjdGx5CgpEZXZp Y2VzIHdpdGggdW5pdHkgbWFwIHJhbmdlcywgZHVlIHRvIGl0IGJlaW5nIHVu c3BlY2lmaWVkIGhvdy93aGVuCnRoZXNlIG1lbW9yeSByYW5nZXMgbWF5IGdl dCBhY2Nlc3NlZCwgbWF5IG5vdCBiZSBsZWZ0IGRpc2Nvbm5lY3RlZCBmcm9t CnRoZWlyIHVuaXR5IG1hcHBpbmdzIChhcyBsb25nIGFzIGl0J3Mgbm90IGNl cnRhaW4gdGhhdCB0aGUgZGV2aWNlIGhhcwpiZWVuIGZ1bGx5IHF1aWVzY2Vk KS4gSGVuY2UgcmF0aGVyIHRoYW4gdGVhcmluZyBkb3duIHRoZSBvbGQgcm9v dCBwYWdlCnRhYmxlIHBvaW50ZXIgYW5kIHRoZW4gZXN0YWJsaXNoaW5nIHRo ZSBuZXcgb25lLCByZS1hc3NpZ25tZW50IG5lZWRzIHRvCmJlIGRvbmUgaW4g YSBzaW5nbGUgc3RlcC4KClRoaXMgaXMgQ1ZFLTIwMjItMjYzNjAgLyBwYXJ0 IG9mIFhTQS00MDAuCgpSZXBvcnRlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CgpTaW1pbGFybHkgcXVhcmFudGluaW5n IHNjcmF0Y2gtcGFnZSBtb2RlIHJlbGllcyBvbiBwYWdlIHRhYmxlcyB0byBi ZQpjb250aW51b3VzbHkgd2lyZWQgdXAuCgpUbyBhdm9pZCBjb21wbGljYXRp bmcgdGhpbmdzIG1vcmUgdGhhbiBuZWNlc3NhcnksIHRyZWF0IGFsbCBkZXZp Y2VzCm1vc3RseSBlcXVhbGx5LCBpLmUuIHJlZ2FyZGxlc3Mgb2YgdGhlaXIg YXNzb2NpYXRpb24gd2l0aCBhbnkgdW5pdHkgbWFwCnJhbmdlcy4gIFRoZSBt YWluIGRpZmZlcmVuY2UgaXMgd2hlbiBpdCBjb21lcyB0byB1cGRhdGluZyBE VEVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21pYyB3aGVuIHRoZXJlIGFyZSB1 bml0eSBtYXBwaW5ncy4gWWV0IGF0b21pY2l0eSBjYW4gb25seSBiZQphY2hp ZXZlZCB3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBvZiB3aGljaCB3 ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vaW5j bHVkZS9hc20teDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKKysrIGIv eGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vc3ZtL2FtZC1pb21tdS1wcm90by5o CkBAIC03OSw5ICs3OSwxMyBAQCB2b2lkIGFtZF9pb21tdV9zZXRfaW50cmVt YXBfdGFibGUoc3RydWN0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgdm9pZCAqcHRyLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgdmFsaWQp Owotdm9pZCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZShzdHJ1Y3Qg YW1kX2lvbW11X2R0ZSAqZHRlLAotCQkJCSAgIHVpbnQ2NF90IHJvb3RfcHRy LCB1aW50MTZfdCBkb21haW5faWQsCi0JCQkJICAgdWludDhfdCBwYWdpbmdf bW9kZSwgYm9vbCB2YWxpZCk7CisjZGVmaW5lIFNFVF9ST09UX1ZBTElEICAg ICAgICAgICgxdSA8PCAwKQorI2RlZmluZSBTRVRfUk9PVF9XSVRIX1VOSVRZ X01BUCAoMXUgPDwgMSkKK2ludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3Nl dF9yb290X3BhZ2VfdGFibGUoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDY0X3Qgcm9vdF9wdHIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQxNl90IGRvbWFpbl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCBwYWdpbmdfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdz KTsKIHZvaWQgaW9tbXVfZHRlX2FkZF9kZXZpY2VfZW50cnkoc3RydWN0IGFt ZF9pb21tdV9kdGUgKmR0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IGl2cnNfbWFwcGluZ3MgKml2cnNfZGV2KTsK IHZvaWQgaW9tbXVfZHRlX3NldF9ndWVzdF9jcjMoc3RydWN0IGFtZF9pb21t dV9kdGUgKmR0ZSwgdWludDE2X3QgZG9tX2lkLAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC0xMDMsMTAgKzEw Myw2OSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNldF9pb21tdV9wdGVfcHJl c2VuCiAgICAgcmV0dXJuIGZsdXNoX2ZsYWdzOwogfQogCi12b2lkIGFtZF9p b21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKHN0cnVjdCBhbWRfaW9tbXVfZHRl ICpkdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5faWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcGFnaW5nX21v ZGUsIGJvb2wgdmFsaWQpCisvKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5z CisgKiAtIC1lcnJubyBmb3IgZXJyb3JzLAorICogLSAwIGZvciBhIHN1Y2Nl c3NmdWwgdXBkYXRlLCBhdG9taWMgd2hlbiBuZWNlc3NhcnkKKyAqIC0gMSBm b3IgYSBzdWNjZXNzZnVsIGJ1dCBub24tYXRvbWljIHVwZGF0ZSwgd2hpY2gg bWF5IG5lZWQgdG8gYmUgd2FybmVkCisgKiAgIGFib3V0IGJ5IHRoZSBjYWxs ZXIuCisgKi8KK2ludCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZShz dHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBk b21haW5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDhfdCBwYWdpbmdfbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQogewor ICAgIGJvb2wgdmFsaWQgPSBmbGFncyAmIFNFVF9ST09UX1ZBTElEOworCisg ICAgaWYgKCBkdGUtPnYgJiYgZHRlLT50diAmJgorICAgICAgICAgKGNwdV9o YXNfY3gxNiB8fCAoZmxhZ3MgJiBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCkp ICkKKyAgICB7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVj dCBhbWRfaW9tbXVfZHRlIGR0ZTsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJh dzY0WzRdOworICAgICAgICAgICAgX191aW50MTI4X3QgcmF3MTI4WzJdOwor ICAgICAgICB9IGxkdGUgPSB7IC5kdGUgPSAqZHRlIH07CisgICAgICAgIF9f dWludDEyOF90IG9sZCA9IGxkdGUucmF3MTI4WzBdOworICAgICAgICBpbnQg cmV0ID0gMDsKKworICAgICAgICBsZHRlLmR0ZS5kb21haW5faWQgPSBkb21h aW5faWQ7CisgICAgICAgIGxkdGUuZHRlLnB0X3Jvb3QgPSBwYWRkcl90b19w Zm4ocm9vdF9wdHIpOworICAgICAgICBsZHRlLmR0ZS5pdyA9IHRydWU7Cisg ICAgICAgIGxkdGUuZHRlLmlyID0gdHJ1ZTsKKyAgICAgICAgbGR0ZS5kdGUu cGFnaW5nX21vZGUgPSBwYWdpbmdfbW9kZTsKKyAgICAgICAgbGR0ZS5kdGUu diA9IHZhbGlkOworCisgICAgICAgIGlmICggY3B1X2hhc19jeDE2ICkKKyAg ICAgICAgeworICAgICAgICAgICAgX191aW50MTI4X3QgcmVzID0gY21weGNo ZzE2YihkdGUsICZvbGQsICZsZHRlLnJhdzEyOFswXSk7CisKKyAgICAgICAg ICAgIC8qCisgICAgICAgICAgICAgKiBIYXJkd2FyZSBkb2VzIG5vdCB1cGRh dGUgdGhlIERURSBiZWhpbmQgb3VyIGJhY2tzLCBzbyB0aGUKKyAgICAgICAg ICAgICAqIHJldHVybiB2YWx1ZSBzaG91bGQgbWF0Y2ggIm9sZCIuCisgICAg ICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICggcmVzICE9IG9sZCApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIKKyAgICAgICAgICAgICAgICAgICAgICAgIkRvbSVkOiB1bmV4cGVjdGVk IERURSAlMDE2bHhfJTAxNmx4IChleHBlY3RlZCAlMDE2bHhfJTAxNmx4KVxu IiwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAodWludDY0X3QpKHJlcyA+PiA2NCksICh1aW50 NjRfdClyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCko b2xkID4+IDY0KSwgKHVpbnQ2NF90KW9sZCk7CisgICAgICAgICAgICAgICAg cmV0ID0gLUVJTFNFUTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg ICAgICBlbHNlIC8qIEJlc3QgZWZmb3J0LCB1cGRhdGluZyBkb21haW5faWQg bGFzdC4gKi8KKyAgICAgICAgeworICAgICAgICAgICAgdWludDY0X3QgKnB0 ciA9ICh2b2lkICopZHRlOworCisgICAgICAgICAgICB3cml0ZV9hdG9taWMo cHRyICsgMCwgbGR0ZS5yYXc2NFswXSk7CisgICAgICAgICAgICAvKiBObyBi YXJyaWVyIHNob3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVzZSB0d28uICov CisgICAgICAgICAgICB3cml0ZV9hdG9taWMocHRyICsgMSwgbGR0ZS5yYXc2 NFsxXSk7CisKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgIH0KKwor ICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKwogICAgIGlmICggdmFsaWQg fHwgZHRlLT52ICkKICAgICB7CiAgICAgICAgIGR0ZS0+dHYgPSBmYWxzZTsK QEAgLTEyMSw2ICsxODAsOCBAQCB2b2lkIGFtZF9pb21tdV9zZXRfcm9vdF9w YWdlX3RhYmxlKHN0cnVjCiAgICAgc21wX3dtYigpOwogICAgIGR0ZS0+dHYg PSB0cnVlOwogICAgIGR0ZS0+diA9IHZhbGlkOworCisgICAgcmV0dXJuIDA7 CiB9CiAKIHZvaWQgYW1kX2lvbW11X3NldF9pbnRyZW1hcF90YWJsZSgKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9p b21tdS5jCkBAIC04NSw0MCArODUsODEgQEAgaW50IGdldF9kbWFfcmVxdWVz dG9yX2lkKHVpbnQxNl90IHNlZywgdQogICAgIHJldHVybiByZXFfaWQ7CiB9 CiAKLXN0YXRpYyB2b2lkIGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNl KAorc3RhdGljIGludCBfX211c3RfY2hlY2sgYWxsb2NhdGVfZG9tYWluX3Jl c291cmNlcyhzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKK3sKKyAgICBpbnQg cmM7CisKKyAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7 CisgICAgcmMgPSBhbWRfaW9tbXVfYWxsb2Nfcm9vdChoZCk7CisgICAgc3Bp bl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisKKyAgICByZXR1 cm4gcmM7Cit9CisKK3N0YXRpYyBib29sIGFueV9wZGV2X2JlaGluZF9pb21t dShjb25zdCBzdHJ1Y3QgZG9tYWluICpkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpleGNsdWRl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBhbWRfaW9tbXUgKmlvbW11KQoreworICAgIGNvbnN0IHN0cnVjdCBw Y2lfZGV2ICpwZGV2OworCisgICAgZm9yX2VhY2hfcGRldiAoIGQsIHBkZXYg KQorICAgIHsKKyAgICAgICAgaWYgKCBwZGV2ID09IGV4Y2x1ZGUgKQorICAg ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKCBmaW5kX2lvbW11 X2Zvcl9kZXZpY2UocGRldi0+c2VnLCBwZGV2LT5zYmRmLmJkZikgPT0gaW9t bXUgKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAg cmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBh bWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKICAgICBzdHJ1Y3QgZG9t YWluICpkb21haW4sIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAogICAgIHVp bnQ4X3QgZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewogICAgIHN0 cnVjdCBhbWRfaW9tbXVfZHRlICp0YWJsZSwgKmR0ZTsKICAgICB1bnNpZ25l ZCBsb25nIGZsYWdzOwotICAgIGludCByZXFfaWQsIHZhbGlkID0gMTsKKyAg ICB1bnNpZ25lZCBpbnQgcmVxX2lkLCBzcl9mbGFnczsKKyAgICBpbnQgcmM7 CiAgICAgdTggYnVzID0gcGRldi0+YnVzOwotICAgIGNvbnN0IHN0cnVjdCBk b21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbWFpbik7CisgICAgc3Ry dWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tYWluKTsKKyAg ICBjb25zdCBzdHJ1Y3QgaXZyc19tYXBwaW5ncyAqaXZyc19kZXY7CiAKLSAg ICBCVUdfT04oICFoZC0+YXJjaC5yb290X3RhYmxlIHx8ICFoZC0+YXJjaC5w YWdpbmdfbW9kZSB8fAotICAgICAgICAgICAgIWlvbW11LT5kZXZfdGFibGUu YnVmZmVyICk7CisgICAgQlVHX09OKCFoZC0+YXJjaC5wYWdpbmdfbW9kZSB8 fCAhaW9tbXUtPmRldl90YWJsZS5idWZmZXIpOwogCi0gICAgaWYgKCBpb21t dV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9t YWluKSApCi0gICAgICAgIHZhbGlkID0gMDsKKyAgICByYyA9IGFsbG9jYXRl X2RvbWFpbl9yZXNvdXJjZXMoaGQpOworICAgIGlmICggcmMgKQorICAgICAg ICByZXR1cm4gcmM7CisKKyAgICByZXFfaWQgPSBnZXRfZG1hX3JlcXVlc3Rv cl9pZChpb21tdS0+c2VnLCBwZGV2LT5zYmRmLmJkZik7CisgICAgaXZyc19k ZXYgPSAmZ2V0X2l2cnNfbWFwcGluZ3MoaW9tbXUtPnNlZylbcmVxX2lkXTsK KyAgICBzcl9mbGFncyA9IChpb21tdV9od2RvbV9wYXNzdGhyb3VnaCAmJiBp c19oYXJkd2FyZV9kb21haW4oZG9tYWluKQorICAgICAgICAgICAgICAgID8g MCA6IFNFVF9ST09UX1ZBTElEKQorICAgICAgICAgICAgICAgfCAoaXZyc19k ZXYtPnVuaXR5X21hcCA/IFNFVF9ST09UX1dJVEhfVU5JVFlfTUFQIDogMCk7 CiAKICAgICAvKiBnZXQgZGV2aWNlLXRhYmxlIGVudHJ5ICovCiAgICAgcmVx X2lkID0gZ2V0X2RtYV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgUENJX0JE RjIoYnVzLCBkZXZmbikpOwogICAgIHRhYmxlID0gaW9tbXUtPmRldl90YWJs ZS5idWZmZXI7CiAgICAgZHRlID0gJnRhYmxlW3JlcV9pZF07CisgICAgaXZy c19kZXYgPSAmZ2V0X2l2cnNfbWFwcGluZ3MoaW9tbXUtPnNlZylbcmVxX2lk XTsKIAogICAgIHNwaW5fbG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxh Z3MpOwogCiAgICAgaWYgKCAhZHRlLT52IHx8ICFkdGUtPnR2ICkKICAgICB7 Ci0gICAgICAgIGNvbnN0IHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX2Rl djsKLQogICAgICAgICAvKiBiaW5kIERURSB0byBkb21haW4gcGFnZS10YWJs ZXMgKi8KLSAgICAgICAgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUo Ci0gICAgICAgICAgICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2gucm9v dF90YWJsZSksIGRvbWFpbi0+ZG9tYWluX2lkLAotICAgICAgICAgICAgaGQt PmFyY2gucGFnaW5nX21vZGUsIHZhbGlkKTsKKyAgICAgICAgcmMgPSBhbWRf aW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgKKyAgICAgICAgICAgICAgICAg ZHRlLCBwYWdlX3RvX21hZGRyKGhkLT5hcmNoLnJvb3RfdGFibGUpLAorICAg ICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2gucGFn aW5nX21vZGUsIHNyX2ZsYWdzKTsKKyAgICAgICAgaWYgKCByYyApCisgICAg ICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChyYyA8IDApOworICAgICAgICAg ICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdz KTsKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAgICAgfQogCiAgICAg ICAgIC8qIFVuZG8gd2hhdCBhbWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2 aWNlKCkgbWF5IGhhdmUgZG9uZS4gKi8KLSAgICAgICAgaXZyc19kZXYgPSAm Z2V0X2l2cnNfbWFwcGluZ3MoaW9tbXUtPnNlZylbcmVxX2lkXTsKICAgICAg ICAgaWYgKCBkdGUtPml0X3Jvb3QgKQogICAgICAgICB7CiAgICAgICAgICAg ICBkdGUtPmludF9jdGwgPSBJT01NVV9ERVZfVEFCTEVfSU5UX0NPTlRST0xf VFJBTlNMQVRFRDsKQEAgLTEzMywxNyArMTc0LDc0IEBAIHN0YXRpYyB2b2lk IGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWMKICAgICAgICAgICAgIGR0 ZS0+aSA9IGF0c19lbmFibGVkOwogCiAgICAgICAgIGFtZF9pb21tdV9mbHVz aF9kZXZpY2UoaW9tbXUsIHJlcV9pZCk7CisgICAgfQorICAgIGVsc2UgaWYg KCBkdGUtPnB0X3Jvb3QgIT0gbWZuX3gocGFnZV90b19tZm4oaGQtPmFyY2gu cm9vdF90YWJsZSkpICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAq IFN0cmljdGx5IHNwZWFraW5nIGlmIHRoZSBkZXZpY2UgaXMgdGhlIG9ubHkg b25lIHdpdGggdGhpcyByZXF1ZXN0b3IKKyAgICAgICAgICogSUQsIGl0IGNv dWxkIGJlIGFsbG93ZWQgdG8gYmUgcmUtYXNzaWduZWQgcmVnYXJkbGVzcyBv ZiB1bml0eSBtYXAKKyAgICAgICAgICogcHJlc2VuY2UuICBCdXQgbGV0J3Mg ZGVhbCB3aXRoIHRoYXQgY2FzZSBvbmx5IGlmIGl0IGlzIGFjdHVhbGx5Cisg ICAgICAgICAqIGZvdW5kIGluIHRoZSB3aWxkLgorICAgICAgICAgKi8KKyAg ICAgICAgaWYgKCByZXFfaWQgIT0gUENJX0JERjIoYnVzLCBkZXZmbikgJiYK KyAgICAgICAgICAgICAoc3JfZmxhZ3MgJiBTRVRfUk9PVF9XSVRIX1VOSVRZ X01BUCkgKQorICAgICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKKyAgICAg ICAgZWxzZQorICAgICAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3Rf cGFnZV90YWJsZSgKKyAgICAgICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90 b19tYWRkcihoZC0+YXJjaC5yb290X3RhYmxlKSwKKyAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5wYWdpbmdfbW9k ZSwgc3JfZmxhZ3MpOworICAgICAgICBpZiAoIHJjIDwgMCApCisgICAgICAg IHsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11 LT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICByZXR1cm4gcmM7CisgICAg ICAgIH0KKyAgICAgICAgaWYgKCByYyAmJgorICAgICAgICAgICAgIGRvbWFp biAhPSBwZGV2LT5kb21haW4gJiYKKyAgICAgICAgICAgICAvKgorICAgICAg ICAgICAgICAqIEJ5IG5vbi1hdG9taWNhbGx5IHVwZGF0aW5nIHRoZSBEVEUn cyBkb21haW4gSUQgZmllbGQgbGFzdCwKKyAgICAgICAgICAgICAgKiBkdXJp bmcgYSBzaG9ydCB3aW5kb3cgaW4gdGltZSBUTEIgZW50cmllcyB3aXRoIHRo ZSBvbGQgZG9tYWluCisgICAgICAgICAgICAgICogSUQgYnV0IHRoZSBuZXcg cGFnZSB0YWJsZXMgbWF5IGhhdmUgYmVlbiBpbnNlcnRlZC4gIFRoaXMgY291 bGQKKyAgICAgICAgICAgICAgKiBhZmZlY3QgSS9PIG9mIG90aGVyIGRldmlj ZXMgdXNpbmcgdGhpcyBzYW1lIChvbGQpIGRvbWFpbiBJRC4KKyAgICAgICAg ICAgICAgKiBTdWNoIHVwZGF0aW5nIHRoZXJlZm9yZSBpcyBub3QgYSBwcm9i bGVtIGlmIHRoaXMgd2FzIHRoZSBvbmx5CisgICAgICAgICAgICAgICogZGV2 aWNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgb2xkIGRvbWFpbiBJRC4gIERpdmVy dGluZyBJL08gb2YgYW55CisgICAgICAgICAgICAgICogb2YgYSBkeWluZyBk b21haW4ncyBkZXZpY2VzIHRvIHRoZSBxdWFyYW50aW5lIHBhZ2UgdGFibGVz IGlzCisgICAgICAgICAgICAgICogaW50ZW5kZWQgYW55d2F5LgorICAgICAg ICAgICAgICAqLworICAgICAgICAgICAgICFwZGV2LT5kb21haW4tPmlzX2R5 aW5nICYmCisgICAgICAgICAgICAgKGFueV9wZGV2X2JlaGluZF9pb21tdShw ZGV2LT5kb21haW4sIHBkZXYsIGlvbW11KSB8fAorICAgICAgICAgICAgICBw ZGV2LT5waGFudG9tX3N0cmlkZSkgKQorICAgICAgICAgICAgcHJpbnRrKCIg JTA0eDolMDJ4OiUwMnguJXU6IHJlYXNzaWdubWVudCBtYXkgY2F1c2UgJXBk IGRhdGEgY29ycnVwdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICBwZGV2 LT5zZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiks CisgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluKTsKKworICAgICAg ICAvKgorICAgICAgICAgKiBDaGVjayByZW1haW5pbmcgc2V0dGluZ3MgYXJl IHN0aWxsIGluIHBsYWNlIGZyb20gYW4gZWFybGllciBjYWxsCisgICAgICAg ICAqIGhlcmUuIFRoZXkncmUgYWxsIGluZGVwZW5kZW50IG9mIHRoZSBkb21h aW4sIHNvIHNob3VsZCBub3QgaGF2ZQorICAgICAgICAgKiBjaGFuZ2VkLgor ICAgICAgICAgKi8KKyAgICAgICAgaWYgKCBkdGUtPml0X3Jvb3QgKQorICAg ICAgICAgICAgQVNTRVJUKGR0ZS0+aW50X2N0bCA9PSBJT01NVV9ERVZfVEFC TEVfSU5UX0NPTlRST0xfVFJBTlNMQVRFRCk7CisgICAgICAgIEFTU0VSVChk dGUtPml2ID09IGlvbW11X2ludHJlbWFwKTsKKyAgICAgICAgQVNTRVJUKGR0 ZS0+ZXggPT0gaXZyc19kZXYtPmR0ZV9hbGxvd19leGNsdXNpb24pOworICAg ICAgICBBU1NFUlQoZHRlLT5zeXNfbWd0ID09IE1BU0tfRVhUUihpdnJzX2Rl di0+ZGV2aWNlX2ZsYWdzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBBQ1BJX0lWSERfU1lTVEVNX01HTVQpKTsKIAotICAg ICAgICBBTURfSU9NTVVfREVCVUcoIlNldHVwIEkvTyBwYWdlIHRhYmxlOiBk ZXZpY2UgaWQgPSAlI3gsIHR5cGUgPSAlI3gsICIKLSAgICAgICAgICAgICAg ICAgICAgICAgICJyb290IHRhYmxlID0gJSMiUFJJeDY0IiwgIgotICAgICAg ICAgICAgICAgICAgICAgICAgImRvbWFpbiA9ICVkLCBwYWdpbmcgbW9kZSA9 ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVxX2lkLCBwZGV2 LT50eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV90b19tYWRk cihoZC0+YXJjaC5yb290X3RhYmxlKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSk7 CisgICAgICAgIGlmICggcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNlZywgYnVz LCBwZGV2LT5kZXZmbikgJiYKKyAgICAgICAgICAgICBpb21tdV9oYXNfY2Fw KGlvbW11LCBQQ0lfQ0FQX0lPVExCX1NISUZUKSApCisgICAgICAgICAgICBB U1NFUlQoZHRlLT5pID09IGF0c19lbmFibGVkKTsKKworICAgICAgICBhbWRf aW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFfaWQpOwogICAgIH0KIAog ICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFn cyk7CiAKKyAgICBBTURfSU9NTVVfREVCVUcoIlNldHVwIEkvTyBwYWdlIHRh YmxlOiBkZXZpY2UgaWQgPSAlI3gsIHR5cGUgPSAlI3gsICIKKyAgICAgICAg ICAgICAgICAgICAgInJvb3QgdGFibGUgPSAlIyJQUkl4NjQiLCAiCisgICAg ICAgICAgICAgICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAl ZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgcmVxX2lkLCBwZGV2LT50eXBl LAorICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21hZGRyKGhkLT5hcmNo LnJvb3RfdGFibGUpLAorICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCwgaGQtPmFyY2gucGFnaW5nX21vZGUpOworCiAgICAgQVNTRVJU KHBjaWRldnNfbG9ja2VkKCkpOwogCiAgICAgaWYgKCBwY2lfYXRzX2Rldmlj ZShpb21tdS0+c2VnLCBidXMsIHBkZXYtPmRldmZuKSAmJgpAQCAtMTU0LDYg KzI1Miw4IEBAIHN0YXRpYyB2b2lkIGFtZF9pb21tdV9zZXR1cF9kb21haW5f ZGV2aWMKIAogICAgICAgICBhbWRfaW9tbXVfZmx1c2hfaW90bGIoZGV2Zm4s IHBkZXYsIElOVl9JT01NVV9BTExfUEFHRVNfQUREUkVTUywgMCk7CiAgICAg fQorCisgICAgcmV0dXJuIDA7CiB9CiAKIGludCBfX2luaXQgYWNwaV9pdnJz X2luaXQodm9pZCkKQEAgLTIyMywxNyArMzIzLDYgQEAgaW50IGFtZF9pb21t dV9hbGxvY19yb290KHN0cnVjdCBkb21haW5faQogICAgIHJldHVybiAwOwog fQogCi1zdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbGxvY2F0ZV9kb21haW5f cmVzb3VyY2VzKHN0cnVjdCBkb21haW5faW9tbXUgKmhkKQotewotICAgIGlu dCByYzsKLQotICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2Nr KTsKLSAgICByYyA9IGFtZF9pb21tdV9hbGxvY19yb290KGhkKTsKLSAgICBz cGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLQotICAgIHJl dHVybiByYzsKLX0KLQogaW50IF9fcmVhZF9tb3N0bHkgYW1kX2lvbW11X21p bl9wYWdpbmdfbW9kZSA9IDE7CiAKIHN0YXRpYyBpbnQgYW1kX2lvbW11X2Rv bWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCkBAIC0zMzMsNyArNDIyLDYg QEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbgog ewogICAgIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OwogICAgIGludCBiZGYs IHJjOwotICAgIHN0cnVjdCBkb21haW5faW9tbXUgKnQgPSBkb21faW9tbXUo dGFyZ2V0KTsKICAgICBjb25zdCBzdHJ1Y3QgaXZyc19tYXBwaW5ncyAqaXZy c19tYXBwaW5ncyA9IGdldF9pdnJzX21hcHBpbmdzKHBkZXYtPnNlZyk7CiAK ICAgICBiZGYgPSBQQ0lfQkRGMihwZGV2LT5idXMsIHBkZXYtPmRldmZuKTsK QEAgLTM0Nyw3ICs0MzUsMTUgQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZp Y2Uoc3RydWN0IGRvbWFpbgogICAgICAgICByZXR1cm4gLUVOT0RFVjsKICAg ICB9CiAKLSAgICBhbWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2aWNlKHNv dXJjZSwgaW9tbXUsIGRldmZuLCBwZGV2KTsKKyAgICByYyA9IGFtZF9pb21t dV9zZXR1cF9kb21haW5fZGV2aWNlKHRhcmdldCwgaW9tbXUsIGRldmZuLCBw ZGV2KTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOworCisg ICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4g IT0gdGFyZ2V0ICkKKyAgICB7CisgICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ ZG9tYWluX2xpc3QsICZ0YXJnZXQtPnBkZXZfbGlzdCk7CisgICAgICAgIHBk ZXYtPmRvbWFpbiA9IHRhcmdldDsKKyAgICB9CiAKICAgICAvKgogICAgICAq IElmIHRoZSBkZXZpY2UgYmVsb25ncyB0byB0aGUgaGFyZHdhcmUgZG9tYWlu LCBhbmQgaXQgaGFzIGEgdW5pdHkgbWFwcGluZywKQEAgLTM2MywyNyArNDU5 LDEwIEBAIHN0YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21h aW4KICAgICAgICAgICAgIHJldHVybiByYzsKICAgICB9CiAKLSAgICBpZiAo IGRldmZuID09IHBkZXYtPmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSBkb21f aW8gKQotICAgIHsKLSAgICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5f bGlzdCwgJmRvbV9pby0+cGRldl9saXN0KTsKLSAgICAgICAgcGRldi0+ZG9t YWluID0gZG9tX2lvOwotICAgIH0KLQotICAgIHJjID0gYWxsb2NhdGVfZG9t YWluX3Jlc291cmNlcyh0KTsKLSAgICBpZiAoIHJjICkKLSAgICAgICAgcmV0 dXJuIHJjOwotCi0gICAgYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2Uo dGFyZ2V0LCBpb21tdSwgZGV2Zm4sIHBkZXYpOwogICAgIEFNRF9JT01NVV9E RUJVRygiUmUtYXNzaWduICUwNHg6JTAyeDolMDJ4LiV1IGZyb20gZG9tJWQg dG8gZG9tJWRcbiIsCiAgICAgICAgICAgICAgICAgICAgIHBkZXYtPnNlZywg cGRldi0+YnVzLCBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSwK ICAgICAgICAgICAgICAgICAgICAgc291cmNlLT5kb21haW5faWQsIHRhcmdl dC0+ZG9tYWluX2lkKTsKIAotICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2 Zm4gJiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCApCi0gICAgewotICAgICAg ICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2 X2xpc3QpOwotICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJnZXQ7Ci0gICAg fQotCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTU0Nyw4ICs2MjYsNyBAQCBz dGF0aWMgaW50IGFtZF9pb21tdV9hZGRfZGV2aWNlKHU4IGRldmZuCiAgICAg ICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFn cyk7CiAgICAgfQogCi0gICAgYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZp Y2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBkZXYpOwotICAgIHJl dHVybiAwOworICAgIHJldHVybiBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2Rl dmljZShwZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwgcGRldik7CiB9CiAK IHN0YXRpYyBpbnQgYW1kX2lvbW11X3JlbW92ZV9kZXZpY2UodTggZGV2Zm4s IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-06.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-06.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSSkKCkFycmFuZ2UgZm9yIGRvbWFpbiBJRCBhbmQg cGFnZSB0YWJsZSByb290IHRvIGJlIHBhc3NlZCBhcm91bmQsIHRoZSBsYXR0 ZXIgaW4KcGFydGljdWxhciB0byBkb21haW5fcGdkX21hZGRyKCkgc3VjaCB0 aGF0IHRha2luZyBpdCBmcm9tIHRoZSBwZXItZG9tYWluCmZpZWxkcyBjYW4g YmUgb3ZlcnJpZGRlbi4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9l eHRlcm4uaApAQCAtODYsOSArODYsMTAgQEAgdm9pZCAqbWFwX3Z0ZF9kb21h aW5fcGFnZSh1NjQgbWFkZHIpOwogdm9pZCB1bm1hcF92dGRfZG9tYWluX3Bh Z2Uodm9pZCAqdmEpOwogaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25l KHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IHZ0ZF9pb21tdSAqaW9t bXUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBi dXMsIHVpbnQ4X3QgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGlu dCBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZG9taWRfdCBkb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHBnZF9tYWRkciwg dW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0X3VubWFw X29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRfaW9tbXUg KmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMs IHU4IGRldmZuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQpOwogaW50 IGludGVsX2lvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5KGlvbW11 X2dyZG1fdCAqZnVuYywgdm9pZCAqY3R4dCk7CiAKIHVuc2lnbmVkIGludCBp b19hcGljX3JlYWRfcmVtYXBfcnRlKHVuc2lnbmVkIGludCBhcGljLCB1bnNp Z25lZCBpbnQgcmVnKTsKQEAgLTEwNyw3ICsxMDgsOCBAQCB2b2lkIHBsYXRm b3JtX3F1aXJrc19pbml0KHZvaWQpOwogdm9pZCB2dGRfb3BzX3ByZWFtYmxl X3F1aXJrKHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KTsKIHZvaWQgdnRkX29w c19wb3N0YW1ibGVfcXVpcmsoc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpOwog aW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4g KmRvbWFpbiwgdWludDhfdCBidXMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1vZGUpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgZGV2Zm4s IGRvbWlkX3QgZG9taWQsIHBhZGRyX3QgcGdkX21hZGRyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtb2RlKTsKIHZv aWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqKTsKIHZv aWQgcXVpcmtfaW9tbXVfY2FwcyhzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7 CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAg LTEzNjQsMTIgKzEzNjQsMTIgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKAogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICBzdHJ1 Y3QgdnRkX2lvbW11ICppb21tdSwKICAgICB1aW50OF90IGJ1cywgdWludDhf dCBkZXZmbiwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsCi0gICAgdW5z aWduZWQgaW50IG1vZGUpCisgICAgZG9taWRfdCBkb21pZCwgcGFkZHJfdCBw Z2RfbWFkZHIsIHVuc2lnbmVkIGludCBtb2RlKQogewogICAgIHN0cnVjdCBk b21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbWFpbik7CiAgICAgc3Ry dWN0IGNvbnRleHRfZW50cnkgKmNvbnRleHQsICpjb250ZXh0X2VudHJpZXMs IGxjdHh0OwogICAgIF9fdWludDEyOF90IG9sZDsKLSAgICB1NjQgbWFkZHIs IHBnZF9tYWRkcjsKKyAgICB1aW50NjRfdCBtYWRkcjsKICAgICB1aW50MTZf dCBzZWcgPSBpb21tdS0+ZHJoZC0+c2VnbWVudCwgcHJldl9kaWQgPSAwOwog ICAgIHN0cnVjdCBkb21haW4gKnByZXZfZG9tID0gTlVMTDsKICAgICBpbnQg YWdhdywgcmMsIHJldDsKQEAgLTE0MTAsMTAgKzE0MTAsMTIgQEAgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIH0KICAgICBlbHNlCiAg ICAgeworICAgICAgICBwYWRkcl90IHJvb3QgPSBwZ2RfbWFkZHI7CisKICAg ICAgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCiAg ICAgICAgIC8qIEVuc3VyZSB3ZSBoYXZlIHBhZ2V0YWJsZXMgYWxsb2NhdGVk IGRvd24gdG8gbGVhZiBQVEUuICovCi0gICAgICAgIGlmICggaGQtPmFyY2gu cGdkX21hZGRyID09IDAgKQorICAgICAgICBpZiAoICFyb290ICkKICAgICAg ICAgewogICAgICAgICAgICAgYWRkcl90b19kbWFfcGFnZV9tYWRkcihkb21h aW4sIDAsIDEpOwogICAgICAgICAgICAgaWYgKCBoZC0+YXJjaC5wZ2RfbWFk ZHIgPT0gMCApCkBAIC0xNDI2LDIyICsxNDI4LDI0IEBAIGludCBkb21haW5f Y29udGV4dF9tYXBwaW5nX29uZSgKICAgICAgICAgICAgICAgICAgICAgcmN1 X3VubG9ja19kb21haW4ocHJldl9kb20pOwogICAgICAgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBy b290ID0gaGQtPmFyY2gucGdkX21hZGRyOwogICAgICAgICB9CiAKICAgICAg ICAgLyogU2tpcCB0b3AgbGV2ZWxzIG9mIHBhZ2UgdGFibGVzIGZvciAyLSBh bmQgMy1sZXZlbCBEUkhEcy4gKi8KLSAgICAgICAgcGdkX21hZGRyID0gaGQt PmFyY2gucGdkX21hZGRyOwogICAgICAgICBmb3IgKCBhZ2F3ID0gbGV2ZWxf dG9fYWdhdyg0KTsKICAgICAgICAgICAgICAgYWdhdyAhPSBsZXZlbF90b19h Z2F3KGlvbW11LT5ucl9wdF9sZXZlbHMpOwogICAgICAgICAgICAgICBhZ2F3 LS0gKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAq cCA9IG1hcF92dGRfZG9tYWluX3BhZ2UocGdkX21hZGRyKTsKLSAgICAgICAg ICAgIHBnZF9tYWRkciA9IGRtYV9wdGVfYWRkcigqcCk7CisgICAgICAgICAg ICBzdHJ1Y3QgZG1hX3B0ZSAqcCA9IG1hcF92dGRfZG9tYWluX3BhZ2Uocm9v dCk7CisKKyAgICAgICAgICAgIHJvb3QgPSBkbWFfcHRlX2FkZHIoKnApOwog ICAgICAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHApOwotICAgICAg ICAgICAgaWYgKCBwZ2RfbWFkZHIgPT0gMCApCisgICAgICAgICAgICBpZiAo ICFyb290ICkKICAgICAgICAgICAgICAgICBnb3RvIG5vbWVtOwogICAgICAg ICB9CiAKLSAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc19yb290KGxjdHh0 LCBwZ2RfbWFkZHIpOworICAgICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3Jv b3QobGN0eHQsIHJvb3QpOwogICAgICAgICBpZiAoIGF0c19lbmFibGVkICYm IGVjYXBfZGV2X2lvdGxiKGlvbW11LT5lY2FwKSApCiAgICAgICAgICAgICBj b250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBDT05URVhUX1RU X0RFVl9JT1RMQik7CiAgICAgICAgIGVsc2UKQEAgLTE1NTcsMTUgKzE1NjEs MjEgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHVu bWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOwogCiAgICAg aWYgKCAhc2VnICYmICFyYyApCi0gICAgICAgIHJjID0gbWVfd2lmaV9xdWly ayhkb21haW4sIGJ1cywgZGV2Zm4sIG1vZGUpOworICAgICAgICByYyA9IG1l X3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBkb21pZCwgcGdkX21h ZGRyLCBtb2RlKTsKIAogICAgIGlmICggcmMgKQogICAgIHsKICAgICAgICAg aWYgKCAhcHJldl9kb20gKQotICAgICAgICAgICAgZG9tYWluX2NvbnRleHRf dW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAg ICAgICAgZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUs IGJ1cywgZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZG9tYWluLT5kb21haW5faWQpOwogICAgICAgICBlbHNlIGlmICgg cHJldl9kb20gIT0gZG9tYWluICkgLyogQXZvaWQgaW5maW5pdGUgcmVjdXJz aW9uLiAqLworICAgICAgICB7CisgICAgICAgICAgICBoZCA9IGRvbV9pb21t dShwcmV2X2RvbSk7CiAgICAgICAgICAgICBkb21haW5fY29udGV4dF9tYXBw aW5nX29uZShwcmV2X2RvbSwgaW9tbXUsIGJ1cywgZGV2Zm4sIHBkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4t PmRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGhkLT5hcmNoLnBnZF9tYWRkciwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1vZGUgJiBNQVBfV0lUSF9STVJSKTsK KyAgICAgICAgfQogICAgIH0KIAogICAgIGlmICggcHJldl9kb20gKQpAQCAt MTU4Miw2ICsxNTkyLDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9t YXBwaW5nKHN0cnVjdAogewogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAq ZHJoZDsKICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7 CisgICAgcGFkZHJfdCBwZ2RfbWFkZHIgPSBkb21faW9tbXUoZG9tYWluKS0+ YXJjaC5wZ2RfbWFkZHI7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWdu ZWQgaW50IGksIG1vZGUgPSAwOwogICAgIHVpbnQxNl90IHNlZyA9IHBkZXYt PnNlZywgYmRmOwpAQCAtMTY0Nyw3ICsxNjU4LDggQEAgc3RhdGljIGludCBk b21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAgICAgICAg ICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKICAgICAgICAgICAg ICAgICAgICBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFp biwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIG1vZGUpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBkb21h aW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKICAgICAgICAgaWYgKCBy ZXQgPiAwICkKICAgICAgICAgICAgIHJldCA9IDA7CiAgICAgICAgIGlmICgg IXJldCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBk ZXYsIGRyaGQpID4gMCApCkBAIC0xNjYyLDcgKzE2NzQsOCBAQCBzdGF0aWMg aW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAg ICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwog CiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRv bWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIG1vZGUpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBk b21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKICAgICAgICAgaWYg KCByZXQgPCAwICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBwcmV2 X3ByZXNlbnQgPSByZXQ7CkBAIC0xNjkwLDcgKzE3MDMsOCBAQCBzdGF0aWMg aW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAq LwogICAgICAgICBpZiAoIHJldCA+PSAwICkKICAgICAgICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9t bXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLCBtb2RlKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIGRvbWFpbi0+ ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKIAogICAgICAgICAvKgog ICAgICAgICAgKiBEZXZpY2VzIGJlaGluZCBQQ0llLXRvLVBDSS9QQ0l4IGJy aWRnZSBtYXkgZ2VuZXJhdGUgZGlmZmVyZW50CkBAIC0xNzA1LDcgKzE3MTks OCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0 CiAgICAgICAgIGlmICggIXJldCAmJiBwZGV2X3R5cGUoc2VnLCBidXMsIGRl dmZuKSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0UgJiYKICAgICAgICAg ICAgICAoc2VjYnVzICE9IHBkZXYtPmJ1cyB8fCBwZGV2LT5kZXZmbiAhPSAw KSApCiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5n X29uZShkb21haW4sIGRyaGQtPmlvbW11LCBzZWNidXMsIDAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBt b2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt b2RlKTsKIAogICAgICAgICBpZiAoIHJldCApCiAgICAgICAgIHsKQEAgLTE3 MzQsNyArMTc0OSw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFw cGluZyhzdHJ1Y3QKIGludCBkb21haW5fY29udGV4dF91bm1hcF9vbmUoCiAg ICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11LAotICAgIHU4IGJ1cywgdTggZGV2Zm4pCisgICAgdWludDhf dCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQpCiB7CiAgICAg c3RydWN0IGNvbnRleHRfZW50cnkgKmNvbnRleHQsICpjb250ZXh0X2VudHJp ZXM7CiAgICAgdTY0IG1hZGRyOwpAQCAtMTc5Miw3ICsxODA3LDcgQEAgaW50 IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICB1bm1hcF92dGRfZG9t YWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsKIAogICAgIGlmICggIWlvbW11 LT5kcmhkLT5zZWdtZW50ICYmICFyYyApCi0gICAgICAgIHJjID0gbWVfd2lm aV9xdWlyayhkb21haW4sIGJ1cywgZGV2Zm4sIFVOTUFQX01FX1BIQU5UT01f RlVOQyk7CisgICAgICAgIHJjID0gbWVfd2lmaV9xdWlyayhkb21haW4sIGJ1 cywgZGV2Zm4sIGRvbWlkLCAwLCBVTk1BUF9NRV9QSEFOVE9NX0ZVTkMpOwog CiAgICAgaWYgKCByYyAmJiAhaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFpbikg JiYgZG9tYWluICE9IGRvbV9pbyApCiAgICAgewpAQCAtMTg0NCw3ICsxODU5 LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3Qg ZAogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSWU6IHVu bWFwICUwNHg6JTAyeDolMDJ4LiV1XG4iLAogICAgICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKICAgICAgICAgICAgICAg ICAgICBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7Ci0gICAg ICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlv bW11LCBidXMsIGRldmZuKTsKKyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCk7CiAgICAgICAgIGlmICggIXJldCAmJiBkZXZmbiA9PSBwZGV2 LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYsIGRyaGQpID4gMCApCiAgICAg ICAgICAgICBkaXNhYmxlX2F0c19kZXZpY2UocGRldik7CiAKQEAgLTE4NTQs NyArMTg3MCw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAo c3RydWN0IGQKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAg ICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6UENJOiB1bm1hcCAlMDR4OiUw Mng6JTAyeC4ldVxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCwgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMo ZGV2Zm4pKTsKLSAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBf b25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAgICByZXQg PSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVz LCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgaWYgKCByZXQgKQog ICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTE4ODAsMTIgKzE4OTcsMTUgQEAg c3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAg ICAgICAvKiBQQ0llIHRvIFBDSS9QQ0l4IGJyaWRnZSAqLwogICAgICAgICBp ZiAoIHBkZXZfdHlwZShzZWcsIHRtcF9idXMsIHRtcF9kZXZmbikgPT0gREVW X1RZUEVfUENJZTJQQ0lfQlJJREdFICkKICAgICAgICAgewotICAgICAgICAg ICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9t bXUsIHRtcF9idXMsIHRtcF9kZXZmbik7CisgICAgICAgICAgICByZXQgPSBk b21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgdG1wX2J1 cywgdG1wX2RldmZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgICAg IGlmICggIXJldCApCi0gICAgICAgICAgICAgICAgcmV0ID0gZG9tYWluX2Nv bnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIHNlY2J1cywgMCk7Cisg ICAgICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KGRvbWFpbiwgaW9tbXUsIHNlY2J1cywgMCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5f aWQpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgLyogTGVnYWN5IFBDSSBi cmlkZ2UgKi8KLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3Vu bWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4pOwor ICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCk7CiAKICAgICAgICAgYnJlYWs7CiAKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9xdWlya3MuYwpAQCAtMzQ0LDYgKzM0NCw4IEBAIHZv aWQgX19pbml0IHBsYXRmb3JtX3F1aXJrc19pbml0KHZvaWQpCiAKIHN0YXRp YyBpbnQgX19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBkZXYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb21pZF90IGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBwZ2RfbWFkZHIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3Vu aXQgKmRyaGQ7CkBAIC0zNTcsMTYgKzM1OSwxNyBAQCBzdGF0aWMgaW50IF9f bXVzdF9jaGVjayBtYXBfbWVfcGhhbnRvbV9mCiAgICAgLyogbWFwIG9yIHVu bWFwIE1FIHBoYW50b20gZnVuY3Rpb24gKi8KICAgICBpZiAoICEobW9kZSAm IFVOTUFQX01FX1BIQU5UT01fRlVOQykgKQogICAgICAgICByYyA9IGRvbWFp bl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIDAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJ X0RFVkZOKGRldiwgNyksIE5VTEwsIG1vZGUpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpLCBO VUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWlkLCBwZ2RfbWFkZHIsIG1vZGUpOwogICAgIGVsc2UKICAgICAgICAg cmMgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBkcmhkLT5p b21tdSwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUENJX0RFVkZOKGRldiwgNykpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQQ0lfREVWRk4oZGV2LCA3KSwgZG9taWQpOwog CiAgICAgcmV0dXJuIHJjOwogfQogCiBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1 Y3QgZG9tYWluICpkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZu LAotICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1vZGUpCisgICAg ICAgICAgICAgICAgICBkb21pZF90IGRvbWlkLCBwYWRkcl90IHBnZF9tYWRk ciwgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAgICAgdTMyIGlkOwogICAgIGlu dCByYyA9IDA7CkBAIC0zOTAsNyArMzkzLDcgQEAgaW50IG1lX3dpZmlfcXVp cmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgICAgICAgICAgY2FzZSAw eDQyM2I4MDg2OgogICAgICAgICAgICAgY2FzZSAweDQyM2M4MDg2OgogICAg ICAgICAgICAgY2FzZSAweDQyM2Q4MDg2OgotICAgICAgICAgICAgICAgIHJj ID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAzLCBtb2RlKTsK KyAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9u KGRvbWFpbiwgMywgZG9taWQsIHBnZF9tYWRkciwgbW9kZSk7CiAgICAgICAg ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAg ICAgICAgICAgIGJyZWFrOwpAQCAtNDE2LDcgKzQxOSw3IEBAIGludCBtZV93 aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAg IGNhc2UgMHg0MjM4ODA4NjogICAgICAgIC8qIFB1bWEgUGVhayAqLwogICAg ICAgICAgICAgY2FzZSAweDQyMmI4MDg2OgogICAgICAgICAgICAgY2FzZSAw eDQyMmM4MDg2OgotICAgICAgICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50 b21fZnVuY3Rpb24oZG9tYWluLCAyMiwgbW9kZSk7CisgICAgICAgICAgICAg ICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDIyLCBk b21pZCwgcGdkX21hZGRyLCBtb2RlKTsKICAgICAgICAgICAgICAgICBicmVh azsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJl YWs7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-07.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-07.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSUkpCgpSZXBsYWNlIHRoZSBwYXNzaW5nIG9mIHN0 cnVjdCBkb21haW4gKiBieSBkb21pZF90IGluIHByZXBhcmF0aW9uIG9mCnBl ci1kZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBhbHNvIHJlcXVpcmlu ZyBwZXItZGV2aWNlIHBzZXVkbwpkb21haW4gSURzLCB3aGljaCBhcmVuJ3Qg Z29pbmcgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFueSBzdHJ1Y3QgZG9tYWlu Cmluc3RhbmNlcy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkIChl eGNlcHQgZm9yIHNsaWdodGx5IGFkanVzdGVkIGxvZyBtZXNzYWdlCnRleHQp LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTUyLDggKzUyLDggQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0 IHZ0ZF9mYXVsdF90YXNrbGV0Owogc3RhdGljIGludCBzZXR1cF9od2RvbV9k ZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICopOwogc3RhdGljIHZv aWQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKTsKIAotc3Rh dGljIGludCBkb21haW5faW9tbXVfZG9taWQoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQorc3RhdGljIGludCBnZXRfaW9tbXVfZGlkKGRvbWlkX3Qg ZG9taWQsIGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAorICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgd2FybikKIHsKICAgICB1bnNpZ25l ZCBsb25nIG5yX2RvbSwgaTsKIApAQCAtNjEsMTYgKzYxLDE2IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICAgICBpID0g ZmluZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsK ICAgICB3aGlsZSAoIGkgPCBucl9kb20gKQogICAgIHsKLSAgICAgICAgaWYg KCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGQtPmRvbWFpbl9pZCApCisgICAg ICAgIGlmICggaW9tbXUtPmRvbWlkX21hcFtpXSA9PSBkb21pZCApCiAgICAg ICAgICAgICByZXR1cm4gaTsKIAogICAgICAgICBpID0gZmluZF9uZXh0X2Jp dChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20sIGkrMSk7CiAgICAgfQog Ci0gICAgaWYgKCAhZC0+aXNfZHlpbmcgKQorICAgIGlmICggd2FybiApCiAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCi0gICAgICAg ICAgICAgICAgIkNhbm5vdCBnZXQgdmFsaWQgaW9tbXUgJXUgZG9taWQ6ICVw ZFxuIiwKLSAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIGQpOworICAg ICAgICAgICAgICAgICJObyB2YWxpZCBpb21tdSAldSBkb21pZCBmb3IgRG9t JWRcbiIsCisgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCBkb21pZCk7 CiAKICAgICByZXR1cm4gLTE7CiB9CkBAIC03OCw4ICs3OCw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICNkZWZpbmUg RElEX0ZJRUxEX1dJRFRIIDE2CiAjZGVmaW5lIERJRF9ISUdIX09GRlNFVCA4 CiBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1Y3QgY29u dGV4dF9lbnRyeSAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQs IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVkIGxv bmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CkBAIC05MCw3ICs4 OSw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChpb21tdS0+ZG9taWRfYml0bWFw LCBucl9kb20pOwogICAgIHdoaWxlICggaSA8IG5yX2RvbSApCiAgICAgewot ICAgICAgICBpZiAoIGlvbW11LT5kb21pZF9tYXBbaV0gPT0gZC0+ZG9tYWlu X2lkICkKKyAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGRv bWlkICkKICAgICAgICAgewogICAgICAgICAgICAgZm91bmQgPSAxOwogICAg ICAgICAgICAgYnJlYWs7CkBAIC0xMDYsNyArMTA1LDcgQEAgc3RhdGljIGlu dCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiSU9NTVU6IG5vIGZyZWUg ZG9tYWluIGlkc1xuIik7CiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsK ICAgICAgICAgfQotICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZC0+ ZG9tYWluX2lkOworICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZG9t aWQ7CiAgICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0 bWFwKTsKQEAgLTExNSw5ICsxMTQsOSBAQCBzdGF0aWMgaW50IGNvbnRleHRf c2V0X2RvbWFpbl9pZChzdHJ1Y3QKICAgICByZXR1cm4gMDsKIH0KIAotc3Rh dGljIHZvaWQgY2xlYW51cF9kb21pZF9tYXAoc3RydWN0IGRvbWFpbiAqZG9t YWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKK3N0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKGRvbWlkX3QgZG9taWQsIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQogewotICAgIGludCBpb21tdV9kb21pZCA9IGRvbWFpbl9p b21tdV9kb21pZChkb21haW4sIGlvbW11KTsKKyAgICBpbnQgaW9tbXVfZG9t aWQgPSBnZXRfaW9tbXVfZGlkKGRvbWlkLCBpb21tdSwgZmFsc2UpOwogCiAg ICAgaWYgKCBpb21tdV9kb21pZCA+PSAwICkKICAgICB7CkBAIC0xNzMsNyAr MTcyLDcgQEAgc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAo c3RydQogICAgIGlmICggIWZvdW5kICkKICAgICB7CiAgICAgICAgIGNsZWFy X2JpdChpb21tdS0+aW5kZXgsICZkb21faW9tbXUoZCktPmFyY2guaW9tbXVf Yml0bWFwKTsKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgaW9tbXUp OworICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChkLT5kb21haW5faWQsIGlv bW11KTsKICAgICB9CiB9CiAKQEAgLTYzMCw3ICs2MjksNyBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsCiAgICAgICAgICAg ICBjb250aW51ZTsKIAogICAgICAgICBmbHVzaF9kZXZfaW90bGIgPSAhIWZp bmRfYXRzX2Rldl9kcmhkKGlvbW11KTsKLSAgICAgICAgaW9tbXVfZG9taWQ9 IGRvbWFpbl9pb21tdV9kb21pZChkLCBpb21tdSk7CisgICAgICAgIGlvbW11 X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkLT5kb21haW5faWQsIGlvbW11LCAh ZC0+aXNfZHlpbmcpOwogICAgICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0x ICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNDU0LDcgKzE0NTMs NyBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgIH0K IAotICAgIHJjID0gY29udGV4dF9zZXRfZG9tYWluX2lkKCZsY3R4dCwgZG9t YWluLCBpb21tdSk7CisgICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5faWQo JmxjdHh0LCBkb21pZCwgaW9tbXUpOwogICAgIGlmICggcmMgKQogICAgIHsK ICAgICB1bmxvY2s6CkBAIC0xNzc0LDcgKzE3NzMsNyBAQCBpbnQgZG9tYWlu X2NvbnRleHRfdW5tYXBfb25lKAogICAgIGNvbnRleHRfY2xlYXJfZW50cnko KmNvbnRleHQpOwogICAgIGlvbW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6 ZW9mKHN0cnVjdCBjb250ZXh0X2VudHJ5KSk7CiAKLSAgICBpb21tdV9kb21p ZD0gZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOworICAgIGlv bW11X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkb21pZCwgaW9tbXUsICFkb21h aW4tPmlzX2R5aW5nKTsKICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkK ICAgICB7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CkBA IC0xOTQ4LDcgKzE5NDcsNyBAQCBzdGF0aWMgdm9pZCBpb21tdV9kb21haW5f dGVhcmRvd24oc3RydWN0CiAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1h cHBpbmdfbG9jayk7CiAKICAgICBmb3JfZWFjaF9kcmhkX3VuaXQgKCBkcmhk ICkKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgZHJoZC0+aW9tbXUp OworICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChkLT5kb21haW5faWQsIGRy aGQtPmlvbW11KTsKIH0KIAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50 ZWxfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZu LAo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-08.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-08.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IG1haW50YWluIGEgcGVyLWRldmljZSBwc2V1ZG8gZG9t YWluIElECgpJbiBvcmRlciB0byBzdWJzZXF1ZW50bHkgZW5hYmxlIHBlci1k ZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcywgd2UnbGwKbmVlZCBkb21h aW4tSUQtbGlrZSBpZGVudGlmaWVycyB0byBiZSBpbnNlcnRlZCBpbiB0aGUg cmVzcGVjdGl2ZSBkZXZpY2UKKEFNRCkgb3IgY29udGV4dCAoSW50ZWwpIHRh YmxlIGVudHJpZXMgYWxvbmdzaWRlIHRoZSBwZXItZGV2aWNlIHBhZ2UKdGFi bGUgcm9vdCBhZGRyZXNzZXMuCgpNYWtlIHVzZSBvZiAicmVhbCIgZG9tYWlu IElEcyBvY2N1cHlpbmcgb25seSBoYWxmIG9mIHRoZSB2YWx1ZSByYW5nZQpj b3ZlcmFibGUgYnkgZG9taWRfdC4KCk5vdGUgdGhhdCBpbiBWVC1kJ3MgaW9t bXVfYWxsb2MoKSBJIGRpZG4ndCB3YW50IHRvIGludHJvZHVjZSBuZXcgbWVt b3J5CmxlYWtzIGluIGNhc2Ugb2YgZXJyb3IsIGJ1dCBleGlzdGluZyBvbmVz IGRvbid0IGdldCBwbHVnZ2VkIC0gdGhhdCdsbCBiZQp0aGUgc3ViamVjdCBv ZiBhIGxhdGVyIGNoYW5nZS4KClRoZSBWVC1kIGNoYW5nZXMgYXJlIHNsaWdo dGx5IGFzeW1tZXRyaWMsIGJ1dCB0aGlzIHdheSB3ZSBjYW4gYXZvaWQKYXNz aWduaW5nIHBzZXVkbyBkb21haW4gSURzIHRvIGRldmljZXMgd2hpY2ggd291 bGQgbmV2ZXIgYmUgbWFwcGVkIHdoaWxlCnN0aWxsIGF2b2lkaW5nIHRvIGFk ZCBhIG5ldyBwYXJhbWV0ZXIgdG8gZG9tYWluX2NvbnRleHRfdW5tYXAoKS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpS ZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTEzMCw2ICsx MzAsMTAgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9k ZXNjCiAgICAgICAgIGlvbW11X3ZjYWxsKG9wcywgc3luY19jYWNoZSwgYWRk ciwgc2l6ZSk7ICAgICAgIFwKIH0pCiAKK3Vuc2lnbmVkIGxvbmcgKmlvbW11 X2luaXRfZG9taWQodm9pZCk7Citkb21pZF90IGlvbW11X2FsbG9jX2RvbWlk KHVuc2lnbmVkIGxvbmcgKm1hcCk7Cit2b2lkIGlvbW11X2ZyZWVfZG9taWQo ZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyAqbWFwKTsKKwogI2VuZGlm IC8qICFfX0FSQ0hfWDg2X0lPTU1VX0hfXyAqLwogLyoKICAqIExvY2FsIHZh cmlhYmxlczoKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xNSw2ICsxNSwxMiBA QAogCiBzdHJ1Y3QgYXJjaF9wY2lfZGV2IHsKICAgICB2bWFza190IHVzZWRf dmVjdG9yczsKKyAgICAvKgorICAgICAqIFRoZXNlIGZpZWxkcyBhcmUgKGRl KWluaXRpYWxpemVkIHVuZGVyIHBjaWRldnMtbG9jay4gT3RoZXIgdXNlcyBv ZgorICAgICAqIHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6YXRpb24g YW5kIGhlbmNlIGRvbid0IHN0cmljdGx5IG5lZWQgYW55CisgICAgICogbG9j a2luZy4KKyAgICAgKi8KKyAgICBkb21pZF90IHBzZXVkb19kb21pZDsKIH07 CiAKIGludCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50 IHNlZywgdW5zaWduZWQgaW50IGJkZiwKLS0tIGEveGVuL2luY2x1ZGUvYXNt LXg4Ni9hbWQtaW9tbXUuaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2Ft ZC1pb21tdS5oCkBAIC05NCw2ICs5NCw3IEBAIHN0cnVjdCBhbWRfaW9tbXUg ewogICAgIHN0cnVjdCByaW5nX2J1ZmZlciBjbWRfYnVmZmVyOwogICAgIHN0 cnVjdCByaW5nX2J1ZmZlciBldmVudF9sb2c7CiAgICAgc3RydWN0IHJpbmdf YnVmZmVyIHBwcl9sb2c7CisgICAgdW5zaWduZWQgbG9uZyAqZG9taWRfbWFw OwogCiAgICAgaW50IGV4Y2x1c2lvbl9lbmFibGU7CiAgICAgaW50IGV4Y2x1 c2lvbl9hbGxvd19hbGw7Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdV9kZXRlY3QuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKQEAgLTE4Myw2ICsxODMsMTEgQEAg aW50IF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0X29uZV9hY3BpKAogICAgIGlm ICggcnQgKQogICAgICAgICBnb3RvIG91dDsKIAorICAgIGlvbW11LT5kb21p ZF9tYXAgPSBpb21tdV9pbml0X2RvbWlkKCk7CisgICAgcnQgPSAtRU5PTUVN OworICAgIGlmICggIWlvbW11LT5kb21pZF9tYXAgKQorICAgICAgICBnb3Rv IG91dDsKKwogICAgIHJ0ID0gcGNpX3JvX2RldmljZShpb21tdS0+c2VnLCBi dXMsIFBDSV9ERVZGTihkZXYsIGZ1bmMpKTsKICAgICBpZiAoIHJ0ICkKICAg ICAgICAgcHJpbnRrKFhFTkxPR19FUlIKQEAgLTE5NCw3ICsxOTksMTAgQEAg aW50IF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0X29uZV9hY3BpKAogCiAgb3V0 OgogICAgIGlmICggcnQgKQorICAgIHsKKyAgICAgICAgeGZyZWUoaW9tbXUt PmRvbWlkX21hcCk7CiAgICAgICAgIHhmcmVlKGlvbW11KTsKKyAgICB9CiAK ICAgICByZXR1cm4gcnQ7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtNTYzLDYgKzU2Myw4 IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X2FkZF9kZXZpY2UodTggZGV2Zm4K ICAgICBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdTsKICAgICB1MTYgYmRmOwog ICAgIHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX21hcHBpbmdzOworICAg IGJvb2wgZnJlc2hfZG9taWQgPSBmYWxzZTsKKyAgICBpbnQgcmV0OwogCiAg ICAgaWYgKCAhcGRldi0+ZG9tYWluICkKICAgICAgICAgcmV0dXJuIC1FSU5W QUw7CkBAIC02MjYsNyArNjI4LDIyIEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11 X2FkZF9kZXZpY2UodTggZGV2Zm4KICAgICAgICAgc3Bpbl91bmxvY2tfaXJx cmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKICAgICB9CiAKLSAgICBy ZXR1cm4gYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UocGRldi0+ZG9t YWluLCBpb21tdSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggaW9tbXVfcXVh cmFudGluZSAmJiBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9J TlZBTElEICkKKyAgICB7CisgICAgICAgIHBkZXYtPmFyY2gucHNldWRvX2Rv bWlkID0gaW9tbXVfYWxsb2NfZG9taWQoaW9tbXUtPmRvbWlkX21hcCk7Cisg ICAgICAgIGlmICggcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPT0gRE9NSURf SU5WQUxJRCApCisgICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsKKyAgICAg ICAgZnJlc2hfZG9taWQgPSB0cnVlOworICAgIH0KKworICAgIHJldCA9IGFt ZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNlKHBkZXYtPmRvbWFpbiwgaW9t bXUsIGRldmZuLCBwZGV2KTsKKyAgICBpZiAoIHJldCAmJiBmcmVzaF9kb21p ZCApCisgICAgeworICAgICAgICBpb21tdV9mcmVlX2RvbWlkKHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkLCBpb21tdS0+ZG9taWRfbWFwKTsKKyAgICAgICAg cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBET01JRF9JTlZBTElEOworICAg IH0KKworICAgIHJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgYW1kX2lv bW11X3JlbW92ZV9kZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpw ZGV2KQpAQCAtNjUxLDYgKzY2OCw5IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11 X3JlbW92ZV9kZXZpY2UodTggZGUKIAogICAgIGFtZF9pb21tdV9kaXNhYmxl X2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBk ZXYpOwogCisgICAgaW9tbXVfZnJlZV9kb21pZChwZGV2LT5hcmNoLnBzZXVk b19kb21pZCwgaW9tbXUtPmRvbWlkX21hcCk7CisgICAgcGRldi0+YXJjaC5w c2V1ZG9fZG9taWQgPSBET01JRF9JTlZBTElEOworCiAgICAgaXZyc19tYXBw aW5ncyA9IGdldF9pdnJzX21hcHBpbmdzKHBkZXYtPnNlZyk7CiAgICAgYmRm ID0gUENJX0JERjIocGRldi0+YnVzLCBkZXZmbik7CiAgICAgaWYgKCBhbWRf aW9tbXVfcGVyZGV2X2ludHJlbWFwICYmCi0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3BjaS5jCkBAIC0zMzgsNiArMzM4LDcgQEAgc3RhdGljIHN0cnVjdCBwY2lf ZGV2ICphbGxvY19wZGV2KHN0cnVjdAogICAgICooKHU4KikgJnBkZXYtPmJ1 cykgPSBidXM7CiAgICAgKigodTgqKSAmcGRldi0+ZGV2Zm4pID0gZGV2Zm47 CiAgICAgcGRldi0+ZG9tYWluID0gTlVMTDsKKyAgICBwZGV2LT5hcmNoLnBz ZXVkb19kb21pZCA9IERPTUlEX0lOVkFMSUQ7CiAgICAgSU5JVF9MSVNUX0hF QUQoJnBkZXYtPm1zaV9saXN0KTsKIAogICAgIHBvcyA9IHBjaV9maW5kX2Nh cF9vZmZzZXQocHNlZy0+bnIsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lf RlVOQyhkZXZmbiksCkBAIC0xMzUzLDkgKzEzNTQsMTMgQEAgc3RhdGljIGlu dCBfZHVtcF9wY2lfZGV2aWNlcyhzdHJ1Y3QgcGNpXwogCiAgICAgbGlzdF9m b3JfZWFjaF9lbnRyeSAoIHBkZXYsICZwc2VnLT5hbGxkZXZzX2xpc3QsIGFs bGRldnNfbGlzdCApCiAgICAgewotICAgICAgICBwcmludGsoIiUwNHg6JTAy eDolMDJ4LiV1IC0gJXBkIC0gbm9kZSAlLTNkIC0gTVNJcyA8ICIsCi0gICAg ICAgICAgICAgICBwc2VnLT5uciwgcGRldi0+YnVzLAotICAgICAgICAgICAg ICAgUENJX1NMT1QocGRldi0+ZGV2Zm4pLCBQQ0lfRlVOQyhwZGV2LT5kZXZm biksIHBkZXYtPmRvbWFpbiwKKyAgICAgICAgcHJpbnRrKCIlMDR4OiUwMng6 JTAyeC4ldSAtICIsIHBzZWctPm5yLCBwZGV2LT5idXMsCisgICAgICAgICAg ICAgICBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBkZXYtPmRl dmZuKSk7CisgICAgICAgIGlmICggcGRldi0+ZG9tYWluID09IGRvbV9pbyAp CisgICAgICAgICAgICBwcmludGsoIkRvbUlPOiV4IiwgcGRldi0+YXJjaC5w c2V1ZG9fZG9taWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmlu dGsoIiVwZCIsIHBkZXYtPmRvbWFpbik7CisgICAgICAgIHByaW50aygiIC0g bm9kZSAlLTNkIC0gTVNJcyA8ICIsCiAgICAgICAgICAgICAgICAocGRldi0+ bm9kZSAhPSBOVU1BX05PX05PREUpID8gcGRldi0+bm9kZSA6IC0xKTsKICAg ICAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIG1zaSwgJnBkZXYtPm1zaV9s aXN0LCBsaXN0ICkKICAgICAgICAgICAgICAgIHByaW50aygiJWQgIiwgbXNp LT5pcnEpOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t bXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUu YwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgog I2luY2x1ZGUgPHhlbi94bWFsbG9jLmg+CiAjaW5jbHVkZSA8eGVuL2RvbWFp bl9wYWdlLmg+CisjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhl bi9pb2NhcC5oPgogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogI2luY2x1ZGUg PHhlbi9udW1hLmg+CkBAIC0xMTkyLDcgKzExOTMsNyBAQCBpbnQgX19pbml0 IGlvbW11X2FsbG9jKHN0cnVjdCBhY3BpX2RyaGRfCiB7CiAgICAgc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXU7CiAgICAgdW5zaWduZWQgbG9uZyBzYWdhdywg bnJfZG9tOwotICAgIGludCBhZ2F3OworICAgIGludCBhZ2F3LCByYzsKIAog ICAgIGlmICggbnJfaW9tbXVzID49IE1BWF9JT01NVVMgKQogICAgIHsKQEAg LTEyODUsNyArMTI4NiwxNiBAQCBpbnQgX19pbml0IGlvbW11X2FsbG9jKHN0 cnVjdCBhY3BpX2RyaGRfCiAgICAgaWYgKCAhaW9tbXUtPmRvbWlkX21hcCAp CiAgICAgICAgIHJldHVybiAtRU5PTUVNOwogCisgICAgaW9tbXUtPnBzZXVk b19kb21pZF9tYXAgPSBpb21tdV9pbml0X2RvbWlkKCk7CisgICAgcmMgPSAt RU5PTUVNOworICAgIGlmICggIWlvbW11LT5wc2V1ZG9fZG9taWRfbWFwICkK KyAgICAgICAgZ290byBmcmVlOworCiAgICAgcmV0dXJuIDA7CisKKyBmcmVl OgorICAgIGlvbW11X2ZyZWUoZHJoZCk7CisgICAgcmV0dXJuIHJjOwogfQog CiB2b2lkIF9faW5pdCBpb21tdV9mcmVlKHN0cnVjdCBhY3BpX2RyaGRfdW5p dCAqZHJoZCkKQEAgLTEzMDgsNiArMTMxOCw3IEBAIHZvaWQgX19pbml0IGlv bW11X2ZyZWUoc3RydWN0IGFjcGlfZHJoZF8KIAogICAgIHhmcmVlKGlvbW11 LT5kb21pZF9iaXRtYXApOwogICAgIHhmcmVlKGlvbW11LT5kb21pZF9tYXAp OworICAgIHhmcmVlKGlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKIAogICAg IGlmICggaW9tbXUtPm1zaS5pcnEgPj0gMCApCiAgICAgICAgIGRlc3Ryb3lf aXJxKGlvbW11LT5tc2kuaXJxKTsKQEAgLTE1ODMsOCArMTU5NCw4IEBAIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICByZXR1cm4gcmMg PzogcGRldiAmJiBwcmV2X2RvbTsKIH0KIAotc3RhdGljIGludCBkb21haW5f Y29udGV4dF91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGRldmZu LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNp X2RldiAqcGRldik7CitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91 bml0ICpkb21haW5fY29udGV4dF91bm1hcCgKKyAgICBzdHJ1Y3QgZG9tYWlu ICpkLCB1aW50OF90IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAK IHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QgZG9t YWluICpkb21haW4sIHU4IGRldmZuLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQpAQCAtMTU5Miw2 ICsxNjAzLDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5n KHN0cnVjdAogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsKICAg ICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CiAgICAgcGFk ZHJfdCBwZ2RfbWFkZHIgPSBkb21faW9tbXUoZG9tYWluKS0+YXJjaC5wZ2Rf bWFkZHI7CisgICAgZG9taWRfdCBvcmlnX2RvbWlkID0gcGRldi0+YXJjaC5w c2V1ZG9fZG9taWQ7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWduZWQg aW50IGksIG1vZGUgPSAwOwogICAgIHVpbnQxNl90IHNlZyA9IHBkZXYtPnNl ZywgYmRmOwpAQCAtMTY1Miw2ICsxNjY0LDE0IEBAIHN0YXRpYyBpbnQgZG9t YWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgYnJlYWs7CiAK ICAgICBjYXNlIERFVl9UWVBFX1BDSWVfRU5EUE9JTlQ6CisgICAgICAgIGlm ICggaW9tbXVfcXVhcmFudGluZSAmJiBvcmlnX2RvbWlkID09IERPTUlEX0lO VkFMSUQgKQorICAgICAgICB7CisgICAgICAgICAgICBwZGV2LT5hcmNoLnBz ZXVkb19kb21pZCA9CisgICAgICAgICAgICAgICAgaW9tbXVfYWxsb2NfZG9t aWQoZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOworICAgICAgICAg ICAgaWYgKCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9JTlZB TElEICkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsKKyAgICAg ICAgfQorCiAgICAgICAgIGlmICggaW9tbXVfZGVidWcgKQogICAgICAgICAg ICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSWU6IG1hcCAlMDR4OiUwMng6 JTAyeC4ldVxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCwgc2VnLCBidXMsCkBAIC0xNjY3LDYgKzE2ODcsMTQgQEAgc3RhdGlj IGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICBi cmVhazsKIAogICAgIGNhc2UgREVWX1RZUEVfUENJOgorICAgICAgICBpZiAo IGlvbW11X3F1YXJhbnRpbmUgJiYgb3JpZ19kb21pZCA9PSBET01JRF9JTlZB TElEICkKKyAgICAgICAgeworICAgICAgICAgICAgcGRldi0+YXJjaC5wc2V1 ZG9fZG9taWQgPQorICAgICAgICAgICAgICAgIGlvbW11X2FsbG9jX2RvbWlk KGRyaGQtPmlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAgICAg IGlmICggcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPT0gRE9NSURfSU5WQUxJ RCApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9TUEM7CisgICAgICAg IH0KKwogICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAg IHByaW50ayhWVERQUkVGSVggImQlZDpQQ0k6IG1hcCAlMDR4OiUwMng6JTAy eC4ldVxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9p ZCwgc2VnLCBidXMsCkBAIC0xNzQyLDYgKzE3NzAsMTMgQEAgc3RhdGljIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgIGlmICggIXJl dCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiApCiAgICAgICAgIHBjaV92dGRf cXVpcmsocGRldik7CiAKKyAgICBpZiAoIHJldCAmJiBkcmhkICYmIG9yaWdf ZG9taWQgPT0gRE9NSURfSU5WQUxJRCApCisgICAgeworICAgICAgICBpb21t dV9mcmVlX2RvbWlkKHBkZXYtPmFyY2gucHNldWRvX2RvbWlkLAorICAgICAg ICAgICAgICAgICAgICAgICAgIGRyaGQtPmlvbW11LT5wc2V1ZG9fZG9taWRf bWFwKTsKKyAgICAgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBET01J RF9JTlZBTElEOworICAgIH0KKwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAg LTE4MjQsOCArMTg1OSwxMCBAQCBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBf b25lKAogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBkb21haW5f Y29udGV4dF91bm1hcChzdHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZu LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNp X2RldiAqcGRldikKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3Vu aXQgKmRvbWFpbl9jb250ZXh0X3VubWFwKAorICAgIHN0cnVjdCBkb21haW4g KmRvbWFpbiwKKyAgICB1aW50OF90IGRldmZuLAorICAgIHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogewogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJo ZDsKICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdTsKQEAgLTE4MzQsNyAr MTg3MSw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3Ry dWN0IGQKIAogICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3Vu aXQocGRldik7CiAgICAgaWYgKCAhZHJoZCApCi0gICAgICAgIHJldHVybiAt RU5PREVWOworICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKICAg ICBpb21tdSA9IGRyaGQtPmlvbW11OwogCiAgICAgc3dpdGNoICggcGRldi0+ dHlwZSApCkBAIC0xODQ1LDcgKzE4ODIsNyBAQCBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgICAgICAgICAgICAgICAg ZG9tYWluLT5kb21haW5faWQsIHNlZywgYnVzLAogICAgICAgICAgICAgICAg ICAgIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKICAgICAg ICAgaWYgKCAhaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFpbikgKQotICAgICAg ICAgICAgcmV0dXJuIC1FUEVSTTsKKyAgICAgICAgICAgIHJldHVybiBFUlJf UFRSKC1FUEVSTSk7CiAgICAgICAgIGdvdG8gb3V0OwogCiAgICAgY2FzZSBE RVZfVFlQRV9QQ0llX0JSSURHRToKQEAgLTE5MjMsNyArMTk2MCw3IEBAIHN0 YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGQKICAgICAg ICAgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoZG9tYWluLCBwZGV2LCBpb21t dSk7CiAKIG91dDoKLSAgICByZXR1cm4gcmV0OworICAgIHJldHVybiByZXQg PyBFUlJfUFRSKHJldCkgOiBkcmhkOwogfQogCiBzdGF0aWMgdm9pZCBpb21t dV9kb21haW5fdGVhcmRvd24oc3RydWN0IGRvbWFpbiAqZCkKQEAgLTIxNDUs MTYgKzIxODIsMTcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9lbmFibGVf ZGV2aWNlKHN0cgogCiBzdGF0aWMgaW50IGludGVsX2lvbW11X3JlbW92ZV9k ZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogeworICAg IGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsKICAgICBzdHJ1 Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CiAgICAgdTE2IGJkZjsKLSAgICBp bnQgcmV0LCBpOworICAgIHVuc2lnbmVkIGludCBpOwogCiAgICAgaWYgKCAh cGRldi0+ZG9tYWluICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAg ICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcChwZGV2LT5kb21haW4sIGRl dmZuLCBwZGV2KTsKLSAgICBpZiAoIHJldCApCi0gICAgICAgIHJldHVybiBy ZXQ7CisgICAgZHJoZCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHBkZXYtPmRv bWFpbiwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggSVNfRVJSKGRyaGQpICkK KyAgICAgICAgcmV0dXJuIFBUUl9FUlIoZHJoZCk7CiAKICAgICBmb3JfZWFj aF9ybXJyX2RldmljZSAoIHJtcnIsIGJkZiwgaSApCiAgICAgewpAQCAtMjE3 MSw2ICsyMjA5LDEzIEBAIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVfcmVtb3Zl X2RldmljZSh1OAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJt cnItPmVuZF9hZGRyZXNzLCAwKTsKICAgICB9CiAKKyAgICBpZiAoIGRyaGQg KQorICAgIHsKKyAgICAgICAgaW9tbXVfZnJlZV9kb21pZChwZGV2LT5hcmNo LnBzZXVkb19kb21pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICBkcmhk LT5pb21tdS0+cHNldWRvX2RvbWlkX21hcCk7CisgICAgICAgIHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsKKyAgICB9CisKICAg ICByZXR1cm4gMDsKIH0KIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuaApAQCAtNTM1LDYgKzUzNSw3IEBAIHN0cnVjdCB2dGRfaW9t bXUgewogICAgIH0gZmx1c2g7CiAKICAgICBzdHJ1Y3QgbGlzdF9oZWFkIGF0 c19kZXZpY2VzOworICAgIHVuc2lnbmVkIGxvbmcgKnBzZXVkb19kb21pZF9t YXA7IC8qICJwc2V1ZG8iIGRvbWFpbiBpZCBiaXRtYXAgKi8KICAgICB1bnNp Z25lZCBsb25nICpkb21pZF9iaXRtYXA7ICAvKiBkb21haW4gaWQgYml0bWFw ICovCiAgICAgdTE2ICpkb21pZF9tYXA7ICAgICAgICAgICAgICAgLyogZG9t YWluIGlkIG1hcHBpbmcgYXJyYXkgKi8KICAgICB1aW50MzJfdCB2ZXJzaW9u OwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC94ODYvaW9tbXUuYwpAQCAt MzQ2LDYgKzM0Niw1MyBAQCB2b2lkIF9faHdkb21faW5pdCBhcmNoX2lvbW11 X2h3ZG9tX2luaXQoCiAgICAgICAgIHJldHVybjsKIH0KIAordW5zaWduZWQg bG9uZyAqX19pbml0IGlvbW11X2luaXRfZG9taWQodm9pZCkKK3sKKyAgICBp ZiAoICFpb21tdV9xdWFyYW50aW5lICkKKyAgICAgICAgcmV0dXJuIFpFUk9f QkxPQ0tfUFRSOworCisgICAgQlVJTERfQlVHX09OKERPTUlEX01BU0sgKiAy VSA+PSBVSU5UMTZfTUFYKTsKKworICAgIHJldHVybiB4emFsbG9jX2FycmF5 KHVuc2lnbmVkIGxvbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgQklU U19UT19MT05HUyhVSU5UMTZfTUFYIC0gRE9NSURfTUFTSykpOworfQorCitk b21pZF90IGlvbW11X2FsbG9jX2RvbWlkKHVuc2lnbmVkIGxvbmcgKm1hcCkK K3sKKyAgICAvKgorICAgICAqIFRoaXMgaXMgdXNlZCB1bmlmb3JtbHkgYWNy b3NzIGFsbCBJT01NVXMsIHN1Y2ggdGhhdCBvbiB0eXBpY2FsCisgICAgICog c3lzdGVtcyB3ZSB3b3VsZG4ndCByZS11c2UgdGhlIHNhbWUgSUQgdmVyeSBx dWlja2x5IChwZXJoYXBzIG5ldmVyKS4KKyAgICAgKi8KKyAgICBzdGF0aWMg dW5zaWduZWQgaW50IHN0YXJ0OworICAgIHVuc2lnbmVkIGludCBpZHggPSBm aW5kX25leHRfemVyb19iaXQobWFwLCBVSU5UMTZfTUFYIC0gRE9NSURfTUFT Sywgc3RhcnQpOworCisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOwor CisgICAgaWYgKCBpZHggPj0gVUlOVDE2X01BWCAtIERPTUlEX01BU0sgKQor ICAgICAgICBpZHggPSBmaW5kX2ZpcnN0X3plcm9fYml0KG1hcCwgVUlOVDE2 X01BWCAtIERPTUlEX01BU0spOworICAgIGlmICggaWR4ID49IFVJTlQxNl9N QVggLSBET01JRF9NQVNLICkKKyAgICAgICAgcmV0dXJuIERPTUlEX0lOVkFM SUQ7CisKKyAgICBfX3NldF9iaXQoaWR4LCBtYXApOworCisgICAgc3RhcnQg PSBpZHggKyAxOworCisgICAgcmV0dXJuIGlkeCB8IChET01JRF9NQVNLICsg MSk7Cit9CisKK3ZvaWQgaW9tbXVfZnJlZV9kb21pZChkb21pZF90IGRvbWlk LCB1bnNpZ25lZCBsb25nICptYXApCit7CisgICAgQVNTRVJUKHBjaWRldnNf bG9ja2VkKCkpOworCisgICAgaWYgKCBkb21pZCA9PSBET01JRF9JTlZBTElE ICkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGRvbWlkID4gRE9N SURfTUFTSyk7CisKKyAgICBpZiAoICFfX3Rlc3RfYW5kX2NsZWFyX2JpdChk b21pZCAmIERPTUlEX01BU0ssIG1hcCkgKQorICAgICAgICBCVUcoKTsKK30K KwogLyoKICAqIExvY2FsIHZhcmlhYmxlczoKICAqIG1vZGU6IEMKLS0tIGEv eGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCisrKyBiL3hlbi9pbmNsdWRlL3B1 YmxpYy94ZW4uaApAQCAtNjE0LDYgKzYxNCw5IEBAIERFRklORV9YRU5fR1VF U1RfSEFORExFKG1tdWV4dF9vcF90KTsKIC8qIElkbGUgZG9tYWluLiAqLwog I2RlZmluZSBET01JRF9JRExFICAgICAgICAgICB4ZW5fbWtfdWludCgweDdG RkYpCiAKKy8qIE1hc2sgZm9yIHZhbGlkIGRvbWFpbiBpZCB2YWx1ZXMgKi8K KyNkZWZpbmUgRE9NSURfTUFTSyAgICAgICAgICAgeGVuX21rX3VpbnQoMHg3 RkZGKQorCiAjaWZuZGVmIF9fQVNTRU1CTFlfXwogCiB0eXBlZGVmIHVpbnQx Nl90IGRvbWlkX3Q7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-09.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-09.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IGRyb3AgVExCIGZsdXNoZXMgZnJvbSBxdWFyYW50aW5l X2luaXQoKSBob29rcwoKVGhlIHBhZ2UgdGFibGVzIGp1c3QgY3JlYXRlZCBh cmVuJ3QgaG9va2VkIHVwIHlldCBhbnl3aGVyZSwgc28gdGhlcmUncwpub3Ro aW5nIHRoYXQgY291bGQgYmUgcHJlc2VudCBpbiBhbnkgVExCLCBhbmQgaGVu Y2Ugbm90aGluZyB0byBmbHVzaC4KRHJvcHBpbmcgdGhpcyBmbHVzaCBpcywg YXQgbGVhc3Qgb24gdGhlIFZULWQgc2lkZSwgYSBwcmVyZXEgdG8gcGVyLQpk ZXZpY2UgZG9tYWluIElEIHVzZSB3aGVuIHF1YXJhbnRpbmluZyBkZXZpY2Vz LCBhcyBkb21faW8gaXNuJ3QgZ29pbmcKdG8gYmUgYXNzaWduZWQgYSBESUQg YW55bW9yZTogVGhlIHdhcm5pbmcgaW4gZ2V0X2lvbW11X2RpZCgpIHdvdWxk CnRyaWdnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxA eGVuLm9yZz4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC01OTUsOCArNTk1LDYgQEAgaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cgogIG91dDoK ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKIAot ICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfcGFnZXMoZCk7Ci0KICAgICAvKiBQ YWdlcyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCiAgICAgcmV0dXJuIGxl dmVsID8gLUVOT01FTSA6IDA7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0yODk0LDcgKzI4OTQsNiBAQCBzdGF0aWMg aW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lCiAgICAgc3RydWN0 IGRtYV9wdGUgKnBhcmVudDsKICAgICB1bnNpZ25lZCBpbnQgYWdhdyA9IHdp ZHRoX3RvX2FnYXcoREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCk7CiAg ICAgdW5zaWduZWQgaW50IGxldmVsID0gYWdhd190b19sZXZlbChhZ2F3KTsK LSAgICBpbnQgcmM7CiAKICAgICBpZiAoIGhkLT5hcmNoLnBnZF9tYWRkciAp CiAgICAgewpAQCAtMjk0MSwxMCArMjk0MCw4IEBAIHN0YXRpYyBpbnQgX19p bml0IGludGVsX2lvbW11X3F1YXJhbnRpbmUKICBvdXQ6CiAgICAgc3Bpbl91 bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKLSAgICByYyA9IGlv bW11X2ZsdXNoX2lvdGxiX2FsbChkKTsKLQogICAgIC8qIFBhZ2VzIGxlYWtl ZCBpbiBmYWlsdXJlIGNhc2UgKi8KLSAgICByZXR1cm4gbGV2ZWwgPyAtRU5P TUVNIDogcmM7CisgICAgcmV0dXJuIGxldmVsID8gLUVOT01FTSA6IDA7CiB9 CiAKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29uc3RyZWwgaW50 ZWxfaW9tbXVfb3BzID0gewo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-10.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-10.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IGFic3RyYWN0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2Ug dGFibGUgbGV2ZWxzCgpXZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBjb25zdGFu dCBlbHNld2hlcmUuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWxAeGVuLm9yZz4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZtL3N2 bS9hbWQtaW9tbXUtcHJvdG8uaAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2 L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKQEAgLTE5Myw3ICsxOTMsNyBA QCBzdGF0aWMgaW5saW5lIGludCBhbWRfaW9tbXVfZ2V0X3BhZ2luZ19tCiAg ICAgd2hpbGUgKCBtYXhfZnJhbWVzID4gUFRFX1BFUl9UQUJMRV9TSVpFICkK ICAgICB7CiAgICAgICAgIG1heF9mcmFtZXMgPSBQVEVfUEVSX1RBQkxFX0FM SUdOKG1heF9mcmFtZXMpID4+IFBURV9QRVJfVEFCTEVfU0hJRlQ7Ci0gICAg ICAgIGlmICggKytsZXZlbCA+IDYgKQorICAgICAgICBpZiAoICsrbGV2ZWwg PiBJT01NVV9NQVhfUFRfTEVWRUxTICkKICAgICAgICAgICAgIHJldHVybiAt RU5PTUVNOwogICAgIH0KIAotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2 bS9zdm0vYW1kLWlvbW11LWRlZnMuaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9zdm0vYW1kLWlvbW11LWRlZnMuaApAQCAtMTEwLDYgKzExMCw3 IEBAIHN0cnVjdCBhbWRfaW9tbXVfZHRlIHsKICAgICBib29sIHR2OjE7CiAg ICAgdW5zaWduZWQgaW50IDo1OwogICAgIHVuc2lnbmVkIGludCBoYWQ6MjsK KyNkZWZpbmUgSU9NTVVfTUFYX1BUX0xFVkVMUyA2CiAgICAgdW5zaWduZWQg aW50IHBhZ2luZ19tb2RlOjM7CiAgICAgdWludDY0X3QgcHRfcm9vdDo0MDsK ICAgICBib29sIHBwcjoxOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL2lvbW11X21hcC5jCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGlj IGludCBpb21tdV9wZGVfZnJvbV9kZm4oc3RydWN0IGRvbQogICAgIHRhYmxl ID0gaGQtPmFyY2gucm9vdF90YWJsZTsKICAgICBsZXZlbCA9IGhkLT5hcmNo LnBhZ2luZ19tb2RlOwogCi0gICAgQlVHX09OKCB0YWJsZSA9PSBOVUxMIHx8 IGxldmVsIDwgMSB8fCBsZXZlbCA+IDYgKTsKKyAgICBCVUdfT04oIHRhYmxl ID09IE5VTEwgfHwgbGV2ZWwgPCAxIHx8IGxldmVsID4gSU9NTVVfTUFYX1BU X0xFVkVMUyApOwogCiAgICAgLyoKICAgICAgKiBBIGZyYW1lIG51bWJlciBw YXN0IHdoYXQgdGhlIGN1cnJlbnQgcGFnZSB0YWJsZXMgY2FuIHJlcHJlc2Vu dCBjYW4ndAo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.13-11.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.13-11.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHVzZSBwZXItZGV2aWNlIHBhZ2UgdGFibGVzIGZvciBx dWFyYW50aW5pbmcKCkRldmljZXMgd2l0aCBSTVJScyAvIHVuaXR5IG1hcHBl ZCByZWdpb25zLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQKaG93L3do ZW4gdGhlc2UgbWVtb3J5IHJlZ2lvbnMgbWF5IGJlIGFjY2Vzc2VkLCBtYXkg bm90IGJlIGxlZnQKZGlzY29ubmVjdGVkIGZyb20gdGhlIG1hcHBpbmdzIG9m IHRoZXNlIHJlZ2lvbnMgKGFzIGxvbmcgYXMgaXQncyBub3QKY2VydGFpbiB0 aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgcXVpZXNjZWQpLiBIZW5j ZSBldmVuIHRoZSBwYWdlCnRhYmxlcyB1c2VkIHdoZW4gcXVhcmFudGluaW5n IHN1Y2ggZGV2aWNlcyBuZWVkIHRvIGhhdmUgbWFwcGluZ3Mgb2YKdGhvc2Ug cmVnaW9ucy4gVGhpcyBpbXBsaWVzIGluc3RhbGxpbmcgcGFnZSB0YWJsZXMg aW4gdGhlIGZpcnN0IHBsYWNlCmV2ZW4gd2hlbiBub3QgaW4gc2NyYXRjaC1w YWdlIHF1YXJhbnRpbmluZyBtb2RlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM2 MSAvIHBhcnQgb2YgWFNBLTQwMC4KCldoaWxlIGZvciB0aGUgcHVycG9zZSBo ZXJlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBkZXZpY2VzIHdp dGgKUk1SUnMgLyB1bml0eSBtYXBwZWQgcmVnaW9ucyB1c2UgcGVyLWRldmlj ZSBwYWdlIHRhYmxlcywgZXh0ZW5kIHRoaXMgdG8KYWxsIGRldmljZXMgKGlu IHNjcmF0Y2gtcGFnZSBxdWFyYW50aW5pbmcgbW9kZSkuIFRoaXMgYWxsb3dz IHRoZSBsZWFmCnBhZ2VzIHRvIGJlIG1hcHBlZCByL3csIHRodXMgY292ZXJp bmcgYWxzbyBtZW1vcnkgd3JpdGVzIChyYXRoZXIgdGhhbgpqdXN0IHJlYWRz KSBpc3N1ZWQgYnkgbm9uLXF1aWVzY2VudCBkZXZpY2VzLgoKU2V0IHVwIHF1 YXJhbnRpbmUgcGFnZSB0YWJsZXMgYXMgbGF0ZSBhcyBwb3NzaWJsZSwgeWV0 IGVhcmx5IGVub3VnaCB0bwpub3QgZW5jb3VudGVyIGZhaWx1cmUgZHVyaW5n IGRlLWFzc2lnbi4gVGhpcyBtZWFucyBzZXR1cCBnZW5lcmFsbHkKaGFwcGVu cyBpbiBhc3NpZ25fZGV2aWNlKCksIHdoaWxlIChmb3Igbm93KSB0aGUgb25l IGluIGRlYXNzaWduX2RldmljZSgpCmlzIHRoZXJlIG1haW5seSB0byBiZSBv biB0aGUgc2FmZSBzaWRlLgoKSW4gVlQtZCdzIERJRCBhbGxvY2F0aW9uIGZ1 bmN0aW9uIGRvbid0IHJlcXVpcmUgdGhlIElPTU1VIGxvY2sgdG8gYmUKaGVs ZCBhbnltb3JlOiBBbGwgaW52b2x2ZWQgY29kZSBwYXRocyBob2xkIHBjaWRl dnNfbG9jaywgc28gdGhpcyB3YXkgd2UKYXZvaWQgdGhlIG5lZWQgdG8gYWNx dWlyZSB0aGUgSU9NTVUgbG9jayBhcm91bmQgdGhlIG5ldyBjYWxsIHRvCmNv bnRleHRfc2V0X2RvbWFpbl9pZCgpLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBE dXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFu IDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpA QCAtMTQ1Myw3ICsxNDUzLDcgQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50 cnkoc3RydWN0IGRvbWFpbgogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0g PSBwMm1fZ2V0X2hvc3RwMm0oZCk7CiAgICAgaW50IHJldDsKIAotICAgIGlm ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQorICAg IGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewogICAg ICAgICBpZiAoICFpc19pb21tdV9lbmFibGVkKGQpICkKICAgICAgICAgICAg IHJldHVybiAwOwotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGNpLmgKQEAgLTEsNiArMSw4IEBA CiAjaWZuZGVmIF9fWDg2X1BDSV9IX18KICNkZWZpbmUgX19YODZfUENJX0hf XwogCisjaW5jbHVkZSA8eGVuL21tLmg+CisKICNkZWZpbmUgQ0Y4X0JERihj ZjgpICAgICAoICAoKGNmOCkgJiAweDAwZmZmZjAwKSA+PiA4KQogI2RlZmlu ZSBDRjhfQUREUl9MTyhjZjgpICggICAoY2Y4KSAmIDB4MDAwMDAwZmMpCiAj ZGVmaW5lIENGOF9BRERSX0hJKGNmOCkgKCAgKChjZjgpICYgMHgwZjAwMDAw MCkgPj4gMTYpCkBAIC0yMCw3ICsyMiwxOCBAQCBzdHJ1Y3QgYXJjaF9wY2lf ZGV2IHsKICAgICAgKiB0aGVtIGRvbid0IHJhY2UgKGRlKWluaXRpYWxpemF0 aW9uIGFuZCBoZW5jZSBkb24ndCBzdHJpY3RseSBuZWVkIGFueQogICAgICAq IGxvY2tpbmcuCiAgICAgICovCisgICAgdW5pb24geworICAgICAgICAvKiBT dWJzZXQgb2Ygc3RydWN0IGFyY2hfaW9tbXUncyBmaWVsZHMsIHRvIGJlIHVz ZWQgaW4gZG9tX2lvLiAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAg ICAgdWludDY0X3QgcGdkX21hZGRyOworICAgICAgICB9IHZ0ZDsKKyAgICAg ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnJv b3RfdGFibGU7CisgICAgICAgIH0gYW1kOworICAgIH07CiAgICAgZG9taWRf dCBwc2V1ZG9fZG9taWQ7CisgICAgbWZuX3QgbGVhZl9tZm47CisgICAgc3Ry dWN0IHBhZ2VfbGlzdF9oZWFkIHBndGFibGVzX2xpc3Q7CiB9OwogCiBpbnQg cGNpX2NvbmZfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBzZWcsIHVu c2lnbmVkIGludCBiZGYsCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaHZt L3N2bS9hbWQtaW9tbXUtcHJvdG8uaAorKysgYi94ZW4vaW5jbHVkZS9hc20t eDg2L2h2bS9zdm0vYW1kLWlvbW11LXByb3RvLmgKQEAgLTU0LDcgKzU0LDgg QEAgaW50IGFtZF9pb21tdV9pbml0X2xhdGUodm9pZCk7CiBpbnQgYW1kX2lv bW11X3VwZGF0ZV9pdnJzX21hcHBpbmdfYWNwaSh2b2lkKTsKIGludCBpb3Zf YWRqdXN0X2lycV9hZmZpbml0aWVzKHZvaWQpOwogCi1pbnQgYW1kX2lvbW11 X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgZG9tYWluICpkKTsKK2ludCBhbWRf aW9tbXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsK K3ZvaWQgYW1kX2lvbW11X3F1YXJhbnRpbmVfdGVhcmRvd24oc3RydWN0IHBj aV9kZXYgKnBkZXYpOwogCiAvKiBtYXBwaW5nIGZ1bmN0aW9ucyAqLwogaW50 IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFp biAqZCwgZGZuX3QgZGZuLAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL2lvbW11X21hcC5jCkBAIC01MzksNjQgKzUzOSwxMzcgQEAgaW50 IGFtZF9pb21tdV9yZXNlcnZlX2RvbWFpbl91bml0eV91bm1hcAogICAgIHJl dHVybiByYzsKIH0KIAotaW50IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGlu ZV9pbml0KHN0cnVjdCBkb21haW4gKmQpCitzdGF0aWMgaW50IGZpbGxfcXB0 KHVuaW9uIGFtZF9pb21tdV9wdGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZl bCwKKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdz W0lPTU1VX01BWF9QVF9MRVZFTFNdLAorICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKLSAgICBzdHJ1Y3QgZG9tYWluX2lv bW11ICpoZCA9IGRvbV9pb21tdShkKTsKKyAgICB1bnNpZ25lZCBpbnQgaTsK KyAgICBpbnQgcmMgPSAwOworCisgICAgZm9yICggaSA9IDA7ICFyYyAmJiBp IDwgUFRFX1BFUl9UQUJMRV9TSVpFOyArK2kgKQorICAgIHsKKyAgICAgICAg dW5pb24gYW1kX2lvbW11X3B0ZSAqcHRlID0gJnRoaXNbaV0sICpuZXh0Owor CisgICAgICAgIGlmICggIXB0ZS0+cHIgKQorICAgICAgICB7CisgICAgICAg ICAgICBpZiAoICFwZ3NbbGV2ZWxdICkKKyAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoZSBwZ3RhYmxl IGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3ZWxs IGFzCisgICAgICAgICAgICAgICAgICogcGFnZSB0YWJsZSBwYWdlcywgYW5k IHRoZSByZXN1bHRpbmcgYWxsb2NhdGlvbnMgYXJlIGFsd2F5cworICAgICAg ICAgICAgICAgICAqIHplcm9lZC4KKyAgICAgICAgICAgICAgICAgKi8KKyAg ICAgICAgICAgICAgICBwZ3NbbGV2ZWxdID0gYWxsb2NfYW1kX2lvbW11X3Bn dGFibGUoKTsKKyAgICAgICAgICAgICAgICBpZiAoICFwZ3NbbGV2ZWxdICkK KyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHJjID0g LUVOT01FTTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgcGFnZV9saXN0X2FkZChw Z3NbbGV2ZWxdLCAmcGRldi0+YXJjaC5wZ3RhYmxlc19saXN0KTsKKworICAg ICAgICAgICAgICAgIGlmICggbGV2ZWwgKQorICAgICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IF9fbWFwX2RvbWFpbl9wYWdl KHBnc1tsZXZlbF0pOworICAgICAgICAgICAgICAgICAgICByYyA9IGZpbGxf cXB0KG5leHQsIGxldmVsIC0gMSwgcGdzLCBwZGV2KTsKKyAgICAgICAgICAg ICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobmV4dCk7CisgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgorICAg ICAgICAgICAgICogUERFcyBhcmUgZXNzZW50aWFsbHkgYSBzdWJzZXQgb2Yg UFRFcywgc28gdGhpcyBmdW5jdGlvbgorICAgICAgICAgICAgICogaXMgZmlu ZSB0byB1c2UgZXZlbiBhdCB0aGUgbGVhZi4KKyAgICAgICAgICAgICAqLwor ICAgICAgICAgICAgc2V0X2lvbW11X3BkZV9wcmVzZW50KHB0ZSwgbWZuX3go cGFnZV90b19tZm4ocGdzW2xldmVsXSkpLCBsZXZlbCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0cnVlKTsKKyAgICAgICAg fQorICAgICAgICBlbHNlIGlmICggbGV2ZWwgJiYgcHRlLT5uZXh0X2xldmVs ICkKKyAgICAgICAgeworICAgICAgICAgICAgcGFnZV9saXN0X2FkZChtZm5f dG9fcGFnZShfbWZuKHB0ZS0+bWZuKSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3QpOworICAgICAgICAg ICAgbmV4dCA9IG1hcF9kb21haW5fcGFnZShfbWZuKHB0ZS0+bWZuKSk7Cisg ICAgICAgICAgICByYyA9IGZpbGxfcXB0KG5leHQsIGxldmVsIC0gMSwgcGdz LCBwZGV2KTsKKyAgICAgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKG5leHQp OworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCitp bnQgYW1kX2lvbW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAq cGRldikKK3sKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9p b21tdShkb21faW8pOwogICAgIHVuc2lnbmVkIGxvbmcgZW5kX2dmbiA9CiAg ICAgICAgIDF1bCA8PCAoREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCAt IFBBR0VfU0hJRlQpOwogICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFtZF9p b21tdV9nZXRfcGFnaW5nX21vZGUoZW5kX2dmbik7Ci0gICAgdW5pb24gYW1k X2lvbW11X3B0ZSAqdGFibGU7CisgICAgdW5zaWduZWQgaW50IHJlcV9pZCA9 IGdldF9kbWFfcmVxdWVzdG9yX2lkKHBkZXYtPnNlZywgcGRldi0+c2JkZi5i ZGYpOworICAgIGNvbnN0IHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX21h cHBpbmdzID0gZ2V0X2l2cnNfbWFwcGluZ3MocGRldi0+c2VnKTsKKyAgICBp bnQgcmM7CiAKLSAgICBpZiAoIGhkLT5hcmNoLnJvb3RfdGFibGUgKQorICAg IEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKyAgICBBU1NFUlQoIWhkLT5h cmNoLnJvb3RfdGFibGUpOworCisgICAgQVNTRVJUKHBkZXYtPmFyY2gucHNl dWRvX2RvbWlkICE9IERPTUlEX0lOVkFMSUQpOworCisgICAgaWYgKCBwZGV2 LT5hcmNoLmFtZC5yb290X3RhYmxlICkKICAgICB7Ci0gICAgICAgIEFTU0VS VF9VTlJFQUNIQUJMRSgpOworICAgICAgICBjbGVhcl9kb21haW5fcGFnZShw ZGV2LT5hcmNoLmxlYWZfbWZuKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAg fQogCi0gICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwot Ci0gICAgaGQtPmFyY2gucm9vdF90YWJsZSA9IGFsbG9jX2FtZF9pb21tdV9w Z3RhYmxlKCk7Ci0gICAgaWYgKCAhaGQtPmFyY2gucm9vdF90YWJsZSApCi0g ICAgICAgIGdvdG8gb3V0OwotCi0gICAgdGFibGUgPSBfX21hcF9kb21haW5f cGFnZShoZC0+YXJjaC5yb290X3RhYmxlKTsKLSAgICB3aGlsZSAoIGxldmVs ICkKKyAgICBwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlID0gYWxsb2NfYW1k X2lvbW11X3BndGFibGUoKTsKKyAgICBpZiAoICFwZGV2LT5hcmNoLmFtZC5y b290X3RhYmxlICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICAv KiBUcmFuc2llbnRseSBpbnN0YWxsIHRoZSByb290IGludG8gRG9tSU8sIGZv ciBpb21tdV9pZGVudGl0eV9tYXBwaW5nKCkuICovCisgICAgaGQtPmFyY2gu cm9vdF90YWJsZSA9IHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGU7CisKKyAg ICByYyA9IGFtZF9pb21tdV9yZXNlcnZlX2RvbWFpbl91bml0eV9tYXAoZG9t X2lvLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpdnJzX21hcHBpbmdzW3JlcV9pZF0udW5pdHlfbWFwLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKwor ICAgIGlvbW11X2lkZW50aXR5X21hcF90ZWFyZG93bihkb21faW8pOworICAg IGhkLT5hcmNoLnJvb3RfdGFibGUgPSBOVUxMOworCisgICAgaWYgKCByYyAp CisgICAgICAgIHByaW50aygiJTA0eDolMDJ4OiUwMnguJXU6IHF1YXJhbnRp bmUgdW5pdHkgbWFwcGluZyBmYWlsZWRcbiIsCisgICAgICAgICAgICAgICBw ZGV2LT5zZWcsIHBkZXYtPmJ1cywKKyAgICAgICAgICAgICAgIFBDSV9TTE9U KHBkZXYtPmRldmZuKSwgUENJX0ZVTkMocGRldi0+ZGV2Zm4pKTsKKyAgICBl bHNlCiAgICAgewotICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAg ICAgICAgdW5zaWduZWQgaW50IGk7CisgICAgICAgIHVuaW9uIGFtZF9pb21t dV9wdGUgKnJvb3Q7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnc1tJ T01NVV9NQVhfUFRfTEVWRUxTXSA9IHt9OwogCi0gICAgICAgIC8qCi0gICAg ICAgICAqIFRoZSBwZ3RhYmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUg bGVhZiBwYWdlLCBhcyB3ZWxsIGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUg cGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdh eXMKLSAgICAgICAgICogemVyb2VkLgotICAgICAgICAgKi8KLSAgICAgICAg cGcgPSBhbGxvY19hbWRfaW9tbXVfcGd0YWJsZSgpOwotICAgICAgICBpZiAo ICFwZyApCi0gICAgICAgICAgICBicmVhazsKKyAgICAgICAgc3Bpbl9sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAgICAgIGZvciAoIGkg PSAwOyBpIDwgUFRFX1BFUl9UQUJMRV9TSVpFOyBpKysgKQotICAgICAgICB7 Ci0gICAgICAgICAgICB1bmlvbiBhbWRfaW9tbXVfcHRlICpwZGUgPSAmdGFi bGVbaV07CisgICAgICAgIHJvb3QgPSBfX21hcF9kb21haW5fcGFnZShwZGV2 LT5hcmNoLmFtZC5yb290X3RhYmxlKTsKKyAgICAgICAgcmMgPSBmaWxsX3Fw dChyb290LCBsZXZlbCAtIDEsIHBncywgcGRldik7CisgICAgICAgIHVubWFw X2RvbWFpbl9wYWdlKHJvb3QpOwogCi0gICAgICAgICAgICAvKgotICAgICAg ICAgICAgICogUERFcyBhcmUgZXNzZW50aWFsbHkgYSBzdWJzZXQgb2YgUFRF cywgc28gdGhpcyBmdW5jdGlvbgotICAgICAgICAgICAgICogaXMgZmluZSB0 byB1c2UgZXZlbiBhdCB0aGUgbGVhZi4KLSAgICAgICAgICAgICAqLwotICAg ICAgICAgICAgc2V0X2lvbW11X3BkZV9wcmVzZW50KHBkZSwgbWZuX3gocGFn ZV90b19tZm4ocGcpKSwgbGV2ZWwgLSAxLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGZhbHNlLCB0cnVlKTsKLSAgICAgICAgfQorICAg ICAgICBwZGV2LT5hcmNoLmxlYWZfbWZuID0gcGFnZV90b19tZm4ocGdzWzBd KTsKIAotICAgICAgICB1bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7Ci0gICAg ICAgIHRhYmxlID0gX19tYXBfZG9tYWluX3BhZ2UocGcpOwotICAgICAgICBs ZXZlbC0tOworICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGlu Z19sb2NrKTsKICAgICB9Ci0gICAgdW5tYXBfZG9tYWluX3BhZ2UodGFibGUp OwogCi0gb3V0OgotICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5n X2xvY2spOworICAgIGlmICggcmMgKQorICAgICAgICBhbWRfaW9tbXVfcXVh cmFudGluZV90ZWFyZG93bihwZGV2KTsKKworICAgIHJldHVybiByYzsKK30K Kwordm9pZCBhbWRfaW9tbXVfcXVhcmFudGluZV90ZWFyZG93bihzdHJ1Y3Qg cGNpX2RldiAqcGRldikKK3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsK KworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKworICAgIGlmICgg IXBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGUgKQorICAgICAgICByZXR1cm47 CisKKyAgICB3aGlsZSAoIChwZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgm cGRldi0+YXJjaC5wZ3RhYmxlc19saXN0KSkgKQorICAgICAgICBmcmVlX2Ft ZF9pb21tdV9wZ3RhYmxlKHBnKTsKIAotICAgIC8qIFBhZ2VzIGxlYWtlZCBp biBmYWlsdXJlIGNhc2UgKi8KLSAgICByZXR1cm4gbGV2ZWwgPyAtRU5PTUVN IDogMDsKKyAgICBwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlID0gTlVMTDsK IH0KIAogLyoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3Bj aV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h bWQvcGNpX2FtZF9pb21tdS5jCkBAIC0xMjUsNiArMTI1LDggQEAgc3RhdGlj IGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwogICAgIHU4IGJ1 cyA9IHBkZXYtPmJ1czsKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9 IGRvbV9pb21tdShkb21haW4pOwogICAgIGNvbnN0IHN0cnVjdCBpdnJzX21h cHBpbmdzICppdnJzX2RldjsKKyAgICBjb25zdCBzdHJ1Y3QgcGFnZV9pbmZv ICpyb290X3BnOworICAgIGRvbWlkX3QgZG9taWQ7CiAKICAgICBCVUdfT04o IWhkLT5hcmNoLnBhZ2luZ19tb2RlIHx8ICFpb21tdS0+ZGV2X3RhYmxlLmJ1 ZmZlcik7CiAKQEAgLTE0NCwxNCArMTQ2LDI1IEBAIHN0YXRpYyBpbnQgX19t dXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBkdGUgPSAmdGFibGVb cmVxX2lkXTsKICAgICBpdnJzX2RldiA9ICZnZXRfaXZyc19tYXBwaW5ncyhp b21tdS0+c2VnKVtyZXFfaWRdOwogCisgICAgaWYgKCBkb21haW4gIT0gZG9t X2lvICkKKyAgICB7CisgICAgICAgIHJvb3RfcGcgPSBoZC0+YXJjaC5yb290 X3RhYmxlOworICAgICAgICBkb21pZCA9IGRvbWFpbi0+ZG9tYWluX2lkOwor ICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICByb290X3BnID0gcGRl di0+YXJjaC5hbWQucm9vdF90YWJsZTsKKyAgICAgICAgZG9taWQgPSBwZGV2 LT5hcmNoLnBzZXVkb19kb21pZDsKKyAgICB9CisKICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIAogICAgIGlmICggIWR0 ZS0+diB8fCAhZHRlLT50diApCiAgICAgewogICAgICAgICAvKiBiaW5kIERU RSB0byBkb21haW4gcGFnZS10YWJsZXMgKi8KICAgICAgICAgcmMgPSBhbWRf aW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgKLSAgICAgICAgICAgICAgICAg ZHRlLCBwYWdlX3RvX21hZGRyKGhkLT5hcmNoLnJvb3RfdGFibGUpLAotICAg ICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2gucGFn aW5nX21vZGUsIHNyX2ZsYWdzKTsKKyAgICAgICAgICAgICAgICAgZHRlLCBw YWdlX3RvX21hZGRyKHJvb3RfcGcpLCBkb21pZCwKKyAgICAgICAgICAgICAg ICAgaGQtPmFyY2gucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsKICAgICAgICAg aWYgKCByYyApCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChyYyA8 IDApOwpAQCAtMTc1LDcgKzE4OCw3IEBAIHN0YXRpYyBpbnQgX19tdXN0X2No ZWNrIGFtZF9pb21tdV9zZXR1cF8KIAogICAgICAgICBhbWRfaW9tbXVfZmx1 c2hfZGV2aWNlKGlvbW11LCByZXFfaWQpOwogICAgIH0KLSAgICBlbHNlIGlm ICggZHRlLT5wdF9yb290ICE9IG1mbl94KHBhZ2VfdG9fbWZuKGhkLT5hcmNo LnJvb3RfdGFibGUpKSApCisgICAgZWxzZSBpZiAoIGR0ZS0+cHRfcm9vdCAh PSBtZm5feChwYWdlX3RvX21mbihyb290X3BnKSkgKQogICAgIHsKICAgICAg ICAgLyoKICAgICAgICAgICogU3RyaWN0bHkgc3BlYWtpbmcgaWYgdGhlIGRl dmljZSBpcyB0aGUgb25seSBvbmUgd2l0aCB0aGlzIHJlcXVlc3RvcgpAQCAt MTg4LDggKzIwMSw4IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9p b21tdV9zZXR1cF8KICAgICAgICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CiAg ICAgICAgIGVsc2UKICAgICAgICAgICAgIHJjID0gYW1kX2lvbW11X3NldF9y b290X3BhZ2VfdGFibGUoCi0gICAgICAgICAgICAgICAgICAgICBkdGUsIHBh Z2VfdG9fbWFkZHIoaGQtPmFyY2gucm9vdF90YWJsZSksCi0gICAgICAgICAg ICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2gucGFnaW5n X21vZGUsIHNyX2ZsYWdzKTsKKyAgICAgICAgICAgICAgICAgICAgIGR0ZSwg cGFnZV90b19tYWRkcihyb290X3BnKSwgZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICBoZC0+YXJjaC5wYWdpbmdfbW9kZSwgc3JfZmxhZ3MpOwogICAg ICAgICBpZiAoIHJjIDwgMCApCiAgICAgICAgIHsKICAgICAgICAgICAgIHNw aW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CkBA IC0yMDgsNiArMjIxLDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1k X2lvbW11X3NldHVwXwogICAgICAgICAgICAgICAqIGludGVuZGVkIGFueXdh eS4KICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAhcGRldi0+ZG9t YWluLT5pc19keWluZyAmJgorICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiAh PSBkb21faW8gJiYKICAgICAgICAgICAgICAoYW55X3BkZXZfYmVoaW5kX2lv bW11KHBkZXYtPmRvbWFpbiwgcGRldiwgaW9tbXUpIHx8CiAgICAgICAgICAg ICAgIHBkZXYtPnBoYW50b21fc3RyaWRlKSApCiAgICAgICAgICAgICBwcmlu dGsoIiAlMDR4OiUwMng6JTAyeC4ldTogcmVhc3NpZ25tZW50IG1heSBjYXVz ZSAlcGQgZGF0YSBjb3JydXB0aW9uXG4iLApAQCAtMjM4LDkgKzI1Miw4IEBA IHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAg ICBBTURfSU9NTVVfREVCVUcoIlNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZp Y2UgaWQgPSAlI3gsIHR5cGUgPSAlI3gsICIKICAgICAgICAgICAgICAgICAg ICAgInJvb3QgdGFibGUgPSAlIyJQUkl4NjQiLCAiCiAgICAgICAgICAgICAg ICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAlZFxuIiwKLSAg ICAgICAgICAgICAgICAgICAgcmVxX2lkLCBwZGV2LT50eXBlLAotICAgICAg ICAgICAgICAgICAgICBwYWdlX3RvX21hZGRyKGhkLT5hcmNoLnJvb3RfdGFi bGUpLAotICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwg aGQtPmFyY2gucGFnaW5nX21vZGUpOworICAgICAgICAgICAgICAgICAgICBy ZXFfaWQsIHBkZXYtPnR5cGUsIHBhZ2VfdG9fbWFkZHIocm9vdF9wZyksCisg ICAgICAgICAgICAgICAgICAgIGRvbWlkLCBoZC0+YXJjaC5wYWdpbmdfbW9k ZSk7CiAKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAKQEAgLTMx Myw3ICszMjYsNyBAQCBzdGF0aWMgaW50IGlvdl9lbmFibGVfeHQodm9pZCkK IAogaW50IGFtZF9pb21tdV9hbGxvY19yb290KHN0cnVjdCBkb21haW5faW9t bXUgKmhkKQogewotICAgIGlmICggdW5saWtlbHkoIWhkLT5hcmNoLnJvb3Rf dGFibGUpICkKKyAgICBpZiAoIHVubGlrZWx5KCFoZC0+YXJjaC5yb290X3Rh YmxlKSAmJiBoZCAhPSBkb21faW9tbXUoZG9tX2lvKSApCiAgICAgewogICAg ICAgICBoZC0+YXJjaC5yb290X3RhYmxlID0gYWxsb2NfYW1kX2lvbW11X3Bn dGFibGUoKTsKICAgICAgICAgaWYgKCAhaGQtPmFyY2gucm9vdF90YWJsZSAp CkBAIC00MDQsNyArNDE3LDcgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2Rp c2FibGVfZG9tYWluX2RldgogCiAgICAgICAgIEFNRF9JT01NVV9ERUJVRygi RGlzYWJsZTogZGV2aWNlIGlkID0gJSN4LCAiCiAgICAgICAgICAgICAgICAg ICAgICAgICAiZG9tYWluID0gJWQsIHBhZ2luZyBtb2RlID0gJWRcbiIsCi0g ICAgICAgICAgICAgICAgICAgICAgICByZXFfaWQsICBkb21haW4tPmRvbWFp bl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgZHRlLT5k b21haW5faWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBkb21faW9tbXUo ZG9tYWluKS0+YXJjaC5wYWdpbmdfbW9kZSk7CiAgICAgfQogICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CkBAIC02 NjgsNiArNjgxLDggQEAgc3RhdGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2Rl dmljZSh1OCBkZQogCiAgICAgYW1kX2lvbW11X2Rpc2FibGVfZG9tYWluX2Rl dmljZShwZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwgcGRldik7CiAKKyAg ICBhbWRfaW9tbXVfcXVhcmFudGluZV90ZWFyZG93bihwZGV2KTsKKwogICAg IGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsIGlv bW11LT5kb21pZF9tYXApOwogICAgIHBkZXYtPmFyY2gucHNldWRvX2RvbWlk ID0gRE9NSURfSU5WQUxJRDsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lv bW11LmMKQEAgLTQ1MCwyMSArNDUwLDIxIEBAIGludCBpb21tdV9pb3RsYl9m bHVzaF9hbGwoc3RydWN0IGRvbWFpbgogICAgIHJldHVybiByYzsKIH0KIAot c3RhdGljIGludCBfX2luaXQgaW9tbXVfcXVhcmFudGluZV9pbml0KHZvaWQp CitpbnQgaW9tbXVfcXVhcmFudGluZV9kZXZfaW5pdChkZXZpY2VfdCAqZGV2 KQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9t X2lvbW11KGRvbV9pbyk7Ci0gICAgaW50IHJjOwogCi0gICAgZG9tX2lvLT5v cHRpb25zIHw9IFhFTl9ET01DVExfQ0RGX2lvbW11OworICAgIGlmICggIWlv bW11X3F1YXJhbnRpbmUgfHwgIWhkLT5wbGF0Zm9ybV9vcHMtPnF1YXJhbnRp bmVfaW5pdCApCisgICAgICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBpb21t dV9kb21haW5faW5pdChkb21faW8sIDApOwotICAgIGlmICggcmMgKQotICAg ICAgICByZXR1cm4gcmM7CisgICAgcmV0dXJuIGlvbW11X2NhbGwoaGQtPnBs YXRmb3JtX29wcywgcXVhcmFudGluZV9pbml0LCBkZXYpOworfQogCi0gICAg aWYgKCAhaGQtPnBsYXRmb3JtX29wcy0+cXVhcmFudGluZV9pbml0ICkKLSAg ICAgICAgcmV0dXJuIDA7CitzdGF0aWMgaW50IF9faW5pdCBpb21tdV9xdWFy YW50aW5lX2luaXQodm9pZCkKK3sKKyAgICBkb21faW8tPm9wdGlvbnMgfD0g WEVOX0RPTUNUTF9DREZfaW9tbXU7CiAKLSAgICByZXR1cm4gaGQtPnBsYXRm b3JtX29wcy0+cXVhcmFudGluZV9pbml0KGRvbV9pbyk7CisgICAgcmV0dXJu IGlvbW11X2RvbWFpbl9pbml0KGRvbV9pbywgMCk7CiB9CiAKIGludCBfX2lu aXQgaW9tbXVfc2V0dXAodm9pZCkKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNp LmMKQEAgLTkyOSw5ICs5MjksMTYgQEAgc3RhdGljIGludCBkZWFzc2lnbl9k ZXZpY2Uoc3RydWN0IGRvbWFpbgogICAgICAgICByZXR1cm4gLUVOT0RFVjsK IAogICAgIC8qIERlLWFzc2lnbm1lbnQgZnJvbSBkb21faW8gc2hvdWxkIGRl LXF1YXJhbnRpbmUgdGhlIGRldmljZSAqLwotICAgIHRhcmdldCA9ICgocGRl di0+cXVhcmFudGluZSB8fCBpb21tdV9xdWFyYW50aW5lKSAmJgotICAgICAg ICAgICAgICBwZGV2LT5kb21haW4gIT0gZG9tX2lvKSA/Ci0gICAgICAgIGRv bV9pbyA6IGhhcmR3YXJlX2RvbWFpbjsKKyAgICBpZiAoIChwZGV2LT5xdWFy YW50aW5lIHx8IGlvbW11X3F1YXJhbnRpbmUpICYmIHBkZXYtPmRvbWFpbiAh PSBkb21faW8gKQorICAgIHsKKyAgICAgICAgcmV0ID0gaW9tbXVfcXVhcmFu dGluZV9kZXZfaW5pdChwY2lfdG9fZGV2KHBkZXYpKTsKKyAgICAgICAgaWYg KCByZXQgKQorICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAgICAgIHRh cmdldCA9IGRvbV9pbzsKKyAgICB9CisgICAgZWxzZQorICAgICAgICB0YXJn ZXQgPSBoYXJkd2FyZV9kb21haW47CiAKICAgICB3aGlsZSAoIHBkZXYtPnBo YW50b21fc3RyaWRlICkKICAgICB7CkBAIC0xNTQ3LDYgKzE1NTQsMTMgQEAg c3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4gKgogICAg ICAgICBtc2l4dGJsX2luaXQoZCk7CiAgICAgfQogCisgICAgaWYgKCBwZGV2 LT5kb21haW4gIT0gZG9tX2lvICkKKyAgICB7CisgICAgICAgIHJjID0gaW9t bXVfcXVhcmFudGluZV9kZXZfaW5pdChwY2lfdG9fZGV2KHBkZXYpKTsKKyAg ICAgICAgaWYgKCByYyApCisgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAg fQorCiAgICAgcGRldi0+ZmF1bHQuY291bnQgPSAwOwogCiAgICAgaWYgKCAo cmMgPSBoZC0+cGxhdGZvcm1fb3BzLT5hc3NpZ25fZGV2aWNlKGQsIGRldmZu LCBwY2lfdG9fZGV2KHBkZXYpLCBmbGFnKSkgKQotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtNDMsNiArNDMsMTIgQEAKICNp bmNsdWRlICJ2dGQuaCIKICNpbmNsdWRlICIuLi9hdHMuaCIKIAorI2RlZmlu ZSBERVZJQ0VfRE9NSUQoZCwgcGRldikgKChkKSAhPSBkb21faW8gPyAoZCkt PmRvbWFpbl9pZCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IChwZGV2KS0+YXJjaC5wc2V1ZG9fZG9taWQpCisj ZGVmaW5lIERFVklDRV9QR1RBQkxFKGQsIHBkZXYpICgoZCkgIT0gZG9tX2lv IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZG9tX2lv bW11KGQpLT5hcmNoLnBnZF9tYWRkciBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICA6IChwZGV2KS0+YXJjaC52dGQucGdkX21hZGRyKQor CiAvKiBQb3NzaWJsZSB1bmZpbHRlcmVkIExBUElDL01TSSBtZXNzYWdlcyBm cm9tIHVudHJ1c3RlZCBzb3VyY2VzPyAqLwogYm9vbCBfX3JlYWRfbW9zdGx5 IHVudHJ1c3RlZF9tc2k7CiAKQEAgLTc4LDEzICs4NCwxOCBAQCBzdGF0aWMg aW50IGdldF9pb21tdV9kaWQoZG9taWRfdCBkb21pZCwKIAogI2RlZmluZSBE SURfRklFTERfV0lEVEggMTYKICNkZWZpbmUgRElEX0hJR0hfT0ZGU0VUIDgK KworLyoKKyAqIFRoaXMgZnVuY3Rpb24gbWF5IGhhdmUgImNvbnRleHQiIHBh c3NlZCBhcyBOVUxMLCB0byBtZXJlbHkgb2J0YWluIGEgRElECisgKiBmb3Ig ImRvbWlkIi4KKyAqLwogc3RhdGljIGludCBjb250ZXh0X3NldF9kb21haW5f aWQoc3RydWN0IGNvbnRleHRfZW50cnkgKmNvbnRleHQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb21pZF90IGRvbWlkLCBzdHJ1Y3Qg dnRkX2lvbW11ICppb21tdSkKIHsKICAgICB1bnNpZ25lZCBsb25nIG5yX2Rv bSwgaTsKICAgICBpbnQgZm91bmQgPSAwOwogCi0gICAgQVNTRVJUKHNwaW5f aXNfbG9ja2VkKCZpb21tdS0+bG9jaykpOworICAgIEFTU0VSVChwY2lkZXZz X2xvY2tlZCgpKTsKIAogICAgIG5yX2RvbSA9IGNhcF9uZG9tcyhpb21tdS0+ Y2FwKTsKICAgICBpID0gZmluZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2Jp dG1hcCwgbnJfZG9tKTsKQEAgLTExMCw4ICsxMjEsMTMgQEAgc3RhdGljIGlu dCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgfQogCiAgICAg c2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0bWFwKTsKLSAgICBjb250ZXh0 LT5oaSAmPSB+KCgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElE X0hJR0hfT0ZGU0VUKTsKLSAgICBjb250ZXh0LT5oaSB8PSAoaSAmICgoMSA8 PCBESURfRklFTERfV0lEVEgpIC0gMSkpIDw8IERJRF9ISUdIX09GRlNFVDsK KworICAgIGlmICggY29udGV4dCApCisgICAgeworICAgICAgICBjb250ZXh0 LT5oaSAmPSB+KCgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElE X0hJR0hfT0ZGU0VUKTsKKyAgICAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAo KDEgPDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZT RVQ7CisgICAgfQorCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTE2MSw4ICsx NzcsMTIgQEAgc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAo c3RydQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHBjaV9kZXYgKmV4Y2x1ZGUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkK IHsKLSAgICBib29sIGZvdW5kID0gYW55X3BkZXZfYmVoaW5kX2lvbW11KGQs IGV4Y2x1ZGUsIGlvbW11KTsKKyAgICBib29sIGZvdW5kOworCisgICAgaWYg KCBkID09IGRvbV9pbyApCisgICAgICAgIHJldHVybjsKIAorICAgIGZvdW5k ID0gYW55X3BkZXZfYmVoaW5kX2lvbW11KGQsIGV4Y2x1ZGUsIGlvbW11KTsK ICAgICAvKgogICAgICAqIEhpZGRlbiBkZXZpY2VzIGFyZSBhc3NvY2lhdGVk IHdpdGggRG9tWEVOIGJ1dCB1c2FibGUgYnkgdGhlIGhhcmR3YXJlCiAgICAg ICogZG9tYWluLiBIZW5jZSB0aGV5IG5lZWQgY29uc2lkZXJpbmcgaGVyZSBh cyB3ZWxsLgpAQCAtMTQwMCw3ICsxNDIwLDcgQEAgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmdfb25lKAogICAgICAgICBkb21pZCA9IGlvbW11LT5kb21p ZF9tYXBbcHJldl9kaWRdOwogICAgICAgICBpZiAoIGRvbWlkIDwgRE9NSURf RklSU1RfUkVTRVJWRUQgKQogICAgICAgICAgICAgcHJldl9kb20gPSByY3Vf bG9ja19kb21haW5fYnlfaWQoZG9taWQpOwotICAgICAgICBlbHNlIGlmICgg ZG9taWQgPT0gRE9NSURfSU8gKQorICAgICAgICBlbHNlIGlmICggcGRldiA/ IGRvbWlkID09IHBkZXYtPmFyY2gucHNldWRvX2RvbWlkIDogZG9taWQgPiBE T01JRF9NQVNLICkKICAgICAgICAgICAgIHByZXZfZG9tID0gcmN1X2xvY2tf ZG9tYWluKGRvbV9pbyk7CiAgICAgICAgIGlmICggIXByZXZfZG9tICkKICAg ICAgICAgewpAQCAtMTU3NywxNSArMTU5NywxMiBAQCBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoCiAgICAgewogICAgICAgICBpZiAoICFwcmV2 X2RvbSApCiAgICAgICAgICAgICBkb21haW5fY29udGV4dF91bm1hcF9vbmUo ZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlE KGRvbWFpbiwgcGRldikpOwogICAgICAgICBlbHNlIGlmICggcHJldl9kb20g IT0gZG9tYWluICkgLyogQXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uLiAqLwot ICAgICAgICB7Ci0gICAgICAgICAgICBoZCA9IGRvbV9pb21tdShwcmV2X2Rv bSk7CiAgICAgICAgICAgICBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShw cmV2X2RvbSwgaW9tbXUsIGJ1cywgZGV2Zm4sIHBkZXYsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhk LT5hcmNoLnBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERFVklDRV9ET01JRChwcmV2X2RvbSwgcGRldiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZJQ0Vf UEdUQUJMRShwcmV2X2RvbSwgcGRldiksCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtb2RlICYgTUFQX1dJVEhfUk1SUik7Ci0g ICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIHByZXZfZG9tICkKQEAgLTE2 MDIsNyArMTYxOSw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFw cGluZyhzdHJ1Y3QKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRy aGQ7CiAgICAgY29uc3Qgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwot ICAgIHBhZGRyX3QgcGdkX21hZGRyID0gZG9tX2lvbW11KGRvbWFpbiktPmFy Y2gucGdkX21hZGRyOworICAgIHBhZGRyX3QgcGdkX21hZGRyID0gREVWSUNF X1BHVEFCTEUoZG9tYWluLCBwZGV2KTsKICAgICBkb21pZF90IG9yaWdfZG9t aWQgPSBwZGV2LT5hcmNoLnBzZXVkb19kb21pZDsKICAgICBpbnQgcmV0ID0g MDsKICAgICB1bnNpZ25lZCBpbnQgaSwgbW9kZSA9IDA7CkBAIC0xNjM1LDcg KzE2NTIsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmco c3RydWN0CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICggZG9t YWluICE9IHBkZXYtPmRvbWFpbiApCisgICAgaWYgKCBkb21haW4gIT0gcGRl di0+ZG9tYWluICYmIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQogICAgIHsK ICAgICAgICAgaWYgKCBwZGV2LT5kb21haW4tPmlzX2R5aW5nICkKICAgICAg ICAgICAgIG1vZGUgfD0gTUFQX09XTkVSX0RZSU5HOwpAQCAtMTY3Niw4ICsx NjkzLDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdAogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSWU6 IG1hcCAlMDR4OiUwMng6JTAyeC4ldVxuIiwKICAgICAgICAgICAgICAgICAg ICBkb21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsCiAgICAgICAgICAgICAg ICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwotICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4s IGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBkb21haW4tPmRvbWFpbl9p ZCwgcGdkX21hZGRyLAorICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9t YXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLCBw ZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSwgcGdkX21hZGRyLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsK ICAgICAgICAgaWYgKCByZXQgPiAwICkKICAgICAgICAgICAgIHJldCA9IDA7 CkBAIC0xNzAxLDggKzE3MTgsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAgICAgICAgICAgUENJX1NM T1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwogCiAgICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9t bXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFk ZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZGV2LCBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdkX21hZGRy LCBtb2RlKTsKICAgICAgICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgICAg IGJyZWFrOwogICAgICAgICBwcmV2X3ByZXNlbnQgPSByZXQ7CkBAIC0xNzMw LDggKzE3NDcsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmcoc3RydWN0CiAgICAgICAgICAqLwogICAgICAgICBpZiAoIHJldCA+PSAw ICkKICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdf b25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBk b21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBE RVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnZF9tYWRkciwgbW9kZSk7 CiAKICAgICAgICAgLyoKICAgICAgICAgICogRGV2aWNlcyBiZWhpbmQgUENJ ZS10by1QQ0kvUENJeCBicmlkZ2UgbWF5IGdlbmVyYXRlIGRpZmZlcmVudApA QCAtMTc0Niw4ICsxNzYzLDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICBpZiAoICFyZXQgJiYgcGRldl90 eXBlKHNlZywgYnVzLCBkZXZmbikgPT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJ REdFICYmCiAgICAgICAgICAgICAgKHNlY2J1cyAhPSBwZGV2LT5idXMgfHwg cGRldi0+ZGV2Zm4gIT0gMCkgKQogICAgICAgICAgICAgcmV0ID0gZG9tYWlu X2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgc2Vj YnVzLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRkciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgREVWSUNFX0RPTUlEKGRvbWFpbiwgcGRldiksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw Z2RfbWFkZHIsIG1vZGUpOwogCiAgICAgICAgIGlmICggcmV0ICkKICAgICAg ICAgewpAQCAtMTg5Niw3ICsxOTEzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBhY3BpX2RyaGRfdW5pdCAqZG9tYQogICAgICAgICAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKICAgICAgICAgICAgICAgICAg ICBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11 LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFpbiwg cGRldikpOwogICAgICAgICBpZiAoICFyZXQgJiYgZGV2Zm4gPT0gcGRldi0+ ZGV2Zm4gJiYgYXRzX2RldmljZShwZGV2LCBkcmhkKSA+IDAgKQogICAgICAg ICAgICAgZGlzYWJsZV9hdHNfZGV2aWNlKHBkZXYpOwogCkBAIC0xOTA3LDcg KzE5MjQsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0 ICpkb21hCiAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6UENJ OiB1bm1hcCAlMDR4OiUwMng6JTAyeC4ldVxuIiwKICAgICAgICAgICAgICAg ICAgICBkb21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsIFBDSV9TTE9UKGRl dmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKICAgICAgICAgcmV0ID0gZG9tYWlu X2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21h aW4tPmRvbWFpbl9pZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAgICAg ICAgIGlmICggcmV0ICkKICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0xOTMw LDE4ICsxOTQ3LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhk X3VuaXQgKmRvbWEKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK KyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFp biwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9ET01JRChkb21haW4s IHBkZXYpKTsKICAgICAgICAgLyogUENJZSB0byBQQ0kvUENJeCBicmlkZ2Ug Ki8KLSAgICAgICAgaWYgKCBwZGV2X3R5cGUoc2VnLCB0bXBfYnVzLCB0bXBf ZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JSSURHRSApCi0gICAgICAg IHsKLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29u ZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5k b21haW5faWQpOwotICAgICAgICAgICAgaWYgKCAhcmV0ICkKLSAgICAgICAg ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWlu LCBpb21tdSwgc2VjYnVzLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7Ci0g ICAgICAgIH0KLSAgICAgICAgZWxzZSAvKiBMZWdhY3kgUENJIGJyaWRnZSAq LwotICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KGRvbWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCk7CisgICAgICAgIGlmICggIXJldCAmJiBwZGV2X3R5cGUoc2Vn LCB0bXBfYnVzLCB0bXBfZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JS SURHRSApCisgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1h cF9vbmUoZG9tYWluLCBpb21tdSwgc2VjYnVzLCAwLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9ET01JRChk b21haW4sIHBkZXYpKTsKIAogICAgICAgICBicmVhazsKIApAQCAtMTk4Nyw2 ICsxOTk4LDI1IEBAIHN0YXRpYyB2b2lkIGlvbW11X2RvbWFpbl90ZWFyZG93 bihzdHJ1Y3QKICAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZC0+ZG9tYWlu X2lkLCBkcmhkLT5pb21tdSk7CiB9CiAKK3N0YXRpYyB2b2lkIHF1YXJhbnRp bmVfdGVhcmRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRf dW5pdCAqZHJoZCkKK3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKKwor ICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKworICAgIGlmICggIXBk ZXYtPmFyY2gudnRkLnBnZF9tYWRkciApCisgICAgICAgIHJldHVybjsKKwor ICAgIHdoaWxlICggKHBnID0gcGFnZV9saXN0X3JlbW92ZV9oZWFkKCZwZGV2 LT5hcmNoLnBndGFibGVzX2xpc3QpKSApCisgICAgICAgIGZyZWVfZG9taGVh cF9wYWdlKHBnKTsKKworICAgIHBkZXYtPmFyY2gudnRkLnBnZF9tYWRkciA9 IDA7CisKKyAgICBpZiAoIGRyaGQgKQorICAgICAgICBjbGVhbnVwX2RvbWlk X21hcChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgZHJoZC0+aW9tbXUpOwor fQorCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBf cGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4s IHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmx1c2hfZmxh Z3MpCkBAIC0yMjA5LDYgKzIyMzksOCBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X3JlbW92ZV9kZXZpY2UodTgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7CiAgICAgfQogCisgICAg cXVhcmFudGluZV90ZWFyZG93bihwZGV2LCBkcmhkKTsKKwogICAgIGlmICgg ZHJoZCApCiAgICAgewogICAgICAgICBpb21tdV9mcmVlX2RvbWlkKHBkZXYt PmFyY2gucHNldWRvX2RvbWlkLApAQCAtMjg4OCw2MCArMjkyMCwxMzkgQEAg c3RhdGljIHZvaWQgdnRkX2R1bXBfcDJtX3RhYmxlKHN0cnVjdCBkbwogICAg IHZ0ZF9kdW1wX3AybV90YWJsZV9sZXZlbChoZC0+YXJjaC5wZ2RfbWFkZHIs IGFnYXdfdG9fbGV2ZWwoaGQtPmFyY2guYWdhdyksIDAsIDApOwogfQogCi1z dGF0aWMgaW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lX2luaXQo c3RydWN0IGRvbWFpbiAqZCkKK3N0YXRpYyBpbnQgZmlsbF9xcHQoc3RydWN0 IGRtYV9wdGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZlbCwKKyAgICAgICAg ICAgICAgICAgICAgcGFkZHJfdCBtYWRkcnNbNl0sIHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQogewotICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9t X2lvbW11KGQpOwotICAgIHN0cnVjdCBkbWFfcHRlICpwYXJlbnQ7CisgICAg c3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tX2lvKTsK KyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgcmMgPSAwOworCisgICAg Zm9yICggaSA9IDA7ICFyYyAmJiBpIDwgUFRFX05VTTsgKytpICkKKyAgICB7 CisgICAgICAgIHN0cnVjdCBkbWFfcHRlICpwdGUgPSAmdGhpc1tpXSwgKm5l eHQ7CisKKyAgICAgICAgaWYgKCAhZG1hX3B0ZV9wcmVzZW50KCpwdGUpICkK KyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhbWFkZHJzW2xldmVsXSAp CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAg ICAgICAgICAgKiBUaGUgcGd0YWJsZSBhbGxvY2F0b3IgaXMgZmluZSBmb3Ig dGhlIGxlYWYgcGFnZSwgYXMgd2VsbCBhcworICAgICAgICAgICAgICAgICAq IHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRp b25zIGFyZSBhbHdheXMKKyAgICAgICAgICAgICAgICAgKiB6ZXJvZWQuCisg ICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbWFkZHJzW2xl dmVsXSA9IGFsbG9jX3BndGFibGVfbWFkZHIoMSwgaGQtPm5vZGUpOworICAg ICAgICAgICAgICAgIGlmICggIW1hZGRyc1tsZXZlbF0gKQorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSAtRU5PTUVNOwor ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9 CisKKyAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkKG1hZGRyX3RvX3Bh Z2UobWFkZHJzW2xldmVsXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmcGRldi0+YXJjaC5wZ3RhYmxlc19saXN0KTsKKworICAgICAgICAg ICAgICAgIGlmICggbGV2ZWwgKQorICAgICAgICAgICAgICAgIHsKKyAgICAg ICAgICAgICAgICAgICAgbmV4dCA9IG1hcF92dGRfZG9tYWluX3BhZ2UobWFk ZHJzW2xldmVsXSk7CisgICAgICAgICAgICAgICAgICAgIHJjID0gZmlsbF9x cHQobmV4dCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYpOworICAgICAgICAg ICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UobmV4dCk7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBk bWFfc2V0X3B0ZV9hZGRyKCpwdGUsIG1hZGRyc1tsZXZlbF0pOworICAgICAg ICAgICAgZG1hX3NldF9wdGVfcmVhZGFibGUoKnB0ZSk7CisgICAgICAgICAg ICBkbWFfc2V0X3B0ZV93cml0YWJsZSgqcHRlKTsKKyAgICAgICAgfQorICAg ICAgICBlbHNlIGlmICggbGV2ZWwgJiYgIWRtYV9wdGVfc3VwZXJwYWdlKCpw dGUpICkKKyAgICAgICAgeworICAgICAgICAgICAgcGFnZV9saXN0X2FkZCht YWRkcl90b19wYWdlKGRtYV9wdGVfYWRkcigqcHRlKSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3QpOwor ICAgICAgICAgICAgbmV4dCA9IG1hcF92dGRfZG9tYWluX3BhZ2UoZG1hX3B0 ZV9hZGRyKCpwdGUpKTsKKyAgICAgICAgICAgIHJjID0gZmlsbF9xcHQobmV4 dCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYpOworICAgICAgICAgICAgdW5t YXBfdnRkX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAgICB9CisgICAgfQor CisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGludGVsX2lvbW11 X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKyAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21faW8p OworICAgIHBhZGRyX3QgbWFkZHI7CiAgICAgdW5zaWduZWQgaW50IGFnYXcg PSB3aWR0aF90b19hZ2F3KERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEgp OwogICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFnYXdfdG9fbGV2ZWwoYWdh dyk7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwor ICAgIGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKKyAgICB1 bnNpZ25lZCBpbnQgaSwgYmRmOworICAgIGJvb2wgcm1ycl9mb3VuZCA9IGZh bHNlOworICAgIGludCByYzsKIAotICAgIGlmICggaGQtPmFyY2gucGdkX21h ZGRyICkKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CisgICAgQVNT RVJUKCFoZC0+YXJjaC5wZ2RfbWFkZHIpOworCisgICAgaWYgKCBwZGV2LT5h cmNoLnZ0ZC5wZ2RfbWFkZHIgKQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VO UkVBQ0hBQkxFKCk7CisgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBkZXYt PmFyY2gubGVhZl9tZm4pOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAK LSAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisgICAg ZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5pdChwZGV2KTsKKyAg ICBpZiAoICFkcmhkICkKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAKLSAg ICBoZC0+YXJjaC5wZ2RfbWFkZHIgPSBhbGxvY19wZ3RhYmxlX21hZGRyKDEs IGhkLT5ub2RlKTsKLSAgICBpZiAoICFoZC0+YXJjaC5wZ2RfbWFkZHIgKQot ICAgICAgICBnb3RvIG91dDsKKyAgICBtYWRkciA9IGFsbG9jX3BndGFibGVf bWFkZHIoMSwgaGQtPm5vZGUpOworICAgIGlmICggIW1hZGRyICkKKyAgICAg ICAgcmV0dXJuIC1FTk9NRU07CiAKLSAgICBwYXJlbnQgPSBtYXBfdnRkX2Rv bWFpbl9wYWdlKGhkLT5hcmNoLnBnZF9tYWRkcik7Ci0gICAgd2hpbGUgKCBs ZXZlbCApCi0gICAgewotICAgICAgICB1aW50NjRfdCBtYWRkcjsKLSAgICAg ICAgdW5zaWduZWQgaW50IG9mZnNldDsKKyAgICByYyA9IGNvbnRleHRfc2V0 X2RvbWFpbl9pZChOVUxMLCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgZHJo ZC0+aW9tbXUpOwogCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBwZ3Rh YmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3 ZWxsIGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUg cmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKLSAgICAgICAgICog emVyb2VkLgotICAgICAgICAgKi8KLSAgICAgICAgbWFkZHIgPSBhbGxvY19w Z3RhYmxlX21hZGRyKDEsIGhkLT5ub2RlKTsKLSAgICAgICAgaWYgKCAhbWFk ZHIgKQorICAgIC8qIFRyYW5zaWVudGx5IGluc3RhbGwgdGhlIHJvb3QgaW50 byBEb21JTywgZm9yIGlvbW11X2lkZW50aXR5X21hcHBpbmcoKS4gKi8KKyAg ICBoZC0+YXJjaC5wZ2RfbWFkZHIgPSBtYWRkcjsKKworICAgIGZvcl9lYWNo X3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKKyAgICB7CisgICAgICAg IGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgZm9y ICggb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgUFRFX05VTTsgb2Zmc2V0KysgKQor ICAgICAgICBpZiAoIHJtcnItPnNlZ21lbnQgPT0gcGRldi0+c2VnICYmIGJk ZiA9PSBwZGV2LT5zYmRmLmJkZiApCiAgICAgICAgIHsKLSAgICAgICAgICAg IHN0cnVjdCBkbWFfcHRlICpwdGUgPSAmcGFyZW50W29mZnNldF07CisgICAg ICAgICAgICBybXJyX2ZvdW5kID0gdHJ1ZTsKIAotICAgICAgICAgICAgZG1h X3NldF9wdGVfYWRkcigqcHRlLCBtYWRkcik7Ci0gICAgICAgICAgICBkbWFf c2V0X3B0ZV9yZWFkYWJsZSgqcHRlKTsKKyAgICAgICAgICAgIHJjID0gaW9t bXVfaWRlbnRpdHlfbWFwcGluZyhkb21faW8sIHAybV9hY2Nlc3NfcncsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ YmFzZV9hZGRyZXNzLCBybXJyLT5lbmRfYWRkcmVzcywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICAgICAgICAg IGlmICggcmMgKQorICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJS IFZURFBSRUZJWAorICAgICAgICAgICAgICAgICAgICAgICAiJTA0eDolMDJ4 OiUwMnguJXU6IFJNUlIgcXVhcmFudGluZSBtYXBwaW5nIGZhaWxlZFxuIiwK KyAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5idXMs CisgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBkZXYtPmRldmZu KSwgUENJX0ZVTkMocGRldi0+ZGV2Zm4pKTsKICAgICAgICAgfQotICAgICAg ICBpb21tdV9zeW5jX2NhY2hlKHBhcmVudCwgUEFHRV9TSVpFKTsKKyAgICB9 CiAKLSAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHBhcmVudCk7Ci0g ICAgICAgIHBhcmVudCA9IG1hcF92dGRfZG9tYWluX3BhZ2UobWFkZHIpOwot ICAgICAgICBsZXZlbC0tOworICAgIGlvbW11X2lkZW50aXR5X21hcF90ZWFy ZG93bihkb21faW8pOworICAgIGhkLT5hcmNoLnBnZF9tYWRkciA9IDA7Cisg ICAgcGRldi0+YXJjaC52dGQucGdkX21hZGRyID0gbWFkZHI7CisKKyAgICBp ZiAoICFyYyApCisgICAgeworICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcm9v dDsKKyAgICAgICAgcGFkZHJfdCBtYWRkcnNbNl0gPSB7fTsKKworICAgICAg ICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisKKyAgICAg ICAgcm9vdCA9IG1hcF92dGRfZG9tYWluX3BhZ2UobWFkZHIpOworICAgICAg ICByYyA9IGZpbGxfcXB0KHJvb3QsIGxldmVsIC0gMSwgbWFkZHJzLCBwZGV2 KTsKKyAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHJvb3QpOworCisg ICAgICAgIHBkZXYtPmFyY2gubGVhZl9tZm4gPSBtYWRkcl90b19tZm4obWFk ZHJzWzBdKTsKKworICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKICAgICB9Ci0gICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdl KHBhcmVudCk7CiAKLSBvdXQ6Ci0gICAgc3Bpbl91bmxvY2soJmhkLT5hcmNo Lm1hcHBpbmdfbG9jayk7CisgICAgaWYgKCByYyApCisgICAgICAgIHF1YXJh bnRpbmVfdGVhcmRvd24ocGRldiwgZHJoZCk7CiAKLSAgICAvKiBQYWdlcyBs ZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCi0gICAgcmV0dXJuIGxldmVsID8g LUVOT01FTSA6IDA7CisgICAgcmV0dXJuIHJjOwogfQogCiBjb25zdCBzdHJ1 Y3QgaW9tbXVfb3BzIF9faW5pdGNvbnN0cmVsIGludGVsX2lvbW11X29wcyA9 IHsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAg LTUwOSw3ICs1MDksNyBAQCBzdHJ1Y3QgdnRkX2lvbW11IHsKICAgICB1MzIg bnJfcHRfbGV2ZWxzOwogICAgIHU2NAljYXA7CiAgICAgdTY0CWVjYXA7Ci0g ICAgc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0IGNvbnRleHQsIGRvbWFp biBpZHMgKi8KKyAgICBzcGlubG9ja190IGxvY2s7IC8qIHByb3RlY3QgY29u dGV4dCAqLwogICAgIHNwaW5sb2NrX3QgcmVnaXN0ZXJfbG9jazsgLyogcHJv dGVjdCBpb21tdSByZWdpc3RlciBoYW5kbGluZyAqLwogICAgIHU2NCByb290 X21hZGRyOyAvKiByb290IGVudHJ5IG1hY2hpbmUgYWRkcmVzcyAqLwogICAg IG5vZGVpZF90IG5vZGU7Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5o CisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0yMTEsNyArMjEx LDcgQEAgdHlwZWRlZiBpbnQgaW9tbXVfZ3JkbV90KHhlbl9wZm5fdCBzdGFy dAogc3RydWN0IGlvbW11X29wcyB7CiAgICAgaW50ICgqaW5pdCkoc3RydWN0 IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmh3ZG9tX2luaXQpKHN0cnVjdCBk b21haW4gKmQpOwotICAgIGludCAoKnF1YXJhbnRpbmVfaW5pdCkoc3RydWN0 IGRvbWFpbiAqZCk7CisgICAgaW50ICgqcXVhcmFudGluZV9pbml0KShkZXZp Y2VfdCAqZGV2KTsKICAgICBpbnQgKCphZGRfZGV2aWNlKSh1OCBkZXZmbiwg ZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqZW5hYmxlX2RldmljZSkoZGV2 aWNlX3QgKmRldik7CiAgICAgaW50ICgqcmVtb3ZlX2RldmljZSkodTggZGV2 Zm4sIGRldmljZV90ICpkZXYpOwpAQCAtMzMxLDYgKzMzMSw3IEBAIGludCBf X211c3RfY2hlY2sgaW9tbXVfc3VzcGVuZCh2b2lkKTsKIHZvaWQgaW9tbXVf cmVzdW1lKHZvaWQpOwogdm9pZCBpb21tdV9jcmFzaF9zaHV0ZG93bih2b2lk KTsKIGludCBpb21tdV9nZXRfcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeShpb21t dV9ncmRtX3QgKiwgdm9pZCAqKTsKK2ludCBpb21tdV9xdWFyYW50aW5lX2Rl dl9pbml0KGRldmljZV90ICpkZXYpOwogCiB2b2lkIGlvbW11X3NoYXJlX3Ay bV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKIAo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-01.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-01.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggKGRlKWFzc2lnbiBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSB1cGRhdGVkLgoKQWxzbyBhZGp1c3QgYSByZWxhdGVk IGxvZyBtZXNzYWdlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM1OCAvIHBhcnQg b2YgWFNBLTQwMC4KCkZpeGVzOiA4Yjk5ZjQ0MDBiNjkgKCJWVC1kOiBmaXgg Uk1SUiByZWxhdGVkIGVycm9yIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmll d2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4KUmV2aWV3ZWQt Ynk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTI0MTEsNiAr MjQxMSwxMCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNo aXAoCiB7CiAgICAgaW50IHJldDsKIAorICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X3VubWFwKHNvdXJjZSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0 ICkKKyAgICAgICAgcmV0dXJuIHJldDsKKwogICAgIC8qCiAgICAgICogRGV2 aWNlcyBhc3NpZ25lZCB0byB1bnRydXN0ZWQgZG9tYWlucyAoaGVyZSBhc3N1 bWVkIHRvIGJlIGFueSBkb21VKQogICAgICAqIGNhbiBhdHRlbXB0IHRvIHNl bmQgYXJiaXRyYXJ5IExBUElDL01TSSBtZXNzYWdlcy4gV2UgYXJlIHVucHJv dGVjdGVkCkBAIC0yNDQ3LDEwICsyNDUxLDYgQEAgc3RhdGljIGludCByZWFz c2lnbl9kZXZpY2Vfb3duZXJzaGlwKAogICAgICAgICAgICAgfQogICAgIH0K IAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2 Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAgcmV0dXJuIHJl dDsKLQogICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ ZG9tYWluICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBsaXN0X21vdmUo JnBkZXYtPmRvbWFpbl9saXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwpAQCAt MjUyNyw5ICsyNTI3LDggQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0ID0gcmVh c3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7Ci0g ICAgaWYgKCByZXQgfHwgZCA9PSBkb21faW8gKQotICAgICAgICByZXR1cm4g cmV0OworICAgIGlmICggZCA9PSBkb21faW8gKQorICAgICAgICByZXR1cm4g cmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7 CiAKICAgICAvKiBTZXR1cCBybXJyIGlkZW50aXR5IG1hcHBpbmcgKi8KICAg ICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBpICkKQEAgLTI1 NDIsMjAgKzI1NDEsMzcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgZmxhZyk7CiAgICAgICAgICAg ICBpZiAoIHJldCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg aW50IHJjOwotCi0gICAgICAgICAgICAgICAgcmMgPSByZWFzc2lnbl9kZXZp Y2Vfb3duZXJzaGlwKGQsIHMsIGRldmZuLCBwZGV2KTsKICAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfRVJSIFZURFBSRUZJWAotICAgICAgICAg ICAgICAgICAgICAgICAiIGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uICgl IlBSSXg2NCIsJSJQUkl4NjQiXSBmb3IgRG9tJWQgKCVkKVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgcm1yci0+YmFzZV9hZGRyZXNzLCBybXJyLT5l bmRfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWlu X2lkLCByZXQpOwotICAgICAgICAgICAgICAgIGlmICggcmMgKQotICAgICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIgVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAi IGZhaWxlZCB0byByZWNsYWltICUwNHg6JTAyeDolMDJ4LiV1IGZyb20gJXBk ICglZClcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWcsIGJ1 cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksIGQsIHJjKTsK LSAgICAgICAgICAgICAgICAgICAgZG9tYWluX2NyYXNoKGQpOwotICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIiVwZDogY2Fu bm90IG1hcCByZXNlcnZlZCByZWdpb24gWyUiUFJJeDY0IiwlIlBSSXg2NCJd OiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZCwgcm1yci0+YmFz ZV9hZGRyZXNzLCBybXJyLT5lbmRfYWRkcmVzcywgcmV0KTsKKyAgICAgICAg ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg IH0KKworICAgIGlmICggIXJldCApCisgICAgICAgIHJldCA9IHJlYXNzaWdu X2RldmljZV9vd25lcnNoaXAocywgZCwgZGV2Zm4sIHBkZXYpOworCisgICAg LyogU2VlIHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAoKSBmb3IgdGhlIGh3 ZG9tIGFzcGVjdC4gKi8KKyAgICBpZiAoICFyZXQgfHwgaXNfaGFyZHdhcmVf ZG9tYWluKGQpICkKKyAgICAgICAgcmV0dXJuIHJldDsKKworICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlKCBybXJyLCBiZGYsIGkgKQorICAgIHsKKyAgICAg ICAgaWYgKCBybXJyLT5zZWdtZW50ID09IHNlZyAmJgorICAgICAgICAgICAg IFBDSV9CVVMoYmRmKSA9PSBidXMgJiYKKyAgICAgICAgICAgICBQQ0lfREVW Rk4yKGJkZikgPT0gZGV2Zm4gKQorICAgICAgICB7CisgICAgICAgICAgICBp bnQgcmMgPSBpb21tdV9pZGVudGl0eV9tYXBwaW5nKGQsIHAybV9hY2Nlc3Nf eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcm1yci0+YmFzZV9hZGRyZXNzLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7 CisKKyAgICAgICAgICAgIGlmICggcmMgJiYgcmMgIT0gLUVOT0VOVCApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIgVlREUFJFRklYCisgICAgICAgICAgICAgICAgICAgICAgICIlcGQ6IGNh bm5vdCB1bm1hcCByZXNlcnZlZCByZWdpb24gWyUiUFJJeDY0IiwlIlBSSXg2 NCJdOiAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZCwgcm1yci0+ YmFzZV9hZGRyZXNzLCBybXJyLT5lbmRfYWRkcmVzcywgcmMpOworICAgICAg ICAgICAgICAgIGRvbWFpbl9jcmFzaChkKTsKICAgICAgICAgICAgICAgICBi cmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-02.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-02.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggYWRkL3JlbW92ZSBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSBjbGVhcmVkLgoKQWxzbyBzd2l0Y2ggdG8gJXBkIGlu IHJlbGF0ZWQgbG9nIG1lc3NhZ2VzLgoKRml4ZXM6IGZhODhjZmFkZjkxOCAo InZ0LWQ6IE1hcCBSTVJSIGluIGludGVsX2lvbW11X2FkZF9kZXZpY2UoKSBp ZiB0aGUgZGV2aWNlIGhhcyBSTVJSIikKRml4ZXM6IDhiOTlmNDQwMGI2OSAo IlZULWQ6IGZpeCBSTVJSIHJlbGF0ZWQgZXJyb3IgaGFuZGxpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTIwMDAsMTQgKzIwMDAsNiBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X2FkZF9kZXZpY2UodTggZGV2CiAgICAgaWYgKCAhcGRldi0+ZG9tYWlu ICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICByZXQgPSBkb21h aW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYp OwotICAgIGlmICggcmV0ICkKLSAgICB7Ci0gICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsICJkJWQ6IGNvbnRleHQgbWFwcGluZyBmYWls ZWRcbiIsCi0gICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5f aWQpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQogICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7CiAgICAg ICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBwZGV2LT5zZWcgJiYKQEAgLTIw MjQsMTIgKzIwMTYsMTcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hZGRf ZGV2aWNlKHU4IGRldgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRy ZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKICAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiZCVkOiBSTVJSIG1h cHBpbmcgZmFpbGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IFJNUlIgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21h aW4pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyhwZGV2LT5kb21haW4sIGRl dmZuLCBwZGV2KTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGRwcmludGso WEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IGNvbnRleHQgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluKTsKKwor ICAgIHJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf ZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTIwNTEs MTEgKzIwNDgsMTUgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVf ZGV2aWNlKHU4CiB7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJy OwogICAgIHUxNiBiZGY7Ci0gICAgaW50IGk7CisgICAgaW50IHJldCwgaTsK IAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogCisgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRl di0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByZXQgKQorICAg ICAgICByZXR1cm4gcmV0OworCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2Ug KCBybXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5z ZWdtZW50ICE9IHBkZXYtPnNlZyB8fApAQCAtMjA3MSw3ICsyMDcyLDcgQEAg c3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ZW5kX2FkZHJlc3Ms IDApOwogICAgIH0KIAotICAgIHJldHVybiBkb21haW5fY29udGV4dF91bm1h cChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICByZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fZGV2 aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-03.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-03.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBkcm9wIG93bmVyc2hpcCBjaGVja2luZyBmcm9tIGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKCkKCkRlc3BpdGUgcHV0dGluZyBpbiBxdWl0 ZSBhIGJpdCBvZiBlZmZvcnQgaXQgd2FzIG5vdCBwb3NzaWJsZSB0bwplc3Rh Ymxpc2ggd2h5IGV4YWN0bHkgdGhpcyBjb2RlIGV4aXN0cyAoYmV5b25kIHBv c3NpYmx5IHNhbml0eQpjaGVja2luZykuIEluc3RlYWQgb2YgYSBzdWJzZXF1 ZW50IGNoYW5nZSBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGlzCmxvZ2ljLCBz aW1wbHkgZ2V0IHJpZCBvZiBpdC4KClRha2UgdGhlIG9wcG9ydHVuaXR5IGFu ZCBtb3ZlIHRoZSByZXNwZWN0aXZlIHVubWFwX3Z0ZF9kb21haW5fcGFnZSgp IG91dApvZiB0aGUgbG9ja2VkIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KCi0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMjAsMjggKzEy MCw2IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNvbnRleHRfZ2V0 X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQotewotICAgIHVuc2lnbmVkIGxvbmcgZG9tX2luZGV4LCBu cl9kb207Ci0gICAgaW50IGRvbWlkID0gLTE7Ci0KLSAgICBpZiAoaW9tbXUg JiYgY29udGV4dCkKLSAgICB7Ci0gICAgICAgIG5yX2RvbSA9IGNhcF9uZG9t cyhpb21tdS0+Y2FwKTsKLQotICAgICAgICBkb21faW5kZXggPSBjb250ZXh0 X2RvbWFpbl9pZCgqY29udGV4dCk7Ci0KLSAgICAgICAgaWYgKCBkb21faW5k ZXggPCBucl9kb20gJiYgaW9tbXUtPmRvbWlkX21hcCApCi0gICAgICAgICAg ICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbZG9tX2luZGV4XTsKLSAgICAg ICAgZWxzZQotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcgVlRE UFJFRklYLAotICAgICAgICAgICAgICAgICAgICAiZG9tX2luZGV4ICVsdSBl eGNlZWRzIG5yX2RvbSAlbHUgb3IgaW9tbXUgaGFzIG5vIGRvbWlkX21hcFxu IiwKLSAgICAgICAgICAgICAgICAgICAgZG9tX2luZGV4LCBucl9kb20pOwot ICAgIH0KLSAgICByZXR1cm4gZG9taWQ7Ci19Ci0KIHN0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpCiB7CiAgICAgaW50IGlvbW11X2RvbWlkID0g ZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOwpAQCAtMTM5NSw0 NyArMTM3Myw5IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgK IAogICAgIGlmICggY29udGV4dF9wcmVzZW50KCpjb250ZXh0KSApCiAgICAg ewotICAgICAgICBpbnQgcmVzID0gMDsKLQotICAgICAgICAvKiBUcnkgdG8g Z2V0IGRvbWFpbiBvd25lcnNoaXAgZnJvbSBkZXZpY2Ugc3RydWN0dXJlLiAg SWYgdGhhdCdzCi0gICAgICAgICAqIG5vdCBhdmFpbGFibGUsIHRyeSB0byBy ZWFkIGl0IGZyb20gdGhlIGNvbnRleHQgaXRzZWxmLiAqLwotICAgICAgICBp ZiAoIHBkZXYgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIHBkZXYt PmRvbWFpbiAhPSBkb21haW4gKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPIFZURFBSRUZJWAotICAgICAg ICAgICAgICAgICAgICAgICAiJXBkOiAlMDR4OiUwMng6JTAyeC4ldSBvd25l ZCBieSAlcGRcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiwg c2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAot ICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21haW4pOwotICAgICAg ICAgICAgICAgIHJlcyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0gICAg ICAgIH0KLSAgICAgICAgZWxzZQotICAgICAgICB7Ci0gICAgICAgICAgICBp bnQgY2RvbWFpbjsKLSAgICAgICAgICAgIGNkb21haW4gPSBjb250ZXh0X2dl dF9kb21haW5faWQoY29udGV4dCwgaW9tbXUpOwotICAgICAgICAgICAgCi0g ICAgICAgICAgICBpZiAoIGNkb21haW4gPCAwICkKLSAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfV0FSTklORyBWVERQ UkVGSVgKLSAgICAgICAgICAgICAgICAgICAgICAgIiVwZDogJTA0eDolMDJ4 OiUwMnguJXUgbWFwcGVkLCBidXQgY2FuJ3QgZmluZCBvd25lclxuIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgZG9tYWluLCBzZWcsIGJ1cywgUENJX1NM T1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwotICAgICAgICAgICAgICAg IHJlcyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBl bHNlIGlmICggY2RvbWFpbiAhPSBkb21haW4tPmRvbWFpbl9pZCApCi0gICAg ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19HX0lO Rk8gVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICIlcGQ6ICUw NHg6JTAyeDolMDJ4LiV1IGFscmVhZHkgbWFwcGVkIHRvIGQlZFxuIiwKLSAg ICAgICAgICAgICAgICAgICAgICAgZG9tYWluLAotICAgICAgICAgICAgICAg ICAgICAgICBzZWcsIGJ1cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhk ZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgIGNkb21haW4pOwotICAg ICAgICAgICAgICAgIHJlcyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0g ICAgICAgIH0KLQotICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29u dGV4dF9lbnRyaWVzKTsKICAgICAgICAgc3Bpbl91bmxvY2soJmlvbW11LT5s b2NrKTsKLSAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAgdW5tYXBfdnRk X2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7CisgICAgICAgIHJldHVy biAwOwogICAgIH0KIAogICAgIGlmICggaW9tbXVfaHdkb21fcGFzc3Rocm91 Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFpbikgKQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-04.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-04.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiByZS1hc3NpZ24gZGV2aWNlcyBkaXJlY3RseQoKRGV2aWNlcyB3 aXRoIFJNUlJzLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQgaG93L3do ZW4gdGhlIHNwZWNpZmllZAptZW1vcnkgcmVnaW9ucyBtYXkgZ2V0IGFjY2Vz c2VkLCBtYXkgbm90IGJlIGxlZnQgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIK cmVzcGVjdGl2ZSBtYXBwaW5ncyAoYXMgbG9uZyBhcyBpdCdzIG5vdCBjZXJ0 YWluIHRoYXQgdGhlIGRldmljZSBoYXMKYmVlbiBmdWxseSBxdWllc2NlZCku IEhlbmNlIHJhdGhlciB0aGFuIHVubWFwcGluZyB0aGUgb2xkIGNvbnRleHQg YW5kCnRoZW4gbWFwcGluZyB0aGUgbmV3IG9uZSwgcmUtYXNzaWdubWVudCBu ZWVkcyB0byBiZSBkb25lIGluIGEgc2luZ2xlCnN0ZXAuCgpUaGlzIGlzIENW RS0yMDIyLTI2MzU5IC8gcGFydCBvZiBYU0EtNDAwLgoKUmVwb3J0ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKU2lt aWxhcmx5IHF1YXJhbnRpbmluZyBzY3JhdGNoLXBhZ2UgbW9kZSByZWxpZXMg b24gcGFnZSB0YWJsZXMgdG8gYmUKY29udGludW91c2x5IHdpcmVkIHVwLgoK VG8gYXZvaWQgY29tcGxpY2F0aW5nIHRoaW5ncyBtb3JlIHRoYW4gbmVjZXNz YXJ5LCB0cmVhdCBhbGwgZGV2aWNlcwptb3N0bHkgZXF1YWxseSwgaS5lLiBy ZWdhcmRsZXNzIG9mIHRoZWlyIGFzc29jaWF0aW9uIHdpdGggYW55IFJNUlJz LiBUaGUKbWFpbiBkaWZmZXJlbmNlIGlzIHdoZW4gaXQgY29tZXMgdG8gdXBk YXRpbmcgY29udGV4dCBlbnRyaWVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21p YyB3aGVuIHRoZXJlIGFyZSBSTVJScy4gWWV0IGF0b21pY2l0eSBjYW4gb25s eSBiZSBhY2hpZXZlZAp3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBv ZiB3aGljaCB3ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClRoZSBzZWVtaW5n bHkgY29tcGxpY2F0ZWQgY2hvaWNlIG9mIG5vbi1uZWdhdGl2ZSByZXR1cm4g dmFsdWVzIGZvcgpkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpIGlzIHRv IGxpbWl0IGNvZGUgY2h1cm46IFRoaXMgd2F5IGNhbGxlcnMKcGFzc2luZyBO VUxMIGZvciBwZGV2IGRvbid0IG5lZWQgZmlkZGxpbmcgd2l0aC4KClNpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2 aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0 ZXJuLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVy bi5oCkBAIC04NSw3ICs4NSw4IEBAIHZvaWQgZnJlZV9wZ3RhYmxlX21hZGRy KHU2NCBtYWRkcik7CiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdlKHU2NCBt YWRkcik7CiB2b2lkIHVubWFwX3Z0ZF9kb21haW5fcGFnZSh2b2lkICp2YSk7 CiBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoc3RydWN0IGRvbWFp biAqZG9tYWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMsIHU4IGRldmZuLCBjb25z dCBzdHJ1Y3QgcGNpX2RldiAqKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldiwgdW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRf aW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 OCBidXMsIHU4IGRldmZuKTsKIGludCBpbnRlbF9pb21tdV9nZXRfcmVzZXJ2 ZWRfZGV2aWNlX21lbW9yeShpb21tdV9ncmRtX3QgKmZ1bmMsIHZvaWQgKmN0 eHQpOwpAQCAtMTA1LDggKzEwNiw4IEBAIGludCBpc19pZ2RfdnRfZW5hYmxl ZF9xdWlyayh2b2lkKTsKIHZvaWQgcGxhdGZvcm1fcXVpcmtzX2luaXQodm9p ZCk7CiB2b2lkIHZ0ZF9vcHNfcHJlYW1ibGVfcXVpcmsoc3RydWN0IHZ0ZF9p b21tdSAqaW9tbXUpOwogdm9pZCB2dGRfb3BzX3Bvc3RhbWJsZV9xdWlyayhz dHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7Ci1pbnQgX19tdXN0X2NoZWNrIG1l X3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHU4IGJ1cywgdTggZGV2Zm4sIGludCBt YXApOworaW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBk b21haW4gKmRvbWFpbiwgdWludDhfdCBidXMsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1v ZGUpOwogdm9pZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBwY2lfZGV2 ICopOwogdm9pZCBxdWlya19pb21tdV9jYXBzKHN0cnVjdCB2dGRfaW9tbXUg KmlvbW11KTsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t bXUuYwpAQCAtMTE2LDYgKzExNiw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9z ZXRfZG9tYWluX2lkKHN0cnVjdAogICAgIH0KIAogICAgIHNldF9iaXQoaSwg aW9tbXUtPmRvbWlkX2JpdG1hcCk7CisgICAgY29udGV4dC0+aGkgJj0gfigo KDEgPDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpIDw8IERJRF9ISUdIX09GRlNF VCk7CiAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAoKDEgPDwgRElEX0ZJRUxE X1dJRFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZTRVQ7CiAgICAgcmV0dXJu IDA7CiB9CkBAIC0xMzUzLDE1ICsxMzU0LDI3IEBAIHN0YXRpYyB2b2lkIF9f aHdkb21faW5pdCBpbnRlbF9pb21tdV9od2QKICAgICB9CiB9CiAKKy8qCisg KiBUaGlzIGZ1bmN0aW9uIHJldHVybnMKKyAqIC0gYSBuZWdhdGl2ZSBlcnJu byB2YWx1ZSB1cG9uIGVycm9yLAorICogLSB6ZXJvIHVwb24gc3VjY2VzcyB3 aGVuIHByZXZpb3VzbHkgdGhlIGVudHJ5IHdhcyBub24tcHJlc2VudCwgb3Ig dGhpcyBpc24ndAorICogICB0aGUgIm1haW4iIHJlcXVlc3QgZm9yIGEgZGV2 aWNlIChwZGV2ID09IE5VTEwpLCBvciBmb3Igbm8tb3AgcXVhcmFudGluaW5n CisgKiAgIGFzc2lnbm1lbnRzLAorICogLSBwb3NpdGl2ZSAob25lKSB1cG9u IHN1Y2Nlc3Mgd2hlbiBwcmV2aW91c2x5IHRoZSBlbnRyeSB3YXMgcHJlc2Vu dCBhbmQgdGhpcworICogICBpcyB0aGUgIm1haW4iIHJlcXVlc3QgZm9yIGEg ZGV2aWNlIChwZGV2ICE9IE5VTEwpLgorICovCiBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoCiAgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLAog ICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAotICAgIHU4IGJ1cywgdTgg ZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQorICAgIHVpbnQ4 X3QgYnVzLCB1aW50OF90IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldiwKKyAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICBzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21haW4pOwotICAgIHN0 cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4dF9lbnRyaWVz OworICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4 dF9lbnRyaWVzLCBsY3R4dDsKKyAgICBfX3VpbnQxMjhfdCBvbGQ7CiAgICAg dTY0IG1hZGRyLCBwZ2RfbWFkZHI7Ci0gICAgdTE2IHNlZyA9IGlvbW11LT5k cmhkLT5zZWdtZW50OworICAgIHVpbnQxNl90IHNlZyA9IGlvbW11LT5kcmhk LT5zZWdtZW50LCBwcmV2X2RpZCA9IDA7CisgICAgc3RydWN0IGRvbWFpbiAq cHJldl9kb20gPSBOVUxMOwogICAgIGludCBhZ2F3LCByYywgcmV0OwogICAg IGJvb2xfdCBmbHVzaF9kZXZfaW90bGI7CiAKQEAgLTEzNzAsMTcgKzEzODMs MzIgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIG1h ZGRyID0gYnVzX3RvX2NvbnRleHRfbWFkZHIoaW9tbXUsIGJ1cyk7CiAgICAg Y29udGV4dF9lbnRyaWVzID0gKHN0cnVjdCBjb250ZXh0X2VudHJ5ICopbWFw X3Z0ZF9kb21haW5fcGFnZShtYWRkcik7CiAgICAgY29udGV4dCA9ICZjb250 ZXh0X2VudHJpZXNbZGV2Zm5dOworICAgIG9sZCA9IChsY3R4dCA9ICpjb250 ZXh0KS5mdWxsOwogCi0gICAgaWYgKCBjb250ZXh0X3ByZXNlbnQoKmNvbnRl eHQpICkKKyAgICBpZiAoIGNvbnRleHRfcHJlc2VudChsY3R4dCkgKQogICAg IHsKLSAgICAgICAgc3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKLSAgICAg ICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7Ci0g ICAgICAgIHJldHVybiAwOworICAgICAgICBkb21pZF90IGRvbWlkOworCisg ICAgICAgIHByZXZfZGlkID0gY29udGV4dF9kb21haW5faWQobGN0eHQpOwor ICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbcHJldl9kaWRdOwor ICAgICAgICBpZiAoIGRvbWlkIDwgRE9NSURfRklSU1RfUkVTRVJWRUQgKQor ICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW5fYnlfaWQo ZG9taWQpOworICAgICAgICBlbHNlIGlmICggZG9taWQgPT0gRE9NSURfSU8g KQorICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW4oZG9t X2lvKTsKKyAgICAgICAgaWYgKCAhcHJldl9kb20gKQorICAgICAgICB7Cisg ICAgICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOworICAgICAg ICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7 CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRyBWVERQUkVGSVgs CisgICAgICAgICAgICAgICAgICAgICJubyBkb21haW4gZm9yIGRpZCAldSAo bnJfZG9tICV1KVxuIiwKKyAgICAgICAgICAgICAgICAgICAgcHJldl9kaWQs IGNhcF9uZG9tcyhpb21tdS0+Y2FwKSk7CisgICAgICAgICAgICByZXR1cm4g LUVTUkNIOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCBpb21tdV9o d2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9tYWlu KSApCiAgICAgewotICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90 eXBlKCpjb250ZXh0LCBDT05URVhUX1RUX1BBU1NfVEhSVSk7CisgICAgICAg IGNvbnRleHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUobGN0eHQsIENPTlRFWFRf VFRfUEFTU19USFJVKTsKICAgICAgICAgYWdhdyA9IGxldmVsX3RvX2FnYXco aW9tbXUtPm5yX3B0X2xldmVscyk7CiAgICAgfQogICAgIGVsc2UKQEAgLTEz OTcsNiArMTQyNSw4IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29u ZSgKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKICAgICAgICAgICAgICAgICBzcGluX3VubG9jaygmaW9t bXUtPmxvY2spOwogICAgICAgICAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5f cGFnZShjb250ZXh0X2VudHJpZXMpOworICAgICAgICAgICAgICAgIGlmICgg cHJldl9kb20gKQorICAgICAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2Rv bWFpbihwcmV2X2RvbSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9N RU07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE0MTQsMzMgKzE0 NDQsMTAyIEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAg ICAgICAgICAgICAgICBnb3RvIG5vbWVtOwogICAgICAgICB9CiAKLSAgICAg ICAgY29udGV4dF9zZXRfYWRkcmVzc19yb290KCpjb250ZXh0LCBwZ2RfbWFk ZHIpOworICAgICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3Jvb3QobGN0eHQs IHBnZF9tYWRkcik7CiAgICAgICAgIGlmICggYXRzX2VuYWJsZWQgJiYgZWNh cF9kZXZfaW90bGIoaW9tbXUtPmVjYXApICkKLSAgICAgICAgICAgIGNvbnRl eHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRf REVWX0lPVExCKTsKKyAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0 aW9uX3R5cGUobGN0eHQsIENPTlRFWFRfVFRfREVWX0lPVExCKTsKICAgICAg ICAgZWxzZQotICAgICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25f dHlwZSgqY29udGV4dCwgQ09OVEVYVF9UVF9NVUxUSV9MRVZFTCk7CisgICAg ICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBD T05URVhUX1RUX01VTFRJX0xFVkVMKTsKIAogICAgICAgICBzcGluX3VubG9j aygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICB9CiAKLSAgICBpZiAo IGNvbnRleHRfc2V0X2RvbWFpbl9pZChjb250ZXh0LCBkb21haW4sIGlvbW11 KSApCisgICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5faWQoJmxjdHh0LCBk b21haW4sIGlvbW11KTsKKyAgICBpZiAoIHJjICkKICAgICB7CisgICAgdW5s b2NrOgogICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwogICAg ICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsK LSAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CisgICAgICAgIGlmICggcHJldl9k b20gKQorICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4ocHJldl9kb20p OworICAgICAgICByZXR1cm4gcmM7CisgICAgfQorCisgICAgaWYgKCAhcHJl dl9kb20gKQorICAgIHsKKyAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc193 aWR0aChsY3R4dCwgYWdhdyk7CisgICAgICAgIGNvbnRleHRfc2V0X2ZhdWx0 X2VuYWJsZShsY3R4dCk7CisgICAgICAgIGNvbnRleHRfc2V0X3ByZXNlbnQo bGN0eHQpOworICAgIH0KKyAgICBlbHNlIGlmICggcHJldl9kb20gPT0gZG9t YWluICkKKyAgICB7CisgICAgICAgIEFTU0VSVChsY3R4dC5mdWxsID09IGNv bnRleHQtPmZ1bGwpOworICAgICAgICByYyA9ICEhcGRldjsKKyAgICAgICAg Z290byB1bmxvY2s7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAg IEFTU0VSVChjb250ZXh0X2FkZHJlc3Nfd2lkdGgobGN0eHQpID09IGFnYXcp OworICAgICAgICBBU1NFUlQoIWNvbnRleHRfZmF1bHRfZGlzYWJsZShsY3R4 dCkpOworICAgIH0KKworICAgIGlmICggY3B1X2hhc19jeDE2ICkKKyAgICB7 CisgICAgICAgIF9fdWludDEyOF90IHJlcyA9IGNtcHhjaGcxNmIoY29udGV4 dCwgJm9sZCwgJmxjdHh0LmZ1bGwpOworCisgICAgICAgIC8qCisgICAgICAg ICAqIEhhcmR3YXJlIGRvZXMgbm90IHVwZGF0ZSB0aGUgY29udGV4dCBlbnRy eSBiZWhpbmQgb3VyIGJhY2tzLAorICAgICAgICAgKiBzbyB0aGUgcmV0dXJu IHZhbHVlIHNob3VsZCBtYXRjaCAib2xkIi4KKyAgICAgICAgICovCisgICAg ICAgIGlmICggcmVzICE9IG9sZCApCisgICAgICAgIHsKKyAgICAgICAgICAg IGlmICggcGRldiApCisgICAgICAgICAgICAgICAgY2hlY2tfY2xlYW51cF9k b21pZF9tYXAoZG9tYWluLCBwZGV2LCBpb21tdSk7CisgICAgICAgICAgICBw cmludGsoWEVOTE9HX0VSUgorICAgICAgICAgICAgICAgICAgICIlMDR4OiUw Mng6JTAyeC4ldTogdW5leHBlY3RlZCBjb250ZXh0IGVudHJ5ICUwMTZseF8l MDE2bHggKGV4cGVjdGVkICUwMTZseF8lMDE2bHgpXG4iLAorICAgICAgICAg ICAgICAgICAgIHBkZXYtPnNlZywgcGRldi0+YnVzLCBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSwKKyAgICAgICAgICAgICAgICAgICAodWlu dDY0X3QpKHJlcyA+PiA2NCksICh1aW50NjRfdClyZXMsCisgICAgICAgICAg ICAgICAgICAgKHVpbnQ2NF90KShvbGQgPj4gNjQpLCAodWludDY0X3Qpb2xk KTsKKyAgICAgICAgICAgIHJjID0gLUVJTFNFUTsKKyAgICAgICAgICAgIGdv dG8gdW5sb2NrOworICAgICAgICB9CisgICAgfQorICAgIGVsc2UgaWYgKCAh cHJldl9kb20gfHwgIShtb2RlICYgTUFQX1dJVEhfUk1SUikgKQorICAgIHsK KyAgICAgICAgY29udGV4dF9jbGVhcl9wcmVzZW50KCpjb250ZXh0KTsKKyAg ICAgICAgaW9tbXVfc3luY19jYWNoZShjb250ZXh0LCBzaXplb2YoKmNvbnRl eHQpKTsKKworICAgICAgICB3cml0ZV9hdG9taWMoJmNvbnRleHQtPmhpLCBs Y3R4dC5oaSk7CisgICAgICAgIC8qIE5vIGJhcnJpZXIgc2hvdWxkIGJlIG5l ZWRlZCBiZXR3ZWVuIHRoZXNlIHR3by4gKi8KKyAgICAgICAgd3JpdGVfYXRv bWljKCZjb250ZXh0LT5sbywgbGN0eHQubG8pOworICAgIH0KKyAgICBlbHNl IC8qIEJlc3QgZWZmb3J0LCB1cGRhdGluZyBESUQgbGFzdC4gKi8KKyAgICB7 CisgICAgICAgICAvKgorICAgICAgICAgICogQnkgbm9uLWF0b21pY2FsbHkg dXBkYXRpbmcgdGhlIGNvbnRleHQgZW50cnkncyBESUQgZmllbGQgbGFzdCwK KyAgICAgICAgICAqIGR1cmluZyBhIHNob3J0IHdpbmRvdyBpbiB0aW1lIFRM QiBlbnRyaWVzIHdpdGggdGhlIG9sZCBkb21haW4gSUQKKyAgICAgICAgICAq IGJ1dCB0aGUgbmV3IHBhZ2UgdGFibGVzIG1heSBiZSBpbnNlcnRlZC4gIFRo aXMgY291bGQgYWZmZWN0IEkvTworICAgICAgICAgICogb2Ygb3RoZXIgZGV2 aWNlcyB1c2luZyB0aGlzIHNhbWUgKG9sZCkgZG9tYWluIElELiAgU3VjaCB1 cGRhdGluZworICAgICAgICAgICogdGhlcmVmb3JlIGlzIG5vdCBhIHByb2Js ZW0gaWYgdGhpcyB3YXMgdGhlIG9ubHkgZGV2aWNlIGFzc29jaWF0ZWQKKyAg ICAgICAgICAqIHdpdGggdGhlIG9sZCBkb21haW4gSUQuICBEaXZlcnRpbmcg SS9PIG9mIGFueSBvZiBhIGR5aW5nIGRvbWFpbidzCisgICAgICAgICAgKiBk ZXZpY2VzIHRvIHRoZSBxdWFyYW50aW5lIHBhZ2UgdGFibGVzIGlzIGludGVu ZGVkIGFueXdheS4KKyAgICAgICAgICAqLworICAgICAgICBpZiAoICEobW9k ZSAmIChNQVBfT1dORVJfRFlJTkcgfCBNQVBfU0lOR0xFX0RFVklDRSkpICkK KyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBWVERQUkVGSVgK KyAgICAgICAgICAgICAgICAgICAiICUwNHg6JTAyeDolMDJ4LiV1OiByZWFz c2lnbm1lbnQgbWF5IGNhdXNlICVwZCBkYXRhIGNvcnJ1cHRpb25cbiIsCisg ICAgICAgICAgICAgICAgICAgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwg UENJX0ZVTkMoZGV2Zm4pLCBwcmV2X2RvbSk7CisKKyAgICAgICAgd3JpdGVf YXRvbWljKCZjb250ZXh0LT5sbywgbGN0eHQubG8pOworICAgICAgICAvKiBO byBiYXJyaWVyIHNob3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVzZSB0d28u ICovCisgICAgICAgIHdyaXRlX2F0b21pYygmY29udGV4dC0+aGksIGxjdHh0 LmhpKTsKICAgICB9CiAKLSAgICBjb250ZXh0X3NldF9hZGRyZXNzX3dpZHRo KCpjb250ZXh0LCBhZ2F3KTsKLSAgICBjb250ZXh0X3NldF9mYXVsdF9lbmFi bGUoKmNvbnRleHQpOwotICAgIGNvbnRleHRfc2V0X3ByZXNlbnQoKmNvbnRl eHQpOwogICAgIGlvbW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6ZW9mKHN0 cnVjdCBjb250ZXh0X2VudHJ5KSk7CiAgICAgc3Bpbl91bmxvY2soJmlvbW11 LT5sb2NrKTsKIAotICAgIC8qIENvbnRleHQgZW50cnkgd2FzIHByZXZpb3Vz bHkgbm9uLXByZXNlbnQgKHdpdGggZG9taWQgMCkuICovCi0gICAgcmMgPSBp b21tdV9mbHVzaF9jb250ZXh0X2RldmljZShpb21tdSwgMCwgUENJX0JERjIo YnVzLCBkZXZmbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBETUFfQ0NNRF9NQVNLX05PQklULCAxKTsKKyAgICByYyA9IGlvbW11 X2ZsdXNoX2NvbnRleHRfZGV2aWNlKGlvbW11LCBwcmV2X2RpZCwgUENJX0JE RjIoYnVzLCBkZXZmbiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBETUFfQ0NNRF9NQVNLX05PQklULCAhcHJldl9kb20pOwogICAg IGZsdXNoX2Rldl9pb3RsYiA9ICEhZmluZF9hdHNfZGV2X2RyaGQoaW9tbXUp OwotICAgIHJldCA9IGlvbW11X2ZsdXNoX2lvdGxiX2RzaShpb21tdSwgMCwg MSwgZmx1c2hfZGV2X2lvdGxiKTsKKyAgICByZXQgPSBpb21tdV9mbHVzaF9p b3RsYl9kc2koaW9tbXUsIHByZXZfZGlkLCAhcHJldl9kb20sIGZsdXNoX2Rl dl9pb3RsYik7CiAKICAgICAvKgogICAgICAqIFRoZSBjdXJyZW50IGxvZ2lj IGZvciByZXR1cm5zOgpAQCAtMTQ2MSwxNyArMTU2MCwyNiBAQCBpbnQgZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgdW5tYXBfdnRkX2RvbWFp bl9wYWdlKGNvbnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFzZWcgJiYg IXJjICkKLSAgICAgICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVz LCBkZXZmbiwgTUFQX01FX1BIQU5UT01fRlVOQyk7CisgICAgICAgIHJjID0g bWVfd2lmaV9xdWlyayhkb21haW4sIGJ1cywgZGV2Zm4sIG1vZGUpOwogCiAg ICAgaWYgKCByYyApCiAgICAgewotICAgICAgICByZXQgPSBkb21haW5fY29u dGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbik7Cisg ICAgICAgIGlmICggIXByZXZfZG9tICkKKyAgICAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRl dmZuKTsKKyAgICAgICAgZWxzZSBpZiAoIHByZXZfZG9tICE9IGRvbWFpbiAp IC8qIEF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbi4gKi8KKyAgICAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKHByZXZfZG9tLCBp b21tdSwgYnVzLCBkZXZmbiwgcGRldiwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgJiBNQVBfV0lUSF9STVJS KSA8IDA7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldCA9IDE7CiAK ICAgICAgICAgaWYgKCAhcmV0ICYmIHBkZXYgJiYgcGRldi0+ZGV2Zm4gPT0g ZGV2Zm4gKQogICAgICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAo ZG9tYWluLCBwZGV2LCBpb21tdSk7CiAgICAgfQogCi0gICAgcmV0dXJuIHJj OworICAgIGlmICggcHJldl9kb20gKQorICAgICAgICByY3VfdW5sb2NrX2Rv bWFpbihwcmV2X2RvbSk7CisKKyAgICByZXR1cm4gcmMgPzogcGRldiAmJiBw cmV2X2RvbTsKIH0KIAogc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1h cChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGRldmZuLApAQCAtMTQ4MSw4 ICsxNTg5LDEwIEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGlu ZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhk X3VuaXQgKmRyaGQ7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfcm1ycl91bml0 ICpybXJyOwogICAgIGludCByZXQgPSAwOwotICAgIHVpbnQxNl90IHNlZyA9 IHBkZXYtPnNlZzsKKyAgICB1bnNpZ25lZCBpbnQgaSwgbW9kZSA9IDA7Cisg ICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2VnLCBiZGY7CiAgICAgdWludDhf dCBidXMgPSBwZGV2LT5idXMsIHNlY2J1czsKIAogICAgIGRyaGQgPSBhY3Bp X2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CkBAIC0xNTAyLDggKzE2 MTIsMjkgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdAogCiAgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOwogCisgICAg Zm9yX2VhY2hfcm1ycl9kZXZpY2UoIHJtcnIsIGJkZiwgaSApCisgICAgewor ICAgICAgICBpZiAoIHJtcnItPnNlZ21lbnQgIT0gcGRldi0+c2VnIHx8IGJk ZiAhPSBwZGV2LT5zYmRmLmJkZiApCisgICAgICAgICAgICBjb250aW51ZTsK KworICAgICAgICBtb2RlIHw9IE1BUF9XSVRIX1JNUlI7CisgICAgICAgIGJy ZWFrOworICAgIH0KKworICAgIGlmICggZG9tYWluICE9IHBkZXYtPmRvbWFp biApCisgICAgeworICAgICAgICBpZiAoIHBkZXYtPmRvbWFpbi0+aXNfZHlp bmcgKQorICAgICAgICAgICAgbW9kZSB8PSBNQVBfT1dORVJfRFlJTkc7Cisg ICAgICAgIGVsc2UgaWYgKCBkcmhkICYmCisgICAgICAgICAgICAgICAgICAh YW55X3BkZXZfYmVoaW5kX2lvbW11KHBkZXYtPmRvbWFpbiwgcGRldiwgZHJo ZC0+aW9tbXUpICYmCisgICAgICAgICAgICAgICAgICAhcGRldi0+cGhhbnRv bV9zdHJpZGUgKQorICAgICAgICAgICAgbW9kZSB8PSBNQVBfU0lOR0xFX0RF VklDRTsKKyAgICB9CisKICAgICBzd2l0Y2ggKCBwZGV2LT50eXBlICkKICAg ICB7CisgICAgICAgIGJvb2wgcHJldl9wcmVzZW50OworCiAgICAgY2FzZSBE RVZfVFlQRV9QQ0lfSE9TVF9CUklER0U6CiAgICAgICAgIGlmICggaW9tbXVf ZGVidWcgKQogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOkhv c3RicmlkZ2U6IHNraXAgJTA0eDolMDJ4OiUwMnguJXUgbWFwXG4iLApAQCAt MTUyNCw3ICsxNjU1LDkgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9t YXBwaW5nKHN0cnVjdAogICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9t YWluX2lkLCBzZWcsIGJ1cywKICAgICAgICAgICAgICAgICAgICBQQ0lfU0xP VChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUs IGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBkZXYpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwZGV2LCBtb2RlKTsKKyAgICAgICAgaWYgKCByZXQg PiAwICkKKyAgICAgICAgICAgIHJldCA9IDA7CiAgICAgICAgIGlmICggIXJl dCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYs IGRyaGQpID4gMCApCiAgICAgICAgICAgICBlbmFibGVfYXRzX2RldmljZShw ZGV2LCAmZHJoZC0+aW9tbXUtPmF0c19kZXZpY2VzKTsKIApAQCAtMTUzNyw5 ICsxNjcwLDEwIEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGlu ZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZmbiks IFBDSV9GVU5DKGRldmZuKSk7CiAKICAgICAgICAgcmV0ID0gZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBk ZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcGRldik7Ci0gICAgICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgbW9kZSk7CisgICAg ICAgIGlmICggcmV0IDwgMCApCiAgICAgICAgICAgICBicmVhazsKKyAgICAg ICAgcHJldl9wcmVzZW50ID0gcmV0OwogCiAgICAgICAgIGlmICggKHJldCA9 IGZpbmRfdXBzdHJlYW1fYnJpZGdlKHNlZywgJmJ1cywgJmRldmZuLCAmc2Vj YnVzKSkgPCAxICkKICAgICAgICAgewpAQCAtMTU0Nyw2ICsxNjgxLDE1IEBA IHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAg ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIHJldCA9IC1FTlhJ TzsKICAgICAgICAgfQorICAgICAgICAvKgorICAgICAgICAgKiBTdHJpY3Rs eSBzcGVha2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBvbmx5IG9uZSBiZWhp bmQgdGhpcyBicmlkZ2UKKyAgICAgICAgICogYW5kIHRoZSBvbmx5IG9uZSB3 aXRoIHRoaXMgKHNlY2J1cywwLDApIHR1cGxlLCBpdCBjb3VsZCBiZSBhbGxv d2VkCisgICAgICAgICAqIHRvIGJlIHJlLWFzc2lnbmVkIHJlZ2FyZGxlc3Mg b2YgUk1SUiBwcmVzZW5jZS4gIEJ1dCBsZXQncyBkZWFsIHdpdGgKKyAgICAg ICAgICogdGhhdCBjYXNlIG9ubHkgaWYgaXQgaXMgYWN0dWFsbHkgZm91bmQg aW4gdGhlIHdpbGQuCisgICAgICAgICAqLworICAgICAgICBlbHNlIGlmICgg cHJldl9wcmVzZW50ICYmIChtb2RlICYgTUFQX1dJVEhfUk1SUikgJiYKKyAg ICAgICAgICAgICAgICAgIGRvbWFpbiAhPSBwZGV2LT5kb21haW4gKQorICAg ICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7CiAKICAgICAgICAgLyoKICAg ICAgICAgICogTWFwcGluZyBhIGJyaWRnZSBzaG91bGQsIGlmIGFueXRoaW5n LCBwYXNzIHRoZSBzdHJ1Y3QgcGNpX2RldiBvZgpAQCAtMTU1NSw3ICsxNjk4 LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVj dAogICAgICAgICAgKi8KICAgICAgICAgaWYgKCByZXQgPj0gMCApCiAgICAg ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21h aW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBt b2RlKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBEZXZpY2VzIGJlaGlu ZCBQQ0llLXRvLVBDSS9QQ0l4IGJyaWRnZSBtYXkgZ2VuZXJhdGUgZGlmZmVy ZW50CkBAIC0xNTcwLDEwICsxNzEzLDE1IEBAIHN0YXRpYyBpbnQgZG9tYWlu X2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYgKCAhcmV0ICYm IHBkZXZfdHlwZShzZWcsIGJ1cywgZGV2Zm4pID09IERFVl9UWVBFX1BDSWUy UENJX0JSSURHRSAmJgogICAgICAgICAgICAgIChzZWNidXMgIT0gcGRldi0+ YnVzIHx8IHBkZXYtPmRldmZuICE9IDApICkKICAgICAgICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9t bXUsIHNlY2J1cywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgbW9kZSk7CiAKICAgICAg ICAgaWYgKCByZXQgKQotICAgICAgICAgICAgZG9tYWluX2NvbnRleHRfdW5t YXAoZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgICAgIHsKKyAgICAgICAg ICAgIGlmICggIXByZXZfcHJlc2VudCApCisgICAgICAgICAgICAgICAgZG9t YWluX2NvbnRleHRfdW5tYXAoZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAg ICAgICAgICBlbHNlIGlmICggcGRldi0+ZG9tYWluICE9IGRvbWFpbiApIC8q IEF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbi4gKi8KKyAgICAgICAgICAgICAg ICBkb21haW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4s IHBkZXYpOworICAgICAgICB9CiAKICAgICAgICAgYnJlYWs7CiAKQEAgLTIz NTIsOSArMjUwMCw4IEBAIHN0YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlX293 bmVyc2hpcCgKIHsKICAgICBpbnQgcmV0OwogCi0gICAgcmV0ID0gZG9tYWlu X2NvbnRleHRfdW5tYXAoc291cmNlLCBkZXZmbiwgcGRldik7Ci0gICAgaWYg KCByZXQgKQotICAgICAgICByZXR1cm4gcmV0OworICAgIGlmICggIWhhc19h cmNoX3BkZXZzKHRhcmdldCkgKQorICAgICAgICB2bXhfcGlfaG9va3NfYXNz aWduKHRhcmdldCk7CiAKICAgICAvKgogICAgICAqIERldmljZXMgYXNzaWdu ZWQgdG8gdW50cnVzdGVkIGRvbWFpbnMgKGhlcmUgYXNzdW1lZCB0byBiZSBh bnkgZG9tVSkKQEAgLTIzNjQsNiArMjUxMSwzMSBAQCBzdGF0aWMgaW50IHJl YXNzaWduX2RldmljZV9vd25lcnNoaXAoCiAgICAgaWYgKCAodGFyZ2V0ICE9 IGhhcmR3YXJlX2RvbWFpbikgJiYgIWlvbW11X2ludHJlbWFwICkKICAgICAg ICAgdW50cnVzdGVkX21zaSA9IHRydWU7CiAKKyAgICByZXQgPSBkb21haW5f Y29udGV4dF9tYXBwaW5nKHRhcmdldCwgZGV2Zm4sIHBkZXYpOworICAgIGlm ICggcmV0ICkKKyAgICB7CisgICAgICAgIGlmICggIWhhc19hcmNoX3BkZXZz KHRhcmdldCkgKQorICAgICAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWdu KHRhcmdldCk7CisgICAgICAgIHJldHVybiByZXQ7CisgICAgfQorCisgICAg aWYgKCBwZGV2LT5kZXZmbiA9PSBkZXZmbiApCisgICAgeworICAgICAgICBj b25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQgPSBhY3BpX2ZpbmRf bWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CisKKyAgICAgICAgaWYgKCBkcmhk ICkKKyAgICAgICAgICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFwKHNvdXJj ZSwgcGRldiwgZHJoZC0+aW9tbXUpOworICAgIH0KKworICAgIGlmICggZGV2 Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCAp CisgICAgeworICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0 LCAmdGFyZ2V0LT5wZGV2X2xpc3QpOworICAgICAgICBwZGV2LT5kb21haW4g PSB0YXJnZXQ7CisgICAgfQorCisgICAgaWYgKCAhaGFzX2FyY2hfcGRldnMo c291cmNlKSApCisgICAgICAgIHZteF9waV9ob29rc19kZWFzc2lnbihzb3Vy Y2UpOworCiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNlIGJlbG9uZ3Mg dG8gdGhlIGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBSTVJSLCBkb24n dAogICAgICAqIHJlbW92ZSBpdCBmcm9tIHRoZSBoYXJkd2FyZSBkb21haW4s IGJlY2F1c2UgQklPUyBtYXkgdXNlIFJNUlIgYXQKQEAgLTIzOTIsMzQgKzI1 NjQsNyBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAo CiAgICAgICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCBkZXZmbiA9PSBw ZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKLSAgICB7 Ci0gICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZkb21f aW8tPnBkZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9IGRvbV9p bzsKLSAgICB9Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhzb3VyY2Up ICkKLSAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWduKHNvdXJjZSk7Ci0K LSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0YXJnZXQpICkKLSAgICAgICAg dm14X3BpX2hvb2tzX2Fzc2lnbih0YXJnZXQpOwotCi0gICAgcmV0ID0gZG9t YWluX2NvbnRleHRfbWFwcGluZyh0YXJnZXQsIGRldmZuLCBwZGV2KTsKLSAg ICBpZiAoIHJldCApCi0gICAgewotICAgICAgICBpZiAoICFoYXNfYXJjaF9w ZGV2cyh0YXJnZXQpICkKLSAgICAgICAgICAgIHZteF9waV9ob29rc19kZWFz c2lnbih0YXJnZXQpOwotCi0gICAgICAgIHJldHVybiByZXQ7Ci0gICAgfQot Ci0gICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21h aW4gIT0gdGFyZ2V0ICkKLSAgICB7Ci0gICAgICAgIGxpc3RfbW92ZSgmcGRl di0+ZG9tYWluX2xpc3QsICZ0YXJnZXQtPnBkZXZfbGlzdCk7Ci0gICAgICAg IHBkZXYtPmRvbWFpbiA9IHRhcmdldDsKLSAgICB9Ci0KLSAgICByZXR1cm4g cmV0OworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMgaW50IGludGVsX2lv bW11X2Fzc2lnbl9kZXZpY2UoCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9pb21tdS5oCkBAIC0yMDIsOCArMjAyLDEyIEBAIHN0cnVjdCByb290 X2VudHJ5IHsKICAgICBkbyB7KHJvb3QpLnZhbCB8PSAoKHZhbHVlKSAmIFBB R0VfTUFTS180Syk7fSB3aGlsZSgwKQogCiBzdHJ1Y3QgY29udGV4dF9lbnRy eSB7Ci0gICAgdTY0IGxvOwotICAgIHU2NCBoaTsKKyAgICB1bmlvbiB7Cisg ICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50NjRfdCBsbywgaGk7 CisgICAgICAgIH07CisgICAgICAgIF9fdWludDEyOF90IGZ1bGw7CisgICAg fTsKIH07CiAjZGVmaW5lIFJPT1RfRU5UUllfTlIgKFBBR0VfU0laRV80Sy9z aXplb2Yoc3RydWN0IHJvb3RfZW50cnkpKQogI2RlZmluZSBjb250ZXh0X3By ZXNlbnQoYykgKChjKS5sbyAmIDEpCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9xdWlya3MuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC92dGQvcXVpcmtzLmMKQEAgLTM0NCw3ICszNDQsOCBAQCB2b2lkIF9f aW5pdCBwbGF0Zm9ybV9xdWlya3NfaW5pdCh2b2lkKQogICovCiAKIHN0YXRp YyBpbnQgX19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBkZXYsIGludCBtYXApCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7 CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAgIHN0cnVj dCBwY2lfZGV2ICpwZGV2OwpAQCAtMzU1LDkgKzM1Niw5IEBAIHN0YXRpYyBp bnQgX19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2YKICAgICBkcmhkID0g YWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwogCiAgICAgLyog bWFwIG9yIHVubWFwIE1FIHBoYW50b20gZnVuY3Rpb24gKi8KLSAgICBpZiAo IG1hcCApCisgICAgaWYgKCAhKG1vZGUgJiBVTk1BUF9NRV9QSEFOVE9NX0ZV TkMpICkKICAgICAgICAgcmMgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29u ZShkb21haW4sIGRyaGQtPmlvbW11LCAwLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpLCBOVUxM KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ Q0lfREVWRk4oZGV2LCA3KSwgTlVMTCwgbW9kZSk7CiAgICAgZWxzZQogICAg ICAgICByYyA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGRy aGQtPmlvbW11LCAwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBQQ0lfREVWRk4oZGV2LCA3KSk7CkBAIC0zNjUsNyArMzY2LDgg QEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgbWFwX21lX3BoYW50b21fZgog ICAgIHJldHVybiByYzsKIH0KIAotaW50IG1lX3dpZmlfcXVpcmsoc3RydWN0 IGRvbWFpbiAqZG9tYWluLCB1OCBidXMsIHU4IGRldmZuLCBpbnQgbWFwKQor aW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1aW50 OF90IGJ1cywgdWludDhfdCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBtb2RlKQogewogICAgIHUzMiBpZDsKICAgICBpbnQgcmMg PSAwOwpAQCAtMzg5LDcgKzM5MSw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAgIGNhc2UgMHg0MjNi ODA4NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjNjODA4NjoKICAgICAgICAg ICAgIGNhc2UgMHg0MjNkODA4NjoKLSAgICAgICAgICAgICAgICByYyA9IG1h cF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMywgbWFwKTsKKyAgICAg ICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFp biwgMywgbW9kZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDE1 LDcgKzQxNyw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4g KmRvbWFpbiwKICAgICAgICAgICAgIGNhc2UgMHg0MjM4ODA4NjogICAgICAg IC8qIFB1bWEgUGVhayAqLwogICAgICAgICAgICAgY2FzZSAweDQyMmI4MDg2 OgogICAgICAgICAgICAgY2FzZSAweDQyMmM4MDg2OgotICAgICAgICAgICAg ICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAyMiwg bWFwKTsKKyAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1 bmN0aW9uKGRvbWFpbiwgMjIsIG1vZGUpOwogICAgICAgICAgICAgICAgIGJy ZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBi cmVhazsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z0ZC5o CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC92dGQuaApAQCAt MjIsOCArMjIsMTQgQEAKIAogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogCi0j ZGVmaW5lIE1BUF9NRV9QSEFOVE9NX0ZVTkMgICAgICAxCi0jZGVmaW5lIFVO TUFQX01FX1BIQU5UT01fRlVOQyAgICAwCisvKgorICogVmFsdWVzIGZvciBk b21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpJ3MgYW5kIG1lX3dpZmlfcXVp cmsoKSdzICJtb2RlIgorICogcGFyYW1ldGVycy4KKyAqLworI2RlZmluZSBN QVBfV0lUSF9STVJSICAgICAgICAgKDF1IDw8IDApCisjZGVmaW5lIE1BUF9P V05FUl9EWUlORyAgICAgICAoMXUgPDwgMSkKKyNkZWZpbmUgTUFQX1NJTkdM RV9ERVZJQ0UgICAgICgxdSA8PCAyKQorI2RlZmluZSBVTk1BUF9NRV9QSEFO VE9NX0ZVTkMgKDF1IDw8IDMpCiAKIC8qIEFsbG93IGZvciBib3RoIElPQVBJ QyBhbmQgSU9TQVBJQy4gKi8KICNkZWZpbmUgSU9feEFQSUNfcm91dGVfZW50 cnkgSU9fQVBJQ19yb3V0ZV9lbnRyeQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-05.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-05.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IHJlLWFzc2lnbiBkZXZpY2VzIGRpcmVjdGx5CgpEZXZp Y2VzIHdpdGggdW5pdHkgbWFwIHJhbmdlcywgZHVlIHRvIGl0IGJlaW5nIHVu c3BlY2lmaWVkIGhvdy93aGVuCnRoZXNlIG1lbW9yeSByYW5nZXMgbWF5IGdl dCBhY2Nlc3NlZCwgbWF5IG5vdCBiZSBsZWZ0IGRpc2Nvbm5lY3RlZCBmcm9t CnRoZWlyIHVuaXR5IG1hcHBpbmdzIChhcyBsb25nIGFzIGl0J3Mgbm90IGNl cnRhaW4gdGhhdCB0aGUgZGV2aWNlIGhhcwpiZWVuIGZ1bGx5IHF1aWVzY2Vk KS4gSGVuY2UgcmF0aGVyIHRoYW4gdGVhcmluZyBkb3duIHRoZSBvbGQgcm9v dCBwYWdlCnRhYmxlIHBvaW50ZXIgYW5kIHRoZW4gZXN0YWJsaXNoaW5nIHRo ZSBuZXcgb25lLCByZS1hc3NpZ25tZW50IG5lZWRzIHRvCmJlIGRvbmUgaW4g YSBzaW5nbGUgc3RlcC4KClRoaXMgaXMgQ1ZFLTIwMjItMjYzNjAgLyBwYXJ0 IG9mIFhTQS00MDAuCgpSZXBvcnRlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CgpTaW1pbGFybHkgcXVhcmFudGluaW5n IHNjcmF0Y2gtcGFnZSBtb2RlIHJlbGllcyBvbiBwYWdlIHRhYmxlcyB0byBi ZQpjb250aW51b3VzbHkgd2lyZWQgdXAuCgpUbyBhdm9pZCBjb21wbGljYXRp bmcgdGhpbmdzIG1vcmUgdGhhbiBuZWNlc3NhcnksIHRyZWF0IGFsbCBkZXZp Y2VzCm1vc3RseSBlcXVhbGx5LCBpLmUuIHJlZ2FyZGxlc3Mgb2YgdGhlaXIg YXNzb2NpYXRpb24gd2l0aCBhbnkgdW5pdHkgbWFwCnJhbmdlcy4gIFRoZSBt YWluIGRpZmZlcmVuY2UgaXMgd2hlbiBpdCBjb21lcyB0byB1cGRhdGluZyBE VEVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21pYyB3aGVuIHRoZXJlIGFyZSB1 bml0eSBtYXBwaW5ncy4gWWV0IGF0b21pY2l0eSBjYW4gb25seSBiZQphY2hp ZXZlZCB3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBvZiB3aGljaCB3 ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaApAQCAtMjQ3LDkgKzI0NywxMyBA QCB2b2lkIGFtZF9pb21tdV9zZXRfaW50cmVtYXBfdGFibGUoc3RydWN0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgdmFsaWQpOwotdm9pZCBhbWRfaW9tbXVf c2V0X3Jvb3RfcGFnZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRl LAotCQkJCSAgIHVpbnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5f aWQsCi0JCQkJICAgdWludDhfdCBwYWdpbmdfbW9kZSwgYm9vbCB2YWxpZCk7 CisjZGVmaW5lIFNFVF9ST09UX1ZBTElEICAgICAgICAgICgxdSA8PCAwKQor I2RlZmluZSBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCAoMXUgPDwgMSkKK2lu dCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUo c3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgcm9vdF9w dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQxNl90IGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBwYWdpbmdf bW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKIHZvaWQgaW9tbXVfZHRl X2FkZF9kZXZpY2VfZW50cnkoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGl2cnNfbWFwcGluZ3MgKml2cnNfZGV2KTsKIHZvaWQgaW9tbXVfZHRlX3Nl dF9ndWVzdF9jcjMoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwgdWludDE2 X3QgZG9tX2lkLAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1k L2lvbW11X21hcC5jCkBAIC05OSwxMCArOTksNjkgQEAgc3RhdGljIHVuc2ln bmVkIGludCBzZXRfaW9tbXVfcHRlX3ByZXNlbgogICAgIHJldHVybiBmbHVz aF9mbGFnczsKIH0KIAotdm9pZCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90 YWJsZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCByb290X3B0ciwgdWlu dDE2X3QgZG9tYWluX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50OF90IHBhZ2luZ19tb2RlLCBib29sIHZhbGlkKQorLyoK KyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucworICogLSAtZXJybm8gZm9yIGVy cm9ycywKKyAqIC0gMCBmb3IgYSBzdWNjZXNzZnVsIHVwZGF0ZSwgYXRvbWlj IHdoZW4gbmVjZXNzYXJ5CisgKiAtIDEgZm9yIGEgc3VjY2Vzc2Z1bCBidXQg bm9uLWF0b21pYyB1cGRhdGUsIHdoaWNoIG1heSBuZWVkIHRvIGJlIHdhcm5l ZAorICogICBhYm91dCBieSB0aGUgY2FsbGVyLgorICovCitpbnQgYW1kX2lv bW11X3NldF9yb290X3BhZ2VfdGFibGUoc3RydWN0IGFtZF9pb21tdV9kdGUg KmR0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50 NjRfdCByb290X3B0ciwgdWludDE2X3QgZG9tYWluX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcGFnaW5nX21vZGUs IHVuc2lnbmVkIGludCBmbGFncykKIHsKKyAgICBib29sIHZhbGlkID0gZmxh Z3MgJiBTRVRfUk9PVF9WQUxJRDsKKworICAgIGlmICggZHRlLT52ICYmIGR0 ZS0+dHYgJiYKKyAgICAgICAgIChjcHVfaGFzX2N4MTYgfHwgKGZsYWdzICYg U0VUX1JPT1RfV0lUSF9VTklUWV9NQVApKSApCisgICAgeworICAgICAgICB1 bmlvbiB7CisgICAgICAgICAgICBzdHJ1Y3QgYW1kX2lvbW11X2R0ZSBkdGU7 CisgICAgICAgICAgICB1aW50NjRfdCByYXc2NFs0XTsKKyAgICAgICAgICAg IF9fdWludDEyOF90IHJhdzEyOFsyXTsKKyAgICAgICAgfSBsZHRlID0geyAu ZHRlID0gKmR0ZSB9OworICAgICAgICBfX3VpbnQxMjhfdCBvbGQgPSBsZHRl LnJhdzEyOFswXTsKKyAgICAgICAgaW50IHJldCA9IDA7CisKKyAgICAgICAg bGR0ZS5kdGUuZG9tYWluX2lkID0gZG9tYWluX2lkOworICAgICAgICBsZHRl LmR0ZS5wdF9yb290ID0gcGFkZHJfdG9fcGZuKHJvb3RfcHRyKTsKKyAgICAg ICAgbGR0ZS5kdGUuaXcgPSB0cnVlOworICAgICAgICBsZHRlLmR0ZS5pciA9 IHRydWU7CisgICAgICAgIGxkdGUuZHRlLnBhZ2luZ19tb2RlID0gcGFnaW5n X21vZGU7CisgICAgICAgIGxkdGUuZHRlLnYgPSB2YWxpZDsKKworICAgICAg ICBpZiAoIGNwdV9oYXNfY3gxNiApCisgICAgICAgIHsKKyAgICAgICAgICAg IF9fdWludDEyOF90IHJlcyA9IGNtcHhjaGcxNmIoZHRlLCAmb2xkLCAmbGR0 ZS5yYXcxMjhbMF0pOworCisgICAgICAgICAgICAvKgorICAgICAgICAgICAg ICogSGFyZHdhcmUgZG9lcyBub3QgdXBkYXRlIHRoZSBEVEUgYmVoaW5kIG91 ciBiYWNrcywgc28gdGhlCisgICAgICAgICAgICAgKiByZXR1cm4gdmFsdWUg c2hvdWxkIG1hdGNoICJvbGQiLgorICAgICAgICAgICAgICovCisgICAgICAg ICAgICBpZiAoIHJlcyAhPSBvbGQgKQorICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCisgICAgICAgICAgICAgICAg ICAgICAgICJEb20lZDogdW5leHBlY3RlZCBEVEUgJTAxNmx4XyUwMTZseCAo ZXhwZWN0ZWQgJTAxNmx4XyUwMTZseClcbiIsCisgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgKHVp bnQ2NF90KShyZXMgPj4gNjQpLCAodWludDY0X3QpcmVzLAorICAgICAgICAg ICAgICAgICAgICAgICAodWludDY0X3QpKG9sZCA+PiA2NCksICh1aW50NjRf dClvbGQpOworICAgICAgICAgICAgICAgIHJldCA9IC1FSUxTRVE7CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxzZSAvKiBCZXN0IGVm Zm9ydCwgdXBkYXRpbmcgZG9tYWluX2lkIGxhc3QuICovCisgICAgICAgIHsK KyAgICAgICAgICAgIHVpbnQ2NF90ICpwdHIgPSAodm9pZCAqKWR0ZTsKKwor ICAgICAgICAgICAgd3JpdGVfYXRvbWljKHB0ciArIDAsIGxkdGUucmF3NjRb MF0pOworICAgICAgICAgICAgLyogTm8gYmFycmllciBzaG91bGQgYmUgbmVl ZGVkIGJldHdlZW4gdGhlc2UgdHdvLiAqLworICAgICAgICAgICAgd3JpdGVf YXRvbWljKHB0ciArIDEsIGxkdGUucmF3NjRbMV0pOworCisgICAgICAgICAg ICByZXQgPSAxOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIHJldDsK KyAgICB9CisKICAgICBpZiAoIHZhbGlkIHx8IGR0ZS0+diApCiAgICAgewog ICAgICAgICBkdGUtPnR2ID0gZmFsc2U7CkBAIC0xMTcsNiArMTc2LDggQEAg dm9pZCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZShzdHJ1YwogICAg IHNtcF93bWIoKTsKICAgICBkdGUtPnR2ID0gdHJ1ZTsKICAgICBkdGUtPnYg PSB2YWxpZDsKKworICAgIHJldHVybiAwOwogfQogCiB2b2lkIGFtZF9pb21t dV9zZXRfaW50cmVtYXBfdGFibGUoCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtODIsNDAgKzgy LDgxIEBAIGludCBnZXRfZG1hX3JlcXVlc3Rvcl9pZCh1aW50MTZfdCBzZWcs IHUKICAgICByZXR1cm4gcmVxX2lkOwogfQogCi1zdGF0aWMgdm9pZCBhbWRf aW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSgKK3N0YXRpYyBpbnQgX19tdXN0 X2NoZWNrIGFsbG9jYXRlX2RvbWFpbl9yZXNvdXJjZXMoc3RydWN0IGRvbWFp bl9pb21tdSAqaGQpCit7CisgICAgaW50IHJjOworCisgICAgc3Bpbl9sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworICAgIHJjID0gYW1kX2lvbW11 X2FsbG9jX3Jvb3QoaGQpOworICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5t YXBwaW5nX2xvY2spOworCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMg Ym9vbCBhbnlfcGRldl9iZWhpbmRfaW9tbXUoY29uc3Qgc3RydWN0IGRvbWFp biAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYW1kX2lvbW11ICppb21t dSkKK3sKKyAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKKworICAg IGZvcl9lYWNoX3BkZXYgKCBkLCBwZGV2ICkKKyAgICB7CisgICAgICAgIGlm ICggcGRldiA9PSBleGNsdWRlICkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor CisgICAgICAgIGlmICggZmluZF9pb21tdV9mb3JfZGV2aWNlKHBkZXYtPnNl ZywgcGRldi0+c2JkZi5iZGYpID09IGlvbW11ICkKKyAgICAgICAgICAgIHJl dHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwor c3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwX2RvbWFp bl9kZXZpY2UoCiAgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLCBzdHJ1Y3Qg YW1kX2lvbW11ICppb21tdSwKICAgICB1aW50OF90IGRldmZuLCBzdHJ1Y3Qg cGNpX2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAq dGFibGUsICpkdGU7CiAgICAgdW5zaWduZWQgbG9uZyBmbGFnczsKLSAgICBp bnQgcmVxX2lkLCB2YWxpZCA9IDE7CisgICAgdW5zaWduZWQgaW50IHJlcV9p ZCwgc3JfZmxhZ3M7CisgICAgaW50IHJjOwogICAgIHU4IGJ1cyA9IHBkZXYt PmJ1czsKLSAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRv bV9pb21tdShkb21haW4pOworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhk ID0gZG9tX2lvbW11KGRvbWFpbik7CisgICAgY29uc3Qgc3RydWN0IGl2cnNf bWFwcGluZ3MgKml2cnNfZGV2OwogCi0gICAgQlVHX09OKCAhaGQtPmFyY2gu cm9vdF90YWJsZSB8fCAhaGQtPmFyY2gucGFnaW5nX21vZGUgfHwKLSAgICAg ICAgICAgICFpb21tdS0+ZGV2X3RhYmxlLmJ1ZmZlciApOworICAgIEJVR19P TighaGQtPmFyY2gucGFnaW5nX21vZGUgfHwgIWlvbW11LT5kZXZfdGFibGUu YnVmZmVyKTsKIAotICAgIGlmICggaW9tbXVfaHdkb21fcGFzc3Rocm91Z2gg JiYgaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFpbikgKQotICAgICAgICB2YWxp ZCA9IDA7CisgICAgcmMgPSBhbGxvY2F0ZV9kb21haW5fcmVzb3VyY2VzKGhk KTsKKyAgICBpZiAoIHJjICkKKyAgICAgICAgcmV0dXJuIHJjOworCisgICAg cmVxX2lkID0gZ2V0X2RtYV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgcGRl di0+c2JkZi5iZGYpOworICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBp bmdzKGlvbW11LT5zZWcpW3JlcV9pZF07CisgICAgc3JfZmxhZ3MgPSAoaW9t bXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGRv bWFpbikKKyAgICAgICAgICAgICAgICA/IDAgOiBTRVRfUk9PVF9WQUxJRCkK KyAgICAgICAgICAgICAgIHwgKGl2cnNfZGV2LT51bml0eV9tYXAgPyBTRVRf Uk9PVF9XSVRIX1VOSVRZX01BUCA6IDApOwogCiAgICAgLyogZ2V0IGRldmlj ZS10YWJsZSBlbnRyeSAqLwogICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVz dG9yX2lkKGlvbW11LT5zZWcsIFBDSV9CREYyKGJ1cywgZGV2Zm4pKTsKICAg ICB0YWJsZSA9IGlvbW11LT5kZXZfdGFibGUuYnVmZmVyOwogICAgIGR0ZSA9 ICZ0YWJsZVtyZXFfaWRdOworICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21h cHBpbmdzKGlvbW11LT5zZWcpW3JlcV9pZF07CiAKICAgICBzcGluX2xvY2tf aXJxc2F2ZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIAogICAgIGlmICggIWR0 ZS0+diB8fCAhZHRlLT50diApCiAgICAgewotICAgICAgICBjb25zdCBzdHJ1 Y3QgaXZyc19tYXBwaW5ncyAqaXZyc19kZXY7Ci0KICAgICAgICAgLyogYmlu ZCBEVEUgdG8gZG9tYWluIHBhZ2UtdGFibGVzICovCi0gICAgICAgIGFtZF9p b21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKAotICAgICAgICAgICAgZHRlLCBw YWdlX3RvX21hZGRyKGhkLT5hcmNoLnJvb3RfdGFibGUpLCBkb21haW4tPmRv bWFpbl9pZCwKLSAgICAgICAgICAgIGhkLT5hcmNoLnBhZ2luZ19tb2RlLCB2 YWxpZCk7CisgICAgICAgIHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2Vf dGFibGUoCisgICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkciho ZC0+YXJjaC5yb290X3RhYmxlKSwKKyAgICAgICAgICAgICAgICAgZG9tYWlu LT5kb21haW5faWQsIGhkLT5hcmNoLnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7 CisgICAgICAgIGlmICggcmMgKQorICAgICAgICB7CisgICAgICAgICAgICBB U1NFUlQocmMgPCAwKTsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CisgICAgICAgICAgICByZXR1 cm4gcmM7CisgICAgICAgIH0KIAogICAgICAgICAvKiBVbmRvIHdoYXQgYW1k X2lvbW11X2Rpc2FibGVfZG9tYWluX2RldmljZSgpIG1heSBoYXZlIGRvbmUu ICovCi0gICAgICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBpbmdzKGlv bW11LT5zZWcpW3JlcV9pZF07CiAgICAgICAgIGlmICggZHRlLT5pdF9yb290 ICkKICAgICAgICAgewogICAgICAgICAgICAgZHRlLT5pbnRfY3RsID0gSU9N TVVfREVWX1RBQkxFX0lOVF9DT05UUk9MX1RSQU5TTEFURUQ7CkBAIC0xMzAs MTcgKzE3MSw3NCBAQCBzdGF0aWMgdm9pZCBhbWRfaW9tbXVfc2V0dXBfZG9t YWluX2RldmljCiAgICAgICAgICAgICBkdGUtPmkgPSBhdHNfZW5hYmxlZDsK IAogICAgICAgICBhbWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFf aWQpOworICAgIH0KKyAgICBlbHNlIGlmICggZHRlLT5wdF9yb290ICE9IG1m bl94KHBhZ2VfdG9fbWZuKGhkLT5hcmNoLnJvb3RfdGFibGUpKSApCisgICAg eworICAgICAgICAvKgorICAgICAgICAgKiBTdHJpY3RseSBzcGVha2luZyBp ZiB0aGUgZGV2aWNlIGlzIHRoZSBvbmx5IG9uZSB3aXRoIHRoaXMgcmVxdWVz dG9yCisgICAgICAgICAqIElELCBpdCBjb3VsZCBiZSBhbGxvd2VkIHRvIGJl IHJlLWFzc2lnbmVkIHJlZ2FyZGxlc3Mgb2YgdW5pdHkgbWFwCisgICAgICAg ICAqIHByZXNlbmNlLiAgQnV0IGxldCdzIGRlYWwgd2l0aCB0aGF0IGNhc2Ug b25seSBpZiBpdCBpcyBhY3R1YWxseQorICAgICAgICAgKiBmb3VuZCBpbiB0 aGUgd2lsZC4KKyAgICAgICAgICovCisgICAgICAgIGlmICggcmVxX2lkICE9 IFBDSV9CREYyKGJ1cywgZGV2Zm4pICYmCisgICAgICAgICAgICAgKHNyX2Zs YWdzICYgU0VUX1JPT1RfV0lUSF9VTklUWV9NQVApICkKKyAgICAgICAgICAg IHJjID0gLUVPUE5PVFNVUFA7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg IHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCisgICAgICAg ICAgICAgICAgICAgICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2gucm9v dF90YWJsZSksCisgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCwgaGQtPmFyY2gucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsKKyAgICAg ICAgaWYgKCByYyA8IDAgKQorICAgICAgICB7CisgICAgICAgICAgICBzcGlu X3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworICAg ICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICB9CisgICAgICAgIGlmICgg cmMgJiYKKyAgICAgICAgICAgICBkb21haW4gIT0gcGRldi0+ZG9tYWluICYm CisgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgKiBCeSBub24tYXRv bWljYWxseSB1cGRhdGluZyB0aGUgRFRFJ3MgZG9tYWluIElEIGZpZWxkIGxh c3QsCisgICAgICAgICAgICAgICogZHVyaW5nIGEgc2hvcnQgd2luZG93IGlu IHRpbWUgVExCIGVudHJpZXMgd2l0aCB0aGUgb2xkIGRvbWFpbgorICAgICAg ICAgICAgICAqIElEIGJ1dCB0aGUgbmV3IHBhZ2UgdGFibGVzIG1heSBoYXZl IGJlZW4gaW5zZXJ0ZWQuICBUaGlzIGNvdWxkCisgICAgICAgICAgICAgICog YWZmZWN0IEkvTyBvZiBvdGhlciBkZXZpY2VzIHVzaW5nIHRoaXMgc2FtZSAo b2xkKSBkb21haW4gSUQuCisgICAgICAgICAgICAgICogU3VjaCB1cGRhdGlu ZyB0aGVyZWZvcmUgaXMgbm90IGEgcHJvYmxlbSBpZiB0aGlzIHdhcyB0aGUg b25seQorICAgICAgICAgICAgICAqIGRldmljZSBhc3NvY2lhdGVkIHdpdGgg dGhlIG9sZCBkb21haW4gSUQuICBEaXZlcnRpbmcgSS9PIG9mIGFueQorICAg ICAgICAgICAgICAqIG9mIGEgZHlpbmcgZG9tYWluJ3MgZGV2aWNlcyB0byB0 aGUgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBpcworICAgICAgICAgICAgICAq IGludGVuZGVkIGFueXdheS4KKyAgICAgICAgICAgICAgKi8KKyAgICAgICAg ICAgICAhcGRldi0+ZG9tYWluLT5pc19keWluZyAmJgorICAgICAgICAgICAg IChhbnlfcGRldl9iZWhpbmRfaW9tbXUocGRldi0+ZG9tYWluLCBwZGV2LCBp b21tdSkgfHwKKyAgICAgICAgICAgICAgcGRldi0+cGhhbnRvbV9zdHJpZGUp ICkKKyAgICAgICAgICAgIHByaW50aygiICUwNHg6JTAyeDolMDJ4LiV1OiBy ZWFzc2lnbm1lbnQgbWF5IGNhdXNlICVwZCBkYXRhIGNvcnJ1cHRpb25cbiIs CisgICAgICAgICAgICAgICAgICAgcGRldi0+c2VnLCBidXMsIFBDSV9TTE9U KGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pLAorICAgICAgICAgICAgICAgICAg IHBkZXYtPmRvbWFpbik7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogQ2hl Y2sgcmVtYWluaW5nIHNldHRpbmdzIGFyZSBzdGlsbCBpbiBwbGFjZSBmcm9t IGFuIGVhcmxpZXIgY2FsbAorICAgICAgICAgKiBoZXJlLiBUaGV5J3JlIGFs bCBpbmRlcGVuZGVudCBvZiB0aGUgZG9tYWluLCBzbyBzaG91bGQgbm90IGhh dmUKKyAgICAgICAgICogY2hhbmdlZC4KKyAgICAgICAgICovCisgICAgICAg IGlmICggZHRlLT5pdF9yb290ICkKKyAgICAgICAgICAgIEFTU0VSVChkdGUt PmludF9jdGwgPT0gSU9NTVVfREVWX1RBQkxFX0lOVF9DT05UUk9MX1RSQU5T TEFURUQpOworICAgICAgICBBU1NFUlQoZHRlLT5pdiA9PSBpb21tdV9pbnRy ZW1hcCk7CisgICAgICAgIEFTU0VSVChkdGUtPmV4ID09IGl2cnNfZGV2LT5k dGVfYWxsb3dfZXhjbHVzaW9uKTsKKyAgICAgICAgQVNTRVJUKGR0ZS0+c3lz X21ndCA9PSBNQVNLX0VYVFIoaXZyc19kZXYtPmRldmljZV9mbGFncywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQUNQSV9J VkhEX1NZU1RFTV9NR01UKSk7CiAKLSAgICAgICAgQU1EX0lPTU1VX0RFQlVH KCJTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gJSN4LCB0eXBl ID0gJSN4LCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAicm9vdCB0YWJs ZSA9ICUjIlBSSXg2NCIsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJk b21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAlZFxuIiwKLSAgICAgICAgICAg ICAgICAgICAgICAgIHJlcV9pZCwgcGRldi0+dHlwZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2gucm9vdF90YWJs ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9p ZCwgaGQtPmFyY2gucGFnaW5nX21vZGUpOworICAgICAgICBpZiAoIHBjaV9h dHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1cywgcGRldi0+ZGV2Zm4pICYmCisg ICAgICAgICAgICAgaW9tbXVfaGFzX2NhcChpb21tdSwgUENJX0NBUF9JT1RM Ql9TSElGVCkgKQorICAgICAgICAgICAgQVNTRVJUKGR0ZS0+aSA9PSBhdHNf ZW5hYmxlZCk7CisKKyAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2RldmljZShp b21tdSwgcmVxX2lkKTsKICAgICB9CiAKICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogCisgICAgQU1EX0lPTU1V X0RFQlVHKCJTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gJSN4 LCB0eXBlID0gJSN4LCAiCisgICAgICAgICAgICAgICAgICAgICJyb290IHRh YmxlID0gJSMiUFJJeDY0IiwgIgorICAgICAgICAgICAgICAgICAgICAiZG9t YWluID0gJWQsIHBhZ2luZyBtb2RlID0gJWRcbiIsCisgICAgICAgICAgICAg ICAgICAgIHJlcV9pZCwgcGRldi0+dHlwZSwKKyAgICAgICAgICAgICAgICAg ICAgcGFnZV90b19tYWRkcihoZC0+YXJjaC5yb290X3RhYmxlKSwKKyAgICAg ICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLnBh Z2luZ19tb2RlKTsKKwogICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsK IAogICAgIGlmICggcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNlZywgYnVzLCBw ZGV2LT5kZXZmbikgJiYKQEAgLTE1MSw2ICsyNDksOCBAQCBzdGF0aWMgdm9p ZCBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljCiAKICAgICAgICAgYW1k X2lvbW11X2ZsdXNoX2lvdGxiKGRldmZuLCBwZGV2LCBJTlZfSU9NTVVfQUxM X1BBR0VTX0FERFJFU1MsIDApOwogICAgIH0KKworICAgIHJldHVybiAwOwog fQogCiBpbnQgX19pbml0IGFjcGlfaXZyc19pbml0KHZvaWQpCkBAIC0yMTQs MTcgKzMxNCw2IEBAIGludCBhbWRfaW9tbXVfYWxsb2Nfcm9vdChzdHJ1Y3Qg ZG9tYWluX2kKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGludCBfX211 c3RfY2hlY2sgYWxsb2NhdGVfZG9tYWluX3Jlc291cmNlcyhzdHJ1Y3QgZG9t YWluX2lvbW11ICpoZCkKLXsKLSAgICBpbnQgcmM7Ci0KLSAgICBzcGluX2xv Y2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Ci0gICAgcmMgPSBhbWRfaW9t bXVfYWxsb2Nfcm9vdChoZCk7Ci0gICAgc3Bpbl91bmxvY2soJmhkLT5hcmNo Lm1hcHBpbmdfbG9jayk7Ci0KLSAgICByZXR1cm4gcmM7Ci19Ci0KIGludCBf X3JlYWRfbW9zdGx5IGFtZF9pb21tdV9taW5fcGFnaW5nX21vZGUgPSAxOwog CiBzdGF0aWMgaW50IGFtZF9pb21tdV9kb21haW5faW5pdChzdHJ1Y3QgZG9t YWluICpkKQpAQCAtMzI0LDcgKzQxMyw2IEBAIHN0YXRpYyBpbnQgcmVhc3Np Z25fZGV2aWNlKHN0cnVjdCBkb21haW4KIHsKICAgICBzdHJ1Y3QgYW1kX2lv bW11ICppb21tdTsKICAgICBpbnQgYmRmLCByYzsKLSAgICBzdHJ1Y3QgZG9t YWluX2lvbW11ICp0ID0gZG9tX2lvbW11KHRhcmdldCk7CiAgICAgY29uc3Qg c3RydWN0IGl2cnNfbWFwcGluZ3MgKml2cnNfbWFwcGluZ3MgPSBnZXRfaXZy c19tYXBwaW5ncyhwZGV2LT5zZWcpOwogCiAgICAgYmRmID0gUENJX0JERjIo cGRldi0+YnVzLCBwZGV2LT5kZXZmbik7CkBAIC0zMzgsNyArNDI2LDE1IEBA IHN0YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4KICAg ICAgICAgcmV0dXJuIC1FTk9ERVY7CiAgICAgfQogCi0gICAgYW1kX2lvbW11 X2Rpc2FibGVfZG9tYWluX2RldmljZShzb3VyY2UsIGlvbW11LCBkZXZmbiwg cGRldik7CisgICAgcmMgPSBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2Rldmlj ZSh0YXJnZXQsIGlvbW11LCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByYyAp CisgICAgICAgIHJldHVybiByYzsKKworICAgIGlmICggZGV2Zm4gPT0gcGRl di0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCApCisgICAgewor ICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0 LT5wZGV2X2xpc3QpOworICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJnZXQ7 CisgICAgfQogCiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNlIGJlbG9u Z3MgdG8gdGhlIGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBhIHVuaXR5 IG1hcHBpbmcsCkBAIC0zNTQsMjcgKzQ1MCwxMCBAQCBzdGF0aWMgaW50IHJl YXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluCiAgICAgICAgICAgICByZXR1 cm4gcmM7CiAgICAgfQogCi0gICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZm biAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKLSAgICB7Ci0gICAgICAg IGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZkb21faW8tPnBkZXZf bGlzdCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9IGRvbV9pbzsKLSAgICB9 Ci0KLSAgICByYyA9IGFsbG9jYXRlX2RvbWFpbl9yZXNvdXJjZXModCk7Ci0g ICAgaWYgKCByYyApCi0gICAgICAgIHJldHVybiByYzsKLQotICAgIGFtZF9p b21tdV9zZXR1cF9kb21haW5fZGV2aWNlKHRhcmdldCwgaW9tbXUsIGRldmZu LCBwZGV2KTsKICAgICBBTURfSU9NTVVfREVCVUcoIlJlLWFzc2lnbiAlMDR4 OiUwMng6JTAyeC4ldSBmcm9tIGRvbSVkIHRvIGRvbSVkXG4iLAogICAgICAg ICAgICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1cywgUENJX1NMT1Qo ZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCiAgICAgICAgICAgICAgICAgICAg IHNvdXJjZS0+ZG9tYWluX2lkLCB0YXJnZXQtPmRvbWFpbl9pZCk7CiAKLSAg ICBpZiAoIGRldmZuID09IHBkZXYtPmRldmZuICYmIHBkZXYtPmRvbWFpbiAh PSB0YXJnZXQgKQotICAgIHsKLSAgICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5k b21haW5fbGlzdCwgJnRhcmdldC0+cGRldl9saXN0KTsKLSAgICAgICAgcGRl di0+ZG9tYWluID0gdGFyZ2V0OwotICAgIH0KLQogICAgIHJldHVybiAwOwog fQogCkBAIC01MzgsOCArNjE3LDcgQEAgc3RhdGljIGludCBhbWRfaW9tbXVf YWRkX2RldmljZSh1OCBkZXZmbgogICAgICAgICBzcGluX3VubG9ja19pcnFy ZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogICAgIH0KIAotICAgIGFt ZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNlKHBkZXYtPmRvbWFpbiwgaW9t bXUsIGRldmZuLCBwZGV2KTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g YW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBp b21tdSwgZGV2Zm4sIHBkZXYpOwogfQogCiBzdGF0aWMgaW50IGFtZF9pb21t dV9yZW1vdmVfZGV2aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRl dikK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-06.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-06.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSSkKCkFycmFuZ2UgZm9yIGRvbWFpbiBJRCBhbmQg cGFnZSB0YWJsZSByb290IHRvIGJlIHBhc3NlZCBhcm91bmQsIHRoZSBsYXR0 ZXIgaW4KcGFydGljdWxhciB0byBkb21haW5fcGdkX21hZGRyKCkgc3VjaCB0 aGF0IHRha2luZyBpdCBmcm9tIHRoZSBwZXItZG9tYWluCmZpZWxkcyBjYW4g YmUgb3ZlcnJpZGRlbi4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9l eHRlcm4uaApAQCAtODYsOSArODYsMTAgQEAgdm9pZCAqbWFwX3Z0ZF9kb21h aW5fcGFnZSh1NjQgbWFkZHIpOwogdm9pZCB1bm1hcF92dGRfZG9tYWluX3Bh Z2Uodm9pZCAqdmEpOwogaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25l KHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IHZ0ZF9pb21tdSAqaW9t bXUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBi dXMsIHVpbnQ4X3QgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGlu dCBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZG9taWRfdCBkb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHBnZF9tYWRkciwg dW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0X3VubWFw X29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRfaW9tbXUg KmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMs IHU4IGRldmZuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQpOwogaW50 IGludGVsX2lvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5KGlvbW11 X2dyZG1fdCAqZnVuYywgdm9pZCAqY3R4dCk7CiAKIHVuc2lnbmVkIGludCBp b19hcGljX3JlYWRfcmVtYXBfcnRlKHVuc2lnbmVkIGludCBhcGljLCB1bnNp Z25lZCBpbnQgcmVnKTsKQEAgLTEwNyw3ICsxMDgsOCBAQCB2b2lkIHBsYXRm b3JtX3F1aXJrc19pbml0KHZvaWQpOwogdm9pZCB2dGRfb3BzX3ByZWFtYmxl X3F1aXJrKHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KTsKIHZvaWQgdnRkX29w c19wb3N0YW1ibGVfcXVpcmsoc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpOwog aW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4g KmRvbWFpbiwgdWludDhfdCBidXMsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1vZGUpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgZGV2Zm4s IGRvbWlkX3QgZG9taWQsIHBhZGRyX3QgcGdkX21hZGRyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtb2RlKTsKIHZv aWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAqKTsKIHZv aWQgcXVpcmtfaW9tbXVfY2FwcyhzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7 CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAg LTEzNjcsMTIgKzEzNjcsMTIgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKAogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICBzdHJ1 Y3QgdnRkX2lvbW11ICppb21tdSwKICAgICB1aW50OF90IGJ1cywgdWludDhf dCBkZXZmbiwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsCi0gICAgdW5z aWduZWQgaW50IG1vZGUpCisgICAgZG9taWRfdCBkb21pZCwgcGFkZHJfdCBw Z2RfbWFkZHIsIHVuc2lnbmVkIGludCBtb2RlKQogewogICAgIHN0cnVjdCBk b21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbWFpbik7CiAgICAgc3Ry dWN0IGNvbnRleHRfZW50cnkgKmNvbnRleHQsICpjb250ZXh0X2VudHJpZXMs IGxjdHh0OwogICAgIF9fdWludDEyOF90IG9sZDsKLSAgICB1NjQgbWFkZHIs IHBnZF9tYWRkcjsKKyAgICB1aW50NjRfdCBtYWRkcjsKICAgICB1aW50MTZf dCBzZWcgPSBpb21tdS0+ZHJoZC0+c2VnbWVudCwgcHJldl9kaWQgPSAwOwog ICAgIHN0cnVjdCBkb21haW4gKnByZXZfZG9tID0gTlVMTDsKICAgICBpbnQg YWdhdywgcmMsIHJldDsKQEAgLTE0MTMsMTAgKzE0MTMsMTIgQEAgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIH0KICAgICBlbHNlCiAg ICAgeworICAgICAgICBwYWRkcl90IHJvb3QgPSBwZ2RfbWFkZHI7CisKICAg ICAgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCiAg ICAgICAgIC8qIEVuc3VyZSB3ZSBoYXZlIHBhZ2V0YWJsZXMgYWxsb2NhdGVk IGRvd24gdG8gbGVhZiBQVEUuICovCi0gICAgICAgIGlmICggaGQtPmFyY2gu cGdkX21hZGRyID09IDAgKQorICAgICAgICBpZiAoICFyb290ICkKICAgICAg ICAgewogICAgICAgICAgICAgYWRkcl90b19kbWFfcGFnZV9tYWRkcihkb21h aW4sIDAsIDEpOwogICAgICAgICAgICAgaWYgKCBoZC0+YXJjaC5wZ2RfbWFk ZHIgPT0gMCApCkBAIC0xNDI5LDIyICsxNDMxLDI0IEBAIGludCBkb21haW5f Y29udGV4dF9tYXBwaW5nX29uZSgKICAgICAgICAgICAgICAgICAgICAgcmN1 X3VubG9ja19kb21haW4ocHJldl9kb20pOwogICAgICAgICAgICAgICAgIHJl dHVybiAtRU5PTUVNOwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBy b290ID0gaGQtPmFyY2gucGdkX21hZGRyOwogICAgICAgICB9CiAKICAgICAg ICAgLyogU2tpcCB0b3AgbGV2ZWxzIG9mIHBhZ2UgdGFibGVzIGZvciAyLSBh bmQgMy1sZXZlbCBEUkhEcy4gKi8KLSAgICAgICAgcGdkX21hZGRyID0gaGQt PmFyY2gucGdkX21hZGRyOwogICAgICAgICBmb3IgKCBhZ2F3ID0gbGV2ZWxf dG9fYWdhdyg0KTsKICAgICAgICAgICAgICAgYWdhdyAhPSBsZXZlbF90b19h Z2F3KGlvbW11LT5ucl9wdF9sZXZlbHMpOwogICAgICAgICAgICAgICBhZ2F3 LS0gKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAq cCA9IG1hcF92dGRfZG9tYWluX3BhZ2UocGdkX21hZGRyKTsKLSAgICAgICAg ICAgIHBnZF9tYWRkciA9IGRtYV9wdGVfYWRkcigqcCk7CisgICAgICAgICAg ICBzdHJ1Y3QgZG1hX3B0ZSAqcCA9IG1hcF92dGRfZG9tYWluX3BhZ2Uocm9v dCk7CisKKyAgICAgICAgICAgIHJvb3QgPSBkbWFfcHRlX2FkZHIoKnApOwog ICAgICAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHApOwotICAgICAg ICAgICAgaWYgKCBwZ2RfbWFkZHIgPT0gMCApCisgICAgICAgICAgICBpZiAo ICFyb290ICkKICAgICAgICAgICAgICAgICBnb3RvIG5vbWVtOwogICAgICAg ICB9CiAKLSAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc19yb290KGxjdHh0 LCBwZ2RfbWFkZHIpOworICAgICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3Jv b3QobGN0eHQsIHJvb3QpOwogICAgICAgICBpZiAoIGF0c19lbmFibGVkICYm IGVjYXBfZGV2X2lvdGxiKGlvbW11LT5lY2FwKSApCiAgICAgICAgICAgICBj b250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBDT05URVhUX1RU X0RFVl9JT1RMQik7CiAgICAgICAgIGVsc2UKQEAgLTE1NjAsMTUgKzE1NjQs MjEgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHVu bWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOwogCiAgICAg aWYgKCAhc2VnICYmICFyYyApCi0gICAgICAgIHJjID0gbWVfd2lmaV9xdWly ayhkb21haW4sIGJ1cywgZGV2Zm4sIG1vZGUpOworICAgICAgICByYyA9IG1l X3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBkb21pZCwgcGdkX21h ZGRyLCBtb2RlKTsKIAogICAgIGlmICggcmMgKQogICAgIHsKICAgICAgICAg aWYgKCAhcHJldl9kb20gKQotICAgICAgICAgICAgcmV0ID0gZG9tYWluX2Nv bnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOwor ICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwog ICAgICAgICBlbHNlIGlmICggcHJldl9kb20gIT0gZG9tYWluICkgLyogQXZv aWQgaW5maW5pdGUgcmVjdXJzaW9uLiAqLworICAgICAgICB7CisgICAgICAg ICAgICBoZCA9IGRvbV9pb21tdShwcmV2X2RvbSk7CiAgICAgICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShwcmV2X2RvbSwgaW9t bXUsIGJ1cywgZGV2Zm4sIHBkZXYsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhk LT5hcmNoLnBnZF9tYWRkciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1vZGUgJiBNQVBfV0lUSF9STVJSKSA8IDA7 CisgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0ID0g MTsKIApAQCAtMTU5MCw2ICsxNjAwLDcgQEAgc3RhdGljIGludCBkb21haW5f Y29udGV4dF9tYXBwaW5nKHN0cnVjdAogewogICAgIHN0cnVjdCBhY3BpX2Ry aGRfdW5pdCAqZHJoZDsKICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3Vu aXQgKnJtcnI7CisgICAgcGFkZHJfdCBwZ2RfbWFkZHIgPSBkb21faW9tbXUo ZG9tYWluKS0+YXJjaC5wZ2RfbWFkZHI7CiAgICAgaW50IHJldCA9IDA7CiAg ICAgdW5zaWduZWQgaW50IGksIG1vZGUgPSAwOwogICAgIHVpbnQxNl90IHNl ZyA9IHBkZXYtPnNlZywgYmRmOwpAQCAtMTY1NSw3ICsxNjY2LDggQEAgc3Rh dGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAg ICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKICAg ICAgICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRl dmZuKSk7CiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdf b25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIG1vZGUp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw ZGV2LCBkb21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKICAgICAg ICAgaWYgKCByZXQgPiAwICkKICAgICAgICAgICAgIHJldCA9IDA7CiAgICAg ICAgIGlmICggIXJldCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNf ZGV2aWNlKHBkZXYsIGRyaGQpID4gMCApCkBAIC0xNjcwLDcgKzE2ODIsOCBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAg ICAgICAgICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhk ZXZmbikpOwogCiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIG1v ZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZGV2LCBkb21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKICAg ICAgICAgaWYgKCByZXQgPCAwICkKICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICBwcmV2X3ByZXNlbnQgPSByZXQ7CkBAIC0xNjk4LDcgKzE3MTEsOCBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAg ICAgICAgICAqLwogICAgICAgICBpZiAoIHJldCA+PSAwICkKICAgICAgICAg ICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwg ZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBtb2RlKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws IGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlKTsKIAogICAg ICAgICAvKgogICAgICAgICAgKiBEZXZpY2VzIGJlaGluZCBQQ0llLXRvLVBD SS9QQ0l4IGJyaWRnZSBtYXkgZ2VuZXJhdGUgZGlmZmVyZW50CkBAIC0xNzEz LDcgKzE3MjcsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmcoc3RydWN0CiAgICAgICAgIGlmICggIXJldCAmJiBwZGV2X3R5cGUoc2Vn LCBidXMsIGRldmZuKSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0UgJiYK ICAgICAgICAgICAgICAoc2VjYnVzICE9IHBkZXYtPmJ1cyB8fCBwZGV2LT5k ZXZmbiAhPSAwKSApCiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBzZWNidXMsIDAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBOVUxMLCBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIE5VTEwsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2Rf bWFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtb2RlKTsKIAogICAgICAgICBpZiAoIHJldCApCiAgICAgICAg IHsKQEAgLTE3NDIsNyArMTc1Nyw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZyhzdHJ1Y3QKIGludCBkb21haW5fY29udGV4dF91bm1h cF9vbmUoCiAgICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgIHN0cnVj dCB2dGRfaW9tbXUgKmlvbW11LAotICAgIHU4IGJ1cywgdTggZGV2Zm4pCisg ICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQp CiB7CiAgICAgc3RydWN0IGNvbnRleHRfZW50cnkgKmNvbnRleHQsICpjb250 ZXh0X2VudHJpZXM7CiAgICAgdTY0IG1hZGRyOwpAQCAtMTgwMCw3ICsxODE1 LDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICB1bm1h cF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsKIAogICAgIGlm ICggIWlvbW11LT5kcmhkLT5zZWdtZW50ICYmICFyYyApCi0gICAgICAgIHJj ID0gbWVfd2lmaV9xdWlyayhkb21haW4sIGJ1cywgZGV2Zm4sIFVOTUFQX01F X1BIQU5UT01fRlVOQyk7CisgICAgICAgIHJjID0gbWVfd2lmaV9xdWlyayhk b21haW4sIGJ1cywgZGV2Zm4sIGRvbWlkLCAwLCBVTk1BUF9NRV9QSEFOVE9N X0ZVTkMpOwogCiAgICAgaWYgKCByYyAmJiAhaXNfaGFyZHdhcmVfZG9tYWlu KGRvbWFpbikgJiYgZG9tYWluICE9IGRvbV9pbyApCiAgICAgewpAQCAtMTg1 Myw3ICsxODY4LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1h cChzdHJ1Y3QgZAogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVk OlBDSWU6IHVubWFwICUwNHg6JTAyeDolMDJ4LiV1XG4iLAogICAgICAgICAg ICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKICAgICAg ICAgICAgICAgICAgICBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZu KSk7Ci0gICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShk b21haW4sIGlvbW11LCBidXMsIGRldmZuKTsKKyAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2 Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk b21haW4tPmRvbWFpbl9pZCk7CiAgICAgICAgIGlmICggIXJldCAmJiBkZXZm biA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYsIGRyaGQpID4g MCApCiAgICAgICAgICAgICBkaXNhYmxlX2F0c19kZXZpY2UocGRldik7CiAK QEAgLTE4NjMsNyArMTg3OSw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfdW5tYXAoc3RydWN0IGQKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyAp CiAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6UENJOiB1bm1h cCAlMDR4OiUwMng6JTAyeC4ldVxuIiwKICAgICAgICAgICAgICAgICAgICBk b21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsIFBDSV9TTE9UKGRldmZuKSwg UENJX0ZVTkMoZGV2Zm4pKTsKLSAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBp b21tdSwgYnVzLCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgaWYg KCByZXQgKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTE4ODksMTIgKzE5 MDYsMTUgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1 Y3QgZAogICAgICAgICAvKiBQQ0llIHRvIFBDSS9QQ0l4IGJyaWRnZSAqLwog ICAgICAgICBpZiAoIHBkZXZfdHlwZShzZWcsIHRtcF9idXMsIHRtcF9kZXZm bikgPT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJREdFICkKICAgICAgICAgewot ICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbik7CisgICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21t dSwgdG1wX2J1cywgdG1wX2RldmZuLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAg ICAgICAgICAgIGlmICggIXJldCApCi0gICAgICAgICAgICAgICAgcmV0ID0g ZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIHNlY2J1 cywgMCk7CisgICAgICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRf dW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIHNlY2J1cywgMCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWlu LT5kb21haW5faWQpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgLyogTGVn YWN5IFBDSSBicmlkZ2UgKi8KLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9j b250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBf ZGV2Zm4pOworICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKGRvbWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21h aW4tPmRvbWFpbl9pZCk7CiAKICAgICAgICAgYnJlYWs7CiAKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYwpAQCAtMzQ1LDYgKzM0 NSw4IEBAIHZvaWQgX19pbml0IHBsYXRmb3JtX3F1aXJrc19pbml0KHZvaWQp CiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2Z1 bmN0aW9uKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb21pZF90IGRvbWlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZHJfdCBwZ2RfbWFk ZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICBzdHJ1Y3QgYWNw aV9kcmhkX3VuaXQgKmRyaGQ7CkBAIC0zNTgsMTYgKzM2MCwxNyBAQCBzdGF0 aWMgaW50IF9fbXVzdF9jaGVjayBtYXBfbWVfcGhhbnRvbV9mCiAgICAgLyog bWFwIG9yIHVubWFwIE1FIHBoYW50b20gZnVuY3Rpb24gKi8KICAgICBpZiAo ICEobW9kZSAmIFVOTUFQX01FX1BIQU5UT01fRlVOQykgKQogICAgICAgICBy YyA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+ aW9tbXUsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUENJX0RFVkZOKGRldiwgNyksIE5VTEwsIG1vZGUpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihk ZXYsIDcpLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvbWlkLCBwZ2RfbWFkZHIsIG1vZGUpOwogICAgIGVsc2UK ICAgICAgICAgcmMgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWlu LCBkcmhkLT5pb21tdSwgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUENJX0RFVkZOKGRldiwgNykpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVWRk4oZGV2LCA3KSwg ZG9taWQpOwogCiAgICAgcmV0dXJuIHJjOwogfQogCiBpbnQgbWVfd2lmaV9x dWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50 OF90IGRldmZuLAotICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1v ZGUpCisgICAgICAgICAgICAgICAgICBkb21pZF90IGRvbWlkLCBwYWRkcl90 IHBnZF9tYWRkciwgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAgICAgdTMyIGlk OwogICAgIGludCByYyA9IDA7CkBAIC0zOTEsNyArMzk0LDcgQEAgaW50IG1l X3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgICAgICAg ICAgY2FzZSAweDQyM2I4MDg2OgogICAgICAgICAgICAgY2FzZSAweDQyM2M4 MDg2OgogICAgICAgICAgICAgY2FzZSAweDQyM2Q4MDg2OgotICAgICAgICAg ICAgICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAz LCBtb2RlKTsKKyAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9t X2Z1bmN0aW9uKGRvbWFpbiwgMywgZG9taWQsIHBnZF9tYWRkciwgbW9kZSk7 CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0 OgogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDE3LDcgKzQyMCw3IEBA IGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAg ICAgICAgICAgIGNhc2UgMHg0MjM4ODA4NjogICAgICAgIC8qIFB1bWEgUGVh ayAqLwogICAgICAgICAgICAgY2FzZSAweDQyMmI4MDg2OgogICAgICAgICAg ICAgY2FzZSAweDQyMmM4MDg2OgotICAgICAgICAgICAgICAgIHJjID0gbWFw X21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAyMiwgbW9kZSk7CisgICAg ICAgICAgICAgICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5jdGlvbihkb21h aW4sIDIyLCBkb21pZCwgcGdkX21hZGRyLCBtb2RlKTsKICAgICAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg ICAgICAgYnJlYWs7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-07.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-07.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSUkpCgpSZXBsYWNlIHRoZSBwYXNzaW5nIG9mIHN0 cnVjdCBkb21haW4gKiBieSBkb21pZF90IGluIHByZXBhcmF0aW9uIG9mCnBl ci1kZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBhbHNvIHJlcXVpcmlu ZyBwZXItZGV2aWNlIHBzZXVkbwpkb21haW4gSURzLCB3aGljaCBhcmVuJ3Qg Z29pbmcgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFueSBzdHJ1Y3QgZG9tYWlu Cmluc3RhbmNlcy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkIChl eGNlcHQgZm9yIHNsaWdodGx5IGFkanVzdGVkIGxvZyBtZXNzYWdlCnRleHQp LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTU4LDggKzU4LDggQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0 IHZ0ZF9mYXVsdF90YXNrbGV0Owogc3RhdGljIGludCBzZXR1cF9od2RvbV9k ZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICopOwogc3RhdGljIHZv aWQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKTsKIAotc3Rh dGljIGludCBkb21haW5faW9tbXVfZG9taWQoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQorc3RhdGljIGludCBnZXRfaW9tbXVfZGlkKGRvbWlkX3Qg ZG9taWQsIGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAorICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgd2FybikKIHsKICAgICB1bnNpZ25l ZCBsb25nIG5yX2RvbSwgaTsKIApAQCAtNjcsMTYgKzY3LDE2IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICAgICBpID0g ZmluZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsK ICAgICB3aGlsZSAoIGkgPCBucl9kb20gKQogICAgIHsKLSAgICAgICAgaWYg KCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGQtPmRvbWFpbl9pZCApCisgICAg ICAgIGlmICggaW9tbXUtPmRvbWlkX21hcFtpXSA9PSBkb21pZCApCiAgICAg ICAgICAgICByZXR1cm4gaTsKIAogICAgICAgICBpID0gZmluZF9uZXh0X2Jp dChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20sIGkrMSk7CiAgICAgfQog Ci0gICAgaWYgKCAhZC0+aXNfZHlpbmcgKQorICAgIGlmICggd2FybiApCiAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCi0gICAgICAg ICAgICAgICAgIkNhbm5vdCBnZXQgdmFsaWQgaW9tbXUgJXUgZG9taWQ6ICVw ZFxuIiwKLSAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIGQpOworICAg ICAgICAgICAgICAgICJObyB2YWxpZCBpb21tdSAldSBkb21pZCBmb3IgRG9t JWRcbiIsCisgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCBkb21pZCk7 CiAKICAgICByZXR1cm4gLTE7CiB9CkBAIC04NCw4ICs4NCw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICNkZWZpbmUg RElEX0ZJRUxEX1dJRFRIIDE2CiAjZGVmaW5lIERJRF9ISUdIX09GRlNFVCA4 CiBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1Y3QgY29u dGV4dF9lbnRyeSAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQs IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVkIGxv bmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CkBAIC05Niw3ICs5 NSw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChpb21tdS0+ZG9taWRfYml0bWFw LCBucl9kb20pOwogICAgIHdoaWxlICggaSA8IG5yX2RvbSApCiAgICAgewot ICAgICAgICBpZiAoIGlvbW11LT5kb21pZF9tYXBbaV0gPT0gZC0+ZG9tYWlu X2lkICkKKyAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGRv bWlkICkKICAgICAgICAgewogICAgICAgICAgICAgZm91bmQgPSAxOwogICAg ICAgICAgICAgYnJlYWs7CkBAIC0xMTIsNyArMTExLDcgQEAgc3RhdGljIGlu dCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiSU9NTVU6IG5vIGZyZWUg ZG9tYWluIGlkc1xuIik7CiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsK ICAgICAgICAgfQotICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZC0+ ZG9tYWluX2lkOworICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZG9t aWQ7CiAgICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0 bWFwKTsKQEAgLTEyMSw5ICsxMjAsOSBAQCBzdGF0aWMgaW50IGNvbnRleHRf c2V0X2RvbWFpbl9pZChzdHJ1Y3QKICAgICByZXR1cm4gMDsKIH0KIAotc3Rh dGljIHZvaWQgY2xlYW51cF9kb21pZF9tYXAoc3RydWN0IGRvbWFpbiAqZG9t YWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKK3N0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKGRvbWlkX3QgZG9taWQsIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQogewotICAgIGludCBpb21tdV9kb21pZCA9IGRvbWFpbl9p b21tdV9kb21pZChkb21haW4sIGlvbW11KTsKKyAgICBpbnQgaW9tbXVfZG9t aWQgPSBnZXRfaW9tbXVfZGlkKGRvbWlkLCBpb21tdSwgZmFsc2UpOwogCiAg ICAgaWYgKCBpb21tdV9kb21pZCA+PSAwICkKICAgICB7CkBAIC0xNzksNyAr MTc4LDcgQEAgc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAo c3RydQogICAgIGlmICggIWZvdW5kICkKICAgICB7CiAgICAgICAgIGNsZWFy X2JpdChpb21tdS0+aW5kZXgsICZkb21faW9tbXUoZCktPmFyY2guaW9tbXVf Yml0bWFwKTsKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgaW9tbXUp OworICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChkLT5kb21haW5faWQsIGlv bW11KTsKICAgICB9CiB9CiAKQEAgLTYzNiw3ICs2MzUsNyBAQCBzdGF0aWMg aW50IF9fbXVzdF9jaGVjayBpb21tdV9mbHVzaF9pb3RsCiAgICAgICAgICAg ICBjb250aW51ZTsKIAogICAgICAgICBmbHVzaF9kZXZfaW90bGIgPSAhIWZp bmRfYXRzX2Rldl9kcmhkKGlvbW11KTsKLSAgICAgICAgaW9tbXVfZG9taWQ9 IGRvbWFpbl9pb21tdV9kb21pZChkLCBpb21tdSk7CisgICAgICAgIGlvbW11 X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkLT5kb21haW5faWQsIGlvbW11LCAh ZC0+aXNfZHlpbmcpOwogICAgICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0x ICkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xNDU3LDcgKzE0NTYs NyBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgIH0K IAotICAgIHJjID0gY29udGV4dF9zZXRfZG9tYWluX2lkKCZsY3R4dCwgZG9t YWluLCBpb21tdSk7CisgICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5faWQo JmxjdHh0LCBkb21pZCwgaW9tbXUpOwogICAgIGlmICggcmMgKQogICAgIHsK ICAgICB1bmxvY2s6CkBAIC0xNzgyLDcgKzE3ODEsNyBAQCBpbnQgZG9tYWlu X2NvbnRleHRfdW5tYXBfb25lKAogICAgIGNvbnRleHRfY2xlYXJfZW50cnko KmNvbnRleHQpOwogICAgIGlvbW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6 ZW9mKHN0cnVjdCBjb250ZXh0X2VudHJ5KSk7CiAKLSAgICBpb21tdV9kb21p ZD0gZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOworICAgIGlv bW11X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkb21pZCwgaW9tbXUsICFkb21h aW4tPmlzX2R5aW5nKTsKICAgICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkK ICAgICB7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CkBA IC0xOTU0LDcgKzE5NTMsNyBAQCBzdGF0aWMgdm9pZCBpb21tdV9kb21haW5f dGVhcmRvd24oc3RydWN0CiAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1h cHBpbmdfbG9jayk7CiAKICAgICBmb3JfZWFjaF9kcmhkX3VuaXQgKCBkcmhk ICkKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgZHJoZC0+aW9tbXUp OworICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChkLT5kb21haW5faWQsIGRy aGQtPmlvbW11KTsKIH0KIAogc3RhdGljIGludCBfX211c3RfY2hlY2sgaW50 ZWxfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZu LAo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-08.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-08.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IG1haW50YWluIGEgcGVyLWRldmljZSBwc2V1ZG8gZG9t YWluIElECgpJbiBvcmRlciB0byBzdWJzZXF1ZW50bHkgZW5hYmxlIHBlci1k ZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcywgd2UnbGwKbmVlZCBkb21h aW4tSUQtbGlrZSBpZGVudGlmaWVycyB0byBiZSBpbnNlcnRlZCBpbiB0aGUg cmVzcGVjdGl2ZSBkZXZpY2UKKEFNRCkgb3IgY29udGV4dCAoSW50ZWwpIHRh YmxlIGVudHJpZXMgYWxvbmdzaWRlIHRoZSBwZXItZGV2aWNlIHBhZ2UKdGFi bGUgcm9vdCBhZGRyZXNzZXMuCgpNYWtlIHVzZSBvZiAicmVhbCIgZG9tYWlu IElEcyBvY2N1cHlpbmcgb25seSBoYWxmIG9mIHRoZSB2YWx1ZSByYW5nZQpj b3ZlcmFibGUgYnkgZG9taWRfdC4KCk5vdGUgdGhhdCBpbiBWVC1kJ3MgaW9t bXVfYWxsb2MoKSBJIGRpZG4ndCB3YW50IHRvIGludHJvZHVjZSBuZXcgbWVt b3J5CmxlYWtzIGluIGNhc2Ugb2YgZXJyb3IsIGJ1dCBleGlzdGluZyBvbmVz IGRvbid0IGdldCBwbHVnZ2VkIC0gdGhhdCdsbCBiZQp0aGUgc3ViamVjdCBv ZiBhIGxhdGVyIGNoYW5nZS4KClRoZSBWVC1kIGNoYW5nZXMgYXJlIHNsaWdo dGx5IGFzeW1tZXRyaWMsIGJ1dCB0aGlzIHdheSB3ZSBjYW4gYXZvaWQKYXNz aWduaW5nIHBzZXVkbyBkb21haW4gSURzIHRvIGRldmljZXMgd2hpY2ggd291 bGQgbmV2ZXIgYmUgbWFwcGVkIHdoaWxlCnN0aWxsIGF2b2lkaW5nIHRvIGFk ZCBhIG5ldyBwYXJhbWV0ZXIgdG8gZG9tYWluX2NvbnRleHRfdW5tYXAoKS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpS ZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTEzMCw2ICsx MzAsMTAgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9k ZXNjCiAgICAgICAgIGlvbW11X3ZjYWxsKG9wcywgc3luY19jYWNoZSwgYWRk ciwgc2l6ZSk7ICAgICAgIFwKIH0pCiAKK3Vuc2lnbmVkIGxvbmcgKmlvbW11 X2luaXRfZG9taWQodm9pZCk7Citkb21pZF90IGlvbW11X2FsbG9jX2RvbWlk KHVuc2lnbmVkIGxvbmcgKm1hcCk7Cit2b2lkIGlvbW11X2ZyZWVfZG9taWQo ZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyAqbWFwKTsKKwogI2VuZGlm IC8qICFfX0FSQ0hfWDg2X0lPTU1VX0hfXyAqLwogLyoKICAqIExvY2FsIHZh cmlhYmxlczoKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wY2kuaAorKysg Yi94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xNSw2ICsxNSwxMiBA QAogCiBzdHJ1Y3QgYXJjaF9wY2lfZGV2IHsKICAgICB2bWFza190IHVzZWRf dmVjdG9yczsKKyAgICAvKgorICAgICAqIFRoZXNlIGZpZWxkcyBhcmUgKGRl KWluaXRpYWxpemVkIHVuZGVyIHBjaWRldnMtbG9jay4gT3RoZXIgdXNlcyBv ZgorICAgICAqIHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6YXRpb24g YW5kIGhlbmNlIGRvbid0IHN0cmljdGx5IG5lZWQgYW55CisgICAgICogbG9j a2luZy4KKyAgICAgKi8KKyAgICBkb21pZF90IHBzZXVkb19kb21pZDsKIH07 CiAKIGludCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50 IHNlZywgdW5zaWduZWQgaW50IGJkZiwKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11LmgKQEAgLTk2LDYgKzk2LDcgQEAgc3RydWN0IGFt ZF9pb21tdSB7CiAgICAgc3RydWN0IHJpbmdfYnVmZmVyIGNtZF9idWZmZXI7 CiAgICAgc3RydWN0IHJpbmdfYnVmZmVyIGV2ZW50X2xvZzsKICAgICBzdHJ1 Y3QgcmluZ19idWZmZXIgcHByX2xvZzsKKyAgICB1bnNpZ25lZCBsb25nICpk b21pZF9tYXA7CiAKICAgICBpbnQgZXhjbHVzaW9uX2VuYWJsZTsKICAgICBp bnQgZXhjbHVzaW9uX2FsbG93X2FsbDsKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYwpAQCAtMTgwLDYgKzE4 MCwxMSBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9kZXRlY3Rfb25lX2FjcGko CiAgICAgaWYgKCBydCApCiAgICAgICAgIGdvdG8gb3V0OwogCisgICAgaW9t bXUtPmRvbWlkX21hcCA9IGlvbW11X2luaXRfZG9taWQoKTsKKyAgICBydCA9 IC1FTk9NRU07CisgICAgaWYgKCAhaW9tbXUtPmRvbWlkX21hcCApCisgICAg ICAgIGdvdG8gb3V0OworCiAgICAgcnQgPSBwY2lfcm9fZGV2aWNlKGlvbW11 LT5zZWcsIGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpOwogICAgIGlmICgg cnQgKQogICAgICAgICBwcmludGsoWEVOTE9HX0VSUgpAQCAtMTkxLDcgKzE5 NiwxMCBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9kZXRlY3Rfb25lX2FjcGko CiAKICBvdXQ6CiAgICAgaWYgKCBydCApCisgICAgeworICAgICAgICB4ZnJl ZShpb21tdS0+ZG9taWRfbWFwKTsKICAgICAgICAgeGZyZWUoaW9tbXUpOwor ICAgIH0KIAogICAgIHJldHVybiBydDsKIH0KLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC01NTQs NiArNTU0LDggQEAgc3RhdGljIGludCBhbWRfaW9tbXVfYWRkX2RldmljZSh1 OCBkZXZmbgogICAgIHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11OwogICAgIHUx NiBiZGY7CiAgICAgc3RydWN0IGl2cnNfbWFwcGluZ3MgKml2cnNfbWFwcGlu Z3M7CisgICAgYm9vbCBmcmVzaF9kb21pZCA9IGZhbHNlOworICAgIGludCBy ZXQ7CiAKICAgICBpZiAoICFwZGV2LT5kb21haW4gKQogICAgICAgICByZXR1 cm4gLUVJTlZBTDsKQEAgLTYxNyw3ICs2MTksMjIgQEAgc3RhdGljIGludCBh bWRfaW9tbXVfYWRkX2RldmljZSh1OCBkZXZmbgogICAgICAgICBzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogICAgIH0K IAotICAgIHJldHVybiBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZShw ZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwgcGRldik7CisgICAgaWYgKCBp b21tdV9xdWFyYW50aW5lICYmIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID09 IERPTUlEX0lOVkFMSUQgKQorICAgIHsKKyAgICAgICAgcGRldi0+YXJjaC5w c2V1ZG9fZG9taWQgPSBpb21tdV9hbGxvY19kb21pZChpb21tdS0+ZG9taWRf bWFwKTsKKyAgICAgICAgaWYgKCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9 PSBET01JRF9JTlZBTElEICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PU1BD OworICAgICAgICBmcmVzaF9kb21pZCA9IHRydWU7CisgICAgfQorCisgICAg cmV0ID0gYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UocGRldi0+ZG9t YWluLCBpb21tdSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0ICYmIGZy ZXNoX2RvbWlkICkKKyAgICB7CisgICAgICAgIGlvbW11X2ZyZWVfZG9taWQo cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsIGlvbW11LT5kb21pZF9tYXApOwor ICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFM SUQ7CisgICAgfQorCisgICAgcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGlu dCBhbWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZXZmbiwgc3RydWN0IHBj aV9kZXYgKnBkZXYpCkBAIC02NDIsNiArNjU5LDkgQEAgc3RhdGljIGludCBh bWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZQogCiAgICAgYW1kX2lvbW11 X2Rpc2FibGVfZG9tYWluX2RldmljZShwZGV2LT5kb21haW4sIGlvbW11LCBk ZXZmbiwgcGRldik7CiAKKyAgICBpb21tdV9mcmVlX2RvbWlkKHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkLCBpb21tdS0+ZG9taWRfbWFwKTsKKyAgICBwZGV2 LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFMSUQ7CisKICAgICBp dnJzX21hcHBpbmdzID0gZ2V0X2l2cnNfbWFwcGluZ3MocGRldi0+c2VnKTsK ICAgICBiZGYgPSBQQ0lfQkRGMihwZGV2LT5idXMsIGRldmZuKTsKICAgICBp ZiAoIGFtZF9pb21tdV9wZXJkZXZfaW50cmVtYXAgJiYKLS0tIGEveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvcGNpLmMKQEAgLTMzOSw2ICszMzksNyBAQCBzdGF0aWMgc3Ry dWN0IHBjaV9kZXYgKmFsbG9jX3BkZXYoc3RydWN0CiAgICAgKigodTgqKSAm cGRldi0+YnVzKSA9IGJ1czsKICAgICAqKCh1OCopICZwZGV2LT5kZXZmbikg PSBkZXZmbjsKICAgICBwZGV2LT5kb21haW4gPSBOVUxMOworICAgIHBkZXYt PmFyY2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsKICAgICBJTklU X0xJU1RfSEVBRCgmcGRldi0+bXNpX2xpc3QpOwogCiAgICAgcG9zID0gcGNp X2ZpbmRfY2FwX29mZnNldChwc2VnLT5uciwgYnVzLCBQQ0lfU0xPVChkZXZm biksIFBDSV9GVU5DKGRldmZuKSwKQEAgLTEzNDksOSArMTM1MCwxMyBAQCBz dGF0aWMgaW50IF9kdW1wX3BjaV9kZXZpY2VzKHN0cnVjdCBwY2lfCiAKICAg ICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggcGRldiwgJnBzZWctPmFsbGRldnNf bGlzdCwgYWxsZGV2c19saXN0ICkKICAgICB7Ci0gICAgICAgIHByaW50aygi JTA0eDolMDJ4OiUwMnguJXUgLSAlcGQgLSBub2RlICUtM2QgLSBNU0lzIDwg IiwKLSAgICAgICAgICAgICAgIHBzZWctPm5yLCBwZGV2LT5idXMsCi0gICAg ICAgICAgICAgICBQQ0lfU0xPVChwZGV2LT5kZXZmbiksIFBDSV9GVU5DKHBk ZXYtPmRldmZuKSwgcGRldi0+ZG9tYWluLAorICAgICAgICBwcmludGsoIiUw NHg6JTAyeDolMDJ4LiV1IC0gIiwgcHNlZy0+bnIsIHBkZXYtPmJ1cywKKyAg ICAgICAgICAgICAgIFBDSV9TTE9UKHBkZXYtPmRldmZuKSwgUENJX0ZVTkMo cGRldi0+ZGV2Zm4pKTsKKyAgICAgICAgaWYgKCBwZGV2LT5kb21haW4gPT0g ZG9tX2lvICkKKyAgICAgICAgICAgIHByaW50aygiRG9tSU86JXgiLCBwZGV2 LT5hcmNoLnBzZXVkb19kb21pZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAg ICAgIHByaW50aygiJXBkIiwgcGRldi0+ZG9tYWluKTsKKyAgICAgICAgcHJp bnRrKCIgLSBub2RlICUtM2QgLSBNU0lzIDwgIiwKICAgICAgICAgICAgICAg IChwZGV2LT5ub2RlICE9IE5VTUFfTk9fTk9ERSkgPyBwZGV2LT5ub2RlIDog LTEpOwogICAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5ICggbXNpLCAmcGRl di0+bXNpX2xpc3QsIGxpc3QgKQogICAgICAgICAgICAgICAgcHJpbnRrKCIl ZCAiLCBtc2ktPmlycSk7Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9pb21tdS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSA8eGVuL3Nj aGVkLmg+CiAjaW5jbHVkZSA8eGVuL3htYWxsb2MuaD4KICNpbmNsdWRlIDx4 ZW4vZG9tYWluX3BhZ2UuaD4KKyNpbmNsdWRlIDx4ZW4vZXJyLmg+CiAjaW5j bHVkZSA8eGVuL2lvY2FwLmg+CiAjaW5jbHVkZSA8eGVuL2lvbW11Lmg+CiAj aW5jbHVkZSA8eGVuL251bWEuaD4KQEAgLTExOTUsNyArMTE5Niw3IEBAIGlu dCBfX2luaXQgaW9tbXVfYWxsb2Moc3RydWN0IGFjcGlfZHJoZF8KIHsKICAg ICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdTsKICAgICB1bnNpZ25lZCBsb25n IHNhZ2F3LCBucl9kb207Ci0gICAgaW50IGFnYXc7CisgICAgaW50IGFnYXcs IHJjOwogCiAgICAgaWYgKCBucl9pb21tdXMgPj0gTUFYX0lPTU1VUyApCiAg ICAgewpAQCAtMTI4OCw3ICsxMjg5LDE2IEBAIGludCBfX2luaXQgaW9tbXVf YWxsb2Moc3RydWN0IGFjcGlfZHJoZF8KICAgICBpZiAoICFpb21tdS0+ZG9t aWRfbWFwICkKICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAKKyAgICBpb21t dS0+cHNldWRvX2RvbWlkX21hcCA9IGlvbW11X2luaXRfZG9taWQoKTsKKyAg ICByYyA9IC1FTk9NRU07CisgICAgaWYgKCAhaW9tbXUtPnBzZXVkb19kb21p ZF9tYXAgKQorICAgICAgICBnb3RvIGZyZWU7CisKICAgICByZXR1cm4gMDsK KworIGZyZWU6CisgICAgaW9tbXVfZnJlZShkcmhkKTsKKyAgICByZXR1cm4g cmM7CiB9CiAKIHZvaWQgX19pbml0IGlvbW11X2ZyZWUoc3RydWN0IGFjcGlf ZHJoZF91bml0ICpkcmhkKQpAQCAtMTMxMSw2ICsxMzIxLDcgQEAgdm9pZCBf X2luaXQgaW9tbXVfZnJlZShzdHJ1Y3QgYWNwaV9kcmhkXwogCiAgICAgeGZy ZWUoaW9tbXUtPmRvbWlkX2JpdG1hcCk7CiAgICAgeGZyZWUoaW9tbXUtPmRv bWlkX21hcCk7CisgICAgeGZyZWUoaW9tbXUtPnBzZXVkb19kb21pZF9tYXAp OwogCiAgICAgaWYgKCBpb21tdS0+bXNpLmlycSA+PSAwICkKICAgICAgICAg ZGVzdHJveV9pcnEoaW9tbXUtPm1zaS5pcnEpOwpAQCAtMTU5MSw4ICsxNjAy LDggQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHJl dHVybiByYyA/OiBwZGV2ICYmIHByZXZfZG9tOwogfQogCi1zdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4 X3QgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBwY2lfZGV2ICpwZGV2KTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWNw aV9kcmhkX3VuaXQgKmRvbWFpbl9jb250ZXh0X3VubWFwKAorICAgIHN0cnVj dCBkb21haW4gKmQsIHVpbnQ4X3QgZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpw ZGV2KTsKIAogc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpCkBA IC0xNjAwLDYgKzE2MTEsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X21hcHBpbmcoc3RydWN0CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpk cmhkOwogICAgIGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsK ICAgICBwYWRkcl90IHBnZF9tYWRkciA9IGRvbV9pb21tdShkb21haW4pLT5h cmNoLnBnZF9tYWRkcjsKKyAgICBkb21pZF90IG9yaWdfZG9taWQgPSBwZGV2 LT5hcmNoLnBzZXVkb19kb21pZDsKICAgICBpbnQgcmV0ID0gMDsKICAgICB1 bnNpZ25lZCBpbnQgaSwgbW9kZSA9IDA7CiAgICAgdWludDE2X3Qgc2VnID0g cGRldi0+c2VnLCBiZGY7CkBAIC0xNjYwLDYgKzE2NzIsMTQgQEAgc3RhdGlj IGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICBi cmVhazsKIAogICAgIGNhc2UgREVWX1RZUEVfUENJZV9FTkRQT0lOVDoKKyAg ICAgICAgaWYgKCBpb21tdV9xdWFyYW50aW5lICYmIG9yaWdfZG9taWQgPT0g RE9NSURfSU5WQUxJRCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHBkZXYt PmFyY2gucHNldWRvX2RvbWlkID0KKyAgICAgICAgICAgICAgICBpb21tdV9h bGxvY19kb21pZChkcmhkLT5pb21tdS0+cHNldWRvX2RvbWlkX21hcCk7Cisg ICAgICAgICAgICBpZiAoIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID09IERP TUlEX0lOVkFMSUQgKQorICAgICAgICAgICAgICAgIHJldHVybiAtRU5PU1BD OworICAgICAgICB9CisKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAg ICAgICAgICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6UENJZTogbWFwICUw NHg6JTAyeDolMDJ4LiV1XG4iLAogICAgICAgICAgICAgICAgICAgIGRvbWFp bi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKQEAgLTE2NzUsNiArMTY5NSwxNCBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAg ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBERVZfVFlQRV9QQ0k6CisgICAg ICAgIGlmICggaW9tbXVfcXVhcmFudGluZSAmJiBvcmlnX2RvbWlkID09IERP TUlEX0lOVkFMSUQgKQorICAgICAgICB7CisgICAgICAgICAgICBwZGV2LT5h cmNoLnBzZXVkb19kb21pZCA9CisgICAgICAgICAgICAgICAgaW9tbXVfYWxs b2NfZG9taWQoZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOworICAg ICAgICAgICAgaWYgKCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01J RF9JTlZBTElEICkKKyAgICAgICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsK KyAgICAgICAgfQorCiAgICAgICAgIGlmICggaW9tbXVfZGVidWcgKQogICAg ICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBDSTogbWFwICUwNHg6 JTAyeDolMDJ4LiV1XG4iLAogICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ ZG9tYWluX2lkLCBzZWcsIGJ1cywKQEAgLTE3NTAsNiArMTc3OCwxMyBAQCBz dGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAg aWYgKCAhcmV0ICYmIGRldmZuID09IHBkZXYtPmRldmZuICkKICAgICAgICAg cGNpX3Z0ZF9xdWlyayhwZGV2KTsKIAorICAgIGlmICggcmV0ICYmIGRyaGQg JiYgb3JpZ19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAgICB7CisgICAg ICAgIGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgZHJoZC0+aW9tbXUtPnBzZXVk b19kb21pZF9tYXApOworICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21p ZCA9IERPTUlEX0lOVkFMSUQ7CisgICAgfQorCiAgICAgcmV0dXJuIHJldDsK IH0KIApAQCAtMTgzMiw4ICsxODY3LDEwIEBAIGludCBkb21haW5fY29udGV4 dF91bm1hcF9vbmUoCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwg dTggZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBwY2lfZGV2ICpwZGV2KQorc3RhdGljIGNvbnN0IHN0cnVjdCBhY3Bp X2RyaGRfdW5pdCAqZG9tYWluX2NvbnRleHRfdW5tYXAoCisgICAgc3RydWN0 IGRvbWFpbiAqZG9tYWluLAorICAgIHVpbnQ4X3QgZGV2Zm4sCisgICAgc3Ry dWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91 bml0ICpkcmhkOwogICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11OwpAQCAt MTg0Myw3ICsxODgwLDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91 bm1hcChzdHJ1Y3QgZAogCiAgICAgZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVk X2RyaGRfdW5pdChwZGV2KTsKICAgICBpZiAoICFkcmhkICkKLSAgICAgICAg cmV0dXJuIC1FTk9ERVY7CisgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9E RVYpOwogICAgIGlvbW11ID0gZHJoZC0+aW9tbXU7CiAKICAgICBzd2l0Y2gg KCBwZGV2LT50eXBlICkKQEAgLTE4NTQsNyArMTg5MSw3IEBAIHN0YXRpYyBp bnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGQKICAgICAgICAgICAg ICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsCiAgICAgICAg ICAgICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikp OwogICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZG9tYWluKSAp Ci0gICAgICAgICAgICByZXR1cm4gLUVQRVJNOworICAgICAgICAgICAgcmV0 dXJuIEVSUl9QVFIoLUVQRVJNKTsKICAgICAgICAgZ290byBvdXQ7CiAKICAg ICBjYXNlIERFVl9UWVBFX1BDSWVfQlJJREdFOgpAQCAtMTkyOSw3ICsxOTY2 LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3Qg ZAogICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21hcChkb21haW4sIHBk ZXYsIGlvbW11KTsKIAogb3V0OgotICAgIHJldHVybiByZXQ7CisgICAgcmV0 dXJuIHJldCA/IEVSUl9QVFIocmV0KSA6IGRyaGQ7CiB9CiAKIHN0YXRpYyB2 b2lkIGlvbW11X2RvbWFpbl90ZWFyZG93bihzdHJ1Y3QgZG9tYWluICpkKQpA QCAtMjE1MywxNiArMjE5MCwxNyBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11 X2VuYWJsZV9kZXZpY2Uoc3RyCiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf cmVtb3ZlX2RldmljZSh1OCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBkZXYp CiB7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwog ICAgIHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKICAgICB1MTYgYmRm OwotICAgIGludCByZXQsIGk7CisgICAgdW5zaWduZWQgaW50IGk7CiAKICAg ICBpZiAoICFwZGV2LT5kb21haW4gKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKIAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHBkZXYtPmRv bWFpbiwgZGV2Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAg cmV0dXJuIHJldDsKKyAgICBkcmhkID0gZG9tYWluX2NvbnRleHRfdW5tYXAo cGRldi0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCBJU19FUlIo ZHJoZCkgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihkcmhkKTsKIAogICAg IGZvcl9lYWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7 CkBAIC0yMTc5LDYgKzIyMTcsMTMgQEAgc3RhdGljIGludCBpbnRlbF9pb21t dV9yZW1vdmVfZGV2aWNlKHU4CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcm1yci0+ZW5kX2FkZHJlc3MsIDApOwogICAgIH0KIAorICAgIGlm ICggZHJoZCApCisgICAgeworICAgICAgICBpb21tdV9mcmVlX2RvbWlkKHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGRyaGQtPmlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAg cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBET01JRF9JTlZBTElEOworICAg IH0KKwogICAgIHJldHVybiAwOwogfQogCi0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5oCkBAIC01MzUsNiArNTM1LDcgQEAgc3RydWN0 IHZ0ZF9pb21tdSB7CiAgICAgfSBmbHVzaDsKIAogICAgIHN0cnVjdCBsaXN0 X2hlYWQgYXRzX2RldmljZXM7CisgICAgdW5zaWduZWQgbG9uZyAqcHNldWRv X2RvbWlkX21hcDsgLyogInBzZXVkbyIgZG9tYWluIGlkIGJpdG1hcCAqLwog ICAgIHVuc2lnbmVkIGxvbmcgKmRvbWlkX2JpdG1hcDsgIC8qIGRvbWFpbiBp ZCBiaXRtYXAgKi8KICAgICB1MTYgKmRvbWlkX21hcDsgICAgICAgICAgICAg ICAvKiBkb21haW4gaWQgbWFwcGluZyBhcnJheSAqLwogICAgIHVpbnQzMl90 IHZlcnNpb247Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9p b21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21t dS5jCkBAIC0zNzUsNiArMzc1LDUzIEBAIHZvaWQgX19od2RvbV9pbml0IGFy Y2hfaW9tbXVfaHdkb21faW5pdCgKICAgICAgICAgcmV0dXJuOwogfQogCit1 bnNpZ25lZCBsb25nICpfX2luaXQgaW9tbXVfaW5pdF9kb21pZCh2b2lkKQor eworICAgIGlmICggIWlvbW11X3F1YXJhbnRpbmUgKQorICAgICAgICByZXR1 cm4gWkVST19CTE9DS19QVFI7CisKKyAgICBCVUlMRF9CVUdfT04oRE9NSURf TUFTSyAqIDJVID49IFVJTlQxNl9NQVgpOworCisgICAgcmV0dXJuIHh6YWxs b2NfYXJyYXkodW5zaWduZWQgbG9uZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICBCSVRTX1RPX0xPTkdTKFVJTlQxNl9NQVggLSBET01JRF9NQVNLKSk7 Cit9CisKK2RvbWlkX3QgaW9tbXVfYWxsb2NfZG9taWQodW5zaWduZWQgbG9u ZyAqbWFwKQoreworICAgIC8qCisgICAgICogVGhpcyBpcyB1c2VkIHVuaWZv cm1seSBhY3Jvc3MgYWxsIElPTU1Vcywgc3VjaCB0aGF0IG9uIHR5cGljYWwK KyAgICAgKiBzeXN0ZW1zIHdlIHdvdWxkbid0IHJlLXVzZSB0aGUgc2FtZSBJ RCB2ZXJ5IHF1aWNrbHkgKHBlcmhhcHMgbmV2ZXIpLgorICAgICAqLworICAg IHN0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnQ7CisgICAgdW5zaWduZWQgaW50 IGlkeCA9IGZpbmRfbmV4dF96ZXJvX2JpdChtYXAsIFVJTlQxNl9NQVggLSBE T01JRF9NQVNLLCBzdGFydCk7CisKKyAgICBBU1NFUlQocGNpZGV2c19sb2Nr ZWQoKSk7CisKKyAgICBpZiAoIGlkeCA+PSBVSU5UMTZfTUFYIC0gRE9NSURf TUFTSyApCisgICAgICAgIGlkeCA9IGZpbmRfZmlyc3RfemVyb19iaXQobWFw LCBVSU5UMTZfTUFYIC0gRE9NSURfTUFTSyk7CisgICAgaWYgKCBpZHggPj0g VUlOVDE2X01BWCAtIERPTUlEX01BU0sgKQorICAgICAgICByZXR1cm4gRE9N SURfSU5WQUxJRDsKKworICAgIF9fc2V0X2JpdChpZHgsIG1hcCk7CisKKyAg ICBzdGFydCA9IGlkeCArIDE7CisKKyAgICByZXR1cm4gaWR4IHwgKERPTUlE X01BU0sgKyAxKTsKK30KKwordm9pZCBpb21tdV9mcmVlX2RvbWlkKGRvbWlk X3QgZG9taWQsIHVuc2lnbmVkIGxvbmcgKm1hcCkKK3sKKyAgICBBU1NFUlQo cGNpZGV2c19sb2NrZWQoKSk7CisKKyAgICBpZiAoIGRvbWlkID09IERPTUlE X0lOVkFMSUQgKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoZG9t aWQgPiBET01JRF9NQVNLKTsKKworICAgIGlmICggIV9fdGVzdF9hbmRfY2xl YXJfYml0KGRvbWlkICYgRE9NSURfTUFTSywgbWFwKSApCisgICAgICAgIEJV RygpOworfQorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICogbW9kZTog Qwo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-09.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-09.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IGRyb3AgVExCIGZsdXNoZXMgZnJvbSBxdWFyYW50aW5l X2luaXQoKSBob29rcwoKVGhlIHBhZ2UgdGFibGVzIGp1c3QgY3JlYXRlZCBh cmVuJ3QgaG9va2VkIHVwIHlldCBhbnl3aGVyZSwgc28gdGhlcmUncwpub3Ro aW5nIHRoYXQgY291bGQgYmUgcHJlc2VudCBpbiBhbnkgVExCLCBhbmQgaGVu Y2Ugbm90aGluZyB0byBmbHVzaC4KRHJvcHBpbmcgdGhpcyBmbHVzaCBpcywg YXQgbGVhc3Qgb24gdGhlIFZULWQgc2lkZSwgYSBwcmVyZXEgdG8gcGVyLQpk ZXZpY2UgZG9tYWluIElEIHVzZSB3aGVuIHF1YXJhbnRpbmluZyBkZXZpY2Vz LCBhcyBkb21faW8gaXNuJ3QgZ29pbmcKdG8gYmUgYXNzaWduZWQgYSBESUQg YW55bW9yZTogVGhlIHdhcm5pbmcgaW4gZ2V0X2lvbW11X2RpZCgpIHdvdWxk CnRyaWdnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxA eGVuLm9yZz4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC01ODUsOCArNTg1LDYgQEAgaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cgogIG91dDoK ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKIAot ICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfcGFnZXMoZCk7Ci0KICAgICAvKiBQ YWdlcyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCiAgICAgcmV0dXJuIGxl dmVsID8gLUVOT01FTSA6IDA7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0yOTE0LDcgKzI5MTQsNiBAQCBzdGF0aWMg aW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lCiAgICAgc3RydWN0 IGRtYV9wdGUgKnBhcmVudDsKICAgICB1bnNpZ25lZCBpbnQgYWdhdyA9IHdp ZHRoX3RvX2FnYXcoREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCk7CiAg ICAgdW5zaWduZWQgaW50IGxldmVsID0gYWdhd190b19sZXZlbChhZ2F3KTsK LSAgICBpbnQgcmM7CiAKICAgICBpZiAoIGhkLT5hcmNoLnBnZF9tYWRkciAp CiAgICAgewpAQCAtMjk2MSwxMCArMjk2MCw4IEBAIHN0YXRpYyBpbnQgX19p bml0IGludGVsX2lvbW11X3F1YXJhbnRpbmUKICBvdXQ6CiAgICAgc3Bpbl91 bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKLSAgICByYyA9IGlv bW11X2ZsdXNoX2lvdGxiX2FsbChkKTsKLQogICAgIC8qIFBhZ2VzIGxlYWtl ZCBpbiBmYWlsdXJlIGNhc2UgKi8KLSAgICByZXR1cm4gbGV2ZWwgPyAtRU5P TUVNIDogcmM7CisgICAgcmV0dXJuIGxldmVsID8gLUVOT01FTSA6IDA7CiB9 CiAKIGNvbnN0IHN0cnVjdCBpb21tdV9vcHMgX19pbml0Y29uc3RyZWwgaW50 ZWxfaW9tbXVfb3BzID0gewo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-10.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-10.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IGFic3RyYWN0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2Ug dGFibGUgbGV2ZWxzCgpXZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBjb25zdGFu dCBlbHNld2hlcmUuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWxAeGVuLm9yZz4KCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdS5oCkBAIC0zNjIsNyArMzYyLDcgQEAgc3RhdGljIGlubGluZSBpbnQg YW1kX2lvbW11X2dldF9wYWdpbmdfbQogICAgIHdoaWxlICggbWF4X2ZyYW1l cyA+IFBURV9QRVJfVEFCTEVfU0laRSApCiAgICAgewogICAgICAgICBtYXhf ZnJhbWVzID0gUFRFX1BFUl9UQUJMRV9BTElHTihtYXhfZnJhbWVzKSA+PiBQ VEVfUEVSX1RBQkxFX1NISUZUOwotICAgICAgICBpZiAoICsrbGV2ZWwgPiA2 ICkKKyAgICAgICAgaWYgKCArK2xldmVsID4gSU9NTVVfTUFYX1BUX0xFVkVM UyApCiAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICB9CiAKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11LWRlZnMuaAor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUtZGVmcy5o CkBAIC0xMDYsNiArMTA2LDcgQEAgc3RydWN0IGFtZF9pb21tdV9kdGUgewog ICAgIGJvb2wgdHY6MTsKICAgICB1bnNpZ25lZCBpbnQgOjU7CiAgICAgdW5z aWduZWQgaW50IGhhZDoyOworI2RlZmluZSBJT01NVV9NQVhfUFRfTEVWRUxT IDYKICAgICB1bnNpZ25lZCBpbnQgcGFnaW5nX21vZGU6MzsKICAgICB1aW50 NjRfdCBwdF9yb290OjQwOwogICAgIGJvb2wgcHByOjE7Ci0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTI1Niw3 ICsyNTYsNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9mcm9tX2RmbihzdHJ1 Y3QgZG9tCiAgICAgdGFibGUgPSBoZC0+YXJjaC5yb290X3RhYmxlOwogICAg IGxldmVsID0gaGQtPmFyY2gucGFnaW5nX21vZGU7CiAKLSAgICBCVUdfT04o IHRhYmxlID09IE5VTEwgfHwgbGV2ZWwgPCAxIHx8IGxldmVsID4gNiApOwor ICAgIEJVR19PTiggdGFibGUgPT0gTlVMTCB8fCBsZXZlbCA8IDEgfHwgbGV2 ZWwgPiBJT01NVV9NQVhfUFRfTEVWRUxTICk7CiAKICAgICAvKgogICAgICAq IEEgZnJhbWUgbnVtYmVyIHBhc3Qgd2hhdCB0aGUgY3VycmVudCBwYWdlIHRh YmxlcyBjYW4gcmVwcmVzZW50IGNhbid0Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.14-11.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.14-11.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHVzZSBwZXItZGV2aWNlIHBhZ2UgdGFibGVzIGZvciBx dWFyYW50aW5pbmcKCkRldmljZXMgd2l0aCBSTVJScyAvIHVuaXR5IG1hcHBl ZCByZWdpb25zLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQKaG93L3do ZW4gdGhlc2UgbWVtb3J5IHJlZ2lvbnMgbWF5IGJlIGFjY2Vzc2VkLCBtYXkg bm90IGJlIGxlZnQKZGlzY29ubmVjdGVkIGZyb20gdGhlIG1hcHBpbmdzIG9m IHRoZXNlIHJlZ2lvbnMgKGFzIGxvbmcgYXMgaXQncyBub3QKY2VydGFpbiB0 aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgcXVpZXNjZWQpLiBIZW5j ZSBldmVuIHRoZSBwYWdlCnRhYmxlcyB1c2VkIHdoZW4gcXVhcmFudGluaW5n IHN1Y2ggZGV2aWNlcyBuZWVkIHRvIGhhdmUgbWFwcGluZ3Mgb2YKdGhvc2Ug cmVnaW9ucy4gVGhpcyBpbXBsaWVzIGluc3RhbGxpbmcgcGFnZSB0YWJsZXMg aW4gdGhlIGZpcnN0IHBsYWNlCmV2ZW4gd2hlbiBub3QgaW4gc2NyYXRjaC1w YWdlIHF1YXJhbnRpbmluZyBtb2RlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM2 MSAvIHBhcnQgb2YgWFNBLTQwMC4KCldoaWxlIGZvciB0aGUgcHVycG9zZSBo ZXJlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBkZXZpY2VzIHdp dGgKUk1SUnMgLyB1bml0eSBtYXBwZWQgcmVnaW9ucyB1c2UgcGVyLWRldmlj ZSBwYWdlIHRhYmxlcywgZXh0ZW5kIHRoaXMgdG8KYWxsIGRldmljZXMgKGlu IHNjcmF0Y2gtcGFnZSBxdWFyYW50aW5pbmcgbW9kZSkuIFRoaXMgYWxsb3dz IHRoZSBsZWFmCnBhZ2VzIHRvIGJlIG1hcHBlZCByL3csIHRodXMgY292ZXJp bmcgYWxzbyBtZW1vcnkgd3JpdGVzIChyYXRoZXIgdGhhbgpqdXN0IHJlYWRz KSBpc3N1ZWQgYnkgbm9uLXF1aWVzY2VudCBkZXZpY2VzLgoKU2V0IHVwIHF1 YXJhbnRpbmUgcGFnZSB0YWJsZXMgYXMgbGF0ZSBhcyBwb3NzaWJsZSwgeWV0 IGVhcmx5IGVub3VnaCB0bwpub3QgZW5jb3VudGVyIGZhaWx1cmUgZHVyaW5n IGRlLWFzc2lnbi4gVGhpcyBtZWFucyBzZXR1cCBnZW5lcmFsbHkKaGFwcGVu cyBpbiBhc3NpZ25fZGV2aWNlKCksIHdoaWxlIChmb3Igbm93KSB0aGUgb25l IGluIGRlYXNzaWduX2RldmljZSgpCmlzIHRoZXJlIG1haW5seSB0byBiZSBv biB0aGUgc2FmZSBzaWRlLgoKSW4gVlQtZCdzIERJRCBhbGxvY2F0aW9uIGZ1 bmN0aW9uIGRvbid0IHJlcXVpcmUgdGhlIElPTU1VIGxvY2sgdG8gYmUKaGVs ZCBhbnltb3JlOiBBbGwgaW52b2x2ZWQgY29kZSBwYXRocyBob2xkIHBjaWRl dnNfbG9jaywgc28gdGhpcyB3YXkgd2UKYXZvaWQgdGhlIG5lZWQgdG8gYWNx dWlyZSB0aGUgSU9NTVUgbG9jayBhcm91bmQgdGhlIG5ldyBjYWxsIHRvCmNv bnRleHRfc2V0X2RvbWFpbl9pZCgpLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBE dXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFu IDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpA QCAtMTQ1NSw3ICsxNDU1LDcgQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50 cnkoc3RydWN0IGRvbWFpbgogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0g PSBwMm1fZ2V0X2hvc3RwMm0oZCk7CiAgICAgaW50IHJldDsKIAotICAgIGlm ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQorICAg IGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewogICAg ICAgICBpZiAoICFpc19pb21tdV9lbmFibGVkKGQpICkKICAgICAgICAgICAg IHJldHVybiAwOwotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGNpLmgKQEAgLTEsNiArMSw4IEBA CiAjaWZuZGVmIF9fWDg2X1BDSV9IX18KICNkZWZpbmUgX19YODZfUENJX0hf XwogCisjaW5jbHVkZSA8eGVuL21tLmg+CisKICNkZWZpbmUgQ0Y4X0JERihj ZjgpICAgICAoICAoKGNmOCkgJiAweDAwZmZmZjAwKSA+PiA4KQogI2RlZmlu ZSBDRjhfQUREUl9MTyhjZjgpICggICAoY2Y4KSAmIDB4MDAwMDAwZmMpCiAj ZGVmaW5lIENGOF9BRERSX0hJKGNmOCkgKCAgKChjZjgpICYgMHgwZjAwMDAw MCkgPj4gMTYpCkBAIC0yMCw3ICsyMiwxOCBAQCBzdHJ1Y3QgYXJjaF9wY2lf ZGV2IHsKICAgICAgKiB0aGVtIGRvbid0IHJhY2UgKGRlKWluaXRpYWxpemF0 aW9uIGFuZCBoZW5jZSBkb24ndCBzdHJpY3RseSBuZWVkIGFueQogICAgICAq IGxvY2tpbmcuCiAgICAgICovCisgICAgdW5pb24geworICAgICAgICAvKiBT dWJzZXQgb2Ygc3RydWN0IGFyY2hfaW9tbXUncyBmaWVsZHMsIHRvIGJlIHVz ZWQgaW4gZG9tX2lvLiAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAg ICAgdWludDY0X3QgcGdkX21hZGRyOworICAgICAgICB9IHZ0ZDsKKyAgICAg ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnJv b3RfdGFibGU7CisgICAgICAgIH0gYW1kOworICAgIH07CiAgICAgZG9taWRf dCBwc2V1ZG9fZG9taWQ7CisgICAgbWZuX3QgbGVhZl9tZm47CisgICAgc3Ry dWN0IHBhZ2VfbGlzdF9oZWFkIHBndGFibGVzX2xpc3Q7CiB9OwogCiBpbnQg cGNpX2NvbmZfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBzZWcsIHVu c2lnbmVkIGludCBiZGYsCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdS5oCkBAIC0yMjMsNyArMjIzLDggQEAgaW50IGFtZF9pb21tdV9p bml0X2xhdGUodm9pZCk7CiBpbnQgYW1kX2lvbW11X3VwZGF0ZV9pdnJzX21h cHBpbmdfYWNwaSh2b2lkKTsKIGludCBpb3ZfYWRqdXN0X2lycV9hZmZpbml0 aWVzKHZvaWQpOwogCi1pbnQgYW1kX2lvbW11X3F1YXJhbnRpbmVfaW5pdChz dHJ1Y3QgZG9tYWluICpkKTsKK2ludCBhbWRfaW9tbXVfcXVhcmFudGluZV9p bml0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKK3ZvaWQgYW1kX2lvbW11X3F1 YXJhbnRpbmVfdGVhcmRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogCiAv KiBtYXBwaW5nIGZ1bmN0aW9ucyAqLwogaW50IF9fbXVzdF9jaGVjayBhbWRf aW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5j CkBAIC01MjksNjQgKzUyOSwxMzcgQEAgaW50IGFtZF9pb21tdV9yZXNlcnZl X2RvbWFpbl91bml0eV91bm1hcAogICAgIHJldHVybiByYzsKIH0KIAotaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBkb21h aW4gKmQpCitzdGF0aWMgaW50IGZpbGxfcXB0KHVuaW9uIGFtZF9pb21tdV9w dGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZlbCwKKyAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdzW0lPTU1VX01BWF9QVF9MRVZF TFNdLAorICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRl dikKIHsKLSAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21t dShkKTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgcmMgPSAwOwor CisgICAgZm9yICggaSA9IDA7ICFyYyAmJiBpIDwgUFRFX1BFUl9UQUJMRV9T SVpFOyArK2kgKQorICAgIHsKKyAgICAgICAgdW5pb24gYW1kX2lvbW11X3B0 ZSAqcHRlID0gJnRoaXNbaV0sICpuZXh0OworCisgICAgICAgIGlmICggIXB0 ZS0+cHIgKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoICFwZ3NbbGV2 ZWxdICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvKgorICAg ICAgICAgICAgICAgICAqIFRoZSBwZ3RhYmxlIGFsbG9jYXRvciBpcyBmaW5l IGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3ZWxsIGFzCisgICAgICAgICAgICAg ICAgICogcGFnZSB0YWJsZSBwYWdlcywgYW5kIHRoZSByZXN1bHRpbmcgYWxs b2NhdGlvbnMgYXJlIGFsd2F5cworICAgICAgICAgICAgICAgICAqIHplcm9l ZC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgICAgICBwZ3Nb bGV2ZWxdID0gYWxsb2NfYW1kX2lvbW11X3BndGFibGUoKTsKKyAgICAgICAg ICAgICAgICBpZiAoICFwZ3NbbGV2ZWxdICkKKyAgICAgICAgICAgICAgICB7 CisgICAgICAgICAgICAgICAgICAgIHJjID0gLUVOT01FTTsKKyAgICAgICAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAg ICAgICAgICAgICAgcGFnZV9saXN0X2FkZChwZ3NbbGV2ZWxdLCAmcGRldi0+ YXJjaC5wZ3RhYmxlc19saXN0KTsKKworICAgICAgICAgICAgICAgIGlmICgg bGV2ZWwgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg ICAgbmV4dCA9IF9fbWFwX2RvbWFpbl9wYWdlKHBnc1tsZXZlbF0pOworICAg ICAgICAgICAgICAgICAgICByYyA9IGZpbGxfcXB0KG5leHQsIGxldmVsIC0g MSwgcGdzLCBwZGV2KTsKKyAgICAgICAgICAgICAgICAgICAgdW5tYXBfZG9t YWluX3BhZ2UobmV4dCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgfQorCisgICAgICAgICAgICAvKgorICAgICAgICAgICAgICogUERFcyBh cmUgZXNzZW50aWFsbHkgYSBzdWJzZXQgb2YgUFRFcywgc28gdGhpcyBmdW5j dGlvbgorICAgICAgICAgICAgICogaXMgZmluZSB0byB1c2UgZXZlbiBhdCB0 aGUgbGVhZi4KKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgc2V0X2lv bW11X3BkZV9wcmVzZW50KHB0ZSwgbWZuX3gocGFnZV90b19tZm4ocGdzW2xl dmVsXSkpLCBsZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0cnVlLCB0cnVlKTsKKyAgICAgICAgfQorICAgICAgICBlbHNlIGlm ICggbGV2ZWwgJiYgcHRlLT5uZXh0X2xldmVsICkKKyAgICAgICAgeworICAg ICAgICAgICAgcGFnZV9saXN0X2FkZChtZm5fdG9fcGFnZShfbWZuKHB0ZS0+ bWZuKSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICZwZGV2LT5hcmNo LnBndGFibGVzX2xpc3QpOworICAgICAgICAgICAgbmV4dCA9IG1hcF9kb21h aW5fcGFnZShfbWZuKHB0ZS0+bWZuKSk7CisgICAgICAgICAgICByYyA9IGZp bGxfcXB0KG5leHQsIGxldmVsIC0gMSwgcGdzLCBwZGV2KTsKKyAgICAgICAg ICAgIHVubWFwX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAgICB9CisgICAg fQorCisgICAgcmV0dXJuIHJjOworfQorCitpbnQgYW1kX2lvbW11X3F1YXJh bnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKyAgICBzdHJ1 Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21faW8pOwogICAg IHVuc2lnbmVkIGxvbmcgZW5kX2dmbiA9CiAgICAgICAgIDF1bCA8PCAoREVG QVVMVF9ET01BSU5fQUREUkVTU19XSURUSCAtIFBBR0VfU0hJRlQpOwogICAg IHVuc2lnbmVkIGludCBsZXZlbCA9IGFtZF9pb21tdV9nZXRfcGFnaW5nX21v ZGUoZW5kX2dmbik7Ci0gICAgdW5pb24gYW1kX2lvbW11X3B0ZSAqdGFibGU7 CisgICAgdW5zaWduZWQgaW50IHJlcV9pZCA9IGdldF9kbWFfcmVxdWVzdG9y X2lkKHBkZXYtPnNlZywgcGRldi0+c2JkZi5iZGYpOworICAgIGNvbnN0IHN0 cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX21hcHBpbmdzID0gZ2V0X2l2cnNf bWFwcGluZ3MocGRldi0+c2VnKTsKKyAgICBpbnQgcmM7CiAKLSAgICBpZiAo IGhkLT5hcmNoLnJvb3RfdGFibGUgKQorICAgIEFTU0VSVChwY2lkZXZzX2xv Y2tlZCgpKTsKKyAgICBBU1NFUlQoIWhkLT5hcmNoLnJvb3RfdGFibGUpOwor CisgICAgQVNTRVJUKHBkZXYtPmFyY2gucHNldWRvX2RvbWlkICE9IERPTUlE X0lOVkFMSUQpOworCisgICAgaWYgKCBwZGV2LT5hcmNoLmFtZC5yb290X3Rh YmxlICkKICAgICB7Ci0gICAgICAgIEFTU0VSVF9VTlJFQUNIQUJMRSgpOwor ICAgICAgICBjbGVhcl9kb21haW5fcGFnZShwZGV2LT5hcmNoLmxlYWZfbWZu KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgc3Bpbl9sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwotCi0gICAgaGQtPmFyY2gucm9v dF90YWJsZSA9IGFsbG9jX2FtZF9pb21tdV9wZ3RhYmxlKCk7Ci0gICAgaWYg KCAhaGQtPmFyY2gucm9vdF90YWJsZSApCi0gICAgICAgIGdvdG8gb3V0Owot Ci0gICAgdGFibGUgPSBfX21hcF9kb21haW5fcGFnZShoZC0+YXJjaC5yb290 X3RhYmxlKTsKLSAgICB3aGlsZSAoIGxldmVsICkKKyAgICBwZGV2LT5hcmNo LmFtZC5yb290X3RhYmxlID0gYWxsb2NfYW1kX2lvbW11X3BndGFibGUoKTsK KyAgICBpZiAoICFwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlICkKKyAgICAg ICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICAvKiBUcmFuc2llbnRseSBpbnN0 YWxsIHRoZSByb290IGludG8gRG9tSU8sIGZvciBpb21tdV9pZGVudGl0eV9t YXBwaW5nKCkuICovCisgICAgaGQtPmFyY2gucm9vdF90YWJsZSA9IHBkZXYt PmFyY2guYW1kLnJvb3RfdGFibGU7CisKKyAgICByYyA9IGFtZF9pb21tdV9y ZXNlcnZlX2RvbWFpbl91bml0eV9tYXAoZG9tX2lvLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdnJzX21hcHBpbmdz W3JlcV9pZF0udW5pdHlfbWFwLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwKTsKKworICAgIGlvbW11X2lkZW50aXR5 X21hcF90ZWFyZG93bihkb21faW8pOworICAgIGhkLT5hcmNoLnJvb3RfdGFi bGUgPSBOVUxMOworCisgICAgaWYgKCByYyApCisgICAgICAgIHByaW50aygi JTA0eDolMDJ4OiUwMnguJXU6IHF1YXJhbnRpbmUgdW5pdHkgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICBwZGV2LT5zZWcsIHBkZXYtPmJ1 cywKKyAgICAgICAgICAgICAgIFBDSV9TTE9UKHBkZXYtPmRldmZuKSwgUENJ X0ZVTkMocGRldi0+ZGV2Zm4pKTsKKyAgICBlbHNlCiAgICAgewotICAgICAg ICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICAgICAgdW5zaWduZWQgaW50 IGk7CisgICAgICAgIHVuaW9uIGFtZF9pb21tdV9wdGUgKnJvb3Q7CisgICAg ICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnc1tJT01NVV9NQVhfUFRfTEVWRUxT XSA9IHt9OwogCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBwZ3RhYmxl IGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3ZWxs IGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUgcmVz dWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKLSAgICAgICAgICogemVy b2VkLgotICAgICAgICAgKi8KLSAgICAgICAgcGcgPSBhbGxvY19hbWRfaW9t bXVfcGd0YWJsZSgpOwotICAgICAgICBpZiAoICFwZyApCi0gICAgICAgICAg ICBicmVhazsKKyAgICAgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5n X2xvY2spOwogCi0gICAgICAgIGZvciAoIGkgPSAwOyBpIDwgUFRFX1BFUl9U QUJMRV9TSVpFOyBpKysgKQotICAgICAgICB7Ci0gICAgICAgICAgICB1bmlv biBhbWRfaW9tbXVfcHRlICpwZGUgPSAmdGFibGVbaV07CisgICAgICAgIHJv b3QgPSBfX21hcF9kb21haW5fcGFnZShwZGV2LT5hcmNoLmFtZC5yb290X3Rh YmxlKTsKKyAgICAgICAgcmMgPSBmaWxsX3FwdChyb290LCBsZXZlbCAtIDEs IHBncywgcGRldik7CisgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHJvb3Qp OwogCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogUERFcyBhcmUg ZXNzZW50aWFsbHkgYSBzdWJzZXQgb2YgUFRFcywgc28gdGhpcyBmdW5jdGlv bgotICAgICAgICAgICAgICogaXMgZmluZSB0byB1c2UgZXZlbiBhdCB0aGUg bGVhZi4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgc2V0X2lvbW11 X3BkZV9wcmVzZW50KHBkZSwgbWZuX3gocGFnZV90b19tZm4ocGcpKSwgbGV2 ZWwgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZh bHNlLCB0cnVlKTsKLSAgICAgICAgfQorICAgICAgICBwZGV2LT5hcmNoLmxl YWZfbWZuID0gcGFnZV90b19tZm4ocGdzWzBdKTsKIAotICAgICAgICB1bm1h cF9kb21haW5fcGFnZSh0YWJsZSk7Ci0gICAgICAgIHRhYmxlID0gX19tYXBf ZG9tYWluX3BhZ2UocGcpOwotICAgICAgICBsZXZlbC0tOworICAgICAgICBz cGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICB9Ci0g ICAgdW5tYXBfZG9tYWluX3BhZ2UodGFibGUpOwogCi0gb3V0OgotICAgIHNw aW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworICAgIGlmICgg cmMgKQorICAgICAgICBhbWRfaW9tbXVfcXVhcmFudGluZV90ZWFyZG93bihw ZGV2KTsKKworICAgIHJldHVybiByYzsKK30KKwordm9pZCBhbWRfaW9tbXVf cXVhcmFudGluZV90ZWFyZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sK KyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKKworICAgIEFTU0VSVChwY2lk ZXZzX2xvY2tlZCgpKTsKKworICAgIGlmICggIXBkZXYtPmFyY2guYW1kLnJv b3RfdGFibGUgKQorICAgICAgICByZXR1cm47CisKKyAgICB3aGlsZSAoIChw ZyA9IHBhZ2VfbGlzdF9yZW1vdmVfaGVhZCgmcGRldi0+YXJjaC5wZ3RhYmxl c19saXN0KSkgKQorICAgICAgICBmcmVlX2FtZF9pb21tdV9wZ3RhYmxlKHBn KTsKIAotICAgIC8qIFBhZ2VzIGxlYWtlZCBpbiBmYWlsdXJlIGNhc2UgKi8K LSAgICByZXR1cm4gbGV2ZWwgPyAtRU5PTUVNIDogMDsKKyAgICBwZGV2LT5h cmNoLmFtZC5yb290X3RhYmxlID0gTlVMTDsKIH0KIAogLyoKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5j CkBAIC0xMjIsNiArMTIyLDggQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sg YW1kX2lvbW11X3NldHVwXwogICAgIHU4IGJ1cyA9IHBkZXYtPmJ1czsKICAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21haW4p OwogICAgIGNvbnN0IHN0cnVjdCBpdnJzX21hcHBpbmdzICppdnJzX2RldjsK KyAgICBjb25zdCBzdHJ1Y3QgcGFnZV9pbmZvICpyb290X3BnOworICAgIGRv bWlkX3QgZG9taWQ7CiAKICAgICBCVUdfT04oIWhkLT5hcmNoLnBhZ2luZ19t b2RlIHx8ICFpb21tdS0+ZGV2X3RhYmxlLmJ1ZmZlcik7CiAKQEAgLTE0MSwx NCArMTQzLDI1IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21t dV9zZXR1cF8KICAgICBkdGUgPSAmdGFibGVbcmVxX2lkXTsKICAgICBpdnJz X2RldiA9ICZnZXRfaXZyc19tYXBwaW5ncyhpb21tdS0+c2VnKVtyZXFfaWRd OwogCisgICAgaWYgKCBkb21haW4gIT0gZG9tX2lvICkKKyAgICB7CisgICAg ICAgIHJvb3RfcGcgPSBoZC0+YXJjaC5yb290X3RhYmxlOworICAgICAgICBk b21pZCA9IGRvbWFpbi0+ZG9tYWluX2lkOworICAgIH0KKyAgICBlbHNlCisg ICAgeworICAgICAgICByb290X3BnID0gcGRldi0+YXJjaC5hbWQucm9vdF90 YWJsZTsKKyAgICAgICAgZG9taWQgPSBwZGV2LT5hcmNoLnBzZXVkb19kb21p ZDsKKyAgICB9CisKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgmaW9tbXUtPmxv Y2ssIGZsYWdzKTsKIAogICAgIGlmICggIWR0ZS0+diB8fCAhZHRlLT50diAp CiAgICAgewogICAgICAgICAvKiBiaW5kIERURSB0byBkb21haW4gcGFnZS10 YWJsZXMgKi8KICAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFn ZV90YWJsZSgKLSAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRy KGhkLT5hcmNoLnJvb3RfdGFibGUpLAotICAgICAgICAgICAgICAgICBkb21h aW4tPmRvbWFpbl9pZCwgaGQtPmFyY2gucGFnaW5nX21vZGUsIHNyX2ZsYWdz KTsKKyAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKHJvb3Rf cGcpLCBkb21pZCwKKyAgICAgICAgICAgICAgICAgaGQtPmFyY2gucGFnaW5n X21vZGUsIHNyX2ZsYWdzKTsKICAgICAgICAgaWYgKCByYyApCiAgICAgICAg IHsKICAgICAgICAgICAgIEFTU0VSVChyYyA8IDApOwpAQCAtMTcyLDcgKzE4 NSw3IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1 cF8KIAogICAgICAgICBhbWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCBy ZXFfaWQpOwogICAgIH0KLSAgICBlbHNlIGlmICggZHRlLT5wdF9yb290ICE9 IG1mbl94KHBhZ2VfdG9fbWZuKGhkLT5hcmNoLnJvb3RfdGFibGUpKSApCisg ICAgZWxzZSBpZiAoIGR0ZS0+cHRfcm9vdCAhPSBtZm5feChwYWdlX3RvX21m bihyb290X3BnKSkgKQogICAgIHsKICAgICAgICAgLyoKICAgICAgICAgICog U3RyaWN0bHkgc3BlYWtpbmcgaWYgdGhlIGRldmljZSBpcyB0aGUgb25seSBv bmUgd2l0aCB0aGlzIHJlcXVlc3RvcgpAQCAtMTg1LDggKzE5OCw4IEBAIHN0 YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICAg ICAgICAgIHJjID0gLUVPUE5PVFNVUFA7CiAgICAgICAgIGVsc2UKICAgICAg ICAgICAgIHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCi0g ICAgICAgICAgICAgICAgICAgICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFy Y2gucm9vdF90YWJsZSksCi0gICAgICAgICAgICAgICAgICAgICBkb21haW4t PmRvbWFpbl9pZCwgaGQtPmFyY2gucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsK KyAgICAgICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihyb290 X3BnKSwgZG9taWQsCisgICAgICAgICAgICAgICAgICAgICBoZC0+YXJjaC5w YWdpbmdfbW9kZSwgc3JfZmxhZ3MpOwogICAgICAgICBpZiAoIHJjIDwgMCAp CiAgICAgICAgIHsKICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3Rv cmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CkBAIC0yMDUsNiArMjE4LDcgQEAg c3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwogICAg ICAgICAgICAgICAqIGludGVuZGVkIGFueXdheS4KICAgICAgICAgICAgICAg Ki8KICAgICAgICAgICAgICAhcGRldi0+ZG9tYWluLT5pc19keWluZyAmJgor ICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gJiYKICAgICAg ICAgICAgICAoYW55X3BkZXZfYmVoaW5kX2lvbW11KHBkZXYtPmRvbWFpbiwg cGRldiwgaW9tbXUpIHx8CiAgICAgICAgICAgICAgIHBkZXYtPnBoYW50b21f c3RyaWRlKSApCiAgICAgICAgICAgICBwcmludGsoIiAlMDR4OiUwMng6JTAy eC4ldTogcmVhc3NpZ25tZW50IG1heSBjYXVzZSAlcGQgZGF0YSBjb3JydXB0 aW9uXG4iLApAQCAtMjM1LDkgKzI0OSw4IEBAIHN0YXRpYyBpbnQgX19tdXN0 X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBBTURfSU9NTVVfREVCVUco IlNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAlI3gsIHR5cGUg PSAlI3gsICIKICAgICAgICAgICAgICAgICAgICAgInJvb3QgdGFibGUgPSAl IyJQUkl4NjQiLCAiCiAgICAgICAgICAgICAgICAgICAgICJkb21haW4gPSAl ZCwgcGFnaW5nIG1vZGUgPSAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAg cmVxX2lkLCBwZGV2LT50eXBlLAotICAgICAgICAgICAgICAgICAgICBwYWdl X3RvX21hZGRyKGhkLT5hcmNoLnJvb3RfdGFibGUpLAotICAgICAgICAgICAg ICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2gucGFnaW5nX21v ZGUpOworICAgICAgICAgICAgICAgICAgICByZXFfaWQsIHBkZXYtPnR5cGUs IHBhZ2VfdG9fbWFkZHIocm9vdF9wZyksCisgICAgICAgICAgICAgICAgICAg IGRvbWlkLCBoZC0+YXJjaC5wYWdpbmdfbW9kZSk7CiAKICAgICBBU1NFUlQo cGNpZGV2c19sb2NrZWQoKSk7CiAKQEAgLTMwNCw3ICszMTcsNyBAQCBzdGF0 aWMgaW50IGlvdl9lbmFibGVfeHQodm9pZCkKIAogaW50IGFtZF9pb21tdV9h bGxvY19yb290KHN0cnVjdCBkb21haW5faW9tbXUgKmhkKQogewotICAgIGlm ICggdW5saWtlbHkoIWhkLT5hcmNoLnJvb3RfdGFibGUpICkKKyAgICBpZiAo IHVubGlrZWx5KCFoZC0+YXJjaC5yb290X3RhYmxlKSAmJiBoZCAhPSBkb21f aW9tbXUoZG9tX2lvKSApCiAgICAgewogICAgICAgICBoZC0+YXJjaC5yb290 X3RhYmxlID0gYWxsb2NfYW1kX2lvbW11X3BndGFibGUoKTsKICAgICAgICAg aWYgKCAhaGQtPmFyY2gucm9vdF90YWJsZSApCkBAIC0zOTUsNyArNDA4LDcg QEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2Rpc2FibGVfZG9tYWluX2Rldgog CiAgICAgICAgIEFNRF9JT01NVV9ERUJVRygiRGlzYWJsZTogZGV2aWNlIGlk ID0gJSN4LCAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiZG9tYWluID0g JWQsIHBhZ2luZyBtb2RlID0gJWRcbiIsCi0gICAgICAgICAgICAgICAgICAg ICAgICByZXFfaWQsICBkb21haW4tPmRvbWFpbl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJlcV9pZCwgZHRlLT5kb21haW5faWQsCiAgICAgICAg ICAgICAgICAgICAgICAgICBkb21faW9tbXUoZG9tYWluKS0+YXJjaC5wYWdp bmdfbW9kZSk7CiAgICAgfQogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmlvbW11LT5sb2NrLCBmbGFncyk7CkBAIC02NTksNiArNjcyLDggQEAgc3Rh dGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZQogCiAgICAg YW1kX2lvbW11X2Rpc2FibGVfZG9tYWluX2RldmljZShwZGV2LT5kb21haW4s IGlvbW11LCBkZXZmbiwgcGRldik7CiAKKyAgICBhbWRfaW9tbXVfcXVhcmFu dGluZV90ZWFyZG93bihwZGV2KTsKKwogICAgIGlvbW11X2ZyZWVfZG9taWQo cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsIGlvbW11LT5kb21pZF9tYXApOwog ICAgIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsK IAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTQ0NywyMSAr NDQ3LDIxIEBAIGludCBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRv bWFpbgogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBfX2luaXQg aW9tbXVfcXVhcmFudGluZV9pbml0KHZvaWQpCitpbnQgaW9tbXVfcXVhcmFu dGluZV9kZXZfaW5pdChkZXZpY2VfdCAqZGV2KQogewogICAgIGNvbnN0IHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7Ci0g ICAgaW50IHJjOwogCi0gICAgZG9tX2lvLT5vcHRpb25zIHw9IFhFTl9ET01D VExfQ0RGX2lvbW11OworICAgIGlmICggIWlvbW11X3F1YXJhbnRpbmUgfHwg IWhkLT5wbGF0Zm9ybV9vcHMtPnF1YXJhbnRpbmVfaW5pdCApCisgICAgICAg IHJldHVybiAwOwogCi0gICAgcmMgPSBpb21tdV9kb21haW5faW5pdChkb21f aW8sIDApOwotICAgIGlmICggcmMgKQotICAgICAgICByZXR1cm4gcmM7Cisg ICAgcmV0dXJuIGlvbW11X2NhbGwoaGQtPnBsYXRmb3JtX29wcywgcXVhcmFu dGluZV9pbml0LCBkZXYpOworfQogCi0gICAgaWYgKCAhaGQtPnBsYXRmb3Jt X29wcy0+cXVhcmFudGluZV9pbml0ICkKLSAgICAgICAgcmV0dXJuIDA7Citz dGF0aWMgaW50IF9faW5pdCBpb21tdV9xdWFyYW50aW5lX2luaXQodm9pZCkK K3sKKyAgICBkb21faW8tPm9wdGlvbnMgfD0gWEVOX0RPTUNUTF9DREZfaW9t bXU7CiAKLSAgICByZXR1cm4gaGQtPnBsYXRmb3JtX29wcy0+cXVhcmFudGlu ZV9pbml0KGRvbV9pbyk7CisgICAgcmV0dXJuIGlvbW11X2RvbWFpbl9pbml0 KGRvbV9pbywgMCk7CiB9CiAKIGludCBfX2luaXQgaW9tbXVfc2V0dXAodm9p ZCkKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKQEAgLTkyOSw5ICs5Mjks MTYgQEAgc3RhdGljIGludCBkZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFp bgogICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAogICAgIC8qIERlLWFzc2ln bm1lbnQgZnJvbSBkb21faW8gc2hvdWxkIGRlLXF1YXJhbnRpbmUgdGhlIGRl dmljZSAqLwotICAgIHRhcmdldCA9ICgocGRldi0+cXVhcmFudGluZSB8fCBp b21tdV9xdWFyYW50aW5lKSAmJgotICAgICAgICAgICAgICBwZGV2LT5kb21h aW4gIT0gZG9tX2lvKSA/Ci0gICAgICAgIGRvbV9pbyA6IGhhcmR3YXJlX2Rv bWFpbjsKKyAgICBpZiAoIChwZGV2LT5xdWFyYW50aW5lIHx8IGlvbW11X3F1 YXJhbnRpbmUpICYmIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQorICAgIHsK KyAgICAgICAgcmV0ID0gaW9tbXVfcXVhcmFudGluZV9kZXZfaW5pdChwY2lf dG9fZGV2KHBkZXYpKTsKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAg ICByZXR1cm4gcmV0OworCisgICAgICAgIHRhcmdldCA9IGRvbV9pbzsKKyAg ICB9CisgICAgZWxzZQorICAgICAgICB0YXJnZXQgPSBoYXJkd2FyZV9kb21h aW47CiAKICAgICB3aGlsZSAoIHBkZXYtPnBoYW50b21fc3RyaWRlICkKICAg ICB7CkBAIC0xNTI4LDYgKzE1MzUsMTMgQEAgc3RhdGljIGludCBhc3NpZ25f ZGV2aWNlKHN0cnVjdCBkb21haW4gKgogICAgICAgICBtc2l4dGJsX2luaXQo ZCk7CiAgICAgfQogCisgICAgaWYgKCBwZGV2LT5kb21haW4gIT0gZG9tX2lv ICkKKyAgICB7CisgICAgICAgIHJjID0gaW9tbXVfcXVhcmFudGluZV9kZXZf aW5pdChwY2lfdG9fZGV2KHBkZXYpKTsKKyAgICAgICAgaWYgKCByYyApCisg ICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgfQorCiAgICAgcGRldi0+ZmF1 bHQuY291bnQgPSAwOwogCiAgICAgaWYgKCAocmMgPSBoZC0+cGxhdGZvcm1f b3BzLT5hc3NpZ25fZGV2aWNlKGQsIGRldmZuLCBwY2lfdG9fZGV2KHBkZXYp LCBmbGFnKSkgKQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv aW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9t bXUuYwpAQCAtNDMsNiArNDMsMTIgQEAKICNpbmNsdWRlICJ2dGQuaCIKICNp bmNsdWRlICIuLi9hdHMuaCIKIAorI2RlZmluZSBERVZJQ0VfRE9NSUQoZCwg cGRldikgKChkKSAhPSBkb21faW8gPyAoZCktPmRvbWFpbl9pZCBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChw ZGV2KS0+YXJjaC5wc2V1ZG9fZG9taWQpCisjZGVmaW5lIERFVklDRV9QR1RB QkxFKGQsIHBkZXYpICgoZCkgIT0gZG9tX2lvIFwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgID8gZG9tX2lvbW11KGQpLT5hcmNoLnBnZF9t YWRkciBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IChw ZGV2KS0+YXJjaC52dGQucGdkX21hZGRyKQorCiAvKiBQb3NzaWJsZSB1bmZp bHRlcmVkIExBUElDL01TSSBtZXNzYWdlcyBmcm9tIHVudHJ1c3RlZCBzb3Vy Y2VzPyAqLwogYm9vbCBfX3JlYWRfbW9zdGx5IHVudHJ1c3RlZF9tc2k7CiAK QEAgLTg0LDEzICs5MCwxOCBAQCBzdGF0aWMgaW50IGdldF9pb21tdV9kaWQo ZG9taWRfdCBkb21pZCwKIAogI2RlZmluZSBESURfRklFTERfV0lEVEggMTYK ICNkZWZpbmUgRElEX0hJR0hfT0ZGU0VUIDgKKworLyoKKyAqIFRoaXMgZnVu Y3Rpb24gbWF5IGhhdmUgImNvbnRleHQiIHBhc3NlZCBhcyBOVUxMLCB0byBt ZXJlbHkgb2J0YWluIGEgRElECisgKiBmb3IgImRvbWlkIi4KKyAqLwogc3Rh dGljIGludCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0IGNvbnRleHRf ZW50cnkgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb21pZF90IGRvbWlkLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkK IHsKICAgICB1bnNpZ25lZCBsb25nIG5yX2RvbSwgaTsKICAgICBpbnQgZm91 bmQgPSAwOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZpb21tdS0+ bG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKIAogICAg IG5yX2RvbSA9IGNhcF9uZG9tcyhpb21tdS0+Y2FwKTsKICAgICBpID0gZmlu ZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsKQEAg LTExNiw4ICsxMjcsMTMgQEAgc3RhdGljIGludCBjb250ZXh0X3NldF9kb21h aW5faWQoc3RydWN0CiAgICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ ZG9taWRfYml0bWFwKTsKLSAgICBjb250ZXh0LT5oaSAmPSB+KCgoMSA8PCBE SURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElEX0hJR0hfT0ZGU0VUKTsKLSAg ICBjb250ZXh0LT5oaSB8PSAoaSAmICgoMSA8PCBESURfRklFTERfV0lEVEgp IC0gMSkpIDw8IERJRF9ISUdIX09GRlNFVDsKKworICAgIGlmICggY29udGV4 dCApCisgICAgeworICAgICAgICBjb250ZXh0LT5oaSAmPSB+KCgoMSA8PCBE SURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElEX0hJR0hfT0ZGU0VUKTsKKyAg ICAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAoKDEgPDwgRElEX0ZJRUxEX1dJ RFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZTRVQ7CisgICAgfQorCiAgICAg cmV0dXJuIDA7CiB9CiAKQEAgLTE2Nyw4ICsxODMsMTIgQEAgc3RhdGljIHZv aWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoc3RydQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYg KmV4Y2x1ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKIHsKLSAgICBib29sIGZvdW5k ID0gYW55X3BkZXZfYmVoaW5kX2lvbW11KGQsIGV4Y2x1ZGUsIGlvbW11KTsK KyAgICBib29sIGZvdW5kOworCisgICAgaWYgKCBkID09IGRvbV9pbyApCisg ICAgICAgIHJldHVybjsKIAorICAgIGZvdW5kID0gYW55X3BkZXZfYmVoaW5k X2lvbW11KGQsIGV4Y2x1ZGUsIGlvbW11KTsKICAgICAvKgogICAgICAqIEhp ZGRlbiBkZXZpY2VzIGFyZSBhc3NvY2lhdGVkIHdpdGggRG9tWEVOIGJ1dCB1 c2FibGUgYnkgdGhlIGhhcmR3YXJlCiAgICAgICogZG9tYWluLiBIZW5jZSB0 aGV5IG5lZWQgY29uc2lkZXJpbmcgaGVyZSBhcyB3ZWxsLgpAQCAtMTQwMyw3 ICsxNDIzLDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAog ICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbcHJldl9kaWRdOwog ICAgICAgICBpZiAoIGRvbWlkIDwgRE9NSURfRklSU1RfUkVTRVJWRUQgKQog ICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW5fYnlfaWQo ZG9taWQpOwotICAgICAgICBlbHNlIGlmICggZG9taWQgPT0gRE9NSURfSU8g KQorICAgICAgICBlbHNlIGlmICggcGRldiA/IGRvbWlkID09IHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkIDogZG9taWQgPiBET01JRF9NQVNLICkKICAgICAg ICAgICAgIHByZXZfZG9tID0gcmN1X2xvY2tfZG9tYWluKGRvbV9pbyk7CiAg ICAgICAgIGlmICggIXByZXZfZG9tICkKICAgICAgICAgewpAQCAtMTU4MCwx NSArMTYwMCwxMiBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUo CiAgICAgewogICAgICAgICBpZiAoICFwcmV2X2RvbSApCiAgICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21t dSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlE KGRvbWFpbiwgcGRldikpOwogICAgICAgICBlbHNlIGlmICggcHJldl9kb20g IT0gZG9tYWluICkgLyogQXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uLiAqLwot ICAgICAgICB7Ci0gICAgICAgICAgICBoZCA9IGRvbV9pb21tdShwcmV2X2Rv bSk7CiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5n X29uZShwcmV2X2RvbSwgaW9tbXUsIGJ1cywgZGV2Zm4sIHBkZXYsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21h aW4tPmRvbWFpbl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGhkLT5hcmNoLnBnZF9tYWRkciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9E T01JRChwcmV2X2RvbSwgcGRldiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBERVZJQ0VfUEdUQUJMRShwcmV2X2Rv bSwgcGRldiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtb2RlICYgTUFQX1dJVEhfUk1SUikgPCAwOwotICAgICAg ICB9CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldCA9IDE7CiAKQEAg LTE2MTAsNyArMTYyNyw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZyhzdHJ1Y3QKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQg KmRyaGQ7CiAgICAgY29uc3Qgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJy OwotICAgIHBhZGRyX3QgcGdkX21hZGRyID0gZG9tX2lvbW11KGRvbWFpbikt PmFyY2gucGdkX21hZGRyOworICAgIHBhZGRyX3QgcGdkX21hZGRyID0gREVW SUNFX1BHVEFCTEUoZG9tYWluLCBwZGV2KTsKICAgICBkb21pZF90IG9yaWdf ZG9taWQgPSBwZGV2LT5hcmNoLnBzZXVkb19kb21pZDsKICAgICBpbnQgcmV0 ID0gMDsKICAgICB1bnNpZ25lZCBpbnQgaSwgbW9kZSA9IDA7CkBAIC0xNjQz LDcgKzE2NjAsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmcoc3RydWN0CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGlmICgg ZG9tYWluICE9IHBkZXYtPmRvbWFpbiApCisgICAgaWYgKCBkb21haW4gIT0g cGRldi0+ZG9tYWluICYmIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQogICAg IHsKICAgICAgICAgaWYgKCBwZGV2LT5kb21haW4tPmlzX2R5aW5nICkKICAg ICAgICAgICAgIG1vZGUgfD0gTUFQX09XTkVSX0RZSU5HOwpAQCAtMTY4NCw4 ICsxNzAxLDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5n KHN0cnVjdAogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiZCVkOlBD SWU6IG1hcCAlMDR4OiUwMng6JTAyeC4ldVxuIiwKICAgICAgICAgICAgICAg ICAgICBkb21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsCiAgICAgICAgICAg ICAgICAgICAgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwot ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21h aW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBkb21haW4tPmRvbWFp bl9pZCwgcGdkX21hZGRyLAorICAgICAgICByZXQgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZu LCBwZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSwgcGdkX21hZGRyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rl KTsKICAgICAgICAgaWYgKCByZXQgPiAwICkKICAgICAgICAgICAgIHJldCA9 IDA7CkBAIC0xNzA5LDggKzE3MjYsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9j b250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAgICAgICAgICAgUENJ X1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbikpOwogCiAgICAgICAgIHJl dCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+ aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2Rf bWFkZHIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZGV2LCBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdkX21h ZGRyLCBtb2RlKTsKICAgICAgICAgaWYgKCByZXQgPCAwICkKICAgICAgICAg ICAgIGJyZWFrOwogICAgICAgICBwcmV2X3ByZXNlbnQgPSByZXQ7CkBAIC0x NzM4LDggKzE3NTUsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmcoc3RydWN0CiAgICAgICAgICAqLwogICAgICAgICBpZiAoIHJldCA+ PSAwICkKICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LCBkb21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LCBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnZF9tYWRkciwgbW9k ZSk7CiAKICAgICAgICAgLyoKICAgICAgICAgICogRGV2aWNlcyBiZWhpbmQg UENJZS10by1QQ0kvUENJeCBicmlkZ2UgbWF5IGdlbmVyYXRlIGRpZmZlcmVu dApAQCAtMTc1NCw4ICsxNzcxLDggQEAgc3RhdGljIGludCBkb21haW5fY29u dGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICBpZiAoICFyZXQgJiYgcGRl dl90eXBlKHNlZywgYnVzLCBkZXZmbikgPT0gREVWX1RZUEVfUENJZTJQQ0lf QlJJREdFICYmCiAgICAgICAgICAgICAgKHNlY2J1cyAhPSBwZGV2LT5idXMg fHwgcGRldi0+ZGV2Zm4gIT0gMCkgKQogICAgICAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwg c2VjYnVzLCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRk ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTlVMTCwgREVWSUNFX0RPTUlEKGRvbWFpbiwgcGRldiks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ2RfbWFkZHIsIG1vZGUpOwogCiAgICAgICAgIGlmICggcmV0ICkKICAg ICAgICAgewpAQCAtMTkwNSw3ICsxOTIyLDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBhY3BpX2RyaGRfdW5pdCAqZG9tYQogICAgICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkLCBzZWcsIGJ1cywKICAgICAgICAgICAgICAg ICAgICBQQ0lfU0xPVChkZXZmbiksIFBDSV9GVU5DKGRldmZuKSk7CiAgICAg ICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlv bW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFp biwgcGRldikpOwogICAgICAgICBpZiAoICFyZXQgJiYgZGV2Zm4gPT0gcGRl di0+ZGV2Zm4gJiYgYXRzX2RldmljZShwZGV2LCBkcmhkKSA+IDAgKQogICAg ICAgICAgICAgZGlzYWJsZV9hdHNfZGV2aWNlKHBkZXYpOwogCkBAIC0xOTE2 LDcgKzE5MzMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91 bml0ICpkb21hCiAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICJkJWQ6 UENJOiB1bm1hcCAlMDR4OiUwMng6JTAyeC4ldVxuIiwKICAgICAgICAgICAg ICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgc2VnLCBidXMsIFBDSV9TTE9U KGRldmZuKSwgUENJX0ZVTkMoZGV2Zm4pKTsKICAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2 Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk b21haW4tPmRvbWFpbl9pZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAg ICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0x OTM5LDE4ICsxOTU2LDEyIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9k cmhkX3VuaXQgKmRvbWEKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9 CiAKKyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9ET01JRChkb21h aW4sIHBkZXYpKTsKICAgICAgICAgLyogUENJZSB0byBQQ0kvUENJeCBicmlk Z2UgKi8KLSAgICAgICAgaWYgKCBwZGV2X3R5cGUoc2VnLCB0bXBfYnVzLCB0 bXBfZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JSSURHRSApCi0gICAg ICAgIHsKLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFw X29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWlu LT5kb21haW5faWQpOwotICAgICAgICAgICAgaWYgKCAhcmV0ICkKLSAgICAg ICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9t YWluLCBpb21tdSwgc2VjYnVzLCAwLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7 Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSAvKiBMZWdhY3kgUENJIGJyaWRn ZSAqLwotICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBf b25lKGRvbWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4t PmRvbWFpbl9pZCk7CisgICAgICAgIGlmICggIXJldCAmJiBwZGV2X3R5cGUo c2VnLCB0bXBfYnVzLCB0bXBfZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJ X0JSSURHRSApCisgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91 bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgc2VjYnVzLCAwLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9ET01J RChkb21haW4sIHBkZXYpKTsKIAogICAgICAgICBicmVhazsKIApAQCAtMTk5 Myw2ICsyMDA0LDI1IEBAIHN0YXRpYyB2b2lkIGlvbW11X2RvbWFpbl90ZWFy ZG93bihzdHJ1Y3QKICAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZC0+ZG9t YWluX2lkLCBkcmhkLT5pb21tdSk7CiB9CiAKK3N0YXRpYyB2b2lkIHF1YXJh bnRpbmVfdGVhcmRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2Ry aGRfdW5pdCAqZHJoZCkKK3sKKyAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsK KworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKworICAgIGlmICgg IXBkZXYtPmFyY2gudnRkLnBnZF9tYWRkciApCisgICAgICAgIHJldHVybjsK KworICAgIHdoaWxlICggKHBnID0gcGFnZV9saXN0X3JlbW92ZV9oZWFkKCZw ZGV2LT5hcmNoLnBndGFibGVzX2xpc3QpKSApCisgICAgICAgIGZyZWVfZG9t aGVhcF9wYWdlKHBnKTsKKworICAgIHBkZXYtPmFyY2gudnRkLnBnZF9tYWRk ciA9IDA7CisKKyAgICBpZiAoIGRyaGQgKQorICAgICAgICBjbGVhbnVwX2Rv bWlkX21hcChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgZHJoZC0+aW9tbXUp OworfQorCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9t YXBfcGFnZShzdHJ1Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBt Zm4sIHVuc2lnbmVkIGludCBmbGFncywKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCAqZmx1c2hf ZmxhZ3MpCkBAIC0yMjE3LDYgKzIyNDcsOCBAQCBzdGF0aWMgaW50IGludGVs X2lvbW11X3JlbW92ZV9kZXZpY2UodTgKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7CiAgICAgfQogCisg ICAgcXVhcmFudGluZV90ZWFyZG93bihwZGV2LCBkcmhkKTsKKwogICAgIGlm ICggZHJoZCApCiAgICAgewogICAgICAgICBpb21tdV9mcmVlX2RvbWlkKHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkLApAQCAtMjkwOCw2MCArMjk0MCwxMzkg QEAgc3RhdGljIHZvaWQgdnRkX2R1bXBfcDJtX3RhYmxlKHN0cnVjdCBkbwog ICAgIHZ0ZF9kdW1wX3AybV90YWJsZV9sZXZlbChoZC0+YXJjaC5wZ2RfbWFk ZHIsIGFnYXdfdG9fbGV2ZWwoaGQtPmFyY2guYWdhdyksIDAsIDApOwogfQog Ci1zdGF0aWMgaW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lX2lu aXQoc3RydWN0IGRvbWFpbiAqZCkKK3N0YXRpYyBpbnQgZmlsbF9xcHQoc3Ry dWN0IGRtYV9wdGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZlbCwKKyAgICAg ICAgICAgICAgICAgICAgcGFkZHJfdCBtYWRkcnNbNl0sIHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogewotICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0g ZG9tX2lvbW11KGQpOwotICAgIHN0cnVjdCBkbWFfcHRlICpwYXJlbnQ7Cisg ICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tX2lv KTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBpbnQgcmMgPSAwOworCisg ICAgZm9yICggaSA9IDA7ICFyYyAmJiBpIDwgUFRFX05VTTsgKytpICkKKyAg ICB7CisgICAgICAgIHN0cnVjdCBkbWFfcHRlICpwdGUgPSAmdGhpc1tpXSwg Km5leHQ7CisKKyAgICAgICAgaWYgKCAhZG1hX3B0ZV9wcmVzZW50KCpwdGUp ICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhbWFkZHJzW2xldmVs XSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAgICAgKiBUaGUgcGd0YWJsZSBhbGxvY2F0b3IgaXMgZmluZSBm b3IgdGhlIGxlYWYgcGFnZSwgYXMgd2VsbCBhcworICAgICAgICAgICAgICAg ICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9j YXRpb25zIGFyZSBhbHdheXMKKyAgICAgICAgICAgICAgICAgKiB6ZXJvZWQu CisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgbWFkZHJz W2xldmVsXSA9IGFsbG9jX3BndGFibGVfbWFkZHIoMSwgaGQtPm5vZGUpOwor ICAgICAgICAgICAgICAgIGlmICggIW1hZGRyc1tsZXZlbF0gKQorICAgICAg ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSAtRU5PTUVN OworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg ICB9CisKKyAgICAgICAgICAgICAgICBwYWdlX2xpc3RfYWRkKG1hZGRyX3Rv X3BhZ2UobWFkZHJzW2xldmVsXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAmcGRldi0+YXJjaC5wZ3RhYmxlc19saXN0KTsKKworICAgICAg ICAgICAgICAgIGlmICggbGV2ZWwgKQorICAgICAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAgICAgbmV4dCA9IG1hcF92dGRfZG9tYWluX3BhZ2Uo bWFkZHJzW2xldmVsXSk7CisgICAgICAgICAgICAgICAgICAgIHJjID0gZmls bF9xcHQobmV4dCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYpOworICAgICAg ICAgICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UobmV4dCk7Cisg ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAg ICBkbWFfc2V0X3B0ZV9hZGRyKCpwdGUsIG1hZGRyc1tsZXZlbF0pOworICAg ICAgICAgICAgZG1hX3NldF9wdGVfcmVhZGFibGUoKnB0ZSk7CisgICAgICAg ICAgICBkbWFfc2V0X3B0ZV93cml0YWJsZSgqcHRlKTsKKyAgICAgICAgfQor ICAgICAgICBlbHNlIGlmICggbGV2ZWwgJiYgIWRtYV9wdGVfc3VwZXJwYWdl KCpwdGUpICkKKyAgICAgICAgeworICAgICAgICAgICAgcGFnZV9saXN0X2Fk ZChtYWRkcl90b19wYWdlKGRtYV9wdGVfYWRkcigqcHRlKSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3Qp OworICAgICAgICAgICAgbmV4dCA9IG1hcF92dGRfZG9tYWluX3BhZ2UoZG1h X3B0ZV9hZGRyKCpwdGUpKTsKKyAgICAgICAgICAgIHJjID0gZmlsbF9xcHQo bmV4dCwgbGV2ZWwgLSAxLCBtYWRkcnMsIHBkZXYpOworICAgICAgICAgICAg dW5tYXBfdnRkX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAgICB9CisgICAg fQorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGludGVsX2lv bW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sK KyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21f aW8pOworICAgIHBhZGRyX3QgbWFkZHI7CiAgICAgdW5zaWduZWQgaW50IGFn YXcgPSB3aWR0aF90b19hZ2F3KERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lE VEgpOwogICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFnYXdfdG9fbGV2ZWwo YWdhdyk7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhk OworICAgIGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKKyAg ICB1bnNpZ25lZCBpbnQgaSwgYmRmOworICAgIGJvb2wgcm1ycl9mb3VuZCA9 IGZhbHNlOworICAgIGludCByYzsKIAotICAgIGlmICggaGQtPmFyY2gucGdk X21hZGRyICkKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CisgICAg QVNTRVJUKCFoZC0+YXJjaC5wZ2RfbWFkZHIpOworCisgICAgaWYgKCBwZGV2 LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgKQogICAgIHsKLSAgICAgICAgQVNTRVJU X1VOUkVBQ0hBQkxFKCk7CisgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBk ZXYtPmFyY2gubGVhZl9tZm4pOwogICAgICAgICByZXR1cm4gMDsKICAgICB9 CiAKLSAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Cisg ICAgZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5pdChwZGV2KTsK KyAgICBpZiAoICFkcmhkICkKKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAK LSAgICBoZC0+YXJjaC5wZ2RfbWFkZHIgPSBhbGxvY19wZ3RhYmxlX21hZGRy KDEsIGhkLT5ub2RlKTsKLSAgICBpZiAoICFoZC0+YXJjaC5wZ2RfbWFkZHIg KQotICAgICAgICBnb3RvIG91dDsKKyAgICBtYWRkciA9IGFsbG9jX3BndGFi bGVfbWFkZHIoMSwgaGQtPm5vZGUpOworICAgIGlmICggIW1hZGRyICkKKyAg ICAgICAgcmV0dXJuIC1FTk9NRU07CiAKLSAgICBwYXJlbnQgPSBtYXBfdnRk X2RvbWFpbl9wYWdlKGhkLT5hcmNoLnBnZF9tYWRkcik7Ci0gICAgd2hpbGUg KCBsZXZlbCApCi0gICAgewotICAgICAgICB1aW50NjRfdCBtYWRkcjsKLSAg ICAgICAgdW5zaWduZWQgaW50IG9mZnNldDsKKyAgICByYyA9IGNvbnRleHRf c2V0X2RvbWFpbl9pZChOVUxMLCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwg ZHJoZC0+aW9tbXUpOwogCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBw Z3RhYmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBh cyB3ZWxsIGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0 aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKLSAgICAgICAg ICogemVyb2VkLgotICAgICAgICAgKi8KLSAgICAgICAgbWFkZHIgPSBhbGxv Y19wZ3RhYmxlX21hZGRyKDEsIGhkLT5ub2RlKTsKLSAgICAgICAgaWYgKCAh bWFkZHIgKQorICAgIC8qIFRyYW5zaWVudGx5IGluc3RhbGwgdGhlIHJvb3Qg aW50byBEb21JTywgZm9yIGlvbW11X2lkZW50aXR5X21hcHBpbmcoKS4gKi8K KyAgICBoZC0+YXJjaC5wZ2RfbWFkZHIgPSBtYWRkcjsKKworICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKKyAgICB7CisgICAg ICAgIGlmICggcmMgKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAg Zm9yICggb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgUFRFX05VTTsgb2Zmc2V0Kysg KQorICAgICAgICBpZiAoIHJtcnItPnNlZ21lbnQgPT0gcGRldi0+c2VnICYm IGJkZiA9PSBwZGV2LT5zYmRmLmJkZiApCiAgICAgICAgIHsKLSAgICAgICAg ICAgIHN0cnVjdCBkbWFfcHRlICpwdGUgPSAmcGFyZW50W29mZnNldF07Cisg ICAgICAgICAgICBybXJyX2ZvdW5kID0gdHJ1ZTsKIAotICAgICAgICAgICAg ZG1hX3NldF9wdGVfYWRkcigqcHRlLCBtYWRkcik7Ci0gICAgICAgICAgICBk bWFfc2V0X3B0ZV9yZWFkYWJsZSgqcHRlKTsKKyAgICAgICAgICAgIHJjID0g aW9tbXVfaWRlbnRpdHlfbWFwcGluZyhkb21faW8sIHAybV9hY2Nlc3Nfcncs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1y ci0+YmFzZV9hZGRyZXNzLCBybXJyLT5lbmRfYWRkcmVzcywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsKKyAgICAgICAg ICAgIGlmICggcmMgKQorICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0df RVJSIFZURFBSRUZJWAorICAgICAgICAgICAgICAgICAgICAgICAiJTA0eDol MDJ4OiUwMnguJXU6IFJNUlIgcXVhcmFudGluZSBtYXBwaW5nIGZhaWxlZFxu IiwKKyAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+c2VnLCBwZGV2LT5i dXMsCisgICAgICAgICAgICAgICAgICAgICAgIFBDSV9TTE9UKHBkZXYtPmRl dmZuKSwgUENJX0ZVTkMocGRldi0+ZGV2Zm4pKTsKICAgICAgICAgfQotICAg ICAgICBpb21tdV9zeW5jX2NhY2hlKHBhcmVudCwgUEFHRV9TSVpFKTsKKyAg ICB9CiAKLSAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHBhcmVudCk7 Ci0gICAgICAgIHBhcmVudCA9IG1hcF92dGRfZG9tYWluX3BhZ2UobWFkZHIp OwotICAgICAgICBsZXZlbC0tOworICAgIGlvbW11X2lkZW50aXR5X21hcF90 ZWFyZG93bihkb21faW8pOworICAgIGhkLT5hcmNoLnBnZF9tYWRkciA9IDA7 CisgICAgcGRldi0+YXJjaC52dGQucGdkX21hZGRyID0gbWFkZHI7CisKKyAg ICBpZiAoICFyYyApCisgICAgeworICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAq cm9vdDsKKyAgICAgICAgcGFkZHJfdCBtYWRkcnNbNl0gPSB7fTsKKworICAg ICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisKKyAg ICAgICAgcm9vdCA9IG1hcF92dGRfZG9tYWluX3BhZ2UobWFkZHIpOworICAg ICAgICByYyA9IGZpbGxfcXB0KHJvb3QsIGxldmVsIC0gMSwgbWFkZHJzLCBw ZGV2KTsKKyAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKHJvb3QpOwor CisgICAgICAgIHBkZXYtPmFyY2gubGVhZl9tZm4gPSBtYWRkcl90b19tZm4o bWFkZHJzWzBdKTsKKworICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gu bWFwcGluZ19sb2NrKTsKICAgICB9Ci0gICAgdW5tYXBfdnRkX2RvbWFpbl9w YWdlKHBhcmVudCk7CiAKLSBvdXQ6Ci0gICAgc3Bpbl91bmxvY2soJmhkLT5h cmNoLm1hcHBpbmdfbG9jayk7CisgICAgaWYgKCByYyApCisgICAgICAgIHF1 YXJhbnRpbmVfdGVhcmRvd24ocGRldiwgZHJoZCk7CiAKLSAgICAvKiBQYWdl cyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCi0gICAgcmV0dXJuIGxldmVs ID8gLUVOT01FTSA6IDA7CisgICAgcmV0dXJuIHJjOwogfQogCiBjb25zdCBz dHJ1Y3QgaW9tbXVfb3BzIF9faW5pdGNvbnN0cmVsIGludGVsX2lvbW11X29w cyA9IHsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgK QEAgLTUwOSw3ICs1MDksNyBAQCBzdHJ1Y3QgdnRkX2lvbW11IHsKICAgICB1 MzIgbnJfcHRfbGV2ZWxzOwogICAgIHU2NAljYXA7CiAgICAgdTY0CWVjYXA7 Ci0gICAgc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0IGNvbnRleHQsIGRv bWFpbiBpZHMgKi8KKyAgICBzcGlubG9ja190IGxvY2s7IC8qIHByb3RlY3Qg Y29udGV4dCAqLwogICAgIHNwaW5sb2NrX3QgcmVnaXN0ZXJfbG9jazsgLyog cHJvdGVjdCBpb21tdSByZWdpc3RlciBoYW5kbGluZyAqLwogICAgIHU2NCBy b290X21hZGRyOyAvKiByb290IGVudHJ5IG1hY2hpbmUgYWRkcmVzcyAqLwog ICAgIG5vZGVpZF90IG5vZGU7Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21t dS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0yMzYsNyAr MjM2LDcgQEAgdHlwZWRlZiBpbnQgaW9tbXVfZ3JkbV90KHhlbl9wZm5fdCBz dGFydAogc3RydWN0IGlvbW11X29wcyB7CiAgICAgaW50ICgqaW5pdCkoc3Ry dWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmh3ZG9tX2luaXQpKHN0cnVj dCBkb21haW4gKmQpOwotICAgIGludCAoKnF1YXJhbnRpbmVfaW5pdCkoc3Ry dWN0IGRvbWFpbiAqZCk7CisgICAgaW50ICgqcXVhcmFudGluZV9pbml0KShk ZXZpY2VfdCAqZGV2KTsKICAgICBpbnQgKCphZGRfZGV2aWNlKSh1OCBkZXZm biwgZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqZW5hYmxlX2RldmljZSko ZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqcmVtb3ZlX2RldmljZSkodTgg ZGV2Zm4sIGRldmljZV90ICpkZXYpOwpAQCAtMzU2LDYgKzM1Niw3IEBAIGlu dCBfX211c3RfY2hlY2sgaW9tbXVfc3VzcGVuZCh2b2lkKTsKIHZvaWQgaW9t bXVfcmVzdW1lKHZvaWQpOwogdm9pZCBpb21tdV9jcmFzaF9zaHV0ZG93bih2 b2lkKTsKIGludCBpb21tdV9nZXRfcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeShp b21tdV9ncmRtX3QgKiwgdm9pZCAqKTsKK2ludCBpb21tdV9xdWFyYW50aW5l X2Rldl9pbml0KGRldmljZV90ICpkZXYpOwogCiB2b2lkIGlvbW11X3NoYXJl X3AybV90YWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKIAo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-01.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-01.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggKGRlKWFzc2lnbiBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSB1cGRhdGVkLgoKQWxzbyBhZGp1c3QgYSByZWxhdGVk IGxvZyBtZXNzYWdlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM1OCAvIHBhcnQg b2YgWFNBLTQwMC4KCkZpeGVzOiA4Yjk5ZjQ0MDBiNjkgKCJWVC1kOiBmaXgg Uk1SUiByZWxhdGVkIGVycm9yIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmll d2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4KUmV2aWV3ZWQt Ynk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTIzOTIsNiAr MjM5MiwxMCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNo aXAoCiB7CiAgICAgaW50IHJldDsKIAorICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X3VubWFwKHNvdXJjZSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0 ICkKKyAgICAgICAgcmV0dXJuIHJldDsKKwogICAgIC8qCiAgICAgICogRGV2 aWNlcyBhc3NpZ25lZCB0byB1bnRydXN0ZWQgZG9tYWlucyAoaGVyZSBhc3N1 bWVkIHRvIGJlIGFueSBkb21VKQogICAgICAqIGNhbiBhdHRlbXB0IHRvIHNl bmQgYXJiaXRyYXJ5IExBUElDL01TSSBtZXNzYWdlcy4gV2UgYXJlIHVucHJv dGVjdGVkCkBAIC0yNDI4LDEwICsyNDMyLDYgQEAgc3RhdGljIGludCByZWFz c2lnbl9kZXZpY2Vfb3duZXJzaGlwKAogICAgICAgICAgICAgfQogICAgIH0K IAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2 Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAgcmV0dXJuIHJl dDsKLQogICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ ZG9tYWluICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBsaXN0X21vdmUo JnBkZXYtPmRvbWFpbl9saXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwpAQCAt MjUwNyw5ICsyNTA3LDggQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0ID0gcmVh c3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7Ci0g ICAgaWYgKCByZXQgfHwgZCA9PSBkb21faW8gKQotICAgICAgICByZXR1cm4g cmV0OworICAgIGlmICggZCA9PSBkb21faW8gKQorICAgICAgICByZXR1cm4g cmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7 CiAKICAgICAvKiBTZXR1cCBybXJyIGlkZW50aXR5IG1hcHBpbmcgKi8KICAg ICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBpICkKQEAgLTI1 MjIsMjAgKzI1MjEsMzcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgZmxhZyk7CiAgICAgICAgICAg ICBpZiAoIHJldCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg aW50IHJjOwotCi0gICAgICAgICAgICAgICAgcmMgPSByZWFzc2lnbl9kZXZp Y2Vfb3duZXJzaGlwKGQsIHMsIGRldmZuLCBwZGV2KTsKICAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfRVJSIFZURFBSRUZJWAotICAgICAgICAg ICAgICAgICAgICAgICAiIGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uICgl IlBSSXg2NCIsJSJQUkl4NjQiXSBmb3IgRG9tJWQgKCVkKVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgcm1yci0+YmFzZV9hZGRyZXNzLCBybXJyLT5l bmRfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWlu X2lkLCByZXQpOwotICAgICAgICAgICAgICAgIGlmICggcmMgKQotICAgICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIgVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAi IGZhaWxlZCB0byByZWNsYWltICVwcCBmcm9tICVwZCAoJWQpXG4iLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMyhzZWcsIGJ1cywg ZGV2Zm4pLCBkLCByYyk7Ci0gICAgICAgICAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICIlcGQ6IGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uIFslIlBS SXg2NCIsJSJQUkl4NjQiXTogJWRcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgIGQsIHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJlc3Ms IHJldCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9 CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoICFyZXQgKQorICAgICAg ICByZXQgPSByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlwKHMsIGQsIGRldmZu LCBwZGV2KTsKKworICAgIC8qIFNlZSByZWFzc2lnbl9kZXZpY2Vfb3duZXJz aGlwKCkgZm9yIHRoZSBod2RvbSBhc3BlY3QuICovCisgICAgaWYgKCAhcmV0 IHx8IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgIHJldHVybiBy ZXQ7CisKKyAgICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBp ICkKKyAgICB7CisgICAgICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBzZWcg JiYKKyAgICAgICAgICAgICBQQ0lfQlVTKGJkZikgPT0gYnVzICYmCisgICAg ICAgICAgICAgUENJX0RFVkZOMihiZGYpID09IGRldmZuICkKKyAgICAgICAg eworICAgICAgICAgICAgaW50IHJjID0gaW9tbXVfaWRlbnRpdHlfbWFwcGlu ZyhkLCBwMm1fYWNjZXNzX3gsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJtcnItPmJhc2VfYWRkcmVzcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ ZW5kX2FkZHJlc3MsIDApOworCisgICAgICAgICAgICBpZiAoIHJjICYmIHJj ICE9IC1FTk9FTlQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWAorICAgICAgICAgICAgICAg ICAgICAgICAiJXBkOiBjYW5ub3QgdW5tYXAgcmVzZXJ2ZWQgcmVnaW9uIFsl IlBSSXg2NCIsJSJQUkl4NjQiXTogJWRcbiIsCisgICAgICAgICAgICAgICAg ICAgICAgIGQsIHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJl c3MsIHJjKTsKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg IH0K --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-02.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-02.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggYWRkL3JlbW92ZSBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSBjbGVhcmVkLgoKQWxzbyBzd2l0Y2ggdG8gJXBkIGlu IHJlbGF0ZWQgbG9nIG1lc3NhZ2VzLgoKRml4ZXM6IGZhODhjZmFkZjkxOCAo InZ0LWQ6IE1hcCBSTVJSIGluIGludGVsX2lvbW11X2FkZF9kZXZpY2UoKSBp ZiB0aGUgZGV2aWNlIGhhcyBSTVJSIikKRml4ZXM6IDhiOTlmNDQwMGI2OSAo IlZULWQ6IGZpeCBSTVJSIHJlbGF0ZWQgZXJyb3IgaGFuZGxpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTE5ODEsMTQgKzE5ODEsNiBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X2FkZF9kZXZpY2UodTggZGV2CiAgICAgaWYgKCAhcGRldi0+ZG9tYWlu ICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICByZXQgPSBkb21h aW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYp OwotICAgIGlmICggcmV0ICkKLSAgICB7Ci0gICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsICJkJWQ6IGNvbnRleHQgbWFwcGluZyBmYWls ZWRcbiIsCi0gICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5f aWQpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQogICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7CiAgICAg ICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBwZGV2LT5zZWcgJiYKQEAgLTIw MDUsMTIgKzE5OTcsMTcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hZGRf ZGV2aWNlKHU4IGRldgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRy ZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKICAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiZCVkOiBSTVJSIG1h cHBpbmcgZmFpbGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IFJNUlIgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21h aW4pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyhwZGV2LT5kb21haW4sIGRl dmZuLCBwZGV2KTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGRwcmludGso WEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IGNvbnRleHQgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluKTsKKwor ICAgIHJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf ZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTIwMzIs MTEgKzIwMjksMTUgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVf ZGV2aWNlKHU4CiB7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJy OwogICAgIHUxNiBiZGY7Ci0gICAgaW50IGk7CisgICAgaW50IHJldCwgaTsK IAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogCisgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRl di0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByZXQgKQorICAg ICAgICByZXR1cm4gcmV0OworCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2Ug KCBybXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5z ZWdtZW50ICE9IHBkZXYtPnNlZyB8fApAQCAtMjA1Miw3ICsyMDUzLDcgQEAg c3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ZW5kX2FkZHJlc3Ms IDApOwogICAgIH0KIAotICAgIHJldHVybiBkb21haW5fY29udGV4dF91bm1h cChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICByZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fZGV2 aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-03.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-03.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHRpZ2h0ZW4gaW9tbXVfYWxsb2NfcGd0YWJsZSgpJ3Mg cGFyYW1ldGVyCgpUaGlzIGlzIHRvIG1ha2UgbW9yZSBvYnZpb3VzIHRoYXQg bm90aGluZyBvdXRzaWRlIG9mIGRvbWFpbl9pb21tdShkKQphY3R1YWxseSBj aGFuZ2VzIG9yIGlzIG90aGVyd2lzZSBuZWVkZWQgYnkgdGhlIGZ1bmN0aW9u LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpTaWduZWQtb2Zm LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K UmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZp ZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cgot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9pb21tdS5oCkBAIC0xNDMsNyArMTQzLDggQEAgaW50 IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9kZXNjCiB9KQogCiBp bnQgX19tdXN0X2NoZWNrIGlvbW11X2ZyZWVfcGd0YWJsZXMoc3RydWN0IGRv bWFpbiAqZCk7Ci1zdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hlY2sgaW9t bXVfYWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKK3N0cnVjdCBk b21haW5faW9tbXU7CitzdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hlY2sg aW9tbXVfYWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCk7 CiAKICNlbmRpZiAvKiAhX19BUkNIX1g4Nl9JT01NVV9IX18gKi8KIC8qCi0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMK QEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9mcm9t X2RmbihzdHJ1Y3QgZG9tCiAgICAgdW5zaWduZWQgbG9uZyAgbmV4dF90YWJs ZV9tZm47CiAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgIHN0cnVjdCBw YWdlX2luZm8gKnRhYmxlOwotICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9t bXUgKmhkID0gZG9tX2lvbW11KGQpOworICAgIHN0cnVjdCBkb21haW5faW9t bXUgKmhkID0gZG9tX2lvbW11KGQpOwogCiAgICAgdGFibGUgPSBoZC0+YXJj aC5hbWQucm9vdF90YWJsZTsKICAgICBsZXZlbCA9IGhkLT5hcmNoLmFtZC5w YWdpbmdfbW9kZTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBzdGF0aWMgaW50IGlv bW11X3BkZV9mcm9tX2RmbihzdHJ1Y3QgZG9tCiAgICAgICAgICAgICBtZm4g PSBuZXh0X3RhYmxlX21mbjsKIAogICAgICAgICAgICAgLyogYWxsb2NhdGUg bG93ZXIgbGV2ZWwgcGFnZSB0YWJsZSAqLwotICAgICAgICAgICAgdGFibGUg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICAgICAgdGFibGUg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKICAgICAgICAgICAgIGlmICgg dGFibGUgPT0gTlVMTCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgQU1EX0lPTU1VX0RFQlVHKCJDYW5ub3QgYWxsb2NhdGUgSS9PIHBhZ2Ug dGFibGVcbiIpOwpAQCAtMjUwLDcgKzI1MCw3IEBAIHN0YXRpYyBpbnQgaW9t bXVfcGRlX2Zyb21fZGZuKHN0cnVjdCBkb20KIAogICAgICAgICAgICAgaWYg KCBuZXh0X3RhYmxlX21mbiA9PSAwICkKICAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICB0YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoZCk7Cisg ICAgICAgICAgICAgICAgdGFibGUgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhk KTsKICAgICAgICAgICAgICAgICBpZiAoIHRhYmxlID09IE5VTEwgKQogICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQU1EX0lPTU1V X0RFQlVHKCJDYW5ub3QgYWxsb2NhdGUgSS9PIHBhZ2UgdGFibGVcbiIpOwpA QCAtNDgzLDcgKzQ4Myw3IEBAIGludCBfX2luaXQgYW1kX2lvbW11X3F1YXJh bnRpbmVfaW5pdChzdHIKIAogICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKIAotICAgIGhkLT5hcmNoLmFtZC5yb290X3RhYmxlID0g aW9tbXVfYWxsb2NfcGd0YWJsZShkKTsKKyAgICBoZC0+YXJjaC5hbWQucm9v dF90YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwogICAgIGlmICgg IWhkLT5hcmNoLmFtZC5yb290X3RhYmxlICkKICAgICAgICAgZ290byBvdXQ7 CiAKQEAgLTQ5OCw3ICs0OTgsNyBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9x dWFyYW50aW5lX2luaXQoc3RyCiAgICAgICAgICAqIHBhZ2UgdGFibGUgcGFn ZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMK ICAgICAgICAgICogemVyb2VkLgogICAgICAgICAgKi8KLSAgICAgICAgcGcg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBwZyA9IGlvbW11 X2FsbG9jX3BndGFibGUoaGQpOwogICAgICAgICBpZiAoICFwZyApCiAgICAg ICAgICAgICBicmVhazsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTIwOCw3ICsyMDgsNyBA QCBpbnQgYW1kX2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRvbWFpbiAqCiAK ICAgICBpZiAoIHVubGlrZWx5KCFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSkg KQogICAgIHsKLSAgICAgICAgaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBp b21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBoZC0+YXJjaC5hbWQu cm9vdF90YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwogICAgICAg ICBpZiAoICFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSApCiAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKICAgICB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0zMjcsNyArMzI3LDcgQEAgc3RhdGlj IHU2NCBhZGRyX3RvX2RtYV9wYWdlX21hZGRyKHN0cnVjdAogICAgIHsKICAg ICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CiAKLSAgICAgICAgaWYgKCAh YWxsb2MgfHwgIShwZyA9IGlvbW11X2FsbG9jX3BndGFibGUoZG9tYWluKSkg KQorICAgICAgICBpZiAoICFhbGxvYyB8fCAhKHBnID0gaW9tbXVfYWxsb2Nf cGd0YWJsZShoZCkpICkKICAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAg ICAgIGhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgPSBwYWdlX3RvX21hZGRyKHBn KTsKQEAgLTM0Nyw3ICszNDcsNyBAQCBzdGF0aWMgdTY0IGFkZHJfdG9fZG1h X3BhZ2VfbWFkZHIoc3RydWN0CiAgICAgICAgICAgICBpZiAoICFhbGxvYyAp CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHBnID0g aW9tbXVfYWxsb2NfcGd0YWJsZShkb21haW4pOworICAgICAgICAgICAgcGcg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKICAgICAgICAgICAgIGlmICgg IXBnICkKICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtMjc2MSw3ICsy NzYxLDcgQEAgc3RhdGljIGludCBfX2luaXQgaW50ZWxfaW9tbXVfcXVhcmFu dGluZQogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBwZyA9IGlv bW11X2FsbG9jX3BndGFibGUoZCk7CisgICAgcGcgPSBpb21tdV9hbGxvY19w Z3RhYmxlKGhkKTsKIAogICAgIHJjID0gLUVOT01FTTsKICAgICBpZiAoICFw ZyApCkBAIC0yNzgwLDcgKzI3ODAsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBp bnRlbF9pb21tdV9xdWFyYW50aW5lCiAgICAgICAgICAqIHBhZ2UgdGFibGUg cGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdh eXMKICAgICAgICAgICogemVyb2VkLgogICAgICAgICAgKi8KLSAgICAgICAg cGcgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBwZyA9IGlv bW11X2FsbG9jX3BndGFibGUoaGQpOwogCiAgICAgICAgIGlmICggIXBnICkK ICAgICAgICAgICAgIGdvdG8gb3V0OwotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC94ODYvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC94ODYvaW9tbXUuYwpAQCAtNDE1LDkgKzQxNSw4IEBAIGludCBpb21t dV9mcmVlX3BndGFibGVzKHN0cnVjdCBkb21haW4gKmQKICAgICByZXR1cm4g MDsKIH0KIAotc3RydWN0IHBhZ2VfaW5mbyAqaW9tbXVfYWxsb2NfcGd0YWJs ZShzdHJ1Y3QgZG9tYWluICpkKQorc3RydWN0IHBhZ2VfaW5mbyAqaW9tbXVf YWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKIHsKLSAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAg ICB1bnNpZ25lZCBpbnQgbWVtZmxhZ3MgPSAwOwogICAgIHN0cnVjdCBwYWdl X2luZm8gKnBnOwogICAgIHZvaWQgKnA7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-04.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-04.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBkcm9wIG93bmVyc2hpcCBjaGVja2luZyBmcm9tIGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKCkKCkRlc3BpdGUgcHV0dGluZyBpbiBxdWl0 ZSBhIGJpdCBvZiBlZmZvcnQgaXQgd2FzIG5vdCBwb3NzaWJsZSB0bwplc3Rh Ymxpc2ggd2h5IGV4YWN0bHkgdGhpcyBjb2RlIGV4aXN0cyAoYmV5b25kIHBv c3NpYmx5IHNhbml0eQpjaGVja2luZykuIEluc3RlYWQgb2YgYSBzdWJzZXF1 ZW50IGNoYW5nZSBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGlzCmxvZ2ljLCBz aW1wbHkgZ2V0IHJpZCBvZiBpdC4KClRha2UgdGhlIG9wcG9ydHVuaXR5IGFu ZCBtb3ZlIHRoZSByZXNwZWN0aXZlIHVubWFwX3Z0ZF9kb21haW5fcGFnZSgp IG91dApvZiB0aGUgbG9ja2VkIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KCi0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMjEsMjggKzEy MSw2IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNvbnRleHRfZ2V0 X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQotewotICAgIHVuc2lnbmVkIGxvbmcgZG9tX2luZGV4LCBu cl9kb207Ci0gICAgaW50IGRvbWlkID0gLTE7Ci0KLSAgICBpZiAoaW9tbXUg JiYgY29udGV4dCkKLSAgICB7Ci0gICAgICAgIG5yX2RvbSA9IGNhcF9uZG9t cyhpb21tdS0+Y2FwKTsKLQotICAgICAgICBkb21faW5kZXggPSBjb250ZXh0 X2RvbWFpbl9pZCgqY29udGV4dCk7Ci0KLSAgICAgICAgaWYgKCBkb21faW5k ZXggPCBucl9kb20gJiYgaW9tbXUtPmRvbWlkX21hcCApCi0gICAgICAgICAg ICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbZG9tX2luZGV4XTsKLSAgICAg ICAgZWxzZQotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcgVlRE UFJFRklYLAotICAgICAgICAgICAgICAgICAgICAiZG9tX2luZGV4ICVsdSBl eGNlZWRzIG5yX2RvbSAlbHUgb3IgaW9tbXUgaGFzIG5vIGRvbWlkX21hcFxu IiwKLSAgICAgICAgICAgICAgICAgICAgZG9tX2luZGV4LCBucl9kb20pOwot ICAgIH0KLSAgICByZXR1cm4gZG9taWQ7Ci19Ci0KIHN0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpCiB7CiAgICAgaW50IGlvbW11X2RvbWlkID0g ZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOwpAQCAtMTQwNCw0 NCArMTM4Miw5IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgK IAogICAgIGlmICggY29udGV4dF9wcmVzZW50KCpjb250ZXh0KSApCiAgICAg ewotICAgICAgICBpbnQgcmVzID0gMDsKLQotICAgICAgICAvKiBUcnkgdG8g Z2V0IGRvbWFpbiBvd25lcnNoaXAgZnJvbSBkZXZpY2Ugc3RydWN0dXJlLiAg SWYgdGhhdCdzCi0gICAgICAgICAqIG5vdCBhdmFpbGFibGUsIHRyeSB0byBy ZWFkIGl0IGZyb20gdGhlIGNvbnRleHQgaXRzZWxmLiAqLwotICAgICAgICBp ZiAoIHBkZXYgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIHBkZXYt PmRvbWFpbiAhPSBkb21haW4gKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPIFZURFBSRUZJWCAiJXBkOiAl cHAgb3duZWQgYnkgJXBkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbiksCi0gICAgICAgICAg ICAgICAgICAgICAgIHBkZXYtPmRvbWFpbik7Ci0gICAgICAgICAgICAgICAg cmVzID0gLUVJTlZBTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg ICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBjZG9tYWlu OwotICAgICAgICAgICAgY2RvbWFpbiA9IGNvbnRleHRfZ2V0X2RvbWFpbl9p ZChjb250ZXh0LCBpb21tdSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg IGlmICggY2RvbWFpbiA8IDAgKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAotICAg ICAgICAgICAgICAgICAgICAgICAiJXBkOiAlcHAgbWFwcGVkLCBidXQgY2Fu J3QgZmluZCBvd25lclxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwotICAgICAgICAg ICAgICAgIHJlcyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0gICAgICAg ICAgICBlbHNlIGlmICggY2RvbWFpbiAhPSBkb21haW4tPmRvbWFpbl9pZCAp Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX0lORk8gVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICIl cGQ6ICVwcCBhbHJlYWR5IG1hcHBlZCB0byBkJWQiLAotICAgICAgICAgICAg ICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZu KSwgY2RvbWFpbik7Ci0gICAgICAgICAgICAgICAgcmVzID0gLUVJTlZBTDsK LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHVubWFwX3Z0 ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOwogICAgICAgICBzcGlu X3VubG9jaygmaW9tbXUtPmxvY2spOwotICAgICAgICByZXR1cm4gcmVzOwor ICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVz KTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKCBpb21t dV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9t YWluKSApCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-05.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-05.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiByZS1hc3NpZ24gZGV2aWNlcyBkaXJlY3RseQoKRGV2aWNlcyB3 aXRoIFJNUlJzLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQgaG93L3do ZW4gdGhlIHNwZWNpZmllZAptZW1vcnkgcmVnaW9ucyBtYXkgZ2V0IGFjY2Vz c2VkLCBtYXkgbm90IGJlIGxlZnQgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIK cmVzcGVjdGl2ZSBtYXBwaW5ncyAoYXMgbG9uZyBhcyBpdCdzIG5vdCBjZXJ0 YWluIHRoYXQgdGhlIGRldmljZSBoYXMKYmVlbiBmdWxseSBxdWllc2NlZCku IEhlbmNlIHJhdGhlciB0aGFuIHVubWFwcGluZyB0aGUgb2xkIGNvbnRleHQg YW5kCnRoZW4gbWFwcGluZyB0aGUgbmV3IG9uZSwgcmUtYXNzaWdubWVudCBu ZWVkcyB0byBiZSBkb25lIGluIGEgc2luZ2xlCnN0ZXAuCgpUaGlzIGlzIENW RS0yMDIyLTI2MzU5IC8gcGFydCBvZiBYU0EtNDAwLgoKUmVwb3J0ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKU2lt aWxhcmx5IHF1YXJhbnRpbmluZyBzY3JhdGNoLXBhZ2UgbW9kZSByZWxpZXMg b24gcGFnZSB0YWJsZXMgdG8gYmUKY29udGludW91c2x5IHdpcmVkIHVwLgoK VG8gYXZvaWQgY29tcGxpY2F0aW5nIHRoaW5ncyBtb3JlIHRoYW4gbmVjZXNz YXJ5LCB0cmVhdCBhbGwgZGV2aWNlcwptb3N0bHkgZXF1YWxseSwgaS5lLiBy ZWdhcmRsZXNzIG9mIHRoZWlyIGFzc29jaWF0aW9uIHdpdGggYW55IFJNUlJz LiBUaGUKbWFpbiBkaWZmZXJlbmNlIGlzIHdoZW4gaXQgY29tZXMgdG8gdXBk YXRpbmcgY29udGV4dCBlbnRyaWVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21p YyB3aGVuIHRoZXJlIGFyZSBSTVJScy4gWWV0IGF0b21pY2l0eSBjYW4gb25s eSBiZSBhY2hpZXZlZAp3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBv ZiB3aGljaCB3ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClRoZSBzZWVtaW5n bHkgY29tcGxpY2F0ZWQgY2hvaWNlIG9mIG5vbi1uZWdhdGl2ZSByZXR1cm4g dmFsdWVzIGZvcgpkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpIGlzIHRv IGxpbWl0IGNvZGUgY2h1cm46IFRoaXMgd2F5IGNhbGxlcnMKcGFzc2luZyBO VUxMIGZvciBwZGV2IGRvbid0IG5lZWQgZmlkZGxpbmcgd2l0aC4KClNpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2 aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0 ZXJuLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVy bi5oCkBAIC04NCw3ICs4NCw4IEBAIHZvaWQgZnJlZV9wZ3RhYmxlX21hZGRy KHU2NCBtYWRkcik7CiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdlKHU2NCBt YWRkcik7CiB2b2lkIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb25zdCB2b2lk ICp2YSk7CiBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoc3RydWN0 IGRvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMsIHU4IGRldmZu LCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwgdW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9j b250ZXh0X3VubWFwX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVj dCB2dGRfaW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1OCBidXMsIHU4IGRldmZuKTsKIGludCBpbnRlbF9pb21tdV9nZXRf cmVzZXJ2ZWRfZGV2aWNlX21lbW9yeShpb21tdV9ncmRtX3QgKmZ1bmMsIHZv aWQgKmN0eHQpOwpAQCAtMTAzLDggKzEwNCw4IEBAIGludCBpc19pZ2RfdnRf ZW5hYmxlZF9xdWlyayh2b2lkKTsKIHZvaWQgcGxhdGZvcm1fcXVpcmtzX2lu aXQodm9pZCk7CiB2b2lkIHZ0ZF9vcHNfcHJlYW1ibGVfcXVpcmsoc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpOwogdm9pZCB2dGRfb3BzX3Bvc3RhbWJsZV9x dWlyayhzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7Ci1pbnQgX19tdXN0X2No ZWNrIG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGJ1cywgdTggZGV2Zm4s IGludCBtYXApOworaW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwgdWludDhfdCBidXMsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQg aW50IG1vZGUpOwogdm9pZCBwY2lfdnRkX3F1aXJrKGNvbnN0IHN0cnVjdCBw Y2lfZGV2ICopOwogdm9pZCBxdWlya19pb21tdV9jYXBzKHN0cnVjdCB2dGRf aW9tbXUgKmlvbW11KTsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvaW9tbXUuYwpAQCAtMTE3LDYgKzExNyw3IEBAIHN0YXRpYyBpbnQgY29u dGV4dF9zZXRfZG9tYWluX2lkKHN0cnVjdAogICAgIH0KIAogICAgIHNldF9i aXQoaSwgaW9tbXUtPmRvbWlkX2JpdG1hcCk7CisgICAgY29udGV4dC0+aGkg Jj0gfigoKDEgPDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpIDw8IERJRF9ISUdI X09GRlNFVCk7CiAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAoKDEgPDwgRElE X0ZJRUxEX1dJRFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZTRVQ7CiAgICAg cmV0dXJuIDA7CiB9CkBAIC0xMzYyLDE1ICsxMzYzLDI3IEBAIHN0YXRpYyB2 b2lkIF9faHdkb21faW5pdCBpbnRlbF9pb21tdV9od2QKICAgICB9CiB9CiAK Ky8qCisgKiBUaGlzIGZ1bmN0aW9uIHJldHVybnMKKyAqIC0gYSBuZWdhdGl2 ZSBlcnJubyB2YWx1ZSB1cG9uIGVycm9yLAorICogLSB6ZXJvIHVwb24gc3Vj Y2VzcyB3aGVuIHByZXZpb3VzbHkgdGhlIGVudHJ5IHdhcyBub24tcHJlc2Vu dCwgb3IgdGhpcyBpc24ndAorICogICB0aGUgIm1haW4iIHJlcXVlc3QgZm9y IGEgZGV2aWNlIChwZGV2ID09IE5VTEwpLCBvciBmb3Igbm8tb3AgcXVhcmFu dGluaW5nCisgKiAgIGFzc2lnbm1lbnRzLAorICogLSBwb3NpdGl2ZSAob25l KSB1cG9uIHN1Y2Nlc3Mgd2hlbiBwcmV2aW91c2x5IHRoZSBlbnRyeSB3YXMg cHJlc2VudCBhbmQgdGhpcworICogICBpcyB0aGUgIm1haW4iIHJlcXVlc3Qg Zm9yIGEgZGV2aWNlIChwZGV2ICE9IE5VTEwpLgorICovCiBpbnQgZG9tYWlu X2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgc3RydWN0IGRvbWFpbiAqZG9t YWluLAogICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAotICAgIHU4IGJ1 cywgdTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2KQorICAg IHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwKKyAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICBz dHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21haW4pOwot ICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4dF9l bnRyaWVzOworICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAq Y29udGV4dF9lbnRyaWVzLCBsY3R4dDsKKyAgICBfX3VpbnQxMjhfdCBvbGQ7 CiAgICAgdTY0IG1hZGRyLCBwZ2RfbWFkZHI7Ci0gICAgdTE2IHNlZyA9IGlv bW11LT5kcmhkLT5zZWdtZW50OworICAgIHVpbnQxNl90IHNlZyA9IGlvbW11 LT5kcmhkLT5zZWdtZW50LCBwcmV2X2RpZCA9IDA7CisgICAgc3RydWN0IGRv bWFpbiAqcHJldl9kb20gPSBOVUxMOwogICAgIGludCByYywgcmV0OwogICAg IGJvb2xfdCBmbHVzaF9kZXZfaW90bGI7CiAKQEAgLTEzNzksMTcgKzEzOTIs MzIgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIG1h ZGRyID0gYnVzX3RvX2NvbnRleHRfbWFkZHIoaW9tbXUsIGJ1cyk7CiAgICAg Y29udGV4dF9lbnRyaWVzID0gKHN0cnVjdCBjb250ZXh0X2VudHJ5ICopbWFw X3Z0ZF9kb21haW5fcGFnZShtYWRkcik7CiAgICAgY29udGV4dCA9ICZjb250 ZXh0X2VudHJpZXNbZGV2Zm5dOworICAgIG9sZCA9IChsY3R4dCA9ICpjb250 ZXh0KS5mdWxsOwogCi0gICAgaWYgKCBjb250ZXh0X3ByZXNlbnQoKmNvbnRl eHQpICkKKyAgICBpZiAoIGNvbnRleHRfcHJlc2VudChsY3R4dCkgKQogICAg IHsKLSAgICAgICAgc3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKLSAgICAg ICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7Ci0g ICAgICAgIHJldHVybiAwOworICAgICAgICBkb21pZF90IGRvbWlkOworCisg ICAgICAgIHByZXZfZGlkID0gY29udGV4dF9kb21haW5faWQobGN0eHQpOwor ICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbcHJldl9kaWRdOwor ICAgICAgICBpZiAoIGRvbWlkIDwgRE9NSURfRklSU1RfUkVTRVJWRUQgKQor ICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW5fYnlfaWQo ZG9taWQpOworICAgICAgICBlbHNlIGlmICggZG9taWQgPT0gRE9NSURfSU8g KQorICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW4oZG9t X2lvKTsKKyAgICAgICAgaWYgKCAhcHJldl9kb20gKQorICAgICAgICB7Cisg ICAgICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOworICAgICAg ICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7 CisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRyBWVERQUkVGSVgs CisgICAgICAgICAgICAgICAgICAgICJubyBkb21haW4gZm9yIGRpZCAldSAo bnJfZG9tICV1KVxuIiwKKyAgICAgICAgICAgICAgICAgICAgcHJldl9kaWQs IGNhcF9uZG9tcyhpb21tdS0+Y2FwKSk7CisgICAgICAgICAgICByZXR1cm4g LUVTUkNIOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCBpb21tdV9o d2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9tYWlu KSApCiAgICAgewotICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90 eXBlKCpjb250ZXh0LCBDT05URVhUX1RUX1BBU1NfVEhSVSk7CisgICAgICAg IGNvbnRleHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUobGN0eHQsIENPTlRFWFRf VFRfUEFTU19USFJVKTsKICAgICB9CiAgICAgZWxzZQogICAgIHsKQEAgLTE0 MDEsMzYgKzE0MjksMTA3IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5n X29uZSgKICAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBw aW5nX2xvY2spOwogICAgICAgICAgICAgc3Bpbl91bmxvY2soJmlvbW11LT5s b2NrKTsKICAgICAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb250 ZXh0X2VudHJpZXMpOworICAgICAgICAgICAgaWYgKCBwcmV2X2RvbSApCisg ICAgICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4ocHJldl9kb20pOwog ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAgICAgICAgIH0KIAotICAg ICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3Jvb3QoKmNvbnRleHQsIHBnZF9t YWRkcik7CisgICAgICAgIGNvbnRleHRfc2V0X2FkZHJlc3Nfcm9vdChsY3R4 dCwgcGdkX21hZGRyKTsKICAgICAgICAgaWYgKCBhdHNfZW5hYmxlZCAmJiBl Y2FwX2Rldl9pb3RsYihpb21tdS0+ZWNhcCkgKQotICAgICAgICAgICAgY29u dGV4dF9zZXRfdHJhbnNsYXRpb25fdHlwZSgqY29udGV4dCwgQ09OVEVYVF9U VF9ERVZfSU9UTEIpOworICAgICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNs YXRpb25fdHlwZShsY3R4dCwgQ09OVEVYVF9UVF9ERVZfSU9UTEIpOwogICAg ICAgICBlbHNlCi0gICAgICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlv bl90eXBlKCpjb250ZXh0LCBDT05URVhUX1RUX01VTFRJX0xFVkVMKTsKKyAg ICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUobGN0eHQs IENPTlRFWFRfVFRfTVVMVElfTEVWRUwpOwogCiAgICAgICAgIHNwaW5fdW5s b2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgIH0KIAotICAgIGlm ICggY29udGV4dF9zZXRfZG9tYWluX2lkKGNvbnRleHQsIGRvbWFpbiwgaW9t bXUpICkKKyAgICBpZiAoIGNvbnRleHRfc2V0X2RvbWFpbl9pZCgmbGN0eHQs IGRvbWFpbiwgaW9tbXUpICkKICAgICB7CisgICAgdW5sb2NrOgogICAgICAg ICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwogICAgICAgICB1bm1hcF92 dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVzKTsKKyAgICAgICAgaWYg KCBwcmV2X2RvbSApCisgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihw cmV2X2RvbSk7CiAgICAgICAgIHJldHVybiAtRUZBVUxUOwogICAgIH0KIAot ICAgIGNvbnRleHRfc2V0X2FkZHJlc3Nfd2lkdGgoKmNvbnRleHQsIGxldmVs X3RvX2FnYXcoaW9tbXUtPm5yX3B0X2xldmVscykpOwotICAgIGNvbnRleHRf c2V0X2ZhdWx0X2VuYWJsZSgqY29udGV4dCk7Ci0gICAgY29udGV4dF9zZXRf cHJlc2VudCgqY29udGV4dCk7CisgICAgaWYgKCAhcHJldl9kb20gKQorICAg IHsKKyAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc193aWR0aChsY3R4dCwg bGV2ZWxfdG9fYWdhdyhpb21tdS0+bnJfcHRfbGV2ZWxzKSk7CisgICAgICAg IGNvbnRleHRfc2V0X2ZhdWx0X2VuYWJsZShsY3R4dCk7CisgICAgICAgIGNv bnRleHRfc2V0X3ByZXNlbnQobGN0eHQpOworICAgIH0KKyAgICBlbHNlIGlm ICggcHJldl9kb20gPT0gZG9tYWluICkKKyAgICB7CisgICAgICAgIEFTU0VS VChsY3R4dC5mdWxsID09IGNvbnRleHQtPmZ1bGwpOworICAgICAgICByYyA9 ICEhcGRldjsKKyAgICAgICAgZ290byB1bmxvY2s7CisgICAgfQorICAgIGVs c2UKKyAgICB7CisgICAgICAgIEFTU0VSVChjb250ZXh0X2FkZHJlc3Nfd2lk dGgobGN0eHQpID09CisgICAgICAgICAgICAgICBsZXZlbF90b19hZ2F3KGlv bW11LT5ucl9wdF9sZXZlbHMpKTsKKyAgICAgICAgQVNTRVJUKCFjb250ZXh0 X2ZhdWx0X2Rpc2FibGUobGN0eHQpKTsKKyAgICB9CisKKyAgICBpZiAoIGNw dV9oYXNfY3gxNiApCisgICAgeworICAgICAgICBfX3VpbnQxMjhfdCByZXMg PSBjbXB4Y2hnMTZiKGNvbnRleHQsICZvbGQsICZsY3R4dC5mdWxsKTsKKwor ICAgICAgICAvKgorICAgICAgICAgKiBIYXJkd2FyZSBkb2VzIG5vdCB1cGRh dGUgdGhlIGNvbnRleHQgZW50cnkgYmVoaW5kIG91ciBiYWNrcywKKyAgICAg ICAgICogc28gdGhlIHJldHVybiB2YWx1ZSBzaG91bGQgbWF0Y2ggIm9sZCIu CisgICAgICAgICAqLworICAgICAgICBpZiAoIHJlcyAhPSBvbGQgKQorICAg ICAgICB7CisgICAgICAgICAgICBpZiAoIHBkZXYgKQorICAgICAgICAgICAg ICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFwKGRvbWFpbiwgcGRldiwgaW9t bXUpOworICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19FUlIKKyAgICAgICAg ICAgICAgICAgICAiJXBwOiB1bmV4cGVjdGVkIGNvbnRleHQgZW50cnkgJTAx Nmx4XyUwMTZseCAoZXhwZWN0ZWQgJTAxNmx4XyUwMTZseClcbiIsCisgICAg ICAgICAgICAgICAgICAgJlBDSV9TQkRGMyhwZGV2LT5zZWcsIHBkZXYtPmJ1 cywgZGV2Zm4pLAorICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCkocmVz ID4+IDY0KSwgKHVpbnQ2NF90KXJlcywKKyAgICAgICAgICAgICAgICAgICAo dWludDY0X3QpKG9sZCA+PiA2NCksICh1aW50NjRfdClvbGQpOworICAgICAg ICAgICAgcmMgPSAtRUlMU0VROworICAgICAgICAgICAgZ290byB1bmxvY2s7 CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZSBpZiAoICFwcmV2X2RvbSB8 fCAhKG1vZGUgJiBNQVBfV0lUSF9STVJSKSApCisgICAgeworICAgICAgICBj b250ZXh0X2NsZWFyX3ByZXNlbnQoKmNvbnRleHQpOworICAgICAgICBpb21t dV9zeW5jX2NhY2hlKGNvbnRleHQsIHNpemVvZigqY29udGV4dCkpOworCisg ICAgICAgIHdyaXRlX2F0b21pYygmY29udGV4dC0+aGksIGxjdHh0LmhpKTsK KyAgICAgICAgLyogTm8gYmFycmllciBzaG91bGQgYmUgbmVlZGVkIGJldHdl ZW4gdGhlc2UgdHdvLiAqLworICAgICAgICB3cml0ZV9hdG9taWMoJmNvbnRl eHQtPmxvLCBsY3R4dC5sbyk7CisgICAgfQorICAgIGVsc2UgLyogQmVzdCBl ZmZvcnQsIHVwZGF0aW5nIERJRCBsYXN0LiAqLworICAgIHsKKyAgICAgICAg IC8qCisgICAgICAgICAgKiBCeSBub24tYXRvbWljYWxseSB1cGRhdGluZyB0 aGUgY29udGV4dCBlbnRyeSdzIERJRCBmaWVsZCBsYXN0LAorICAgICAgICAg ICogZHVyaW5nIGEgc2hvcnQgd2luZG93IGluIHRpbWUgVExCIGVudHJpZXMg d2l0aCB0aGUgb2xkIGRvbWFpbiBJRAorICAgICAgICAgICogYnV0IHRoZSBu ZXcgcGFnZSB0YWJsZXMgbWF5IGJlIGluc2VydGVkLiAgVGhpcyBjb3VsZCBh ZmZlY3QgSS9PCisgICAgICAgICAgKiBvZiBvdGhlciBkZXZpY2VzIHVzaW5n IHRoaXMgc2FtZSAob2xkKSBkb21haW4gSUQuICBTdWNoIHVwZGF0aW5nCisg ICAgICAgICAgKiB0aGVyZWZvcmUgaXMgbm90IGEgcHJvYmxlbSBpZiB0aGlz IHdhcyB0aGUgb25seSBkZXZpY2UgYXNzb2NpYXRlZAorICAgICAgICAgICog d2l0aCB0aGUgb2xkIGRvbWFpbiBJRC4gIERpdmVydGluZyBJL08gb2YgYW55 IG9mIGEgZHlpbmcgZG9tYWluJ3MKKyAgICAgICAgICAqIGRldmljZXMgdG8g dGhlIHF1YXJhbnRpbmUgcGFnZSB0YWJsZXMgaXMgaW50ZW5kZWQgYW55d2F5 LgorICAgICAgICAgICovCisgICAgICAgIGlmICggIShtb2RlICYgKE1BUF9P V05FUl9EWUlORyB8IE1BUF9TSU5HTEVfREVWSUNFKSkgKQorICAgICAgICAg ICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HIFZURFBSRUZJWAorICAgICAgICAg ICAgICAgICAgICIgJXBwOiByZWFzc2lnbm1lbnQgbWF5IGNhdXNlICVwZCBk YXRhIGNvcnJ1cHRpb25cbiIsCisgICAgICAgICAgICAgICAgICAgJlBDSV9T QkRGMyhzZWcsIGJ1cywgZGV2Zm4pLCBwcmV2X2RvbSk7CisKKyAgICAgICAg d3JpdGVfYXRvbWljKCZjb250ZXh0LT5sbywgbGN0eHQubG8pOworICAgICAg ICAvKiBObyBiYXJyaWVyIHNob3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVz ZSB0d28uICovCisgICAgICAgIHdyaXRlX2F0b21pYygmY29udGV4dC0+aGks IGxjdHh0LmhpKTsKKyAgICB9CisKICAgICBpb21tdV9zeW5jX2NhY2hlKGNv bnRleHQsIHNpemVvZihzdHJ1Y3QgY29udGV4dF9lbnRyeSkpOwogICAgIHNw aW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CiAKLSAgICAvKiBDb250ZXh0IGVu dHJ5IHdhcyBwcmV2aW91c2x5IG5vbi1wcmVzZW50ICh3aXRoIGRvbWlkIDAp LiAqLwotICAgIHJjID0gaW9tbXVfZmx1c2hfY29udGV4dF9kZXZpY2UoaW9t bXUsIDAsIFBDSV9CREYyKGJ1cywgZGV2Zm4pLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRE1BX0NDTURfTUFTS19OT0JJVCwgMSk7 CisgICAgcmMgPSBpb21tdV9mbHVzaF9jb250ZXh0X2RldmljZShpb21tdSwg cHJldl9kaWQsIFBDSV9CREYyKGJ1cywgZGV2Zm4pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRE1BX0NDTURfTUFTS19OT0JJVCwg IXByZXZfZG9tKTsKICAgICBmbHVzaF9kZXZfaW90bGIgPSAhIWZpbmRfYXRz X2Rldl9kcmhkKGlvbW11KTsKLSAgICByZXQgPSBpb21tdV9mbHVzaF9pb3Rs Yl9kc2koaW9tbXUsIDAsIDEsIGZsdXNoX2Rldl9pb3RsYik7CisgICAgcmV0 ID0gaW9tbXVfZmx1c2hfaW90bGJfZHNpKGlvbW11LCBwcmV2X2RpZCwgIXBy ZXZfZG9tLCBmbHVzaF9kZXZfaW90bGIpOwogCiAgICAgLyoKICAgICAgKiBU aGUgY3VycmVudCBsb2dpYyBmb3IgcmV0dXJuczoKQEAgLTE0NTEsMTcgKzE1 NTAsMjYgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAg IHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOwogCiAg ICAgaWYgKCAhc2VnICYmICFyYyApCi0gICAgICAgIHJjID0gbWVfd2lmaV9x dWlyayhkb21haW4sIGJ1cywgZGV2Zm4sIE1BUF9NRV9QSEFOVE9NX0ZVTkMp OworICAgICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRl dmZuLCBtb2RlKTsKIAogICAgIGlmICggcmMgKQogICAgIHsKLSAgICAgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUs IGJ1cywgZGV2Zm4pOworICAgICAgICBpZiAoICFwcmV2X2RvbSApCisgICAg ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWlu LCBpb21tdSwgYnVzLCBkZXZmbik7CisgICAgICAgIGVsc2UgaWYgKCBwcmV2 X2RvbSAhPSBkb21haW4gKSAvKiBBdm9pZCBpbmZpbml0ZSByZWN1cnNpb24u ICovCisgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5n X29uZShwcmV2X2RvbSwgaW9tbXUsIGJ1cywgZGV2Zm4sIHBkZXYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rl ICYgTUFQX1dJVEhfUk1SUikgPCAwOworICAgICAgICBlbHNlCisgICAgICAg ICAgICByZXQgPSAxOwogCiAgICAgICAgIGlmICggIXJldCAmJiBwZGV2ICYm IHBkZXYtPmRldmZuID09IGRldmZuICkKICAgICAgICAgICAgIGNoZWNrX2Ns ZWFudXBfZG9taWRfbWFwKGRvbWFpbiwgcGRldiwgaW9tbXUpOwogICAgIH0K IAotICAgIHJldHVybiByYzsKKyAgICBpZiAoIHByZXZfZG9tICkKKyAgICAg ICAgcmN1X3VubG9ja19kb21haW4ocHJldl9kb20pOworCisgICAgcmV0dXJu IHJjID86IHBkZXYgJiYgcHJldl9kb207CiB9CiAKIHN0YXRpYyBpbnQgZG9t YWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBk ZXZmbiwKQEAgLTE0NzEsOCArMTU3OSwxMCBAQCBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAgICAg c3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOworICAgIGNvbnN0IHN0cnVj dCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKICAgICBpbnQgcmV0ID0gMDsKLSAg ICB1aW50MTZfdCBzZWcgPSBwZGV2LT5zZWc7CisgICAgdW5zaWduZWQgaW50 IGksIG1vZGUgPSAwOworICAgIHVpbnQxNl90IHNlZyA9IHBkZXYtPnNlZywg YmRmOwogICAgIHVpbnQ4X3QgYnVzID0gcGRldi0+YnVzLCBzZWNidXM7CiAK ICAgICBkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYp OwpAQCAtMTQ5Miw4ICsxNjAyLDI5IEBAIHN0YXRpYyBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZyhzdHJ1Y3QKIAogICAgIEFTU0VSVChwY2lkZXZzX2xv Y2tlZCgpKTsKIAorICAgIGZvcl9lYWNoX3JtcnJfZGV2aWNlKCBybXJyLCBi ZGYsIGkgKQorICAgIHsKKyAgICAgICAgaWYgKCBybXJyLT5zZWdtZW50ICE9 IHBkZXYtPnNlZyB8fCBiZGYgIT0gcGRldi0+c2JkZi5iZGYgKQorICAgICAg ICAgICAgY29udGludWU7CisKKyAgICAgICAgbW9kZSB8PSBNQVBfV0lUSF9S TVJSOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBpZiAoIGRvbWFp biAhPSBwZGV2LT5kb21haW4gKQorICAgIHsKKyAgICAgICAgaWYgKCBwZGV2 LT5kb21haW4tPmlzX2R5aW5nICkKKyAgICAgICAgICAgIG1vZGUgfD0gTUFQ X09XTkVSX0RZSU5HOworICAgICAgICBlbHNlIGlmICggZHJoZCAmJgorICAg ICAgICAgICAgICAgICAgIWFueV9wZGV2X2JlaGluZF9pb21tdShwZGV2LT5k b21haW4sIHBkZXYsIGRyaGQtPmlvbW11KSAmJgorICAgICAgICAgICAgICAg ICAgIXBkZXYtPnBoYW50b21fc3RyaWRlICkKKyAgICAgICAgICAgIG1vZGUg fD0gTUFQX1NJTkdMRV9ERVZJQ0U7CisgICAgfQorCiAgICAgc3dpdGNoICgg cGRldi0+dHlwZSApCiAgICAgeworICAgICAgICBib29sIHByZXZfcHJlc2Vu dDsKKwogICAgIGNhc2UgREVWX1RZUEVfUENJX0hPU1RfQlJJREdFOgogICAg ICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAgIHByaW50ayhW VERQUkVGSVggIiVwZDpIb3N0YnJpZGdlOiBza2lwICVwcCBtYXBcbiIsCkBA IC0xNTEyLDcgKzE2NDMsOSBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAgICBwcmludGsoVlREUFJFRklY ICIlcGQ6UENJZTogbWFwICVwcFxuIiwKICAgICAgICAgICAgICAgICAgICBk b21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CiAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJo ZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBkZXYpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBtb2RlKTsKKyAgICAgICAg aWYgKCByZXQgPiAwICkKKyAgICAgICAgICAgIHJldCA9IDA7CiAgICAgICAg IGlmICggIXJldCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2 aWNlKHBkZXYsIGRyaGQpID4gMCApCiAgICAgICAgICAgICBlbmFibGVfYXRz X2RldmljZShwZGV2LCAmZHJoZC0+aW9tbXUtPmF0c19kZXZpY2VzKTsKIApA QCAtMTUyNCw5ICsxNjU3LDEwIEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICBkb21haW4s ICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CiAKICAgICAgICAgcmV0 ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5p b21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGRldik7Ci0gICAgICAgIGlmICggcmV0ICkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwg bW9kZSk7CisgICAgICAgIGlmICggcmV0IDwgMCApCiAgICAgICAgICAgICBi cmVhazsKKyAgICAgICAgcHJldl9wcmVzZW50ID0gcmV0OwogCiAgICAgICAg IGlmICggKHJldCA9IGZpbmRfdXBzdHJlYW1fYnJpZGdlKHNlZywgJmJ1cywg JmRldmZuLCAmc2VjYnVzKSkgPCAxICkKICAgICAgICAgewpAQCAtMTUzNCw2 ICsxNjY4LDE1IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGlu ZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg IHJldCA9IC1FTlhJTzsKICAgICAgICAgfQorICAgICAgICAvKgorICAgICAg ICAgKiBTdHJpY3RseSBzcGVha2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBv bmx5IG9uZSBiZWhpbmQgdGhpcyBicmlkZ2UKKyAgICAgICAgICogYW5kIHRo ZSBvbmx5IG9uZSB3aXRoIHRoaXMgKHNlY2J1cywwLDApIHR1cGxlLCBpdCBj b3VsZCBiZSBhbGxvd2VkCisgICAgICAgICAqIHRvIGJlIHJlLWFzc2lnbmVk IHJlZ2FyZGxlc3Mgb2YgUk1SUiBwcmVzZW5jZS4gIEJ1dCBsZXQncyBkZWFs IHdpdGgKKyAgICAgICAgICogdGhhdCBjYXNlIG9ubHkgaWYgaXQgaXMgYWN0 dWFsbHkgZm91bmQgaW4gdGhlIHdpbGQuCisgICAgICAgICAqLworICAgICAg ICBlbHNlIGlmICggcHJldl9wcmVzZW50ICYmIChtb2RlICYgTUFQX1dJVEhf Uk1SUikgJiYKKyAgICAgICAgICAgICAgICAgIGRvbWFpbiAhPSBwZGV2LT5k b21haW4gKQorICAgICAgICAgICAgcmV0ID0gLUVPUE5PVFNVUFA7CiAKICAg ICAgICAgLyoKICAgICAgICAgICogTWFwcGluZyBhIGJyaWRnZSBzaG91bGQs IGlmIGFueXRoaW5nLCBwYXNzIHRoZSBzdHJ1Y3QgcGNpX2RldiBvZgpAQCAt MTU0Miw3ICsxNjg1LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9t YXBwaW5nKHN0cnVjdAogICAgICAgICAgKi8KICAgICAgICAgaWYgKCByZXQg Pj0gMCApCiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBw aW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLCBtb2RlKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBE ZXZpY2VzIGJlaGluZCBQQ0llLXRvLVBDSS9QQ0l4IGJyaWRnZSBtYXkgZ2Vu ZXJhdGUgZGlmZmVyZW50CkBAIC0xNTU3LDEwICsxNzAwLDE1IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAg aWYgKCAhcmV0ICYmIHBkZXZfdHlwZShzZWcsIGJ1cywgZGV2Zm4pID09IERF Vl9UWVBFX1BDSWUyUENJX0JSSURHRSAmJgogICAgICAgICAgICAgIChzZWNi dXMgIT0gcGRldi0+YnVzIHx8IHBkZXYtPmRldmZuICE9IDApICkKICAgICAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFp biwgZHJoZC0+aW9tbXUsIHNlY2J1cywgMCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgbW9k ZSk7CiAKICAgICAgICAgaWYgKCByZXQgKQotICAgICAgICAgICAgZG9tYWlu X2NvbnRleHRfdW5tYXAoZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgICAg IHsKKyAgICAgICAgICAgIGlmICggIXByZXZfcHJlc2VudCApCisgICAgICAg ICAgICAgICAgZG9tYWluX2NvbnRleHRfdW5tYXAoZG9tYWluLCBkZXZmbiwg cGRldik7CisgICAgICAgICAgICBlbHNlIGlmICggcGRldi0+ZG9tYWluICE9 IGRvbWFpbiApIC8qIEF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbi4gKi8KKyAg ICAgICAgICAgICAgICBkb21haW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRv bWFpbiwgZGV2Zm4sIHBkZXYpOworICAgICAgICB9CiAKICAgICAgICAgYnJl YWs7CiAKQEAgLTIzMzYsOSArMjQ4NCw4IEBAIHN0YXRpYyBpbnQgcmVhc3Np Z25fZGV2aWNlX293bmVyc2hpcCgKIHsKICAgICBpbnQgcmV0OwogCi0gICAg cmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAoc291cmNlLCBkZXZmbiwgcGRl dik7Ci0gICAgaWYgKCByZXQgKQotICAgICAgICByZXR1cm4gcmV0OworICAg IGlmICggIWhhc19hcmNoX3BkZXZzKHRhcmdldCkgKQorICAgICAgICB2bXhf cGlfaG9va3NfYXNzaWduKHRhcmdldCk7CiAKICAgICAvKgogICAgICAqIERl dmljZXMgYXNzaWduZWQgdG8gdW50cnVzdGVkIGRvbWFpbnMgKGhlcmUgYXNz dW1lZCB0byBiZSBhbnkgZG9tVSkKQEAgLTIzNDgsNiArMjQ5NSwzMSBAQCBz dGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAoCiAgICAgaWYg KCAodGFyZ2V0ICE9IGhhcmR3YXJlX2RvbWFpbikgJiYgIWlvbW11X2ludHJl bWFwICkKICAgICAgICAgdW50cnVzdGVkX21zaSA9IHRydWU7CiAKKyAgICBy ZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nKHRhcmdldCwgZGV2Zm4sIHBk ZXYpOworICAgIGlmICggcmV0ICkKKyAgICB7CisgICAgICAgIGlmICggIWhh c19hcmNoX3BkZXZzKHRhcmdldCkgKQorICAgICAgICAgICAgdm14X3BpX2hv b2tzX2RlYXNzaWduKHRhcmdldCk7CisgICAgICAgIHJldHVybiByZXQ7Cisg ICAgfQorCisgICAgaWYgKCBwZGV2LT5kZXZmbiA9PSBkZXZmbiApCisgICAg eworICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQg PSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CisKKyAgICAg ICAgaWYgKCBkcmhkICkKKyAgICAgICAgICAgIGNoZWNrX2NsZWFudXBfZG9t aWRfbWFwKHNvdXJjZSwgcGRldiwgZHJoZC0+aW9tbXUpOworICAgIH0KKwor ICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWlu ICE9IHRhcmdldCApCisgICAgeworICAgICAgICBsaXN0X21vdmUoJnBkZXYt PmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2X2xpc3QpOworICAgICAgICBw ZGV2LT5kb21haW4gPSB0YXJnZXQ7CisgICAgfQorCisgICAgaWYgKCAhaGFz X2FyY2hfcGRldnMoc291cmNlKSApCisgICAgICAgIHZteF9waV9ob29rc19k ZWFzc2lnbihzb3VyY2UpOworCiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2 aWNlIGJlbG9uZ3MgdG8gdGhlIGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhh cyBSTVJSLCBkb24ndAogICAgICAqIHJlbW92ZSBpdCBmcm9tIHRoZSBoYXJk d2FyZSBkb21haW4sIGJlY2F1c2UgQklPUyBtYXkgdXNlIFJNUlIgYXQKQEAg LTIzNzYsMzQgKzI1NDgsNyBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2Rldmlj ZV9vd25lcnNoaXAoCiAgICAgICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg KCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gZG9t X2lvICkKLSAgICB7Ci0gICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWlu X2xpc3QsICZkb21faW8tPnBkZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYtPmRv bWFpbiA9IGRvbV9pbzsKLSAgICB9Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9w ZGV2cyhzb3VyY2UpICkKLSAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWdu KHNvdXJjZSk7Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0YXJnZXQp ICkKLSAgICAgICAgdm14X3BpX2hvb2tzX2Fzc2lnbih0YXJnZXQpOwotCi0g ICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyh0YXJnZXQsIGRldmZu LCBwZGV2KTsKLSAgICBpZiAoIHJldCApCi0gICAgewotICAgICAgICBpZiAo ICFoYXNfYXJjaF9wZGV2cyh0YXJnZXQpICkKLSAgICAgICAgICAgIHZteF9w aV9ob29rc19kZWFzc2lnbih0YXJnZXQpOwotCi0gICAgICAgIHJldHVybiBy ZXQ7Ci0gICAgfQotCi0gICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAm JiBwZGV2LT5kb21haW4gIT0gdGFyZ2V0ICkKLSAgICB7Ci0gICAgICAgIGxp c3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZ0YXJnZXQtPnBkZXZfbGlz dCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9IHRhcmdldDsKLSAgICB9Ci0K LSAgICByZXR1cm4gcmV0OworICAgIHJldHVybiAwOwogfQogCiBzdGF0aWMg aW50IGludGVsX2lvbW11X2Fzc2lnbl9kZXZpY2UoCi0tLSBhL3hlbi9kcml2 ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5oCkBAIC0yMDIsOCArMjAyLDEyIEBA IHN0cnVjdCByb290X2VudHJ5IHsKICAgICBkbyB7KHJvb3QpLnZhbCB8PSAo KHZhbHVlKSAmIFBBR0VfTUFTS180Syk7fSB3aGlsZSgwKQogCiBzdHJ1Y3Qg Y29udGV4dF9lbnRyeSB7Ci0gICAgdTY0IGxvOwotICAgIHU2NCBoaTsKKyAg ICB1bmlvbiB7CisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50 NjRfdCBsbywgaGk7CisgICAgICAgIH07CisgICAgICAgIF9fdWludDEyOF90 IGZ1bGw7CisgICAgfTsKIH07CiAjZGVmaW5lIFJPT1RfRU5UUllfTlIgKFBB R0VfU0laRV80Sy9zaXplb2Yoc3RydWN0IHJvb3RfZW50cnkpKQogI2RlZmlu ZSBjb250ZXh0X3ByZXNlbnQoYykgKChjKS5sbyAmIDEpCi0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKQEAgLTM0NCw3ICszNDQs OCBAQCB2b2lkIF9faW5pdCBwbGF0Zm9ybV9xdWlya3NfaW5pdCh2b2lkKQog ICovCiAKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9t X2Z1bmN0aW9uKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiBkZXYs IGludCBtYXApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgZGV2LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IG1vZGUpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhk OwogICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2OwpAQCAtMzU1LDkgKzM1Niw5 IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIG1hcF9tZV9waGFudG9tX2YK ICAgICBkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYp OwogCiAgICAgLyogbWFwIG9yIHVubWFwIE1FIHBoYW50b20gZnVuY3Rpb24g Ki8KLSAgICBpZiAoIG1hcCApCisgICAgaWYgKCAhKG1vZGUgJiBVTk1BUF9N RV9QSEFOVE9NX0ZVTkMpICkKICAgICAgICAgcmMgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCAwLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihk ZXYsIDcpLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfREVWRk4oZGV2LCA3KSwgTlVMTCwgbW9kZSk7CiAg ICAgZWxzZQogICAgICAgICByYyA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29u ZShkb21haW4sIGRyaGQtPmlvbW11LCAwLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQQ0lfREVWRk4oZGV2LCA3KSk7CkBAIC0z NjUsNyArMzY2LDggQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgbWFwX21l X3BoYW50b21fZgogICAgIHJldHVybiByYzsKIH0KIAotaW50IG1lX3dpZmlf cXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBidXMsIHU4IGRldmZu LCBpbnQgbWFwKQoraW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAq ZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwKKyAgICAgICAg ICAgICAgICAgIHVuc2lnbmVkIGludCBtb2RlKQogewogICAgIHUzMiBpZDsK ICAgICBpbnQgcmMgPSAwOwpAQCAtMzg5LDcgKzM5MSw3IEBAIGludCBtZV93 aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAg IGNhc2UgMHg0MjNiODA4NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjNjODA4 NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjNkODA4NjoKLSAgICAgICAgICAg ICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMywg bWFwKTsKKyAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1 bmN0aW9uKGRvbWFpbiwgMywgbW9kZSk7CiAgICAgICAgICAgICAgICAgYnJl YWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGJy ZWFrOwpAQCAtNDE1LDcgKzQxNyw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0 cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAgIGNhc2UgMHg0MjM4 ODA4NjogICAgICAgIC8qIFB1bWEgUGVhayAqLwogICAgICAgICAgICAgY2Fz ZSAweDQyMmI4MDg2OgogICAgICAgICAgICAgY2FzZSAweDQyMmM4MDg2Ogot ICAgICAgICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24o ZG9tYWluLCAyMiwgbWFwKTsKKyAgICAgICAgICAgICAgICByYyA9IG1hcF9t ZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMjIsIG1vZGUpOwogICAgICAg ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAg ICAgICAgICAgICBicmVhazsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvdnRkL3Z0ZC5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC92dGQuaApAQCAtMjIsOCArMjIsMTQgQEAKIAogI2luY2x1ZGUgPHhlbi9p b21tdS5oPgogCi0jZGVmaW5lIE1BUF9NRV9QSEFOVE9NX0ZVTkMgICAgICAx Ci0jZGVmaW5lIFVOTUFQX01FX1BIQU5UT01fRlVOQyAgICAwCisvKgorICog VmFsdWVzIGZvciBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpJ3MgYW5k IG1lX3dpZmlfcXVpcmsoKSdzICJtb2RlIgorICogcGFyYW1ldGVycy4KKyAq LworI2RlZmluZSBNQVBfV0lUSF9STVJSICAgICAgICAgKDF1IDw8IDApCisj ZGVmaW5lIE1BUF9PV05FUl9EWUlORyAgICAgICAoMXUgPDwgMSkKKyNkZWZp bmUgTUFQX1NJTkdMRV9ERVZJQ0UgICAgICgxdSA8PCAyKQorI2RlZmluZSBV Tk1BUF9NRV9QSEFOVE9NX0ZVTkMgKDF1IDw8IDMpCiAKIC8qIEFsbG93IGZv ciBib3RoIElPQVBJQyBhbmQgSU9TQVBJQy4gKi8KICNkZWZpbmUgSU9feEFQ SUNfcm91dGVfZW50cnkgSU9fQVBJQ19yb3V0ZV9lbnRyeQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-06.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-06.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IHJlLWFzc2lnbiBkZXZpY2VzIGRpcmVjdGx5CgpEZXZp Y2VzIHdpdGggdW5pdHkgbWFwIHJhbmdlcywgZHVlIHRvIGl0IGJlaW5nIHVu c3BlY2lmaWVkIGhvdy93aGVuCnRoZXNlIG1lbW9yeSByYW5nZXMgbWF5IGdl dCBhY2Nlc3NlZCwgbWF5IG5vdCBiZSBsZWZ0IGRpc2Nvbm5lY3RlZCBmcm9t CnRoZWlyIHVuaXR5IG1hcHBpbmdzIChhcyBsb25nIGFzIGl0J3Mgbm90IGNl cnRhaW4gdGhhdCB0aGUgZGV2aWNlIGhhcwpiZWVuIGZ1bGx5IHF1aWVzY2Vk KS4gSGVuY2UgcmF0aGVyIHRoYW4gdGVhcmluZyBkb3duIHRoZSBvbGQgcm9v dCBwYWdlCnRhYmxlIHBvaW50ZXIgYW5kIHRoZW4gZXN0YWJsaXNoaW5nIHRo ZSBuZXcgb25lLCByZS1hc3NpZ25tZW50IG5lZWRzIHRvCmJlIGRvbmUgaW4g YSBzaW5nbGUgc3RlcC4KClRoaXMgaXMgQ1ZFLTIwMjItMjYzNjAgLyBwYXJ0 IG9mIFhTQS00MDAuCgpSZXBvcnRlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CgpTaW1pbGFybHkgcXVhcmFudGluaW5n IHNjcmF0Y2gtcGFnZSBtb2RlIHJlbGllcyBvbiBwYWdlIHRhYmxlcyB0byBi ZQpjb250aW51b3VzbHkgd2lyZWQgdXAuCgpUbyBhdm9pZCBjb21wbGljYXRp bmcgdGhpbmdzIG1vcmUgdGhhbiBuZWNlc3NhcnksIHRyZWF0IGFsbCBkZXZp Y2VzCm1vc3RseSBlcXVhbGx5LCBpLmUuIHJlZ2FyZGxlc3Mgb2YgdGhlaXIg YXNzb2NpYXRpb24gd2l0aCBhbnkgdW5pdHkgbWFwCnJhbmdlcy4gIFRoZSBt YWluIGRpZmZlcmVuY2UgaXMgd2hlbiBpdCBjb21lcyB0byB1cGRhdGluZyBE VEVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21pYyB3aGVuIHRoZXJlIGFyZSB1 bml0eSBtYXBwaW5ncy4gWWV0IGF0b21pY2l0eSBjYW4gb25seSBiZQphY2hp ZXZlZCB3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBvZiB3aGljaCB3 ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaApAQCAtMjQ3LDkgKzI0NywxMyBA QCB2b2lkIGFtZF9pb21tdV9zZXRfaW50cmVtYXBfdGFibGUoc3RydWN0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgdmFsaWQpOwotdm9pZCBhbWRfaW9tbXVf c2V0X3Jvb3RfcGFnZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRl LAotCQkJCSAgIHVpbnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5f aWQsCi0JCQkJICAgdWludDhfdCBwYWdpbmdfbW9kZSwgYm9vbCB2YWxpZCk7 CisjZGVmaW5lIFNFVF9ST09UX1ZBTElEICAgICAgICAgICgxdSA8PCAwKQor I2RlZmluZSBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCAoMXUgPDwgMSkKK2lu dCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUo c3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgcm9vdF9w dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQxNl90IGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBwYWdpbmdf bW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKIHZvaWQgaW9tbXVfZHRl X2FkZF9kZXZpY2VfZW50cnkoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGl2cnNfbWFwcGluZ3MgKml2cnNfZGV2KTsKIAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC0xMTQsMTAgKzEx NCw2OSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNldF9pb21tdV9wdGVzX3By ZXNlCiAgICAgcmV0dXJuIGZsdXNoX2ZsYWdzOwogfQogCi12b2lkIGFtZF9p b21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKHN0cnVjdCBhbWRfaW9tbXVfZHRl ICpkdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5faWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcGFnaW5nX21v ZGUsIGJvb2wgdmFsaWQpCisvKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5z CisgKiAtIC1lcnJubyBmb3IgZXJyb3JzLAorICogLSAwIGZvciBhIHN1Y2Nl c3NmdWwgdXBkYXRlLCBhdG9taWMgd2hlbiBuZWNlc3NhcnkKKyAqIC0gMSBm b3IgYSBzdWNjZXNzZnVsIGJ1dCBub24tYXRvbWljIHVwZGF0ZSwgd2hpY2gg bWF5IG5lZWQgdG8gYmUgd2FybmVkCisgKiAgIGFib3V0IGJ5IHRoZSBjYWxs ZXIuCisgKi8KK2ludCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZShz dHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBk b21haW5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDhfdCBwYWdpbmdfbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQogewor ICAgIGJvb2wgdmFsaWQgPSBmbGFncyAmIFNFVF9ST09UX1ZBTElEOworCisg ICAgaWYgKCBkdGUtPnYgJiYgZHRlLT50diAmJgorICAgICAgICAgKGNwdV9o YXNfY3gxNiB8fCAoZmxhZ3MgJiBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCkp ICkKKyAgICB7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVj dCBhbWRfaW9tbXVfZHRlIGR0ZTsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJh dzY0WzRdOworICAgICAgICAgICAgX191aW50MTI4X3QgcmF3MTI4WzJdOwor ICAgICAgICB9IGxkdGUgPSB7IC5kdGUgPSAqZHRlIH07CisgICAgICAgIF9f dWludDEyOF90IG9sZCA9IGxkdGUucmF3MTI4WzBdOworICAgICAgICBpbnQg cmV0ID0gMDsKKworICAgICAgICBsZHRlLmR0ZS5kb21haW5faWQgPSBkb21h aW5faWQ7CisgICAgICAgIGxkdGUuZHRlLnB0X3Jvb3QgPSBwYWRkcl90b19w Zm4ocm9vdF9wdHIpOworICAgICAgICBsZHRlLmR0ZS5pdyA9IHRydWU7Cisg ICAgICAgIGxkdGUuZHRlLmlyID0gdHJ1ZTsKKyAgICAgICAgbGR0ZS5kdGUu cGFnaW5nX21vZGUgPSBwYWdpbmdfbW9kZTsKKyAgICAgICAgbGR0ZS5kdGUu diA9IHZhbGlkOworCisgICAgICAgIGlmICggY3B1X2hhc19jeDE2ICkKKyAg ICAgICAgeworICAgICAgICAgICAgX191aW50MTI4X3QgcmVzID0gY21weGNo ZzE2YihkdGUsICZvbGQsICZsZHRlLnJhdzEyOFswXSk7CisKKyAgICAgICAg ICAgIC8qCisgICAgICAgICAgICAgKiBIYXJkd2FyZSBkb2VzIG5vdCB1cGRh dGUgdGhlIERURSBiZWhpbmQgb3VyIGJhY2tzLCBzbyB0aGUKKyAgICAgICAg ICAgICAqIHJldHVybiB2YWx1ZSBzaG91bGQgbWF0Y2ggIm9sZCIuCisgICAg ICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICggcmVzICE9IG9sZCApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIKKyAgICAgICAgICAgICAgICAgICAgICAgIkRvbSVkOiB1bmV4cGVjdGVk IERURSAlMDE2bHhfJTAxNmx4IChleHBlY3RlZCAlMDE2bHhfJTAxNmx4KVxu IiwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAodWludDY0X3QpKHJlcyA+PiA2NCksICh1aW50 NjRfdClyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCko b2xkID4+IDY0KSwgKHVpbnQ2NF90KW9sZCk7CisgICAgICAgICAgICAgICAg cmV0ID0gLUVJTFNFUTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg ICAgICBlbHNlIC8qIEJlc3QgZWZmb3J0LCB1cGRhdGluZyBkb21haW5faWQg bGFzdC4gKi8KKyAgICAgICAgeworICAgICAgICAgICAgdWludDY0X3QgKnB0 ciA9ICh2b2lkICopZHRlOworCisgICAgICAgICAgICB3cml0ZV9hdG9taWMo cHRyICsgMCwgbGR0ZS5yYXc2NFswXSk7CisgICAgICAgICAgICAvKiBObyBi YXJyaWVyIHNob3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVzZSB0d28uICov CisgICAgICAgICAgICB3cml0ZV9hdG9taWMocHRyICsgMSwgbGR0ZS5yYXc2 NFsxXSk7CisKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgIH0KKwor ICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKwogICAgIGlmICggdmFsaWQg fHwgZHRlLT52ICkKICAgICB7CiAgICAgICAgIGR0ZS0+dHYgPSBmYWxzZTsK QEAgLTEzMiw2ICsxOTEsOCBAQCB2b2lkIGFtZF9pb21tdV9zZXRfcm9vdF9w YWdlX3RhYmxlKHN0cnVjCiAgICAgc21wX3dtYigpOwogICAgIGR0ZS0+dHYg PSB0cnVlOwogICAgIGR0ZS0+diA9IHZhbGlkOworCisgICAgcmV0dXJuIDA7 CiB9CiAKIHZvaWQgYW1kX2lvbW11X3NldF9pbnRyZW1hcF90YWJsZSgKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9p b21tdS5jCkBAIC04MSw0MSArODEsODIgQEAgaW50IGdldF9kbWFfcmVxdWVz dG9yX2lkKHVpbnQxNl90IHNlZywgdQogICAgIHJldHVybiByZXFfaWQ7CiB9 CiAKLXN0YXRpYyB2b2lkIGFtZF9pb21tdV9zZXR1cF9kb21haW5fZGV2aWNl KAorc3RhdGljIGludCBfX211c3RfY2hlY2sgYWxsb2NhdGVfZG9tYWluX3Jl c291cmNlcyhzdHJ1Y3QgZG9tYWluICpkKQoreworICAgIHN0cnVjdCBkb21h aW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworICAgIGludCByYzsKKwor ICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKyAgICBy YyA9IGFtZF9pb21tdV9hbGxvY19yb290KGQpOworICAgIHNwaW5fdW5sb2Nr KCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworCisgICAgcmV0dXJuIHJjOwor fQorCitzdGF0aWMgYm9vbCBhbnlfcGRldl9iZWhpbmRfaW9tbXUoY29uc3Qg c3RydWN0IGRvbWFpbiAqZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYW1k X2lvbW11ICppb21tdSkKK3sKKyAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAq cGRldjsKKworICAgIGZvcl9lYWNoX3BkZXYgKCBkLCBwZGV2ICkKKyAgICB7 CisgICAgICAgIGlmICggcGRldiA9PSBleGNsdWRlICkKKyAgICAgICAgICAg IGNvbnRpbnVlOworCisgICAgICAgIGlmICggZmluZF9pb21tdV9mb3JfZGV2 aWNlKHBkZXYtPnNlZywgcGRldi0+c2JkZi5iZGYpID09IGlvbW11ICkKKyAg ICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBm YWxzZTsKK30KKworc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11 X3NldHVwX2RvbWFpbl9kZXZpY2UoCiAgICAgc3RydWN0IGRvbWFpbiAqZG9t YWluLCBzdHJ1Y3QgYW1kX2lvbW11ICppb21tdSwKICAgICB1aW50OF90IGRl dmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKICAgICBzdHJ1Y3QgYW1k X2lvbW11X2R0ZSAqdGFibGUsICpkdGU7CiAgICAgdW5zaWduZWQgbG9uZyBm bGFnczsKLSAgICBpbnQgcmVxX2lkLCB2YWxpZCA9IDE7CisgICAgdW5zaWdu ZWQgaW50IHJlcV9pZCwgc3JfZmxhZ3M7CisgICAgaW50IHJjOwogICAgIHU4 IGJ1cyA9IHBkZXYtPmJ1czsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lv bW11ICpoZCA9IGRvbV9pb21tdShkb21haW4pOworICAgIGNvbnN0IHN0cnVj dCBpdnJzX21hcHBpbmdzICppdnJzX2RldjsKKworICAgIEJVR19PTighaGQt PmFyY2guYW1kLnBhZ2luZ19tb2RlIHx8ICFpb21tdS0+ZGV2X3RhYmxlLmJ1 ZmZlcik7CiAKLSAgICBCVUdfT04oICFoZC0+YXJjaC5hbWQucm9vdF90YWJs ZSB8fAotICAgICAgICAgICAgIWhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSB8 fAotICAgICAgICAgICAgIWlvbW11LT5kZXZfdGFibGUuYnVmZmVyICk7Cisg ICAgcmMgPSBhbGxvY2F0ZV9kb21haW5fcmVzb3VyY2VzKGRvbWFpbik7Cisg ICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKIAotICAgIGlmICgg aW9tbXVfaHdkb21fcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWlu KGRvbWFpbikgKQotICAgICAgICB2YWxpZCA9IDA7CisgICAgcmVxX2lkID0g Z2V0X2RtYV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgcGRldi0+c2JkZi5i ZGYpOworICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBpbmdzKGlvbW11 LT5zZWcpW3JlcV9pZF07CisgICAgc3JfZmxhZ3MgPSAoaW9tbXVfaHdkb21f cGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFpbikKKyAg ICAgICAgICAgICAgICA/IDAgOiBTRVRfUk9PVF9WQUxJRCkKKyAgICAgICAg ICAgICAgIHwgKGl2cnNfZGV2LT51bml0eV9tYXAgPyBTRVRfUk9PVF9XSVRI X1VOSVRZX01BUCA6IDApOwogCiAgICAgLyogZ2V0IGRldmljZS10YWJsZSBl bnRyeSAqLwogICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVzdG9yX2lkKGlv bW11LT5zZWcsIFBDSV9CREYyKGJ1cywgZGV2Zm4pKTsKICAgICB0YWJsZSA9 IGlvbW11LT5kZXZfdGFibGUuYnVmZmVyOwogICAgIGR0ZSA9ICZ0YWJsZVty ZXFfaWRdOworICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBpbmdzKGlv bW11LT5zZWcpW3JlcV9pZF07CiAKICAgICBzcGluX2xvY2tfaXJxc2F2ZSgm aW9tbXUtPmxvY2ssIGZsYWdzKTsKIAogICAgIGlmICggIWR0ZS0+diB8fCAh ZHRlLT50diApCiAgICAgewotICAgICAgICBjb25zdCBzdHJ1Y3QgaXZyc19t YXBwaW5ncyAqaXZyc19kZXY7Ci0KICAgICAgICAgLyogYmluZCBEVEUgdG8g ZG9tYWluIHBhZ2UtdGFibGVzICovCi0gICAgICAgIGFtZF9pb21tdV9zZXRf cm9vdF9wYWdlX3RhYmxlKAotICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21h ZGRyKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSwKLSAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUsIHZh bGlkKTsKKyAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90 YWJsZSgKKyAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKGhk LT5hcmNoLmFtZC5yb290X3RhYmxlKSwKKyAgICAgICAgICAgICAgICAgZG9t YWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSwgc3Jf ZmxhZ3MpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgeworICAgICAg ICAgICAgQVNTRVJUKHJjIDwgMCk7CisgICAgICAgICAgICBzcGluX3VubG9j a19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworICAgICAgICAg ICAgcmV0dXJuIHJjOworICAgICAgICB9CiAKICAgICAgICAgLyogVW5kbyB3 aGF0IGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2UoKSBtYXkgaGF2 ZSBkb25lLiAqLwotICAgICAgICBpdnJzX2RldiA9ICZnZXRfaXZyc19tYXBw aW5ncyhpb21tdS0+c2VnKVtyZXFfaWRdOwogICAgICAgICBpZiAoIGR0ZS0+ aXRfcm9vdCApCiAgICAgICAgIHsKICAgICAgICAgICAgIGR0ZS0+aW50X2N0 bCA9IElPTU1VX0RFVl9UQUJMRV9JTlRfQ09OVFJPTF9UUkFOU0xBVEVEOwpA QCAtMTMwLDE3ICsxNzEsNzMgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X3Nl dHVwX2RvbWFpbl9kZXZpYwogICAgICAgICAgICAgZHRlLT5pID0gYXRzX2Vu YWJsZWQ7CiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2RldmljZShpb21t dSwgcmVxX2lkKTsKKyAgICB9CisgICAgZWxzZSBpZiAoIGR0ZS0+cHRfcm9v dCAhPSBtZm5feChwYWdlX3RvX21mbihoZC0+YXJjaC5hbWQucm9vdF90YWJs ZSkpICkKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFN0cmljdGx5 IHNwZWFraW5nIGlmIHRoZSBkZXZpY2UgaXMgdGhlIG9ubHkgb25lIHdpdGgg dGhpcyByZXF1ZXN0b3IKKyAgICAgICAgICogSUQsIGl0IGNvdWxkIGJlIGFs bG93ZWQgdG8gYmUgcmUtYXNzaWduZWQgcmVnYXJkbGVzcyBvZiB1bml0eSBt YXAKKyAgICAgICAgICogcHJlc2VuY2UuICBCdXQgbGV0J3MgZGVhbCB3aXRo IHRoYXQgY2FzZSBvbmx5IGlmIGl0IGlzIGFjdHVhbGx5CisgICAgICAgICAq IGZvdW5kIGluIHRoZSB3aWxkLgorICAgICAgICAgKi8KKyAgICAgICAgaWYg KCByZXFfaWQgIT0gUENJX0JERjIoYnVzLCBkZXZmbikgJiYKKyAgICAgICAg ICAgICAoc3JfZmxhZ3MgJiBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCkgKQor ICAgICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKKyAgICAgICAgZWxzZQor ICAgICAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJs ZSgKKyAgICAgICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkciho ZC0+YXJjaC5hbWQucm9vdF90YWJsZSksCisgICAgICAgICAgICAgICAgICAg ICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2guYW1kLnBhZ2luZ19tb2Rl LCBzcl9mbGFncyk7CisgICAgICAgIGlmICggcmMgPCAwICkKKyAgICAgICAg eworICAgICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUt PmxvY2ssIGZsYWdzKTsKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICAg ICAgfQorICAgICAgICBpZiAoIHJjICYmCisgICAgICAgICAgICAgZG9tYWlu ICE9IHBkZXYtPmRvbWFpbiAmJgorICAgICAgICAgICAgIC8qCisgICAgICAg ICAgICAgICogQnkgbm9uLWF0b21pY2FsbHkgdXBkYXRpbmcgdGhlIERURSdz IGRvbWFpbiBJRCBmaWVsZCBsYXN0LAorICAgICAgICAgICAgICAqIGR1cmlu ZyBhIHNob3J0IHdpbmRvdyBpbiB0aW1lIFRMQiBlbnRyaWVzIHdpdGggdGhl IG9sZCBkb21haW4KKyAgICAgICAgICAgICAgKiBJRCBidXQgdGhlIG5ldyBw YWdlIHRhYmxlcyBtYXkgaGF2ZSBiZWVuIGluc2VydGVkLiAgVGhpcyBjb3Vs ZAorICAgICAgICAgICAgICAqIGFmZmVjdCBJL08gb2Ygb3RoZXIgZGV2aWNl cyB1c2luZyB0aGlzIHNhbWUgKG9sZCkgZG9tYWluIElELgorICAgICAgICAg ICAgICAqIFN1Y2ggdXBkYXRpbmcgdGhlcmVmb3JlIGlzIG5vdCBhIHByb2Js ZW0gaWYgdGhpcyB3YXMgdGhlIG9ubHkKKyAgICAgICAgICAgICAgKiBkZXZp Y2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBvbGQgZG9tYWluIElELiAgRGl2ZXJ0 aW5nIEkvTyBvZiBhbnkKKyAgICAgICAgICAgICAgKiBvZiBhIGR5aW5nIGRv bWFpbidzIGRldmljZXMgdG8gdGhlIHF1YXJhbnRpbmUgcGFnZSB0YWJsZXMg aXMKKyAgICAgICAgICAgICAgKiBpbnRlbmRlZCBhbnl3YXkuCisgICAgICAg ICAgICAgICovCisgICAgICAgICAgICAgIXBkZXYtPmRvbWFpbi0+aXNfZHlp bmcgJiYKKyAgICAgICAgICAgICAoYW55X3BkZXZfYmVoaW5kX2lvbW11KHBk ZXYtPmRvbWFpbiwgcGRldiwgaW9tbXUpIHx8CisgICAgICAgICAgICAgIHBk ZXYtPnBoYW50b21fc3RyaWRlKSApCisgICAgICAgICAgICBwcmludGsoIiAl cHA6IHJlYXNzaWdubWVudCBtYXkgY2F1c2UgJXBkIGRhdGEgY29ycnVwdGlv blxuIiwKKyAgICAgICAgICAgICAgICAgICAmUENJX1NCREYzKHBkZXYtPnNl ZywgYnVzLCBkZXZmbiksIHBkZXYtPmRvbWFpbik7CisKKyAgICAgICAgLyoK KyAgICAgICAgICogQ2hlY2sgcmVtYWluaW5nIHNldHRpbmdzIGFyZSBzdGls bCBpbiBwbGFjZSBmcm9tIGFuIGVhcmxpZXIgY2FsbAorICAgICAgICAgKiBo ZXJlLiBUaGV5J3JlIGFsbCBpbmRlcGVuZGVudCBvZiB0aGUgZG9tYWluLCBz byBzaG91bGQgbm90IGhhdmUKKyAgICAgICAgICogY2hhbmdlZC4KKyAgICAg ICAgICovCisgICAgICAgIGlmICggZHRlLT5pdF9yb290ICkKKyAgICAgICAg ICAgIEFTU0VSVChkdGUtPmludF9jdGwgPT0gSU9NTVVfREVWX1RBQkxFX0lO VF9DT05UUk9MX1RSQU5TTEFURUQpOworICAgICAgICBBU1NFUlQoZHRlLT5p diA9PSBpb21tdV9pbnRyZW1hcCk7CisgICAgICAgIEFTU0VSVChkdGUtPmV4 ID09IGl2cnNfZGV2LT5kdGVfYWxsb3dfZXhjbHVzaW9uKTsKKyAgICAgICAg QVNTRVJUKGR0ZS0+c3lzX21ndCA9PSBNQVNLX0VYVFIoaXZyc19kZXYtPmRl dmljZV9mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQUNQSV9JVkhEX1NZU1RFTV9NR01UKSk7CiAKLSAgICAgICAg QU1EX0lPTU1VX0RFQlVHKCJTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl IGlkID0gJSN4LCB0eXBlID0gJSN4LCAiCi0gICAgICAgICAgICAgICAgICAg ICAgICAicm9vdCB0YWJsZSA9ICUjIlBSSXg2NCIsICIKLSAgICAgICAgICAg ICAgICAgICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAlZFxu IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgcGRldi0+dHlw ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWFkZHIoaGQt PmFyY2guYW1kLnJvb3RfdGFibGUpLAotICAgICAgICAgICAgICAgICAgICAg ICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9k ZSk7CisgICAgICAgIGlmICggcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNlZywg YnVzLCBwZGV2LT5kZXZmbikgJiYKKyAgICAgICAgICAgICBpb21tdV9oYXNf Y2FwKGlvbW11LCBQQ0lfQ0FQX0lPVExCX1NISUZUKSApCisgICAgICAgICAg ICBBU1NFUlQoZHRlLT5pID09IGF0c19lbmFibGVkKTsKKworICAgICAgICBh bWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFfaWQpOwogICAgIH0K IAogICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBm bGFncyk7CiAKKyAgICBBTURfSU9NTVVfREVCVUcoIlNldHVwIEkvTyBwYWdl IHRhYmxlOiBkZXZpY2UgaWQgPSAlI3gsIHR5cGUgPSAlI3gsICIKKyAgICAg ICAgICAgICAgICAgICAgInJvb3QgdGFibGUgPSAlIyJQUkl4NjQiLCAiCisg ICAgICAgICAgICAgICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUg PSAlZFxuIiwKKyAgICAgICAgICAgICAgICAgICAgcmVxX2lkLCBwZGV2LT50 eXBlLAorICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21hZGRyKGhkLT5h cmNoLmFtZC5yb290X3RhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgZG9t YWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSk7CisK ICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAKICAgICBpZiAoIHBj aV9hdHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1cywgcGRldi0+ZGV2Zm4pICYm CkBAIC0xNTEsNiArMjQ4LDggQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X3Nl dHVwX2RvbWFpbl9kZXZpYwogCiAgICAgICAgIGFtZF9pb21tdV9mbHVzaF9p b3RsYihkZXZmbiwgcGRldiwgSU5WX0lPTU1VX0FMTF9QQUdFU19BRERSRVNT LCAwKTsKICAgICB9CisKKyAgICByZXR1cm4gMDsKIH0KIAogaW50IF9faW5p dCBhY3BpX2l2cnNfaW5pdCh2b2lkKQpAQCAtMjE2LDE4ICszMTUsNiBAQCBp bnQgYW1kX2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRvbWFpbiAqCiAgICAg cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFsbG9j YXRlX2RvbWFpbl9yZXNvdXJjZXMoc3RydWN0IGRvbWFpbiAqZCkKLXsKLSAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKLSAg ICBpbnQgcmM7Ci0KLSAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdf bG9jayk7Ci0gICAgcmMgPSBhbWRfaW9tbXVfYWxsb2Nfcm9vdChkKTsKLSAg ICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLQotICAg IHJldHVybiByYzsKLX0KLQogaW50IF9fcmVhZF9tb3N0bHkgYW1kX2lvbW11 X21pbl9wYWdpbmdfbW9kZSA9IDE7CiAKIHN0YXRpYyBpbnQgYW1kX2lvbW11 X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCkBAIC0zNDAsNyArNDI3 LDE1IEBAIHN0YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21h aW4KICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAgICAgfQogCi0gICAgYW1k X2lvbW11X2Rpc2FibGVfZG9tYWluX2RldmljZShzb3VyY2UsIGlvbW11LCBk ZXZmbiwgcGRldik7CisgICAgcmMgPSBhbWRfaW9tbXVfc2V0dXBfZG9tYWlu X2RldmljZSh0YXJnZXQsIGlvbW11LCBkZXZmbiwgcGRldik7CisgICAgaWYg KCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIGlmICggZGV2Zm4g PT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCApCisg ICAgeworICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAm dGFyZ2V0LT5wZGV2X2xpc3QpOworICAgICAgICBwZGV2LT5kb21haW4gPSB0 YXJnZXQ7CisgICAgfQogCiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNl IGJlbG9uZ3MgdG8gdGhlIGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBh IHVuaXR5IG1hcHBpbmcsCkBAIC0zNTYsMjYgKzQ1MSw5IEBAIHN0YXRpYyBp bnQgcmVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4KICAgICAgICAgICAg IHJldHVybiByYzsKICAgICB9CiAKLSAgICBpZiAoIGRldmZuID09IHBkZXYt PmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQotICAgIHsKLSAg ICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5fbGlzdCwgJmRvbV9pby0+ cGRldl9saXN0KTsKLSAgICAgICAgcGRldi0+ZG9tYWluID0gZG9tX2lvOwot ICAgIH0KLQotICAgIHJjID0gYWxsb2NhdGVfZG9tYWluX3Jlc291cmNlcyh0 YXJnZXQpOwotICAgIGlmICggcmMgKQotICAgICAgICByZXR1cm4gcmM7Ci0K LSAgICBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSh0YXJnZXQsIGlv bW11LCBkZXZmbiwgcGRldik7CiAgICAgQU1EX0lPTU1VX0RFQlVHKCJSZS1h c3NpZ24gJXBwIGZyb20gZG9tJWQgdG8gZG9tJWRcbiIsCiAgICAgICAgICAg ICAgICAgICAgICZwZGV2LT5zYmRmLCBzb3VyY2UtPmRvbWFpbl9pZCwgdGFy Z2V0LT5kb21haW5faWQpOwogCi0gICAgaWYgKCBkZXZmbiA9PSBwZGV2LT5k ZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gdGFyZ2V0ICkKLSAgICB7Ci0gICAg ICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZ0YXJnZXQtPnBk ZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYtPmRvbWFpbiA9IHRhcmdldDsKLSAg ICB9Ci0KICAgICByZXR1cm4gMDsKIH0KIApAQCAtNDkwLDggKzU2OCw3IEBA IHN0YXRpYyBpbnQgYW1kX2lvbW11X2FkZF9kZXZpY2UodTggZGV2Zm4KICAg ICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZs YWdzKTsKICAgICB9CiAKLSAgICBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2Rl dmljZShwZGV2LT5kb21haW4sIGlvbW11LCBkZXZmbiwgcGRldik7Ci0gICAg cmV0dXJuIDA7CisgICAgcmV0dXJuIGFtZF9pb21tdV9zZXR1cF9kb21haW5f ZGV2aWNlKHBkZXYtPmRvbWFpbiwgaW9tbXUsIGRldmZuLCBwZGV2KTsKIH0K IAogc3RhdGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZXZm biwgc3RydWN0IHBjaV9kZXYgKnBkZXYpCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-07.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-07.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSSkKCkFycmFuZ2UgZm9yIGRvbWFpbiBJRCBhbmQg cGFnZSB0YWJsZSByb290IHRvIGJlIHBhc3NlZCBhcm91bmQsIHRoZSBsYXR0 ZXIgaW4KcGFydGljdWxhciB0byBkb21haW5fcGdkX21hZGRyKCkgc3VjaCB0 aGF0IHRha2luZyBpdCBmcm9tIHRoZSBwZXItZG9tYWluCmZpZWxkcyBjYW4g YmUgb3ZlcnJpZGRlbi4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9l eHRlcm4uaApAQCAtODUsOSArODUsMTAgQEAgdm9pZCAqbWFwX3Z0ZF9kb21h aW5fcGFnZSh1NjQgbWFkZHIpOwogdm9pZCB1bm1hcF92dGRfZG9tYWluX3Bh Z2UoY29uc3Qgdm9pZCAqdmEpOwogaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IHZ0ZF9pb21t dSAqaW9tbXUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2ln bmVkIGludCBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZG9taWRfdCBkb21pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHBnZF9t YWRkciwgdW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRf aW9tbXUgKmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 OCBidXMsIHU4IGRldmZuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQp OwogaW50IGludGVsX2lvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5 KGlvbW11X2dyZG1fdCAqZnVuYywgdm9pZCAqY3R4dCk7CiAKIHVuc2lnbmVk IGludCBpb19hcGljX3JlYWRfcmVtYXBfcnRlKHVuc2lnbmVkIGludCBhcGlj LCB1bnNpZ25lZCBpbnQgcmVnKTsKQEAgLTEwNSw3ICsxMDYsOCBAQCB2b2lk IHBsYXRmb3JtX3F1aXJrc19pbml0KHZvaWQpOwogdm9pZCB2dGRfb3BzX3By ZWFtYmxlX3F1aXJrKHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KTsKIHZvaWQg dnRkX29wc19wb3N0YW1ibGVfcXVpcmsoc3RydWN0IHZ0ZF9pb21tdSAqaW9t bXUpOwogaW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBk b21haW4gKmRvbWFpbiwgdWludDhfdCBidXMsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1v ZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg ZGV2Zm4sIGRvbWlkX3QgZG9taWQsIHBhZGRyX3QgcGdkX21hZGRyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtb2Rl KTsKIHZvaWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAq KTsKIHZvaWQgcXVpcmtfaW9tbXVfY2FwcyhzdHJ1Y3QgdnRkX2lvbW11ICpp b21tdSk7CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTM1NSwxNSArMzU1LDE3IEBAIHN0YXRpYyB1NjQgYWRkcl90b19k bWFfcGFnZV9tYWRkcihzdHJ1Y3QKICAgICByZXR1cm4gcHRlX21hZGRyOwog fQogCi1zdGF0aWMgdWludDY0X3QgZG9tYWluX3BnZF9tYWRkcihzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgbnJfcHRfbGV2ZWxzKQorc3RhdGlj IHBhZGRyX3QgZG9tYWluX3BnZF9tYWRkcihzdHJ1Y3QgZG9tYWluICpkLCBw YWRkcl90IHBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG5yX3B0X2xldmVscykKIHsKICAgICBzdHJ1 Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKLSAgICB1aW50 NjRfdCBwZ2RfbWFkZHI7CiAgICAgdW5zaWduZWQgaW50IGFnYXc7CiAKICAg ICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhkLT5hcmNoLm1hcHBpbmdfbG9j aykpOwogCi0gICAgaWYgKCBpb21tdV91c2VfaGFwX3B0KGQpICkKKyAgICBp ZiAoIHBnZF9tYWRkciApCisgICAgICAgIC8qIG5vdGhpbmcgKi87CisgICAg ZWxzZSBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgKQogICAgIHsKICAgICAg ICAgcGFnZXRhYmxlX3QgcGd0ID0gcDJtX2dldF9wYWdldGFibGUocDJtX2dl dF9ob3N0cDJtKGQpKTsKIApAQCAtMTM3NiwxMiArMTM3OCwxMiBAQCBpbnQg ZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgc3RydWN0IGRvbWFp biAqZG9tYWluLAogICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAogICAg IHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwKLSAgICB1bnNpZ25lZCBpbnQgbW9kZSkKKyAgICBkb21p ZF90IGRvbWlkLCBwYWRkcl90IHBnZF9tYWRkciwgdW5zaWduZWQgaW50IG1v ZGUpCiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZG9tYWluKTsKICAgICBzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4 dCwgKmNvbnRleHRfZW50cmllcywgbGN0eHQ7CiAgICAgX191aW50MTI4X3Qg b2xkOwotICAgIHU2NCBtYWRkciwgcGdkX21hZGRyOworICAgIHVpbnQ2NF90 IG1hZGRyOwogICAgIHVpbnQxNl90IHNlZyA9IGlvbW11LT5kcmhkLT5zZWdt ZW50LCBwcmV2X2RpZCA9IDA7CiAgICAgc3RydWN0IGRvbWFpbiAqcHJldl9k b20gPSBOVUxMOwogICAgIGludCByYywgcmV0OwpAQCAtMTQyMSwxMCArMTQy MywxMiBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAg fQogICAgIGVsc2UKICAgICB7CisgICAgICAgIHBhZGRyX3Qgcm9vdDsKKwog ICAgICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAK LSAgICAgICAgcGdkX21hZGRyID0gZG9tYWluX3BnZF9tYWRkcihkb21haW4s IGlvbW11LT5ucl9wdF9sZXZlbHMpOwotICAgICAgICBpZiAoICFwZ2RfbWFk ZHIgKQorICAgICAgICByb290ID0gZG9tYWluX3BnZF9tYWRkcihkb21haW4s IHBnZF9tYWRkciwgaW9tbXUtPm5yX3B0X2xldmVscyk7CisgICAgICAgIGlm ICggIXJvb3QgKQogICAgICAgICB7CiAgICAgICAgICAgICBzcGluX3VubG9j aygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICAgICAgICAgIHNwaW5f dW5sb2NrKCZpb21tdS0+bG9jayk7CkBAIC0xNDM0LDcgKzE0MzgsNyBAQCBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgICAgICAgICBy ZXR1cm4gLUVOT01FTTsKICAgICAgICAgfQogCi0gICAgICAgIGNvbnRleHRf c2V0X2FkZHJlc3Nfcm9vdChsY3R4dCwgcGdkX21hZGRyKTsKKyAgICAgICAg Y29udGV4dF9zZXRfYWRkcmVzc19yb290KGxjdHh0LCByb290KTsKICAgICAg ICAgaWYgKCBhdHNfZW5hYmxlZCAmJiBlY2FwX2Rldl9pb3RsYihpb21tdS0+ ZWNhcCkgKQogICAgICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25f dHlwZShsY3R4dCwgQ09OVEVYVF9UVF9ERVZfSU9UTEIpOwogICAgICAgICBl bHNlCkBAIC0xNTUwLDE1ICsxNTU0LDIxIEBAIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZSgKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29u dGV4dF9lbnRyaWVzKTsKIAogICAgIGlmICggIXNlZyAmJiAhcmMgKQotICAg ICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBt b2RlKTsKKyAgICAgICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVz LCBkZXZmbiwgZG9taWQsIHBnZF9tYWRkciwgbW9kZSk7CiAKICAgICBpZiAo IHJjICkKICAgICB7CiAgICAgICAgIGlmICggIXByZXZfZG9tICkKLSAgICAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4s IGlvbW11LCBidXMsIGRldmZuKTsKKyAgICAgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZu LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgZWxzZSBpZiAoIHByZXZf ZG9tICE9IGRvbWFpbiApIC8qIEF2b2lkIGluZmluaXRlIHJlY3Vyc2lvbi4g Ki8KKyAgICAgICAgeworICAgICAgICAgICAgaGQgPSBkb21faW9tbXUocHJl dl9kb20pOwogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFw cGluZ19vbmUocHJldl9kb20sIGlvbW11LCBidXMsIGRldmZuLCBwZGV2LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9tYWluLT5kb21haW5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBoZC0+YXJjaC52dGQucGdkX21hZGRyLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bW9kZSAmIE1BUF9XSVRIX1JNUlIpIDwgMDsKKyAgICAgICAgfQogICAgICAg ICBlbHNlCiAgICAgICAgICAgICByZXQgPSAxOwogCkBAIC0xNTgwLDYgKzE1 OTAsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3Ry dWN0CiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwogICAg IGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKKyAgICBwYWRk cl90IHBnZF9tYWRkciA9IGRvbV9pb21tdShkb21haW4pLT5hcmNoLnZ0ZC5w Z2RfbWFkZHI7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWduZWQgaW50 IGksIG1vZGUgPSAwOwogICAgIHVpbnQxNl90IHNlZyA9IHBkZXYtPnNlZywg YmRmOwpAQCAtMTY0Myw3ICsxNjU0LDggQEAgc3RhdGljIGludCBkb21haW5f Y29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAgICAgcHJpbnRrKFZU RFBSRUZJWCAiJXBkOlBDSWU6IG1hcCAlcHBcbiIsCiAgICAgICAgICAgICAg ICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwog ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21h aW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBtb2RlKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgZG9t YWluLT5kb21haW5faWQsIHBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CiAgICAgICAgIGlmICgg cmV0ID4gMCApCiAgICAgICAgICAgICByZXQgPSAwOwogICAgICAgICBpZiAo ICFyZXQgJiYgZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgYXRzX2RldmljZShw ZGV2LCBkcmhkKSA+IDAgKQpAQCAtMTY1Nyw3ICsxNjY5LDggQEAgc3RhdGlj IGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAg ICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4p KTsKIAogICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29u ZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBtb2RlKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRl diwgZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRkciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CiAgICAgICAg IGlmICggcmV0IDwgMCApCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg cHJldl9wcmVzZW50ID0gcmV0OwpAQCAtMTY4NSw3ICsxNjk4LDggQEAgc3Rh dGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAg ICAgKi8KICAgICAgICAgaWYgKCByZXQgPj0gMCApCiAgICAgICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQt PmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgbW9kZSk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBkb21h aW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSk7CiAKICAgICAgICAg LyoKICAgICAgICAgICogRGV2aWNlcyBiZWhpbmQgUENJZS10by1QQ0kvUENJ eCBicmlkZ2UgbWF5IGdlbmVyYXRlIGRpZmZlcmVudApAQCAtMTcwMCw3ICsx NzE0LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdAogICAgICAgICBpZiAoICFyZXQgJiYgcGRldl90eXBlKHNlZywgYnVz LCBkZXZmbikgPT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJREdFICYmCiAgICAg ICAgICAgICAgKHNlY2J1cyAhPSBwZGV2LT5idXMgfHwgcGRldi0+ZGV2Zm4g IT0gMCkgKQogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFw cGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgc2VjYnVzLCAwLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLCBkb21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgbW9kZSk7CiAKICAgICAgICAgaWYgKCByZXQgKQogICAgICAgICB7CkBA IC0xNzI4LDcgKzE3NDMsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X21hcHBpbmcoc3RydWN0CiBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KAogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICBzdHJ1Y3QgdnRk X2lvbW11ICppb21tdSwKLSAgICB1OCBidXMsIHU4IGRldmZuKQorICAgIHVp bnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBkb21pZF90IGRvbWlkKQogewog ICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4dF9l bnRyaWVzOwogICAgIHU2NCBtYWRkcjsKQEAgLTE3ODYsNyArMTgwMSw3IEBA IGludCBkb21haW5fY29udGV4dF91bm1hcF9vbmUoCiAgICAgdW5tYXBfdnRk X2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFp b21tdS0+ZHJoZC0+c2VnbWVudCAmJiAhcmMgKQotICAgICAgICByYyA9IG1l X3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBVTk1BUF9NRV9QSEFO VE9NX0ZVTkMpOworICAgICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9tYWlu LCBidXMsIGRldmZuLCBkb21pZCwgMCwgVU5NQVBfTUVfUEhBTlRPTV9GVU5D KTsKIAogICAgIGlmICggcmMgJiYgIWlzX2hhcmR3YXJlX2RvbWFpbihkb21h aW4pICYmIGRvbWFpbiAhPSBkb21faW8gKQogICAgIHsKQEAgLTE4MzcsNyAr MTg1Miw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3Ry dWN0IGQKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAg ICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJZTogdW5tYXAgJXBwXG4iLAog ICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1 cywgZGV2Zm4pKTsKLSAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwg YnVzLCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgaWYgKCAhcmV0 ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwg ZHJoZCkgPiAwICkKICAgICAgICAgICAgIGRpc2FibGVfYXRzX2RldmljZShw ZGV2KTsKIApAQCAtMTg0Nyw3ICsxODYzLDggQEAgc3RhdGljIGludCBkb21h aW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICBpZiAoIGlvbW11 X2RlYnVnICkKICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiVwZDpQ Q0k6IHVubWFwICVwcFxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4s ICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7Ci0gICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMs IGRldmZuKTsKKyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBf b25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7 CiAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgIGJyZWFrOwogCkBA IC0xODczLDEyICsxODkwLDE1IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfdW5tYXAoc3RydWN0IGQKICAgICAgICAgLyogUENJZSB0byBQQ0kvUENJ eCBicmlkZ2UgKi8KICAgICAgICAgaWYgKCBwZGV2X3R5cGUoc2VnLCB0bXBf YnVzLCB0bXBfZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JSSURHRSAp CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4p OworICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KGRvbWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCk7CiAgICAgICAgICAgICBpZiAoICFyZXQgKQotICAgICAgICAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4s IGlvbW11LCBzZWNidXMsIDApOworICAgICAgICAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBzZWNidXMs IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgfQogICAgICAg ICBlbHNlIC8qIExlZ2FjeSBQQ0kgYnJpZGdlICovCi0gICAgICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwg dG1wX2J1cywgdG1wX2RldmZuKTsKKyAgICAgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0 bXBfZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwogCiAgICAgICAgIGJyZWFr OwogCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3Mu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMK QEAgLTM0NSw2ICszNDUsOCBAQCB2b2lkIF9faW5pdCBwbGF0Zm9ybV9xdWly a3NfaW5pdCh2b2lkKQogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBtYXBf bWVfcGhhbnRvbV9mdW5jdGlvbihzdHJ1Y3QgZG9tYWluICpkb21haW4sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh ZGRyX3QgcGdkX21hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAg ICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwpAQCAtMzU4LDE2ICsz NjAsMTcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgbWFwX21lX3BoYW50 b21fZgogICAgIC8qIG1hcCBvciB1bm1hcCBNRSBwaGFudG9tIGZ1bmN0aW9u ICovCiAgICAgaWYgKCAhKG1vZGUgJiBVTk1BUF9NRV9QSEFOVE9NX0ZVTkMp ICkKICAgICAgICAgcmMgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShk b21haW4sIGRyaGQtPmlvbW11LCAwLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpLCBOVUxMLCBt b2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQQ0lfREVWRk4oZGV2LCA3KSwgTlVMTCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwgcGdkX21hZGRyLCBtb2Rl KTsKICAgICBlbHNlCiAgICAgICAgIHJjID0gZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIDAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJX0RF VkZOKGRldiwgNyksIGRvbWlkKTsKIAogICAgIHJldHVybiByYzsKIH0KIAog aW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1aW50 OF90IGJ1cywgdWludDhfdCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBtb2RlKQorICAgICAgICAgICAgICAgICAgZG9taWRfdCBk b21pZCwgcGFkZHJfdCBwZ2RfbWFkZHIsIHVuc2lnbmVkIGludCBtb2RlKQog ewogICAgIHUzMiBpZDsKICAgICBpbnQgcmMgPSAwOwpAQCAtMzkxLDcgKzM5 NCw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFp biwKICAgICAgICAgICAgIGNhc2UgMHg0MjNiODA4NjoKICAgICAgICAgICAg IGNhc2UgMHg0MjNjODA4NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjNkODA4 NjoKLSAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0 aW9uKGRvbWFpbiwgMywgbW9kZSk7CisgICAgICAgICAgICAgICAgcmMgPSBt YXBfbWVfcGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDMsIGRvbWlkLCBwZ2Rf bWFkZHIsIG1vZGUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg ICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQx Nyw3ICs0MjAsNyBAQCBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1Y3QgZG9tYWlu ICpkb21haW4sCiAgICAgICAgICAgICBjYXNlIDB4NDIzODgwODY6ICAgICAg ICAvKiBQdW1hIFBlYWsgKi8KICAgICAgICAgICAgIGNhc2UgMHg0MjJiODA4 NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjJjODA4NjoKLSAgICAgICAgICAg ICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMjIs IG1vZGUpOworICAgICAgICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21f ZnVuY3Rpb24oZG9tYWluLCAyMiwgZG9taWQsIHBnZF9tYWRkciwgbW9kZSk7 CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0 OgogICAgICAgICAgICAgICAgIGJyZWFrOwo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-08.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-08.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSUkpCgpSZXBsYWNlIHRoZSBwYXNzaW5nIG9mIHN0 cnVjdCBkb21haW4gKiBieSBkb21pZF90IGluIHByZXBhcmF0aW9uIG9mCnBl ci1kZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBhbHNvIHJlcXVpcmlu ZyBwZXItZGV2aWNlIHBzZXVkbwpkb21haW4gSURzLCB3aGljaCBhcmVuJ3Qg Z29pbmcgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFueSBzdHJ1Y3QgZG9tYWlu Cmluc3RhbmNlcy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkIChl eGNlcHQgZm9yIHNsaWdodGx5IGFkanVzdGVkIGxvZyBtZXNzYWdlCnRleHQp LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTU5LDggKzU5LDggQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0 IHZ0ZF9mYXVsdF90YXNrbGV0Owogc3RhdGljIGludCBzZXR1cF9od2RvbV9k ZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICopOwogc3RhdGljIHZv aWQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKTsKIAotc3Rh dGljIGludCBkb21haW5faW9tbXVfZG9taWQoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQorc3RhdGljIGludCBnZXRfaW9tbXVfZGlkKGRvbWlkX3Qg ZG9taWQsIGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAorICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgd2FybikKIHsKICAgICB1bnNpZ25l ZCBsb25nIG5yX2RvbSwgaTsKIApAQCAtNjgsMTYgKzY4LDE2IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICAgICBpID0g ZmluZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsK ICAgICB3aGlsZSAoIGkgPCBucl9kb20gKQogICAgIHsKLSAgICAgICAgaWYg KCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGQtPmRvbWFpbl9pZCApCisgICAg ICAgIGlmICggaW9tbXUtPmRvbWlkX21hcFtpXSA9PSBkb21pZCApCiAgICAg ICAgICAgICByZXR1cm4gaTsKIAogICAgICAgICBpID0gZmluZF9uZXh0X2Jp dChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20sIGkrMSk7CiAgICAgfQog Ci0gICAgaWYgKCAhZC0+aXNfZHlpbmcgKQorICAgIGlmICggd2FybiApCiAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCi0gICAgICAg ICAgICAgICAgIkNhbm5vdCBnZXQgdmFsaWQgaW9tbXUgJXUgZG9taWQ6ICVw ZFxuIiwKLSAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIGQpOworICAg ICAgICAgICAgICAgICJObyB2YWxpZCBpb21tdSAldSBkb21pZCBmb3IgRG9t JWRcbiIsCisgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCBkb21pZCk7 CiAKICAgICByZXR1cm4gLTE7CiB9CkBAIC04NSw4ICs4NSw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICNkZWZpbmUg RElEX0ZJRUxEX1dJRFRIIDE2CiAjZGVmaW5lIERJRF9ISUdIX09GRlNFVCA4 CiBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1Y3QgY29u dGV4dF9lbnRyeSAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQs IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVkIGxv bmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CkBAIC05Nyw3ICs5 Niw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChpb21tdS0+ZG9taWRfYml0bWFw LCBucl9kb20pOwogICAgIHdoaWxlICggaSA8IG5yX2RvbSApCiAgICAgewot ICAgICAgICBpZiAoIGlvbW11LT5kb21pZF9tYXBbaV0gPT0gZC0+ZG9tYWlu X2lkICkKKyAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGRv bWlkICkKICAgICAgICAgewogICAgICAgICAgICAgZm91bmQgPSAxOwogICAg ICAgICAgICAgYnJlYWs7CkBAIC0xMTMsNyArMTEyLDcgQEAgc3RhdGljIGlu dCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgICAgICAgICBk cHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiSU9NTVU6IG5vIGZyZWUg ZG9tYWluIGlkc1xuIik7CiAgICAgICAgICAgICByZXR1cm4gLUVGQVVMVDsK ICAgICAgICAgfQotICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZC0+ ZG9tYWluX2lkOworICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZG9t aWQ7CiAgICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0 bWFwKTsKQEAgLTEyMiw5ICsxMjEsOSBAQCBzdGF0aWMgaW50IGNvbnRleHRf c2V0X2RvbWFpbl9pZChzdHJ1Y3QKICAgICByZXR1cm4gMDsKIH0KIAotc3Rh dGljIHZvaWQgY2xlYW51cF9kb21pZF9tYXAoc3RydWN0IGRvbWFpbiAqZG9t YWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKK3N0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKGRvbWlkX3QgZG9taWQsIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQogewotICAgIGludCBpb21tdV9kb21pZCA9IGRvbWFpbl9p b21tdV9kb21pZChkb21haW4sIGlvbW11KTsKKyAgICBpbnQgaW9tbXVfZG9t aWQgPSBnZXRfaW9tbXVfZGlkKGRvbWlkLCBpb21tdSwgZmFsc2UpOwogCiAg ICAgaWYgKCBpb21tdV9kb21pZCA+PSAwICkKICAgICB7CkBAIC0xODAsNyAr MTc5LDcgQEAgc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAo c3RydQogICAgIGlmICggIWZvdW5kICkKICAgICB7CiAgICAgICAgIGNsZWFy X2JpdChpb21tdS0+aW5kZXgsICZkb21faW9tbXUoZCktPmFyY2gudnRkLmlv bW11X2JpdG1hcCk7Ci0gICAgICAgIGNsZWFudXBfZG9taWRfbWFwKGQsIGlv bW11KTsKKyAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZC0+ZG9tYWluX2lk LCBpb21tdSk7CiAgICAgfQogfQogCkBAIC02ODcsNyArNjg2LDcgQEAgc3Rh dGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bAogICAgICAg ICAgICAgY29udGludWU7CiAKICAgICAgICAgZmx1c2hfZGV2X2lvdGxiID0g ISFmaW5kX2F0c19kZXZfZHJoZChpb21tdSk7Ci0gICAgICAgIGlvbW11X2Rv bWlkPSBkb21haW5faW9tbXVfZG9taWQoZCwgaW9tbXUpOworICAgICAgICBp b21tdV9kb21pZCA9IGdldF9pb21tdV9kaWQoZC0+ZG9tYWluX2lkLCBpb21t dSwgIWQtPmlzX2R5aW5nKTsKICAgICAgICAgaWYgKCBpb21tdV9kb21pZCA9 PSAtMSApCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTQ0Nyw3ICsx NDQ2LDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAg ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAg ICB9CiAKLSAgICBpZiAoIGNvbnRleHRfc2V0X2RvbWFpbl9pZCgmbGN0eHQs IGRvbWFpbiwgaW9tbXUpICkKKyAgICBpZiAoIGNvbnRleHRfc2V0X2RvbWFp bl9pZCgmbGN0eHQsIGRvbWlkLCBpb21tdSkgKQogICAgIHsKICAgICB1bmxv Y2s6CiAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CkBAIC0x NzY4LDcgKzE3NjcsNyBAQCBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KAogICAgIGNvbnRleHRfY2xlYXJfZW50cnkoKmNvbnRleHQpOwogICAgIGlv bW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6ZW9mKHN0cnVjdCBjb250ZXh0 X2VudHJ5KSk7CiAKLSAgICBpb21tdV9kb21pZD0gZG9tYWluX2lvbW11X2Rv bWlkKGRvbWFpbiwgaW9tbXUpOworICAgIGlvbW11X2RvbWlkID0gZ2V0X2lv bW11X2RpZChkb21pZCwgaW9tbXUsICFkb21haW4tPmlzX2R5aW5nKTsKICAg ICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkKICAgICB7CiAgICAgICAgIHNw aW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CkBAIC0xOTM4LDcgKzE5MzcsNyBA QCBzdGF0aWMgdm9pZCBpb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0CiAg ICAgQVNTRVJUKCFoZC0+YXJjaC52dGQucGdkX21hZGRyKTsKIAogICAgIGZv cl9lYWNoX2RyaGRfdW5pdCAoIGRyaGQgKQotICAgICAgICBjbGVhbnVwX2Rv bWlkX21hcChkLCBkcmhkLT5pb21tdSk7CisgICAgICAgIGNsZWFudXBfZG9t aWRfbWFwKGQtPmRvbWFpbl9pZCwgZHJoZC0+aW9tbXUpOwogfQogCiBzdGF0 aWMgaW50IF9fbXVzdF9jaGVjayBpbnRlbF9pb21tdV9tYXBfcGFnZShzdHJ1 Y3QgZG9tYWluICpkLCBkZm5fdCBkZm4sCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-09.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-09.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IG1haW50YWluIGEgcGVyLWRldmljZSBwc2V1ZG8gZG9t YWluIElECgpJbiBvcmRlciB0byBzdWJzZXF1ZW50bHkgZW5hYmxlIHBlci1k ZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcywgd2UnbGwKbmVlZCBkb21h aW4tSUQtbGlrZSBpZGVudGlmaWVycyB0byBiZSBpbnNlcnRlZCBpbiB0aGUg cmVzcGVjdGl2ZSBkZXZpY2UKKEFNRCkgb3IgY29udGV4dCAoSW50ZWwpIHRh YmxlIGVudHJpZXMgYWxvbmdzaWRlIHRoZSBwZXItZGV2aWNlIHBhZ2UKdGFi bGUgcm9vdCBhZGRyZXNzZXMuCgpNYWtlIHVzZSBvZiAicmVhbCIgZG9tYWlu IElEcyBvY2N1cHlpbmcgb25seSBoYWxmIG9mIHRoZSB2YWx1ZSByYW5nZQpj b3ZlcmFibGUgYnkgZG9taWRfdC4KCk5vdGUgdGhhdCBpbiBWVC1kJ3MgaW9t bXVfYWxsb2MoKSBJIGRpZG4ndCB3YW50IHRvIGludHJvZHVjZSBuZXcgbWVt b3J5CmxlYWtzIGluIGNhc2Ugb2YgZXJyb3IsIGJ1dCBleGlzdGluZyBvbmVz IGRvbid0IGdldCBwbHVnZ2VkIC0gdGhhdCdsbCBiZQp0aGUgc3ViamVjdCBv ZiBhIGxhdGVyIGNoYW5nZS4KClRoZSBWVC1kIGNoYW5nZXMgYXJlIHNsaWdo dGx5IGFzeW1tZXRyaWMsIGJ1dCB0aGlzIHdheSB3ZSBjYW4gYXZvaWQKYXNz aWduaW5nIHBzZXVkbyBkb21haW4gSURzIHRvIGRldmljZXMgd2hpY2ggd291 bGQgbmV2ZXIgYmUgbWFwcGVkIHdoaWxlCnN0aWxsIGF2b2lkaW5nIHRvIGFk ZCBhIG5ldyBwYXJhbWV0ZXIgdG8gZG9tYWluX2NvbnRleHRfdW5tYXAoKS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpS ZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTE0Miw2ICsx NDIsMTAgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9k ZXNjCiAgICAgICAgIGlvbW11X3ZjYWxsKG9wcywgc3luY19jYWNoZSwgYWRk ciwgc2l6ZSk7ICAgICAgIFwKIH0pCiAKK3Vuc2lnbmVkIGxvbmcgKmlvbW11 X2luaXRfZG9taWQodm9pZCk7Citkb21pZF90IGlvbW11X2FsbG9jX2RvbWlk KHVuc2lnbmVkIGxvbmcgKm1hcCk7Cit2b2lkIGlvbW11X2ZyZWVfZG9taWQo ZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyAqbWFwKTsKKwogaW50IF9f bXVzdF9jaGVjayBpb21tdV9mcmVlX3BndGFibGVzKHN0cnVjdCBkb21haW4g KmQpOwogc3RydWN0IGRvbWFpbl9pb21tdTsKIHN0cnVjdCBwYWdlX2luZm8g Kl9fbXVzdF9jaGVjayBpb21tdV9hbGxvY19wZ3RhYmxlKHN0cnVjdCBkb21h aW5faW9tbXUgKmhkKTsKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wY2ku aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xNSw2ICsx NSwxMiBAQAogCiBzdHJ1Y3QgYXJjaF9wY2lfZGV2IHsKICAgICB2bWFza190 IHVzZWRfdmVjdG9yczsKKyAgICAvKgorICAgICAqIFRoZXNlIGZpZWxkcyBh cmUgKGRlKWluaXRpYWxpemVkIHVuZGVyIHBjaWRldnMtbG9jay4gT3RoZXIg dXNlcyBvZgorICAgICAqIHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6 YXRpb24gYW5kIGhlbmNlIGRvbid0IHN0cmljdGx5IG5lZWQgYW55CisgICAg ICogbG9ja2luZy4KKyAgICAgKi8KKyAgICBkb21pZF90IHBzZXVkb19kb21p ZDsKIH07CiAKIGludCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWdu ZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJkZiwKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvYW1kL2lvbW11LmgKQEAgLTk2LDYgKzk2LDcgQEAgc3Ry dWN0IGFtZF9pb21tdSB7CiAgICAgc3RydWN0IHJpbmdfYnVmZmVyIGNtZF9i dWZmZXI7CiAgICAgc3RydWN0IHJpbmdfYnVmZmVyIGV2ZW50X2xvZzsKICAg ICBzdHJ1Y3QgcmluZ19idWZmZXIgcHByX2xvZzsKKyAgICB1bnNpZ25lZCBs b25nICpkb21pZF9tYXA7CiAKICAgICBpbnQgZXhjbHVzaW9uX2VuYWJsZTsK ICAgICBpbnQgZXhjbHVzaW9uX2FsbG93X2FsbDsKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYwpAQCAtMTgw LDYgKzE4MCwxMSBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9kZXRlY3Rfb25l X2FjcGkoCiAgICAgaWYgKCBydCApCiAgICAgICAgIGdvdG8gb3V0OwogCisg ICAgaW9tbXUtPmRvbWlkX21hcCA9IGlvbW11X2luaXRfZG9taWQoKTsKKyAg ICBydCA9IC1FTk9NRU07CisgICAgaWYgKCAhaW9tbXUtPmRvbWlkX21hcCAp CisgICAgICAgIGdvdG8gb3V0OworCiAgICAgcnQgPSBwY2lfcm9fZGV2aWNl KGlvbW11LT5zZWcsIGJ1cywgUENJX0RFVkZOKGRldiwgZnVuYykpOwogICAg IGlmICggcnQgKQogICAgICAgICBwcmludGsoWEVOTE9HX0VSUiAiQ291bGQg bm90IG1hcmsgY29uZmlnIHNwYWNlIG9mICVwcCByZWFkLW9ubHkgKCVkKVxu IiwKQEAgLTE5MCw3ICsxOTUsMTAgQEAgaW50IF9faW5pdCBhbWRfaW9tbXVf ZGV0ZWN0X29uZV9hY3BpKAogCiAgb3V0OgogICAgIGlmICggcnQgKQorICAg IHsKKyAgICAgICAgeGZyZWUoaW9tbXUtPmRvbWlkX21hcCk7CiAgICAgICAg IHhmcmVlKGlvbW11KTsKKyAgICB9CiAKICAgICByZXR1cm4gcnQ7CiB9Ci0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11 LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRf aW9tbXUuYwpAQCAtNTA4LDYgKzUwOCw4IEBAIHN0YXRpYyBpbnQgYW1kX2lv bW11X2FkZF9kZXZpY2UodTggZGV2Zm4KICAgICBzdHJ1Y3QgYW1kX2lvbW11 ICppb21tdTsKICAgICB1MTYgYmRmOwogICAgIHN0cnVjdCBpdnJzX21hcHBp bmdzICppdnJzX21hcHBpbmdzOworICAgIGJvb2wgZnJlc2hfZG9taWQgPSBm YWxzZTsKKyAgICBpbnQgcmV0OwogCiAgICAgaWYgKCAhcGRldi0+ZG9tYWlu ICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CkBAIC01NjgsNyArNTcwLDIy IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X2FkZF9kZXZpY2UodTggZGV2Zm4K ICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ss IGZsYWdzKTsKICAgICB9CiAKLSAgICByZXR1cm4gYW1kX2lvbW11X3NldHVw X2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBk ZXYpOworICAgIGlmICggaW9tbXVfcXVhcmFudGluZSAmJiBwZGV2LT5hcmNo LnBzZXVkb19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAgICB7CisgICAg ICAgIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID0gaW9tbXVfYWxsb2NfZG9t aWQoaW9tbXUtPmRvbWlkX21hcCk7CisgICAgICAgIGlmICggcGRldi0+YXJj aC5wc2V1ZG9fZG9taWQgPT0gRE9NSURfSU5WQUxJRCApCisgICAgICAgICAg ICByZXR1cm4gLUVOT1NQQzsKKyAgICAgICAgZnJlc2hfZG9taWQgPSB0cnVl OworICAgIH0KKworICAgIHJldCA9IGFtZF9pb21tdV9zZXR1cF9kb21haW5f ZGV2aWNlKHBkZXYtPmRvbWFpbiwgaW9tbXUsIGRldmZuLCBwZGV2KTsKKyAg ICBpZiAoIHJldCAmJiBmcmVzaF9kb21pZCApCisgICAgeworICAgICAgICBp b21tdV9mcmVlX2RvbWlkKHBkZXYtPmFyY2gucHNldWRvX2RvbWlkLCBpb21t dS0+ZG9taWRfbWFwKTsKKyAgICAgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9t aWQgPSBET01JRF9JTlZBTElEOworICAgIH0KKworICAgIHJldHVybiByZXQ7 CiB9CiAKIHN0YXRpYyBpbnQgYW1kX2lvbW11X3JlbW92ZV9kZXZpY2UodTgg ZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQpAQCAtNTkxLDYgKzYwOCw5 IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X3JlbW92ZV9kZXZpY2UodTggZGUK IAogICAgIGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2UocGRldi0+ ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBkZXYpOwogCisgICAgaW9tbXVfZnJl ZV9kb21pZChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgaW9tbXUtPmRvbWlk X21hcCk7CisgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBET01JRF9J TlZBTElEOworCiAgICAgaXZyc19tYXBwaW5ncyA9IGdldF9pdnJzX21hcHBp bmdzKHBkZXYtPnNlZyk7CiAgICAgYmRmID0gUENJX0JERjIocGRldi0+YnVz LCBkZXZmbik7CiAgICAgaWYgKCBhbWRfaW9tbXVfcGVyZGV2X2ludHJlbWFw ICYmCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCkBAIC0zMjcsNiArMzI3 LDcgQEAgc3RhdGljIHN0cnVjdCBwY2lfZGV2ICphbGxvY19wZGV2KHN0cnVj dAogICAgICooKHU4KikgJnBkZXYtPmJ1cykgPSBidXM7CiAgICAgKigodTgq KSAmcGRldi0+ZGV2Zm4pID0gZGV2Zm47CiAgICAgcGRldi0+ZG9tYWluID0g TlVMTDsKKyAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lO VkFMSUQ7CiAgICAgSU5JVF9MSVNUX0hFQUQoJnBkZXYtPm1zaV9saXN0KTsK IAogICAgIHBvcyA9IHBjaV9maW5kX2NhcF9vZmZzZXQocHNlZy0+bnIsIGJ1 cywgUENJX1NMT1QoZGV2Zm4pLCBQQ0lfRlVOQyhkZXZmbiksCkBAIC0xMjc2 LDggKzEyNzcsMTIgQEAgc3RhdGljIGludCBfZHVtcF9wY2lfZGV2aWNlcyhz dHJ1Y3QgcGNpXwogCiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHBkZXYs ICZwc2VnLT5hbGxkZXZzX2xpc3QsIGFsbGRldnNfbGlzdCApCiAgICAgewot ICAgICAgICBwcmludGsoIiVwcCAtICVwZCAtIG5vZGUgJS0zZCAtIE1TSXMg PCAiLAotICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHBkZXYtPmRvbWFp biwKKyAgICAgICAgcHJpbnRrKCIlcHAgLSAiLCAmcGRldi0+c2JkZik7Cisg ICAgICAgIGlmICggcGRldi0+ZG9tYWluID09IGRvbV9pbyApCisgICAgICAg ICAgICBwcmludGsoIkRvbUlPOiV4IiwgcGRldi0+YXJjaC5wc2V1ZG9fZG9t aWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmludGsoIiVwZCIs IHBkZXYtPmRvbWFpbik7CisgICAgICAgIHByaW50aygiIC0gbm9kZSAlLTNk IC0gTVNJcyA8ICIsCiAgICAgICAgICAgICAgICAocGRldi0+bm9kZSAhPSBO VU1BX05PX05PREUpID8gcGRldi0+bm9kZSA6IC0xKTsKICAgICAgICAgbGlz dF9mb3JfZWFjaF9lbnRyeSAoIG1zaSwgJnBkZXYtPm1zaV9saXN0LCBsaXN0 ICkKICAgICAgICAgICAgICAgIHByaW50aygiJWQgIiwgbXNpLT5pcnEpOwot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMjIs NiArMjIsNyBAQAogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUg PHhlbi94bWFsbG9jLmg+CiAjaW5jbHVkZSA8eGVuL2RvbWFpbl9wYWdlLmg+ CisjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhlbi9pb2NhcC5o PgogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogI2luY2x1ZGUgPHhlbi9udW1h Lmg+CkBAIC0xMjA0LDcgKzEyMDUsNyBAQCBpbnQgX19pbml0IGlvbW11X2Fs bG9jKHN0cnVjdCBhY3BpX2RyaGRfCiB7CiAgICAgc3RydWN0IHZ0ZF9pb21t dSAqaW9tbXU7CiAgICAgdW5zaWduZWQgbG9uZyBzYWdhdywgbnJfZG9tOwot ICAgIGludCBhZ2F3OworICAgIGludCBhZ2F3LCByYzsKIAogICAgIGlmICgg bnJfaW9tbXVzID49IE1BWF9JT01NVVMgKQogICAgIHsKQEAgLTEyOTcsNyAr MTI5OCwxNiBAQCBpbnQgX19pbml0IGlvbW11X2FsbG9jKHN0cnVjdCBhY3Bp X2RyaGRfCiAgICAgaWYgKCAhaW9tbXUtPmRvbWlkX21hcCApCiAgICAgICAg IHJldHVybiAtRU5PTUVNOwogCisgICAgaW9tbXUtPnBzZXVkb19kb21pZF9t YXAgPSBpb21tdV9pbml0X2RvbWlkKCk7CisgICAgcmMgPSAtRU5PTUVNOwor ICAgIGlmICggIWlvbW11LT5wc2V1ZG9fZG9taWRfbWFwICkKKyAgICAgICAg Z290byBmcmVlOworCiAgICAgcmV0dXJuIDA7CisKKyBmcmVlOgorICAgIGlv bW11X2ZyZWUoZHJoZCk7CisgICAgcmV0dXJuIHJjOwogfQogCiB2b2lkIF9f aW5pdCBpb21tdV9mcmVlKHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCkK QEAgLTEzMjAsNiArMTMzMCw3IEBAIHZvaWQgX19pbml0IGlvbW11X2ZyZWUo c3RydWN0IGFjcGlfZHJoZF8KIAogICAgIHhmcmVlKGlvbW11LT5kb21pZF9i aXRtYXApOwogICAgIHhmcmVlKGlvbW11LT5kb21pZF9tYXApOworICAgIHhm cmVlKGlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKIAogICAgIGlmICggaW9t bXUtPm1zaS5pcnEgPj0gMCApCiAgICAgICAgIGRlc3Ryb3lfaXJxKGlvbW11 LT5tc2kuaXJxKTsKQEAgLTE1ODEsOCArMTU5Miw4IEBAIGludCBkb21haW5f Y29udGV4dF9tYXBwaW5nX29uZSgKICAgICByZXR1cm4gcmMgPzogcGRldiAm JiBwcmV2X2RvbTsKIH0KIAotc3RhdGljIGludCBkb21haW5fY29udGV4dF91 bm1hcChzdHJ1Y3QgZG9tYWluICpkLCB1aW50OF90IGRldmZuLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRl dik7CitzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21h aW5fY29udGV4dF91bm1hcCgKKyAgICBzdHJ1Y3QgZG9tYWluICpkLCB1aW50 OF90IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAKIHN0YXRpYyBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QgZG9tYWluICpkb21h aW4sIHU4IGRldmZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQpAQCAtMTU5MCw2ICsxNjAxLDcg QEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAog ICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsKICAgICBjb25zdCBz dHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CiAgICAgcGFkZHJfdCBwZ2Rf bWFkZHIgPSBkb21faW9tbXUoZG9tYWluKS0+YXJjaC52dGQucGdkX21hZGRy OworICAgIGRvbWlkX3Qgb3JpZ19kb21pZCA9IHBkZXYtPmFyY2gucHNldWRv X2RvbWlkOwogICAgIGludCByZXQgPSAwOwogICAgIHVuc2lnbmVkIGludCBp LCBtb2RlID0gMDsKICAgICB1aW50MTZfdCBzZWcgPSBwZGV2LT5zZWcsIGJk ZjsKQEAgLTE2NDksNiArMTY2MSwxNCBAQCBzdGF0aWMgaW50IGRvbWFpbl9j b250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGJyZWFrOwogCiAgICAg Y2FzZSBERVZfVFlQRV9QQ0llX0VORFBPSU5UOgorICAgICAgICBpZiAoIGlv bW11X3F1YXJhbnRpbmUgJiYgb3JpZ19kb21pZCA9PSBET01JRF9JTlZBTElE ICkKKyAgICAgICAgeworICAgICAgICAgICAgcGRldi0+YXJjaC5wc2V1ZG9f ZG9taWQgPQorICAgICAgICAgICAgICAgIGlvbW11X2FsbG9jX2RvbWlkKGRy aGQtPmlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAgICAgIGlm ICggcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPT0gRE9NSURfSU5WQUxJRCAp CisgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9TUEM7CisgICAgICAgIH0K KwogICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAgIHBy aW50ayhWVERQUkVGSVggIiVwZDpQQ0llOiBtYXAgJXBwXG4iLAogICAgICAg ICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2 Zm4pKTsKQEAgLTE2NjMsNiArMTY4MywxNCBAQCBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGJyZWFrOwogCiAg ICAgY2FzZSBERVZfVFlQRV9QQ0k6CisgICAgICAgIGlmICggaW9tbXVfcXVh cmFudGluZSAmJiBvcmlnX2RvbWlkID09IERPTUlEX0lOVkFMSUQgKQorICAg ICAgICB7CisgICAgICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9 CisgICAgICAgICAgICAgICAgaW9tbXVfYWxsb2NfZG9taWQoZHJoZC0+aW9t bXUtPnBzZXVkb19kb21pZF9tYXApOworICAgICAgICAgICAgaWYgKCBwZGV2 LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAgICAg ICAgICAgICAgICByZXR1cm4gLUVOT1NQQzsKKyAgICAgICAgfQorCiAgICAg ICAgIGlmICggaW9tbXVfZGVidWcgKQogICAgICAgICAgICAgcHJpbnRrKFZU RFBSRUZJWCAiJXBkOlBDSTogbWFwICVwcFxuIiwKICAgICAgICAgICAgICAg ICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CkBA IC0xNzM2LDYgKzE3NjQsMTMgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nKHN0cnVjdAogICAgIGlmICggIXJldCAmJiBkZXZmbiA9PSBw ZGV2LT5kZXZmbiApCiAgICAgICAgIHBjaV92dGRfcXVpcmsocGRldik7CiAK KyAgICBpZiAoIHJldCAmJiBkcmhkICYmIG9yaWdfZG9taWQgPT0gRE9NSURf SU5WQUxJRCApCisgICAgeworICAgICAgICBpb21tdV9mcmVlX2RvbWlkKHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGRyaGQtPmlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAg cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBET01JRF9JTlZBTElEOworICAg IH0KKwogICAgIHJldHVybiByZXQ7CiB9CiAKQEAgLTE4MTgsOCArMTg1Mywx MCBAQCBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKAogICAgIHJldHVy biByYzsKIH0KIAotc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChz dHJ1Y3QgZG9tYWluICpkb21haW4sIHU4IGRldmZuLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3N0 YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRvbWFpbl9jb250 ZXh0X3VubWFwKAorICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwKKyAgICB1 aW50OF90IGRldmZuLAorICAgIHN0cnVjdCBwY2lfZGV2ICpwZGV2KQogewog ICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsKICAgICBzdHJ1Y3Qg dnRkX2lvbW11ICppb21tdTsKQEAgLTE4MjksNyArMTg2Niw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGQKIAogICAgIGRy aGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CiAgICAg aWYgKCAhZHJoZCApCi0gICAgICAgIHJldHVybiAtRU5PREVWOworICAgICAg ICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKICAgICBpb21tdSA9IGRyaGQt PmlvbW11OwogCiAgICAgc3dpdGNoICggcGRldi0+dHlwZSApCkBAIC0xODM5 LDcgKzE4NzYsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFw KHN0cnVjdCBkCiAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6 SG9zdGJyaWRnZTogc2tpcCAlcHAgdW5tYXBcbiIsCiAgICAgICAgICAgICAg ICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwog ICAgICAgICBpZiAoICFpc19oYXJkd2FyZV9kb21haW4oZG9tYWluKSApCi0g ICAgICAgICAgICByZXR1cm4gLUVQRVJNOworICAgICAgICAgICAgcmV0dXJu IEVSUl9QVFIoLUVQRVJNKTsKICAgICAgICAgZ290byBvdXQ7CiAKICAgICBj YXNlIERFVl9UWVBFX1BDSWVfQlJJREdFOgpAQCAtMTkxMiw3ICsxOTQ5LDcg QEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAog ICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21hcChkb21haW4sIHBkZXYs IGlvbW11KTsKIAogb3V0OgotICAgIHJldHVybiByZXQ7CisgICAgcmV0dXJu IHJldCA/IEVSUl9QVFIocmV0KSA6IGRyaGQ7CiB9CiAKIHN0YXRpYyB2b2lk IGlvbW11X2NsZWFyX3Jvb3RfcGd0YWJsZShzdHJ1Y3QgZG9tYWluICpkKQpA QCAtMjEzNywxNiArMjE3NCwxNyBAQCBzdGF0aWMgaW50IGludGVsX2lvbW11 X2VuYWJsZV9kZXZpY2Uoc3RyCiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf cmVtb3ZlX2RldmljZSh1OCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBkZXYp CiB7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwog ICAgIHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKICAgICB1MTYgYmRm OwotICAgIGludCByZXQsIGk7CisgICAgdW5zaWduZWQgaW50IGk7CiAKICAg ICBpZiAoICFwZGV2LT5kb21haW4gKQogICAgICAgICByZXR1cm4gLUVJTlZB TDsKIAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHBkZXYtPmRv bWFpbiwgZGV2Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAg cmV0dXJuIHJldDsKKyAgICBkcmhkID0gZG9tYWluX2NvbnRleHRfdW5tYXAo cGRldi0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCBJU19FUlIo ZHJoZCkgKQorICAgICAgICByZXR1cm4gUFRSX0VSUihkcmhkKTsKIAogICAg IGZvcl9lYWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7 CkBAIC0yMTYzLDYgKzIyMDEsMTMgQEAgc3RhdGljIGludCBpbnRlbF9pb21t dV9yZW1vdmVfZGV2aWNlKHU4CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcm1yci0+ZW5kX2FkZHJlc3MsIDApOwogICAgIH0KIAorICAgIGlm ICggZHJoZCApCisgICAgeworICAgICAgICBpb21tdV9mcmVlX2RvbWlkKHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGRyaGQtPmlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAg cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBET01JRF9JTlZBTElEOworICAg IH0KKwogICAgIHJldHVybiAwOwogfQogCi0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5oCkBAIC01MzUsNiArNTM1LDcgQEAgc3RydWN0 IHZ0ZF9pb21tdSB7CiAgICAgfSBmbHVzaDsKIAogICAgIHN0cnVjdCBsaXN0 X2hlYWQgYXRzX2RldmljZXM7CisgICAgdW5zaWduZWQgbG9uZyAqcHNldWRv X2RvbWlkX21hcDsgLyogInBzZXVkbyIgZG9tYWluIGlkIGJpdG1hcCAqLwog ICAgIHVuc2lnbmVkIGxvbmcgKmRvbWlkX2JpdG1hcDsgIC8qIGRvbWFpbiBp ZCBiaXRtYXAgKi8KICAgICB1MTYgKmRvbWlkX21hcDsgICAgICAgICAgICAg ICAvKiBkb21haW4gaWQgbWFwcGluZyBhcnJheSAqLwogICAgIHVpbnQzMl90 IHZlcnNpb247Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9p b21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3g4Ni9pb21t dS5jCkBAIC0zODYsNiArMzg2LDUzIEBAIHZvaWQgX19od2RvbV9pbml0IGFy Y2hfaW9tbXVfaHdkb21faW5pdCgKICAgICAgICAgcmV0dXJuOwogfQogCit1 bnNpZ25lZCBsb25nICpfX2luaXQgaW9tbXVfaW5pdF9kb21pZCh2b2lkKQor eworICAgIGlmICggIWlvbW11X3F1YXJhbnRpbmUgKQorICAgICAgICByZXR1 cm4gWkVST19CTE9DS19QVFI7CisKKyAgICBCVUlMRF9CVUdfT04oRE9NSURf TUFTSyAqIDJVID49IFVJTlQxNl9NQVgpOworCisgICAgcmV0dXJuIHh6YWxs b2NfYXJyYXkodW5zaWduZWQgbG9uZywKKyAgICAgICAgICAgICAgICAgICAg ICAgICBCSVRTX1RPX0xPTkdTKFVJTlQxNl9NQVggLSBET01JRF9NQVNLKSk7 Cit9CisKK2RvbWlkX3QgaW9tbXVfYWxsb2NfZG9taWQodW5zaWduZWQgbG9u ZyAqbWFwKQoreworICAgIC8qCisgICAgICogVGhpcyBpcyB1c2VkIHVuaWZv cm1seSBhY3Jvc3MgYWxsIElPTU1Vcywgc3VjaCB0aGF0IG9uIHR5cGljYWwK KyAgICAgKiBzeXN0ZW1zIHdlIHdvdWxkbid0IHJlLXVzZSB0aGUgc2FtZSBJ RCB2ZXJ5IHF1aWNrbHkgKHBlcmhhcHMgbmV2ZXIpLgorICAgICAqLworICAg IHN0YXRpYyB1bnNpZ25lZCBpbnQgc3RhcnQ7CisgICAgdW5zaWduZWQgaW50 IGlkeCA9IGZpbmRfbmV4dF96ZXJvX2JpdChtYXAsIFVJTlQxNl9NQVggLSBE T01JRF9NQVNLLCBzdGFydCk7CisKKyAgICBBU1NFUlQocGNpZGV2c19sb2Nr ZWQoKSk7CisKKyAgICBpZiAoIGlkeCA+PSBVSU5UMTZfTUFYIC0gRE9NSURf TUFTSyApCisgICAgICAgIGlkeCA9IGZpbmRfZmlyc3RfemVyb19iaXQobWFw LCBVSU5UMTZfTUFYIC0gRE9NSURfTUFTSyk7CisgICAgaWYgKCBpZHggPj0g VUlOVDE2X01BWCAtIERPTUlEX01BU0sgKQorICAgICAgICByZXR1cm4gRE9N SURfSU5WQUxJRDsKKworICAgIF9fc2V0X2JpdChpZHgsIG1hcCk7CisKKyAg ICBzdGFydCA9IGlkeCArIDE7CisKKyAgICByZXR1cm4gaWR4IHwgKERPTUlE X01BU0sgKyAxKTsKK30KKwordm9pZCBpb21tdV9mcmVlX2RvbWlkKGRvbWlk X3QgZG9taWQsIHVuc2lnbmVkIGxvbmcgKm1hcCkKK3sKKyAgICBBU1NFUlQo cGNpZGV2c19sb2NrZWQoKSk7CisKKyAgICBpZiAoIGRvbWlkID09IERPTUlE X0lOVkFMSUQgKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoZG9t aWQgPiBET01JRF9NQVNLKTsKKworICAgIGlmICggIV9fdGVzdF9hbmRfY2xl YXJfYml0KGRvbWlkICYgRE9NSURfTUFTSywgbWFwKSApCisgICAgICAgIEJV RygpOworfQorCiBpbnQgaW9tbXVfZnJlZV9wZ3RhYmxlcyhzdHJ1Y3QgZG9t YWluICpkKQogewogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9t X2lvbW11KGQpOwo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-10.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-10.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IGRyb3AgVExCIGZsdXNoZXMgZnJvbSBxdWFyYW50aW5l X2luaXQoKSBob29rcwoKVGhlIHBhZ2UgdGFibGVzIGp1c3QgY3JlYXRlZCBh cmVuJ3QgaG9va2VkIHVwIHlldCBhbnl3aGVyZSwgc28gdGhlcmUncwpub3Ro aW5nIHRoYXQgY291bGQgYmUgcHJlc2VudCBpbiBhbnkgVExCLCBhbmQgaGVu Y2Ugbm90aGluZyB0byBmbHVzaC4KRHJvcHBpbmcgdGhpcyBmbHVzaCBpcywg YXQgbGVhc3Qgb24gdGhlIFZULWQgc2lkZSwgYSBwcmVyZXEgdG8gcGVyLQpk ZXZpY2UgZG9tYWluIElEIHVzZSB3aGVuIHF1YXJhbnRpbmluZyBkZXZpY2Vz LCBhcyBkb21faW8gaXNuJ3QgZ29pbmcKdG8gYmUgYXNzaWduZWQgYSBESUQg YW55bW9yZTogVGhlIHdhcm5pbmcgaW4gZ2V0X2lvbW11X2RpZCgpIHdvdWxk CnRyaWdnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxA eGVuLm9yZz4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC01ODQsOCArNTg0LDYgQEAgaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cgogIG91dDoK ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKIAot ICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfcGFnZXMoZCk7Ci0KICAgICAvKiBQ YWdlcyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCiAgICAgcmV0dXJuIGxl dmVsID8gLUVOT01FTSA6IDA7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0yOTU4LDkgKzI5NTgsNiBAQCBzdGF0aWMg aW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lCiAgb3V0OgogICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAg aWYgKCAhcmMgKQotICAgICAgICByYyA9IGlvbW11X2ZsdXNoX2lvdGxiX2Fs bChkKTsKLQogICAgIC8qIFBhZ2VzIG1heSBiZSBsZWFrZWQgaW4gZmFpbHVy ZSBjYXNlICovCiAgICAgcmV0dXJuIHJjOwogfQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-11.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-11.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IGFic3RyYWN0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2Ug dGFibGUgbGV2ZWxzCgpXZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBjb25zdGFu dCBlbHNld2hlcmUuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWxAeGVuLm9yZz4KCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9p b21tdS5oCkBAIC0zNTgsNyArMzU4LDcgQEAgc3RhdGljIGlubGluZSBpbnQg YW1kX2lvbW11X2dldF9wYWdpbmdfbQogICAgIHdoaWxlICggbWF4X2ZyYW1l cyA+IFBURV9QRVJfVEFCTEVfU0laRSApCiAgICAgewogICAgICAgICBtYXhf ZnJhbWVzID0gUFRFX1BFUl9UQUJMRV9BTElHTihtYXhfZnJhbWVzKSA+PiBQ VEVfUEVSX1RBQkxFX1NISUZUOwotICAgICAgICBpZiAoICsrbGV2ZWwgPiA2 ICkKKyAgICAgICAgaWYgKCArK2xldmVsID4gSU9NTVVfTUFYX1BUX0xFVkVM UyApCiAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICB9CiAKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11LWRlZnMuaAor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUtZGVmcy5o CkBAIC0xMDYsNiArMTA2LDcgQEAgc3RydWN0IGFtZF9pb21tdV9kdGUgewog ICAgIGJvb2wgdHY6MTsKICAgICB1bnNpZ25lZCBpbnQgOjU7CiAgICAgdW5z aWduZWQgaW50IGhhZDoyOworI2RlZmluZSBJT01NVV9NQVhfUFRfTEVWRUxT IDYKICAgICB1bnNpZ25lZCBpbnQgcGFnaW5nX21vZGU6MzsKICAgICB1aW50 NjRfdCBwdF9yb290OjQwOwogICAgIGJvb2wgcHByOjE7Ci0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYworKysgYi94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKQEAgLTI1MCw3 ICsyNTAsNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9mcm9tX2RmbihzdHJ1 Y3QgZG9tCiAgICAgdGFibGUgPSBoZC0+YXJjaC5hbWQucm9vdF90YWJsZTsK ICAgICBsZXZlbCA9IGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZTsKIAotICAg IEJVR19PTiggdGFibGUgPT0gTlVMTCB8fCBsZXZlbCA8IDEgfHwgbGV2ZWwg PiA2ICk7CisgICAgQlVHX09OKCB0YWJsZSA9PSBOVUxMIHx8IGxldmVsIDwg MSB8fCBsZXZlbCA+IElPTU1VX01BWF9QVF9MRVZFTFMgKTsKIAogICAgIC8q CiAgICAgICogQSBmcmFtZSBudW1iZXIgcGFzdCB3aGF0IHRoZSBjdXJyZW50 IHBhZ2UgdGFibGVzIGNhbiByZXByZXNlbnQgY2FuJ3QK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.15-12.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.15-12.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHVzZSBwZXItZGV2aWNlIHBhZ2UgdGFibGVzIGZvciBx dWFyYW50aW5pbmcKCkRldmljZXMgd2l0aCBSTVJScyAvIHVuaXR5IG1hcHBl ZCByZWdpb25zLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQKaG93L3do ZW4gdGhlc2UgbWVtb3J5IHJlZ2lvbnMgbWF5IGJlIGFjY2Vzc2VkLCBtYXkg bm90IGJlIGxlZnQKZGlzY29ubmVjdGVkIGZyb20gdGhlIG1hcHBpbmdzIG9m IHRoZXNlIHJlZ2lvbnMgKGFzIGxvbmcgYXMgaXQncyBub3QKY2VydGFpbiB0 aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgcXVpZXNjZWQpLiBIZW5j ZSBldmVuIHRoZSBwYWdlCnRhYmxlcyB1c2VkIHdoZW4gcXVhcmFudGluaW5n IHN1Y2ggZGV2aWNlcyBuZWVkIHRvIGhhdmUgbWFwcGluZ3Mgb2YKdGhvc2Ug cmVnaW9ucy4gVGhpcyBpbXBsaWVzIGluc3RhbGxpbmcgcGFnZSB0YWJsZXMg aW4gdGhlIGZpcnN0IHBsYWNlCmV2ZW4gd2hlbiBub3QgaW4gc2NyYXRjaC1w YWdlIHF1YXJhbnRpbmluZyBtb2RlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM2 MSAvIHBhcnQgb2YgWFNBLTQwMC4KCldoaWxlIGZvciB0aGUgcHVycG9zZSBo ZXJlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBkZXZpY2VzIHdp dGgKUk1SUnMgLyB1bml0eSBtYXBwZWQgcmVnaW9ucyB1c2UgcGVyLWRldmlj ZSBwYWdlIHRhYmxlcywgZXh0ZW5kIHRoaXMgdG8KYWxsIGRldmljZXMgKGlu IHNjcmF0Y2gtcGFnZSBxdWFyYW50aW5pbmcgbW9kZSkuIFRoaXMgYWxsb3dz IHRoZSBsZWFmCnBhZ2VzIHRvIGJlIG1hcHBlZCByL3csIHRodXMgY292ZXJp bmcgYWxzbyBtZW1vcnkgd3JpdGVzIChyYXRoZXIgdGhhbgpqdXN0IHJlYWRz KSBpc3N1ZWQgYnkgbm9uLXF1aWVzY2VudCBkZXZpY2VzLgoKU2V0IHVwIHF1 YXJhbnRpbmUgcGFnZSB0YWJsZXMgYXMgbGF0ZSBhcyBwb3NzaWJsZSwgeWV0 IGVhcmx5IGVub3VnaCB0bwpub3QgZW5jb3VudGVyIGZhaWx1cmUgZHVyaW5n IGRlLWFzc2lnbi4gVGhpcyBtZWFucyBzZXR1cCBnZW5lcmFsbHkKaGFwcGVu cyBpbiBhc3NpZ25fZGV2aWNlKCksIHdoaWxlIChmb3Igbm93KSB0aGUgb25l IGluIGRlYXNzaWduX2RldmljZSgpCmlzIHRoZXJlIG1haW5seSB0byBiZSBv biB0aGUgc2FmZSBzaWRlLgoKSW4gVlQtZCdzIERJRCBhbGxvY2F0aW9uIGZ1 bmN0aW9uIGRvbid0IHJlcXVpcmUgdGhlIElPTU1VIGxvY2sgdG8gYmUKaGVs ZCBhbnltb3JlOiBBbGwgaW52b2x2ZWQgY29kZSBwYXRocyBob2xkIHBjaWRl dnNfbG9jaywgc28gdGhpcyB3YXkgd2UKYXZvaWQgdGhlIG5lZWQgdG8gYWNx dWlyZSB0aGUgSU9NTVUgbG9jayBhcm91bmQgdGhlIG5ldyBjYWxsIHRvCmNv bnRleHRfc2V0X2RvbWFpbl9pZCgpLgoKU2lnbmVkLW9mZi1ieTogSmFuIEJl dWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTogUGF1bCBE dXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFu IDxrZXZpbi50aWFuQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBh dSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKLS0tIGEveGVuL2Fy Y2gveDg2L21tL3AybS5jCisrKyBiL3hlbi9hcmNoL3g4Ni9tbS9wMm0uYwpA QCAtMTQ2OCw3ICsxNDY4LDcgQEAgaW50IHNldF9pZGVudGl0eV9wMm1fZW50 cnkoc3RydWN0IGRvbWFpbgogICAgIHN0cnVjdCBwMm1fZG9tYWluICpwMm0g PSBwMm1fZ2V0X2hvc3RwMm0oZCk7CiAgICAgaW50IHJldDsKIAotICAgIGlm ICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShwMm0tPmRvbWFpbikgKQorICAg IGlmICggIXBhZ2luZ19tb2RlX3RyYW5zbGF0ZShkKSApCiAgICAgewogICAg ICAgICBpZiAoICFpc19pb21tdV9lbmFibGVkKGQpICkKICAgICAgICAgICAg IHJldHVybiAwOwotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCisr KyBiL3hlbi9pbmNsdWRlL2FzbS14ODYvcGNpLmgKQEAgLTEsNiArMSw4IEBA CiAjaWZuZGVmIF9fWDg2X1BDSV9IX18KICNkZWZpbmUgX19YODZfUENJX0hf XwogCisjaW5jbHVkZSA8eGVuL21tLmg+CisKICNkZWZpbmUgQ0Y4X0JERihj ZjgpICAgICAoICAoKGNmOCkgJiAweDAwZmZmZjAwKSA+PiA4KQogI2RlZmlu ZSBDRjhfQUREUl9MTyhjZjgpICggICAoY2Y4KSAmIDB4MDAwMDAwZmMpCiAj ZGVmaW5lIENGOF9BRERSX0hJKGNmOCkgKCAgKChjZjgpICYgMHgwZjAwMDAw MCkgPj4gMTYpCkBAIC0yMCw3ICsyMiwxOCBAQCBzdHJ1Y3QgYXJjaF9wY2lf ZGV2IHsKICAgICAgKiB0aGVtIGRvbid0IHJhY2UgKGRlKWluaXRpYWxpemF0 aW9uIGFuZCBoZW5jZSBkb24ndCBzdHJpY3RseSBuZWVkIGFueQogICAgICAq IGxvY2tpbmcuCiAgICAgICovCisgICAgdW5pb24geworICAgICAgICAvKiBT dWJzZXQgb2Ygc3RydWN0IGFyY2hfaW9tbXUncyBmaWVsZHMsIHRvIGJlIHVz ZWQgaW4gZG9tX2lvLiAqLworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAg ICAgdWludDY0X3QgcGdkX21hZGRyOworICAgICAgICB9IHZ0ZDsKKyAgICAg ICAgc3RydWN0IHsKKyAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnJv b3RfdGFibGU7CisgICAgICAgIH0gYW1kOworICAgIH07CiAgICAgZG9taWRf dCBwc2V1ZG9fZG9taWQ7CisgICAgbWZuX3QgbGVhZl9tZm47CisgICAgc3Ry dWN0IHBhZ2VfbGlzdF9oZWFkIHBndGFibGVzX2xpc3Q7CiB9OwogCiBpbnQg cGNpX2NvbmZfd3JpdGVfaW50ZXJjZXB0KHVuc2lnbmVkIGludCBzZWcsIHVu c2lnbmVkIGludCBiZGYsCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdS5oCkBAIC0yMjMsNyArMjIzLDggQEAgaW50IGFtZF9pb21tdV9p bml0X2xhdGUodm9pZCk7CiBpbnQgYW1kX2lvbW11X3VwZGF0ZV9pdnJzX21h cHBpbmdfYWNwaSh2b2lkKTsKIGludCBpb3ZfYWRqdXN0X2lycV9hZmZpbml0 aWVzKHZvaWQpOwogCi1pbnQgYW1kX2lvbW11X3F1YXJhbnRpbmVfaW5pdChz dHJ1Y3QgZG9tYWluICpkKTsKK2ludCBhbWRfaW9tbXVfcXVhcmFudGluZV9p bml0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKK3ZvaWQgYW1kX2lvbW11X3F1 YXJhbnRpbmVfdGVhcmRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogCiAv KiBtYXBwaW5nIGZ1bmN0aW9ucyAqLwogaW50IF9fbXVzdF9jaGVjayBhbWRf aW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3QgZGZuLAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5j CkBAIC01MjgsNjQgKzUyOCwxMzUgQEAgaW50IGFtZF9pb21tdV9yZXNlcnZl X2RvbWFpbl91bml0eV91bm1hcAogICAgIHJldHVybiByYzsKIH0KIAotaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBkb21h aW4gKmQpCitzdGF0aWMgaW50IGZpbGxfcXB0KHVuaW9uIGFtZF9pb21tdV9w dGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZlbCwKKyAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdzW0lPTU1VX01BWF9QVF9MRVZF TFNdKQogewotICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGRvbV9pbyk7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJj ID0gMDsKKworICAgIGZvciAoIGkgPSAwOyAhcmMgJiYgaSA8IFBURV9QRVJf VEFCTEVfU0laRTsgKytpICkKKyAgICB7CisgICAgICAgIHVuaW9uIGFtZF9p b21tdV9wdGUgKnB0ZSA9ICZ0aGlzW2ldLCAqbmV4dDsKKworICAgICAgICBp ZiAoICFwdGUtPnByICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAh cGdzW2xldmVsXSApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg LyoKKyAgICAgICAgICAgICAgICAgKiBUaGUgcGd0YWJsZSBhbGxvY2F0b3Ig aXMgZmluZSBmb3IgdGhlIGxlYWYgcGFnZSwgYXMgd2VsbCBhcworICAgICAg ICAgICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUgcmVzdWx0 aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKKyAgICAgICAgICAgICAgICAg KiB6ZXJvZWQuCisgICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAg ICAgcGdzW2xldmVsXSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOworICAg ICAgICAgICAgICAgIGlmICggIXBnc1tsZXZlbF0gKQorICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSAtRU5PTUVNOworICAg ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisK KyAgICAgICAgICAgICAgICBpZiAoIGxldmVsICkKKyAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICAgIG5leHQgPSBfX21hcF9kb21haW5f cGFnZShwZ3NbbGV2ZWxdKTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBm aWxsX3FwdChuZXh0LCBsZXZlbCAtIDEsIHBncyk7CisgICAgICAgICAgICAg ICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAg ICAgICAgICAqIFBERXMgYXJlIGVzc2VudGlhbGx5IGEgc3Vic2V0IG9mIFBU RXMsIHNvIHRoaXMgZnVuY3Rpb24KKyAgICAgICAgICAgICAqIGlzIGZpbmUg dG8gdXNlIGV2ZW4gYXQgdGhlIGxlYWYuCisgICAgICAgICAgICAgKi8KKyAg ICAgICAgICAgIHNldF9pb21tdV9wZGVfcHJlc2VudChwdGUsIG1mbl94KHBh Z2VfdG9fbWZuKHBnc1tsZXZlbF0pKSwgbGV2ZWwsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIH0K KyAgICAgICAgZWxzZSBpZiAoIGxldmVsICYmIHB0ZS0+bmV4dF9sZXZlbCAp CisgICAgICAgIHsKKyAgICAgICAgICAgIG5leHQgPSBtYXBfZG9tYWluX3Bh Z2UoX21mbihwdGUtPm1mbikpOworICAgICAgICAgICAgcmMgPSBmaWxsX3Fw dChuZXh0LCBsZXZlbCAtIDEsIHBncyk7CisgICAgICAgICAgICB1bm1hcF9k b21haW5fcGFnZShuZXh0KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl dHVybiByYzsKK30KKworaW50IGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQo c3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisgICAgc3RydWN0IGRvbWFpbl9p b21tdSAqaGQgPSBkb21faW9tbXUoZG9tX2lvKTsKICAgICB1bnNpZ25lZCBs b25nIGVuZF9nZm4gPQogICAgICAgICAxdWwgPDwgKERFRkFVTFRfRE9NQUlO X0FERFJFU1NfV0lEVEggLSBQQUdFX1NISUZUKTsKICAgICB1bnNpZ25lZCBp bnQgbGV2ZWwgPSBhbWRfaW9tbXVfZ2V0X3BhZ2luZ19tb2RlKGVuZF9nZm4p OwotICAgIHVuaW9uIGFtZF9pb21tdV9wdGUgKnRhYmxlOworICAgIHVuc2ln bmVkIGludCByZXFfaWQgPSBnZXRfZG1hX3JlcXVlc3Rvcl9pZChwZGV2LT5z ZWcsIHBkZXYtPnNiZGYuYmRmKTsKKyAgICBjb25zdCBzdHJ1Y3QgaXZyc19t YXBwaW5ncyAqaXZyc19tYXBwaW5ncyA9IGdldF9pdnJzX21hcHBpbmdzKHBk ZXYtPnNlZyk7CisgICAgaW50IHJjOwogCi0gICAgaWYgKCBoZC0+YXJjaC5h bWQucm9vdF90YWJsZSApCisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkp OworICAgIEFTU0VSVCghaGQtPmFyY2guYW1kLnJvb3RfdGFibGUpOworICAg IEFTU0VSVChwYWdlX2xpc3RfZW1wdHkoJmhkLT5hcmNoLnBndGFibGVzLmxp c3QpKTsKKworICAgIEFTU0VSVChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCAh PSBET01JRF9JTlZBTElEKTsKKworICAgIGlmICggcGRldi0+YXJjaC5hbWQu cm9vdF90YWJsZSApCiAgICAgewotICAgICAgICBBU1NFUlRfVU5SRUFDSEFC TEUoKTsKKyAgICAgICAgY2xlYXJfZG9tYWluX3BhZ2UocGRldi0+YXJjaC5s ZWFmX21mbik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHNw aW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKLQotICAgIGhkLT5h cmNoLmFtZC5yb290X3RhYmxlID0gaW9tbXVfYWxsb2NfcGd0YWJsZShoZCk7 Ci0gICAgaWYgKCAhaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgKQotICAgICAg ICBnb3RvIG91dDsKLQotICAgIHRhYmxlID0gX19tYXBfZG9tYWluX3BhZ2Uo aGQtPmFyY2guYW1kLnJvb3RfdGFibGUpOwotICAgIHdoaWxlICggbGV2ZWwg KQorICAgIHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBpb21tdV9hbGxv Y19wZ3RhYmxlKGhkKTsKKyAgICBpZiAoICFwZGV2LT5hcmNoLmFtZC5yb290 X3RhYmxlICkKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CisKKyAgICAvKiBU cmFuc2llbnRseSBpbnN0YWxsIHRoZSByb290IGludG8gRG9tSU8sIGZvciBp b21tdV9pZGVudGl0eV9tYXBwaW5nKCkuICovCisgICAgaGQtPmFyY2guYW1k LnJvb3RfdGFibGUgPSBwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlOworCisg ICAgcmMgPSBhbWRfaW9tbXVfcmVzZXJ2ZV9kb21haW5fdW5pdHlfbWFwKGRv bV9pbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXZyc19tYXBwaW5nc1tyZXFfaWRdLnVuaXR5X21hcCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisK KyAgICBpb21tdV9pZGVudGl0eV9tYXBfdGVhcmRvd24oZG9tX2lvKTsKKyAg ICBoZC0+YXJjaC5hbWQucm9vdF90YWJsZSA9IE5VTEw7CisKKyAgICBpZiAo IHJjICkKKyAgICAgICAgcHJpbnRrKCIlcHA6IHF1YXJhbnRpbmUgdW5pdHkg bWFwcGluZyBmYWlsZWRcbiIsICZwZGV2LT5zYmRmKTsKKyAgICBlbHNlCiAg ICAgewotICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZzsKLSAgICAgICAg dW5zaWduZWQgaW50IGk7CisgICAgICAgIHVuaW9uIGFtZF9pb21tdV9wdGUg KnJvb3Q7CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnc1tJT01NVV9N QVhfUFRfTEVWRUxTXSA9IHt9OwogCi0gICAgICAgIC8qCi0gICAgICAgICAq IFRoZSBwZ3RhYmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBw YWdlLCBhcyB3ZWxsIGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMs IGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKLSAg ICAgICAgICogemVyb2VkLgotICAgICAgICAgKi8KLSAgICAgICAgcGcgPSBp b21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKLSAgICAgICAgaWYgKCAhcGcgKQot ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHNwaW5fbG9jaygmaGQtPmFy Y2gubWFwcGluZ19sb2NrKTsKIAotICAgICAgICBmb3IgKCBpID0gMDsgaSA8 IFBURV9QRVJfVEFCTEVfU0laRTsgaSsrICkKLSAgICAgICAgewotICAgICAg ICAgICAgdW5pb24gYW1kX2lvbW11X3B0ZSAqcGRlID0gJnRhYmxlW2ldOwor ICAgICAgICByb290ID0gX19tYXBfZG9tYWluX3BhZ2UocGRldi0+YXJjaC5h bWQucm9vdF90YWJsZSk7CisgICAgICAgIHJjID0gZmlsbF9xcHQocm9vdCwg bGV2ZWwgLSAxLCBwZ3MpOworICAgICAgICB1bm1hcF9kb21haW5fcGFnZShy b290KTsKIAotICAgICAgICAgICAgLyoKLSAgICAgICAgICAgICAqIFBERXMg YXJlIGVzc2VudGlhbGx5IGEgc3Vic2V0IG9mIFBURXMsIHNvIHRoaXMgZnVu Y3Rpb24KLSAgICAgICAgICAgICAqIGlzIGZpbmUgdG8gdXNlIGV2ZW4gYXQg dGhlIGxlYWYuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAgICAgIHNldF9p b21tdV9wZGVfcHJlc2VudChwZGUsIG1mbl94KHBhZ2VfdG9fbWZuKHBnKSks IGxldmVsIC0gMSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBmYWxzZSwgdHJ1ZSk7Ci0gICAgICAgIH0KKyAgICAgICAgcGRldi0+YXJj aC5sZWFmX21mbiA9IHBhZ2VfdG9fbWZuKHBnc1swXSk7CiAKLSAgICAgICAg dW5tYXBfZG9tYWluX3BhZ2UodGFibGUpOwotICAgICAgICB0YWJsZSA9IF9f bWFwX2RvbWFpbl9wYWdlKHBnKTsKLSAgICAgICAgbGV2ZWwtLTsKKyAgICAg ICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAg fQotICAgIHVubWFwX2RvbWFpbl9wYWdlKHRhYmxlKTsKIAotIG91dDoKLSAg ICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKyAgICBw YWdlX2xpc3RfbW92ZSgmcGRldi0+YXJjaC5wZ3RhYmxlc19saXN0LCAmaGQt PmFyY2gucGd0YWJsZXMubGlzdCk7CisKKyAgICBpZiAoIHJjICkKKyAgICAg ICAgYW1kX2lvbW11X3F1YXJhbnRpbmVfdGVhcmRvd24ocGRldik7CisKKyAg ICByZXR1cm4gcmM7Cit9CisKK3ZvaWQgYW1kX2lvbW11X3F1YXJhbnRpbmVf dGVhcmRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYpCit7CisgICAgc3RydWN0 IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tX2lvKTsKKworICAg IEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKworICAgIGlmICggIXBkZXYt PmFyY2guYW1kLnJvb3RfdGFibGUgKQorICAgICAgICByZXR1cm47CiAKLSAg ICAvKiBQYWdlcyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCi0gICAgcmV0 dXJuIGxldmVsID8gLUVOT01FTSA6IDA7CisgICAgQVNTRVJUKHBhZ2VfbGlz dF9lbXB0eSgmaGQtPmFyY2gucGd0YWJsZXMubGlzdCkpOworICAgIHBhZ2Vf bGlzdF9tb3ZlKCZoZC0+YXJjaC5wZ3RhYmxlcy5saXN0LCAmcGRldi0+YXJj aC5wZ3RhYmxlc19saXN0KTsKKyAgICB3aGlsZSAoIGlvbW11X2ZyZWVfcGd0 YWJsZXMoZG9tX2lvKSA9PSAtRVJFU1RBUlQgKQorICAgICAgICAvKiBub3Ro aW5nICovOworICAgIHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBOVUxM OwogfQogCiAvKgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv cGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTEyMiw2ICsxMjIsOCBAQCBzdGF0 aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgdTgg YnVzID0gcGRldi0+YnVzOwogICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9t bXUgKmhkID0gZG9tX2lvbW11KGRvbWFpbik7CiAgICAgY29uc3Qgc3RydWN0 IGl2cnNfbWFwcGluZ3MgKml2cnNfZGV2OworICAgIGNvbnN0IHN0cnVjdCBw YWdlX2luZm8gKnJvb3RfcGc7CisgICAgZG9taWRfdCBkb21pZDsKIAogICAg IEJVR19PTighaGQtPmFyY2guYW1kLnBhZ2luZ19tb2RlIHx8ICFpb21tdS0+ ZGV2X3RhYmxlLmJ1ZmZlcik7CiAKQEAgLTE0MSwxNCArMTQzLDI1IEBAIHN0 YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBk dGUgPSAmdGFibGVbcmVxX2lkXTsKICAgICBpdnJzX2RldiA9ICZnZXRfaXZy c19tYXBwaW5ncyhpb21tdS0+c2VnKVtyZXFfaWRdOwogCisgICAgaWYgKCBk b21haW4gIT0gZG9tX2lvICkKKyAgICB7CisgICAgICAgIHJvb3RfcGcgPSBo ZC0+YXJjaC5hbWQucm9vdF90YWJsZTsKKyAgICAgICAgZG9taWQgPSBkb21h aW4tPmRvbWFpbl9pZDsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAg ICAgcm9vdF9wZyA9IHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGU7CisgICAg ICAgIGRvbWlkID0gcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQ7CisgICAgfQor CiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7 CiAKICAgICBpZiAoICFkdGUtPnYgfHwgIWR0ZS0+dHYgKQogICAgIHsKICAg ICAgICAgLyogYmluZCBEVEUgdG8gZG9tYWluIHBhZ2UtdGFibGVzICovCiAg ICAgICAgIHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCi0g ICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5h bWQucm9vdF90YWJsZSksCi0gICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9t YWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsK KyAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKHJvb3RfcGcp LCBkb21pZCwKKyAgICAgICAgICAgICAgICAgaGQtPmFyY2guYW1kLnBhZ2lu Z19tb2RlLCBzcl9mbGFncyk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAg ICB7CiAgICAgICAgICAgICBBU1NFUlQocmMgPCAwKTsKQEAgLTE3Miw3ICsx ODUsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0 dXBfCiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2RldmljZShpb21tdSwg cmVxX2lkKTsKICAgICB9Ci0gICAgZWxzZSBpZiAoIGR0ZS0+cHRfcm9vdCAh PSBtZm5feChwYWdlX3RvX21mbihoZC0+YXJjaC5hbWQucm9vdF90YWJsZSkp ICkKKyAgICBlbHNlIGlmICggZHRlLT5wdF9yb290ICE9IG1mbl94KHBhZ2Vf dG9fbWZuKHJvb3RfcGcpKSApCiAgICAgewogICAgICAgICAvKgogICAgICAg ICAgKiBTdHJpY3RseSBzcGVha2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBv bmx5IG9uZSB3aXRoIHRoaXMgcmVxdWVzdG9yCkBAIC0xODUsOCArMTk4LDgg QEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwog ICAgICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgZWxzZQog ICAgICAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJs ZSgKLSAgICAgICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkciho ZC0+YXJjaC5hbWQucm9vdF90YWJsZSksCi0gICAgICAgICAgICAgICAgICAg ICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2guYW1kLnBhZ2luZ19tb2Rl LCBzcl9mbGFncyk7CisgICAgICAgICAgICAgICAgICAgICBkdGUsIHBhZ2Vf dG9fbWFkZHIocm9vdF9wZyksIGRvbWlkLAorICAgICAgICAgICAgICAgICAg ICAgaGQtPmFyY2guYW1kLnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7CiAgICAg ICAgIGlmICggcmMgPCAwICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKQEAg LTIwNSw2ICsyMTgsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbWRf aW9tbXVfc2V0dXBfCiAgICAgICAgICAgICAgICogaW50ZW5kZWQgYW55d2F5 LgogICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICFwZGV2LT5kb21h aW4tPmlzX2R5aW5nICYmCisgICAgICAgICAgICAgcGRldi0+ZG9tYWluICE9 IGRvbV9pbyAmJgogICAgICAgICAgICAgIChhbnlfcGRldl9iZWhpbmRfaW9t bXUocGRldi0+ZG9tYWluLCBwZGV2LCBpb21tdSkgfHwKICAgICAgICAgICAg ICAgcGRldi0+cGhhbnRvbV9zdHJpZGUpICkKICAgICAgICAgICAgIHByaW50 aygiICVwcDogcmVhc3NpZ25tZW50IG1heSBjYXVzZSAlcGQgZGF0YSBjb3Jy dXB0aW9uXG4iLApAQCAtMjM0LDkgKzI0OCw4IEBAIHN0YXRpYyBpbnQgX19t dXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBBTURfSU9NTVVfREVC VUcoIlNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAlI3gsIHR5 cGUgPSAlI3gsICIKICAgICAgICAgICAgICAgICAgICAgInJvb3QgdGFibGUg PSAlIyJQUkl4NjQiLCAiCiAgICAgICAgICAgICAgICAgICAgICJkb21haW4g PSAlZCwgcGFnaW5nIG1vZGUgPSAlZFxuIiwKLSAgICAgICAgICAgICAgICAg ICAgcmVxX2lkLCBwZGV2LT50eXBlLAotICAgICAgICAgICAgICAgICAgICBw YWdlX3RvX21hZGRyKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSwKLSAgICAg ICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFt ZC5wYWdpbmdfbW9kZSk7CisgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwg cGRldi0+dHlwZSwgcGFnZV90b19tYWRkcihyb290X3BnKSwKKyAgICAgICAg ICAgICAgICAgICAgZG9taWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSk7 CiAKICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAKQEAgLTMwNSw3 ICszMTgsNyBAQCBpbnQgYW1kX2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRv bWFpbiAqCiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21f aW9tbXUoZCk7CiAKLSAgICBpZiAoIHVubGlrZWx5KCFoZC0+YXJjaC5hbWQu cm9vdF90YWJsZSkgKQorICAgIGlmICggdW5saWtlbHkoIWhkLT5hcmNoLmFt ZC5yb290X3RhYmxlKSAmJiBkICE9IGRvbV9pbyApCiAgICAgewogICAgICAg ICBoZC0+YXJjaC5hbWQucm9vdF90YWJsZSA9IGlvbW11X2FsbG9jX3BndGFi bGUoaGQpOwogICAgICAgICBpZiAoICFoZC0+YXJjaC5hbWQucm9vdF90YWJs ZSApCkBAIC0zOTYsNyArNDA5LDcgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11 X2Rpc2FibGVfZG9tYWluX2RldgogCiAgICAgICAgIEFNRF9JT01NVV9ERUJV RygiRGlzYWJsZTogZGV2aWNlIGlkID0gJSN4LCAiCiAgICAgICAgICAgICAg ICAgICAgICAgICAiZG9tYWluID0gJWQsIHBhZ2luZyBtb2RlID0gJWRcbiIs Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXFfaWQsICBkb21haW4tPmRv bWFpbl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgZHRl LT5kb21haW5faWQsCiAgICAgICAgICAgICAgICAgICAgICAgICBkb21faW9t bXUoZG9tYWluKS0+YXJjaC5hbWQucGFnaW5nX21vZGUpOwogICAgIH0KICAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3Mp OwpAQCAtNjA4LDYgKzYyMSw4IEBAIHN0YXRpYyBpbnQgYW1kX2lvbW11X3Jl bW92ZV9kZXZpY2UodTggZGUKIAogICAgIGFtZF9pb21tdV9kaXNhYmxlX2Rv bWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBkZXYp OwogCisgICAgYW1kX2lvbW11X3F1YXJhbnRpbmVfdGVhcmRvd24ocGRldik7 CisKICAgICBpb21tdV9mcmVlX2RvbWlkKHBkZXYtPmFyY2gucHNldWRvX2Rv bWlkLCBpb21tdS0+ZG9taWRfbWFwKTsKICAgICBwZGV2LT5hcmNoLnBzZXVk b19kb21pZCA9IERPTUlEX0lOVkFMSUQ7CiAKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9pb21tdS5jCkBAIC00MjQsMjEgKzQyNCwyMSBAQCBpbnQgaW9tbXVf aW90bGJfZmx1c2hfYWxsKHN0cnVjdCBkb21haW4KICAgICByZXR1cm4gcmM7 CiB9CiAKLXN0YXRpYyBpbnQgX19pbml0IGlvbW11X3F1YXJhbnRpbmVfaW5p dCh2b2lkKQoraW50IGlvbW11X3F1YXJhbnRpbmVfZGV2X2luaXQoZGV2aWNl X3QgKmRldikKIHsKICAgICBjb25zdCBzdHJ1Y3QgZG9tYWluX2lvbW11ICpo ZCA9IGRvbV9pb21tdShkb21faW8pOwotICAgIGludCByYzsKIAotICAgIGRv bV9pby0+b3B0aW9ucyB8PSBYRU5fRE9NQ1RMX0NERl9pb21tdTsKKyAgICBp ZiAoICFpb21tdV9xdWFyYW50aW5lIHx8ICFoZC0+cGxhdGZvcm1fb3BzLT5x dWFyYW50aW5lX2luaXQgKQorICAgICAgICByZXR1cm4gMDsKIAotICAgIHJj ID0gaW9tbXVfZG9tYWluX2luaXQoZG9tX2lvLCAwKTsKLSAgICBpZiAoIHJj ICkKLSAgICAgICAgcmV0dXJuIHJjOworICAgIHJldHVybiBpb21tdV9jYWxs KGhkLT5wbGF0Zm9ybV9vcHMsIHF1YXJhbnRpbmVfaW5pdCwgZGV2KTsKK30K IAotICAgIGlmICggIWhkLT5wbGF0Zm9ybV9vcHMtPnF1YXJhbnRpbmVfaW5p dCApCi0gICAgICAgIHJldHVybiAwOworc3RhdGljIGludCBfX2luaXQgaW9t bXVfcXVhcmFudGluZV9pbml0KHZvaWQpCit7CisgICAgZG9tX2lvLT5vcHRp b25zIHw9IFhFTl9ET01DVExfQ0RGX2lvbW11OwogCi0gICAgcmV0dXJuIGhk LT5wbGF0Zm9ybV9vcHMtPnF1YXJhbnRpbmVfaW5pdChkb21faW8pOworICAg IHJldHVybiBpb21tdV9kb21haW5faW5pdChkb21faW8sIDApOwogfQogCiBp bnQgX19pbml0IGlvbW11X3NldHVwKHZvaWQpCi0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3BjaS5jCkBAIC04NTgsOSArODU4LDE2IEBAIHN0YXRpYyBpbnQgZGVh c3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4KICAgICAgICAgcmV0dXJuIC1F Tk9ERVY7CiAKICAgICAvKiBEZS1hc3NpZ25tZW50IGZyb20gZG9tX2lvIHNo b3VsZCBkZS1xdWFyYW50aW5lIHRoZSBkZXZpY2UgKi8KLSAgICB0YXJnZXQg PSAoKHBkZXYtPnF1YXJhbnRpbmUgfHwgaW9tbXVfcXVhcmFudGluZSkgJiYK LSAgICAgICAgICAgICAgcGRldi0+ZG9tYWluICE9IGRvbV9pbykgPwotICAg ICAgICBkb21faW8gOiBoYXJkd2FyZV9kb21haW47CisgICAgaWYgKCAocGRl di0+cXVhcmFudGluZSB8fCBpb21tdV9xdWFyYW50aW5lKSAmJiBwZGV2LT5k b21haW4gIT0gZG9tX2lvICkKKyAgICB7CisgICAgICAgIHJldCA9IGlvbW11 X3F1YXJhbnRpbmVfZGV2X2luaXQocGNpX3RvX2RldihwZGV2KSk7CisgICAg ICAgIGlmICggcmV0ICkKKyAgICAgICAgICAgcmV0dXJuIHJldDsKKworICAg ICAgICB0YXJnZXQgPSBkb21faW87CisgICAgfQorICAgIGVsc2UKKyAgICAg ICAgdGFyZ2V0ID0gaGFyZHdhcmVfZG9tYWluOwogCiAgICAgd2hpbGUgKCBw ZGV2LT5waGFudG9tX3N0cmlkZSApCiAgICAgewpAQCAtMTQ0MSw2ICsxNDQ4 LDEzIEBAIHN0YXRpYyBpbnQgYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWlu ICoKICAgICAgICAgbXNpeHRibF9pbml0KGQpOwogICAgIH0KIAorICAgIGlm ICggcGRldi0+ZG9tYWluICE9IGRvbV9pbyApCisgICAgeworICAgICAgICBy YyA9IGlvbW11X3F1YXJhbnRpbmVfZGV2X2luaXQocGNpX3RvX2RldihwZGV2 KSk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICAgZ290byBkb25l OworICAgIH0KKwogICAgIHBkZXYtPmZhdWx0LmNvdW50ID0gMDsKIAogICAg IGlmICggKHJjID0gaGQtPnBsYXRmb3JtX29wcy0+YXNzaWduX2RldmljZShk LCBkZXZmbiwgcGNpX3RvX2RldihwZGV2KSwgZmxhZykpICkKLS0tIGEveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTQzLDYgKzQzLDEy IEBACiAjaW5jbHVkZSAidnRkLmgiCiAjaW5jbHVkZSAiLi4vYXRzLmgiCiAK KyNkZWZpbmUgREVWSUNFX0RPTUlEKGQsIHBkZXYpICgoZCkgIT0gZG9tX2lv ID8gKGQpLT5kb21haW5faWQgXAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgOiAocGRldiktPmFyY2gucHNldWRvX2Rv bWlkKQorI2RlZmluZSBERVZJQ0VfUEdUQUJMRShkLCBwZGV2KSAoKGQpICE9 IGRvbV9pbyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ IGRvbV9pb21tdShkKS0+YXJjaC52dGQucGdkX21hZGRyIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDogKHBkZXYpLT5hcmNoLnZ0ZC5w Z2RfbWFkZHIpCisKIC8qIFBvc3NpYmxlIHVuZmlsdGVyZWQgTEFQSUMvTVNJ IG1lc3NhZ2VzIGZyb20gdW50cnVzdGVkIHNvdXJjZXM/ICovCiBib29sIF9f cmVhZF9tb3N0bHkgdW50cnVzdGVkX21zaTsKIApAQCAtODUsMTMgKzkxLDE4 IEBAIHN0YXRpYyBpbnQgZ2V0X2lvbW11X2RpZChkb21pZF90IGRvbWlkLAog CiAjZGVmaW5lIERJRF9GSUVMRF9XSURUSCAxNgogI2RlZmluZSBESURfSElH SF9PRkZTRVQgOAorCisvKgorICogVGhpcyBmdW5jdGlvbiBtYXkgaGF2ZSAi Y29udGV4dCIgcGFzc2VkIGFzIE5VTEwsIHRvIG1lcmVseSBvYnRhaW4gYSBE SUQKKyAqIGZvciAiZG9taWQiLgorICovCiBzdGF0aWMgaW50IGNvbnRleHRf c2V0X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9t aWQsIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVk IGxvbmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CiAKLSAgICBB U1NFUlQoc3Bpbl9pc19sb2NrZWQoJmlvbW11LT5sb2NrKSk7CisgICAgQVNT RVJUKHBjaWRldnNfbG9ja2VkKCkpOwogCiAgICAgbnJfZG9tID0gY2FwX25k b21zKGlvbW11LT5jYXApOwogICAgIGkgPSBmaW5kX2ZpcnN0X2JpdChpb21t dS0+ZG9taWRfYml0bWFwLCBucl9kb20pOwpAQCAtMTE3LDggKzEyOCwxMyBA QCBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1Y3QKICAg ICB9CiAKICAgICBzZXRfYml0KGksIGlvbW11LT5kb21pZF9iaXRtYXApOwot ICAgIGNvbnRleHQtPmhpICY9IH4oKCgxIDw8IERJRF9GSUVMRF9XSURUSCkg LSAxKSA8PCBESURfSElHSF9PRkZTRVQpOwotICAgIGNvbnRleHQtPmhpIHw9 IChpICYgKCgxIDw8IERJRF9GSUVMRF9XSURUSCkgLSAxKSkgPDwgRElEX0hJ R0hfT0ZGU0VUOworCisgICAgaWYgKCBjb250ZXh0ICkKKyAgICB7CisgICAg ICAgIGNvbnRleHQtPmhpICY9IH4oKCgxIDw8IERJRF9GSUVMRF9XSURUSCkg LSAxKSA8PCBESURfSElHSF9PRkZTRVQpOworICAgICAgICBjb250ZXh0LT5o aSB8PSAoaSAmICgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkpIDw8IERJ RF9ISUdIX09GRlNFVDsKKyAgICB9CisKICAgICByZXR1cm4gMDsKIH0KIApA QCAtMTY4LDggKzE4NCwxMiBAQCBzdGF0aWMgdm9pZCBjaGVja19jbGVhbnVw X2RvbWlkX21hcChzdHJ1CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQogewotICAgIGJvb2wgZm91bmQgPSBhbnlfcGRldl9iZWhp bmRfaW9tbXUoZCwgZXhjbHVkZSwgaW9tbXUpOworICAgIGJvb2wgZm91bmQ7 CisKKyAgICBpZiAoIGQgPT0gZG9tX2lvICkKKyAgICAgICAgcmV0dXJuOwog CisgICAgZm91bmQgPSBhbnlfcGRldl9iZWhpbmRfaW9tbXUoZCwgZXhjbHVk ZSwgaW9tbXUpOwogICAgIC8qCiAgICAgICogSGlkZGVuIGRldmljZXMgYXJl IGFzc29jaWF0ZWQgd2l0aCBEb21YRU4gYnV0IHVzYWJsZSBieSB0aGUgaGFy ZHdhcmUKICAgICAgKiBkb21haW4uIEhlbmNlIHRoZXkgbmVlZCBjb25zaWRl cmluZyBoZXJlIGFzIHdlbGwuCkBAIC0xNDE0LDcgKzE0MzQsNyBAQCBpbnQg ZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgICAgIGRvbWlkID0g aW9tbXUtPmRvbWlkX21hcFtwcmV2X2RpZF07CiAgICAgICAgIGlmICggZG9t aWQgPCBET01JRF9GSVJTVF9SRVNFUlZFRCApCiAgICAgICAgICAgICBwcmV2 X2RvbSA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChkb21pZCk7Ci0gICAgICAg IGVsc2UgaWYgKCBkb21pZCA9PSBET01JRF9JTyApCisgICAgICAgIGVsc2Ug aWYgKCBwZGV2ID8gZG9taWQgPT0gcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQg OiBkb21pZCA+IERPTUlEX01BU0sgKQogICAgICAgICAgICAgcHJldl9kb20g PSByY3VfbG9ja19kb21haW4oZG9tX2lvKTsKICAgICAgICAgaWYgKCAhcHJl dl9kb20gKQogICAgICAgICB7CkBAIC0xNTcwLDE1ICsxNTkwLDEyIEBAIGlu dCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICB7CiAgICAgICAg IGlmICggIXByZXZfZG9tICkKICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9j b250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7 CiAgICAgICAgIGVsc2UgaWYgKCBwcmV2X2RvbSAhPSBkb21haW4gKSAvKiBB dm9pZCBpbmZpbml0ZSByZWN1cnNpb24uICovCi0gICAgICAgIHsKLSAgICAg ICAgICAgIGhkID0gZG9tX2lvbW11KHByZXZfZG9tKTsKICAgICAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKHByZXZfZG9tLCBp b21tdSwgYnVzLCBkZXZmbiwgcGRldiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aGQtPmFyY2gudnRkLnBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9ET01JRChwcmV2X2Rv bSwgcGRldiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVZJQ0VfUEdUQUJMRShwcmV2X2RvbSwgcGRldiksCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt b2RlICYgTUFQX1dJVEhfUk1SUikgPCAwOwotICAgICAgICB9CiAgICAgICAg IGVsc2UKICAgICAgICAgICAgIHJldCA9IDE7CiAKQEAgLTE2MDAsNyArMTYx Nyw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1 Y3QKIHsKICAgICBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAg Y29uc3Qgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwotICAgIHBhZGRy X3QgcGdkX21hZGRyID0gZG9tX2lvbW11KGRvbWFpbiktPmFyY2gudnRkLnBn ZF9tYWRkcjsKKyAgICBwYWRkcl90IHBnZF9tYWRkciA9IERFVklDRV9QR1RB QkxFKGRvbWFpbiwgcGRldik7CiAgICAgZG9taWRfdCBvcmlnX2RvbWlkID0g cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQ7CiAgICAgaW50IHJldCA9IDA7CiAg ICAgdW5zaWduZWQgaW50IGksIG1vZGUgPSAwOwpAQCAtMTYzMyw3ICsxNjUw LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVj dAogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAoIGRvbWFpbiAh PSBwZGV2LT5kb21haW4gKQorICAgIGlmICggZG9tYWluICE9IHBkZXYtPmRv bWFpbiAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKICAgICB7CiAgICAg ICAgIGlmICggcGRldi0+ZG9tYWluLT5pc19keWluZyApCiAgICAgICAgICAg ICBtb2RlIHw9IE1BUF9PV05FUl9EWUlORzsKQEAgLTE2NzIsOCArMTY4OSw4 IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QK ICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAgICBwcmlu dGsoVlREUFJFRklYICIlcGQ6UENJZTogbWFwICVwcFxuIiwKICAgICAgICAg ICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZu KSk7Ci0gICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25l KGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisgICAgICAgIHJldCA9IGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywg ZGV2Zm4sIHBkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERFVklDRV9ET01JRChkb21haW4sIHBkZXYpLCBwZ2RfbWFk ZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUpOwogICAgICAgICBpZiAoIHJldCA+IDAgKQogICAgICAgICAgICAg cmV0ID0gMDsKQEAgLTE2OTYsOCArMTcxMyw4IEBAIHN0YXRpYyBpbnQgZG9t YWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAg ICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CiAKICAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWlu LCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgZG9tYWluLT5kb21haW5f aWQsIHBnZF9tYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBkZXYsIERFVklDRV9ET01JRChkb21haW4sIHBk ZXYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZ2RfbWFkZHIsIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA8IDAgKQog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHByZXZfcHJlc2VudCA9IHJl dDsKQEAgLTE3MjUsOCArMTc0Miw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICovCiAgICAgICAgIGlm ICggcmV0ID49IDAgKQogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZm biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2Rl KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIERFVklDRV9ET01JRChkb21haW4sIHBkZXYpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdkX21h ZGRyLCBtb2RlKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBEZXZpY2Vz IGJlaGluZCBQQ0llLXRvLVBDSS9QQ0l4IGJyaWRnZSBtYXkgZ2VuZXJhdGUg ZGlmZmVyZW50CkBAIC0xNzQxLDggKzE3NTgsOCBAQCBzdGF0aWMgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGlmICggIXJl dCAmJiBwZGV2X3R5cGUoc2VnLCBidXMsIGRldmZuKSA9PSBERVZfVFlQRV9Q Q0llMlBDSV9CUklER0UgJiYKICAgICAgICAgICAgICAoc2VjYnVzICE9IHBk ZXYtPmJ1cyB8fCBwZGV2LT5kZXZmbiAhPSAwKSApCiAgICAgICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQt PmlvbW11LCBzZWNidXMsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLCBkb21haW4tPmRvbWFpbl9pZCwg cGdkX21hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBOVUxMLCBERVZJQ0VfRE9NSUQoZG9tYWlu LCBwZGV2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHBnZF9tYWRkciwgbW9kZSk7CiAKICAgICAgICAgaWYgKCBy ZXQgKQogICAgICAgICB7CkBAIC0xODg5LDcgKzE5MDYsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21hCiAgICAgICAgICAg ICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJZTogdW5tYXAgJXBwXG4iLAog ICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1 cywgZGV2Zm4pKTsKICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9p ZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE RVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAgICAgICAgIGlmICggIXJl dCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNlKHBkZXYs IGRyaGQpID4gMCApCiAgICAgICAgICAgICBkaXNhYmxlX2F0c19kZXZpY2Uo cGRldik7CiAKQEAgLTE5MDAsNyArMTkxNyw3IEBAIHN0YXRpYyBjb25zdCBz dHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRvbWEKICAgICAgICAgICAgIHByaW50 ayhWVERQUkVGSVggIiVwZDpQQ0k6IHVubWFwICVwcFxuIiwKICAgICAgICAg ICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZu KSk7CiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShk b21haW4sIGlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOworICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RP TUlEKGRvbWFpbiwgcGRldikpOwogICAgICAgICBpZiAoIHJldCApCiAgICAg ICAgICAgICBicmVhazsKIApAQCAtMTkyMywxOCArMTk0MCwxMiBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21hCiAgICAgICAg ICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0 bXBfZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAgICAgICAgIC8q IFBDSWUgdG8gUENJL1BDSXggYnJpZGdlICovCi0gICAgICAgIGlmICggcGRl dl90eXBlKHNlZywgdG1wX2J1cywgdG1wX2RldmZuKSA9PSBERVZfVFlQRV9Q Q0llMlBDSV9CUklER0UgKQotICAgICAgICB7Ci0gICAgICAgICAgICByZXQg PSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgdG1w X2J1cywgdG1wX2RldmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKLSAgICAgICAg ICAgIGlmICggIXJldCApCi0gICAgICAgICAgICAgICAgcmV0ID0gZG9tYWlu X2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIHNlY2J1cywgMCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZG9tYWluLT5kb21haW5faWQpOwotICAgICAgICB9Ci0gICAgICAgIGVs c2UgLyogTGVnYWN5IFBDSSBicmlkZ2UgKi8KLSAgICAgICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBf YnVzLCB0bXBfZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOworICAgICAgICBp ZiAoICFyZXQgJiYgcGRldl90eXBlKHNlZywgdG1wX2J1cywgdG1wX2RldmZu KSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0UgKQorICAgICAgICAgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUs IHNlY2J1cywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAKICAg ICAgICAgYnJlYWs7CiAKQEAgLTE5NzcsNiArMTk4OCwyNiBAQCBzdGF0aWMg dm9pZCBpb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0CiAgICAgICAgIGNs ZWFudXBfZG9taWRfbWFwKGQtPmRvbWFpbl9pZCwgZHJoZC0+aW9tbXUpOwog fQogCitzdGF0aWMgdm9pZCBxdWFyYW50aW5lX3RlYXJkb3duKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQpCit7CisgICAg c3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tX2lvKTsK KworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKworICAgIGlmICgg IXBkZXYtPmFyY2gudnRkLnBnZF9tYWRkciApCisgICAgICAgIHJldHVybjsK KworICAgIEFTU0VSVChwYWdlX2xpc3RfZW1wdHkoJmhkLT5hcmNoLnBndGFi bGVzLmxpc3QpKTsKKyAgICBwYWdlX2xpc3RfbW92ZSgmaGQtPmFyY2gucGd0 YWJsZXMubGlzdCwgJnBkZXYtPmFyY2gucGd0YWJsZXNfbGlzdCk7CisgICAg d2hpbGUgKCBpb21tdV9mcmVlX3BndGFibGVzKGRvbV9pbykgPT0gLUVSRVNU QVJUICkKKyAgICAgICAgLyogbm90aGluZyAqLzsKKyAgICBwZGV2LT5hcmNo LnZ0ZC5wZ2RfbWFkZHIgPSAwOworCisgICAgaWYgKCBkcmhkICkKKyAgICAg ICAgY2xlYW51cF9kb21pZF9tYXAocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQs IGRyaGQtPmlvbW11KTsKK30KKwogc3RhdGljIGludCBfX211c3RfY2hlY2sg aW50ZWxfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3Qg ZGZuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbWZuX3QgbWZuLCB1bnNpZ25lZCBpbnQgZmxhZ3MsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l ZCBpbnQgKmZsdXNoX2ZsYWdzKQpAQCAtMjIwMSw2ICsyMjMyLDggQEAgc3Rh dGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ZW5kX2FkZHJlc3MsIDAp OwogICAgIH0KIAorICAgIHF1YXJhbnRpbmVfdGVhcmRvd24ocGRldiwgZHJo ZCk7CisKICAgICBpZiAoIGRyaGQgKQogICAgIHsKICAgICAgICAgaW9tbXVf ZnJlZV9kb21pZChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwKQEAgLTI4OTYs NjkgKzI5MjksMTM1IEBAIHN0YXRpYyB2b2lkIHZ0ZF9kdW1wX3BhZ2VfdGFi bGVzKHN0cnVjdAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWdh d190b19sZXZlbChoZC0+YXJjaC52dGQuYWdhdyksIDAsIDApOwogfQogCi1z dGF0aWMgaW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lX2luaXQo c3RydWN0IGRvbWFpbiAqZCkKK3N0YXRpYyBpbnQgZmlsbF9xcHQoc3RydWN0 IGRtYV9wdGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZlbCwKKyAgICAgICAg ICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdzWzZdKQogewotICAg IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworICAg IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7 CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJjID0gMDsKKworICAg IGZvciAoIGkgPSAwOyAhcmMgJiYgaSA8IFBURV9OVU07ICsraSApCisgICAg eworICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcHRlID0gJnRoaXNbaV0sICpu ZXh0OworCisgICAgICAgIGlmICggIWRtYV9wdGVfcHJlc2VudCgqcHRlKSAp CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIXBnc1tsZXZlbF0gKQor ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAg ICAgICAgICogVGhlIHBndGFibGUgYWxsb2NhdG9yIGlzIGZpbmUgZm9yIHRo ZSBsZWFmIHBhZ2UsIGFzIHdlbGwgYXMKKyAgICAgICAgICAgICAgICAgKiBw YWdlIHRhYmxlIHBhZ2VzLCBhbmQgdGhlIHJlc3VsdGluZyBhbGxvY2F0aW9u cyBhcmUgYWx3YXlzCisgICAgICAgICAgICAgICAgICogemVyb2VkLgorICAg ICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHBnc1tsZXZlbF0g PSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKKyAgICAgICAgICAgICAgICBp ZiAoICFwZ3NbbGV2ZWxdICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAg ICAgICAgICAgICAgIHJjID0gLUVOT01FTTsKKyAgICAgICAgICAgICAgICAg ICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAg ICAgaWYgKCBsZXZlbCApCisgICAgICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgICAgICBuZXh0ID0gbWFwX3Z0ZF9kb21haW5fcGFnZShwYWdlX3Rv X21hZGRyKHBnc1tsZXZlbF0pKTsKKyAgICAgICAgICAgICAgICAgICAgcmMg PSBmaWxsX3FwdChuZXh0LCBsZXZlbCAtIDEsIHBncyk7CisgICAgICAgICAg ICAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShuZXh0KTsKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGRt YV9zZXRfcHRlX2FkZHIoKnB0ZSwgcGFnZV90b19tYWRkcihwZ3NbbGV2ZWxd KSk7CisgICAgICAgICAgICBkbWFfc2V0X3B0ZV9yZWFkYWJsZSgqcHRlKTsK KyAgICAgICAgICAgIGRtYV9zZXRfcHRlX3dyaXRhYmxlKCpwdGUpOworICAg ICAgICB9CisgICAgICAgIGVsc2UgaWYgKCBsZXZlbCAmJiAhZG1hX3B0ZV9z dXBlcnBhZ2UoKnB0ZSkgKQorICAgICAgICB7CisgICAgICAgICAgICBuZXh0 ID0gbWFwX3Z0ZF9kb21haW5fcGFnZShkbWFfcHRlX2FkZHIoKnB0ZSkpOwor ICAgICAgICAgICAgcmMgPSBmaWxsX3FwdChuZXh0LCBsZXZlbCAtIDEsIHBn cyk7CisgICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UobmV4dCk7 CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gcmM7Cit9CisKK3N0 YXRpYyBpbnQgaW50ZWxfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBw Y2lfZGV2ICpwZGV2KQoreworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhk ID0gZG9tX2lvbW11KGRvbV9pbyk7CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAq cGc7Ci0gICAgc3RydWN0IGRtYV9wdGUgKnBhcmVudDsKICAgICB1bnNpZ25l ZCBpbnQgYWdhdyA9IHdpZHRoX3RvX2FnYXcoREVGQVVMVF9ET01BSU5fQURE UkVTU19XSURUSCk7CiAgICAgdW5zaWduZWQgaW50IGxldmVsID0gYWdhd190 b19sZXZlbChhZ2F3KTsKLSAgICBpbnQgcmMgPSAwOworICAgIGNvbnN0IHN0 cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsKKyAgICBjb25zdCBzdHJ1Y3Qg YWNwaV9ybXJyX3VuaXQgKnJtcnI7CisgICAgdW5zaWduZWQgaW50IGksIGJk ZjsKKyAgICBib29sIHJtcnJfZm91bmQgPSBmYWxzZTsKKyAgICBpbnQgcmM7 CiAKLSAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7Cisg ICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOworICAgIEFTU0VSVCghaGQt PmFyY2gudnRkLnBnZF9tYWRkcik7CisgICAgQVNTRVJUKHBhZ2VfbGlzdF9l bXB0eSgmaGQtPmFyY2gucGd0YWJsZXMubGlzdCkpOwogCi0gICAgaWYgKCBo ZC0+YXJjaC52dGQucGdkX21hZGRyICkKKyAgICBpZiAoIHBkZXYtPmFyY2gu dnRkLnBnZF9tYWRkciApCiAgICAgewotICAgICAgICBBU1NFUlRfVU5SRUFD SEFCTEUoKTsKLSAgICAgICAgZ290byBvdXQ7CisgICAgICAgIGNsZWFyX2Rv bWFpbl9wYWdlKHBkZXYtPmFyY2gubGVhZl9tZm4pOworICAgICAgICByZXR1 cm4gMDsKICAgICB9CiAKLSAgICBwZyA9IGlvbW11X2FsbG9jX3BndGFibGUo aGQpOworICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQo cGRldik7CisgICAgaWYgKCAhZHJoZCApCisgICAgICAgIHJldHVybiAtRU5P REVWOwogCi0gICAgcmMgPSAtRU5PTUVNOworICAgIHBnID0gaW9tbXVfYWxs b2NfcGd0YWJsZShoZCk7CiAgICAgaWYgKCAhcGcgKQotICAgICAgICBnb3Rv IG91dDsKKyAgICAgICAgcmV0dXJuIC1FTk9NRU07CiAKKyAgICByYyA9IGNv bnRleHRfc2V0X2RvbWFpbl9pZChOVUxMLCBwZGV2LT5hcmNoLnBzZXVkb19k b21pZCwgZHJoZC0+aW9tbXUpOworCisgICAgLyogVHJhbnNpZW50bHkgaW5z dGFsbCB0aGUgcm9vdCBpbnRvIERvbUlPLCBmb3IgaW9tbXVfaWRlbnRpdHlf bWFwcGluZygpLiAqLwogICAgIGhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgPSBw YWdlX3RvX21hZGRyKHBnKTsKIAotICAgIHBhcmVudCA9IG1hcF92dGRfZG9t YWluX3BhZ2UoaGQtPmFyY2gudnRkLnBnZF9tYWRkcik7Ci0gICAgd2hpbGUg KCBsZXZlbCApCisgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2UgKCBybXJyLCBi ZGYsIGkgKQogICAgIHsKLSAgICAgICAgdWludDY0X3QgbWFkZHI7Ci0gICAg ICAgIHVuc2lnbmVkIGludCBvZmZzZXQ7Ci0KLSAgICAgICAgLyoKLSAgICAg ICAgICogVGhlIHBndGFibGUgYWxsb2NhdG9yIGlzIGZpbmUgZm9yIHRoZSBs ZWFmIHBhZ2UsIGFzIHdlbGwgYXMKLSAgICAgICAgICogcGFnZSB0YWJsZSBw YWdlcywgYW5kIHRoZSByZXN1bHRpbmcgYWxsb2NhdGlvbnMgYXJlIGFsd2F5 cwotICAgICAgICAgKiB6ZXJvZWQuCi0gICAgICAgICAqLwotICAgICAgICBw ZyA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwotCi0gICAgICAgIGlmICgg IXBnICkKLSAgICAgICAgICAgIGdvdG8gb3V0OworICAgICAgICBpZiAoIHJj ICkKKyAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIG1hZGRyID0gcGFn ZV90b19tYWRkcihwZyk7Ci0gICAgICAgIGZvciAoIG9mZnNldCA9IDA7IG9m ZnNldCA8IFBURV9OVU07IG9mZnNldCsrICkKKyAgICAgICAgaWYgKCBybXJy LT5zZWdtZW50ID09IHBkZXYtPnNlZyAmJiBiZGYgPT0gcGRldi0+c2JkZi5i ZGYgKQogICAgICAgICB7Ci0gICAgICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAq cHRlID0gJnBhcmVudFtvZmZzZXRdOworICAgICAgICAgICAgcm1ycl9mb3Vu ZCA9IHRydWU7CiAKLSAgICAgICAgICAgIGRtYV9zZXRfcHRlX2FkZHIoKnB0 ZSwgbWFkZHIpOwotICAgICAgICAgICAgZG1hX3NldF9wdGVfcmVhZGFibGUo KnB0ZSk7CisgICAgICAgICAgICByYyA9IGlvbW11X2lkZW50aXR5X21hcHBp bmcoZG9tX2lvLCBwMm1fYWNjZXNzX3J3LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJtcnItPmJhc2VfYWRkcmVzcywgcm1y ci0+ZW5kX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMCk7CisgICAgICAgICAgICBpZiAoIHJjICkKKyAgICAg ICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgKKyAgICAg ICAgICAgICAgICAgICAgICAgIiVwcDogUk1SUiBxdWFyYW50aW5lIG1hcHBp bmcgZmFpbGVkXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAmcGRldi0+ c2JkZik7CiAgICAgICAgIH0KLSAgICAgICAgaW9tbXVfc3luY19jYWNoZShw YXJlbnQsIFBBR0VfU0laRSk7CisgICAgfQogCi0gICAgICAgIHVubWFwX3Z0 ZF9kb21haW5fcGFnZShwYXJlbnQpOwotICAgICAgICBwYXJlbnQgPSBtYXBf dnRkX2RvbWFpbl9wYWdlKG1hZGRyKTsKLSAgICAgICAgbGV2ZWwtLTsKKyAg ICBpb21tdV9pZGVudGl0eV9tYXBfdGVhcmRvd24oZG9tX2lvKTsKKyAgICBo ZC0+YXJjaC52dGQucGdkX21hZGRyID0gMDsKKyAgICBwZGV2LT5hcmNoLnZ0 ZC5wZ2RfbWFkZHIgPSBwYWdlX3RvX21hZGRyKHBnKTsKKworICAgIGlmICgg IXJjICkKKyAgICB7CisgICAgICAgIHN0cnVjdCBkbWFfcHRlICpyb290Owor ICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZ3NbNl0gPSB7fTsKKworICAg ICAgICBzcGluX2xvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisKKyAg ICAgICAgcm9vdCA9IG1hcF92dGRfZG9tYWluX3BhZ2UocGRldi0+YXJjaC52 dGQucGdkX21hZGRyKTsKKyAgICAgICAgcmMgPSBmaWxsX3FwdChyb290LCBs ZXZlbCAtIDEsIHBncyk7CisgICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFn ZShyb290KTsKKworICAgICAgICBwZGV2LT5hcmNoLmxlYWZfbWZuID0gcGFn ZV90b19tZm4ocGdzWzBdKTsKKworICAgICAgICBzcGluX3VubG9jaygmaGQt PmFyY2gubWFwcGluZ19sb2NrKTsKICAgICB9Ci0gICAgdW5tYXBfdnRkX2Rv bWFpbl9wYWdlKHBhcmVudCk7CiAKLSAgICByYyA9IDA7CisgICAgcGFnZV9s aXN0X21vdmUoJnBkZXYtPmFyY2gucGd0YWJsZXNfbGlzdCwgJmhkLT5hcmNo LnBndGFibGVzLmxpc3QpOwogCi0gb3V0OgotICAgIHNwaW5fdW5sb2NrKCZo ZC0+YXJjaC5tYXBwaW5nX2xvY2spOworICAgIGlmICggcmMgKQorICAgICAg ICBxdWFyYW50aW5lX3RlYXJkb3duKHBkZXYsIGRyaGQpOwogCi0gICAgLyog UGFnZXMgbWF5IGJlIGxlYWtlZCBpbiBmYWlsdXJlIGNhc2UgKi8KICAgICBy ZXR1cm4gcmM7CiB9CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv dnRkL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmgKQEAgLTUwOSw3ICs1MDksNyBAQCBzdHJ1Y3QgdnRkX2lvbW11 IHsKICAgICB1MzIgbnJfcHRfbGV2ZWxzOwogICAgIHU2NAljYXA7CiAgICAg dTY0CWVjYXA7Ci0gICAgc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0IGNv bnRleHQsIGRvbWFpbiBpZHMgKi8KKyAgICBzcGlubG9ja190IGxvY2s7IC8q IHByb3RlY3QgY29udGV4dCAqLwogICAgIHNwaW5sb2NrX3QgcmVnaXN0ZXJf bG9jazsgLyogcHJvdGVjdCBpb21tdSByZWdpc3RlciBoYW5kbGluZyAqLwog ICAgIHU2NCByb290X21hZGRyOyAvKiByb290IGVudHJ5IG1hY2hpbmUgYWRk cmVzcyAqLwogICAgIG5vZGVpZF90IG5vZGU7Ci0tLSBhL3hlbi9pbmNsdWRl L3hlbi9pb21tdS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBA IC0yMzQsNyArMjM0LDcgQEAgdHlwZWRlZiBpbnQgaW9tbXVfZ3JkbV90KHhl bl9wZm5fdCBzdGFydAogc3RydWN0IGlvbW11X29wcyB7CiAgICAgaW50ICgq aW5pdCkoc3RydWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmh3ZG9tX2lu aXQpKHN0cnVjdCBkb21haW4gKmQpOwotICAgIGludCAoKnF1YXJhbnRpbmVf aW5pdCkoc3RydWN0IGRvbWFpbiAqZCk7CisgICAgaW50ICgqcXVhcmFudGlu ZV9pbml0KShkZXZpY2VfdCAqZGV2KTsKICAgICBpbnQgKCphZGRfZGV2aWNl KSh1OCBkZXZmbiwgZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqZW5hYmxl X2RldmljZSkoZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqcmVtb3ZlX2Rl dmljZSkodTggZGV2Zm4sIGRldmljZV90ICpkZXYpOwpAQCAtMzUyLDYgKzM1 Miw3IEBAIGludCBfX211c3RfY2hlY2sgaW9tbXVfc3VzcGVuZCh2b2lkKTsK IHZvaWQgaW9tbXVfcmVzdW1lKHZvaWQpOwogdm9pZCBpb21tdV9jcmFzaF9z aHV0ZG93bih2b2lkKTsKIGludCBpb21tdV9nZXRfcmVzZXJ2ZWRfZGV2aWNl X21lbW9yeShpb21tdV9ncmRtX3QgKiwgdm9pZCAqKTsKK2ludCBpb21tdV9x dWFyYW50aW5lX2Rldl9pbml0KGRldmljZV90ICpkZXYpOwogCiAjaWZkZWYg Q09ORklHX0hBU19QQ0kKIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0cnVj dCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-01.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-01.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggKGRlKWFzc2lnbiBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSB1cGRhdGVkLgoKQWxzbyBhZGp1c3QgYSByZWxhdGVk IGxvZyBtZXNzYWdlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM1OCAvIHBhcnQg b2YgWFNBLTQwMC4KCkZpeGVzOiA4Yjk5ZjQ0MDBiNjkgKCJWVC1kOiBmaXgg Uk1SUiByZWxhdGVkIGVycm9yIGhhbmRsaW5nIikKU2lnbmVkLW9mZi1ieTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpSZXZpZXdlZC1ieTog Um9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+ClJldmll d2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxAeGVuLm9yZz4KUmV2aWV3ZWQt Ynk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgoKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmMKQEAgLTI0MTksNiAr MjQxOSwxMCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNo aXAoCiB7CiAgICAgaW50IHJldDsKIAorICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X3VubWFwKHNvdXJjZSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0 ICkKKyAgICAgICAgcmV0dXJuIHJldDsKKwogICAgIC8qCiAgICAgICogRGV2 aWNlcyBhc3NpZ25lZCB0byB1bnRydXN0ZWQgZG9tYWlucyAoaGVyZSBhc3N1 bWVkIHRvIGJlIGFueSBkb21VKQogICAgICAqIGNhbiBhdHRlbXB0IHRvIHNl bmQgYXJiaXRyYXJ5IExBUElDL01TSSBtZXNzYWdlcy4gV2UgYXJlIHVucHJv dGVjdGVkCkBAIC0yNDU1LDEwICsyNDU5LDYgQEAgc3RhdGljIGludCByZWFz c2lnbl9kZXZpY2Vfb3duZXJzaGlwKAogICAgICAgICAgICAgfQogICAgIH0K IAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2 Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICAgICAgcmV0dXJuIHJl dDsKLQogICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ ZG9tYWluICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBsaXN0X21vdmUo JnBkZXYtPmRvbWFpbl9saXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwpAQCAt MjUzNCw5ICsyNTM0LDggQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0ID0gcmVh c3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7Ci0g ICAgaWYgKCByZXQgfHwgZCA9PSBkb21faW8gKQotICAgICAgICByZXR1cm4g cmV0OworICAgIGlmICggZCA9PSBkb21faW8gKQorICAgICAgICByZXR1cm4g cmVhc3NpZ25fZGV2aWNlX293bmVyc2hpcChzLCBkLCBkZXZmbiwgcGRldik7 CiAKICAgICAvKiBTZXR1cCBybXJyIGlkZW50aXR5IG1hcHBpbmcgKi8KICAg ICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBpICkKQEAgLTI1 NDksMjAgKzI1NDgsMzcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hc3Np Z25fZGV2aWNlKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgZmxhZyk7CiAgICAgICAgICAg ICBpZiAoIHJldCApCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAg aW50IHJjOwotCi0gICAgICAgICAgICAgICAgcmMgPSByZWFzc2lnbl9kZXZp Y2Vfb3duZXJzaGlwKGQsIHMsIGRldmZuLCBwZGV2KTsKICAgICAgICAgICAg ICAgICBwcmludGsoWEVOTE9HX0dfRVJSIFZURFBSRUZJWAotICAgICAgICAg ICAgICAgICAgICAgICAiIGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uICgl IlBSSXg2NCIsJSJQUkl4NjQiXSBmb3IgRG9tJWQgKCVkKVxuIiwKLSAgICAg ICAgICAgICAgICAgICAgICAgcm1yci0+YmFzZV9hZGRyZXNzLCBybXJyLT5l bmRfYWRkcmVzcywKLSAgICAgICAgICAgICAgICAgICAgICAgZC0+ZG9tYWlu X2lkLCByZXQpOwotICAgICAgICAgICAgICAgIGlmICggcmMgKQotICAgICAg ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19FUlIgVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAi IGZhaWxlZCB0byByZWNsYWltICVwcCBmcm9tICVwZCAoJWQpXG4iLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMyhzZWcsIGJ1cywg ZGV2Zm4pLCBkLCByYyk7Ci0gICAgICAgICAgICAgICAgICAgIGRvbWFpbl9j cmFzaChkKTsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICIlcGQ6IGNhbm5vdCBtYXAgcmVzZXJ2ZWQgcmVnaW9uIFslIlBS SXg2NCIsJSJQUkl4NjQiXTogJWRcbiIsCisgICAgICAgICAgICAgICAgICAg ICAgIGQsIHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJlc3Ms IHJldCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9 CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoICFyZXQgKQorICAgICAg ICByZXQgPSByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlwKHMsIGQsIGRldmZu LCBwZGV2KTsKKworICAgIC8qIFNlZSByZWFzc2lnbl9kZXZpY2Vfb3duZXJz aGlwKCkgZm9yIHRoZSBod2RvbSBhc3BlY3QuICovCisgICAgaWYgKCAhcmV0 IHx8IGlzX2hhcmR3YXJlX2RvbWFpbihkKSApCisgICAgICAgIHJldHVybiBy ZXQ7CisKKyAgICBmb3JfZWFjaF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBp ICkKKyAgICB7CisgICAgICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBzZWcg JiYKKyAgICAgICAgICAgICBQQ0lfQlVTKGJkZikgPT0gYnVzICYmCisgICAg ICAgICAgICAgUENJX0RFVkZOMihiZGYpID09IGRldmZuICkKKyAgICAgICAg eworICAgICAgICAgICAgaW50IHJjID0gaW9tbXVfaWRlbnRpdHlfbWFwcGlu ZyhkLCBwMm1fYWNjZXNzX3gsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJtcnItPmJhc2VfYWRkcmVzcywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ ZW5kX2FkZHJlc3MsIDApOworCisgICAgICAgICAgICBpZiAoIHJjICYmIHJj ICE9IC1FTk9FTlQgKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWAorICAgICAgICAgICAgICAg ICAgICAgICAiJXBkOiBjYW5ub3QgdW5tYXAgcmVzZXJ2ZWQgcmVnaW9uIFsl IlBSSXg2NCIsJSJQUkl4NjQiXTogJWRcbiIsCisgICAgICAgICAgICAgICAg ICAgICAgIGQsIHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJl c3MsIHJjKTsKKyAgICAgICAgICAgICAgICBkb21haW5fY3Jhc2goZCk7CiAg ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAg IH0K --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-02.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-02.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBmaXggYWRkL3JlbW92ZSBvcmRlcmluZyB3aGVuIFJNUlJzIGFy ZSBpbiB1c2UKCkluIHRoZSBldmVudCB0aGF0IHRoZSBSTVJSIG1hcHBpbmdz IGFyZSBlc3NlbnRpYWwgZm9yIGRldmljZSBvcGVyYXRpb24sCnRoZXkgc2hv dWxkIGJlIGVzdGFibGlzaGVkIGJlZm9yZSB1cGRhdGluZyB0aGUgZGV2aWNl J3MgY29udGV4dCBlbnRyeSwKd2hpbGUgdGhleSBzaG91bGQgYmUgdG9ybiBk b3duIG9ubHkgYWZ0ZXIgdGhlIGRldmljZSdzIGNvbnRleHQgZW50cnkgd2Fz CnN1Y2Nlc3NmdWxseSBjbGVhcmVkLgoKQWxzbyBzd2l0Y2ggdG8gJXBkIGlu IHJlbGF0ZWQgbG9nIG1lc3NhZ2VzLgoKRml4ZXM6IGZhODhjZmFkZjkxOCAo InZ0LWQ6IE1hcCBSTVJSIGluIGludGVsX2lvbW11X2FkZF9kZXZpY2UoKSBp ZiB0aGUgZGV2aWNlIGhhcyBSTVJSIikKRml4ZXM6IDhiOTlmNDQwMGI2OSAo IlZULWQ6IGZpeCBSTVJSIHJlbGF0ZWQgZXJyb3IgaGFuZGxpbmciKQpTaWdu ZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJl dmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4 LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50 ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTE5OTcsMTQgKzE5OTcsNiBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X2FkZF9kZXZpY2UodTggZGV2CiAgICAgaWYgKCAhcGRldi0+ZG9tYWlu ICkKICAgICAgICAgcmV0dXJuIC1FSU5WQUw7CiAKLSAgICByZXQgPSBkb21h aW5fY29udGV4dF9tYXBwaW5nKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYp OwotICAgIGlmICggcmV0ICkKLSAgICB7Ci0gICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsICJkJWQ6IGNvbnRleHQgbWFwcGluZyBmYWls ZWRcbiIsCi0gICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLT5kb21haW5f aWQpOwotICAgICAgICByZXR1cm4gcmV0OwotICAgIH0KLQogICAgIGZvcl9l YWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7CiAgICAg ICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBwZGV2LT5zZWcgJiYKQEAgLTIw MjEsMTIgKzIwMTMsMTcgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9hZGRf ZGV2aWNlKHU4IGRldgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRy ZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwKTsKICAgICAgICAgICAgIGlmICggcmV0ICkKLSAgICAgICAgICAgICAg ICBkcHJpbnRrKFhFTkxPR19FUlIgVlREUFJFRklYLCAiZCVkOiBSTVJSIG1h cHBpbmcgZmFpbGVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAgIGRwcmlu dGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IFJNUlIgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LT5kb21h aW4pOwogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyhwZGV2LT5kb21haW4sIGRl dmZuLCBwZGV2KTsKKyAgICBpZiAoIHJldCApCisgICAgICAgIGRwcmludGso WEVOTE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6IGNvbnRleHQgbWFwcGluZyBm YWlsZWRcbiIsCisgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluKTsKKwor ICAgIHJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVf ZW5hYmxlX2RldmljZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKQEAgLTIwNDgs MTEgKzIwNDUsMTUgQEAgc3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVf ZGV2aWNlKHU4CiB7CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJy OwogICAgIHUxNiBiZGY7Ci0gICAgaW50IGk7CisgICAgaW50IHJldCwgaTsK IAogICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAt RUlOVkFMOwogCisgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRl di0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgaWYgKCByZXQgKQorICAg ICAgICByZXR1cm4gcmV0OworCiAgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2Ug KCBybXJyLCBiZGYsIGkgKQogICAgIHsKICAgICAgICAgaWYgKCBybXJyLT5z ZWdtZW50ICE9IHBkZXYtPnNlZyB8fApAQCAtMjA2OCw3ICsyMDY5LDcgQEAg c3RhdGljIGludCBpbnRlbF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcm1yci0+ZW5kX2FkZHJlc3Ms IDApOwogICAgIH0KIAotICAgIHJldHVybiBkb21haW5fY29udGV4dF91bm1h cChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICByZXR1cm4gMDsK IH0KIAogc3RhdGljIGludCBfX2h3ZG9tX2luaXQgc2V0dXBfaHdkb21fZGV2 aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRldikK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-03.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-03.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHRpZ2h0ZW4gaW9tbXVfYWxsb2NfcGd0YWJsZSgpJ3Mg cGFyYW1ldGVyCgpUaGlzIGlzIHRvIG1ha2UgbW9yZSBvYnZpb3VzIHRoYXQg bm90aGluZyBvdXRzaWRlIG9mIGRvbWFpbl9pb21tdShkKQphY3R1YWxseSBj aGFuZ2VzIG9yIGlzIG90aGVyd2lzZSBuZWVkZWQgYnkgdGhlIGZ1bmN0aW9u LgoKTm8gZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpTaWduZWQtb2Zm LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk LWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4K UmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZp ZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+Cgot LS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKKysrIGIveGVuL2lu Y2x1ZGUvYXNtLXg4Ni9pb21tdS5oCkBAIC0xNDIsNyArMTQyLDggQEAgaW50 IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9kZXNjCiB9KQogCiBp bnQgX19tdXN0X2NoZWNrIGlvbW11X2ZyZWVfcGd0YWJsZXMoc3RydWN0IGRv bWFpbiAqZCk7Ci1zdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hlY2sgaW9t bXVfYWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluICpkKTsKK3N0cnVjdCBk b21haW5faW9tbXU7CitzdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hlY2sg aW9tbXVfYWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCk7 CiAKICNlbmRpZiAvKiAhX19BUkNIX1g4Nl9JT01NVV9IX18gKi8KIC8qCi0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAuYwor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMK QEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgaW50IGlvbW11X3BkZV9mcm9t X2RmbihzdHJ1Y3QgZG9tCiAgICAgdW5zaWduZWQgbG9uZyAgbmV4dF90YWJs ZV9tZm47CiAgICAgdW5zaWduZWQgaW50IGxldmVsOwogICAgIHN0cnVjdCBw YWdlX2luZm8gKnRhYmxlOwotICAgIGNvbnN0IHN0cnVjdCBkb21haW5faW9t bXUgKmhkID0gZG9tX2lvbW11KGQpOworICAgIHN0cnVjdCBkb21haW5faW9t bXUgKmhkID0gZG9tX2lvbW11KGQpOwogCiAgICAgdGFibGUgPSBoZC0+YXJj aC5hbWQucm9vdF90YWJsZTsKICAgICBsZXZlbCA9IGhkLT5hcmNoLmFtZC5w YWdpbmdfbW9kZTsKQEAgLTIxOSw3ICsyMTksNyBAQCBzdGF0aWMgaW50IGlv bW11X3BkZV9mcm9tX2RmbihzdHJ1Y3QgZG9tCiAgICAgICAgICAgICBtZm4g PSBuZXh0X3RhYmxlX21mbjsKIAogICAgICAgICAgICAgLyogYWxsb2NhdGUg bG93ZXIgbGV2ZWwgcGFnZSB0YWJsZSAqLwotICAgICAgICAgICAgdGFibGUg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICAgICAgdGFibGUg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKICAgICAgICAgICAgIGlmICgg dGFibGUgPT0gTlVMTCApCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAg ICAgQU1EX0lPTU1VX0VSUk9SKCJjYW5ub3QgYWxsb2NhdGUgSS9PIHBhZ2Ug dGFibGVcbiIpOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHN0YXRpYyBpbnQgaW9t bXVfcGRlX2Zyb21fZGZuKHN0cnVjdCBkb20KIAogICAgICAgICAgICAgaWYg KCBuZXh0X3RhYmxlX21mbiA9PSAwICkKICAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICB0YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoZCk7Cisg ICAgICAgICAgICAgICAgdGFibGUgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhk KTsKICAgICAgICAgICAgICAgICBpZiAoIHRhYmxlID09IE5VTEwgKQogICAg ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgQU1EX0lPTU1V X0VSUk9SKCJjYW5ub3QgYWxsb2NhdGUgSS9PIHBhZ2UgdGFibGVcbiIpOwpA QCAtNTUzLDcgKzU1Myw3IEBAIGludCBfX2luaXQgYW1kX2lvbW11X3F1YXJh bnRpbmVfaW5pdChzdHIKIAogICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFw cGluZ19sb2NrKTsKIAotICAgIGhkLT5hcmNoLmFtZC5yb290X3RhYmxlID0g aW9tbXVfYWxsb2NfcGd0YWJsZShkKTsKKyAgICBoZC0+YXJjaC5hbWQucm9v dF90YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwogICAgIGlmICgg IWhkLT5hcmNoLmFtZC5yb290X3RhYmxlICkKICAgICAgICAgZ290byBvdXQ7 CiAKQEAgLTU2OCw3ICs1NjgsNyBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9x dWFyYW50aW5lX2luaXQoc3RyCiAgICAgICAgICAqIHBhZ2UgdGFibGUgcGFn ZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMK ICAgICAgICAgICogemVyb2VkLgogICAgICAgICAgKi8KLSAgICAgICAgcGcg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBwZyA9IGlvbW11 X2FsbG9jX3BndGFibGUoaGQpOwogICAgICAgICBpZiAoICFwZyApCiAgICAg ICAgICAgICBicmVhazsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3Vn aC9hbWQvcGNpX2FtZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKQEAgLTI0Miw3ICsyNDIsNyBA QCBpbnQgYW1kX2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRvbWFpbiAqCiAK ICAgICBpZiAoIHVubGlrZWx5KCFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSkg KQogICAgIHsKLSAgICAgICAgaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBp b21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBoZC0+YXJjaC5hbWQu cm9vdF90YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwogICAgICAg ICBpZiAoICFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSApCiAgICAgICAgICAg ICByZXR1cm4gLUVOT01FTTsKICAgICB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0zMzAsNyArMzMwLDcgQEAgc3RhdGlj IHU2NCBhZGRyX3RvX2RtYV9wYWdlX21hZGRyKHN0cnVjdAogICAgIHsKICAg ICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7CiAKLSAgICAgICAgaWYgKCAh YWxsb2MgfHwgIShwZyA9IGlvbW11X2FsbG9jX3BndGFibGUoZG9tYWluKSkg KQorICAgICAgICBpZiAoICFhbGxvYyB8fCAhKHBnID0gaW9tbXVfYWxsb2Nf cGd0YWJsZShoZCkpICkKICAgICAgICAgICAgIGdvdG8gb3V0OwogCiAgICAg ICAgIGhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgPSBwYWdlX3RvX21hZGRyKHBn KTsKQEAgLTM1MCw3ICszNTAsNyBAQCBzdGF0aWMgdTY0IGFkZHJfdG9fZG1h X3BhZ2VfbWFkZHIoc3RydWN0CiAgICAgICAgICAgICBpZiAoICFhbGxvYyAp CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgICAgIHBnID0g aW9tbXVfYWxsb2NfcGd0YWJsZShkb21haW4pOworICAgICAgICAgICAgcGcg PSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKICAgICAgICAgICAgIGlmICgg IXBnICkKICAgICAgICAgICAgICAgICBicmVhazsKIApAQCAtMjc2Niw3ICsy NzY2LDcgQEAgc3RhdGljIGludCBfX2luaXQgaW50ZWxfaW9tbXVfcXVhcmFu dGluZQogICAgICAgICBnb3RvIG91dDsKICAgICB9CiAKLSAgICBwZyA9IGlv bW11X2FsbG9jX3BndGFibGUoZCk7CisgICAgcGcgPSBpb21tdV9hbGxvY19w Z3RhYmxlKGhkKTsKIAogICAgIHJjID0gLUVOT01FTTsKICAgICBpZiAoICFw ZyApCkBAIC0yNzg1LDcgKzI3ODUsNyBAQCBzdGF0aWMgaW50IF9faW5pdCBp bnRlbF9pb21tdV9xdWFyYW50aW5lCiAgICAgICAgICAqIHBhZ2UgdGFibGUg cGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdh eXMKICAgICAgICAgICogemVyb2VkLgogICAgICAgICAgKi8KLSAgICAgICAg cGcgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGQpOworICAgICAgICBwZyA9IGlv bW11X2FsbG9jX3BndGFibGUoaGQpOwogCiAgICAgICAgIGlmICggIXBnICkK ICAgICAgICAgICAgIGdvdG8gb3V0OwotLS0gYS94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC94ODYvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC94ODYvaW9tbXUuYwpAQCAtNDE2LDkgKzQxNiw4IEBAIGludCBpb21t dV9mcmVlX3BndGFibGVzKHN0cnVjdCBkb21haW4gKmQKICAgICByZXR1cm4g MDsKIH0KIAotc3RydWN0IHBhZ2VfaW5mbyAqaW9tbXVfYWxsb2NfcGd0YWJs ZShzdHJ1Y3QgZG9tYWluICpkKQorc3RydWN0IHBhZ2VfaW5mbyAqaW9tbXVf YWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCkKIHsKLSAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKICAg ICB1bnNpZ25lZCBpbnQgbWVtZmxhZ3MgPSAwOwogICAgIHN0cnVjdCBwYWdl X2luZm8gKnBnOwogICAgIHZvaWQgKnA7Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-04.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-04.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBkcm9wIG93bmVyc2hpcCBjaGVja2luZyBmcm9tIGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKCkKCkRlc3BpdGUgcHV0dGluZyBpbiBxdWl0 ZSBhIGJpdCBvZiBlZmZvcnQgaXQgd2FzIG5vdCBwb3NzaWJsZSB0bwplc3Rh Ymxpc2ggd2h5IGV4YWN0bHkgdGhpcyBjb2RlIGV4aXN0cyAoYmV5b25kIHBv c3NpYmx5IHNhbml0eQpjaGVja2luZykuIEluc3RlYWQgb2YgYSBzdWJzZXF1 ZW50IGNoYW5nZSBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGlzCmxvZ2ljLCBz aW1wbHkgZ2V0IHJpZCBvZiBpdC4KClRha2UgdGhlIG9wcG9ydHVuaXR5IGFu ZCBtb3ZlIHRoZSByZXNwZWN0aXZlIHVubWFwX3Z0ZF9kb21haW5fcGFnZSgp IG91dApvZiB0aGUgbG9ja2VkIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KCi0tLSBhL3hl bi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5jCkBAIC0xMjQsMjggKzEy NCw2IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVj dAogICAgIHJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGNvbnRleHRfZ2V0 X2RvbWFpbl9pZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQotewotICAgIHVuc2lnbmVkIGxvbmcgZG9tX2luZGV4LCBu cl9kb207Ci0gICAgaW50IGRvbWlkID0gLTE7Ci0KLSAgICBpZiAoaW9tbXUg JiYgY29udGV4dCkKLSAgICB7Ci0gICAgICAgIG5yX2RvbSA9IGNhcF9uZG9t cyhpb21tdS0+Y2FwKTsKLQotICAgICAgICBkb21faW5kZXggPSBjb250ZXh0 X2RvbWFpbl9pZCgqY29udGV4dCk7Ci0KLSAgICAgICAgaWYgKCBkb21faW5k ZXggPCBucl9kb20gJiYgaW9tbXUtPmRvbWlkX21hcCApCi0gICAgICAgICAg ICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbZG9tX2luZGV4XTsKLSAgICAg ICAgZWxzZQotICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcgVlRE UFJFRklYLAotICAgICAgICAgICAgICAgICAgICAiZG9tX2luZGV4ICVsdSBl eGNlZWRzIG5yX2RvbSAlbHUgb3IgaW9tbXUgaGFzIG5vIGRvbWlkX21hcFxu IiwKLSAgICAgICAgICAgICAgICAgICAgZG9tX2luZGV4LCBucl9kb20pOwot ICAgIH0KLSAgICByZXR1cm4gZG9taWQ7Ci19Ci0KIHN0YXRpYyB2b2lkIGNs ZWFudXBfZG9taWRfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpCiB7CiAgICAgaW50IGlvbW11X2RvbWlkID0g ZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOwpAQCAtMTQxNiw0 NCArMTM5NCw5IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgK IAogICAgIGlmICggY29udGV4dF9wcmVzZW50KCpjb250ZXh0KSApCiAgICAg ewotICAgICAgICBpbnQgcmVzID0gMDsKLQotICAgICAgICAvKiBUcnkgdG8g Z2V0IGRvbWFpbiBvd25lcnNoaXAgZnJvbSBkZXZpY2Ugc3RydWN0dXJlLiAg SWYgdGhhdCdzCi0gICAgICAgICAqIG5vdCBhdmFpbGFibGUsIHRyeSB0byBy ZWFkIGl0IGZyb20gdGhlIGNvbnRleHQgaXRzZWxmLiAqLwotICAgICAgICBp ZiAoIHBkZXYgKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIHBkZXYt PmRvbWFpbiAhPSBkb21haW4gKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19JTkZPIFZURFBSRUZJWCAiJXBkOiAl cHAgb3duZWQgYnkgJXBkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbiksCi0gICAgICAgICAg ICAgICAgICAgICAgIHBkZXYtPmRvbWFpbik7Ci0gICAgICAgICAgICAgICAg cmVzID0gLUVJTlZBTDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg ICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgICAgIGludCBjZG9tYWlu OwotICAgICAgICAgICAgY2RvbWFpbiA9IGNvbnRleHRfZ2V0X2RvbWFpbl9p ZChjb250ZXh0LCBpb21tdSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAg IGlmICggY2RvbWFpbiA8IDAgKQotICAgICAgICAgICAgewotICAgICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19XQVJOSU5HIFZURFBSRUZJWAotICAg ICAgICAgICAgICAgICAgICAgICAiJXBkOiAlcHAgbWFwcGVkLCBidXQgY2Fu J3QgZmluZCBvd25lclxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgZG9t YWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwotICAgICAgICAg ICAgICAgIHJlcyA9IC1FSU5WQUw7Ci0gICAgICAgICAgICB9Ci0gICAgICAg ICAgICBlbHNlIGlmICggY2RvbWFpbiAhPSBkb21haW4tPmRvbWFpbl9pZCAp Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX0lORk8gVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICIl cGQ6ICVwcCBhbHJlYWR5IG1hcHBlZCB0byBkJWQiLAotICAgICAgICAgICAg ICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZu KSwgY2RvbWFpbik7Ci0gICAgICAgICAgICAgICAgcmVzID0gLUVJTlZBTDsK LSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHVubWFwX3Z0 ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOwogICAgICAgICBzcGlu X3VubG9jaygmaW9tbXUtPmxvY2spOwotICAgICAgICByZXR1cm4gcmVzOwor ICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVz KTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCiAgICAgaWYgKCBpb21t dV9od2RvbV9wYXNzdGhyb3VnaCAmJiBpc19oYXJkd2FyZV9kb21haW4oZG9t YWluKSApCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-05.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-05.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiByZS1hc3NpZ24gZGV2aWNlcyBkaXJlY3RseQoKRGV2aWNlcyB3 aXRoIFJNUlJzLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQgaG93L3do ZW4gdGhlIHNwZWNpZmllZAptZW1vcnkgcmVnaW9ucyBtYXkgZ2V0IGFjY2Vz c2VkLCBtYXkgbm90IGJlIGxlZnQgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIK cmVzcGVjdGl2ZSBtYXBwaW5ncyAoYXMgbG9uZyBhcyBpdCdzIG5vdCBjZXJ0 YWluIHRoYXQgdGhlIGRldmljZSBoYXMKYmVlbiBmdWxseSBxdWllc2NlZCku IEhlbmNlIHJhdGhlciB0aGFuIHVubWFwcGluZyB0aGUgb2xkIGNvbnRleHQg YW5kCnRoZW4gbWFwcGluZyB0aGUgbmV3IG9uZSwgcmUtYXNzaWdubWVudCBu ZWVkcyB0byBiZSBkb25lIGluIGEgc2luZ2xlCnN0ZXAuCgpUaGlzIGlzIENW RS0yMDIyLTI2MzU5IC8gcGFydCBvZiBYU0EtNDAwLgoKUmVwb3J0ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKU2lt aWxhcmx5IHF1YXJhbnRpbmluZyBzY3JhdGNoLXBhZ2UgbW9kZSByZWxpZXMg b24gcGFnZSB0YWJsZXMgdG8gYmUKY29udGludW91c2x5IHdpcmVkIHVwLgoK VG8gYXZvaWQgY29tcGxpY2F0aW5nIHRoaW5ncyBtb3JlIHRoYW4gbmVjZXNz YXJ5LCB0cmVhdCBhbGwgZGV2aWNlcwptb3N0bHkgZXF1YWxseSwgaS5lLiBy ZWdhcmRsZXNzIG9mIHRoZWlyIGFzc29jaWF0aW9uIHdpdGggYW55IFJNUlJz LiBUaGUKbWFpbiBkaWZmZXJlbmNlIGlzIHdoZW4gaXQgY29tZXMgdG8gdXBk YXRpbmcgY29udGV4dCBlbnRyaWVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21p YyB3aGVuIHRoZXJlIGFyZSBSTVJScy4gWWV0IGF0b21pY2l0eSBjYW4gb25s eSBiZSBhY2hpZXZlZAp3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBv ZiB3aGljaCB3ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClRoZSBzZWVtaW5n bHkgY29tcGxpY2F0ZWQgY2hvaWNlIG9mIG5vbi1uZWdhdGl2ZSByZXR1cm4g dmFsdWVzIGZvcgpkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpIGlzIHRv IGxpbWl0IGNvZGUgY2h1cm46IFRoaXMgd2F5IGNhbGxlcnMKcGFzc2luZyBO VUxMIGZvciBwZGV2IGRvbid0IG5lZWQgZmlkZGxpbmcgd2l0aC4KClNpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2 aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvZXh0 ZXJuLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVy bi5oCkBAIC04NCw3ICs4NCw4IEBAIHZvaWQgZnJlZV9wZ3RhYmxlX21hZGRy KHU2NCBtYWRkcik7CiB2b2lkICptYXBfdnRkX2RvbWFpbl9wYWdlKHU2NCBt YWRkcik7CiB2b2lkIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb25zdCB2b2lk ICp2YSk7CiBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoc3RydWN0 IGRvbWFpbiAqZG9tYWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMsIHU4IGRldmZu LCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqKTsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwgdW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9j b250ZXh0X3VubWFwX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVj dCB2dGRfaW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1OCBidXMsIHU4IGRldmZuKTsKIGludCBpbnRlbF9pb21tdV9nZXRf cmVzZXJ2ZWRfZGV2aWNlX21lbW9yeShpb21tdV9ncmRtX3QgKmZ1bmMsIHZv aWQgKmN0eHQpOwpAQCAtMTA0LDggKzEwNSw4IEBAIGJvb2wgaXNfYXphbGlh X3RsYl9lbmFibGVkKGNvbnN0IHN0cnVjdAogdm9pZCBwbGF0Zm9ybV9xdWly a3NfaW5pdCh2b2lkKTsKIHZvaWQgdnRkX29wc19wcmVhbWJsZV9xdWlyayhz dHJ1Y3QgdnRkX2lvbW11ICppb21tdSk7CiB2b2lkIHZ0ZF9vcHNfcG9zdGFt YmxlX3F1aXJrKHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KTsKLWludCBfX211 c3RfY2hlY2sgbWVfd2lmaV9xdWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggYnVzLCB1OCBk ZXZmbiwgaW50IG1hcCk7CitpbnQgX19tdXN0X2NoZWNrIG1lX3dpZmlfcXVp cmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1aW50OF90IGJ1cywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGRldmZuLCB1bnNp Z25lZCBpbnQgbW9kZSk7CiB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3Ry dWN0IHBjaV9kZXYgKik7CiB2b2lkIHF1aXJrX2lvbW11X2NhcHMoc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpOwogCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0xMjAsNiArMTIwLDcgQEAgc3RhdGljIGlu dCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgfQogCiAgICAg c2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0bWFwKTsKKyAgICBjb250ZXh0 LT5oaSAmPSB+KCgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElE X0hJR0hfT0ZGU0VUKTsKICAgICBjb250ZXh0LT5oaSB8PSAoaSAmICgoMSA8 PCBESURfRklFTERfV0lEVEgpIC0gMSkpIDw8IERJRF9ISUdIX09GRlNFVDsK ICAgICByZXR1cm4gMDsKIH0KQEAgLTEzNzEsMTUgKzEzNzIsMjcgQEAgc3Rh dGljIHZvaWQgX19od2RvbV9pbml0IGludGVsX2lvbW11X2h3ZAogICAgIH0K IH0KIAorLyoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucworICogLSBhIG5l Z2F0aXZlIGVycm5vIHZhbHVlIHVwb24gZXJyb3IsCisgKiAtIHplcm8gdXBv biBzdWNjZXNzIHdoZW4gcHJldmlvdXNseSB0aGUgZW50cnkgd2FzIG5vbi1w cmVzZW50LCBvciB0aGlzIGlzbid0CisgKiAgIHRoZSAibWFpbiIgcmVxdWVz dCBmb3IgYSBkZXZpY2UgKHBkZXYgPT0gTlVMTCksIG9yIGZvciBuby1vcCBx dWFyYW50aW5pbmcKKyAqICAgYXNzaWdubWVudHMsCisgKiAtIHBvc2l0aXZl IChvbmUpIHVwb24gc3VjY2VzcyB3aGVuIHByZXZpb3VzbHkgdGhlIGVudHJ5 IHdhcyBwcmVzZW50IGFuZCB0aGlzCisgKiAgIGlzIHRoZSAibWFpbiIgcmVx dWVzdCBmb3IgYSBkZXZpY2UgKHBkZXYgIT0gTlVMTCkuCisgKi8KIGludCBk b21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICBzdHJ1Y3QgZG9tYWlu ICpkb21haW4sCiAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUsCi0gICAg dTggYnVzLCB1OCBkZXZmbiwgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYp CisgICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGNvbnN0IHN0cnVj dCBwY2lfZGV2ICpwZGV2LAorICAgIHVuc2lnbmVkIGludCBtb2RlKQogewog ICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbWFp bik7Ci0gICAgc3RydWN0IGNvbnRleHRfZW50cnkgKmNvbnRleHQsICpjb250 ZXh0X2VudHJpZXM7CisgICAgc3RydWN0IGNvbnRleHRfZW50cnkgKmNvbnRl eHQsICpjb250ZXh0X2VudHJpZXMsIGxjdHh0OworICAgIF9fdWludDEyOF90 IG9sZDsKICAgICB1NjQgbWFkZHIsIHBnZF9tYWRkcjsKLSAgICB1MTYgc2Vn ID0gaW9tbXUtPmRyaGQtPnNlZ21lbnQ7CisgICAgdWludDE2X3Qgc2VnID0g aW9tbXUtPmRyaGQtPnNlZ21lbnQsIHByZXZfZGlkID0gMDsKKyAgICBzdHJ1 Y3QgZG9tYWluICpwcmV2X2RvbSA9IE5VTEw7CiAgICAgaW50IHJjLCByZXQ7 CiAgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYjsKIApAQCAtMTM5MSwxNyAr MTQwNCwzMiBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAg ICAgbWFkZHIgPSBidXNfdG9fY29udGV4dF9tYWRkcihpb21tdSwgYnVzKTsK ICAgICBjb250ZXh0X2VudHJpZXMgPSAoc3RydWN0IGNvbnRleHRfZW50cnkg KiltYXBfdnRkX2RvbWFpbl9wYWdlKG1hZGRyKTsKICAgICBjb250ZXh0ID0g JmNvbnRleHRfZW50cmllc1tkZXZmbl07CisgICAgb2xkID0gKGxjdHh0ID0g KmNvbnRleHQpLmZ1bGw7CiAKLSAgICBpZiAoIGNvbnRleHRfcHJlc2VudCgq Y29udGV4dCkgKQorICAgIGlmICggY29udGV4dF9wcmVzZW50KGxjdHh0KSAp CiAgICAgewotICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwot ICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRyaWVz KTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIGRvbWlkX3QgZG9taWQ7 CisKKyAgICAgICAgcHJldl9kaWQgPSBjb250ZXh0X2RvbWFpbl9pZChsY3R4 dCk7CisgICAgICAgIGRvbWlkID0gaW9tbXUtPmRvbWlkX21hcFtwcmV2X2Rp ZF07CisgICAgICAgIGlmICggZG9taWQgPCBET01JRF9GSVJTVF9SRVNFUlZF RCApCisgICAgICAgICAgICBwcmV2X2RvbSA9IHJjdV9sb2NrX2RvbWFpbl9i eV9pZChkb21pZCk7CisgICAgICAgIGVsc2UgaWYgKCBkb21pZCA9PSBET01J RF9JTyApCisgICAgICAgICAgICBwcmV2X2RvbSA9IHJjdV9sb2NrX2RvbWFp bihkb21faW8pOworICAgICAgICBpZiAoICFwcmV2X2RvbSApCisgICAgICAg IHsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7Cisg ICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4dF9lbnRy aWVzKTsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVHIFZURFBS RUZJWCwKKyAgICAgICAgICAgICAgICAgICAgIm5vIGRvbWFpbiBmb3IgZGlk ICV1IChucl9kb20gJXUpXG4iLAorICAgICAgICAgICAgICAgICAgICBwcmV2 X2RpZCwgY2FwX25kb21zKGlvbW11LT5jYXApKTsKKyAgICAgICAgICAgIHJl dHVybiAtRVNSQ0g7CisgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIGlv bW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYmIGlzX2hhcmR3YXJlX2RvbWFpbihk b21haW4pICkKICAgICB7Ci0gICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0 aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRfUEFTU19USFJVKTsKKyAg ICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25fdHlwZShsY3R4dCwgQ09O VEVYVF9UVF9QQVNTX1RIUlUpOwogICAgIH0KICAgICBlbHNlCiAgICAgewpA QCAtMTQxMywzNiArMTQ0MSwxMDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmdfb25lKAogICAgICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNo Lm1hcHBpbmdfbG9jayk7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmaW9t bXUtPmxvY2spOwogICAgICAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdl KGNvbnRleHRfZW50cmllcyk7CisgICAgICAgICAgICBpZiAoIHByZXZfZG9t ICkKKyAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihwcmV2X2Rv bSk7CiAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICAgICAgfQog Ci0gICAgICAgIGNvbnRleHRfc2V0X2FkZHJlc3Nfcm9vdCgqY29udGV4dCwg cGdkX21hZGRyKTsKKyAgICAgICAgY29udGV4dF9zZXRfYWRkcmVzc19yb290 KGxjdHh0LCBwZ2RfbWFkZHIpOwogICAgICAgICBpZiAoIGF0c19lbmFibGVk ICYmIGVjYXBfZGV2X2lvdGxiKGlvbW11LT5lY2FwKSApCi0gICAgICAgICAg ICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKCpjb250ZXh0LCBDT05U RVhUX1RUX0RFVl9JT1RMQik7CisgICAgICAgICAgICBjb250ZXh0X3NldF90 cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBDT05URVhUX1RUX0RFVl9JT1RMQik7 CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5z bGF0aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRfTVVMVElfTEVWRUwp OworICAgICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25fdHlwZShs Y3R4dCwgQ09OVEVYVF9UVF9NVUxUSV9MRVZFTCk7CiAKICAgICAgICAgc3Bp bl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAgfQogCi0g ICAgaWYgKCBjb250ZXh0X3NldF9kb21haW5faWQoY29udGV4dCwgZG9tYWlu LCBpb21tdSkgKQorICAgIGlmICggY29udGV4dF9zZXRfZG9tYWluX2lkKCZs Y3R4dCwgZG9tYWluLCBpb21tdSkgKQogICAgIHsKKyAgICB1bmxvY2s6CiAg ICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CiAgICAgICAgIHVu bWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMpOworICAgICAg ICBpZiAoIHByZXZfZG9tICkKKyAgICAgICAgICAgIHJjdV91bmxvY2tfZG9t YWluKHByZXZfZG9tKTsKICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7CiAgICAg fQogCi0gICAgY29udGV4dF9zZXRfYWRkcmVzc193aWR0aCgqY29udGV4dCwg bGV2ZWxfdG9fYWdhdyhpb21tdS0+bnJfcHRfbGV2ZWxzKSk7Ci0gICAgY29u dGV4dF9zZXRfZmF1bHRfZW5hYmxlKCpjb250ZXh0KTsKLSAgICBjb250ZXh0 X3NldF9wcmVzZW50KCpjb250ZXh0KTsKKyAgICBpZiAoICFwcmV2X2RvbSAp CisgICAgeworICAgICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3dpZHRoKGxj dHh0LCBsZXZlbF90b19hZ2F3KGlvbW11LT5ucl9wdF9sZXZlbHMpKTsKKyAg ICAgICAgY29udGV4dF9zZXRfZmF1bHRfZW5hYmxlKGxjdHh0KTsKKyAgICAg ICAgY29udGV4dF9zZXRfcHJlc2VudChsY3R4dCk7CisgICAgfQorICAgIGVs c2UgaWYgKCBwcmV2X2RvbSA9PSBkb21haW4gKQorICAgIHsKKyAgICAgICAg QVNTRVJUKGxjdHh0LmZ1bGwgPT0gY29udGV4dC0+ZnVsbCk7CisgICAgICAg IHJjID0gISFwZGV2OworICAgICAgICBnb3RvIHVubG9jazsKKyAgICB9Cisg ICAgZWxzZQorICAgIHsKKyAgICAgICAgQVNTRVJUKGNvbnRleHRfYWRkcmVz c193aWR0aChsY3R4dCkgPT0KKyAgICAgICAgICAgICAgIGxldmVsX3RvX2Fn YXcoaW9tbXUtPm5yX3B0X2xldmVscykpOworICAgICAgICBBU1NFUlQoIWNv bnRleHRfZmF1bHRfZGlzYWJsZShsY3R4dCkpOworICAgIH0KKworICAgIGlm ICggY3B1X2hhc19jeDE2ICkKKyAgICB7CisgICAgICAgIF9fdWludDEyOF90 IHJlcyA9IGNtcHhjaGcxNmIoY29udGV4dCwgJm9sZCwgJmxjdHh0LmZ1bGwp OworCisgICAgICAgIC8qCisgICAgICAgICAqIEhhcmR3YXJlIGRvZXMgbm90 IHVwZGF0ZSB0aGUgY29udGV4dCBlbnRyeSBiZWhpbmQgb3VyIGJhY2tzLAor ICAgICAgICAgKiBzbyB0aGUgcmV0dXJuIHZhbHVlIHNob3VsZCBtYXRjaCAi b2xkIi4KKyAgICAgICAgICovCisgICAgICAgIGlmICggcmVzICE9IG9sZCAp CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggcGRldiApCisgICAgICAg ICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoZG9tYWluLCBwZGV2 LCBpb21tdSk7CisgICAgICAgICAgICBwcmludGsoWEVOTE9HX0VSUgorICAg ICAgICAgICAgICAgICAgICIlcHA6IHVuZXhwZWN0ZWQgY29udGV4dCBlbnRy eSAlMDE2bHhfJTAxNmx4IChleHBlY3RlZCAlMDE2bHhfJTAxNmx4KVxuIiwK KyAgICAgICAgICAgICAgICAgICAmUENJX1NCREYzKHBkZXYtPnNlZywgcGRl di0+YnVzLCBkZXZmbiksCisgICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90 KShyZXMgPj4gNjQpLCAodWludDY0X3QpcmVzLAorICAgICAgICAgICAgICAg ICAgICh1aW50NjRfdCkob2xkID4+IDY0KSwgKHVpbnQ2NF90KW9sZCk7Cisg ICAgICAgICAgICByYyA9IC1FSUxTRVE7CisgICAgICAgICAgICBnb3RvIHVu bG9jazsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlIGlmICggIXByZXZf ZG9tIHx8ICEobW9kZSAmIE1BUF9XSVRIX1JNUlIpICkKKyAgICB7CisgICAg ICAgIGNvbnRleHRfY2xlYXJfcHJlc2VudCgqY29udGV4dCk7CisgICAgICAg IGlvbW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6ZW9mKCpjb250ZXh0KSk7 CisKKyAgICAgICAgd3JpdGVfYXRvbWljKCZjb250ZXh0LT5oaSwgbGN0eHQu aGkpOworICAgICAgICAvKiBObyBiYXJyaWVyIHNob3VsZCBiZSBuZWVkZWQg YmV0d2VlbiB0aGVzZSB0d28uICovCisgICAgICAgIHdyaXRlX2F0b21pYygm Y29udGV4dC0+bG8sIGxjdHh0LmxvKTsKKyAgICB9CisgICAgZWxzZSAvKiBC ZXN0IGVmZm9ydCwgdXBkYXRpbmcgRElEIGxhc3QuICovCisgICAgeworICAg ICAgICAgLyoKKyAgICAgICAgICAqIEJ5IG5vbi1hdG9taWNhbGx5IHVwZGF0 aW5nIHRoZSBjb250ZXh0IGVudHJ5J3MgRElEIGZpZWxkIGxhc3QsCisgICAg ICAgICAgKiBkdXJpbmcgYSBzaG9ydCB3aW5kb3cgaW4gdGltZSBUTEIgZW50 cmllcyB3aXRoIHRoZSBvbGQgZG9tYWluIElECisgICAgICAgICAgKiBidXQg dGhlIG5ldyBwYWdlIHRhYmxlcyBtYXkgYmUgaW5zZXJ0ZWQuICBUaGlzIGNv dWxkIGFmZmVjdCBJL08KKyAgICAgICAgICAqIG9mIG90aGVyIGRldmljZXMg dXNpbmcgdGhpcyBzYW1lIChvbGQpIGRvbWFpbiBJRC4gIFN1Y2ggdXBkYXRp bmcKKyAgICAgICAgICAqIHRoZXJlZm9yZSBpcyBub3QgYSBwcm9ibGVtIGlm IHRoaXMgd2FzIHRoZSBvbmx5IGRldmljZSBhc3NvY2lhdGVkCisgICAgICAg ICAgKiB3aXRoIHRoZSBvbGQgZG9tYWluIElELiAgRGl2ZXJ0aW5nIEkvTyBv ZiBhbnkgb2YgYSBkeWluZyBkb21haW4ncworICAgICAgICAgICogZGV2aWNl cyB0byB0aGUgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBpcyBpbnRlbmRlZCBh bnl3YXkuCisgICAgICAgICAgKi8KKyAgICAgICAgaWYgKCAhKG1vZGUgJiAo TUFQX09XTkVSX0RZSU5HIHwgTUFQX1NJTkdMRV9ERVZJQ0UpKSApCisgICAg ICAgICAgICBwcmludGsoWEVOTE9HX1dBUk5JTkcgVlREUFJFRklYCisgICAg ICAgICAgICAgICAgICAgIiAlcHA6IHJlYXNzaWdubWVudCBtYXkgY2F1c2Ug JXBkIGRhdGEgY29ycnVwdGlvblxuIiwKKyAgICAgICAgICAgICAgICAgICAm UENJX1NCREYzKHNlZywgYnVzLCBkZXZmbiksIHByZXZfZG9tKTsKKworICAg ICAgICB3cml0ZV9hdG9taWMoJmNvbnRleHQtPmxvLCBsY3R4dC5sbyk7Cisg ICAgICAgIC8qIE5vIGJhcnJpZXIgc2hvdWxkIGJlIG5lZWRlZCBiZXR3ZWVu IHRoZXNlIHR3by4gKi8KKyAgICAgICAgd3JpdGVfYXRvbWljKCZjb250ZXh0 LT5oaSwgbGN0eHQuaGkpOworICAgIH0KKwogICAgIGlvbW11X3N5bmNfY2Fj aGUoY29udGV4dCwgc2l6ZW9mKHN0cnVjdCBjb250ZXh0X2VudHJ5KSk7CiAg ICAgc3Bpbl91bmxvY2soJmlvbW11LT5sb2NrKTsKIAotICAgIC8qIENvbnRl eHQgZW50cnkgd2FzIHByZXZpb3VzbHkgbm9uLXByZXNlbnQgKHdpdGggZG9t aWQgMCkuICovCi0gICAgcmMgPSBpb21tdV9mbHVzaF9jb250ZXh0X2Rldmlj ZShpb21tdSwgMCwgUENJX0JERjIoYnVzLCBkZXZmbiksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBETUFfQ0NNRF9NQVNLX05PQklU LCAxKTsKKyAgICByYyA9IGlvbW11X2ZsdXNoX2NvbnRleHRfZGV2aWNlKGlv bW11LCBwcmV2X2RpZCwgUENJX0JERjIoYnVzLCBkZXZmbiksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBETUFfQ0NNRF9NQVNLX05P QklULCAhcHJldl9kb20pOwogICAgIGZsdXNoX2Rldl9pb3RsYiA9ICEhZmlu ZF9hdHNfZGV2X2RyaGQoaW9tbXUpOwotICAgIHJldCA9IGlvbW11X2ZsdXNo X2lvdGxiX2RzaShpb21tdSwgMCwgMSwgZmx1c2hfZGV2X2lvdGxiKTsKKyAg ICByZXQgPSBpb21tdV9mbHVzaF9pb3RsYl9kc2koaW9tbXUsIHByZXZfZGlk LCAhcHJldl9kb20sIGZsdXNoX2Rldl9pb3RsYik7CiAKICAgICAvKgogICAg ICAqIFRoZSBjdXJyZW50IGxvZ2ljIGZvciByZXR1cm5zOgpAQCAtMTQ2Mywx NyArMTU2MiwyNiBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUo CiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7 CiAKICAgICBpZiAoICFzZWcgJiYgIXJjICkKLSAgICAgICAgcmMgPSBtZV93 aWZpX3F1aXJrKGRvbWFpbiwgYnVzLCBkZXZmbiwgTUFQX01FX1BIQU5UT01f RlVOQyk7CisgICAgICAgIHJjID0gbWVfd2lmaV9xdWlyayhkb21haW4sIGJ1 cywgZGV2Zm4sIG1vZGUpOwogCiAgICAgaWYgKCByYyApCiAgICAgewotICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBp b21tdSwgYnVzLCBkZXZmbik7CisgICAgICAgIGlmICggIXByZXZfZG9tICkK KyAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShk b21haW4sIGlvbW11LCBidXMsIGRldmZuKTsKKyAgICAgICAgZWxzZSBpZiAo IHByZXZfZG9tICE9IGRvbWFpbiApIC8qIEF2b2lkIGluZmluaXRlIHJlY3Vy c2lvbi4gKi8KKyAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21h cHBpbmdfb25lKHByZXZfZG9tLCBpb21tdSwgYnVzLCBkZXZmbiwgcGRldiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUgJiBNQVBfV0lUSF9STVJSKSA8IDA7CisgICAgICAgIGVsc2UKKyAg ICAgICAgICAgIHJldCA9IDE7CiAKICAgICAgICAgaWYgKCAhcmV0ICYmIHBk ZXYgJiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gKQogICAgICAgICAgICAgY2hl Y2tfY2xlYW51cF9kb21pZF9tYXAoZG9tYWluLCBwZGV2LCBpb21tdSk7CiAg ICAgfQogCi0gICAgcmV0dXJuIHJjOworICAgIGlmICggcHJldl9kb20gKQor ICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihwcmV2X2RvbSk7CisKKyAgICBy ZXR1cm4gcmMgPzogcGRldiAmJiBwcmV2X2RvbTsKIH0KIAogc3RhdGljIGlu dCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZG9tYWluICpkLCB1aW50 OF90IGRldmZuLApAQCAtMTQ4Myw4ICsxNTkxLDEwIEBAIHN0YXRpYyBpbnQg ZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsK ICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQgPSBhY3Bp X2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CisgICAgY29uc3Qgc3Ry dWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwogICAgIGludCByZXQgPSAwOwot ICAgIHVpbnQxNl90IHNlZyA9IHBkZXYtPnNlZzsKKyAgICB1bnNpZ25lZCBp bnQgaSwgbW9kZSA9IDA7CisgICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2Vn LCBiZGY7CiAgICAgdWludDhfdCBidXMgPSBwZGV2LT5idXMsIHNlY2J1czsK IAogICAgIC8qCkBAIC0xNTAwLDggKzE2MTAsMjkgQEAgc3RhdGljIGludCBk b21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogCiAgICAgQVNTRVJUKHBj aWRldnNfbG9ja2VkKCkpOwogCisgICAgZm9yX2VhY2hfcm1ycl9kZXZpY2Uo IHJtcnIsIGJkZiwgaSApCisgICAgeworICAgICAgICBpZiAoIHJtcnItPnNl Z21lbnQgIT0gcGRldi0+c2VnIHx8IGJkZiAhPSBwZGV2LT5zYmRmLmJkZiAp CisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBtb2RlIHw9IE1B UF9XSVRIX1JNUlI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlm ICggZG9tYWluICE9IHBkZXYtPmRvbWFpbiApCisgICAgeworICAgICAgICBp ZiAoIHBkZXYtPmRvbWFpbi0+aXNfZHlpbmcgKQorICAgICAgICAgICAgbW9k ZSB8PSBNQVBfT1dORVJfRFlJTkc7CisgICAgICAgIGVsc2UgaWYgKCBkcmhk ICYmCisgICAgICAgICAgICAgICAgICAhYW55X3BkZXZfYmVoaW5kX2lvbW11 KHBkZXYtPmRvbWFpbiwgcGRldiwgZHJoZC0+aW9tbXUpICYmCisgICAgICAg ICAgICAgICAgICAhcGRldi0+cGhhbnRvbV9zdHJpZGUgKQorICAgICAgICAg ICAgbW9kZSB8PSBNQVBfU0lOR0xFX0RFVklDRTsKKyAgICB9CisKICAgICBz d2l0Y2ggKCBwZGV2LT50eXBlICkKICAgICB7CisgICAgICAgIGJvb2wgcHJl dl9wcmVzZW50OworCiAgICAgY2FzZSBERVZfVFlQRV9QQ0lfSE9TVF9CUklE R0U6CiAgICAgICAgIGlmICggaW9tbXVfZGVidWcgKQogICAgICAgICAgICAg cHJpbnRrKFZURFBSRUZJWCAiJXBkOkhvc3RicmlkZ2U6IHNraXAgJXBwIG1h cFxuIiwKQEAgLTE1MjMsNyArMTY1NCw5IEBAIHN0YXRpYyBpbnQgZG9tYWlu X2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgIHByaW50ayhW VERQUkVGSVggIiVwZDpQQ0llOiBtYXAgJXBwXG4iLAogICAgICAgICAgICAg ICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsK ICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9t YWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldik7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIG1vZGUpOwor ICAgICAgICBpZiAoIHJldCA+IDAgKQorICAgICAgICAgICAgcmV0ID0gMDsK ICAgICAgICAgaWYgKCAhcmV0ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYm IGF0c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkKICAgICAgICAgICAgIGVu YWJsZV9hdHNfZGV2aWNlKHBkZXYsICZkcmhkLT5pb21tdS0+YXRzX2Rldmlj ZXMpOwogCkBAIC0xNTM4LDkgKzE2NzEsMTAgQEAgc3RhdGljIGludCBkb21h aW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAgICAgICAgICAg IGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKIAogICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4s IGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZGV2KTsKLSAgICAgICAgaWYgKCBy ZXQgKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwZGV2LCBtb2RlKTsKKyAgICAgICAgaWYgKCByZXQgPCAwICkKICAgICAg ICAgICAgIGJyZWFrOworICAgICAgICBwcmV2X3ByZXNlbnQgPSByZXQ7CiAK ICAgICAgICAgaWYgKCAocmV0ID0gZmluZF91cHN0cmVhbV9icmlkZ2Uoc2Vn LCAmYnVzLCAmZGV2Zm4sICZzZWNidXMpKSA8IDEgKQogICAgICAgICB7CkBA IC0xNTQ4LDYgKzE2ODIsMTUgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nKHN0cnVjdAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAg ICAgICAgICAgcmV0ID0gLUVOWElPOwogICAgICAgICB9CisgICAgICAgIC8q CisgICAgICAgICAqIFN0cmljdGx5IHNwZWFraW5nIGlmIHRoZSBkZXZpY2Ug aXMgdGhlIG9ubHkgb25lIGJlaGluZCB0aGlzIGJyaWRnZQorICAgICAgICAg KiBhbmQgdGhlIG9ubHkgb25lIHdpdGggdGhpcyAoc2VjYnVzLDAsMCkgdHVw bGUsIGl0IGNvdWxkIGJlIGFsbG93ZWQKKyAgICAgICAgICogdG8gYmUgcmUt YXNzaWduZWQgcmVnYXJkbGVzcyBvZiBSTVJSIHByZXNlbmNlLiAgQnV0IGxl dCdzIGRlYWwgd2l0aAorICAgICAgICAgKiB0aGF0IGNhc2Ugb25seSBpZiBp dCBpcyBhY3R1YWxseSBmb3VuZCBpbiB0aGUgd2lsZC4KKyAgICAgICAgICov CisgICAgICAgIGVsc2UgaWYgKCBwcmV2X3ByZXNlbnQgJiYgKG1vZGUgJiBN QVBfV0lUSF9STVJSKSAmJgorICAgICAgICAgICAgICAgICAgZG9tYWluICE9 IHBkZXYtPmRvbWFpbiApCisgICAgICAgICAgICByZXQgPSAtRU9QTk9UU1VQ UDsKIAogICAgICAgICAvKgogICAgICAgICAgKiBNYXBwaW5nIGEgYnJpZGdl IHNob3VsZCwgaWYgYW55dGhpbmcsIHBhc3MgdGhlIHN0cnVjdCBwY2lfZGV2 IG9mCkBAIC0xNTU2LDcgKzE2OTksNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9j b250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAqLwogICAgICAgICBp ZiAoIHJldCA+PSAwICkKICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250 ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2 Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIG1vZGUpOwogCiAgICAgICAgIC8qCiAgICAg ICAgICAqIERldmljZXMgYmVoaW5kIFBDSWUtdG8tUENJL1BDSXggYnJpZGdl IG1heSBnZW5lcmF0ZSBkaWZmZXJlbnQKQEAgLTE1NzEsMTAgKzE3MTQsMTUg QEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAog ICAgICAgICBpZiAoICFyZXQgJiYgcGRldl90eXBlKHNlZywgYnVzLCBkZXZm bikgPT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJREdFICYmCiAgICAgICAgICAg ICAgKHNlY2J1cyAhPSBwZGV2LT5idXMgfHwgcGRldi0+ZGV2Zm4gIT0gMCkg KQogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19v bmUoZG9tYWluLCBkcmhkLT5pb21tdSwgc2VjYnVzLCAwLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBO VUxMLCBtb2RlKTsKIAogICAgICAgICBpZiAoIHJldCApCi0gICAgICAgICAg ICBkb21haW5fY29udGV4dF91bm1hcChkb21haW4sIGRldmZuLCBwZGV2KTsK KyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhcHJldl9wcmVzZW50ICkK KyAgICAgICAgICAgICAgICBkb21haW5fY29udGV4dF91bm1hcChkb21haW4s IGRldmZuLCBwZGV2KTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCBwZGV2LT5k b21haW4gIT0gZG9tYWluICkgLyogQXZvaWQgaW5maW5pdGUgcmVjdXJzaW9u LiAqLworICAgICAgICAgICAgICAgIGRvbWFpbl9jb250ZXh0X21hcHBpbmco cGRldi0+ZG9tYWluLCBkZXZmbiwgcGRldik7CisgICAgICAgIH0KIAogICAg ICAgICBicmVhazsKIApAQCAtMjM2MywxNyArMjUxMSw0NiBAQCBzdGF0aWMg aW50IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAoCiB7CiAgICAgaW50IHJl dDsKIAotICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwg ZGV2Zm4sIHBkZXYpOworICAgIGlmICggIVFVQVJBTlRJTkVfU0tJUCh0YXJn ZXQpICkKKyAgICB7CisgICAgICAgIGlmICggIWhhc19hcmNoX3BkZXZzKHRh cmdldCkgKQorICAgICAgICAgICAgdm14X3BpX2hvb2tzX2Fzc2lnbih0YXJn ZXQpOworCisgICAgICAgIC8qCisgICAgICAgICAqIERldmljZXMgYXNzaWdu ZWQgdG8gdW50cnVzdGVkIGRvbWFpbnMgKGhlcmUgYXNzdW1lZCB0byBiZSBh bnkgZG9tVSkKKyAgICAgICAgICogY2FuIGF0dGVtcHQgdG8gc2VuZCBhcmJp dHJhcnkgTEFQSUMvTVNJIG1lc3NhZ2VzLiBXZSBhcmUgdW5wcm90ZWN0ZWQK KyAgICAgICAgICogYnkgdGhlIHJvb3QgY29tcGxleCB1bmxlc3MgaW50ZXJy dXB0IHJlbWFwcGluZyBpcyBlbmFibGVkLgorICAgICAgICAgKi8KKyAgICAg ICAgaWYgKCAodGFyZ2V0ICE9IGhhcmR3YXJlX2RvbWFpbikgJiYgIWlvbW11 X2ludHJlbWFwICkKKyAgICAgICAgICAgIHVudHJ1c3RlZF9tc2kgPSB0cnVl OworCisgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmcodGFy Z2V0LCBkZXZmbiwgcGRldik7CisKKyAgICAgICAgaWYgKCAhcmV0ICYmICFR VUFSQU5USU5FX1NLSVAoc291cmNlKSAmJiBwZGV2LT5kZXZmbiA9PSBkZXZm biApCisgICAgICAgIHsKKyAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhY3Bp X2RyaGRfdW5pdCAqZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5p dChwZGV2KTsKKworICAgICAgICAgICAgaWYgKCBkcmhkICkKKyAgICAgICAg ICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21hcChzb3VyY2UsIHBkZXYs IGRyaGQtPmlvbW11KTsKKyAgICAgICAgfQorICAgIH0KKyAgICBlbHNlCisg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwKHNvdXJjZSwgZGV2 Zm4sIHBkZXYpOwogICAgIGlmICggcmV0ICkKKyAgICB7CisgICAgICAgIGlm ICggIWhhc19hcmNoX3BkZXZzKHRhcmdldCkgKQorICAgICAgICAgICAgdm14 X3BpX2hvb2tzX2RlYXNzaWduKHRhcmdldCk7CiAgICAgICAgIHJldHVybiBy ZXQ7CisgICAgfQogCi0gICAgLyoKLSAgICAgKiBEZXZpY2VzIGFzc2lnbmVk IHRvIHVudHJ1c3RlZCBkb21haW5zIChoZXJlIGFzc3VtZWQgdG8gYmUgYW55 IGRvbVUpCi0gICAgICogY2FuIGF0dGVtcHQgdG8gc2VuZCBhcmJpdHJhcnkg TEFQSUMvTVNJIG1lc3NhZ2VzLiBXZSBhcmUgdW5wcm90ZWN0ZWQKLSAgICAg KiBieSB0aGUgcm9vdCBjb21wbGV4IHVubGVzcyBpbnRlcnJ1cHQgcmVtYXBw aW5nIGlzIGVuYWJsZWQuCi0gICAgICovCi0gICAgaWYgKCAodGFyZ2V0ICE9 IGhhcmR3YXJlX2RvbWFpbikgJiYgIWlvbW11X2ludHJlbWFwICkKLSAgICAg ICAgdW50cnVzdGVkX21zaSA9IHRydWU7CisgICAgaWYgKCBkZXZmbiA9PSBw ZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0gdGFyZ2V0ICkKKyAgICB7 CisgICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9tYWluX2xpc3QsICZ0YXJn ZXQtPnBkZXZfbGlzdCk7CisgICAgICAgIHBkZXYtPmRvbWFpbiA9IHRhcmdl dDsKKyAgICB9CisKKyAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyhzb3VyY2Up ICkKKyAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWduKHNvdXJjZSk7CiAK ICAgICAvKgogICAgICAqIElmIHRoZSBkZXZpY2UgYmVsb25ncyB0byB0aGUg aGFyZHdhcmUgZG9tYWluLCBhbmQgaXQgaGFzIFJNUlIsIGRvbid0CkBAIC0y NDAzLDM0ICsyNTgwLDcgQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Vf b3duZXJzaGlwKAogICAgICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgg ZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IGRvbV9p byApCi0gICAgewotICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9s aXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwotICAgICAgICBwZGV2LT5kb21h aW4gPSBkb21faW87Ci0gICAgfQotCi0gICAgaWYgKCAhaGFzX2FyY2hfcGRl dnMoc291cmNlKSApCi0gICAgICAgIHZteF9waV9ob29rc19kZWFzc2lnbihz b3VyY2UpOwotCi0gICAgaWYgKCAhaGFzX2FyY2hfcGRldnModGFyZ2V0KSAp Ci0gICAgICAgIHZteF9waV9ob29rc19hc3NpZ24odGFyZ2V0KTsKLQotICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmcodGFyZ2V0LCBkZXZmbiwg cGRldik7Ci0gICAgaWYgKCByZXQgKQotICAgIHsKLSAgICAgICAgaWYgKCAh aGFzX2FyY2hfcGRldnModGFyZ2V0KSApCi0gICAgICAgICAgICB2bXhfcGlf aG9va3NfZGVhc3NpZ24odGFyZ2V0KTsKLQotICAgICAgICByZXR1cm4gcmV0 OwotICAgIH0KLQotICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYg cGRldi0+ZG9tYWluICE9IHRhcmdldCApCi0gICAgewotICAgICAgICBsaXN0 X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2X2xpc3Qp OwotICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJnZXQ7Ci0gICAgfQotCi0g ICAgcmV0dXJuIHJldDsKKyAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIGlu dCBpbnRlbF9pb21tdV9hc3NpZ25fZGV2aWNlKAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuaApAQCAtMjAyLDggKzIwMiwxMiBAQCBz dHJ1Y3Qgcm9vdF9lbnRyeSB7CiAgICAgZG8geyhyb290KS52YWwgfD0gKCh2 YWx1ZSkgJiBQQUdFX01BU0tfNEspO30gd2hpbGUoMCkKIAogc3RydWN0IGNv bnRleHRfZW50cnkgewotICAgIHU2NCBsbzsKLSAgICB1NjQgaGk7CisgICAg dW5pb24geworICAgICAgICBzdHJ1Y3QgeworICAgICAgICAgICAgdWludDY0 X3QgbG8sIGhpOworICAgICAgICB9OworICAgICAgICBfX3VpbnQxMjhfdCBm dWxsOworICAgIH07CiB9OwogI2RlZmluZSBST09UX0VOVFJZX05SIChQQUdF X1NJWkVfNEsvc2l6ZW9mKHN0cnVjdCByb290X2VudHJ5KSkKICNkZWZpbmUg Y29udGV4dF9wcmVzZW50KGMpICgoYykubG8gJiAxKQotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvdnRkL3F1aXJrcy5jCkBAIC00MDcsNyArNDA3LDgg QEAgdm9pZCBfX2luaXQgcGxhdGZvcm1fcXVpcmtzX2luaXQodm9pZCkKICAq LwogCiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBtYXBfbWVfcGhhbnRvbV9m dW5jdGlvbihzdHJ1Y3QgZG9tYWluICpkb21haW4sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1MzIgZGV2LCBp bnQgbWFwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdW5zaWduZWQgaW50IGRldiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBtb2RlKQogewogICAgIHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsK ICAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKQEAgLTQxOCw5ICs0MTksOSBA QCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBtYXBfbWVfcGhhbnRvbV9mCiAg ICAgZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5pdChwZGV2KTsK IAogICAgIC8qIG1hcCBvciB1bm1hcCBNRSBwaGFudG9tIGZ1bmN0aW9uICov Ci0gICAgaWYgKCBtYXAgKQorICAgIGlmICggIShtb2RlICYgVU5NQVBfTUVf UEhBTlRPTV9GVU5DKSApCiAgICAgICAgIHJjID0gZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgMCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVWRk4oZGV2 LCA3KSwgTlVMTCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUENJX0RFVkZOKGRldiwgNyksIE5VTEwsIG1vZGUpOwogICAg IGVsc2UKICAgICAgICAgcmMgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUo ZG9tYWluLCBkcmhkLT5pb21tdSwgMCwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUENJX0RFVkZOKGRldiwgNykpOwpAQCAtNDI4 LDcgKzQyOSw4IEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIG1hcF9tZV9w aGFudG9tX2YKICAgICByZXR1cm4gcmM7CiB9CiAKLWludCBtZV93aWZpX3F1 aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggYnVzLCB1OCBkZXZmbiwg aW50IG1hcCkKK2ludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRv bWFpbiwgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sCisgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICB1MzIgaWQ7CiAg ICAgaW50IHJjID0gMDsKQEAgLTQ1Miw3ICs0NTQsNyBAQCBpbnQgbWVfd2lm aV9xdWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sCiAgICAgICAgICAgICBj YXNlIDB4NDIzYjgwODY6CiAgICAgICAgICAgICBjYXNlIDB4NDIzYzgwODY6 CiAgICAgICAgICAgICBjYXNlIDB4NDIzZDgwODY6Ci0gICAgICAgICAgICAg ICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDMsIG1h cCk7CisgICAgICAgICAgICAgICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5j dGlvbihkb21haW4sIDMsIG1vZGUpOwogICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVh azsKQEAgLTQ3OCw3ICs0ODAsNyBAQCBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1 Y3QgZG9tYWluICpkb21haW4sCiAgICAgICAgICAgICBjYXNlIDB4NDIzODgw ODY6ICAgICAgICAvKiBQdW1hIFBlYWsgKi8KICAgICAgICAgICAgIGNhc2Ug MHg0MjJiODA4NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjJjODA4NjoKLSAg ICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRv bWFpbiwgMjIsIG1hcCk7CisgICAgICAgICAgICAgICAgcmMgPSBtYXBfbWVf cGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDIyLCBtb2RlKTsKICAgICAgICAg ICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAg ICAgICAgICAgYnJlYWs7Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC92dGQuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv dnRkLmgKQEAgLTIyLDggKzIyLDE0IEBACiAKICNpbmNsdWRlIDx4ZW4vaW9t bXUuaD4KIAotI2RlZmluZSBNQVBfTUVfUEhBTlRPTV9GVU5DICAgICAgMQot I2RlZmluZSBVTk1BUF9NRV9QSEFOVE9NX0ZVTkMgICAgMAorLyoKKyAqIFZh bHVlcyBmb3IgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoKSdzIGFuZCBt ZV93aWZpX3F1aXJrKCkncyAibW9kZSIKKyAqIHBhcmFtZXRlcnMuCisgKi8K KyNkZWZpbmUgTUFQX1dJVEhfUk1SUiAgICAgICAgICgxdSA8PCAwKQorI2Rl ZmluZSBNQVBfT1dORVJfRFlJTkcgICAgICAgKDF1IDw8IDEpCisjZGVmaW5l IE1BUF9TSU5HTEVfREVWSUNFICAgICAoMXUgPDwgMikKKyNkZWZpbmUgVU5N QVBfTUVfUEhBTlRPTV9GVU5DICgxdSA8PCAzKQogCiAvKiBBbGxvdyBmb3Ig Ym90aCBJT0FQSUMgYW5kIElPU0FQSUMuICovCiAjZGVmaW5lIElPX3hBUElD X3JvdXRlX2VudHJ5IElPX0FQSUNfcm91dGVfZW50cnkK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-06.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-06.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IHJlLWFzc2lnbiBkZXZpY2VzIGRpcmVjdGx5CgpEZXZp Y2VzIHdpdGggdW5pdHkgbWFwIHJhbmdlcywgZHVlIHRvIGl0IGJlaW5nIHVu c3BlY2lmaWVkIGhvdy93aGVuCnRoZXNlIG1lbW9yeSByYW5nZXMgbWF5IGdl dCBhY2Nlc3NlZCwgbWF5IG5vdCBiZSBsZWZ0IGRpc2Nvbm5lY3RlZCBmcm9t CnRoZWlyIHVuaXR5IG1hcHBpbmdzIChhcyBsb25nIGFzIGl0J3Mgbm90IGNl cnRhaW4gdGhhdCB0aGUgZGV2aWNlIGhhcwpiZWVuIGZ1bGx5IHF1aWVzY2Vk KS4gSGVuY2UgcmF0aGVyIHRoYW4gdGVhcmluZyBkb3duIHRoZSBvbGQgcm9v dCBwYWdlCnRhYmxlIHBvaW50ZXIgYW5kIHRoZW4gZXN0YWJsaXNoaW5nIHRo ZSBuZXcgb25lLCByZS1hc3NpZ25tZW50IG5lZWRzIHRvCmJlIGRvbmUgaW4g YSBzaW5nbGUgc3RlcC4KClRoaXMgaXMgQ1ZFLTIwMjItMjYzNjAgLyBwYXJ0 IG9mIFhTQS00MDAuCgpSZXBvcnRlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CgpTaW1pbGFybHkgcXVhcmFudGluaW5n IHNjcmF0Y2gtcGFnZSBtb2RlIHJlbGllcyBvbiBwYWdlIHRhYmxlcyB0byBi ZQpjb250aW51b3VzbHkgd2lyZWQgdXAuCgpUbyBhdm9pZCBjb21wbGljYXRp bmcgdGhpbmdzIG1vcmUgdGhhbiBuZWNlc3NhcnksIHRyZWF0IGFsbCBkZXZp Y2VzCm1vc3RseSBlcXVhbGx5LCBpLmUuIHJlZ2FyZGxlc3Mgb2YgdGhlaXIg YXNzb2NpYXRpb24gd2l0aCBhbnkgdW5pdHkgbWFwCnJhbmdlcy4gIFRoZSBt YWluIGRpZmZlcmVuY2UgaXMgd2hlbiBpdCBjb21lcyB0byB1cGRhdGluZyBE VEVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21pYyB3aGVuIHRoZXJlIGFyZSB1 bml0eSBtYXBwaW5ncy4gWWV0IGF0b21pY2l0eSBjYW4gb25seSBiZQphY2hp ZXZlZCB3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBvZiB3aGljaCB3 ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+CgotLS0gYS94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaApAQCAtMjYyLDkgKzI2MiwxMyBA QCB2b2lkIGFtZF9pb21tdV9zZXRfaW50cmVtYXBfdGFibGUoc3RydWN0CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgdm9pZCAq cHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgdmFsaWQpOwotdm9pZCBhbWRfaW9tbXVf c2V0X3Jvb3RfcGFnZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRl LAotCQkJCSAgIHVpbnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5f aWQsCi0JCQkJICAgdWludDhfdCBwYWdpbmdfbW9kZSwgYm9vbCB2YWxpZCk7 CisjZGVmaW5lIFNFVF9ST09UX1ZBTElEICAgICAgICAgICgxdSA8PCAwKQor I2RlZmluZSBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCAoMXUgPDwgMSkKK2lu dCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUo c3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDY0X3Qgcm9vdF9w dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQxNl90IGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBwYWdpbmdf bW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGZsYWdzKTsKIHZvaWQgaW9tbXVfZHRl X2FkZF9kZXZpY2VfZW50cnkoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0 IGl2cnNfbWFwcGluZ3MgKml2cnNfZGV2KTsKIAotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC0xMTQsMTAgKzEx NCw2OSBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNldF9pb21tdV9wdGVzX3By ZXNlCiAgICAgcmV0dXJuIGZsdXNoX2ZsYWdzOwogfQogCi12b2lkIGFtZF9p b21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKHN0cnVjdCBhbWRfaW9tbXVfZHRl ICpkdGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp bnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBkb21haW5faWQsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcGFnaW5nX21v ZGUsIGJvb2wgdmFsaWQpCisvKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5z CisgKiAtIC1lcnJubyBmb3IgZXJyb3JzLAorICogLSAwIGZvciBhIHN1Y2Nl c3NmdWwgdXBkYXRlLCBhdG9taWMgd2hlbiBuZWNlc3NhcnkKKyAqIC0gMSBm b3IgYSBzdWNjZXNzZnVsIGJ1dCBub24tYXRvbWljIHVwZGF0ZSwgd2hpY2gg bWF5IG5lZWQgdG8gYmUgd2FybmVkCisgKiAgIGFib3V0IGJ5IHRoZSBjYWxs ZXIuCisgKi8KK2ludCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZShz dHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJvb3RfcHRyLCB1aW50MTZfdCBk b21haW5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dWludDhfdCBwYWdpbmdfbW9kZSwgdW5zaWduZWQgaW50IGZsYWdzKQogewor ICAgIGJvb2wgdmFsaWQgPSBmbGFncyAmIFNFVF9ST09UX1ZBTElEOworCisg ICAgaWYgKCBkdGUtPnYgJiYgZHRlLT50diAmJgorICAgICAgICAgKGNwdV9o YXNfY3gxNiB8fCAoZmxhZ3MgJiBTRVRfUk9PVF9XSVRIX1VOSVRZX01BUCkp ICkKKyAgICB7CisgICAgICAgIHVuaW9uIHsKKyAgICAgICAgICAgIHN0cnVj dCBhbWRfaW9tbXVfZHRlIGR0ZTsKKyAgICAgICAgICAgIHVpbnQ2NF90IHJh dzY0WzRdOworICAgICAgICAgICAgX191aW50MTI4X3QgcmF3MTI4WzJdOwor ICAgICAgICB9IGxkdGUgPSB7IC5kdGUgPSAqZHRlIH07CisgICAgICAgIF9f dWludDEyOF90IG9sZCA9IGxkdGUucmF3MTI4WzBdOworICAgICAgICBpbnQg cmV0ID0gMDsKKworICAgICAgICBsZHRlLmR0ZS5kb21haW5faWQgPSBkb21h aW5faWQ7CisgICAgICAgIGxkdGUuZHRlLnB0X3Jvb3QgPSBwYWRkcl90b19w Zm4ocm9vdF9wdHIpOworICAgICAgICBsZHRlLmR0ZS5pdyA9IHRydWU7Cisg ICAgICAgIGxkdGUuZHRlLmlyID0gdHJ1ZTsKKyAgICAgICAgbGR0ZS5kdGUu cGFnaW5nX21vZGUgPSBwYWdpbmdfbW9kZTsKKyAgICAgICAgbGR0ZS5kdGUu diA9IHZhbGlkOworCisgICAgICAgIGlmICggY3B1X2hhc19jeDE2ICkKKyAg ICAgICAgeworICAgICAgICAgICAgX191aW50MTI4X3QgcmVzID0gY21weGNo ZzE2YihkdGUsICZvbGQsICZsZHRlLnJhdzEyOFswXSk7CisKKyAgICAgICAg ICAgIC8qCisgICAgICAgICAgICAgKiBIYXJkd2FyZSBkb2VzIG5vdCB1cGRh dGUgdGhlIERURSBiZWhpbmQgb3VyIGJhY2tzLCBzbyB0aGUKKyAgICAgICAg ICAgICAqIHJldHVybiB2YWx1ZSBzaG91bGQgbWF0Y2ggIm9sZCIuCisgICAg ICAgICAgICAgKi8KKyAgICAgICAgICAgIGlmICggcmVzICE9IG9sZCApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19F UlIKKyAgICAgICAgICAgICAgICAgICAgICAgIkRvbSVkOiB1bmV4cGVjdGVk IERURSAlMDE2bHhfJTAxNmx4IChleHBlY3RlZCAlMDE2bHhfJTAxNmx4KVxu IiwKKyAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAodWludDY0X3QpKHJlcyA+PiA2NCksICh1aW50 NjRfdClyZXMsCisgICAgICAgICAgICAgICAgICAgICAgICh1aW50NjRfdCko b2xkID4+IDY0KSwgKHVpbnQ2NF90KW9sZCk7CisgICAgICAgICAgICAgICAg cmV0ID0gLUVJTFNFUTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg ICAgICBlbHNlIC8qIEJlc3QgZWZmb3J0LCB1cGRhdGluZyBkb21haW5faWQg bGFzdC4gKi8KKyAgICAgICAgeworICAgICAgICAgICAgdWludDY0X3QgKnB0 ciA9ICh2b2lkICopZHRlOworCisgICAgICAgICAgICB3cml0ZV9hdG9taWMo cHRyICsgMCwgbGR0ZS5yYXc2NFswXSk7CisgICAgICAgICAgICAvKiBObyBi YXJyaWVyIHNob3VsZCBiZSBuZWVkZWQgYmV0d2VlbiB0aGVzZSB0d28uICov CisgICAgICAgICAgICB3cml0ZV9hdG9taWMocHRyICsgMSwgbGR0ZS5yYXc2 NFsxXSk7CisKKyAgICAgICAgICAgIHJldCA9IDE7CisgICAgICAgIH0KKwor ICAgICAgICByZXR1cm4gcmV0OworICAgIH0KKwogICAgIGlmICggdmFsaWQg fHwgZHRlLT52ICkKICAgICB7CiAgICAgICAgIGR0ZS0+dHYgPSBmYWxzZTsK QEAgLTEzMiw2ICsxOTEsOCBAQCB2b2lkIGFtZF9pb21tdV9zZXRfcm9vdF9w YWdlX3RhYmxlKHN0cnVjCiAgICAgc21wX3dtYigpOwogICAgIGR0ZS0+dHYg PSB0cnVlOwogICAgIGR0ZS0+diA9IHZhbGlkOworCisgICAgcmV0dXJuIDA7 CiB9CiAKIHZvaWQgYW1kX2lvbW11X3NldF9pbnRyZW1hcF90YWJsZSgKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9p b21tdS5jCkBAIC05NiwxMyArOTYsMzIgQEAgc3RhdGljIGludCBfX211c3Rf Y2hlY2sgYWxsb2NhdGVfZG9tYWluXwogICAgIHJldHVybiByYzsKIH0KIAor c3RhdGljIGJvb2wgYW55X3BkZXZfYmVoaW5kX2lvbW11KGNvbnN0IHN0cnVj dCBkb21haW4gKmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKmV4Y2x1ZGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFtZF9pb21t dSAqaW9tbXUpCit7CisgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXY7 CisKKyAgICBmb3JfZWFjaF9wZGV2ICggZCwgcGRldiApCisgICAgeworICAg ICAgICBpZiAoIHBkZXYgPT0gZXhjbHVkZSApCisgICAgICAgICAgICBjb250 aW51ZTsKKworICAgICAgICBpZiAoIGZpbmRfaW9tbXVfZm9yX2RldmljZShw ZGV2LT5zZWcsIHBkZXYtPnNiZGYuYmRmKSA9PSBpb21tdSApCisgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7 Cit9CisKIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1 cF9kb21haW5fZGV2aWNlKAogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwg c3RydWN0IGFtZF9pb21tdSAqaW9tbXUsCiAgICAgdWludDhfdCBkZXZmbiwg c3RydWN0IHBjaV9kZXYgKnBkZXYpCiB7CiAgICAgc3RydWN0IGFtZF9pb21t dV9kdGUgKnRhYmxlLCAqZHRlOwogICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7 Ci0gICAgaW50IHJlcV9pZCwgdmFsaWQgPSAxLCByYzsKKyAgICB1bnNpZ25l ZCBpbnQgcmVxX2lkLCBzcl9mbGFnczsKKyAgICBpbnQgcmM7CiAgICAgdTgg YnVzID0gcGRldi0+YnVzOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhk ID0gZG9tX2lvbW11KGRvbWFpbik7CiAgICAgY29uc3Qgc3RydWN0IGl2cnNf bWFwcGluZ3MgKml2cnNfZGV2OwpAQCAtMTE2LDggKzEzNSwxMSBAQCBzdGF0 aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgaWYg KCByYyApCiAgICAgICAgIHJldHVybiByYzsKIAotICAgIGlmICggaW9tbXVf aHdkb21fcGFzc3Rocm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFp bikgKQotICAgICAgICB2YWxpZCA9IDA7CisgICAgcmVxX2lkID0gZ2V0X2Rt YV9yZXF1ZXN0b3JfaWQoaW9tbXUtPnNlZywgcGRldi0+c2JkZi5iZGYpOwor ICAgIGl2cnNfZGV2ID0gJmdldF9pdnJzX21hcHBpbmdzKGlvbW11LT5zZWcp W3JlcV9pZF07CisgICAgc3JfZmxhZ3MgPSAoaW9tbXVfaHdkb21fcGFzc3Ro cm91Z2ggJiYgaXNfaGFyZHdhcmVfZG9tYWluKGRvbWFpbikKKyAgICAgICAg ICAgICAgICA/IDAgOiBTRVRfUk9PVF9WQUxJRCkKKyAgICAgICAgICAgICAg IHwgKGl2cnNfZGV2LT51bml0eV9tYXAgPyBTRVRfUk9PVF9XSVRIX1VOSVRZ X01BUCA6IDApOwogCiAgICAgLyogZ2V0IGRldmljZS10YWJsZSBlbnRyeSAq LwogICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVzdG9yX2lkKGlvbW11LT5z ZWcsIFBDSV9CREYyKGJ1cywgZGV2Zm4pKTsKQEAgLTEzMCw5ICsxNTIsMTUg QEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwog ICAgIGlmICggIWR0ZS0+diB8fCAhZHRlLT50diApCiAgICAgewogICAgICAg ICAvKiBiaW5kIERURSB0byBkb21haW4gcGFnZS10YWJsZXMgKi8KLSAgICAg ICAgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCi0gICAgICAgICAg ICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2guYW1kLnJvb3RfdGFibGUp LAotICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFt ZC5wYWdpbmdfbW9kZSwgdmFsaWQpOworICAgICAgICByYyA9IGFtZF9pb21t dV9zZXRfcm9vdF9wYWdlX3RhYmxlKAorICAgICAgICAgICAgICAgICBkdGUs IHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2guYW1kLnJvb3RfdGFibGUpLAorICAg ICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2guYW1k LnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7CisgICAgICAgIGlmICggcmMgKQor ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQocmMgPCAwKTsKKyAgICAg ICAgICAgIHNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBm bGFncyk7CisgICAgICAgICAgICByZXR1cm4gcmM7CisgICAgICAgIH0KIAog ICAgICAgICAvKiBVbmRvIHdoYXQgYW1kX2lvbW11X2Rpc2FibGVfZG9tYWlu X2RldmljZSgpIG1heSBoYXZlIGRvbmUuICovCiAgICAgICAgIGlmICggZHRl LT5pdF9yb290ICkKQEAgLTE1MiwxNyArMTgwLDc2IEBAIHN0YXRpYyBpbnQg X19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKIAogICAg ICAgICBhbWRfaW9tbXVfZmx1c2hfZGV2aWNlKGlvbW11LCByZXFfaWQpOwor ICAgIH0KKyAgICBlbHNlIGlmICggZHRlLT5wdF9yb290ICE9IG1mbl94KHBh Z2VfdG9fbWZuKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSkgKQorICAgIHsK KyAgICAgICAgLyoKKyAgICAgICAgICogU3RyaWN0bHkgc3BlYWtpbmcgaWYg dGhlIGRldmljZSBpcyB0aGUgb25seSBvbmUgd2l0aCB0aGlzIHJlcXVlc3Rv cgorICAgICAgICAgKiBJRCwgaXQgY291bGQgYmUgYWxsb3dlZCB0byBiZSBy ZS1hc3NpZ25lZCByZWdhcmRsZXNzIG9mIHVuaXR5IG1hcAorICAgICAgICAg KiBwcmVzZW5jZS4gIEJ1dCBsZXQncyBkZWFsIHdpdGggdGhhdCBjYXNlIG9u bHkgaWYgaXQgaXMgYWN0dWFsbHkKKyAgICAgICAgICogZm91bmQgaW4gdGhl IHdpbGQuCisgICAgICAgICAqLworICAgICAgICBpZiAoIHJlcV9pZCAhPSBQ Q0lfQkRGMihidXMsIGRldmZuKSAmJgorICAgICAgICAgICAgIChzcl9mbGFn cyAmIFNFVF9ST09UX1dJVEhfVU5JVFlfTUFQKSApCisgICAgICAgICAgICBy YyA9IC1FT1BOT1RTVVBQOworICAgICAgICBlbHNlCisgICAgICAgICAgICBy YyA9IGFtZF9pb21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKAorICAgICAgICAg ICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKGhkLT5hcmNoLmFtZC5y b290X3RhYmxlKSwKKyAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9t YWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsK KyAgICAgICAgaWYgKCByYyA8IDAgKQorICAgICAgICB7CisgICAgICAgICAg ICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3Mp OworICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICB9CisgICAgICAg IGlmICggcmMgJiYKKyAgICAgICAgICAgICBkb21haW4gIT0gcGRldi0+ZG9t YWluICYmCisgICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAgKiBCeSBu b24tYXRvbWljYWxseSB1cGRhdGluZyB0aGUgRFRFJ3MgZG9tYWluIElEIGZp ZWxkIGxhc3QsCisgICAgICAgICAgICAgICogZHVyaW5nIGEgc2hvcnQgd2lu ZG93IGluIHRpbWUgVExCIGVudHJpZXMgd2l0aCB0aGUgb2xkIGRvbWFpbgor ICAgICAgICAgICAgICAqIElEIGJ1dCB0aGUgbmV3IHBhZ2UgdGFibGVzIG1h eSBoYXZlIGJlZW4gaW5zZXJ0ZWQuICBUaGlzIGNvdWxkCisgICAgICAgICAg ICAgICogYWZmZWN0IEkvTyBvZiBvdGhlciBkZXZpY2VzIHVzaW5nIHRoaXMg c2FtZSAob2xkKSBkb21haW4gSUQuCisgICAgICAgICAgICAgICogU3VjaCB1 cGRhdGluZyB0aGVyZWZvcmUgaXMgbm90IGEgcHJvYmxlbSBpZiB0aGlzIHdh cyB0aGUgb25seQorICAgICAgICAgICAgICAqIGRldmljZSBhc3NvY2lhdGVk IHdpdGggdGhlIG9sZCBkb21haW4gSUQuICBEaXZlcnRpbmcgSS9PIG9mIGFu eQorICAgICAgICAgICAgICAqIG9mIGEgZHlpbmcgZG9tYWluJ3MgZGV2aWNl cyB0byB0aGUgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBpcworICAgICAgICAg ICAgICAqIGludGVuZGVkIGFueXdheS4KKyAgICAgICAgICAgICAgKi8KKyAg ICAgICAgICAgICAhcGRldi0+ZG9tYWluLT5pc19keWluZyAmJgorICAgICAg ICAgICAgIChhbnlfcGRldl9iZWhpbmRfaW9tbXUocGRldi0+ZG9tYWluLCBw ZGV2LCBpb21tdSkgfHwKKyAgICAgICAgICAgICAgcGRldi0+cGhhbnRvbV9z dHJpZGUpICkKKyAgICAgICAgICAgIEFNRF9JT01NVV9XQVJOKCIgJXBwOiBy ZWFzc2lnbm1lbnQgbWF5IGNhdXNlICVwZCBkYXRhIGNvcnJ1cHRpb25cbiIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAmUENJX1NCREYzKHBkZXYt PnNlZywgYnVzLCBkZXZmbiksIHBkZXYtPmRvbWFpbik7CisKKyAgICAgICAg LyoKKyAgICAgICAgICogQ2hlY2sgcmVtYWluaW5nIHNldHRpbmdzIGFyZSBz dGlsbCBpbiBwbGFjZSBmcm9tIGFuIGVhcmxpZXIgY2FsbAorICAgICAgICAg KiBoZXJlLiBUaGV5J3JlIGFsbCBpbmRlcGVuZGVudCBvZiB0aGUgZG9tYWlu LCBzbyBzaG91bGQgbm90IGhhdmUKKyAgICAgICAgICogY2hhbmdlZC4KKyAg ICAgICAgICovCisgICAgICAgIGlmICggZHRlLT5pdF9yb290ICkKKyAgICAg ICAgICAgIEFTU0VSVChkdGUtPmludF9jdGwgPT0gSU9NTVVfREVWX1RBQkxF X0lOVF9DT05UUk9MX1RSQU5TTEFURUQpOworICAgICAgICBBU1NFUlQoZHRl LT5pdiA9PSBpb21tdV9pbnRyZW1hcCk7CisgICAgICAgIEFTU0VSVChkdGUt PmV4ID09IGl2cnNfZGV2LT5kdGVfYWxsb3dfZXhjbHVzaW9uKTsKKyAgICAg ICAgQVNTRVJUKGR0ZS0+c3lzX21ndCA9PSBNQVNLX0VYVFIoaXZyc19kZXYt PmRldmljZV9mbGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgQUNQSV9JVkhEX1NZU1RFTV9NR01UKSk7CiAKLSAgICAg ICAgQU1EX0lPTU1VX0RFQlVHKCJTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2 aWNlIGlkID0gJSN4LCB0eXBlID0gJSN4LCAiCi0gICAgICAgICAgICAgICAg ICAgICAgICAicm9vdCB0YWJsZSA9ICUjIlBSSXg2NCIsICIKLSAgICAgICAg ICAgICAgICAgICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAl ZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgcGRldi0+ dHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9fbWFkZHIo aGQtPmFyY2guYW1kLnJvb3RfdGFibGUpLAotICAgICAgICAgICAgICAgICAg ICAgICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdf bW9kZSk7CisgICAgICAgIGlmICggcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNl ZywgYnVzLCBwZGV2LT5kZXZmbikgJiYKKyAgICAgICAgICAgICAhaXZyc19k ZXYtPmJsb2NrX2F0cyAmJgorICAgICAgICAgICAgIGlvbW11X2hhc19jYXAo aW9tbXUsIFBDSV9DQVBfSU9UTEJfU0hJRlQpICkKKyAgICAgICAgICAgIEFT U0VSVChkdGUtPmkgPT0gYXRzX2VuYWJsZWQpOworCisgICAgICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CisKKyAg ICAgICAgYW1kX2lvbW11X2ZsdXNoX2RldmljZShpb21tdSwgcmVxX2lkKTsK ICAgICB9CiAgICAgZWxzZQogICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0 b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogCisgICAgQU1EX0lPTU1VX0RF QlVHKCJTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gJSN4LCB0 eXBlID0gJSN4LCAiCisgICAgICAgICAgICAgICAgICAgICJyb290IHRhYmxl ID0gJSMiUFJJeDY0IiwgIgorICAgICAgICAgICAgICAgICAgICAiZG9tYWlu ID0gJWQsIHBhZ2luZyBtb2RlID0gJWRcbiIsCisgICAgICAgICAgICAgICAg ICAgIHJlcV9pZCwgcGRldi0+dHlwZSwKKyAgICAgICAgICAgICAgICAgICAg cGFnZV90b19tYWRkcihoZC0+YXJjaC5hbWQucm9vdF90YWJsZSksCisgICAg ICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5h bWQucGFnaW5nX21vZGUpOworCiAgICAgQVNTRVJUKHBjaWRldnNfbG9ja2Vk KCkpOwogCiAgICAgaWYgKCBwY2lfYXRzX2RldmljZShpb21tdS0+c2VnLCBi dXMsIHBkZXYtPmRldmZuKSAmJgpAQCAtMzY2LDcgKzQ1MywyMCBAQCBzdGF0 aWMgaW50IHJlYXNzaWduX2RldmljZShzdHJ1Y3QgZG9tYWluCiAgICAgICAg IHJldHVybiAtRU5PREVWOwogICAgIH0KIAotICAgIGFtZF9pb21tdV9kaXNh YmxlX2RvbWFpbl9kZXZpY2Uoc291cmNlLCBpb21tdSwgZGV2Zm4sIHBkZXYp OworICAgIGlmICggIVFVQVJBTlRJTkVfU0tJUCh0YXJnZXQpICkKKyAgICB7 CisgICAgICAgIHJjID0gYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2Uo dGFyZ2V0LCBpb21tdSwgZGV2Zm4sIHBkZXYpOworICAgICAgICBpZiAoIHJj ICkKKyAgICAgICAgICAgIHJldHVybiByYzsKKyAgICB9CisgICAgZWxzZQor ICAgICAgICBhbWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2aWNlKHNvdXJj ZSwgaW9tbXUsIGRldmZuLCBwZGV2KTsKKworICAgIGlmICggZGV2Zm4gPT0g cGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCApCisgICAg eworICAgICAgICBsaXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFy Z2V0LT5wZGV2X2xpc3QpOworICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJn ZXQ7CisgICAgfQogCiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNlIGJl bG9uZ3MgdG8gdGhlIGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBhIHVu aXR5IG1hcHBpbmcsCkBAIC0zODIsMjUgKzQ4Miw5IEBAIHN0YXRpYyBpbnQg cmVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4KICAgICAgICAgICAgIHJl dHVybiByYzsKICAgICB9CiAKLSAgICBpZiAoIGRldmZuID09IHBkZXYtPmRl dmZuICYmIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQotICAgIHsKLSAgICAg ICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5fbGlzdCwgJmRvbV9pby0+cGRl dl9saXN0KTsKLSAgICAgICAgcGRldi0+ZG9tYWluID0gZG9tX2lvOwotICAg IH0KLQotICAgIHJjID0gYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2Uo dGFyZ2V0LCBpb21tdSwgZGV2Zm4sIHBkZXYpOwotICAgIGlmICggcmMgKQot ICAgICAgICByZXR1cm4gcmM7Ci0KICAgICBBTURfSU9NTVVfREVCVUcoIlJl LWFzc2lnbiAlcHAgZnJvbSBkb20lZCB0byBkb20lZFxuIiwKICAgICAgICAg ICAgICAgICAgICAgJnBkZXYtPnNiZGYsIHNvdXJjZS0+ZG9tYWluX2lkLCB0 YXJnZXQtPmRvbWFpbl9pZCk7CiAKLSAgICBpZiAoIGRldmZuID09IHBkZXYt PmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSB0YXJnZXQgKQotICAgIHsKLSAg ICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5fbGlzdCwgJnRhcmdldC0+ cGRldl9saXN0KTsKLSAgICAgICAgcGRldi0+ZG9tYWluID0gdGFyZ2V0Owot ICAgIH0KLQogICAgIHJldHVybiAwOwogfQogCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-07.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-07.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSSkKCkFycmFuZ2UgZm9yIGRvbWFpbiBJRCBhbmQg cGFnZSB0YWJsZSByb290IHRvIGJlIHBhc3NlZCBhcm91bmQsIHRoZSBsYXR0 ZXIgaW4KcGFydGljdWxhciB0byBkb21haW5fcGdkX21hZGRyKCkgc3VjaCB0 aGF0IHRha2luZyBpdCBmcm9tIHRoZSBwZXItZG9tYWluCmZpZWxkcyBjYW4g YmUgb3ZlcnJpZGRlbi4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2V4dGVybi5oCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9l eHRlcm4uaApAQCAtODUsOSArODUsMTAgQEAgdm9pZCAqbWFwX3Z0ZF9kb21h aW5fcGFnZSh1NjQgbWFkZHIpOwogdm9pZCB1bm1hcF92dGRfZG9tYWluX3Bh Z2UoY29uc3Qgdm9pZCAqdmEpOwogaW50IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IHZ0ZF9pb21t dSAqaW9tbXUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu dDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2ln bmVkIGludCBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwgZG9taWRfdCBkb21pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkcl90IHBnZF9t YWRkciwgdW5zaWduZWQgaW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRf aW9tbXUgKmlvbW11LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 OCBidXMsIHU4IGRldmZuKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdWludDhfdCBidXMsIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQp OwogaW50IGludGVsX2lvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5 KGlvbW11X2dyZG1fdCAqZnVuYywgdm9pZCAqY3R4dCk7CiAKIHVuc2lnbmVk IGludCBpb19hcGljX3JlYWRfcmVtYXBfcnRlKHVuc2lnbmVkIGludCBhcGlj LCB1bnNpZ25lZCBpbnQgcmVnKTsKQEAgLTEwNiw3ICsxMDcsOCBAQCB2b2lk IHBsYXRmb3JtX3F1aXJrc19pbml0KHZvaWQpOwogdm9pZCB2dGRfb3BzX3By ZWFtYmxlX3F1aXJrKHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KTsKIHZvaWQg dnRkX29wc19wb3N0YW1ibGVfcXVpcmsoc3RydWN0IHZ0ZF9pb21tdSAqaW9t bXUpOwogaW50IF9fbXVzdF9jaGVjayBtZV93aWZpX3F1aXJrKHN0cnVjdCBk b21haW4gKmRvbWFpbiwgdWludDhfdCBidXMsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdWludDhfdCBkZXZmbiwgdW5zaWduZWQgaW50IG1v ZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg ZGV2Zm4sIGRvbWlkX3QgZG9taWQsIHBhZGRyX3QgcGdkX21hZGRyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtb2Rl KTsKIHZvaWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBzdHJ1Y3QgcGNpX2RldiAq KTsKIHZvaWQgcXVpcmtfaW9tbXVfY2FwcyhzdHJ1Y3QgdnRkX2lvbW11ICpp b21tdSk7CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRlICIuLi9hdHMuaCIKIAog LyogZG9tX2lvIGlzIHVzZWQgYXMgYSBzZW50aW5lbCBmb3IgcXVhcmFudGlu ZWQgZGV2aWNlcyAqLwotI2RlZmluZSBRVUFSQU5USU5FX1NLSVAoZCkgKChk KSA9PSBkb21faW8gJiYgIWRvbV9pb21tdShkKS0+YXJjaC52dGQucGdkX21h ZGRyKQorI2RlZmluZSBRVUFSQU5USU5FX1NLSVAoZCwgcGdkX21hZGRyKSAo KGQpID09IGRvbV9pbyAmJiAhKHBnZF9tYWRkcikpCiAKIC8qIFBvc3NpYmxl IHVuZmlsdGVyZWQgTEFQSUMvTVNJIG1lc3NhZ2VzIGZyb20gdW50cnVzdGVk IHNvdXJjZXM/ICovCiBib29sIF9fcmVhZF9tb3N0bHkgdW50cnVzdGVkX21z aTsKQEAgLTM1OCwxNSArMzU4LDE3IEBAIHN0YXRpYyB1NjQgYWRkcl90b19k bWFfcGFnZV9tYWRkcihzdHJ1Y3QKICAgICByZXR1cm4gcHRlX21hZGRyOwog fQogCi1zdGF0aWMgdWludDY0X3QgZG9tYWluX3BnZF9tYWRkcihzdHJ1Y3Qg ZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgbnJfcHRfbGV2ZWxzKQorc3RhdGlj IHBhZGRyX3QgZG9tYWluX3BnZF9tYWRkcihzdHJ1Y3QgZG9tYWluICpkLCBw YWRkcl90IHBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG5yX3B0X2xldmVscykKIHsKICAgICBzdHJ1 Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKLSAgICB1aW50 NjRfdCBwZ2RfbWFkZHI7CiAgICAgdW5zaWduZWQgaW50IGFnYXc7CiAKICAg ICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhkLT5hcmNoLm1hcHBpbmdfbG9j aykpOwogCi0gICAgaWYgKCBpb21tdV91c2VfaGFwX3B0KGQpICkKKyAgICBp ZiAoIHBnZF9tYWRkciApCisgICAgICAgIC8qIG5vdGhpbmcgKi87CisgICAg ZWxzZSBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkgKQogICAgIHsKICAgICAg ICAgcGFnZXRhYmxlX3QgcGd0ID0gcDJtX2dldF9wYWdldGFibGUocDJtX2dl dF9ob3N0cDJtKGQpKTsKIApAQCAtMTM4NSwxOCArMTM4NywxOCBAQCBpbnQg ZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAgICAgc3RydWN0IGRvbWFp biAqZG9tYWluLAogICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAogICAg IHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqcGRldiwKLSAgICB1bnNpZ25lZCBpbnQgbW9kZSkKKyAgICBkb21p ZF90IGRvbWlkLCBwYWRkcl90IHBnZF9tYWRkciwgdW5zaWduZWQgaW50IG1v ZGUpCiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZG9tYWluKTsKICAgICBzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4 dCwgKmNvbnRleHRfZW50cmllcywgbGN0eHQ7CiAgICAgX191aW50MTI4X3Qg b2xkOwotICAgIHU2NCBtYWRkciwgcGdkX21hZGRyOworICAgIHVpbnQ2NF90 IG1hZGRyOwogICAgIHVpbnQxNl90IHNlZyA9IGlvbW11LT5kcmhkLT5zZWdt ZW50LCBwcmV2X2RpZCA9IDA7CiAgICAgc3RydWN0IGRvbWFpbiAqcHJldl9k b20gPSBOVUxMOwogICAgIGludCByYywgcmV0OwogICAgIGJvb2xfdCBmbHVz aF9kZXZfaW90bGI7CiAKLSAgICBpZiAoIFFVQVJBTlRJTkVfU0tJUChkb21h aW4pICkKKyAgICBpZiAoIFFVQVJBTlRJTkVfU0tJUChkb21haW4sIHBnZF9t YWRkcikgKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVChwY2lk ZXZzX2xvY2tlZCgpKTsKQEAgLTE0MzMsMTAgKzE0MzUsMTIgQEAgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIH0KICAgICBlbHNlCiAg ICAgeworICAgICAgICBwYWRkcl90IHJvb3Q7CisKICAgICAgICAgc3Bpbl9s b2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAgICAgIHBnZF9t YWRkciA9IGRvbWFpbl9wZ2RfbWFkZHIoZG9tYWluLCBpb21tdS0+bnJfcHRf bGV2ZWxzKTsKLSAgICAgICAgaWYgKCAhcGdkX21hZGRyICkKKyAgICAgICAg cm9vdCA9IGRvbWFpbl9wZ2RfbWFkZHIoZG9tYWluLCBwZ2RfbWFkZHIsIGlv bW11LT5ucl9wdF9sZXZlbHMpOworICAgICAgICBpZiAoICFyb290ICkKICAg ICAgICAgewogICAgICAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1h cHBpbmdfbG9jayk7CiAgICAgICAgICAgICBzcGluX3VubG9jaygmaW9tbXUt PmxvY2spOwpAQCAtMTQ0Niw3ICsxNDUwLDcgQEAgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmdfb25lKAogICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07 CiAgICAgICAgIH0KIAotICAgICAgICBjb250ZXh0X3NldF9hZGRyZXNzX3Jv b3QobGN0eHQsIHBnZF9tYWRkcik7CisgICAgICAgIGNvbnRleHRfc2V0X2Fk ZHJlc3Nfcm9vdChsY3R4dCwgcm9vdCk7CiAgICAgICAgIGlmICggYXRzX2Vu YWJsZWQgJiYgZWNhcF9kZXZfaW90bGIoaW9tbXUtPmVjYXApICkKICAgICAg ICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0aW9uX3R5cGUobGN0eHQsIENP TlRFWFRfVFRfREVWX0lPVExCKTsKICAgICAgICAgZWxzZQpAQCAtMTU2Miwx NSArMTU2NiwyMSBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUo CiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7 CiAKICAgICBpZiAoICFzZWcgJiYgIXJjICkKLSAgICAgICAgcmMgPSBtZV93 aWZpX3F1aXJrKGRvbWFpbiwgYnVzLCBkZXZmbiwgbW9kZSk7CisgICAgICAg IHJjID0gbWVfd2lmaV9xdWlyayhkb21haW4sIGJ1cywgZGV2Zm4sIGRvbWlk LCBwZ2RfbWFkZHIsIG1vZGUpOwogCiAgICAgaWYgKCByYyApCiAgICAgewog ICAgICAgICBpZiAoICFwcmV2X2RvbSApCi0gICAgICAgICAgICByZXQgPSBk b21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBk ZXZmbik7CisgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1h cF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCk7CiAgICAgICAgIGVsc2UgaWYgKCBwcmV2X2RvbSAhPSBkb21haW4g KSAvKiBBdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uICovCisgICAgICAgIHsK KyAgICAgICAgICAgIGhkID0gZG9tX2lvbW11KHByZXZfZG9tKTsKICAgICAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKHByZXZf ZG9tLCBpb21tdSwgYnVzLCBkZXZmbiwgcGRldiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGQtPmFyY2gudnRkLnBnZF9tYWRkciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgJiBNQVBfV0lU SF9STVJSKSA8IDA7CisgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAg ICAgICAgcmV0ID0gMTsKIApAQCAtMTU5Miw2ICsxNjAyLDcgQEAgc3RhdGlj IGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogewogICAgIGNv bnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZCA9IGFjcGlfZmluZF9t YXRjaGVkX2RyaGRfdW5pdChwZGV2KTsKICAgICBjb25zdCBzdHJ1Y3QgYWNw aV9ybXJyX3VuaXQgKnJtcnI7CisgICAgcGFkZHJfdCBwZ2RfbWFkZHIgPSBk b21faW9tbXUoZG9tYWluKS0+YXJjaC52dGQucGdkX21hZGRyOwogICAgIGlu dCByZXQgPSAwOwogICAgIHVuc2lnbmVkIGludCBpLCBtb2RlID0gMDsKICAg ICB1aW50MTZfdCBzZWcgPSBwZGV2LT5zZWcsIGJkZjsKQEAgLTE2NTQsNyAr MTY2NSw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhz dHJ1Y3QKICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiVwZDpQQ0ll OiBtYXAgJXBwXG4iLAogICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBD SV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKICAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwg YnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgcGRldiwgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ZG9tYWluX2lkLCBw Z2RfbWFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA+IDAgKQogICAgICAg ICAgICAgcmV0ID0gMDsKICAgICAgICAgaWYgKCAhcmV0ICYmIGRldmZuID09 IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkK QEAgLTE2NzEsNyArMTY4Myw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAgICAgICBkb21haW4s ICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CiAKICAgICAgICAgcmV0 ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5p b21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGRldiwgbW9kZSk7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFpbi0+ZG9tYWlu X2lkLCBwZ2RfbWFkZHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA8IDAgKQog ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHByZXZfcHJlc2VudCA9IHJl dDsKQEAgLTE2OTksNyArMTcxMiw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICovCiAgICAgICAgIGlm ICggcmV0ID49IDAgKQogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZm biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIE5VTEwsIG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTlVMTCwgZG9tYWluLT5kb21haW5faWQsIHBn ZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1vZGUpOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIERl dmljZXMgYmVoaW5kIFBDSWUtdG8tUENJL1BDSXggYnJpZGdlIG1heSBnZW5l cmF0ZSBkaWZmZXJlbnQKQEAgLTE3MTQsNyArMTcyOCw4IEBAIHN0YXRpYyBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYg KCAhcmV0ICYmIHBkZXZfdHlwZShzZWcsIGJ1cywgZGV2Zm4pID09IERFVl9U WVBFX1BDSWUyUENJX0JSSURHRSAmJgogICAgICAgICAgICAgIChzZWNidXMg IT0gcGRldi0+YnVzIHx8IHBkZXYtPmRldmZuICE9IDApICkKICAgICAgICAg ICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwg ZHJoZC0+aW9tbXUsIHNlY2J1cywgMCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsIG1vZGUpOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwg ZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRkciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOwogCiAgICAg ICAgIGlmICggcmV0ICkKICAgICAgICAgewpAQCAtMTc0MiwxNCArMTc1Nywx NCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0 CiBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKAogICAgIHN0cnVjdCBk b21haW4gKmRvbWFpbiwKICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwK LSAgICB1OCBidXMsIHU4IGRldmZuKQorICAgIHVpbnQ4X3QgYnVzLCB1aW50 OF90IGRldmZuLCBkb21pZF90IGRvbWlkKQogewogICAgIHN0cnVjdCBjb250 ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4dF9lbnRyaWVzOwogICAgIHU2 NCBtYWRkcjsKICAgICBpbnQgaW9tbXVfZG9taWQsIHJjLCByZXQ7CiAgICAg Ym9vbF90IGZsdXNoX2Rldl9pb3RsYjsKIAotICAgIGlmICggUVVBUkFOVElO RV9TS0lQKGRvbWFpbikgKQorICAgIGlmICggUVVBUkFOVElORV9TS0lQKGRv bWFpbiwgZG9tX2lvbW11KGRvbWFpbiktPmFyY2gudnRkLnBnZF9tYWRkcikg KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFTU0VSVChwY2lkZXZzX2xv Y2tlZCgpKTsKQEAgLTE4MDMsNyArMTgxOCw3IEBAIGludCBkb21haW5fY29u dGV4dF91bm1hcF9vbmUoCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNv bnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFpb21tdS0+ZHJoZC0+c2Vn bWVudCAmJiAhcmMgKQotICAgICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9t YWluLCBidXMsIGRldmZuLCBVTk1BUF9NRV9QSEFOVE9NX0ZVTkMpOworICAg ICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBk b21pZCwgMCwgVU5NQVBfTUVfUEhBTlRPTV9GVU5DKTsKIAogICAgIGlmICgg cmMgJiYgIWlzX2hhcmR3YXJlX2RvbWFpbihkb21haW4pICYmIGRvbWFpbiAh PSBkb21faW8gKQogICAgIHsKQEAgLTE4NTAsNyArMTg2NSw4IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0IGQKICAgICAgICAg aWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAgICBwcmludGsoVlREUFJF RklYICIlcGQ6UENJZTogdW5tYXAgJXBwXG4iLAogICAgICAgICAgICAgICAg ICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKLSAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwg aW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAgICByZXQgPSBkb21haW5fY29u dGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ ZG9tYWluX2lkKTsKICAgICAgICAgaWYgKCAhcmV0ICYmIGRldmZuID09IHBk ZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwgZHJoZCkgPiAwICkKICAg ICAgICAgICAgIGRpc2FibGVfYXRzX2RldmljZShwZGV2KTsKIApAQCAtMTg2 Myw3ICsxODc5LDggQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1h cChzdHJ1Y3QgZAogICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAg ICAgICAgIHByaW50ayhWVERQUkVGSVggIiVwZDpQQ0k6IHVubWFwICVwcFxu IiwKICAgICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2Vn LCBidXMsIGRldmZuKSk7Ci0gICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuKTsKKyAgICAg ICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9t bXUsIGJ1cywgZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7CiAgICAgICAgIGlmICgg cmV0ICkKICAgICAgICAgICAgIGJyZWFrOwogCkBAIC0xODg5LDEyICsxOTA2 LDE1IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0 IGQKICAgICAgICAgLyogUENJZSB0byBQQ0kvUENJeCBicmlkZ2UgKi8KICAg ICAgICAgaWYgKCBwZGV2X3R5cGUoc2VnLCB0bXBfYnVzLCB0bXBfZGV2Zm4p ID09IERFVl9UWVBFX1BDSWUyUENJX0JSSURHRSApCiAgICAgICAgIHsKLSAg ICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21h aW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4pOworICAgICAgICAgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUs IHRtcF9idXMsIHRtcF9kZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7CiAgICAg ICAgICAgICBpZiAoICFyZXQgKQotICAgICAgICAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBzZWNidXMs IDApOworICAgICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3Vu bWFwX29uZShkb21haW4sIGlvbW11LCBzZWNidXMsIDAsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ ZG9tYWluX2lkKTsKICAgICAgICAgfQogICAgICAgICBlbHNlIC8qIExlZ2Fj eSBQQ0kgYnJpZGdlICovCi0gICAgICAgICAgICByZXQgPSBkb21haW5fY29u dGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgdG1wX2J1cywgdG1wX2Rl dmZuKTsKKyAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFw X29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWlu LT5kb21haW5faWQpOwogCiAgICAgICAgIGJyZWFrOwogCkBAIC0xOTA0LDcg KzE5MjQsOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0 cnVjdCBkCiAgICAgICAgIHJldHVybiAtRUlOVkFMOwogICAgIH0KIAotICAg IGlmICggIXJldCAmJiAhUVVBUkFOVElORV9TS0lQKGRvbWFpbikgJiYgcGRl di0+ZGV2Zm4gPT0gZGV2Zm4gKQorICAgIGlmICggIXJldCAmJiBwZGV2LT5k ZXZmbiA9PSBkZXZmbiAmJgorICAgICAgICAgIVFVQVJBTlRJTkVfU0tJUChk b21haW4sIGRvbV9pb21tdShkb21haW4pLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIp ICkKICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoZG9tYWluLCBw ZGV2LCBpb21tdSk7CiAKICAgICByZXR1cm4gcmV0OwpAQCAtMjUxMSw3ICsy NTMyLDcgQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Vfb3duZXJzaGlw KAogewogICAgIGludCByZXQ7CiAKLSAgICBpZiAoICFRVUFSQU5USU5FX1NL SVAodGFyZ2V0KSApCisgICAgaWYgKCAhUVVBUkFOVElORV9TS0lQKHRhcmdl dCwgZG9tX2lvbW11KHRhcmdldCktPmFyY2gudnRkLnBnZF9tYWRkcikgKQog ICAgIHsKICAgICAgICAgaWYgKCAhaGFzX2FyY2hfcGRldnModGFyZ2V0KSAp CiAgICAgICAgICAgICB2bXhfcGlfaG9va3NfYXNzaWduKHRhcmdldCk7CkBA IC0yNTI2LDcgKzI1NDcsOCBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2Rldmlj ZV9vd25lcnNoaXAoCiAKICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRf bWFwcGluZyh0YXJnZXQsIGRldmZuLCBwZGV2KTsKIAotICAgICAgICBpZiAo ICFyZXQgJiYgIVFVQVJBTlRJTkVfU0tJUChzb3VyY2UpICYmIHBkZXYtPmRl dmZuID09IGRldmZuICkKKyAgICAgICAgaWYgKCAhcmV0ICYmIHBkZXYtPmRl dmZuID09IGRldmZuICYmCisgICAgICAgICAgICAgIVFVQVJBTlRJTkVfU0tJ UChzb3VyY2UsIGRvbV9pb21tdShzb3VyY2UpLT5hcmNoLnZ0ZC5wZ2RfbWFk ZHIpICkKICAgICAgICAgewogICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFj cGlfZHJoZF91bml0ICpkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91 bml0KHBkZXYpOwogCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0 ZC9xdWlya3MuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQv cXVpcmtzLmMKQEAgLTQwOCw2ICs0MDgsOCBAQCB2b2lkIF9faW5pdCBwbGF0 Zm9ybV9xdWlya3NfaW5pdCh2b2lkKQogCiBzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBtYXBfbWVfcGhhbnRvbV9mdW5jdGlvbihzdHJ1Y3QgZG9tYWluICpk b21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgZGV2LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9taWRfdCBkb21p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhZGRyX3QgcGdkX21hZGRyLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1v ZGUpCiB7CiAgICAgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkOwpAQCAt NDIxLDE2ICs0MjMsMTcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgbWFw X21lX3BoYW50b21fZgogICAgIC8qIG1hcCBvciB1bm1hcCBNRSBwaGFudG9t IGZ1bmN0aW9uICovCiAgICAgaWYgKCAhKG1vZGUgJiBVTk1BUF9NRV9QSEFO VE9NX0ZVTkMpICkKICAgICAgICAgcmMgPSBkb21haW5fY29udGV4dF9tYXBw aW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCAwLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcp LCBOVUxMLCBtb2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQQ0lfREVWRk4oZGV2LCA3KSwgTlVMTCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21pZCwgcGdkX21h ZGRyLCBtb2RlKTsKICAgICBlbHNlCiAgICAgICAgIHJjID0gZG9tYWluX2Nv bnRleHRfdW5tYXBfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIDAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihk ZXYsIDcpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUENJX0RFVkZOKGRldiwgNyksIGRvbWlkKTsKIAogICAgIHJldHVybiBy YzsKIH0KIAogaW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9t YWluLCB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwKLSAgICAgICAgICAg ICAgICAgIHVuc2lnbmVkIGludCBtb2RlKQorICAgICAgICAgICAgICAgICAg ZG9taWRfdCBkb21pZCwgcGFkZHJfdCBwZ2RfbWFkZHIsIHVuc2lnbmVkIGlu dCBtb2RlKQogewogICAgIHUzMiBpZDsKICAgICBpbnQgcmMgPSAwOwpAQCAt NDU0LDcgKzQ1Nyw3IEBAIGludCBtZV93aWZpX3F1aXJrKHN0cnVjdCBkb21h aW4gKmRvbWFpbiwKICAgICAgICAgICAgIGNhc2UgMHg0MjNiODA4NjoKICAg ICAgICAgICAgIGNhc2UgMHg0MjNjODA4NjoKICAgICAgICAgICAgIGNhc2Ug MHg0MjNkODA4NjoKLSAgICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFu dG9tX2Z1bmN0aW9uKGRvbWFpbiwgMywgbW9kZSk7CisgICAgICAgICAgICAg ICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDMsIGRv bWlkLCBwZ2RfbWFkZHIsIG1vZGUpOwogICAgICAgICAgICAgICAgIGJyZWFr OwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBicmVh azsKQEAgLTQ4MCw3ICs0ODMsNyBAQCBpbnQgbWVfd2lmaV9xdWlyayhzdHJ1 Y3QgZG9tYWluICpkb21haW4sCiAgICAgICAgICAgICBjYXNlIDB4NDIzODgw ODY6ICAgICAgICAvKiBQdW1hIFBlYWsgKi8KICAgICAgICAgICAgIGNhc2Ug MHg0MjJiODA4NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjJjODA4NjoKLSAg ICAgICAgICAgICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRv bWFpbiwgMjIsIG1vZGUpOworICAgICAgICAgICAgICAgIHJjID0gbWFwX21l X3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAyMiwgZG9taWQsIHBnZF9tYWRk ciwgbW9kZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg ICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-08.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-08.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSUkpCgpSZXBsYWNlIHRoZSBwYXNzaW5nIG9mIHN0 cnVjdCBkb21haW4gKiBieSBkb21pZF90IGluIHByZXBhcmF0aW9uIG9mCnBl ci1kZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBhbHNvIHJlcXVpcmlu ZyBwZXItZGV2aWNlIHBzZXVkbwpkb21haW4gSURzLCB3aGljaCBhcmVuJ3Qg Z29pbmcgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFueSBzdHJ1Y3QgZG9tYWlu Cmluc3RhbmNlcy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkIChl eGNlcHQgZm9yIHNsaWdodGx5IGFkanVzdGVkIGxvZyBtZXNzYWdlCnRleHQp LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRk L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmMKQEAgLTYyLDggKzYyLDggQEAgc3RhdGljIHN0cnVjdCB0YXNrbGV0 IHZ0ZF9mYXVsdF90YXNrbGV0Owogc3RhdGljIGludCBzZXR1cF9od2RvbV9k ZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICopOwogc3RhdGljIHZv aWQgc2V0dXBfaHdkb21fcm1ycihzdHJ1Y3QgZG9tYWluICpkKTsKIAotc3Rh dGljIGludCBkb21haW5faW9tbXVfZG9taWQoc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11KQorc3RhdGljIGludCBnZXRfaW9tbXVfZGlkKGRvbWlkX3Qg ZG9taWQsIGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAorICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgd2FybikKIHsKICAgICB1bnNpZ25l ZCBsb25nIG5yX2RvbSwgaTsKIApAQCAtNzEsMTYgKzcxLDE2IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICAgICBpID0g ZmluZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsK ICAgICB3aGlsZSAoIGkgPCBucl9kb20gKQogICAgIHsKLSAgICAgICAgaWYg KCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGQtPmRvbWFpbl9pZCApCisgICAg ICAgIGlmICggaW9tbXUtPmRvbWlkX21hcFtpXSA9PSBkb21pZCApCiAgICAg ICAgICAgICByZXR1cm4gaTsKIAogICAgICAgICBpID0gZmluZF9uZXh0X2Jp dChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20sIGkrMSk7CiAgICAgfQog Ci0gICAgaWYgKCAhZC0+aXNfZHlpbmcgKQorICAgIGlmICggd2FybiApCiAg ICAgICAgIGRwcmludGsoWEVOTE9HX0VSUiBWVERQUkVGSVgsCi0gICAgICAg ICAgICAgICAgIkNhbm5vdCBnZXQgdmFsaWQgaW9tbXUgJXUgZG9taWQ6ICVw ZFxuIiwKLSAgICAgICAgICAgICAgICBpb21tdS0+aW5kZXgsIGQpOworICAg ICAgICAgICAgICAgICJObyB2YWxpZCBpb21tdSAldSBkb21pZCBmb3IgRG9t JWRcbiIsCisgICAgICAgICAgICAgICAgaW9tbXUtPmluZGV4LCBkb21pZCk7 CiAKICAgICByZXR1cm4gLTE7CiB9CkBAIC04OCw4ICs4OCw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2lvbW11X2RvbWlkKHN0cnVjdCBkb20KICNkZWZpbmUg RElEX0ZJRUxEX1dJRFRIIDE2CiAjZGVmaW5lIERJRF9ISUdIX09GRlNFVCA4 CiBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1Y3QgY29u dGV4dF9lbnRyeSAqY29udGV4dCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCBkb21haW4gKmQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQs IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVkIGxv bmcgbnJfZG9tLCBpOwogICAgIGludCBmb3VuZCA9IDA7CkBAIC0xMDAsNyAr OTksNyBAQCBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9pZChzdHJ1 Y3QKICAgICBpID0gZmluZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1h cCwgbnJfZG9tKTsKICAgICB3aGlsZSAoIGkgPCBucl9kb20gKQogICAgIHsK LSAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ldID09IGQtPmRvbWFp bl9pZCApCisgICAgICAgIGlmICggaW9tbXUtPmRvbWlkX21hcFtpXSA9PSBk b21pZCApCiAgICAgICAgIHsKICAgICAgICAgICAgIGZvdW5kID0gMTsKICAg ICAgICAgICAgIGJyZWFrOwpAQCAtMTE2LDcgKzExNSw3IEBAIHN0YXRpYyBp bnQgY29udGV4dF9zZXRfZG9tYWluX2lkKHN0cnVjdAogICAgICAgICAgICAg ZHByaW50ayhYRU5MT0dfRVJSIFZURFBSRUZJWCwgIklPTU1VOiBubyBmcmVl IGRvbWFpbiBpZHNcbiIpOwogICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7 CiAgICAgICAgIH0KLSAgICAgICAgaW9tbXUtPmRvbWlkX21hcFtpXSA9IGQt PmRvbWFpbl9pZDsKKyAgICAgICAgaW9tbXUtPmRvbWlkX21hcFtpXSA9IGRv bWlkOwogICAgIH0KIAogICAgIHNldF9iaXQoaSwgaW9tbXUtPmRvbWlkX2Jp dG1hcCk7CkBAIC0xMjUsOSArMTI0LDkgQEAgc3RhdGljIGludCBjb250ZXh0 X3NldF9kb21haW5faWQoc3RydWN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0 YXRpYyB2b2lkIGNsZWFudXBfZG9taWRfbWFwKHN0cnVjdCBkb21haW4gKmRv bWFpbiwgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpCitzdGF0aWMgdm9pZCBj bGVhbnVwX2RvbWlkX21hcChkb21pZF90IGRvbWlkLCBzdHJ1Y3QgdnRkX2lv bW11ICppb21tdSkKIHsKLSAgICBpbnQgaW9tbXVfZG9taWQgPSBkb21haW5f aW9tbXVfZG9taWQoZG9tYWluLCBpb21tdSk7CisgICAgaW50IGlvbW11X2Rv bWlkID0gZ2V0X2lvbW11X2RpZChkb21pZCwgaW9tbXUsIGZhbHNlKTsKIAog ICAgIGlmICggaW9tbXVfZG9taWQgPj0gMCApCiAgICAgewpAQCAtMTY3LDcg KzE2Niw3IEBAIHN0YXRpYyBib29sIGFueV9wZGV2X2JlaGluZF9pb21tdShj b25zdAogICogSWYgbm8gb3RoZXIgZGV2aWNlcyB1bmRlciB0aGUgc2FtZSBp b21tdSBvd25lZCBieSB0aGlzIGRvbWFpbiwKICAqIGNsZWFyIGlvbW11IGlu IGlvbW11X2JpdG1hcCBhbmQgY2xlYXIgZG9tYWluX2lkIGluIGRvbWlkX2Jp dG1hcC4KICAqLwotc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9t YXAoc3RydWN0IGRvbWFpbiAqZCwKK3N0YXRpYyB2b2lkIGNoZWNrX2NsZWFu dXBfZG9taWRfbWFwKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNp X2RldiAqZXhjbHVkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewpAQCAtMTgzLDcg KzE4Miw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2NsZWFudXBfZG9taWRfbWFw KHN0cnUKICAgICBpZiAoICFmb3VuZCApCiAgICAgewogICAgICAgICBjbGVh cl9iaXQoaW9tbXUtPmluZGV4LCBkb21faW9tbXUoZCktPmFyY2gudnRkLmlv bW11X2JpdG1hcCk7Ci0gICAgICAgIGNsZWFudXBfZG9taWRfbWFwKGQsIGlv bW11KTsKKyAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZC0+ZG9tYWluX2lk LCBpb21tdSk7CiAgICAgfQogfQogCkBAIC02ODMsNyArNjgyLDcgQEAgc3Rh dGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bAogICAgICAg ICAgICAgY29udGludWU7CiAKICAgICAgICAgZmx1c2hfZGV2X2lvdGxiID0g ISFmaW5kX2F0c19kZXZfZHJoZChpb21tdSk7Ci0gICAgICAgIGlvbW11X2Rv bWlkPSBkb21haW5faW9tbXVfZG9taWQoZCwgaW9tbXUpOworICAgICAgICBp b21tdV9kb21pZCA9IGdldF9pb21tdV9kaWQoZC0+ZG9tYWluX2lkLCBpb21t dSwgIWQtPmlzX2R5aW5nKTsKICAgICAgICAgaWYgKCBpb21tdV9kb21pZCA9 PSAtMSApCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTQ1OSw3ICsx NDU4LDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAg ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAg ICB9CiAKLSAgICBpZiAoIGNvbnRleHRfc2V0X2RvbWFpbl9pZCgmbGN0eHQs IGRvbWFpbiwgaW9tbXUpICkKKyAgICBpZiAoIGNvbnRleHRfc2V0X2RvbWFp bl9pZCgmbGN0eHQsIGRvbWlkLCBpb21tdSkgKQogICAgIHsKICAgICB1bmxv Y2s6CiAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CkBAIC0x Nzg1LDcgKzE3ODQsNyBAQCBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KAogICAgIGNvbnRleHRfY2xlYXJfZW50cnkoKmNvbnRleHQpOwogICAgIGlv bW11X3N5bmNfY2FjaGUoY29udGV4dCwgc2l6ZW9mKHN0cnVjdCBjb250ZXh0 X2VudHJ5KSk7CiAKLSAgICBpb21tdV9kb21pZD0gZG9tYWluX2lvbW11X2Rv bWlkKGRvbWFpbiwgaW9tbXUpOworICAgIGlvbW11X2RvbWlkID0gZ2V0X2lv bW11X2RpZChkb21pZCwgaW9tbXUsICFkb21haW4tPmlzX2R5aW5nKTsKICAg ICBpZiAoIGlvbW11X2RvbWlkID09IC0xICkKICAgICB7CiAgICAgICAgIHNw aW5fdW5sb2NrKCZpb21tdS0+bG9jayk7CkBAIC0xOTUzLDcgKzE5NTIsNyBA QCBzdGF0aWMgdm9pZCBpb21tdV9kb21haW5fdGVhcmRvd24oc3RydWN0CiAg ICAgQVNTRVJUKCFoZC0+YXJjaC52dGQucGdkX21hZGRyKTsKIAogICAgIGZv cl9lYWNoX2RyaGRfdW5pdCAoIGRyaGQgKQotICAgICAgICBjbGVhbnVwX2Rv bWlkX21hcChkLCBkcmhkLT5pb21tdSk7CisgICAgICAgIGNsZWFudXBfZG9t aWRfbWFwKGQtPmRvbWFpbl9pZCwgZHJoZC0+aW9tbXUpOwogCiAgICAgWEZS RUUoaGQtPmFyY2gudnRkLmlvbW11X2JpdG1hcCk7CiB9Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-09.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-09.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IG1haW50YWluIGEgcGVyLWRldmljZSBwc2V1ZG8gZG9t YWluIElECgpJbiBvcmRlciB0byBzdWJzZXF1ZW50bHkgZW5hYmxlIHBlci1k ZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcywgd2UnbGwKbmVlZCBkb21h aW4tSUQtbGlrZSBpZGVudGlmaWVycyB0byBiZSBpbnNlcnRlZCBpbiB0aGUg cmVzcGVjdGl2ZSBkZXZpY2UKKEFNRCkgb3IgY29udGV4dCAoSW50ZWwpIHRh YmxlIGVudHJpZXMgYWxvbmdzaWRlIHRoZSBwZXItZGV2aWNlIHBhZ2UKdGFi bGUgcm9vdCBhZGRyZXNzZXMuCgpNYWtlIHVzZSBvZiAicmVhbCIgZG9tYWlu IElEcyBvY2N1cHlpbmcgb25seSBoYWxmIG9mIHRoZSB2YWx1ZSByYW5nZQpj b3ZlcmFibGUgYnkgZG9taWRfdC4KCk5vdGUgdGhhdCBpbiBWVC1kJ3MgaW9t bXVfYWxsb2MoKSBJIGRpZG4ndCB3YW50IHRvIGludHJvZHVjZSBuZXcgbWVt b3J5CmxlYWtzIGluIGNhc2Ugb2YgZXJyb3IsIGJ1dCBleGlzdGluZyBvbmVz IGRvbid0IGdldCBwbHVnZ2VkIC0gdGhhdCdsbCBiZQp0aGUgc3ViamVjdCBv ZiBhIGxhdGVyIGNoYW5nZS4KClRoZSBWVC1kIGNoYW5nZXMgYXJlIHNsaWdo dGx5IGFzeW1tZXRyaWMsIGJ1dCB0aGlzIHdheSB3ZSBjYW4gYXZvaWQKYXNz aWduaW5nIHBzZXVkbyBkb21haW4gSURzIHRvIGRldmljZXMgd2hpY2ggd291 bGQgbmV2ZXIgYmUgbWFwcGVkIHdoaWxlCnN0aWxsIGF2b2lkaW5nIHRvIGFk ZCBhIG5ldyBwYXJhbWV0ZXIgdG8gZG9tYWluX2NvbnRleHRfdW5tYXAoKS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpS ZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvaW9tbXUuaAor KysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2lvbW11LmgKQEAgLTE0MSw2ICsx NDEsMTAgQEAgaW50IHBpX3VwZGF0ZV9pcnRlKGNvbnN0IHN0cnVjdCBwaV9k ZXNjCiAgICAgICAgIGlvbW11X3ZjYWxsKG9wcywgc3luY19jYWNoZSwgYWRk ciwgc2l6ZSk7ICAgICAgIFwKIH0pCiAKK3Vuc2lnbmVkIGxvbmcgKmlvbW11 X2luaXRfZG9taWQodm9pZCk7Citkb21pZF90IGlvbW11X2FsbG9jX2RvbWlk KHVuc2lnbmVkIGxvbmcgKm1hcCk7Cit2b2lkIGlvbW11X2ZyZWVfZG9taWQo ZG9taWRfdCBkb21pZCwgdW5zaWduZWQgbG9uZyAqbWFwKTsKKwogaW50IF9f bXVzdF9jaGVjayBpb21tdV9mcmVlX3BndGFibGVzKHN0cnVjdCBkb21haW4g KmQpOwogc3RydWN0IGRvbWFpbl9pb21tdTsKIHN0cnVjdCBwYWdlX2luZm8g Kl9fbXVzdF9jaGVjayBpb21tdV9hbGxvY19wZ3RhYmxlKHN0cnVjdCBkb21h aW5faW9tbXUgKmhkKTsKLS0tIGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9wY2ku aAorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L3BjaS5oCkBAIC0xMyw2ICsx MywxMiBAQAogCiBzdHJ1Y3QgYXJjaF9wY2lfZGV2IHsKICAgICB2bWFza190 IHVzZWRfdmVjdG9yczsKKyAgICAvKgorICAgICAqIFRoZXNlIGZpZWxkcyBh cmUgKGRlKWluaXRpYWxpemVkIHVuZGVyIHBjaWRldnMtbG9jay4gT3RoZXIg dXNlcyBvZgorICAgICAqIHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6 YXRpb24gYW5kIGhlbmNlIGRvbid0IHN0cmljdGx5IG5lZWQgYW55CisgICAg ICogbG9ja2luZy4KKyAgICAgKi8KKyAgICBkb21pZF90IHBzZXVkb19kb21p ZDsKIH07CiAKIGludCBwY2lfY29uZl93cml0ZV9pbnRlcmNlcHQodW5zaWdu ZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJkZiwKQEAgLTM2LDYgKzQyLDYg QEAgc3RhdGljIGFsd2F5c19pbmxpbmUgYm9vbCBpc19wY2lfcGFzc3Rocgog ICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgYXJj aF9wY2lfaW5pdF9wZGV2KHN0cnVjdCBwY2lfZGV2ICpwZGV2KSB7fQordm9p ZCBhcmNoX3BjaV9pbml0X3BkZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYpOwog CiAjZW5kaWYgLyogX19YODZfUENJX0hfXyAqLwotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvaW9tbXUuaApAQCAtOTYsNiArOTYsNyBAQCBzdHJ1 Y3QgYW1kX2lvbW11IHsKICAgICBzdHJ1Y3QgcmluZ19idWZmZXIgY21kX2J1 ZmZlcjsKICAgICBzdHJ1Y3QgcmluZ19idWZmZXIgZXZlbnRfbG9nOwogICAg IHN0cnVjdCByaW5nX2J1ZmZlciBwcHJfbG9nOworICAgIHVuc2lnbmVkIGxv bmcgKmRvbWlkX21hcDsKIAogICAgIGludCBleGNsdXNpb25fZW5hYmxlOwog ICAgIGludCBleGNsdXNpb25fYWxsb3dfYWxsOwotLS0gYS94ZW4vZHJpdmVy cy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X2RldGVjdC5jCkBAIC0yMjMs NiArMjIzLDExIEBAIGludCBfX2luaXQgYW1kX2lvbW11X2RldGVjdF9vbmVf YWNwaSgKICAgICBpZiAoIHJ0ICkKICAgICAgICAgZ290byBvdXQ7CiAKKyAg ICBpb21tdS0+ZG9taWRfbWFwID0gaW9tbXVfaW5pdF9kb21pZCgpOworICAg IHJ0ID0gLUVOT01FTTsKKyAgICBpZiAoICFpb21tdS0+ZG9taWRfbWFwICkK KyAgICAgICAgZ290byBvdXQ7CisKICAgICBydCA9IHBjaV9yb19kZXZpY2Uo aW9tbXUtPnNlZywgYnVzLCBQQ0lfREVWRk4oZGV2LCBmdW5jKSk7CiAgICAg aWYgKCBydCApCiAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJDb3VsZCBu b3QgbWFyayBjb25maWcgc3BhY2Ugb2YgJXBwIHJlYWQtb25seSAoJWQpXG4i LApAQCAtMjMzLDcgKzIzOCwxMCBAQCBpbnQgX19pbml0IGFtZF9pb21tdV9k ZXRlY3Rfb25lX2FjcGkoCiAKICBvdXQ6CiAgICAgaWYgKCBydCApCisgICAg eworICAgICAgICB4ZnJlZShpb21tdS0+ZG9taWRfbWFwKTsKICAgICAgICAg eGZyZWUoaW9tbXUpOworICAgIH0KIAogICAgIHJldHVybiBydDsKIH0KLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9p b21tdS5jCkBAIC01MzksNiArNTM5LDggQEAgc3RhdGljIGludCBhbWRfaW9t bXVfYWRkX2RldmljZSh1OCBkZXZmbgogICAgIHN0cnVjdCBhbWRfaW9tbXUg KmlvbW11OwogICAgIHUxNiBiZGY7CiAgICAgc3RydWN0IGl2cnNfbWFwcGlu Z3MgKml2cnNfbWFwcGluZ3M7CisgICAgYm9vbCBmcmVzaF9kb21pZCA9IGZh bHNlOworICAgIGludCByZXQ7CiAKICAgICBpZiAoICFwZGV2LT5kb21haW4g KQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTYwNiw3ICs2MDgsMjIg QEAgc3RhdGljIGludCBhbWRfaW9tbXVfYWRkX2RldmljZSh1OCBkZXZmbgog ICAgICAgICBBTURfSU9NTVVfV0FSTigiJXBkOiB1bml0eSBtYXBwaW5nIGZh aWxlZCBmb3IgJXBwXG4iLAogICAgICAgICAgICAgICAgICAgICAgICBwZGV2 LT5kb21haW4sICZwZGV2LT5zYmRmKTsKIAotICAgIHJldHVybiBhbWRfaW9t bXVfc2V0dXBfZG9tYWluX2RldmljZShwZGV2LT5kb21haW4sIGlvbW11LCBk ZXZmbiwgcGRldik7CisgICAgaWYgKCBpb21tdV9xdWFyYW50aW5lICYmIHBk ZXYtPmFyY2gucHNldWRvX2RvbWlkID09IERPTUlEX0lOVkFMSUQgKQorICAg IHsKKyAgICAgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBpb21tdV9h bGxvY19kb21pZChpb21tdS0+ZG9taWRfbWFwKTsKKyAgICAgICAgaWYgKCBw ZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAg ICAgICAgICAgIHJldHVybiAtRU5PU1BDOworICAgICAgICBmcmVzaF9kb21p ZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0ID0gYW1kX2lvbW11X3NldHVw X2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21tdSwgZGV2Zm4sIHBk ZXYpOworICAgIGlmICggcmV0ICYmIGZyZXNoX2RvbWlkICkKKyAgICB7Cisg ICAgICAgIGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9t aWQsIGlvbW11LT5kb21pZF9tYXApOworICAgICAgICBwZGV2LT5hcmNoLnBz ZXVkb19kb21pZCA9IERPTUlEX0lOVkFMSUQ7CisgICAgfQorCisgICAgcmV0 dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2Rl dmljZSh1OCBkZXZmbiwgc3RydWN0IHBjaV9kZXYgKnBkZXYpCkBAIC02Mzgs NiArNjU1LDkgQEAgc3RhdGljIGludCBhbWRfaW9tbXVfcmVtb3ZlX2Rldmlj ZSh1OCBkZQogICAgICAgICBBTURfSU9NTVVfV0FSTigiJXBkOiB1bml0eSB1 bm1hcHBpbmcgZmFpbGVkIGZvciAlcHBcbiIsCiAgICAgICAgICAgICAgICAg ICAgICAgIHBkZXYtPmRvbWFpbiwgJnBkZXYtPnNiZGYpOwogCisgICAgaW9t bXVfZnJlZV9kb21pZChwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgaW9tbXUt PmRvbWlkX21hcCk7CisgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPSBE T01JRF9JTlZBTElEOworCiAgICAgaWYgKCBhbWRfaW9tbXVfcGVyZGV2X2lu dHJlbWFwICYmCiAgICAgICAgICBpdnJzX21hcHBpbmdzW2JkZl0uZHRlX3Jl cXVlc3Rvcl9pZCA9PSBiZGYgJiYKICAgICAgICAgIGl2cnNfbWFwcGluZ3Nb YmRmXS5pbnRyZW1hcF90YWJsZSApCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Bj aS5jCkBAIC0xMjcxLDkgKzEyNzEsMTQgQEAgc3RhdGljIGludCBfZHVtcF9w Y2lfZGV2aWNlcyhzdHJ1Y3QgcGNpXwogCiAgICAgbGlzdF9mb3JfZWFjaF9l bnRyeSAoIHBkZXYsICZwc2VnLT5hbGxkZXZzX2xpc3QsIGFsbGRldnNfbGlz dCApCiAgICAgewotICAgICAgICBwcmludGsoIiVwcCAtICVwZCAtIG5vZGUg JS0zZCIsCi0gICAgICAgICAgICAgICAmcGRldi0+c2JkZiwgcGRldi0+ZG9t YWluLAotICAgICAgICAgICAgICAgKHBkZXYtPm5vZGUgIT0gTlVNQV9OT19O T0RFKSA/IHBkZXYtPm5vZGUgOiAtMSk7CisgICAgICAgIHByaW50aygiJXBw IC0gIiwgJnBkZXYtPnNiZGYpOworI2lmZGVmIENPTkZJR19YODYKKyAgICAg ICAgaWYgKCBwZGV2LT5kb21haW4gPT0gZG9tX2lvICkKKyAgICAgICAgICAg IHByaW50aygiRG9tSU86JXgiLCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCk7 CisgICAgICAgIGVsc2UKKyNlbmRpZgorICAgICAgICAgICAgcHJpbnRrKCIl cGQiLCBwZGV2LT5kb21haW4pOworICAgICAgICBwcmludGsoIiAtIG5vZGUg JS0zZCIsIChwZGV2LT5ub2RlICE9IE5VTUFfTk9fTk9ERSkgPyBwZGV2LT5u b2RlIDogLTEpOwogICAgICAgICBwZGV2X2R1bXBfbXNpKHBkZXYpOwogICAg ICAgICBwcmludGsoIlxuIik7CiAgICAgfQotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC92dGQvaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC92dGQvaW9tbXUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1 ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1ZGUgPHhlbi94bWFsbG9jLmg+CiAj aW5jbHVkZSA8eGVuL2RvbWFpbl9wYWdlLmg+CisjaW5jbHVkZSA8eGVuL2Vy ci5oPgogI2luY2x1ZGUgPHhlbi9pb2NhcC5oPgogI2luY2x1ZGUgPHhlbi9p b21tdS5oPgogI2luY2x1ZGUgPHhlbi9udW1hLmg+CkBAIC0xMjE1LDcgKzEy MTYsNyBAQCBpbnQgX19pbml0IGlvbW11X2FsbG9jKHN0cnVjdCBhY3BpX2Ry aGRfCiB7CiAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXU7CiAgICAgdW5z aWduZWQgbG9uZyBzYWdhdywgbnJfZG9tOwotICAgIGludCBhZ2F3OworICAg IGludCBhZ2F3LCByYzsKIAogICAgIGlvbW11ID0geHphbGxvYyhzdHJ1Y3Qg dnRkX2lvbW11KTsKICAgICBpZiAoIGlvbW11ID09IE5VTEwgKQpAQCAtMTMw MSw3ICsxMzAyLDE2IEBAIGludCBfX2luaXQgaW9tbXVfYWxsb2Moc3RydWN0 IGFjcGlfZHJoZF8KICAgICBpZiAoICFpb21tdS0+ZG9taWRfbWFwICkKICAg ICAgICAgcmV0dXJuIC1FTk9NRU07CiAKKyAgICBpb21tdS0+cHNldWRvX2Rv bWlkX21hcCA9IGlvbW11X2luaXRfZG9taWQoKTsKKyAgICByYyA9IC1FTk9N RU07CisgICAgaWYgKCAhaW9tbXUtPnBzZXVkb19kb21pZF9tYXAgKQorICAg ICAgICBnb3RvIGZyZWU7CisKICAgICByZXR1cm4gMDsKKworIGZyZWU6Cisg ICAgaW9tbXVfZnJlZShkcmhkKTsKKyAgICByZXR1cm4gcmM7CiB9CiAKIHZv aWQgX19pbml0IGlvbW11X2ZyZWUoc3RydWN0IGFjcGlfZHJoZF91bml0ICpk cmhkKQpAQCAtMTMyNCw2ICsxMzM0LDcgQEAgdm9pZCBfX2luaXQgaW9tbXVf ZnJlZShzdHJ1Y3QgYWNwaV9kcmhkXwogCiAgICAgeGZyZWUoaW9tbXUtPmRv bWlkX2JpdG1hcCk7CiAgICAgeGZyZWUoaW9tbXUtPmRvbWlkX21hcCk7Cisg ICAgeGZyZWUoaW9tbXUtPnBzZXVkb19kb21pZF9tYXApOwogCiAgICAgaWYg KCBpb21tdS0+bXNpLmlycSA+PSAwICkKICAgICAgICAgZGVzdHJveV9pcnEo aW9tbXUtPm1zaS5pcnEpOwpAQCAtMTU5Myw4ICsxNjA0LDggQEAgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHJldHVybiByYyA/OiBw ZGV2ICYmIHByZXZfZG9tOwogfQogCi1zdGF0aWMgaW50IGRvbWFpbl9jb250 ZXh0X3VubWFwKHN0cnVjdCBkb21haW4gKmQsIHVpbnQ4X3QgZGV2Zm4sCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lfZGV2 ICpwZGV2KTsKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQg KmRvbWFpbl9jb250ZXh0X3VubWFwKAorICAgIHN0cnVjdCBkb21haW4gKmQs IHVpbnQ4X3QgZGV2Zm4sIHN0cnVjdCBwY2lfZGV2ICpwZGV2KTsKIAogc3Rh dGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdCBkb21haW4g KmRvbWFpbiwgdTggZGV2Zm4sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpCkBAIC0xNjAyLDYgKzE2 MTMsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3Ry dWN0CiAgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkID0g YWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwogICAgIGNvbnN0 IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1ycjsKICAgICBwYWRkcl90IHBn ZF9tYWRkciA9IGRvbV9pb21tdShkb21haW4pLT5hcmNoLnZ0ZC5wZ2RfbWFk ZHI7CisgICAgZG9taWRfdCBvcmlnX2RvbWlkID0gcGRldi0+YXJjaC5wc2V1 ZG9fZG9taWQ7CiAgICAgaW50IHJldCA9IDA7CiAgICAgdW5zaWduZWQgaW50 IGksIG1vZGUgPSAwOwogICAgIHVpbnQxNl90IHNlZyA9IHBkZXYtPnNlZywg YmRmOwpAQCAtMTY2MCw2ICsxNjcyLDE0IEBAIHN0YXRpYyBpbnQgZG9tYWlu X2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYgKCAhZHJoZCAp CiAgICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAorICAgICAgICBpZiAo IGlvbW11X3F1YXJhbnRpbmUgJiYgb3JpZ19kb21pZCA9PSBET01JRF9JTlZB TElEICkKKyAgICAgICAgeworICAgICAgICAgICAgcGRldi0+YXJjaC5wc2V1 ZG9fZG9taWQgPQorICAgICAgICAgICAgICAgIGlvbW11X2FsbG9jX2RvbWlk KGRyaGQtPmlvbW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAgICAg IGlmICggcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQgPT0gRE9NSURfSU5WQUxJ RCApCisgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9TUEM7CisgICAgICAg IH0KKwogICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAg IHByaW50ayhWVERQUkVGSVggIiVwZDpQQ0llOiBtYXAgJXBwXG4iLAogICAg ICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywg ZGV2Zm4pKTsKQEAgLTE2NzcsNiArMTY5NywxNCBAQCBzdGF0aWMgaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGlmICggIWRy aGQgKQogICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7CiAKKyAgICAgICAg aWYgKCBpb21tdV9xdWFyYW50aW5lICYmIG9yaWdfZG9taWQgPT0gRE9NSURf SU5WQUxJRCApCisgICAgICAgIHsKKyAgICAgICAgICAgIHBkZXYtPmFyY2gu cHNldWRvX2RvbWlkID0KKyAgICAgICAgICAgICAgICBpb21tdV9hbGxvY19k b21pZChkcmhkLT5pb21tdS0+cHNldWRvX2RvbWlkX21hcCk7CisgICAgICAg ICAgICBpZiAoIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID09IERPTUlEX0lO VkFMSUQgKQorICAgICAgICAgICAgICAgIHJldHVybiAtRU5PU1BDOworICAg ICAgICB9CisKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAg ICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJOiBtYXAgJXBwXG4iLAog ICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1 cywgZGV2Zm4pKTsKQEAgLTE3NTAsNiArMTc3OCwxMyBAQCBzdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgaWYgKCAhcmV0 ICYmIGRldmZuID09IHBkZXYtPmRldmZuICkKICAgICAgICAgcGNpX3Z0ZF9x dWlyayhwZGV2KTsKIAorICAgIGlmICggcmV0ICYmIGRyaGQgJiYgb3JpZ19k b21pZCA9PSBET01JRF9JTlZBTElEICkKKyAgICB7CisgICAgICAgIGlvbW11 X2ZyZWVfZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9t YXApOworICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlE X0lOVkFMSUQ7CisgICAgfQorCiAgICAgcmV0dXJuIHJldDsKIH0KIApAQCAt MTgzNSw4ICsxODcwLDEwIEBAIGludCBkb21haW5fY29udGV4dF91bm1hcF9v bmUoCiAgICAgcmV0dXJuIHJjOwogfQogCi1zdGF0aWMgaW50IGRvbWFpbl9j b250ZXh0X3VubWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdTggZGV2Zm4s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQorc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5p dCAqZG9tYWluX2NvbnRleHRfdW5tYXAoCisgICAgc3RydWN0IGRvbWFpbiAq ZG9tYWluLAorICAgIHVpbnQ4X3QgZGV2Zm4sCisgICAgc3RydWN0IHBjaV9k ZXYgKnBkZXYpCiB7CiAgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0 ICpkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwog ICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11ID0gZHJoZCA/IGRyaGQtPmlv bW11IDogTlVMTDsKQEAgLTE4NTAsMTYgKzE4ODcsMTYgQEAgc3RhdGljIGlu dCBkb21haW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICBpZiAo IGlvbW11X2RlYnVnICkKICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVgg IiVwZDpIb3N0YnJpZGdlOiBza2lwICVwcCB1bm1hcFxuIiwKICAgICAgICAg ICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZu KSk7Ci0gICAgICAgIHJldHVybiBpc19oYXJkd2FyZV9kb21haW4oZG9tYWlu KSA/IDAgOiAtRVBFUk07CisgICAgICAgIHJldHVybiBFUlJfUFRSKGlzX2hh cmR3YXJlX2RvbWFpbihkb21haW4pID8gMCA6IC1FUEVSTSk7CiAKICAgICBj YXNlIERFVl9UWVBFX1BDSWVfQlJJREdFOgogICAgIGNhc2UgREVWX1RZUEVf UENJZTJQQ0lfQlJJREdFOgogICAgIGNhc2UgREVWX1RZUEVfTEVHQUNZX1BD SV9CUklER0U6Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g RVJSX1BUUigwKTsKIAogICAgIGNhc2UgREVWX1RZUEVfUENJZV9FTkRQT0lO VDoKICAgICAgICAgaWYgKCAhaW9tbXUgKQotICAgICAgICAgICAgcmV0dXJu IC1FTk9ERVY7CisgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVW KTsKIAogICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAg IHByaW50ayhWVERQUkVGSVggIiVwZDpQQ0llOiB1bm1hcCAlcHBcbiIsCkBA IC0xODczLDcgKzE5MTAsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X3VubWFwKHN0cnVjdCBkCiAKICAgICBjYXNlIERFVl9UWVBFX1BDSToKICAg ICAgICAgaWYgKCAhaW9tbXUgKQotICAgICAgICAgICAgcmV0dXJuIC1FTk9E RVY7CisgICAgICAgICAgICByZXR1cm4gRVJSX1BUUigtRU5PREVWKTsKIAog ICAgICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAgIHByaW50 ayhWVERQUkVGSVggIiVwZDpQQ0k6IHVubWFwICVwcFxuIiwKQEAgLTE5MjAs MTQgKzE5NTcsMTQgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF91bm1h cChzdHJ1Y3QgZAogICAgIGRlZmF1bHQ6CiAgICAgICAgIGRwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgsICIlcGQ6dW5rbm93bigldSk6ICVwcFxuIiwK ICAgICAgICAgICAgICAgICBkb21haW4sIHBkZXYtPnR5cGUsICZQQ0lfU0JE RjMoc2VnLCBidXMsIGRldmZuKSk7Ci0gICAgICAgIHJldHVybiAtRUlOVkFM OworICAgICAgICByZXR1cm4gRVJSX1BUUigtRUlOVkFMKTsKICAgICB9CiAK ICAgICBpZiAoICFyZXQgJiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gJiYKICAg ICAgICAgICFRVUFSQU5USU5FX1NLSVAoZG9tYWluLCBkb21faW9tbXUoZG9t YWluKS0+YXJjaC52dGQucGdkX21hZGRyKSApCiAgICAgICAgIGNoZWNrX2Ns ZWFudXBfZG9taWRfbWFwKGRvbWFpbiwgcGRldiwgaW9tbXUpOwogCi0gICAg cmV0dXJuIHJldDsKKyAgICByZXR1cm4gZHJoZDsKIH0KIAogc3RhdGljIHZv aWQgaW9tbXVfY2xlYXJfcm9vdF9wZ3RhYmxlKHN0cnVjdCBkb21haW4gKmQp CkBAIC0yMTU0LDE2ICsyMTkxLDE3IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW9t bXVfZW5hYmxlX2RldmljZShzdHIKIAogc3RhdGljIGludCBpbnRlbF9pb21t dV9yZW1vdmVfZGV2aWNlKHU4IGRldmZuLCBzdHJ1Y3QgcGNpX2RldiAqcGRl dikKIHsKKyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQ7 CiAgICAgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwogICAgIHUxNiBi ZGY7Ci0gICAgaW50IHJldCwgaTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKIAog ICAgIGlmICggIXBkZXYtPmRvbWFpbiApCiAgICAgICAgIHJldHVybiAtRUlO VkFMOwogCi0gICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXAocGRldi0+ ZG9tYWluLCBkZXZmbiwgcGRldik7Ci0gICAgaWYgKCByZXQgKQotICAgICAg ICByZXR1cm4gcmV0OworICAgIGRyaGQgPSBkb21haW5fY29udGV4dF91bm1h cChwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAgICBpZiAoIElTX0VS UihkcmhkKSApCisgICAgICAgIHJldHVybiBQVFJfRVJSKGRyaGQpOwogCiAg ICAgZm9yX2VhY2hfcm1ycl9kZXZpY2UgKCBybXJyLCBiZGYsIGkgKQogICAg IHsKQEAgLTIxODAsNiArMjIxOCwxMyBAQCBzdGF0aWMgaW50IGludGVsX2lv bW11X3JlbW92ZV9kZXZpY2UodTgKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7CiAgICAgfQogCisgICAg aWYgKCBkcmhkICkKKyAgICB7CisgICAgICAgIGlvbW11X2ZyZWVfZG9taWQo cGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOworICAgICAg ICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFMSUQ7Cisg ICAgfQorCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTI1NTYsNyArMjYwMSwx MiBAQCBzdGF0aWMgaW50IHJlYXNzaWduX2RldmljZV9vd25lcnNoaXAoCiAg ICAgICAgIH0KICAgICB9CiAgICAgZWxzZQotICAgICAgICByZXQgPSBkb21h aW5fY29udGV4dF91bm1hcChzb3VyY2UsIGRldmZuLCBwZGV2KTsKKyAgICB7 CisgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJoZDsK KworICAgICAgICBkcmhkID0gZG9tYWluX2NvbnRleHRfdW5tYXAoc291cmNl LCBkZXZmbiwgcGRldik7CisgICAgICAgIHJldCA9IElTX0VSUihkcmhkKSA/ IFBUUl9FUlIoZHJoZCkgOiAwOworICAgIH0KICAgICBpZiAoIHJldCApCiAg ICAgewogICAgICAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0YXJnZXQpICkK LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKKysr IGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgKQEAgLTUw OCw2ICs1MDgsNyBAQCBzdHJ1Y3QgdnRkX2lvbW11IHsKICAgICB9IGZsdXNo OwogCiAgICAgc3RydWN0IGxpc3RfaGVhZCBhdHNfZGV2aWNlczsKKyAgICB1 bnNpZ25lZCBsb25nICpwc2V1ZG9fZG9taWRfbWFwOyAvKiAicHNldWRvIiBk b21haW4gaWQgYml0bWFwICovCiAgICAgdW5zaWduZWQgbG9uZyAqZG9taWRf Yml0bWFwOyAgLyogZG9tYWluIGlkIGJpdG1hcCAqLwogICAgIHUxNiAqZG9t aWRfbWFwOyAgICAgICAgICAgICAgIC8qIGRvbWFpbiBpZCBtYXBwaW5nIGFy cmF5ICovCiAgICAgdWludDMyX3QgdmVyc2lvbjsKLS0tIGEveGVuL2RyaXZl cnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAgLTM4Nyw2ICszODcsNTggQEAg dm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9pbml0KAogICAg ICAgICByZXR1cm47CiB9CiAKK3ZvaWQgYXJjaF9wY2lfaW5pdF9wZGV2KHN0 cnVjdCBwY2lfZGV2ICpwZGV2KQoreworICAgIHBkZXYtPmFyY2gucHNldWRv X2RvbWlkID0gRE9NSURfSU5WQUxJRDsKK30KKwordW5zaWduZWQgbG9uZyAq X19pbml0IGlvbW11X2luaXRfZG9taWQodm9pZCkKK3sKKyAgICBpZiAoICFp b21tdV9xdWFyYW50aW5lICkKKyAgICAgICAgcmV0dXJuIFpFUk9fQkxPQ0tf UFRSOworCisgICAgQlVJTERfQlVHX09OKERPTUlEX01BU0sgKiAyVSA+PSBV SU5UMTZfTUFYKTsKKworICAgIHJldHVybiB4emFsbG9jX2FycmF5KHVuc2ln bmVkIGxvbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgQklUU19UT19M T05HUyhVSU5UMTZfTUFYIC0gRE9NSURfTUFTSykpOworfQorCitkb21pZF90 IGlvbW11X2FsbG9jX2RvbWlkKHVuc2lnbmVkIGxvbmcgKm1hcCkKK3sKKyAg ICAvKgorICAgICAqIFRoaXMgaXMgdXNlZCB1bmlmb3JtbHkgYWNyb3NzIGFs bCBJT01NVXMsIHN1Y2ggdGhhdCBvbiB0eXBpY2FsCisgICAgICogc3lzdGVt cyB3ZSB3b3VsZG4ndCByZS11c2UgdGhlIHNhbWUgSUQgdmVyeSBxdWlja2x5 IChwZXJoYXBzIG5ldmVyKS4KKyAgICAgKi8KKyAgICBzdGF0aWMgdW5zaWdu ZWQgaW50IHN0YXJ0OworICAgIHVuc2lnbmVkIGludCBpZHggPSBmaW5kX25l eHRfemVyb19iaXQobWFwLCBVSU5UMTZfTUFYIC0gRE9NSURfTUFTSywgc3Rh cnQpOworCisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOworCisgICAg aWYgKCBpZHggPj0gVUlOVDE2X01BWCAtIERPTUlEX01BU0sgKQorICAgICAg ICBpZHggPSBmaW5kX2ZpcnN0X3plcm9fYml0KG1hcCwgVUlOVDE2X01BWCAt IERPTUlEX01BU0spOworICAgIGlmICggaWR4ID49IFVJTlQxNl9NQVggLSBE T01JRF9NQVNLICkKKyAgICAgICAgcmV0dXJuIERPTUlEX0lOVkFMSUQ7CisK KyAgICBfX3NldF9iaXQoaWR4LCBtYXApOworCisgICAgc3RhcnQgPSBpZHgg KyAxOworCisgICAgcmV0dXJuIGlkeCB8IChET01JRF9NQVNLICsgMSk7Cit9 CisKK3ZvaWQgaW9tbXVfZnJlZV9kb21pZChkb21pZF90IGRvbWlkLCB1bnNp Z25lZCBsb25nICptYXApCit7CisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2Vk KCkpOworCisgICAgaWYgKCBkb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAg ICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGRvbWlkID4gRE9NSURfTUFT Syk7CisKKyAgICBpZiAoICFfX3Rlc3RfYW5kX2NsZWFyX2JpdChkb21pZCAm IERPTUlEX01BU0ssIG1hcCkgKQorICAgICAgICBCVUcoKTsKK30KKwogaW50 IGlvbW11X2ZyZWVfcGd0YWJsZXMoc3RydWN0IGRvbWFpbiAqZCkKIHsKICAg ICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-10.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-10.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IGRyb3AgVExCIGZsdXNoZXMgZnJvbSBxdWFyYW50aW5l X2luaXQoKSBob29rcwoKVGhlIHBhZ2UgdGFibGVzIGp1c3QgY3JlYXRlZCBh cmVuJ3QgaG9va2VkIHVwIHlldCBhbnl3aGVyZSwgc28gdGhlcmUncwpub3Ro aW5nIHRoYXQgY291bGQgYmUgcHJlc2VudCBpbiBhbnkgVExCLCBhbmQgaGVu Y2Ugbm90aGluZyB0byBmbHVzaC4KRHJvcHBpbmcgdGhpcyBmbHVzaCBpcywg YXQgbGVhc3Qgb24gdGhlIFZULWQgc2lkZSwgYSBwcmVyZXEgdG8gcGVyLQpk ZXZpY2UgZG9tYWluIElEIHVzZSB3aGVuIHF1YXJhbnRpbmluZyBkZXZpY2Vz LCBhcyBkb21faW8gaXNuJ3QgZ29pbmcKdG8gYmUgYXNzaWduZWQgYSBESUQg YW55bW9yZTogVGhlIHdhcm5pbmcgaW4gZ2V0X2lvbW11X2RpZCgpIHdvdWxk CnRyaWdnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxA eGVuLm9yZz4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+CgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhy b3VnaC9hbWQvaW9tbXVfbWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCkBAIC02NTQsOCArNjU0LDYgQEAgaW50 IF9faW5pdCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cgogIG91dDoK ICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKIAot ICAgIGFtZF9pb21tdV9mbHVzaF9hbGxfcGFnZXMoZCk7Ci0KICAgICAvKiBQ YWdlcyBsZWFrZWQgaW4gZmFpbHVyZSBjYXNlICovCiAgICAgcmV0dXJuIGxl dmVsID8gLUVOT01FTSA6IDA7CiB9Ci0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC0yOTc1LDkgKzI5NzUsNiBAQCBzdGF0aWMg aW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFyYW50aW5lCiAgb3V0OgogICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogCi0gICAg aWYgKCAhcmMgKQotICAgICAgICByYyA9IGlvbW11X2ZsdXNoX2lvdGxiX2Fs bChkKTsKLQogICAgIC8qIFBhZ2VzIG1heSBiZSBsZWFrZWQgaW4gZmFpbHVy ZSBjYXNlICovCiAgICAgcmV0dXJuIHJjOwogfQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-11.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-11.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IGFic3RyYWN0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2Ug dGFibGUgbGV2ZWxzCgpXZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBjb25zdGFu dCBlbHNld2hlcmUuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWxAeGVuLm9yZz4KCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2Ft ZC9pb21tdS1kZWZzLmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL2lvbW11LWRlZnMuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHN0cnVjdCBh bWRfaW9tbXVfZHRlIHsKICAgICBib29sIHR2OjE7CiAgICAgdW5zaWduZWQg aW50IDo1OwogICAgIHVuc2lnbmVkIGludCBoYWQ6MjsKKyNkZWZpbmUgSU9N TVVfTUFYX1BUX0xFVkVMUyA2CiAgICAgdW5zaWduZWQgaW50IHBhZ2luZ19t b2RlOjM7CiAgICAgdWludDY0X3QgcHRfcm9vdDo0MDsKICAgICBib29sIHBw cjoxOwotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvcGNpX2Ft ZF9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9w Y2lfYW1kX2lvbW11LmMKQEAgLTMzNyw3ICszMzcsNyBAQCBpbnQgYW1kX2lv bW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRvbWFpbiAqCiAgICAgcmV0dXJuIDA7 CiB9CiAKLXVuc2lnbmVkIGludCBfX3JlYWRfbW9zdGx5IGFtZF9pb21tdV9t YXhfcGFnaW5nX21vZGUgPSA2OwordW5zaWduZWQgaW50IF9fcmVhZF9tb3N0 bHkgYW1kX2lvbW11X21heF9wYWdpbmdfbW9kZSA9IElPTU1VX01BWF9QVF9M RVZFTFM7CiBpbnQgX19yZWFkX21vc3RseSBhbWRfaW9tbXVfbWluX3BhZ2lu Z19tb2RlID0gMTsKIAogc3RhdGljIGludCBhbWRfaW9tbXVfZG9tYWluX2lu aXQoc3RydWN0IGRvbWFpbiAqZCkK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-4.16-12.patch" Content-Disposition: attachment; filename="xsa400/xsa400-4.16-12.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHVzZSBwZXItZGV2aWNlIHBhZ2UgdGFibGVzIGZvciBx dWFyYW50aW5pbmcKCkRldmljZXMgd2l0aCBSTVJScyAvIHVuaXR5IG1hcHBl ZCByZWdpb25zLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQKaG93L3do ZW4gdGhlc2UgbWVtb3J5IHJlZ2lvbnMgbWF5IGJlIGFjY2Vzc2VkLCBtYXkg bm90IGJlIGxlZnQKZGlzY29ubmVjdGVkIGZyb20gdGhlIG1hcHBpbmdzIG9m IHRoZXNlIHJlZ2lvbnMgKGFzIGxvbmcgYXMgaXQncyBub3QKY2VydGFpbiB0 aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgcXVpZXNjZWQpLiBIZW5j ZSBldmVuIHRoZSBwYWdlCnRhYmxlcyB1c2VkIHdoZW4gcXVhcmFudGluaW5n IHN1Y2ggZGV2aWNlcyBuZWVkIHRvIGhhdmUgbWFwcGluZ3Mgb2YKdGhvc2Ug cmVnaW9ucy4gVGhpcyBpbXBsaWVzIGluc3RhbGxpbmcgcGFnZSB0YWJsZXMg aW4gdGhlIGZpcnN0IHBsYWNlCmV2ZW4gd2hlbiBub3QgaW4gc2NyYXRjaC1w YWdlIHF1YXJhbnRpbmluZyBtb2RlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM2 MSAvIHBhcnQgb2YgWFNBLTQwMC4KCldoaWxlIGZvciB0aGUgcHVycG9zZSBo ZXJlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBkZXZpY2VzIHdp dGgKUk1SUnMgLyB1bml0eSBtYXBwZWQgcmVnaW9ucyB1c2UgcGVyLWRldmlj ZSBwYWdlIHRhYmxlcywgZXh0ZW5kIHRoaXMgdG8KYWxsIGRldmljZXMgKGlu IHNjcmF0Y2gtcGFnZSBxdWFyYW50aW5pbmcgbW9kZSkuIFRoaXMgYWxsb3dz IHRoZSBsZWFmCnBhZ2VzIHRvIGJlIG1hcHBlZCByL3csIHRodXMgY292ZXJp bmcgYWxzbyBtZW1vcnkgd3JpdGVzIChyYXRoZXIgdGhhbgpqdXN0IHJlYWRz KSBpc3N1ZWQgYnkgbm9uLXF1aWVzY2VudCBkZXZpY2VzLgoKU2V0IHVwIHF1 YXJhbnRpbmUgcGFnZSB0YWJsZXMgYXMgbGF0ZSBhcyBwb3NzaWJsZSwgeWV0 IGVhcmx5IGVub3VnaCB0bwpub3QgZW5jb3VudGVyIGZhaWx1cmUgZHVyaW5n IGRlLWFzc2lnbi4gVGhpcyBtZWFucyBzZXR1cCBnZW5lcmFsbHkKaGFwcGVu cyBpbiBhc3NpZ25fZGV2aWNlKCksIHdoaWxlIChmb3Igbm93KSB0aGUgb25l IGluIGRlYXNzaWduX2RldmljZSgpCmlzIHRoZXJlIG1haW5seSB0byBiZSBv biB0aGUgc2FmZSBzaWRlLgoKQXMgdG8gdGhlIHJlbW92YWwgb2YgUVVBUkFO VElORV9TS0lQKCkgZnJvbSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoKToK SSB0aGluayB0aGlzIHdhcyBuZXZlciByZWFsbHkgbmVlZGVkIHRoZXJlLCBh cyB0aGUgZnVuY3Rpb24gZXhwbGljaXRseQpkZWFscyB3aXRoIGZpbmRpbmcg YSBub24tcHJlc2VudCBjb250ZXh0IGVudHJ5LiBMZWF2aW5nIGl0IHRoZXJl IHdvdWxkCnJlcXVpcmUgcHJvcGFnYXRpbmcgcGdkX21hZGRyIGludG8gdGhl IGZ1bmN0aW9uIChsaWtlIHdhcyBkb25lIGJ5ICJWVC1kOgpwcmVwYXJlIGZv ciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFnZSB0YWJsZXMiIGZvcgpkb21h aW5fY29udGV4dF9tYXBwaW5nX29uZSgpKS4KCkluIFZULWQncyBESUQgYWxs b2NhdGlvbiBmdW5jdGlvbiBkb24ndCByZXF1aXJlIHRoZSBJT01NVSBsb2Nr IHRvIGJlCmhlbGQgYW55bW9yZTogQWxsIGludm9sdmVkIGNvZGUgcGF0aHMg aG9sZCBwY2lkZXZzX2xvY2ssIHNvIHRoaXMgd2F5IHdlCmF2b2lkIHRoZSBu ZWVkIHRvIGFjcXVpcmUgdGhlIElPTU1VIGxvY2sgYXJvdW5kIHRoZSBuZXcg Y2FsbCB0bwpjb250ZXh0X3NldF9kb21haW5faWQoKS4KClNpZ25lZC1vZmYt Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQt Ynk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTog S2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5 OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KCi0t LSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvcGNpLmgKKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9wY2kuaApAQCAtMSw2ICsxLDggQEAKICNpZm5kZWYgX19Y ODZfUENJX0hfXwogI2RlZmluZSBfX1g4Nl9QQ0lfSF9fCiAKKyNpbmNsdWRl IDx4ZW4vbW0uaD4KKwogI2RlZmluZSBDRjhfQkRGKGNmOCkgICAgICggICgo Y2Y4KSAmIDB4MDBmZmZmMDApID4+IDgpCiAjZGVmaW5lIENGOF9BRERSX0xP KGNmOCkgKCAgIChjZjgpICYgMHgwMDAwMDBmYykKICNkZWZpbmUgQ0Y4X0FE RFJfSEkoY2Y4KSAoICAoKGNmOCkgJiAweDBmMDAwMDAwKSA+PiAxNikKQEAg LTE4LDcgKzIwLDE4IEBAIHN0cnVjdCBhcmNoX3BjaV9kZXYgewogICAgICAq IHRoZW0gZG9uJ3QgcmFjZSAoZGUpaW5pdGlhbGl6YXRpb24gYW5kIGhlbmNl IGRvbid0IHN0cmljdGx5IG5lZWQgYW55CiAgICAgICogbG9ja2luZy4KICAg ICAgKi8KKyAgICB1bmlvbiB7CisgICAgICAgIC8qIFN1YnNldCBvZiBzdHJ1 Y3QgYXJjaF9pb21tdSdzIGZpZWxkcywgdG8gYmUgdXNlZCBpbiBkb21faW8u ICovCisgICAgICAgIHN0cnVjdCB7CisgICAgICAgICAgICB1aW50NjRfdCBw Z2RfbWFkZHI7CisgICAgICAgIH0gdnRkOworICAgICAgICBzdHJ1Y3Qgewor ICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcm9vdF90YWJsZTsKKyAg ICAgICAgfSBhbWQ7CisgICAgfTsKICAgICBkb21pZF90IHBzZXVkb19kb21p ZDsKKyAgICBtZm5fdCBsZWFmX21mbjsKKyAgICBzdHJ1Y3QgcGFnZV9saXN0 X2hlYWQgcGd0YWJsZXNfbGlzdDsKIH07CiAKIGludCBwY2lfY29uZl93cml0 ZV9pbnRlcmNlcHQodW5zaWduZWQgaW50IHNlZywgdW5zaWduZWQgaW50IGJk ZiwKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11LmgK KysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11LmgKQEAg LTIzNyw3ICsyMzcsOCBAQCBpbnQgYW1kX2lvbW11X2luaXRfbGF0ZSh2b2lk KTsKIGludCBhbWRfaW9tbXVfdXBkYXRlX2l2cnNfbWFwcGluZ19hY3BpKHZv aWQpOwogaW50IGlvdl9hZGp1c3RfaXJxX2FmZmluaXRpZXModm9pZCk7CiAK LWludCBhbWRfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBkb21haW4g KmQpOworaW50IGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0IHBj aV9kZXYgKnBkZXYsIGJvb2wgc2NyYXRjaF9wYWdlKTsKK3ZvaWQgYW1kX2lv bW11X3F1YXJhbnRpbmVfdGVhcmRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYp OwogCiAvKiBtYXBwaW5nIGZ1bmN0aW9ucyAqLwogaW50IF9fbXVzdF9jaGVj ayBhbWRfaW9tbXVfbWFwX3BhZ2Uoc3RydWN0IGRvbWFpbiAqZCwgZGZuX3Qg ZGZuLAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVf bWFwLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11 X21hcC5jCkBAIC01OTgsNjQgKzU5OCwxMzggQEAgaW50IGFtZF9pb21tdV9n ZXRfcmVzZXJ2ZWRfZGV2aWNlX21lbW9yeQogICAgIHJldHVybiAwOwogfQog Ci1pbnQgX19pbml0IGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0 IGRvbWFpbiAqZCkKK3N0YXRpYyBpbnQgZmlsbF9xcHQodW5pb24gYW1kX2lv bW11X3B0ZSAqdGhpcywgdW5zaWduZWQgaW50IGxldmVsLAorICAgICAgICAg ICAgICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZ3NbSU9NTVVfTUFYX1BU X0xFVkVMU10pCiB7Ci0gICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBk b21faW9tbXUoZCk7CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBk b21faW9tbXUoZG9tX2lvKTsKKyAgICB1bnNpZ25lZCBpbnQgaTsKKyAgICBp bnQgcmMgPSAwOworCisgICAgZm9yICggaSA9IDA7ICFyYyAmJiBpIDwgUFRF X1BFUl9UQUJMRV9TSVpFOyArK2kgKQorICAgIHsKKyAgICAgICAgdW5pb24g YW1kX2lvbW11X3B0ZSAqcHRlID0gJnRoaXNbaV0sICpuZXh0OworCisgICAg ICAgIGlmICggIXB0ZS0+cHIgKQorICAgICAgICB7CisgICAgICAgICAgICBp ZiAoICFwZ3NbbGV2ZWxdICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAvKgorICAgICAgICAgICAgICAgICAqIFRoZSBwZ3RhYmxlIGFsbG9j YXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3ZWxsIGFzCisg ICAgICAgICAgICAgICAgICogcGFnZSB0YWJsZSBwYWdlcywgYW5kIHRoZSBy ZXN1bHRpbmcgYWxsb2NhdGlvbnMgYXJlIGFsd2F5cworICAgICAgICAgICAg ICAgICAqIHplcm9lZC4KKyAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAg ICAgICAgICBwZ3NbbGV2ZWxdID0gaW9tbXVfYWxsb2NfcGd0YWJsZShoZCk7 CisgICAgICAgICAgICAgICAgaWYgKCAhcGdzW2xldmVsXSApCisgICAgICAg ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICByYyA9IC1FTk9NRU07 CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg IH0KKworICAgICAgICAgICAgICAgIGlmICggbGV2ZWwgKQorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IF9fbWFwX2Rv bWFpbl9wYWdlKHBnc1tsZXZlbF0pOworICAgICAgICAgICAgICAgICAgICBy YyA9IGZpbGxfcXB0KG5leHQsIGxldmVsIC0gMSwgcGdzKTsKKyAgICAgICAg ICAgICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UobmV4dCk7CisgICAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogUERFcyBhcmUgZXNzZW50aWFsbHkgYSBzdWJzZXQg b2YgUFRFcywgc28gdGhpcyBmdW5jdGlvbgorICAgICAgICAgICAgICogaXMg ZmluZSB0byB1c2UgZXZlbiBhdCB0aGUgbGVhZi4KKyAgICAgICAgICAgICAq LworICAgICAgICAgICAgc2V0X2lvbW11X3BkZV9wcmVzZW50KHB0ZSwgbWZu X3gocGFnZV90b19tZm4ocGdzW2xldmVsXSkpLCBsZXZlbCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlLCB0cnVlKTsKKyAgICAg ICAgfQorICAgICAgICBlbHNlIGlmICggbGV2ZWwgJiYgcHRlLT5uZXh0X2xl dmVsICkKKyAgICAgICAgeworICAgICAgICAgICAgbmV4dCA9IG1hcF9kb21h aW5fcGFnZShfbWZuKHB0ZS0+bWZuKSk7CisgICAgICAgICAgICByYyA9IGZp bGxfcXB0KG5leHQsIGxldmVsIC0gMSwgcGdzKTsKKyAgICAgICAgICAgIHVu bWFwX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAgICB9CisgICAgfQorCisg ICAgcmV0dXJuIHJjOworfQorCitpbnQgYW1kX2lvbW11X3F1YXJhbnRpbmVf aW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRldiwgYm9vbCBzY3JhdGNoX3BhZ2Up Cit7CisgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUo ZG9tX2lvKTsKICAgICB1bnNpZ25lZCBsb25nIGVuZF9nZm4gPQogICAgICAg ICAxdWwgPDwgKERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEggLSBQQUdF X1NISUZUKTsKICAgICB1bnNpZ25lZCBpbnQgbGV2ZWwgPSBhbWRfaW9tbXVf Z2V0X3BhZ2luZ19tb2RlKGVuZF9nZm4pOwotICAgIHVuaW9uIGFtZF9pb21t dV9wdGUgKnRhYmxlOworICAgIHVuc2lnbmVkIGludCByZXFfaWQgPSBnZXRf ZG1hX3JlcXVlc3Rvcl9pZChwZGV2LT5zZWcsIHBkZXYtPnNiZGYuYmRmKTsK KyAgICBjb25zdCBzdHJ1Y3QgaXZyc19tYXBwaW5ncyAqaXZyc19tYXBwaW5n cyA9IGdldF9pdnJzX21hcHBpbmdzKHBkZXYtPnNlZyk7CisgICAgaW50IHJj OworCisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOworICAgIEFTU0VS VCghaGQtPmFyY2guYW1kLnJvb3RfdGFibGUpOworICAgIEFTU0VSVChwYWdl X2xpc3RfZW1wdHkoJmhkLT5hcmNoLnBndGFibGVzLmxpc3QpKTsKIAotICAg IGlmICggaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgKQotICAgIHsKLSAgICAg ICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7CisgICAgaWYgKCAhc2NyYXRjaF9w YWdlICYmICFpdnJzX21hcHBpbmdzW3JlcV9pZF0udW5pdHlfbWFwICkKICAg ICAgICAgcmV0dXJuIDA7Ci0gICAgfQogCi0gICAgc3Bpbl9sb2NrKCZoZC0+ YXJjaC5tYXBwaW5nX2xvY2spOworICAgIEFTU0VSVChwZGV2LT5hcmNoLnBz ZXVkb19kb21pZCAhPSBET01JRF9JTlZBTElEKTsKIAotICAgIGhkLT5hcmNo LmFtZC5yb290X3RhYmxlID0gaW9tbXVfYWxsb2NfcGd0YWJsZShoZCk7Ci0g ICAgaWYgKCAhaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgKQotICAgICAgICBn b3RvIG91dDsKKyAgICBpZiAoIHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGUg KQorICAgIHsKKyAgICAgICAgY2xlYXJfZG9tYWluX3BhZ2UocGRldi0+YXJj aC5sZWFmX21mbik7CisgICAgICAgIHJldHVybiAwOworICAgIH0KIAotICAg IHRhYmxlID0gX19tYXBfZG9tYWluX3BhZ2UoaGQtPmFyY2guYW1kLnJvb3Rf dGFibGUpOwotICAgIHdoaWxlICggbGV2ZWwgKQorICAgIHBkZXYtPmFyY2gu YW1kLnJvb3RfdGFibGUgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKKyAg ICBpZiAoICFwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlICkKKyAgICAgICAg cmV0dXJuIC1FTk9NRU07CisKKyAgICAvKiBUcmFuc2llbnRseSBpbnN0YWxs IHRoZSByb290IGludG8gRG9tSU8sIGZvciBpb21tdV9pZGVudGl0eV9tYXBw aW5nKCkuICovCisgICAgaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBwZGV2 LT5hcmNoLmFtZC5yb290X3RhYmxlOworCisgICAgcmMgPSBhbWRfaW9tbXVf cmVzZXJ2ZV9kb21haW5fdW5pdHlfbWFwKGRvbV9pbywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXZyc19tYXBwaW5n c1tyZXFfaWRdLnVuaXR5X21hcCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMCk7CisKKyAgICBpb21tdV9pZGVudGl0 eV9tYXBfdGVhcmRvd24oZG9tX2lvKTsKKyAgICBoZC0+YXJjaC5hbWQucm9v dF90YWJsZSA9IE5VTEw7CisKKyAgICBpZiAoIHJjICkKKyAgICAgICAgQU1E X0lPTU1VX1dBUk4oIiVwcDogcXVhcmFudGluZSB1bml0eSBtYXBwaW5nIGZh aWxlZFxuIiwgJnBkZXYtPnNiZGYpOworICAgIGVsc2UgaWYgKCBzY3JhdGNo X3BhZ2UgKQogICAgIHsKLSAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7 Ci0gICAgICAgIHVuc2lnbmVkIGludCBpOworICAgICAgICB1bmlvbiBhbWRf aW9tbXVfcHRlICpyb290OworICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpw Z3NbSU9NTVVfTUFYX1BUX0xFVkVMU10gPSB7fTsKIAotICAgICAgICAvKgot ICAgICAgICAgKiBUaGUgcGd0YWJsZSBhbGxvY2F0b3IgaXMgZmluZSBmb3Ig dGhlIGxlYWYgcGFnZSwgYXMgd2VsbCBhcwotICAgICAgICAgKiBwYWdlIHRh YmxlIHBhZ2VzLCBhbmQgdGhlIHJlc3VsdGluZyBhbGxvY2F0aW9ucyBhcmUg YWx3YXlzCi0gICAgICAgICAqIHplcm9lZC4KLSAgICAgICAgICovCi0gICAg ICAgIHBnID0gaW9tbXVfYWxsb2NfcGd0YWJsZShoZCk7Ci0gICAgICAgIGlm ICggIXBnICkKLSAgICAgICAgICAgIGJyZWFrOworICAgICAgICBzcGluX2xv Y2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKLSAgICAgICAgZm9yICgg aSA9IDA7IGkgPCBQVEVfUEVSX1RBQkxFX1NJWkU7IGkrKyApCi0gICAgICAg IHsKLSAgICAgICAgICAgIHVuaW9uIGFtZF9pb21tdV9wdGUgKnBkZSA9ICZ0 YWJsZVtpXTsKKyAgICAgICAgcm9vdCA9IF9fbWFwX2RvbWFpbl9wYWdlKHBk ZXYtPmFyY2guYW1kLnJvb3RfdGFibGUpOworICAgICAgICByYyA9IGZpbGxf cXB0KHJvb3QsIGxldmVsIC0gMSwgcGdzKTsKKyAgICAgICAgdW5tYXBfZG9t YWluX3BhZ2Uocm9vdCk7CiAKLSAgICAgICAgICAgIC8qCi0gICAgICAgICAg ICAgKiBQREVzIGFyZSBlc3NlbnRpYWxseSBhIHN1YnNldCBvZiBQVEVzLCBz byB0aGlzIGZ1bmN0aW9uCi0gICAgICAgICAgICAgKiBpcyBmaW5lIHRvIHVz ZSBldmVuIGF0IHRoZSBsZWFmLgotICAgICAgICAgICAgICovCi0gICAgICAg ICAgICBzZXRfaW9tbXVfcGRlX3ByZXNlbnQocGRlLCBtZm5feChwYWdlX3Rv X21mbihwZykpLCBsZXZlbCAtIDEsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmFsc2UsIHRydWUpOwotICAgICAgICB9CisgICAgICAg IHBkZXYtPmFyY2gubGVhZl9tZm4gPSBwYWdlX3RvX21mbihwZ3NbMF0pOwog Ci0gICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHRhYmxlKTsKLSAgICAgICAg dGFibGUgPSBfX21hcF9kb21haW5fcGFnZShwZyk7Ci0gICAgICAgIGxldmVs LS07CisgICAgICAgIHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xv Y2spOwogICAgIH0KLSAgICB1bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7CiAK LSBvdXQ6Ci0gICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9j ayk7CisgICAgcGFnZV9saXN0X21vdmUoJnBkZXYtPmFyY2gucGd0YWJsZXNf bGlzdCwgJmhkLT5hcmNoLnBndGFibGVzLmxpc3QpOworCisgICAgaWYgKCBy YyApCisgICAgICAgIGFtZF9pb21tdV9xdWFyYW50aW5lX3RlYXJkb3duKHBk ZXYpOworCisgICAgcmV0dXJuIHJjOworfQorCit2b2lkIGFtZF9pb21tdV9x dWFyYW50aW5lX3RlYXJkb3duKHN0cnVjdCBwY2lfZGV2ICpwZGV2KQorewor ICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9p byk7CisKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CisKKyAgICBp ZiAoICFwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlICkKKyAgICAgICAgcmV0 dXJuOwogCi0gICAgLyogUGFnZXMgbGVha2VkIGluIGZhaWx1cmUgY2FzZSAq LwotICAgIHJldHVybiBsZXZlbCA/IC1FTk9NRU0gOiAwOworICAgIEFTU0VS VChwYWdlX2xpc3RfZW1wdHkoJmhkLT5hcmNoLnBndGFibGVzLmxpc3QpKTsK KyAgICBwYWdlX2xpc3RfbW92ZSgmaGQtPmFyY2gucGd0YWJsZXMubGlzdCwg JnBkZXYtPmFyY2gucGd0YWJsZXNfbGlzdCk7CisgICAgd2hpbGUgKCBpb21t dV9mcmVlX3BndGFibGVzKGRvbV9pbykgPT0gLUVSRVNUQVJUICkKKyAgICAg ICAgLyogbm90aGluZyAqLzsKKyAgICBwZGV2LT5hcmNoLmFtZC5yb290X3Rh YmxlID0gTlVMTDsKIH0KIAogLyoKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC0yNiw3ICsyNiw3 IEBACiAjaW5jbHVkZSAiLi4vYXRzLmgiCiAKIC8qIGRvbV9pbyBpcyB1c2Vk IGFzIGEgc2VudGluZWwgZm9yIHF1YXJhbnRpbmVkIGRldmljZXMgKi8KLSNk ZWZpbmUgUVVBUkFOVElORV9TS0lQKGQpICgoZCkgPT0gZG9tX2lvICYmICFk b21faW9tbXUoZCktPmFyY2guYW1kLnJvb3RfdGFibGUpCisjZGVmaW5lIFFV QVJBTlRJTkVfU0tJUChkLCBwKSAoKGQpID09IGRvbV9pbyAmJiAhKHApLT5h cmNoLmFtZC5yb290X3RhYmxlKQogCiBzdGF0aWMgYm9vbF90IF9fcmVhZF9t b3N0bHkgaW5pdF9kb25lOwogCkBAIC0xMjUsOCArMTI1LDEwIEBAIHN0YXRp YyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICB1OCBi dXMgPSBwZGV2LT5idXM7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQg PSBkb21faW9tbXUoZG9tYWluKTsKICAgICBjb25zdCBzdHJ1Y3QgaXZyc19t YXBwaW5ncyAqaXZyc19kZXY7CisgICAgY29uc3Qgc3RydWN0IHBhZ2VfaW5m byAqcm9vdF9wZzsKKyAgICBkb21pZF90IGRvbWlkOwogCi0gICAgaWYgKCBR VUFSQU5USU5FX1NLSVAoZG9tYWluKSApCisgICAgaWYgKCBRVUFSQU5USU5F X1NLSVAoZG9tYWluLCBwZGV2KSApCiAgICAgICAgIHJldHVybiAwOwogCiAg ICAgQlVHX09OKCFoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUgfHwgIWlvbW11 LT5kZXZfdGFibGUuYnVmZmVyKTsKQEAgLTE0NywxNCArMTQ5LDI1IEBAIHN0 YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBk dGUgPSAmdGFibGVbcmVxX2lkXTsKICAgICBpdnJzX2RldiA9ICZnZXRfaXZy c19tYXBwaW5ncyhpb21tdS0+c2VnKVtyZXFfaWRdOwogCisgICAgaWYgKCBk b21haW4gIT0gZG9tX2lvICkKKyAgICB7CisgICAgICAgIHJvb3RfcGcgPSBo ZC0+YXJjaC5hbWQucm9vdF90YWJsZTsKKyAgICAgICAgZG9taWQgPSBkb21h aW4tPmRvbWFpbl9pZDsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAg ICAgcm9vdF9wZyA9IHBkZXYtPmFyY2guYW1kLnJvb3RfdGFibGU7CisgICAg ICAgIGRvbWlkID0gcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQ7CisgICAgfQor CiAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJmlvbW11LT5sb2NrLCBmbGFncyk7 CiAKICAgICBpZiAoICFkdGUtPnYgfHwgIWR0ZS0+dHYgKQogICAgIHsKICAg ICAgICAgLyogYmluZCBEVEUgdG8gZG9tYWluIHBhZ2UtdGFibGVzICovCiAg ICAgICAgIHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCi0g ICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5h bWQucm9vdF90YWJsZSksCi0gICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9t YWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUsIHNyX2ZsYWdzKTsK KyAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKHJvb3RfcGcp LCBkb21pZCwKKyAgICAgICAgICAgICAgICAgaGQtPmFyY2guYW1kLnBhZ2lu Z19tb2RlLCBzcl9mbGFncyk7CiAgICAgICAgIGlmICggcmMgKQogICAgICAg ICB7CiAgICAgICAgICAgICBBU1NFUlQocmMgPCAwKTsKQEAgLTE4MSw3ICsx OTQsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0 dXBfCiAKICAgICAgICAgYW1kX2lvbW11X2ZsdXNoX2RldmljZShpb21tdSwg cmVxX2lkKTsKICAgICB9Ci0gICAgZWxzZSBpZiAoIGR0ZS0+cHRfcm9vdCAh PSBtZm5feChwYWdlX3RvX21mbihoZC0+YXJjaC5hbWQucm9vdF90YWJsZSkp ICkKKyAgICBlbHNlIGlmICggZHRlLT5wdF9yb290ICE9IG1mbl94KHBhZ2Vf dG9fbWZuKHJvb3RfcGcpKSApCiAgICAgewogICAgICAgICAvKgogICAgICAg ICAgKiBTdHJpY3RseSBzcGVha2luZyBpZiB0aGUgZGV2aWNlIGlzIHRoZSBv bmx5IG9uZSB3aXRoIHRoaXMgcmVxdWVzdG9yCkBAIC0xOTQsOCArMjA3LDgg QEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwog ICAgICAgICAgICAgcmMgPSAtRU9QTk9UU1VQUDsKICAgICAgICAgZWxzZQog ICAgICAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJs ZSgKLSAgICAgICAgICAgICAgICAgICAgIGR0ZSwgcGFnZV90b19tYWRkciho ZC0+YXJjaC5hbWQucm9vdF90YWJsZSksCi0gICAgICAgICAgICAgICAgICAg ICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2guYW1kLnBhZ2luZ19tb2Rl LCBzcl9mbGFncyk7CisgICAgICAgICAgICAgICAgICAgICBkdGUsIHBhZ2Vf dG9fbWFkZHIocm9vdF9wZyksIGRvbWlkLAorICAgICAgICAgICAgICAgICAg ICAgaGQtPmFyY2guYW1kLnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7CiAgICAg ICAgIGlmICggcmMgPCAwICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bp bl91bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKQEAg LTIxNCw2ICsyMjcsNyBAQCBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbWRf aW9tbXVfc2V0dXBfCiAgICAgICAgICAgICAgICogaW50ZW5kZWQgYW55d2F5 LgogICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICFwZGV2LT5kb21h aW4tPmlzX2R5aW5nICYmCisgICAgICAgICAgICAgcGRldi0+ZG9tYWluICE9 IGRvbV9pbyAmJgogICAgICAgICAgICAgIChhbnlfcGRldl9iZWhpbmRfaW9t bXUocGRldi0+ZG9tYWluLCBwZGV2LCBpb21tdSkgfHwKICAgICAgICAgICAg ICAgcGRldi0+cGhhbnRvbV9zdHJpZGUpICkKICAgICAgICAgICAgIEFNRF9J T01NVV9XQVJOKCIgJXBwOiByZWFzc2lnbm1lbnQgbWF5IGNhdXNlICVwZCBk YXRhIGNvcnJ1cHRpb25cbiIsCkBAIC0yNDYsOSArMjYwLDggQEAgc3RhdGlj IGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwogICAgIEFNRF9J T01NVV9ERUJVRygiU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9 ICUjeCwgdHlwZSA9ICUjeCwgIgogICAgICAgICAgICAgICAgICAgICAicm9v dCB0YWJsZSA9ICUjIlBSSXg2NCIsICIKICAgICAgICAgICAgICAgICAgICAg ImRvbWFpbiA9ICVkLCBwYWdpbmcgbW9kZSA9ICVkXG4iLAotICAgICAgICAg ICAgICAgICAgICByZXFfaWQsIHBkZXYtPnR5cGUsCi0gICAgICAgICAgICAg ICAgICAgIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2guYW1kLnJvb3RfdGFibGUp LAotICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQt PmFyY2guYW1kLnBhZ2luZ19tb2RlKTsKKyAgICAgICAgICAgICAgICAgICAg cmVxX2lkLCBwZGV2LT50eXBlLCBwYWdlX3RvX21hZGRyKHJvb3RfcGcpLAor ICAgICAgICAgICAgICAgICAgICBkb21pZCwgaGQtPmFyY2guYW1kLnBhZ2lu Z19tb2RlKTsKIAogICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKIApA QCAtMzI3LDcgKzM0MCw3IEBAIGludCBhbWRfaW9tbXVfYWxsb2Nfcm9vdChz dHJ1Y3QgZG9tYWluICoKIHsKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpo ZCA9IGRvbV9pb21tdShkKTsKIAotICAgIGlmICggdW5saWtlbHkoIWhkLT5h cmNoLmFtZC5yb290X3RhYmxlKSApCisgICAgaWYgKCB1bmxpa2VseSghaGQt PmFyY2guYW1kLnJvb3RfdGFibGUpICYmIGQgIT0gZG9tX2lvICkKICAgICB7 CiAgICAgICAgIGhkLT5hcmNoLmFtZC5yb290X3RhYmxlID0gaW9tbXVfYWxs b2NfcGd0YWJsZShoZCk7CiAgICAgICAgIGlmICggIWhkLT5hcmNoLmFtZC5y b290X3RhYmxlICkKQEAgLTM5MSw3ICs0MDQsNyBAQCBzdGF0aWMgdm9pZCBh bWRfaW9tbXVfZGlzYWJsZV9kb21haW5fZGV2CiAgICAgaW50IHJlcV9pZDsK ICAgICB1OCBidXMgPSBwZGV2LT5idXM7CiAKLSAgICBpZiAoIFFVQVJBTlRJ TkVfU0tJUChkb21haW4pICkKKyAgICBpZiAoIFFVQVJBTlRJTkVfU0tJUChk b21haW4sIHBkZXYpICkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJU KHBjaWRldnNfbG9ja2VkKCkpOwpAQCAtNDMwLDcgKzQ0Myw3IEBAIHN0YXRp YyB2b2lkIGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXYKIAogICAgICAg ICBBTURfSU9NTVVfREVCVUcoIkRpc2FibGU6IGRldmljZSBpZCA9ICUjeCwg IgogICAgICAgICAgICAgICAgICAgICAgICAgImRvbWFpbiA9ICVkLCBwYWdp bmcgbW9kZSA9ICVkXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVx X2lkLCAgZG9tYWluLT5kb21haW5faWQsCisgICAgICAgICAgICAgICAgICAg ICAgICByZXFfaWQsIGR0ZS0+ZG9tYWluX2lkLAogICAgICAgICAgICAgICAg ICAgICAgICAgZG9tX2lvbW11KGRvbWFpbiktPmFyY2guYW1kLnBhZ2luZ19t b2RlKTsKICAgICB9CiAgICAgZWxzZQpAQCAtNDUzLDcgKzQ2Niw3IEBAIHN0 YXRpYyBpbnQgcmVhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4KICAgICAg ICAgcmV0dXJuIC1FTk9ERVY7CiAgICAgfQogCi0gICAgaWYgKCAhUVVBUkFO VElORV9TS0lQKHRhcmdldCkgKQorICAgIGlmICggIVFVQVJBTlRJTkVfU0tJ UCh0YXJnZXQsIHBkZXYpICkKICAgICB7CiAgICAgICAgIHJjID0gYW1kX2lv bW11X3NldHVwX2RvbWFpbl9kZXZpY2UodGFyZ2V0LCBpb21tdSwgZGV2Zm4s IHBkZXYpOwogICAgICAgICBpZiAoIHJjICkKQEAgLTY1NSw2ICs2NjgsOCBA QCBzdGF0aWMgaW50IGFtZF9pb21tdV9yZW1vdmVfZGV2aWNlKHU4IGRlCiAg ICAgICAgIEFNRF9JT01NVV9XQVJOKCIlcGQ6IHVuaXR5IHVubWFwcGluZyBm YWlsZWQgZm9yICVwcFxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgcGRl di0+ZG9tYWluLCAmcGRldi0+c2JkZik7CiAKKyAgICBhbWRfaW9tbXVfcXVh cmFudGluZV90ZWFyZG93bihwZGV2KTsKKwogICAgIGlvbW11X2ZyZWVfZG9t aWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsIGlvbW11LT5kb21pZF9tYXAp OwogICAgIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJ RDsKIAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisr KyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTQ0Mywy MSArNDQzLDIyIEBAIGludCBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0 IGRvbWFpbgogICAgIHJldHVybiByYzsKIH0KIAotc3RhdGljIGludCBfX2lu aXQgaW9tbXVfcXVhcmFudGluZV9pbml0KHZvaWQpCitpbnQgaW9tbXVfcXVh cmFudGluZV9kZXZfaW5pdChkZXZpY2VfdCAqZGV2KQogewogICAgIGNvbnN0 IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7 Ci0gICAgaW50IHJjOwogCi0gICAgZG9tX2lvLT5vcHRpb25zIHw9IFhFTl9E T01DVExfQ0RGX2lvbW11OworICAgIGlmICggIWlvbW11X3F1YXJhbnRpbmUg fHwgIWhkLT5wbGF0Zm9ybV9vcHMtPnF1YXJhbnRpbmVfaW5pdCApCisgICAg ICAgIHJldHVybiAwOwogCi0gICAgcmMgPSBpb21tdV9kb21haW5faW5pdChk b21faW8sIDApOwotICAgIGlmICggcmMgfHwgaW9tbXVfcXVhcmFudGluZSA8 IElPTU1VX3F1YXJhbnRpbmVfc2NyYXRjaF9wYWdlICkKLSAgICAgICAgcmV0 dXJuIHJjOworICAgIHJldHVybiBpb21tdV9jYWxsKGhkLT5wbGF0Zm9ybV9v cHMsIHF1YXJhbnRpbmVfaW5pdCwKKyAgICAgICAgICAgICAgICAgICAgICBk ZXYsIGlvbW11X3F1YXJhbnRpbmUgPT0gSU9NTVVfcXVhcmFudGluZV9zY3Jh dGNoX3BhZ2UpOworfQogCi0gICAgaWYgKCAhaGQtPnBsYXRmb3JtX29wcy0+ cXVhcmFudGluZV9pbml0ICkKLSAgICAgICAgcmV0dXJuIDA7CitzdGF0aWMg aW50IF9faW5pdCBpb21tdV9xdWFyYW50aW5lX2luaXQodm9pZCkKK3sKKyAg ICBkb21faW8tPm9wdGlvbnMgfD0gWEVOX0RPTUNUTF9DREZfaW9tbXU7CiAK LSAgICByZXR1cm4gaGQtPnBsYXRmb3JtX29wcy0+cXVhcmFudGluZV9pbml0 KGRvbV9pbyk7CisgICAgcmV0dXJuIGlvbW11X2RvbWFpbl9pbml0KGRvbV9p bywgMCk7CiB9CiAKIGludCBfX2luaXQgaW9tbXVfc2V0dXAodm9pZCkKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvcGNpLmMKQEAgLTg1Miw5ICs4NTIsMTYgQEAg c3RhdGljIGludCBkZWFzc2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbgogICAg ICAgICByZXR1cm4gLUVOT0RFVjsKIAogICAgIC8qIERlLWFzc2lnbm1lbnQg ZnJvbSBkb21faW8gc2hvdWxkIGRlLXF1YXJhbnRpbmUgdGhlIGRldmljZSAq LwotICAgIHRhcmdldCA9ICgocGRldi0+cXVhcmFudGluZSB8fCBpb21tdV9x dWFyYW50aW5lKSAmJgotICAgICAgICAgICAgICBwZGV2LT5kb21haW4gIT0g ZG9tX2lvKSA/Ci0gICAgICAgIGRvbV9pbyA6IGhhcmR3YXJlX2RvbWFpbjsK KyAgICBpZiAoIChwZGV2LT5xdWFyYW50aW5lIHx8IGlvbW11X3F1YXJhbnRp bmUpICYmIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQorICAgIHsKKyAgICAg ICAgcmV0ID0gaW9tbXVfcXVhcmFudGluZV9kZXZfaW5pdChwY2lfdG9fZGV2 KHBkZXYpKTsKKyAgICAgICAgaWYgKCByZXQgKQorICAgICAgICAgICByZXR1 cm4gcmV0OworCisgICAgICAgIHRhcmdldCA9IGRvbV9pbzsKKyAgICB9Cisg ICAgZWxzZQorICAgICAgICB0YXJnZXQgPSBoYXJkd2FyZV9kb21haW47CiAK ICAgICB3aGlsZSAoIHBkZXYtPnBoYW50b21fc3RyaWRlICkKICAgICB7CkBA IC0xNDI0LDYgKzE0MzEsMTMgQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNl KHN0cnVjdCBkb21haW4gKgogICAgIGlmICggcmMgKQogICAgICAgICBnb3Rv IGRvbmU7CiAKKyAgICBpZiAoIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQor ICAgIHsKKyAgICAgICAgcmMgPSBpb21tdV9xdWFyYW50aW5lX2Rldl9pbml0 KHBjaV90b19kZXYocGRldikpOworICAgICAgICBpZiAoIHJjICkKKyAgICAg ICAgICAgIGdvdG8gZG9uZTsKKyAgICB9CisKICAgICBwZGV2LT5mYXVsdC5j b3VudCA9IDA7CiAKICAgICBpZiAoIChyYyA9IGhkLT5wbGF0Zm9ybV9vcHMt PmFzc2lnbl9kZXZpY2UoZCwgZGV2Zm4sIHBjaV90b19kZXYocGRldiksIGZs YWcpKSApCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5j CkBAIC00NSw2ICs0NSwxMSBAQAogCiAvKiBkb21faW8gaXMgdXNlZCBhcyBh IHNlbnRpbmVsIGZvciBxdWFyYW50aW5lZCBkZXZpY2VzICovCiAjZGVmaW5l IFFVQVJBTlRJTkVfU0tJUChkLCBwZ2RfbWFkZHIpICgoZCkgPT0gZG9tX2lv ICYmICEocGdkX21hZGRyKSkKKyNkZWZpbmUgREVWSUNFX0RPTUlEKGQsIHBk ZXYpICgoZCkgIT0gZG9tX2lvID8gKGQpLT5kb21haW5faWQgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAocGRl diktPmFyY2gucHNldWRvX2RvbWlkKQorI2RlZmluZSBERVZJQ0VfUEdUQUJM RShkLCBwZGV2KSAoKGQpICE9IGRvbV9pbyBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA/IGRvbV9pb21tdShkKS0+YXJjaC52dGQucGdk X21hZGRyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDog KHBkZXYpLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIpCiAKIC8qIFBvc3NpYmxlIHVu ZmlsdGVyZWQgTEFQSUMvTVNJIG1lc3NhZ2VzIGZyb20gdW50cnVzdGVkIHNv dXJjZXM/ICovCiBib29sIF9fcmVhZF9tb3N0bHkgdW50cnVzdGVkX21zaTsK QEAgLTg4LDEzICs5MywxOCBAQCBzdGF0aWMgaW50IGdldF9pb21tdV9kaWQo ZG9taWRfdCBkb21pZCwKIAogI2RlZmluZSBESURfRklFTERfV0lEVEggMTYK ICNkZWZpbmUgRElEX0hJR0hfT0ZGU0VUIDgKKworLyoKKyAqIFRoaXMgZnVu Y3Rpb24gbWF5IGhhdmUgImNvbnRleHQiIHBhc3NlZCBhcyBOVUxMLCB0byBt ZXJlbHkgb2J0YWluIGEgRElECisgKiBmb3IgImRvbWlkIi4KKyAqLwogc3Rh dGljIGludCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0IGNvbnRleHRf ZW50cnkgKmNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb21pZF90IGRvbWlkLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkK IHsKICAgICB1bnNpZ25lZCBsb25nIG5yX2RvbSwgaTsKICAgICBpbnQgZm91 bmQgPSAwOwogCi0gICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZpb21tdS0+ bG9jaykpOworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKIAogICAg IG5yX2RvbSA9IGNhcF9uZG9tcyhpb21tdS0+Y2FwKTsKICAgICBpID0gZmlu ZF9maXJzdF9iaXQoaW9tbXUtPmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsKQEAg LTEyMCw4ICsxMzAsMTMgQEAgc3RhdGljIGludCBjb250ZXh0X3NldF9kb21h aW5faWQoc3RydWN0CiAgICAgfQogCiAgICAgc2V0X2JpdChpLCBpb21tdS0+ ZG9taWRfYml0bWFwKTsKLSAgICBjb250ZXh0LT5oaSAmPSB+KCgoMSA8PCBE SURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElEX0hJR0hfT0ZGU0VUKTsKLSAg ICBjb250ZXh0LT5oaSB8PSAoaSAmICgoMSA8PCBESURfRklFTERfV0lEVEgp IC0gMSkpIDw8IERJRF9ISUdIX09GRlNFVDsKKworICAgIGlmICggY29udGV4 dCApCisgICAgeworICAgICAgICBjb250ZXh0LT5oaSAmPSB+KCgoMSA8PCBE SURfRklFTERfV0lEVEgpIC0gMSkgPDwgRElEX0hJR0hfT0ZGU0VUKTsKKyAg ICAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAoKDEgPDwgRElEX0ZJRUxEX1dJ RFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZTRVQ7CisgICAgfQorCiAgICAg cmV0dXJuIDA7CiB9CiAKQEAgLTE3MSw4ICsxODYsMTIgQEAgc3RhdGljIHZv aWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoY29ucwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHBjaV9kZXYg KmV4Y2x1ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKIHsKLSAgICBib29sIGZvdW5k ID0gYW55X3BkZXZfYmVoaW5kX2lvbW11KGQsIGV4Y2x1ZGUsIGlvbW11KTsK KyAgICBib29sIGZvdW5kOworCisgICAgaWYgKCBkID09IGRvbV9pbyApCisg ICAgICAgIHJldHVybjsKIAorICAgIGZvdW5kID0gYW55X3BkZXZfYmVoaW5k X2lvbW11KGQsIGV4Y2x1ZGUsIGlvbW11KTsKICAgICAvKgogICAgICAqIEhp ZGRlbiBkZXZpY2VzIGFyZSBhc3NvY2lhdGVkIHdpdGggRG9tWEVOIGJ1dCB1 c2FibGUgYnkgdGhlIGhhcmR3YXJlCiAgICAgICogZG9tYWluLiBIZW5jZSB0 aGV5IG5lZWQgY29uc2lkZXJpbmcgaGVyZSBhcyB3ZWxsLgpAQCAtMTQyNiw3 ICsxNDQ1LDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAog ICAgICAgICBkb21pZCA9IGlvbW11LT5kb21pZF9tYXBbcHJldl9kaWRdOwog ICAgICAgICBpZiAoIGRvbWlkIDwgRE9NSURfRklSU1RfUkVTRVJWRUQgKQog ICAgICAgICAgICAgcHJldl9kb20gPSByY3VfbG9ja19kb21haW5fYnlfaWQo ZG9taWQpOwotICAgICAgICBlbHNlIGlmICggZG9taWQgPT0gRE9NSURfSU8g KQorICAgICAgICBlbHNlIGlmICggcGRldiA/IGRvbWlkID09IHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkIDogZG9taWQgPiBET01JRF9NQVNLICkKICAgICAg ICAgICAgIHByZXZfZG9tID0gcmN1X2xvY2tfZG9tYWluKGRvbV9pbyk7CiAg ICAgICAgIGlmICggIXByZXZfZG9tICkKICAgICAgICAgewpAQCAtMTU4Miwx NSArMTYwMSwxMiBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUo CiAgICAgewogICAgICAgICBpZiAoICFwcmV2X2RvbSApCiAgICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21t dSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlE KGRvbWFpbiwgcGRldikpOwogICAgICAgICBlbHNlIGlmICggcHJldl9kb20g IT0gZG9tYWluICkgLyogQXZvaWQgaW5maW5pdGUgcmVjdXJzaW9uLiAqLwot ICAgICAgICB7Ci0gICAgICAgICAgICBoZCA9IGRvbV9pb21tdShwcmV2X2Rv bSk7CiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5n X29uZShwcmV2X2RvbSwgaW9tbXUsIGJ1cywgZGV2Zm4sIHBkZXYsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21h aW4tPmRvbWFpbl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGhkLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBERVZJ Q0VfRE9NSUQocHJldl9kb20sIHBkZXYpLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX1BHVEFCTEUocHJl dl9kb20sIHBkZXYpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbW9kZSAmIE1BUF9XSVRIX1JNUlIpIDwgMDsKLSAg ICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXQgPSAxOwog CkBAIC0xNjEyLDcgKzE2MjgsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmcoc3RydWN0CiB7CiAgICAgY29uc3Qgc3RydWN0IGFjcGlf ZHJoZF91bml0ICpkcmhkID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0 KHBkZXYpOwogICAgIGNvbnN0IHN0cnVjdCBhY3BpX3JtcnJfdW5pdCAqcm1y cjsKLSAgICBwYWRkcl90IHBnZF9tYWRkciA9IGRvbV9pb21tdShkb21haW4p LT5hcmNoLnZ0ZC5wZ2RfbWFkZHI7CisgICAgcGFkZHJfdCBwZ2RfbWFkZHIg PSBERVZJQ0VfUEdUQUJMRShkb21haW4sIHBkZXYpOwogICAgIGRvbWlkX3Qg b3JpZ19kb21pZCA9IHBkZXYtPmFyY2gucHNldWRvX2RvbWlkOwogICAgIGlu dCByZXQgPSAwOwogICAgIHVuc2lnbmVkIGludCBpLCBtb2RlID0gMDsKQEAg LTE2NDEsNyArMTY1Nyw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZyhzdHJ1Y3QKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAg aWYgKCBkb21haW4gIT0gcGRldi0+ZG9tYWluICkKKyAgICBpZiAoIGRvbWFp biAhPSBwZGV2LT5kb21haW4gJiYgcGRldi0+ZG9tYWluICE9IGRvbV9pbyAp CiAgICAgewogICAgICAgICBpZiAoIHBkZXYtPmRvbWFpbi0+aXNfZHlpbmcg KQogICAgICAgICAgICAgbW9kZSB8PSBNQVBfT1dORVJfRFlJTkc7CkBAIC0x NjgzLDggKzE2OTksOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmcoc3RydWN0CiAgICAgICAgIGlmICggaW9tbXVfZGVidWcgKQogICAg ICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOlBDSWU6IG1hcCAlcHBc biIsCiAgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNl ZywgYnVzLCBkZXZmbikpOwotICAgICAgICByZXQgPSBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZu LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw ZGV2LCBkb21haW4tPmRvbWFpbl9pZCwgcGdkX21hZGRyLAorICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQt PmlvbW11LCBidXMsIGRldmZuLCBwZGV2LAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBw ZGV2KSwgcGdkX21hZGRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtb2RlKTsKICAgICAgICAgaWYgKCByZXQgPiAwICkK ICAgICAgICAgICAgIHJldCA9IDA7CkBAIC0xNzEwLDggKzE3MjYsOCBAQCBz dGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAg ICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBk ZXZmbikpOwogCiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIGRv bWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2LCBERVZJQ0VfRE9N SUQoZG9tYWluLCBwZGV2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdkX21hZGRyLCBtb2RlKTsKICAgICAgICAgaWYg KCByZXQgPCAwICkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBwcmV2 X3ByZXNlbnQgPSByZXQ7CkBAIC0xNzM5LDggKzE3NTUsOCBAQCBzdGF0aWMg aW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAq LwogICAgICAgICBpZiAoIHJldCA+PSAwICkKICAgICAgICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9t bXUsIGJ1cywgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLCBkb21haW4tPmRvbWFpbl9pZCwgcGdk X21hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOVUxMLCBERVZJQ0VfRE9NSUQoZG9tYWluLCBw ZGV2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBnZF9tYWRkciwgbW9kZSk7CiAKICAgICAgICAgLyoKICAgICAg ICAgICogRGV2aWNlcyBiZWhpbmQgUENJZS10by1QQ0kvUENJeCBicmlkZ2Ug bWF5IGdlbmVyYXRlIGRpZmZlcmVudApAQCAtMTc1NSw4ICsxNzcxLDggQEAg c3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAg ICAgICBpZiAoICFyZXQgJiYgcGRldl90eXBlKHNlZywgYnVzLCBkZXZmbikg PT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJREdFICYmCiAgICAgICAgICAgICAg KHNlY2J1cyAhPSBwZGV2LT5idXMgfHwgcGRldi0+ZGV2Zm4gIT0gMCkgKQog ICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUo ZG9tYWluLCBkcmhkLT5pb21tdSwgc2VjYnVzLCAwLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZG9tYWlu LT5kb21haW5faWQsIHBnZF9tYWRkciwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgREVWSUNF X0RPTUlEKGRvbWFpbiwgcGRldiksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwZ2RfbWFkZHIsIG1vZGUpOwogCiAg ICAgICAgIGlmICggcmV0ICkKICAgICAgICAgewpAQCAtMTc5OCw5ICsxODE0 LDYgQEAgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICBpbnQg aW9tbXVfZG9taWQsIHJjLCByZXQ7CiAgICAgYm9vbF90IGZsdXNoX2Rldl9p b3RsYjsKIAotICAgIGlmICggUVVBUkFOVElORV9TS0lQKGRvbWFpbiwgZG9t X2lvbW11KGRvbWFpbiktPmFyY2gudnRkLnBnZF9tYWRkcikgKQotICAgICAg ICByZXR1cm4gMDsKLQogICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsK ICAgICBzcGluX2xvY2soJmlvbW11LT5sb2NrKTsKIApAQCAtMTkwMiw3ICsx OTE1LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAq ZG9tYQogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOlBDSWU6 IHVubWFwICVwcFxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4sICZQ Q0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CiAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRl dmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZG9tYWluLT5kb21haW5faWQpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFpbiwgcGRldikpOwog ICAgICAgICBpZiAoICFyZXQgJiYgZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYg YXRzX2RldmljZShwZGV2LCBkcmhkKSA+IDAgKQogICAgICAgICAgICAgZGlz YWJsZV9hdHNfZGV2aWNlKHBkZXYpOwogCkBAIC0xOTE2LDcgKzE5MjksNyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21hCiAg ICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJOiB1bm1hcCAl cHBcbiIsCiAgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYz KHNlZywgYnVzLCBkZXZmbikpOwogICAgICAgICByZXQgPSBkb21haW5fY29u dGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZmbiwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ ZG9tYWluX2lkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIERFVklDRV9ET01JRChkb21haW4sIHBkZXYpKTsKICAgICAgICAg aWYgKCByZXQgKQogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTE5MzksMTgg KzE5NTIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5p dCAqZG9tYQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAorICAg ICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBp b21tdSwgdG1wX2J1cywgdG1wX2RldmZuLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFpbiwgcGRl dikpOwogICAgICAgICAvKiBQQ0llIHRvIFBDSS9QQ0l4IGJyaWRnZSAqLwot ICAgICAgICBpZiAoIHBkZXZfdHlwZShzZWcsIHRtcF9idXMsIHRtcF9kZXZm bikgPT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJREdFICkKLSAgICAgICAgewot ICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRv bWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFp bl9pZCk7Ci0gICAgICAgICAgICBpZiAoICFyZXQgKQotICAgICAgICAgICAg ICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlv bW11LCBzZWNidXMsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKLSAgICAg ICAgfQotICAgICAgICBlbHNlIC8qIExlZ2FjeSBQQ0kgYnJpZGdlICovCi0g ICAgICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9t YWluLCBpb21tdSwgdG1wX2J1cywgdG1wX2RldmZuLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkKTsKKyAgICAgICAgaWYgKCAhcmV0ICYmIHBkZXZfdHlwZShzZWcsIHRt cF9idXMsIHRtcF9kZXZmbikgPT0gREVWX1RZUEVfUENJZTJQQ0lfQlJJREdF ICkKKyAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29u ZShkb21haW4sIGlvbW11LCBzZWNidXMsIDAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWSUNFX0RPTUlEKGRvbWFp biwgcGRldikpOwogCiAgICAgICAgIGJyZWFrOwogCkBAIC0xOTYxLDcgKzE5 NjgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpk b21hCiAgICAgfQogCiAgICAgaWYgKCAhcmV0ICYmIHBkZXYtPmRldmZuID09 IGRldmZuICYmCi0gICAgICAgICAhUVVBUkFOVElORV9TS0lQKGRvbWFpbiwg ZG9tX2lvbW11KGRvbWFpbiktPmFyY2gudnRkLnBnZF9tYWRkcikgKQorICAg ICAgICAgIVFVQVJBTlRJTkVfU0tJUChkb21haW4sIHBkZXYtPmFyY2gudnRk LnBnZF9tYWRkcikgKQogICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21h cChkb21haW4sIHBkZXYsIGlvbW11KTsKIAogICAgIHJldHVybiBkcmhkOwpA QCAtMTk5NCw2ICsyMDAxLDI2IEBAIHN0YXRpYyB2b2lkIGlvbW11X2RvbWFp bl90ZWFyZG93bihzdHJ1Y3QKICAgICBYRlJFRShoZC0+YXJjaC52dGQuaW9t bXVfYml0bWFwKTsKIH0KIAorc3RhdGljIHZvaWQgcXVhcmFudGluZV90ZWFy ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpk cmhkKQoreworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGRvbV9pbyk7CisKKyAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7 CisKKyAgICBpZiAoICFwZGV2LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgKQorICAg ICAgICByZXR1cm47CisKKyAgICBBU1NFUlQocGFnZV9saXN0X2VtcHR5KCZo ZC0+YXJjaC5wZ3RhYmxlcy5saXN0KSk7CisgICAgcGFnZV9saXN0X21vdmUo JmhkLT5hcmNoLnBndGFibGVzLmxpc3QsICZwZGV2LT5hcmNoLnBndGFibGVz X2xpc3QpOworICAgIHdoaWxlICggaW9tbXVfZnJlZV9wZ3RhYmxlcyhkb21f aW8pID09IC1FUkVTVEFSVCApCisgICAgICAgIC8qIG5vdGhpbmcgKi87Cisg ICAgcGRldi0+YXJjaC52dGQucGdkX21hZGRyID0gMDsKKworICAgIGlmICgg ZHJoZCApCisgICAgICAgIGNsZWFudXBfZG9taWRfbWFwKHBkZXYtPmFyY2gu cHNldWRvX2RvbWlkLCBkcmhkLT5pb21tdSk7Cit9CisKIHN0YXRpYyBpbnQg X19tdXN0X2NoZWNrIGludGVsX2lvbW11X21hcF9wYWdlKHN0cnVjdCBkb21h aW4gKmQsIGRmbl90IGRmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG1mbl90IG1mbiwgdW5zaWduZWQgaW50IGZs YWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50ICpmbHVzaF9mbGFncykKQEAgLTIyMTgsNiAr MjI0NSw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfaW9tbXVfcmVtb3ZlX2Rldmlj ZSh1OAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJtcnItPmVu ZF9hZGRyZXNzLCAwKTsKICAgICB9CiAKKyAgICBxdWFyYW50aW5lX3RlYXJk b3duKHBkZXYsIGRyaGQpOworCiAgICAgaWYgKCBkcmhkICkKICAgICB7CiAg ICAgICAgIGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9t aWQsCkBAIC0yNTc2LDcgKzI2MDUsNyBAQCBzdGF0aWMgaW50IHJlYXNzaWdu X2RldmljZV9vd25lcnNoaXAoCiB7CiAgICAgaW50IHJldDsKIAotICAgIGlm ICggIVFVQVJBTlRJTkVfU0tJUCh0YXJnZXQsIGRvbV9pb21tdSh0YXJnZXQp LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIpICkKKyAgICBpZiAoICFRVUFSQU5USU5F X1NLSVAodGFyZ2V0LCBwZGV2LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIpICkKICAg ICB7CiAgICAgICAgIGlmICggIWhhc19hcmNoX3BkZXZzKHRhcmdldCkgKQog ICAgICAgICAgICAgdm14X3BpX2hvb2tzX2Fzc2lnbih0YXJnZXQpOwpAQCAt MjU5Miw3ICsyNjIxLDcgQEAgc3RhdGljIGludCByZWFzc2lnbl9kZXZpY2Vf b3duZXJzaGlwKAogICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBw aW5nKHRhcmdldCwgZGV2Zm4sIHBkZXYpOwogCiAgICAgICAgIGlmICggIXJl dCAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiAmJgotICAgICAgICAgICAgICFR VUFSQU5USU5FX1NLSVAoc291cmNlLCBkb21faW9tbXUoc291cmNlKS0+YXJj aC52dGQucGdkX21hZGRyKSApCisgICAgICAgICAgICAgIVFVQVJBTlRJTkVf U0tJUChzb3VyY2UsIHBkZXYtPmFyY2gudnRkLnBnZF9tYWRkcikgKQogICAg ICAgICB7CiAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3Vu aXQgKmRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7 CiAKQEAgLTI5MTMsNjkgKzI5NDIsMTM1IEBAIHN0YXRpYyB2b2lkIHZ0ZF9k dW1wX3BhZ2VfdGFibGVzKHN0cnVjdAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYWdhd190b19sZXZlbChoZC0+YXJjaC52dGQuYWdhdyksIDAs IDApOwogfQogCi1zdGF0aWMgaW50IF9faW5pdCBpbnRlbF9pb21tdV9xdWFy YW50aW5lX2luaXQoc3RydWN0IGRvbWFpbiAqZCkKK3N0YXRpYyBpbnQgZmls bF9xcHQoc3RydWN0IGRtYV9wdGUgKnRoaXMsIHVuc2lnbmVkIGludCBsZXZl bCwKKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdz WzZdKQogewotICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGQpOworICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lv bW11KGRvbV9pbyk7CisgICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJj ID0gMDsKKworICAgIGZvciAoIGkgPSAwOyAhcmMgJiYgaSA8IFBURV9OVU07 ICsraSApCisgICAgeworICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcHRlID0g JnRoaXNbaV0sICpuZXh0OworCisgICAgICAgIGlmICggIWRtYV9wdGVfcHJl c2VudCgqcHRlKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggIXBn c1tsZXZlbF0gKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIC8q CisgICAgICAgICAgICAgICAgICogVGhlIHBndGFibGUgYWxsb2NhdG9yIGlz IGZpbmUgZm9yIHRoZSBsZWFmIHBhZ2UsIGFzIHdlbGwgYXMKKyAgICAgICAg ICAgICAgICAgKiBwYWdlIHRhYmxlIHBhZ2VzLCBhbmQgdGhlIHJlc3VsdGlu ZyBhbGxvY2F0aW9ucyBhcmUgYWx3YXlzCisgICAgICAgICAgICAgICAgICog emVyb2VkLgorICAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAg IHBnc1tsZXZlbF0gPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKKyAgICAg ICAgICAgICAgICBpZiAoICFwZ3NbbGV2ZWxdICkKKyAgICAgICAgICAgICAg ICB7CisgICAgICAgICAgICAgICAgICAgIHJjID0gLUVOT01FTTsKKyAgICAg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorCisg ICAgICAgICAgICAgICAgaWYgKCBsZXZlbCApCisgICAgICAgICAgICAgICAg eworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gbWFwX3Z0ZF9kb21haW5f cGFnZShwYWdlX3RvX21hZGRyKHBnc1tsZXZlbF0pKTsKKyAgICAgICAgICAg ICAgICAgICAgcmMgPSBmaWxsX3FwdChuZXh0LCBsZXZlbCAtIDEsIHBncyk7 CisgICAgICAgICAgICAgICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShu ZXh0KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAg ICAgICAgICAgIGRtYV9zZXRfcHRlX2FkZHIoKnB0ZSwgcGFnZV90b19tYWRk cihwZ3NbbGV2ZWxdKSk7CisgICAgICAgICAgICBkbWFfc2V0X3B0ZV9yZWFk YWJsZSgqcHRlKTsKKyAgICAgICAgICAgIGRtYV9zZXRfcHRlX3dyaXRhYmxl KCpwdGUpOworICAgICAgICB9CisgICAgICAgIGVsc2UgaWYgKCBsZXZlbCAm JiAhZG1hX3B0ZV9zdXBlcnBhZ2UoKnB0ZSkgKQorICAgICAgICB7CisgICAg ICAgICAgICBuZXh0ID0gbWFwX3Z0ZF9kb21haW5fcGFnZShkbWFfcHRlX2Fk ZHIoKnB0ZSkpOworICAgICAgICAgICAgcmMgPSBmaWxsX3FwdChuZXh0LCBs ZXZlbCAtIDEsIHBncyk7CisgICAgICAgICAgICB1bm1hcF92dGRfZG9tYWlu X3BhZ2UobmV4dCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g cmM7Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfaW9tbXVfcXVhcmFudGluZV9p bml0KHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBib29sIHNjcmF0Y2hfcGFnZSkK K3sKKyAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShk b21faW8pOwogICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwotICAgIHN0cnVj dCBkbWFfcHRlICpwYXJlbnQ7CiAgICAgdW5zaWduZWQgaW50IGFnYXcgPSB3 aWR0aF90b19hZ2F3KERFRkFVTFRfRE9NQUlOX0FERFJFU1NfV0lEVEgpOwog ICAgIHVuc2lnbmVkIGludCBsZXZlbCA9IGFnYXdfdG9fbGV2ZWwoYWdhdyk7 Ci0gICAgaW50IHJjID0gMDsKKyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhk X3VuaXQgKmRyaGQ7CisgICAgY29uc3Qgc3RydWN0IGFjcGlfcm1ycl91bml0 ICpybXJyOworICAgIHVuc2lnbmVkIGludCBpLCBiZGY7CisgICAgYm9vbCBy bXJyX2ZvdW5kID0gZmFsc2U7CisgICAgaW50IHJjOwogCi0gICAgc3Bpbl9s b2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworICAgIEFTU0VSVChwY2lk ZXZzX2xvY2tlZCgpKTsKKyAgICBBU1NFUlQoIWhkLT5hcmNoLnZ0ZC5wZ2Rf bWFkZHIpOworICAgIEFTU0VSVChwYWdlX2xpc3RfZW1wdHkoJmhkLT5hcmNo LnBndGFibGVzLmxpc3QpKTsKIAotICAgIGlmICggaGQtPmFyY2gudnRkLnBn ZF9tYWRkciApCisgICAgaWYgKCBwZGV2LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIg KQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7Ci0gICAg ICAgIGdvdG8gb3V0OworICAgICAgICBjbGVhcl9kb21haW5fcGFnZShwZGV2 LT5hcmNoLmxlYWZfbWZuKTsKKyAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog Ci0gICAgcGcgPSBpb21tdV9hbGxvY19wZ3RhYmxlKGhkKTsKKyAgICBkcmhk ID0gYWNwaV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOworICAgIGlm ICggIWRyaGQgKQorICAgICAgICByZXR1cm4gLUVOT0RFVjsKIAotICAgIHJj ID0gLUVOT01FTTsKKyAgICBwZyA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQp OwogICAgIGlmICggIXBnICkKLSAgICAgICAgZ290byBvdXQ7CisgICAgICAg IHJldHVybiAtRU5PTUVNOwogCisgICAgcmMgPSBjb250ZXh0X3NldF9kb21h aW5faWQoTlVMTCwgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsIGRyaGQtPmlv bW11KTsKKworICAgIC8qIFRyYW5zaWVudGx5IGluc3RhbGwgdGhlIHJvb3Qg aW50byBEb21JTywgZm9yIGlvbW11X2lkZW50aXR5X21hcHBpbmcoKS4gKi8K ICAgICBoZC0+YXJjaC52dGQucGdkX21hZGRyID0gcGFnZV90b19tYWRkcihw Zyk7CiAKLSAgICBwYXJlbnQgPSBtYXBfdnRkX2RvbWFpbl9wYWdlKGhkLT5h cmNoLnZ0ZC5wZ2RfbWFkZHIpOwotICAgIHdoaWxlICggbGV2ZWwgKQorICAg IGZvcl9lYWNoX3JtcnJfZGV2aWNlICggcm1yciwgYmRmLCBpICkKICAgICB7 Ci0gICAgICAgIHVpbnQ2NF90IG1hZGRyOwotICAgICAgICB1bnNpZ25lZCBp bnQgb2Zmc2V0OwotCi0gICAgICAgIC8qCi0gICAgICAgICAqIFRoZSBwZ3Rh YmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBwYWdlLCBhcyB3 ZWxsIGFzCi0gICAgICAgICAqIHBhZ2UgdGFibGUgcGFnZXMsIGFuZCB0aGUg cmVzdWx0aW5nIGFsbG9jYXRpb25zIGFyZSBhbHdheXMKLSAgICAgICAgICog emVyb2VkLgotICAgICAgICAgKi8KLSAgICAgICAgcGcgPSBpb21tdV9hbGxv Y19wZ3RhYmxlKGhkKTsKLQotICAgICAgICBpZiAoICFwZyApCi0gICAgICAg ICAgICBnb3RvIG91dDsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAg ICBicmVhazsKIAotICAgICAgICBtYWRkciA9IHBhZ2VfdG9fbWFkZHIocGcp OwotICAgICAgICBmb3IgKCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBQVEVfTlVN OyBvZmZzZXQrKyApCisgICAgICAgIGlmICggcm1yci0+c2VnbWVudCA9PSBw ZGV2LT5zZWcgJiYgYmRmID09IHBkZXYtPnNiZGYuYmRmICkKICAgICAgICAg ewotICAgICAgICAgICAgc3RydWN0IGRtYV9wdGUgKnB0ZSA9ICZwYXJlbnRb b2Zmc2V0XTsKKyAgICAgICAgICAgIHJtcnJfZm91bmQgPSB0cnVlOwogCi0g ICAgICAgICAgICBkbWFfc2V0X3B0ZV9hZGRyKCpwdGUsIG1hZGRyKTsKLSAg ICAgICAgICAgIGRtYV9zZXRfcHRlX3JlYWRhYmxlKCpwdGUpOworICAgICAg ICAgICAgcmMgPSBpb21tdV9pZGVudGl0eV9tYXBwaW5nKGRvbV9pbywgcDJt X2FjY2Vzc19ydywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBybXJyLT5iYXNlX2FkZHJlc3MsIHJtcnItPmVuZF9hZGRyZXNz LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAp OworICAgICAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIgVlREUFJFRklYCisgICAgICAgICAgICAgICAgICAg ICAgICIlcHA6IFJNUlIgcXVhcmFudGluZSBtYXBwaW5nIGZhaWxlZFxuIiwK KyAgICAgICAgICAgICAgICAgICAgICAgJnBkZXYtPnNiZGYpOwogICAgICAg ICB9Ci0gICAgICAgIGlvbW11X3N5bmNfY2FjaGUocGFyZW50LCBQQUdFX1NJ WkUpOworICAgIH0KIAotICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2Uo cGFyZW50KTsKLSAgICAgICAgcGFyZW50ID0gbWFwX3Z0ZF9kb21haW5fcGFn ZShtYWRkcik7Ci0gICAgICAgIGxldmVsLS07CisgICAgaW9tbXVfaWRlbnRp dHlfbWFwX3RlYXJkb3duKGRvbV9pbyk7CisgICAgaGQtPmFyY2gudnRkLnBn ZF9tYWRkciA9IDA7CisgICAgcGRldi0+YXJjaC52dGQucGdkX21hZGRyID0g cGFnZV90b19tYWRkcihwZyk7CisKKyAgICBpZiAoICFyYyAmJiBzY3JhdGNo X3BhZ2UgKQorICAgIHsKKyAgICAgICAgc3RydWN0IGRtYV9wdGUgKnJvb3Q7 CisgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnc1s2XSA9IHt9OworCisg ICAgICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKKwor ICAgICAgICByb290ID0gbWFwX3Z0ZF9kb21haW5fcGFnZShwZGV2LT5hcmNo LnZ0ZC5wZ2RfbWFkZHIpOworICAgICAgICByYyA9IGZpbGxfcXB0KHJvb3Qs IGxldmVsIC0gMSwgcGdzKTsKKyAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9w YWdlKHJvb3QpOworCisgICAgICAgIHBkZXYtPmFyY2gubGVhZl9tZm4gPSBw YWdlX3RvX21mbihwZ3NbMF0pOworCisgICAgICAgIHNwaW5fdW5sb2NrKCZo ZC0+YXJjaC5tYXBwaW5nX2xvY2spOwogICAgIH0KLSAgICB1bm1hcF92dGRf ZG9tYWluX3BhZ2UocGFyZW50KTsKIAotICAgIHJjID0gMDsKKyAgICBwYWdl X2xpc3RfbW92ZSgmcGRldi0+YXJjaC5wZ3RhYmxlc19saXN0LCAmaGQtPmFy Y2gucGd0YWJsZXMubGlzdCk7CiAKLSBvdXQ6Ci0gICAgc3Bpbl91bmxvY2so JmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CisgICAgaWYgKCByYyB8fCAoIXNj cmF0Y2hfcGFnZSAmJiAhcm1ycl9mb3VuZCkgKQorICAgICAgICBxdWFyYW50 aW5lX3RlYXJkb3duKHBkZXYsIGRyaGQpOwogCi0gICAgLyogUGFnZXMgbWF5 IGJlIGxlYWtlZCBpbiBmYWlsdXJlIGNhc2UgKi8KICAgICByZXR1cm4gcmM7 CiB9CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgK QEAgLTQ4Miw3ICs0ODIsNyBAQCBzdHJ1Y3QgdnRkX2lvbW11IHsKICAgICB1 MzIgbnJfcHRfbGV2ZWxzOwogICAgIHU2NAljYXA7CiAgICAgdTY0CWVjYXA7 Ci0gICAgc3BpbmxvY2tfdCBsb2NrOyAvKiBwcm90ZWN0IGNvbnRleHQsIGRv bWFpbiBpZHMgKi8KKyAgICBzcGlubG9ja190IGxvY2s7IC8qIHByb3RlY3Qg Y29udGV4dCAqLwogICAgIHNwaW5sb2NrX3QgcmVnaXN0ZXJfbG9jazsgLyog cHJvdGVjdCBpb21tdSByZWdpc3RlciBoYW5kbGluZyAqLwogICAgIHU2NCBy b290X21hZGRyOyAvKiByb290IGVudHJ5IG1hY2hpbmUgYWRkcmVzcyAqLwog ICAgIG5vZGVpZF90IG5vZGU7Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi9pb21t dS5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9pb21tdS5oCkBAIC0yMzMsNyAr MjMzLDcgQEAgdHlwZWRlZiBpbnQgaW9tbXVfZ3JkbV90KHhlbl9wZm5fdCBz dGFydAogc3RydWN0IGlvbW11X29wcyB7CiAgICAgaW50ICgqaW5pdCkoc3Ry dWN0IGRvbWFpbiAqZCk7CiAgICAgdm9pZCAoKmh3ZG9tX2luaXQpKHN0cnVj dCBkb21haW4gKmQpOwotICAgIGludCAoKnF1YXJhbnRpbmVfaW5pdCkoc3Ry dWN0IGRvbWFpbiAqZCk7CisgICAgaW50ICgqcXVhcmFudGluZV9pbml0KShk ZXZpY2VfdCAqZGV2LCBib29sIHNjcmF0Y2hfcGFnZSk7CiAgICAgaW50ICgq YWRkX2RldmljZSkodTggZGV2Zm4sIGRldmljZV90ICpkZXYpOwogICAgIGlu dCAoKmVuYWJsZV9kZXZpY2UpKGRldmljZV90ICpkZXYpOwogICAgIGludCAo KnJlbW92ZV9kZXZpY2UpKHU4IGRldmZuLCBkZXZpY2VfdCAqZGV2KTsKQEAg LTM1MCw2ICszNTAsNyBAQCBpbnQgX19tdXN0X2NoZWNrIGlvbW11X3N1c3Bl bmQodm9pZCk7CiB2b2lkIGlvbW11X3Jlc3VtZSh2b2lkKTsKIHZvaWQgaW9t bXVfY3Jhc2hfc2h1dGRvd24odm9pZCk7CiBpbnQgaW9tbXVfZ2V0X3Jlc2Vy dmVkX2RldmljZV9tZW1vcnkoaW9tbXVfZ3JkbV90ICosIHZvaWQgKik7Citp bnQgaW9tbXVfcXVhcmFudGluZV9kZXZfaW5pdChkZXZpY2VfdCAqZGV2KTsK IAogI2lmZGVmIENPTkZJR19IQVNfUENJCiBpbnQgaW9tbXVfZG9fcGNpX2Rv bWN0bChzdHJ1Y3QgeGVuX2RvbWN0bCAqLCBzdHJ1Y3QgZG9tYWluICpkLAo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-04.patch" Content-Disposition: attachment; filename="xsa400/xsa400-04.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBkcm9wIG93bmVyc2hpcCBjaGVja2luZyBmcm9tIGRvbWFpbl9j b250ZXh0X21hcHBpbmdfb25lKCkKCkRlc3BpdGUgcHV0dGluZyBpbiBxdWl0 ZSBhIGJpdCBvZiBlZmZvcnQgaXQgd2FzIG5vdCBwb3NzaWJsZSB0bwplc3Rh Ymxpc2ggd2h5IGV4YWN0bHkgdGhpcyBjb2RlIGV4aXN0cyAoYmV5b25kIHBv c3NpYmx5IHNhbml0eQpjaGVja2luZykuIEluc3RlYWQgb2YgYSBzdWJzZXF1 ZW50IGNoYW5nZSBmdXJ0aGVyIGNvbXBsaWNhdGluZyB0aGlzCmxvZ2ljLCBz aW1wbHkgZ2V0IHJpZCBvZiBpdC4KClRha2UgdGhlIG9wcG9ydHVuaXR5IGFu ZCBtb3ZlIHRoZSByZXNwZWN0aXZlIHVubWFwX3Z0ZF9kb21haW5fcGFnZSgp IG91dApvZiB0aGUgbG9ja2VkIHJlZ2lvbi4KClNpZ25lZC1vZmYtYnk6IEph biBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpSZXZpZXdl ZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ClJldmlld2VkLWJ5 OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNvbT4KLS0tCnY0OiBO ZXcuCgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpA QCAtMTQyLDI4ICsxNDIsNiBAQCBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2Rv bWFpbl9pZChzdHJ1Y3QKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIGlu dCBjb250ZXh0X2dldF9kb21haW5faWQoY29uc3Qgc3RydWN0IGNvbnRleHRf ZW50cnkgKmNvbnRleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKLXsKLSAgICBp bnQgZG9taWQgPSAtMTsKLQotICAgIGlmICggaW9tbXUgJiYgY29udGV4dCAp Ci0gICAgewotICAgICAgICB1bnNpZ25lZCBpbnQgZG9tX2luZGV4ID0gY29u dGV4dF9kb21haW5faWQoKmNvbnRleHQpOwotCi0gICAgICAgIGRvbWlkID0g ZGlkX3RvX2RvbWFpbl9pZChpb21tdSwgZG9tX2luZGV4KTsKLSAgICAgICAg aWYgKCBkb21pZCA9PSBET01JRF9JTlZBTElEICkKLSAgICAgICAgewotICAg ICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcgVlREUFJFRklYLAotICAg ICAgICAgICAgICAgICAgICAibm8gZG9taWQgZm9yIGRpZCAldSAobnJfZG9t ICV1KVxuIiwKLSAgICAgICAgICAgICAgICAgICAgZG9tX2luZGV4LCBjYXBf bmRvbXMoaW9tbXUtPmNhcCkpOwotICAgICAgICAgICAgZG9taWQgPSAtMTsK LSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBkb21pZDsKLX0KLQog c3RhdGljIHZvaWQgY2xlYW51cF9kb21pZF9tYXAoc3RydWN0IGRvbWFpbiAq ZG9tYWluLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKIHsKICAgICBpbnQg aW9tbXVfZG9taWQ7CkBAIC0xNDEwLDQ0ICsxMzg4LDkgQEAgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmdfb25lKAogCiAgICAgaWYgKCBjb250ZXh0X3By ZXNlbnQoKmNvbnRleHQpICkKICAgICB7Ci0gICAgICAgIGludCByZXMgPSAw OwotCi0gICAgICAgIC8qIFRyeSB0byBnZXQgZG9tYWluIG93bmVyc2hpcCBm cm9tIGRldmljZSBzdHJ1Y3R1cmUuICBJZiB0aGF0J3MKLSAgICAgICAgICog bm90IGF2YWlsYWJsZSwgdHJ5IHRvIHJlYWQgaXQgZnJvbSB0aGUgY29udGV4 dCBpdHNlbGYuICovCi0gICAgICAgIGlmICggcGRldiApCi0gICAgICAgIHsK LSAgICAgICAgICAgIGlmICggcGRldi0+ZG9tYWluICE9IGRvbWFpbiApCi0g ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19H X0lORk8gVlREUFJFRklYICIlcGQ6ICVwcCBvd25lZCBieSAlcGQiLAotICAg ICAgICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBi dXMsIGRldmZuKSwKLSAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9t YWluKTsKLSAgICAgICAgICAgICAgICByZXMgPSAtRUlOVkFMOwotICAgICAg ICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGVsc2UKLSAgICAgICAgewot ICAgICAgICAgICAgaW50IGNkb21haW47Ci0gICAgICAgICAgICBjZG9tYWlu ID0gY29udGV4dF9nZXRfZG9tYWluX2lkKGNvbnRleHQsIGlvbW11KTsKLSAg ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCBjZG9tYWluIDwgMCApCi0g ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxPR19H X1dBUk5JTkcgVlREUFJFRklYCi0gICAgICAgICAgICAgICAgICAgICAgICIl cGQ6ICVwcCBtYXBwZWQsIGJ1dCBjYW4ndCBmaW5kIG93bmVyXG4iLAotICAg ICAgICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBi dXMsIGRldmZuKSk7Ci0gICAgICAgICAgICAgICAgcmVzID0gLUVJTlZBTDsK LSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UgaWYgKCBjZG9tYWlu ICE9IGRvbWFpbi0+ZG9tYWluX2lkICkKLSAgICAgICAgICAgIHsKLSAgICAg ICAgICAgICAgICBwcmludGsoWEVOTE9HX0dfSU5GTyBWVERQUkVGSVgKLSAg ICAgICAgICAgICAgICAgICAgICAgIiVwZDogJXBwIGFscmVhZHkgbWFwcGVk IHRvIGQlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBD SV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pLCBjZG9tYWluKTsKLSAgICAgICAg ICAgICAgICByZXMgPSAtRUlOVkFMOwotICAgICAgICAgICAgfQotICAgICAg ICB9Ci0KLSAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNvbnRleHRf ZW50cmllcyk7CiAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7 Ci0gICAgICAgIHJldHVybiByZXM7CisgICAgICAgIHVubWFwX3Z0ZF9kb21h aW5fcGFnZShjb250ZXh0X2VudHJpZXMpOworICAgICAgICByZXR1cm4gMDsK ICAgICB9CiAKICAgICBpZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYm IGlzX2hhcmR3YXJlX2RvbWFpbihkb21haW4pICkK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-05.patch" Content-Disposition: attachment; filename="xsa400/xsa400-05.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiByZS1hc3NpZ24gZGV2aWNlcyBkaXJlY3RseQoKRGV2aWNlcyB3 aXRoIFJNUlJzLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQgaG93L3do ZW4gdGhlIHNwZWNpZmllZAptZW1vcnkgcmVnaW9ucyBtYXkgZ2V0IGFjY2Vz c2VkLCBtYXkgbm90IGJlIGxlZnQgZGlzY29ubmVjdGVkIGZyb20gdGhlaXIK cmVzcGVjdGl2ZSBtYXBwaW5ncyAoYXMgbG9uZyBhcyBpdCdzIG5vdCBjZXJ0 YWluIHRoYXQgdGhlIGRldmljZSBoYXMKYmVlbiBmdWxseSBxdWllc2NlZCku IEhlbmNlIHJhdGhlciB0aGFuIHVubWFwcGluZyB0aGUgb2xkIGNvbnRleHQg YW5kCnRoZW4gbWFwcGluZyB0aGUgbmV3IG9uZSwgcmUtYXNzaWdubWVudCBu ZWVkcyB0byBiZSBkb25lIGluIGEgc2luZ2xlCnN0ZXAuCgpUaGlzIGlzIENW RS0yMDIyLTI2MzU5IC8gcGFydCBvZiBYU0EtNDAwLgoKUmVwb3J0ZWQtYnk6 IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgoKU2lt aWxhcmx5IHF1YXJhbnRpbmluZyBzY3JhdGNoLXBhZ2UgbW9kZSByZWxpZXMg b24gcGFnZSB0YWJsZXMgdG8gYmUKY29udGludW91c2x5IHdpcmVkIHVwLgoK VG8gYXZvaWQgY29tcGxpY2F0aW5nIHRoaW5ncyBtb3JlIHRoYW4gbmVjZXNz YXJ5LCB0cmVhdCBhbGwgZGV2aWNlcwptb3N0bHkgZXF1YWxseSwgaS5lLiBy ZWdhcmRsZXNzIG9mIHRoZWlyIGFzc29jaWF0aW9uIHdpdGggYW55IFJNUlJz LiBUaGUKbWFpbiBkaWZmZXJlbmNlIGlzIHdoZW4gaXQgY29tZXMgdG8gdXBk YXRpbmcgY29udGV4dCBlbnRyaWVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21p YyB3aGVuIHRoZXJlIGFyZSBSTVJScy4gWWV0IGF0b21pY2l0eSBjYW4gb25s eSBiZSBhY2hpZXZlZAp3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBv ZiB3aGljaCB3ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClRoZSBzZWVtaW5n bHkgY29tcGxpY2F0ZWQgY2hvaWNlIG9mIG5vbi1uZWdhdGl2ZSByZXR1cm4g dmFsdWVzIGZvcgpkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgpIGlzIHRv IGxpbWl0IGNvZGUgY2h1cm46IFRoaXMgd2F5IGNhbGxlcnMKcGFzc2luZyBO VUxMIGZvciBwZGV2IGRvbid0IG5lZWQgZmlkZGxpbmcgd2l0aC4KClNpZ25l ZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2 aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5AaW50ZWwuY29tPgpS ZXZpZXdlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJp eC5jb20+Ci0tLQp2NzogUmUtYmFzZS4KdjY6IEFsc28gaW5jbHVkZSBkZXZp Y2VzIHdpdGggcGhhbnRvbSBmdW5jdGlvbnMgaW4gdGhlIG5vdC1zaW5nbGUt ZGV2aWNlCiAgICBjaGVjay4gU2hvcnRlbiBCREYgY29tcGFyaXNvbiBpbiBk b21haW5fY29udGV4dF9tYXBwaW5nKCkuCnY1OiBSZWZ1c2UgcmUtYXNzaWdu bWVudCBvZiBQQ0kgZGV2aWNlcyBiZWhpbmQgYSBicmlkZ2UgYW5kIHdpdGgg Uk1SUi4KICAgIFNocmluayBhZGp1c3RtZW50IHRvIGNvbnRleHRfc2V0X2Rv bWFpbl9pZCgpLiBTa2lwIGFjdHVhbCB3cml0ZSBpbgogICAgZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoKSBmb3IgInNhbWUgZG9tYWluIiBjYXNlLiBD b252ZXJ0CiAgICBhc3NlcnRpbmcgb2YgQ1gxNiBzdWNjZXNzIHRvIGVycm9y IHJldHVybi4gUHJlZmVyCiAgICBhbnlfcGRldl9iZWhpbmRfaW9tbXUoKSBv dmVyIGxpc3Rfe2ZpcnN0LGxhc3R9X2VudHJ5X29yX251bGwoKS4KICAgIFJl ZmluZSB3YXJuaW5nIG1lc3NhZ2UgdGV4dCBhbmQgdXNlIFBDSV9TQkRGMygp IHRoZXJlLiBVc2UgY29ycmVjdAogICAgZG9tYWluIHRvIGRlY2lkZSB3aGV0 aGVyIHRvIHdhcm4uIE1vdmUgI2RlZmluZS1zIHRvIHZ0ZC5oLgp2NDogVXNl IGF0b21pYyBjb250ZXh0IGVudHJ5IHVwZGF0ZXMgd2hlbiBwb3NzaWJsZS4g UmUtYmFzZSBvdmVyIG5ldwogICAgZWFybGllciBwYXRjaC4KdjM6IFVubWFw IG9uIGVycm9yIHdoZW4gdGhlIGRldmljZSB3YXMgcHJldmlvdXNseSB1bm1h cHBlZC4KdjI6IE5ldy4KCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdo L3Z0ZC9leHRlcm4uaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92 dGQvZXh0ZXJuLmgKQEAgLTgxLDcgKzgxLDggQEAgdm9pZCBmcmVlX3BndGFi bGVfbWFkZHIodTY0IG1hZGRyKTsKIHZvaWQgKm1hcF92dGRfZG9tYWluX3Bh Z2UodTY0IG1hZGRyKTsKIHZvaWQgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNv bnN0IHZvaWQgKnZhKTsKIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29u ZShzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRfaW9tbXUgKmlv bW11LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGJ1cywg dTggZGV2Zm4sIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICopOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRl dmZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBwY2lfZGV2ICpwZGV2LCB1bnNpZ25lZCBpbnQgbW9kZSk7CiBpbnQg ZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKHN0cnVjdCBkb21haW4gKmRvbWFp biwgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHU4IGJ1cywgdTggZGV2Zm4pOwogaW50IGNmX2NoZWNr IGludGVsX2lvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5KApAQCAt MTAzLDggKzEwNCw4IEBAIGJvb2wgaXNfYXphbGlhX3RsYl9lbmFibGVkKGNv bnN0IHN0cnVjdAogdm9pZCBwbGF0Zm9ybV9xdWlya3NfaW5pdCh2b2lkKTsK IHZvaWQgdnRkX29wc19wcmVhbWJsZV9xdWlyayhzdHJ1Y3QgdnRkX2lvbW11 ICppb21tdSk7CiB2b2lkIHZ0ZF9vcHNfcG9zdGFtYmxlX3F1aXJrKHN0cnVj dCB2dGRfaW9tbXUgKmlvbW11KTsKLWludCBfX211c3RfY2hlY2sgbWVfd2lm aV9xdWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdTggYnVzLCB1OCBkZXZmbiwgaW50IG1hcCk7 CitpbnQgX19tdXN0X2NoZWNrIG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFp biAqZG9tYWluLCB1aW50OF90IGJ1cywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1aW50OF90IGRldmZuLCB1bnNpZ25lZCBpbnQgbW9kZSk7 CiB2b2lkIHBjaV92dGRfcXVpcmsoY29uc3Qgc3RydWN0IHBjaV9kZXYgKik7 CiB2b2lkIHF1aXJrX2lvbW11X2NhcHMoc3RydWN0IHZ0ZF9pb21tdSAqaW9t bXUpOwogCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21t dS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9pb21tdS5j CkBAIC0xMzgsNiArMTM4LDcgQEAgc3RhdGljIGludCBjb250ZXh0X3NldF9k b21haW5faWQoc3RydWN0CiAgICAgZWxzZQogICAgICAgICBpID0gY29udmVy dF9kb21pZChpb21tdSwgZC0+ZG9tYWluX2lkKTsKIAorICAgIGNvbnRleHQt PmhpICY9IH4oKCgxIDw8IERJRF9GSUVMRF9XSURUSCkgLSAxKSA8PCBESURf SElHSF9PRkZTRVQpOwogICAgIGNvbnRleHQtPmhpIHw9IChpICYgKCgxIDw8 IERJRF9GSUVMRF9XSURUSCkgLSAxKSkgPDwgRElEX0hJR0hfT0ZGU0VUOwog ICAgIHJldHVybiAwOwogfQpAQCAtMTM2NSwxNSArMTM2NiwyNyBAQCBzdGF0 aWMgdm9pZCBfX2h3ZG9tX2luaXQgY2ZfY2hlY2sgaW50ZWxfCiAgICAgfQog fQogCisvKgorICogVGhpcyBmdW5jdGlvbiByZXR1cm5zCisgKiAtIGEgbmVn YXRpdmUgZXJybm8gdmFsdWUgdXBvbiBlcnJvciwKKyAqIC0gemVybyB1cG9u IHN1Y2Nlc3Mgd2hlbiBwcmV2aW91c2x5IHRoZSBlbnRyeSB3YXMgbm9uLXBy ZXNlbnQsIG9yIHRoaXMgaXNuJ3QKKyAqICAgdGhlICJtYWluIiByZXF1ZXN0 IGZvciBhIGRldmljZSAocGRldiA9PSBOVUxMKSwgb3IgZm9yIG5vLW9wIHF1 YXJhbnRpbmluZworICogICBhc3NpZ25tZW50cywKKyAqIC0gcG9zaXRpdmUg KG9uZSkgdXBvbiBzdWNjZXNzIHdoZW4gcHJldmlvdXNseSB0aGUgZW50cnkg d2FzIHByZXNlbnQgYW5kIHRoaXMKKyAqICAgaXMgdGhlICJtYWluIiByZXF1 ZXN0IGZvciBhIGRldmljZSAocGRldiAhPSBOVUxMKS4KKyAqLwogaW50IGRv bWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgIHN0cnVjdCBkb21haW4g KmRvbWFpbiwKICAgICBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSwKLSAgICB1 OCBidXMsIHU4IGRldmZuLCBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldikK KyAgICB1aW50OF90IGJ1cywgdWludDhfdCBkZXZmbiwgY29uc3Qgc3RydWN0 IHBjaV9kZXYgKnBkZXYsCisgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAg ICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tYWlu KTsKLSAgICBzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwgKmNvbnRl eHRfZW50cmllczsKKyAgICBzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4 dCwgKmNvbnRleHRfZW50cmllcywgbGN0eHQ7CisgICAgX191aW50MTI4X3Qg b2xkOwogICAgIHU2NCBtYWRkciwgcGdkX21hZGRyOwotICAgIHUxNiBzZWcg PSBpb21tdS0+ZHJoZC0+c2VnbWVudDsKKyAgICB1aW50MTZfdCBzZWcgPSBp b21tdS0+ZHJoZC0+c2VnbWVudCwgcHJldl9kaWQgPSAwOworICAgIHN0cnVj dCBkb21haW4gKnByZXZfZG9tID0gTlVMTDsKICAgICBpbnQgcmMsIHJldDsK ICAgICBib29sX3QgZmx1c2hfZGV2X2lvdGxiOwogCkBAIC0xMzg1LDE3ICsx Mzk4LDMyIEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAg ICBtYWRkciA9IGJ1c190b19jb250ZXh0X21hZGRyKGlvbW11LCBidXMpOwog ICAgIGNvbnRleHRfZW50cmllcyA9IChzdHJ1Y3QgY29udGV4dF9lbnRyeSAq KW1hcF92dGRfZG9tYWluX3BhZ2UobWFkZHIpOwogICAgIGNvbnRleHQgPSAm Y29udGV4dF9lbnRyaWVzW2RldmZuXTsKKyAgICBvbGQgPSAobGN0eHQgPSAq Y29udGV4dCkuZnVsbDsKIAotICAgIGlmICggY29udGV4dF9wcmVzZW50KCpj b250ZXh0KSApCisgICAgaWYgKCBjb250ZXh0X3ByZXNlbnQobGN0eHQpICkK ICAgICB7Ci0gICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9jayk7Ci0g ICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShjb250ZXh0X2VudHJpZXMp OwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgZG9taWRfdCBkb21pZDsK KworICAgICAgICBwcmV2X2RpZCA9IGNvbnRleHRfZG9tYWluX2lkKGxjdHh0 KTsKKyAgICAgICAgZG9taWQgPSBkaWRfdG9fZG9tYWluX2lkKGlvbW11LCBw cmV2X2RpZCk7CisgICAgICAgIGlmICggZG9taWQgPCBET01JRF9GSVJTVF9S RVNFUlZFRCApCisgICAgICAgICAgICBwcmV2X2RvbSA9IHJjdV9sb2NrX2Rv bWFpbl9ieV9pZChkb21pZCk7CisgICAgICAgIGVsc2UgaWYgKCBkb21pZCA9 PSBET01JRF9JTyApCisgICAgICAgICAgICBwcmV2X2RvbSA9IHJjdV9sb2Nr X2RvbWFpbihkb21faW8pOworICAgICAgICBpZiAoICFwcmV2X2RvbSApCisg ICAgICAgIHsKKyAgICAgICAgICAgIHNwaW5fdW5sb2NrKCZpb21tdS0+bG9j ayk7CisgICAgICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4 dF9lbnRyaWVzKTsKKyAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0RFQlVH IFZURFBSRUZJWCwKKyAgICAgICAgICAgICAgICAgICAgIm5vIGRvbWFpbiBm b3IgZGlkICV1IChucl9kb20gJXUpXG4iLAorICAgICAgICAgICAgICAgICAg ICBwcmV2X2RpZCwgY2FwX25kb21zKGlvbW11LT5jYXApKTsKKyAgICAgICAg ICAgIHJldHVybiAtRVNSQ0g7CisgICAgICAgIH0KICAgICB9CiAKICAgICBp ZiAoIGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYmIGlzX2hhcmR3YXJlX2Rv bWFpbihkb21haW4pICkKICAgICB7Ci0gICAgICAgIGNvbnRleHRfc2V0X3Ry YW5zbGF0aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRfUEFTU19USFJV KTsKKyAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25fdHlwZShsY3R4 dCwgQ09OVEVYVF9UVF9QQVNTX1RIUlUpOwogICAgIH0KICAgICBlbHNlCiAg ICAgewpAQCAtMTQwNywzNyArMTQzNSwxMDggQEAgaW50IGRvbWFpbl9jb250 ZXh0X21hcHBpbmdfb25lKAogICAgICAgICAgICAgc3Bpbl91bmxvY2soJmhk LT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAgICAgICAgICBzcGluX3VubG9j aygmaW9tbXUtPmxvY2spOwogICAgICAgICAgICAgdW5tYXBfdnRkX2RvbWFp bl9wYWdlKGNvbnRleHRfZW50cmllcyk7CisgICAgICAgICAgICBpZiAoIHBy ZXZfZG9tICkKKyAgICAgICAgICAgICAgICByY3VfdW5sb2NrX2RvbWFpbihw cmV2X2RvbSk7CiAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsKICAgICAg ICAgfQogCi0gICAgICAgIGNvbnRleHRfc2V0X2FkZHJlc3Nfcm9vdCgqY29u dGV4dCwgcGdkX21hZGRyKTsKKyAgICAgICAgY29udGV4dF9zZXRfYWRkcmVz c19yb290KGxjdHh0LCBwZ2RfbWFkZHIpOwogICAgICAgICBpZiAoIGF0c19l bmFibGVkICYmIGVjYXBfZGV2X2lvdGxiKGlvbW11LT5lY2FwKSApCi0gICAg ICAgICAgICBjb250ZXh0X3NldF90cmFuc2xhdGlvbl90eXBlKCpjb250ZXh0 LCBDT05URVhUX1RUX0RFVl9JT1RMQik7CisgICAgICAgICAgICBjb250ZXh0 X3NldF90cmFuc2xhdGlvbl90eXBlKGxjdHh0LCBDT05URVhUX1RUX0RFVl9J T1RMQik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbnRleHRfc2V0 X3RyYW5zbGF0aW9uX3R5cGUoKmNvbnRleHQsIENPTlRFWFRfVFRfTVVMVElf TEVWRUwpOworICAgICAgICAgICAgY29udGV4dF9zZXRfdHJhbnNsYXRpb25f dHlwZShsY3R4dCwgQ09OVEVYVF9UVF9NVUxUSV9MRVZFTCk7CiAKICAgICAg ICAgc3Bpbl91bmxvY2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAg fQogCi0gICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5faWQoY29udGV4dCwg ZG9tYWluLCBpb21tdSk7CisgICAgcmMgPSBjb250ZXh0X3NldF9kb21haW5f aWQoJmxjdHh0LCBkb21haW4sIGlvbW11KTsKICAgICBpZiAoIHJjICkKICAg ICB7CisgICAgdW5sb2NrOgogICAgICAgICBzcGluX3VubG9jaygmaW9tbXUt PmxvY2spOwogICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29udGV4 dF9lbnRyaWVzKTsKKyAgICAgICAgaWYgKCBwcmV2X2RvbSApCisgICAgICAg ICAgICByY3VfdW5sb2NrX2RvbWFpbihwcmV2X2RvbSk7CiAgICAgICAgIHJl dHVybiByYzsKICAgICB9CiAKLSAgICBjb250ZXh0X3NldF9hZGRyZXNzX3dp ZHRoKCpjb250ZXh0LCBsZXZlbF90b19hZ2F3KGlvbW11LT5ucl9wdF9sZXZl bHMpKTsKLSAgICBjb250ZXh0X3NldF9mYXVsdF9lbmFibGUoKmNvbnRleHQp OwotICAgIGNvbnRleHRfc2V0X3ByZXNlbnQoKmNvbnRleHQpOworICAgIGlm ICggIXByZXZfZG9tICkKKyAgICB7CisgICAgICAgIGNvbnRleHRfc2V0X2Fk ZHJlc3Nfd2lkdGgobGN0eHQsIGxldmVsX3RvX2FnYXcoaW9tbXUtPm5yX3B0 X2xldmVscykpOworICAgICAgICBjb250ZXh0X3NldF9mYXVsdF9lbmFibGUo bGN0eHQpOworICAgICAgICBjb250ZXh0X3NldF9wcmVzZW50KGxjdHh0KTsK KyAgICB9CisgICAgZWxzZSBpZiAoIHByZXZfZG9tID09IGRvbWFpbiApCisg ICAgeworICAgICAgICBBU1NFUlQobGN0eHQuZnVsbCA9PSBjb250ZXh0LT5m dWxsKTsKKyAgICAgICAgcmMgPSAhIXBkZXY7CisgICAgICAgIGdvdG8gdW5s b2NrOworICAgIH0KKyAgICBlbHNlCisgICAgeworICAgICAgICBBU1NFUlQo Y29udGV4dF9hZGRyZXNzX3dpZHRoKGxjdHh0KSA9PQorICAgICAgICAgICAg ICAgbGV2ZWxfdG9fYWdhdyhpb21tdS0+bnJfcHRfbGV2ZWxzKSk7CisgICAg ICAgIEFTU0VSVCghY29udGV4dF9mYXVsdF9kaXNhYmxlKGxjdHh0KSk7Cisg ICAgfQorCisgICAgaWYgKCBjcHVfaGFzX2N4MTYgKQorICAgIHsKKyAgICAg ICAgX191aW50MTI4X3QgcmVzID0gY21weGNoZzE2Yihjb250ZXh0LCAmb2xk LCAmbGN0eHQuZnVsbCk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSGFy ZHdhcmUgZG9lcyBub3QgdXBkYXRlIHRoZSBjb250ZXh0IGVudHJ5IGJlaGlu ZCBvdXIgYmFja3MsCisgICAgICAgICAqIHNvIHRoZSByZXR1cm4gdmFsdWUg c2hvdWxkIG1hdGNoICJvbGQiLgorICAgICAgICAgKi8KKyAgICAgICAgaWYg KCByZXMgIT0gb2xkICkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCBw ZGV2ICkKKyAgICAgICAgICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21h cChkb21haW4sIHBkZXYsIGlvbW11KTsKKyAgICAgICAgICAgIHByaW50ayhY RU5MT0dfRVJSCisgICAgICAgICAgICAgICAgICAgIiVwcDogdW5leHBlY3Rl ZCBjb250ZXh0IGVudHJ5ICUwMTZseF8lMDE2bHggKGV4cGVjdGVkICUwMTZs eF8lMDE2bHgpXG4iLAorICAgICAgICAgICAgICAgICAgICZQQ0lfU0JERjMo cGRldi0+c2VnLCBwZGV2LT5idXMsIGRldmZuKSwKKyAgICAgICAgICAgICAg ICAgICAodWludDY0X3QpKHJlcyA+PiA2NCksICh1aW50NjRfdClyZXMsCisg ICAgICAgICAgICAgICAgICAgKHVpbnQ2NF90KShvbGQgPj4gNjQpLCAodWlu dDY0X3Qpb2xkKTsKKyAgICAgICAgICAgIHJjID0gLUVJTFNFUTsKKyAgICAg ICAgICAgIGdvdG8gdW5sb2NrOworICAgICAgICB9CisgICAgfQorICAgIGVs c2UgaWYgKCAhcHJldl9kb20gfHwgIShtb2RlICYgTUFQX1dJVEhfUk1SUikg KQorICAgIHsKKyAgICAgICAgY29udGV4dF9jbGVhcl9wcmVzZW50KCpjb250 ZXh0KTsKKyAgICAgICAgaW9tbXVfc3luY19jYWNoZShjb250ZXh0LCBzaXpl b2YoKmNvbnRleHQpKTsKKworICAgICAgICB3cml0ZV9hdG9taWMoJmNvbnRl eHQtPmhpLCBsY3R4dC5oaSk7CisgICAgICAgIC8qIE5vIGJhcnJpZXIgc2hv dWxkIGJlIG5lZWRlZCBiZXR3ZWVuIHRoZXNlIHR3by4gKi8KKyAgICAgICAg d3JpdGVfYXRvbWljKCZjb250ZXh0LT5sbywgbGN0eHQubG8pOworICAgIH0K KyAgICBlbHNlIC8qIEJlc3QgZWZmb3J0LCB1cGRhdGluZyBESUQgbGFzdC4g Ki8KKyAgICB7CisgICAgICAgICAvKgorICAgICAgICAgICogQnkgbm9uLWF0 b21pY2FsbHkgdXBkYXRpbmcgdGhlIGNvbnRleHQgZW50cnkncyBESUQgZmll bGQgbGFzdCwKKyAgICAgICAgICAqIGR1cmluZyBhIHNob3J0IHdpbmRvdyBp biB0aW1lIFRMQiBlbnRyaWVzIHdpdGggdGhlIG9sZCBkb21haW4gSUQKKyAg ICAgICAgICAqIGJ1dCB0aGUgbmV3IHBhZ2UgdGFibGVzIG1heSBiZSBpbnNl cnRlZC4gIFRoaXMgY291bGQgYWZmZWN0IEkvTworICAgICAgICAgICogb2Yg b3RoZXIgZGV2aWNlcyB1c2luZyB0aGlzIHNhbWUgKG9sZCkgZG9tYWluIElE LiAgU3VjaCB1cGRhdGluZworICAgICAgICAgICogdGhlcmVmb3JlIGlzIG5v dCBhIHByb2JsZW0gaWYgdGhpcyB3YXMgdGhlIG9ubHkgZGV2aWNlIGFzc29j aWF0ZWQKKyAgICAgICAgICAqIHdpdGggdGhlIG9sZCBkb21haW4gSUQuICBE aXZlcnRpbmcgSS9PIG9mIGFueSBvZiBhIGR5aW5nIGRvbWFpbidzCisgICAg ICAgICAgKiBkZXZpY2VzIHRvIHRoZSBxdWFyYW50aW5lIHBhZ2UgdGFibGVz IGlzIGludGVuZGVkIGFueXdheS4KKyAgICAgICAgICAqLworICAgICAgICBp ZiAoICEobW9kZSAmIChNQVBfT1dORVJfRFlJTkcgfCBNQVBfU0lOR0xFX0RF VklDRSkpICkKKyAgICAgICAgICAgIHByaW50ayhYRU5MT0dfV0FSTklORyBW VERQUkVGSVgKKyAgICAgICAgICAgICAgICAgICAiICVwcDogcmVhc3NpZ25t ZW50IG1heSBjYXVzZSAlcGQgZGF0YSBjb3JydXB0aW9uXG4iLAorICAgICAg ICAgICAgICAgICAgICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSwgcHJl dl9kb20pOworCisgICAgICAgIHdyaXRlX2F0b21pYygmY29udGV4dC0+bG8s IGxjdHh0LmxvKTsKKyAgICAgICAgLyogTm8gYmFycmllciBzaG91bGQgYmUg bmVlZGVkIGJldHdlZW4gdGhlc2UgdHdvLiAqLworICAgICAgICB3cml0ZV9h dG9taWMoJmNvbnRleHQtPmhpLCBsY3R4dC5oaSk7CisgICAgfQorCiAgICAg aW9tbXVfc3luY19jYWNoZShjb250ZXh0LCBzaXplb2Yoc3RydWN0IGNvbnRl eHRfZW50cnkpKTsKICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxvY2spOwog Ci0gICAgLyogQ29udGV4dCBlbnRyeSB3YXMgcHJldmlvdXNseSBub24tcHJl c2VudCAod2l0aCBkb21pZCAwKS4gKi8KLSAgICByYyA9IGlvbW11X2ZsdXNo X2NvbnRleHRfZGV2aWNlKGlvbW11LCAwLCBQQ0lfQkRGMihidXMsIGRldmZu KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERNQV9D Q01EX01BU0tfTk9CSVQsIDEpOworICAgIHJjID0gaW9tbXVfZmx1c2hfY29u dGV4dF9kZXZpY2UoaW9tbXUsIHByZXZfZGlkLCBQQ0lfQkRGMihidXMsIGRl dmZuKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERN QV9DQ01EX01BU0tfTk9CSVQsICFwcmV2X2RvbSk7CiAgICAgZmx1c2hfZGV2 X2lvdGxiID0gISFmaW5kX2F0c19kZXZfZHJoZChpb21tdSk7Ci0gICAgcmV0 ID0gaW9tbXVfZmx1c2hfaW90bGJfZHNpKGlvbW11LCAwLCAxLCBmbHVzaF9k ZXZfaW90bGIpOworICAgIHJldCA9IGlvbW11X2ZsdXNoX2lvdGxiX2RzaShp b21tdSwgcHJldl9kaWQsICFwcmV2X2RvbSwgZmx1c2hfZGV2X2lvdGxiKTsK IAogICAgIC8qCiAgICAgICogVGhlIGN1cnJlbnQgbG9naWMgZm9yIHJldHVy bnM6CkBAIC0xNDU4LDE3ICsxNTU3LDI2IEBAIGludCBkb21haW5fY29udGV4 dF9tYXBwaW5nX29uZSgKICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29u dGV4dF9lbnRyaWVzKTsKIAogICAgIGlmICggIXNlZyAmJiAhcmMgKQotICAg ICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBN QVBfTUVfUEhBTlRPTV9GVU5DKTsKKyAgICAgICAgcmMgPSBtZV93aWZpX3F1 aXJrKGRvbWFpbiwgYnVzLCBkZXZmbiwgbW9kZSk7CiAKICAgICBpZiAoIHJj ICkKICAgICB7Ci0gICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFw X29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuKTsKKyAgICAgICAgaWYg KCAhcHJldl9kb20gKQorICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAg ICAgICBlbHNlIGlmICggcHJldl9kb20gIT0gZG9tYWluICkgLyogQXZvaWQg aW5maW5pdGUgcmVjdXJzaW9uLiAqLworICAgICAgICAgICAgcmV0ID0gZG9t YWluX2NvbnRleHRfbWFwcGluZ19vbmUocHJldl9kb20sIGlvbW11LCBidXMs IGRldmZuLCBwZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbW9kZSAmIE1BUF9XSVRIX1JNUlIpIDwgMDsKKyAg ICAgICAgZWxzZQorICAgICAgICAgICAgcmV0ID0gMTsKIAogICAgICAgICBp ZiAoICFyZXQgJiYgcGRldiAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiApCiAg ICAgICAgICAgICBjaGVja19jbGVhbnVwX2RvbWlkX21hcChkb21haW4sIHBk ZXYsIGlvbW11KTsKICAgICB9CiAKLSAgICByZXR1cm4gcmM7CisgICAgaWYg KCBwcmV2X2RvbSApCisgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKHByZXZf ZG9tKTsKKworICAgIHJldHVybiByYyA/OiBwZGV2ICYmIHByZXZfZG9tOwog fQogCiBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBk b21haW4gKmQsIHVpbnQ4X3QgZGV2Zm4sCkBAIC0xNDc4LDggKzE1ODYsMTAg QEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBwY2lf ZGV2ICpwZGV2KQogewogICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5p dCAqZHJoZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5pdChwZGV2KTsK KyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CiAgICAg aW50IHJldCA9IDA7Ci0gICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2VnOwor ICAgIHVuc2lnbmVkIGludCBpLCBtb2RlID0gMDsKKyAgICB1aW50MTZfdCBz ZWcgPSBwZGV2LT5zZWcsIGJkZjsKICAgICB1aW50OF90IGJ1cyA9IHBkZXYt PmJ1cywgc2VjYnVzOwogCiAgICAgLyoKQEAgLTE0OTUsOCArMTYwNSwyOSBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAK ICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAKKyAgICBmb3JfZWFj aF9ybXJyX2RldmljZSggcm1yciwgYmRmLCBpICkKKyAgICB7CisgICAgICAg IGlmICggcm1yci0+c2VnbWVudCAhPSBwZGV2LT5zZWcgfHwgYmRmICE9IHBk ZXYtPnNiZGYuYmRmICkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg ICAgIG1vZGUgfD0gTUFQX1dJVEhfUk1SUjsKKyAgICAgICAgYnJlYWs7Cisg ICAgfQorCisgICAgaWYgKCBkb21haW4gIT0gcGRldi0+ZG9tYWluICkKKyAg ICB7CisgICAgICAgIGlmICggcGRldi0+ZG9tYWluLT5pc19keWluZyApCisg ICAgICAgICAgICBtb2RlIHw9IE1BUF9PV05FUl9EWUlORzsKKyAgICAgICAg ZWxzZSBpZiAoIGRyaGQgJiYKKyAgICAgICAgICAgICAgICAgICFhbnlfcGRl dl9iZWhpbmRfaW9tbXUocGRldi0+ZG9tYWluLCBwZGV2LCBkcmhkLT5pb21t dSkgJiYKKyAgICAgICAgICAgICAgICAgICFwZGV2LT5waGFudG9tX3N0cmlk ZSApCisgICAgICAgICAgICBtb2RlIHw9IE1BUF9TSU5HTEVfREVWSUNFOwor ICAgIH0KKwogICAgIHN3aXRjaCAoIHBkZXYtPnR5cGUgKQogICAgIHsKKyAg ICAgICAgYm9vbCBwcmV2X3ByZXNlbnQ7CisKICAgICBjYXNlIERFVl9UWVBF X1BDSV9IT1NUX0JSSURHRToKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyAp CiAgICAgICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6SG9zdGJyaWRn ZTogc2tpcCAlcHAgbWFwXG4iLApAQCAtMTUxOCw3ICsxNjQ5LDkgQEAgc3Rh dGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0cnVjdAogICAgICAg ICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOlBDSWU6IG1hcCAlcHBcbiIs CiAgICAgICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywg YnVzLCBkZXZmbikpOwogICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF9t YXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBidXMsIGRldmZuLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZGV2 KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cGRldiwgbW9kZSk7CisgICAgICAgIGlmICggcmV0ID4gMCApCisgICAgICAg ICAgICByZXQgPSAwOwogICAgICAgICBpZiAoICFyZXQgJiYgZGV2Zm4gPT0g cGRldi0+ZGV2Zm4gJiYgYXRzX2RldmljZShwZGV2LCBkcmhkKSA+IDAgKQog ICAgICAgICAgICAgZW5hYmxlX2F0c19kZXZpY2UocGRldiwgJmRyaGQtPmlv bW11LT5hdHNfZGV2aWNlcyk7CiAKQEAgLTE1MzMsOSArMTY2NiwxMCBAQCBz dGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAg ICAgICAgICAgICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBk ZXZmbikpOwogCiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYpOwot ICAgICAgICBpZiAoIHJldCApCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBkZXYsIG1vZGUpOworICAgICAgICBpZiAoIHJl dCA8IDAgKQogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHByZXZfcHJl c2VudCA9IHJldDsKIAogICAgICAgICBpZiAoIChyZXQgPSBmaW5kX3Vwc3Ry ZWFtX2JyaWRnZShzZWcsICZidXMsICZkZXZmbiwgJnNlY2J1cykpIDwgMSAp CiAgICAgICAgIHsKQEAgLTE1NDMsNiArMTY3NywxNSBAQCBzdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICByZXQgPSAtRU5YSU87CiAgICAgICAg IH0KKyAgICAgICAgLyoKKyAgICAgICAgICogU3RyaWN0bHkgc3BlYWtpbmcg aWYgdGhlIGRldmljZSBpcyB0aGUgb25seSBvbmUgYmVoaW5kIHRoaXMgYnJp ZGdlCisgICAgICAgICAqIGFuZCB0aGUgb25seSBvbmUgd2l0aCB0aGlzIChz ZWNidXMsMCwwKSB0dXBsZSwgaXQgY291bGQgYmUgYWxsb3dlZAorICAgICAg ICAgKiB0byBiZSByZS1hc3NpZ25lZCByZWdhcmRsZXNzIG9mIFJNUlIgcHJl c2VuY2UuICBCdXQgbGV0J3MgZGVhbCB3aXRoCisgICAgICAgICAqIHRoYXQg Y2FzZSBvbmx5IGlmIGl0IGlzIGFjdHVhbGx5IGZvdW5kIGluIHRoZSB3aWxk LgorICAgICAgICAgKi8KKyAgICAgICAgZWxzZSBpZiAoIHByZXZfcHJlc2Vu dCAmJiAobW9kZSAmIE1BUF9XSVRIX1JNUlIpICYmCisgICAgICAgICAgICAg ICAgICBkb21haW4gIT0gcGRldi0+ZG9tYWluICkKKyAgICAgICAgICAgIHJl dCA9IC1FT1BOT1RTVVBQOwogCiAgICAgICAgIC8qCiAgICAgICAgICAqIE1h cHBpbmcgYSBicmlkZ2Ugc2hvdWxkLCBpZiBhbnl0aGluZywgcGFzcyB0aGUg c3RydWN0IHBjaV9kZXYgb2YKQEAgLTE1NTEsNyArMTY5NCw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAg ICovCiAgICAgICAgIGlmICggcmV0ID49IDAgKQogICAgICAgICAgICAgcmV0 ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5p b21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwpOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgbW9kZSk7CiAKICAg ICAgICAgLyoKICAgICAgICAgICogRGV2aWNlcyBiZWhpbmQgUENJZS10by1Q Q0kvUENJeCBicmlkZ2UgbWF5IGdlbmVyYXRlIGRpZmZlcmVudApAQCAtMTU2 NiwxMCArMTcwOSwxNSBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X21h cHBpbmcoc3RydWN0CiAgICAgICAgIGlmICggIXJldCAmJiBwZGV2X3R5cGUo c2VnLCBidXMsIGRldmZuKSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0Ug JiYKICAgICAgICAgICAgICAoc2VjYnVzICE9IHBkZXYtPmJ1cyB8fCBwZGV2 LT5kZXZmbiAhPSAwKSApCiAgICAgICAgICAgICByZXQgPSBkb21haW5fY29u dGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlvbW11LCBzZWNidXMs IDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsIG1vZGUpOwogCiAgICAgICAgIGlmICggcmV0 ICkKLSAgICAgICAgICAgIGRvbWFpbl9jb250ZXh0X3VubWFwKGRvbWFpbiwg ZGV2Zm4sIHBkZXYpOworICAgICAgICB7CisgICAgICAgICAgICBpZiAoICFw cmV2X3ByZXNlbnQgKQorICAgICAgICAgICAgICAgIGRvbWFpbl9jb250ZXh0 X3VubWFwKGRvbWFpbiwgZGV2Zm4sIHBkZXYpOworICAgICAgICAgICAgZWxz ZSBpZiAoIHBkZXYtPmRvbWFpbiAhPSBkb21haW4gKSAvKiBBdm9pZCBpbmZp bml0ZSByZWN1cnNpb24uICovCisgICAgICAgICAgICAgICAgZG9tYWluX2Nv bnRleHRfbWFwcGluZyhwZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKKyAg ICAgICAgfQogCiAgICAgICAgIGJyZWFrOwogCkBAIC0yMzU4LDkgKzI1MDYs NDcgQEAgc3RhdGljIGludCBjZl9jaGVjayByZWFzc2lnbl9kZXZpY2Vfb3du ZQogewogICAgIGludCByZXQ7CiAKLSAgICByZXQgPSBkb21haW5fY29udGV4 dF91bm1hcChzb3VyY2UsIGRldmZuLCBwZGV2KTsKKyAgICBpZiAoICFRVUFS QU5USU5FX1NLSVAodGFyZ2V0KSApCisgICAgeworICAgICAgICBpZiAoICFo YXNfYXJjaF9wZGV2cyh0YXJnZXQpICkKKyAgICAgICAgICAgIHZteF9waV9o b29rc19hc3NpZ24odGFyZ2V0KTsKKworICAgICAgICAvKgorICAgICAgICAg KiBEZXZpY2VzIGFzc2lnbmVkIHRvIHVudHJ1c3RlZCBkb21haW5zIChoZXJl IGFzc3VtZWQgdG8gYmUgYW55IGRvbVUpCisgICAgICAgICAqIGNhbiBhdHRl bXB0IHRvIHNlbmQgYXJiaXRyYXJ5IExBUElDL01TSSBtZXNzYWdlcy4gV2Ug YXJlIHVucHJvdGVjdGVkCisgICAgICAgICAqIGJ5IHRoZSByb290IGNvbXBs ZXggdW5sZXNzIGludGVycnVwdCByZW1hcHBpbmcgaXMgZW5hYmxlZC4KKyAg ICAgICAgICovCisgICAgICAgIGlmICggIWlvbW11X2ludHJlbWFwICYmICFp c19oYXJkd2FyZV9kb21haW4odGFyZ2V0KSAmJgorICAgICAgICAgICAgICFp c19zeXN0ZW1fZG9tYWluKHRhcmdldCkgKQorICAgICAgICAgICAgdW50cnVz dGVkX21zaSA9IHRydWU7CisKKyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfbWFwcGluZyh0YXJnZXQsIGRldmZuLCBwZGV2KTsKKworICAgICAgICBp ZiAoICFyZXQgJiYgIVFVQVJBTlRJTkVfU0tJUChzb3VyY2UpICYmIHBkZXYt PmRldmZuID09IGRldmZuICkKKyAgICAgICAgeworICAgICAgICAgICAgY29u c3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkID0gYWNwaV9maW5kX21h dGNoZWRfZHJoZF91bml0KHBkZXYpOworCisgICAgICAgICAgICBpZiAoIGRy aGQgKQorICAgICAgICAgICAgICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFw KHNvdXJjZSwgcGRldiwgZHJoZC0+aW9tbXUpOworICAgICAgICB9CisgICAg fQorICAgIGVsc2UKKyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5t YXAoc291cmNlLCBkZXZmbiwgcGRldik7CiAgICAgaWYgKCByZXQgKQorICAg IHsKKyAgICAgICAgaWYgKCAhaGFzX2FyY2hfcGRldnModGFyZ2V0KSApCisg ICAgICAgICAgICB2bXhfcGlfaG9va3NfZGVhc3NpZ24odGFyZ2V0KTsKICAg ICAgICAgcmV0dXJuIHJldDsKKyAgICB9CisKKyAgICBpZiAoIGRldmZuID09 IHBkZXYtPmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSB0YXJnZXQgKQorICAg IHsKKyAgICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5fbGlzdCwgJnRh cmdldC0+cGRldl9saXN0KTsKKyAgICAgICAgcGRldi0+ZG9tYWluID0gdGFy Z2V0OworICAgIH0KKworICAgIGlmICggIWhhc19hcmNoX3BkZXZzKHNvdXJj ZSkgKQorICAgICAgICB2bXhfcGlfaG9va3NfZGVhc3NpZ24oc291cmNlKTsK IAogICAgIC8qCiAgICAgICogSWYgdGhlIGRldmljZSBiZWxvbmdzIHRvIHRo ZSBoYXJkd2FyZSBkb21haW4sIGFuZCBpdCBoYXMgUk1SUiwgZG9uJ3QKQEAg LTIzOTAsNDMgKzI1NzYsNyBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIHJlYXNz aWduX2RldmljZV9vd25lCiAgICAgICAgICAgICB9CiAgICAgfQogCi0gICAg aWYgKCBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBwZGV2LT5kb21haW4gIT0g ZG9tX2lvICkKLSAgICB7Ci0gICAgICAgIGxpc3RfbW92ZSgmcGRldi0+ZG9t YWluX2xpc3QsICZkb21faW8tPnBkZXZfbGlzdCk7Ci0gICAgICAgIHBkZXYt PmRvbWFpbiA9IGRvbV9pbzsKLSAgICB9Ci0KLSAgICBpZiAoICFoYXNfYXJj aF9wZGV2cyhzb3VyY2UpICkKLSAgICAgICAgdm14X3BpX2hvb2tzX2RlYXNz aWduKHNvdXJjZSk7Ci0KLSAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0YXJn ZXQpICkKLSAgICAgICAgdm14X3BpX2hvb2tzX2Fzc2lnbih0YXJnZXQpOwot Ci0gICAgLyoKLSAgICAgKiBEZXZpY2VzIGFzc2lnbmVkIHRvIHVudHJ1c3Rl ZCBkb21haW5zIChoZXJlIGFzc3VtZWQgdG8gYmUgYW55IGRvbVUpCi0gICAg ICogY2FuIGF0dGVtcHQgdG8gc2VuZCBhcmJpdHJhcnkgTEFQSUMvTVNJIG1l c3NhZ2VzLiBXZSBhcmUgdW5wcm90ZWN0ZWQKLSAgICAgKiBieSB0aGUgcm9v dCBjb21wbGV4IHVubGVzcyBpbnRlcnJ1cHQgcmVtYXBwaW5nIGlzIGVuYWJs ZWQuCi0gICAgICovCi0gICAgaWYgKCAhaW9tbXVfaW50cmVtYXAgJiYgIWlz X2hhcmR3YXJlX2RvbWFpbih0YXJnZXQpICYmCi0gICAgICAgICAhaXNfc3lz dGVtX2RvbWFpbih0YXJnZXQpICkKLSAgICAgICAgdW50cnVzdGVkX21zaSA9 IHRydWU7Ci0KLSAgICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nKHRh cmdldCwgZGV2Zm4sIHBkZXYpOwotICAgIGlmICggcmV0ICkKLSAgICB7Ci0g ICAgICAgIGlmICggIWhhc19hcmNoX3BkZXZzKHRhcmdldCkgKQotICAgICAg ICAgICAgdm14X3BpX2hvb2tzX2RlYXNzaWduKHRhcmdldCk7Ci0KLSAgICAg ICAgcmV0dXJuIHJldDsKLSAgICB9Ci0KLSAgICBpZiAoIGRldmZuID09IHBk ZXYtPmRldmZuICYmIHBkZXYtPmRvbWFpbiAhPSB0YXJnZXQgKQotICAgIHsK LSAgICAgICAgbGlzdF9tb3ZlKCZwZGV2LT5kb21haW5fbGlzdCwgJnRhcmdl dC0+cGRldl9saXN0KTsKLSAgICAgICAgcGRldi0+ZG9tYWluID0gdGFyZ2V0 OwotICAgIH0KLQotICAgIHJldHVybiByZXQ7CisgICAgcmV0dXJuIDA7CiB9 CiAKIHN0YXRpYyBpbnQgY2ZfY2hlY2sgaW50ZWxfaW9tbXVfYXNzaWduX2Rl dmljZSgKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11LmgK QEAgLTE5Nyw4ICsxOTcsMTIgQEAgc3RydWN0IHJvb3RfZW50cnkgewogICAg IGRvIHsocm9vdCkudmFsIHw9ICgodmFsdWUpICYgUEFHRV9NQVNLXzRLKTt9 IHdoaWxlKDApCiAKIHN0cnVjdCBjb250ZXh0X2VudHJ5IHsKLSAgICB1NjQg bG87Ci0gICAgdTY0IGhpOworICAgIHVuaW9uIHsKKyAgICAgICAgc3RydWN0 IHsKKyAgICAgICAgICAgIHVpbnQ2NF90IGxvLCBoaTsKKyAgICAgICAgfTsK KyAgICAgICAgX191aW50MTI4X3QgZnVsbDsKKyAgICB9OwogfTsKICNkZWZp bmUgUk9PVF9FTlRSWV9OUiAoUEFHRV9TSVpFXzRLL3NpemVvZihzdHJ1Y3Qg cm9vdF9lbnRyeSkpCiAjZGVmaW5lIGNvbnRleHRfcHJlc2VudChjKSAoKGMp LmxvICYgMSkKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL3F1 aXJrcy5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWly a3MuYwpAQCAtNDA3LDcgKzQwNyw4IEBAIHZvaWQgX19pbml0IHBsYXRmb3Jt X3F1aXJrc19pbml0KHZvaWQpCiAgKi8KIAogc3RhdGljIGludCBfX211c3Rf Y2hlY2sgbWFwX21lX3BoYW50b21fZnVuY3Rpb24oc3RydWN0IGRvbWFpbiAq ZG9tYWluLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdTMyIGRldiwgaW50IG1hcCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGlu dCBkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBpbnQgbW9kZSkKIHsKICAgICBzdHJ1Y3Qg YWNwaV9kcmhkX3VuaXQgKmRyaGQ7CiAgICAgc3RydWN0IHBjaV9kZXYgKnBk ZXY7CkBAIC00MTgsOSArNDE5LDkgQEAgc3RhdGljIGludCBfX211c3RfY2hl Y2sgbWFwX21lX3BoYW50b21fZgogICAgIGRyaGQgPSBhY3BpX2ZpbmRfbWF0 Y2hlZF9kcmhkX3VuaXQocGRldik7CiAKICAgICAvKiBtYXAgb3IgdW5tYXAg TUUgcGhhbnRvbSBmdW5jdGlvbiAqLwotICAgIGlmICggbWFwICkKKyAgICBp ZiAoICEobW9kZSAmIFVOTUFQX01FX1BIQU5UT01fRlVOQykgKQogICAgICAg ICByYyA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJo ZC0+aW9tbXUsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUENJX0RFVkZOKGRldiwgNyksIE5VTEwpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9ERVZGTihkZXYs IDcpLCBOVUxMLCBtb2RlKTsKICAgICBlbHNlCiAgICAgICAgIHJjID0gZG9t YWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIDAs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBDSV9E RVZGTihkZXYsIDcpKTsKQEAgLTQyOCw3ICs0MjksOCBAQCBzdGF0aWMgaW50 IF9fbXVzdF9jaGVjayBtYXBfbWVfcGhhbnRvbV9mCiAgICAgcmV0dXJuIHJj OwogfQogCi1pbnQgbWVfd2lmaV9xdWlyayhzdHJ1Y3QgZG9tYWluICpkb21h aW4sIHU4IGJ1cywgdTggZGV2Zm4sIGludCBtYXApCitpbnQgbWVfd2lmaV9x dWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sIHVpbnQ4X3QgYnVzLCB1aW50 OF90IGRldmZuLAorICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG1v ZGUpCiB7CiAgICAgdTMyIGlkOwogICAgIGludCByYyA9IDA7CkBAIC00NTIs NyArNDU0LDcgQEAgaW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAq ZG9tYWluLAogICAgICAgICAgICAgY2FzZSAweDQyM2I4MDg2OgogICAgICAg ICAgICAgY2FzZSAweDQyM2M4MDg2OgogICAgICAgICAgICAgY2FzZSAweDQy M2Q4MDg2OgotICAgICAgICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21f ZnVuY3Rpb24oZG9tYWluLCAzLCBtYXApOworICAgICAgICAgICAgICAgIHJj ID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWluLCAzLCBtb2RlKTsK ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6 CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC00NzgsNyArNDgwLDcgQEAg aW50IG1lX3dpZmlfcXVpcmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAg ICAgICAgICAgY2FzZSAweDQyMzg4MDg2OiAgICAgICAgLyogUHVtYSBQZWFr ICovCiAgICAgICAgICAgICBjYXNlIDB4NDIyYjgwODY6CiAgICAgICAgICAg ICBjYXNlIDB4NDIyYzgwODY6Ci0gICAgICAgICAgICAgICAgcmMgPSBtYXBf bWVfcGhhbnRvbV9mdW5jdGlvbihkb21haW4sIDIyLCBtYXApOworICAgICAg ICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWlu LCAyMiwgbW9kZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg ICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgIGJyZWFrOwotLS0gYS94 ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvdnRkLmgKKysrIGIveGVuL2Ry aXZlcnMvcGFzc3Rocm91Z2gvdnRkL3Z0ZC5oCkBAIC0yMiw4ICsyMiwxNCBA QAogCiAjaW5jbHVkZSA8eGVuL2lvbW11Lmg+CiAKLSNkZWZpbmUgTUFQX01F X1BIQU5UT01fRlVOQyAgICAgIDEKLSNkZWZpbmUgVU5NQVBfTUVfUEhBTlRP TV9GVU5DICAgIDAKKy8qCisgKiBWYWx1ZXMgZm9yIGRvbWFpbl9jb250ZXh0 X21hcHBpbmdfb25lKCkncyBhbmQgbWVfd2lmaV9xdWlyaygpJ3MgIm1vZGUi CisgKiBwYXJhbWV0ZXJzLgorICovCisjZGVmaW5lIE1BUF9XSVRIX1JNUlIg ICAgICAgICAoMXUgPDwgMCkKKyNkZWZpbmUgTUFQX09XTkVSX0RZSU5HICAg ICAgICgxdSA8PCAxKQorI2RlZmluZSBNQVBfU0lOR0xFX0RFVklDRSAgICAg KDF1IDw8IDIpCisjZGVmaW5lIFVOTUFQX01FX1BIQU5UT01fRlVOQyAoMXUg PDwgMykKIAogLyogQWxsb3cgZm9yIGJvdGggSU9BUElDIGFuZCBJT1NBUElD LiAqLwogI2RlZmluZSBJT194QVBJQ19yb3V0ZV9lbnRyeSBJT19BUElDX3Jv dXRlX2VudHJ5Cg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-06.patch" Content-Disposition: attachment; filename="xsa400/xsa400-06.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IHJlLWFzc2lnbiBkZXZpY2VzIGRpcmVjdGx5CgpEZXZp Y2VzIHdpdGggdW5pdHkgbWFwIHJhbmdlcywgZHVlIHRvIGl0IGJlaW5nIHVu c3BlY2lmaWVkIGhvdy93aGVuCnRoZXNlIG1lbW9yeSByYW5nZXMgbWF5IGdl dCBhY2Nlc3NlZCwgbWF5IG5vdCBiZSBsZWZ0IGRpc2Nvbm5lY3RlZCBmcm9t CnRoZWlyIHVuaXR5IG1hcHBpbmdzIChhcyBsb25nIGFzIGl0J3Mgbm90IGNl cnRhaW4gdGhhdCB0aGUgZGV2aWNlIGhhcwpiZWVuIGZ1bGx5IHF1aWVzY2Vk KS4gSGVuY2UgcmF0aGVyIHRoYW4gdGVhcmluZyBkb3duIHRoZSBvbGQgcm9v dCBwYWdlCnRhYmxlIHBvaW50ZXIgYW5kIHRoZW4gZXN0YWJsaXNoaW5nIHRo ZSBuZXcgb25lLCByZS1hc3NpZ25tZW50IG5lZWRzIHRvCmJlIGRvbmUgaW4g YSBzaW5nbGUgc3RlcC4KClRoaXMgaXMgQ1ZFLTIwMjItMjYzNjAgLyBwYXJ0 IG9mIFhTQS00MDAuCgpSZXBvcnRlZC1ieTogUm9nZXIgUGF1IE1vbm7DqSA8 cm9nZXIucGF1QGNpdHJpeC5jb20+CgpTaW1pbGFybHkgcXVhcmFudGluaW5n IHNjcmF0Y2gtcGFnZSBtb2RlIHJlbGllcyBvbiBwYWdlIHRhYmxlcyB0byBi ZQpjb250aW51b3VzbHkgd2lyZWQgdXAuCgpUbyBhdm9pZCBjb21wbGljYXRp bmcgdGhpbmdzIG1vcmUgdGhhbiBuZWNlc3NhcnksIHRyZWF0IGFsbCBkZXZp Y2VzCm1vc3RseSBlcXVhbGx5LCBpLmUuIHJlZ2FyZGxlc3Mgb2YgdGhlaXIg YXNzb2NpYXRpb24gd2l0aCBhbnkgdW5pdHkgbWFwCnJhbmdlcy4gIFRoZSBt YWluIGRpZmZlcmVuY2UgaXMgd2hlbiBpdCBjb21lcyB0byB1cGRhdGluZyBE VEVzLCB3aGljaCBuZWVkCnRvIGJlIGF0b21pYyB3aGVuIHRoZXJlIGFyZSB1 bml0eSBtYXBwaW5ncy4gWWV0IGF0b21pY2l0eSBjYW4gb25seSBiZQphY2hp ZXZlZCB3aXRoIENNUFhDSEcxNkIsIGF2YWlsYWJpbGl0eSBvZiB3aGljaCB3 ZSBjYW4ndCB0YWtlIGZvciBnaXZlbi4KClNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQtYnk6IFBhdWwg RHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTogUm9nZXIgUGF1 IE1vbm7DqSA8cm9nZXIucGF1QGNpdHJpeC5jb20+Ci0tLQp2NjogQWxzbyBp bmNsdWRlIGRldmljZXMgd2l0aCBwaGFudG9tIGZ1bmN0aW9ucyBpbiB0aGUg bm90LXNpbmdsZS1kZXZpY2UKICAgIGNoZWNrLiBBZGQgY29tbWVudCBhaGVh ZCBvZiBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgpLgp2NTogUmVm dXNlIHJlLWFzc2lnbm1lbnQgb2YgZGV2aWNlcyB3aXRoIHJlcXVlc3RvciBJ RCBkaWZmZXJlbnQgZnJvbSBCREYKICAgIGFuZCB3aXRoIHVuaXR5IG1hcC4g Q29udmVydCBhc3NlcnRpbmcgb2YgQ1gxNiBzdWNjZXNzIHRvIGVycm9yCiAg ICByZXR1cm4uIEludHJvZHVjZSBhbmQgdXNlIGFueV9wZGV2X2JlaGluZF9p b21tdSgpLiBSZWZpbmUgd2FybmluZwogICAgbWVzc2FnZSB0ZXh0IGFuZCB1 c2UgUENJX1NCREYzKCkgdGhlcmUuIFVzZSBjb3JyZWN0IGRvbWFpbiB0byBk ZWNpZGUKICAgIHdoZXRoZXIgdG8gd2Fybi4KdjQ6IFJlZmluZSB3aGVuIHRv IGF0dGVtcHQgYXRvbWljIERURSB1cGRhdGUuIEFkZCB3YXJuaW5nLgp2Mzog UmVwbGFjZSBzbXBfd21iKCkgYnkgY29tbWVudC4gRHJvcCBhIHJlZHVuZGFu dCBhc3NpZ25tZW50Lgp2MjogTmV3LgoKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvYW1kL2lvbW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11LmgKQEAgLTI2Myw5ICsyNjMsMTMgQEAgdm9pZCBh bWRfaW9tbXVfc2V0X2ludHJlbWFwX3RhYmxlKHN0cnVjdAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZvaWQgKnB0ciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg YW1kX2lvbW11ICppb21tdSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBib29sIHZhbGlkKTsKLXZvaWQgYW1kX2lvbW11X3NldF9yb290 X3BhZ2VfdGFibGUoc3RydWN0IGFtZF9pb21tdV9kdGUgKmR0ZSwKLQkJCQkg ICB1aW50NjRfdCByb290X3B0ciwgdWludDE2X3QgZG9tYWluX2lkLAotCQkJ CSAgIHVpbnQ4X3QgcGFnaW5nX21vZGUsIGJvb2wgdmFsaWQpOworI2RlZmlu ZSBTRVRfUk9PVF9WQUxJRCAgICAgICAgICAoMXUgPDwgMCkKKyNkZWZpbmUg U0VUX1JPT1RfV0lUSF9VTklUWV9NQVAgKDF1IDw8IDEpCitpbnQgX19tdXN0 X2NoZWNrIGFtZF9pb21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKHN0cnVjdCBh bWRfaW9tbXVfZHRlICpkdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90IHJvb3RfcHRyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50MTZfdCBkb21haW5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgcGFnaW5nX21vZGUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHVuc2lnbmVkIGludCBmbGFncyk7CiB2b2lkIGlvbW11X2R0ZV9hZGRfZGV2 aWNlX2VudHJ5KHN0cnVjdCBhbWRfaW9tbXVfZHRlICpkdGUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBpdnJzX21h cHBpbmdzICppdnJzX2Rldik7CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtMTE0LDEwICsxMTQsNjkgQEAg c3RhdGljIHVuc2lnbmVkIGludCBzZXRfaW9tbXVfcHRlc19wcmVzZQogICAg IHJldHVybiBmbHVzaF9mbGFnczsKIH0KIAotdm9pZCBhbWRfaW9tbXVfc2V0 X3Jvb3RfcGFnZV90YWJsZShzdHJ1Y3QgYW1kX2lvbW11X2R0ZSAqZHRlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50NjRfdCBy b290X3B0ciwgdWludDE2X3QgZG9tYWluX2lkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1aW50OF90IHBhZ2luZ19tb2RlLCBib29s IHZhbGlkKQorLyoKKyAqIFRoaXMgZnVuY3Rpb24gcmV0dXJucworICogLSAt ZXJybm8gZm9yIGVycm9ycywKKyAqIC0gMCBmb3IgYSBzdWNjZXNzZnVsIHVw ZGF0ZSwgYXRvbWljIHdoZW4gbmVjZXNzYXJ5CisgKiAtIDEgZm9yIGEgc3Vj Y2Vzc2Z1bCBidXQgbm9uLWF0b21pYyB1cGRhdGUsIHdoaWNoIG1heSBuZWVk IHRvIGJlIHdhcm5lZAorICogICBhYm91dCBieSB0aGUgY2FsbGVyLgorICov CitpbnQgYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoc3RydWN0IGFt ZF9pb21tdV9kdGUgKmR0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1aW50NjRfdCByb290X3B0ciwgdWludDE2X3QgZG9tYWluX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qg cGFnaW5nX21vZGUsIHVuc2lnbmVkIGludCBmbGFncykKIHsKKyAgICBib29s IHZhbGlkID0gZmxhZ3MgJiBTRVRfUk9PVF9WQUxJRDsKKworICAgIGlmICgg ZHRlLT52ICYmIGR0ZS0+dHYgJiYKKyAgICAgICAgIChjcHVfaGFzX2N4MTYg fHwgKGZsYWdzICYgU0VUX1JPT1RfV0lUSF9VTklUWV9NQVApKSApCisgICAg eworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBzdHJ1Y3QgYW1kX2lv bW11X2R0ZSBkdGU7CisgICAgICAgICAgICB1aW50NjRfdCByYXc2NFs0XTsK KyAgICAgICAgICAgIF9fdWludDEyOF90IHJhdzEyOFsyXTsKKyAgICAgICAg fSBsZHRlID0geyAuZHRlID0gKmR0ZSB9OworICAgICAgICBfX3VpbnQxMjhf dCBvbGQgPSBsZHRlLnJhdzEyOFswXTsKKyAgICAgICAgaW50IHJldCA9IDA7 CisKKyAgICAgICAgbGR0ZS5kdGUuZG9tYWluX2lkID0gZG9tYWluX2lkOwor ICAgICAgICBsZHRlLmR0ZS5wdF9yb290ID0gcGFkZHJfdG9fcGZuKHJvb3Rf cHRyKTsKKyAgICAgICAgbGR0ZS5kdGUuaXcgPSB0cnVlOworICAgICAgICBs ZHRlLmR0ZS5pciA9IHRydWU7CisgICAgICAgIGxkdGUuZHRlLnBhZ2luZ19t b2RlID0gcGFnaW5nX21vZGU7CisgICAgICAgIGxkdGUuZHRlLnYgPSB2YWxp ZDsKKworICAgICAgICBpZiAoIGNwdV9oYXNfY3gxNiApCisgICAgICAgIHsK KyAgICAgICAgICAgIF9fdWludDEyOF90IHJlcyA9IGNtcHhjaGcxNmIoZHRl LCAmb2xkLCAmbGR0ZS5yYXcxMjhbMF0pOworCisgICAgICAgICAgICAvKgor ICAgICAgICAgICAgICogSGFyZHdhcmUgZG9lcyBub3QgdXBkYXRlIHRoZSBE VEUgYmVoaW5kIG91ciBiYWNrcywgc28gdGhlCisgICAgICAgICAgICAgKiBy ZXR1cm4gdmFsdWUgc2hvdWxkIG1hdGNoICJvbGQiLgorICAgICAgICAgICAg ICovCisgICAgICAgICAgICBpZiAoIHJlcyAhPSBvbGQgKQorICAgICAgICAg ICAgeworICAgICAgICAgICAgICAgIHByaW50ayhYRU5MT0dfRVJSCisgICAg ICAgICAgICAgICAgICAgICAgICJEb20lZDogdW5leHBlY3RlZCBEVEUgJTAx Nmx4XyUwMTZseCAoZXhwZWN0ZWQgJTAxNmx4XyUwMTZseClcbiIsCisgICAg ICAgICAgICAgICAgICAgICAgIGRvbWFpbl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgKHVpbnQ2NF90KShyZXMgPj4gNjQpLCAodWludDY0X3QpcmVz LAorICAgICAgICAgICAgICAgICAgICAgICAodWludDY0X3QpKG9sZCA+PiA2 NCksICh1aW50NjRfdClvbGQpOworICAgICAgICAgICAgICAgIHJldCA9IC1F SUxTRVE7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgZWxz ZSAvKiBCZXN0IGVmZm9ydCwgdXBkYXRpbmcgZG9tYWluX2lkIGxhc3QuICov CisgICAgICAgIHsKKyAgICAgICAgICAgIHVpbnQ2NF90ICpwdHIgPSAodm9p ZCAqKWR0ZTsKKworICAgICAgICAgICAgd3JpdGVfYXRvbWljKHB0ciArIDAs IGxkdGUucmF3NjRbMF0pOworICAgICAgICAgICAgLyogTm8gYmFycmllciBz aG91bGQgYmUgbmVlZGVkIGJldHdlZW4gdGhlc2UgdHdvLiAqLworICAgICAg ICAgICAgd3JpdGVfYXRvbWljKHB0ciArIDEsIGxkdGUucmF3NjRbMV0pOwor CisgICAgICAgICAgICByZXQgPSAxOworICAgICAgICB9CisKKyAgICAgICAg cmV0dXJuIHJldDsKKyAgICB9CisKICAgICBpZiAoIHZhbGlkIHx8IGR0ZS0+ diApCiAgICAgewogICAgICAgICBkdGUtPnR2ID0gZmFsc2U7CkBAIC0xMzIs NiArMTkxLDggQEAgdm9pZCBhbWRfaW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJs ZShzdHJ1YwogICAgIHNtcF93bWIoKTsKICAgICBkdGUtPnR2ID0gdHJ1ZTsK ICAgICBkdGUtPnYgPSB2YWxpZDsKKworICAgIHJldHVybiAwOwogfQogCiB2 b2lkIGFtZF9pb21tdV9zZXRfaW50cmVtYXBfdGFibGUoCi0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9wY2lfYW1kX2lvbW11LmMKKysrIGIv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYwpA QCAtOTYsMTMgKzk2LDMyIEBAIHN0YXRpYyBpbnQgX19tdXN0X2NoZWNrIGFs bG9jYXRlX2RvbWFpbl8KICAgICByZXR1cm4gcmM7CiB9CiAKK3N0YXRpYyBi b29sIGFueV9wZGV2X2JlaGluZF9pb21tdShjb25zdCBzdHJ1Y3QgZG9tYWlu ICpkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0 IHN0cnVjdCBwY2lfZGV2ICpleGNsdWRlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBhbWRfaW9tbXUgKmlvbW11 KQoreworICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2OworCisgICAg Zm9yX2VhY2hfcGRldiAoIGQsIHBkZXYgKQorICAgIHsKKyAgICAgICAgaWYg KCBwZGV2ID09IGV4Y2x1ZGUgKQorICAgICAgICAgICAgY29udGludWU7CisK KyAgICAgICAgaWYgKCBmaW5kX2lvbW11X2Zvcl9kZXZpY2UocGRldi0+c2Vn LCBwZGV2LT5zYmRmLmJkZikgPT0gaW9tbXUgKQorICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBz dGF0aWMgaW50IF9fbXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfZG9tYWlu X2RldmljZSgKICAgICBzdHJ1Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCBh bWRfaW9tbXUgKmlvbW11LAogICAgIHVpbnQ4X3QgZGV2Zm4sIHN0cnVjdCBw Y2lfZGV2ICpwZGV2KQogewogICAgIHN0cnVjdCBhbWRfaW9tbXVfZHRlICp0 YWJsZSwgKmR0ZTsKICAgICB1bnNpZ25lZCBsb25nIGZsYWdzOwotICAgIGlu dCByZXFfaWQsIHZhbGlkID0gMSwgcmM7CisgICAgdW5zaWduZWQgaW50IHJl cV9pZCwgc3JfZmxhZ3M7CisgICAgaW50IHJjOwogICAgIHU4IGJ1cyA9IHBk ZXYtPmJ1czsKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9p b21tdShkb21haW4pOwogICAgIGNvbnN0IHN0cnVjdCBpdnJzX21hcHBpbmdz ICppdnJzX2RldjsKQEAgLTExNiw4ICsxMzUsMTEgQEAgc3RhdGljIGludCBf X211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwogICAgIGlmICggcmMgKQog ICAgICAgICByZXR1cm4gcmM7CiAKLSAgICBpZiAoIGlvbW11X2h3ZG9tX3Bh c3N0aHJvdWdoICYmIGlzX2hhcmR3YXJlX2RvbWFpbihkb21haW4pICkKLSAg ICAgICAgdmFsaWQgPSAwOworICAgIHJlcV9pZCA9IGdldF9kbWFfcmVxdWVz dG9yX2lkKGlvbW11LT5zZWcsIHBkZXYtPnNiZGYuYmRmKTsKKyAgICBpdnJz X2RldiA9ICZnZXRfaXZyc19tYXBwaW5ncyhpb21tdS0+c2VnKVtyZXFfaWRd OworICAgIHNyX2ZsYWdzID0gKGlvbW11X2h3ZG9tX3Bhc3N0aHJvdWdoICYm IGlzX2hhcmR3YXJlX2RvbWFpbihkb21haW4pCisgICAgICAgICAgICAgICAg PyAwIDogU0VUX1JPT1RfVkFMSUQpCisgICAgICAgICAgICAgICB8IChpdnJz X2Rldi0+dW5pdHlfbWFwID8gU0VUX1JPT1RfV0lUSF9VTklUWV9NQVAgOiAw KTsKIAogICAgIC8qIGdldCBkZXZpY2UtdGFibGUgZW50cnkgKi8KICAgICBy ZXFfaWQgPSBnZXRfZG1hX3JlcXVlc3Rvcl9pZChpb21tdS0+c2VnLCBQQ0lf QkRGMihidXMsIGRldmZuKSk7CkBAIC0xMzAsOSArMTUyLDE1IEBAIHN0YXRp YyBpbnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBpZiAo ICFkdGUtPnYgfHwgIWR0ZS0+dHYgKQogICAgIHsKICAgICAgICAgLyogYmlu ZCBEVEUgdG8gZG9tYWluIHBhZ2UtdGFibGVzICovCi0gICAgICAgIGFtZF9p b21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKAotICAgICAgICAgICAgZHRlLCBw YWdlX3RvX21hZGRyKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSwKLSAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5n X21vZGUsIHZhbGlkKTsKKyAgICAgICAgcmMgPSBhbWRfaW9tbXVfc2V0X3Jv b3RfcGFnZV90YWJsZSgKKyAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3Rv X21hZGRyKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSwKKyAgICAgICAgICAg ICAgICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdf bW9kZSwgc3JfZmxhZ3MpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAg eworICAgICAgICAgICAgQVNTRVJUKHJjIDwgMCk7CisgICAgICAgICAgICBz cGluX3VubG9ja19pcnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwor ICAgICAgICAgICAgcmV0dXJuIHJjOworICAgICAgICB9CiAKICAgICAgICAg LyogVW5kbyB3aGF0IGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9kZXZpY2Uo KSBtYXkgaGF2ZSBkb25lLiAqLwogICAgICAgICBpZiAoIGR0ZS0+aXRfcm9v dCApCkBAIC0xNTIsMTcgKzE4MCw3NiBAQCBzdGF0aWMgaW50IF9fbXVzdF9j aGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CiAKICAgICAgICAgYW1k X2lvbW11X2ZsdXNoX2RldmljZShpb21tdSwgcmVxX2lkKTsKKyAgICB9Cisg ICAgZWxzZSBpZiAoIGR0ZS0+cHRfcm9vdCAhPSBtZm5feChwYWdlX3RvX21m bihoZC0+YXJjaC5hbWQucm9vdF90YWJsZSkpICkKKyAgICB7CisgICAgICAg IC8qCisgICAgICAgICAqIFN0cmljdGx5IHNwZWFraW5nIGlmIHRoZSBkZXZp Y2UgaXMgdGhlIG9ubHkgb25lIHdpdGggdGhpcyByZXF1ZXN0b3IKKyAgICAg ICAgICogSUQsIGl0IGNvdWxkIGJlIGFsbG93ZWQgdG8gYmUgcmUtYXNzaWdu ZWQgcmVnYXJkbGVzcyBvZiB1bml0eSBtYXAKKyAgICAgICAgICogcHJlc2Vu Y2UuICBCdXQgbGV0J3MgZGVhbCB3aXRoIHRoYXQgY2FzZSBvbmx5IGlmIGl0 IGlzIGFjdHVhbGx5CisgICAgICAgICAqIGZvdW5kIGluIHRoZSB3aWxkLgor ICAgICAgICAgKi8KKyAgICAgICAgaWYgKCByZXFfaWQgIT0gUENJX0JERjIo YnVzLCBkZXZmbikgJiYKKyAgICAgICAgICAgICAoc3JfZmxhZ3MgJiBTRVRf Uk9PVF9XSVRIX1VOSVRZX01BUCkgKQorICAgICAgICAgICAgcmMgPSAtRU9Q Tk9UU1VQUDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmMgPSBhbWRf aW9tbXVfc2V0X3Jvb3RfcGFnZV90YWJsZSgKKyAgICAgICAgICAgICAgICAg ICAgIGR0ZSwgcGFnZV90b19tYWRkcihoZC0+YXJjaC5hbWQucm9vdF90YWJs ZSksCisgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwg aGQtPmFyY2guYW1kLnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7CisgICAgICAg IGlmICggcmMgPCAwICkKKyAgICAgICAgeworICAgICAgICAgICAgc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZSgmaW9tbXUtPmxvY2ssIGZsYWdzKTsKKyAgICAg ICAgICAgIHJldHVybiByYzsKKyAgICAgICAgfQorICAgICAgICBpZiAoIHJj ICYmCisgICAgICAgICAgICAgZG9tYWluICE9IHBkZXYtPmRvbWFpbiAmJgor ICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICogQnkgbm9uLWF0b21p Y2FsbHkgdXBkYXRpbmcgdGhlIERURSdzIGRvbWFpbiBJRCBmaWVsZCBsYXN0 LAorICAgICAgICAgICAgICAqIGR1cmluZyBhIHNob3J0IHdpbmRvdyBpbiB0 aW1lIFRMQiBlbnRyaWVzIHdpdGggdGhlIG9sZCBkb21haW4KKyAgICAgICAg ICAgICAgKiBJRCBidXQgdGhlIG5ldyBwYWdlIHRhYmxlcyBtYXkgaGF2ZSBi ZWVuIGluc2VydGVkLiAgVGhpcyBjb3VsZAorICAgICAgICAgICAgICAqIGFm ZmVjdCBJL08gb2Ygb3RoZXIgZGV2aWNlcyB1c2luZyB0aGlzIHNhbWUgKG9s ZCkgZG9tYWluIElELgorICAgICAgICAgICAgICAqIFN1Y2ggdXBkYXRpbmcg dGhlcmVmb3JlIGlzIG5vdCBhIHByb2JsZW0gaWYgdGhpcyB3YXMgdGhlIG9u bHkKKyAgICAgICAgICAgICAgKiBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIHRo ZSBvbGQgZG9tYWluIElELiAgRGl2ZXJ0aW5nIEkvTyBvZiBhbnkKKyAgICAg ICAgICAgICAgKiBvZiBhIGR5aW5nIGRvbWFpbidzIGRldmljZXMgdG8gdGhl IHF1YXJhbnRpbmUgcGFnZSB0YWJsZXMgaXMKKyAgICAgICAgICAgICAgKiBp bnRlbmRlZCBhbnl3YXkuCisgICAgICAgICAgICAgICovCisgICAgICAgICAg ICAgIXBkZXYtPmRvbWFpbi0+aXNfZHlpbmcgJiYKKyAgICAgICAgICAgICAo YW55X3BkZXZfYmVoaW5kX2lvbW11KHBkZXYtPmRvbWFpbiwgcGRldiwgaW9t bXUpIHx8CisgICAgICAgICAgICAgIHBkZXYtPnBoYW50b21fc3RyaWRlKSAp CisgICAgICAgICAgICBBTURfSU9NTVVfV0FSTigiICVwcDogcmVhc3NpZ25t ZW50IG1heSBjYXVzZSAlcGQgZGF0YSBjb3JydXB0aW9uXG4iLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgJlBDSV9TQkRGMyhwZGV2LT5zZWcsIGJ1 cywgZGV2Zm4pLCBwZGV2LT5kb21haW4pOworCisgICAgICAgIC8qCisgICAg ICAgICAqIENoZWNrIHJlbWFpbmluZyBzZXR0aW5ncyBhcmUgc3RpbGwgaW4g cGxhY2UgZnJvbSBhbiBlYXJsaWVyIGNhbGwKKyAgICAgICAgICogaGVyZS4g VGhleSdyZSBhbGwgaW5kZXBlbmRlbnQgb2YgdGhlIGRvbWFpbiwgc28gc2hv dWxkIG5vdCBoYXZlCisgICAgICAgICAqIGNoYW5nZWQuCisgICAgICAgICAq LworICAgICAgICBpZiAoIGR0ZS0+aXRfcm9vdCApCisgICAgICAgICAgICBB U1NFUlQoZHRlLT5pbnRfY3RsID09IElPTU1VX0RFVl9UQUJMRV9JTlRfQ09O VFJPTF9UUkFOU0xBVEVEKTsKKyAgICAgICAgQVNTRVJUKGR0ZS0+aXYgPT0g aW9tbXVfaW50cmVtYXApOworICAgICAgICBBU1NFUlQoZHRlLT5leCA9PSBp dnJzX2Rldi0+ZHRlX2FsbG93X2V4Y2x1c2lvbik7CisgICAgICAgIEFTU0VS VChkdGUtPnN5c19tZ3QgPT0gTUFTS19FWFRSKGl2cnNfZGV2LT5kZXZpY2Vf ZmxhZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFDUElfSVZIRF9TWVNURU1fTUdNVCkpOwogCi0gICAgICAgIEFNRF9J T01NVV9ERUJVRygiU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9 ICUjeCwgdHlwZSA9ICUjeCwgIgotICAgICAgICAgICAgICAgICAgICAgICAg InJvb3QgdGFibGUgPSAlIyJQUkl4NjQiLCAiCi0gICAgICAgICAgICAgICAg ICAgICAgICAiZG9tYWluID0gJWQsIHBhZ2luZyBtb2RlID0gJWRcbiIsCi0g ICAgICAgICAgICAgICAgICAgICAgICByZXFfaWQsIHBkZXYtPnR5cGUsCi0g ICAgICAgICAgICAgICAgICAgICAgICBwYWdlX3RvX21hZGRyKGhkLT5hcmNo LmFtZC5yb290X3RhYmxlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRv bWFpbi0+ZG9tYWluX2lkLCBoZC0+YXJjaC5hbWQucGFnaW5nX21vZGUpOwor ICAgICAgICBpZiAoIHBjaV9hdHNfZGV2aWNlKGlvbW11LT5zZWcsIGJ1cywg cGRldi0+ZGV2Zm4pICYmCisgICAgICAgICAgICAgIWl2cnNfZGV2LT5ibG9j a19hdHMgJiYKKyAgICAgICAgICAgICBpb21tdV9oYXNfY2FwKGlvbW11LCBQ Q0lfQ0FQX0lPVExCX1NISUZUKSApCisgICAgICAgICAgICBBU1NFUlQoZHRl LT5pID09IGF0c19lbmFibGVkKTsKKworICAgICAgICBzcGluX3VubG9ja19p cnFyZXN0b3JlKCZpb21tdS0+bG9jaywgZmxhZ3MpOworCisgICAgICAgIGFt ZF9pb21tdV9mbHVzaF9kZXZpY2UoaW9tbXUsIHJlcV9pZCk7CiAgICAgfQog ICAgIGVsc2UKICAgICAgICAgc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmaW9t bXUtPmxvY2ssIGZsYWdzKTsKIAorICAgIEFNRF9JT01NVV9ERUJVRygiU2V0 dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9ICUjeCwgdHlwZSA9ICUj eCwgIgorICAgICAgICAgICAgICAgICAgICAicm9vdCB0YWJsZSA9ICUjIlBS SXg2NCIsICIKKyAgICAgICAgICAgICAgICAgICAgImRvbWFpbiA9ICVkLCBw YWdpbmcgbW9kZSA9ICVkXG4iLAorICAgICAgICAgICAgICAgICAgICByZXFf aWQsIHBkZXYtPnR5cGUsCisgICAgICAgICAgICAgICAgICAgIHBhZ2VfdG9f bWFkZHIoaGQtPmFyY2guYW1kLnJvb3RfdGFibGUpLAorICAgICAgICAgICAg ICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQtPmFyY2guYW1kLnBhZ2lu Z19tb2RlKTsKKwogICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKIAog ICAgIGlmICggcGNpX2F0c19kZXZpY2UoaW9tbXUtPnNlZywgYnVzLCBwZGV2 LT5kZXZmbikgJiYKQEAgLTM2Nyw3ICs0NTQsMjAgQEAgc3RhdGljIGludCBj Zl9jaGVjayByZWFzc2lnbl9kZXZpY2UoCiAgICAgICAgIHJldHVybiAtRU5P REVWOwogICAgIH0KIAotICAgIGFtZF9pb21tdV9kaXNhYmxlX2RvbWFpbl9k ZXZpY2Uoc291cmNlLCBpb21tdSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICgg IVFVQVJBTlRJTkVfU0tJUCh0YXJnZXQpICkKKyAgICB7CisgICAgICAgIHJj ID0gYW1kX2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UodGFyZ2V0LCBpb21t dSwgZGV2Zm4sIHBkZXYpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAg ICAgIHJldHVybiByYzsKKyAgICB9CisgICAgZWxzZQorICAgICAgICBhbWRf aW9tbXVfZGlzYWJsZV9kb21haW5fZGV2aWNlKHNvdXJjZSwgaW9tbXUsIGRl dmZuLCBwZGV2KTsKKworICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4g JiYgcGRldi0+ZG9tYWluICE9IHRhcmdldCApCisgICAgeworICAgICAgICBs aXN0X21vdmUoJnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2X2xp c3QpOworICAgICAgICBwZGV2LT5kb21haW4gPSB0YXJnZXQ7CisgICAgfQog CiAgICAgLyoKICAgICAgKiBJZiB0aGUgZGV2aWNlIGJlbG9uZ3MgdG8gdGhl IGhhcmR3YXJlIGRvbWFpbiwgYW5kIGl0IGhhcyBhIHVuaXR5IG1hcHBpbmcs CkBAIC0zODMsMjUgKzQ4Myw5IEBAIHN0YXRpYyBpbnQgY2ZfY2hlY2sgcmVh c3NpZ25fZGV2aWNlKAogICAgICAgICAgICAgcmV0dXJuIHJjOwogICAgIH0K IAotICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ZG9t YWluICE9IGRvbV9pbyApCi0gICAgewotICAgICAgICBsaXN0X21vdmUoJnBk ZXYtPmRvbWFpbl9saXN0LCAmZG9tX2lvLT5wZGV2X2xpc3QpOwotICAgICAg ICBwZGV2LT5kb21haW4gPSBkb21faW87Ci0gICAgfQotCi0gICAgcmMgPSBh bWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZSh0YXJnZXQsIGlvbW11LCBk ZXZmbiwgcGRldik7Ci0gICAgaWYgKCByYyApCi0gICAgICAgIHJldHVybiBy YzsKLQogICAgIEFNRF9JT01NVV9ERUJVRygiUmUtYXNzaWduICVwcCBmcm9t IGRvbSVkIHRvIGRvbSVkXG4iLAogICAgICAgICAgICAgICAgICAgICAmcGRl di0+c2JkZiwgc291cmNlLT5kb21haW5faWQsIHRhcmdldC0+ZG9tYWluX2lk KTsKIAotICAgIGlmICggZGV2Zm4gPT0gcGRldi0+ZGV2Zm4gJiYgcGRldi0+ ZG9tYWluICE9IHRhcmdldCApCi0gICAgewotICAgICAgICBsaXN0X21vdmUo JnBkZXYtPmRvbWFpbl9saXN0LCAmdGFyZ2V0LT5wZGV2X2xpc3QpOwotICAg ICAgICBwZGV2LT5kb21haW4gPSB0YXJnZXQ7Ci0gICAgfQotCiAgICAgcmV0 dXJuIDA7CiB9CiAK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-07.patch" Content-Disposition: attachment; filename="xsa400/xsa400-07.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSSkKCkFycmFuZ2UgZm9yIGRvbWFpbiBJRCBhbmQg cGFnZSB0YWJsZSByb290IHRvIGJlIHBhc3NlZCBhcm91bmQsIHRoZSBsYXR0 ZXIgaW4KcGFydGljdWxhciB0byBkb21haW5fcGdkX21hZGRyKCkgc3VjaCB0 aGF0IHRha2luZyBpdCBmcm9tIHRoZSBwZXItZG9tYWluCmZpZWxkcyBjYW4g YmUgb3ZlcnJpZGRlbi4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVk LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEtldmluIFRpYW4gPGtldmluLnRpYW5A aW50ZWwuY29tPgotLS0Kdjc6IFJlLWJhc2UuCnY1OiBBbHNvIHBhc3MgYXJv dW5kIGRvbWFpbiBJRC4KdjQ6IERyb3Agc3RyYXkgaW5zZXJ0aW9uIG9mIGEg YmxhbmsgbGluZSBpbiB0aGUgbWlkZGxlIG9mIGEgY29tbWVudC4KICAgIFJl LWJhc2Ugb3ZlciBuZXcgZWFybGllciBwYXRjaCBhbmQgb3RoZXIgY2hhbmdl cyBlYXJsaWVyIGluIHRoZQogICAgc2VyaWVzLgp2MzogUmUtYmFzZSBvdmVy IGNoYW5nZXMgZWFybGllciBpbiB0aGUgc2VyaWVzLgp2MjogTmV3LgoKLS0t IGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2V4dGVybi5oCisrKyBi L3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9leHRlcm4uaApAQCAtODIs OSArODIsMTAgQEAgdm9pZCAqbWFwX3Z0ZF9kb21haW5fcGFnZSh1NjQgbWFk ZHIpOwogdm9pZCB1bm1hcF92dGRfZG9tYWluX3BhZ2UoY29uc3Qgdm9pZCAq dmEpOwogaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKHN0cnVjdCBk b21haW4gKmRvbWFpbiwgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBidXMsIHVpbnQ4 X3QgZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u c3Qgc3RydWN0IHBjaV9kZXYgKnBkZXYsIHVuc2lnbmVkIGludCBtb2RlKTsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg cGNpX2RldiAqcGRldiwgZG9taWRfdCBkb21pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwYWRkcl90IHBnZF9tYWRkciwgdW5zaWduZWQg aW50IG1vZGUpOwogaW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShzdHJ1 Y3QgZG9tYWluICpkb21haW4sIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBidXMsIHU4IGRldmZu KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBidXMs IHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQpOwogaW50IGNmX2NoZWNr IGludGVsX2lvbW11X2dldF9yZXNlcnZlZF9kZXZpY2VfbWVtb3J5KAogICAg IGlvbW11X2dyZG1fdCAqZnVuYywgdm9pZCAqY3R4dCk7CiAKQEAgLTEwNSw3 ICsxMDYsOCBAQCB2b2lkIHBsYXRmb3JtX3F1aXJrc19pbml0KHZvaWQpOwog dm9pZCB2dGRfb3BzX3ByZWFtYmxlX3F1aXJrKHN0cnVjdCB2dGRfaW9tbXUg KmlvbW11KTsKIHZvaWQgdnRkX29wc19wb3N0YW1ibGVfcXVpcmsoc3RydWN0 IHZ0ZF9pb21tdSAqaW9tbXUpOwogaW50IF9fbXVzdF9jaGVjayBtZV93aWZp X3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgdWludDhfdCBidXMsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludDhfdCBkZXZmbiwg dW5zaWduZWQgaW50IG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHVpbnQ4X3QgZGV2Zm4sIGRvbWlkX3QgZG9taWQsIHBhZGRyX3Qg cGdkX21hZGRyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu c2lnbmVkIGludCBtb2RlKTsKIHZvaWQgcGNpX3Z0ZF9xdWlyayhjb25zdCBz dHJ1Y3QgcGNpX2RldiAqKTsKIHZvaWQgcXVpcmtfaW9tbXVfY2FwcyhzdHJ1 Y3QgdnRkX2lvbW11ICppb21tdSk7CiAKLS0tIGEveGVuL2RyaXZlcnMvcGFz c3Rocm91Z2gvdnRkL2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvdnRkL2lvbW11LmMKQEAgLTQzLDcgKzQzLDcgQEAKICNpbmNsdWRl ICIuLi9hdHMuaCIKIAogLyogZG9tX2lvIGlzIHVzZWQgYXMgYSBzZW50aW5l bCBmb3IgcXVhcmFudGluZWQgZGV2aWNlcyAqLwotI2RlZmluZSBRVUFSQU5U SU5FX1NLSVAoZCkgKChkKSA9PSBkb21faW8gJiYgIWRvbV9pb21tdShkKS0+ YXJjaC52dGQucGdkX21hZGRyKQorI2RlZmluZSBRVUFSQU5USU5FX1NLSVAo ZCwgcGdkX21hZGRyKSAoKGQpID09IGRvbV9pbyAmJiAhKHBnZF9tYWRkcikp CiAKIC8qIFBvc3NpYmxlIHVuZmlsdGVyZWQgTEFQSUMvTVNJIG1lc3NhZ2Vz IGZyb20gdW50cnVzdGVkIHNvdXJjZXM/ICovCiBib29sIF9fcmVhZF9tb3N0 bHkgdW50cnVzdGVkX21zaTsKQEAgLTM0NiwxNSArMzQ2LDE3IEBAIHN0YXRp YyB1NjQgYWRkcl90b19kbWFfcGFnZV9tYWRkcihzdHJ1Y3QKICAgICByZXR1 cm4gcHRlX21hZGRyOwogfQogCi1zdGF0aWMgdWludDY0X3QgZG9tYWluX3Bn ZF9tYWRkcihzdHJ1Y3QgZG9tYWluICpkLCB1bnNpZ25lZCBpbnQgbnJfcHRf bGV2ZWxzKQorc3RhdGljIHBhZGRyX3QgZG9tYWluX3BnZF9tYWRkcihzdHJ1 Y3QgZG9tYWluICpkLCBwYWRkcl90IHBnZF9tYWRkciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IG5yX3B0X2xldmVs cykKIHsKICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21t dShkKTsKLSAgICB1aW50NjRfdCBwZ2RfbWFkZHI7CiAgICAgdW5zaWduZWQg aW50IGFnYXc7CiAKICAgICBBU1NFUlQoc3Bpbl9pc19sb2NrZWQoJmhkLT5h cmNoLm1hcHBpbmdfbG9jaykpOwogCi0gICAgaWYgKCBpb21tdV91c2VfaGFw X3B0KGQpICkKKyAgICBpZiAoIHBnZF9tYWRkciApCisgICAgICAgIC8qIG5v dGhpbmcgKi87CisgICAgZWxzZSBpZiAoIGlvbW11X3VzZV9oYXBfcHQoZCkg KQogICAgIHsKICAgICAgICAgcGFnZXRhYmxlX3QgcGd0ID0gcDJtX2dldF9w YWdldGFibGUocDJtX2dldF9ob3N0cDJtKGQpKTsKIApAQCAtMTM3OSwxOCAr MTM4MSwxOCBAQCBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoCiAg ICAgc3RydWN0IGRvbWFpbiAqZG9tYWluLAogICAgIHN0cnVjdCB2dGRfaW9t bXUgKmlvbW11LAogICAgIHVpbnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBj b25zdCBzdHJ1Y3QgcGNpX2RldiAqcGRldiwKLSAgICB1bnNpZ25lZCBpbnQg bW9kZSkKKyAgICBkb21pZF90IGRvbWlkLCBwYWRkcl90IHBnZF9tYWRkciwg dW5zaWduZWQgaW50IG1vZGUpCiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21t dSAqaGQgPSBkb21faW9tbXUoZG9tYWluKTsKICAgICBzdHJ1Y3QgY29udGV4 dF9lbnRyeSAqY29udGV4dCwgKmNvbnRleHRfZW50cmllcywgbGN0eHQ7CiAg ICAgX191aW50MTI4X3Qgb2xkOwotICAgIHU2NCBtYWRkciwgcGdkX21hZGRy OworICAgIHVpbnQ2NF90IG1hZGRyOwogICAgIHVpbnQxNl90IHNlZyA9IGlv bW11LT5kcmhkLT5zZWdtZW50LCBwcmV2X2RpZCA9IDA7CiAgICAgc3RydWN0 IGRvbWFpbiAqcHJldl9kb20gPSBOVUxMOwogICAgIGludCByYywgcmV0Owog ICAgIGJvb2xfdCBmbHVzaF9kZXZfaW90bGI7CiAKLSAgICBpZiAoIFFVQVJB TlRJTkVfU0tJUChkb21haW4pICkKKyAgICBpZiAoIFFVQVJBTlRJTkVfU0tJ UChkb21haW4sIHBnZF9tYWRkcikgKQogICAgICAgICByZXR1cm4gMDsKIAog ICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKQEAgLTE0MjcsMTAgKzE0 MjksMTIgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAg IH0KICAgICBlbHNlCiAgICAgeworICAgICAgICBwYWRkcl90IHJvb3Q7CisK ICAgICAgICAgc3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOwog Ci0gICAgICAgIHBnZF9tYWRkciA9IGRvbWFpbl9wZ2RfbWFkZHIoZG9tYWlu LCBpb21tdS0+bnJfcHRfbGV2ZWxzKTsKLSAgICAgICAgaWYgKCAhcGdkX21h ZGRyICkKKyAgICAgICAgcm9vdCA9IGRvbWFpbl9wZ2RfbWFkZHIoZG9tYWlu LCBwZ2RfbWFkZHIsIGlvbW11LT5ucl9wdF9sZXZlbHMpOworICAgICAgICBp ZiAoICFyb290ICkKICAgICAgICAgewogICAgICAgICAgICAgc3Bpbl91bmxv Y2soJmhkLT5hcmNoLm1hcHBpbmdfbG9jayk7CiAgICAgICAgICAgICBzcGlu X3VubG9jaygmaW9tbXUtPmxvY2spOwpAQCAtMTQ0MCw3ICsxNDQ0LDcgQEAg aW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAogICAgICAgICAgICAg cmV0dXJuIC1FTk9NRU07CiAgICAgICAgIH0KIAotICAgICAgICBjb250ZXh0 X3NldF9hZGRyZXNzX3Jvb3QobGN0eHQsIHBnZF9tYWRkcik7CisgICAgICAg IGNvbnRleHRfc2V0X2FkZHJlc3Nfcm9vdChsY3R4dCwgcm9vdCk7CiAgICAg ICAgIGlmICggYXRzX2VuYWJsZWQgJiYgZWNhcF9kZXZfaW90bGIoaW9tbXUt PmVjYXApICkKICAgICAgICAgICAgIGNvbnRleHRfc2V0X3RyYW5zbGF0aW9u X3R5cGUobGN0eHQsIENPTlRFWFRfVFRfREVWX0lPVExCKTsKICAgICAgICAg ZWxzZQpAQCAtMTU1NywxNSArMTU2MSwyMSBAQCBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZ19vbmUoCiAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKGNv bnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFzZWcgJiYgIXJjICkKLSAg ICAgICAgcmMgPSBtZV93aWZpX3F1aXJrKGRvbWFpbiwgYnVzLCBkZXZmbiwg bW9kZSk7CisgICAgICAgIHJjID0gbWVfd2lmaV9xdWlyayhkb21haW4sIGJ1 cywgZGV2Zm4sIGRvbWlkLCBwZ2RfbWFkZHIsIG1vZGUpOwogCiAgICAgaWYg KCByYyApCiAgICAgewogICAgICAgICBpZiAoICFwcmV2X2RvbSApCi0gICAg ICAgICAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWlu LCBpb21tdSwgYnVzLCBkZXZmbik7CisgICAgICAgICAgICByZXQgPSBkb21h aW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwgYnVzLCBkZXZm biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkb21haW4tPmRvbWFpbl9pZCk7CiAgICAgICAgIGVsc2UgaWYgKCBwcmV2 X2RvbSAhPSBkb21haW4gKSAvKiBBdm9pZCBpbmZpbml0ZSByZWN1cnNpb24u ICovCisgICAgICAgIHsKKyAgICAgICAgICAgIGhkID0gZG9tX2lvbW11KHBy ZXZfZG9tKTsKICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21h cHBpbmdfb25lKHByZXZfZG9tLCBpb21tdSwgYnVzLCBkZXZmbiwgcGRldiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRvbWFpbi0+ZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaGQtPmFyY2gudnRkLnBnZF9tYWRkciwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUgJiBNQVBfV0lUSF9STVJSKSA8IDA7CisgICAgICAgIH0KICAgICAg ICAgZWxzZQogICAgICAgICAgICAgcmV0ID0gMTsKIApAQCAtMTU4Nyw2ICsx NTk3LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdAogewogICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZHJo ZCA9IGFjcGlfZmluZF9tYXRjaGVkX2RyaGRfdW5pdChwZGV2KTsKICAgICBj b25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CisgICAgcGFkZHJf dCBwZ2RfbWFkZHIgPSBkb21faW9tbXUoZG9tYWluKS0+YXJjaC52dGQucGdk X21hZGRyOwogICAgIGludCByZXQgPSAwOwogICAgIHVuc2lnbmVkIGludCBp LCBtb2RlID0gMDsKICAgICB1aW50MTZfdCBzZWcgPSBwZGV2LT5zZWcsIGJk ZjsKQEAgLTE2NDksNyArMTY2MCw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2Nv bnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgIHByaW50ayhWVERQ UkVGSVggIiVwZDpQQ0llOiBtYXAgJXBwXG4iLAogICAgICAgICAgICAgICAg ICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKICAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWlu LCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgbW9kZSk7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFp bi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOwogICAgICAgICBpZiAoIHJl dCA+IDAgKQogICAgICAgICAgICAgcmV0ID0gMDsKICAgICAgICAgaWYgKCAh cmV0ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRl diwgZHJoZCkgPiAwICkKQEAgLTE2NjYsNyArMTY3OCw4IEBAIHN0YXRpYyBp bnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAg ICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7 CiAKICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUo ZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgbW9kZSk7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYs IGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOwogICAgICAgICBp ZiAoIHJldCA8IDAgKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHBy ZXZfcHJlc2VudCA9IHJldDsKQEAgLTE2OTQsNyArMTcwNyw4IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAg ICovCiAgICAgICAgIGlmICggcmV0ID49IDAgKQogICAgICAgICAgICAgcmV0 ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5p b21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5VTEwsIG1vZGUpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgZG9tYWlu LT5kb21haW5faWQsIHBnZF9tYWRkciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUpOwogCiAgICAgICAgIC8q CiAgICAgICAgICAqIERldmljZXMgYmVoaW5kIFBDSWUtdG8tUENJL1BDSXgg YnJpZGdlIG1heSBnZW5lcmF0ZSBkaWZmZXJlbnQKQEAgLTE3MDksNyArMTcy Myw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1 Y3QKICAgICAgICAgaWYgKCAhcmV0ICYmIHBkZXZfdHlwZShzZWcsIGJ1cywg ZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JSSURHRSAmJgogICAgICAg ICAgICAgIChzZWNidXMgIT0gcGRldi0+YnVzIHx8IHBkZXYtPmRldmZuICE9 IDApICkKICAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBp bmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIHNlY2J1cywgMCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEws IG1vZGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCwgZG9tYWluLT5kb21haW5faWQsIHBnZF9tYWRkciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG1vZGUpOwogCiAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgewpAQCAt MTczNywxNCArMTc1MiwxNCBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0 X21hcHBpbmcoc3RydWN0CiBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KAogICAgIHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICBzdHJ1Y3QgdnRk X2lvbW11ICppb21tdSwKLSAgICB1OCBidXMsIHU4IGRldmZuKQorICAgIHVp bnQ4X3QgYnVzLCB1aW50OF90IGRldmZuLCBkb21pZF90IGRvbWlkKQogewog ICAgIHN0cnVjdCBjb250ZXh0X2VudHJ5ICpjb250ZXh0LCAqY29udGV4dF9l bnRyaWVzOwogICAgIHU2NCBtYWRkcjsKICAgICBpbnQgaW9tbXVfZG9taWQs IHJjLCByZXQ7CiAgICAgYm9vbF90IGZsdXNoX2Rldl9pb3RsYjsKIAotICAg IGlmICggUVVBUkFOVElORV9TS0lQKGRvbWFpbikgKQorICAgIGlmICggUVVB UkFOVElORV9TS0lQKGRvbWFpbiwgZG9tX2lvbW11KGRvbWFpbiktPmFyY2gu dnRkLnBnZF9tYWRkcikgKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEFT U0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKQEAgLTE3OTgsNyArMTgxMyw3IEBA IGludCBkb21haW5fY29udGV4dF91bm1hcF9vbmUoCiAgICAgdW5tYXBfdnRk X2RvbWFpbl9wYWdlKGNvbnRleHRfZW50cmllcyk7CiAKICAgICBpZiAoICFp b21tdS0+ZHJoZC0+c2VnbWVudCAmJiAhcmMgKQotICAgICAgICByYyA9IG1l X3dpZmlfcXVpcmsoZG9tYWluLCBidXMsIGRldmZuLCBVTk1BUF9NRV9QSEFO VE9NX0ZVTkMpOworICAgICAgICByYyA9IG1lX3dpZmlfcXVpcmsoZG9tYWlu LCBidXMsIGRldmZuLCBkb21pZCwgMCwgVU5NQVBfTUVfUEhBTlRPTV9GVU5D KTsKIAogICAgIGlmICggcmMgJiYgIWlzX2hhcmR3YXJlX2RvbWFpbihkb21h aW4pICYmIGRvbWFpbiAhPSBkb21faW8gKQogICAgIHsKQEAgLTE4NDUsNyAr MTg2MCw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3Ry dWN0IGQKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAg ICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJZTogdW5tYXAgJXBwXG4iLAog ICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1 cywgZGV2Zm4pKTsKLSAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5t YXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4pOworICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwg YnVzLCBkZXZmbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgaWYgKCAhcmV0 ICYmIGRldmZuID09IHBkZXYtPmRldmZuICYmIGF0c19kZXZpY2UocGRldiwg ZHJoZCkgPiAwICkKICAgICAgICAgICAgIGRpc2FibGVfYXRzX2RldmljZShw ZGV2KTsKIApAQCAtMTg1OCw3ICsxODc0LDggQEAgc3RhdGljIGludCBkb21h aW5fY29udGV4dF91bm1hcChzdHJ1Y3QgZAogICAgICAgICBpZiAoIGlvbW11 X2RlYnVnICkKICAgICAgICAgICAgIHByaW50ayhWVERQUkVGSVggIiVwZDpQ Q0k6IHVubWFwICVwcFxuIiwKICAgICAgICAgICAgICAgICAgICBkb21haW4s ICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7Ci0gICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMs IGRldmZuKTsKKyAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBf b25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCk7 CiAgICAgICAgIGlmICggcmV0ICkKICAgICAgICAgICAgIGJyZWFrOwogCkBA IC0xODg0LDEyICsxOTAxLDE1IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfdW5tYXAoc3RydWN0IGQKICAgICAgICAgLyogUENJZSB0byBQQ0kvUENJ eCBicmlkZ2UgKi8KICAgICAgICAgaWYgKCBwZGV2X3R5cGUoc2VnLCB0bXBf YnVzLCB0bXBfZGV2Zm4pID09IERFVl9UWVBFX1BDSWUyUENJX0JSSURHRSAp CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0 X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0bXBfZGV2Zm4p OworICAgICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25l KGRvbWFpbiwgaW9tbXUsIHRtcF9idXMsIHRtcF9kZXZmbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCk7CiAgICAgICAgICAgICBpZiAoICFyZXQgKQotICAgICAgICAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4s IGlvbW11LCBzZWNidXMsIDApOworICAgICAgICAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBzZWNidXMs IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKICAgICAgICAgfQogICAgICAg ICBlbHNlIC8qIExlZ2FjeSBQQ0kgYnJpZGdlICovCi0gICAgICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21tdSwg dG1wX2J1cywgdG1wX2RldmZuKTsKKyAgICAgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBfYnVzLCB0 bXBfZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwogCiAgICAgICAgIGJyZWFr OwogCkBAIC0xODk5LDcgKzE5MTksOCBAQCBzdGF0aWMgaW50IGRvbWFpbl9j b250ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgICAgIHJldHVybiAtRUlOVkFM OwogICAgIH0KIAotICAgIGlmICggIXJldCAmJiAhUVVBUkFOVElORV9TS0lQ KGRvbWFpbikgJiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gKQorICAgIGlmICgg IXJldCAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiAmJgorICAgICAgICAgIVFV QVJBTlRJTkVfU0tJUChkb21haW4sIGRvbV9pb21tdShkb21haW4pLT5hcmNo LnZ0ZC5wZ2RfbWFkZHIpICkKICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21p ZF9tYXAoZG9tYWluLCBwZGV2LCBpb21tdSk7CiAKICAgICByZXR1cm4gcmV0 OwpAQCAtMjUwNiw3ICsyNTI3LDcgQEAgc3RhdGljIGludCBjZl9jaGVjayBy ZWFzc2lnbl9kZXZpY2Vfb3duZQogewogICAgIGludCByZXQ7CiAKLSAgICBp ZiAoICFRVUFSQU5USU5FX1NLSVAodGFyZ2V0KSApCisgICAgaWYgKCAhUVVB UkFOVElORV9TS0lQKHRhcmdldCwgZG9tX2lvbW11KHRhcmdldCktPmFyY2gu dnRkLnBnZF9tYWRkcikgKQogICAgIHsKICAgICAgICAgaWYgKCAhaGFzX2Fy Y2hfcGRldnModGFyZ2V0KSApCiAgICAgICAgICAgICB2bXhfcGlfaG9va3Nf YXNzaWduKHRhcmdldCk7CkBAIC0yNTIyLDcgKzI1NDMsOCBAQCBzdGF0aWMg aW50IGNmX2NoZWNrIHJlYXNzaWduX2RldmljZV9vd25lCiAKICAgICAgICAg cmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZyh0YXJnZXQsIGRldmZuLCBw ZGV2KTsKIAotICAgICAgICBpZiAoICFyZXQgJiYgIVFVQVJBTlRJTkVfU0tJ UChzb3VyY2UpICYmIHBkZXYtPmRldmZuID09IGRldmZuICkKKyAgICAgICAg aWYgKCAhcmV0ICYmIHBkZXYtPmRldmZuID09IGRldmZuICYmCisgICAgICAg ICAgICAgIVFVQVJBTlRJTkVfU0tJUChzb3VyY2UsIGRvbV9pb21tdShzb3Vy Y2UpLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIpICkKICAgICAgICAgewogICAgICAg ICAgICAgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkcmhkID0gYWNw aV9maW5kX21hdGNoZWRfZHJoZF91bml0KHBkZXYpOwogCi0tLSBhL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3Z0ZC9xdWlya3MuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC92dGQvcXVpcmtzLmMKQEAgLTQwOCw2ICs0MDgs OCBAQCB2b2lkIF9faW5pdCBwbGF0Zm9ybV9xdWlya3NfaW5pdCh2b2lkKQog CiBzdGF0aWMgaW50IF9fbXVzdF9jaGVjayBtYXBfbWVfcGhhbnRvbV9mdW5j dGlvbihzdHJ1Y3QgZG9tYWluICpkb21haW4sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQg ZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9taWRfdCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRyX3QgcGdkX21hZGRy LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdW5zaWduZWQgaW50IG1vZGUpCiB7CiAgICAgc3RydWN0IGFjcGlf ZHJoZF91bml0ICpkcmhkOwpAQCAtNDIxLDE2ICs0MjMsMTcgQEAgc3RhdGlj IGludCBfX211c3RfY2hlY2sgbWFwX21lX3BoYW50b21fZgogICAgIC8qIG1h cCBvciB1bm1hcCBNRSBwaGFudG9tIGZ1bmN0aW9uICovCiAgICAgaWYgKCAh KG1vZGUgJiBVTk1BUF9NRV9QSEFOVE9NX0ZVTkMpICkKICAgICAgICAgcmMg PSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRyaGQtPmlv bW11LCAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFBDSV9ERVZGTihkZXYsIDcpLCBOVUxMLCBtb2RlKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0lfREVWRk4oZGV2 LCA3KSwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkb21pZCwgcGdkX21hZGRyLCBtb2RlKTsKICAgICBlbHNlCiAg ICAgICAgIHJjID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwg ZHJoZC0+aW9tbXUsIDAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFBDSV9ERVZGTihkZXYsIDcpKTsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUENJX0RFVkZOKGRldiwgNyksIGRv bWlkKTsKIAogICAgIHJldHVybiByYzsKIH0KIAogaW50IG1lX3dpZmlfcXVp cmsoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1aW50OF90IGJ1cywgdWludDhf dCBkZXZmbiwKLSAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtb2Rl KQorICAgICAgICAgICAgICAgICAgZG9taWRfdCBkb21pZCwgcGFkZHJfdCBw Z2RfbWFkZHIsIHVuc2lnbmVkIGludCBtb2RlKQogewogICAgIHUzMiBpZDsK ICAgICBpbnQgcmMgPSAwOwpAQCAtNDU0LDcgKzQ1Nyw3IEBAIGludCBtZV93 aWZpX3F1aXJrKHN0cnVjdCBkb21haW4gKmRvbWFpbiwKICAgICAgICAgICAg IGNhc2UgMHg0MjNiODA4NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjNjODA4 NjoKICAgICAgICAgICAgIGNhc2UgMHg0MjNkODA4NjoKLSAgICAgICAgICAg ICAgICByYyA9IG1hcF9tZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMywg bW9kZSk7CisgICAgICAgICAgICAgICAgcmMgPSBtYXBfbWVfcGhhbnRvbV9m dW5jdGlvbihkb21haW4sIDMsIGRvbWlkLCBwZ2RfbWFkZHIsIG1vZGUpOwog ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoK ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTQ4MCw3ICs0ODMsNyBAQCBp bnQgbWVfd2lmaV9xdWlyayhzdHJ1Y3QgZG9tYWluICpkb21haW4sCiAgICAg ICAgICAgICBjYXNlIDB4NDIzODgwODY6ICAgICAgICAvKiBQdW1hIFBlYWsg Ki8KICAgICAgICAgICAgIGNhc2UgMHg0MjJiODA4NjoKICAgICAgICAgICAg IGNhc2UgMHg0MjJjODA4NjoKLSAgICAgICAgICAgICAgICByYyA9IG1hcF9t ZV9waGFudG9tX2Z1bmN0aW9uKGRvbWFpbiwgMjIsIG1vZGUpOworICAgICAg ICAgICAgICAgIHJjID0gbWFwX21lX3BoYW50b21fZnVuY3Rpb24oZG9tYWlu LCAyMiwgZG9taWQsIHBnZF9tYWRkciwgbW9kZSk7CiAgICAgICAgICAgICAg ICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAg ICAgIGJyZWFrOwo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-08.patch" Content-Disposition: attachment; filename="xsa400/xsa400-08.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBWVC1kOiBwcmVwYXJlIGZvciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFn ZSB0YWJsZXMgKHBhcnQgSUkpCgpSZXBsYWNlIHRoZSBwYXNzaW5nIG9mIHN0 cnVjdCBkb21haW4gKiBieSBkb21pZF90IGluIHByZXBhcmF0aW9uIG9mCnBl ci1kZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcyBhbHNvIHJlcXVpcmlu ZyBwZXItZGV2aWNlIHBzZXVkbwpkb21haW4gSURzLCB3aGljaCBhcmVuJ3Qg Z29pbmcgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIGFueSBzdHJ1Y3QgZG9tYWlu Cmluc3RhbmNlcy4KCk5vIGZ1bmN0aW9uYWwgY2hhbmdlIGludGVuZGVkIChl eGNlcHQgZm9yIHNsaWdodGx5IGFkanVzdGVkIGxvZyBtZXNzYWdlCnRleHQp LgoKU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPgpSZXZpZXdlZC1ieTogUGF1bCBEdXJyYW50IDxwYXVsQHhlbi5vcmc+ ClJldmlld2VkLWJ5OiBLZXZpbiBUaWFuIDxrZXZpbi50aWFuQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBj aXRyaXguY29tPgotLS0KdjY6IGNvbnRleHRfc2V0X2RvbWFpbl9pZCgpJ3Mg QVNTRVJUKCkgY2hhbmdlIG1vdmVkIHRvIGEgbGF0ZXIgcGF0Y2guCnY1OiBO ZXcuCgotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUu YworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpA QCAtNzksMjggKzc5LDI4IEBAIHN0YXRpYyBkb21pZF90IGNvbnZlcnRfZG9t aWQoY29uc3Qgc3RydWMKICAgICByZXR1cm4gIWNhcF9jYWNoaW5nX21vZGUo aW9tbXUtPmNhcCkgPyBkb21pZCA6IH5kb21pZDsKIH0KIAotc3RhdGljIGlu dCBkb21haW5faW9tbXVfZG9taWQoY29uc3Qgc3RydWN0IGRvbWFpbiAqZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB2 dGRfaW9tbXUgKmlvbW11KQorc3RhdGljIGludCBnZXRfaW9tbXVfZGlkKGRv bWlkX3QgZG9taWQsIGNvbnN0IHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11LAor ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgd2FybikKIHsKICAgICB1 bnNpZ25lZCBpbnQgbnJfZG9tLCBpOwogCiAgICAgaWYgKCAhZG9taWRfbWFw cGluZyhpb21tdSkgKQotICAgICAgICByZXR1cm4gY29udmVydF9kb21pZChp b21tdSwgZC0+ZG9tYWluX2lkKTsKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRf ZG9taWQoaW9tbXUsIGRvbWlkKTsKIAogICAgIG5yX2RvbSA9IGNhcF9uZG9t cyhpb21tdS0+Y2FwKTsKICAgICBpID0gZmluZF9maXJzdF9iaXQoaW9tbXUt PmRvbWlkX2JpdG1hcCwgbnJfZG9tKTsKICAgICB3aGlsZSAoIGkgPCBucl9k b20gKQogICAgIHsKLSAgICAgICAgaWYgKCBpb21tdS0+ZG9taWRfbWFwW2ld ID09IGQtPmRvbWFpbl9pZCApCisgICAgICAgIGlmICggaW9tbXUtPmRvbWlk X21hcFtpXSA9PSBkb21pZCApCiAgICAgICAgICAgICByZXR1cm4gaTsKIAog ICAgICAgICBpID0gZmluZF9uZXh0X2JpdChpb21tdS0+ZG9taWRfYml0bWFw LCBucl9kb20sIGkgKyAxKTsKICAgICB9CiAKLSAgICBpZiAoICFkLT5pc19k eWluZyApCisgICAgaWYgKCB3YXJuICkKICAgICAgICAgZHByaW50ayhYRU5M T0dfRVJSIFZURFBSRUZJWCwKLSAgICAgICAgICAgICAgICAiQ2Fubm90IGdl dCB2YWxpZCBpb21tdSAldSBkb21pZDogJXBkXG4iLAotICAgICAgICAgICAg ICAgIGlvbW11LT5pbmRleCwgZCk7CisgICAgICAgICAgICAgICAgIk5vIHZh bGlkIGlvbW11ICV1IGRvbWlkIGZvciBEb20lZFxuIiwKKyAgICAgICAgICAg ICAgICBpb21tdS0+aW5kZXgsIGRvbWlkKTsKIAogICAgIHJldHVybiAtMTsK IH0KQEAgLTEwOCw4ICsxMDgsNyBAQCBzdGF0aWMgaW50IGRvbWFpbl9pb21t dV9kb21pZChjb25zdCBzdHJ1CiAjZGVmaW5lIERJRF9GSUVMRF9XSURUSCAx NgogI2RlZmluZSBESURfSElHSF9PRkZTRVQgOAogc3RhdGljIGludCBjb250 ZXh0X3NldF9kb21haW5faWQoc3RydWN0IGNvbnRleHRfZW50cnkgKmNvbnRl eHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBz dHJ1Y3QgZG9tYWluICpkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RydWN0IHZ0ZF9pb21tdSAqaW9tbXUpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkb21pZF90IGRvbWlkLCBzdHJ1Y3QgdnRk X2lvbW11ICppb21tdSkKIHsKICAgICB1bnNpZ25lZCBpbnQgaTsKIApAQCAt MTIwLDcgKzExOSw3IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWlu X2lkKHN0cnVjdAogICAgICAgICB1bnNpZ25lZCBpbnQgbnJfZG9tID0gY2Fw X25kb21zKGlvbW11LT5jYXApOwogCiAgICAgICAgIGkgPSBmaW5kX2ZpcnN0 X2JpdChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20pOwotICAgICAgICB3 aGlsZSAoIGkgPCBucl9kb20gJiYgaW9tbXUtPmRvbWlkX21hcFtpXSAhPSBk LT5kb21haW5faWQgKQorICAgICAgICB3aGlsZSAoIGkgPCBucl9kb20gJiYg aW9tbXUtPmRvbWlkX21hcFtpXSAhPSBkb21pZCApCiAgICAgICAgICAgICBp ID0gZmluZF9uZXh0X2JpdChpb21tdS0+ZG9taWRfYml0bWFwLCBucl9kb20s IGkgKyAxKTsKIAogICAgICAgICBpZiAoIGkgPj0gbnJfZG9tICkKQEAgLTEz MSwyNiArMTMwLDI2IEBAIHN0YXRpYyBpbnQgY29udGV4dF9zZXRfZG9tYWlu X2lkKHN0cnVjdAogICAgICAgICAgICAgICAgIGRwcmludGsoWEVOTE9HX0VS UiBWVERQUkVGSVgsICJJT01NVTogbm8gZnJlZSBkb21haW4gaWRcbiIpOwog ICAgICAgICAgICAgICAgIHJldHVybiAtRUJVU1k7CiAgICAgICAgICAgICB9 Ci0gICAgICAgICAgICBpb21tdS0+ZG9taWRfbWFwW2ldID0gZC0+ZG9tYWlu X2lkOworICAgICAgICAgICAgaW9tbXUtPmRvbWlkX21hcFtpXSA9IGRvbWlk OwogICAgICAgICAgICAgc2V0X2JpdChpLCBpb21tdS0+ZG9taWRfYml0bWFw KTsKICAgICAgICAgfQogICAgIH0KICAgICBlbHNlCi0gICAgICAgIGkgPSBj b252ZXJ0X2RvbWlkKGlvbW11LCBkLT5kb21haW5faWQpOworICAgICAgICBp ID0gY29udmVydF9kb21pZChpb21tdSwgZG9taWQpOwogCiAgICAgY29udGV4 dC0+aGkgJj0gfigoKDEgPDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpIDw8IERJ RF9ISUdIX09GRlNFVCk7CiAgICAgY29udGV4dC0+aGkgfD0gKGkgJiAoKDEg PDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpKSA8PCBESURfSElHSF9PRkZTRVQ7 CiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIGNsZWFudXBfZG9t aWRfbWFwKHN0cnVjdCBkb21haW4gKmRvbWFpbiwgc3RydWN0IHZ0ZF9pb21t dSAqaW9tbXUpCitzdGF0aWMgdm9pZCBjbGVhbnVwX2RvbWlkX21hcChkb21p ZF90IGRvbWlkLCBzdHJ1Y3QgdnRkX2lvbW11ICppb21tdSkKIHsKICAgICBp bnQgaW9tbXVfZG9taWQ7CiAKICAgICBpZiAoICFkb21pZF9tYXBwaW5nKGlv bW11KSApCiAgICAgICAgIHJldHVybjsKIAotICAgIGlvbW11X2RvbWlkID0g ZG9tYWluX2lvbW11X2RvbWlkKGRvbWFpbiwgaW9tbXUpOworICAgIGlvbW11 X2RvbWlkID0gZ2V0X2lvbW11X2RpZChkb21pZCwgaW9tbXUsIGZhbHNlKTsK IAogICAgIGlmICggaW9tbXVfZG9taWQgPj0gMCApCiAgICAgewpAQCAtMTkw LDcgKzE4OSw3IEBAIHN0YXRpYyBib29sIGFueV9wZGV2X2JlaGluZF9pb21t dShjb25zdAogICogSWYgbm8gb3RoZXIgZGV2aWNlcyB1bmRlciB0aGUgc2Ft ZSBpb21tdSBvd25lZCBieSB0aGlzIGRvbWFpbiwKICAqIGNsZWFyIGlvbW11 IGluIGlvbW11X2JpdG1hcCBhbmQgY2xlYXIgZG9tYWluX2lkIGluIGRvbWlk X2JpdG1hcC4KICAqLwotc3RhdGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21p ZF9tYXAoc3RydWN0IGRvbWFpbiAqZCwKK3N0YXRpYyB2b2lkIGNoZWNrX2Ns ZWFudXBfZG9taWRfbWFwKGNvbnN0IHN0cnVjdCBkb21haW4gKmQsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qg cGNpX2RldiAqZXhjbHVkZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cnVjdCB2dGRfaW9tbXUgKmlvbW11KQogewpAQCAtMjA2 LDcgKzIwNSw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX2NsZWFudXBfZG9taWRf bWFwKHN0cnUKICAgICBpZiAoICFmb3VuZCApCiAgICAgewogICAgICAgICBj bGVhcl9iaXQoaW9tbXUtPmluZGV4LCBkb21faW9tbXUoZCktPmFyY2gudnRk LmlvbW11X2JpdG1hcCk7Ci0gICAgICAgIGNsZWFudXBfZG9taWRfbWFwKGQs IGlvbW11KTsKKyAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZC0+ZG9tYWlu X2lkLCBpb21tdSk7CiAgICAgfQogfQogCkBAIC02NjcsNyArNjY2LDcgQEAg c3RhdGljIGludCBfX211c3RfY2hlY2sgaW9tbXVfZmx1c2hfaW90bAogICAg ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgZmx1c2hfZGV2X2lvdGxi ID0gISFmaW5kX2F0c19kZXZfZHJoZChpb21tdSk7Ci0gICAgICAgIGlvbW11 X2RvbWlkPSBkb21haW5faW9tbXVfZG9taWQoZCwgaW9tbXUpOworICAgICAg ICBpb21tdV9kb21pZCA9IGdldF9pb21tdV9kaWQoZC0+ZG9tYWluX2lkLCBp b21tdSwgIWQtPmlzX2R5aW5nKTsKICAgICAgICAgaWYgKCBpb21tdV9kb21p ZCA9PSAtMSApCiAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTQ1Myw3 ICsxNDUyLDcgQEAgaW50IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKAog ICAgICAgICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsK ICAgICB9CiAKLSAgICByYyA9IGNvbnRleHRfc2V0X2RvbWFpbl9pZCgmbGN0 eHQsIGRvbWFpbiwgaW9tbXUpOworICAgIHJjID0gY29udGV4dF9zZXRfZG9t YWluX2lkKCZsY3R4dCwgZG9taWQsIGlvbW11KTsKICAgICBpZiAoIHJjICkK ICAgICB7CiAgICAgdW5sb2NrOgpAQCAtMTc4MCw3ICsxNzc5LDcgQEAgaW50 IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICBjb250ZXh0X2NsZWFy X2VudHJ5KCpjb250ZXh0KTsKICAgICBpb21tdV9zeW5jX2NhY2hlKGNvbnRl eHQsIHNpemVvZihzdHJ1Y3QgY29udGV4dF9lbnRyeSkpOwogCi0gICAgaW9t bXVfZG9taWQ9IGRvbWFpbl9pb21tdV9kb21pZChkb21haW4sIGlvbW11KTsK KyAgICBpb21tdV9kb21pZCA9IGdldF9pb21tdV9kaWQoZG9taWQsIGlvbW11 LCAhZG9tYWluLT5pc19keWluZyk7CiAgICAgaWYgKCBpb21tdV9kb21pZCA9 PSAtMSApCiAgICAgewogICAgICAgICBzcGluX3VubG9jaygmaW9tbXUtPmxv Y2spOwpAQCAtMTk0OCw3ICsxOTQ3LDcgQEAgc3RhdGljIHZvaWQgY2ZfY2hl Y2sgaW9tbXVfZG9tYWluX3RlYXJkbwogICAgIEFTU0VSVCghaGQtPmFyY2gu dnRkLnBnZF9tYWRkcik7CiAKICAgICBmb3JfZWFjaF9kcmhkX3VuaXQgKCBk cmhkICkKLSAgICAgICAgY2xlYW51cF9kb21pZF9tYXAoZCwgZHJoZC0+aW9t bXUpOworICAgICAgICBjbGVhbnVwX2RvbWlkX21hcChkLT5kb21haW5faWQs IGRyaGQtPmlvbW11KTsKIAogICAgIFhGUkVFKGhkLT5hcmNoLnZ0ZC5pb21t dV9iaXRtYXApOwogfQo= --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-09.patch" Content-Disposition: attachment; filename="xsa400/xsa400-09.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IG1haW50YWluIGEgcGVyLWRldmljZSBwc2V1ZG8gZG9t YWluIElECgpJbiBvcmRlciB0byBzdWJzZXF1ZW50bHkgZW5hYmxlIHBlci1k ZXZpY2UgcXVhcmFudGluZSBwYWdlIHRhYmxlcywgd2UnbGwKbmVlZCBkb21h aW4tSUQtbGlrZSBpZGVudGlmaWVycyB0byBiZSBpbnNlcnRlZCBpbiB0aGUg cmVzcGVjdGl2ZSBkZXZpY2UKKEFNRCkgb3IgY29udGV4dCAoSW50ZWwpIHRh YmxlIGVudHJpZXMgYWxvbmdzaWRlIHRoZSBwZXItZGV2aWNlIHBhZ2UKdGFi bGUgcm9vdCBhZGRyZXNzZXMuCgpNYWtlIHVzZSBvZiAicmVhbCIgZG9tYWlu IElEcyBvY2N1cHlpbmcgb25seSBoYWxmIG9mIHRoZSB2YWx1ZSByYW5nZQpj b3ZlcmFibGUgYnkgZG9taWRfdC4KCk5vdGUgdGhhdCBpbiBWVC1kJ3MgaW9t bXVfYWxsb2MoKSBJIGRpZG4ndCB3YW50IHRvIGludHJvZHVjZSBuZXcgbWVt b3J5CmxlYWtzIGluIGNhc2Ugb2YgZXJyb3IsIGJ1dCBleGlzdGluZyBvbmVz IGRvbid0IGdldCBwbHVnZ2VkIC0gdGhhdCdsbCBiZQp0aGUgc3ViamVjdCBv ZiBhIGxhdGVyIGNoYW5nZS4KClRoZSBWVC1kIGNoYW5nZXMgYXJlIHNsaWdo dGx5IGFzeW1tZXRyaWMsIGJ1dCB0aGlzIHdheSB3ZSBjYW4gYXZvaWQKYXNz aWduaW5nIHBzZXVkbyBkb21haW4gSURzIHRvIGRldmljZXMgd2hpY2ggd291 bGQgbmV2ZXIgYmUgbWFwcGVkIHdoaWxlCnN0aWxsIGF2b2lkaW5nIHRvIGFk ZCBhIG5ldyBwYXJhbWV0ZXIgdG8gZG9tYWluX2NvbnRleHRfdW5tYXAoKS4K ClNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4KUmV2aWV3ZWQtYnk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpS ZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ ClJldmlld2VkLWJ5OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0 cml4LmNvbT4KLS0tCnY3OiBSZS1iYXNlLgp2NjogQWxzbyBhZGp1c3QgbnJf ZG9tIHJhbmdlIGNoZWNrIGluIGlvbW11X2FsbG9jKCkuCnY1OiBOZXcuCgot LS0gYS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9tbXUuaAorKysgYi94 ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vaW9tbXUuaApAQCAtMTQxLDYgKzE0 MSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgaW9tbXVfc3luY19jYWNoZShj b25zCiAgICAgICAgIGNhY2hlX3dyaXRlYmFjayhhZGRyLCBzaXplKTsKIH0K IAordW5zaWduZWQgbG9uZyAqaW9tbXVfaW5pdF9kb21pZChkb21pZF90IHJl c2VydmUpOworZG9taWRfdCBpb21tdV9hbGxvY19kb21pZCh1bnNpZ25lZCBs b25nICptYXApOwordm9pZCBpb21tdV9mcmVlX2RvbWlkKGRvbWlkX3QgZG9t aWQsIHVuc2lnbmVkIGxvbmcgKm1hcCk7CisKIGludCBfX211c3RfY2hlY2sg aW9tbXVfZnJlZV9wZ3RhYmxlcyhzdHJ1Y3QgZG9tYWluICpkKTsKIHN0cnVj dCBkb21haW5faW9tbXU7CiBzdHJ1Y3QgcGFnZV9pbmZvICpfX211c3RfY2hl Y2sgaW9tbXVfYWxsb2NfcGd0YWJsZShzdHJ1Y3QgZG9tYWluX2lvbW11ICpo ZCk7Ci0tLSBhL3hlbi9hcmNoL3g4Ni9pbmNsdWRlL2FzbS9wY2kuaAorKysg Yi94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKQEAgLTEzLDYgKzEz LDEyIEBACiAKIHN0cnVjdCBhcmNoX3BjaV9kZXYgewogICAgIHZtYXNrX3Qg dXNlZF92ZWN0b3JzOworICAgIC8qCisgICAgICogVGhlc2UgZmllbGRzIGFy ZSAoZGUpaW5pdGlhbGl6ZWQgdW5kZXIgcGNpZGV2cy1sb2NrLiBPdGhlciB1 c2VzIG9mCisgICAgICogdGhlbSBkb24ndCByYWNlIChkZSlpbml0aWFsaXph dGlvbiBhbmQgaGVuY2UgZG9uJ3Qgc3RyaWN0bHkgbmVlZCBhbnkKKyAgICAg KiBsb2NraW5nLgorICAgICAqLworICAgIGRvbWlkX3QgcHNldWRvX2RvbWlk OwogfTsKIAogaW50IHBjaV9jb25mX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25l ZCBpbnQgc2VnLCB1bnNpZ25lZCBpbnQgYmRmLApAQCAtMzYsNiArNDIsNiBA QCBzdGF0aWMgYWx3YXlzX2lubGluZSBib29sIGlzX3BjaV9wYXNzdGhyCiAg ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhcmNo X3BjaV9pbml0X3BkZXYoc3RydWN0IHBjaV9kZXYgKnBkZXYpIHt9Cit2b2lk IGFyY2hfcGNpX2luaXRfcGRldihzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAK ICNlbmRpZiAvKiBfX1g4Nl9QQ0lfSF9fICovCi0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdS5oCisrKyBiL3hlbi9kcml2ZXJzL3Bh c3N0aHJvdWdoL2FtZC9pb21tdS5oCkBAIC05Niw2ICs5Niw3IEBAIHN0cnVj dCBhbWRfaW9tbXUgewogICAgIHN0cnVjdCByaW5nX2J1ZmZlciBjbWRfYnVm ZmVyOwogICAgIHN0cnVjdCByaW5nX2J1ZmZlciBldmVudF9sb2c7CiAgICAg c3RydWN0IHJpbmdfYnVmZmVyIHBwcl9sb2c7CisgICAgdW5zaWduZWQgbG9u ZyAqZG9taWRfbWFwOwogCiAgICAgaW50IGV4Y2x1c2lvbl9lbmFibGU7CiAg ICAgaW50IGV4Y2x1c2lvbl9hbGxvd19hbGw7Ci0tLSBhL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9kZXRlY3QuYworKysgYi94ZW4vZHJp dmVycy9wYXNzdGhyb3VnaC9hbWQvaW9tbXVfZGV0ZWN0LmMKQEAgLTIyMyw2 ICsyMjMsMTEgQEAgaW50IF9faW5pdCBhbWRfaW9tbXVfZGV0ZWN0X29uZV9h Y3BpKAogICAgIGlmICggcnQgKQogICAgICAgICBnb3RvIG91dDsKIAorICAg IGlvbW11LT5kb21pZF9tYXAgPSBpb21tdV9pbml0X2RvbWlkKERPTUlEX0lO VkFMSUQpOworICAgIHJ0ID0gLUVOT01FTTsKKyAgICBpZiAoICFpb21tdS0+ ZG9taWRfbWFwICkKKyAgICAgICAgZ290byBvdXQ7CisKICAgICBydCA9IHBj aV9yb19kZXZpY2UoaW9tbXUtPnNlZywgYnVzLCBQQ0lfREVWRk4oZGV2LCBm dW5jKSk7CiAgICAgaWYgKCBydCApCiAgICAgICAgIHByaW50ayhYRU5MT0df RVJSICJDb3VsZCBub3QgbWFyayBjb25maWcgc3BhY2Ugb2YgJXBwIHJlYWQt b25seSAoJWQpXG4iLApAQCAtMjMzLDcgKzIzOCwxMCBAQCBpbnQgX19pbml0 IGFtZF9pb21tdV9kZXRlY3Rfb25lX2FjcGkoCiAKICBvdXQ6CiAgICAgaWYg KCBydCApCisgICAgeworICAgICAgICB4ZnJlZShpb21tdS0+ZG9taWRfbWFw KTsKICAgICAgICAgeGZyZWUoaW9tbXUpOworICAgIH0KIAogICAgIHJldHVy biBydDsKIH0KLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL3Bj aV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9h bWQvcGNpX2FtZF9pb21tdS5jCkBAIC01MzksNiArNTM5LDggQEAgc3RhdGlj IGludCBjZl9jaGVjayBhbWRfaW9tbXVfYWRkX2RldmljZQogICAgIHN0cnVj dCBhbWRfaW9tbXUgKmlvbW11OwogICAgIHUxNiBiZGY7CiAgICAgc3RydWN0 IGl2cnNfbWFwcGluZ3MgKml2cnNfbWFwcGluZ3M7CisgICAgYm9vbCBmcmVz aF9kb21pZCA9IGZhbHNlOworICAgIGludCByZXQ7CiAKICAgICBpZiAoICFw ZGV2LT5kb21haW4gKQogICAgICAgICByZXR1cm4gLUVJTlZBTDsKQEAgLTYw Niw3ICs2MDgsMjIgQEAgc3RhdGljIGludCBjZl9jaGVjayBhbWRfaW9tbXVf YWRkX2RldmljZQogICAgICAgICBBTURfSU9NTVVfV0FSTigiJXBkOiB1bml0 eSBtYXBwaW5nIGZhaWxlZCBmb3IgJXBwXG4iLAogICAgICAgICAgICAgICAg ICAgICAgICBwZGV2LT5kb21haW4sICZwZGV2LT5zYmRmKTsKIAotICAgIHJl dHVybiBhbWRfaW9tbXVfc2V0dXBfZG9tYWluX2RldmljZShwZGV2LT5kb21h aW4sIGlvbW11LCBkZXZmbiwgcGRldik7CisgICAgaWYgKCBpb21tdV9xdWFy YW50aW5lICYmIHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID09IERPTUlEX0lO VkFMSUQgKQorICAgIHsKKyAgICAgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9t aWQgPSBpb21tdV9hbGxvY19kb21pZChpb21tdS0+ZG9taWRfbWFwKTsKKyAg ICAgICAgaWYgKCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9J TlZBTElEICkKKyAgICAgICAgICAgIHJldHVybiAtRU5PU1BDOworICAgICAg ICBmcmVzaF9kb21pZCA9IHRydWU7CisgICAgfQorCisgICAgcmV0ID0gYW1k X2lvbW11X3NldHVwX2RvbWFpbl9kZXZpY2UocGRldi0+ZG9tYWluLCBpb21t dSwgZGV2Zm4sIHBkZXYpOworICAgIGlmICggcmV0ICYmIGZyZXNoX2RvbWlk ICkKKyAgICB7CisgICAgICAgIGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJj aC5wc2V1ZG9fZG9taWQsIGlvbW11LT5kb21pZF9tYXApOworICAgICAgICBw ZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFMSUQ7CisgICAg fQorCisgICAgcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIGludCBjZl9jaGVj ayBhbWRfaW9tbXVfcmVtb3ZlX2RldmljZSh1OCBkZXZmbiwgc3RydWN0IHBj aV9kZXYgKnBkZXYpCkBAIC02MzgsNiArNjU1LDkgQEAgc3RhdGljIGludCBj Zl9jaGVjayBhbWRfaW9tbXVfcmVtb3ZlX2RldgogICAgICAgICBBTURfSU9N TVVfV0FSTigiJXBkOiB1bml0eSB1bm1hcHBpbmcgZmFpbGVkIGZvciAlcHBc biIsCiAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiwgJnBk ZXYtPnNiZGYpOwogCisgICAgaW9tbXVfZnJlZV9kb21pZChwZGV2LT5hcmNo LnBzZXVkb19kb21pZCwgaW9tbXUtPmRvbWlkX21hcCk7CisgICAgcGRldi0+ YXJjaC5wc2V1ZG9fZG9taWQgPSBET01JRF9JTlZBTElEOworCiAgICAgaWYg KCBhbWRfaW9tbXVfcGVyZGV2X2ludHJlbWFwICYmCiAgICAgICAgICBpdnJz X21hcHBpbmdzW2JkZl0uZHRlX3JlcXVlc3Rvcl9pZCA9PSBiZGYgJiYKICAg ICAgICAgIGl2cnNfbWFwcGluZ3NbYmRmXS5pbnRyZW1hcF90YWJsZSApCi0t LSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCisrKyBiL3hlbi9k cml2ZXJzL3Bhc3N0aHJvdWdoL3BjaS5jCkBAIC0xMzQyLDkgKzEzNDIsMTQg QEAgc3RhdGljIGludCBjZl9jaGVjayBfZHVtcF9wY2lfZGV2aWNlcyhzdAog CiAgICAgbGlzdF9mb3JfZWFjaF9lbnRyeSAoIHBkZXYsICZwc2VnLT5hbGxk ZXZzX2xpc3QsIGFsbGRldnNfbGlzdCApCiAgICAgewotICAgICAgICBwcmlu dGsoIiVwcCAtICVwZCAtIG5vZGUgJS0zZCIsCi0gICAgICAgICAgICAgICAm cGRldi0+c2JkZiwgcGRldi0+ZG9tYWluLAotICAgICAgICAgICAgICAgKHBk ZXYtPm5vZGUgIT0gTlVNQV9OT19OT0RFKSA/IHBkZXYtPm5vZGUgOiAtMSk7 CisgICAgICAgIHByaW50aygiJXBwIC0gIiwgJnBkZXYtPnNiZGYpOworI2lm ZGVmIENPTkZJR19YODYKKyAgICAgICAgaWYgKCBwZGV2LT5kb21haW4gPT0g ZG9tX2lvICkKKyAgICAgICAgICAgIHByaW50aygiRG9tSU86JXgiLCBwZGV2 LT5hcmNoLnBzZXVkb19kb21pZCk7CisgICAgICAgIGVsc2UKKyNlbmRpZgor ICAgICAgICAgICAgcHJpbnRrKCIlcGQiLCBwZGV2LT5kb21haW4pOworICAg ICAgICBwcmludGsoIiAtIG5vZGUgJS0zZCIsIChwZGV2LT5ub2RlICE9IE5V TUFfTk9fTk9ERSkgPyBwZGV2LT5ub2RlIDogLTEpOwogICAgICAgICBwZGV2 X2R1bXBfbXNpKHBkZXYpOwogICAgICAgICBwcmludGsoIlxuIik7CiAgICAg fQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAt MjIsNiArMjIsNyBAQAogI2luY2x1ZGUgPHhlbi9zY2hlZC5oPgogI2luY2x1 ZGUgPHhlbi94bWFsbG9jLmg+CiAjaW5jbHVkZSA8eGVuL2RvbWFpbl9wYWdl Lmg+CisjaW5jbHVkZSA8eGVuL2Vyci5oPgogI2luY2x1ZGUgPHhlbi9pb2Nh cC5oPgogI2luY2x1ZGUgPHhlbi9pb21tdS5oPgogI2luY2x1ZGUgPHhlbi9u dW1hLmg+CkBAIC0xMTk5LDYgKzEyMDAsOCBAQCBpbnQgX19pbml0IGlvbW11 X2FsbG9jKHN0cnVjdCBhY3BpX2RyaGRfCiB7CiAgICAgc3RydWN0IHZ0ZF9p b21tdSAqaW9tbXU7CiAgICAgdW5zaWduZWQgaW50IHNhZ2F3LCBhZ2F3ID0g MCwgbnJfZG9tOworICAgIGRvbWlkX3QgcmVzZXJ2ZWRfZG9taWQgPSBET01J RF9JTlZBTElEOworICAgIGludCByYzsKIAogICAgIGlvbW11ID0geHphbGxv YyhzdHJ1Y3QgdnRkX2lvbW11KTsKICAgICBpZiAoIGlvbW11ID09IE5VTEwg KQpAQCAtMTI2OSw3ICsxMjcyLDcgQEAgaW50IF9faW5pdCBpb21tdV9hbGxv YyhzdHJ1Y3QgYWNwaV9kcmhkXwogCiAgICAgbnJfZG9tID0gY2FwX25kb21z KGlvbW11LT5jYXApOwogCi0gICAgaWYgKCBucl9kb20gPD0gRE9NSURfTUFT SyArIGNhcF9jYWNoaW5nX21vZGUoaW9tbXUtPmNhcCkgKQorICAgIGlmICgg bnJfZG9tIDw9IERPTUlEX01BU0sgKiAyICsgY2FwX2NhY2hpbmdfbW9kZShp b21tdS0+Y2FwKSApCiAgICAgewogICAgICAgICAvKiBBbGxvY2F0ZSBkb21h aW4gaWQgKGJpdCkgbWFwcy4gKi8KICAgICAgICAgaW9tbXUtPmRvbWlkX2Jp dG1hcCA9IHh6YWxsb2NfYXJyYXkodW5zaWduZWQgbG9uZywKQEAgLTEyOTMs OSArMTI5NiwyNCBAQCBpbnQgX19pbml0IGlvbW11X2FsbG9jKHN0cnVjdCBh Y3BpX2RyaGRfCiAgICAgICAgIC8qIERvbid0IGxlYXZlIGRhbmdsaW5nIE5V TEwgcG9pbnRlcnMuICovCiAgICAgICAgIGlvbW11LT5kb21pZF9iaXRtYXAg PSBaRVJPX0JMT0NLX1BUUjsKICAgICAgICAgaW9tbXUtPmRvbWlkX21hcCA9 IFpFUk9fQkxPQ0tfUFRSOworCisgICAgICAgIC8qCisgICAgICAgICAqIElm IENhY2hpbmcgbW9kZSBpcyBzZXQsIHRoZW4gaW52YWxpZCB0cmFuc2xhdGlv bnMgYXJlIHRhZ2dlZAorICAgICAgICAgKiB3aXRoIGRvbWFpbiBpZCAwLiBI ZW5jZSByZXNlcnZlIHRoZSBJRCB0YWtpbmcgdXAgYml0L3Nsb3QgMC4KKyAg ICAgICAgICovCisgICAgICAgIHJlc2VydmVkX2RvbWlkID0gY29udmVydF9k b21pZChpb21tdSwgMCkgPzogRE9NSURfSU5WQUxJRDsKICAgICB9CiAKKyAg ICBpb21tdS0+cHNldWRvX2RvbWlkX21hcCA9IGlvbW11X2luaXRfZG9taWQo cmVzZXJ2ZWRfZG9taWQpOworICAgIHJjID0gLUVOT01FTTsKKyAgICBpZiAo ICFpb21tdS0+cHNldWRvX2RvbWlkX21hcCApCisgICAgICAgIGdvdG8gZnJl ZTsKKwogICAgIHJldHVybiAwOworCisgZnJlZToKKyAgICBpb21tdV9mcmVl KGRyaGQpOworICAgIHJldHVybiByYzsKIH0KIAogdm9pZCBfX2luaXQgaW9t bXVfZnJlZShzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQpCkBAIC0xMzE4 LDYgKzEzMzYsNyBAQCB2b2lkIF9faW5pdCBpb21tdV9mcmVlKHN0cnVjdCBh Y3BpX2RyaGRfCiAKICAgICB4ZnJlZShpb21tdS0+ZG9taWRfYml0bWFwKTsK ICAgICB4ZnJlZShpb21tdS0+ZG9taWRfbWFwKTsKKyAgICB4ZnJlZShpb21t dS0+cHNldWRvX2RvbWlkX21hcCk7CiAKICAgICBpZiAoIGlvbW11LT5tc2ku aXJxID49IDAgKQogICAgICAgICBkZXN0cm95X2lycShpb21tdS0+bXNpLmly cSk7CkBAIC0xNTg4LDggKzE2MDcsOCBAQCBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZ19vbmUoCiAgICAgcmV0dXJuIHJjID86IHBkZXYgJiYgcHJldl9k b207CiB9CiAKLXN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3Ry dWN0IGRvbWFpbiAqZCwgdWludDhfdCBkZXZmbiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpOworc3Rh dGljIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAqZG9tYWluX2NvbnRl eHRfdW5tYXAoCisgICAgc3RydWN0IGRvbWFpbiAqZCwgdWludDhfdCBkZXZm biwgc3RydWN0IHBjaV9kZXYgKnBkZXYpOwogCiBzdGF0aWMgaW50IGRvbWFp bl9jb250ZXh0X21hcHBpbmcoc3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBk ZXZmbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgcGNpX2RldiAqcGRldikKQEAgLTE1OTcsNiArMTYxNiw3IEBAIHN0YXRp YyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICBjb25z dCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQgPSBhY3BpX2ZpbmRfbWF0 Y2hlZF9kcmhkX3VuaXQocGRldik7CiAgICAgY29uc3Qgc3RydWN0IGFjcGlf cm1ycl91bml0ICpybXJyOwogICAgIHBhZGRyX3QgcGdkX21hZGRyID0gZG9t X2lvbW11KGRvbWFpbiktPmFyY2gudnRkLnBnZF9tYWRkcjsKKyAgICBkb21p ZF90IG9yaWdfZG9taWQgPSBwZGV2LT5hcmNoLnBzZXVkb19kb21pZDsKICAg ICBpbnQgcmV0ID0gMDsKICAgICB1bnNpZ25lZCBpbnQgaSwgbW9kZSA9IDA7 CiAgICAgdWludDE2X3Qgc2VnID0gcGRldi0+c2VnLCBiZGY7CkBAIC0xNjU1 LDYgKzE2NzUsMTQgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBw aW5nKHN0cnVjdAogICAgICAgICBpZiAoICFkcmhkICkKICAgICAgICAgICAg IHJldHVybiAtRU5PREVWOwogCisgICAgICAgIGlmICggaW9tbXVfcXVhcmFu dGluZSAmJiBvcmlnX2RvbWlkID09IERPTUlEX0lOVkFMSUQgKQorICAgICAg ICB7CisgICAgICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9Cisg ICAgICAgICAgICAgICAgaW9tbXVfYWxsb2NfZG9taWQoZHJoZC0+aW9tbXUt PnBzZXVkb19kb21pZF9tYXApOworICAgICAgICAgICAgaWYgKCBwZGV2LT5h cmNoLnBzZXVkb19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAgICAgICAg ICAgICAgICByZXR1cm4gLUVOT1NQQzsKKyAgICAgICAgfQorCiAgICAgICAg IGlmICggaW9tbXVfZGVidWcgKQogICAgICAgICAgICAgcHJpbnRrKFZURFBS RUZJWCAiJXBkOlBDSWU6IG1hcCAlcHBcbiIsCiAgICAgICAgICAgICAgICAg ICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwpAQCAt MTY3Miw2ICsxNzAwLDE0IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRf bWFwcGluZyhzdHJ1Y3QKICAgICAgICAgaWYgKCAhZHJoZCApCiAgICAgICAg ICAgICByZXR1cm4gLUVOT0RFVjsKIAorICAgICAgICBpZiAoIGlvbW11X3F1 YXJhbnRpbmUgJiYgb3JpZ19kb21pZCA9PSBET01JRF9JTlZBTElEICkKKyAg ICAgICAgeworICAgICAgICAgICAgcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQg PQorICAgICAgICAgICAgICAgIGlvbW11X2FsbG9jX2RvbWlkKGRyaGQtPmlv bW11LT5wc2V1ZG9fZG9taWRfbWFwKTsKKyAgICAgICAgICAgIGlmICggcGRl di0+YXJjaC5wc2V1ZG9fZG9taWQgPT0gRE9NSURfSU5WQUxJRCApCisgICAg ICAgICAgICAgICAgcmV0dXJuIC1FTk9TUEM7CisgICAgICAgIH0KKwogICAg ICAgICBpZiAoIGlvbW11X2RlYnVnICkKICAgICAgICAgICAgIHByaW50ayhW VERQUkVGSVggIiVwZDpQQ0k6IG1hcCAlcHBcbiIsCiAgICAgICAgICAgICAg ICAgICAgZG9tYWluLCAmUENJX1NCREYzKHNlZywgYnVzLCBkZXZmbikpOwpA QCAtMTc0NSw2ICsxNzgxLDEzIEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRl eHRfbWFwcGluZyhzdHJ1Y3QKICAgICBpZiAoICFyZXQgJiYgZGV2Zm4gPT0g cGRldi0+ZGV2Zm4gKQogICAgICAgICBwY2lfdnRkX3F1aXJrKHBkZXYpOwog CisgICAgaWYgKCByZXQgJiYgZHJoZCAmJiBvcmlnX2RvbWlkID09IERPTUlE X0lOVkFMSUQgKQorICAgIHsKKyAgICAgICAgaW9tbXVfZnJlZV9kb21pZChw ZGV2LT5hcmNoLnBzZXVkb19kb21pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBkcmhkLT5pb21tdS0+cHNldWRvX2RvbWlkX21hcCk7CisgICAgICAg IHBkZXYtPmFyY2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsKKyAg ICB9CisKICAgICByZXR1cm4gcmV0OwogfQogCkBAIC0xODMwLDggKzE4NzMs MTAgQEAgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZSgKICAgICByZXR1 cm4gcmM7CiB9CiAKLXN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAo c3RydWN0IGRvbWFpbiAqZG9tYWluLCB1OCBkZXZmbiwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBjaV9kZXYgKnBkZXYpCitz dGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21haW5fY29u dGV4dF91bm1hcCgKKyAgICBzdHJ1Y3QgZG9tYWluICpkb21haW4sCisgICAg dWludDhfdCBkZXZmbiwKKyAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsK ICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQgPSBhY3Bp X2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CiAgICAgc3RydWN0IHZ0 ZF9pb21tdSAqaW9tbXUgPSBkcmhkID8gZHJoZC0+aW9tbXUgOiBOVUxMOwpA QCAtMTg0NSwxNiArMTg5MCwxNiBAQCBzdGF0aWMgaW50IGRvbWFpbl9jb250 ZXh0X3VubWFwKHN0cnVjdCBkCiAgICAgICAgIGlmICggaW9tbXVfZGVidWcg KQogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAiJXBkOkhvc3Ricmlk Z2U6IHNraXAgJXBwIHVubWFwXG4iLAogICAgICAgICAgICAgICAgICAgIGRv bWFpbiwgJlBDSV9TQkRGMyhzZWcsIGJ1cywgZGV2Zm4pKTsKLSAgICAgICAg cmV0dXJuIGlzX2hhcmR3YXJlX2RvbWFpbihkb21haW4pID8gMCA6IC1FUEVS TTsKKyAgICAgICAgcmV0dXJuIEVSUl9QVFIoaXNfaGFyZHdhcmVfZG9tYWlu KGRvbWFpbikgPyAwIDogLUVQRVJNKTsKIAogICAgIGNhc2UgREVWX1RZUEVf UENJZV9CUklER0U6CiAgICAgY2FzZSBERVZfVFlQRV9QQ0llMlBDSV9CUklE R0U6CiAgICAgY2FzZSBERVZfVFlQRV9MRUdBQ1lfUENJX0JSSURHRToKLSAg ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBFUlJfUFRSKDApOwog CiAgICAgY2FzZSBERVZfVFlQRV9QQ0llX0VORFBPSU5UOgogICAgICAgICBp ZiAoICFpb21tdSApCi0gICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKKyAg ICAgICAgICAgIHJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAgICAgICAg IGlmICggaW9tbXVfZGVidWcgKQogICAgICAgICAgICAgcHJpbnRrKFZURFBS RUZJWCAiJXBkOlBDSWU6IHVubWFwICVwcFxuIiwKQEAgLTE4NjgsNyArMTkx Myw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfdW5tYXAoc3RydWN0 IGQKIAogICAgIGNhc2UgREVWX1RZUEVfUENJOgogICAgICAgICBpZiAoICFp b21tdSApCi0gICAgICAgICAgICByZXR1cm4gLUVOT0RFVjsKKyAgICAgICAg ICAgIHJldHVybiBFUlJfUFRSKC1FTk9ERVYpOwogCiAgICAgICAgIGlmICgg aW9tbXVfZGVidWcgKQogICAgICAgICAgICAgcHJpbnRrKFZURFBSRUZJWCAi JXBkOlBDSTogdW5tYXAgJXBwXG4iLApAQCAtMTkxNSwxNCArMTk2MCwxNCBA QCBzdGF0aWMgaW50IGRvbWFpbl9jb250ZXh0X3VubWFwKHN0cnVjdCBkCiAg ICAgZGVmYXVsdDoKICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSIFZURFBS RUZJWCwgIiVwZDp1bmtub3duKCV1KTogJXBwXG4iLAogICAgICAgICAgICAg ICAgIGRvbWFpbiwgcGRldi0+dHlwZSwgJlBDSV9TQkRGMyhzZWcsIGJ1cywg ZGV2Zm4pKTsKLSAgICAgICAgcmV0dXJuIC1FSU5WQUw7CisgICAgICAgIHJl dHVybiBFUlJfUFRSKC1FSU5WQUwpOwogICAgIH0KIAogICAgIGlmICggIXJl dCAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiAmJgogICAgICAgICAgIVFVQVJB TlRJTkVfU0tJUChkb21haW4sIGRvbV9pb21tdShkb21haW4pLT5hcmNoLnZ0 ZC5wZ2RfbWFkZHIpICkKICAgICAgICAgY2hlY2tfY2xlYW51cF9kb21pZF9t YXAoZG9tYWluLCBwZGV2LCBpb21tdSk7CiAKLSAgICByZXR1cm4gcmV0Owor ICAgIHJldHVybiBkcmhkOwogfQogCiBzdGF0aWMgdm9pZCBjZl9jaGVjayBp b21tdV9jbGVhcl9yb290X3BndGFibGUoc3RydWN0IGRvbWFpbiAqZCkKQEAg LTIxNDksMTYgKzIxOTQsMTcgQEAgc3RhdGljIGludCBjZl9jaGVjayBpbnRl bF9pb21tdV9lbmFibGVfZAogCiBzdGF0aWMgaW50IGNmX2NoZWNrIGludGVs X2lvbW11X3JlbW92ZV9kZXZpY2UodTggZGV2Zm4sIHN0cnVjdCBwY2lfZGV2 ICpwZGV2KQogeworICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAq ZHJoZDsKICAgICBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7CiAgICAg dTE2IGJkZjsKLSAgICBpbnQgcmV0LCBpOworICAgIHVuc2lnbmVkIGludCBp OwogCiAgICAgaWYgKCAhcGRldi0+ZG9tYWluICkKICAgICAgICAgcmV0dXJu IC1FSU5WQUw7CiAKLSAgICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcChw ZGV2LT5kb21haW4sIGRldmZuLCBwZGV2KTsKLSAgICBpZiAoIHJldCApCi0g ICAgICAgIHJldHVybiByZXQ7CisgICAgZHJoZCA9IGRvbWFpbl9jb250ZXh0 X3VubWFwKHBkZXYtPmRvbWFpbiwgZGV2Zm4sIHBkZXYpOworICAgIGlmICgg SVNfRVJSKGRyaGQpICkKKyAgICAgICAgcmV0dXJuIFBUUl9FUlIoZHJoZCk7 CiAKICAgICBmb3JfZWFjaF9ybXJyX2RldmljZSAoIHJtcnIsIGJkZiwgaSAp CiAgICAgewpAQCAtMjE3NSw2ICsyMjIxLDEzIEBAIHN0YXRpYyBpbnQgY2Zf Y2hlY2sgaW50ZWxfaW9tbXVfcmVtb3ZlX2QKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBybXJyLT5lbmRfYWRkcmVzcywgMCk7CiAgICAgfQog CisgICAgaWYgKCBkcmhkICkKKyAgICB7CisgICAgICAgIGlvbW11X2ZyZWVf ZG9taWQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgZHJoZC0+aW9tbXUtPnBzZXVkb19kb21pZF9tYXApOwor ICAgICAgICBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCA9IERPTUlEX0lOVkFM SUQ7CisgICAgfQorCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTI1NTIsNyAr MjYwNSwxMiBAQCBzdGF0aWMgaW50IGNmX2NoZWNrIHJlYXNzaWduX2Rldmlj ZV9vd25lCiAgICAgICAgIH0KICAgICB9CiAgICAgZWxzZQotICAgICAgICBy ZXQgPSBkb21haW5fY29udGV4dF91bm1hcChzb3VyY2UsIGRldmZuLCBwZGV2 KTsKKyAgICB7CisgICAgICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5p dCAqZHJoZDsKKworICAgICAgICBkcmhkID0gZG9tYWluX2NvbnRleHRfdW5t YXAoc291cmNlLCBkZXZmbiwgcGRldik7CisgICAgICAgIHJldCA9IElTX0VS UihkcmhkKSA/IFBUUl9FUlIoZHJoZCkgOiAwOworICAgIH0KICAgICBpZiAo IHJldCApCiAgICAgewogICAgICAgICBpZiAoICFoYXNfYXJjaF9wZGV2cyh0 YXJnZXQpICkKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lv bW11LmgKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvdnRkL2lvbW11 LmgKQEAgLTUwMyw2ICs1MDMsNyBAQCBzdHJ1Y3QgdnRkX2lvbW11IHsKICAg ICB9IGZsdXNoOwogCiAgICAgc3RydWN0IGxpc3RfaGVhZCBhdHNfZGV2aWNl czsKKyAgICB1bnNpZ25lZCBsb25nICpwc2V1ZG9fZG9taWRfbWFwOyAvKiAi cHNldWRvIiBkb21haW4gaWQgYml0bWFwICovCiAgICAgdW5zaWduZWQgbG9u ZyAqZG9taWRfYml0bWFwOyAgLyogZG9tYWluIGlkIGJpdG1hcCAqLwogICAg IGRvbWlkX3QgKmRvbWlkX21hcDsgICAgICAgICAgIC8qIGRvbWFpbiBpZCBt YXBwaW5nIGFycmF5ICovCiAgICAgdWludDMyX3QgdmVyc2lvbjsKLS0tIGEv eGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKKysrIGIveGVu L2RyaXZlcnMvcGFzc3Rocm91Z2gveDg2L2lvbW11LmMKQEAgLTM5MSw2ICsz OTEsNjYgQEAgdm9pZCBfX2h3ZG9tX2luaXQgYXJjaF9pb21tdV9od2RvbV9p bml0KAogICAgICAgICByZXR1cm47CiB9CiAKK3ZvaWQgYXJjaF9wY2lfaW5p dF9wZGV2KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQoreworICAgIHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsKK30KKwordW5zaWdu ZWQgbG9uZyAqX19pbml0IGlvbW11X2luaXRfZG9taWQoZG9taWRfdCByZXNl cnZlKQoreworICAgIHVuc2lnbmVkIGxvbmcgKm1hcDsKKworICAgIGlmICgg IWlvbW11X3F1YXJhbnRpbmUgKQorICAgICAgICByZXR1cm4gWkVST19CTE9D S19QVFI7CisKKyAgICBCVUlMRF9CVUdfT04oRE9NSURfTUFTSyAqIDJVID49 IFVJTlQxNl9NQVgpOworCisgICAgbWFwID0geHphbGxvY19hcnJheSh1bnNp Z25lZCBsb25nLCBCSVRTX1RPX0xPTkdTKFVJTlQxNl9NQVggLSBET01JRF9N QVNLKSk7CisgICAgaWYgKCBtYXAgJiYgcmVzZXJ2ZSAhPSBET01JRF9JTlZB TElEICkKKyAgICB7CisgICAgICAgIEFTU0VSVChyZXNlcnZlID4gRE9NSURf TUFTSyk7CisgICAgICAgIF9fc2V0X2JpdChyZXNlcnZlICYgRE9NSURfTUFT SywgbWFwKTsKKyAgICB9CisKKyAgICByZXR1cm4gbWFwOworfQorCitkb21p ZF90IGlvbW11X2FsbG9jX2RvbWlkKHVuc2lnbmVkIGxvbmcgKm1hcCkKK3sK KyAgICAvKgorICAgICAqIFRoaXMgaXMgdXNlZCB1bmlmb3JtbHkgYWNyb3Nz IGFsbCBJT01NVXMsIHN1Y2ggdGhhdCBvbiB0eXBpY2FsCisgICAgICogc3lz dGVtcyB3ZSB3b3VsZG4ndCByZS11c2UgdGhlIHNhbWUgSUQgdmVyeSBxdWlj a2x5IChwZXJoYXBzIG5ldmVyKS4KKyAgICAgKi8KKyAgICBzdGF0aWMgdW5z aWduZWQgaW50IHN0YXJ0OworICAgIHVuc2lnbmVkIGludCBpZHggPSBmaW5k X25leHRfemVyb19iaXQobWFwLCBVSU5UMTZfTUFYIC0gRE9NSURfTUFTSywg c3RhcnQpOworCisgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOworCisg ICAgaWYgKCBpZHggPj0gVUlOVDE2X01BWCAtIERPTUlEX01BU0sgKQorICAg ICAgICBpZHggPSBmaW5kX2ZpcnN0X3plcm9fYml0KG1hcCwgVUlOVDE2X01B WCAtIERPTUlEX01BU0spOworICAgIGlmICggaWR4ID49IFVJTlQxNl9NQVgg LSBET01JRF9NQVNLICkKKyAgICAgICAgcmV0dXJuIERPTUlEX0lOVkFMSUQ7 CisKKyAgICBfX3NldF9iaXQoaWR4LCBtYXApOworCisgICAgc3RhcnQgPSBp ZHggKyAxOworCisgICAgcmV0dXJuIGlkeCB8IChET01JRF9NQVNLICsgMSk7 Cit9CisKK3ZvaWQgaW9tbXVfZnJlZV9kb21pZChkb21pZF90IGRvbWlkLCB1 bnNpZ25lZCBsb25nICptYXApCit7CisgICAgQVNTRVJUKHBjaWRldnNfbG9j a2VkKCkpOworCisgICAgaWYgKCBkb21pZCA9PSBET01JRF9JTlZBTElEICkK KyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGRvbWlkID4gRE9NSURf TUFTSyk7CisKKyAgICBpZiAoICFfX3Rlc3RfYW5kX2NsZWFyX2JpdChkb21p ZCAmIERPTUlEX01BU0ssIG1hcCkgKQorICAgICAgICBCVUcoKTsKK30KKwog aW50IGlvbW11X2ZyZWVfcGd0YWJsZXMoc3RydWN0IGRvbWFpbiAqZCkKIHsK ICAgICBzdHJ1Y3QgZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsK --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-10.patch" Content-Disposition: attachment; filename="xsa400/xsa400-10.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IGRyb3AgVExCIGZsdXNoZXMgZnJvbSBxdWFyYW50aW5l X2luaXQoKSBob29rcwoKVGhlIHBhZ2UgdGFibGVzIGp1c3QgY3JlYXRlZCBh cmVuJ3QgaG9va2VkIHVwIHlldCBhbnl3aGVyZSwgc28gdGhlcmUncwpub3Ro aW5nIHRoYXQgY291bGQgYmUgcHJlc2VudCBpbiBhbnkgVExCLCBhbmQgaGVu Y2Ugbm90aGluZyB0byBmbHVzaC4KRHJvcHBpbmcgdGhpcyBmbHVzaCBpcywg YXQgbGVhc3Qgb24gdGhlIFZULWQgc2lkZSwgYSBwcmVyZXEgdG8gcGVyLQpk ZXZpY2UgZG9tYWluIElEIHVzZSB3aGVuIHF1YXJhbnRpbmluZyBkZXZpY2Vz LCBhcyBkb21faW8gaXNuJ3QgZ29pbmcKdG8gYmUgYXNzaWduZWQgYSBESUQg YW55bW9yZTogVGhlIHdhcm5pbmcgaW4gZ2V0X2lvbW11X2RpZCgpIHdvdWxk CnRyaWdnZXIuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJldWxp Y2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBhdWxA eGVuLm9yZz4KUmV2aWV3ZWQtYnk6IFJvZ2VyIFBhdSBNb25uw6kgPHJvZ2Vy LnBhdUBjaXRyaXguY29tPgpSZXZpZXdlZC1ieTogS2V2aW4gVGlhbiA8a2V2 aW4udGlhbkBpbnRlbC5jb20+Ci0tLQp2NTogVGhpcyAocHJldmlvdXNseSBm b2xsb3ctb24pIHBhdGNoIGlzIG5vdyBwYXJ0IG9mIHRoaXMgc2VyaWVzLgoK LS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gvYW1kL2lvbW11X21hcC5j CisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9pb21tdV9tYXAu YwpAQCAtNjU2LDggKzY1Niw2IEBAIGludCBfX2luaXQgY2ZfY2hlY2sgYW1k X2lvbW11X3F1YXJhbnRpbmUKICBvdXQ6CiAgICAgc3Bpbl91bmxvY2soJmhk LT5hcmNoLm1hcHBpbmdfbG9jayk7CiAKLSAgICBhbWRfaW9tbXVfZmx1c2hf YWxsX3BhZ2VzKGQpOwotCiAgICAgLyogUGFnZXMgbGVha2VkIGluIGZhaWx1 cmUgY2FzZSAqLwogICAgIHJldHVybiBsZXZlbCA/IC1FTk9NRU0gOiAwOwog fQotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwor KysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuYwpAQCAt Mjk4MCw5ICsyOTgwLDYgQEAgc3RhdGljIGludCBfX2luaXQgY2ZfY2hlY2sg aW50ZWxfaW9tbXVfcQogIG91dDoKICAgICBzcGluX3VubG9jaygmaGQtPmFy Y2gubWFwcGluZ19sb2NrKTsKIAotICAgIGlmICggIXJjICkKLSAgICAgICAg cmMgPSBpb21tdV9mbHVzaF9pb3RsYl9hbGwoZCk7Ci0KICAgICAvKiBQYWdl cyBtYXkgYmUgbGVha2VkIGluIGZhaWx1cmUgY2FzZSAqLwogICAgIHJldHVy biByYzsKIH0K --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-11.patch" Content-Disposition: attachment; filename="xsa400/xsa400-11.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBBTUQvSU9NTVU6IGFic3RyYWN0IG1heGltdW0gbnVtYmVyIG9mIHBhZ2Ug dGFibGUgbGV2ZWxzCgpXZSB3aWxsIHdhbnQgdG8gdXNlIHRoZSBjb25zdGFu dCBlbHNld2hlcmUuCgpTaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8amJl dWxpY2hAc3VzZS5jb20+ClJldmlld2VkLWJ5OiBQYXVsIER1cnJhbnQgPHBh dWxAeGVuLm9yZz4KLS0tCnY3OiBOZXcuCgotLS0gYS94ZW4vZHJpdmVycy9w YXNzdGhyb3VnaC9hbWQvaW9tbXUtZGVmcy5oCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2FtZC9pb21tdS1kZWZzLmgKQEAgLTEwNiw2ICsxMDYs NyBAQCBzdHJ1Y3QgYW1kX2lvbW11X2R0ZSB7CiAgICAgYm9vbCB0djoxOwog ICAgIHVuc2lnbmVkIGludCA6NTsKICAgICB1bnNpZ25lZCBpbnQgaGFkOjI7 CisjZGVmaW5lIElPTU1VX01BWF9QVF9MRVZFTFMgNgogICAgIHVuc2lnbmVk IGludCBwYWdpbmdfbW9kZTozOwogICAgIHVpbnQ2NF90IHB0X3Jvb3Q6NDA7 CiAgICAgYm9vbCBwcHI6MTsKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvYW1kL3BjaV9hbWRfaW9tbXUuYworKysgYi94ZW4vZHJpdmVycy9wYXNz dGhyb3VnaC9hbWQvcGNpX2FtZF9pb21tdS5jCkBAIC0zMzcsNyArMzM3LDcg QEAgaW50IGFtZF9pb21tdV9hbGxvY19yb290KHN0cnVjdCBkb21haW4gKgog ICAgIHJldHVybiAwOwogfQogCi11bnNpZ25lZCBpbnQgX19yZWFkX21vc3Rs eSBhbWRfaW9tbXVfbWF4X3BhZ2luZ19tb2RlID0gNjsKK3Vuc2lnbmVkIGlu dCBfX3JlYWRfbW9zdGx5IGFtZF9pb21tdV9tYXhfcGFnaW5nX21vZGUgPSBJ T01NVV9NQVhfUFRfTEVWRUxTOwogaW50IF9fcmVhZF9tb3N0bHkgYW1kX2lv bW11X21pbl9wYWdpbmdfbW9kZSA9IDE7CiAKIHN0YXRpYyBpbnQgY2ZfY2hl Y2sgYW1kX2lvbW11X2RvbWFpbl9pbml0KHN0cnVjdCBkb21haW4gKmQpCg== --=separator Content-Type: application/octet-stream; name="xsa400/xsa400-12.patch" Content-Disposition: attachment; filename="xsa400/xsa400-12.patch" Content-Transfer-Encoding: base64 RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPgpTdWJqZWN0 OiBJT01NVS94ODY6IHVzZSBwZXItZGV2aWNlIHBhZ2UgdGFibGVzIGZvciBx dWFyYW50aW5pbmcKCkRldmljZXMgd2l0aCBSTVJScyAvIHVuaXR5IG1hcHBl ZCByZWdpb25zLCBkdWUgdG8gaXQgYmVpbmcgdW5zcGVjaWZpZWQKaG93L3do ZW4gdGhlc2UgbWVtb3J5IHJlZ2lvbnMgbWF5IGJlIGFjY2Vzc2VkLCBtYXkg bm90IGJlIGxlZnQKZGlzY29ubmVjdGVkIGZyb20gdGhlIG1hcHBpbmdzIG9m IHRoZXNlIHJlZ2lvbnMgKGFzIGxvbmcgYXMgaXQncyBub3QKY2VydGFpbiB0 aGF0IHRoZSBkZXZpY2UgaGFzIGJlZW4gZnVsbHkgcXVpZXNjZWQpLiBIZW5j ZSBldmVuIHRoZSBwYWdlCnRhYmxlcyB1c2VkIHdoZW4gcXVhcmFudGluaW5n IHN1Y2ggZGV2aWNlcyBuZWVkIHRvIGhhdmUgbWFwcGluZ3Mgb2YKdGhvc2Ug cmVnaW9ucy4gVGhpcyBpbXBsaWVzIGluc3RhbGxpbmcgcGFnZSB0YWJsZXMg aW4gdGhlIGZpcnN0IHBsYWNlCmV2ZW4gd2hlbiBub3QgaW4gc2NyYXRjaC1w YWdlIHF1YXJhbnRpbmluZyBtb2RlLgoKVGhpcyBpcyBDVkUtMjAyMi0yNjM2 MSAvIHBhcnQgb2YgWFNBLTQwMC4KCldoaWxlIGZvciB0aGUgcHVycG9zZSBo ZXJlIGl0IHdvdWxkIGJlIHN1ZmZpY2llbnQgdG8gaGF2ZSBkZXZpY2VzIHdp dGgKUk1SUnMgLyB1bml0eSBtYXBwZWQgcmVnaW9ucyB1c2UgcGVyLWRldmlj ZSBwYWdlIHRhYmxlcywgZXh0ZW5kIHRoaXMgdG8KYWxsIGRldmljZXMgKGlu IHNjcmF0Y2gtcGFnZSBxdWFyYW50aW5pbmcgbW9kZSkuIFRoaXMgYWxsb3dz IHRoZSBsZWFmCnBhZ2VzIHRvIGJlIG1hcHBlZCByL3csIHRodXMgY292ZXJp bmcgYWxzbyBtZW1vcnkgd3JpdGVzIChyYXRoZXIgdGhhbgpqdXN0IHJlYWRz KSBpc3N1ZWQgYnkgbm9uLXF1aWVzY2VudCBkZXZpY2VzLgoKU2V0IHVwIHF1 YXJhbnRpbmUgcGFnZSB0YWJsZXMgYXMgbGF0ZSBhcyBwb3NzaWJsZSwgeWV0 IGVhcmx5IGVub3VnaCB0bwpub3QgZW5jb3VudGVyIGZhaWx1cmUgZHVyaW5n IGRlLWFzc2lnbi4gVGhpcyBtZWFucyBzZXR1cCBnZW5lcmFsbHkKaGFwcGVu cyBpbiBhc3NpZ25fZGV2aWNlKCksIHdoaWxlIChmb3Igbm93KSB0aGUgb25l IGluIGRlYXNzaWduX2RldmljZSgpCmlzIHRoZXJlIG1haW5seSB0byBiZSBv biB0aGUgc2FmZSBzaWRlLgoKQXMgdG8gdGhlIHJlbW92YWwgb2YgUVVBUkFO VElORV9TS0lQKCkgZnJvbSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoKToK SSB0aGluayB0aGlzIHdhcyBuZXZlciByZWFsbHkgbmVlZGVkIHRoZXJlLCBh cyB0aGUgZnVuY3Rpb24gZXhwbGljaXRseQpkZWFscyB3aXRoIGZpbmRpbmcg YSBub24tcHJlc2VudCBjb250ZXh0IGVudHJ5LiBMZWF2aW5nIGl0IHRoZXJl IHdvdWxkCnJlcXVpcmUgcHJvcGFnYXRpbmcgcGdkX21hZGRyIGludG8gdGhl IGZ1bmN0aW9uIChsaWtlIHdhcyBkb25lIGJ5ICJWVC1kOgpwcmVwYXJlIGZv ciBwZXItZGV2aWNlIHF1YXJhbnRpbmUgcGFnZSB0YWJsZXMiIGZvcgpkb21h aW5fY29udGV4dF9tYXBwaW5nX29uZSgpKS4KCkluIFZULWQncyBESUQgYWxs b2NhdGlvbiBmdW5jdGlvbiBkb24ndCByZXF1aXJlIHRoZSBJT01NVSBsb2Nr IHRvIGJlCmhlbGQgYW55bW9yZTogQWxsIGludm9sdmVkIGNvZGUgcGF0aHMg aG9sZCBwY2lkZXZzX2xvY2ssIHNvIHRoaXMgd2F5IHdlCmF2b2lkIHRoZSBu ZWVkIHRvIGFjcXVpcmUgdGhlIElPTU1VIGxvY2sgYXJvdW5kIHRoZSBuZXcg Y2FsbCB0bwpjb250ZXh0X3NldF9kb21haW5faWQoKS4KClNpZ25lZC1vZmYt Ynk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KUmV2aWV3ZWQt Ynk6IFBhdWwgRHVycmFudCA8cGF1bEB4ZW4ub3JnPgpSZXZpZXdlZC1ieTog S2V2aW4gVGlhbiA8a2V2aW4udGlhbkBpbnRlbC5jb20+ClJldmlld2VkLWJ5 OiBSb2dlciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4KLS0t CnY3OiBBZGQgY29tbWVudCBhaGVhZCBvZiBjb250ZXh0X3NldF9kb21haW5f aWQoKS4gVXNlCiAgICBJT01NVV9NQVhfUFRfTEVWRUxTLiBSZS1iYXNlLgp2 NjogY29udGV4dF9zZXRfZG9tYWluX2lkKCkncyBBU1NFUlQoKSBjaGFuZ2Ug bW92ZWQgaGVyZSAoZnJvbSBlYXJsaWVyCiAgICBwYXRjaCkuIFNob3J0ZW4g QkRGIGNvbXBhcmlzb24gaW4gaW50ZWxfaW9tbXVfcXVhcmFudGluZV9pbml0 KCkuIFJlLQogICAgYmFzZSBvdmVyIGNoYW5nZXMgZWFybGllciBpbiB0aGUg c2VyaWVzLgp2NTogQWxzbyB1c2UgcGVyLWRldmljZSAocHNldWRvKSBkb21h aW4gSUQuIFN1cHByZXNzIGNvcnJ1cHRpb24gd2FybmluZwogICAgZm9yIERv bUlPLiBSZS1iYXNlIG92ZXIgY2hhbmdlcyB0byBlYXJsaWVyIHBhdGNoZXMu CnY0OiBSZS1iYXNlIG92ZXIgbmV3IGVhcmxpZXIgcGF0Y2guCnYzOiBObyBz cGlubmluZyBpbiBxdWFyYW50aW5lX2luaXQoKSBob29rcyB3aGVuIHRyYW5z aWVudGx5IHBvcHVsYXRpbmcKICAgIGRvbV9pbydzIHBhZ2UgdGFibGUgcm9v dC4gcXVhcmFudGluZV90ZWFyZG93bigpIGFuZCBhcnJhbmdlbWVudHMgZm9y CiAgICB0aGVtIHJlZG9uZS4gUmUtYmFzZSBvdmVyIGNoYW5nZXMgZWFybGll ciBpbiB0aGUgc2VyaWVzLiBFeHRlbmQgYQogICAgY29tbWVudC4gSW50cm9k dWNlIERFVklDRV9QR1RBQkxFKCkuIFJlLWJhc2UuCnYyOiBOZXcuCgotLS0g YS94ZW4vYXJjaC94ODYvaW5jbHVkZS9hc20vcGNpLmgKKysrIGIveGVuL2Fy Y2gveDg2L2luY2x1ZGUvYXNtL3BjaS5oCkBAIC0xLDYgKzEsOCBAQAogI2lm bmRlZiBfX1g4Nl9QQ0lfSF9fCiAjZGVmaW5lIF9fWDg2X1BDSV9IX18KIAor I2luY2x1ZGUgPHhlbi9tbS5oPgorCiAjZGVmaW5lIENGOF9CREYoY2Y4KSAg ICAgKCAgKChjZjgpICYgMHgwMGZmZmYwMCkgPj4gOCkKICNkZWZpbmUgQ0Y4 X0FERFJfTE8oY2Y4KSAoICAgKGNmOCkgJiAweDAwMDAwMGZjKQogI2RlZmlu ZSBDRjhfQUREUl9ISShjZjgpICggICgoY2Y4KSAmIDB4MGYwMDAwMDApID4+ IDE2KQpAQCAtMTgsNyArMjAsMTggQEAgc3RydWN0IGFyY2hfcGNpX2RldiB7 CiAgICAgICogdGhlbSBkb24ndCByYWNlIChkZSlpbml0aWFsaXphdGlvbiBh bmQgaGVuY2UgZG9uJ3Qgc3RyaWN0bHkgbmVlZCBhbnkKICAgICAgKiBsb2Nr aW5nLgogICAgICAqLworICAgIHVuaW9uIHsKKyAgICAgICAgLyogU3Vic2V0 IG9mIHN0cnVjdCBhcmNoX2lvbW11J3MgZmllbGRzLCB0byBiZSB1c2VkIGlu IGRvbV9pby4gKi8KKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIHVp bnQ2NF90IHBnZF9tYWRkcjsKKyAgICAgICAgfSB2dGQ7CisgICAgICAgIHN0 cnVjdCB7CisgICAgICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpyb290X3Rh YmxlOworICAgICAgICB9IGFtZDsKKyAgICB9OwogICAgIGRvbWlkX3QgcHNl dWRvX2RvbWlkOworICAgIG1mbl90IGxlYWZfbWZuOworICAgIHN0cnVjdCBw YWdlX2xpc3RfaGVhZCBwZ3RhYmxlc19saXN0OwogfTsKIAogaW50IHBjaV9j b25mX3dyaXRlX2ludGVyY2VwdCh1bnNpZ25lZCBpbnQgc2VnLCB1bnNpZ25l ZCBpbnQgYmRmLAotLS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQv aW9tbXUuaAorKysgYi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC9hbWQvaW9t bXUuaApAQCAtMjM3LDcgKzIzNyw4IEBAIGludCBhbWRfaW9tbXVfaW5pdF9s YXRlKHZvaWQpOwogaW50IGFtZF9pb21tdV91cGRhdGVfaXZyc19tYXBwaW5n X2FjcGkodm9pZCk7CiBpbnQgY2ZfY2hlY2sgaW92X2FkanVzdF9pcnFfYWZm aW5pdGllcyh2b2lkKTsKIAotaW50IGNmX2NoZWNrIGFtZF9pb21tdV9xdWFy YW50aW5lX2luaXQoc3RydWN0IGRvbWFpbiAqZCk7CitpbnQgY2ZfY2hlY2sg YW1kX2lvbW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3QgcGNpX2RldiAqcGRl diwgYm9vbCBzY3JhdGNoX3BhZ2UpOwordm9pZCBhbWRfaW9tbXVfcXVhcmFu dGluZV90ZWFyZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldik7CiAKIC8qIG1h cHBpbmcgZnVuY3Rpb25zICovCiBpbnQgX19tdXN0X2NoZWNrIGNmX2NoZWNr IGFtZF9pb21tdV9tYXBfcGFnZSgKLS0tIGEveGVuL2RyaXZlcnMvcGFzc3Ro cm91Z2gvYW1kL2lvbW11X21hcC5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL2FtZC9pb21tdV9tYXAuYwpAQCAtNjAwLDY0ICs2MDAsMTM4IEBA IGludCBjZl9jaGVjayBhbWRfaW9tbXVfZ2V0X3Jlc2VydmVkX2RldmkKICAg ICByZXR1cm4gMDsKIH0KIAotaW50IF9faW5pdCBjZl9jaGVjayBhbWRfaW9t bXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBkb21haW4gKmQpCitzdGF0aWMg aW50IGZpbGxfcXB0KHVuaW9uIGFtZF9pb21tdV9wdGUgKnRoaXMsIHVuc2ln bmVkIGludCBsZXZlbCwKKyAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBh Z2VfaW5mbyAqcGdzW0lPTU1VX01BWF9QVF9MRVZFTFNdKQogewotICAgIHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGQpOworICAgIHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7Cisg ICAgdW5zaWduZWQgaW50IGk7CisgICAgaW50IHJjID0gMDsKKworICAgIGZv ciAoIGkgPSAwOyAhcmMgJiYgaSA8IFBURV9QRVJfVEFCTEVfU0laRTsgKytp ICkKKyAgICB7CisgICAgICAgIHVuaW9uIGFtZF9pb21tdV9wdGUgKnB0ZSA9 ICZ0aGlzW2ldLCAqbmV4dDsKKworICAgICAgICBpZiAoICFwdGUtPnByICkK KyAgICAgICAgeworICAgICAgICAgICAgaWYgKCAhcGdzW2xldmVsXSApCisg ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgLyoKKyAgICAgICAgICAg ICAgICAgKiBUaGUgcGd0YWJsZSBhbGxvY2F0b3IgaXMgZmluZSBmb3IgdGhl IGxlYWYgcGFnZSwgYXMgd2VsbCBhcworICAgICAgICAgICAgICAgICAqIHBh Z2UgdGFibGUgcGFnZXMsIGFuZCB0aGUgcmVzdWx0aW5nIGFsbG9jYXRpb25z IGFyZSBhbHdheXMKKyAgICAgICAgICAgICAgICAgKiB6ZXJvZWQuCisgICAg ICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgcGdzW2xldmVsXSA9 IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOworICAgICAgICAgICAgICAgIGlm ICggIXBnc1tsZXZlbF0gKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgcmMgPSAtRU5PTUVNOworICAgICAgICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg ICBpZiAoIGxldmVsICkKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgIG5leHQgPSBfX21hcF9kb21haW5fcGFnZShwZ3NbbGV2ZWxd KTsKKyAgICAgICAgICAgICAgICAgICAgcmMgPSBmaWxsX3FwdChuZXh0LCBs ZXZlbCAtIDEsIHBncyk7CisgICAgICAgICAgICAgICAgICAgIHVubWFwX2Rv bWFpbl9wYWdlKG5leHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgIH0KKworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICAqIFBERXMg YXJlIGVzc2VudGlhbGx5IGEgc3Vic2V0IG9mIFBURXMsIHNvIHRoaXMgZnVu Y3Rpb24KKyAgICAgICAgICAgICAqIGlzIGZpbmUgdG8gdXNlIGV2ZW4gYXQg dGhlIGxlYWYuCisgICAgICAgICAgICAgKi8KKyAgICAgICAgICAgIHNldF9p b21tdV9wZGVfcHJlc2VudChwdGUsIG1mbl94KHBhZ2VfdG9fbWZuKHBnc1ts ZXZlbF0pKSwgbGV2ZWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgZWxzZSBp ZiAoIGxldmVsICYmIHB0ZS0+bmV4dF9sZXZlbCApCisgICAgICAgIHsKKyAg ICAgICAgICAgIG5leHQgPSBtYXBfZG9tYWluX3BhZ2UoX21mbihwdGUtPm1m bikpOworICAgICAgICAgICAgcmMgPSBmaWxsX3FwdChuZXh0LCBsZXZlbCAt IDEsIHBncyk7CisgICAgICAgICAgICB1bm1hcF9kb21haW5fcGFnZShuZXh0 KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiByYzsKK30KKwor aW50IGNmX2NoZWNrIGFtZF9pb21tdV9xdWFyYW50aW5lX2luaXQoc3RydWN0 IHBjaV9kZXYgKnBkZXYsIGJvb2wgc2NyYXRjaF9wYWdlKQoreworICAgIHN0 cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7CiAg ICAgdW5zaWduZWQgbG9uZyBlbmRfZ2ZuID0KICAgICAgICAgMXVsIDw8IChE RUZBVUxUX0RPTUFJTl9BRERSRVNTX1dJRFRIIC0gUEFHRV9TSElGVCk7CiAg ICAgdW5zaWduZWQgaW50IGxldmVsID0gYW1kX2lvbW11X2dldF9wYWdpbmdf bW9kZShlbmRfZ2ZuKTsKLSAgICB1bmlvbiBhbWRfaW9tbXVfcHRlICp0YWJs ZTsKKyAgICB1bnNpZ25lZCBpbnQgcmVxX2lkID0gZ2V0X2RtYV9yZXF1ZXN0 b3JfaWQocGRldi0+c2VnLCBwZGV2LT5zYmRmLmJkZik7CisgICAgY29uc3Qg c3RydWN0IGl2cnNfbWFwcGluZ3MgKml2cnNfbWFwcGluZ3MgPSBnZXRfaXZy c19tYXBwaW5ncyhwZGV2LT5zZWcpOworICAgIGludCByYzsKKworICAgIEFT U0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKyAgICBBU1NFUlQoIWhkLT5hcmNo LmFtZC5yb290X3RhYmxlKTsKKyAgICBBU1NFUlQocGFnZV9saXN0X2VtcHR5 KCZoZC0+YXJjaC5wZ3RhYmxlcy5saXN0KSk7CiAKLSAgICBpZiAoIGhkLT5h cmNoLmFtZC5yb290X3RhYmxlICkKLSAgICB7Ci0gICAgICAgIEFTU0VSVF9V TlJFQUNIQUJMRSgpOworICAgIGlmICggIXNjcmF0Y2hfcGFnZSAmJiAhaXZy c19tYXBwaW5nc1tyZXFfaWRdLnVuaXR5X21hcCApCiAgICAgICAgIHJldHVy biAwOwotICAgIH0KIAotICAgIHNwaW5fbG9jaygmaGQtPmFyY2gubWFwcGlu Z19sb2NrKTsKKyAgICBBU1NFUlQocGRldi0+YXJjaC5wc2V1ZG9fZG9taWQg IT0gRE9NSURfSU5WQUxJRCk7CiAKLSAgICBoZC0+YXJjaC5hbWQucm9vdF90 YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOwotICAgIGlmICggIWhk LT5hcmNoLmFtZC5yb290X3RhYmxlICkKLSAgICAgICAgZ290byBvdXQ7Cisg ICAgaWYgKCBwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlICkKKyAgICB7Cisg ICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBkZXYtPmFyY2gubGVhZl9tZm4p OworICAgICAgICByZXR1cm4gMDsKKyAgICB9CiAKLSAgICB0YWJsZSA9IF9f bWFwX2RvbWFpbl9wYWdlKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKTsKLSAg ICB3aGlsZSAoIGxldmVsICkKKyAgICBwZGV2LT5hcmNoLmFtZC5yb290X3Rh YmxlID0gaW9tbXVfYWxsb2NfcGd0YWJsZShoZCk7CisgICAgaWYgKCAhcGRl di0+YXJjaC5hbWQucm9vdF90YWJsZSApCisgICAgICAgIHJldHVybiAtRU5P TUVNOworCisgICAgLyogVHJhbnNpZW50bHkgaW5zdGFsbCB0aGUgcm9vdCBp bnRvIERvbUlPLCBmb3IgaW9tbXVfaWRlbnRpdHlfbWFwcGluZygpLiAqLwor ICAgIGhkLT5hcmNoLmFtZC5yb290X3RhYmxlID0gcGRldi0+YXJjaC5hbWQu cm9vdF90YWJsZTsKKworICAgIHJjID0gYW1kX2lvbW11X3Jlc2VydmVfZG9t YWluX3VuaXR5X21hcChkb21faW8sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGl2cnNfbWFwcGluZ3NbcmVxX2lkXS51 bml0eV9tYXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDApOworCisgICAgaW9tbXVfaWRlbnRpdHlfbWFwX3RlYXJk b3duKGRvbV9pbyk7CisgICAgaGQtPmFyY2guYW1kLnJvb3RfdGFibGUgPSBO VUxMOworCisgICAgaWYgKCByYyApCisgICAgICAgIEFNRF9JT01NVV9XQVJO KCIlcHA6IHF1YXJhbnRpbmUgdW5pdHkgbWFwcGluZyBmYWlsZWRcbiIsICZw ZGV2LT5zYmRmKTsKKyAgICBlbHNlIGlmICggc2NyYXRjaF9wYWdlICkKICAg ICB7Ci0gICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnOwotICAgICAgICB1 bnNpZ25lZCBpbnQgaTsKKyAgICAgICAgdW5pb24gYW1kX2lvbW11X3B0ZSAq cm9vdDsKKyAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdzW0lPTU1VX01B WF9QVF9MRVZFTFNdID0ge307CiAKLSAgICAgICAgLyoKLSAgICAgICAgICog VGhlIHBndGFibGUgYWxsb2NhdG9yIGlzIGZpbmUgZm9yIHRoZSBsZWFmIHBh Z2UsIGFzIHdlbGwgYXMKLSAgICAgICAgICogcGFnZSB0YWJsZSBwYWdlcywg YW5kIHRoZSByZXN1bHRpbmcgYWxsb2NhdGlvbnMgYXJlIGFsd2F5cwotICAg ICAgICAgKiB6ZXJvZWQuCi0gICAgICAgICAqLwotICAgICAgICBwZyA9IGlv bW11X2FsbG9jX3BndGFibGUoaGQpOwotICAgICAgICBpZiAoICFwZyApCi0g ICAgICAgICAgICBicmVhazsKKyAgICAgICAgc3Bpbl9sb2NrKCZoZC0+YXJj aC5tYXBwaW5nX2xvY2spOwogCi0gICAgICAgIGZvciAoIGkgPSAwOyBpIDwg UFRFX1BFUl9UQUJMRV9TSVpFOyBpKysgKQotICAgICAgICB7Ci0gICAgICAg ICAgICB1bmlvbiBhbWRfaW9tbXVfcHRlICpwZGUgPSAmdGFibGVbaV07Cisg ICAgICAgIHJvb3QgPSBfX21hcF9kb21haW5fcGFnZShwZGV2LT5hcmNoLmFt ZC5yb290X3RhYmxlKTsKKyAgICAgICAgcmMgPSBmaWxsX3FwdChyb290LCBs ZXZlbCAtIDEsIHBncyk7CisgICAgICAgIHVubWFwX2RvbWFpbl9wYWdlKHJv b3QpOwogCi0gICAgICAgICAgICAvKgotICAgICAgICAgICAgICogUERFcyBh cmUgZXNzZW50aWFsbHkgYSBzdWJzZXQgb2YgUFRFcywgc28gdGhpcyBmdW5j dGlvbgotICAgICAgICAgICAgICogaXMgZmluZSB0byB1c2UgZXZlbiBhdCB0 aGUgbGVhZi4KLSAgICAgICAgICAgICAqLwotICAgICAgICAgICAgc2V0X2lv bW11X3BkZV9wcmVzZW50KHBkZSwgbWZuX3gocGFnZV90b19tZm4ocGcpKSwg bGV2ZWwgLSAxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZhbHNlLCB0cnVlKTsKLSAgICAgICAgfQorICAgICAgICBwZGV2LT5hcmNo LmxlYWZfbWZuID0gcGFnZV90b19tZm4ocGdzWzBdKTsKIAotICAgICAgICB1 bm1hcF9kb21haW5fcGFnZSh0YWJsZSk7Ci0gICAgICAgIHRhYmxlID0gX19t YXBfZG9tYWluX3BhZ2UocGcpOwotICAgICAgICBsZXZlbC0tOworICAgICAg ICBzcGluX3VubG9jaygmaGQtPmFyY2gubWFwcGluZ19sb2NrKTsKICAgICB9 Ci0gICAgdW5tYXBfZG9tYWluX3BhZ2UodGFibGUpOwogCi0gb3V0OgotICAg IHNwaW5fdW5sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworICAgIHBh Z2VfbGlzdF9tb3ZlKCZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3QsICZoZC0+ YXJjaC5wZ3RhYmxlcy5saXN0KTsKKworICAgIGlmICggcmMgKQorICAgICAg ICBhbWRfaW9tbXVfcXVhcmFudGluZV90ZWFyZG93bihwZGV2KTsKKworICAg IHJldHVybiByYzsKK30KKwordm9pZCBhbWRfaW9tbXVfcXVhcmFudGluZV90 ZWFyZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldikKK3sKKyAgICBzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21faW8pOworCisgICAg QVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOworCisgICAgaWYgKCAhcGRldi0+ YXJjaC5hbWQucm9vdF90YWJsZSApCisgICAgICAgIHJldHVybjsKIAotICAg IC8qIFBhZ2VzIGxlYWtlZCBpbiBmYWlsdXJlIGNhc2UgKi8KLSAgICByZXR1 cm4gbGV2ZWwgPyAtRU5PTUVNIDogMDsKKyAgICBBU1NFUlQocGFnZV9saXN0 X2VtcHR5KCZoZC0+YXJjaC5wZ3RhYmxlcy5saXN0KSk7CisgICAgcGFnZV9s aXN0X21vdmUoJmhkLT5hcmNoLnBndGFibGVzLmxpc3QsICZwZGV2LT5hcmNo LnBndGFibGVzX2xpc3QpOworICAgIHdoaWxlICggaW9tbXVfZnJlZV9wZ3Rh Ymxlcyhkb21faW8pID09IC1FUkVTVEFSVCApCisgICAgICAgIC8qIG5vdGhp bmcgKi87CisgICAgcGRldi0+YXJjaC5hbWQucm9vdF90YWJsZSA9IE5VTEw7 CiB9CiAKIC8qCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0aHJvdWdoL2FtZC9w Y2lfYW1kX2lvbW11LmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91Z2gv YW1kL3BjaV9hbWRfaW9tbXUuYwpAQCAtMjYsNyArMjYsNyBAQAogI2luY2x1 ZGUgIi4uL2F0cy5oIgogCiAvKiBkb21faW8gaXMgdXNlZCBhcyBhIHNlbnRp bmVsIGZvciBxdWFyYW50aW5lZCBkZXZpY2VzICovCi0jZGVmaW5lIFFVQVJB TlRJTkVfU0tJUChkKSAoKGQpID09IGRvbV9pbyAmJiAhZG9tX2lvbW11KGQp LT5hcmNoLmFtZC5yb290X3RhYmxlKQorI2RlZmluZSBRVUFSQU5USU5FX1NL SVAoZCwgcCkgKChkKSA9PSBkb21faW8gJiYgIShwKS0+YXJjaC5hbWQucm9v dF90YWJsZSkKIAogc3RhdGljIGJvb2xfdCBfX3JlYWRfbW9zdGx5IGluaXRf ZG9uZTsKIApAQCAtMTI1LDggKzEyNSwxMCBAQCBzdGF0aWMgaW50IF9fbXVz dF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgdTggYnVzID0gcGRldi0+ YnVzOwogICAgIHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11 KGRvbWFpbik7CiAgICAgY29uc3Qgc3RydWN0IGl2cnNfbWFwcGluZ3MgKml2 cnNfZGV2OworICAgIGNvbnN0IHN0cnVjdCBwYWdlX2luZm8gKnJvb3RfcGc7 CisgICAgZG9taWRfdCBkb21pZDsKIAotICAgIGlmICggUVVBUkFOVElORV9T S0lQKGRvbWFpbikgKQorICAgIGlmICggUVVBUkFOVElORV9TS0lQKGRvbWFp biwgcGRldikgKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIEJVR19PTigh aGQtPmFyY2guYW1kLnBhZ2luZ19tb2RlIHx8ICFpb21tdS0+ZGV2X3RhYmxl LmJ1ZmZlcik7CkBAIC0xNDcsMTQgKzE0OSwyNSBAQCBzdGF0aWMgaW50IF9f bXVzdF9jaGVjayBhbWRfaW9tbXVfc2V0dXBfCiAgICAgZHRlID0gJnRhYmxl W3JlcV9pZF07CiAgICAgaXZyc19kZXYgPSAmZ2V0X2l2cnNfbWFwcGluZ3Mo aW9tbXUtPnNlZylbcmVxX2lkXTsKIAorICAgIGlmICggZG9tYWluICE9IGRv bV9pbyApCisgICAgeworICAgICAgICByb290X3BnID0gaGQtPmFyY2guYW1k LnJvb3RfdGFibGU7CisgICAgICAgIGRvbWlkID0gZG9tYWluLT5kb21haW5f aWQ7CisgICAgfQorICAgIGVsc2UKKyAgICB7CisgICAgICAgIHJvb3RfcGcg PSBwZGV2LT5hcmNoLmFtZC5yb290X3RhYmxlOworICAgICAgICBkb21pZCA9 IHBkZXYtPmFyY2gucHNldWRvX2RvbWlkOworICAgIH0KKwogICAgIHNwaW5f bG9ja19pcnFzYXZlKCZpb21tdS0+bG9jaywgZmxhZ3MpOwogCiAgICAgaWYg KCAhZHRlLT52IHx8ICFkdGUtPnR2ICkKICAgICB7CiAgICAgICAgIC8qIGJp bmQgRFRFIHRvIGRvbWFpbiBwYWdlLXRhYmxlcyAqLwogICAgICAgICByYyA9 IGFtZF9pb21tdV9zZXRfcm9vdF9wYWdlX3RhYmxlKAotICAgICAgICAgICAg ICAgICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2guYW1kLnJvb3RfdGFi bGUpLAotICAgICAgICAgICAgICAgICBkb21haW4tPmRvbWFpbl9pZCwgaGQt PmFyY2guYW1kLnBhZ2luZ19tb2RlLCBzcl9mbGFncyk7CisgICAgICAgICAg ICAgICAgIGR0ZSwgcGFnZV90b19tYWRkcihyb290X3BnKSwgZG9taWQsCisg ICAgICAgICAgICAgICAgIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSwgc3Jf ZmxhZ3MpOwogICAgICAgICBpZiAoIHJjICkKICAgICAgICAgewogICAgICAg ICAgICAgQVNTRVJUKHJjIDwgMCk7CkBAIC0xODEsNyArMTk0LDcgQEAgc3Rh dGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVwXwogCiAgICAg ICAgIGFtZF9pb21tdV9mbHVzaF9kZXZpY2UoaW9tbXUsIHJlcV9pZCk7CiAg ICAgfQotICAgIGVsc2UgaWYgKCBkdGUtPnB0X3Jvb3QgIT0gbWZuX3gocGFn ZV90b19tZm4oaGQtPmFyY2guYW1kLnJvb3RfdGFibGUpKSApCisgICAgZWxz ZSBpZiAoIGR0ZS0+cHRfcm9vdCAhPSBtZm5feChwYWdlX3RvX21mbihyb290 X3BnKSkgKQogICAgIHsKICAgICAgICAgLyoKICAgICAgICAgICogU3RyaWN0 bHkgc3BlYWtpbmcgaWYgdGhlIGRldmljZSBpcyB0aGUgb25seSBvbmUgd2l0 aCB0aGlzIHJlcXVlc3RvcgpAQCAtMTk0LDggKzIwNyw4IEBAIHN0YXRpYyBp bnQgX19tdXN0X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICAgICAgICAg IHJjID0gLUVPUE5PVFNVUFA7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg IHJjID0gYW1kX2lvbW11X3NldF9yb290X3BhZ2VfdGFibGUoCi0gICAgICAg ICAgICAgICAgICAgICBkdGUsIHBhZ2VfdG9fbWFkZHIoaGQtPmFyY2guYW1k LnJvb3RfdGFibGUpLAotICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5k b21haW5faWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSwgc3JfZmxhZ3Mp OworICAgICAgICAgICAgICAgICAgICAgZHRlLCBwYWdlX3RvX21hZGRyKHJv b3RfcGcpLCBkb21pZCwKKyAgICAgICAgICAgICAgICAgICAgIGhkLT5hcmNo LmFtZC5wYWdpbmdfbW9kZSwgc3JfZmxhZ3MpOwogICAgICAgICBpZiAoIHJj IDwgMCApCiAgICAgICAgIHsKICAgICAgICAgICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJmlvbW11LT5sb2NrLCBmbGFncyk7CkBAIC0yMTQsNiArMjI3 LDcgQEAgc3RhdGljIGludCBfX211c3RfY2hlY2sgYW1kX2lvbW11X3NldHVw XwogICAgICAgICAgICAgICAqIGludGVuZGVkIGFueXdheS4KICAgICAgICAg ICAgICAgKi8KICAgICAgICAgICAgICAhcGRldi0+ZG9tYWluLT5pc19keWlu ZyAmJgorICAgICAgICAgICAgIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gJiYK ICAgICAgICAgICAgICAoYW55X3BkZXZfYmVoaW5kX2lvbW11KHBkZXYtPmRv bWFpbiwgcGRldiwgaW9tbXUpIHx8CiAgICAgICAgICAgICAgIHBkZXYtPnBo YW50b21fc3RyaWRlKSApCiAgICAgICAgICAgICBBTURfSU9NTVVfV0FSTigi ICVwcDogcmVhc3NpZ25tZW50IG1heSBjYXVzZSAlcGQgZGF0YSBjb3JydXB0 aW9uXG4iLApAQCAtMjQ2LDkgKzI2MCw4IEBAIHN0YXRpYyBpbnQgX19tdXN0 X2NoZWNrIGFtZF9pb21tdV9zZXR1cF8KICAgICBBTURfSU9NTVVfREVCVUco IlNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAlI3gsIHR5cGUg PSAlI3gsICIKICAgICAgICAgICAgICAgICAgICAgInJvb3QgdGFibGUgPSAl IyJQUkl4NjQiLCAiCiAgICAgICAgICAgICAgICAgICAgICJkb21haW4gPSAl ZCwgcGFnaW5nIG1vZGUgPSAlZFxuIiwKLSAgICAgICAgICAgICAgICAgICAg cmVxX2lkLCBwZGV2LT50eXBlLAotICAgICAgICAgICAgICAgICAgICBwYWdl X3RvX21hZGRyKGhkLT5hcmNoLmFtZC5yb290X3RhYmxlKSwKLSAgICAgICAg ICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQsIGhkLT5hcmNoLmFtZC5w YWdpbmdfbW9kZSk7CisgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgcGRl di0+dHlwZSwgcGFnZV90b19tYWRkcihyb290X3BnKSwKKyAgICAgICAgICAg ICAgICAgICAgZG9taWQsIGhkLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSk7CiAK ICAgICBBU1NFUlQocGNpZGV2c19sb2NrZWQoKSk7CiAKQEAgLTMyNyw3ICsz NDAsNyBAQCBpbnQgYW1kX2lvbW11X2FsbG9jX3Jvb3Qoc3RydWN0IGRvbWFp biAqCiB7CiAgICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9t bXUoZCk7CiAKLSAgICBpZiAoIHVubGlrZWx5KCFoZC0+YXJjaC5hbWQucm9v dF90YWJsZSkgKQorICAgIGlmICggdW5saWtlbHkoIWhkLT5hcmNoLmFtZC5y b290X3RhYmxlKSAmJiBkICE9IGRvbV9pbyApCiAgICAgewogICAgICAgICBo ZC0+YXJjaC5hbWQucm9vdF90YWJsZSA9IGlvbW11X2FsbG9jX3BndGFibGUo aGQpOwogICAgICAgICBpZiAoICFoZC0+YXJjaC5hbWQucm9vdF90YWJsZSAp CkBAIC0zOTEsNyArNDA0LDcgQEAgc3RhdGljIHZvaWQgYW1kX2lvbW11X2Rp c2FibGVfZG9tYWluX2RldgogICAgIGludCByZXFfaWQ7CiAgICAgdTggYnVz ID0gcGRldi0+YnVzOwogCi0gICAgaWYgKCBRVUFSQU5USU5FX1NLSVAoZG9t YWluKSApCisgICAgaWYgKCBRVUFSQU5USU5FX1NLSVAoZG9tYWluLCBwZGV2 KSApCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChwY2lkZXZzX2xv Y2tlZCgpKTsKQEAgLTQzMCw3ICs0NDMsNyBAQCBzdGF0aWMgdm9pZCBhbWRf aW9tbXVfZGlzYWJsZV9kb21haW5fZGV2CiAKICAgICAgICAgQU1EX0lPTU1V X0RFQlVHKCJEaXNhYmxlOiBkZXZpY2UgaWQgPSAlI3gsICIKICAgICAgICAg ICAgICAgICAgICAgICAgICJkb21haW4gPSAlZCwgcGFnaW5nIG1vZGUgPSAl ZFxuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcV9pZCwgIGRvbWFp bi0+ZG9tYWluX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgcmVxX2lk LCBkdGUtPmRvbWFpbl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgIGRv bV9pb21tdShkb21haW4pLT5hcmNoLmFtZC5wYWdpbmdfbW9kZSk7CiAgICAg fQogICAgIGVsc2UKQEAgLTQ1NCw3ICs0NjcsNyBAQCBzdGF0aWMgaW50IGNm X2NoZWNrIHJlYXNzaWduX2RldmljZSgKICAgICAgICAgcmV0dXJuIC1FTk9E RVY7CiAgICAgfQogCi0gICAgaWYgKCAhUVVBUkFOVElORV9TS0lQKHRhcmdl dCkgKQorICAgIGlmICggIVFVQVJBTlRJTkVfU0tJUCh0YXJnZXQsIHBkZXYp ICkKICAgICB7CiAgICAgICAgIHJjID0gYW1kX2lvbW11X3NldHVwX2RvbWFp bl9kZXZpY2UodGFyZ2V0LCBpb21tdSwgZGV2Zm4sIHBkZXYpOwogICAgICAg ICBpZiAoIHJjICkKQEAgLTY1NSw2ICs2NjgsOCBAQCBzdGF0aWMgaW50IGNm X2NoZWNrIGFtZF9pb21tdV9yZW1vdmVfZGV2CiAgICAgICAgIEFNRF9JT01N VV9XQVJOKCIlcGQ6IHVuaXR5IHVubWFwcGluZyBmYWlsZWQgZm9yICVwcFxu IiwKICAgICAgICAgICAgICAgICAgICAgICAgcGRldi0+ZG9tYWluLCAmcGRl di0+c2JkZik7CiAKKyAgICBhbWRfaW9tbXVfcXVhcmFudGluZV90ZWFyZG93 bihwZGV2KTsKKwogICAgIGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJjaC5w c2V1ZG9fZG9taWQsIGlvbW11LT5kb21pZF9tYXApOwogICAgIHBkZXYtPmFy Y2gucHNldWRvX2RvbWlkID0gRE9NSURfSU5WQUxJRDsKIAotLS0gYS94ZW4v ZHJpdmVycy9wYXNzdGhyb3VnaC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJz L3Bhc3N0aHJvdWdoL2lvbW11LmMKQEAgLTQ2NiwyMSArNDY2LDIyIEBAIGlu dCBpb21tdV9pb3RsYl9mbHVzaF9hbGwoc3RydWN0IGRvbWFpbgogICAgIHJl dHVybiByYzsKIH0KIAotc3RhdGljIGludCBfX2luaXQgaW9tbXVfcXVhcmFu dGluZV9pbml0KHZvaWQpCitpbnQgaW9tbXVfcXVhcmFudGluZV9kZXZfaW5p dChkZXZpY2VfdCAqZGV2KQogewogICAgIGNvbnN0IHN0cnVjdCBkb21haW5f aW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7Ci0gICAgaW50IHJjOwog Ci0gICAgZG9tX2lvLT5vcHRpb25zIHw9IFhFTl9ET01DVExfQ0RGX2lvbW11 OworICAgIGlmICggIWlvbW11X3F1YXJhbnRpbmUgfHwgIWhkLT5wbGF0Zm9y bV9vcHMtPnF1YXJhbnRpbmVfaW5pdCApCisgICAgICAgIHJldHVybiAwOwog Ci0gICAgcmMgPSBpb21tdV9kb21haW5faW5pdChkb21faW8sIDApOwotICAg IGlmICggcmMgfHwgaW9tbXVfcXVhcmFudGluZSA8IElPTU1VX3F1YXJhbnRp bmVfc2NyYXRjaF9wYWdlICkKLSAgICAgICAgcmV0dXJuIHJjOworICAgIHJl dHVybiBpb21tdV9jYWxsKGhkLT5wbGF0Zm9ybV9vcHMsIHF1YXJhbnRpbmVf aW5pdCwKKyAgICAgICAgICAgICAgICAgICAgICBkZXYsIGlvbW11X3F1YXJh bnRpbmUgPT0gSU9NTVVfcXVhcmFudGluZV9zY3JhdGNoX3BhZ2UpOworfQog Ci0gICAgaWYgKCAhaGQtPnBsYXRmb3JtX29wcy0+cXVhcmFudGluZV9pbml0 ICkKLSAgICAgICAgcmV0dXJuIDA7CitzdGF0aWMgaW50IF9faW5pdCBpb21t dV9xdWFyYW50aW5lX2luaXQodm9pZCkKK3sKKyAgICBkb21faW8tPm9wdGlv bnMgfD0gWEVOX0RPTUNUTF9DREZfaW9tbXU7CiAKLSAgICByZXR1cm4gaGQt PnBsYXRmb3JtX29wcy0+cXVhcmFudGluZV9pbml0KGRvbV9pbyk7CisgICAg cmV0dXJuIGlvbW11X2RvbWFpbl9pbml0KGRvbV9pbywgMCk7CiB9CiAKIGlu dCBfX2luaXQgaW9tbXVfc2V0dXAodm9pZCkKLS0tIGEveGVuL2RyaXZlcnMv cGFzc3Rocm91Z2gvcGNpLmMKKysrIGIveGVuL2RyaXZlcnMvcGFzc3Rocm91 Z2gvcGNpLmMKQEAgLTkyMSw5ICs5MjEsMTYgQEAgc3RhdGljIGludCBkZWFz c2lnbl9kZXZpY2Uoc3RydWN0IGRvbWFpbgogICAgICAgICByZXR1cm4gLUVO T0RFVjsKIAogICAgIC8qIERlLWFzc2lnbm1lbnQgZnJvbSBkb21faW8gc2hv dWxkIGRlLXF1YXJhbnRpbmUgdGhlIGRldmljZSAqLwotICAgIHRhcmdldCA9 ICgocGRldi0+cXVhcmFudGluZSB8fCBpb21tdV9xdWFyYW50aW5lKSAmJgot ICAgICAgICAgICAgICBwZGV2LT5kb21haW4gIT0gZG9tX2lvKSA/Ci0gICAg ICAgIGRvbV9pbyA6IGhhcmR3YXJlX2RvbWFpbjsKKyAgICBpZiAoIChwZGV2 LT5xdWFyYW50aW5lIHx8IGlvbW11X3F1YXJhbnRpbmUpICYmIHBkZXYtPmRv bWFpbiAhPSBkb21faW8gKQorICAgIHsKKyAgICAgICAgcmV0ID0gaW9tbXVf cXVhcmFudGluZV9kZXZfaW5pdChwY2lfdG9fZGV2KHBkZXYpKTsKKyAgICAg ICAgaWYgKCByZXQgKQorICAgICAgICAgICByZXR1cm4gcmV0OworCisgICAg ICAgIHRhcmdldCA9IGRvbV9pbzsKKyAgICB9CisgICAgZWxzZQorICAgICAg ICB0YXJnZXQgPSBoYXJkd2FyZV9kb21haW47CiAKICAgICB3aGlsZSAoIHBk ZXYtPnBoYW50b21fc3RyaWRlICkKICAgICB7CkBAIC0xNDk4LDYgKzE1MDUs MTMgQEAgc3RhdGljIGludCBhc3NpZ25fZGV2aWNlKHN0cnVjdCBkb21haW4g KgogICAgIGlmICggcmMgKQogICAgICAgICBnb3RvIGRvbmU7CiAKKyAgICBp ZiAoIHBkZXYtPmRvbWFpbiAhPSBkb21faW8gKQorICAgIHsKKyAgICAgICAg cmMgPSBpb21tdV9xdWFyYW50aW5lX2Rldl9pbml0KHBjaV90b19kZXYocGRl dikpOworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIGdvdG8gZG9u ZTsKKyAgICB9CisKICAgICBwZGV2LT5mYXVsdC5jb3VudCA9IDA7CiAKICAg ICBpZiAoIChyYyA9IGlvbW11X2NhbGwoaGQtPnBsYXRmb3JtX29wcywgYXNz aWduX2RldmljZSwgZCwgZGV2Zm4sCi0tLSBhL3hlbi9kcml2ZXJzL3Bhc3N0 aHJvdWdoL3Z0ZC9pb21tdS5jCisrKyBiL3hlbi9kcml2ZXJzL3Bhc3N0aHJv dWdoL3Z0ZC9pb21tdS5jCkBAIC00NSw2ICs0NSwxMSBAQAogCiAvKiBkb21f aW8gaXMgdXNlZCBhcyBhIHNlbnRpbmVsIGZvciBxdWFyYW50aW5lZCBkZXZp Y2VzICovCiAjZGVmaW5lIFFVQVJBTlRJTkVfU0tJUChkLCBwZ2RfbWFkZHIp ICgoZCkgPT0gZG9tX2lvICYmICEocGdkX21hZGRyKSkKKyNkZWZpbmUgREVW SUNFX0RPTUlEKGQsIHBkZXYpICgoZCkgIT0gZG9tX2lvID8gKGQpLT5kb21h aW5faWQgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgOiAocGRldiktPmFyY2gucHNldWRvX2RvbWlkKQorI2RlZmlu ZSBERVZJQ0VfUEdUQUJMRShkLCBwZGV2KSAoKGQpICE9IGRvbV9pbyBcCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGRvbV9pb21tdShk KS0+YXJjaC52dGQucGdkX21hZGRyIFwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDogKHBkZXYpLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIpCiAK IC8qIFBvc3NpYmxlIHVuZmlsdGVyZWQgTEFQSUMvTVNJIG1lc3NhZ2VzIGZy b20gdW50cnVzdGVkIHNvdXJjZXM/ICovCiBib29sIF9fcmVhZF9tb3N0bHkg dW50cnVzdGVkX21zaTsKQEAgLTEwOCwxMiArMTEzLDE3IEBAIHN0YXRpYyBp bnQgZ2V0X2lvbW11X2RpZChkb21pZF90IGRvbWlkLAogCiAjZGVmaW5lIERJ RF9GSUVMRF9XSURUSCAxNgogI2RlZmluZSBESURfSElHSF9PRkZTRVQgOAor CisvKgorICogVGhpcyBmdW5jdGlvbiBtYXkgaGF2ZSAiY29udGV4dCIgcGFz c2VkIGFzIE5VTEwsIHRvIG1lcmVseSBvYnRhaW4gYSBESUQKKyAqIGZvciAi ZG9taWQiLgorICovCiBzdGF0aWMgaW50IGNvbnRleHRfc2V0X2RvbWFpbl9p ZChzdHJ1Y3QgY29udGV4dF9lbnRyeSAqY29udGV4dCwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRvbWlkX3QgZG9taWQsIHN0cnVjdCB2 dGRfaW9tbXUgKmlvbW11KQogewogICAgIHVuc2lnbmVkIGludCBpOwogCi0g ICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZpb21tdS0+bG9jaykpOworICAg IEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKIAogICAgIGlmICggZG9taWRf bWFwcGluZyhpb21tdSkgKQogICAgIHsKQEAgLTEzOCw4ICsxNDgsMTIgQEAg c3RhdGljIGludCBjb250ZXh0X3NldF9kb21haW5faWQoc3RydWN0CiAgICAg ZWxzZQogICAgICAgICBpID0gY29udmVydF9kb21pZChpb21tdSwgZG9taWQp OwogCi0gICAgY29udGV4dC0+aGkgJj0gfigoKDEgPDwgRElEX0ZJRUxEX1dJ RFRIKSAtIDEpIDw8IERJRF9ISUdIX09GRlNFVCk7Ci0gICAgY29udGV4dC0+ aGkgfD0gKGkgJiAoKDEgPDwgRElEX0ZJRUxEX1dJRFRIKSAtIDEpKSA8PCBE SURfSElHSF9PRkZTRVQ7CisgICAgaWYgKCBjb250ZXh0ICkKKyAgICB7Cisg ICAgICAgIGNvbnRleHQtPmhpICY9IH4oKCgxIDw8IERJRF9GSUVMRF9XSURU SCkgLSAxKSA8PCBESURfSElHSF9PRkZTRVQpOworICAgICAgICBjb250ZXh0 LT5oaSB8PSAoaSAmICgoMSA8PCBESURfRklFTERfV0lEVEgpIC0gMSkpIDw8 IERJRF9ISUdIX09GRlNFVDsKKyAgICB9CisKICAgICByZXR1cm4gMDsKIH0K IApAQCAtMTk0LDggKzIwOCwxMiBAQCBzdGF0aWMgdm9pZCBjaGVja19jbGVh bnVwX2RvbWlkX21hcChjb25zCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb25zdCBzdHJ1Y3QgcGNpX2RldiAqZXhjbHVkZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB2dGRf aW9tbXUgKmlvbW11KQogewotICAgIGJvb2wgZm91bmQgPSBhbnlfcGRldl9i ZWhpbmRfaW9tbXUoZCwgZXhjbHVkZSwgaW9tbXUpOworICAgIGJvb2wgZm91 bmQ7CisKKyAgICBpZiAoIGQgPT0gZG9tX2lvICkKKyAgICAgICAgcmV0dXJu OwogCisgICAgZm91bmQgPSBhbnlfcGRldl9iZWhpbmRfaW9tbXUoZCwgZXhj bHVkZSwgaW9tbXUpOwogICAgIC8qCiAgICAgICogSGlkZGVuIGRldmljZXMg YXJlIGFzc29jaWF0ZWQgd2l0aCBEb21YRU4gYnV0IHVzYWJsZSBieSB0aGUg aGFyZHdhcmUKICAgICAgKiBkb21haW4uIEhlbmNlIHRoZXkgbmVlZCBjb25z aWRlcmluZyBoZXJlIGFzIHdlbGwuCkBAIC0yMTIsNyArMjMwLDcgQEAgc3Rh dGljIHZvaWQgY2hlY2tfY2xlYW51cF9kb21pZF9tYXAoY29ucwogCiBkb21p ZF90IGRpZF90b19kb21haW5faWQoY29uc3Qgc3RydWN0IHZ0ZF9pb21tdSAq aW9tbXUsIHVuc2lnbmVkIGludCBkaWQpCiB7Ci0gICAgaWYgKCBkaWQgPj0g bWluKGNhcF9uZG9tcyhpb21tdS0+Y2FwKSwgRE9NSURfTUFTSyArIDEpICkK KyAgICBpZiAoIGRpZCA+PSBjYXBfbmRvbXMoaW9tbXUtPmNhcCkgKQogICAg ICAgICByZXR1cm4gRE9NSURfSU5WQUxJRDsKIAogICAgIGlmICggIWRvbWlk X21hcHBpbmcoaW9tbXUpICkKQEAgLTE0MjgsNyArMTQ0Niw3IEBAIGludCBk b21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICAgICAgZG9taWQgPSBk aWRfdG9fZG9tYWluX2lkKGlvbW11LCBwcmV2X2RpZCk7CiAgICAgICAgIGlm ICggZG9taWQgPCBET01JRF9GSVJTVF9SRVNFUlZFRCApCiAgICAgICAgICAg ICBwcmV2X2RvbSA9IHJjdV9sb2NrX2RvbWFpbl9ieV9pZChkb21pZCk7Ci0g ICAgICAgIGVsc2UgaWYgKCBkb21pZCA9PSBET01JRF9JTyApCisgICAgICAg IGVsc2UgaWYgKCBwZGV2ID8gZG9taWQgPT0gcGRldi0+YXJjaC5wc2V1ZG9f ZG9taWQgOiBkb21pZCA+IERPTUlEX01BU0sgKQogICAgICAgICAgICAgcHJl dl9kb20gPSByY3VfbG9ja19kb21haW4oZG9tX2lvKTsKICAgICAgICAgaWYg KCAhcHJldl9kb20gKQogICAgICAgICB7CkBAIC0xNTg1LDE1ICsxNjAzLDEy IEBAIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZSgKICAgICB7CiAg ICAgICAgIGlmICggIXByZXZfZG9tICkKICAgICAgICAgICAgIHJldCA9IGRv bWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCBidXMsIGRl dmZuLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBw ZGV2KSk7CiAgICAgICAgIGVsc2UgaWYgKCBwcmV2X2RvbSAhPSBkb21haW4g KSAvKiBBdm9pZCBpbmZpbml0ZSByZWN1cnNpb24uICovCi0gICAgICAgIHsK LSAgICAgICAgICAgIGhkID0gZG9tX2lvbW11KHByZXZfZG9tKTsKICAgICAg ICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdfb25lKHByZXZf ZG9tLCBpb21tdSwgYnVzLCBkZXZmbiwgcGRldiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWlu X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaGQtPmFyY2gudnRkLnBnZF9tYWRkciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERFVklDRV9ET01JRChw cmV2X2RvbSwgcGRldiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBERVZJQ0VfUEdUQUJMRShwcmV2X2RvbSwgcGRl diksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBtb2RlICYgTUFQX1dJVEhfUk1SUikgPCAwOwotICAgICAgICB9CiAg ICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldCA9IDE7CiAKQEAgLTE2MTUs NyArMTYzMCw3IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGlu ZyhzdHJ1Y3QKIHsKICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQg KmRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CiAg ICAgY29uc3Qgc3RydWN0IGFjcGlfcm1ycl91bml0ICpybXJyOwotICAgIHBh ZGRyX3QgcGdkX21hZGRyID0gZG9tX2lvbW11KGRvbWFpbiktPmFyY2gudnRk LnBnZF9tYWRkcjsKKyAgICBwYWRkcl90IHBnZF9tYWRkciA9IERFVklDRV9Q R1RBQkxFKGRvbWFpbiwgcGRldik7CiAgICAgZG9taWRfdCBvcmlnX2RvbWlk ID0gcGRldi0+YXJjaC5wc2V1ZG9fZG9taWQ7CiAgICAgaW50IHJldCA9IDA7 CiAgICAgdW5zaWduZWQgaW50IGksIG1vZGUgPSAwOwpAQCAtMTY0NCw3ICsx NjU5LDcgQEAgc3RhdGljIGludCBkb21haW5fY29udGV4dF9tYXBwaW5nKHN0 cnVjdAogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBpZiAoIGRvbWFp biAhPSBwZGV2LT5kb21haW4gKQorICAgIGlmICggZG9tYWluICE9IHBkZXYt PmRvbWFpbiAmJiBwZGV2LT5kb21haW4gIT0gZG9tX2lvICkKICAgICB7CiAg ICAgICAgIGlmICggcGRldi0+ZG9tYWluLT5pc19keWluZyApCiAgICAgICAg ICAgICBtb2RlIHw9IE1BUF9PV05FUl9EWUlORzsKQEAgLTE2ODYsOCArMTcw MSw4IEBAIHN0YXRpYyBpbnQgZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1 Y3QKICAgICAgICAgaWYgKCBpb21tdV9kZWJ1ZyApCiAgICAgICAgICAgICBw cmludGsoVlREUFJFRklYICIlcGQ6UENJZTogbWFwICVwcFxuIiwKICAgICAg ICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRl dmZuKSk7Ci0gICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X21hcHBpbmdf b25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBkZXYsIGRvbWFp bi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCisgICAgICAgIHJldCA9IGRvbWFp bl9jb250ZXh0X21hcHBpbmdfb25lKGRvbWFpbiwgZHJoZC0+aW9tbXUsIGJ1 cywgZGV2Zm4sIHBkZXYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERFVklDRV9ET01JRChkb21haW4sIHBkZXYpLCBwZ2Rf bWFkZHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA+IDAgKQogICAgICAgICAg ICAgcmV0ID0gMDsKQEAgLTE3MTMsOCArMTcyOCw4IEBAIHN0YXRpYyBpbnQg ZG9tYWluX2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICAgICAg ICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMsIGRldmZuKSk7CiAK ICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfbWFwcGluZ19vbmUoZG9t YWluLCBkcmhkLT5pb21tdSwgYnVzLCBkZXZmbiwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGRldiwgZG9tYWluLT5kb21h aW5faWQsIHBnZF9tYWRkciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBkZXYsIERFVklDRV9ET01JRChkb21haW4s IHBkZXYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ2RfbWFkZHIsIG1vZGUpOwogICAgICAgICBpZiAoIHJldCA8IDAg KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIHByZXZfcHJlc2VudCA9 IHJldDsKQEAgLTE3NDIsOCArMTc1Nyw4IEBAIHN0YXRpYyBpbnQgZG9tYWlu X2NvbnRleHRfbWFwcGluZyhzdHJ1Y3QKICAgICAgICAgICovCiAgICAgICAg IGlmICggcmV0ID49IDAgKQogICAgICAgICAgICAgcmV0ID0gZG9tYWluX2Nv bnRleHRfbWFwcGluZ19vbmUoZG9tYWluLCBkcmhkLT5pb21tdSwgYnVzLCBk ZXZmbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIGRvbWFpbi0+ZG9tYWluX2lkLCBwZ2RfbWFkZHIsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt b2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE5VTEwsIERFVklDRV9ET01JRChkb21haW4sIHBkZXYpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdk X21hZGRyLCBtb2RlKTsKIAogICAgICAgICAvKgogICAgICAgICAgKiBEZXZp Y2VzIGJlaGluZCBQQ0llLXRvLVBDSS9QQ0l4IGJyaWRnZSBtYXkgZ2VuZXJh dGUgZGlmZmVyZW50CkBAIC0xNzU4LDggKzE3NzMsOCBAQCBzdGF0aWMgaW50 IGRvbWFpbl9jb250ZXh0X21hcHBpbmcoc3RydWN0CiAgICAgICAgIGlmICgg IXJldCAmJiBwZGV2X3R5cGUoc2VnLCBidXMsIGRldmZuKSA9PSBERVZfVFlQ RV9QQ0llMlBDSV9CUklER0UgJiYKICAgICAgICAgICAgICAoc2VjYnVzICE9 IHBkZXYtPmJ1cyB8fCBwZGV2LT5kZXZmbiAhPSAwKSApCiAgICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF9tYXBwaW5nX29uZShkb21haW4sIGRy aGQtPmlvbW11LCBzZWNidXMsIDAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBkb21haW4tPmRvbWFpbl9p ZCwgcGdkX21hZGRyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgbW9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBERVZJQ0VfRE9NSUQoZG9t YWluLCBwZGV2KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHBnZF9tYWRkciwgbW9kZSk7CiAKICAgICAgICAgaWYg KCByZXQgKQogICAgICAgICB7CkBAIC0xODAxLDkgKzE4MTYsNiBAQCBpbnQg ZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKAogICAgIGludCBpb21tdV9kb21p ZCwgcmMsIHJldDsKICAgICBib29sX3QgZmx1c2hfZGV2X2lvdGxiOwogCi0g ICAgaWYgKCBRVUFSQU5USU5FX1NLSVAoZG9tYWluLCBkb21faW9tbXUoZG9t YWluKS0+YXJjaC52dGQucGdkX21hZGRyKSApCi0gICAgICAgIHJldHVybiAw OwotCiAgICAgQVNTRVJUKHBjaWRldnNfbG9ja2VkKCkpOwogICAgIHNwaW5f bG9jaygmaW9tbXUtPmxvY2spOwogCkBAIC0xOTA1LDcgKzE5MTcsNyBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21hCiAgICAg ICAgICAgICBwcmludGsoVlREUFJFRklYICIlcGQ6UENJZTogdW5tYXAgJXBw XG4iLAogICAgICAgICAgICAgICAgICAgIGRvbWFpbiwgJlBDSV9TQkRGMyhz ZWcsIGJ1cywgZGV2Zm4pKTsKICAgICAgICAgcmV0ID0gZG9tYWluX2NvbnRl eHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIGJ1cywgZGV2Zm4sCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW4tPmRv bWFpbl9pZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAgICAgICAgIGlm ICggIXJldCAmJiBkZXZmbiA9PSBwZGV2LT5kZXZmbiAmJiBhdHNfZGV2aWNl KHBkZXYsIGRyaGQpID4gMCApCiAgICAgICAgICAgICBkaXNhYmxlX2F0c19k ZXZpY2UocGRldik7CiAKQEAgLTE5MTksNyArMTkzMSw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRvbWEKICAgICAgICAgICAg IHByaW50ayhWVERQUkVGSVggIiVwZDpQQ0k6IHVubWFwICVwcFxuIiwKICAg ICAgICAgICAgICAgICAgICBkb21haW4sICZQQ0lfU0JERjMoc2VnLCBidXMs IGRldmZuKSk7CiAgICAgICAgIHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFw X29uZShkb21haW4sIGlvbW11LCBidXMsIGRldmZuLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQp OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVW SUNFX0RPTUlEKGRvbWFpbiwgcGRldikpOwogICAgICAgICBpZiAoIHJldCAp CiAgICAgICAgICAgICBicmVhazsKIApAQCAtMTk0MiwxOCArMTk1NCwxMiBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGFjcGlfZHJoZF91bml0ICpkb21hCiAg ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCisgICAgICAgIHJldCA9 IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11LCB0bXBf YnVzLCB0bXBfZGV2Zm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7CiAgICAg ICAgIC8qIFBDSWUgdG8gUENJL1BDSXggYnJpZGdlICovCi0gICAgICAgIGlm ICggcGRldl90eXBlKHNlZywgdG1wX2J1cywgdG1wX2RldmZuKSA9PSBERVZf VFlQRV9QQ0llMlBDSV9CUklER0UgKQotICAgICAgICB7Ci0gICAgICAgICAg ICByZXQgPSBkb21haW5fY29udGV4dF91bm1hcF9vbmUoZG9tYWluLCBpb21t dSwgdG1wX2J1cywgdG1wX2RldmZuLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbi0+ZG9tYWluX2lkKTsKLSAg ICAgICAgICAgIGlmICggIXJldCApCi0gICAgICAgICAgICAgICAgcmV0ID0g ZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwgaW9tbXUsIHNlY2J1 cywgMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOwotICAgICAgICB9Ci0gICAg ICAgIGVsc2UgLyogTGVnYWN5IFBDSSBicmlkZ2UgKi8KLSAgICAgICAgICAg IHJldCA9IGRvbWFpbl9jb250ZXh0X3VubWFwX29uZShkb21haW4sIGlvbW11 LCB0bXBfYnVzLCB0bXBfZGV2Zm4sCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9tYWluLT5kb21haW5faWQpOworICAg ICAgICBpZiAoICFyZXQgJiYgcGRldl90eXBlKHNlZywgdG1wX2J1cywgdG1w X2RldmZuKSA9PSBERVZfVFlQRV9QQ0llMlBDSV9CUklER0UgKQorICAgICAg ICAgICAgcmV0ID0gZG9tYWluX2NvbnRleHRfdW5tYXBfb25lKGRvbWFpbiwg aW9tbXUsIHNlY2J1cywgMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBERVZJQ0VfRE9NSUQoZG9tYWluLCBwZGV2KSk7 CiAKICAgICAgICAgYnJlYWs7CiAKQEAgLTE5NjQsNyArMTk3MCw3IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRvbWEKICAgICB9 CiAKICAgICBpZiAoICFyZXQgJiYgcGRldi0+ZGV2Zm4gPT0gZGV2Zm4gJiYK LSAgICAgICAgICFRVUFSQU5USU5FX1NLSVAoZG9tYWluLCBkb21faW9tbXUo ZG9tYWluKS0+YXJjaC52dGQucGdkX21hZGRyKSApCisgICAgICAgICAhUVVB UkFOVElORV9TS0lQKGRvbWFpbiwgcGRldi0+YXJjaC52dGQucGdkX21hZGRy KSApCiAgICAgICAgIGNoZWNrX2NsZWFudXBfZG9taWRfbWFwKGRvbWFpbiwg cGRldiwgaW9tbXUpOwogCiAgICAgcmV0dXJuIGRyaGQ7CkBAIC0xOTk3LDYg KzIwMDMsMjYgQEAgc3RhdGljIHZvaWQgY2ZfY2hlY2sgaW9tbXVfZG9tYWlu X3RlYXJkbwogICAgIFhGUkVFKGhkLT5hcmNoLnZ0ZC5pb21tdV9iaXRtYXAp OwogfQogCitzdGF0aWMgdm9pZCBxdWFyYW50aW5lX3RlYXJkb3duKHN0cnVj dCBwY2lfZGV2ICpwZGV2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBzdHJ1Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQpCit7Cisg ICAgc3RydWN0IGRvbWFpbl9pb21tdSAqaGQgPSBkb21faW9tbXUoZG9tX2lv KTsKKworICAgIEFTU0VSVChwY2lkZXZzX2xvY2tlZCgpKTsKKworICAgIGlm ICggIXBkZXYtPmFyY2gudnRkLnBnZF9tYWRkciApCisgICAgICAgIHJldHVy bjsKKworICAgIEFTU0VSVChwYWdlX2xpc3RfZW1wdHkoJmhkLT5hcmNoLnBn dGFibGVzLmxpc3QpKTsKKyAgICBwYWdlX2xpc3RfbW92ZSgmaGQtPmFyY2gu cGd0YWJsZXMubGlzdCwgJnBkZXYtPmFyY2gucGd0YWJsZXNfbGlzdCk7Cisg ICAgd2hpbGUgKCBpb21tdV9mcmVlX3BndGFibGVzKGRvbV9pbykgPT0gLUVS RVNUQVJUICkKKyAgICAgICAgLyogbm90aGluZyAqLzsKKyAgICBwZGV2LT5h cmNoLnZ0ZC5wZ2RfbWFkZHIgPSAwOworCisgICAgaWYgKCBkcmhkICkKKyAg ICAgICAgY2xlYW51cF9kb21pZF9tYXAocGRldi0+YXJjaC5wc2V1ZG9fZG9t aWQsIGRyaGQtPmlvbW11KTsKK30KKwogc3RhdGljIGludCBfX211c3RfY2hl Y2sgY2ZfY2hlY2sgaW50ZWxfaW9tbXVfbWFwX3BhZ2UoCiAgICAgc3RydWN0 IGRvbWFpbiAqZCwgZGZuX3QgZGZuLCBtZm5fdCBtZm4sIHVuc2lnbmVkIGlu dCBmbGFncywKICAgICB1bnNpZ25lZCBpbnQgKmZsdXNoX2ZsYWdzKQpAQCAt MjIyMSw2ICsyMjQ3LDggQEAgc3RhdGljIGludCBjZl9jaGVjayBpbnRlbF9p b21tdV9yZW1vdmVfZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJtcnItPmVuZF9hZGRyZXNzLCAwKTsKICAgICB9CiAKKyAgICBxdWFyYW50 aW5lX3RlYXJkb3duKHBkZXYsIGRyaGQpOworCiAgICAgaWYgKCBkcmhkICkK ICAgICB7CiAgICAgICAgIGlvbW11X2ZyZWVfZG9taWQocGRldi0+YXJjaC5w c2V1ZG9fZG9taWQsCkBAIC0yNTc5LDcgKzI2MDcsNyBAQCBzdGF0aWMgaW50 IGNmX2NoZWNrIHJlYXNzaWduX2RldmljZV9vd25lCiB7CiAgICAgaW50IHJl dDsKIAotICAgIGlmICggIVFVQVJBTlRJTkVfU0tJUCh0YXJnZXQsIGRvbV9p b21tdSh0YXJnZXQpLT5hcmNoLnZ0ZC5wZ2RfbWFkZHIpICkKKyAgICBpZiAo ICFRVUFSQU5USU5FX1NLSVAodGFyZ2V0LCBwZGV2LT5hcmNoLnZ0ZC5wZ2Rf bWFkZHIpICkKICAgICB7CiAgICAgICAgIGlmICggIWhhc19hcmNoX3BkZXZz KHRhcmdldCkgKQogICAgICAgICAgICAgdm14X3BpX2hvb2tzX2Fzc2lnbih0 YXJnZXQpOwpAQCAtMjU5Niw3ICsyNjI0LDcgQEAgc3RhdGljIGludCBjZl9j aGVjayByZWFzc2lnbl9kZXZpY2Vfb3duZQogICAgICAgICByZXQgPSBkb21h aW5fY29udGV4dF9tYXBwaW5nKHRhcmdldCwgZGV2Zm4sIHBkZXYpOwogCiAg ICAgICAgIGlmICggIXJldCAmJiBwZGV2LT5kZXZmbiA9PSBkZXZmbiAmJgot ICAgICAgICAgICAgICFRVUFSQU5USU5FX1NLSVAoc291cmNlLCBkb21faW9t bXUoc291cmNlKS0+YXJjaC52dGQucGdkX21hZGRyKSApCisgICAgICAgICAg ICAgIVFVQVJBTlRJTkVfU0tJUChzb3VyY2UsIHBkZXYtPmFyY2gudnRkLnBn ZF9tYWRkcikgKQogICAgICAgICB7CiAgICAgICAgICAgICBjb25zdCBzdHJ1 Y3QgYWNwaV9kcmhkX3VuaXQgKmRyaGQgPSBhY3BpX2ZpbmRfbWF0Y2hlZF9k cmhkX3VuaXQocGRldik7CiAKQEAgLTI5MTgsNjkgKzI5NDYsMTM2IEBAIHN0 YXRpYyB2b2lkIGNmX2NoZWNrIHZ0ZF9kdW1wX3BhZ2VfdGFibGUKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFnYXdfdG9fbGV2ZWwoaGQtPmFy Y2gudnRkLmFnYXcpLCAwLCAwKTsKIH0KIAotc3RhdGljIGludCBfX2luaXQg Y2ZfY2hlY2sgaW50ZWxfaW9tbXVfcXVhcmFudGluZV9pbml0KHN0cnVjdCBk b21haW4gKmQpCitzdGF0aWMgaW50IGZpbGxfcXB0KHN0cnVjdCBkbWFfcHRl ICp0aGlzLCB1bnNpZ25lZCBpbnQgbGV2ZWwsCisgICAgICAgICAgICAgICAg ICAgIHN0cnVjdCBwYWdlX2luZm8gKnBnc1s2XSkKIHsKLSAgICBzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkKTsKKyAgICBzdHJ1Y3Qg ZG9tYWluX2lvbW11ICpoZCA9IGRvbV9pb21tdShkb21faW8pOworICAgIHVu c2lnbmVkIGludCBpOworICAgIGludCByYyA9IDA7CisKKyAgICBmb3IgKCBp ID0gMDsgIXJjICYmIGkgPCBQVEVfTlVNOyArK2kgKQorICAgIHsKKyAgICAg ICAgc3RydWN0IGRtYV9wdGUgKnB0ZSA9ICZ0aGlzW2ldLCAqbmV4dDsKKwor ICAgICAgICBpZiAoICFkbWFfcHRlX3ByZXNlbnQoKnB0ZSkgKQorICAgICAg ICB7CisgICAgICAgICAgICBpZiAoICFwZ3NbbGV2ZWxdICkKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICAq IFRoZSBwZ3RhYmxlIGFsbG9jYXRvciBpcyBmaW5lIGZvciB0aGUgbGVhZiBw YWdlLCBhcyB3ZWxsIGFzCisgICAgICAgICAgICAgICAgICogcGFnZSB0YWJs ZSBwYWdlcywgYW5kIHRoZSByZXN1bHRpbmcgYWxsb2NhdGlvbnMgYXJlIGFs d2F5cworICAgICAgICAgICAgICAgICAqIHplcm9lZC4KKyAgICAgICAgICAg ICAgICAgKi8KKyAgICAgICAgICAgICAgICBwZ3NbbGV2ZWxdID0gaW9tbXVf YWxsb2NfcGd0YWJsZShoZCk7CisgICAgICAgICAgICAgICAgaWYgKCAhcGdz W2xldmVsXSApCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg ICAgICByYyA9IC1FTk9NRU07CisgICAgICAgICAgICAgICAgICAgIGJyZWFr OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGlmICgg bGV2ZWwgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg ICAgbmV4dCA9IG1hcF92dGRfZG9tYWluX3BhZ2UocGFnZV90b19tYWRkcihw Z3NbbGV2ZWxdKSk7CisgICAgICAgICAgICAgICAgICAgIHJjID0gZmlsbF9x cHQobmV4dCwgbGV2ZWwgLSAxLCBwZ3MpOworICAgICAgICAgICAgICAgICAg ICB1bm1hcF92dGRfZG9tYWluX3BhZ2UobmV4dCk7CisgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkbWFfc2V0X3B0 ZV9hZGRyKCpwdGUsIHBhZ2VfdG9fbWFkZHIocGdzW2xldmVsXSkpOworICAg ICAgICAgICAgZG1hX3NldF9wdGVfcmVhZGFibGUoKnB0ZSk7CisgICAgICAg ICAgICBkbWFfc2V0X3B0ZV93cml0YWJsZSgqcHRlKTsKKyAgICAgICAgfQor ICAgICAgICBlbHNlIGlmICggbGV2ZWwgJiYgIWRtYV9wdGVfc3VwZXJwYWdl KCpwdGUpICkKKyAgICAgICAgeworICAgICAgICAgICAgbmV4dCA9IG1hcF92 dGRfZG9tYWluX3BhZ2UoZG1hX3B0ZV9hZGRyKCpwdGUpKTsKKyAgICAgICAg ICAgIHJjID0gZmlsbF9xcHQobmV4dCwgbGV2ZWwgLSAxLCBwZ3MpOworICAg ICAgICAgICAgdW5tYXBfdnRkX2RvbWFpbl9wYWdlKG5leHQpOworICAgICAg ICB9CisgICAgfQorCisgICAgcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50 IGNmX2NoZWNrIGludGVsX2lvbW11X3F1YXJhbnRpbmVfaW5pdChzdHJ1Y3Qg cGNpX2RldiAqcGRldiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJvb2wgc2NyYXRjaF9wYWdlKQoreworICAg IHN0cnVjdCBkb21haW5faW9tbXUgKmhkID0gZG9tX2lvbW11KGRvbV9pbyk7 CiAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcGc7Ci0gICAgc3RydWN0IGRtYV9w dGUgKnBhcmVudDsKICAgICB1bnNpZ25lZCBpbnQgYWdhdyA9IHdpZHRoX3Rv X2FnYXcoREVGQVVMVF9ET01BSU5fQUREUkVTU19XSURUSCk7CiAgICAgdW5z aWduZWQgaW50IGxldmVsID0gYWdhd190b19sZXZlbChhZ2F3KTsKLSAgICBp bnQgcmMgPSAwOworICAgIGNvbnN0IHN0cnVjdCBhY3BpX2RyaGRfdW5pdCAq ZHJoZDsKKyAgICBjb25zdCBzdHJ1Y3QgYWNwaV9ybXJyX3VuaXQgKnJtcnI7 CisgICAgdW5zaWduZWQgaW50IGksIGJkZjsKKyAgICBib29sIHJtcnJfZm91 bmQgPSBmYWxzZTsKKyAgICBpbnQgcmM7CiAKLSAgICBzcGluX2xvY2soJmhk LT5hcmNoLm1hcHBpbmdfbG9jayk7CisgICAgQVNTRVJUKHBjaWRldnNfbG9j a2VkKCkpOworICAgIEFTU0VSVCghaGQtPmFyY2gudnRkLnBnZF9tYWRkcik7 CisgICAgQVNTRVJUKHBhZ2VfbGlzdF9lbXB0eSgmaGQtPmFyY2gucGd0YWJs ZXMubGlzdCkpOwogCi0gICAgaWYgKCBoZC0+YXJjaC52dGQucGdkX21hZGRy ICkKKyAgICBpZiAoIHBkZXYtPmFyY2gudnRkLnBnZF9tYWRkciApCiAgICAg ewotICAgICAgICBBU1NFUlRfVU5SRUFDSEFCTEUoKTsKLSAgICAgICAgZ290 byBvdXQ7CisgICAgICAgIGNsZWFyX2RvbWFpbl9wYWdlKHBkZXYtPmFyY2gu bGVhZl9tZm4pOworICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBw ZyA9IGlvbW11X2FsbG9jX3BndGFibGUoaGQpOworICAgIGRyaGQgPSBhY3Bp X2ZpbmRfbWF0Y2hlZF9kcmhkX3VuaXQocGRldik7CisgICAgaWYgKCAhZHJo ZCApCisgICAgICAgIHJldHVybiAtRU5PREVWOwogCi0gICAgcmMgPSAtRU5P TUVNOworICAgIHBnID0gaW9tbXVfYWxsb2NfcGd0YWJsZShoZCk7CiAgICAg aWYgKCAhcGcgKQotICAgICAgICBnb3RvIG91dDsKKyAgICAgICAgcmV0dXJu IC1FTk9NRU07CisKKyAgICByYyA9IGNvbnRleHRfc2V0X2RvbWFpbl9pZChO VUxMLCBwZGV2LT5hcmNoLnBzZXVkb19kb21pZCwgZHJoZC0+aW9tbXUpOwog CisgICAgLyogVHJhbnNpZW50bHkgaW5zdGFsbCB0aGUgcm9vdCBpbnRvIERv bUlPLCBmb3IgaW9tbXVfaWRlbnRpdHlfbWFwcGluZygpLiAqLwogICAgIGhk LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgPSBwYWdlX3RvX21hZGRyKHBnKTsKIAot ICAgIHBhcmVudCA9IG1hcF92dGRfZG9tYWluX3BhZ2UoaGQtPmFyY2gudnRk LnBnZF9tYWRkcik7Ci0gICAgd2hpbGUgKCBsZXZlbCApCisgICAgZm9yX2Vh Y2hfcm1ycl9kZXZpY2UgKCBybXJyLCBiZGYsIGkgKQogICAgIHsKLSAgICAg ICAgdWludDY0X3QgbWFkZHI7Ci0gICAgICAgIHVuc2lnbmVkIGludCBvZmZz ZXQ7Ci0KLSAgICAgICAgLyoKLSAgICAgICAgICogVGhlIHBndGFibGUgYWxs b2NhdG9yIGlzIGZpbmUgZm9yIHRoZSBsZWFmIHBhZ2UsIGFzIHdlbGwgYXMK LSAgICAgICAgICogcGFnZSB0YWJsZSBwYWdlcywgYW5kIHRoZSByZXN1bHRp bmcgYWxsb2NhdGlvbnMgYXJlIGFsd2F5cwotICAgICAgICAgKiB6ZXJvZWQu Ci0gICAgICAgICAqLwotICAgICAgICBwZyA9IGlvbW11X2FsbG9jX3BndGFi bGUoaGQpOwotCi0gICAgICAgIGlmICggIXBnICkKLSAgICAgICAgICAgIGdv dG8gb3V0OworICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgIGJyZWFr OwogCi0gICAgICAgIG1hZGRyID0gcGFnZV90b19tYWRkcihwZyk7Ci0gICAg ICAgIGZvciAoIG9mZnNldCA9IDA7IG9mZnNldCA8IFBURV9OVU07IG9mZnNl dCsrICkKKyAgICAgICAgaWYgKCBybXJyLT5zZWdtZW50ID09IHBkZXYtPnNl ZyAmJiBiZGYgPT0gcGRldi0+c2JkZi5iZGYgKQogICAgICAgICB7Ci0gICAg ICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcHRlID0gJnBhcmVudFtvZmZzZXRd OworICAgICAgICAgICAgcm1ycl9mb3VuZCA9IHRydWU7CiAKLSAgICAgICAg ICAgIGRtYV9zZXRfcHRlX2FkZHIoKnB0ZSwgbWFkZHIpOwotICAgICAgICAg ICAgZG1hX3NldF9wdGVfcmVhZGFibGUoKnB0ZSk7CisgICAgICAgICAgICBy YyA9IGlvbW11X2lkZW50aXR5X21hcHBpbmcoZG9tX2lvLCBwMm1fYWNjZXNz X3J3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJtcnItPmJhc2VfYWRkcmVzcywgcm1yci0+ZW5kX2FkZHJlc3MsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCk7CisgICAg ICAgICAgICBpZiAoIHJjICkKKyAgICAgICAgICAgICAgICBwcmludGsoWEVO TE9HX0VSUiBWVERQUkVGSVgKKyAgICAgICAgICAgICAgICAgICAgICAgIiVw cDogUk1SUiBxdWFyYW50aW5lIG1hcHBpbmcgZmFpbGVkXG4iLAorICAgICAg ICAgICAgICAgICAgICAgICAmcGRldi0+c2JkZik7CiAgICAgICAgIH0KLSAg ICAgICAgaW9tbXVfc3luY19jYWNoZShwYXJlbnQsIFBBR0VfU0laRSk7Cisg ICAgfQogCi0gICAgICAgIHVubWFwX3Z0ZF9kb21haW5fcGFnZShwYXJlbnQp OwotICAgICAgICBwYXJlbnQgPSBtYXBfdnRkX2RvbWFpbl9wYWdlKG1hZGRy KTsKLSAgICAgICAgbGV2ZWwtLTsKKyAgICBpb21tdV9pZGVudGl0eV9tYXBf dGVhcmRvd24oZG9tX2lvKTsKKyAgICBoZC0+YXJjaC52dGQucGdkX21hZGRy ID0gMDsKKyAgICBwZGV2LT5hcmNoLnZ0ZC5wZ2RfbWFkZHIgPSBwYWdlX3Rv X21hZGRyKHBnKTsKKworICAgIGlmICggIXJjICYmIHNjcmF0Y2hfcGFnZSAp CisgICAgeworICAgICAgICBzdHJ1Y3QgZG1hX3B0ZSAqcm9vdDsKKyAgICAg ICAgc3RydWN0IHBhZ2VfaW5mbyAqcGdzWzZdID0ge307CisKKyAgICAgICAg c3Bpbl9sb2NrKCZoZC0+YXJjaC5tYXBwaW5nX2xvY2spOworCisgICAgICAg IHJvb3QgPSBtYXBfdnRkX2RvbWFpbl9wYWdlKHBkZXYtPmFyY2gudnRkLnBn ZF9tYWRkcik7CisgICAgICAgIHJjID0gZmlsbF9xcHQocm9vdCwgbGV2ZWwg LSAxLCBwZ3MpOworICAgICAgICB1bm1hcF92dGRfZG9tYWluX3BhZ2Uocm9v dCk7CisKKyAgICAgICAgcGRldi0+YXJjaC5sZWFmX21mbiA9IHBhZ2VfdG9f bWZuKHBnc1swXSk7CisKKyAgICAgICAgc3Bpbl91bmxvY2soJmhkLT5hcmNo Lm1hcHBpbmdfbG9jayk7CiAgICAgfQotICAgIHVubWFwX3Z0ZF9kb21haW5f cGFnZShwYXJlbnQpOwogCi0gICAgcmMgPSAwOworICAgIHBhZ2VfbGlzdF9t b3ZlKCZwZGV2LT5hcmNoLnBndGFibGVzX2xpc3QsICZoZC0+YXJjaC5wZ3Rh Ymxlcy5saXN0KTsKIAotIG91dDoKLSAgICBzcGluX3VubG9jaygmaGQtPmFy Y2gubWFwcGluZ19sb2NrKTsKKyAgICBpZiAoIHJjIHx8ICghc2NyYXRjaF9w YWdlICYmICFybXJyX2ZvdW5kKSApCisgICAgICAgIHF1YXJhbnRpbmVfdGVh cmRvd24ocGRldiwgZHJoZCk7CiAKLSAgICAvKiBQYWdlcyBtYXkgYmUgbGVh a2VkIGluIGZhaWx1cmUgY2FzZSAqLwogICAgIHJldHVybiByYzsKIH0KIAot LS0gYS94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaAorKysg Yi94ZW4vZHJpdmVycy9wYXNzdGhyb3VnaC92dGQvaW9tbXUuaApAQCAtNDc3 LDcgKzQ3Nyw3IEBAIHN0cnVjdCB2dGRfaW9tbXUgewogICAgIHUzMiBucl9w dF9sZXZlbHM7CiAgICAgdTY0CWNhcDsKICAgICB1NjQJZWNhcDsKLSAgICBz cGlubG9ja190IGxvY2s7IC8qIHByb3RlY3QgY29udGV4dCwgZG9tYWluIGlk cyAqLworICAgIHNwaW5sb2NrX3QgbG9jazsgLyogcHJvdGVjdCBjb250ZXh0 ICovCiAgICAgc3BpbmxvY2tfdCByZWdpc3Rlcl9sb2NrOyAvKiBwcm90ZWN0 IGlvbW11IHJlZ2lzdGVyIGhhbmRsaW5nICovCiAgICAgdTY0IHJvb3RfbWFk ZHI7IC8qIHJvb3QgZW50cnkgbWFjaGluZSBhZGRyZXNzICovCiAgICAgbm9k ZWlkX3Qgbm9kZTsKLS0tIGEveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKKysr IGIveGVuL2luY2x1ZGUveGVuL2lvbW11LmgKQEAgLTIzMyw3ICsyMzMsNyBA QCB0eXBlZGVmIGludCBpb21tdV9ncmRtX3QoeGVuX3Bmbl90IHN0YXJ0CiBz dHJ1Y3QgaW9tbXVfb3BzIHsKICAgICBpbnQgKCppbml0KShzdHJ1Y3QgZG9t YWluICpkKTsKICAgICB2b2lkICgqaHdkb21faW5pdCkoc3RydWN0IGRvbWFp biAqZCk7Ci0gICAgaW50ICgqcXVhcmFudGluZV9pbml0KShzdHJ1Y3QgZG9t YWluICpkKTsKKyAgICBpbnQgKCpxdWFyYW50aW5lX2luaXQpKGRldmljZV90 ICpkZXYsIGJvb2wgc2NyYXRjaF9wYWdlKTsKICAgICBpbnQgKCphZGRfZGV2 aWNlKSh1OCBkZXZmbiwgZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqZW5h YmxlX2RldmljZSkoZGV2aWNlX3QgKmRldik7CiAgICAgaW50ICgqcmVtb3Zl X2RldmljZSkodTggZGV2Zm4sIGRldmljZV90ICpkZXYpOwpAQCAtMzQ5LDYg KzM0OSw3IEBAIGludCBfX211c3RfY2hlY2sgaW9tbXVfc3VzcGVuZCh2b2lk KTsKIHZvaWQgaW9tbXVfcmVzdW1lKHZvaWQpOwogdm9pZCBpb21tdV9jcmFz aF9zaHV0ZG93bih2b2lkKTsKIGludCBpb21tdV9nZXRfcmVzZXJ2ZWRfZGV2 aWNlX21lbW9yeShpb21tdV9ncmRtX3QgKiwgdm9pZCAqKTsKK2ludCBpb21t dV9xdWFyYW50aW5lX2Rldl9pbml0KGRldmljZV90ICpkZXYpOwogCiAjaWZk ZWYgQ09ORklHX0hBU19QQ0kKIGludCBpb21tdV9kb19wY2lfZG9tY3RsKHN0 cnVjdCB4ZW5fZG9tY3RsICosIHN0cnVjdCBkb21haW4gKmQsCg== --=separator--