From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8ED9820E314; Mon, 3 Feb 2025 17:02:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.19 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738602161; cv=none; b=m7TQaMnMhD7PQzl/VhZWGNgY3kjqgfkHahFRa3qrheRfLF4Dr7992zLwmPGxi/Mwu/fc+UH2ST2Og/+Kkx1jIb6V3wHIWWbUW4VBCOW37K/qvFfuW9s3wjPUAZi1QNmR6+sipN4KIdWhhw4bceqNUO9XvlW8DQ1m0HhMrdTBhZI= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738602161; c=relaxed/simple; bh=6U49zlPruh6qztaOIOjl7sn2x067Ycd9DyQLhlnnpNI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=htgtmx1hD4MiYakEVpZSH46ZBnrMFIuVMcJ+KL3ceUwV32I4MW2k6c2YUkccKsJ748QN1UeLm+0oyEf/nYoc7+3GbbVQ0ha7Wuj1uTMzgY4G+2uAgZ1y5dfk9q82RWqd7faCmwJmO5eItl0dTJz7xKncU+B1G6iuPLtVf4MXY7E= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net; spf=pass smtp.mailfrom=gmx.net; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b=n1cyZwQQ; arc=none smtp.client-ip=212.227.15.19 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.net Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmx.net Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmx.net header.i=ps.report@gmx.net header.b="n1cyZwQQ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1738602151; x=1739206951; i=ps.report@gmx.net; bh=6U49zlPruh6qztaOIOjl7sn2x067Ycd9DyQLhlnnpNI=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=n1cyZwQQbPDPXWhjYXljDHhT+SDIsPq50RBaGzWZtcOuP0sF4ibfML/bD11OPoVT 8cT0NVjwe6iEK4Mry+SPIHdVsXuhMuZ1wcKDwyR79c14CBkA1tajR1NswbZHRvkk/ 50fH9i+2dNrW3vWgoKCebnjBEMv4u7GXk0+7KmUDdb/ILZwSvk2Uf8uCwGGN0mBNS j6iFnJn34q0Djp806o234csASLIeVOE+ToEgt9peLUMTN9fgKDvKIRyruh5sEhoTT GR110k8qS6D6201eDVENKMHK3OEHEt8sl5cO9jDsrL2iZ3ddNkk98912rSeNRFXbW I/3yukeVx4yuuR67rw== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.54]) by mail.gmx.net (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MhU5R-1tArp62kKJ-00iIFv; Mon, 03 Feb 2025 18:02:31 +0100 From: Peter Seiderer To: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org, "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , Shuah Khan , Nam Cao , Thomas Gleixner , Frederic Weisbecker , Artem Chernyshev , Peter Seiderer Subject: [PATCH net-next v3 10/10] selftest: net: add proc_net_pktgen Date: Mon, 3 Feb 2025 18:02:01 +0100 Message-ID: <20250203170201.1661703-11-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250203170201.1661703-1-ps.report@gmx.net> References: <20250203170201.1661703-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:elvmACI3X9Kc5I4XLl9wDIPno/K2MhEgiwIhSSYGki5KnKCO5yk uJ4pIOQ2jHVidWmUDSJ+0L2JL+dwqQxapHYawD257TxqqEZbL+V6Yr752VmCRMQXpGhSI91 0Z7yAZD3PkeJ1cm9/SvN40B0aKrkVTdBE8uhfd2RqbmIDaqu0t6wH40Di8GtIrDZfKpUu0H gqRxQycMtxFPTdrWJSZ5g== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:i6BNkh9Xkh8=;wp/Zru1mvFDtb5wYZqy+IAyLH1r S20zLYmtSQVclYGNVlGokE8Np9HEsRk13l5pB/+DqV3w2Fxsrpd7mb1sE5rNAq/wEbK9dDz+I 2eMlXti41OIv4HJ58t1143LnAYwqFBcaClMtOrHkZ3VnQXterLrhoLQndWoXFaVD8Y7WgZbab kQKi2UHB2/6Vl+cMrxrrlekO1aCr4+CEvGHJx3/l03QhaIp84OYW0C499XZ8eyPbNqyC/MFt2 wQhXqjM2a50j2jCnc+nYtOxvHXUDzZY7ZFHWiCEA9OXclxEwqwW8o9Eh3gUAPCbgarhlM7w3s far/rb0YkDarmtGzGOgUe0+s9Df1v1HQVkN86VaZ14NanOZ3evegAAzs0vMvVvq/QNCzlVOTP v+Y45peYq3xuhbsDPQo+ph0A+X+u4sBEyvuEYLB28s9IcD7GlQl3ZTt61WPmfs6t+8l3xY2aX hx/zhwD98L+IS8o7VGAOE5IeZ1YnI/+61uRHgxylusi1g/aiN+RkrzdgJ/Xj7y4if541l2ViR LHYAZ6ceE1fG30fiWlyKiy7WA2eHyxFH3HmfWvy4e3Gwxu5dHPM2gomiKzL69IlSNiYbfcf66 iyuA1ieu3HCEf4gL5JPnLsknvID/eLJcOG9F8VL2kTWrVLF+FKGNpkIJY4nDulcy3V65KcUWL /tmPr3jqB/OfyosACFnkWyyx2wuVVn/+WvsjogHrLCtHDiS0SDYFbId23Kwyb+nWQNlxtREIS eYshqwikxxj8dNkdDFdhfRNl266F5Nade2e3mZ6IPZQCG1ll0UMXtJa/8dD1zO/ycgz3+t8g3 4aZ9dQoQieujRVpJ9CxvOuCZRmMkRqAqPnq3JkSlO2MuLIQPQSUzQOwz8ccT3ILn6DdNlKaze 4KyWph8gh/eMfxhv0zB6T+boEj4L7O448h//UXR3bbF7MkNIZE2eDWi0aDXRdXgBXdfC3U3Jy NBj1wVGuwEzSCEVIh2xcZuKjUEX6pdUOt5RZTNBUTnla4Kdt9xLvk4H/bzbX1suvECihPjpsU CEQTJsc/b3nFQN96Ev66GRn21SuepjfuvS/vVZxptosMh60X+/No2ATZFYMcDUvwTR/GOorgE t2YVoooBVDp4ltqXuuKXmoJtYj9WSg3ZCpba7WCrCHDcHSaNKV8J9VwEY4btIGNUfvlTGc7Ay FhjFxmeTun2Jy6uJPa+Zhu6EA7acsIOJL19Qo/POuLVpGUppXScs30NF5AuMBpKA14NZknh6r TSfx4pcDC0zMZZeAJbL3SlHSjiAsUBxnTeIHzpGg+GDYIRV44aj/zqhzjbe9anjHWhSsYwcZt 4vHKQttKMn/QseyTbvu3vn5TmRmukXCteaChxlCYs45gHo= QWRkIHNvbWUgdGVzdCBmb3IgL3Byb2MvbmV0L3BrdGdlbi8uLi4gaW50ZXJmYWNlLgoKLSBlbmFi bGUgJ0NPTkZJR19ORVRfUEtUR0VOPW0nIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKClNpZ25lZC1vZmYtYnk6IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4K LS0tCkNoYW5nZXMgdjIgLT4gdjM6CiAgLSBmaXggdHlwbyBpbiBjaGFuZ2UgZGVzY3JpcHRpb24g KCd2MSAtPiB2MScgYW5kIHR5b3ApCiAgLSByZW5hbWUgc29tZSB2YXJzIHRvIGJldHRlciBtYXRj aCB1c2FnZQogICAgYWRkX2xvb3BiYWNrXzAgLT4gdGhyX2NtZF9hZGRfbG9vcGJhY2tfMAogICAg cm1fbG9vcGJhY2tfMCAtPiB0aHJfY21kX3JtX2xvb3BiYWNrXzAKICAgIHdyb25nX2N0cmxfY21k IC0+IHdyb25nX3Rocl9jbWQKICAgIGxlZ2FjeV9jdHJsX2NtZCAtPiBsZWdhY3lfdGhyX2NtZAog ICAgY3RybF9mZCAtPiB0aHJfZmQKICAtIGFkZCBjdHJsIGludGVyZmFjZSB0ZXN0cwoKQ2hhbmdl cyB2MSAtPiB2MjoKICAtIGZpeCB0eW9wIG5vdCB2cy4gbm9kIChzdWdnZXN0ZWQgYnkgSmFrdWIg S2ljaW5za2kpCiAgLSBmaXggbWlzYWxpZ25lZCBsaW5lIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2lj aW5za2kpCiAgLSBlbmFibGUgZm9tZXJseSBjb21tZW50ZWQgb3V0IENPTkZJR19YRlJNIGRlcGVu ZGVudCB0ZXN0IChjb21tYW5kIHNwaSksCiAgICBhcyBDT05GSUdfWEZSTSBpcyBlbmFibGVkIHZp YSB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnCiAgICBDT05GSUdfWEZSTV9JTlRF UkZBQ0UvQ09ORklHX1hGUk1fVVNFUiAoc3VnZ2VzdGV4IGJ5IEpha3ViIEtpY2luc2tpKQogIC0g YWRkIENPTkZJR19ORVRfUEtUR0VOPW0gdG8gdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2Nv bmZpZwogICAgKHN1Z2dlc3RlZCBieSBKYWt1YiBLaWNpbnNraSkKICAtIGFkZCBtb2Rwcm9iZSBw a3RnZW4gdG8gRklYVFVSRV9TRVRVUCgpIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAg LSBmaXggc29tZSBjaGVja3BhdGNoIHdhcm5pbmdzIChNaXNzaW5nIGEgYmxhbmsgbGluZSBhZnRl ciBkZWNsYXJhdGlvbnMpCiAgLSBzaHJpbmsgbGluZSBsZW5ndGggYnkgcmUtbmFtaW5nIHNvbWUg dmFyaWFibGVzIChjb21tYW5kIC0+IGNtZCwKICAgIGRldmljZSAtPiBkZXYpCiAgLSBhZGQgJ3Jh dGUgMCcgdGVzdGNhc2UKICAtIGFkZCAncmF0ZXAgMCcgdGVzdGNhc2UKLS0tCiB0b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwogdG9vbHMvdGVzdGlu Zy9zZWxmdGVzdHMvbmV0L2NvbmZpZyAgICAgICAgICAgIHwgICAxICsKIHRvb2xzL3Rlc3Rpbmcv c2VsZnRlc3RzL25ldC9wcm9jX25ldF9wa3RnZW4uYyB8IDY1MCArKysrKysrKysrKysrKysrKysK IDMgZmlsZXMgY2hhbmdlZCwgNjUyIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMKCmRpZmYgLS1naXQg YS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUgYi90b29scy90ZXN0aW5nL3Nl bGZ0ZXN0cy9uZXQvTWFrZWZpbGUKaW5kZXggNzNlZTg4ZDZiMDQzLi4wOTU3MDhjZDgzNDUgMTAw NjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9NYWtlZmlsZQorKysgYi90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUKQEAgLTEwMCw2ICsxMDAsNyBAQCBURVNU X1BST0dTICs9IHZsYW5fYnJpZGdlX2JpbmRpbmcuc2gKIFRFU1RfUFJPR1MgKz0gYnBmX29mZmxv YWQucHkKIFRFU1RfUFJPR1MgKz0gaXB2Nl9yb3V0ZV91cGRhdGVfc29mdF9sb2NrdXAuc2gKIFRF U1RfUFJPR1MgKz0gYnVzeV9wb2xsX3Rlc3Quc2gKK1RFU1RfR0VOX1BST0dTICs9IHByb2NfbmV0 X3BrdGdlbgogCiAjIFlOTCBmaWxlcywgbXVzdCBiZSBiZWZvcmUgImluY2x1ZGUgLi5saWIubWsi CiBZTkxfR0VOX0ZJTEVTIDo9IGJ1c3lfcG9sbGVyIG5ldGxpbmstZHVtcHMKZGlmZiAtLWdpdCBh L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25maWcgYi90b29scy90ZXN0aW5nL3NlbGZ0 ZXN0cy9uZXQvY29uZmlnCmluZGV4IDViOWJhZjcwODk1MC4uOWZlMWIzNDY0ZmJjIDEwMDY0NAot LS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnCisrKyBiL3Rvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL25ldC9jb25maWcKQEAgLTEwNywzICsxMDcsNCBAQCBDT05GSUdfWEZSTV9J TlRFUkZBQ0U9bQogQ09ORklHX1hGUk1fVVNFUj1tCiBDT05GSUdfSVBfTkZfTUFUQ0hfUlBGSUxU RVI9bQogQ09ORklHX0lQNl9ORl9NQVRDSF9SUEZJTFRFUj1tCitDT05GSUdfTkVUX1BLVEdFTj1t CmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2Vu LmMgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44MWJjOWU5ZTQxMmYKLS0tIC9kZXYv bnVsbAorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMK QEAgLTAsMCArMSw2NTAgQEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisv KgorICogcHJvY19uZXRfcGt0Z2VuOiBrc2VsZnRlc3QgZm9yIC9wcm9jL25ldC9wa3RnZW4gaW50 ZXJmYWNlCisgKgorICogQ29weXJpZ2h0IChjKSAyMDI1IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBv cnRAZ214Lm5ldD4KKyAqCisgKi8KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRs Lmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRl ICIuLi9rc2VsZnRlc3RfaGFybmVzcy5oIgorCitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2NtZF9z dG9wW10gPSAic3RvcCI7CitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2NtZF9zdGFydFtdID0gInN0 YXJ0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGN0cmxfY21kX3Jlc2V0W10gPSAicmVzZXQiOworCitz dGF0aWMgY29uc3QgY2hhciB3cm9uZ19jdHJsX2NtZFtdID0gIjAxMjM0NTY3ODkwMTIzNDU2Nzg5 MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2 Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkiOwor CitzdGF0aWMgY29uc3QgY2hhciB0aHJfY21kX2FkZF9sb29wYmFja18wW10gPSAiYWRkX2Rldmlj ZSBsb0AwIjsKK3N0YXRpYyBjb25zdCBjaGFyIHRocl9jbWRfcm1fbG9vcGJhY2tfMFtdID0gInJl bV9kZXZpY2VfYWxsIjsKKworc3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfdGhyX2NtZFtdID0gImZv cnN1cmVhd3Jvbmdjb21tYW5kIjsKK3N0YXRpYyBjb25zdCBjaGFyIGxlZ2FjeV90aHJfY21kW10g PSAibWF4X2JlZm9yZV9zb2Z0aXJxIjsKKworc3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfZGV2X2Nt ZFtdID0gImZvcnN1cmV3cm9uZ2NvbW1hbmQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9t aW5fcGt0X3NpemVfMFtdID0gIm1pbl9wa3Rfc2l6ZSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZf Y21kX21pbl9wa3Rfc2l6ZV8xW10gPSAibWluX3BrdF9zaXplICI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX21pbl9wa3Rfc2l6ZV8yW10gPSAibWluX3BrdF9zaXplIDAiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfM1tdID0gIm1pbl9wa3Rfc2l6ZSAxIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzRbXSA9ICJtaW5fcGt0X3NpemUg MTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzVbXSA9ICJtaW5f cGt0X3NpemU9MTAwMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV82 W10gPSAibWluX3BrdF9zaXplID0yMDAyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWlu X3BrdF9zaXplXzdbXSA9ICJtaW5fcGt0X3NpemU9IDMwMDMiOworc3RhdGljIGNvbnN0IGNoYXIg ZGV2X2NtZF9taW5fcGt0X3NpemVfOFtdID0gIm1pbl9wa3Rfc2l6ZSA9IDQwMDQiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9tYXhfcGt0X3NpemVfMFtdID0gIm1heF9wa3Rfc2l6ZSAyMDAi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9wa3Rfc2l6ZV8wW10gPSAicGt0X3NpemUgMzAw IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfaW1peF93ZWlnaHRzXzBbXSA9ICJpbWl4X3dl aWdodHMgMCw3IDU3Niw0IDE1MDAsMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ltaXhf d2VpZ2h0c18xW10gPSAiaW1peF93ZWlnaHRzIDEwMSwxIDEwMiwyIDEwMywzIDEwNCw0IDEwNSw1 IDEwNiw2IDEwNyw3IDEwOCw4IDEwOSw5IDExMCwxMCAxMTEsMTEgMTEyLDEyIDExMywxMyAxMTQs MTQgMTE1LDE1IDExNiwxNiAxMTcsMTcgMTE4LDE4IDExOSwxOSAxMjAsMjAiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9pbWl4X3dlaWdodHNfMltdID0gImltaXhfd2VpZ2h0cyAxMDAsMSAx MDIsMiAxMDMsMyAxMDQsNCAxMDUsNSAxMDYsNiAxMDcsNyAxMDgsOCAxMDksOSAxMTAsMTAgMTEx LDExIDExMiwxMiAxMTMsMTMgMTE0LDE0IDExNSwxNSAxMTYsMTYgMTE3LDE3IDExOCwxOCAxMTks MTkgMTIwLDIwIDEyMSwyMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RlYnVnXzBbXSA9 ICJkZWJ1ZyAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZGVidWdfMVtdID0gImRlYnVn IDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mcmFnc18wW10gPSAiZnJhZ3MgMTAwIjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZGVsYXlfMFtdID0gImRlbGF5IDEwMCI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX2RlbGF5XzFbXSA9ICJkZWxheSAyMTQ3NDgzNjQ3IjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcmF0ZV8wW10gPSAicmF0ZSAwIjsKK3N0YXRpYyBjb25z dCBjaGFyIGRldl9jbWRfcmF0ZV8xW10gPSAicmF0ZSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIg ZGV2X2NtZF9yYXRlcF8wW10gPSAicmF0ZXAgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X3JhdGVwXzFbXSA9ICJyYXRlcCAyMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF91ZHBf c3JjX21pbl8wW10gPSAidWRwX3NyY19taW4gMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X3VkcF9kc3RfbWluXzBbXSA9ICJ1ZHBfZHN0X21pbiAyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRl dl9jbWRfdWRwX3NyY19tYXhfMFtdID0gInVkcF9zcmNfbWF4IDMiOworc3RhdGljIGNvbnN0IGNo YXIgZGV2X2NtZF91ZHBfZHN0X21heF8wW10gPSAidWRwX2RzdF9tYXggNCI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX2Nsb25lX3NrYl8wW10gPSAiY2xvbmVfc2tiIDEiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9jbG9uZV9za2JfMVtdID0gImNsb25lX3NrYiAwIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfY291bnRfMFtdID0gImNvdW50IDEwMCI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX3NyY19tYWNfY291bnRfMFtdID0gInNyY19tYWNfY291bnQgMTAwIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0X21hY19jb3VudF8wW10gPSAiZHN0X21hY19jb3Vu dCAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9idXJzdF8wW10gPSAiYnVyc3QgMCI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX25vZGVfMFtdID0gIm5vZGUgMTAwIjsKK3N0YXRp YyBjb25zdCBjaGFyIGRldl9jbWRfeG1pdF9tb2RlXzBbXSA9ICJ4bWl0X21vZGUgc3RhcnRfeG1p dCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3htaXRfbW9kZV8xW10gPSAieG1pdF9tb2Rl IG5ldGlmX3JlY2VpdmUiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF94bWl0X21vZGVfMltd ID0gInhtaXRfbW9kZSBxdWV1ZV94bWl0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfeG1p dF9tb2RlXzNbXSA9ICJ4bWl0X21vZGUgbm9uc2Vuc2UiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9mbGFnXzBbXSA9ICJmbGFnIFVEUENTVU0iOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9mbGFnXzFbXSA9ICJmbGFnICFVRFBDU1VNIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRf ZmxhZ18yW10gPSAiZmxhZyBub25zZW5zZSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Rz dF9taW5fMFtdID0gImRzdF9taW4gMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfZHN0XzBbXSA9ICJkc3QgMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfZHN0X21heF8wW10gPSAiZHN0X21heCAyMDEuMjAyLjIwMy4yMDQiOworc3Rh dGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3Q2XzBbXSA9ICJkc3Q2IDIwMDE6ZGIzODoxMjM0OjAw MDA6MDAwMDowMDAwOjAwMDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdDZf bWluXzBbXSA9ICJkc3Q2X21pbiAyMDAxOmRiODoxMjM0OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAw MCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdDZfbWF4XzBbXSA9ICJkc3Q2X21heCAy MDAxOmRiODoxMjM0OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX3NyYzZfMFtdID0gInNyYzYgMjAwMTpkYjM4OjEyMzQ6MDAwMDowMDAwOjAwMDA6 MDAwMDowMDAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjX21pbl8wW10gPSAic3Jj X21pbiAxMDEuMTAyLjEwMy4xMDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcmNfbWF4 XzBbXSA9ICJzcmNfbWF4IDIwMS4yMDIuMjAzLjIwNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZf Y21kX2RzdF9tYWNfMFtdID0gImRzdF9tYWMgMDE6MDI6MDM6MDQ6MDU6MDYiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9zcmNfbWFjXzBbXSA9ICJzcmNfbWFjIDExOjEyOjEzOjE0OjE1OjE2 IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfY2xlYXJfY291bnRlcnNfMFtdID0gImNsZWFy X2NvdW50ZXJzIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZmxvd3NfMFtdID0gImZsb3dz IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3NwaV8wW10gPSAic3BpIDEwMCI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Zsb3dsZW5fMFtdID0gImZsb3dsZW4gMTAwIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcXVldWVfbWFwX21pbl8wW10gPSAicXVldWVfbWFwX21p biAxIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcXVldWVfbWFwX21heF8wW10gPSAicXVl dWVfbWFwX21heCAyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbXBsc18wW10gPSAibXBs cyAwMDAwMDAwMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21wbHNfMVtdID0gIm1wbHMg MDAwMDAwMDEsMDAwMDAwZjIiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9tcGxzXzJbXSA9 ICJtcGxzIDAwMDAwZjAwLDAwMDAwZjAxLDAwMDAwZjAyLDAwMDAwZjAzLDAwMDAwZjA0LDAwMDAw ZjA1LDAwMDAwZjA2LDAwMDAwZjA3LDAwMDAwZjA4LDAwMDAwZjA5LDAwMDAwZjBhLDAwMDAwZjBi LDAwMDAwZjBjLDAwMDAwZjBkLDAwMDAwZjBlLDAwMDAwZjBmIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfbXBsc18zW10gPSAibXBscyAwMDAwMGYwMCwwMDAwMGYwMSwwMDAwMGYwMiwwMDAw MGYwMywwMDAwMGYwNCwwMDAwMGYwNSwwMDAwMGYwNiwwMDAwMGYwNywwMDAwMGYwOCwwMDAwMGYw OSwwMDAwMGYwYSwwMDAwMGYwYiwwMDAwMGYwYywwMDAwMGYwZCwwMDAwMGYwZSwwMDAwMGYwZiww MDAwMGYxMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3ZsYW5faWRfMFtdID0gInZsYW5f aWQgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3ZsYW5fcF8wW10gPSAidmxhbl9wIDEi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFuX2NmaV8wW10gPSAidmxhbl9jZmkgMSI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3ZsYW5faWRfMVtdID0gInZsYW5faWQgNDA5NiI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX2lkXzBbXSA9ICJzdmxhbl9pZCAxIjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3ZsYW5fcF8wW10gPSAic3ZsYW5fcCAxIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3ZsYW5fY2ZpXzBbXSA9ICJzdmxhbl9jZmkgMSI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX2lkXzFbXSA9ICJzdmxhbl9pZCA0MDk2IjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdG9zXzBbXSA9ICJ0b3MgMCI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX3Rvc18xW10gPSAidG9zIDBmIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRl dl9jbWRfdG9zXzJbXSA9ICJ0b3MgMGZmIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdHJh ZmZpY19jbGFzc18wW10gPSAidHJhZmZpY19jbGFzcyBmMCI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX3NrYl9wcmlvcml0eV8wW10gPSAic2tiX3ByaW9yaXR5IDk5OSI7CisKK0ZJWFRVUkUo cHJvY19uZXRfcGt0Z2VuKSB7CisJaW50IGN0cmxfZmQ7CisJaW50IHRocl9mZDsKKwlpbnQgZGV2 X2ZkOworfTsKKworRklYVFVSRV9TRVRVUChwcm9jX25ldF9wa3RnZW4pIHsKKwlpbnQgcjsKKwlz c2l6ZV90IGxlbjsKKworCXIgPSBzeXN0ZW0oIm1vZHByb2JlIHBrdGdlbiIpOworCUFTU0VSVF9F UShyLCAwKSBUSF9MT0coIkNPTkZJR19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUgcGt0 Z2VuIG5vdCBsb2FkZWQ/Iik7CisKKwlzZWxmLT5jdHJsX2ZkID0gb3BlbigiL3Byb2MvbmV0L3Br dGdlbi9wZ2N0cmwiLCBPX1JEV1IpOworCUFTU0VSVF9HRShzZWxmLT5jdHJsX2ZkLCAwKSBUSF9M T0coIkNPTkZJR19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUgcGt0Z2VuIG5vdCBsb2Fk ZWQ/Iik7CisKKwlzZWxmLT50aHJfZmQgPSBvcGVuKCIvcHJvYy9uZXQvcGt0Z2VuL2twa3RnZW5k XzAiLCBPX1JEV1IpOworCUFTU0VSVF9HRShzZWxmLT50aHJfZmQsIDApIFRIX0xPRygiQ09ORklH X05FVF9QS1RHRU4gbm90IGVuYWJsZWQsIG1vZHVsZSBwa3RnZW4gbm90IGxvYWRlZD8iKTsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPnRocl9mZCwgdGhyX2NtZF9hZGRfbG9vcGJhY2tfMCwgc2l6ZW9m KHRocl9jbWRfYWRkX2xvb3BiYWNrXzApKTsKKwlBU1NFUlRfRVEobGVuLCBzaXplb2YodGhyX2Nt ZF9hZGRfbG9vcGJhY2tfMCkpIFRIX0xPRygiZGV2aWNlIGxvQDAgYWxyZWFkeSByZWdpc3RlcmVk PyIpOworCisJc2VsZi0+ZGV2X2ZkID0gb3BlbigiL3Byb2MvbmV0L3BrdGdlbi9sb0AwIiwgT19S RFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+ZGV2X2ZkLCAwKSBUSF9MT0coImRldmljZSBlbnRyeSBm b3IgbG9AMCBtaXNzaW5nPyIpOworfQorCitGSVhUVVJFX1RFQVJET1dOKHByb2NfbmV0X3BrdGdl bikgeworCWludCByZXQ7CisJc3NpemVfdCBsZW47CisKKwlyZXQgPSBjbG9zZShzZWxmLT5kZXZf ZmQpOworCUVYUEVDVF9FUShyZXQsIDApOworCisJbGVuID0gd3JpdGUoc2VsZi0+dGhyX2ZkLCB0 aHJfY21kX3JtX2xvb3BiYWNrXzAsIHNpemVvZih0aHJfY21kX3JtX2xvb3BiYWNrXzApKTsKKwlF WFBFQ1RfRVEobGVuLCBzaXplb2YodGhyX2NtZF9ybV9sb29wYmFja18wKSk7CisKKwlyZXQgPSBj bG9zZShzZWxmLT50aHJfZmQpOworCUVYUEVDVF9FUShyZXQsIDApOworCisJcmV0ID0gY2xvc2Uo c2VsZi0+Y3RybF9mZCk7CisJRVhQRUNUX0VRKHJldCwgMCk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIHdyb25nX2N0cmxfY21kKSB7CisJZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZW9m KHdyb25nX2N0cmxfY21kKTsgaSsrKSB7CisJCXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRl KHNlbGYtPmN0cmxfZmQsIHdyb25nX2N0cmxfY21kLCBpKTsKKwkJRVhQRUNUX0VRKGxlbiwgLTEp OworCQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisJfQorfQorCitURVNUX0YocHJvY19uZXRf cGt0Z2VuLCBjdHJsX2NtZCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ Y3RybF9mZCwgY3RybF9jbWRfc3RvcCwgc2l6ZW9mKGN0cmxfY21kX3N0b3ApKTsKKwlFWFBFQ1Rf RVEobGVuLAlzaXplb2YoY3RybF9jbWRfc3RvcCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3Ry bF9mZCwgY3RybF9jbWRfc3RvcCwgc2l6ZW9mKGN0cmxfY21kX3N0b3ApIC0gMSk7CisJRVhQRUNU X0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3N0b3ApIC0gMSk7CisKKwlsZW4gPSB3cml0ZShzZWxm LT5jdHJsX2ZkLCBjdHJsX2NtZF9zdGFydCwgc2l6ZW9mKGN0cmxfY21kX3N0YXJ0KSk7CisJRVhQ RUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3N0YXJ0KSk7CisKKwlsZW4gPSB3cml0ZShzZWxm LT5jdHJsX2ZkLCBjdHJsX2NtZF9zdGFydCwgc2l6ZW9mKGN0cmxfY21kX3N0YXJ0KSAtIDEpOwor CUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdGFydCkgLSAxKTsKKworCWxlbiA9IHdy aXRlKHNlbGYtPmN0cmxfZmQsIGN0cmxfY21kX3Jlc2V0LCBzaXplb2YoY3RybF9jbWRfcmVzZXQp KTsKKwlFWFBFQ1RfRVEobGVuLAlzaXplb2YoY3RybF9jbWRfcmVzZXQpKTsKKworCWxlbiA9IHdy aXRlKHNlbGYtPmN0cmxfZmQsIGN0cmxfY21kX3Jlc2V0LCBzaXplb2YoY3RybF9jbWRfcmVzZXQp IC0gMSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3Jlc2V0KSAtIDEpOworfQor CitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCB3cm9uZ190aHJfY21kKSB7CisJZm9yIChpbnQgaSA9 IDA7IGkgPD0gc2l6ZW9mKHdyb25nX3Rocl9jbWQpOyBpKyspIHsKKwkJc3NpemVfdCBsZW47CisK KwkJbGVuID0gd3JpdGUoc2VsZi0+dGhyX2ZkLCB3cm9uZ190aHJfY21kLCBpKTsKKwkJRVhQRUNU X0VRKGxlbiwgLTEpOworCQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisJfQorfQorCitURVNU X0YocHJvY19uZXRfcGt0Z2VuLCBsZWdhY3lfdGhyX2NtZCkgeworCWZvciAoaW50IGkgPSAwOyBp IDw9IHNpemVvZihsZWdhY3lfdGhyX2NtZCk7IGkrKykgeworCQlzc2l6ZV90IGxlbjsKKworCQls ZW4gPSB3cml0ZShzZWxmLT50aHJfZmQsIGxlZ2FjeV90aHJfY21kLCBpKTsKKwkJaWYgKGkgPCAo c2l6ZW9mKGxlZ2FjeV90aHJfY21kKSAtIDEpKSB7CisJCQkvLyBpbmNvbXBsZXRlIGNvbW1hbmQg c3RyaW5nCisJCQlFWFBFQ1RfRVEobGVuLCAtMSk7CisJCQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZB TCk7CisJCX0gZWxzZSB7CisJCQkvLyBjb21wbGV0ZSBjb21tYW5kIHN0cmluZyB3aXRob3V0L3dp dGggdHJhaWxpbmcgJ1wwJworCQkJRVhQRUNUX0VRKGxlbiwgaSk7CisJCX0KKwl9Cit9CisKK1RF U1RfRihwcm9jX25ldF9wa3RnZW4sIHdyb25nX2Rldl9jbWQpIHsKKwlmb3IgKGludCBpID0gMDsg aSA8PSBzaXplb2Yod3JvbmdfZGV2X2NtZCk7IGkrKykgeworCQlzc2l6ZV90IGxlbjsKKworCQls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIHdyb25nX2Rldl9jbWQsIGkpOworCQlFWFBFQ1RfRVEo bGVuLCAtMSk7CisJCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKwl9Cit9CisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfbWluX3BrdF9zaXplKSB7CisJc3NpemVfdCBsZW47CisK KwkvLyB3aXRoIHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfbWluX3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8wKSk7CisJRVhQ RUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKworCS8vIHdpdGhv dXQgdHJhaWxpbmcgJ1wwJworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5f cGt0X3NpemVfMCwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzApIC0gMSk7CisJRVhQRUNU X0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKworCS8vIHdpdGggdHJh aWxpbmcgJ1wwJworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3Np emVfMSwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCAt MSk7CisJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCisJLy8gd2l0aG91dCB0cmFpbGluZyAn XDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8xLCBz aXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMSkgLSAxKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7 CisJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8yLCBzaXplb2Yo ZGV2X2NtZF9taW5fcGt0X3NpemVfMikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X21pbl9wa3Rfc2l6ZV8yKSk7CisKKwkvLyB3aXRob3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzIsIHNpemVvZihkZXZfY21k X21pbl9wa3Rfc2l6ZV8yKSAtIDEpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21p bl9wa3Rfc2l6ZV8yKSAtIDEpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X21pbl9wa3Rfc2l6ZV8zLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMykpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8zKSk7CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzQsIHNpemVvZihkZXZfY21kX21p bl9wa3Rfc2l6ZV80KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9z aXplXzQpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3Np emVfNSwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzUpKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNSkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV82LCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVf NikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV82KSk7CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzcsIHNpemVv ZihkZXZfY21kX21pbl9wa3Rfc2l6ZV83KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfbWluX3BrdF9zaXplXzcpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF9taW5fcGt0X3NpemVfOCwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzgpKTsKKwlFWFBF Q1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfOCkpOworfQorCitURVNUX0Yo cHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX21heF9wa3Rfc2l6ZSkgeworCXNzaXplX3QgbGVuOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21heF9wa3Rfc2l6ZV8wLCBzaXpl b2YoZGV2X2NtZF9tYXhfcGt0X3NpemVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZf Y21kX21heF9wa3Rfc2l6ZV8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9j bWRfcGt0X3NpemUpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2NtZF9wa3Rfc2l6ZV8wKSk7CisJRVhQ RUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcGt0X3NpemVfMCkpOworfQorCitURVNUX0YocHJv Y19uZXRfcGt0Z2VuLCBkZXZfY21kX2ltaXhfd2VpZ2h0cykgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ltaXhfd2VpZ2h0c18wLCBzaXplb2Yo ZGV2X2NtZF9pbWl4X3dlaWdodHNfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X2ltaXhfd2VpZ2h0c18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf aW1peF93ZWlnaHRzXzEsIHNpemVvZihkZXZfY21kX2ltaXhfd2VpZ2h0c18xKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWlnaHRzXzEpKTsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9pbWl4X3dlaWdodHNfMiwgc2l6ZW9mKGRldl9jbWRfaW1p eF93ZWlnaHRzXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBF MkJJRyk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZGVidWcpIHsKKwlz c2l6ZV90IGxlbjsKKworCS8vIGRlYnVnIG9uCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX2RlYnVnXzAsIHNpemVvZihkZXZfY21kX2RlYnVnXzApKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9kZWJ1Z18wKSk7CisKKwkvLyBkZWJ1ZyBvZmYKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZGVidWdfMSwgc2l6ZW9mKGRldl9jbWRfZGVidWdfMSkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RlYnVnXzEpKTsKK30KKworVEVTVF9G KHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9mcmFncykgeworCXNzaXplX3QgbGVuOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZyYWdzXzAsIHNpemVvZihkZXZfY21kX2Zy YWdzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mcmFnc18wKSk7Cit9CisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZGVsYXkpIHsKKwlzc2l6ZV90IGxlbjsK KworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kZWxheV8wLCBzaXplb2YoZGV2 X2NtZF9kZWxheV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZGVsYXlfMCkp OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RlbGF5XzEsIHNpemVvZihk ZXZfY21kX2RlbGF5XzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kZWxheV8x KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcmF0ZSkgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3JhdGVfMCwgc2l6 ZW9mKGRldl9jbWRfcmF0ZV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShl cnJubywgRUlOVkFMKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9yYXRl XzEsIHNpemVvZihkZXZfY21kX3JhdGVfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZf Y21kX3JhdGVfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3JhdGVw KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf cmF0ZXBfMCwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBfMCkpOworCUVYUEVDVF9FUShsZW4sIC0xKTsK KwlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfcmF0ZXBfMSwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBfMSkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX3JhdGVwXzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdl biwgZGV2X2NtZF91ZHBfc3JjX21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9zcmNfbWluXzAsIHNpemVvZihkZXZfY21kX3VkcF9z cmNfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfc3JjX21pbl8w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdWRwX2RzdF9taW4pIHsK Kwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF91ZHBf ZHN0X21pbl8wLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0X21pbl8wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfdWRwX2RzdF9taW5fMCkpOworfQorCitURVNUX0YocHJvY19uZXRf cGt0Z2VuLCBkZXZfY21kX3VkcF9zcmNfbWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRwX3NyY19tYXhfMCwgc2l6ZW9mKGRldl9jbWRf dWRwX3NyY19tYXhfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3VkcF9zcmNf bWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF91ZHBfZHN0X21h eCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X3VkcF9kc3RfbWF4XzAsIHNpemVvZihkZXZfY21kX3VkcF9kc3RfbWF4XzApKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0X21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9j X25ldF9wa3RnZW4sIGRldl9jbWRfY2xvbmVfc2tiKSB7CisJc3NpemVfdCBsZW47CisKKwkvLyBj bG9uZV9za2Igb24gKGdpdmVzIEVPUE5PVFNVUFAgb24gbG8gZGV2aWNlKQorCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbG9uZV9za2JfMCwgc2l6ZW9mKGRldl9jbWRfY2xvbmVf c2tiXzApKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFT1BOT1RT VVBQKTsKKworCS8vIGNsb25lX3NrYiBvZmYKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfY2xvbmVfc2tiXzEsIHNpemVvZihkZXZfY21kX2Nsb25lX3NrYl8xKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfY2xvbmVfc2tiXzEpKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF9jb3VudCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2NvdW50XzAsIHNpemVvZihkZXZfY21kX2NvdW50XzAp KTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9jb3VudF8wKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21hY19jb3VudCkgeworCXNzaXplX3QgbGVu OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYWNfY291bnRfMCwg c2l6ZW9mKGRldl9jbWRfc3JjX21hY19jb3VudF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfc3JjX21hY19jb3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4s IGRldl9jbWRfZHN0X21hY19jb3VudCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYWNfY291bnRfMCwgc2l6ZW9mKGRldl9jbWRfZHN0 X21hY19jb3VudF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY19j b3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfYnVyc3QpIHsK Kwlzc2l6ZV90IGxlbjsKKworCS8vIGJ1cnN0IG9mZgorCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9idXJzdF8wLCBzaXplb2YoZGV2X2NtZF9idXJzdF8wKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfYnVyc3RfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0 Z2VuLCBkZXZfY21kX25vZGUpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYt PmRldl9mZCwgZGV2X2NtZF9ub2RlXzAsIHNpemVvZihkZXZfY21kX25vZGVfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX25vZGVfMCkpOworfQorCitURVNUX0YocHJvY19uZXRf cGt0Z2VuLCBkZXZfY21kX3htaXRfbW9kZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8wLCBzaXplb2YoZGV2X2NtZF94bWl0 X21vZGVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8wKSk7 CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfeG1pdF9tb2RlXzEsIHNpemVv ZihkZXZfY21kX3htaXRfbW9kZV8xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf eG1pdF9tb2RlXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF94bWl0 X21vZGVfMiwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF94bWl0X21vZGVfMikpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX3htaXRfbW9kZV8zLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMykpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8zKSk7Cit9CisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZmxhZykgeworCXNzaXplX3QgbGVuOworCisJLy8gZmxh ZyBVRFBDU1VNIG9uCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZsYWdfMCwg c2l6ZW9mKGRldl9jbWRfZmxhZ18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf ZmxhZ18wKSk7CisKKwkvLyBmbGFnIFVEUENTVU0gb2ZmCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX2ZsYWdfMSwgc2l6ZW9mKGRldl9jbWRfZmxhZ18xKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxhZ18xKSk7CisKKwkvLyBmbGFnIGludmFsaWQKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxhZ18yLCBzaXplb2YoZGV2X2NtZF9mbGFn XzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mbGFnXzIpKTsKK30KKworVEVT VF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3RfbWluKSB7CisJc3NpemVfdCBsZW47CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0X21pbl8wLCBzaXplb2YoZGV2 X2NtZF9kc3RfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfbWlu XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3QpIHsKKwlzc2l6 ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3RfMCwgc2l6 ZW9mKGRldl9jbWRfZHN0XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3Rf MCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdF9tYXgpIHsKKwlz c2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3RfbWF4 XzAsIHNpemVvZihkZXZfY21kX2RzdF9tYXhfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX2RzdF9tYXhfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21k X2RzdDYpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF9kc3Q2XzAsIHNpemVvZihkZXZfY21kX2RzdDZfMCkpOworCUVYUEVDVF9FUShsZW4sIHNp emVvZihkZXZfY21kX2RzdDZfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZf Y21kX2RzdDZfbWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfZHN0Nl9taW5fMCwgc2l6ZW9mKGRldl9jbWRfZHN0Nl9taW5fMCkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfbWluXzApKTsKK30KKworVEVTVF9GKHBy b2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3Q2X21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdDZfbWF4XzAsIHNpemVvZihkZXZfY21k X2RzdDZfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3Q2X21heF8w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjNikgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyYzZfMCwgc2l6 ZW9mKGRldl9jbWRfc3JjNl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3Jj Nl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21pbikgewor CXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19t aW5fMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfc3JjX21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9j bWRfc3JjX21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX3NyY19tYXhfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21heF8wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfZHN0X21hYykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYWNfMCwgc2l6ZW9mKGRldl9jbWRfZHN0X21h Y18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY18wKSk7Cit9CisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21hYykgeworCXNzaXplX3QgbGVu OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYWNfMCwgc2l6ZW9m KGRldl9jbWRfc3JjX21hY18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3Jj X21hY18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfY2xlYXJfY291 bnRlcnMpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF9jbGVhcl9jb3VudGVyc18wLCBzaXplb2YoZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfY2xlYXJfY291bnRlcnNfMCkpOworfQor CitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2Zsb3dzKSB7CisJc3NpemVfdCBsZW47 CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxvd3NfMCwgc2l6ZW9mKGRl dl9jbWRfZmxvd3NfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2Zsb3dzXzAp KTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9zcGkpIHsKKwlzc2l6ZV90 IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9zcGlfMCwgc2l6ZW9m KGRldl9jbWRfc3BpXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcGlfMCkp IFRIX0xPRygiQ09ORklHX1hGUk0gbm90IGVuYWJsZWQ/Iik7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfZmxvd2xlbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3Jp dGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Zsb3dsZW5fMCwgc2l6ZW9mKGRldl9jbWRfZmxvd2xl bl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxvd2xlbl8wKSk7Cit9CisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcXVldWVfbWFwX21pbikgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3F1ZXVlX21hcF9t aW5fMCwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9w a3RnZW4sIGRldl9jbWRfcXVldWVfbWFwX21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3F1ZXVlX21hcF9tYXhfMCwgc2l6ZW9mKGRldl9j bWRfcXVldWVfbWFwX21heF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcXVl dWVfbWFwX21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfbXBs cykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X21wbHNfMCwgc2l6ZW9mKGRldl9jbWRfbXBsc18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfbXBsc18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf bXBsc18xLCBzaXplb2YoZGV2X2NtZF9tcGxzXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2Yo ZGV2X2NtZF9tcGxzXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9t cGxzXzIsIHNpemVvZihkZXZfY21kX21wbHNfMikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX21wbHNfMikpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21w bHNfMywgc2l6ZW9mKGRldl9jbWRfbXBsc18zKSk7CisJRVhQRUNUX0VRKGxlbiwgLTEpOworCUVY UEVDVF9FUShlcnJubywgRTJCSUcpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZf Y21kX3ZsYW5faWQpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF92bGFuX2lkXzAsIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMCkpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMCkpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5fcF8wLCBzaXplb2YoZGV2X2NtZF92bGFuX3BfMCkpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5fcF8wKSk7CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdmxhbl9jZmlfMCwgc2l6ZW9mKGRldl9jbWRfdmxhbl9j ZmlfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5fY2ZpXzApKTsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF92bGFuX2lkXzEsIHNpemVvZihkZXZf Y21kX3ZsYW5faWRfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5faWRf MSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3N2bGFuX2lkKSB7CisJ c3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5f aWRfMCwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX3N2bGFuX2lkXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF9zdmxhbl9wXzAsIHNpemVvZihkZXZfY21kX3N2bGFuX3BfMCkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX3BfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2 X2ZkLCBkZXZfY21kX3N2bGFuX2NmaV8wLCBzaXplb2YoZGV2X2NtZF9zdmxhbl9jZmlfMCkpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2NmaV8wKSk7CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5faWRfMSwgc2l6ZW9mKGRldl9jbWRfc3Zs YW5faWRfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2lkXzEpKTsK K30KKworCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3RvcykgeworCXNzaXplX3Qg bGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3Rvc18wLCBzaXplb2Yo ZGV2X2NtZF90b3NfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3Rvc18wKSk7 CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdG9zXzEsIHNpemVvZihkZXZf Y21kX3Rvc18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdG9zXzEpKTsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF90b3NfMiwgc2l6ZW9mKGRldl9jbWRf dG9zXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF90b3NfMikpOworfQorCisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdHJhZmZpY19jbGFzcykgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3RyYWZmaWNfY2xh c3NfMCwgc2l6ZW9mKGRldl9jbWRfdHJhZmZpY19jbGFzc18wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfdHJhZmZpY19jbGFzc18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9w a3RnZW4sIGRldl9jbWRfc2tiX3ByaW9yaXR5KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc2tiX3ByaW9yaXR5XzAsIHNpemVvZihkZXZfY21k X3NrYl9wcmlvcml0eV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc2tiX3By aW9yaXR5XzApKTsKK30KKworVEVTVF9IQVJORVNTX01BSU4KLS0gCjIuNDguMQoK