Received: by 2002:a05:6a10:6744:0:0:0:0 with SMTP id w4csp3979951pxu; Mon, 12 Oct 2020 06:32:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJweu/97RY1FbzNL1ICWn+2827EVMVlGfTAGHGED9qa+BG0dqVa2s++/h62QbSwGUl526FOQ X-Received: by 2002:a17:906:4d03:: with SMTP id r3mr26572214eju.364.1602509568315; Mon, 12 Oct 2020 06:32:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1602509568; cv=none; d=google.com; s=arc-20160816; b=izWvsDEEeBYoGyqe4mT69H5SugFxDgOLX90FPwfc4tq0oQ2gjT+jOisTpHX6b93fn/ m8v1D0PIbFsHEoKNrCsWWfvj+LGUdQwdJxsh9EVgE2Z/qQTkktsYzyfVZzcn/XkHGM7Z 0gJ81s8EJynE3wV/YXvhxqMD3Ty7kwbJS3qRY+ZBQMDaDj/tSNtRb2yPPrCmKGRgMZ2O c7+1anY/Gzbd5leoE7bUWKcbzL9gHhHv52iOKDo5WV85XZdsOsny75/f5RMHDsDgfvaU UesDzSyeQVYr4m0b/+9QRi9CsGraVEDtw/FULVjB/ypJoDs5GhcwLu+J+s/EFnWHIfui T4nQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=oHWCdpu7EIVJx/y6c7Lyi8a9Pc4aken+nch8nF9lOUM=; b=NfHbfGKhrNaSSeEFpYQr1kCu8YGUQwimYYbkQ93xGc/h18sDS+tWkG+arxYopLTUV6 SdoELcUsl57iRZ9Dl0GwWxEZfCfnzTsMScwEUhl2GQ1A9StCG0nvcLs7AiHxGulgdugf ENWQlzbD1X00+zcxaRu8j1JsEGzh1twBzYDyN8dxTsnG88J7k063AV74IedAeBbdMZO1 bnxyyu9aZSiKJHvsAIQBaaawWzWN3fw9QYKxfOXJpNoQ/HzvrWVnPwvQBa9vrDwoSnby o8Nh9maSg48vLm2rGosf6AcEBelwmX9q4qsfY7GQxCy/XNThHSbVMZDXVh7sfJjX+wSX 19OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=sWZ5IzbX; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e4si6473927edv.228.2020.10.12.06.32.22; Mon, 12 Oct 2020 06:32:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=sWZ5IzbX; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730272AbgJLM4a (ORCPT + 99 others); Mon, 12 Oct 2020 08:56:30 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:53196 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1730235AbgJLM4U (ORCPT ); Mon, 12 Oct 2020 08:56:20 -0400 X-UUID: 9326c940004f40529f208a9bfa2a7da6-20201012 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=oHWCdpu7EIVJx/y6c7Lyi8a9Pc4aken+nch8nF9lOUM=; b=sWZ5IzbXD/xw5aKHnpYz4buIEhFOXHhiCLZGiLGamkkUIlwC2Md8oBUQE/xmbA7xPPdCBPMpqQN4E/oMzDTkMHCd4Cyu4rZ6gjqibOIhR3sugLNZ3iIZkDs7TuS1YtLphOsSrcv0SOlRCMG3RA45xpGXLQi6TFUJ/qzt6GGkHzI=; X-UUID: 9326c940004f40529f208a9bfa2a7da6-20201012 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 639034662; Mon, 12 Oct 2020 20:55:59 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs06n1.mediatek.inc (172.21.101.129) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 12 Oct 2020 20:55:58 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Mon, 12 Oct 2020 20:55:56 +0800 From: Shayne Chen To: Felix Fietkau CC: linux-wireless , Lorenzo Bianconi , Ryder Lee , Evelyn Tsai , linux-mediatek , Shayne Chen Subject: [PATCH v3 07/10] mt76: mt7915: implement testmode tx support Date: Mon, 12 Oct 2020 20:54:00 +0800 Message-ID: <20201012125403.8608-7-shayne.chen@mediatek.com> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20201012125403.8608-1-shayne.chen@mediatek.com> References: <20201012125403.8608-1-shayne.chen@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org U3VwcG9ydCB0ZXN0bW9kZSB0eCBmb3IgTVQ3OTE1QSwgaW5jbHVkaW5nIHR4IHN0cmVhbXMgYW5k IEhFIHJhdGUNCnNldHRpbmdzLg0KDQpSZXZpZXdlZC1ieTogUnlkZXIgTGVlIDxyeWRlci5sZWVA bWVkaWF0ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogU2hheW5lIENoZW4gPHNoYXluZS5jaGVuQG1l ZGlhdGVrLmNvbT4NCi0tLQ0KdjM6IGFkZCBfX3BhY2tlZCBmb3IgcmVxIHN0cnVjdCBpbiBtdDc5 MTVfdG1fbW9kZV9jdHJsDQogICAgbW92ZSB0aGUgbG9jYXRpb24gb2Ygc2V0dGluZyBXQU5UX01P TklUT1JfVklGIGZsYWcNCg0KIC4uLi93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtl ZmlsZSAgICB8ICAgMiArDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9p bml0LmMgIHwgICA4ICstDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9t YWMuYyAgIHwgMTI3ICsrKysrKysrKysrKw0KIC4uLi9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3 Ni9tdDc5MTUvbWFpbi5jICB8ICA0MCArKystDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzkxNS9tY3UuYyAgIHwgIDMxICsrKw0KIC4uLi9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc5MTUvbWN1LmggICB8ICAgNSArDQogLi4uL3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L210NzkxNS5oICAgIHwgIDE0ICsrDQogLi4uL25ldC93aXJlbGVzcy9tZWRpYXRlay9t dDc2L210NzkxNS9yZWdzLmggIHwgIDMxICsrKw0KIC4uLi93aXJlbGVzcy9tZWRpYXRlay9tdDc2 L210NzkxNS90ZXN0bW9kZS5jICB8IDE4MCArKysrKysrKysrKysrKysrKysNCiAuLi4vd2lyZWxl c3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvdGVzdG1vZGUuaCAgfCAgMzQgKysrKw0KIDEwIGZpbGVz IGNoYW5nZWQsIDQ2MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQ0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS90ZXN0bW9k ZS5jDQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210 NzYvbXQ3OTE1L3Rlc3Rtb2RlLmgNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L01ha2VmaWxlIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVk aWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZpbGUNCmluZGV4IDU3ZmU3MjYuLmNjMjA1NGQgMTAwNjQ0 DQotLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9NYWtlZmls ZQ0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvTWFrZWZp bGUNCkBAIC00LDMgKzQsNSBAQCBvYmotJChDT05GSUdfTVQ3OTE1RSkgKz0gbXQ3OTE1ZS5vDQog DQogbXQ3OTE1ZS15IDo9IHBjaS5vIGluaXQubyBkbWEubyBlZXByb20ubyBtYWluLm8gbWN1Lm8g bWFjLm8gXA0KIAkgICAgIGRlYnVnZnMubw0KKw0KK210NzkxNWUtJChDT05GSUdfTkw4MDIxMV9U RVNUTU9ERSkgKz0gdGVzdG1vZGUubw0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNz L21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L2luaXQuYw0KaW5kZXggZWU2OWZlNC4uODkwYzJiYiAxMDA2NDQNCi0t LSBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L2luaXQuYw0KKysr IGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvaW5pdC5jDQpAQCAt MjcwLDYgKzI3MCw3IEBAIG10NzkxNV9pbml0X3dpcGh5KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3 KQ0KIA0KIAlpZWVlODAyMTFfaHdfc2V0KGh3LCBIQVNfUkFURV9DT05UUk9MKTsNCiAJaWVlZTgw MjExX2h3X3NldChodywgU1VQUE9SVFNfVFhfRU5DQVBfT0ZGTE9BRCk7DQorCWllZWU4MDIxMV9o d19zZXQoaHcsIFdBTlRfTU9OSVRPUl9WSUYpOw0KIA0KIAlody0+bWF4X3R4X2ZyYWdtZW50cyA9 IDQ7DQogfQ0KQEAgLTYzNyw5ICs2MzgsNiBAQCBpbnQgbXQ3OTE1X3JlZ2lzdGVyX2V4dF9waHko c3RydWN0IG10NzkxNV9kZXYgKmRldikNCiAJbXBoeS0+aHctPndpcGh5LT5wZXJtX2FkZHJbMF0g fD0gMjsNCiAJbXBoeS0+aHctPndpcGh5LT5wZXJtX2FkZHJbMF0gXj0gQklUKDcpOw0KIA0KLQkv KiBUaGUgc2Vjb25kIGludGVyZmFjZSBkb2VzIG5vdCBnZXQgYW55IHBhY2tldHMgdW5sZXNzIGl0 IGhhcyBhIHZpZiAqLw0KLQlpZWVlODAyMTFfaHdfc2V0KG1waHktPmh3LCBXQU5UX01PTklUT1Jf VklGKTsNCi0NCiAJcmV0ID0gbXQ3Nl9yZWdpc3Rlcl9waHkobXBoeSk7DQogCWlmIChyZXQpDQog CQlpZWVlODAyMTFfZnJlZV9odyhtcGh5LT5odyk7DQpAQCAtNjk1LDYgKzY5MywxMCBAQCBpbnQg bXQ3OTE1X3JlZ2lzdGVyX2RldmljZShzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2KQ0KIAltdDc5MTVf Y2FwX2RiZGNfZGlzYWJsZShkZXYpOw0KIAlkZXYtPnBoeS5kZnNfc3RhdGUgPSAtMTsNCiANCisj aWZkZWYgQ09ORklHX05MODAyMTFfVEVTVE1PREUNCisJZGV2LT5tdDc2LnRlc3Rfb3BzID0gJm10 NzkxNV90ZXN0bW9kZV9vcHM7DQorI2VuZGlmDQorDQogCXJldCA9IG10NzZfcmVnaXN0ZXJfZGV2 aWNlKCZkZXYtPm10NzYsIHRydWUsIG10NzkxNV9yYXRlcywNCiAJCQkJICAgQVJSQVlfU0laRSht dDc5MTVfcmF0ZXMpKTsNCiAJaWYgKHJldCkNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWMuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21l ZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jDQppbmRleCBhNzExOGRmLi5lMDNlMTJmIDEwMDY0NA0K LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWFjLmMNCisr KyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21hYy5jDQpAQCAt NTYyLDYgKzU2MiwxMTggQEAgaW50IG10NzkxNV9tYWNfZmlsbF9yeChzdHJ1Y3QgbXQ3OTE1X2Rl diAqZGV2LCBzdHJ1Y3Qgc2tfYnVmZiAqc2tiKQ0KIAlyZXR1cm4gMDsNCiB9DQogDQorc3RhdGlj IHUxNg0KK210NzkxNV9tYWNfdHhfcmF0ZV92YWwoc3RydWN0IG10NzZfcGh5ICptcGh5LCB1OCBt b2RlLCB1OCByYXRlX2lkeCwNCisJCSAgICAgICB1OCBuc3MsIHU4IHN0YmMsIHU4ICpidykNCit7 DQorCXUxNiByYXRldmFsOw0KKw0KKwlzd2l0Y2ggKG1waHktPmNoYW5kZWYud2lkdGgpIHsNCisJ Y2FzZSBOTDgwMjExX0NIQU5fV0lEVEhfNDA6DQorCQkqYncgPSAxOw0KKwkJYnJlYWs7DQorCWNh c2UgTkw4MDIxMV9DSEFOX1dJRFRIXzgwOg0KKwkJKmJ3ID0gMjsNCisJCWJyZWFrOw0KKwljYXNl IE5MODAyMTFfQ0hBTl9XSURUSF84MFA4MDoNCisJY2FzZSBOTDgwMjExX0NIQU5fV0lEVEhfMTYw Og0KKwkJKmJ3ID0gMzsNCisJCWJyZWFrOw0KKwlkZWZhdWx0Og0KKwkJKmJ3ID0gMDsNCisJCWJy ZWFrOw0KKwl9DQorDQorCWlmIChtb2RlID09IE1UX1BIWV9UWVBFX0hUIHx8IG1vZGUgPT0gTVRf UEhZX1RZUEVfSFRfR0YpDQorCQluc3MgPSAxICsgKHJhdGVfaWR4ID4+IDMpOw0KKw0KKwlyYXRl dmFsID0gRklFTERfUFJFUChNVF9UWF9SQVRFX0lEWCwgcmF0ZV9pZHgpIHwNCisJCSAgRklFTERf UFJFUChNVF9UWF9SQVRFX01PREUsIG1vZGUpIHwNCisJCSAgRklFTERfUFJFUChNVF9UWF9SQVRF X05TUywgbnNzIC0gMSk7DQorDQorCWlmIChzdGJjICYmIG5zcyA9PSAxKSB7DQorCQluc3MrKzsN CisJCXJhdGV2YWwgfD0gTVRfVFhfUkFURV9TVEJDOw0KKwl9DQorDQorCXJldHVybiByYXRldmFs Ow0KK30NCisNCitzdGF0aWMgdm9pZA0KK210NzkxNV9tYWNfd3JpdGVfdHh3aV90bShzdHJ1Y3Qg bXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgbXQ3Nl9waHkgKm1waHksDQorCQkJIF9fbGUzMiAqdHh3 aSwgc3RydWN0IHNrX2J1ZmYgKnNrYikNCit7DQorI2lmZGVmIENPTkZJR19OTDgwMjExX1RFU1RN T0RFDQorCXN0cnVjdCBtdDc2X3Rlc3Rtb2RlX2RhdGEgKnRkID0gJmRldi0+bXQ3Ni50ZXN0Ow0K Kwl1OCBidywgbW9kZTsNCisJdTE2IHJhdGV2YWw7DQorCXUzMiB2YWw7DQorDQorCWlmIChza2Ig IT0gZGV2LT5tdDc2LnRlc3QudHhfc2tiKQ0KKwkJcmV0dXJuOw0KKw0KKwlzd2l0Y2ggKHRkLT50 eF9yYXRlX21vZGUpIHsNCisJY2FzZSBNVDc2X1RNX1RYX01PREVfQ0NLOg0KKwkJbW9kZSA9IE1U X1BIWV9UWVBFX0NDSzsNCisJCWJyZWFrOw0KKwljYXNlIE1UNzZfVE1fVFhfTU9ERV9IVDoNCisJ CW1vZGUgPSBNVF9QSFlfVFlQRV9IVDsNCisJCWJyZWFrOw0KKwljYXNlIE1UNzZfVE1fVFhfTU9E RV9WSFQ6DQorCQltb2RlID0gTVRfUEhZX1RZUEVfVkhUOw0KKwkJYnJlYWs7DQorCWNhc2UgTVQ3 Nl9UTV9UWF9NT0RFX0hFX1NVOg0KKwkJbW9kZSA9IE1UX1BIWV9UWVBFX0hFX1NVOw0KKwkJYnJl YWs7DQorCWNhc2UgTVQ3Nl9UTV9UWF9NT0RFX0hFX0VYVF9TVToNCisJCW1vZGUgPSBNVF9QSFlf VFlQRV9IRV9FWFRfU1U7DQorCQlicmVhazsNCisJY2FzZSBNVDc2X1RNX1RYX01PREVfSEVfVEI6 DQorCQltb2RlID0gTVRfUEhZX1RZUEVfSEVfVEI7DQorCQlicmVhazsNCisJY2FzZSBNVDc2X1RN X1RYX01PREVfSEVfTVU6DQorCQltb2RlID0gTVRfUEhZX1RZUEVfSEVfTVU7DQorCQlicmVhazsN CisJY2FzZSBNVDc2X1RNX1RYX01PREVfT0ZETToNCisJZGVmYXVsdDoNCisJCW1vZGUgPSBNVF9Q SFlfVFlQRV9PRkRNOw0KKwkJYnJlYWs7DQorCX0NCisNCisJcmF0ZXZhbCA9IG10NzkxNV9tYWNf dHhfcmF0ZV92YWwobXBoeSwgbW9kZSwgdGQtPnR4X3JhdGVfaWR4LA0KKwkJCQkJIHRkLT50eF9y YXRlX25zcywgdGQtPnR4X3JhdGVfc3RiYywgJmJ3KTsNCisNCisJdHh3aVsyXSB8PSBjcHVfdG9f bGUzMihNVF9UWEQyX0ZJWF9SQVRFKTsNCisJaWYgKHRkLT50eF9yYXRlX21vZGUgPCBNVDc2X1RN X1RYX01PREVfSFQpDQorCQl0eHdpWzNdIHw9IGNwdV90b19sZTMyKE1UX1RYRDNfQkFfRElTQUJM RSk7DQorDQorCXZhbCA9IE1UX1RYRDZfRklYRURfQlcgfA0KKwkgICAgICBGSUVMRF9QUkVQKE1U X1RYRDZfQlcsIGJ3KSB8DQorCSAgICAgIEZJRUxEX1BSRVAoTVRfVFhENl9UWF9SQVRFLCByYXRl dmFsKSB8DQorCSAgICAgIEZJRUxEX1BSRVAoTVRfVFhENl9TR0ksIHRkLT50eF9yYXRlX3NnaSk7 DQorDQorCS8qIGZvciBIRV9TVS9IRV9FWFRfU1UgUFBEVQ0KKwkgKiAtIDF4LCAyeCwgNHggTFRG ICsgMC44dXMgR0kNCisJICogLSAyeCBMVEYgKyAxLjZ1cyBHSSwgNHggTFRGICsgMy4ydXMgR0kN CisJICogZm9yIEhFX01VIFBQRFUNCisJICogLSAyeCwgNHggTFRGICsgMC44dXMgR0kNCisJICog LSAyeCBMVEYgKyAxLjZ1cyBHSSwgNHggTFRGICsgMy4ydXMgR0kNCisJICogZm9yIEhFX1RCIFBQ RFUNCisJICogLSAxeCwgMnggTFRGICsgMS42dXMgR0kNCisJICogLSA0eCBMVEYgKyAzLjJ1cyBH SQ0KKwkgKi8NCisJaWYgKG1vZGUgPj0gTVRfUEhZX1RZUEVfSEVfU1UpDQorCQl2YWwgfD0gRklF TERfUFJFUChNVF9UWEQ2X0hFTFRGLCB0ZC0+dHhfbHRmKTsNCisNCisJaWYgKHRkLT50eF9yYXRl X2xkcGMpDQorCQl2YWwgfD0gTVRfVFhENl9MRFBDOw0KKw0KKwl0eHdpWzZdIHw9IGNwdV90b19s ZTMyKHZhbCk7DQorCXR4d2lbN10gfD0gY3B1X3RvX2xlMzIoRklFTERfUFJFUChNVF9UWEQ3X1NQ RV9JRFgsDQorCQkJCQkgIGRldi0+dGVzdC5zcGVfaWR4KSk7DQorI2VuZGlmDQorfQ0KKw0KIHN0 YXRpYyB2b2lkDQogbXQ3OTE1X21hY193cml0ZV90eHdpXzgwMjMoc3RydWN0IG10NzkxNV9kZXYg KmRldiwgX19sZTMyICp0eHdpLA0KIAkJCSAgIHN0cnVjdCBza19idWZmICpza2IsIHN0cnVjdCBt dDc2X3djaWQgKndjaWQpDQpAQCAtNzYxLDYgKzg3Myw5IEBAIHZvaWQgbXQ3OTE1X21hY193cml0 ZV90eHdpKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIF9fbGUzMiAqdHh3aSwNCiAJCXR4d2lbNl0g fD0gY3B1X3RvX2xlMzIodmFsKTsNCiAJCXR4d2lbM10gfD0gY3B1X3RvX2xlMzIoTVRfVFhEM19C QV9ESVNBQkxFKTsNCiAJfQ0KKw0KKwlpZiAobXQ3Nl90ZXN0bW9kZV9lbmFibGVkKCZkZXYtPm10 NzYpKQ0KKwkJbXQ3OTE1X21hY193cml0ZV90eHdpX3RtKGRldiwgbXBoeSwgdHh3aSwgc2tiKTsN CiB9DQogDQogaW50IG10NzkxNV90eF9wcmVwYXJlX3NrYihzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYs IHZvaWQgKnR4d2lfcHRyLA0KQEAgLTg4MSw2ICs5OTYsMTggQEAgbXQ3OTE1X3R4X2NvbXBsZXRl X3N0YXR1cyhzdHJ1Y3QgbXQ3Nl9kZXYgKm1kZXYsIHN0cnVjdCBza19idWZmICpza2IsDQogDQog CWh3ID0gbXQ3Nl90eF9zdGF0dXNfZ2V0X2h3KG1kZXYsIHNrYik7DQogDQorI2lmZGVmIENPTkZJ R19OTDgwMjExX1RFU1RNT0RFDQorCWlmIChza2IgPT0gbWRldi0+dGVzdC50eF9za2IpIHsNCisJ CXN0cnVjdCBtdDc5MTVfcGh5ICpwaHkgPSBtdDc5MTVfaHdfcGh5KGh3KTsNCisJCXN0cnVjdCBp ZWVlODAyMTFfdmlmICp2aWYgPSBwaHktPm1vbml0b3JfdmlmOw0KKwkJc3RydWN0IG10NzkxNV92 aWYgKm12aWYgPSAoc3RydWN0IG10NzkxNV92aWYgKil2aWYtPmRydl9wcml2Ow0KKw0KKwkJbXQ3 Nl90eF9jb21wbGV0ZV9za2IobWRldiwgbXZpZi0+c3RhLndjaWQuaWR4LCBza2IpOw0KKw0KKwkJ cmV0dXJuOw0KKwl9DQorI2VuZGlmDQorDQogCWlmIChpbmZvLT5mbGFncyAmIElFRUU4MDIxMV9U WF9DVExfQU1QRFUpDQogCQlpbmZvLT5mbGFncyB8PSBJRUVFODAyMTFfVFhfU1RBVF9BTVBEVTsN CiANCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210Nzkx NS9tYWluLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWlu LmMNCmluZGV4IDEyNjJmYjMuLjllYmU1YWYgMTAwNjQ0DQotLS0gYS9kcml2ZXJzL25ldC93aXJl bGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tYWluLmMNCisrKyBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21haW4uYw0KQEAgLTQ0LDEzICs0NCwxNCBAQCBzdGF0 aWMgaW50IG10NzkxNV9zdGFydChzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodykNCiAJCW10NzkxNV9t YWNfZW5hYmxlX25mKGRldiwgMSk7DQogCX0NCiANCi0JbXQ3OTE1X21jdV9zZXRfc2t1X2VuKHBo eSwgdHJ1ZSk7DQorCW10NzkxNV9tY3Vfc2V0X3NrdV9lbihwaHksICFtdDc2X3Rlc3Rtb2RlX2Vu YWJsZWQoJmRldi0+bXQ3NikpOw0KIAltdDc5MTVfbWN1X3NldF9jaGFuX2luZm8ocGh5LCBNQ1Vf RVhUX0NNRF9TRVRfUlhfUEFUSCk7DQogDQogCXNldF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCAm cGh5LT5tdDc2LT5zdGF0ZSk7DQogDQotCWllZWU4MDIxMV9xdWV1ZV9kZWxheWVkX3dvcmsoaHcs ICZwaHktPm1hY193b3JrLA0KLQkJCQkgICAgIE1UNzkxNV9XQVRDSERPR19USU1FKTsNCisJaWYg KCFtdDc2X3Rlc3Rtb2RlX2VuYWJsZWQoJmRldi0+bXQ3NikpDQorCQlpZWVlODAyMTFfcXVldWVf ZGVsYXllZF93b3JrKGh3LCAmcGh5LT5tYWNfd29yaywNCisJCQkJCSAgICAgTVQ3OTE1X1dBVENI RE9HX1RJTUUpOw0KIA0KIAlpZiAoIXJ1bm5pbmcpDQogCQltdDc5MTVfbWFjX3Jlc2V0X2NvdW50 ZXJzKHBoeSk7DQpAQCAtNjksNiArNzAsOCBAQCBzdGF0aWMgdm9pZCBtdDc5MTVfc3RvcChzdHJ1 Y3QgaWVlZTgwMjExX2h3ICpodykNCiANCiAJbXV0ZXhfbG9jaygmZGV2LT5tdDc2Lm11dGV4KTsN CiANCisJbXQ3Nl90ZXN0bW9kZV9yZXNldCgmZGV2LT5tdDc2LCB0cnVlKTsNCisNCiAJY2xlYXJf Yml0KE1UNzZfU1RBVEVfUlVOTklORywgJnBoeS0+bXQ3Ni0+c3RhdGUpOw0KIA0KIAlpZiAocGh5 ICE9ICZkZXYtPnBoeSkgew0KQEAgLTE1MCw2ICsxNTMsMTIgQEAgc3RhdGljIGludCBtdDc5MTVf YWRkX2ludGVyZmFjZShzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywNCiANCiAJbXV0ZXhfbG9jaygm ZGV2LT5tdDc2Lm11dGV4KTsNCiANCisJbXQ3Nl90ZXN0bW9kZV9yZXNldCgmZGV2LT5tdDc2LCB0 cnVlKTsNCisNCisJaWYgKHZpZi0+dHlwZSA9PSBOTDgwMjExX0lGVFlQRV9NT05JVE9SICYmDQor CSAgICBpc196ZXJvX2V0aGVyX2FkZHIodmlmLT5hZGRyKSkNCisJCXBoeS0+bW9uaXRvcl92aWYg PSB2aWY7DQorDQogCW12aWYtPmlkeCA9IGZmcyh+cGh5LT5tdDc2LT52aWZfbWFzaykgLSAxOw0K IAlpZiAobXZpZi0+aWR4ID49IE1UNzkxNV9NQVhfSU5URVJGQUNFUykgew0KIAkJcmV0ID0gLUVO T1NQQzsNCkBAIC0yMTgsNiArMjI3LDEzIEBAIHN0YXRpYyB2b2lkIG10NzkxNV9yZW1vdmVfaW50 ZXJmYWNlKHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LA0KIA0KIAkvKiBUT0RPOiBkaXNhYmxlIGJl YWNvbiBmb3IgdGhlIGJzcyAqLw0KIA0KKwltdXRleF9sb2NrKCZkZXYtPm10NzYubXV0ZXgpOw0K KwltdDc2X3Rlc3Rtb2RlX3Jlc2V0KCZkZXYtPm10NzYsIHRydWUpOw0KKwltdXRleF91bmxvY2so JmRldi0+bXQ3Ni5tdXRleCk7DQorDQorCWlmICh2aWYgPT0gcGh5LT5tb25pdG9yX3ZpZikNCisJ CXBoeS0+bW9uaXRvcl92aWYgPSBOVUxMOw0KKw0KIAltdDc5MTVfbWN1X2FkZF9kZXZfaW5mbyhw aHksIHZpZiwgZmFsc2UpOw0KIA0KIAlyY3VfYXNzaWduX3BvaW50ZXIoZGV2LT5tdDc2LndjaWRb aWR4XSwgTlVMTCk7DQpAQCAtMjUyLDcgKzI2OCw3IEBAIHN0YXRpYyB2b2lkIG10NzkxNV9pbml0 X2Rmc19zdGF0ZShzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KQ0KIAlwaHktPmRmc19zdGF0ZSA9IC0x Ow0KIH0NCiANCi1zdGF0aWMgaW50IG10NzkxNV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3OTE1X3Bo eSAqcGh5KQ0KK2ludCBtdDc5MTVfc2V0X2NoYW5uZWwoc3RydWN0IG10NzkxNV9waHkgKnBoeSkN CiB7DQogCXN0cnVjdCBtdDc5MTVfZGV2ICpkZXYgPSBwaHktPmRldjsNCiAJaW50IHJldDsNCkBA IC0yODEsOCArMjk3LDEwIEBAIG91dDoNCiAJbXV0ZXhfdW5sb2NrKCZkZXYtPm10NzYubXV0ZXgp Ow0KIA0KIAltdDc2X3R4cV9zY2hlZHVsZV9hbGwocGh5LT5tdDc2KTsNCi0JaWVlZTgwMjExX3F1 ZXVlX2RlbGF5ZWRfd29yayhwaHktPm10NzYtPmh3LCAmcGh5LT5tYWNfd29yaywNCi0JCQkJICAg ICBNVDc5MTVfV0FUQ0hET0dfVElNRSk7DQorDQorCWlmICghbXQ3Nl90ZXN0bW9kZV9lbmFibGVk KCZkZXYtPm10NzYpKQ0KKwkJaWVlZTgwMjExX3F1ZXVlX2RlbGF5ZWRfd29yayhwaHktPm10NzYt Pmh3LCAmcGh5LT5tYWNfd29yaywNCisJCQkJCSAgICAgTVQ3OTE1X1dBVENIRE9HX1RJTUUpOw0K IA0KIAlyZXR1cm4gcmV0Ow0KIH0NCkBAIC0zNDYsNiArMzY0LDEzIEBAIHN0YXRpYyBpbnQgbXQ3 OTE1X2NvbmZpZyhzdHJ1Y3QgaWVlZTgwMjExX2h3ICpodywgdTMyIGNoYW5nZWQpDQogCWludCBy ZXQ7DQogDQogCWlmIChjaGFuZ2VkICYgSUVFRTgwMjExX0NPTkZfQ0hBTkdFX0NIQU5ORUwpIHsN CisjaWZkZWYgQ09ORklHX05MODAyMTFfVEVTVE1PREUNCisJCWlmIChkZXYtPm10NzYudGVzdC5z dGF0ZSAhPSBNVDc2X1RNX1NUQVRFX09GRikgew0KKwkJCW11dGV4X2xvY2soJmRldi0+bXQ3Ni5t dXRleCk7DQorCQkJbXQ3Nl90ZXN0bW9kZV9yZXNldCgmZGV2LT5tdDc2LCBmYWxzZSk7DQorCQkJ bXV0ZXhfdW5sb2NrKCZkZXYtPm10NzYubXV0ZXgpOw0KKwkJfQ0KKyNlbmRpZg0KIAkJaWVlZTgw MjExX3N0b3BfcXVldWVzKGh3KTsNCiAJCXJldCA9IG10NzkxNV9zZXRfY2hhbm5lbChwaHkpOw0K IAkJaWYgKHJldCkNCkBAIC0zNzAsNiArMzk1LDcgQEAgc3RhdGljIGludCBtdDc5MTVfY29uZmln KHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3LCB1MzIgY2hhbmdlZCkNCiAJCQlwaHktPnJ4ZmlsdGVy ICY9IH5NVF9XRl9SRkNSX0RST1BfT1RIRVJfVUM7DQogDQogCQltdDc2X3Jtd19maWVsZChkZXYs IE1UX0RNQV9EQ1IwLCBNVF9ETUFfRENSMF9SWERfRzVfRU4sIGVuYWJsZWQpOw0KKwkJbXQ3Nl90 ZXN0bW9kZV9yZXNldCgmZGV2LT5tdDc2LCB0cnVlKTsNCiAJCW10NzZfd3IoZGV2LCBNVF9XRl9S RkNSKGJhbmQpLCBwaHktPnJ4ZmlsdGVyKTsNCiAJfQ0KIA0KQEAgLTg4Nyw2ICs5MTMsOCBAQCBj b25zdCBzdHJ1Y3QgaWVlZTgwMjExX29wcyBtdDc5MTVfb3BzID0gew0KIAkuc2V0X2NvdmVyYWdl X2NsYXNzID0gbXQ3OTE1X3NldF9jb3ZlcmFnZV9jbGFzcywNCiAJLnN0YV9zdGF0aXN0aWNzID0g bXQ3OTE1X3N0YV9zdGF0aXN0aWNzLA0KIAkuc3RhX3NldF80YWRkciA9IG10NzkxNV9zdGFfc2V0 XzRhZGRyLA0KKwlDRkc4MDIxMV9URVNUTU9ERV9DTUQobXQ3Nl90ZXN0bW9kZV9jbWQpDQorCUNG RzgwMjExX1RFU1RNT0RFX0RVTVAobXQ3Nl90ZXN0bW9kZV9kdW1wKQ0KICNpZmRlZiBDT05GSUdf TUFDODAyMTFfREVCVUdGUw0KIAkuc3RhX2FkZF9kZWJ1Z2ZzID0gbXQ3OTE1X3N0YV9hZGRfZGVi dWdmcywNCiAjZW5kaWYNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRl ay9tdDc2L210NzkxNS9tY3UuYyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L21jdS5jDQppbmRleCA1Y2NkZTU0Li4zNzJmNDViIDEwMDY0NA0KLS0tIGEvZHJpdmVy cy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmMNCisrKyBiL2RyaXZlcnMv bmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L21jdS5jDQpAQCAtMzE4Niw2ICszMTg2 LDE1IEBAIGludCBtdDc5MTVfbWN1X3NldF9jaGFuX2luZm8oc3RydWN0IG10NzkxNV9waHkgKnBo eSwgaW50IGNtZCkNCiAJCS5jaGFubmVsX2JhbmQgPSBjaGFuZGVmLT5jaGFuLT5iYW5kLA0KIAl9 Ow0KIA0KKyNpZmRlZiBDT05GSUdfTkw4MDIxMV9URVNUTU9ERQ0KKwlpZiAoZGV2LT5tdDc2LnRl c3QudHhfYW50ZW5uYV9tYXNrICYmDQorCSAgICAoZGV2LT5tdDc2LnRlc3Quc3RhdGUgPT0gTVQ3 Nl9UTV9TVEFURV9UWF9GUkFNRVMgfHwNCisJICAgICBkZXYtPm10NzYudGVzdC5zdGF0ZSA9PSBN VDc2X1RNX1NUQVRFX1JYX0ZSQU1FUykpIHsNCisJCXJlcS50eF9zdHJlYW1zX251bSA9IGZscyhk ZXYtPm10NzYudGVzdC50eF9hbnRlbm5hX21hc2spOw0KKwkJcmVxLnJ4X3N0cmVhbXMgPSBkZXYt Pm10NzYudGVzdC50eF9hbnRlbm5hX21hc2s7DQorCX0NCisjZW5kaWYNCisNCiAJaWYgKGRldi0+ bXQ3Ni5ody0+Y29uZi5mbGFncyAmIElFRUU4MDIxMV9DT05GX09GRkNIQU5ORUwpDQogCQlyZXEu c3dpdGNoX3JlYXNvbiA9IENIX1NXSVRDSF9TQ0FOX0JZUEFTU19EUEQ7DQogCWVsc2UgaWYgKChj aGFuZGVmLT5jaGFuLT5mbGFncyAmIElFRUU4MDIxMV9DSEFOX1JBREFSKSAmJg0KQEAgLTMzMzAs NiArMzMzOSwyOCBAQCBpbnQgbXQ3OTE1X21jdV9zZXRfdHhwb3dlcl9za3Uoc3RydWN0IG10Nzkx NV9waHkgKnBoeSkNCiAJCQkJIHNpemVvZihyZXEpLCB0cnVlKTsNCiB9DQogDQoraW50IG10Nzkx NV9tY3Vfc2V0X3Rlc3RfcGFyYW0oc3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTggcGFyYW0sIGJv b2wgdGVzdF9tb2RlLA0KKwkJCSAgICAgIHU4IGVuKQ0KK3sNCisJc3RydWN0IHsNCisJCXU4IHRl c3RfbW9kZV9lbjsNCisJCXU4IHBhcmFtX2lkeDsNCisJCXU4IF9yc3ZbMl07DQorDQorCQl1OCBl bmFibGU7DQorCQl1OCBfcnN2MlszXTsNCisNCisJCXU4IHBhZFs4XTsNCisJfSBfX3BhY2tlZCBy ZXEgPSB7DQorCQkudGVzdF9tb2RlX2VuID0gdGVzdF9tb2RlLA0KKwkJLnBhcmFtX2lkeCA9IHBh cmFtLA0KKwkJLmVuYWJsZSA9IGVuLA0KKwl9Ow0KKw0KKwlyZXR1cm4gbXQ3Nl9tY3Vfc2VuZF9t c2coJmRldi0+bXQ3NiwgTUNVX0VYVF9DTURfQVRFX0NUUkwsICZyZXEsDQorCQkJCSBzaXplb2Yo cmVxKSwgZmFsc2UpOw0KK30NCisNCiBpbnQgbXQ3OTE1X21jdV9zZXRfc2t1X2VuKHN0cnVjdCBt dDc5MTVfcGh5ICpwaHksIGJvb2wgZW5hYmxlKQ0KIHsNCiAJc3RydWN0IG10NzkxNV9kZXYgKmRl diA9IHBoeS0+ZGV2Ow0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVr L210NzYvbXQ3OTE1L21jdS5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9t dDc5MTUvbWN1LmgNCmluZGV4IDVmMjNmMjcuLjBhN2U5ZDIgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS9tY3UuaA0KKysrIGIvZHJpdmVycy9u ZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbWN1LmgNCkBAIC00Niw2ICs0NiwxMCBA QCBlbnVtIHsNCiAJTUNVX0VYVF9FVkVOVF9SQVRFX1JFUE9SVCA9IDB4ODcsDQogfTsNCiANCitl bnVtIHsNCisJTUNVX0FURV9TRVRfVFJYID0gMHgxLA0KK307DQorDQogc3RydWN0IG10NzkxNV9t Y3VfcnhkIHsNCiAJX19sZTMyIHJ4ZFs2XTsNCiANCkBAIC0yMTYsNiArMjIwLDcgQEAgZW51bSB7 DQogCU1DVV9FWFRfQ01EX1dUQkxfVVBEQVRFID0gMHgzMiwNCiAJTUNVX0VYVF9DTURfU0VUX0RS Ul9DVFJMID0gMHgzNiwNCiAJTUNVX0VYVF9DTURfU0VUX1JERF9DVFJMID0gMHgzYSwNCisJTUNV X0VYVF9DTURfQVRFX0NUUkwgPSAweDNkLA0KIAlNQ1VfRVhUX0NNRF9QUk9URUNUX0NUUkwgPSAw eDNlLA0KIAlNQ1VfRVhUX0NNRF9NQUNfSU5JVF9DVFJMID0gMHg0NiwNCiAJTUNVX0VYVF9DTURf UlhfSERSX1RSQU5TID0gMHg0NywNCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9t ZWRpYXRlay9tdDc2L210NzkxNS9tdDc5MTUuaCBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlh dGVrL210NzYvbXQ3OTE1L210NzkxNS5oDQppbmRleCA0MjkyMTUzLi42NzM1OTE1IDEwMDY0NA0K LS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvbXQ3OTE1LmgN CisrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L210NzkxNS5o DQpAQCAtMTA4LDYgKzEwOCw4IEBAIHN0cnVjdCBtdDc5MTVfcGh5IHsNCiANCiAJc3RydWN0IGll ZWU4MDIxMV9zYmFuZF9pZnR5cGVfZGF0YSBpZnR5cGVbMl1bTlVNX05MODAyMTFfSUZUWVBFU107 DQogDQorCXN0cnVjdCBpZWVlODAyMTFfdmlmICptb25pdG9yX3ZpZjsNCisNCiAJdTMyIHJ4Zmls dGVyOw0KIAl1NjQgb21hY19tYXNrOw0KIA0KQEAgLTE1OCw2ICsxNjAsMTQgQEAgc3RydWN0IG10 NzkxNV9kZXYgew0KIAlzdHJ1Y3QgaWRyIHRva2VuOw0KIA0KIAlib29sIGZ3X2RlYnVnOw0KKw0K KyNpZmRlZiBDT05GSUdfTkw4MDIxMV9URVNUTU9ERQ0KKwlzdHJ1Y3Qgew0KKwkJdTMyICpyZWdf YmFja3VwOw0KKw0KKwkJdTggc3BlX2lkeDsNCisJfSB0ZXN0Ow0KKyNlbmRpZg0KIH07DQogDQog ZW51bSB7DQpAQCAtMjQ3LDYgKzI1Nyw3IEBAIHN0YXRpYyBpbmxpbmUgdTggbXQ3OTE1X2xtYWNf bWFwcGluZyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCB1OCBhYykNCiANCiBleHRlcm4gY29uc3Qg c3RydWN0IGllZWU4MDIxMV9vcHMgbXQ3OTE1X29wczsNCiBleHRlcm4gc3RydWN0IHBjaV9kcml2 ZXIgbXQ3OTE1X3BjaV9kcml2ZXI7DQorZXh0ZXJuIGNvbnN0IHN0cnVjdCBtdDc2X3Rlc3Rtb2Rl X29wcyBtdDc5MTVfdGVzdG1vZGVfb3BzOw0KIA0KIHUzMiBtdDc5MTVfcmVnX21hcChzdHJ1Y3Qg bXQ3OTE1X2RldiAqZGV2LCB1MzIgYWRkcik7DQogDQpAQCAtMjkyLDYgKzMwMyw3IEBAIGludCBt dDc5MTVfbWN1X2FkZF9yYXRlX2N0cmwoc3RydWN0IG10NzkxNV9kZXYgKmRldiwgc3RydWN0IGll ZWU4MDIxMV92aWYgKnZpZiwNCiAJCQkgICAgIHN0cnVjdCBpZWVlODAyMTFfc3RhICpzdGEpOw0K IGludCBtdDc5MTVfbWN1X2FkZF9zbXBzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBp ZWVlODAyMTFfdmlmICp2aWYsDQogCQkJc3RydWN0IGllZWU4MDIxMV9zdGEgKnN0YSk7DQoraW50 IG10NzkxNV9zZXRfY2hhbm5lbChzdHJ1Y3QgbXQ3OTE1X3BoeSAqcGh5KTsNCiBpbnQgbXQ3OTE1 X21jdV9zZXRfY2hhbl9pbmZvKHN0cnVjdCBtdDc5MTVfcGh5ICpwaHksIGludCBjbWQpOw0KIGlu dCBtdDc5MTVfbWN1X3NldF90eChzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBzdHJ1Y3QgaWVlZTgw MjExX3ZpZiAqdmlmKTsNCiBpbnQgbXQ3OTE1X21jdV9zZXRfZml4ZWRfcmF0ZShzdHJ1Y3QgbXQ3 OTE1X2RldiAqZGV2LA0KQEAgLTMwMCw2ICszMTIsOCBAQCBpbnQgbXQ3OTE1X21jdV9zZXRfZWVw cm9tKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpOw0KIGludCBtdDc5MTVfbWN1X2dldF9lZXByb20o c3RydWN0IG10NzkxNV9kZXYgKmRldiwgdTMyIG9mZnNldCk7DQogaW50IG10NzkxNV9tY3Vfc2V0 X21hYyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2LCBpbnQgYmFuZCwgYm9vbCBlbmFibGUsDQogCQkg ICAgICAgYm9vbCBoZHJfdHJhbnMpOw0KK2ludCBtdDc5MTVfbWN1X3NldF90ZXN0X3BhcmFtKHN0 cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHU4IHBhcmFtLCBib29sIHRlc3RfbW9kZSwNCisJCQkgICAg ICB1OCBlbik7DQogaW50IG10NzkxNV9tY3Vfc2V0X3NjcyhzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2 LCB1OCBiYW5kLCBib29sIGVuYWJsZSk7DQogaW50IG10NzkxNV9tY3Vfc2V0X3NlcihzdHJ1Y3Qg bXQ3OTE1X2RldiAqZGV2LCB1OCBhY3Rpb24sIHU4IHNldCwgdTggYmFuZCk7DQogaW50IG10Nzkx NV9tY3Vfc2V0X3J0c190aHJlc2goc3RydWN0IG10NzkxNV9waHkgKnBoeSwgdTMyIHZhbCk7DQpk aWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcmVn cy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcmVncy5oDQpp bmRleCBlNDI1MmM4Li41MDNjOWM4IDEwMDY0NA0KLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3Mv bWVkaWF0ZWsvbXQ3Ni9tdDc5MTUvcmVncy5oDQorKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9t ZWRpYXRlay9tdDc2L210NzkxNS9yZWdzLmgNCkBAIC01MSw2ICs1MSw5IEBADQogI2RlZmluZSBN VF9XRl9UTUFDX0JBU0UoX2JhbmQpCQkoKF9iYW5kKSA/IDB4YTEwMDAgOiAweDIxMDAwKQ0KICNk ZWZpbmUgTVRfV0ZfVE1BQyhfYmFuZCwgb2ZzKQkJKE1UX1dGX1RNQUNfQkFTRShfYmFuZCkgKyAo b2ZzKSkNCiANCisjZGVmaW5lIE1UX1RNQUNfVENSMChfYmFuZCkJCU1UX1dGX1RNQUMoX2JhbmQs IDApDQorI2RlZmluZSBNVF9UTUFDX1RDUjBfVEJUVF9TVE9QX0NUUkwJQklUKDI1KQ0KKw0KICNk ZWZpbmUgTVRfVE1BQ19DRFRSKF9iYW5kKQkJTVRfV0ZfVE1BQyhfYmFuZCwgMHgwOTApDQogI2Rl ZmluZSBNVF9UTUFDX09EVFIoX2JhbmQpCQlNVF9XRl9UTUFDKF9iYW5kLCAweDA5NCkNCiAjZGVm aW5lIE1UX1RJTUVPVVRfVkFMX1BMQ1AJCUdFTk1BU0soMTUsIDApDQpAQCAtNzIsNiArNzUsOSBA QA0KICNkZWZpbmUgTVRfVE1BQ19GUDBSMTgoX2JhbmQpCQlNVF9XRl9UTUFDKF9iYW5kLCAweDI3 MCkNCiAjZGVmaW5lIE1UX1RNQUNfRlBfTUFTSwkJCUdFTk1BU0soNywgMCkNCiANCisjZGVmaW5l IE1UX1RNQUNfVFJDUjAoX2JhbmQpCQlNVF9XRl9UTUFDKF9iYW5kLCAweDA5YykNCisjZGVmaW5l IE1UX1RNQUNfVEZDUjAoX2JhbmQpCQlNVF9XRl9UTUFDKF9iYW5kLCAweDFlMCkNCisNCiAvKiBE TUEgQmFuZCAwICovDQogI2RlZmluZSBNVF9XRl9ETUFfQkFTRQkJCTB4MjFlMDANCiAjZGVmaW5l IE1UX1dGX0RNQShvZnMpCQkJKE1UX1dGX0RNQV9CQVNFICsgKG9mcykpDQpAQCAtMTcxLDEwICsx NzcsMzMgQEANCiAjZGVmaW5lIE1UX1dGX0FHR19CQVNFKF9iYW5kKQkJKChfYmFuZCkgPyAweGEw ODAwIDogMHgyMDgwMCkNCiAjZGVmaW5lIE1UX1dGX0FHRyhfYmFuZCwgb2ZzKQkJKE1UX1dGX0FH R19CQVNFKF9iYW5kKSArIChvZnMpKQ0KIA0KKyNkZWZpbmUgTVRfQUdHX0FXU0NSMChfYmFuZCwg X24pCU1UX1dGX0FHRyhfYmFuZCwgMHgwNWMgKyAoX24pICogNCkNCisjZGVmaW5lIE1UX0FHR19Q Q1IwKF9iYW5kLCBfbikJCU1UX1dGX0FHRyhfYmFuZCwgMHgwNmMgKyAoX24pICogNCkNCisjZGVm aW5lIE1UX0FHR19QQ1IwX01NX1BST1QJCUJJVCgwKQ0KKyNkZWZpbmUgTVRfQUdHX1BDUjBfR0Zf UFJPVAkJQklUKDEpDQorI2RlZmluZSBNVF9BR0dfUENSMF9CVzIwX1BST1QJCUJJVCgyKQ0KKyNk ZWZpbmUgTVRfQUdHX1BDUjBfQlc0MF9QUk9UCQlCSVQoNCkNCisjZGVmaW5lIE1UX0FHR19QQ1Iw X0JXODBfUFJPVAkJQklUKDYpDQorI2RlZmluZSBNVF9BR0dfUENSMF9FUlBfUFJPVAkJR0VOTUFT SygxMiwgOCkNCisjZGVmaW5lIE1UX0FHR19QQ1IwX1ZIVF9QUk9UCQlCSVQoMTMpDQorI2RlZmlu ZSBNVF9BR0dfUENSMF9QVEFfV0lOX0RJUwkJQklUKDE1KQ0KKw0KKyNkZWZpbmUgTVRfQUdHX1BD UjFfUlRTMF9OVU1fVEhSRVMJR0VOTUFTSygzMSwgMjMpDQorI2RlZmluZSBNVF9BR0dfUENSMV9S VFMwX0xFTl9USFJFUwlHRU5NQVNLKDE5LCAwKQ0KKw0KICNkZWZpbmUgTVRfQUdHX0FDUjAoX2Jh bmQpCQlNVF9XRl9BR0coX2JhbmQsIDB4MDg0KQ0KICNkZWZpbmUgTVRfQUdHX0FDUl9DRkVORF9S QVRFCQlHRU5NQVNLKDEzLCAwKQ0KICNkZWZpbmUgTVRfQUdHX0FDUl9CQVJfUkFURQkJR0VOTUFT SygyOSwgMTYpDQogDQorI2RlZmluZSBNVF9BR0dfTVJDUihfYmFuZCkJCU1UX1dGX0FHRyhfYmFu ZCwgMHgwOTgpDQorI2RlZmluZSBNVF9BR0dfTVJDUl9CQVJfQ05UX0xJTUlUCUdFTk1BU0soMTUs IDEyKQ0KKyNkZWZpbmUgTVRfQUdHX01SQ1JfTEFTVF9SVFNfQ1RTX1JOCUJJVCg2KQ0KKyNkZWZp bmUgTVRfQUdHX01SQ1JfUlRTX0ZBSUxfTElNSVQJR0VOTUFTSygxMSwgNykNCisjZGVmaW5lIE1U X0FHR19NUkNSX1RYQ01EX1JUU19GQUlMX0xJTUlUCUdFTk1BU0soMjgsIDI0KQ0KKw0KKyNkZWZp bmUgTVRfQUdHX0FUQ1IxKF9iYW5kKQkJTVRfV0ZfQUdHKF9iYW5kLCAweDBmMCkNCisjZGVmaW5l IE1UX0FHR19BVENSMyhfYmFuZCkJCU1UX1dGX0FHRyhfYmFuZCwgMHgwZjQpDQorDQogLyogQVJC OiBiYW5kIDAoMHgyMGMwMCksIGJhbmQgMSgweGEwYzAwKSAqLw0KICNkZWZpbmUgTVRfV0ZfQVJC X0JBU0UoX2JhbmQpCQkoKF9iYW5kKSA/IDB4YTBjMDAgOiAweDIwYzAwKQ0KICNkZWZpbmUgTVRf V0ZfQVJCKF9iYW5kLCBvZnMpCQkoTVRfV0ZfQVJCX0JBU0UoX2JhbmQpICsgKG9mcykpDQpAQCAt MTgzLDYgKzIxMiw4IEBADQogI2RlZmluZSBNVF9BUkJfU0NSX1RYX0RJU0FCTEUJCUJJVCg4KQ0K ICNkZWZpbmUgTVRfQVJCX1NDUl9SWF9ESVNBQkxFCQlCSVQoOSkNCiANCisjZGVmaW5lIE1UX0FS Ql9EUk5HUjAoX2JhbmQsIF9uKQlNVF9XRl9BUkIoX2JhbmQsIDB4MTk0ICsgKF9uKSAqIDQpDQor DQogLyogUk1BQzogYmFuZCAwKDB4MjE0MDApLCBiYW5kIDEoMHhhMTQwMCkgKi8NCiAjZGVmaW5l IE1UX1dGX1JNQUNfQkFTRShfYmFuZCkJCSgoX2JhbmQpID8gMHhhMTQwMCA6IDB4MjE0MDApDQog I2RlZmluZSBNVF9XRl9STUFDKF9iYW5kLCBvZnMpCQkoTVRfV0ZfUk1BQ19CQVNFKF9iYW5kKSAr IChvZnMpKQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYv bXQ3OTE1L3Rlc3Rtb2RlLmMgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210 NzkxNS90ZXN0bW9kZS5jDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uNWQ5 NTc2Ng0KLS0tIC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsv bXQ3Ni9tdDc5MTUvdGVzdG1vZGUuYw0KQEAgLTAsMCArMSwxODAgQEANCisvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogSVNDDQorLyogQ29weXJpZ2h0IChDKSAyMDIwIE1lZGlhVGVrIEluYy4g Ki8NCisNCisjaW5jbHVkZSAibXQ3OTE1LmgiDQorI2luY2x1ZGUgIm1hYy5oIg0KKyNpbmNsdWRl ICJtY3UuaCINCisjaW5jbHVkZSAidGVzdG1vZGUuaCINCisNCitzdHJ1Y3QgcmVnX2JhbmQgew0K Kwl1MzIgYmFuZFsyXTsNCit9Ow0KKw0KKyNkZWZpbmUgUkVHX0JBTkQoX3JlZykgXA0KKwl7IC5i YW5kWzBdID0gTVRfIyNfcmVnKDApLCAuYmFuZFsxXSA9IE1UXyMjX3JlZygxKSB9DQorI2RlZmlu ZSBSRUdfQkFORF9JRFgoX3JlZywgX2lkeCkgXA0KKwl7IC5iYW5kWzBdID0gTVRfIyNfcmVnKDAs IF9pZHgpLCAuYmFuZFsxXSA9IE1UXyMjX3JlZygxLCBfaWR4KSB9DQorDQorc3RhdGljIGNvbnN0 IHN0cnVjdCByZWdfYmFuZCByZWdfYmFja3VwX2xpc3RbXSA9IHsNCisJUkVHX0JBTkRfSURYKEFH R19QQ1IwLCAwKSwNCisJUkVHX0JBTkRfSURYKEFHR19QQ1IwLCAxKSwNCisJUkVHX0JBTkRfSURY KEFHR19BV1NDUjAsIDApLA0KKwlSRUdfQkFORF9JRFgoQUdHX0FXU0NSMCwgMSksDQorCVJFR19C QU5EX0lEWChBR0dfQVdTQ1IwLCAyKSwNCisJUkVHX0JBTkRfSURYKEFHR19BV1NDUjAsIDMpLA0K KwlSRUdfQkFORChBR0dfTVJDUiksDQorCVJFR19CQU5EKFRNQUNfVEZDUjApLA0KKwlSRUdfQkFO RChUTUFDX1RDUjApLA0KKwlSRUdfQkFORChBR0dfQVRDUjEpLA0KKwlSRUdfQkFORChBR0dfQVRD UjMpLA0KKwlSRUdfQkFORChUTUFDX1RSQ1IwKSwNCisJUkVHX0JBTkQoVE1BQ19JQ1IwKSwNCisJ UkVHX0JBTkRfSURYKEFSQl9EUk5HUjAsIDApLA0KKwlSRUdfQkFORF9JRFgoQVJCX0RSTkdSMCwg MSksDQorfTsNCisNCitzdGF0aWMgaW50DQorbXQ3OTE1X3RtX21vZGVfY3RybChzdHJ1Y3QgbXQ3 OTE1X2RldiAqZGV2LCBib29sIGVuYWJsZSkNCit7DQorCXN0cnVjdCB7DQorCQl1OCBmb3JtYXRf aWQ7DQorCQlib29sIGVuYWJsZTsNCisJCXU4IHJzdlsyXTsNCisJfSBfX3BhY2tlZCByZXEgPSB7 DQorCQkuZm9ybWF0X2lkID0gMHg2LA0KKwkJLmVuYWJsZSA9IGVuYWJsZSwNCisJfTsNCisNCisJ cmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKCZkZXYtPm10NzYsDQorCQkJCSBNQ1VfRVhUX0NNRF9U WF9QT1dFUl9GRUFUVVJFX0NUUkwsDQorCQkJCSAmcmVxLCBzaXplb2YocmVxKSwgZmFsc2UpOw0K K30NCisNCitzdGF0aWMgaW50DQorbXQ3OTE1X3RtX3NldF90cngoc3RydWN0IG10NzkxNV9kZXYg KmRldiwgc3RydWN0IG10NzkxNV9waHkgKnBoeSwNCisJCSAgaW50IHR5cGUsIGJvb2wgZW4pDQor ew0KKwlzdHJ1Y3QgbXQ3OTE1X3RtX2NtZCByZXEgPSB7DQorCQkudGVzdG1vZGVfZW4gPSAxLA0K KwkJLnBhcmFtX2lkeCA9IE1DVV9BVEVfU0VUX1RSWCwNCisJCS5wYXJhbS50cngudHlwZSA9IHR5 cGUsDQorCQkucGFyYW0udHJ4LmVuYWJsZSA9IGVuLA0KKwkJLnBhcmFtLnRyeC5iYW5kID0gcGh5 ICE9ICZkZXYtPnBoeSwNCisJfTsNCisNCisJcmV0dXJuIG10NzZfbWN1X3NlbmRfbXNnKCZkZXYt Pm10NzYsIE1DVV9FWFRfQ01EX0FURV9DVFJMLCAmcmVxLA0KKwkJCQkgc2l6ZW9mKHJlcSksIGZh bHNlKTsNCit9DQorDQorc3RhdGljIHZvaWQNCittdDc5MTVfdG1fcmVnX2JhY2t1cF9yZXN0b3Jl KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYsIHN0cnVjdCBtdDc5MTVfcGh5ICpwaHkpDQorew0KKwlp bnQgbl9yZWdzID0gQVJSQVlfU0laRShyZWdfYmFja3VwX2xpc3QpOw0KKwlib29sIGV4dF9waHkg PSBwaHkgIT0gJmRldi0+cGh5Ow0KKwl1MzIgKmIgPSBkZXYtPnRlc3QucmVnX2JhY2t1cDsNCisJ aW50IGk7DQorDQorCWlmIChkZXYtPm10NzYudGVzdC5zdGF0ZSA9PSBNVDc2X1RNX1NUQVRFX09G Rikgew0KKwkJZm9yIChpID0gMDsgaSA8IG5fcmVnczsgaSsrKQ0KKwkJCW10NzZfd3IoZGV2LCBy ZWdfYmFja3VwX2xpc3RbaV0uYmFuZFtleHRfcGh5XSwgYltpXSk7DQorCQlyZXR1cm47DQorCX0N CisNCisJaWYgKGIpDQorCQlyZXR1cm47DQorDQorCWIgPSBkZXZtX2t6YWxsb2MoZGV2LT5tdDc2 LmRldiwgNCAqIG5fcmVncywgR0ZQX0tFUk5FTCk7DQorCWlmICghYikNCisJCXJldHVybjsNCisN CisJZGV2LT50ZXN0LnJlZ19iYWNrdXAgPSBiOw0KKwlmb3IgKGkgPSAwOyBpIDwgbl9yZWdzOyBp KyspDQorCQliW2ldID0gbXQ3Nl9ycihkZXYsIHJlZ19iYWNrdXBfbGlzdFtpXS5iYW5kW2V4dF9w aHldKTsNCisNCisJbXQ3Nl9jbGVhcihkZXYsIE1UX0FHR19QQ1IwKGV4dF9waHksIDApLCBNVF9B R0dfUENSMF9NTV9QUk9UIHwNCisJCSAgIE1UX0FHR19QQ1IwX0dGX1BST1QgfCBNVF9BR0dfUENS MF9FUlBfUFJPVCB8DQorCQkgICBNVF9BR0dfUENSMF9WSFRfUFJPVCB8IE1UX0FHR19QQ1IwX0JX MjBfUFJPVCB8DQorCQkgICBNVF9BR0dfUENSMF9CVzQwX1BST1QgfCBNVF9BR0dfUENSMF9CVzgw X1BST1QpOw0KKwltdDc2X3NldChkZXYsIE1UX0FHR19QQ1IwKGV4dF9waHksIDApLCBNVF9BR0df UENSMF9QVEFfV0lOX0RJUyk7DQorDQorCW10NzZfd3IoZGV2LCBNVF9BR0dfUENSMChleHRfcGh5 LCAxKSwgTVRfQUdHX1BDUjFfUlRTMF9OVU1fVEhSRVMgfA0KKwkJTVRfQUdHX1BDUjFfUlRTMF9M RU5fVEhSRVMpOw0KKw0KKwltdDc2X2NsZWFyKGRldiwgTVRfQUdHX01SQ1IoMCksIE1UX0FHR19N UkNSX0JBUl9DTlRfTElNSVQgfA0KKwkJICAgTVRfQUdHX01SQ1JfTEFTVF9SVFNfQ1RTX1JOIHwg TVRfQUdHX01SQ1JfUlRTX0ZBSUxfTElNSVQgfA0KKwkJICAgTVRfQUdHX01SQ1JfVFhDTURfUlRT X0ZBSUxfTElNSVQpOw0KKw0KKwltdDc2X3JtdyhkZXYsIE1UX0FHR19NUkNSKDApLCBNVF9BR0df TVJDUl9SVFNfRkFJTF9MSU1JVCB8DQorCQkgTVRfQUdHX01SQ1JfVFhDTURfUlRTX0ZBSUxfTElN SVQsDQorCQkgRklFTERfUFJFUChNVF9BR0dfTVJDUl9SVFNfRkFJTF9MSU1JVCwgMSkgfA0KKwkJ IEZJRUxEX1BSRVAoTVRfQUdHX01SQ1JfVFhDTURfUlRTX0ZBSUxfTElNSVQsIDEpKTsNCisNCisJ bXQ3Nl93cihkZXYsIE1UX1RNQUNfVEZDUjAoMCksIDApOw0KKwltdDc2X2NsZWFyKGRldiwgTVRf VE1BQ19UQ1IwKDApLCBNVF9UTUFDX1RDUjBfVEJUVF9TVE9QX0NUUkwpOw0KK30NCisNCitzdGF0 aWMgdm9pZA0KK210NzkxNV90bV9pbml0KHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYpDQorew0KKwli b29sIGVuID0gIShkZXYtPm10NzYudGVzdC5zdGF0ZSA9PSBNVDc2X1RNX1NUQVRFX09GRik7DQor DQorCWlmICghdGVzdF9iaXQoTVQ3Nl9TVEFURV9SVU5OSU5HLCAmZGV2LT5waHkubXQ3Ni0+c3Rh dGUpKQ0KKwkJcmV0dXJuOw0KKw0KKwltdDc5MTVfdG1fbW9kZV9jdHJsKGRldiwgZW4pOw0KKwlt dDc5MTVfdG1fcmVnX2JhY2t1cF9yZXN0b3JlKGRldiwgJmRldi0+cGh5KTsNCisJbXQ3OTE1X3Rt X3NldF90cngoZGV2LCAmZGV2LT5waHksIFRNX01BQ19UWFJYLCAhZW4pOw0KK30NCisNCitzdGF0 aWMgdm9pZA0KK210NzkxNV90bV9zZXRfdHhfZnJhbWVzKHN0cnVjdCBtdDc5MTVfZGV2ICpkZXYs IGJvb2wgZW4pDQorew0KKwlzdGF0aWMgY29uc3QgdTggc3BlX2lkeF9tYXBbXSA9IHswLCAwLCAx LCAwLCAzLCAyLCA0LCAwLA0KKwkJCQkJIDksIDgsIDYsIDEwLCAxNiwgMTIsIDE4LCAwfTsNCisJ c3RydWN0IHNrX2J1ZmYgKnNrYiA9IGRldi0+bXQ3Ni50ZXN0LnR4X3NrYjsNCisJc3RydWN0IGll ZWU4MDIxMV90eF9pbmZvICppbmZvOw0KKw0KKwltdDc5MTVfdG1fc2V0X3RyeChkZXYsICZkZXYt PnBoeSwgVE1fTUFDX1JYX1JYViwgZmFsc2UpOw0KKw0KKwlpZiAoZW4pIHsNCisJCXU4IHR4X2Fu dCA9IGRldi0+bXQ3Ni50ZXN0LnR4X2FudGVubmFfbWFzazsNCisNCisJCW11dGV4X3VubG9jaygm ZGV2LT5tdDc2Lm11dGV4KTsNCisJCW10NzkxNV9zZXRfY2hhbm5lbCgmZGV2LT5waHkpOw0KKwkJ bXV0ZXhfbG9jaygmZGV2LT5tdDc2Lm11dGV4KTsNCisNCisJCW10NzkxNV9tY3Vfc2V0X2NoYW5f aW5mbygmZGV2LT5waHksIE1DVV9FWFRfQ01EX1NFVF9SWF9QQVRIKTsNCisJCWRldi0+dGVzdC5z cGVfaWR4ID0gc3BlX2lkeF9tYXBbdHhfYW50XTsNCisJfQ0KKw0KKwltdDc5MTVfdG1fc2V0X3Ry eChkZXYsICZkZXYtPnBoeSwgVE1fTUFDX1RYLCBlbik7DQorDQorCWlmICghZW4gfHwgIXNrYikN CisJCXJldHVybjsNCisNCisJaW5mbyA9IElFRUU4MDIxMV9TS0JfQ0Ioc2tiKTsNCisJaW5mby0+ Y29udHJvbC52aWYgPSBkZXYtPnBoeS5tb25pdG9yX3ZpZjsNCit9DQorDQorc3RhdGljIGludA0K K210NzkxNV90bV9zZXRfc3RhdGUoc3RydWN0IG10NzZfZGV2ICptZGV2LCBlbnVtIG10NzZfdGVz dG1vZGVfc3RhdGUgc3RhdGUpDQorew0KKwlzdHJ1Y3QgbXQ3OTE1X2RldiAqZGV2ID0gY29udGFp bmVyX29mKG1kZXYsIHN0cnVjdCBtdDc5MTVfZGV2LCBtdDc2KTsNCisJc3RydWN0IG10NzZfdGVz dG1vZGVfZGF0YSAqdGQgPSAmbWRldi0+dGVzdDsNCisJZW51bSBtdDc2X3Rlc3Rtb2RlX3N0YXRl IHByZXZfc3RhdGUgPSB0ZC0+c3RhdGU7DQorDQorCW1kZXYtPnRlc3Quc3RhdGUgPSBzdGF0ZTsN CisNCisJaWYgKHByZXZfc3RhdGUgPT0gTVQ3Nl9UTV9TVEFURV9UWF9GUkFNRVMpDQorCQltdDc5 MTVfdG1fc2V0X3R4X2ZyYW1lcyhkZXYsIGZhbHNlKTsNCisJZWxzZSBpZiAoc3RhdGUgPT0gTVQ3 Nl9UTV9TVEFURV9UWF9GUkFNRVMpDQorCQltdDc5MTVfdG1fc2V0X3R4X2ZyYW1lcyhkZXYsIHRy dWUpOw0KKwllbHNlIGlmIChwcmV2X3N0YXRlID09IE1UNzZfVE1fU1RBVEVfT0ZGIHx8IHN0YXRl ID09IE1UNzZfVE1fU1RBVEVfT0ZGKQ0KKwkJbXQ3OTE1X3RtX2luaXQoZGV2KTsNCisNCisJcmV0 dXJuIDA7DQorfQ0KKw0KK2NvbnN0IHN0cnVjdCBtdDc2X3Rlc3Rtb2RlX29wcyBtdDc5MTVfdGVz dG1vZGVfb3BzID0gew0KKwkuc2V0X3N0YXRlID0gbXQ3OTE1X3RtX3NldF9zdGF0ZSwNCit9Ow0K ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL21lZGlhdGVrL210NzYvbXQ3OTE1L3Rl c3Rtb2RlLmggYi9kcml2ZXJzL25ldC93aXJlbGVzcy9tZWRpYXRlay9tdDc2L210NzkxNS90ZXN0 bW9kZS5oDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uMDRmNGEyYw0KLS0t IC9kZXYvbnVsbA0KKysrIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvbWVkaWF0ZWsvbXQ3Ni9tdDc5 MTUvdGVzdG1vZGUuaA0KQEAgLTAsMCArMSwzNCBAQA0KKy8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBJU0MNCisvKiBDb3B5cmlnaHQgKEMpIDIwMjAgTWVkaWFUZWsgSW5jLiAqLw0KKw0KKyNp Zm5kZWYgX19NVDc5MTVfVEVTVE1PREVfSA0KKyNkZWZpbmUgX19NVDc5MTVfVEVTVE1PREVfSA0K Kw0KK3N0cnVjdCBtdDc5MTVfdG1fdHJ4IHsNCisJdTggdHlwZTsNCisJdTggZW5hYmxlOw0KKwl1 OCBiYW5kOw0KKwl1OCByc3Y7DQorfTsNCisNCitzdHJ1Y3QgbXQ3OTE1X3RtX2NtZCB7DQorCXU4 IHRlc3Rtb2RlX2VuOw0KKwl1OCBwYXJhbV9pZHg7DQorCXU4IF9yc3ZbMl07DQorCXVuaW9uIHsN CisJCV9fbGUzMiBkYXRhOw0KKwkJc3RydWN0IG10NzkxNV90bV90cnggdHJ4Ow0KKwkJdTggdGVz dFs3Ml07DQorCX0gcGFyYW07DQorfSBfX3BhY2tlZDsNCisNCitlbnVtIHsNCisJVE1fTUFDX1RY ID0gMSwNCisJVE1fTUFDX1JYLA0KKwlUTV9NQUNfVFhSWCwNCisJVE1fTUFDX1RYUlhfUlhWLA0K KwlUTV9NQUNfUlhWLA0KKwlUTV9NQUNfUlhfUlhWLA0KK307DQorDQorI2VuZGlmDQotLSANCjIu MTcuMQ0K