From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759408AbYJVVKQ (ORCPT ); Wed, 22 Oct 2008 17:10:16 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752408AbYJVVKB (ORCPT ); Wed, 22 Oct 2008 17:10:01 -0400 Received: from yw-out-2324.google.com ([74.125.46.31]:22226 "EHLO yw-out-2324.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752296AbYJVVKA (ORCPT ); Wed, 22 Oct 2008 17:10:00 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:mime-version:content-type; b=kFJCc9y437iuX/h6bD0k2r0EGCRwvU5CREc7uxMKsJy4PMUn86O5FXoNQnGmHpzIcy lPucO1k8iko/lW+Kq3bvC08iwqE00G/Dw771HGMOccPZezziaF8o1AFiGI4OtzaK75uC j/2aaeRU2u6Tc50AtsrcUBZzmknuHbj6IRyXs= Message-ID: Date: Wed, 22 Oct 2008 23:09:57 +0200 From: "Markus Rechberger" To: "Linux Kernel Mailing List" , em28xx Subject: [PATCH 6/7] adding empia cx25843 driver Cc: acano@fastmail.fm, "Andre Kelmanson" , "Bouwsma Barry" , "Dan Kreiser" , "Frank Neuber" , "Jelle de Jong" , "John Stowers" , "Lukas Kuna" , "Stefan Vonolfen" , "Stephan Berberig" , "Thomas Giesecke" , "Vitaly Wool" , "Zhenyu Wang" MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_25569_16624849.1224709797404" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org ------=_Part_25569_16624849.1224709797404 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline em28xx-cx25843.c: chipdriver for cx25843 but the chip configuration (eg. raw VBI offsets, general offsets, audio setup) is bound to the em28xx, all inputs and most videostandards are tested using signal generators. ------=_Part_25569_16624849.1224709797404 Content-Type: text/x-diff; name=em28xx-06.diff Content-Transfer-Encoding: base64 X-Attachment-Id: f_fmmgl4do0 Content-Disposition: attachment; filename=em28xx-06.diff Y29tbWl0IDhlNjcwMWU0MDFhN2QxNjliMTlmNDE2MWY2ZmM0OTkyNDAxNGQ0YjgKQXV0aG9yOiBN YXJrdXMgUmVjaGJlcmdlciA8bXJlY2hiZXJnZXJAc3VuZHRlay5kZT4KRGF0ZTogICBXZWQgT2N0 IDIyIDIyOjEyOjI0IDIwMDggKzAyMDAKCiAgICBhZGRpbmcgZW1waWEgY3gyNTg0MyBkcml2ZXIK ICAgIAogICAgZW0yOHh4LWN4MjU4NDMuYzoKICAgIGNoaXBkcml2ZXIgZm9yIGN4MjU4NDMgYnV0 IHRoZSBjaGlwIGNvbmZpZ3VyYXRpb24gKGVnLiByYXcgVkJJIG9mZnNldHMsIGdlbmVyYWwgb2Zm c2V0cywKICAgIGF1ZGlvIHNldHVwKSBpcyBib3VuZCB0byB0aGUgZW0yOHh4LCBhbGwgaW5wdXRz IGFuZCBtb3N0IHZpZGVvc3RhbmRhcmRzIGFyZSB0ZXN0ZWQKICAgIHVzaW5nIHNpZ25hbCBnZW5l cmF0b3JzLgoKU2lnbmVkLW9mZi1ieTogTWFya3VzIFJlY2hiZXJnZXIgPG1yZWNoYmVyZ2VyQHN1 bmR0ZWsuZGU+CgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9jeDI1ODQz L01ha2VmaWxlIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9jeDI1ODQzL01ha2VmaWxlCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYyYzc2OWQKLS0tIC9kZXYvbnVsbAor KysgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2VtcGlhL2N4MjU4NDMvTWFrZWZpbGUKQEAgLTAsMCAr MSwzIEBACitvYmotbSArPSBlbTI4eHgtY3gyNTg0My5vCisKK0VYVFJBX0NGTEFHUyArPSAtV2Fs bCAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEvY3gyNTg0My9lbTI4eHgt Y3gyNTg0My1mdy5oIGIvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9jeDI1ODQzL2VtMjh4eC1j eDI1ODQzLWZ3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTQ5NDFiNgot LS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEvY3gyNTg0My9lbTI4 eHgtY3gyNTg0My1mdy5oCkBAIC0wLDAgKzEsOSBAQAorI2lmbmRlZiBfQ1gyNTg0M19GVworI2Rl ZmluZSBfQ1gyNTg0M19GVworLyogZmlybXdhcmUgKi8KKworI2RlZmluZSBDT05FWEFOVF9FWFRF Uk5BTF9GSVJNV0FSRQorX191OCAqZW0yOHh4X2N4ZmlybXdhcmU7CitfX3UxNiBlbTI4eHhfY3hm aXJtd2FyZV9sZW5ndGg7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRl by9lbXBpYS9jeDI1ODQzL2VtMjh4eC1jeDI1ODQzLmMgYi9kcml2ZXJzL21lZGlhL3ZpZGVvL2Vt cGlhL2N4MjU4NDMvZW0yOHh4LWN4MjU4NDMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi42Njk0ODEyCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9tZWRpYS92aWRlby9l bXBpYS9jeDI1ODQzL2VtMjh4eC1jeDI1ODQzLmMKQEAgLTAsMCArMSw2OTggQEAKKy8qCisgKiBj eDI1ODQzIC0gQ29uZXhhbnQgY3gyNTg0MyBWaWRlby9BdWRpb2RlY29kZXIKKyAqCisgKiBDb3B5 cmlnaHQgKGMpIDIwMDggTWFya3VzIFJlY2hiZXJnZXIgPG1yZWNoYmVyZ2VyQHN1bmR0ZWsuZGU+ CisgKgorICogT3Bwb3NlZCB0byB0aGUgYXZhaWxhYmxlIGN4MjU4NHgga2VybmVsZHJpdmVyLCB0 aGlzIGRyaXZlcgorICogd2lsbCB2ZXJ5IGxpa2VseSBvbmx5IHdvcmsgZm9yIGVtcGlhIGJhc2Vk IGRldmljZXMgc2luY2UgbW9zdAorICogcmVnaXN0ZXJzIGFyZSBzZXQgdXAgdG8gZml0IHRoZSBj b25maWd1cmF0aW9uIG9mIHRoZSBlbTI4eHggY2hpcAorICogaW4gb3JkZXIgdG8gcHJvdmlkZSBw cm9wZXIgVkJJIGFuZCB2aWRlb3N0YW5kYXJkIHN1cHBvcnQuCisgKgorICovCisKKyNpbmNsdWRl IDxsaW51eC9pMmMuaD4KKyNpbmNsdWRlIDxsaW51eC92ZXJzaW9uLmg+CisjaW5jbHVkZSA8bGlu dXgvdmlkZW9kZXYuaD4KKyNpbmNsdWRlIDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4 L3ZpZGVvX2RlY29kZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9maXJtd2FyZS5oPgorI2luY2x1ZGUg PGxpbnV4L3R5cGVzLmg+CisKKyNpbmNsdWRlIDxtZWRpYS92NGwyLWNvbW1vbi5oPgorI2luY2x1 ZGUgImVtMjh4eC1jeDI1ODQzLmgiCisjaW5jbHVkZSAiZW0yOHh4LWN4MjU4NDMtZncuaCIKKyNp bmNsdWRlICJlbTI4eHhmdy1jeDI1ODQzLmgiCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VS TkVMX1ZFUlNJT04oMiwgNSwgMCkKKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KKyNpbmNsdWRl IDxsaW51eC9kZWxheS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KKyNpbmNsdWRlICJpMmMt Y29tcGF0LmgiCisjZW5kaWYKKyNkZWZpbmUgQ09ORVhBTlRfRVhURVJOQUxfRklSTVdBUkUKKwor I2luY2x1ZGUgImVtMjh4eC1jeDI1ODQzLmgiCisKK01PRFVMRV9ERVNDUklQVElPTigiY3gyNTg0 MyBmb3IgRW1waWEgZW0yOHh4IGJhc2VkIGRldmljZXMiKTsKK01PRFVMRV9BVVRIT1IoIk1hcmt1 cyBSZWNoYmVyZ2VyIDxtcmVjaGJlcmdlckBlbXBpYXRlY2guY29tPiIpOworTU9EVUxFX0xJQ0VO U0UoIkdQTCIpOworCisvKiBzdGFuZGFyZCBpMmMgaW5zbW9kIG9wdGlvbnMgKi8KK3N0YXRpYyB1 bnNpZ25lZCBzaG9ydCBub3JtYWxfaTJjW10gPSB7CisJMHg4OCA+PiAxLAorCUkyQ19DTElFTlRf RU5ECit9OworCisjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiwgNiwg MTMpCitzdGF0aWMgdW5zaWduZWQgc2hvcnQgbm9ybWFsX2kyY19yYW5nZVtdID0geyBJMkNfQ0xJ RU5UX0VORCB9OworI2VuZGlmCitJMkNfQ0xJRU5UX0lOU01PRDsKKworc3RydWN0IGN4MjU4NDMg eworCXN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQ7CisKKwl2NGwyX3N0ZF9pZCBub3JtOwkvKiBD dXJyZW50IHNldCBzdGFuZGFyZCAqLworCXN0cnVjdCB2NGwyX3JvdXRpbmcgcm91dGU7Cit9Owor CitzdGF0aWMgaW50IGN4MjU4NDNfcmVhZChzdHJ1Y3QgaTJjX2NsaWVudCAqYywgdW5zaWduZWQg aW50IGFkZHIpCit7CisJdW5zaWduZWQgY2hhciBidWZmZXJbMl07CisJaW50IHJjOworCisJYnVm ZmVyWzBdID0gYWRkcj4+ODsKKwlidWZmZXJbMV0gPSBhZGRyICYgMHhmZjsKKworCXJjID0gaTJj X21hc3Rlcl9zZW5kKGMsIGJ1ZmZlciwgMik7CisKKwlpZiAoMiAhPSByYykgeworCQlwcmludGso S0VSTl9FUlIiaTJjIGkvbyBlcnJvcjogcmMgPT0gJWQgKHNob3VsZCBiZSAxKVxuIiwgcmMpOwor CQlyZXR1cm4gcmM7CisJfQorCisJbXNsZWVwKDEwKTsKKworCXJjID0gaTJjX21hc3Rlcl9yZWN2 KGMsIGJ1ZmZlciwgMSk7CisJaWYgKDEgIT0gcmMpIHsKKwkJcHJpbnRrKEtFUk5fRVJSImkyYyBp L28gZXJyb3I6IHJjID09ICVkIChzaG91bGQgYmUgMSlcbiIsIHJjKTsKKwkJcmV0dXJuIHJjOwor CX0KKworCXJldHVybiBidWZmZXJbMF07Cit9CisKK3N0YXRpYyBpbnQgY3gyNTg0M19hbmRfb3Io c3RydWN0IGkyY19jbGllbnQgKmMsIHVuc2lnbmVkIGludCBhZGRyLAorCQl1bnNpZ25lZCBjaGFy IGFuZHZhbCwgdW5zaWduZWQgY2hhciBvcnZhbCkKK3sKKwl1bnNpZ25lZCBjaGFyIGJ1ZmZlclsz XTsKKwlpbnQgcmM7CisKKwlidWZmZXJbMF0gPSBhZGRyPj44OworCWJ1ZmZlclsxXSA9IGFkZHIm MHhmZjsKKworCXJjID0gaTJjX21hc3Rlcl9zZW5kKGMsIGJ1ZmZlciwgMik7CisJaWYgKDIgIT0g cmMpIHsKKwkJcHJpbnRrKEtFUk5fRVJSImkyYyBpL28gZXJyb3I6IHJjID09ICVkIChzaG91bGQg YmUgMilcbiIsIHJjKTsKKwkJcmV0dXJuIHJjOworCX0KKworCW1zbGVlcCgxMCk7CisKKwlyYyA9 IGkyY19tYXN0ZXJfcmVjdihjLCBidWZmZXIsIDEpOworCWlmICgxICE9IHJjKSB7CisJCXByaW50 ayhLRVJOX0VSUiJpMmMgaS9vIGVycm9yOiByYyA9PSAlZCAoc2hvdWxkIGJlIDEpXG4iLCByYyk7 CisJCXJldHVybiByYzsKKwl9CisKKwlidWZmZXJbMl0gPSAoYnVmZmVyWzBdJmFuZHZhbCl8b3J2 YWw7CisJYnVmZmVyWzFdID0gYWRkciYweGZmOworCWJ1ZmZlclswXSA9IGFkZHI+Pjg7CisKKwly YyA9IGkyY19tYXN0ZXJfc2VuZChjLCBidWZmZXIsIDMpOworCWlmICgzICE9IHJjKQorCQlwcmlu dGsoS0VSTl9FUlIiaTJjIGkvbyBlcnJvcjogcmMgPT0gJWQgKHNob3VsZCBiZSAzKVxuIiwgcmMp OworCisJcmV0dXJuIHJjOworfQorCitzdGF0aWMgaW50IGN4MjU4NDNfd3JpdGUoc3RydWN0IGky Y19jbGllbnQgKmMsIHVuc2lnbmVkIGludCAgYWRkciwKKwkJdW5zaWduZWQgY2hhciAqdmFsdWUs IGludCBsZW4pCit7CisJaW50IHJjOworCisJX191OCBidWZmZXJbMTAwXTsKKworCWJ1ZmZlclsw XSA9IGFkZHI+Pjg7CisJYnVmZmVyWzFdID0gYWRkciYweGZmOworCisJaWYgKGxlbiA8IDk5KQor CQltZW1jcHkoJmJ1ZmZlclsyXSwgdmFsdWUsIGxlbik7CisJZWxzZQorCQlyZXR1cm4gLUVJTlZB TDsKKworCXJjID0gaTJjX21hc3Rlcl9zZW5kKGMsIGJ1ZmZlciwgbGVuKzIpOworCWlmIChsZW4r MiAhPSByYykgeworCQlwcmludGsoS0VSTl9FUlIiaTJjIGkvbyBlcnJvcjogcmMgPT0gJWQgKHNo b3VsZCBiZSAyKVxuIiwgcmMpOworCQlyZXR1cm4gcmM7CisJfQorCXJldHVybiAwOworfQorCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICBCYXNpYyBmdW5jdGlvbnMKKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCitzdGF0aWMgaW5saW5lIHZvaWQgY3gyNTg0M19zZXRfdmlkZW9yb3V0aW5nKHN0cnVj dCBpMmNfY2xpZW50ICpjKQoreworCXN0cnVjdCBjeDI1ODQzICpkZWNvZGVyID0gaTJjX2dldF9j bGllbnRkYXRhKGMpOworCXN3aXRjaCAoZGVjb2Rlci0+cm91dGUuaW5wdXQpIHsKKwljYXNlIENY MjU4NDNfVEVMRVZJU0lPTjogLyogYW5hbG9ndWUgVFYgKi8KKwkJY3gyNTg0M193cml0ZShjLCBS MTAzX1ZJREVPX0lOUFVUX0NUUkwsICJceDEwIiwgMSk7CisKKwkJY3gyNTg0M193cml0ZShjLCBS NDAwX1ZJREVPX01PREVfQ1RSTDEsICJceDIwIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQw MV9WSURFT19NT0RFX0NUUkwyLCAiXHhlMCIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0MDJf VklERU9fTU9ERV9DVFJMMywgIlx4MDQiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDAzX1ZJ REVPX01PREVfQ1RSTDQsICJceDAwIiwgMSk7CisKKwkJY3gyNTg0M193cml0ZShjLCBSMTA4X1ZJ RF9QTExfQ0xLLCAiXHgwZlx4MDRceDBhXHgxMCIsIDQpOworCQljeDI1ODQzX3dyaXRlKGMsIFI4 RDBfUEFUSF9BVURJT19TTENUX0NUUkwsCisJCQkJIlx4NzBceDM4XHgwNlx4MWYiLCA0KTsKKwkJ Y3gyNTg0M193cml0ZShjLCBSODAzX1NUQVJUX01JQ1JPQ05UTCwgIlx4MDMiLCAxKTsKKwkJY3gy NTg0M193cml0ZShjLCBSODAzX1NUQVJUX01JQ1JPQ05UTCwgIlx4MTMiLCAxKTsKKwkJYnJlYWs7 CisJY2FzZSBDWDI1ODQzX1NWSURFTzogLyogc3ZpZGVvICovCisJCS8qIFRPRE86IGJldHRlciBj b25maWd1cmF0aW9uICovCisJCWN4MjU4NDNfd3JpdGUoYywgUjEwM19WSURFT19JTlBVVF9DVFJM LCAiXHgwMiIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0MDBfVklERU9fTU9ERV9DVFJMMSwg Ilx4MjAiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDAxX1ZJREVPX01PREVfQ1RSTDIsICJc eDAyIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQwMl9WSURFT19NT0RFX0NUUkwzLCAiXHgw MCIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0MDNfVklERU9fTU9ERV9DVFJMNCwgIlx4MDAi LCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSMTA4X1ZJRF9QTExfQ0xLLCAiXHgwZlx4MDRceDBh XHgxOCIsIDQpOworCQljeDI1ODQzX3dyaXRlKGMsIFI4MDNfU1RBUlRfTUlDUk9DTlRMLCAiXHgw MyIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI4RDBfUEFUSF9BVURJT19TTENUX0NUUkwsCisJ CQkJIlx4MTJceDEwXHgwMVx4MDEiLCA0KTsKKwkJYnJlYWs7CisJY2FzZSBDWDI1ODQzX0NPTVBP U0lURTE6IC8qIGNvbXBvc2l0ZSAqLworCQkvKiBUT0RPOiBiZXR0ZXIgY29uZmlndXJhdGlvbiAq LworCQljeDI1ODQzX3dyaXRlKGMsIFIxMDNfVklERU9fSU5QVVRfQ1RSTCwgIlx4MDEiLCAxKTsK KwkJY3gyNTg0M193cml0ZShjLCBSNDAwX1ZJREVPX01PREVfQ1RSTDEsICJceDIwIiwgMSk7CisJ CWN4MjU4NDNfd3JpdGUoYywgUjQwMV9WSURFT19NT0RFX0NUUkwyLCAiXHhmMCIsIDEpOworCQlj eDI1ODQzX3dyaXRlKGMsIFI0MDJfVklERU9fTU9ERV9DVFJMMywgIlx4MDQiLCAxKTsKKwkJY3gy NTg0M193cml0ZShjLCBSNDAzX1ZJREVPX01PREVfQ1RSTDQsICJceDAwIiwgMSk7CisJCWN4MjU4 NDNfd3JpdGUoYywgUjEwOF9WSURfUExMX0NMSywgIlx4MGZceDA0XHgwYVx4MTgiLCA0KTsKKwkJ Y3gyNTg0M193cml0ZShjLCBSODAzX1NUQVJUX01JQ1JPQ05UTCwgIlx4MDMiLCAxKTsKKworCQlj eDI1ODQzX3dyaXRlKGMsIFI4RDBfUEFUSF9BVURJT19TTENUX0NUUkwsCisJCQkJIlx4MTJceDEw XHgwMVx4MDAiLCA0KTsKKwkJYnJlYWs7CisJZGVmYXVsdDoKKwkJYnJlYWs7CisJfQorfTsKKwor c3RydWN0IGkyY19yZWdfdmFsdWUgeworCXVuc2lnbmVkIGNoYXIgcmVnOworCXVuc2lnbmVkIGNo YXIgdmFsdWU7Cit9OworCitzdGF0aWMgaW50IGN4MjU4NDNfc2V0X3N0ZChzdHJ1Y3QgaTJjX2Ns aWVudCAqYykKK3sKKwlzdHJ1Y3QgY3gyNTg0MyAqZGVjb2RlciA9IGkyY19nZXRfY2xpZW50ZGF0 YShjKTsKKworCWlmIChkZWNvZGVyLT5ub3JtID09IFY0TDJfU1REX05UU0NfTSkgeworCisKKwkJ Y3gyNTg0M193cml0ZShjLCBSNDA0X1ZJREVPX09VVFBVVF9DT05UUk9MMSwgIlx4M2UiLCAxKTsK KwkJY3gyNTg0M193cml0ZShjLCBSNDA1X1ZJREVPX09VVFBVVF9DT05UUk9MMiwgIlx4MjkiLCAx KTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDA2X1ZJREVPX09VVFBVVF9DT05UUk9MMywgIlx4MTAi LCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDA3X1ZJREVPX09VVFBVVF9DT05UUk9MNCwgIlx4 MDQiLCAxKTsKKworCQljeDI1ODQzX3dyaXRlKGMsIFI0NzRfVkJMQU5LX0RFTEFZX0xPVywgICJc eDFhIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3NV9WQkxBTktfREVMQVlfSElHSCwgIlx4 NzAiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDc2X1ZBQ1RJVkVfSElHSCwgICAgICAiXHgx ZSIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0NzdfVkJMQU5LX0RFTEFZXzY1NiwgICJceDFl IiwgMSk7CisKKwkJY3gyNTg0M193cml0ZShjLCBSNDcwX0hCTEFOS19ERUxBWV9MT1csICAiXHg3 ZSIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0NzFfSEJMQU5LX0RFTEFZX0hJR0gsICJceDAw IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3Ml9IQUNUSVZFX0hJR0gsICAgICAgIlx4MmQi LCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDczX0JVUlNUX0dBVEVfREVMQVksICAiXHg1YiIs IDEpOworCisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3Q19TVUJDQVJSSUVSX1NURVBfU0laRV9MT1cs ICJceDFmIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3RF9TVUJDQVJSSUVSX1NURVBfU0la RV9NSUQsICJceDdjIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3RV9TVUJDQVJSSUVSX1NU RVBfU0laRV9ISUdILCAiXHgwOCIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0N0ZfVkJJX09G RlNFVCwgIlx4MDAiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSODA4X0FVRElPX0NPTkZJR1VS QVRJT04sICJceGY2IiwgMSk7CisKKwl9IGVsc2UgaWYgKGRlY29kZXItPm5vcm0gJiBWNEwyX1NU RF9QQUxfQkcgfHwKKwkJCWRlY29kZXItPm5vcm0gJiBWNEwyX1NURF9QQUxfSSB8fAorCQkJZGVj b2Rlci0+bm9ybSAmIFY0TDJfU1REX1BBTF9ESykgeworCisJCWN4MjU4NDNfd3JpdGUoYywgUjQw NF9WSURFT19PVVRQVVRfQ09OVFJPTDEsICJceDNlIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywg UjQwNV9WSURFT19PVVRQVVRfQ09OVFJPTDIsICJceDI5IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUo YywgUjQwNl9WSURFT19PVVRQVVRfQ09OVFJPTDMsICJceDEwIiwgMSk7CisJCWN4MjU4NDNfd3Jp dGUoYywgUjQwN19WSURFT19PVVRQVVRfQ09OVFJPTDQsICJceDAwIiwgMSk7CisKKwkJLyogdGhv c2UgY29uZmlndXJhdGlvbnMgbWF0Y2ggdGhlIGVtMjh4eCBWQkkgY2hpcAorCQkgICBjb25maWd1 cmF0aW9uICovCisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3NF9WQkxBTktfREVMQVlfTE9XLCAgIlx4 MjIiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDc1X1ZCTEFOS19ERUxBWV9ISUdILCAiXHgz MCIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0NzZfVkFDVElWRV9ISUdILCAgICAgICJceDI0 IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3N19WQkxBTktfREVMQVlfNjU2LCAgIlx4Mjgi LCAxKTsKKworCQljeDI1ODQzX3dyaXRlKGMsIFI0NzBfSEJMQU5LX0RFTEFZX0xPVywgICJceDhh IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3MV9IQkxBTktfREVMQVlfSElHSCwgIlx4MDAi LCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDcyX0hBQ1RJVkVfSElHSCwgICAgICAiXHgyZCIs IDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI0NzNfQlVSU1RfR0FURV9ERUxBWSwgICJceDVkIiwg MSk7CisKKwkJY3gyNTg0M193cml0ZShjLCBSNDdDX1NVQkNBUlJJRVJfU1RFUF9TSVpFX0xPVywg Ilx4NjMiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDdEX1NVQkNBUlJJRVJfU1RFUF9TSVpF X01JRCwgIlx4ODIiLCAxKTsKKwkJY3gyNTg0M193cml0ZShjLCBSNDdFX1NVQkNBUlJJRVJfU1RF UF9TSVpFX0hJR0gsICJceDBhIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3Rl9WQklfT0ZG U0VULCAiXHgwMSIsIDEpOworCQljeDI1ODQzX3dyaXRlKGMsIFI4MDhfQVVESU9fQ09ORklHVVJB VElPTiwgIlx4ZmYiLCAxKTsKKworCX0gZWxzZSAgaWYgKGRlY29kZXItPm5vcm0gPT0gVjRMMl9T VERfU0VDQU1fTCkgeworCisJCWN4MjU4NDNfd3JpdGUoYywgUjQwNF9WSURFT19PVVRQVVRfQ09O VFJPTDEsICJceDNlIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQwNV9WSURFT19PVVRQVVRf Q09OVFJPTDIsICJceDI5IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQwNl9WSURFT19PVVRQ VVRfQ09OVFJPTDMsICJceDEwIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQwN19WSURFT19P VVRQVVRfQ09OVFJPTDQsICJceDAwIiwgMSk7CisKKwkJLyogdGhvc2UgY29uZmlndXJhdGlvbnMg bWF0Y2ggdGhlIGVtMjh4eCBWQkkgY2hpcAorCQkgICBjb25maWd1cmF0aW9uICovCisJCWN4MjU4 NDNfd3JpdGUoYywgUjQ3NF9WQkxBTktfREVMQVlfTE9XLCAgIlx4MjIiLCAxKTsKKwkJY3gyNTg0 M193cml0ZShjLCBSNDc1X1ZCTEFOS19ERUxBWV9ISUdILCAiXHgzMCIsIDEpOworCQljeDI1ODQz X3dyaXRlKGMsIFI0NzZfVkFDVElWRV9ISUdILCAgICAgICJceDI0IiwgMSk7CisJCWN4MjU4NDNf d3JpdGUoYywgUjQ3N19WQkxBTktfREVMQVlfNjU2LCAgIlx4MjgiLCAxKTsKKworCQljeDI1ODQz X3dyaXRlKGMsIFI0NzBfSEJMQU5LX0RFTEFZX0xPVywgICJceDhhIiwgMSk7CisJCWN4MjU4NDNf d3JpdGUoYywgUjQ3MV9IQkxBTktfREVMQVlfSElHSCwgIlx4MDAiLCAxKTsKKwkJY3gyNTg0M193 cml0ZShjLCBSNDcyX0hBQ1RJVkVfSElHSCwgICAgICAiXHgyZCIsIDEpOworCQljeDI1ODQzX3dy aXRlKGMsIFI0NzNfQlVSU1RfR0FURV9ERUxBWSwgICJceDVkIiwgMSk7CisKKwkJY3gyNTg0M193 cml0ZShjLCBSNDdDX1NVQkNBUlJJRVJfU1RFUF9TSVpFX0xPVywgIlx4NWYiLCAxKTsKKwkJY3gy NTg0M193cml0ZShjLCBSNDdEX1NVQkNBUlJJRVJfU1RFUF9TSVpFX01JRCwgIlx4NDIiLCAxKTsK KwkJY3gyNTg0M193cml0ZShjLCBSNDdFX1NVQkNBUlJJRVJfU1RFUF9TSVpFX0hJR0gsICJceDBh IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjQ3Rl9WQklfT0ZGU0VULCAiXHgwMSIsIDEpOwor CQljeDI1ODQzX3dyaXRlKGMsIFI4MDhfQVVESU9fQ09ORklHVVJBVElPTiwgIlx4ZjUiLCAxKTsK Kwl9CisKKwlyZXR1cm4gMDsKKworCit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjeDI1ODQzX3Jl c2V0KHN0cnVjdCBpMmNfY2xpZW50ICpjKQoreworCWludCBpOworCisKKwljeDI1ODQzX3dyaXRl KGMsIFI4MDNfRE9XTkxPQURfQ09OVFJPTCwgIlx4MDAiLCAxKTsKKworCS8qIGluaXRpYWxpemUg RExMMSAqLworCWN4MjU4NDNfd3JpdGUoYywgUjE1QV9ETEwxX0RJQUdOT1NUSUNfQ09OVFJPTDMs ICJceDg3IiwgMSk7CisJY3gyNTg0M193cml0ZShjLCBSMTVCX0RMTDFfRElBR05PU1RJQ19DT05U Uk9MNCwgIlx4MDYiLCAxKTsKKwl1ZGVsYXkoMTApOworCWN4MjU4NDNfd3JpdGUoYywgUjE1OV9E TEwxX0RJQUdOT1NUSUNfQ09OVFJPTDIsICJceDIxIiwgMSk7CisJdWRlbGF5KDEwKTsKKwljeDI1 ODQzX3dyaXRlKGMsIFIxNTlfRExMMV9ESUFHTk9TVElDX0NPTlRST0wyLCAiXHhlMSIsIDEpOwor CWN4MjU4NDNfd3JpdGUoYywgUjE1OV9ETEwxX0RJQUdOT1NUSUNfQ09OVFJPTDIsICJceGUwIiwg MSk7CisKKwljeDI1ODQzX3dyaXRlKGMsIFIxNUJfRExMMV9ESUFHTk9TVElDX0NPTlRST0w0LCAi XHgxMCIsIDEpOworCWN4MjU4NDNfd3JpdGUoYywgUjE1Ql9ETEwxX0RJQUdOT1NUSUNfQ09OVFJP TDQsICJceDAwIiwgMSk7CisJY3gyNTg0M193cml0ZShjLCBSMTVCX0RMTDFfRElBR05PU1RJQ19D T05UUk9MNCwgIlx4MTAiLCAxKTsKKworCS8qIGluaXRpYWxpemUgRExMMiAqLworCWN4MjU4NDNf d3JpdGUoYywgUjE1RV9ETEwyX0RJQUdOT1NUSUNfQ09OVFJPTDMsICJceDg2IiwgMSk7CisJY3gy NTg0M193cml0ZShjLCBSMTVGX0RMTDJfRElBR05PU1RJQ19DT05UUk9MNCwgIlx4MDYiLCAxKTsK KwljeDI1ODQzX3dyaXRlKGMsIFIxNURfRExMMl9ESUFHTk9TVElDX0NPTlRST0wyLCAiXHgyMyIs IDEpOworCWN4MjU4NDNfd3JpdGUoYywgUjE1RF9ETEwyX0RJQUdOT1NUSUNfQ09OVFJPTDIsICJc eGUzIiwgMSk7CisJdWRlbGF5KDEwKTsKKwljeDI1ODQzX3dyaXRlKGMsIFIxNURfRExMMl9ESUFH Tk9TVElDX0NPTlRST0wyLCAiXHhlMSIsIDEpOworCWN4MjU4NDNfd3JpdGUoYywgUjE1RF9ETEwy X0RJQUdOT1NUSUNfQ09OVFJPTDIsICJceGUwIiwgMSk7CisJY3gyNTg0M193cml0ZShjLCBSMTVE X0RMTDJfRElBR05PU1RJQ19DT05UUk9MMiwgIlx4ZTEiLCAxKTsKKworCWN4MjU4NDNfd3JpdGUo YywgUjEzQ19BRkVfRElBR05PU1RJQ19DT05UUk9MNSwgIlx4MDEiLCAxKTsKKwljeDI1ODQzX3dy aXRlKGMsIFIxM0NfQUZFX0RJQUdOT1NUSUNfQ09OVFJPTDUsICJceDAwIiwgMSk7CisKKwljeDI1 ODQzX2FuZF9vcihjLCBSODAzX0RPV05MT0FEX0NPTlRST0wsIH4weDFiLCAweGIpOworCWN4MjU4 NDNfYW5kX29yKGMsIFIwMDBfSE9TVF9SRUdJU1RFUl8xLCB+MHgyMCwgMHgyMCk7CisKKwljeDI1 ODQzX3dyaXRlKGMsIFI4MDFfRE9XTkxPQURfQUREUkVTU19ISUdIX0JZVEUsICJceDAwIiwgMSk7 CisJY3gyNTg0M193cml0ZShjLCBSODAwX0RPV05MT0FEX0FERFJFU1NfTE9XX0JZVEUsICJceDAw IiwgMSk7CisKKwkvKiBsb2FkIGZpcm13YXJlICovCisKKwlmb3IgKGkgPSAwOyBpPGVtMjh4eF9j eGZpcm13YXJlX2xlbmd0aDsgaSsrKSB7CisJCWN4MjU4NDNfd3JpdGUoYywgUjgwMl9ET1dOTE9B RF9EQVRBX0NPTlRST0wsCisJCQkJJmVtMjh4eF9jeGZpcm13YXJlW2krMV0sIGVtMjh4eF9jeGZp cm13YXJlW2ldKTsKKworCQlpICs9IGVtMjh4eF9jeGZpcm13YXJlW2ldOworCX0KKwljeDI1ODQz X2FuZF9vcihjLCBSMDAwX0hPU1RfUkVHSVNURVJfMSwgfjB4MjAsIDB4MDApOworCWN4MjU4NDNf d3JpdGUoYywgUjgwM19ET1dOTE9BRF9DT05UUk9MLCAiXHgxMyIsIDEpOworCisJLyogRW5hYmxl IGRpZ2l0YWwgb3V0cHV0IGRyaXZlcnMgKi8KKwljeDI1ODQzX3dyaXRlKGMsIFIxMTVfUElOX0NP TlRST0wyLCAiXHg4YyIsIDEpOworCWN4MjU4NDNfd3JpdGUoYywgUjExNl9QSU5fQ09OVFJPTDMs ICJceDA3IiwgMSk7CisJY3gyNTg0M193cml0ZShjLCBSMTE4X1BJTl9DT05UUk9MNSwgIlx4MDIi LCAxKTsKKworCS8qIGluaXRpYWxpemUgdmlkZW9kZWNvZGVyICovCisJY3gyNTg0M193cml0ZShj LCBSNEE1X1NPRlRfUkVTRVRfTUFTSzIsICJceDgwIiwgMSk7CisJY3gyNTg0M193cml0ZShjLCBS NEE1X1NPRlRfUkVTRVRfTUFTSzIsICJceDAwIiwgMSk7CisKKwljeDI1ODQzX3dyaXRlKGMsIFI0 MDJfVklERU9fTU9ERV9DVFJMMywgIlx4MDAiLCAxKTsKKworCS8qIG9wdGltaXplIHZpZGVvIGRl Y29kZXIgc2V0dGluZ3MgKi8KKworCWN4MjU4NDNfYW5kX29yKGMsIFI0MDFfVklERU9fTU9ERV9D VFJMMiwgfjB4MjgsIDApOworCWN4MjU4NDNfYW5kX29yKGMsIFI0QTJfV0hJVEVfQ1JVU0hfQ09N UEFSSVNPTl9QVCwgMCwgOCk7CisKKwljeDI1ODQzX3dyaXRlKGMsIFI5MTRfU0VSSUFMX0FVRElP X0lOUFVUX0NUUkwsCisJCQkiXHgyMFx4MDBceDAwXHgwMCIsIDQpOworCisJY3gyNTg0M193cml0 ZShjLCBSOTE4X1NFUklBTF9BVURJT19PVVRQVVRfQ1RSTDEsCisJCQkiXHgyMFx4MDFceDAwXHgw MCIsIDQpOworCisJY3gyNTg0M193cml0ZShjLCBSNDAwX1ZJREVPX01PREVfQ1RSTDEsICJceDIw IiwgMSk7CisJY3gyNTg0M193cml0ZShjLCBSNDAxX1ZJREVPX01PREVfQ1RSTDIsICJceGYwIiwg MSk7CisJY3gyNTg0M193cml0ZShjLCBSNDAyX1ZJREVPX01PREVfQ1RSTDMsICJceDA0IiwgMSk7 CisJY3gyNTg0M193cml0ZShjLCBSNDAzX1ZJREVPX01PREVfQ1RSTDQsICJceDAwIiwgMSk7CisK KwljeDI1ODQzX3dyaXRlKGMsIFI4MDlfUFJFRkVSUkVEX0RFQ09ERV9NT0RFLCAiXHgwNCIsIDEp OworCisJLyogc3RhcnQgbWljcm9jb250cm9sbGVyICovCisJY3gyNTg0M193cml0ZShjLCBSODAz X1NUQVJUX01JQ1JPQ05UTCwgIlx4MTMiLCAxKTsKKworCisKK307CisKK3N0YXRpYyBpbnQgY3gy NTg0M19nZXRfY3RybChzdHJ1Y3QgaTJjX2NsaWVudCAqYywgc3RydWN0IHY0bDJfY29udHJvbCAq Y3RybCkKK3sKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3RhdGljIGludCBjeDI1ODQzX2dldF90 dW5lcihzdHJ1Y3QgaTJjX2NsaWVudCAqYywgc3RydWN0IHY0bDJfdHVuZXIgKnZ0KQoreworCV9f dTggc3RhdHVzMjsKKwlfX3U4IG1vZGVzdGF0dXM7CisKKwlpZiAodnQtPnR5cGUgPT0gVjRMMl9U VU5FUl9SQURJTykgeworCQlzdGF0dXMyID0gY3gyNTg0M19yZWFkKGMsIFI0MEVfR0VORVJBTF9T VEFUVVMpOworCQltb2Rlc3RhdHVzID0gY3gyNTg0M19yZWFkKGMsIFI4MDRfTU9ERV9ERVRFQ1Rf U1RBVFVTKTsKKworCQkvKiBzdGF0dXMyIGRvZXNuJ3QgYWx3YXlzIGdldCBhIGxvY2sgLi4gY2hl Y2tpbmcgbW9kZXN0YXR1cworCQkgICBhcyBhIHdvcmthcm91bmQgKi8KKworCQlpZiAoc3RhdHVz MiAmIDB4MjAgfHwgbW9kZXN0YXR1cyAhPSAwKQorCQkJdnQtPnNpZ25hbCA9IDB4ZmZmZjsKKwkJ ZWxzZQorCQkJdnQtPnNpZ25hbCA9IDB4MDsKKworCQl2dC0+dHlwZSA9IFY0TDJfVFVORVJfUkFE SU87CisKKwkJdnQtPnJhbmdlbG93ID0gKDg3KjE2MDAwKTsKKwkJdnQtPnJhbmdlaGlnaCA9ICgx MDgqMTYwMDApOworCisJCXN0cmNweSh2dC0+bmFtZSwgIkVtcGlhIEZNIik7CisKKwkJdnQtPmNh cGFiaWxpdHkgPSBWNEwyX1RVTkVSX0NBUF9MT1c7CisKKworCQl2dC0+cnhzdWJjaGFucyA9IDA7 CisKKwkJc3dpdGNoIChtb2Rlc3RhdHVzKSB7CisJCWNhc2UgMHgwMDoKKwkJCS8qIE1vbm8gKi8K KwkJCXZ0LT5yeHN1YmNoYW5zIHw9IFY0TDJfVFVORVJfU1VCX01PTk87CisJCQlicmVhazsKKwkJ Y2FzZSAweDAxOgorCQkJLyogU3RlcmVvICovCisJCQl2dC0+c2lnbmFsID0gMHhmZmZmOworCQkJ dnQtPnJ4c3ViY2hhbnMgfD0gVjRMMl9UVU5FUl9TVUJfU1RFUkVPOworCQkJYnJlYWs7CisJCWNh c2UgMHgwMjoKKwkJCS8qIER1YWwgKi8KKwkJCXZ0LT5zaWduYWwgPSAweGZmZmY7CisJCQlicmVh azsKKwkJY2FzZSAweDA0OgorCQkJLyogVHJpICovCisJCQl2dC0+c2lnbmFsID0gMHhmZmZmOwor CQkJYnJlYWs7CisJCWNhc2UgMHgxMDoKKwkJCS8qIFNBUCAqLworCQkJdnQtPnNpZ25hbCA9IDB4 ZmZmZjsKKwkJCXZ0LT5yeHN1YmNoYW5zIHw9IFY0TDJfVFVORVJfU1VCX1NBUDsKKwkJCWJyZWFr OworCQljYXNlIDB4RkU6CisJCQkvKiBGb3JjZWQgTW9kZSAqLworCQkJdnQtPnNpZ25hbCA9IDB4 ZmZmZjsKKwkJCXZ0LT5yeHN1YmNoYW5zID0gMDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJ YnJlYWs7CisJCQkvKiB1bmRlZiAqLworCQl9CisKKwkJdnQtPmF1ZG1vZGUgPSBWNEwyX1RVTkVS X01PREVfU1RFUkVPOyAvKiBrZWVwIGl0IHRoYXQgd2F5IGZvcgorCQkJCQkJCSBub3cgKi8KKwor CX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGN4MjU4NDNfc2V0X2F1ZGlvX3JvdXRp bmcoc3RydWN0IGkyY19jbGllbnQgKmMsCisJCXN0cnVjdCB2NGwyX3JvdXRpbmcgKnJvdXRlKQor eworCXN3aXRjaCAocm91dGUtPmlucHV0KSB7CisJY2FzZSBDWDI1ODQzX0NPTVBPU0lURTE6CisJ Y2FzZSBDWDI1ODQzX1RFTEVWSVNJT046CisJY2FzZSBDWDI1ODQzX1NWSURFTzoKKwkJLyogc3Rh bmRhcmQgZGVwZW5kZW50IGFjdHVhbGx5ICovCisJCWJyZWFrOworCWNhc2UgQ1gyNTg0M19SQURJ TzoKKwkJLyogcmFkaW8gKi8KKwkJY3gyNTg0M193cml0ZShjLCBSODA4X0FVRElPX0NPTkZJR1VS QVRJT04sICJceGY5IiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjgwM19TVEFSVF9NSUNST0NO VEwsICJceDAzIiwgMSk7CisJCWN4MjU4NDNfd3JpdGUoYywgUjgwM19TVEFSVF9NSUNST0NOVEws ICJceDEzIiwgMSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gMDsKK30KKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKyAgSTJDIENvbW1hbmQKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIGlu dCBjeDI1ODQzX2NvbW1hbmQoc3RydWN0IGkyY19jbGllbnQgKmMsCisJCXVuc2lnbmVkIGludCBj bWQsIHZvaWQgKmFyZykKK3sKKwlzdHJ1Y3QgY3gyNTg0MyAqZGVjb2RlciA9IGkyY19nZXRfY2xp ZW50ZGF0YShjKTsKKworCXN3aXRjaCAoY21kKSB7CisJY2FzZSBWSURJT0NfSU5UX1JFU0VUOgor CQl7CisjaWZkZWYgQ09ORVhBTlRfRVhURVJOQUxfRklSTVdBUkUKKwkJCWludCByZXQgPSAwOwor CQkJY29uc3Qgc3RydWN0IGZpcm13YXJlICpmdzsKKwkJCXN0YXRpYyB1bnNpZ25lZCBjaGFyICpj eDI1ODQzX2Zpcm13YXJlOworCisJCQlpZiAoY3gyNTg0M19maXJtd2FyZSA9PSBOVUxMKSB7CisJ CQkJcmV0ID0gcmVxdWVzdF9maXJtd2FyZSgmZncsICJlbTI4eHgtY3gyNTg0My5mdyIsICZjLT5k ZXYpOworCisJCQkJaWYgKHJldCB8fCBmdy0+c2l6ZSAhPSAxNjY1NCkgeworCQkJCQlwcmludGso ImVtMjh4eC1jeDI1ODQzOiBQbGVhc2UgY2hlY2sgZW0yOHh4LWN4MjU4NDMuZncgZmlsZXNpemUg aGFzIHRvIGJlIDE2NjU0IGJ5dGVzXG4iKTsKKwkJCQkJcHJpbnRrKCJlbTI4eHgtY3gyNTg0Mzog Y2QgL2xpYi9maXJtd2FyZVxuIik7CisJCQkJCXByaW50aygiZW0yOHh4LWN4MjU4NDM6IHN1ZG8g d2dldCBtY2VudHJhbC5kZS9lbXBpYS9lbTI4eHgtY3gyNTg0My5md1xuIik7CisJCQkJCXJldHVy biAtRUlOVkFMOworCQkJCX0gZWxzZQorCQkJCQlwcmludGsoImVtMjh4eC1jeDI1ODQzOiBlbTI4 eHgtY3gyNTg0My5mdyBzdWNjZXNzZnVsbHkgbG9hZGVkIHRvIFJBTVxuIik7CisKKwkJCQkgZW0y OHh4X2N4ZmlybXdhcmUgPSBremFsbG9jKGZ3LT5zaXplLCBHRlBfS0VSTkVMKTsKKworCQkJCW1l bWNweShlbTI4eHhfY3hmaXJtd2FyZSwgJmZ3LT5kYXRhWzZdLCBmdy0+c2l6ZS02KTsKKwkJCQly ZWxlYXNlX2Zpcm13YXJlKGZ3KTsKKwkJCQllbTI4eHhfY3hmaXJtd2FyZV9sZW5ndGggPSAxNjY0 ODsKKwkJCX0KKyNlbmRpZgorCQkJY3gyNTg0M19yZXNldChjKTsKKwkJCWJyZWFrOworCQl9CisJ Y2FzZSBWSURJT0NfSU5UX0dfVklERU9fUk9VVElORzoKKwkJeworCQkJc3RydWN0IHY0bDJfcm91 dGluZyAqcm91dGUgPSBhcmc7CisKKwkJCSpyb3V0ZSA9IGRlY29kZXItPnJvdXRlOworCQkJYnJl YWs7CisJCX0KKwljYXNlIFZJRElPQ19JTlRfU19WSURFT19ST1VUSU5HOgorCQl7CisJCQlzdHJ1 Y3QgdjRsMl9yb3V0aW5nICpyb3V0ZSA9IGFyZzsKKworCQkJZGVjb2Rlci0+cm91dGUgPSAqcm91 dGU7CisJCQljeDI1ODQzX3NldF92aWRlb3JvdXRpbmcoYyk7CisJCQlicmVhazsKKwkJfQorCWNh c2UgVklESU9DX0lOVF9TX0FVRElPX1JPVVRJTkc6CisJCXsKKwkJCWN4MjU4NDNfc2V0X2F1ZGlv X3JvdXRpbmcoYywgYXJnKTsKKwkJCWJyZWFrOworCQl9CisJY2FzZSBWSURJT0NfU19TVEQ6CisJ CWRlY29kZXItPm5vcm0gPSAqKHY0bDJfc3RkX2lkICopYXJnOworCQlyZXR1cm4gY3gyNTg0M19z ZXRfc3RkKGMpOworCWNhc2UgVklESU9DX0dfU1REOgorCQkqKHY0bDJfc3RkX2lkICopYXJnID0g ZGVjb2Rlci0+bm9ybTsKKwkJYnJlYWs7CisKKwljYXNlIFZJRElPQ19HX1NMSUNFRF9WQklfQ0FQ OgorCQl7CisJCQkvKiB0b2RvICovCisJCQlicmVhazsKKwkJfQorCWNhc2UgVklESU9DX1NfRk1U OgorCQl7CisJCQlicmVhazsKKwkJfQorCWNhc2UgVklESU9DX0dfRk1UOgorCQl7CisJCQlicmVh azsKKwkJfQorCisJY2FzZSBWSURJT0NfTE9HX1NUQVRVUzoKKwkJYnJlYWs7CisKKwljYXNlIFZJ RElPQ19HX1RVTkVSOgorCQl7CisJCQlzdHJ1Y3QgdjRsMl90dW5lciAqdnQgPSBhcmc7CisJCQlj eDI1ODQzX2dldF90dW5lcihjLCB2dCk7CisKKwkJCWJyZWFrOworCQl9CisJY2FzZSBWSURJT0Nf UVVFUllDVFJMOgorCQl7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCWNhc2UgVklESU9DX0df Q1RSTDoKKwkJeworCQkJc3RydWN0IHY0bDJfY29udHJvbCAqY3RybCA9IGFyZzsKKwkJCXJldHVy biBjeDI1ODQzX2dldF9jdHJsKGMsIGN0cmwpOworCQl9CisJY2FzZSBWSURJT0NfU19DVFJMOgor CQl7CisJCQlyZXR1cm4gLUVJTlZBTDsKKwkJfQorCisJZGVmYXVsdDoKKwkJcmV0dXJuIC1FSU5W QUw7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgIEkyQyBD bGllbnQgJiBEcml2ZXIKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworc3RhdGljIHN0cnVjdCBpMmNf ZHJpdmVyIGRyaXZlcjsKKworc3RhdGljIHN0cnVjdCBpMmNfY2xpZW50IGNsaWVudF90ZW1wbGF0 ZSA9IHsKKwkubmFtZSA9ICIodW5zZXQpIiwKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gIEtF Uk5FTF9WRVJTSU9OKDIsIDYsIDE1KQorCS5mbGFncyA9IEkyQ19DTElFTlRfQUxMT1dfVVNFLAor I2VuZGlmCisJLmRyaXZlciA9ICZkcml2ZXIsCit9OworCisjaWYgTElOVVhfVkVSU0lPTl9DT0RF ID49IEtFUk5FTF9WRVJTSU9OKDIsIDUsIDApCitzdGF0aWMgaW50IGN4MjU4NDNfZGV0ZWN0X2Ns aWVudChzdHJ1Y3QgaTJjX2FkYXB0ZXIgKmFkYXB0ZXIsCisJCWludCBhZGRyZXNzLCBpbnQga2lu ZCkKKyNlbHNlCitzdGF0aWMgaW50IGN4MjU4NDNfZGV0ZWN0X2NsaWVudChzdHJ1Y3QgaTJjX2Fk YXB0ZXIgKmFkYXB0ZXIsCisJCWludCBhZGRyZXNzLCB1bnNpZ25lZCBzaG9ydCBmbGFncywgaW50 IGtpbmQpCisjZW5kaWYKK3sKKwlzdHJ1Y3QgaTJjX2NsaWVudCAqYzsKKwlzdHJ1Y3QgY3gyNTg0 MyAqY29yZTsKKwlpbnQgcnY7CisKKwlwcmludGsoS0VSTl9JTkZPImN4MjU4NDMuYzogZGV0ZWN0 aW5nIGN4MjU4NDMgY2xpZW50IG9uIGFkZHJlc3MgMHgleFxuIiwKKwkJCWFkZHJlc3MgPDwgMSk7 CisKKwljbGllbnRfdGVtcGxhdGUuYWRhcHRlciA9IGFkYXB0ZXI7CisJY2xpZW50X3RlbXBsYXRl LmFkZHIgPSBhZGRyZXNzOworCisJLyogQ2hlY2sgaWYgdGhlIGFkYXB0ZXIgc3VwcG9ydHMgdGhl IG5lZWRlZCBmZWF0dXJlcyAqLworCWlmICghaTJjX2NoZWNrX2Z1bmN0aW9uYWxpdHkKKwkJCShh ZGFwdGVyLAorCQkJIEkyQ19GVU5DX1NNQlVTX1JFQURfQllURSB8CisJCQkgSTJDX0ZVTkNfU01C VVNfV1JJVEVfQllURV9EQVRBKSkKKwkJcmV0dXJuIDA7CisKKwljID0ga21hbGxvYyhzaXplb2Yo c3RydWN0IGkyY19jbGllbnQpLCBHRlBfS0VSTkVMKTsKKwlpZiAoYyA9PSAwKQorCQlyZXR1cm4g LUVOT01FTTsKKwltZW1jcHkoYywgJmNsaWVudF90ZW1wbGF0ZSwgc2l6ZW9mKHN0cnVjdCBpMmNf Y2xpZW50KSk7CisKKwljb3JlID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGN4MjU4NDMpLCBHRlBf S0VSTkVMKTsKKwlpZiAoY29yZSA9PSAwKSB7CisJCWtmcmVlKGMpOworCQlyZXR1cm4gLUVOT01F TTsKKwl9CisJaTJjX3NldF9jbGllbnRkYXRhKGMsIGNvcmUpOworCisJcnYgPSBpMmNfYXR0YWNo X2NsaWVudChjKTsKKworCWNvcmUtPm5vcm0gPSBWNEwyX1NURF9BTEw7CS8qIERlZmF1bHQgaXMg YXV0b2RldGVjdCAqLworCWNvcmUtPnJvdXRlLmlucHV0ID0gQ1gyNTg0M19URUxFVklTSU9OOwor CisJaWYgKHJ2KSB7CisJCWtmcmVlKGMpOworCQlrZnJlZShjb3JlKTsKKwkJcmV0dXJuIHJ2Owor CX0KKworI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA8IEtFUk5FTF9WRVJTSU9OKDIsIDUsIDApCisJ TU9EX0lOQ19VU0VfQ09VTlQ7CisjZW5kaWYKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBj eDI1ODQzX2F0dGFjaF9hZGFwdGVyKHN0cnVjdCBpMmNfYWRhcHRlciAqYWRhcHRlcikKK3sKKwlw cmludGsoS0VSTl9JTkZPImN4MjU4NDMuYzogc3RhcnRpbmcgcHJvYmUgZm9yIGFkYXB0ZXIgJXMg KDB4JXgpXG4iLAorCQkJYWRhcHRlci0+bmFtZSwgYWRhcHRlci0+aWQpOworCXJldHVybiBpMmNf cHJvYmUoYWRhcHRlciwgJmFkZHJfZGF0YSwgJmN4MjU4NDNfZGV0ZWN0X2NsaWVudCk7Cit9CisK K3N0YXRpYyBpbnQgY3gyNTg0M19kZXRhY2hfY2xpZW50KHN0cnVjdCBpMmNfY2xpZW50ICpjKQor eworCXN0cnVjdCBjeDI1ODQzICpkZWNvZGVyID0gaTJjX2dldF9jbGllbnRkYXRhKGMpOworCWlu dCBlcnI7CisKKwlwcmludGsoS0VSTl9JTkZPImN4MjU4NDMuYzogcmVtb3ZpbmcgY3gyNTg0MyBh ZGFwdGVyIG9uIGFkZHJlc3MgMHgleFxuIiwKKwkJCWMtPmFkZHIgPDwgMSk7CisKKwllcnIgPSBp MmNfZGV0YWNoX2NsaWVudChjKTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJa2ZyZWUo ZGVjb2Rlcik7CisJa2ZyZWUoYyk7CisKKwlyZXR1cm4gMDsKK30KKworLyogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gKi8KKworCXN0YXRpYyBzdHJ1Y3QgaTJjX2RyaXZlciBkcml2ZXIgPSB7CisjaWYgKExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLCA1LCAwKSkgJiYgXAorCQkoTElOVVhf VkVSU0lPTl9DT0RFIDw9IEtFUk5FTF9WRVJTSU9OKDIsIDYsIDE1KSkKKwkJLm93bmVyID0gVEhJ U19NT0RVTEUsCisjZW5kaWYKKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPD0gIEtFUk5FTF9WRVJT SU9OKDIsIDYsIDE1KQorCQkubmFtZSA9ICJjeDI1ODQzIiwKKwkJLmZsYWdzID0gSTJDX0RGX05P VElGWSwKKyNlbHNlCisJCS5kcml2ZXIgPSB7CisJCQkubmFtZSA9ICJjeDI1ODQzIiwKKwkJfSwK KyNlbmRpZgorCQkuaWQgPSBJMkNfRFJJVkVSSURfRUVUSV9DWDI1ODQzLAorCisJCS5hdHRhY2hf YWRhcHRlciA9IGN4MjU4NDNfYXR0YWNoX2FkYXB0ZXIsCisJCS5kZXRhY2hfY2xpZW50ID0gY3gy NTg0M19kZXRhY2hfY2xpZW50LAorCisJCS5jb21tYW5kID0gY3gyNTg0M19jb21tYW5kLAorCX07 CisKK3N0YXRpYyBpbnQgX19pbml0IGN4MjU4NDNfaW5pdCh2b2lkKQoreworCXJldHVybiBpMmNf YWRkX2RyaXZlcigmZHJpdmVyKTsKK30KKworc3RhdGljIHZvaWQgX19leGl0IGN4MjU4NDNfZXhp dCh2b2lkKQoreworCWkyY19kZWxfZHJpdmVyKCZkcml2ZXIpOworfQorCittb2R1bGVfaW5pdChj eDI1ODQzX2luaXQpOworbW9kdWxlX2V4aXQoY3gyNTg0M19leGl0KTsKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWVkaWEvdmlkZW8vZW1waWEvY3gyNTg0My9lbTI4eHgtY3gyNTg0My5oIGIvZHJpdmVy cy9tZWRpYS92aWRlby9lbXBpYS9jeDI1ODQzL2VtMjh4eC1jeDI1ODQzLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU1ZTk3ZQotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZl cnMvbWVkaWEvdmlkZW8vZW1waWEvY3gyNTg0My9lbTI4eHgtY3gyNTg0My5oCkBAIC0wLDAgKzEs OTIgQEAKKyNpZm5kZWYgX0VNMjhYWF9DWDI1ODQzX0gKKyNkZWZpbmUgX0VNMjhYWF9DWDI1ODQz X0gKKworI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgorCisjaWZuZGVmIEkyQ19EUklWRVJJRF9FRVRJ X0NYMjU4NDMKKyNkZWZpbmUgSTJDX0RSSVZFUklEX0VFVElfQ1gyNTg0MyAweDEwMAorI2VuZGlm CisKKyNkZWZpbmUgUjAwMF9IT1NUX1JFR0lTVEVSXzEgCQkJMHgwMDAKKyNkZWZpbmUgUjEwMF9E RVZJQ0VfSURfTE9XX0JZVEUJCQkweDEwMAorI2RlZmluZSBSMTAyX01JU0NfQ0hJUF9DVFJMIAkJ CTB4MTAyCisjZGVmaW5lIFIxMDNfVklERU9fSU5QVVRfQ1RSTCAJCQkweDEwMworI2RlZmluZSBS MTE0X1BJTl9DT05UUk9MMSAJCQkweDExNAorI2RlZmluZSBSMTE1X1BJTl9DT05UUk9MMgkJCTB4 MTE1CisjZGVmaW5lIFIxMTZfUElOX0NPTlRST0wzCQkJMHgxMTYKKyNkZWZpbmUgUjExOF9QSU5f Q09OVFJPTDUgCQkJMHgxMTgKKyNkZWZpbmUgUjEyNF9QSU5fQ09ORklHVVJBVElPTl85IAkJMHgx MjQKKyNkZWZpbmUgUjEzQ19BRkVfRElBR05PU1RJQ19DT05UUk9MNQkJMHgxM2MKKyNkZWZpbmUg UjEzRF9BRkVfRElBR05PU1RJQ19DT05UUk9MNgkJMHgxM2QKKyNkZWZpbmUgUjE1OV9ETEwxX0RJ QUdOT1NUSUNfQ09OVFJPTDIJCTB4MTU5CisjZGVmaW5lIFIxNUFfRExMMV9ESUFHTk9TVElDX0NP TlRST0wzCQkweDE1QQorI2RlZmluZSBSMTVCX0RMTDFfRElBR05PU1RJQ19DT05UUk9MNAkJMHgx NUIKKyNkZWZpbmUgUjE1Q19ETEwyX0RJQUdOT1NUSUNfQ09OVFJPTDEgCQkweDE1YworI2RlZmlu ZSBSMTVEX0RMTDJfRElBR05PU1RJQ19DT05UUk9MMgkJMHgxNWQKKyNkZWZpbmUgUjE1RV9ETEwy X0RJQUdOT1NUSUNfQ09OVFJPTDMJCTB4MTVlCisjZGVmaW5lIFIxNUZfRExMMl9ESUFHTk9TVElD X0NPTlRST0w0CQkweDE1ZgorI2RlZmluZSBSNDAwX1ZJREVPX01PREVfQ1RSTDEgCQkJMHg0MDAK KyNkZWZpbmUgUjQwMV9WSURFT19NT0RFX0NUUkwyIAkJCTB4NDAxCisjZGVmaW5lIFI0MDJfVklE RU9fTU9ERV9DVFJMMyAJCQkweDQwMgorI2RlZmluZSBSNDAzX1ZJREVPX01PREVfQ1RSTDQgCQkJ MHg0MDMKKyNkZWZpbmUgUjQwNF9WSURFT19PVVRQVVRfQ09OVFJPTDEgCQkweDQwNAorI2RlZmlu ZSBSNDA1X1ZJREVPX09VVFBVVF9DT05UUk9MMgkJMHg0MDUKKyNkZWZpbmUgUjQwNl9WSURFT19P VVRQVVRfQ09OVFJPTDMJCTB4NDA2CisjZGVmaW5lIFI0MDdfVklERU9fT1VUUFVUX0NPTlRST0w0 CQkweDQwNworI2RlZmluZSBSNDBFX0dFTkVSQUxfU1RBVFVTIAkJCTB4NDBlCisjZGVmaW5lIFI0 MThfSE9SSVpPTlRBTF9TQ0FMSU5HX0xPVyAJCTB4NDE4CisjZGVmaW5lIFI0MjJfSFVFIAkJCQkw eDQyMgorI2RlZmluZSBSNDFDX1ZFUlRJQ0FMX1NDQUxJTkdfTE9XIAkJMHg0MWMKKyNkZWZpbmUg UjQ3MF9IQkxBTktfREVMQVlfTE9XCQkJMHg0NzAKKyNkZWZpbmUgUjQ3MV9IQkxBTktfREVMQVlf SElHSAkJCTB4NDcxCisjZGVmaW5lIFI0NzJfSEFDVElWRV9ISUdICQkJMHg0NzIKKyNkZWZpbmUg UjQ3M19CVVJTVF9HQVRFX0RFTEFZCQkJMHg0NzMKKyNkZWZpbmUgUjQ3NF9WQkxBTktfREVMQVlf TE9XIAkJCTB4NDc0CisjZGVmaW5lIFI0NzVfVkJMQU5LX0RFTEFZX0hJR0gJCQkweDQ3NQorI2Rl ZmluZSBSNDc2X1ZBQ1RJVkVfSElHSAkJCTB4NDc2CisjZGVmaW5lIFI0NzdfVkJMQU5LX0RFTEFZ XzY1NgkJCTB4NDc3CisjZGVmaW5lIFI0NzhfU1JDX0RFQ0lNQVRJT05fUkFUSU9fTE9XIAkJMHg0 NzgKKyNkZWZpbmUgUjQ3Q19TVUJDQVJSSUVSX1NURVBfU0laRV9MT1cgCQkweDQ3YworI2RlZmlu ZSBSNDdEX1NVQkNBUlJJRVJfU1RFUF9TSVpFX01JRAkJMHg0N2QKKyNkZWZpbmUgUjQ3RV9TVUJD QVJSSUVSX1NURVBfU0laRV9ISUdICQkweDQ3ZQorI2RlZmluZSBSNDdGX1ZCSV9PRkZTRVQJCQkJ MHg0N2YKKyNkZWZpbmUgUjQ5Q19MVU1BX0NPTUJfRVJST1JfTElNSVRfTUFYIAkJMHg0OWMKKyNk ZWZpbmUgUjRBMl9XSElURV9DUlVTSF9DT01QQVJJU09OX1BUCQkweDRhMgorI2RlZmluZSBSNEE0 X1NPRlRfUkVTRVRfTUFTSzEgCQkJMHg0YTQKKyNkZWZpbmUgUjRBNV9TT0ZUX1JFU0VUX01BU0sy CQkJMHg0YTUKKyNkZWZpbmUgUjgwMF9ET1dOTE9BRF9BRERSRVNTX0xPV19CWVRFIAkJMHg4MDAK KyNkZWZpbmUgUjgwMV9ET1dOTE9BRF9BRERSRVNTX0hJR0hfQllURSAJMHg4MDEKKyNkZWZpbmUg UjgwMl9ET1dOTE9BRF9EQVRBX0NPTlRST0wgCQkweDgwMgorI2RlZmluZSBSODAzX0RPV05MT0FE X0NPTlRST0wgICAJCTB4ODAzCisjZGVmaW5lIFI4MDRfTU9ERV9ERVRFQ1RfU1RBVFVTIAkJMHg4 MDQKKyNkZWZpbmUgUjgwOF9BVURJT19DT05GSUdVUkFUSU9OIAkJMHg4MDgKKyNkZWZpbmUgUjgw Ql9BVURJT19GT1JNQVRfQ09OVFJPTDAJCTB4ODBiCisjZGVmaW5lIFI5MTBfT1VUUFVUX1NSQ19T T1VSQ0VfU0VMRUNUIAkJMHg5MTAKKyNkZWZpbmUgUjkxNF9TRVJJQUxfQVVESU9fSU5QVVRfQ1RS TCAJCTB4OTE0CisjZGVmaW5lIFI5MThfU0VSSUFMX0FVRElPX09VVFBVVF9DVFJMMSAJCTB4OTE4 CisjZGVmaW5lIFI4MTBfU09GVF9SRVNFVCAJCQkweDgxMAorI2RlZmluZSBSOEQwX1BBVEhfQVVE SU9fU0xDVF9DVFJMCQkweDhkMAorI2RlZmluZSBSOEQzX01VVEVfQ1RSTAkJCQkweDhkMworI2Rl ZmluZSBSOENDX1BIQVNFX0ZJWF9DT05UUk9MIAkJCTB4OGNjCisjZGVmaW5lIFI4RTNfUEFUSDJf QkFMQU5DRQkJCTB4OGUzCisKKyNkZWZpbmUgUjgwOF9BVURJT19DT05GSUdVUkFUSU9OIAkJMHg4 MDgKKyNkZWZpbmUgUjgwOV9QUkVGRVJSRURfREVDT0RFX01PREUgCQkweDgwOQorI2RlZmluZSBS MTI3X1BJTl9DT05GSUdVUkFUSU9OIAkJCTB4MTI3CisjZGVmaW5lIFI4MDNfU1RBUlRfTUlDUk9D TlRMIAkJCTB4ODAzCisKKyNkZWZpbmUgUjEwOF9WSURfUExMX0NMSyAJCQkweDEwOAorI2RlZmlu ZSBSMTEwX0FVWF9QTExfRlJBQ1RJT04xIAkJCTB4MTEwCisjZGVmaW5lIFI5MDBfU1JDM19QSEFT RV9JTkNSRU1FTlQgCQkweDkwMAorI2RlZmluZSBSOTA0X1NSQzRfUEhBU0VfSU5DUkVNRU5UIAkJ MHg5MDQKKyNkZWZpbmUgUjkwQ19TUkM1X1BIQVNFX0lOQ1JFTUVOVCAJCTB4OTBjCisKK2VudW0g X2N4MjU4NDNfaW5wdXQgeworCUNYMjU4NDNfVU5TRVQgPSAwLAorCUNYMjU4NDNfQ09NUE9TSVRF MSwKKwlDWDI1ODQzX1RFTEVWSVNJT04sCisJQ1gyNTg0M19TVklERU8sCisJQ1gyNTg0M19SQURJ TywKK307CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS92aWRlby9lbXBpYS9j eDI1ODQzL2VtMjh4eGZ3LWN4MjU4NDMuaCBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEvY3gy NTg0My9lbTI4eHhmdy1jeDI1ODQzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZmRjZDA2NAotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvbWVkaWEvdmlkZW8vZW1waWEv Y3gyNTg0My9lbTI4eHhmdy1jeDI1ODQzLmgKQEAgLTAsMCArMSwxNCBAQAorI2lmbmRlZiBfX0NY MjU4NDNfRldfSEVMUEVSCisjZGVmaW5lIF9fQ1gyNTg0M19GV19IRUxQRVIKKworaW50IGN4MjU4 NDNfc2V0X2Zpcm13YXJlKHVuc2lnbmVkIGNoYXIgKmZ3YmxvYiwgaW50IGxlbmd0aCkgeworCWlm IChsZW5ndGggIT0gMTY2NTUpIHsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCWVtMjh4eF9jeGZp cm13YXJlPSZmd2Jsb2JbMl07IC8qIGxlbmd0aDogMTY2NTMgKi8KKwllbTI4eHhfY3hmaXJtd2Fy ZV9sZW5ndGg9bGVuZ3RoLTI7IC8qIG9rIGluIHRoYXQgY2FzZSAqLworCisKKwlyZXR1cm4gMDsK K30KKyNlbmRpZgo= ------=_Part_25569_16624849.1224709797404--