From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: [PATCH 12/51] drm/amd/powerplay: add Carrizo smu support Date: Thu, 12 Nov 2015 01:18:02 -0500 Message-ID: <1447309121-2480-13-git-send-email-alexander.deucher@amd.com> References: <1447309121-2480-1-git-send-email-alexander.deucher@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-f172.google.com (mail-qk0-f172.google.com [209.85.220.172]) by gabe.freedesktop.org (Postfix) with ESMTPS id B22A47A08E for ; Wed, 11 Nov 2015 22:19:07 -0800 (PST) Received: by qkas77 with SMTP id s77so20226321qka.0 for ; Wed, 11 Nov 2015 22:19:07 -0800 (PST) In-Reply-To: <1447309121-2480-1-git-send-email-alexander.deucher@amd.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Rex Zhu List-Id: dri-devel@lists.freedesktop.org RnJvbTogSmFtbXkgWmhvdSA8SmFtbXkuWmhvdUBhbWQuY29tPgoKVGhpcyBpbXBsZW1lbnRzIHRo ZSBTTVUgZmlybXdhcmUgbWFuYWdlciBpbnRlcmZhY2UgZm9yIENaLgpTb21lIGhlYWRlciBmaWxl cyBhcmUgbW92ZWQgZnJvbSBhbWRncHUgZm9sZGVyIHRvIHBvd2VycGxheSBhcyB3ZWxsLgoKdjM6 IGRlbGV0ZSBwZWNpIHN1Yi1tb2R1bGUuCnYyOiB1c2UgY2dzIGludGVyZmFjZSBkaXJlY3RseQog ICAgYWRkIGxvYWRfbWVjX2Zpcm13YXJlIGZ1bmN0aW9uCgpTaWduZWQtb2ZmLWJ5OiBSZXggWmh1 IDxSZXguWmh1QGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6IEphbW15IFpob3UgPEphbW15Llpob3VA YW1kLmNvbT4KUmV2aWV3ZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFuZGVyLmRldWNoZXJAYW1k LmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9wcHNtYy5oICAgICAgICAg ICAgICB8IDE4NSAtLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211OC5oICAgICAg ICAgICAgICAgICAgfCAgNzIgLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NtdThfZnVz aW9uLmggICAgICAgICAgIHwgMTI3IC0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211 X3Vjb2RlX3hmZXJfY3ouaCAgICAgfCAxNDcgLS0tLQogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dl cnBsYXkvaW5jL2N6X3Bwc21jLmggICAgICAgfCAxODUgKysrKysKIGRyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L2luYy9zbXU4LmggICAgICAgICAgIHwgIDcyICsrCiBkcml2ZXJzL2dwdS9k cm0vYW1kL3Bvd2VycGxheS9pbmMvc211OF9mdXNpb24uaCAgICB8IDEyNyArKysKIC4uLi9ncHUv ZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdV91Y29kZV94ZmVyX2N6LmggIHwgMTQ3ICsrKysKIGRy aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9NYWtlZmlsZSAgICAgIHwgICAyICst CiBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvY3pfc211bWdyLmMgICB8IDg1 OCArKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3Nt dW1nci9jel9zbXVtZ3IuaCAgIHwgMTAyICsrKwogZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvc211bWdyL3NtdW1nci5jICAgICAgfCAgIDMgKy0KIDEyIGZpbGVzIGNoYW5nZWQsIDE0OTQg aW5zZXJ0aW9ucygrKSwgNTMzIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IGRyaXZl cnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2N6X3Bwc21jLmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zbXU4LmgKIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L2dwdS9kcm0vYW1kL2FtZGdwdS9zbXU4X2Z1c2lvbi5oCiBkZWxldGUgbW9kZSAxMDA2NDQgZHJp dmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211X3Vjb2RlX3hmZXJfY3ouaAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9jel9wcHNtYy5oCiBjcmVh dGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdTguaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L2luYy9zbXU4 X2Z1c2lvbi5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvaW5jL3NtdV91Y29kZV94ZmVyX2N6LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvY3pfc211bWdyLmMKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvY3pfc211bWdyLmgKCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9wcHNtYy5oIGIvZHJpdmVycy9n cHUvZHJtL2FtZC9hbWRncHUvY3pfcHBzbWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMjczNjE2YS4uMDAwMDAwMAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9jel9w cHNtYy5oCisrKyAvZGV2L251bGwKQEAgLTEsMTg1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg MjAxNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCi0gKgotICogUGVybWlzc2lvbiBpcyBo ZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEK LSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZp bGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0 IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCi0gKiB0aGUgcmlnaHRz IHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGlj ZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJt aXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAqCi0gKiBUaGUgYWJvdmUg Y29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNs dWRlZCBpbgotICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29m dHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQg V0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJRUQsIElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAotICog RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElO IE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9USEVSIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAotICog QVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SCi0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0gKgotICov Ci0KLSNpZm5kZWYgQ1pfUFBfU01DX0gKLSNkZWZpbmUgQ1pfUFBfU01DX0gKLQotI3ByYWdtYSBw YWNrKHB1c2gsIDEpCi0KLS8qIEZhbiBjb250cm9sIGFsZ29yaXRobToqLwotI2RlZmluZSBGRE9f TU9ERV9IQVJEV0FSRSAwCi0jZGVmaW5lIEZET19NT0RFX1BJRUNFX1dJU0VfTElORUFSIDEKLQot ZW51bSBGQU5fQ09OVFJPTCB7Ci0gICAgRkFOX0NPTlRST0xfRlVaWlksCi0gICAgRkFOX0NPTlRS T0xfVEFCTEUKLX07Ci0KLWVudW0gRFBNX0FSUkFZIHsKLSAgICBEUE1fQVJSQVlfSEFSRF9NQVgs Ci0gICAgRFBNX0FSUkFZX0hBUkRfTUlOLAotICAgIERQTV9BUlJBWV9TT0ZUX01BWCwKLSAgICBE UE1fQVJSQVlfU09GVF9NSU4KLX07Ci0KLS8qCi0gKiBSZXR1cm4gY29kZXMgZm9yIGRyaXZlciB0 byBTTUMgY29tbXVuaWNhdGlvbi4KLSAqIExlYXZlIHRoZXNlICNkZWZpbmUtcywgZW51bXMgbWln aHQgbm90IGJlIGV4YWN0bHkgOC1iaXRzIG9uIHRoZSBtaWNyb2NvbnRyb2xsZXIuCi0gKi8KLSNk ZWZpbmUgUFBTTUNfUmVzdWx0X09LICAgICAgICAgICAgICgodWludDE2X3QpMHgwMSkKLSNkZWZp bmUgUFBTTUNfUmVzdWx0X05vTW9yZSAgICAgICAgICgodWludDE2X3QpMHgwMikKLSNkZWZpbmUg UFBTTUNfUmVzdWx0X05vdE5vdyAgICAgICAgICgodWludDE2X3QpMHgwMykKLSNkZWZpbmUgUFBT TUNfUmVzdWx0X0ZhaWxlZCAgICAgICAgICgodWludDE2X3QpMHhGRikKLSNkZWZpbmUgUFBTTUNf UmVzdWx0X1Vua25vd25DbWQgICAgICgodWludDE2X3QpMHhGRSkKLSNkZWZpbmUgUFBTTUNfUmVz dWx0X1Vua25vd25WVCAgICAgICgodWludDE2X3QpMHhGRCkKLQotI2RlZmluZSBQUFNNQ19pc0VS Uk9SKHgpICAgICAgICAgICAgKCh1aW50MTZfdCkweDgwICYgKHgpKQotCi0vKgotICogU3VwcG9y dGVkIGRyaXZlciBtZXNzYWdlcwotICovCi0jZGVmaW5lIFBQU01DX01TR19UZXN0ICAgICAgICAg ICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxKQotI2RlZmluZSBQUFNNQ19NU0dfR2V0RmVh dHVyZVN0YXR1cyAgICAgICAgICAgICgodWludDE2X3QpIDB4MikKLSNkZWZpbmUgUFBTTUNfTVNH X0VuYWJsZUFsbFNtdUZlYXR1cmVzICAgICAgICAoKHVpbnQxNl90KSAweDMpCi0jZGVmaW5lIFBQ U01DX01TR19EaXNhYmxlQWxsU211RmVhdHVyZXMgICAgICAgKCh1aW50MTZfdCkgMHg0KQotI2Rl ZmluZSBQUFNNQ19NU0dfT3B0aW1pemVCYXR0ZXJ5ICAgICAgICAgICAgICgodWludDE2X3QpIDB4 NSkKLSNkZWZpbmUgUFBTTUNfTVNHX01heGltaXplUGVyZiAgICAgICAgICAgICAgICAoKHVpbnQx Nl90KSAweDYpCi0jZGVmaW5lIFBQU01DX01TR19VVkRQb3dlck9GRiAgICAgICAgICAgICAgICAg KCh1aW50MTZfdCkgMHg3KQotI2RlZmluZSBQUFNNQ19NU0dfVVZEUG93ZXJPTiAgICAgICAgICAg ICAgICAgICgodWludDE2X3QpIDB4OCkKLSNkZWZpbmUgUFBTTUNfTVNHX1ZDRVBvd2VyT0ZGICAg ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDkpCi0jZGVmaW5lIFBQU01DX01TR19WQ0VQb3dl ck9OICAgICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHhBKQotI2RlZmluZSBQUFNNQ19NU0df QUNQUG93ZXJPRkYgICAgICAgICAgICAgICAgICgodWludDE2X3QpIDB4QikKLSNkZWZpbmUgUFBT TUNfTVNHX0FDUFBvd2VyT04gICAgICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweEMpCi0jZGVm aW5lIFBQU01DX01TR19TRE1BUG93ZXJPRkYgICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHhE KQotI2RlZmluZSBQUFNNQ19NU0dfU0RNQVBvd2VyT04gICAgICAgICAgICAgICAgICgodWludDE2 X3QpIDB4RSkKLSNkZWZpbmUgUFBTTUNfTVNHX1hETUFQb3dlck9GRiAgICAgICAgICAgICAgICAo KHVpbnQxNl90KSAweEYpCi0jZGVmaW5lIFBQU01DX01TR19YRE1BUG93ZXJPTiAgICAgICAgICAg ICAgICAgKCh1aW50MTZfdCkgMHgxMCkKLSNkZWZpbmUgUFBTTUNfTVNHX1NldE1pbkRlZXBTbGVl cFNjbGsgICAgICAgICAoKHVpbnQxNl90KSAweDExKQotI2RlZmluZSBQUFNNQ19NU0dfU2V0U2Ns a1NvZnRNaW4gICAgICAgICAgICAgICgodWludDE2X3QpIDB4MTIpCi0jZGVmaW5lIFBQU01DX01T R19TZXRTY2xrU29mdE1heCAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxMykKLSNkZWZpbmUg UFBTTUNfTVNHX1NldFNjbGtIYXJkTWluICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDE0KQot I2RlZmluZSBQUFNNQ19NU0dfU2V0U2Nsa0hhcmRNYXggICAgICAgICAgICAgICgodWludDE2X3Qp IDB4MTUpCi0jZGVmaW5lIFBQU01DX01TR19TZXRMY2xrU29mdE1pbiAgICAgICAgICAgICAgKCh1 aW50MTZfdCkgMHgxNikKLSNkZWZpbmUgUFBTTUNfTVNHX1NldExjbGtTb2Z0TWF4ICAgICAgICAg ICAgICAoKHVpbnQxNl90KSAweDE3KQotI2RlZmluZSBQUFNNQ19NU0dfU2V0TGNsa0hhcmRNaW4g ICAgICAgICAgICAgICgodWludDE2X3QpIDB4MTgpCi0jZGVmaW5lIFBQU01DX01TR19TZXRMY2xr SGFyZE1heCAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxOSkKLSNkZWZpbmUgUFBTTUNfTVNH X1NldFV2ZFNvZnRNaW4gICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDFBKQotI2RlZmluZSBQ UFNNQ19NU0dfU2V0VXZkU29mdE1heCAgICAgICAgICAgICAgICgodWludDE2X3QpIDB4MUIpCi0j ZGVmaW5lIFBQU01DX01TR19TZXRVdmRIYXJkTWluICAgICAgICAgICAgICAgKCh1aW50MTZfdCkg MHgxQykKLSNkZWZpbmUgUFBTTUNfTVNHX1NldFV2ZEhhcmRNYXggICAgICAgICAgICAgICAoKHVp bnQxNl90KSAweDFEKQotI2RlZmluZSBQUFNNQ19NU0dfU2V0RWNsa1NvZnRNaW4gICAgICAgICAg ICAgICgodWludDE2X3QpIDB4MUUpCi0jZGVmaW5lIFBQU01DX01TR19TZXRFY2xrU29mdE1heCAg ICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxRikKLSNkZWZpbmUgUFBTTUNfTVNHX1NldEVjbGtI YXJkTWluICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDIwKQotI2RlZmluZSBQUFNNQ19NU0df U2V0RWNsa0hhcmRNYXggICAgICAgICAgICAgICgodWludDE2X3QpIDB4MjEpCi0jZGVmaW5lIFBQ U01DX01TR19TZXRBY2xrU29mdE1pbiAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgyMikKLSNk ZWZpbmUgUFBTTUNfTVNHX1NldEFjbGtTb2Z0TWF4ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAw eDIzKQotI2RlZmluZSBQUFNNQ19NU0dfU2V0QWNsa0hhcmRNaW4gICAgICAgICAgICAgICgodWlu dDE2X3QpIDB4MjQpCi0jZGVmaW5lIFBQU01DX01TR19TZXRBY2xrSGFyZE1heCAgICAgICAgICAg ICAgKCh1aW50MTZfdCkgMHgyNSkKLSNkZWZpbmUgUFBTTUNfTVNHX1NldE5jbGtTb2Z0TWluICAg ICAgICAgICAgICAoKHVpbnQxNl90KSAweDI2KQotI2RlZmluZSBQUFNNQ19NU0dfU2V0TmNsa1Nv ZnRNYXggICAgICAgICAgICAgICgodWludDE2X3QpIDB4MjcpCi0jZGVmaW5lIFBQU01DX01TR19T ZXROY2xrSGFyZE1pbiAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgyOCkKLSNkZWZpbmUgUFBT TUNfTVNHX1NldE5jbGtIYXJkTWF4ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDI5KQotI2Rl ZmluZSBQUFNNQ19NU0dfU2V0UHN0YXRlU29mdE1pbiAgICAgICAgICAgICgodWludDE2X3QpIDB4 MkEpCi0jZGVmaW5lIFBQU01DX01TR19TZXRQc3RhdGVTb2Z0TWF4ICAgICAgICAgICAgKCh1aW50 MTZfdCkgMHgyQikKLSNkZWZpbmUgUFBTTUNfTVNHX1NldFBzdGF0ZUhhcmRNaW4gICAgICAgICAg ICAoKHVpbnQxNl90KSAweDJDKQotI2RlZmluZSBQUFNNQ19NU0dfU2V0UHN0YXRlSGFyZE1heCAg ICAgICAgICAgICgodWludDE2X3QpIDB4MkQpCi0jZGVmaW5lIFBQU01DX01TR19EaXNhYmxlTG93 TWVtb3J5UHN0YXRlICAgICAgKCh1aW50MTZfdCkgMHgyRSkKLSNkZWZpbmUgUFBTTUNfTVNHX0Vu YWJsZUxvd01lbW9yeVBzdGF0ZSAgICAgICAoKHVpbnQxNl90KSAweDJGKQotI2RlZmluZSBQUFNN Q19NU0dfVWNvZGVBZGRyZXNzTG93ICAgICAgICAgICAgICgodWludDE2X3QpIDB4MzApCi0jZGVm aW5lIFBQU01DX01TR19VY29kZUFkZHJlc3NIaWdoICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgz MSkKLSNkZWZpbmUgUFBTTUNfTVNHX1Vjb2RlTG9hZFN0YXR1cyAgICAgICAgICAgICAoKHVpbnQx Nl90KSAweDMyKQotI2RlZmluZSBQUFNNQ19NU0dfRHJpdmVyRHJhbUFkZHJIaSAgICAgICAgICAg ICgodWludDE2X3QpIDB4MzMpCi0jZGVmaW5lIFBQU01DX01TR19Ecml2ZXJEcmFtQWRkckxvICAg ICAgICAgICAgKCh1aW50MTZfdCkgMHgzNCkKLSNkZWZpbmUgUFBTTUNfTVNHX0NvbmRFeGVjRHJh bUFkZHJIaSAgICAgICAgICAoKHVpbnQxNl90KSAweDM1KQotI2RlZmluZSBQUFNNQ19NU0dfQ29u ZEV4ZWNEcmFtQWRkckxvICAgICAgICAgICgodWludDE2X3QpIDB4MzYpCi0jZGVmaW5lIFBQU01D X01TR19Mb2FkVWNvZGVzICAgICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgzNykKLSNkZWZp bmUgUFBTTUNfTVNHX0RyaXZlclJlc2V0TW9kZSAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDM4 KQotI2RlZmluZSBQUFNNQ19NU0dfUG93ZXJTdGF0ZU5vdGlmeSAgICAgICAgICAgICgodWludDE2 X3QpIDB4MzkpCi0jZGVmaW5lIFBQU01DX01TR19TZXREaXNwbGF5UGh5Q29uZmlnICAgICAgICAg KCh1aW50MTZfdCkgMHgzQSkKLSNkZWZpbmUgUFBTTUNfTVNHX0dldE1heFNjbGtMZXZlbCAgICAg ICAgICAgICAoKHVpbnQxNl90KSAweDNCKQotI2RlZmluZSBQUFNNQ19NU0dfR2V0TWF4TGNsa0xl dmVsICAgICAgICAgICAgICgodWludDE2X3QpIDB4M0MpCi0jZGVmaW5lIFBQU01DX01TR19HZXRN YXhVdmRMZXZlbCAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgzRCkKLSNkZWZpbmUgUFBTTUNf TVNHX0dldE1heEVjbGtMZXZlbCAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDNFKQotI2RlZmlu ZSBQUFNNQ19NU0dfR2V0TWF4QWNsa0xldmVsICAgICAgICAgICAgICgodWludDE2X3QpIDB4M0Yp Ci0jZGVmaW5lIFBQU01DX01TR19HZXRNYXhOY2xrTGV2ZWwgICAgICAgICAgICAgKCh1aW50MTZf dCkgMHg0MCkKLSNkZWZpbmUgUFBTTUNfTVNHX0dldE1heFBzdGF0ZSAgICAgICAgICAgICAgICAo KHVpbnQxNl90KSAweDQxKQotI2RlZmluZSBQUFNNQ19NU0dfRHJhbUFkZHJIaVZpcnR1YWwgICAg ICAgICAgICgodWludDE2X3QpIDB4NDIpCi0jZGVmaW5lIFBQU01DX01TR19EcmFtQWRkckxvVmly dHVhbCAgICAgICAgICAgKCh1aW50MTZfdCkgMHg0MykKLSNkZWZpbmUgUFBTTUNfTVNHX0RyYW1B ZGRySGlQaHlzaWNhbCAgICAgICAgICAoKHVpbnQxNl90KSAweDQ0KQotI2RlZmluZSBQUFNNQ19N U0dfRHJhbUFkZHJMb1BoeXNpY2FsICAgICAgICAgICgodWludDE2X3QpIDB4NDUpCi0jZGVmaW5l IFBQU01DX01TR19EcmFtQnVmZmVyU2l6ZSAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHg0NikK LSNkZWZpbmUgUFBTTUNfTVNHX1NldE1tUHdyTG9nRHJhbUFkZHJIaSAgICAgICAoKHVpbnQxNl90 KSAweDQ3KQotI2RlZmluZSBQUFNNQ19NU0dfU2V0TW1Qd3JMb2dEcmFtQWRkckxvICAgICAgICgo dWludDE2X3QpIDB4NDgpCi0jZGVmaW5lIFBQU01DX01TR19TZXRDbGtUYWJsZUFkZHJIaSAgICAg ICAgICAgKCh1aW50MTZfdCkgMHg0OSkKLSNkZWZpbmUgUFBTTUNfTVNHX1NldENsa1RhYmxlQWRk ckxvICAgICAgICAgICAoKHVpbnQxNl90KSAweDRBKQotI2RlZmluZSBQUFNNQ19NU0dfR2V0Q29u c2VydmF0aXZlUG93ZXJMaW1pdCAgICgodWludDE2X3QpIDB4NEIpCi0KLSNkZWZpbmUgUFBTTUNf TVNHX0luaXRKb2JzICAgICAgICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDI1MikKLSNkZWZp bmUgUFBTTUNfTVNHX0V4ZWN1dGVKb2IgICAgICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDI1 NCkKLQotI2RlZmluZSBQUFNNQ19NU0dfTkJEUE1fRW5hYmxlICAgICAgICAgICAgICAgICgodWlu dDE2X3QpIDB4MTQwKQotI2RlZmluZSBQUFNNQ19NU0dfTkJEUE1fRGlzYWJsZSAgICAgICAgICAg ICAgICgodWludDE2X3QpIDB4MTQxKQotCi0jZGVmaW5lIFBQU01DX01TR19EUE1fRlBTX01vZGUg ICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxNWQpCi0jZGVmaW5lIFBQU01DX01TR19EUE1f QWN0aXZpdHlfTW9kZSAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxNWUpCi0KLSNkZWZpbmUgUFBT TUNfTVNHX1BtU3RhdHVzTG9nU3RhcnQgICAgICAgICAgICAoKHVpbnQxNl90KSAweDE3MCkKLSNk ZWZpbmUgUFBTTUNfTVNHX1BtU3RhdHVzTG9nU2FtcGxlICAgICAgICAgICAoKHVpbnQxNl90KSAw eDE3MSkKLQotI2RlZmluZSBQUFNNQ19NU0dfQWxsb3dMb3dTY2xrSW50ZXJydXB0ICAgICAgICgo dWludDE2X3QpIDB4MTg0KQotI2RlZmluZSBQUFNNQ19NU0dfTW1Qb3dlck1vbml0b3JTdGFydCAg ICAgICAgICgodWludDE2X3QpIDB4MThGKQotI2RlZmluZSBQUFNNQ19NU0dfTW1Qb3dlck1vbml0 b3JTdG9wICAgICAgICAgICgodWludDE2X3QpIDB4MTkwKQotI2RlZmluZSBQUFNNQ19NU0dfTW1Q b3dlck1vbml0b3JSZXN0YXJ0ICAgICAgICgodWludDE2X3QpIDB4MTkxKQotCi0jZGVmaW5lIFBQ U01DX01TR19TZXRDbG9ja0dhdGVNYXNrICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgyNjApCi0j ZGVmaW5lIFBQU01DX01TR19TZXRGcHNUaHJlc2hvbGRMbyAgICAgICAgICAgKCh1aW50MTZfdCkg MHgyNjQpCi0jZGVmaW5lIFBQU01DX01TR19TZXRGcHNUaHJlc2hvbGRIaSAgICAgICAgICAgKCh1 aW50MTZfdCkgMHgyNjUpCi0jZGVmaW5lIFBQU01DX01TR19TZXRMb3dTY2xrSW50clRocmVzaG9s ZCAgICAgKCh1aW50MTZfdCkgMHgyNjYpCi0KLSNkZWZpbmUgUFBTTUNfTVNHX0Nsa1RhYmxlWGZl clRvRHJhbSAgICAgICAgICAoKHVpbnQxNl90KSAweDI2NykKLSNkZWZpbmUgUFBTTUNfTVNHX0Ns a1RhYmxlWGZlclRvU211ICAgICAgICAgICAoKHVpbnQxNl90KSAweDI2OCkKLSNkZWZpbmUgUFBT TUNfTVNHX0dldEF2ZXJhZ2VHcmFwaGljc0FjdGl2aXR5ICAoKHVpbnQxNl90KSAweDI2OSkKLSNk ZWZpbmUgUFBTTUNfTVNHX0dldEF2ZXJhZ2VHaW9BY3Rpdml0eSAgICAgICAoKHVpbnQxNl90KSAw eDI2QSkKLSNkZWZpbmUgUFBTTUNfTVNHX1NldExvZ2dlckJ1ZmZlclNpemUgICAgICAgICAoKHVp bnQxNl90KSAweDI2QikKLSNkZWZpbmUgUFBTTUNfTVNHX1NldExvZ2dlckFkZHJlc3NIaWdoICAg ICAgICAoKHVpbnQxNl90KSAweDI2QykKLSNkZWZpbmUgUFBTTUNfTVNHX1NldExvZ2dlckFkZHJl c3NMb3cgICAgICAgICAoKHVpbnQxNl90KSAweDI2RCkKLSNkZWZpbmUgUFBTTUNfTVNHX1NldFdh dGVybWFya0ZyZXF1ZW5jeSAgICAgICAoKHVpbnQxNl90KSAweDI2RSkKLQotLyogUkVNT1ZFIExB VEVSKi8KLSNkZWZpbmUgUFBTTUNfTVNHX0RQTV9Gb3JjZVN0YXRlICAgICAgICAgICAgICAoKHVp bnQxNl90KSAweDEwNCkKLQotLyogRmVhdHVyZSBFbmFibGUgTWFza3MqLwotI2RlZmluZSBOQl9E UE1fTUFTSyAgICAgICAgICAgICAweDAwMDAwODAwCi0jZGVmaW5lIFZEREdGWF9NQVNLICAgICAg ICAgICAgIDB4MDA4MDAwMDAKLSNkZWZpbmUgVkNFX0RQTV9NQVNLICAgICAgICAgICAgMHgwMDQw MDAwMAotI2RlZmluZSBBQ1BfRFBNX01BU0sgICAgICAgICAgICAweDAwMDQwMDAwCi0jZGVmaW5l IFVWRF9EUE1fTUFTSyAgICAgICAgICAgIDB4MDAwMTAwMDAKLSNkZWZpbmUgR0ZYX0NVX1BHX01B U0sgICAgICAgICAgMHgwMDAwNDAwMAotI2RlZmluZSBTQ0xLX0RQTV9NQVNLICAgICAgICAgICAw eDAwMDgwMDAwCi0KLSNpZiAhZGVmaW5lZChTTUNfTUlDUk9DT0RFKQotI3ByYWdtYSBwYWNrKHBv cCkKLQotI2VuZGlmCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvc211OC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211OC5oCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNzU4ZDA3Li4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3NtdTguaAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8q Ci0gKiBDb3B5cmlnaHQgMjAxNCBBZHZhbmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCi0gKgotICog UGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJz b24gb2J0YWluaW5nIGEKLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBk b2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCi0gKiB0byBkZWFsIGluIHRoZSBT b2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9u Ci0gKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlz dHJpYnV0ZSwgc3VibGljZW5zZSwKLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQotICogU29mdHdhcmUgaXMgZnVy bmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLSAq Ci0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGlj ZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgotICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0 aW9ucyBvZiB0aGUgU29mdHdhcmUuCi0gKgotICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJB UyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKLSAqIElNUExJ RUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hB TlRBQklMSVRZLAotICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMCi0gKiBUSEUgQ09QWVJJR0hUIEhPTERFUihT KSBPUiBBVVRIT1IoUykgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKLSAqIE9U SEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1Ig T1RIRVJXSVNFLAotICogQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRI IFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SCi0gKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09G VFdBUkUuCi0gKgotICovCi0KLSNpZm5kZWYgU01VOF9ICi0jZGVmaW5lIFNNVThfSAotCi0jcHJh Z21hIHBhY2socHVzaCwgMSkKLQotI2RlZmluZSBFTkFCTEVfREVCVUdfRkVBVFVSRVMKLQotc3Ry dWN0IFNNVThfRmlybXdhcmVfSGVhZGVyIHsKLQl1aW50MzJfdCBWZXJzaW9uOwotCXVpbnQzMl90 IEltYWdlU2l6ZTsKLQl1aW50MzJfdCBDb2RlU2l6ZTsKLQl1aW50MzJfdCBIZWFkZXJTaXplOwot CXVpbnQzMl90IEVudHJ5UG9pbnQ7Ci0JdWludDMyX3QgUnRvczsKLQl1aW50MzJfdCBVY29kZUxv YWRTdGF0dXM7Ci0JdWludDMyX3QgRHBtVGFibGU7Ci0JdWludDMyX3QgRmFuVGFibGU7Ci0JdWlu dDMyX3QgUG1GdXNlVGFibGU7Ci0JdWludDMyX3QgR2xvYmFsczsKLQl1aW50MzJfdCBSZXNlcnZl ZFsyMF07Ci0JdWludDMyX3QgU2lnbmF0dXJlOwotfTsKLQotc3RydWN0IFNNVThfTXVsdGltZWRp YVBvd2VyTG9nRGF0YSB7Ci0JdWludDMyX3QgYXZnVG90YWxQb3dlcjsKLQl1aW50MzJfdCBhdmdH cHVQb3dlcjsKLQl1aW50MzJfdCBhdmdVdmRQb3dlcjsKLQl1aW50MzJfdCBhdmdWY2VQb3dlcjsK LQotCXVpbnQzMl90IGF2Z1NjbGs7Ci0JdWludDMyX3QgYXZnRGNsazsKLQl1aW50MzJfdCBhdmdW Y2xrOwotCXVpbnQzMl90IGF2Z0VjbGs7Ci0KLQl1aW50MzJfdCBzdGFydFRpbWVIaTsKLQl1aW50 MzJfdCBzdGFydFRpbWVMbzsKLQotCXVpbnQzMl90IGVuZFRpbWVIaTsKLQl1aW50MzJfdCBlbmRU aW1lTG87Ci19OwotCi0jZGVmaW5lIFNNVThfRklSTVdBUkVfSEVBREVSX0xPQ0FUSU9OIDB4MUZG ODAKLSNkZWZpbmUgU01VOF9VTkJDU1JfU1RBUlRfQUREUiAweEMwMTAwMDAwCi0KLSNkZWZpbmUg U01OX01QMV9TUkFNX1NUQVJUX0FERFIgMHgxMDAwMDAwMAotCi0jcHJhZ21hIHBhY2socG9wKQot Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NtdThfZnVz aW9uLmggYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9zbXU4X2Z1c2lvbi5oCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YzljYzNjLi4wMDAwMDAwCi0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9hbWQvYW1kZ3B1L3NtdThfZnVzaW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMjcgKzAs MCBAQAotLyoKLSAqIENvcHlyaWdodCAyMDE0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4K LSAqCi0gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8g YW55IHBlcnNvbiBvYnRhaW5pbmcgYQotICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3Nv Y2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKLSAqIHRvIGRlYWwg aW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxp bWl0YXRpb24KLSAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJs aXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAotICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRo ZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCi0gKiBTb2Z0d2Fy ZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgotICoKLSAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Np b24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCi0gKiBhbGwgY29waWVzIG9yIHN1YnN0YW50 aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KLSAqCi0gKiBUSEUgU09GVFdBUkUgSVMgUFJP VklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgot ICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBP RiBNRVJDSEFOVEFCSUxJVFksCi0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB TkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKLSAqIFRIRSBDT1BZUklHSFQg SE9MREVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBP UgotICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwg VE9SVCBPUiBPVEhFUldJU0UsCi0gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNU SU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKLSAqIE9USEVSIERFQUxJTkdTIElO IFRIRSBTT0ZUV0FSRS4KLSAqCi0gKi8KLQotI2lmbmRlZiBTTVU4X0ZVU0lPTl9ICi0jZGVmaW5l IFNNVThfRlVTSU9OX0gKLQotI2luY2x1ZGUgInNtdTguaCIKLQotI3ByYWdtYSBwYWNrKHB1c2gs IDEpCi0KLSNkZWZpbmUgU01VOF9NQVhfQ1VTIDIKLSNkZWZpbmUgU01VOF9QU01TX1BFUl9DVSA0 Ci0jZGVmaW5lIFNNVThfQ0FDU19QRVJfQ1UgNAotCi1zdHJ1Y3QgU01VOF9HZnhDdVBnU2NvcmVi b2FyZCB7Ci0gICAgdWludDhfdCBFbmFibGVkOwotICAgIHVpbnQ4X3Qgc3BhcmVbM107Ci19Owot Ci1zdHJ1Y3QgU01VOF9Qb3J0ODBNb25pdG9yVGFibGUgewotCXVpbnQzMl90IE1taW9BZGRyZXNz OwotCXVpbnQzMl90IE1lbW9yeUJhc2VIaTsKLQl1aW50MzJfdCBNZW1vcnlCYXNlTG87Ci0JdWlu dDE2X3QgTWVtb3J5QnVmZmVyU2l6ZTsKLQl1aW50MTZfdCBNZW1vcnlQb3NpdGlvbjsKLQl1aW50 MTZfdCBQb2xsaW5nSW50ZXJ2YWw7Ci0JdWludDhfdCAgRW5hYmxlQ3NyU2hhZG93OwotCXVpbnQ4 X3QgIEVuYWJsZURyYW1TaGFkb3c7Ci19OwotCi0vKiBDbG9jayBUYWJsZSBEZWZpbml0aW9ucyAq LwotI2RlZmluZSBOVU1fU0NMS19MRVZFTFMgICAgIDgKLSNkZWZpbmUgTlVNX0xDTEtfTEVWRUxT ICAgICA4Ci0jZGVmaW5lIE5VTV9VVkRfTEVWRUxTICAgICAgOAotI2RlZmluZSBOVU1fRUNMS19M RVZFTFMgICAgIDgKLSNkZWZpbmUgTlVNX0FDTEtfTEVWRUxTICAgICA4Ci0KLXN0cnVjdCBTTVU4 X0Z1c2lvbl9DbGtMZXZlbCB7Ci0JdWludDhfdAkJR25iVmlkOwotCXVpbnQ4X3QJCUdmeFZpZDsK LQl1aW50OF90CQlEZnNEaWQ7Ci0JdWludDhfdAkJRGVlcFNsZWVwRGlkOwotCXVpbnQzMl90CURm c0J5cGFzczsKLQl1aW50MzJfdAlGcmVxdWVuY3k7Ci19OwotCi1zdHJ1Y3QgU01VOF9GdXNpb25f U2Nsa0JyZWFrZG93blRhYmxlIHsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgQ2xrTGV2 ZWxbTlVNX1NDTEtfTEVWRUxTXTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2Zm TGV2ZWw7Ci0JLyogU01VOF9GdXNpb25fQ2xrTGV2ZWwgUHdyT2ZmTGV2ZWw7ICovCi0JdWludDMy X3QgICAgU2Nsa1ZhbGlkTWFzazsKLQl1aW50MzJfdCAgICBNYXhTY2xrSW5kZXg7Ci19OwotCi1z dHJ1Y3QgU01VOF9GdXNpb25fTGNsa0JyZWFrZG93blRhYmxlIHsKLQlzdHJ1Y3QgU01VOF9GdXNp b25fQ2xrTGV2ZWwgQ2xrTGV2ZWxbTlVNX0xDTEtfTEVWRUxTXTsKLQlzdHJ1Y3QgU01VOF9GdXNp b25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7Ci0gICAgLyogU01VOF9GdXNpb25fQ2xrTGV2ZWwgUHdy T2ZmTGV2ZWw7ICovCi0JdWludDMyX3QgICAgTGNsa1ZhbGlkTWFzazsKLQl1aW50MzJfdCAgICBN YXhMY2xrSW5kZXg7Ci19OwotCi1zdHJ1Y3QgU01VOF9GdXNpb25fRWNsa0JyZWFrZG93blRhYmxl IHsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgQ2xrTGV2ZWxbTlVNX0VDTEtfTEVWRUxT XTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7Ci0Jc3RydWN0IFNN VThfRnVzaW9uX0Nsa0xldmVsIFB3ck9mZkxldmVsOwotCXVpbnQzMl90ICAgIEVjbGtWYWxpZE1h c2s7Ci0JdWludDMyX3QgICAgTWF4RWNsa0luZGV4OwotfTsKLQotc3RydWN0IFNNVThfRnVzaW9u X1ZjbGtCcmVha2Rvd25UYWJsZSB7Ci0Jc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIENsa0xl dmVsW05VTV9VVkRfTEVWRUxTXTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2Zm TGV2ZWw7Ci0Jc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIFB3ck9mZkxldmVsOwotCXVpbnQz Ml90ICAgIFZjbGtWYWxpZE1hc2s7Ci0JdWludDMyX3QgICAgTWF4VmNsa0luZGV4OwotfTsKLQot c3RydWN0IFNNVThfRnVzaW9uX0RjbGtCcmVha2Rvd25UYWJsZSB7Ci0Jc3RydWN0IFNNVThfRnVz aW9uX0Nsa0xldmVsIENsa0xldmVsW05VTV9VVkRfTEVWRUxTXTsKLQlzdHJ1Y3QgU01VOF9GdXNp b25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7Ci0Jc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIFB3 ck9mZkxldmVsOwotCXVpbnQzMl90ICAgIERjbGtWYWxpZE1hc2s7Ci0JdWludDMyX3QgICAgTWF4 RGNsa0luZGV4OwotfTsKLQotc3RydWN0IFNNVThfRnVzaW9uX0FjbGtCcmVha2Rvd25UYWJsZSB7 Ci0Jc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIENsa0xldmVsW05VTV9BQ0xLX0xFVkVMU107 Ci0Jc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIERwbU9mZkxldmVsOwotCXN0cnVjdCBTTVU4 X0Z1c2lvbl9DbGtMZXZlbCBQd3JPZmZMZXZlbDsKLQl1aW50MzJfdCAgICBBY2xrVmFsaWRNYXNr OwotCXVpbnQzMl90ICAgIE1heEFjbGtJbmRleDsKLX07Ci0KLQotc3RydWN0IFNNVThfRnVzaW9u X0Nsa1RhYmxlIHsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fU2Nsa0JyZWFrZG93blRhYmxlIFNjbGtC cmVha2Rvd25UYWJsZTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fTGNsa0JyZWFrZG93blRhYmxlIExj bGtCcmVha2Rvd25UYWJsZTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fRWNsa0JyZWFrZG93blRhYmxl IEVjbGtCcmVha2Rvd25UYWJsZTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fVmNsa0JyZWFrZG93blRh YmxlIFZjbGtCcmVha2Rvd25UYWJsZTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fRGNsa0JyZWFrZG93 blRhYmxlIERjbGtCcmVha2Rvd25UYWJsZTsKLQlzdHJ1Y3QgU01VOF9GdXNpb25fQWNsa0JyZWFr ZG93blRhYmxlIEFjbGtCcmVha2Rvd25UYWJsZTsKLX07Ci0KLSNwcmFnbWEgcGFjayhwb3ApCi0K LSNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211X3Vjb2Rl X3hmZXJfY3ouaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3NtdV91Y29kZV94ZmVyX2N6 LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4YmEwNzEuLjAwMDAwMDAKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvc211X3Vjb2RlX3hmZXJfY3ouaAorKysgL2Rldi9u dWxsCkBAIC0xLDE0NyArMCwwIEBACi0vLyBDWiBVY29kZSBMb2FkaW5nIERlZmluaXRpb25zCi0j aWZuZGVmIFNNVV9VQ09ERV9YRkVSX0NaX0gKLSNkZWZpbmUgU01VX1VDT0RFX1hGRVJfQ1pfSAot Ci0jZGVmaW5lIE5VTV9KT0JMSVNUX0VOVFJJRVMgICAgICAzMgotCi0jZGVmaW5lIFRBU0tfVFlQ RV9OT19BQ1RJT04gICAgICAwCi0jZGVmaW5lIFRBU0tfVFlQRV9VQ09ERV9MT0FEICAgICAxCi0j ZGVmaW5lIFRBU0tfVFlQRV9VQ09ERV9TQVZFICAgICAyCi0jZGVmaW5lIFRBU0tfVFlQRV9SRUdf TE9BRCAgICAgICAzCi0jZGVmaW5lIFRBU0tfVFlQRV9SRUdfU0FWRSAgICAgICA0Ci0jZGVmaW5l IFRBU0tfVFlQRV9JTklUSUFMSVpFICAgICA1Ci0KLSNkZWZpbmUgVEFTS19BUkdfUkVHX1NNQ0lO RCAgICAgIDAKLSNkZWZpbmUgVEFTS19BUkdfUkVHX01NSU8gICAgICAgIDEKLSNkZWZpbmUgVEFT S19BUkdfUkVHX0ZDSCAgICAgICAgIDIKLSNkZWZpbmUgVEFTS19BUkdfUkVHX1VOQiAgICAgICAg IDMKLQotI2RlZmluZSBUQVNLX0FSR19JTklUX01NX1BXUl9MT0cgMAotI2RlZmluZSBUQVNLX0FS R19JTklUX0NMS19UQUJMRSAgMQotCi0jZGVmaW5lIEpPQl9HRlhfU0FWRSAgICAgICAgICAgICAw Ci0jZGVmaW5lIEpPQl9HRlhfUkVTVE9SRSAgICAgICAgICAxCi0jZGVmaW5lIEpPQl9GQ0hfU0FW RSAgICAgICAgICAgICAyCi0jZGVmaW5lIEpPQl9GQ0hfUkVTVE9SRSAgICAgICAgICAzCi0jZGVm aW5lIEpPQl9VTkJfU0FWRSAgICAgICAgICAgICA0Ci0jZGVmaW5lIEpPQl9VTkJfUkVTVE9SRSAg ICAgICAgICA1Ci0jZGVmaW5lIEpPQl9HTUNfU0FWRSAgICAgICAgICAgICA2Ci0jZGVmaW5lIEpP Ql9HTUNfUkVTVE9SRSAgICAgICAgICA3Ci0jZGVmaW5lIEpPQl9HTkJfU0FWRSAgICAgICAgICAg ICA4Ci0jZGVmaW5lIEpPQl9HTkJfUkVTVE9SRSAgICAgICAgICA5Ci0KLSNkZWZpbmUgSUdOT1JF X0pPQiAgICAgICAgICAgICAgIDB4ZmYKLSNkZWZpbmUgRU5EX09GX1RBU0tfTElTVCAgICAgKHVp bnQxNl90KTB4ZmZmZgotCi0vLyBTaXplIG9mIERSQU0gcmVnaW9ucyAoaW4gYnl0ZXMpIHJlcXVl c3RlZCBieSBTTVU6Ci0jZGVmaW5lIFNNVV9EUkFNX1JFUV9NTV9QV1JfTE9HIDQ4IAotCi0jZGVm aW5lIFVDT0RFX0lEX1NETUEwICAgICAgICAgICAwCi0jZGVmaW5lIFVDT0RFX0lEX1NETUExICAg ICAgICAgICAxCi0jZGVmaW5lIFVDT0RFX0lEX0NQX0NFICAgICAgICAgICAyCi0jZGVmaW5lIFVD T0RFX0lEX0NQX1BGUCAgICAgICAgICAzCi0jZGVmaW5lIFVDT0RFX0lEX0NQX01FICAgICAgICAg ICA0Ci0jZGVmaW5lIFVDT0RFX0lEX0NQX01FQ19KVDEgICAgICA1Ci0jZGVmaW5lIFVDT0RFX0lE X0NQX01FQ19KVDIgICAgICA2Ci0jZGVmaW5lIFVDT0RFX0lEX0dNQ09OX1JFTkcgICAgICA3Ci0j ZGVmaW5lIFVDT0RFX0lEX1JMQ19HICAgICAgICAgICA4Ci0jZGVmaW5lIFVDT0RFX0lEX1JMQ19T Q1JBVENIICAgICA5Ci0jZGVmaW5lIFVDT0RFX0lEX1JMQ19TUk1fQVJBTSAgICAxMAotI2RlZmlu ZSBVQ09ERV9JRF9STENfU1JNX0RSQU0gICAgMTEKLSNkZWZpbmUgVUNPREVfSURfRE1DVV9FUkFN ICAgICAgIDEyCi0jZGVmaW5lIFVDT0RFX0lEX0RNQ1VfSVJBTSAgICAgICAxMwotCi0jZGVmaW5l IFVDT0RFX0lEX1NETUEwX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDEgICAgICAgCi0jZGVmaW5l IFVDT0RFX0lEX1NETUExX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDIgICAgICAgIAotI2RlZmlu ZSBVQ09ERV9JRF9DUF9DRV9NQVNLICAgICAgICAgICAweDAwMDAwMDA0ICAgICAgCi0jZGVmaW5l IFVDT0RFX0lEX0NQX1BGUF9NQVNLICAgICAgICAgIDB4MDAwMDAwMDggICAgICAgICAKLSNkZWZp bmUgVUNPREVfSURfQ1BfTUVfTUFTSyAgICAgICAgICAgMHgwMDAwMDAxMCAgICAgICAgICAKLSNk ZWZpbmUgVUNPREVfSURfQ1BfTUVDX0pUMV9NQVNLICAgICAgMHgwMDAwMDAyMCAgICAgICAgICAg ICAKLSNkZWZpbmUgVUNPREVfSURfQ1BfTUVDX0pUMl9NQVNLICAgICAgMHgwMDAwMDA0MCAgICAg ICAgICAKLSNkZWZpbmUgVUNPREVfSURfR01DT05fUkVOR19NQVNLICAgICAgMHgwMDAwMDA4MCAg ICAgICAgICAgIAotI2RlZmluZSBVQ09ERV9JRF9STENfR19NQVNLICAgICAgICAgICAweDAwMDAw MTAwICAgICAgICAgICAKLSNkZWZpbmUgVUNPREVfSURfUkxDX1NDUkFUQ0hfTUFTSyAgICAgMHgw MDAwMDIwMCAgICAgICAgIAotI2RlZmluZSBVQ09ERV9JRF9STENfU1JNX0FSQU1fTUFTSyAgICAw eDAwMDAwNDAwICAgICAgICAgICAgICAgIAotI2RlZmluZSBVQ09ERV9JRF9STENfU1JNX0RSQU1f TUFTSyAgICAweDAwMDAwODAwICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgVUNPREVfSURfRE1D VV9FUkFNX01BU0sgICAgICAgMHgwMDAwMTAwMCAgICAgICAgICAgICAKLSNkZWZpbmUgVUNPREVf SURfRE1DVV9JUkFNX01BU0sgICAgICAgMHgwMDAwMjAwMCAgICAgICAgICAgICAgCi0KLSNkZWZp bmUgVUNPREVfSURfU0RNQTBfU0laRV9CWVRFICAgICAgICAgICAxMDM2OCAgICAgICAgCi0jZGVm aW5lIFVDT0RFX0lEX1NETUExX1NJWkVfQllURSAgICAgICAgICAgMTAzNjggICAgICAgICAgCi0j ZGVmaW5lIFVDT0RFX0lEX0NQX0NFX1NJWkVfQllURSAgICAgICAgICAgODU3NiAgICAgICAgCi0j ZGVmaW5lIFVDT0RFX0lEX0NQX1BGUF9TSVpFX0JZVEUgICAgICAgICAgMTY3NjggICAgICAgICAg IAotI2RlZmluZSBVQ09ERV9JRF9DUF9NRV9TSVpFX0JZVEUgICAgICAgICAgIDE2NzY4ICAgICAg ICAgICAgCi0jZGVmaW5lIFVDT0RFX0lEX0NQX01FQ19KVDFfU0laRV9CWVRFICAgICAgMzg0ICAg ICAgICAgICAgICAgCi0jZGVmaW5lIFVDT0RFX0lEX0NQX01FQ19KVDJfU0laRV9CWVRFICAgICAg Mzg0ICAgICAgICAgICAgCi0jZGVmaW5lIFVDT0RFX0lEX0dNQ09OX1JFTkdfU0laRV9CWVRFICAg ICAgNDA5NiAgICAgICAgICAgICAgCi0jZGVmaW5lIFVDT0RFX0lEX1JMQ19HX1NJWkVfQllURSAg ICAgICAgICAgMjA0OCAgICAgICAgICAgICAKLSNkZWZpbmUgVUNPREVfSURfUkxDX1NDUkFUQ0hf U0laRV9CWVRFICAgICAxMzIgICAgICAgICAgIAotI2RlZmluZSBVQ09ERV9JRF9STENfU1JNX0FS QU1fU0laRV9CWVRFICAgIDgxOTIgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgVUNPREVfSURf UkxDX1NSTV9EUkFNX1NJWkVfQllURSAgICA0MDk2ICAgICAgICAgICAgICAgICAgIAotI2RlZmlu ZSBVQ09ERV9JRF9ETUNVX0VSQU1fU0laRV9CWVRFICAgICAgIDI0NTc2ICAgICAgICAgICAgICAg Ci0jZGVmaW5lIFVDT0RFX0lEX0RNQ1VfSVJBTV9TSVpFX0JZVEUgICAgICAgMTAyNCAgICAgICAg ICAgICAgICAgCi0KLSNkZWZpbmUgTlVNX1VDT0RFUyAgICAgICAgICAgICAgIDE0Ci0KLXR5cGVk ZWYgc3RydWN0IHsKLQl1aW50MzJfdCBoaWdoOwotCXVpbnQzMl90IGxvdzsKLX0gZGF0YV82NF90 OwotCi1zdHJ1Y3QgU01VX1Rhc2sgewotICAgIHVpbnQ4X3QgdHlwZTsKLSAgICB1aW50OF90IGFy ZzsKLSAgICB1aW50MTZfdCBuZXh0OwotICAgIGRhdGFfNjRfdCBhZGRyOwotICAgIHVpbnQzMl90 IHNpemVfYnl0ZXM7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgU01VX1Rhc2sgU01VX1Rhc2s7Ci0KLXN0 cnVjdCBUT0MgewotICAgIHVpbnQ4X3QgSm9iTGlzdFtOVU1fSk9CTElTVF9FTlRSSUVTXTsKLSAg ICBTTVVfVGFzayB0YXNrc1sxXTsKLX07Ci0KLS8vIE1FVEEgREFUQSBDT01NQU5EIERlZmluaXRp b25zCi0jZGVmaW5lIE1FVEFEQVRBX0NNRF9NT0RFMCAgICAgICAgIDB4MDAwMDAxMDMgCi0jZGVm aW5lIE1FVEFEQVRBX0NNRF9NT0RFMSAgICAgICAgIDB4MDAwMDAxMTMgCi0jZGVmaW5lIE1FVEFE QVRBX0NNRF9NT0RFMiAgICAgICAgIDB4MDAwMDAxMjMgCi0jZGVmaW5lIE1FVEFEQVRBX0NNRF9N T0RFMyAgICAgICAgIDB4MDAwMDAxMzMKLSNkZWZpbmUgTUVUQURBVEFfQ01EX0RFTEFZICAgICAg ICAgMHgwMDAwMDIwMwotI2RlZmluZSBNRVRBREFUQV9DTURfQ0hOR19SRUdTUEFDRSAweDAwMDAw MzAzCi0jZGVmaW5lIE1FVEFEQVRBX1BFUkZPUk1fT05fU0FWRSAgIDB4MDAwMDEwMDAKLSNkZWZp bmUgTUVUQURBVEFfUEVSRk9STV9PTl9MT0FEICAgMHgwMDAwMjAwMAotI2RlZmluZSBNRVRBREFU QV9DTURfQVJHX01BU0sgICAgICAweEZGRkYwMDAwCi0jZGVmaW5lIE1FVEFEQVRBX0NNRF9BUkdf U0hJRlQgICAgIDE2Ci0KLS8vIFNpbXBsZSByZWdpc3RlciBhZGRyL2RhdGEgZmllbGRzCi1zdHJ1 Y3QgU01VX01ldGFEYXRhX01vZGUwIHsKLSAgICB1aW50MzJfdCByZWdpc3Rlcl9hZGRyZXNzOwot ICAgIHVpbnQzMl90IHJlZ2lzdGVyX2RhdGE7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgU01VX01ldGFE YXRhX01vZGUwIFNNVV9NZXRhRGF0YV9Nb2RlMDsKLQotLy8gUmVnaXN0ZXIgYWRkci9kYXRhIHdp dGggbWFzawotc3RydWN0IFNNVV9NZXRhRGF0YV9Nb2RlMSB7Ci0gICAgdWludDMyX3QgcmVnaXN0 ZXJfYWRkcmVzczsKLSAgICB1aW50MzJfdCByZWdpc3Rlcl9tYXNrOwotICAgIHVpbnQzMl90IHJl Z2lzdGVyX2RhdGE7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgU01VX01ldGFEYXRhX01vZGUxIFNNVV9N ZXRhRGF0YV9Nb2RlMTsKLQotc3RydWN0IFNNVV9NZXRhRGF0YV9Nb2RlMiB7Ci0gICAgdWludDMy X3QgcmVnaXN0ZXJfYWRkcmVzczsKLSAgICB1aW50MzJfdCByZWdpc3Rlcl9tYXNrOwotICAgIHVp bnQzMl90IHRhcmdldF92YWx1ZTsKLX07Ci10eXBlZGVmIHN0cnVjdCBTTVVfTWV0YURhdGFfTW9k ZTIgU01VX01ldGFEYXRhX01vZGUyOwotCi0vLyBBbHdheXMgd3JpdGUgZGF0YSAoZXZlbiBvbiBh IHNhdmUgb3BlcmF0aW9uKQotc3RydWN0IFNNVV9NZXRhRGF0YV9Nb2RlMyB7Ci0gICAgdWludDMy X3QgcmVnaXN0ZXJfYWRkcmVzczsKLSAgICB1aW50MzJfdCByZWdpc3Rlcl9tYXNrOwotICAgIHVp bnQzMl90IHJlZ2lzdGVyX2RhdGE7Ci19OwotdHlwZWRlZiBzdHJ1Y3QgU01VX01ldGFEYXRhX01v ZGUzIFNNVV9NZXRhRGF0YV9Nb2RlMzsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvY3pfcHBzbWMuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L2luYy9jel9wcHNtYy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjI3MzYxNmEKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2Vy cGxheS9pbmMvY3pfcHBzbWMuaApAQCAtMCwwICsxLDE4NSBAQAorLyoKKyAqIENvcHlyaWdodCAy MDE0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1 ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBX SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8K KworI2lmbmRlZiBDWl9QUF9TTUNfSAorI2RlZmluZSBDWl9QUF9TTUNfSAorCisjcHJhZ21hIHBh Y2socHVzaCwgMSkKKworLyogRmFuIGNvbnRyb2wgYWxnb3JpdGhtOiovCisjZGVmaW5lIEZET19N T0RFX0hBUkRXQVJFIDAKKyNkZWZpbmUgRkRPX01PREVfUElFQ0VfV0lTRV9MSU5FQVIgMQorCitl bnVtIEZBTl9DT05UUk9MIHsKKyAgICBGQU5fQ09OVFJPTF9GVVpaWSwKKyAgICBGQU5fQ09OVFJP TF9UQUJMRQorfTsKKworZW51bSBEUE1fQVJSQVkgeworICAgIERQTV9BUlJBWV9IQVJEX01BWCwK KyAgICBEUE1fQVJSQVlfSEFSRF9NSU4sCisgICAgRFBNX0FSUkFZX1NPRlRfTUFYLAorICAgIERQ TV9BUlJBWV9TT0ZUX01JTgorfTsKKworLyoKKyAqIFJldHVybiBjb2RlcyBmb3IgZHJpdmVyIHRv IFNNQyBjb21tdW5pY2F0aW9uLgorICogTGVhdmUgdGhlc2UgI2RlZmluZS1zLCBlbnVtcyBtaWdo dCBub3QgYmUgZXhhY3RseSA4LWJpdHMgb24gdGhlIG1pY3JvY29udHJvbGxlci4KKyAqLworI2Rl ZmluZSBQUFNNQ19SZXN1bHRfT0sgICAgICAgICAgICAgKCh1aW50MTZfdCkweDAxKQorI2RlZmlu ZSBQUFNNQ19SZXN1bHRfTm9Nb3JlICAgICAgICAgKCh1aW50MTZfdCkweDAyKQorI2RlZmluZSBQ UFNNQ19SZXN1bHRfTm90Tm93ICAgICAgICAgKCh1aW50MTZfdCkweDAzKQorI2RlZmluZSBQUFNN Q19SZXN1bHRfRmFpbGVkICAgICAgICAgKCh1aW50MTZfdCkweEZGKQorI2RlZmluZSBQUFNNQ19S ZXN1bHRfVW5rbm93bkNtZCAgICAgKCh1aW50MTZfdCkweEZFKQorI2RlZmluZSBQUFNNQ19SZXN1 bHRfVW5rbm93blZUICAgICAgKCh1aW50MTZfdCkweEZEKQorCisjZGVmaW5lIFBQU01DX2lzRVJS T1IoeCkgICAgICAgICAgICAoKHVpbnQxNl90KTB4ODAgJiAoeCkpCisKKy8qCisgKiBTdXBwb3J0 ZWQgZHJpdmVyIG1lc3NhZ2VzCisgKi8KKyNkZWZpbmUgUFBTTUNfTVNHX1Rlc3QgICAgICAgICAg ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDEpCisjZGVmaW5lIFBQU01DX01TR19HZXRGZWF0 dXJlU3RhdHVzICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgyKQorI2RlZmluZSBQUFNNQ19NU0df RW5hYmxlQWxsU211RmVhdHVyZXMgICAgICAgICgodWludDE2X3QpIDB4MykKKyNkZWZpbmUgUFBT TUNfTVNHX0Rpc2FibGVBbGxTbXVGZWF0dXJlcyAgICAgICAoKHVpbnQxNl90KSAweDQpCisjZGVm aW5lIFBQU01DX01TR19PcHRpbWl6ZUJhdHRlcnkgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHg1 KQorI2RlZmluZSBQUFNNQ19NU0dfTWF4aW1pemVQZXJmICAgICAgICAgICAgICAgICgodWludDE2 X3QpIDB4NikKKyNkZWZpbmUgUFBTTUNfTVNHX1VWRFBvd2VyT0ZGICAgICAgICAgICAgICAgICAo KHVpbnQxNl90KSAweDcpCisjZGVmaW5lIFBQU01DX01TR19VVkRQb3dlck9OICAgICAgICAgICAg ICAgICAgKCh1aW50MTZfdCkgMHg4KQorI2RlZmluZSBQUFNNQ19NU0dfVkNFUG93ZXJPRkYgICAg ICAgICAgICAgICAgICgodWludDE2X3QpIDB4OSkKKyNkZWZpbmUgUFBTTUNfTVNHX1ZDRVBvd2Vy T04gICAgICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweEEpCisjZGVmaW5lIFBQU01DX01TR19B Q1BQb3dlck9GRiAgICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHhCKQorI2RlZmluZSBQUFNN Q19NU0dfQUNQUG93ZXJPTiAgICAgICAgICAgICAgICAgICgodWludDE2X3QpIDB4QykKKyNkZWZp bmUgUFBTTUNfTVNHX1NETUFQb3dlck9GRiAgICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweEQp CisjZGVmaW5lIFBQU01DX01TR19TRE1BUG93ZXJPTiAgICAgICAgICAgICAgICAgKCh1aW50MTZf dCkgMHhFKQorI2RlZmluZSBQUFNNQ19NU0dfWERNQVBvd2VyT0ZGICAgICAgICAgICAgICAgICgo dWludDE2X3QpIDB4RikKKyNkZWZpbmUgUFBTTUNfTVNHX1hETUFQb3dlck9OICAgICAgICAgICAg ICAgICAoKHVpbnQxNl90KSAweDEwKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0TWluRGVlcFNsZWVw U2NsayAgICAgICAgICgodWludDE2X3QpIDB4MTEpCisjZGVmaW5lIFBQU01DX01TR19TZXRTY2xr U29mdE1pbiAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxMikKKyNkZWZpbmUgUFBTTUNfTVNH X1NldFNjbGtTb2Z0TWF4ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDEzKQorI2RlZmluZSBQ UFNNQ19NU0dfU2V0U2Nsa0hhcmRNaW4gICAgICAgICAgICAgICgodWludDE2X3QpIDB4MTQpCisj ZGVmaW5lIFBQU01DX01TR19TZXRTY2xrSGFyZE1heCAgICAgICAgICAgICAgKCh1aW50MTZfdCkg MHgxNSkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldExjbGtTb2Z0TWluICAgICAgICAgICAgICAoKHVp bnQxNl90KSAweDE2KQorI2RlZmluZSBQUFNNQ19NU0dfU2V0TGNsa1NvZnRNYXggICAgICAgICAg ICAgICgodWludDE2X3QpIDB4MTcpCisjZGVmaW5lIFBQU01DX01TR19TZXRMY2xrSGFyZE1pbiAg ICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxOCkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldExjbGtI YXJkTWF4ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDE5KQorI2RlZmluZSBQUFNNQ19NU0df U2V0VXZkU29mdE1pbiAgICAgICAgICAgICAgICgodWludDE2X3QpIDB4MUEpCisjZGVmaW5lIFBQ U01DX01TR19TZXRVdmRTb2Z0TWF4ICAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgxQikKKyNk ZWZpbmUgUFBTTUNfTVNHX1NldFV2ZEhhcmRNaW4gICAgICAgICAgICAgICAoKHVpbnQxNl90KSAw eDFDKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0VXZkSGFyZE1heCAgICAgICAgICAgICAgICgodWlu dDE2X3QpIDB4MUQpCisjZGVmaW5lIFBQU01DX01TR19TZXRFY2xrU29mdE1pbiAgICAgICAgICAg ICAgKCh1aW50MTZfdCkgMHgxRSkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEVjbGtTb2Z0TWF4ICAg ICAgICAgICAgICAoKHVpbnQxNl90KSAweDFGKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0RWNsa0hh cmRNaW4gICAgICAgICAgICAgICgodWludDE2X3QpIDB4MjApCisjZGVmaW5lIFBQU01DX01TR19T ZXRFY2xrSGFyZE1heCAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgyMSkKKyNkZWZpbmUgUFBT TUNfTVNHX1NldEFjbGtTb2Z0TWluICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDIyKQorI2Rl ZmluZSBQUFNNQ19NU0dfU2V0QWNsa1NvZnRNYXggICAgICAgICAgICAgICgodWludDE2X3QpIDB4 MjMpCisjZGVmaW5lIFBQU01DX01TR19TZXRBY2xrSGFyZE1pbiAgICAgICAgICAgICAgKCh1aW50 MTZfdCkgMHgyNCkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEFjbGtIYXJkTWF4ICAgICAgICAgICAg ICAoKHVpbnQxNl90KSAweDI1KQorI2RlZmluZSBQUFNNQ19NU0dfU2V0TmNsa1NvZnRNaW4gICAg ICAgICAgICAgICgodWludDE2X3QpIDB4MjYpCisjZGVmaW5lIFBQU01DX01TR19TZXROY2xrU29m dE1heCAgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgyNykKKyNkZWZpbmUgUFBTTUNfTVNHX1Nl dE5jbGtIYXJkTWluICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDI4KQorI2RlZmluZSBQUFNN Q19NU0dfU2V0TmNsa0hhcmRNYXggICAgICAgICAgICAgICgodWludDE2X3QpIDB4MjkpCisjZGVm aW5lIFBQU01DX01TR19TZXRQc3RhdGVTb2Z0TWluICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgy QSkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldFBzdGF0ZVNvZnRNYXggICAgICAgICAgICAoKHVpbnQx Nl90KSAweDJCKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0UHN0YXRlSGFyZE1pbiAgICAgICAgICAg ICgodWludDE2X3QpIDB4MkMpCisjZGVmaW5lIFBQU01DX01TR19TZXRQc3RhdGVIYXJkTWF4ICAg ICAgICAgICAgKCh1aW50MTZfdCkgMHgyRCkKKyNkZWZpbmUgUFBTTUNfTVNHX0Rpc2FibGVMb3dN ZW1vcnlQc3RhdGUgICAgICAoKHVpbnQxNl90KSAweDJFKQorI2RlZmluZSBQUFNNQ19NU0dfRW5h YmxlTG93TWVtb3J5UHN0YXRlICAgICAgICgodWludDE2X3QpIDB4MkYpCisjZGVmaW5lIFBQU01D X01TR19VY29kZUFkZHJlc3NMb3cgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgzMCkKKyNkZWZp bmUgUFBTTUNfTVNHX1Vjb2RlQWRkcmVzc0hpZ2ggICAgICAgICAgICAoKHVpbnQxNl90KSAweDMx KQorI2RlZmluZSBQUFNNQ19NU0dfVWNvZGVMb2FkU3RhdHVzICAgICAgICAgICAgICgodWludDE2 X3QpIDB4MzIpCisjZGVmaW5lIFBQU01DX01TR19Ecml2ZXJEcmFtQWRkckhpICAgICAgICAgICAg KCh1aW50MTZfdCkgMHgzMykKKyNkZWZpbmUgUFBTTUNfTVNHX0RyaXZlckRyYW1BZGRyTG8gICAg ICAgICAgICAoKHVpbnQxNl90KSAweDM0KQorI2RlZmluZSBQUFNNQ19NU0dfQ29uZEV4ZWNEcmFt QWRkckhpICAgICAgICAgICgodWludDE2X3QpIDB4MzUpCisjZGVmaW5lIFBQU01DX01TR19Db25k RXhlY0RyYW1BZGRyTG8gICAgICAgICAgKCh1aW50MTZfdCkgMHgzNikKKyNkZWZpbmUgUFBTTUNf TVNHX0xvYWRVY29kZXMgICAgICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDM3KQorI2RlZmlu ZSBQUFNNQ19NU0dfRHJpdmVyUmVzZXRNb2RlICAgICAgICAgICAgICgodWludDE2X3QpIDB4Mzgp CisjZGVmaW5lIFBQU01DX01TR19Qb3dlclN0YXRlTm90aWZ5ICAgICAgICAgICAgKCh1aW50MTZf dCkgMHgzOSkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldERpc3BsYXlQaHlDb25maWcgICAgICAgICAo KHVpbnQxNl90KSAweDNBKQorI2RlZmluZSBQUFNNQ19NU0dfR2V0TWF4U2Nsa0xldmVsICAgICAg ICAgICAgICgodWludDE2X3QpIDB4M0IpCisjZGVmaW5lIFBQU01DX01TR19HZXRNYXhMY2xrTGV2 ZWwgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgzQykKKyNkZWZpbmUgUFBTTUNfTVNHX0dldE1h eFV2ZExldmVsICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDNEKQorI2RlZmluZSBQUFNNQ19N U0dfR2V0TWF4RWNsa0xldmVsICAgICAgICAgICAgICgodWludDE2X3QpIDB4M0UpCisjZGVmaW5l IFBQU01DX01TR19HZXRNYXhBY2xrTGV2ZWwgICAgICAgICAgICAgKCh1aW50MTZfdCkgMHgzRikK KyNkZWZpbmUgUFBTTUNfTVNHX0dldE1heE5jbGtMZXZlbCAgICAgICAgICAgICAoKHVpbnQxNl90 KSAweDQwKQorI2RlZmluZSBQUFNNQ19NU0dfR2V0TWF4UHN0YXRlICAgICAgICAgICAgICAgICgo dWludDE2X3QpIDB4NDEpCisjZGVmaW5lIFBQU01DX01TR19EcmFtQWRkckhpVmlydHVhbCAgICAg ICAgICAgKCh1aW50MTZfdCkgMHg0MikKKyNkZWZpbmUgUFBTTUNfTVNHX0RyYW1BZGRyTG9WaXJ0 dWFsICAgICAgICAgICAoKHVpbnQxNl90KSAweDQzKQorI2RlZmluZSBQUFNNQ19NU0dfRHJhbUFk ZHJIaVBoeXNpY2FsICAgICAgICAgICgodWludDE2X3QpIDB4NDQpCisjZGVmaW5lIFBQU01DX01T R19EcmFtQWRkckxvUGh5c2ljYWwgICAgICAgICAgKCh1aW50MTZfdCkgMHg0NSkKKyNkZWZpbmUg UFBTTUNfTVNHX0RyYW1CdWZmZXJTaXplICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDQ2KQor I2RlZmluZSBQUFNNQ19NU0dfU2V0TW1Qd3JMb2dEcmFtQWRkckhpICAgICAgICgodWludDE2X3Qp IDB4NDcpCisjZGVmaW5lIFBQU01DX01TR19TZXRNbVB3ckxvZ0RyYW1BZGRyTG8gICAgICAgKCh1 aW50MTZfdCkgMHg0OCkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldENsa1RhYmxlQWRkckhpICAgICAg ICAgICAoKHVpbnQxNl90KSAweDQ5KQorI2RlZmluZSBQUFNNQ19NU0dfU2V0Q2xrVGFibGVBZGRy TG8gICAgICAgICAgICgodWludDE2X3QpIDB4NEEpCisjZGVmaW5lIFBQU01DX01TR19HZXRDb25z ZXJ2YXRpdmVQb3dlckxpbWl0ICAgKCh1aW50MTZfdCkgMHg0QikKKworI2RlZmluZSBQUFNNQ19N U0dfSW5pdEpvYnMgICAgICAgICAgICAgICAgICAgICgodWludDE2X3QpIDB4MjUyKQorI2RlZmlu ZSBQUFNNQ19NU0dfRXhlY3V0ZUpvYiAgICAgICAgICAgICAgICAgICgodWludDE2X3QpIDB4MjU0 KQorCisjZGVmaW5lIFBQU01DX01TR19OQkRQTV9FbmFibGUgICAgICAgICAgICAgICAgKCh1aW50 MTZfdCkgMHgxNDApCisjZGVmaW5lIFBQU01DX01TR19OQkRQTV9EaXNhYmxlICAgICAgICAgICAg ICAgKCh1aW50MTZfdCkgMHgxNDEpCisKKyNkZWZpbmUgUFBTTUNfTVNHX0RQTV9GUFNfTW9kZSAg ICAgICAgICAgICAgICAoKHVpbnQxNl90KSAweDE1ZCkKKyNkZWZpbmUgUFBTTUNfTVNHX0RQTV9B Y3Rpdml0eV9Nb2RlICAgICAgICAgICAoKHVpbnQxNl90KSAweDE1ZSkKKworI2RlZmluZSBQUFNN Q19NU0dfUG1TdGF0dXNMb2dTdGFydCAgICAgICAgICAgICgodWludDE2X3QpIDB4MTcwKQorI2Rl ZmluZSBQUFNNQ19NU0dfUG1TdGF0dXNMb2dTYW1wbGUgICAgICAgICAgICgodWludDE2X3QpIDB4 MTcxKQorCisjZGVmaW5lIFBQU01DX01TR19BbGxvd0xvd1NjbGtJbnRlcnJ1cHQgICAgICAgKCh1 aW50MTZfdCkgMHgxODQpCisjZGVmaW5lIFBQU01DX01TR19NbVBvd2VyTW9uaXRvclN0YXJ0ICAg ICAgICAgKCh1aW50MTZfdCkgMHgxOEYpCisjZGVmaW5lIFBQU01DX01TR19NbVBvd2VyTW9uaXRv clN0b3AgICAgICAgICAgKCh1aW50MTZfdCkgMHgxOTApCisjZGVmaW5lIFBQU01DX01TR19NbVBv d2VyTW9uaXRvclJlc3RhcnQgICAgICAgKCh1aW50MTZfdCkgMHgxOTEpCisKKyNkZWZpbmUgUFBT TUNfTVNHX1NldENsb2NrR2F0ZU1hc2sgICAgICAgICAgICAoKHVpbnQxNl90KSAweDI2MCkKKyNk ZWZpbmUgUFBTTUNfTVNHX1NldEZwc1RocmVzaG9sZExvICAgICAgICAgICAoKHVpbnQxNl90KSAw eDI2NCkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldEZwc1RocmVzaG9sZEhpICAgICAgICAgICAoKHVp bnQxNl90KSAweDI2NSkKKyNkZWZpbmUgUFBTTUNfTVNHX1NldExvd1NjbGtJbnRyVGhyZXNob2xk ICAgICAoKHVpbnQxNl90KSAweDI2NikKKworI2RlZmluZSBQUFNNQ19NU0dfQ2xrVGFibGVYZmVy VG9EcmFtICAgICAgICAgICgodWludDE2X3QpIDB4MjY3KQorI2RlZmluZSBQUFNNQ19NU0dfQ2xr VGFibGVYZmVyVG9TbXUgICAgICAgICAgICgodWludDE2X3QpIDB4MjY4KQorI2RlZmluZSBQUFNN Q19NU0dfR2V0QXZlcmFnZUdyYXBoaWNzQWN0aXZpdHkgICgodWludDE2X3QpIDB4MjY5KQorI2Rl ZmluZSBQUFNNQ19NU0dfR2V0QXZlcmFnZUdpb0FjdGl2aXR5ICAgICAgICgodWludDE2X3QpIDB4 MjZBKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0TG9nZ2VyQnVmZmVyU2l6ZSAgICAgICAgICgodWlu dDE2X3QpIDB4MjZCKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0TG9nZ2VyQWRkcmVzc0hpZ2ggICAg ICAgICgodWludDE2X3QpIDB4MjZDKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0TG9nZ2VyQWRkcmVz c0xvdyAgICAgICAgICgodWludDE2X3QpIDB4MjZEKQorI2RlZmluZSBQUFNNQ19NU0dfU2V0V2F0 ZXJtYXJrRnJlcXVlbmN5ICAgICAgICgodWludDE2X3QpIDB4MjZFKQorCisvKiBSRU1PVkUgTEFU RVIqLworI2RlZmluZSBQUFNNQ19NU0dfRFBNX0ZvcmNlU3RhdGUgICAgICAgICAgICAgICgodWlu dDE2X3QpIDB4MTA0KQorCisvKiBGZWF0dXJlIEVuYWJsZSBNYXNrcyovCisjZGVmaW5lIE5CX0RQ TV9NQVNLICAgICAgICAgICAgIDB4MDAwMDA4MDAKKyNkZWZpbmUgVkRER0ZYX01BU0sgICAgICAg ICAgICAgMHgwMDgwMDAwMAorI2RlZmluZSBWQ0VfRFBNX01BU0sgICAgICAgICAgICAweDAwNDAw MDAwCisjZGVmaW5lIEFDUF9EUE1fTUFTSyAgICAgICAgICAgIDB4MDAwNDAwMDAKKyNkZWZpbmUg VVZEX0RQTV9NQVNLICAgICAgICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBHRlhfQ1VfUEdfTUFT SyAgICAgICAgICAweDAwMDA0MDAwCisjZGVmaW5lIFNDTEtfRFBNX01BU0sgICAgICAgICAgIDB4 MDAwODAwMDAKKworI2lmICFkZWZpbmVkKFNNQ19NSUNST0NPREUpCisjcHJhZ21hIHBhY2socG9w KQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bv d2VycGxheS9pbmMvc211OC5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3Nt dTguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzU4ZDA3Ci0tLSAvZGV2 L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdTguaApAQCAt MCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IDIwMTQgQWR2YW5jZWQgTWljcm8gRGV2aWNl cywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hh cmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUg YW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICog dG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdp dGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVy Z2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3Bp ZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAq IFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5n IGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMg cGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FS RSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBS RVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJS QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENP UFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBE QU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENP TlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElO IENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVB TElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqLworCisjaWZuZGVmIFNNVThfSAorI2RlZmlu ZSBTTVU4X0gKKworI3ByYWdtYSBwYWNrKHB1c2gsIDEpCisKKyNkZWZpbmUgRU5BQkxFX0RFQlVH X0ZFQVRVUkVTCisKK3N0cnVjdCBTTVU4X0Zpcm13YXJlX0hlYWRlciB7CisJdWludDMyX3QgVmVy c2lvbjsKKwl1aW50MzJfdCBJbWFnZVNpemU7CisJdWludDMyX3QgQ29kZVNpemU7CisJdWludDMy X3QgSGVhZGVyU2l6ZTsKKwl1aW50MzJfdCBFbnRyeVBvaW50OworCXVpbnQzMl90IFJ0b3M7CisJ dWludDMyX3QgVWNvZGVMb2FkU3RhdHVzOworCXVpbnQzMl90IERwbVRhYmxlOworCXVpbnQzMl90 IEZhblRhYmxlOworCXVpbnQzMl90IFBtRnVzZVRhYmxlOworCXVpbnQzMl90IEdsb2JhbHM7CisJ dWludDMyX3QgUmVzZXJ2ZWRbMjBdOworCXVpbnQzMl90IFNpZ25hdHVyZTsKK307CisKK3N0cnVj dCBTTVU4X011bHRpbWVkaWFQb3dlckxvZ0RhdGEgeworCXVpbnQzMl90IGF2Z1RvdGFsUG93ZXI7 CisJdWludDMyX3QgYXZnR3B1UG93ZXI7CisJdWludDMyX3QgYXZnVXZkUG93ZXI7CisJdWludDMy X3QgYXZnVmNlUG93ZXI7CisKKwl1aW50MzJfdCBhdmdTY2xrOworCXVpbnQzMl90IGF2Z0RjbGs7 CisJdWludDMyX3QgYXZnVmNsazsKKwl1aW50MzJfdCBhdmdFY2xrOworCisJdWludDMyX3Qgc3Rh cnRUaW1lSGk7CisJdWludDMyX3Qgc3RhcnRUaW1lTG87CisKKwl1aW50MzJfdCBlbmRUaW1lSGk7 CisJdWludDMyX3QgZW5kVGltZUxvOworfTsKKworI2RlZmluZSBTTVU4X0ZJUk1XQVJFX0hFQURF Ul9MT0NBVElPTiAweDFGRjgwCisjZGVmaW5lIFNNVThfVU5CQ1NSX1NUQVJUX0FERFIgMHhDMDEw MDAwMAorCisjZGVmaW5lIFNNTl9NUDFfU1JBTV9TVEFSVF9BRERSIDB4MTAwMDAwMDAKKworI3By YWdtYSBwYWNrKHBvcCkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1k L3Bvd2VycGxheS9pbmMvc211OF9mdXNpb24uaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L2luYy9zbXU4X2Z1c2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjVjOWNjM2MKLS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxh eS9pbmMvc211OF9mdXNpb24uaApAQCAtMCwwICsxLDEyNyBAQAorLyoKKyAqIENvcHlyaWdodCAy MDE0IEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhl cmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQor ICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmls ZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg cmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMg dG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNl bnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1p dCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28s IHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBj b3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1 ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9MREVSKFMpIE9SIEFVVEhPUihTKSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgorICogT1RIRVIgTElBQklMSVRZLCBX SEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsCisgKiBB UklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9S IFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKi8K KworI2lmbmRlZiBTTVU4X0ZVU0lPTl9ICisjZGVmaW5lIFNNVThfRlVTSU9OX0gKKworI2luY2x1 ZGUgInNtdTguaCIKKworI3ByYWdtYSBwYWNrKHB1c2gsIDEpCisKKyNkZWZpbmUgU01VOF9NQVhf Q1VTIDIKKyNkZWZpbmUgU01VOF9QU01TX1BFUl9DVSA0CisjZGVmaW5lIFNNVThfQ0FDU19QRVJf Q1UgNAorCitzdHJ1Y3QgU01VOF9HZnhDdVBnU2NvcmVib2FyZCB7CisgICAgdWludDhfdCBFbmFi bGVkOworICAgIHVpbnQ4X3Qgc3BhcmVbM107Cit9OworCitzdHJ1Y3QgU01VOF9Qb3J0ODBNb25p dG9yVGFibGUgeworCXVpbnQzMl90IE1taW9BZGRyZXNzOworCXVpbnQzMl90IE1lbW9yeUJhc2VI aTsKKwl1aW50MzJfdCBNZW1vcnlCYXNlTG87CisJdWludDE2X3QgTWVtb3J5QnVmZmVyU2l6ZTsK Kwl1aW50MTZfdCBNZW1vcnlQb3NpdGlvbjsKKwl1aW50MTZfdCBQb2xsaW5nSW50ZXJ2YWw7CisJ dWludDhfdCAgRW5hYmxlQ3NyU2hhZG93OworCXVpbnQ4X3QgIEVuYWJsZURyYW1TaGFkb3c7Cit9 OworCisvKiBDbG9jayBUYWJsZSBEZWZpbml0aW9ucyAqLworI2RlZmluZSBOVU1fU0NMS19MRVZF TFMgICAgIDgKKyNkZWZpbmUgTlVNX0xDTEtfTEVWRUxTICAgICA4CisjZGVmaW5lIE5VTV9VVkRf TEVWRUxTICAgICAgOAorI2RlZmluZSBOVU1fRUNMS19MRVZFTFMgICAgIDgKKyNkZWZpbmUgTlVN X0FDTEtfTEVWRUxTICAgICA4CisKK3N0cnVjdCBTTVU4X0Z1c2lvbl9DbGtMZXZlbCB7CisJdWlu dDhfdAkJR25iVmlkOworCXVpbnQ4X3QJCUdmeFZpZDsKKwl1aW50OF90CQlEZnNEaWQ7CisJdWlu dDhfdAkJRGVlcFNsZWVwRGlkOworCXVpbnQzMl90CURmc0J5cGFzczsKKwl1aW50MzJfdAlGcmVx dWVuY3k7Cit9OworCitzdHJ1Y3QgU01VOF9GdXNpb25fU2Nsa0JyZWFrZG93blRhYmxlIHsKKwlz dHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgQ2xrTGV2ZWxbTlVNX1NDTEtfTEVWRUxTXTsKKwlz dHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7CisJLyogU01VOF9GdXNpb25f Q2xrTGV2ZWwgUHdyT2ZmTGV2ZWw7ICovCisJdWludDMyX3QgICAgU2Nsa1ZhbGlkTWFzazsKKwl1 aW50MzJfdCAgICBNYXhTY2xrSW5kZXg7Cit9OworCitzdHJ1Y3QgU01VOF9GdXNpb25fTGNsa0Jy ZWFrZG93blRhYmxlIHsKKwlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgQ2xrTGV2ZWxbTlVN X0xDTEtfTEVWRUxTXTsKKwlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7 CisgICAgLyogU01VOF9GdXNpb25fQ2xrTGV2ZWwgUHdyT2ZmTGV2ZWw7ICovCisJdWludDMyX3Qg ICAgTGNsa1ZhbGlkTWFzazsKKwl1aW50MzJfdCAgICBNYXhMY2xrSW5kZXg7Cit9OworCitzdHJ1 Y3QgU01VOF9GdXNpb25fRWNsa0JyZWFrZG93blRhYmxlIHsKKwlzdHJ1Y3QgU01VOF9GdXNpb25f Q2xrTGV2ZWwgQ2xrTGV2ZWxbTlVNX0VDTEtfTEVWRUxTXTsKKwlzdHJ1Y3QgU01VOF9GdXNpb25f Q2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7CisJc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIFB3ck9m ZkxldmVsOworCXVpbnQzMl90ICAgIEVjbGtWYWxpZE1hc2s7CisJdWludDMyX3QgICAgTWF4RWNs a0luZGV4OworfTsKKworc3RydWN0IFNNVThfRnVzaW9uX1ZjbGtCcmVha2Rvd25UYWJsZSB7CisJ c3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIENsa0xldmVsW05VTV9VVkRfTEVWRUxTXTsKKwlz dHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7CisJc3RydWN0IFNNVThfRnVz aW9uX0Nsa0xldmVsIFB3ck9mZkxldmVsOworCXVpbnQzMl90ICAgIFZjbGtWYWxpZE1hc2s7CisJ dWludDMyX3QgICAgTWF4VmNsa0luZGV4OworfTsKKworc3RydWN0IFNNVThfRnVzaW9uX0RjbGtC cmVha2Rvd25UYWJsZSB7CisJc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIENsa0xldmVsW05V TV9VVkRfTEVWRUxTXTsKKwlzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrTGV2ZWwgRHBtT2ZmTGV2ZWw7 CisJc3RydWN0IFNNVThfRnVzaW9uX0Nsa0xldmVsIFB3ck9mZkxldmVsOworCXVpbnQzMl90ICAg IERjbGtWYWxpZE1hc2s7CisJdWludDMyX3QgICAgTWF4RGNsa0luZGV4OworfTsKKworc3RydWN0 IFNNVThfRnVzaW9uX0FjbGtCcmVha2Rvd25UYWJsZSB7CisJc3RydWN0IFNNVThfRnVzaW9uX0Ns a0xldmVsIENsa0xldmVsW05VTV9BQ0xLX0xFVkVMU107CisJc3RydWN0IFNNVThfRnVzaW9uX0Ns a0xldmVsIERwbU9mZkxldmVsOworCXN0cnVjdCBTTVU4X0Z1c2lvbl9DbGtMZXZlbCBQd3JPZmZM ZXZlbDsKKwl1aW50MzJfdCAgICBBY2xrVmFsaWRNYXNrOworCXVpbnQzMl90ICAgIE1heEFjbGtJ bmRleDsKK307CisKKworc3RydWN0IFNNVThfRnVzaW9uX0Nsa1RhYmxlIHsKKwlzdHJ1Y3QgU01V OF9GdXNpb25fU2Nsa0JyZWFrZG93blRhYmxlIFNjbGtCcmVha2Rvd25UYWJsZTsKKwlzdHJ1Y3Qg U01VOF9GdXNpb25fTGNsa0JyZWFrZG93blRhYmxlIExjbGtCcmVha2Rvd25UYWJsZTsKKwlzdHJ1 Y3QgU01VOF9GdXNpb25fRWNsa0JyZWFrZG93blRhYmxlIEVjbGtCcmVha2Rvd25UYWJsZTsKKwlz dHJ1Y3QgU01VOF9GdXNpb25fVmNsa0JyZWFrZG93blRhYmxlIFZjbGtCcmVha2Rvd25UYWJsZTsK KwlzdHJ1Y3QgU01VOF9GdXNpb25fRGNsa0JyZWFrZG93blRhYmxlIERjbGtCcmVha2Rvd25UYWJs ZTsKKwlzdHJ1Y3QgU01VOF9GdXNpb25fQWNsa0JyZWFrZG93blRhYmxlIEFjbGtCcmVha2Rvd25U YWJsZTsKK307CisKKyNwcmFnbWEgcGFjayhwb3ApCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdV91Y29kZV94ZmVyX2N6LmggYi9kcml2 ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9pbmMvc211X3Vjb2RlX3hmZXJfY3ouaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGJhMDcxCi0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvaW5jL3NtdV91Y29kZV94ZmVyX2N6LmgKQEAg LTAsMCArMSwxNDcgQEAKKy8vIENaIFVjb2RlIExvYWRpbmcgRGVmaW5pdGlvbnMKKyNpZm5kZWYg U01VX1VDT0RFX1hGRVJfQ1pfSAorI2RlZmluZSBTTVVfVUNPREVfWEZFUl9DWl9ICisKKyNkZWZp bmUgTlVNX0pPQkxJU1RfRU5UUklFUyAgICAgIDMyCisKKyNkZWZpbmUgVEFTS19UWVBFX05PX0FD VElPTiAgICAgIDAKKyNkZWZpbmUgVEFTS19UWVBFX1VDT0RFX0xPQUQgICAgIDEKKyNkZWZpbmUg VEFTS19UWVBFX1VDT0RFX1NBVkUgICAgIDIKKyNkZWZpbmUgVEFTS19UWVBFX1JFR19MT0FEICAg ICAgIDMKKyNkZWZpbmUgVEFTS19UWVBFX1JFR19TQVZFICAgICAgIDQKKyNkZWZpbmUgVEFTS19U WVBFX0lOSVRJQUxJWkUgICAgIDUKKworI2RlZmluZSBUQVNLX0FSR19SRUdfU01DSU5EICAgICAg MAorI2RlZmluZSBUQVNLX0FSR19SRUdfTU1JTyAgICAgICAgMQorI2RlZmluZSBUQVNLX0FSR19S RUdfRkNIICAgICAgICAgMgorI2RlZmluZSBUQVNLX0FSR19SRUdfVU5CICAgICAgICAgMworCisj ZGVmaW5lIFRBU0tfQVJHX0lOSVRfTU1fUFdSX0xPRyAwCisjZGVmaW5lIFRBU0tfQVJHX0lOSVRf Q0xLX1RBQkxFICAxCisKKyNkZWZpbmUgSk9CX0dGWF9TQVZFICAgICAgICAgICAgIDAKKyNkZWZp bmUgSk9CX0dGWF9SRVNUT1JFICAgICAgICAgIDEKKyNkZWZpbmUgSk9CX0ZDSF9TQVZFICAgICAg ICAgICAgIDIKKyNkZWZpbmUgSk9CX0ZDSF9SRVNUT1JFICAgICAgICAgIDMKKyNkZWZpbmUgSk9C X1VOQl9TQVZFICAgICAgICAgICAgIDQKKyNkZWZpbmUgSk9CX1VOQl9SRVNUT1JFICAgICAgICAg IDUKKyNkZWZpbmUgSk9CX0dNQ19TQVZFICAgICAgICAgICAgIDYKKyNkZWZpbmUgSk9CX0dNQ19S RVNUT1JFICAgICAgICAgIDcKKyNkZWZpbmUgSk9CX0dOQl9TQVZFICAgICAgICAgICAgIDgKKyNk ZWZpbmUgSk9CX0dOQl9SRVNUT1JFICAgICAgICAgIDkKKworI2RlZmluZSBJR05PUkVfSk9CICAg ICAgICAgICAgICAgMHhmZgorI2RlZmluZSBFTkRfT0ZfVEFTS19MSVNUICAgICAodWludDE2X3Qp MHhmZmZmCisKKy8vIFNpemUgb2YgRFJBTSByZWdpb25zIChpbiBieXRlcykgcmVxdWVzdGVkIGJ5 IFNNVToKKyNkZWZpbmUgU01VX0RSQU1fUkVRX01NX1BXUl9MT0cgNDggCisKKyNkZWZpbmUgVUNP REVfSURfU0RNQTAgICAgICAgICAgIDAKKyNkZWZpbmUgVUNPREVfSURfU0RNQTEgICAgICAgICAg IDEKKyNkZWZpbmUgVUNPREVfSURfQ1BfQ0UgICAgICAgICAgIDIKKyNkZWZpbmUgVUNPREVfSURf Q1BfUEZQICAgICAgICAgIDMKKyNkZWZpbmUgVUNPREVfSURfQ1BfTUUgICAgICAgICAgIDQKKyNk ZWZpbmUgVUNPREVfSURfQ1BfTUVDX0pUMSAgICAgIDUKKyNkZWZpbmUgVUNPREVfSURfQ1BfTUVD X0pUMiAgICAgIDYKKyNkZWZpbmUgVUNPREVfSURfR01DT05fUkVORyAgICAgIDcKKyNkZWZpbmUg VUNPREVfSURfUkxDX0cgICAgICAgICAgIDgKKyNkZWZpbmUgVUNPREVfSURfUkxDX1NDUkFUQ0gg ICAgIDkKKyNkZWZpbmUgVUNPREVfSURfUkxDX1NSTV9BUkFNICAgIDEwCisjZGVmaW5lIFVDT0RF X0lEX1JMQ19TUk1fRFJBTSAgICAxMQorI2RlZmluZSBVQ09ERV9JRF9ETUNVX0VSQU0gICAgICAg MTIKKyNkZWZpbmUgVUNPREVfSURfRE1DVV9JUkFNICAgICAgIDEzCisKKyNkZWZpbmUgVUNPREVf SURfU0RNQTBfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwMSAgICAgICAKKyNkZWZpbmUgVUNPREVf SURfU0RNQTFfTUFTSyAgICAgICAgICAgMHgwMDAwMDAwMiAgICAgICAgCisjZGVmaW5lIFVDT0RF X0lEX0NQX0NFX01BU0sgICAgICAgICAgIDB4MDAwMDAwMDQgICAgICAKKyNkZWZpbmUgVUNPREVf SURfQ1BfUEZQX01BU0sgICAgICAgICAgMHgwMDAwMDAwOCAgICAgICAgIAorI2RlZmluZSBVQ09E RV9JRF9DUF9NRV9NQVNLICAgICAgICAgICAweDAwMDAwMDEwICAgICAgICAgIAorI2RlZmluZSBV Q09ERV9JRF9DUF9NRUNfSlQxX01BU0sgICAgICAweDAwMDAwMDIwICAgICAgICAgICAgIAorI2Rl ZmluZSBVQ09ERV9JRF9DUF9NRUNfSlQyX01BU0sgICAgICAweDAwMDAwMDQwICAgICAgICAgIAor I2RlZmluZSBVQ09ERV9JRF9HTUNPTl9SRU5HX01BU0sgICAgICAweDAwMDAwMDgwICAgICAgICAg ICAgCisjZGVmaW5lIFVDT0RFX0lEX1JMQ19HX01BU0sgICAgICAgICAgIDB4MDAwMDAxMDAgICAg ICAgICAgIAorI2RlZmluZSBVQ09ERV9JRF9STENfU0NSQVRDSF9NQVNLICAgICAweDAwMDAwMjAw ICAgICAgICAgCisjZGVmaW5lIFVDT0RFX0lEX1JMQ19TUk1fQVJBTV9NQVNLICAgIDB4MDAwMDA0 MDAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDT0RFX0lEX1JMQ19TUk1fRFJBTV9NQVNLICAg IDB4MDAwMDA4MDAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBVQ09ERV9JRF9ETUNVX0VSQU1f TUFTSyAgICAgICAweDAwMDAxMDAwICAgICAgICAgICAgIAorI2RlZmluZSBVQ09ERV9JRF9ETUNV X0lSQU1fTUFTSyAgICAgICAweDAwMDAyMDAwICAgICAgICAgICAgICAKKworI2RlZmluZSBVQ09E RV9JRF9TRE1BMF9TSVpFX0JZVEUgICAgICAgICAgIDEwMzY4ICAgICAgICAKKyNkZWZpbmUgVUNP REVfSURfU0RNQTFfU0laRV9CWVRFICAgICAgICAgICAxMDM2OCAgICAgICAgICAKKyNkZWZpbmUg VUNPREVfSURfQ1BfQ0VfU0laRV9CWVRFICAgICAgICAgICA4NTc2ICAgICAgICAKKyNkZWZpbmUg VUNPREVfSURfQ1BfUEZQX1NJWkVfQllURSAgICAgICAgICAxNjc2OCAgICAgICAgICAgCisjZGVm aW5lIFVDT0RFX0lEX0NQX01FX1NJWkVfQllURSAgICAgICAgICAgMTY3NjggICAgICAgICAgICAK KyNkZWZpbmUgVUNPREVfSURfQ1BfTUVDX0pUMV9TSVpFX0JZVEUgICAgICAzODQgICAgICAgICAg ICAgICAKKyNkZWZpbmUgVUNPREVfSURfQ1BfTUVDX0pUMl9TSVpFX0JZVEUgICAgICAzODQgICAg ICAgICAgICAKKyNkZWZpbmUgVUNPREVfSURfR01DT05fUkVOR19TSVpFX0JZVEUgICAgICA0MDk2 ICAgICAgICAgICAgICAKKyNkZWZpbmUgVUNPREVfSURfUkxDX0dfU0laRV9CWVRFICAgICAgICAg ICAyMDQ4ICAgICAgICAgICAgIAorI2RlZmluZSBVQ09ERV9JRF9STENfU0NSQVRDSF9TSVpFX0JZ VEUgICAgIDEzMiAgICAgICAgICAgCisjZGVmaW5lIFVDT0RFX0lEX1JMQ19TUk1fQVJBTV9TSVpF X0JZVEUgICAgODE5MiAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBVQ09ERV9JRF9STENfU1JN X0RSQU1fU0laRV9CWVRFICAgIDQwOTYgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFVDT0RF X0lEX0RNQ1VfRVJBTV9TSVpFX0JZVEUgICAgICAgMjQ1NzYgICAgICAgICAgICAgICAKKyNkZWZp bmUgVUNPREVfSURfRE1DVV9JUkFNX1NJWkVfQllURSAgICAgICAxMDI0ICAgICAgICAgICAgICAg ICAKKworI2RlZmluZSBOVU1fVUNPREVTICAgICAgICAgICAgICAgMTQKKwordHlwZWRlZiBzdHJ1 Y3QgeworCXVpbnQzMl90IGhpZ2g7CisJdWludDMyX3QgbG93OworfSBkYXRhXzY0X3Q7CisKK3N0 cnVjdCBTTVVfVGFzayB7CisgICAgdWludDhfdCB0eXBlOworICAgIHVpbnQ4X3QgYXJnOworICAg IHVpbnQxNl90IG5leHQ7CisgICAgZGF0YV82NF90IGFkZHI7CisgICAgdWludDMyX3Qgc2l6ZV9i eXRlczsKK307Cit0eXBlZGVmIHN0cnVjdCBTTVVfVGFzayBTTVVfVGFzazsKKworc3RydWN0IFRP QyB7CisgICAgdWludDhfdCBKb2JMaXN0W05VTV9KT0JMSVNUX0VOVFJJRVNdOworICAgIFNNVV9U YXNrIHRhc2tzWzFdOworfTsKKworLy8gTUVUQSBEQVRBIENPTU1BTkQgRGVmaW5pdGlvbnMKKyNk ZWZpbmUgTUVUQURBVEFfQ01EX01PREUwICAgICAgICAgMHgwMDAwMDEwMyAKKyNkZWZpbmUgTUVU QURBVEFfQ01EX01PREUxICAgICAgICAgMHgwMDAwMDExMyAKKyNkZWZpbmUgTUVUQURBVEFfQ01E X01PREUyICAgICAgICAgMHgwMDAwMDEyMyAKKyNkZWZpbmUgTUVUQURBVEFfQ01EX01PREUzICAg ICAgICAgMHgwMDAwMDEzMworI2RlZmluZSBNRVRBREFUQV9DTURfREVMQVkgICAgICAgICAweDAw MDAwMjAzCisjZGVmaW5lIE1FVEFEQVRBX0NNRF9DSE5HX1JFR1NQQUNFIDB4MDAwMDAzMDMKKyNk ZWZpbmUgTUVUQURBVEFfUEVSRk9STV9PTl9TQVZFICAgMHgwMDAwMTAwMAorI2RlZmluZSBNRVRB REFUQV9QRVJGT1JNX09OX0xPQUQgICAweDAwMDAyMDAwCisjZGVmaW5lIE1FVEFEQVRBX0NNRF9B UkdfTUFTSyAgICAgIDB4RkZGRjAwMDAKKyNkZWZpbmUgTUVUQURBVEFfQ01EX0FSR19TSElGVCAg ICAgMTYKKworLy8gU2ltcGxlIHJlZ2lzdGVyIGFkZHIvZGF0YSBmaWVsZHMKK3N0cnVjdCBTTVVf TWV0YURhdGFfTW9kZTAgeworICAgIHVpbnQzMl90IHJlZ2lzdGVyX2FkZHJlc3M7CisgICAgdWlu dDMyX3QgcmVnaXN0ZXJfZGF0YTsKK307Cit0eXBlZGVmIHN0cnVjdCBTTVVfTWV0YURhdGFfTW9k ZTAgU01VX01ldGFEYXRhX01vZGUwOworCisvLyBSZWdpc3RlciBhZGRyL2RhdGEgd2l0aCBtYXNr CitzdHJ1Y3QgU01VX01ldGFEYXRhX01vZGUxIHsKKyAgICB1aW50MzJfdCByZWdpc3Rlcl9hZGRy ZXNzOworICAgIHVpbnQzMl90IHJlZ2lzdGVyX21hc2s7CisgICAgdWludDMyX3QgcmVnaXN0ZXJf ZGF0YTsKK307Cit0eXBlZGVmIHN0cnVjdCBTTVVfTWV0YURhdGFfTW9kZTEgU01VX01ldGFEYXRh X01vZGUxOworCitzdHJ1Y3QgU01VX01ldGFEYXRhX01vZGUyIHsKKyAgICB1aW50MzJfdCByZWdp c3Rlcl9hZGRyZXNzOworICAgIHVpbnQzMl90IHJlZ2lzdGVyX21hc2s7CisgICAgdWludDMyX3Qg dGFyZ2V0X3ZhbHVlOworfTsKK3R5cGVkZWYgc3RydWN0IFNNVV9NZXRhRGF0YV9Nb2RlMiBTTVVf TWV0YURhdGFfTW9kZTI7CisKKy8vIEFsd2F5cyB3cml0ZSBkYXRhIChldmVuIG9uIGEgc2F2ZSBv cGVyYXRpb24pCitzdHJ1Y3QgU01VX01ldGFEYXRhX01vZGUzIHsKKyAgICB1aW50MzJfdCByZWdp c3Rlcl9hZGRyZXNzOworICAgIHVpbnQzMl90IHJlZ2lzdGVyX21hc2s7CisgICAgdWludDMyX3Qg cmVnaXN0ZXJfZGF0YTsKK307Cit0eXBlZGVmIHN0cnVjdCBTTVVfTWV0YURhdGFfTW9kZTMgU01V X01ldGFEYXRhX01vZGUzOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9h bWQvcG93ZXJwbGF5L3NtdW1nci9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L3NtdW1nci9NYWtlZmlsZQppbmRleCA2MWJmYjJhLi45MjE5OTQwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3IvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdyL01ha2VmaWxlCkBAIC0yLDcgKzIsNyBAQAog IyBNYWtlZmlsZSBmb3IgdGhlICdzbXUgbWFuYWdlcicgc3ViLWNvbXBvbmVudCBvZiBwb3dlcnBs YXkuCiAjIEl0IHByb3ZpZGVzIHRoZSBzbXUgbWFuYWdlbWVudCBzZXJ2aWNlcyBmb3IgdGhlIGRy aXZlci4KIAotU01VX01HUiA9IHNtdW1nci5vCitTTVVfTUdSID0gc211bWdyLm8gY3pfc211bWdy Lm8KIAogQU1EX1BQX1NNVU1HUiA9ICQoYWRkcHJlZml4ICQoQU1EX1BQX1BBVEgpL3NtdW1nci8s JChTTVVfTUdSKSkKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkv c211bWdyL2N6X3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBsYXkvc211bWdy L2N6X3NtdW1nci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3NDAyM2IK LS0tIC9kZXYvbnVsbAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Iv Y3pfc211bWdyLmMKQEAgLTAsMCArMSw4NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxNSBBZHZh bmNlZCBNaWNybyBEZXZpY2VzLCBJbmMuCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgor ICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuCisg KgorICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkg T0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJ TUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5U IFNIQUxMCisgKiBUSEUgQ09QWVJJR0hUIEhPTERFUihTKSBPUiBBVVRIT1IoUykgQkUgTElBQkxF IEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IKKyAqIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJ TiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLAorICogQVJJU0lORyBG Uk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNF IE9SCisgKiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCisgKgorICovCisjaW5jbHVk ZSA8bGludXgvdHlwZXMuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNpbmNsdWRlIDxs aW51eC9zbGFiLmg+CisjaW5jbHVkZSA8bGludXgvZ2ZwLmg+CisjaW5jbHVkZSAibGludXgvZGVs YXkuaCIKKyNpbmNsdWRlICJjZ3NfY29tbW9uLmgiCisjaW5jbHVkZSAic211L3NtdV84XzBfZC5o IgorI2luY2x1ZGUgInNtdS9zbXVfOF8wX3NoX21hc2suaCIKKyNpbmNsdWRlICJzbXU4LmgiCisj aW5jbHVkZSAic211OF9mdXNpb24uaCIKKyNpbmNsdWRlICJjel9zbXVtZ3IuaCIKKyNpbmNsdWRl ICJjel9wcHNtYy5oIgorI2luY2x1ZGUgInNtdV91Y29kZV94ZmVyX2N6LmgiCisjaW5jbHVkZSAi Z2NhL2dmeF84XzBfZC5oIgorI2luY2x1ZGUgImdjYS9nZnhfOF8wX3NoX21hc2suaCIKKyNpbmNs dWRlICJzbXVtZ3IuaCIKKworI2RlZmluZSBTSVpFX0FMSUdOXzMyKHgpICAgICgoKHgpICsgMzEp IC8gMzIgKiAzMikKKworc3RhdGljIGVudW0gY3pfc2NyYXRjaF9lbnRyeSBmaXJtd2FyZV9saXN0 W10gPSB7CisJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9TRE1BMCwKKwlDWl9TQ1JBVENIX0VO VFJZX1VDT0RFX0lEX1NETUExLAorCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfQ1BfQ0UsCisJ Q1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9DUF9QRlAsCisJQ1pfU0NSQVRDSF9FTlRSWV9VQ09E RV9JRF9DUF9NRSwKKwlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX01FQ19KVDEsCisJQ1pf U0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9DUF9NRUNfSlQyLAorCUNaX1NDUkFUQ0hfRU5UUllfVUNP REVfSURfUkxDX0csCit9OworCitzdGF0aWMgaW50IGN6X3NtdW1fZ2V0X2FyZ3VtZW50KHN0cnVj dCBwcF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlpZiAoc211bWdyID09IE5VTEwgfHwgc211bWdyLT5k ZXZpY2UgPT0gTlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwlyZXR1cm4gY2dzX3JlYWRfcmVn aXN0ZXIoc211bWdyLT5kZXZpY2UsCisJCQkJCW1tU01VX01QMV9TUkJNMlBfQVJHXzApOworfQor CitzdGF0aWMgaW50IGN6X3NlbmRfbXNnX3RvX3NtY19hc3luYyhzdHJ1Y3QgcHBfc211bWdyICpz bXVtZ3IsCisJCQkJCQkJCXVpbnQxNl90IG1zZykKK3sKKwlpbnQgcmVzdWx0ID0gMDsKKworCWlm IChzbXVtZ3IgPT0gTlVMTCB8fCBzbXVtZ3ItPmRldmljZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVJ TlZBTDsKKworCXJlc3VsdCA9IFNNVU1fV0FJVF9GSUVMRF9VTkVRVUFMKHNtdW1nciwKKwkJCQkJ U01VX01QMV9TUkJNMlBfUkVTUF8wLCBDT05URU5ULCAwKTsKKwlpZiAocmVzdWx0ICE9IDApIHsK KwkJcHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxheSBdIGN6X3NlbmRfbXNnX3RvX3NtY19hc3lu YyBmYWlsZWRcbiIpOworCQlyZXR1cm4gcmVzdWx0OworCX0KKworCWNnc193cml0ZV9yZWdpc3Rl cihzbXVtZ3ItPmRldmljZSwgbW1TTVVfTVAxX1NSQk0yUF9SRVNQXzAsIDApOworCWNnc193cml0 ZV9yZWdpc3RlcihzbXVtZ3ItPmRldmljZSwgbW1TTVVfTVAxX1NSQk0yUF9NU0dfMCwgbXNnKTsK KworCXJldHVybiAwOworfQorCisvKiBTZW5kIGEgbWVzc2FnZSB0byB0aGUgU01DLCBhbmQgd2Fp dCBmb3IgaXRzIHJlc3BvbnNlLiovCitzdGF0aWMgaW50IGN6X3NlbmRfbXNnX3RvX3NtYyhzdHJ1 Y3QgcHBfc211bWdyICpzbXVtZ3IsIHVpbnQxNl90IG1zZykKK3sKKwlpbnQgcmVzdWx0ID0gMDsK KworCXJlc3VsdCA9IGN6X3NlbmRfbXNnX3RvX3NtY19hc3luYyhzbXVtZ3IsIG1zZyk7CisJaWYg KHJlc3VsdCAhPSAwKQorCQlyZXR1cm4gcmVzdWx0OworCisJcmVzdWx0ID0gU01VTV9XQUlUX0ZJ RUxEX1VORVFVQUwoc211bWdyLAorCQkJCQlTTVVfTVAxX1NSQk0yUF9SRVNQXzAsIENPTlRFTlQs IDApOworCisJaWYgKHJlc3VsdCAhPSAwKQorCQlyZXR1cm4gcmVzdWx0OworCisJcmV0dXJuIDA7 Cit9CisKK3N0YXRpYyBpbnQgY3pfc2V0X3NtY19zcmFtX2FkZHJlc3Moc3RydWN0IHBwX3NtdW1n ciAqc211bWdyLAorCQkJCSAgICAgdWludDMyX3Qgc21jX2FkZHJlc3MsIHVpbnQzMl90IGxpbWl0 KQoreworCWlmIChzbXVtZ3IgPT0gTlVMTCB8fCBzbXVtZ3ItPmRldmljZSA9PSBOVUxMKQorCQly ZXR1cm4gLUVJTlZBTDsKKworCWlmICgwICE9ICgzICYgc21jX2FkZHJlc3MpKSB7CisJCXByaW50 ayhLRVJOX0VSUiAiWyBwb3dlcnBsYXkgXSBTTUMgYWRkcmVzcyBtdXN0IGJlIDQgYnl0ZSBhbGln bmVkXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmIChsaW1pdCA8PSAoc21jX2FkZHJlc3Mg KyAzKSkgeworCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5IF0gU01DIGFkZHJlc3MgYmV5 b25kIHRoZSBTTUMgUkFNIGFyZWFcbiIpOworCQlyZXR1cm4gLTE7CisJfQorCisJY2dzX3dyaXRl X3JlZ2lzdGVyKHNtdW1nci0+ZGV2aWNlLCBtbU1QMFBVQl9JTkRfSU5ERVhfMCwKKwkJCQlTTU5f TVAxX1NSQU1fU1RBUlRfQUREUiArIHNtY19hZGRyZXNzKTsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW50IGN6X3dyaXRlX3NtY19zcmFtX2R3b3JkKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1n ciwKKwkJdWludDMyX3Qgc21jX2FkZHJlc3MsIHVpbnQzMl90IHZhbHVlLCB1aW50MzJfdCBsaW1p dCkKK3sKKwlpbnQgcmVzdWx0OworCisJaWYgKHNtdW1nciA9PSBOVUxMIHx8IHNtdW1nci0+ZGV2 aWNlID09IE5VTEwpCisJCXJldHVybiAtRUlOVkFMOworCisJcmVzdWx0ID0gY3pfc2V0X3NtY19z cmFtX2FkZHJlc3Moc211bWdyLCBzbWNfYWRkcmVzcywgbGltaXQpOworCWNnc193cml0ZV9yZWdp c3RlcihzbXVtZ3ItPmRldmljZSwgbW1NUDBQVUJfSU5EX0RBVEFfMCwgdmFsdWUpOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3pfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVy KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwKKwkJCQkJICB1aW50MTZfdCBtc2csIHVpbnQzMl90 IHBhcmFtZXRlcikKK3sKKwlpZiAoc211bWdyID09IE5VTEwgfHwgc211bWdyLT5kZXZpY2UgPT0g TlVMTCkKKwkJcmV0dXJuIC1FSU5WQUw7CisKKwljZ3Nfd3JpdGVfcmVnaXN0ZXIoc211bWdyLT5k ZXZpY2UsIG1tU01VX01QMV9TUkJNMlBfQVJHXzAsIHBhcmFtZXRlcik7CisKKwlyZXR1cm4gY3pf c2VuZF9tc2dfdG9fc21jKHNtdW1nciwgbXNnKTsKK30KKworc3RhdGljIGludCBjel9yZXF1ZXN0 X3NtdV9sb2FkX2Z3KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlzdHJ1Y3QgY3pfc211 bWdyICpjel9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAqKShzbXVtZ3ItPmJhY2tlbmQpOworCWlu dCByZXN1bHQgPSAwOworCXVpbnQzMl90IHNtY19hZGRyZXNzOworCisJaWYgKCFzbXVtZ3ItPnJl bG9hZF9mdykgeworCQlwcmludGsoS0VSTl9JTkZPICJbIHBvd2VycGxheSBdIHNraXAgcmVsb2Fk aW5nLi4uXG4iKTsKKwkJcmV0dXJuIDA7CisJfQorCisJc21jX2FkZHJlc3MgPSBTTVU4X0ZJUk1X QVJFX0hFQURFUl9MT0NBVElPTiArCisJCW9mZnNldG9mKHN0cnVjdCBTTVU4X0Zpcm13YXJlX0hl YWRlciwgVWNvZGVMb2FkU3RhdHVzKTsKKworCWN6X3dyaXRlX3NtY19zcmFtX2R3b3JkKHNtdW1n ciwgc21jX2FkZHJlc3MsIDAsIHNtY19hZGRyZXNzKzQpOworCisJY3pfc2VuZF9tc2dfdG9fc21j X3dpdGhfcGFyYW1ldGVyKHNtdW1nciwKKwkJCQkJUFBTTUNfTVNHX0RyaXZlckRyYW1BZGRySGks CisJCQkJCWN6X3NtdS0+dG9jX2J1ZmZlci5tY19hZGRyX2hpZ2gpOworCisJY3pfc2VuZF9tc2df dG9fc21jX3dpdGhfcGFyYW1ldGVyKHNtdW1nciwKKwkJCQkJUFBTTUNfTVNHX0RyaXZlckRyYW1B ZGRyTG8sCisJCQkJCWN6X3NtdS0+dG9jX2J1ZmZlci5tY19hZGRyX2xvdyk7CisKKwljel9zZW5k X21zZ190b19zbWMoc211bWdyLCBQUFNNQ19NU0dfSW5pdEpvYnMpOworCisJY3pfc2VuZF9tc2df dG9fc21jX3dpdGhfcGFyYW1ldGVyKHNtdW1nciwKKwkJCQkJUFBTTUNfTVNHX0V4ZWN1dGVKb2Is CisJCQkJCWN6X3NtdS0+dG9jX2VudHJ5X2FyYW0pOworCWN6X3NlbmRfbXNnX3RvX3NtY193aXRo X3BhcmFtZXRlcihzbXVtZ3IsIFBQU01DX01TR19FeGVjdXRlSm9iLAorCQkJCWN6X3NtdS0+dG9j X2VudHJ5X3Bvd2VyX3Byb2ZpbGluZ19pbmRleCk7CisKKwlyZXN1bHQgPSBjel9zZW5kX21zZ190 b19zbWNfd2l0aF9wYXJhbWV0ZXIoc211bWdyLAorCQkJCQlQUFNNQ19NU0dfRXhlY3V0ZUpvYiwK KwkJCQkJY3pfc211LT50b2NfZW50cnlfaW5pdGlhbGl6ZV9pbmRleCk7CisKKwlyZXR1cm4gcmVz dWx0OworfQorCitzdGF0aWMgaW50IGN6X2NoZWNrX2Z3X2xvYWRfZmluaXNoKHN0cnVjdCBwcF9z bXVtZ3IgKnNtdW1nciwKKwkJCQkgICB1aW50MzJfdCBmaXJtd2FyZSkKK3sKKwlpbnQgaTsKKwl1 aW50MzJfdCBpbmRleCA9IFNNTl9NUDFfU1JBTV9TVEFSVF9BRERSICsKKwkJCSBTTVU4X0ZJUk1X QVJFX0hFQURFUl9MT0NBVElPTiArCisJCQkgb2Zmc2V0b2Yoc3RydWN0IFNNVThfRmlybXdhcmVf SGVhZGVyLCBVY29kZUxvYWRTdGF0dXMpOworCisJaWYgKHNtdW1nciA9PSBOVUxMIHx8IHNtdW1n ci0+ZGV2aWNlID09IE5VTEwpCisJCXJldHVybiAtRUlOVkFMOworCisJcmV0dXJuIGNnc19yZWFk X3JlZ2lzdGVyKHNtdW1nci0+ZGV2aWNlLAorCQkJCQltbVNNVV9NUDFfU1JCTTJQX0FSR18wKTsK KworCWNnc193cml0ZV9yZWdpc3RlcihzbXVtZ3ItPmRldmljZSwgbW1NUDBQVUJfSU5EX0lOREVY LCBpbmRleCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgc211bWdyLT51c2VjX3RpbWVvdXQ7IGkrKykg eworCQlpZiAoZmlybXdhcmUgPT0KKwkJCShjZ3NfcmVhZF9yZWdpc3RlcihzbXVtZ3ItPmRldmlj ZSwgbW1NUDBQVUJfSU5EX0RBVEEpICYgZmlybXdhcmUpKQorCQkJYnJlYWs7CisJCXVkZWxheSgx KTsKKwl9CisKKwlpZiAoaSA+PSBzbXVtZ3ItPnVzZWNfdGltZW91dCkgeworCQlwcmludGsoS0VS Tl9FUlIgIlsgcG93ZXJwbGF5IF0gU01VIGNoZWNrIGxvYWRlZCBmaXJtd2FyZSBmYWlsZWQuXG4i KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQg Y3pfbG9hZF9tZWNfZmlybXdhcmUoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQoreworCXVpbnQz Ml90IHJlZ19kYXRhOworCXVpbnQzMl90IHRtcDsKKwlpbnQgcmV0ID0gMDsKKwlzdHJ1Y3QgY2dz X2Zpcm13YXJlX2luZm8gaW5mbyA9IHswfTsKKwlzdHJ1Y3QgY3pfc211bWdyICpjel9zbXU7CisK KwlpZiAoc211bWdyID09IE5VTEwgfHwgc211bWdyLT5kZXZpY2UgPT0gTlVMTCkKKwkJcmV0dXJu IC1FSU5WQUw7CisKKwljel9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAqKXNtdW1nci0+YmFja2Vu ZDsKKwlyZXQgPSBjZ3NfZ2V0X2Zpcm13YXJlX2luZm8oc211bWdyLT5kZXZpY2UsCisJCQkJCQlD R1NfVUNPREVfSURfQ1BfTUVDLCAmaW5mbyk7CisKKwlpZiAocmV0KQorCQlyZXR1cm4gLUVJTlZB TDsKKworCS8qIERpc2FibGUgTUVDIHBhcnNpbmcvcHJlZmV0Y2hpbmcgKi8KKwl0bXAgPSBjZ3Nf cmVhZF9yZWdpc3RlcihzbXVtZ3ItPmRldmljZSwKKwkJCQkJbW1DUF9NRUNfQ05UTCk7CisJdG1w ID0gU01VTV9TRVRfRklFTEQodG1wLCBDUF9NRUNfQ05UTCwgTUVDX01FMV9IQUxULCAxKTsKKwl0 bXAgPSBTTVVNX1NFVF9GSUVMRCh0bXAsIENQX01FQ19DTlRMLCBNRUNfTUUyX0hBTFQsIDEpOwor CWNnc193cml0ZV9yZWdpc3RlcihzbXVtZ3ItPmRldmljZSwgbW1DUF9NRUNfQ05UTCwgdG1wKTsK KworCXRtcCA9IGNnc19yZWFkX3JlZ2lzdGVyKHNtdW1nci0+ZGV2aWNlLAorCQkJCQltbUNQX0NQ Q19JQ19CQVNFX0NOVEwpOworCisJdG1wID0gU01VTV9TRVRfRklFTEQodG1wLCBDUF9DUENfSUNf QkFTRV9DTlRMLCBWTUlELCAwKTsKKwl0bXAgPSBTTVVNX1NFVF9GSUVMRCh0bXAsIENQX0NQQ19J Q19CQVNFX0NOVEwsIEFUQywgMCk7CisJdG1wID0gU01VTV9TRVRfRklFTEQodG1wLCBDUF9DUENf SUNfQkFTRV9DTlRMLCBDQUNIRV9QT0xJQ1ksIDApOworCXRtcCA9IFNNVU1fU0VUX0ZJRUxEKHRt cCwgQ1BfQ1BDX0lDX0JBU0VfQ05UTCwgTVRZUEUsIDEpOworCWNnc193cml0ZV9yZWdpc3Rlcihz bXVtZ3ItPmRldmljZSwgbW1DUF9DUENfSUNfQkFTRV9DTlRMLCB0bXApOworCisJcmVnX2RhdGEg PSBzbXVfbG93ZXJfMzJfYml0cyhpbmZvLm1jX2FkZHIpICYKKwkJCVNNVU1fRklFTERfTUFTSyhD UF9DUENfSUNfQkFTRV9MTywgSUNfQkFTRV9MTyk7CisJY2dzX3dyaXRlX3JlZ2lzdGVyKHNtdW1n ci0+ZGV2aWNlLCBtbUNQX0NQQ19JQ19CQVNFX0xPLCByZWdfZGF0YSk7CisKKwlyZWdfZGF0YSA9 IHNtdV91cHBlcl8zMl9iaXRzKGluZm8ubWNfYWRkcikgJgorCQkJU01VTV9GSUVMRF9NQVNLKENQ X0NQQ19JQ19CQVNFX0hJLCBJQ19CQVNFX0hJKTsKKwljZ3Nfd3JpdGVfcmVnaXN0ZXIoc211bWdy LT5kZXZpY2UsIG1tQ1BfQ1BDX0lDX0JBU0VfSEksIHJlZ19kYXRhKTsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50IGN6X3N0YXJ0X3NtdShzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCit7 CisJaW50IHJldCA9IDA7CisJdWludDMyX3QgZndfdG9fY2hlY2sgPSBVQ09ERV9JRF9STENfR19N QVNLIHwKKwkJCQlVQ09ERV9JRF9TRE1BMF9NQVNLIHwKKwkJCQlVQ09ERV9JRF9TRE1BMV9NQVNL IHwKKwkJCQlVQ09ERV9JRF9DUF9DRV9NQVNLIHwKKwkJCQlVQ09ERV9JRF9DUF9NRV9NQVNLIHwK KwkJCQlVQ09ERV9JRF9DUF9QRlBfTUFTSyB8CisJCQkJVUNPREVfSURfQ1BfTUVDX0pUMV9NQVNL IHwKKwkJCQlVQ09ERV9JRF9DUF9NRUNfSlQyX01BU0s7CisKKwljel9yZXF1ZXN0X3NtdV9sb2Fk X2Z3KHNtdW1ncik7CisJY3pfY2hlY2tfZndfbG9hZF9maW5pc2goc211bWdyLCBmd190b19jaGVj ayk7CisKKwlyZXQgPSBjel9sb2FkX21lY19maXJtd2FyZShzbXVtZ3IpOworCWlmIChyZXQpCisJ CXByaW50ayhLRVJOX0VSUiAiWyBwb3dlcnBsYXkgXSBNZWMgRmlybXdhcmUgbG9hZCBmYWlsZWRc biIpOworCisJcmV0dXJuIHJldDsKK30KKworc3RhdGljIHVpbnQ4X3QgY3pfdHJhbnNsYXRlX2Zp cm13YXJlX2VudW1fdG9fYXJnKAorCQkJZW51bSBjel9zY3JhdGNoX2VudHJ5IGZpcm13YXJlX2Vu dW0pCit7CisJdWludDhfdCByZXQgPSAwOworCisJc3dpdGNoIChmaXJtd2FyZV9lbnVtKSB7CisJ Y2FzZSBDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX1NETUEwOgorCQlyZXQgPSBVQ09ERV9JRF9T RE1BMDsKKwkJYnJlYWs7CisJY2FzZSBDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX1NETUExOgor CQlyZXQgPSBVQ09ERV9JRF9TRE1BMTsKKwkJYnJlYWs7CisJY2FzZSBDWl9TQ1JBVENIX0VOVFJZ X1VDT0RFX0lEX0NQX0NFOgorCQlyZXQgPSBVQ09ERV9JRF9DUF9DRTsKKwkJYnJlYWs7CisJY2Fz ZSBDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX1BGUDoKKwkJcmV0ID0gVUNPREVfSURfQ1Bf UEZQOworCQlicmVhazsKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfQ1BfTUU6CisJ CXJldCA9IFVDT0RFX0lEX0NQX01FOworCQlicmVhazsKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllf VUNPREVfSURfQ1BfTUVDX0pUMToKKwkJcmV0ID0gVUNPREVfSURfQ1BfTUVDX0pUMTsKKwkJYnJl YWs7CisJY2FzZSBDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX01FQ19KVDI6CisJCXJldCA9 IFVDT0RFX0lEX0NQX01FQ19KVDI7CisJCWJyZWFrOworCWNhc2UgQ1pfU0NSQVRDSF9FTlRSWV9V Q09ERV9JRF9HTUNPTl9SRU5HOgorCQlyZXQgPSBVQ09ERV9JRF9HTUNPTl9SRU5HOworCQlicmVh azsKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX0c6CisJCXJldCA9IFVDT0RF X0lEX1JMQ19HOworCQlicmVhazsKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxD X1NDUkFUQ0g6CisJCXJldCA9IFVDT0RFX0lEX1JMQ19TQ1JBVENIOworCQlicmVhazsKKwljYXNl IENaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX1NSTV9BUkFNOgorCQlyZXQgPSBVQ09ERV9J RF9STENfU1JNX0FSQU07CisJCWJyZWFrOworCWNhc2UgQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9J RF9STENfU1JNX0RSQU06CisJCXJldCA9IFVDT0RFX0lEX1JMQ19TUk1fRFJBTTsKKwkJYnJlYWs7 CisJY2FzZSBDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0RNQ1VfRVJBTToKKwkJcmV0ID0gVUNP REVfSURfRE1DVV9FUkFNOworCQlicmVhazsKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllfVUNPREVf SURfRE1DVV9JUkFNOgorCQlyZXQgPSBVQ09ERV9JRF9ETUNVX0lSQU07CisJCWJyZWFrOworCWNh c2UgQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9QT1dFUl9QUk9GSUxJTkc6CisJCXJldCA9IFRB U0tfQVJHX0lOSVRfTU1fUFdSX0xPRzsKKwkJYnJlYWs7CisJY2FzZSBDWl9TQ1JBVENIX0VOVFJZ X0RBVEFfSURfU0RNQV9IQUxUOgorCWNhc2UgQ1pfU0NSQVRDSF9FTlRSWV9EQVRBX0lEX1NZU19D TE9DS0dBVElORzoKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllfREFUQV9JRF9TRE1BX1JJTkdfUkVH UzoKKwljYXNlIENaX1NDUkFUQ0hfRU5UUllfREFUQV9JRF9OT05HRlhfUkVJTklUOgorCWNhc2Ug Q1pfU0NSQVRDSF9FTlRSWV9EQVRBX0lEX1NETUFfU1RBUlQ6CisJY2FzZSBDWl9TQ1JBVENIX0VO VFJZX0RBVEFfSURfSUhfUkVHSVNURVJTOgorCQlyZXQgPSBUQVNLX0FSR19SRUdfTU1JTzsKKwkJ YnJlYWs7CisJY2FzZSBDWl9TQ1JBVENIX0VOVFJZX1NNVThfRlVTSU9OX0NMS1RBQkxFOgorCQly ZXQgPSBUQVNLX0FSR19JTklUX0NMS19UQUJMRTsKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJl dDsKK30KKworc3RhdGljIGVudW0gY2dzX3Vjb2RlX2lkIGN6X2NvbnZlcnRfZndfdHlwZV90b19j Z3ModWludDMyX3QgZndfdHlwZSkKK3sKKwllbnVtIGNnc191Y29kZV9pZCByZXN1bHQgPSBDR1Nf VUNPREVfSURfTUFYSU1VTTsKKworCXN3aXRjaCAoZndfdHlwZSkgeworCWNhc2UgVUNPREVfSURf U0RNQTA6CisJCXJlc3VsdCA9IENHU19VQ09ERV9JRF9TRE1BMDsKKwkJYnJlYWs7CisJY2FzZSBV Q09ERV9JRF9TRE1BMToKKwkJcmVzdWx0ID0gQ0dTX1VDT0RFX0lEX1NETUExOworCQlicmVhazsK KwljYXNlIFVDT0RFX0lEX0NQX0NFOgorCQlyZXN1bHQgPSBDR1NfVUNPREVfSURfQ1BfQ0U7CisJ CWJyZWFrOworCWNhc2UgVUNPREVfSURfQ1BfUEZQOgorCQlyZXN1bHQgPSBDR1NfVUNPREVfSURf Q1BfUEZQOworCQlicmVhazsKKwljYXNlIFVDT0RFX0lEX0NQX01FOgorCQlyZXN1bHQgPSBDR1Nf VUNPREVfSURfQ1BfTUU7CisJCWJyZWFrOworCWNhc2UgVUNPREVfSURfQ1BfTUVDX0pUMToKKwkJ cmVzdWx0ID0gQ0dTX1VDT0RFX0lEX0NQX01FQ19KVDE7CisJCWJyZWFrOworCWNhc2UgVUNPREVf SURfQ1BfTUVDX0pUMjoKKwkJcmVzdWx0ID0gQ0dTX1VDT0RFX0lEX0NQX01FQ19KVDI7CisJCWJy ZWFrOworCWNhc2UgVUNPREVfSURfUkxDX0c6CisJCXJlc3VsdCA9IENHU19VQ09ERV9JRF9STENf RzsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsK K30KKworc3RhdGljIGludCBjel9zbXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0Y2hfdGFzaygKKwkJ CXN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1nciwKKwkJCWVudW0gY3pfc2NyYXRjaF9lbnRyeSBmd19l bnVtLAorCQkJdWludDhfdCB0eXBlLCBib29sIGlzX2xhc3QpCit7CisJdWludDhfdCBpOworCXN0 cnVjdCBjel9zbXVtZ3IgKmN6X3NtdSA9IChzdHJ1Y3QgY3pfc211bWdyICopc211bWdyLT5iYWNr ZW5kOworCXN0cnVjdCBUT0MgKnRvYyA9IChzdHJ1Y3QgVE9DICopY3pfc211LT50b2NfYnVmZmVy LmthZGRyOworCXN0cnVjdCBTTVVfVGFzayAqdGFzayA9ICZ0b2MtPnRhc2tzW2N6X3NtdS0+dG9j X2VudHJ5X3VzZWRfY291bnQrK107CisKKwl0YXNrLT50eXBlID0gdHlwZTsKKwl0YXNrLT5hcmcg PSBjel90cmFuc2xhdGVfZmlybXdhcmVfZW51bV90b19hcmcoZndfZW51bSk7CisJdGFzay0+bmV4 dCA9IGlzX2xhc3QgPyBFTkRfT0ZfVEFTS19MSVNUIDogY3pfc211LT50b2NfZW50cnlfdXNlZF9j b3VudDsKKworCWZvciAoaSA9IDA7IGkgPCBjel9zbXUtPnNjcmF0Y2hfYnVmZmVyX2xlbmd0aDsg aSsrKQorCQlpZiAoY3pfc211LT5zY3JhdGNoX2J1ZmZlcltpXS5maXJtd2FyZV9JRCA9PSBmd19l bnVtKQorCQkJYnJlYWs7CisKKwlpZiAoaSA+PSBjel9zbXUtPnNjcmF0Y2hfYnVmZmVyX2xlbmd0 aCkgeworCQlwcmludGsoS0VSTl9FUlIgIlsgcG93ZXJwbGF5IF0gSW52YWxpZCBGaXJtd2FyZSBU eXBlXG4iKTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJdGFzay0+YWRkci5sb3cgPSBjel9z bXUtPnNjcmF0Y2hfYnVmZmVyW2ldLm1jX2FkZHJfbG93OworCXRhc2stPmFkZHIuaGlnaCA9IGN6 X3NtdS0+c2NyYXRjaF9idWZmZXJbaV0ubWNfYWRkcl9oaWdoOworCXRhc2stPnNpemVfYnl0ZXMg PSBjel9zbXUtPnNjcmF0Y2hfYnVmZmVyW2ldLmRhdGFfc2l6ZTsKKworCWlmIChDWl9TQ1JBVENI X0VOVFJZX0RBVEFfSURfSUhfUkVHSVNURVJTID09IGZ3X2VudW0pIHsKKwkJc3RydWN0IGN6X2lo X21ldGFfZGF0YSAqcElIUmVnX3Jlc3RvcmUgPQorCQkgICAgIChzdHJ1Y3QgY3pfaWhfbWV0YV9k YXRhICopY3pfc211LT5zY3JhdGNoX2J1ZmZlcltpXS5rYWRkcjsKKwkJcElIUmVnX3Jlc3RvcmUt PmNvbW1hbmQgPQorCQkJTUVUQURBVEFfQ01EX01PREUwIHwgTUVUQURBVEFfUEVSRk9STV9PTl9M T0FEOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGN6X3NtdV9wb3B1bGF0ZV9z aW5nbGVfdWNvZGVfbG9hZF90YXNrKAorCQkJCQlzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsCisJ CQkJCWVudW0gY3pfc2NyYXRjaF9lbnRyeSBmd19lbnVtLAorCQkJCQlib29sIGlzX2xhc3QpCit7 CisJdWludDhfdCBpOworCXN0cnVjdCBjel9zbXVtZ3IgKmN6X3NtdSA9IChzdHJ1Y3QgY3pfc211 bWdyICopc211bWdyLT5iYWNrZW5kOworCXN0cnVjdCBUT0MgKnRvYyA9IChzdHJ1Y3QgVE9DICop Y3pfc211LT50b2NfYnVmZmVyLmthZGRyOworCXN0cnVjdCBTTVVfVGFzayAqdGFzayA9ICZ0b2Mt PnRhc2tzW2N6X3NtdS0+dG9jX2VudHJ5X3VzZWRfY291bnQrK107CisKKwl0YXNrLT50eXBlID0g VEFTS19UWVBFX1VDT0RFX0xPQUQ7CisJdGFzay0+YXJnID0gY3pfdHJhbnNsYXRlX2Zpcm13YXJl X2VudW1fdG9fYXJnKGZ3X2VudW0pOworCXRhc2stPm5leHQgPSBpc19sYXN0ID8gRU5EX09GX1RB U0tfTElTVCA6IGN6X3NtdS0+dG9jX2VudHJ5X3VzZWRfY291bnQ7CisKKwlmb3IgKGkgPSAwOyBp IDwgY3pfc211LT5kcml2ZXJfYnVmZmVyX2xlbmd0aDsgaSsrKQorCQlpZiAoY3pfc211LT5kcml2 ZXJfYnVmZmVyW2ldLmZpcm13YXJlX0lEID09IGZ3X2VudW0pCisJCQlicmVhazsKKworCWlmIChp ID49IGN6X3NtdS0+ZHJpdmVyX2J1ZmZlcl9sZW5ndGgpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJb IHBvd2VycGxheSBdIEludmFsaWQgRmlybXdhcmUgVHlwZVxuIik7CisJCXJldHVybiAtRUlOVkFM OworCX0KKworCXRhc2stPmFkZHIubG93ID0gY3pfc211LT5kcml2ZXJfYnVmZmVyW2ldLm1jX2Fk ZHJfbG93OworCXRhc2stPmFkZHIuaGlnaCA9IGN6X3NtdS0+ZHJpdmVyX2J1ZmZlcltpXS5tY19h ZGRyX2hpZ2g7CisJdGFzay0+c2l6ZV9ieXRlcyA9IGN6X3NtdS0+ZHJpdmVyX2J1ZmZlcltpXS5k YXRhX3NpemU7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjel9zbXVfY29uc3RydWN0 X3RvY19mb3JfcmxjX2FyYW1fc2F2ZShzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCit7CisJc3Ry dWN0IGN6X3NtdW1nciAqY3pfc211ID0gKHN0cnVjdCBjel9zbXVtZ3IgKilzbXVtZ3ItPmJhY2tl bmQ7CisKKwljel9zbXUtPnRvY19lbnRyeV9hcmFtID0gY3pfc211LT50b2NfZW50cnlfdXNlZF9j b3VudDsKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0Y2hfdGFzayhzbXVtZ3IsCisJCQkJ Q1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9STENfU1JNX0FSQU0sCisJCQkJVEFTS19UWVBFX1VD T0RFX1NBVkUsIHRydWUpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3pfc211X2lu aXRpYWxpemVfdG9jX2VtcHR5X2pvYl9saXN0KHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKK3sK KwlpbnQgaTsKKwlzdHJ1Y3QgY3pfc211bWdyICpjel9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAq KXNtdW1nci0+YmFja2VuZDsKKwlzdHJ1Y3QgVE9DICp0b2MgPSAoc3RydWN0IFRPQyAqKWN6X3Nt dS0+dG9jX2J1ZmZlci5rYWRkcjsKKworCWZvciAoaSA9IDA7IGkgPCBOVU1fSk9CTElTVF9FTlRS SUVTOyBpKyspCisJCXRvYy0+Sm9iTGlzdFtpXSA9ICh1aW50OF90KUlHTk9SRV9KT0I7CisKKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBjel9zbXVfY29uc3RydWN0X3RvY19mb3JfdmRkZ2Z4 X2VudGVyKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlzdHJ1Y3QgY3pfc211bWdyICpj el9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAqKXNtdW1nci0+YmFja2VuZDsKKwlzdHJ1Y3QgVE9D ICp0b2MgPSAoc3RydWN0IFRPQyAqKWN6X3NtdS0+dG9jX2J1ZmZlci5rYWRkcjsKKworCXRvYy0+ Sm9iTGlzdFtKT0JfR0ZYX1NBVkVdID0gKHVpbnQ4X3QpY3pfc211LT50b2NfZW50cnlfdXNlZF9j b3VudDsKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0Y2hfdGFzayhzbXVtZ3IsCisJCQkJ ICAgIENaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX1NDUkFUQ0gsCisJCQkJICAgIFRBU0tf VFlQRV9VQ09ERV9TQVZFLCBmYWxzZSk7CisKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0 Y2hfdGFzayhzbXVtZ3IsCisJCQkJICAgIENaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX1NS TV9EUkFNLAorCQkJCSAgICBUQVNLX1RZUEVfVUNPREVfU0FWRSwgdHJ1ZSk7CisKKwlyZXR1cm4g MDsKK30KKworCitzdGF0aWMgaW50IGN6X3NtdV9jb25zdHJ1Y3RfdG9jX2Zvcl92ZGRnZnhfZXhp dChzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCit7CisJc3RydWN0IGN6X3NtdW1nciAqY3pfc211 ID0gKHN0cnVjdCBjel9zbXVtZ3IgKilzbXVtZ3ItPmJhY2tlbmQ7CisJc3RydWN0IFRPQyAqdG9j ID0gKHN0cnVjdCBUT0MgKiljel9zbXUtPnRvY19idWZmZXIua2FkZHI7CisKKwl0b2MtPkpvYkxp c3RbSk9CX0dGWF9SRVNUT1JFXSA9ICh1aW50OF90KWN6X3NtdS0+dG9jX2VudHJ5X3VzZWRfY291 bnQ7CisKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3Vjb2RlX2xvYWRfdGFzayhzbXVtZ3IsCisJ CQkJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9DUF9DRSwgZmFsc2UpOworCWN6X3NtdV9wb3B1 bGF0ZV9zaW5nbGVfdWNvZGVfbG9hZF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENIX0VOVFJZ X1VDT0RFX0lEX0NQX1BGUCwgZmFsc2UpOworCWN6X3NtdV9wb3B1bGF0ZV9zaW5nbGVfdWNvZGVf bG9hZF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX01FLCBm YWxzZSk7CisJY3pfc211X3BvcHVsYXRlX3NpbmdsZV91Y29kZV9sb2FkX3Rhc2soc211bWdyLAor CQkJCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfQ1BfTUVDX0pUMSwgZmFsc2UpOworCWN6X3Nt dV9wb3B1bGF0ZV9zaW5nbGVfdWNvZGVfbG9hZF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENI X0VOVFJZX1VDT0RFX0lEX0NQX01FQ19KVDIsIGZhbHNlKTsKKwljel9zbXVfcG9wdWxhdGVfc2lu Z2xlX3Vjb2RlX2xvYWRfdGFzayhzbXVtZ3IsCisJCQkJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9J RF9STENfRywgZmFsc2UpOworCisJLyogcG9wdWxhdGUgc2NyYXRjaCAqLworCWN6X3NtdV9wb3B1 bGF0ZV9zaW5nbGVfc2NyYXRjaF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENIX0VOVFJZX1VD T0RFX0lEX1JMQ19TQ1JBVENILAorCQkJCVRBU0tfVFlQRV9VQ09ERV9MT0FELCBmYWxzZSk7CisK Kwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0Y2hfdGFzayhzbXVtZ3IsCisJCQkJQ1pfU0NS QVRDSF9FTlRSWV9VQ09ERV9JRF9STENfU1JNX0FSQU0sCisJCQkJVEFTS19UWVBFX1VDT0RFX0xP QUQsIGZhbHNlKTsKKworCWN6X3NtdV9wb3B1bGF0ZV9zaW5nbGVfc2NyYXRjaF90YXNrKHNtdW1n ciwKKwkJCQlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX1JMQ19TUk1fRFJBTSwKKwkJCQlUQVNL X1RZUEVfVUNPREVfTE9BRCwgdHJ1ZSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBj el9zbXVfY29uc3RydWN0X3RvY19mb3JfcG93ZXJfcHJvZmlsaW5nKAorCQkJCQkJIHN0cnVjdCBw cF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlzdHJ1Y3QgY3pfc211bWdyICpjel9zbXUgPSAoc3RydWN0 IGN6X3NtdW1nciAqKXNtdW1nci0+YmFja2VuZDsKKworCWN6X3NtdS0+dG9jX2VudHJ5X3Bvd2Vy X3Byb2ZpbGluZ19pbmRleCA9IGN6X3NtdS0+dG9jX2VudHJ5X3VzZWRfY291bnQ7CisKKwljel9z bXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0Y2hfdGFzayhzbXVtZ3IsCisJCQkJQ1pfU0NSQVRDSF9F TlRSWV9VQ09ERV9JRF9QT1dFUl9QUk9GSUxJTkcsCisJCQkJVEFTS19UWVBFX0lOSVRJQUxJWkUs IHRydWUpOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGN6X3NtdV9jb25zdHJ1Y3RfdG9j X2Zvcl9ib290dXAoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQoreworCXN0cnVjdCBjel9zbXVt Z3IgKmN6X3NtdSA9IChzdHJ1Y3QgY3pfc211bWdyICopc211bWdyLT5iYWNrZW5kOworCisJY3pf c211LT50b2NfZW50cnlfaW5pdGlhbGl6ZV9pbmRleCA9IGN6X3NtdS0+dG9jX2VudHJ5X3VzZWRf Y291bnQ7CisKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3Vjb2RlX2xvYWRfdGFzayhzbXVtZ3Is CisJCQkJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9TRE1BMCwgZmFsc2UpOworCWN6X3NtdV9w b3B1bGF0ZV9zaW5nbGVfdWNvZGVfbG9hZF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENIX0VO VFJZX1VDT0RFX0lEX1NETUExLCBmYWxzZSk7CisJY3pfc211X3BvcHVsYXRlX3NpbmdsZV91Y29k ZV9sb2FkX3Rhc2soc211bWdyLAorCQkJCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfQ1BfQ0Us IGZhbHNlKTsKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3Vjb2RlX2xvYWRfdGFzayhzbXVtZ3Is CisJCQkJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9DUF9QRlAsIGZhbHNlKTsKKwljel9zbXVf cG9wdWxhdGVfc2luZ2xlX3Vjb2RlX2xvYWRfdGFzayhzbXVtZ3IsCisJCQkJQ1pfU0NSQVRDSF9F TlRSWV9VQ09ERV9JRF9DUF9NRSwgZmFsc2UpOworCWN6X3NtdV9wb3B1bGF0ZV9zaW5nbGVfdWNv ZGVfbG9hZF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX01F Q19KVDEsIGZhbHNlKTsKKwljel9zbXVfcG9wdWxhdGVfc2luZ2xlX3Vjb2RlX2xvYWRfdGFzayhz bXVtZ3IsCisJCQkJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9DUF9NRUNfSlQyLCBmYWxzZSk7 CisJY3pfc211X3BvcHVsYXRlX3NpbmdsZV91Y29kZV9sb2FkX3Rhc2soc211bWdyLAorCQkJCUNa X1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX0csIHRydWUpOworCisJcmV0dXJuIDA7Cit9CisK K3N0YXRpYyBpbnQgY3pfc211X2NvbnN0cnVjdF90b2NfZm9yX2Nsb2NrX3RhYmxlKHN0cnVjdCBw cF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlzdHJ1Y3QgY3pfc211bWdyICpjel9zbXUgPSAoc3RydWN0 IGN6X3NtdW1nciAqKXNtdW1nci0+YmFja2VuZDsKKworCWN6X3NtdS0+dG9jX2VudHJ5X2Nsb2Nr X3RhYmxlID0gY3pfc211LT50b2NfZW50cnlfdXNlZF9jb3VudDsKKworCWN6X3NtdV9wb3B1bGF0 ZV9zaW5nbGVfc2NyYXRjaF90YXNrKHNtdW1nciwKKwkJCQlDWl9TQ1JBVENIX0VOVFJZX1NNVThf RlVTSU9OX0NMS1RBQkxFLAorCQkJCVRBU0tfVFlQRV9JTklUSUFMSVpFLCB0cnVlKTsKKworCXJl dHVybiAwOworfQorCitzdGF0aWMgaW50IGN6X3NtdV9jb25zdHJ1Y3RfdG9jKHN0cnVjdCBwcF9z bXVtZ3IgKnNtdW1ncikKK3sKKwlzdHJ1Y3QgY3pfc211bWdyICpjel9zbXUgPSAoc3RydWN0IGN6 X3NtdW1nciAqKXNtdW1nci0+YmFja2VuZDsKKworCWN6X3NtdS0+dG9jX2VudHJ5X3VzZWRfY291 bnQgPSAwOworCisJY3pfc211X2luaXRpYWxpemVfdG9jX2VtcHR5X2pvYl9saXN0KHNtdW1ncik7 CisKKwljel9zbXVfY29uc3RydWN0X3RvY19mb3JfcmxjX2FyYW1fc2F2ZShzbXVtZ3IpOworCisJ Y3pfc211X2NvbnN0cnVjdF90b2NfZm9yX3ZkZGdmeF9lbnRlcihzbXVtZ3IpOworCisJY3pfc211 X2NvbnN0cnVjdF90b2NfZm9yX3ZkZGdmeF9leGl0KHNtdW1ncik7CisKKwljel9zbXVfY29uc3Ry dWN0X3RvY19mb3JfcG93ZXJfcHJvZmlsaW5nKHNtdW1ncik7CisKKwljel9zbXVfY29uc3RydWN0 X3RvY19mb3JfYm9vdHVwKHNtdW1ncik7CisKKwljel9zbXVfY29uc3RydWN0X3RvY19mb3JfY2xv Y2tfdGFibGUoc211bWdyKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGN6X3NtdV9w b3B1bGF0ZV9maXJtd2FyZV9lbnRyaWVzKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlz dHJ1Y3QgY3pfc211bWdyICpjel9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAqKXNtdW1nci0+YmFj a2VuZDsKKwl1aW50MzJfdCBmaXJtd2FyZV90eXBlOworCXVpbnQzMl90IGk7CisJaW50IHJldDsK KwllbnVtIGNnc191Y29kZV9pZCB1Y29kZV9pZDsKKwlzdHJ1Y3QgY2dzX2Zpcm13YXJlX2luZm8g aW5mbyA9IHswfTsKKworCWN6X3NtdS0+ZHJpdmVyX2J1ZmZlcl9sZW5ndGggPSAwOworCisJZm9y IChpID0gMDsgaSA8IHNpemVvZihmaXJtd2FyZV9saXN0KS9zaXplb2YoKmZpcm13YXJlX2xpc3Qp OyBpKyspIHsKKworCQlmaXJtd2FyZV90eXBlID0gY3pfdHJhbnNsYXRlX2Zpcm13YXJlX2VudW1f dG9fYXJnKAorCQkJCQlmaXJtd2FyZV9saXN0W2ldKTsKKworCQl1Y29kZV9pZCA9IGN6X2NvbnZl cnRfZndfdHlwZV90b19jZ3MoZmlybXdhcmVfdHlwZSk7CisKKwkJcmV0ID0gY2dzX2dldF9maXJt d2FyZV9pbmZvKHNtdW1nci0+ZGV2aWNlLAorCQkJCQkJCXVjb2RlX2lkLCAmaW5mbyk7CisKKwkJ aWYgKHJldCA9PSAwKSB7CisJCQljel9zbXUtPmRyaXZlcl9idWZmZXJbaV0ubWNfYWRkcl9oaWdo ID0KKwkJCQkJc211X3VwcGVyXzMyX2JpdHMoaW5mby5tY19hZGRyKTsKKworCQkJY3pfc211LT5k cml2ZXJfYnVmZmVyW2ldLm1jX2FkZHJfbG93ID0KKwkJCQkJc211X2xvd2VyXzMyX2JpdHMoaW5m by5tY19hZGRyKTsKKworCQkJY3pfc211LT5kcml2ZXJfYnVmZmVyW2ldLmRhdGFfc2l6ZSA9IGlu Zm8uaW1hZ2Vfc2l6ZTsKKworCQkJY3pfc211LT5kcml2ZXJfYnVmZmVyW2ldLmZpcm13YXJlX0lE ID0gZmlybXdhcmVfbGlzdFtpXTsKKwkJCWN6X3NtdS0+ZHJpdmVyX2J1ZmZlcl9sZW5ndGgrKzsK KwkJfQorCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGN6X3NtdV9wb3B1bGF0ZV9z aW5nbGVfc2NyYXRjaF9lbnRyeSgKKwkJCQlzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsCisJCQkJ ZW51bSBjel9zY3JhdGNoX2VudHJ5IHNjcmF0Y2hfdHlwZSwKKwkJCQl1aW50MzJfdCB1bHNpemVf Ynl0ZSwKKwkJCQlzdHJ1Y3QgY3pfYnVmZmVyX2VudHJ5ICplbnRyeSkKK3sKKwlzdHJ1Y3QgY3pf c211bWdyICpjel9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAqKXNtdW1nci0+YmFja2VuZDsKKwls b25nIGxvbmcgbWNfYWRkciA9CisJCQkoKGxvbmcgbG9uZykoY3pfc211LT5zbXVfYnVmZmVyLm1j X2FkZHJfaGlnaCkgPDwgMzIpCisJCQl8IGN6X3NtdS0+c211X2J1ZmZlci5tY19hZGRyX2xvdzsK KworCXVpbnQzMl90IHVsc2l6ZV9hbGlnbmVkID0gU0laRV9BTElHTl8zMih1bHNpemVfYnl0ZSk7 CisKKwltY19hZGRyICs9IGN6X3NtdS0+c211X2J1ZmZlcl91c2VkX2J5dGVzOworCisJZW50cnkt PmRhdGFfc2l6ZSA9IHVsc2l6ZV9ieXRlOworCWVudHJ5LT5rYWRkciA9IChjaGFyICopIGN6X3Nt dS0+c211X2J1ZmZlci5rYWRkciArCisJCQkJY3pfc211LT5zbXVfYnVmZmVyX3VzZWRfYnl0ZXM7 CisJZW50cnktPm1jX2FkZHJfbG93ID0gc211X2xvd2VyXzMyX2JpdHMobWNfYWRkcik7CisJZW50 cnktPm1jX2FkZHJfaGlnaCA9IHNtdV91cHBlcl8zMl9iaXRzKG1jX2FkZHIpOworCWVudHJ5LT5m aXJtd2FyZV9JRCA9IHNjcmF0Y2hfdHlwZTsKKworCWN6X3NtdS0+c211X2J1ZmZlcl91c2VkX2J5 dGVzICs9IHVsc2l6ZV9hbGlnbmVkOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3pf ZG93bmxvYWRfcHB0YWJsZV9zZXR0aW5ncyhzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IsIHZvaWQg Kip0YWJsZSkKK3sKKwlzdHJ1Y3QgY3pfc211bWdyICpjel9zbXUgPSAoc3RydWN0IGN6X3NtdW1n ciAqKXNtdW1nci0+YmFja2VuZDsKKwl1bnNpZ25lZCBsb25nIGk7CisKKwlmb3IgKGkgPSAwOyBp IDwgY3pfc211LT5zY3JhdGNoX2J1ZmZlcl9sZW5ndGg7IGkrKykgeworCQlpZiAoY3pfc211LT5z Y3JhdGNoX2J1ZmZlcltpXS5maXJtd2FyZV9JRAorCQkJPT0gQ1pfU0NSQVRDSF9FTlRSWV9TTVU4 X0ZVU0lPTl9DTEtUQUJMRSkKKwkJCWJyZWFrOworCX0KKworCSp0YWJsZSA9IChzdHJ1Y3QgU01V OF9GdXNpb25fQ2xrVGFibGUgKiljel9zbXUtPnNjcmF0Y2hfYnVmZmVyW2ldLmthZGRyOworCisJ Y3pfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKHNtdW1nciwKKwkJCQlQUFNNQ19NU0df U2V0Q2xrVGFibGVBZGRySGksCisJCQkJY3pfc211LT5zY3JhdGNoX2J1ZmZlcltpXS5tY19hZGRy X2hpZ2gpOworCisJY3pfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyKHNtdW1nciwKKwkJ CQlQUFNNQ19NU0dfU2V0Q2xrVGFibGVBZGRyTG8sCisJCQkJY3pfc211LT5zY3JhdGNoX2J1ZmZl cltpXS5tY19hZGRyX2xvdyk7CisKKwljel9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIo c211bWdyLCBQUFNNQ19NU0dfRXhlY3V0ZUpvYiwKKwkJCQljel9zbXUtPnRvY19lbnRyeV9jbG9j a190YWJsZSk7CisKKwljel9zZW5kX21zZ190b19zbWMoc211bWdyLCBQUFNNQ19NU0dfQ2xrVGFi bGVYZmVyVG9EcmFtKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGN6X3VwbG9hZF9w cHRhYmxlX3NldHRpbmdzKHN0cnVjdCBwcF9zbXVtZ3IgKnNtdW1ncikKK3sKKwlzdHJ1Y3QgY3pf c211bWdyICpjel9zbXUgPSAoc3RydWN0IGN6X3NtdW1nciAqKXNtdW1nci0+YmFja2VuZDsKKwl1 bnNpZ25lZCBsb25nIGk7CisKKwlmb3IgKGkgPSAwOyBpIDwgY3pfc211LT5zY3JhdGNoX2J1ZmZl cl9sZW5ndGg7IGkrKykgeworCQlpZiAoY3pfc211LT5zY3JhdGNoX2J1ZmZlcltpXS5maXJtd2Fy ZV9JRAorCQkJCT09IENaX1NDUkFUQ0hfRU5UUllfU01VOF9GVVNJT05fQ0xLVEFCTEUpCisJCQli cmVhazsKKwl9CisKKwljel9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0ZXIoc211bWdyLAor CQkJCVBQU01DX01TR19TZXRDbGtUYWJsZUFkZHJIaSwKKwkJCQljel9zbXUtPnNjcmF0Y2hfYnVm ZmVyW2ldLm1jX2FkZHJfaGlnaCk7CisKKwljel9zZW5kX21zZ190b19zbWNfd2l0aF9wYXJhbWV0 ZXIoc211bWdyLAorCQkJCVBQU01DX01TR19TZXRDbGtUYWJsZUFkZHJMbywKKwkJCQljel9zbXUt PnNjcmF0Y2hfYnVmZmVyW2ldLm1jX2FkZHJfbG93KTsKKworCWN6X3NlbmRfbXNnX3RvX3NtY193 aXRoX3BhcmFtZXRlcihzbXVtZ3IsIFBQU01DX01TR19FeGVjdXRlSm9iLAorCQkJCWN6X3NtdS0+ dG9jX2VudHJ5X2Nsb2NrX3RhYmxlKTsKKworCWN6X3NlbmRfbXNnX3RvX3NtYyhzbXVtZ3IsIFBQ U01DX01TR19DbGtUYWJsZVhmZXJUb1NtdSk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGlu dCBjel9zbXVfaW5pdChzdHJ1Y3QgcHBfc211bWdyICpzbXVtZ3IpCit7CisJc3RydWN0IGN6X3Nt dW1nciAqY3pfc211ID0gKHN0cnVjdCBjel9zbXVtZ3IgKilzbXVtZ3ItPmJhY2tlbmQ7CisJdWlu dDY0X3QgbWNfYWRkciA9IDA7CisJaW50IHJldCA9IDA7CisKKwljel9zbXUtPnRvY19idWZmZXIu ZGF0YV9zaXplID0gNDA5NjsKKwljel9zbXUtPnNtdV9idWZmZXIuZGF0YV9zaXplID0KKwkJQUxJ R04oVUNPREVfSURfUkxDX1NDUkFUQ0hfU0laRV9CWVRFLCAzMikgKworCQlBTElHTihVQ09ERV9J RF9STENfU1JNX0FSQU1fU0laRV9CWVRFLCAzMikgKworCQlBTElHTihVQ09ERV9JRF9STENfU1JN X0RSQU1fU0laRV9CWVRFLCAzMikgKworCQlBTElHTihzaXplb2Yoc3RydWN0IFNNVThfTXVsdGlt ZWRpYVBvd2VyTG9nRGF0YSksIDMyKSArCisJCUFMSUdOKHNpemVvZihzdHJ1Y3QgU01VOF9GdXNp b25fQ2xrVGFibGUpLCAzMik7CisKKwlyZXQgPSBzbXVfYWxsb2NhdGVfbWVtb3J5KHNtdW1nci0+ ZGV2aWNlLAorCQkJCWN6X3NtdS0+dG9jX2J1ZmZlci5kYXRhX3NpemUsCisJCQkJQ0dTX0dQVV9N RU1fVFlQRV9fR0FSVF9DQUNIRUFCTEUsCisJCQkJUEFHRV9TSVpFLAorCQkJCSZtY19hZGRyLAor CQkJCSZjel9zbXUtPnRvY19idWZmZXIua2FkZHIsCisJCQkJJmN6X3NtdS0+dG9jX2J1ZmZlci5o YW5kbGUpOworCWlmIChyZXQgIT0gMCkKKwkJcmV0dXJuIC0xOworCisJY3pfc211LT50b2NfYnVm ZmVyLm1jX2FkZHJfaGlnaCA9IHNtdV91cHBlcl8zMl9iaXRzKG1jX2FkZHIpOworCWN6X3NtdS0+ dG9jX2J1ZmZlci5tY19hZGRyX2xvdyA9IHNtdV9sb3dlcl8zMl9iaXRzKG1jX2FkZHIpOworCisJ cmV0ID0gc211X2FsbG9jYXRlX21lbW9yeShzbXVtZ3ItPmRldmljZSwKKwkJCQljel9zbXUtPnNt dV9idWZmZXIuZGF0YV9zaXplLAorCQkJCUNHU19HUFVfTUVNX1RZUEVfX0dBUlRfQ0FDSEVBQkxF LAorCQkJCVBBR0VfU0laRSwKKwkJCQkmbWNfYWRkciwKKwkJCQkmY3pfc211LT5zbXVfYnVmZmVy LmthZGRyLAorCQkJCSZjel9zbXUtPnNtdV9idWZmZXIuaGFuZGxlKTsKKwlpZiAocmV0ICE9IDAp CisJCXJldHVybiAtMTsKKworCWN6X3NtdS0+c211X2J1ZmZlci5tY19hZGRyX2hpZ2ggPSBzbXVf dXBwZXJfMzJfYml0cyhtY19hZGRyKTsKKwljel9zbXUtPnNtdV9idWZmZXIubWNfYWRkcl9sb3cg PSBzbXVfbG93ZXJfMzJfYml0cyhtY19hZGRyKTsKKworCWN6X3NtdV9wb3B1bGF0ZV9maXJtd2Fy ZV9lbnRyaWVzKHNtdW1ncik7CisJaWYgKDAgIT0gY3pfc211X3BvcHVsYXRlX3NpbmdsZV9zY3Jh dGNoX2VudHJ5KHNtdW1nciwKKwkJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9STENfU0NSQVRD SCwKKwkJVUNPREVfSURfUkxDX1NDUkFUQ0hfU0laRV9CWVRFLAorCQkmY3pfc211LT5zY3JhdGNo X2J1ZmZlcltjel9zbXUtPnNjcmF0Y2hfYnVmZmVyX2xlbmd0aCsrXSkpIHsKKwkJcHJpbnRrKEtF Uk5fRVJSICJbIHBvd2VycGxheSBdIEVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnku XG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKworCWlmICgwICE9IGN6X3NtdV9wb3B1bGF0ZV9zaW5n bGVfc2NyYXRjaF9lbnRyeShzbXVtZ3IsCisJCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxD X1NSTV9BUkFNLAorCQlVQ09ERV9JRF9STENfU1JNX0FSQU1fU0laRV9CWVRFLAorCQkmY3pfc211 LT5zY3JhdGNoX2J1ZmZlcltjel9zbXUtPnNjcmF0Y2hfYnVmZmVyX2xlbmd0aCsrXSkpIHsKKwkJ cHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxheSBdIEVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdh cmUgRW50cnkuXG4iKTsKKwkJcmV0dXJuIC0xOworCX0KKwlpZiAoMCAhPSBjel9zbXVfcG9wdWxh dGVfc2luZ2xlX3NjcmF0Y2hfZW50cnkoc211bWdyLAorCQlDWl9TQ1JBVENIX0VOVFJZX1VDT0RF X0lEX1JMQ19TUk1fRFJBTSwKKwkJVUNPREVfSURfUkxDX1NSTV9EUkFNX1NJWkVfQllURSwKKwkJ JmN6X3NtdS0+c2NyYXRjaF9idWZmZXJbY3pfc211LT5zY3JhdGNoX2J1ZmZlcl9sZW5ndGgrK10p KSB7CisJCXByaW50ayhLRVJOX0VSUiAiWyBwb3dlcnBsYXkgXSBFcnJvciB3aGVuIFBvcHVsYXRl IEZpcm13YXJlIEVudHJ5LlxuIik7CisJCXJldHVybiAtMTsKKwl9CisKKwlpZiAoMCAhPSBjel9z bXVfcG9wdWxhdGVfc2luZ2xlX3NjcmF0Y2hfZW50cnkoc211bWdyLAorCQlDWl9TQ1JBVENIX0VO VFJZX1VDT0RFX0lEX1BPV0VSX1BST0ZJTElORywKKwkJc2l6ZW9mKHN0cnVjdCBTTVU4X011bHRp bWVkaWFQb3dlckxvZ0RhdGEpLAorCQkmY3pfc211LT5zY3JhdGNoX2J1ZmZlcltjel9zbXUtPnNj cmF0Y2hfYnVmZmVyX2xlbmd0aCsrXSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJSICJbIHBvd2VycGxh eSBdIEVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnkuXG4iKTsKKwkJcmV0dXJuIC0x OworCX0KKworCWlmICgwICE9IGN6X3NtdV9wb3B1bGF0ZV9zaW5nbGVfc2NyYXRjaF9lbnRyeShz bXVtZ3IsCisJCUNaX1NDUkFUQ0hfRU5UUllfU01VOF9GVVNJT05fQ0xLVEFCTEUsCisJCXNpemVv ZihzdHJ1Y3QgU01VOF9GdXNpb25fQ2xrVGFibGUpLAorCQkmY3pfc211LT5zY3JhdGNoX2J1ZmZl cltjel9zbXUtPnNjcmF0Y2hfYnVmZmVyX2xlbmd0aCsrXSkpIHsKKwkJcHJpbnRrKEtFUk5fRVJS ICJbIHBvd2VycGxheSBdIEVycm9yIHdoZW4gUG9wdWxhdGUgRmlybXdhcmUgRW50cnkuXG4iKTsK KwkJcmV0dXJuIC0xOworCX0KKwljel9zbXVfY29uc3RydWN0X3RvYyhzbXVtZ3IpOworCisJcmV0 dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgY3pfc211X2Zpbmkoc3RydWN0IHBwX3NtdW1nciAqc211 bWdyKQoreworCXN0cnVjdCBjel9zbXVtZ3IgKmN6X3NtdTsKKworCWlmIChzbXVtZ3IgPT0gTlVM TCB8fCBzbXVtZ3ItPmRldmljZSA9PSBOVUxMKQorCQlyZXR1cm4gLUVJTlZBTDsKKworCWN6X3Nt dSA9IChzdHJ1Y3QgY3pfc211bWdyICopc211bWdyLT5iYWNrZW5kOworCWlmICghY3pfc211KSB7 CisJCWNnc19mcmVlX2dwdV9tZW0oc211bWdyLT5kZXZpY2UsCisJCQkJY3pfc211LT50b2NfYnVm ZmVyLmhhbmRsZSk7CisJCWNnc19mcmVlX2dwdV9tZW0oc211bWdyLT5kZXZpY2UsCisJCQkJY3pf c211LT5zbXVfYnVmZmVyLmhhbmRsZSk7CisJCWtmcmVlKGN6X3NtdSk7CisJCWtmcmVlKHNtdW1n cik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcHBfc211bWdy X2Z1bmMgY3pfc211X2Z1bmNzID0geworCS5zbXVfaW5pdCA9IGN6X3NtdV9pbml0LAorCS5zbXVf ZmluaSA9IGN6X3NtdV9maW5pLAorCS5zdGFydF9zbXUgPSBjel9zdGFydF9zbXUsCisJLmNoZWNr X2Z3X2xvYWRfZmluaXNoID0gY3pfY2hlY2tfZndfbG9hZF9maW5pc2gsCisJLnJlcXVlc3Rfc211 X2xvYWRfZncgPSBOVUxMLAorCS5yZXF1ZXN0X3NtdV9sb2FkX3NwZWNpZmljX2Z3ID0gTlVMTCwK KwkuZ2V0X2FyZ3VtZW50ID0gY3pfc211bV9nZXRfYXJndW1lbnQsCisJLnNlbmRfbXNnX3RvX3Nt YyA9IGN6X3NlbmRfbXNnX3RvX3NtYywKKwkuc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVy ID0gY3pfc2VuZF9tc2dfdG9fc21jX3dpdGhfcGFyYW1ldGVyLAorCS5kb3dubG9hZF9wcHRhYmxl X3NldHRpbmdzID0gY3pfZG93bmxvYWRfcHB0YWJsZV9zZXR0aW5ncywKKwkudXBsb2FkX3BwdGFi bGVfc2V0dGluZ3MgPSBjel91cGxvYWRfcHB0YWJsZV9zZXR0aW5ncywKK307CisKK2ludCBjel9z bXVtX2luaXQoc3RydWN0IHBwX3NtdW1nciAqc211bWdyKQoreworCXN0cnVjdCBjel9zbXVtZ3Ig KmN6X3NtdTsKKworCWN6X3NtdSA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBjel9zbXVtZ3IpLCBH RlBfS0VSTkVMKTsKKwlpZiAoY3pfc211ID09IE5VTEwpCisJCXJldHVybiAtRU5PTUVNOworCisJ c211bWdyLT5iYWNrZW5kID0gY3pfc211OworCXNtdW1nci0+c211bWdyX2Z1bmNzID0gJmN6X3Nt dV9mdW5jczsKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQv cG93ZXJwbGF5L3NtdW1nci9jel9zbXVtZ3IuaCBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJw bGF5L3NtdW1nci9jel9zbXVtZ3IuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li44ODM4MTgwCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvc211bWdyL2N6X3NtdW1nci5oCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0 IDIwMTUgQWR2YW5jZWQgTWljcm8gRGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMg aGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBh CisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91 dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0 cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1Ymxp Y2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVy bWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBz bywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3Zl IGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5j bHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNv ZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAq IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJ TiBOTyBFVkVOVCBTSEFMTAorICogVEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMp IEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAq IEFSSVNJTkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUgorICogT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICoKKyAq LworI2lmbmRlZiBfQ1pfU01VTUdSX0hfCisjZGVmaW5lIF9DWl9TTVVNR1JfSF8KKworCisjZGVm aW5lIE1BWF9OVU1fRklSTVdBUkUgICAgICAgICAgICAgICAgICAgICAgICA4CisjZGVmaW5lIE1B WF9OVU1fU0NSQVRDSCAgICAgICAgICAgICAgICAgICAgICAgICAxMQorI2RlZmluZSBDWl9TQ1JB VENIX1NJWkVfTk9OR0ZYX0NMT0NLR0FUSU5HICAgICAgMTAyNAorI2RlZmluZSBDWl9TQ1JBVENI X1NJWkVfTk9OR0ZYX0dPTERFTlNFVFRJTkcgICAgMjA0OAorI2RlZmluZSBDWl9TQ1JBVENIX1NJ WkVfU0RNQV9NRVRBREFUQSAgICAgICAgICAgMTAyNAorI2RlZmluZSBDWl9TQ1JBVENIX1NJWkVf SUggICAgICAgICAgICAgICAgICAgICAgKCgyKjI1NisxKSo0KQorCitlbnVtIGN6X3NjcmF0Y2hf ZW50cnkgeworCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfU0RNQTAgPSAwLAorCUNaX1NDUkFU Q0hfRU5UUllfVUNPREVfSURfU0RNQTEsCisJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9DUF9D RSwKKwlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX1BGUCwKKwlDWl9TQ1JBVENIX0VOVFJZ X1VDT0RFX0lEX0NQX01FLAorCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfQ1BfTUVDX0pUMSwK KwlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0NQX01FQ19KVDIsCisJQ1pfU0NSQVRDSF9FTlRS WV9VQ09ERV9JRF9HTUNPTl9SRU5HLAorCUNaX1NDUkFUQ0hfRU5UUllfVUNPREVfSURfUkxDX0cs CisJQ1pfU0NSQVRDSF9FTlRSWV9VQ09ERV9JRF9STENfU0NSQVRDSCwKKwlDWl9TQ1JBVENIX0VO VFJZX1VDT0RFX0lEX1JMQ19TUk1fQVJBTSwKKwlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX1JM Q19TUk1fRFJBTSwKKwlDWl9TQ1JBVENIX0VOVFJZX1VDT0RFX0lEX0RNQ1VfRVJBTSwKKwlDWl9T Q1JBVENIX0VOVFJZX1VDT0RFX0lEX0RNQ1VfSVJBTSwKKwlDWl9TQ1JBVENIX0VOVFJZX1VDT0RF X0lEX1BPV0VSX1BST0ZJTElORywKKwlDWl9TQ1JBVENIX0VOVFJZX0RBVEFfSURfU0RNQV9IQUxU LAorCUNaX1NDUkFUQ0hfRU5UUllfREFUQV9JRF9TWVNfQ0xPQ0tHQVRJTkcsCisJQ1pfU0NSQVRD SF9FTlRSWV9EQVRBX0lEX1NETUFfUklOR19SRUdTLAorCUNaX1NDUkFUQ0hfRU5UUllfREFUQV9J RF9OT05HRlhfUkVJTklULAorCUNaX1NDUkFUQ0hfRU5UUllfREFUQV9JRF9TRE1BX1NUQVJULAor CUNaX1NDUkFUQ0hfRU5UUllfREFUQV9JRF9JSF9SRUdJU1RFUlMsCisJQ1pfU0NSQVRDSF9FTlRS WV9TTVU4X0ZVU0lPTl9DTEtUQUJMRQorfTsKKworc3RydWN0IGN6X2J1ZmZlcl9lbnRyeSB7CisJ dWludDMyX3QgZGF0YV9zaXplOworCXVpbnQzMl90IG1jX2FkZHJfbG93OworCXVpbnQzMl90IG1j X2FkZHJfaGlnaDsKKwl2b2lkICprYWRkcjsKKwllbnVtIGN6X3NjcmF0Y2hfZW50cnkgZmlybXdh cmVfSUQ7CisJdW5zaWduZWQgbG9uZyBoYW5kbGU7IC8qIGFzIGJvIGhhbmRsZSB1c2VkIHdoZW4g cmVsZWFzZSBibyAqLworfTsKKworc3RydWN0IGN6X3JlZ2lzdGVyX2luZGV4X2RhdGFfcGFpciB7 CisJdWludDMyX3Qgb2Zmc2V0OworCXVpbnQzMl90IHZhbHVlOworfTsKKworc3RydWN0IGN6X2lo X21ldGFfZGF0YSB7CisJdWludDMyX3QgY29tbWFuZDsKKwlzdHJ1Y3QgY3pfcmVnaXN0ZXJfaW5k ZXhfZGF0YV9wYWlyIHJlZ2lzdGVyX2luZGV4X3ZhbHVlX3BhaXJbMV07Cit9OworCitzdHJ1Y3Qg Y3pfc211bWdyIHsKKwl1aW50OF90IGRyaXZlcl9idWZmZXJfbGVuZ3RoOworCXVpbnQ4X3Qgc2Ny YXRjaF9idWZmZXJfbGVuZ3RoOworCXVpbnQxNl90IHRvY19lbnRyeV91c2VkX2NvdW50OworCXVp bnQxNl90IHRvY19lbnRyeV9pbml0aWFsaXplX2luZGV4OworCXVpbnQxNl90IHRvY19lbnRyeV9w b3dlcl9wcm9maWxpbmdfaW5kZXg7CisJdWludDE2X3QgdG9jX2VudHJ5X2FyYW07CisJdWludDE2 X3QgdG9jX2VudHJ5X2loX3JlZ2lzdGVyX3Jlc3RvcmVfdGFza19pbmRleDsKKwl1aW50MTZfdCB0 b2NfZW50cnlfY2xvY2tfdGFibGU7CisJdWludDE2X3QgaWhfcmVnaXN0ZXJfcmVzdG9yZV90YXNr X3NpemU7CisJdWludDE2X3Qgc211X2J1ZmZlcl91c2VkX2J5dGVzOworCisJc3RydWN0IGN6X2J1 ZmZlcl9lbnRyeSB0b2NfYnVmZmVyOworCXN0cnVjdCBjel9idWZmZXJfZW50cnkgc211X2J1ZmZl cjsKKwlzdHJ1Y3QgY3pfYnVmZmVyX2VudHJ5IGZpcm13YXJlX2J1ZmZlcjsKKwlzdHJ1Y3QgY3pf YnVmZmVyX2VudHJ5IGRyaXZlcl9idWZmZXJbTUFYX05VTV9GSVJNV0FSRV07CisJc3RydWN0IGN6 X2J1ZmZlcl9lbnRyeSBtZXRhX2RhdGFfYnVmZmVyW01BWF9OVU1fRklSTVdBUkVdOworCXN0cnVj dCBjel9idWZmZXJfZW50cnkgc2NyYXRjaF9idWZmZXJbTUFYX05VTV9TQ1JBVENIXTsKK307CisK K3N0cnVjdCBwcF9zbXVtZ3I7CisKK2V4dGVybiBpbnQgY3pfc211bV9pbml0KHN0cnVjdCBwcF9z bXVtZ3IgKnNtdW1ncik7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9wb3dlcnBsYXkvc211bWdyL3NtdW1nci5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9wb3dlcnBs YXkvc211bWdyL3NtdW1nci5jCmluZGV4IDFhMTE3MTQuLjlmZjVkMzMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvcG93ZXJwbGF5L3NtdW1nci9zbXVtZ3IuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vYW1kL3Bvd2VycGxheS9zbXVtZ3Ivc211bWdyLmMKQEAgLTI3LDYgKzI3LDcgQEAK ICNpbmNsdWRlICJzbXVtZ3IuaCIKICNpbmNsdWRlICJjZ3NfY29tbW9uLmgiCiAjaW5jbHVkZSAi bGludXgvZGVsYXkuaCIKKyNpbmNsdWRlICJjel9zbXVtZ3IuaCIKIAogaW50IHNtdW1faW5pdChz dHJ1Y3QgYW1kX3BwX2luaXQgKnBwX2luaXQsIHN0cnVjdCBwcF9pbnN0YW5jZSAqaGFuZGxlKQog ewpAQCAtNDksNyArNTAsNyBAQCBpbnQgc211bV9pbml0KHN0cnVjdCBhbWRfcHBfaW5pdCAqcHBf aW5pdCwgc3RydWN0IHBwX2luc3RhbmNlICpoYW5kbGUpCiAKIAlzd2l0Y2ggKHNtdW1nci0+Y2hp cF9mYW1pbHkpIHsKIAljYXNlIEFNRF9GQU1JTFlfQ1o6Ci0JCS8qIFRPRE8gKi8KKwkJY3pfc211 bV9pbml0KHNtdW1ncik7CiAJCWJyZWFrOwogCWNhc2UgQU1EX0ZBTUlMWV9WSToKIAkJLyogVE9E TyAqLwotLSAKMS44LjMuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK