From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oded Gabbay Subject: [PATCH 04/13] drm/amdgpu: Add amdgpu <--> amdkfd gfx8 interface Date: Fri, 12 Jun 2015 22:31:12 +0300 Message-ID: <1434137481-13315-5-git-send-email-oded.gabbay@gmail.com> References: <1434137481-13315-1-git-send-email-oded.gabbay@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by gabe.freedesktop.org (Postfix) with ESMTP id 7C68D6E450 for ; Fri, 12 Jun 2015 12:31:31 -0700 (PDT) Received: by wifx6 with SMTP id x6so25341025wif.0 for ; Fri, 12 Jun 2015 12:31:31 -0700 (PDT) In-Reply-To: <1434137481-13315-1-git-send-email-oded.gabbay@gmail.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, alexdeucher@gmail.com List-Id: dri-devel@lists.freedesktop.org RnJvbTogQmVuIEdveiA8YmVuLmdvekBhbWQuY29tPgoKVGhpcyBwYXRjaCBhZGRzIHRoZSBnZng4 IGludGVyZmFjZSBmaWxlIGJldHdlZW4gYW1kZ3B1IGFuZCBhbWRrZmQuIFRoaXMKaW50ZXJmYWNl IGZpbGUgaXMgY3VycmVudGx5IGluIHVzZSB3aGVuIHJ1bm5pbmcgb24gYSBDYXJyaXpvLWJhc2Vk CnN5c3RlbS4KClRoZSBpbnRlcmZhY2UgaXRzZWxmIGlzIHJlcHJlc2VudGVkIGJ5IGEgcG9pbnRl ciB0byBzdHJ1Y3QKa2ZkX2Rldi4gVGhlIHBvaW50ZXIgaXMgbG9jYXRlZCBpbnNpZGUgYW1kZ3B1 X2RldmljZSBzdHJ1Y3R1cmUuCgpBbGwgdGhlIHJlZ2lzdGVyIGFjY2Vzc2VzIHRoYXQgYW1ka2Zk IG5lZWQgYXJlIGRvbmUgdXNpbmcgdGhpcwppbnRlcmZhY2UuIFRoaXMgYWxsb3dzIHVzIHRvIGF2 b2lkIGRpcmVjdCByZWdpc3RlciBhY2Nlc3NlcyBpbgphbWRrZmQgcHJvcGVyLCB3aGlsZSBhbHNv IGFsbG93cyB1cyB0byBhdm9pZCBsb2NraW5nIGJldHdlZW4KYW1ka2ZkIGFuZCBhbWRncHUuCgpU aGUgc2luZ2xlIGV4Y2VwdGlvbiBpcyB0aGUgZG9vcmJlbGxzIHRoYXQgYXJlIHVzZWQgaW4gYm90 aCBvZgp0aGUgZHJpdmVycy4gSG93ZXZlciwgYmVjYXVzZSB0aGV5IGFyZSBsb2NhdGVkIGluIHNl cGFyYXRlIHBjaQpiYXIgcGFnZXMsIHRoZSBkYW5nZXIgb2Ygc2hhcmluZyByZWdpc3RlcnMgYmV0 d2VlbiB0aGUgZHJpdmVycwppcyBtaW5pbWFsLgoKSGF2aW5nIHNhaWQgdGhhdCwgd2UgYXJlIHBs YW5uaW5nIHRvIG1vdmUgdGhlIGRvb3JiZWxscyBhcyB3ZWxsCnRvIGFtZGdwdS4KClNpZ25lZC1v ZmYtYnk6IEJlbiBHb3ogPGJlbi5nb3pAYW1kLmNvbT4KU2lnbmVkLW9mZi1ieTogT2RlZCBHYWJi YXkgPG9kZWQuZ2FiYmF5QGdtYWlsLmNvbT4KLS0tCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1k Z3B1L01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmQuYyAgICAgICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jIHwgNTQzICsrKysrKysrKysrKysrKysr KysrKysKIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpZC5oICAgICAgICAgICAgICAgICAg fCAgIDUgKwogZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3ZpX3N0cnVjdHMuaCAgICAgICAg ICB8IDQxNyArKysrKysrKysrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCA5NzMgaW5zZXJ0aW9u cygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9h bWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4X3Y4LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvdmlfc3RydWN0cy5oCgpkaWZmIC0tZ2l0IGEvTUFJTlRB SU5FUlMgYi9NQUlOVEFJTkVSUwppbmRleCAzMjRiYzJkLi4zOTBiMjJiIDEwMDY0NAotLS0gYS9N QUlOVEFJTkVSUworKysgYi9NQUlOVEFJTkVSUwpAQCAtNjM4LDkgKzYzOCwxMSBAQCBTOglTdXBw b3J0ZWQKIEY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwogRjoJ ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oCiBGOglkcml2ZXJzL2dw dS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92Ny5jCitGOglkcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5jCiBGOglkcml2ZXJzL2dwdS9kcm0v YW1kL2FtZGtmZC8KIEY6CWRyaXZlcnMvZ3B1L2RybS9hbWQvaW5jbHVkZS9jaWtfc3RydWN0cy5o CiBGOglkcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUva2dkX2tmZF9pbnRlcmZhY2UuaAorRjoJ ZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3ZpX3N0cnVjdHMuaAogRjoJZHJpdmVycy9ncHUv ZHJtL3JhZGVvbi9yYWRlb25fa2ZkLmMKIEY6CWRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9u X2tmZC5oCiBGOglpbmNsdWRlL3VhcGkvbGludXgva2ZkX2lvY3RsLmgKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvTWFrZWZpbGUKaW5kZXggYWY1Mzk3Yy4uOTA4MzYwNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9h bWRncHUvTWFrZWZpbGUKQEAgLTc0LDcgKzc0LDggQEAgYW1kZ3B1LXkgKz0gXAogIyBhZGQgYW1k a2ZkIGludGVyZmFjZXMKIGFtZGdwdS15ICs9IFwKIAkgYW1kZ3B1X2FtZGtmZC5vIFwKLQkgYW1k Z3B1X2FtZGtmZF9nZnhfdjcubworCSBhbWRncHVfYW1ka2ZkX2dmeF92Ny5vIFwKKwkgYW1kZ3B1 X2FtZGtmZF9nZnhfdjgubwogCiBhbWRncHUtJChDT05GSUdfQ09NUEFUKSArPSBhbWRncHVfaW9j MzIubwogYW1kZ3B1LSQoQ09ORklHX1ZHQV9TV0lUQ0hFUk9PKSArPSBhbWRncHVfYXRweF9oYW5k bGVyLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRr ZmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuYwppbmRleCA3 YWE1YWIwLi5iYzc2M2UwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9h bWRncHVfYW1ka2ZkLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Ft ZGtmZC5jCkBAIC01Myw2ICs1Myw5IEBAIGJvb2wgYW1kZ3B1X2FtZGtmZF9sb2FkX2ludGVyZmFj ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqcmRldikKIAljYXNlIENISVBfS0FWRVJJOgogCQlrZmQy a2dkID0gYW1kZ3B1X2FtZGtmZF9nZnhfN19nZXRfZnVuY3Rpb25zKCk7CiAJCWJyZWFrOworCWNh c2UgQ0hJUF9DQVJSSVpPOgorCQlrZmQya2dkID0gYW1kZ3B1X2FtZGtmZF9nZnhfOF8wX2dldF9m dW5jdGlvbnMoKTsKKwkJYnJlYWs7CiAJZGVmYXVsdDoKIAkJcmV0dXJuIGZhbHNlOwogCX0KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaCBiL2Ry aXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmQuaAppbmRleCBjODEyNDJlLi5h OGJlNzY1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1k a2ZkLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZC5oCkBA IC01MCw2ICs1MCw3IEBAIHZvaWQgYW1kZ3B1X2FtZGtmZF9kZXZpY2VfaW5pdChzdHJ1Y3QgYW1k Z3B1X2RldmljZSAqcmRldik7CiB2b2lkIGFtZGdwdV9hbWRrZmRfZGV2aWNlX2Zpbmkoc3RydWN0 IGFtZGdwdV9kZXZpY2UgKnJkZXYpOwogCiBzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2Ft ZGtmZF9nZnhfN19nZXRfZnVuY3Rpb25zKHZvaWQpOworc3RydWN0IGtmZDJrZ2RfY2FsbHMgKmFt ZGdwdV9hbWRrZmRfZ2Z4XzhfMF9nZXRfZnVuY3Rpb25zKHZvaWQpOwogCiAvKiBTaGFyZWQgQVBJ ICovCiBpbnQgYWxsb2NfZ3R0X21lbShzdHJ1Y3Qga2dkX2RldiAqa2dkLCBzaXplX3Qgc2l6ZSwK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ2Z4 X3Y4LmMgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRmZDFkNTAKLS0tIC9kZXYvbnVs bAorKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dmeF92OC5j CkBAIC0wLDAgKzEsNTQzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTQgQWR2YW5jZWQgTWljcm8g RGV2aWNlcywgSW5jLgorICoKKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUg b2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29m dHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIp LAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVk aW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlm eSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2Vs bCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0 aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9s bG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5k IHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3Bp ZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5E LCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAorICog VEhFIENPUFlSSUdIVCBIT0xERVIoUykgT1IgQVVUSE9SKFMpIEJFIExJQUJMRSBGT1IgQU5ZIENM QUlNLCBEQU1BR0VTIE9SCisgKiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9O IE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwKKyAqIEFSSVNJTkcgRlJPTSwgT1VUIE9G IE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUgorICogT1RI RVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgorICovCisKKyNpbmNsdWRlIDxsaW51eC9tb2R1 bGUuaD4KKyNpbmNsdWRlIDxsaW51eC9mZHRhYmxlLmg+CisjaW5jbHVkZSA8bGludXgvdWFjY2Vz cy5oPgorI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+CisjaW5jbHVkZSA8ZHJtL2RybVAuaD4K KyNpbmNsdWRlICJhbWRncHUuaCIKKyNpbmNsdWRlICJhbWRncHVfYW1ka2ZkLmgiCisjaW5jbHVk ZSAiYW1kZ3B1X3Vjb2RlLmgiCisjaW5jbHVkZSAiZ2NhL2dmeF84XzBfc2hfbWFzay5oIgorI2lu Y2x1ZGUgImdjYS9nZnhfOF8wX2QuaCIKKyNpbmNsdWRlICJnY2EvZ2Z4XzhfMF9lbnVtLmgiCisj aW5jbHVkZSAib3NzL29zc18zXzBfc2hfbWFzay5oIgorI2luY2x1ZGUgIm9zcy9vc3NfM18wX2Qu aCIKKyNpbmNsdWRlICJnbWMvZ21jXzhfMV9zaF9tYXNrLmgiCisjaW5jbHVkZSAiZ21jL2dtY184 XzFfZC5oIgorI2luY2x1ZGUgInZpX3N0cnVjdHMuaCIKKyNpbmNsdWRlICJ2aWQuaCIKKworI2Rl ZmluZSBWSV9QSVBFX1BFUl9NRUMJKDQpCisKK3N0cnVjdCBjaWtfc2RtYV9ybGNfcmVnaXN0ZXJz OworCisvKgorICogUmVnaXN0ZXIgYWNjZXNzIGZ1bmN0aW9ucworICovCisKK3N0YXRpYyB2b2lk IGtnZF9wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyhzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJf dCB2bWlkLAorCQl1aW50MzJfdCBzaF9tZW1fY29uZmlnLAorCQl1aW50MzJfdCBzaF9tZW1fYXBl MV9iYXNlLCB1aW50MzJfdCBzaF9tZW1fYXBlMV9saW1pdCwKKwkJdWludDMyX3Qgc2hfbWVtX2Jh c2VzKTsKK3N0YXRpYyBpbnQga2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmcoc3RydWN0IGtnZF9k ZXYgKmtnZCwgdW5zaWduZWQgaW50IHBhc2lkLAorCQl1bnNpZ25lZCBpbnQgdm1pZCk7CitzdGF0 aWMgaW50IGtnZF9pbml0X3BpcGVsaW5lKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHBp cGVfaWQsCisJCXVpbnQzMl90IGhwZF9zaXplLCB1aW50NjRfdCBocGRfZ3B1X2FkZHIpOworc3Rh dGljIGludCBrZ2RfaW5pdF9pbnRlcnJ1cHRzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90 IHBpcGVfaWQpOworc3RhdGljIGludCBrZ2RfaHFkX2xvYWQoc3RydWN0IGtnZF9kZXYgKmtnZCwg dm9pZCAqbXFkLCB1aW50MzJfdCBwaXBlX2lkLAorCQl1aW50MzJfdCBxdWV1ZV9pZCwgdWludDMy X3QgX191c2VyICp3cHRyKTsKK3N0YXRpYyBpbnQga2dkX2hxZF9zZG1hX2xvYWQoc3RydWN0IGtn ZF9kZXYgKmtnZCwgdm9pZCAqbXFkKTsKK3N0YXRpYyBib29sIGtnZF9ocWRfaXNfb2NjdXBpZWQo c3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDY0X3QgcXVldWVfYWRkcmVzcywKKwkJdWludDMyX3Qg cGlwZV9pZCwgdWludDMyX3QgcXVldWVfaWQpOworc3RhdGljIGJvb2wga2dkX2hxZF9zZG1hX2lz X29jY3VwaWVkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCk7CitzdGF0aWMgaW50IGtn ZF9ocWRfZGVzdHJveShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCByZXNldF90eXBlLAor CQkJCXVuc2lnbmVkIGludCB0aW1lb3V0LCB1aW50MzJfdCBwaXBlX2lkLAorCQkJCXVpbnQzMl90 IHF1ZXVlX2lkKTsKK3N0YXRpYyBpbnQga2dkX2hxZF9zZG1hX2Rlc3Ryb3koc3RydWN0IGtnZF9k ZXYgKmtnZCwgdm9pZCAqbXFkLAorCQkJCXVuc2lnbmVkIGludCB0aW1lb3V0KTsKK3N0YXRpYyB2 b2lkIHdyaXRlX3ZtaWRfaW52YWxpZGF0ZV9yZXF1ZXN0KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVp bnQ4X3Qgdm1pZCk7CitzdGF0aWMgaW50IGtnZF9hZGRyZXNzX3dhdGNoX2Rpc2FibGUoc3RydWN0 IGtnZF9kZXYgKmtnZCk7CitzdGF0aWMgaW50IGtnZF9hZGRyZXNzX3dhdGNoX2V4ZWN1dGUoc3Ry dWN0IGtnZF9kZXYgKmtnZCwKKwkJCQkJdW5zaWduZWQgaW50IHdhdGNoX3BvaW50X2lkLAorCQkJ CQl1aW50MzJfdCBjbnRsX3ZhbCwKKwkJCQkJdWludDMyX3QgYWRkcl9oaSwKKwkJCQkJdWludDMy X3QgYWRkcl9sbyk7CitzdGF0aWMgaW50IGtnZF93YXZlX2NvbnRyb2xfZXhlY3V0ZShzdHJ1Y3Qg a2dkX2RldiAqa2dkLAorCQkJCQl1aW50MzJfdCBnZnhfaW5kZXhfdmFsLAorCQkJCQl1aW50MzJf dCBzcV9jbWQpOworc3RhdGljIHVpbnQzMl90IGtnZF9hZGRyZXNzX3dhdGNoX2dldF9vZmZzZXQo c3RydWN0IGtnZF9kZXYgKmtnZCwKKwkJCQkJdW5zaWduZWQgaW50IHdhdGNoX3BvaW50X2lkLAor CQkJCQl1bnNpZ25lZCBpbnQgcmVnX29mZnNldCk7CisKK3N0YXRpYyBib29sIGdldF9hdGNfdm1p ZF9wYXNpZF9tYXBwaW5nX3ZhbGlkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsCisJCXVpbnQ4X3Qgdm1p ZCk7CitzdGF0aWMgdWludDE2X3QgZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQoc3Ry dWN0IGtnZF9kZXYgKmtnZCwKKwkJdWludDhfdCB2bWlkKTsKK3N0YXRpYyB2b2lkIHdyaXRlX3Zt aWRfaW52YWxpZGF0ZV9yZXF1ZXN0KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQ4X3Qgdm1pZCk7 CitzdGF0aWMgdWludDE2X3QgZ2V0X2Z3X3ZlcnNpb24oc3RydWN0IGtnZF9kZXYgKmtnZCwgZW51 bSBrZ2RfZW5naW5lX3R5cGUgdHlwZSk7CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qga2ZkMmtnZF9j YWxscyBrZmQya2dkID0geworCS5pbml0X2d0dF9tZW1fYWxsb2NhdGlvbiA9IGFsbG9jX2d0dF9t ZW0sCisJLmZyZWVfZ3R0X21lbSA9IGZyZWVfZ3R0X21lbSwKKwkuZ2V0X3ZtZW1fc2l6ZSA9IGdl dF92bWVtX3NpemUsCisJLmdldF9ncHVfY2xvY2tfY291bnRlciA9IGdldF9ncHVfY2xvY2tfY291 bnRlciwKKwkuZ2V0X21heF9lbmdpbmVfY2xvY2tfaW5fbWh6ID0gZ2V0X21heF9lbmdpbmVfY2xv Y2tfaW5fbWh6LAorCS5wcm9ncmFtX3NoX21lbV9zZXR0aW5ncyA9IGtnZF9wcm9ncmFtX3NoX21l bV9zZXR0aW5ncywKKwkuc2V0X3Bhc2lkX3ZtaWRfbWFwcGluZyA9IGtnZF9zZXRfcGFzaWRfdm1p ZF9tYXBwaW5nLAorCS5pbml0X3BpcGVsaW5lID0ga2dkX2luaXRfcGlwZWxpbmUsCisJLmluaXRf aW50ZXJydXB0cyA9IGtnZF9pbml0X2ludGVycnVwdHMsCisJLmhxZF9sb2FkID0ga2dkX2hxZF9s b2FkLAorCS5ocWRfc2RtYV9sb2FkID0ga2dkX2hxZF9zZG1hX2xvYWQsCisJLmhxZF9pc19vY2N1 cGllZCA9IGtnZF9ocWRfaXNfb2NjdXBpZWQsCisJLmhxZF9zZG1hX2lzX29jY3VwaWVkID0ga2dk X2hxZF9zZG1hX2lzX29jY3VwaWVkLAorCS5ocWRfZGVzdHJveSA9IGtnZF9ocWRfZGVzdHJveSwK KwkuaHFkX3NkbWFfZGVzdHJveSA9IGtnZF9ocWRfc2RtYV9kZXN0cm95LAorCS5hZGRyZXNzX3dh dGNoX2Rpc2FibGUgPSBrZ2RfYWRkcmVzc193YXRjaF9kaXNhYmxlLAorCS5hZGRyZXNzX3dhdGNo X2V4ZWN1dGUgPSBrZ2RfYWRkcmVzc193YXRjaF9leGVjdXRlLAorCS53YXZlX2NvbnRyb2xfZXhl Y3V0ZSA9IGtnZF93YXZlX2NvbnRyb2xfZXhlY3V0ZSwKKwkuYWRkcmVzc193YXRjaF9nZXRfb2Zm c2V0ID0ga2dkX2FkZHJlc3Nfd2F0Y2hfZ2V0X29mZnNldCwKKwkuZ2V0X2F0Y192bWlkX3Bhc2lk X21hcHBpbmdfcGFzaWQgPQorCQkJZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQsCisJ LmdldF9hdGNfdm1pZF9wYXNpZF9tYXBwaW5nX3ZhbGlkID0KKwkJCWdldF9hdGNfdm1pZF9wYXNp ZF9tYXBwaW5nX3ZhbGlkLAorCS53cml0ZV92bWlkX2ludmFsaWRhdGVfcmVxdWVzdCA9IHdyaXRl X3ZtaWRfaW52YWxpZGF0ZV9yZXF1ZXN0LAorCS5nZXRfZndfdmVyc2lvbiA9IGdldF9md192ZXJz aW9uCit9OworCitzdHJ1Y3Qga2ZkMmtnZF9jYWxscyAqYW1kZ3B1X2FtZGtmZF9nZnhfOF8wX2dl dF9mdW5jdGlvbnMoKQoreworCXJldHVybiAoc3RydWN0IGtmZDJrZ2RfY2FsbHMgKikma2ZkMmtn ZDsKK30KKworc3RhdGljIGlubGluZSBzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqZ2V0X2FtZGdwdV9k ZXZpY2Uoc3RydWN0IGtnZF9kZXYgKmtnZCkKK3sKKwlyZXR1cm4gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopa2dkOworfQorCitzdGF0aWMgdm9pZCBsb2NrX3NyYm0oc3RydWN0IGtnZF9kZXYgKmtn ZCwgdWludDMyX3QgbWVjLCB1aW50MzJfdCBwaXBlLAorCQkJdWludDMyX3QgcXVldWUsIHVpbnQz Ml90IHZtaWQpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2Rl dmljZShrZ2QpOworCXVpbnQzMl90IHZhbHVlID0gUElQRUlEKHBpcGUpIHwgTUVJRChtZWMpIHwg Vk1JRCh2bWlkKSB8IFFVRVVFSUQocXVldWUpOworCisJbXV0ZXhfbG9jaygmYWRldi0+c3JibV9t dXRleCk7CisJV1JFRzMyKG1tU1JCTV9HRlhfQ05UTCwgdmFsdWUpOworfQorCitzdGF0aWMgdm9p ZCB1bmxvY2tfc3JibShzdHJ1Y3Qga2dkX2RldiAqa2dkKQoreworCXN0cnVjdCBhbWRncHVfZGV2 aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKKworCVdSRUczMihtbVNSQk1fR0ZY X0NOVEwsIDApOworCW11dGV4X3VubG9jaygmYWRldi0+c3JibV9tdXRleCk7Cit9CisKK3N0YXRp YyB2b2lkIGFjcXVpcmVfcXVldWUoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDMyX3QgcGlwZV9p ZCwKKwkJCQl1aW50MzJfdCBxdWV1ZV9pZCkKK3sKKwl1aW50MzJfdCBtZWMgPSAoKytwaXBlX2lk IC8gVklfUElQRV9QRVJfTUVDKSArIDE7CisJdWludDMyX3QgcGlwZSA9IChwaXBlX2lkICUgVklf UElQRV9QRVJfTUVDKTsKKworCWxvY2tfc3JibShrZ2QsIG1lYywgcGlwZSwgcXVldWVfaWQsIDAp OworfQorCitzdGF0aWMgdm9pZCByZWxlYXNlX3F1ZXVlKHN0cnVjdCBrZ2RfZGV2ICprZ2QpCit7 CisJdW5sb2NrX3NyYm0oa2dkKTsKK30KKworc3RhdGljIHZvaWQga2dkX3Byb2dyYW1fc2hfbWVt X3NldHRpbmdzKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHZtaWQsCisJCQkJCXVpbnQz Ml90IHNoX21lbV9jb25maWcsCisJCQkJCXVpbnQzMl90IHNoX21lbV9hcGUxX2Jhc2UsCisJCQkJ CXVpbnQzMl90IHNoX21lbV9hcGUxX2xpbWl0LAorCQkJCQl1aW50MzJfdCBzaF9tZW1fYmFzZXMp Cit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2Qp OworCisJbG9ja19zcmJtKGtnZCwgMCwgMCwgMCwgdm1pZCk7CisKKwlXUkVHMzIobW1TSF9NRU1f Q09ORklHLCBzaF9tZW1fY29uZmlnKTsKKwlXUkVHMzIobW1TSF9NRU1fQVBFMV9CQVNFLCBzaF9t ZW1fYXBlMV9iYXNlKTsKKwlXUkVHMzIobW1TSF9NRU1fQVBFMV9MSU1JVCwgc2hfbWVtX2FwZTFf bGltaXQpOworCVdSRUczMihtbVNIX01FTV9CQVNFUywgc2hfbWVtX2Jhc2VzKTsKKworCXVubG9j a19zcmJtKGtnZCk7Cit9CisKK3N0YXRpYyBpbnQga2dkX3NldF9wYXNpZF92bWlkX21hcHBpbmco c3RydWN0IGtnZF9kZXYgKmtnZCwgdW5zaWduZWQgaW50IHBhc2lkLAorCQkJCQl1bnNpZ25lZCBp bnQgdm1pZCkKK3sKKwlzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiA9IGdldF9hbWRncHVfZGV2 aWNlKGtnZCk7CisKKwkvKgorCSAqIFdlIGhhdmUgdG8gYXNzdW1lIHRoYXQgdGhlcmUgaXMgbm8g b3V0c3RhbmRpbmcgbWFwcGluZy4KKwkgKiBUaGUgQVRDX1ZNSURfUEFTSURfTUFQUElOR19VUERB VEVfU1RBVFVTIGJpdCBjb3VsZCBiZSAwIGJlY2F1c2UKKwkgKiBhIG1hcHBpbmcgaXMgaW4gcHJv Z3Jlc3Mgb3IgYmVjYXVzZSBhIG1hcHBpbmcgZmluaXNoZWQKKwkgKiBhbmQgdGhlIFNXIGNsZWFy ZWQgaXQuCisJICogU28gdGhlIHByb3RvY29sIGlzIHRvIGFsd2F5cyB3YWl0ICYgY2xlYXIuCisJ ICovCisJdWludDMyX3QgcGFzaWRfbWFwcGluZyA9IChwYXNpZCA9PSAwKSA/IDAgOiAodWludDMy X3QpcGFzaWQgfAorCQkJQVRDX1ZNSUQwX1BBU0lEX01BUFBJTkdfX1ZBTElEX01BU0s7CisKKwlX UkVHMzIobW1BVENfVk1JRDBfUEFTSURfTUFQUElORyArIHZtaWQsIHBhc2lkX21hcHBpbmcpOwor CisJd2hpbGUgKCEoUlJFRzMyKG1tQVRDX1ZNSURfUEFTSURfTUFQUElOR19VUERBVEVfU1RBVFVT KSAmICgxVSA8PCB2bWlkKSkpCisJCWNwdV9yZWxheCgpOworCVdSRUczMihtbUFUQ19WTUlEX1BB U0lEX01BUFBJTkdfVVBEQVRFX1NUQVRVUywgMVUgPDwgdm1pZCk7CisKKwkvKiBNYXBwaW5nIHZt aWQgdG8gcGFzaWQgYWxzbyBmb3IgSUggYmxvY2sgKi8KKwlXUkVHMzIobW1JSF9WTUlEXzBfTFVU ICsgdm1pZCwgcGFzaWRfbWFwcGluZyk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBr Z2RfaW5pdF9waXBlbGluZShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB1aW50MzJfdCBwaXBlX2lkLAor CQkJCXVpbnQzMl90IGhwZF9zaXplLCB1aW50NjRfdCBocGRfZ3B1X2FkZHIpCit7CisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQga2dkX2luaXRfaW50ZXJydXB0cyhzdHJ1Y3Qga2dkX2RldiAq a2dkLCB1aW50MzJfdCBwaXBlX2lkKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0g Z2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKKwl1aW50MzJfdCBtZWM7CisJdWludDMyX3QgcGlwZTsK KworCW1lYyA9ICgrK3BpcGVfaWQgLyBWSV9QSVBFX1BFUl9NRUMpICsgMTsKKwlwaXBlID0gKHBp cGVfaWQgJSBWSV9QSVBFX1BFUl9NRUMpOworCisJbG9ja19zcmJtKGtnZCwgbWVjLCBwaXBlLCAw LCAwKTsKKworCVdSRUczMihtbUNQQ19JTlRfQ05UTCwgQ1BfSU5UX0NOVExfUklORzBfX1RJTUVf U1RBTVBfSU5UX0VOQUJMRV9NQVNLKTsKKworCXVubG9ja19zcmJtKGtnZCk7CisKKwlyZXR1cm4g MDsKK30KKworc3RhdGljIGlubGluZSB1aW50MzJfdCBnZXRfc2RtYV9iYXNlX2FkZHIoc3RydWN0 IGNpa19zZG1hX3JsY19yZWdpc3RlcnMgKm0pCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBp bmxpbmUgc3RydWN0IHZpX21xZCAqZ2V0X21xZCh2b2lkICptcWQpCit7CisJcmV0dXJuIChzdHJ1 Y3QgdmlfbXFkICopbXFkOworfQorCitzdGF0aWMgaW5saW5lIHN0cnVjdCBjaWtfc2RtYV9ybGNf cmVnaXN0ZXJzICpnZXRfc2RtYV9tcWQodm9pZCAqbXFkKQoreworCXJldHVybiAoc3RydWN0IGNp a19zZG1hX3JsY19yZWdpc3RlcnMgKiltcWQ7Cit9CisKK3N0YXRpYyBpbnQga2dkX2hxZF9sb2Fk KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHZvaWQgKm1xZCwgdWludDMyX3QgcGlwZV9pZCwKKwkJCXVp bnQzMl90IHF1ZXVlX2lkLCB1aW50MzJfdCBfX3VzZXIgKndwdHIpCit7CisJc3RydWN0IHZpX21x ZCAqbTsKKwl1aW50MzJfdCBzaGFkb3dfd3B0ciwgdmFsaWRfd3B0cjsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IGdldF9hbWRncHVfZGV2aWNlKGtnZCk7CisKKwltID0gZ2V0X21xZCht cWQpOworCisJdmFsaWRfd3B0ciA9IGNvcHlfZnJvbV91c2VyKCZzaGFkb3dfd3B0ciwgd3B0ciwg c2l6ZW9mKHNoYWRvd193cHRyKSk7CisJYWNxdWlyZV9xdWV1ZShrZ2QsIHBpcGVfaWQsIHF1ZXVl X2lkKTsKKworCVdSRUczMihtbUNQX01RRF9DT05UUk9MLCBtLT5jcF9tcWRfY29udHJvbCk7CisJ V1JFRzMyKG1tQ1BfTVFEX0JBU0VfQUREUiwgbS0+Y3BfbXFkX2Jhc2VfYWRkcl9sbyk7CisJV1JF RzMyKG1tQ1BfTVFEX0JBU0VfQUREUl9ISSwgbS0+Y3BfbXFkX2Jhc2VfYWRkcl9oaSk7CisKKwlX UkVHMzIobW1DUF9IUURfVk1JRCwgbS0+Y3BfaHFkX3ZtaWQpOworCVdSRUczMihtbUNQX0hRRF9Q RVJTSVNURU5UX1NUQVRFLCBtLT5jcF9ocWRfcGVyc2lzdGVudF9zdGF0ZSk7CisJV1JFRzMyKG1t Q1BfSFFEX1BJUEVfUFJJT1JJVFksIG0tPmNwX2hxZF9waXBlX3ByaW9yaXR5KTsKKwlXUkVHMzIo bW1DUF9IUURfUVVFVUVfUFJJT1JJVFksIG0tPmNwX2hxZF9xdWV1ZV9wcmlvcml0eSk7CisJV1JF RzMyKG1tQ1BfSFFEX1FVQU5UVU0sIG0tPmNwX2hxZF9xdWFudHVtKTsKKwlXUkVHMzIobW1DUF9I UURfUFFfQkFTRSwgbS0+Y3BfaHFkX3BxX2Jhc2VfbG8pOworCVdSRUczMihtbUNQX0hRRF9QUV9C QVNFX0hJLCBtLT5jcF9ocWRfcHFfYmFzZV9oaSk7CisJV1JFRzMyKG1tQ1BfSFFEX1BRX1JQVFJf UkVQT1JUX0FERFIsIG0tPmNwX2hxZF9wcV9ycHRyX3JlcG9ydF9hZGRyX2xvKTsKKwlXUkVHMzIo bW1DUF9IUURfUFFfUlBUUl9SRVBPUlRfQUREUl9ISSwKKwkJCW0tPmNwX2hxZF9wcV9ycHRyX3Jl cG9ydF9hZGRyX2hpKTsKKworCWlmICh2YWxpZF93cHRyID4gMCkKKwkJV1JFRzMyKG1tQ1BfSFFE X1BRX1dQVFIsIHNoYWRvd193cHRyKTsKKworCVdSRUczMihtbUNQX0hRRF9QUV9DT05UUk9MLCBt LT5jcF9ocWRfcHFfY29udHJvbCk7CisJV1JFRzMyKG1tQ1BfSFFEX1BRX0RPT1JCRUxMX0NPTlRS T0wsIG0tPmNwX2hxZF9wcV9kb29yYmVsbF9jb250cm9sKTsKKworCVdSRUczMihtbUNQX0hRRF9F T1BfQkFTRV9BRERSLCBtLT5jcF9ocWRfZW9wX2Jhc2VfYWRkcl9sbyk7CisJV1JFRzMyKG1tQ1Bf SFFEX0VPUF9CQVNFX0FERFJfSEksIG0tPmNwX2hxZF9lb3BfYmFzZV9hZGRyX2hpKTsKKwlXUkVH MzIobW1DUF9IUURfRU9QX0NPTlRST0wsIG0tPmNwX2hxZF9lb3BfY29udHJvbCk7CisJV1JFRzMy KG1tQ1BfSFFEX0VPUF9SUFRSLCBtLT5jcF9ocWRfZW9wX3JwdHIpOworCVdSRUczMihtbUNQX0hR RF9FT1BfV1BUUiwgbS0+Y3BfaHFkX2VvcF93cHRyKTsKKwlXUkVHMzIobW1DUF9IUURfRU9QX0VW RU5UUywgbS0+Y3BfaHFkX2VvcF9kb25lX2V2ZW50cyk7CisKKwlXUkVHMzIobW1DUF9IUURfQ1RY X1NBVkVfQkFTRV9BRERSX0xPLCBtLT5jcF9ocWRfY3R4X3NhdmVfYmFzZV9hZGRyX2xvKTsKKwlX UkVHMzIobW1DUF9IUURfQ1RYX1NBVkVfQkFTRV9BRERSX0hJLCBtLT5jcF9ocWRfY3R4X3NhdmVf YmFzZV9hZGRyX2hpKTsKKwlXUkVHMzIobW1DUF9IUURfQ1RYX1NBVkVfQ09OVFJPTCwgbS0+Y3Bf aHFkX2N0eF9zYXZlX2NvbnRyb2wpOworCVdSRUczMihtbUNQX0hRRF9DTlRMX1NUQUNLX09GRlNF VCwgbS0+Y3BfaHFkX2NudGxfc3RhY2tfb2Zmc2V0KTsKKwlXUkVHMzIobW1DUF9IUURfQ05UTF9T VEFDS19TSVpFLCBtLT5jcF9ocWRfY250bF9zdGFja19zaXplKTsKKwlXUkVHMzIobW1DUF9IUURf V0dfU1RBVEVfT0ZGU0VULCBtLT5jcF9ocWRfd2dfc3RhdGVfb2Zmc2V0KTsKKwlXUkVHMzIobW1D UF9IUURfQ1RYX1NBVkVfU0laRSwgbS0+Y3BfaHFkX2N0eF9zYXZlX3NpemUpOworCisJV1JFRzMy KG1tQ1BfSFFEX0lCX0NPTlRST0wsIG0tPmNwX2hxZF9pYl9jb250cm9sKTsKKworCVdSRUczMiht bUNQX0hRRF9ERVFVRVVFX1JFUVVFU1QsIG0tPmNwX2hxZF9kZXF1ZXVlX3JlcXVlc3QpOworCVdS RUczMihtbUNQX0hRRF9FUlJPUiwgbS0+Y3BfaHFkX2Vycm9yKTsKKwlXUkVHMzIobW1DUF9IUURf RU9QX1dQVFJfTUVNLCBtLT5jcF9ocWRfZW9wX3dwdHJfbWVtKTsKKwlXUkVHMzIobW1DUF9IUURf RU9QX0RPTkVTLCBtLT5jcF9ocWRfZW9wX2RvbmVzKTsKKworCVdSRUczMihtbUNQX0hRRF9BQ1RJ VkUsIG0tPmNwX2hxZF9hY3RpdmUpOworCisJcmVsZWFzZV9xdWV1ZShrZ2QpOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQga2dkX2hxZF9zZG1hX2xvYWQoc3RydWN0IGtnZF9kZXYgKmtn ZCwgdm9pZCAqbXFkKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgYm9vbCBrZ2RfaHFkX2lz X29jY3VwaWVkKHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQ2NF90IHF1ZXVlX2FkZHJlc3MsCisJ CQkJdWludDMyX3QgcGlwZV9pZCwgdWludDMyX3QgcXVldWVfaWQpCit7CisJc3RydWN0IGFtZGdw dV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOworCXVpbnQzMl90IGFjdDsK Kwlib29sIHJldHZhbCA9IGZhbHNlOworCXVpbnQzMl90IGxvdywgaGlnaDsKKworCWFjcXVpcmVf cXVldWUoa2dkLCBwaXBlX2lkLCBxdWV1ZV9pZCk7CisJYWN0ID0gUlJFRzMyKG1tQ1BfSFFEX0FD VElWRSk7CisJaWYgKGFjdCkgeworCQlsb3cgPSBsb3dlcl8zMl9iaXRzKHF1ZXVlX2FkZHJlc3Mg Pj4gOCk7CisJCWhpZ2ggPSB1cHBlcl8zMl9iaXRzKHF1ZXVlX2FkZHJlc3MgPj4gOCk7CisKKwkJ aWYgKGxvdyA9PSBSUkVHMzIobW1DUF9IUURfUFFfQkFTRSkgJiYKKwkJCQloaWdoID09IFJSRUcz MihtbUNQX0hRRF9QUV9CQVNFX0hJKSkKKwkJCXJldHZhbCA9IHRydWU7CisJfQorCXJlbGVhc2Vf cXVldWUoa2dkKTsKKwlyZXR1cm4gcmV0dmFsOworfQorCitzdGF0aWMgYm9vbCBrZ2RfaHFkX3Nk bWFfaXNfb2NjdXBpZWQoc3RydWN0IGtnZF9kZXYgKmtnZCwgdm9pZCAqbXFkKQoreworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gZ2V0X2FtZGdwdV9kZXZpY2Uoa2dkKTsKKwlzdHJ1Y3Qg Y2lrX3NkbWFfcmxjX3JlZ2lzdGVycyAqbTsKKwl1aW50MzJfdCBzZG1hX2Jhc2VfYWRkcjsKKwl1 aW50MzJfdCBzZG1hX3JsY19yYl9jbnRsOworCisJbSA9IGdldF9zZG1hX21xZChtcWQpOworCXNk bWFfYmFzZV9hZGRyID0gZ2V0X3NkbWFfYmFzZV9hZGRyKG0pOworCisJc2RtYV9ybGNfcmJfY250 bCA9IFJSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9SQl9DTlRMKTsKKworCWlm IChzZG1hX3JsY19yYl9jbnRsICYgU0RNQTBfUkxDMF9SQl9DTlRMX19SQl9FTkFCTEVfTUFTSykK KwkJcmV0dXJuIHRydWU7CisKKwlyZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBpbnQga2dkX2hx ZF9kZXN0cm95KHN0cnVjdCBrZ2RfZGV2ICprZ2QsIHVpbnQzMl90IHJlc2V0X3R5cGUsCisJCQkJ dW5zaWduZWQgaW50IHRpbWVvdXQsIHVpbnQzMl90IHBpcGVfaWQsCisJCQkJdWludDMyX3QgcXVl dWVfaWQpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2Rldmlj ZShrZ2QpOworCXVpbnQzMl90IHRlbXA7CisKKwlhY3F1aXJlX3F1ZXVlKGtnZCwgcGlwZV9pZCwg cXVldWVfaWQpOworCisJV1JFRzMyKG1tQ1BfSFFEX0RFUVVFVUVfUkVRVUVTVCwgcmVzZXRfdHlw ZSk7CisKKwl3aGlsZSAodHJ1ZSkgeworCQl0ZW1wID0gUlJFRzMyKG1tQ1BfSFFEX0FDVElWRSk7 CisJCWlmICh0ZW1wICYgQ1BfSFFEX0FDVElWRV9fQUNUSVZFX01BU0spCisJCQlicmVhazsKKwkJ aWYgKHRpbWVvdXQgPT0gMCkgeworCQkJcHJfZXJyKCJrZmQ6IGNwIHF1ZXVlIHByZWVtcHRpb24g dGltZSBvdXQgKCVkbXMpXG4iLAorCQkJCXRlbXApOworCQkJcmVsZWFzZV9xdWV1ZShrZ2QpOwor CQkJcmV0dXJuIC1FVElNRTsKKwkJfQorCQltc2xlZXAoMjApOworCQl0aW1lb3V0IC09IDIwOwor CX0KKworCXJlbGVhc2VfcXVldWUoa2dkKTsKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBr Z2RfaHFkX3NkbWFfZGVzdHJveShzdHJ1Y3Qga2dkX2RldiAqa2dkLCB2b2lkICptcWQsCisJCQkJ dW5zaWduZWQgaW50IHRpbWVvdXQpCit7CisJc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYgPSBn ZXRfYW1kZ3B1X2RldmljZShrZ2QpOworCXN0cnVjdCBjaWtfc2RtYV9ybGNfcmVnaXN0ZXJzICpt OworCXVpbnQzMl90IHNkbWFfYmFzZV9hZGRyOworCXVpbnQzMl90IHRlbXA7CisKKwltID0gZ2V0 X3NkbWFfbXFkKG1xZCk7CisJc2RtYV9iYXNlX2FkZHIgPSBnZXRfc2RtYV9iYXNlX2FkZHIobSk7 CisKKwl0ZW1wID0gUlJFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX0NOVEwp OworCXRlbXAgPSB0ZW1wICYgflNETUEwX1JMQzBfUkJfQ05UTF9fUkJfRU5BQkxFX01BU0s7CisJ V1JFRzMyKHNkbWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX0NOVEwsIHRlbXApOworCisJ d2hpbGUgKHRydWUpIHsKKwkJdGVtcCA9IFJSRUczMihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBf UkxDMF9DT05URVhUX1NUQVRVUyk7CisJCWlmICh0ZW1wICYgU0RNQTBfU1RBVFVTX1JFR19fUkJf Q01EX0lETEVfX1NISUZUKQorCQkJYnJlYWs7CisJCWlmICh0aW1lb3V0ID09IDApCisJCQlyZXR1 cm4gLUVUSU1FOworCQltc2xlZXAoMjApOworCQl0aW1lb3V0IC09IDIwOworCX0KKworCVdSRUcz MihzZG1hX2Jhc2VfYWRkciArIG1tU0RNQTBfUkxDMF9ET09SQkVMTCwgMCk7CisJV1JFRzMyKHNk bWFfYmFzZV9hZGRyICsgbW1TRE1BMF9STEMwX1JCX1JQVFIsIDApOworCVdSRUczMihzZG1hX2Jh c2VfYWRkciArIG1tU0RNQTBfUkxDMF9SQl9XUFRSLCAwKTsKKwlXUkVHMzIoc2RtYV9iYXNlX2Fk ZHIgKyBtbVNETUEwX1JMQzBfUkJfQkFTRSwgMCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGJvb2wgZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfdmFsaWQoc3RydWN0IGtnZF9kZXYgKmtn ZCwKKwkJCQkJCQl1aW50OF90IHZtaWQpCit7CisJdWludDMyX3QgcmVnOworCXN0cnVjdCBhbWRn cHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopIGtnZDsKKworCXJlZyA9 IFJSRUczMihtbUFUQ19WTUlEMF9QQVNJRF9NQVBQSU5HICsgdm1pZCk7CisJcmV0dXJuIHJlZyAm IEFUQ19WTUlEMF9QQVNJRF9NQVBQSU5HX19WQUxJRF9NQVNLOworfQorCitzdGF0aWMgdWludDE2 X3QgZ2V0X2F0Y192bWlkX3Bhc2lkX21hcHBpbmdfcGFzaWQoc3RydWN0IGtnZF9kZXYgKmtnZCwK KwkJCQkJCQkJdWludDhfdCB2bWlkKQoreworCXVpbnQzMl90IHJlZzsKKwlzdHJ1Y3QgYW1kZ3B1 X2RldmljZSAqYWRldiA9IChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqKSBrZ2Q7CisKKwlyZWcgPSBS UkVHMzIobW1BVENfVk1JRDBfUEFTSURfTUFQUElORyArIHZtaWQpOworCXJldHVybiByZWcgJiBB VENfVk1JRDBfUEFTSURfTUFQUElOR19fVkFMSURfTUFTSzsKK30KKworc3RhdGljIHZvaWQgd3Jp dGVfdm1pZF9pbnZhbGlkYXRlX3JlcXVlc3Qoc3RydWN0IGtnZF9kZXYgKmtnZCwgdWludDhfdCB2 bWlkKQoreworCXN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2 aWNlICopIGtnZDsKKworCVdSRUczMihtbVZNX0lOVkFMSURBVEVfUkVRVUVTVCwgMSA8PCB2bWlk KTsKK30KKworc3RhdGljIGludCBrZ2RfYWRkcmVzc193YXRjaF9kaXNhYmxlKHN0cnVjdCBrZ2Rf ZGV2ICprZ2QpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQga2dkX2FkZHJlc3Nfd2F0 Y2hfZXhlY3V0ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1bnNpZ25lZCBpbnQgd2F0Y2hf cG9pbnRfaWQsCisJCQkJCXVpbnQzMl90IGNudGxfdmFsLAorCQkJCQl1aW50MzJfdCBhZGRyX2hp LAorCQkJCQl1aW50MzJfdCBhZGRyX2xvKQoreworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50 IGtnZF93YXZlX2NvbnRyb2xfZXhlY3V0ZShzdHJ1Y3Qga2dkX2RldiAqa2dkLAorCQkJCQl1aW50 MzJfdCBnZnhfaW5kZXhfdmFsLAorCQkJCQl1aW50MzJfdCBzcV9jbWQpCit7CisJc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYgPSBnZXRfYW1kZ3B1X2RldmljZShrZ2QpOworCXVpbnQzMl90IGRh dGEgPSAwOworCisJbXV0ZXhfbG9jaygmYWRldi0+Z3JibV9pZHhfbXV0ZXgpOworCisJV1JFRzMy KG1tR1JCTV9HRlhfSU5ERVgsIGdmeF9pbmRleF92YWwpOworCVdSRUczMihtbVNRX0NNRCwgc3Ff Y21kKTsKKworCWRhdGEgPSBSRUdfU0VUX0ZJRUxEKGRhdGEsIEdSQk1fR0ZYX0lOREVYLAorCQlJ TlNUQU5DRV9CUk9BRENBU1RfV1JJVEVTLCAxKTsKKwlkYXRhID0gUkVHX1NFVF9GSUVMRChkYXRh LCBHUkJNX0dGWF9JTkRFWCwKKwkJU0hfQlJPQURDQVNUX1dSSVRFUywgMSk7CisJZGF0YSA9IFJF R19TRVRfRklFTEQoZGF0YSwgR1JCTV9HRlhfSU5ERVgsCisJCVNFX0JST0FEQ0FTVF9XUklURVMs IDEpOworCisJV1JFRzMyKG1tR1JCTV9HRlhfSU5ERVgsIGRhdGEpOworCW11dGV4X3VubG9jaygm YWRldi0+Z3JibV9pZHhfbXV0ZXgpOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1aW50MzJf dCBrZ2RfYWRkcmVzc193YXRjaF9nZXRfb2Zmc2V0KHN0cnVjdCBrZ2RfZGV2ICprZ2QsCisJCQkJ CXVuc2lnbmVkIGludCB3YXRjaF9wb2ludF9pZCwKKwkJCQkJdW5zaWduZWQgaW50IHJlZ19vZmZz ZXQpCit7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1aW50MTZfdCBnZXRfZndfdmVyc2lvbihz dHJ1Y3Qga2dkX2RldiAqa2dkLCBlbnVtIGtnZF9lbmdpbmVfdHlwZSB0eXBlKQoreworCXN0cnVj dCBhbWRncHVfZGV2aWNlICphZGV2ID0gKHN0cnVjdCBhbWRncHVfZGV2aWNlICopIGtnZDsKKwlj b25zdCB1bmlvbiBhbWRncHVfZmlybXdhcmVfaGVhZGVyICpoZHI7CisKKwlCVUdfT04oa2dkID09 IE5VTEwpOworCisJc3dpdGNoICh0eXBlKSB7CisJY2FzZSBLR0RfRU5HSU5FX1BGUDoKKwkJaGRy ID0gKGNvbnN0IHVuaW9uIGFtZGdwdV9maXJtd2FyZV9oZWFkZXIgKikKKwkJCQkJCQlhZGV2LT5n ZngucGZwX2Z3LT5kYXRhOworCQlicmVhazsKKworCWNhc2UgS0dEX0VOR0lORV9NRToKKwkJaGRy ID0gKGNvbnN0IHVuaW9uIGFtZGdwdV9maXJtd2FyZV9oZWFkZXIgKikKKwkJCQkJCQlhZGV2LT5n ZngubWVfZnctPmRhdGE7CisJCWJyZWFrOworCisJY2FzZSBLR0RfRU5HSU5FX0NFOgorCQloZHIg PSAoY29uc3QgdW5pb24gYW1kZ3B1X2Zpcm13YXJlX2hlYWRlciAqKQorCQkJCQkJCWFkZXYtPmdm eC5jZV9mdy0+ZGF0YTsKKwkJYnJlYWs7CisKKwljYXNlIEtHRF9FTkdJTkVfTUVDMToKKwkJaGRy ID0gKGNvbnN0IHVuaW9uIGFtZGdwdV9maXJtd2FyZV9oZWFkZXIgKikKKwkJCQkJCQlhZGV2LT5n ZngubWVjX2Z3LT5kYXRhOworCQlicmVhazsKKworCWNhc2UgS0dEX0VOR0lORV9NRUMyOgorCQlo ZHIgPSAoY29uc3QgdW5pb24gYW1kZ3B1X2Zpcm13YXJlX2hlYWRlciAqKQorCQkJCQkJCWFkZXYt PmdmeC5tZWMyX2Z3LT5kYXRhOworCQlicmVhazsKKworCWNhc2UgS0dEX0VOR0lORV9STEM6CisJ CWhkciA9IChjb25zdCB1bmlvbiBhbWRncHVfZmlybXdhcmVfaGVhZGVyICopCisJCQkJCQkJYWRl di0+Z2Z4LnJsY19mdy0+ZGF0YTsKKwkJYnJlYWs7CisKKwljYXNlIEtHRF9FTkdJTkVfU0RNQTE6 CisJCWhkciA9IChjb25zdCB1bmlvbiBhbWRncHVfZmlybXdhcmVfaGVhZGVyICopCisJCQkJCQkJ YWRldi0+c2RtYVswXS5mdy0+ZGF0YTsKKwkJYnJlYWs7CisKKwljYXNlIEtHRF9FTkdJTkVfU0RN QTI6CisJCWhkciA9IChjb25zdCB1bmlvbiBhbWRncHVfZmlybXdhcmVfaGVhZGVyICopCisJCQkJ CQkJYWRldi0+c2RtYVsxXS5mdy0+ZGF0YTsKKwkJYnJlYWs7CisKKwlkZWZhdWx0OgorCQlyZXR1 cm4gMDsKKwl9CisKKwlpZiAoaGRyID09IE5VTEwpCisJCXJldHVybiAwOworCisJLyogT25seSAx MiBiaXQgaW4gdXNlKi8KKwlyZXR1cm4gaGRyLT5jb21tb24udWNvZGVfdmVyc2lvbjsKK30KZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L3ZpZC5oIGIvZHJpdmVycy9ncHUv ZHJtL2FtZC9hbWRncHUvdmlkLmgKaW5kZXggMzFiYjg5NC4uZDk4YWE5ZCAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvdmlkLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvdmlkLmgKQEAgLTY2LDYgKzY2LDExIEBACiAKICNkZWZpbmUgQU1ER1BVX05VTV9P Rl9WTUlEUwkJCTgKIAorI2RlZmluZQkJUElQRUlEKHgpCQkJCQkoKHgpIDw8IDApCisjZGVmaW5l CQlNRUlEKHgpCQkJCQkJKCh4KSA8PCAyKQorI2RlZmluZQkJVk1JRCh4KQkJCQkJCSgoeCkgPDwg NCkKKyNkZWZpbmUJCVFVRVVFSUQoeCkJCQkJCSgoeCkgPDwgOCkKKwogI2RlZmluZSBSQl9CSVRN QVBfV0lEVEhfUEVSX1NIICAgICAyCiAKICNkZWZpbmUgTUNfU0VRX01JU0MwX19NVF9fTUFTSwkw eGYwMDAwMDAwCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYW1kL2luY2x1ZGUvdmlfc3Ry dWN0cy5oIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3ZpX3N0cnVjdHMuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWNmYWNkCi0tLSAvZGV2L251bGwKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2FtZC9pbmNsdWRlL3ZpX3N0cnVjdHMuaApAQCAtMCwwICsxLDQxNyBA QAorLyoKKyAqIENvcHlyaWdodCAyMDEyIEFkdmFuY2VkIE1pY3JvIERldmljZXMsIEluYy4KKyAq CisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55 IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lh dGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRlYWwgaW4g dGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNo LCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBT b2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0d2FyZSBp cyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25z OgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisgKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFs IHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklE RUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICog SU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBN RVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBDT1BZUklHSFQgSE9M REVSKFMpIE9SIEFVVEhPUihTKSBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUgor ICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9S VCBPUiBPVEhFUldJU0UsCisgKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IKKyAqIE9USEVSIERFQUxJTkdTIElOIFRI RSBTT0ZUV0FSRS4KKyAqCisgKi8KKworI2lmbmRlZiBWSV9TVFJVQ1RTX0hfCisjZGVmaW5lIFZJ X1NUUlVDVFNfSF8KKworc3RydWN0IHZpX3NkbWFfbXFkIHsKKwl1aW50MzJfdCBzZG1heF9ybGN4 X3JiX2NudGw7CisJdWludDMyX3Qgc2RtYXhfcmxjeF9yYl9iYXNlOworCXVpbnQzMl90IHNkbWF4 X3JsY3hfcmJfYmFzZV9oaTsKKwl1aW50MzJfdCBzZG1heF9ybGN4X3JiX3JwdHI7CisJdWludDMy X3Qgc2RtYXhfcmxjeF9yYl93cHRyOworCXVpbnQzMl90IHNkbWF4X3JsY3hfcmJfd3B0cl9wb2xs X2NudGw7CisJdWludDMyX3Qgc2RtYXhfcmxjeF9yYl93cHRyX3BvbGxfYWRkcl9oaTsKKwl1aW50 MzJfdCBzZG1heF9ybGN4X3JiX3dwdHJfcG9sbF9hZGRyX2xvOworCXVpbnQzMl90IHNkbWF4X3Js Y3hfcmJfcnB0cl9hZGRyX2hpOworCXVpbnQzMl90IHNkbWF4X3JsY3hfcmJfcnB0cl9hZGRyX2xv OworCXVpbnQzMl90IHNkbWF4X3JsY3hfaWJfY250bDsKKwl1aW50MzJfdCBzZG1heF9ybGN4X2li X3JwdHI7CisJdWludDMyX3Qgc2RtYXhfcmxjeF9pYl9vZmZzZXQ7CisJdWludDMyX3Qgc2RtYXhf cmxjeF9pYl9iYXNlX2xvOworCXVpbnQzMl90IHNkbWF4X3JsY3hfaWJfYmFzZV9oaTsKKwl1aW50 MzJfdCBzZG1heF9ybGN4X2liX3NpemU7CisJdWludDMyX3Qgc2RtYXhfcmxjeF9za2lwX2NudGw7 CisJdWludDMyX3Qgc2RtYXhfcmxjeF9jb250ZXh0X3N0YXR1czsKKwl1aW50MzJfdCBzZG1heF9y bGN4X2Rvb3JiZWxsOworCXVpbnQzMl90IHNkbWF4X3JsY3hfdmlydHVhbF9hZGRyOworCXVpbnQz Ml90IHNkbWF4X3JsY3hfYXBlMV9jbnRsOworCXVpbnQzMl90IHNkbWF4X3JsY3hfZG9vcmJlbGxf bG9nOworCXVpbnQzMl90IHJlc2VydmVkXzIyOworCXVpbnQzMl90IHJlc2VydmVkXzIzOworCXVp bnQzMl90IHJlc2VydmVkXzI0OworCXVpbnQzMl90IHJlc2VydmVkXzI1OworCXVpbnQzMl90IHJl c2VydmVkXzI2OworCXVpbnQzMl90IHJlc2VydmVkXzI3OworCXVpbnQzMl90IHJlc2VydmVkXzI4 OworCXVpbnQzMl90IHJlc2VydmVkXzI5OworCXVpbnQzMl90IHJlc2VydmVkXzMwOworCXVpbnQz Ml90IHJlc2VydmVkXzMxOworCXVpbnQzMl90IHJlc2VydmVkXzMyOworCXVpbnQzMl90IHJlc2Vy dmVkXzMzOworCXVpbnQzMl90IHJlc2VydmVkXzM0OworCXVpbnQzMl90IHJlc2VydmVkXzM1Owor CXVpbnQzMl90IHJlc2VydmVkXzM2OworCXVpbnQzMl90IHJlc2VydmVkXzM3OworCXVpbnQzMl90 IHJlc2VydmVkXzM4OworCXVpbnQzMl90IHJlc2VydmVkXzM5OworCXVpbnQzMl90IHJlc2VydmVk XzQwOworCXVpbnQzMl90IHJlc2VydmVkXzQxOworCXVpbnQzMl90IHJlc2VydmVkXzQyOworCXVp bnQzMl90IHJlc2VydmVkXzQzOworCXVpbnQzMl90IHJlc2VydmVkXzQ0OworCXVpbnQzMl90IHJl c2VydmVkXzQ1OworCXVpbnQzMl90IHJlc2VydmVkXzQ2OworCXVpbnQzMl90IHJlc2VydmVkXzQ3 OworCXVpbnQzMl90IHJlc2VydmVkXzQ4OworCXVpbnQzMl90IHJlc2VydmVkXzQ5OworCXVpbnQz Ml90IHJlc2VydmVkXzUwOworCXVpbnQzMl90IHJlc2VydmVkXzUxOworCXVpbnQzMl90IHJlc2Vy dmVkXzUyOworCXVpbnQzMl90IHJlc2VydmVkXzUzOworCXVpbnQzMl90IHJlc2VydmVkXzU0Owor CXVpbnQzMl90IHJlc2VydmVkXzU1OworCXVpbnQzMl90IHJlc2VydmVkXzU2OworCXVpbnQzMl90 IHJlc2VydmVkXzU3OworCXVpbnQzMl90IHJlc2VydmVkXzU4OworCXVpbnQzMl90IHJlc2VydmVk XzU5OworCXVpbnQzMl90IHJlc2VydmVkXzYwOworCXVpbnQzMl90IHJlc2VydmVkXzYxOworCXVp bnQzMl90IHJlc2VydmVkXzYyOworCXVpbnQzMl90IHJlc2VydmVkXzYzOworCXVpbnQzMl90IHJl c2VydmVkXzY0OworCXVpbnQzMl90IHJlc2VydmVkXzY1OworCXVpbnQzMl90IHJlc2VydmVkXzY2 OworCXVpbnQzMl90IHJlc2VydmVkXzY3OworCXVpbnQzMl90IHJlc2VydmVkXzY4OworCXVpbnQz Ml90IHJlc2VydmVkXzY5OworCXVpbnQzMl90IHJlc2VydmVkXzcwOworCXVpbnQzMl90IHJlc2Vy dmVkXzcxOworCXVpbnQzMl90IHJlc2VydmVkXzcyOworCXVpbnQzMl90IHJlc2VydmVkXzczOwor CXVpbnQzMl90IHJlc2VydmVkXzc0OworCXVpbnQzMl90IHJlc2VydmVkXzc1OworCXVpbnQzMl90 IHJlc2VydmVkXzc2OworCXVpbnQzMl90IHJlc2VydmVkXzc3OworCXVpbnQzMl90IHJlc2VydmVk Xzc4OworCXVpbnQzMl90IHJlc2VydmVkXzc5OworCXVpbnQzMl90IHJlc2VydmVkXzgwOworCXVp bnQzMl90IHJlc2VydmVkXzgxOworCXVpbnQzMl90IHJlc2VydmVkXzgyOworCXVpbnQzMl90IHJl c2VydmVkXzgzOworCXVpbnQzMl90IHJlc2VydmVkXzg0OworCXVpbnQzMl90IHJlc2VydmVkXzg1 OworCXVpbnQzMl90IHJlc2VydmVkXzg2OworCXVpbnQzMl90IHJlc2VydmVkXzg3OworCXVpbnQz Ml90IHJlc2VydmVkXzg4OworCXVpbnQzMl90IHJlc2VydmVkXzg5OworCXVpbnQzMl90IHJlc2Vy dmVkXzkwOworCXVpbnQzMl90IHJlc2VydmVkXzkxOworCXVpbnQzMl90IHJlc2VydmVkXzkyOwor CXVpbnQzMl90IHJlc2VydmVkXzkzOworCXVpbnQzMl90IHJlc2VydmVkXzk0OworCXVpbnQzMl90 IHJlc2VydmVkXzk1OworCXVpbnQzMl90IHJlc2VydmVkXzk2OworCXVpbnQzMl90IHJlc2VydmVk Xzk3OworCXVpbnQzMl90IHJlc2VydmVkXzk4OworCXVpbnQzMl90IHJlc2VydmVkXzk5OworCXVp bnQzMl90IHJlc2VydmVkXzEwMDsKKwl1aW50MzJfdCByZXNlcnZlZF8xMDE7CisJdWludDMyX3Qg cmVzZXJ2ZWRfMTAyOworCXVpbnQzMl90IHJlc2VydmVkXzEwMzsKKwl1aW50MzJfdCByZXNlcnZl ZF8xMDQ7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTA1OworCXVpbnQzMl90IHJlc2VydmVkXzEwNjsK Kwl1aW50MzJfdCByZXNlcnZlZF8xMDc7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTA4OworCXVpbnQz Ml90IHJlc2VydmVkXzEwOTsKKwl1aW50MzJfdCByZXNlcnZlZF8xMTA7CisJdWludDMyX3QgcmVz ZXJ2ZWRfMTExOworCXVpbnQzMl90IHJlc2VydmVkXzExMjsKKwl1aW50MzJfdCByZXNlcnZlZF8x MTM7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTE0OworCXVpbnQzMl90IHJlc2VydmVkXzExNTsKKwl1 aW50MzJfdCByZXNlcnZlZF8xMTY7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTE3OworCXVpbnQzMl90 IHJlc2VydmVkXzExODsKKwl1aW50MzJfdCByZXNlcnZlZF8xMTk7CisJdWludDMyX3QgcmVzZXJ2 ZWRfMTIwOworCXVpbnQzMl90IHJlc2VydmVkXzEyMTsKKwl1aW50MzJfdCByZXNlcnZlZF8xMjI7 CisJdWludDMyX3QgcmVzZXJ2ZWRfMTIzOworCXVpbnQzMl90IHJlc2VydmVkXzEyNDsKKwl1aW50 MzJfdCByZXNlcnZlZF8xMjU7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTI2OworCXVpbnQzMl90IHJl c2VydmVkXzEyNzsKK307CisKK3N0cnVjdCB2aV9tcWQgeworCXVpbnQzMl90IGhlYWRlcjsKKwl1 aW50MzJfdCBjb21wdXRlX2Rpc3BhdGNoX2luaXRpYXRvcjsKKwl1aW50MzJfdCBjb21wdXRlX2Rp bV94OworCXVpbnQzMl90IGNvbXB1dGVfZGltX3k7CisJdWludDMyX3QgY29tcHV0ZV9kaW1fejsK Kwl1aW50MzJfdCBjb21wdXRlX3N0YXJ0X3g7CisJdWludDMyX3QgY29tcHV0ZV9zdGFydF95Owor CXVpbnQzMl90IGNvbXB1dGVfc3RhcnRfejsKKwl1aW50MzJfdCBjb21wdXRlX251bV90aHJlYWRf eDsKKwl1aW50MzJfdCBjb21wdXRlX251bV90aHJlYWRfeTsKKwl1aW50MzJfdCBjb21wdXRlX251 bV90aHJlYWRfejsKKwl1aW50MzJfdCBjb21wdXRlX3BpcGVsaW5lc3RhdF9lbmFibGU7CisJdWlu dDMyX3QgY29tcHV0ZV9wZXJmY291bnRfZW5hYmxlOworCXVpbnQzMl90IGNvbXB1dGVfcGdtX2xv OworCXVpbnQzMl90IGNvbXB1dGVfcGdtX2hpOworCXVpbnQzMl90IGNvbXB1dGVfdGJhX2xvOwor CXVpbnQzMl90IGNvbXB1dGVfdGJhX2hpOworCXVpbnQzMl90IGNvbXB1dGVfdG1hX2xvOworCXVp bnQzMl90IGNvbXB1dGVfdG1hX2hpOworCXVpbnQzMl90IGNvbXB1dGVfcGdtX3JzcmMxOworCXVp bnQzMl90IGNvbXB1dGVfcGdtX3JzcmMyOworCXVpbnQzMl90IGNvbXB1dGVfdm1pZDsKKwl1aW50 MzJfdCBjb21wdXRlX3Jlc291cmNlX2xpbWl0czsKKwl1aW50MzJfdCBjb21wdXRlX3N0YXRpY190 aHJlYWRfbWdtdF9zZTA7CisJdWludDMyX3QgY29tcHV0ZV9zdGF0aWNfdGhyZWFkX21nbXRfc2Ux OworCXVpbnQzMl90IGNvbXB1dGVfdG1wcmluZ19zaXplOworCXVpbnQzMl90IGNvbXB1dGVfc3Rh dGljX3RocmVhZF9tZ210X3NlMjsKKwl1aW50MzJfdCBjb21wdXRlX3N0YXRpY190aHJlYWRfbWdt dF9zZTM7CisJdWludDMyX3QgY29tcHV0ZV9yZXN0YXJ0X3g7CisJdWludDMyX3QgY29tcHV0ZV9y ZXN0YXJ0X3k7CisJdWludDMyX3QgY29tcHV0ZV9yZXN0YXJ0X3o7CisJdWludDMyX3QgY29tcHV0 ZV90aHJlYWRfdHJhY2VfZW5hYmxlOworCXVpbnQzMl90IGNvbXB1dGVfbWlzY19yZXNlcnZlZDsK Kwl1aW50MzJfdCBjb21wdXRlX2Rpc3BhdGNoX2lkOworCXVpbnQzMl90IGNvbXB1dGVfdGhyZWFk Z3JvdXBfaWQ7CisJdWludDMyX3QgY29tcHV0ZV9yZWxhdW5jaDsKKwl1aW50MzJfdCBjb21wdXRl X3dhdmVfcmVzdG9yZV9hZGRyX2xvOworCXVpbnQzMl90IGNvbXB1dGVfd2F2ZV9yZXN0b3JlX2Fk ZHJfaGk7CisJdWludDMyX3QgY29tcHV0ZV93YXZlX3Jlc3RvcmVfY29udHJvbDsKKwl1aW50MzJf dCByZXNlcnZlZF8zOTsKKwl1aW50MzJfdCByZXNlcnZlZF80MDsKKwl1aW50MzJfdCByZXNlcnZl ZF80MTsKKwl1aW50MzJfdCByZXNlcnZlZF80MjsKKwl1aW50MzJfdCByZXNlcnZlZF80MzsKKwl1 aW50MzJfdCByZXNlcnZlZF80NDsKKwl1aW50MzJfdCByZXNlcnZlZF80NTsKKwl1aW50MzJfdCBy ZXNlcnZlZF80NjsKKwl1aW50MzJfdCByZXNlcnZlZF80NzsKKwl1aW50MzJfdCByZXNlcnZlZF80 ODsKKwl1aW50MzJfdCByZXNlcnZlZF80OTsKKwl1aW50MzJfdCByZXNlcnZlZF81MDsKKwl1aW50 MzJfdCByZXNlcnZlZF81MTsKKwl1aW50MzJfdCByZXNlcnZlZF81MjsKKwl1aW50MzJfdCByZXNl cnZlZF81MzsKKwl1aW50MzJfdCByZXNlcnZlZF81NDsKKwl1aW50MzJfdCByZXNlcnZlZF81NTsK Kwl1aW50MzJfdCByZXNlcnZlZF81NjsKKwl1aW50MzJfdCByZXNlcnZlZF81NzsKKwl1aW50MzJf dCByZXNlcnZlZF81ODsKKwl1aW50MzJfdCByZXNlcnZlZF81OTsKKwl1aW50MzJfdCByZXNlcnZl ZF82MDsKKwl1aW50MzJfdCByZXNlcnZlZF82MTsKKwl1aW50MzJfdCByZXNlcnZlZF82MjsKKwl1 aW50MzJfdCByZXNlcnZlZF82MzsKKwl1aW50MzJfdCByZXNlcnZlZF82NDsKKwl1aW50MzJfdCBj b21wdXRlX3VzZXJfZGF0YV8wOworCXVpbnQzMl90IGNvbXB1dGVfdXNlcl9kYXRhXzE7CisJdWlu dDMyX3QgY29tcHV0ZV91c2VyX2RhdGFfMjsKKwl1aW50MzJfdCBjb21wdXRlX3VzZXJfZGF0YV8z OworCXVpbnQzMl90IGNvbXB1dGVfdXNlcl9kYXRhXzQ7CisJdWludDMyX3QgY29tcHV0ZV91c2Vy X2RhdGFfNTsKKwl1aW50MzJfdCBjb21wdXRlX3VzZXJfZGF0YV82OworCXVpbnQzMl90IGNvbXB1 dGVfdXNlcl9kYXRhXzc7CisJdWludDMyX3QgY29tcHV0ZV91c2VyX2RhdGFfODsKKwl1aW50MzJf dCBjb21wdXRlX3VzZXJfZGF0YV85OworCXVpbnQzMl90IGNvbXB1dGVfdXNlcl9kYXRhXzEwOwor CXVpbnQzMl90IGNvbXB1dGVfdXNlcl9kYXRhXzExOworCXVpbnQzMl90IGNvbXB1dGVfdXNlcl9k YXRhXzEyOworCXVpbnQzMl90IGNvbXB1dGVfdXNlcl9kYXRhXzEzOworCXVpbnQzMl90IGNvbXB1 dGVfdXNlcl9kYXRhXzE0OworCXVpbnQzMl90IGNvbXB1dGVfdXNlcl9kYXRhXzE1OworCXVpbnQz Ml90IGNwX2NvbXB1dGVfY3NpbnZvY19jb3VudF9sbzsKKwl1aW50MzJfdCBjcF9jb21wdXRlX2Nz aW52b2NfY291bnRfaGk7CisJdWludDMyX3QgcmVzZXJ2ZWRfODM7CisJdWludDMyX3QgcmVzZXJ2 ZWRfODQ7CisJdWludDMyX3QgcmVzZXJ2ZWRfODU7CisJdWludDMyX3QgY3BfbXFkX3F1ZXJ5X3Rp bWVfbG87CisJdWludDMyX3QgY3BfbXFkX3F1ZXJ5X3RpbWVfaGk7CisJdWludDMyX3QgY3BfbXFk X2Nvbm5lY3Rfc3RhcnRfdGltZV9sbzsKKwl1aW50MzJfdCBjcF9tcWRfY29ubmVjdF9zdGFydF90 aW1lX2hpOworCXVpbnQzMl90IGNwX21xZF9jb25uZWN0X2VuZF90aW1lX2xvOworCXVpbnQzMl90 IGNwX21xZF9jb25uZWN0X2VuZF90aW1lX2hpOworCXVpbnQzMl90IGNwX21xZF9jb25uZWN0X2Vu ZF93Zl9jb3VudDsKKwl1aW50MzJfdCBjcF9tcWRfY29ubmVjdF9lbmRfcHFfcnB0cjsKKwl1aW50 MzJfdCBjcF9tcWRfY29ubmVjdF9lbmRfcHFfd3B0cjsKKwl1aW50MzJfdCBjcF9tcWRfY29ubmVj dF9lbmRfaWJfcnB0cjsKKwl1aW50MzJfdCByZXNlcnZlZF85NjsKKwl1aW50MzJfdCByZXNlcnZl ZF85NzsKKwl1aW50MzJfdCBjcF9tcWRfc2F2ZV9zdGFydF90aW1lX2xvOworCXVpbnQzMl90IGNw X21xZF9zYXZlX3N0YXJ0X3RpbWVfaGk7CisJdWludDMyX3QgY3BfbXFkX3NhdmVfZW5kX3RpbWVf bG87CisJdWludDMyX3QgY3BfbXFkX3NhdmVfZW5kX3RpbWVfaGk7CisJdWludDMyX3QgY3BfbXFk X3Jlc3RvcmVfc3RhcnRfdGltZV9sbzsKKwl1aW50MzJfdCBjcF9tcWRfcmVzdG9yZV9zdGFydF90 aW1lX2hpOworCXVpbnQzMl90IGNwX21xZF9yZXN0b3JlX2VuZF90aW1lX2xvOworCXVpbnQzMl90 IGNwX21xZF9yZXN0b3JlX2VuZF90aW1lX2hpOworCXVpbnQzMl90IHJlc2VydmVkXzEwNjsKKwl1 aW50MzJfdCByZXNlcnZlZF8xMDc7CisJdWludDMyX3QgZ2RzX2NzX2N0eHN3X2NudDA7CisJdWlu dDMyX3QgZ2RzX2NzX2N0eHN3X2NudDE7CisJdWludDMyX3QgZ2RzX2NzX2N0eHN3X2NudDI7CisJ dWludDMyX3QgZ2RzX2NzX2N0eHN3X2NudDM7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTEyOworCXVp bnQzMl90IHJlc2VydmVkXzExMzsKKwl1aW50MzJfdCBjcF9wcV9leGVfc3RhdHVzX2xvOworCXVp bnQzMl90IGNwX3BxX2V4ZV9zdGF0dXNfaGk7CisJdWludDMyX3QgY3BfcGFja2V0X2lkX2xvOwor CXVpbnQzMl90IGNwX3BhY2tldF9pZF9oaTsKKwl1aW50MzJfdCBjcF9wYWNrZXRfZXhlX3N0YXR1 c19sbzsKKwl1aW50MzJfdCBjcF9wYWNrZXRfZXhlX3N0YXR1c19oaTsKKwl1aW50MzJfdCBnZHNf c2F2ZV9iYXNlX2FkZHJfbG87CisJdWludDMyX3QgZ2RzX3NhdmVfYmFzZV9hZGRyX2hpOworCXVp bnQzMl90IGdkc19zYXZlX21hc2tfbG87CisJdWludDMyX3QgZ2RzX3NhdmVfbWFza19oaTsKKwl1 aW50MzJfdCBjdHhfc2F2ZV9iYXNlX2FkZHJfbG87CisJdWludDMyX3QgY3R4X3NhdmVfYmFzZV9h ZGRyX2hpOworCXVpbnQzMl90IHJlc2VydmVkXzEyNjsKKwl1aW50MzJfdCByZXNlcnZlZF8xMjc7 CisJdWludDMyX3QgY3BfbXFkX2Jhc2VfYWRkcl9sbzsKKwl1aW50MzJfdCBjcF9tcWRfYmFzZV9h ZGRyX2hpOworCXVpbnQzMl90IGNwX2hxZF9hY3RpdmU7CisJdWludDMyX3QgY3BfaHFkX3ZtaWQ7 CisJdWludDMyX3QgY3BfaHFkX3BlcnNpc3RlbnRfc3RhdGU7CisJdWludDMyX3QgY3BfaHFkX3Bp cGVfcHJpb3JpdHk7CisJdWludDMyX3QgY3BfaHFkX3F1ZXVlX3ByaW9yaXR5OworCXVpbnQzMl90 IGNwX2hxZF9xdWFudHVtOworCXVpbnQzMl90IGNwX2hxZF9wcV9iYXNlX2xvOworCXVpbnQzMl90 IGNwX2hxZF9wcV9iYXNlX2hpOworCXVpbnQzMl90IGNwX2hxZF9wcV9ycHRyOworCXVpbnQzMl90 IGNwX2hxZF9wcV9ycHRyX3JlcG9ydF9hZGRyX2xvOworCXVpbnQzMl90IGNwX2hxZF9wcV9ycHRy X3JlcG9ydF9hZGRyX2hpOworCXVpbnQzMl90IGNwX2hxZF9wcV93cHRyX3BvbGxfYWRkcl9sbzsK Kwl1aW50MzJfdCBjcF9ocWRfcHFfd3B0cl9wb2xsX2FkZHJfaGk7CisJdWludDMyX3QgY3BfaHFk X3BxX2Rvb3JiZWxsX2NvbnRyb2w7CisJdWludDMyX3QgY3BfaHFkX3BxX3dwdHI7CisJdWludDMy X3QgY3BfaHFkX3BxX2NvbnRyb2w7CisJdWludDMyX3QgY3BfaHFkX2liX2Jhc2VfYWRkcl9sbzsK Kwl1aW50MzJfdCBjcF9ocWRfaWJfYmFzZV9hZGRyX2hpOworCXVpbnQzMl90IGNwX2hxZF9pYl9y cHRyOworCXVpbnQzMl90IGNwX2hxZF9pYl9jb250cm9sOworCXVpbnQzMl90IGNwX2hxZF9pcV90 aW1lcjsKKwl1aW50MzJfdCBjcF9ocWRfaXFfcnB0cjsKKwl1aW50MzJfdCBjcF9ocWRfZGVxdWV1 ZV9yZXF1ZXN0OworCXVpbnQzMl90IGNwX2hxZF9kbWFfb2ZmbG9hZDsKKwl1aW50MzJfdCBjcF9o cWRfc2VtYV9jbWQ7CisJdWludDMyX3QgY3BfaHFkX21zZ190eXBlOworCXVpbnQzMl90IGNwX2hx ZF9hdG9taWMwX3ByZW9wX2xvOworCXVpbnQzMl90IGNwX2hxZF9hdG9taWMwX3ByZW9wX2hpOwor CXVpbnQzMl90IGNwX2hxZF9hdG9taWMxX3ByZW9wX2xvOworCXVpbnQzMl90IGNwX2hxZF9hdG9t aWMxX3ByZW9wX2hpOworCXVpbnQzMl90IGNwX2hxZF9ocV9zdGF0dXMwOworCXVpbnQzMl90IGNw X2hxZF9ocV9jb250cm9sMDsKKwl1aW50MzJfdCBjcF9tcWRfY29udHJvbDsKKwl1aW50MzJfdCBj cF9ocWRfaHFfc3RhdHVzMTsKKwl1aW50MzJfdCBjcF9ocWRfaHFfY29udHJvbDE7CisJdWludDMy X3QgY3BfaHFkX2VvcF9iYXNlX2FkZHJfbG87CisJdWludDMyX3QgY3BfaHFkX2VvcF9iYXNlX2Fk ZHJfaGk7CisJdWludDMyX3QgY3BfaHFkX2VvcF9jb250cm9sOworCXVpbnQzMl90IGNwX2hxZF9l b3BfcnB0cjsKKwl1aW50MzJfdCBjcF9ocWRfZW9wX3dwdHI7CisJdWludDMyX3QgY3BfaHFkX2Vv cF9kb25lX2V2ZW50czsKKwl1aW50MzJfdCBjcF9ocWRfY3R4X3NhdmVfYmFzZV9hZGRyX2xvOwor CXVpbnQzMl90IGNwX2hxZF9jdHhfc2F2ZV9iYXNlX2FkZHJfaGk7CisJdWludDMyX3QgY3BfaHFk X2N0eF9zYXZlX2NvbnRyb2w7CisJdWludDMyX3QgY3BfaHFkX2NudGxfc3RhY2tfb2Zmc2V0Owor CXVpbnQzMl90IGNwX2hxZF9jbnRsX3N0YWNrX3NpemU7CisJdWludDMyX3QgY3BfaHFkX3dnX3N0 YXRlX29mZnNldDsKKwl1aW50MzJfdCBjcF9ocWRfY3R4X3NhdmVfc2l6ZTsKKwl1aW50MzJfdCBj cF9ocWRfZ2RzX3Jlc291cmNlX3N0YXRlOworCXVpbnQzMl90IGNwX2hxZF9lcnJvcjsKKwl1aW50 MzJfdCBjcF9ocWRfZW9wX3dwdHJfbWVtOworCXVpbnQzMl90IGNwX2hxZF9lb3BfZG9uZXM7CisJ dWludDMyX3QgcmVzZXJ2ZWRfMTgyOworCXVpbnQzMl90IHJlc2VydmVkXzE4MzsKKwl1aW50MzJf dCByZXNlcnZlZF8xODQ7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTg1OworCXVpbnQzMl90IHJlc2Vy dmVkXzE4NjsKKwl1aW50MzJfdCByZXNlcnZlZF8xODc7CisJdWludDMyX3QgcmVzZXJ2ZWRfMTg4 OworCXVpbnQzMl90IHJlc2VydmVkXzE4OTsKKwl1aW50MzJfdCByZXNlcnZlZF8xOTA7CisJdWlu dDMyX3QgcmVzZXJ2ZWRfMTkxOworCXVpbnQzMl90IGlxdGltZXJfcGt0X2hlYWRlcjsKKwl1aW50 MzJfdCBpcXRpbWVyX3BrdF9kdzA7CisJdWludDMyX3QgaXF0aW1lcl9wa3RfZHcxOworCXVpbnQz Ml90IGlxdGltZXJfcGt0X2R3MjsKKwl1aW50MzJfdCBpcXRpbWVyX3BrdF9kdzM7CisJdWludDMy X3QgaXF0aW1lcl9wa3RfZHc0OworCXVpbnQzMl90IGlxdGltZXJfcGt0X2R3NTsKKwl1aW50MzJf dCBpcXRpbWVyX3BrdF9kdzY7CisJdWludDMyX3QgaXF0aW1lcl9wa3RfZHc3OworCXVpbnQzMl90 IGlxdGltZXJfcGt0X2R3ODsKKwl1aW50MzJfdCBpcXRpbWVyX3BrdF9kdzk7CisJdWludDMyX3Qg aXF0aW1lcl9wa3RfZHcxMDsKKwl1aW50MzJfdCBpcXRpbWVyX3BrdF9kdzExOworCXVpbnQzMl90 IGlxdGltZXJfcGt0X2R3MTI7CisJdWludDMyX3QgaXF0aW1lcl9wa3RfZHcxMzsKKwl1aW50MzJf dCBpcXRpbWVyX3BrdF9kdzE0OworCXVpbnQzMl90IGlxdGltZXJfcGt0X2R3MTU7CisJdWludDMy X3QgaXF0aW1lcl9wa3RfZHcxNjsKKwl1aW50MzJfdCBpcXRpbWVyX3BrdF9kdzE3OworCXVpbnQz Ml90IGlxdGltZXJfcGt0X2R3MTg7CisJdWludDMyX3QgaXF0aW1lcl9wa3RfZHcxOTsKKwl1aW50 MzJfdCBpcXRpbWVyX3BrdF9kdzIwOworCXVpbnQzMl90IGlxdGltZXJfcGt0X2R3MjE7CisJdWlu dDMyX3QgaXF0aW1lcl9wa3RfZHcyMjsKKwl1aW50MzJfdCBpcXRpbWVyX3BrdF9kdzIzOworCXVp bnQzMl90IGlxdGltZXJfcGt0X2R3MjQ7CisJdWludDMyX3QgaXF0aW1lcl9wa3RfZHcyNTsKKwl1 aW50MzJfdCBpcXRpbWVyX3BrdF9kdzI2OworCXVpbnQzMl90IGlxdGltZXJfcGt0X2R3Mjc7CisJ dWludDMyX3QgaXF0aW1lcl9wa3RfZHcyODsKKwl1aW50MzJfdCBpcXRpbWVyX3BrdF9kdzI5Owor CXVpbnQzMl90IGlxdGltZXJfcGt0X2R3MzA7CisJdWludDMyX3QgaXF0aW1lcl9wa3RfZHczMTsK Kwl1aW50MzJfdCByZXNlcnZlZF8yMjU7CisJdWludDMyX3QgcmVzZXJ2ZWRfMjI2OworCXVpbnQz Ml90IHJlc2VydmVkXzIyNzsKKwl1aW50MzJfdCBzZXRfcmVzb3VyY2VzX2hlYWRlcjsKKwl1aW50 MzJfdCBzZXRfcmVzb3VyY2VzX2R3MTsKKwl1aW50MzJfdCBzZXRfcmVzb3VyY2VzX2R3MjsKKwl1 aW50MzJfdCBzZXRfcmVzb3VyY2VzX2R3MzsKKwl1aW50MzJfdCBzZXRfcmVzb3VyY2VzX2R3NDsK Kwl1aW50MzJfdCBzZXRfcmVzb3VyY2VzX2R3NTsKKwl1aW50MzJfdCBzZXRfcmVzb3VyY2VzX2R3 NjsKKwl1aW50MzJfdCBzZXRfcmVzb3VyY2VzX2R3NzsKKwl1aW50MzJfdCByZXNlcnZlZF8yMzY7 CisJdWludDMyX3QgcmVzZXJ2ZWRfMjM3OworCXVpbnQzMl90IHJlc2VydmVkXzIzODsKKwl1aW50 MzJfdCByZXNlcnZlZF8yMzk7CisJdWludDMyX3QgcXVldWVfZG9vcmJlbGxfaWQwOworCXVpbnQz Ml90IHF1ZXVlX2Rvb3JiZWxsX2lkMTsKKwl1aW50MzJfdCBxdWV1ZV9kb29yYmVsbF9pZDI7CisJ dWludDMyX3QgcXVldWVfZG9vcmJlbGxfaWQzOworCXVpbnQzMl90IHF1ZXVlX2Rvb3JiZWxsX2lk NDsKKwl1aW50MzJfdCBxdWV1ZV9kb29yYmVsbF9pZDU7CisJdWludDMyX3QgcXVldWVfZG9vcmJl bGxfaWQ2OworCXVpbnQzMl90IHF1ZXVlX2Rvb3JiZWxsX2lkNzsKKwl1aW50MzJfdCBxdWV1ZV9k b29yYmVsbF9pZDg7CisJdWludDMyX3QgcXVldWVfZG9vcmJlbGxfaWQ5OworCXVpbnQzMl90IHF1 ZXVlX2Rvb3JiZWxsX2lkMTA7CisJdWludDMyX3QgcXVldWVfZG9vcmJlbGxfaWQxMTsKKwl1aW50 MzJfdCBxdWV1ZV9kb29yYmVsbF9pZDEyOworCXVpbnQzMl90IHF1ZXVlX2Rvb3JiZWxsX2lkMTM7 CisJdWludDMyX3QgcXVldWVfZG9vcmJlbGxfaWQxNDsKKwl1aW50MzJfdCBxdWV1ZV9kb29yYmVs bF9pZDE1OworfTsKKworI2VuZGlmIC8qIFZJX1NUUlVDVFNfSF8gKi8KLS0gCjIuNC4zCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=