From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) (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 48A86234989; Thu, 27 Feb 2025 13:56:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.17.21 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740664594; cv=none; b=GaaS/7hdwyLu4bWiolsvhHXH+JW8lOpsC2+YdKODg0vxqO68fAT+qDCVarxywRCgjpzDUGlAZz2lWOJbZe59cS86miEfzuQdBHLcdf2cWiZrUen3077H46tQykyIPmsOgP4ppxvdhRUqre2lJIN+/cSDU8QQ2w3qwp0TXQoGSs4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740664594; c=relaxed/simple; bh=R66KWURTQxfxE9QPO8h9nl2i3JtDs8+Tof5JV0SnMWc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=g+yWr3OGsrx3qqfvTkFYPAZDVQR6PBtAy9GnzOF+VzjwUbwnU18+Jk3JDMQH5X4+nycrvDMuSV4YGExUqDvPzFqaDtFViD7GUr41DdfanZKjTR1ujsexZlLk6OIXApQ9IVlnsIBkfNss8uMCGJxSJmZs77ZfX80VAV12fqGC39I= 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=GaoM3fmm; arc=none smtp.client-ip=212.227.17.21 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="GaoM3fmm" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740664577; x=1741269377; i=ps.report@gmx.net; bh=R66KWURTQxfxE9QPO8h9nl2i3JtDs8+Tof5JV0SnMWc=; 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=GaoM3fmmeSS3M/wtc/vvu8NbGNCH15ESJUsGu0r9/24PkKTxiCYYCT02f1to6owA t5NTGNp4eyehQ2ho00WnI6kkM/mQ9+aULEcrnU6kys7cJzqNetwJ2gGNT4WOQOVfH 8H3a6+P7R813bnGNDf/8fBvACoR4DaNfrI96+H1pSK7bxqqESftT1VyQr7S+MAz6d LUZyyQrXNtS3G/VMSmdNFH3v3OuknOSxhkSgb3B8mnsMAyvJzEWrnD0if+7ymwm02 sl+ZAIDRqmcBm2r850s9QTos5XiK9JbAwOkNAIbSn7BRMpKdYtoTpyuP6cfsIVcEG M2QSc9zuqKLOQRLWSA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.151]) by mail.gmx.net (mrgmx105 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N8ofO-1tBkU23YV4-00sVzz; Thu, 27 Feb 2025 14:56:16 +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 , Peter Seiderer , Fedor Pchelkin , Arnd Bergmann , Nam Cao Subject: [PATCH net-next v8 8/8] selftest: net: add proc_net_pktgen Date: Thu, 27 Feb 2025 14:56:04 +0100 Message-ID: <20250227135604.40024-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250227135604.40024-1-ps.report@gmx.net> References: <20250227135604.40024-1-ps.report@gmx.net> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: base64 X-Provags-ID: V03:K1:JRkG2y119lj6hU47pPDGwn2J9NwBBplikiaogmzgs6NE9ZSnQH4 p705kCBD6CAtb2GF4LcbqPoHmmCx7YmrF3lYca7NLsIrSoJ+gsH8PAJ0qSWoGqQG+DDW/0V cU904CT1BxjkItPNlFKWkLDGDYir6eUnELzfE+Y7Jci8J/LF+XSg+aiQNa90c/es8qiNagL DY469+/etqC+GZ+3j8ONg== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:hAGCCLaPtu4=;B2Ev2orQzpPqnHiQHux/xQz2RkI KcfcXdoAVtuNOrbn9wAKJaqJ09ftayFSgA7VPl4T1TdLTVl+YAajBXMZvjkcn38TvnhKQ1H7L s2mQndz4MAkrT5By26UnYhtvW0612ucnZJiw64QQF9gQOItogz9B2+kWIbYIzETEXtXRzhfuO 0BAz38Wu4fV87O2TxgqhaN/bj7mMou2aOQDjMp8P3vqMdB1y0c8KIz4N1J57y4omSkhNwvRhQ H7wkv1776efZsUmrqPWMcBrOHWmkwvg4vey5GcZur0mNOQLT/VSFp72wGTrv2gBVxT6mQfSKt axkI65E2ROgcDTi2QqMhQtlHWeQGhRmGGGyQVWCPe1Tmzijop/AV1kunpiRJT+GA8Oc0ZJhvs g+oHHh4L31Son+G09UYsqbU2nGmjLmmIgaw174pO9QLo7/6sJZgo2quThPCcqXzlePF83rf8W f4x1NywiMX76n3e37AIpr1E8XyepfcFJMFjLVJZj9QKrvGk1CzMYJuFaxzIHbLqlqA3Cm8ART xJkHz7dfbKxhAcSdmvVk6IfyJLexovVZVC79JelUDqEhARrUGdv16KwVDar+fvM9yZTlzLnJ2 vbHuQegWHY95TKUbkUgLr2auLhDRRCvZmmtvJSsDubLhrLN7YRkY6qOq1bqq0DFUQ34zHRuGB KC+UvkhfGNrfcf2o3jhCJFTSs2uAj3QFz+nu8Nc6Ve7eR2bZEQ8fFbEDOyC34BCV27XUmTTw1 73mz+Q/d5uiygSFJuz496Dmta//wrtTbGa+jE/u5tz1j7+t8C35XcliKNubOUBvAt0JMCkuyO P3mV0oq9l+X3H+U7LxzZfyTKMm0TrdC1NyafJiMgaN8NTP6Dt8INCTg2W5mIOaB3RytQWjgfP y8/tMhDNJzOMXyJLy/byPJy0MZD7s/JVle60bxBONw+44za/mOpzag/gTpoBJdI4+hAzSSZBI i3yfoQaN8XQCIy+S8HpUZt3oHohQftiE1f33ZCNARa+LMgNoj4qFP24ctiC8/Kq3+soU6kAuk zgBxVxbSHr4IjtbI2R6eMhYy3gjBbzCnLHwiF9XbixnOXtN51X3fmnzJz8+um5fvfAXbaRwdt 5Mfv+raxVFwfejGJBBiZPPA7vdftytcfk0Sf33U+mBYQ/boE3Gw7THnlCTjxvvni21jXVJEAP Yb87UIkVikFAJ8OKe60/Dpdlhcn7h8F5qODJhwGYiFVJzBgegmmj08q145Pf9Ial5CHoKeDRX XTDXeWB1xByYN46ljSR1f05juXdK0rtRQU+YEpbCUS7wuM9cEsFRFzHJsFFGRW0PRZXrhFIj9 f/MTHO1qWedd3SoUjm1caNhYtrv4CQKVIVyztA/+h4d6/36ZtMEDfvn7ykgrgmA6hcaSr5do1 QDDb7zFumIiLZROdwW+rhIGTfhSzHuDQSogRyOL4dJZB55cD9FHQQ6creT QWRkIHNvbWUgdGVzdCBmb3IgL3Byb2MvbmV0L3BrdGdlbi8uLi4gaW50ZXJmYWNlLgoKLSBlbmFi bGUgJ0NPTkZJR19ORVRfUEtUR0VOPW0nIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKClNpZ25lZC1vZmYtYnk6IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4K UmV2aWV3ZWQtYnk6IFNpbW9uIEhvcm1hbiA8aG9ybXNAa2VybmVsLm9yZz4KLS0tCkNoYW5nZXMg djcgLT4gdjgKICAtIHJlYmFzZWQgb24gYWN0dWFsIG5ldC1uZXh0L21haW4KICAtIGZpeCBjOTkg Y29tbWVudHMgKHN1Z2dlc3RlZCBieSBQYW9sbyBBYmVuaSkKICAtIGFkZCByZXYtYnkgU2ltb24g SG9ybWFuIChnaXZlbiB0byB2NiB2ZXJzaW9uKQoKQ2hhbmdlcyB2NiAtPiB2NwogIC0gcmViYXNl ZCBvbiBhY3R1YWwgbmV0LW5leHQvbWFpbgogIC0gZml4ZWQgY29uZmxpY3QgaW4gdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwoKQ2hhbmdlcyB2NSAtPiB2NgogIC0gbm8gY2hhbmdl cwoKQ2hhbmdlcyB2NCAtPiB2NQogIC0gc3BsaXQgdXAgcGF0Y2hzZXQgaW50byBwYXJ0IGkvaWkg KHN1Z2dlc3RlZCBieSBTaW1vbiBIb3JtYW4pCiAgLSBhZGRhcHQgdG8gZHJvcHBlZCBwYXRjaCAn bmV0OiBwa3RnZW46IGhleDMyX2FyZy9udW1fYXJnIGVycm9yIG91dCBpbiBjYXNlCiAgICBubyBj aGFyYWN0ZXJzIGFyZSBhdmFpbGFibGUnLCBlbXB0eSBoZXgvbnVtIGFyZyBpcyBub3cgaW1wbGlj aXQgYXNzdW1lZCBhcwogICAgemVybyB2YWx1ZSAoaW5zdGVhZCBvZiBmYWlsdXJlKQoKQ2hhbmdl cyB2MyAtPiB2NDoKICAtIG5vIGNoYW5nZXMKCkNoYW5nZXMgdjIgLT4gdjM6CiAgLSBmaXggdHlw byBpbiBjaGFuZ2UgZGVzY3JpcHRpb24gKCd2MSAtPiB2MScgYW5kIHR5b3ApCiAgLSByZW5hbWUg c29tZSB2YXJzIHRvIGJldHRlciBtYXRjaCB1c2FnZQogICAgYWRkX2xvb3BiYWNrXzAgLT4gdGhy X2NtZF9hZGRfbG9vcGJhY2tfMAogICAgcm1fbG9vcGJhY2tfMCAtPiB0aHJfY21kX3JtX2xvb3Bi YWNrXzAKICAgIHdyb25nX2N0cmxfY21kIC0+IHdyb25nX3Rocl9jbWQKICAgIGxlZ2FjeV9jdHJs X2NtZCAtPiBsZWdhY3lfdGhyX2NtZAogICAgY3RybF9mZCAtPiB0aHJfZmQKICAtIGFkZCBjdHJs IGludGVyZmFjZSB0ZXN0cwoKQ2hhbmdlcyB2MSAtPiB2MjoKICAtIGZpeCB0eW9wIG5vdCB2cy4g bm9kIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAgLSBmaXggbWlzYWxpZ25lZCBsaW5l IChzdWdnZXN0ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAgLSBlbmFibGUgZm9tZXJseSBjb21tZW50 ZWQgb3V0IENPTkZJR19YRlJNIGRlcGVuZGVudCB0ZXN0IChjb21tYW5kIHNwaSksCiAgICBhcyBD T05GSUdfWEZSTSBpcyBlbmFibGVkIHZpYSB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29u ZmlnCiAgICBDT05GSUdfWEZSTV9JTlRFUkZBQ0UvQ09ORklHX1hGUk1fVVNFUiAoc3VnZ2VzdGV4 IGJ5IEpha3ViIEtpY2luc2tpKQogIC0gYWRkIENPTkZJR19ORVRfUEtUR0VOPW0gdG8gdG9vbHMv dGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwogICAgKHN1Z2dlc3RlZCBieSBKYWt1YiBLaWNp bnNraSkKICAtIGFkZCBtb2Rwcm9iZSBwa3RnZW4gdG8gRklYVFVSRV9TRVRVUCgpIChzdWdnZXN0 ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAgLSBmaXggc29tZSBjaGVja3BhdGNoIHdhcm5pbmdzIChN aXNzaW5nIGEgYmxhbmsgbGluZSBhZnRlciBkZWNsYXJhdGlvbnMpCiAgLSBzaHJpbmsgbGluZSBs ZW5ndGggYnkgcmUtbmFtaW5nIHNvbWUgdmFyaWFibGVzIChjb21tYW5kIC0+IGNtZCwKICAgIGRl dmljZSAtPiBkZXYpCiAgLSBhZGQgJ3JhdGUgMCcgdGVzdGNhc2UKICAtIGFkZCAncmF0ZXAgMCcg dGVzdGNhc2UKLS0tCiB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUgICAgICAg ICAgfCAgIDEgKwogdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZyAgICAgICAgICAg IHwgICAxICsKIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9wcm9jX25ldF9wa3RnZW4uYyB8 IDY0NiArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNjQ4IGluc2VydGlvbnMo KykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19u ZXRfcGt0Z2VuLmMKCmRpZmYgLS1naXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFr ZWZpbGUgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUKaW5kZXggMmUxNmNl NmQyOGU0Li5kNWFhMTYxODVmNDIgMTAwNjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3Rz L25ldC9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUK QEAgLTEwNCw2ICsxMDQsNyBAQCBURVNUX1BST0dTICs9IHZsYW5fYnJpZGdlX2JpbmRpbmcuc2gK IFRFU1RfUFJPR1MgKz0gYnBmX29mZmxvYWQucHkKIFRFU1RfUFJPR1MgKz0gaXB2Nl9yb3V0ZV91 cGRhdGVfc29mdF9sb2NrdXAuc2gKIFRFU1RfUFJPR1MgKz0gYnVzeV9wb2xsX3Rlc3Quc2gKK1RF U1RfR0VOX1BST0dTICs9IHByb2NfbmV0X3BrdGdlbgogCiAjIFlOTCBmaWxlcywgbXVzdCBiZSBi ZWZvcmUgImluY2x1ZGUgLi5saWIubWsiCiBZTkxfR0VOX0ZJTEVTIDo9IGJ1c3lfcG9sbGVyIG5l dGxpbmstZHVtcHMKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25m aWcgYi90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnCmluZGV4IGFiNTUyNzA2Njll Yy4uYTg2ZjNlNzUyY2UyIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQv Y29uZmlnCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9jb25maWcKQEAgLTExMiwz ICsxMTIsNCBAQCBDT05GSUdfQ0FOPW0KIENPTkZJR19DQU5fREVWPW0KIENPTkZJR19DQU5fVlhD QU49bQogQ09ORklHX05FVEtJVD15CitDT05GSUdfTkVUX1BLVEdFTj1tCmRpZmYgLS1naXQgYS90 b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMgYi90b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40NjI4MDVhYzE2MTQKLS0tIC9kZXYvbnVsbAorKysgYi90b29s cy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMKQEAgLTAsMCArMSw2NDYg QEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCisvKgorICogcHJvY19uZXRf cGt0Z2VuOiBrc2VsZnRlc3QgZm9yIC9wcm9jL25ldC9wa3RnZW4gaW50ZXJmYWNlCisgKgorICog Q29weXJpZ2h0IChjKSAyMDI1IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4KKyAq CisgKi8KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8 c3RkbGliLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNpbmNsdWRlICIuLi9rc2VsZnRlc3Rf aGFybmVzcy5oIgorCitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2NtZF9zdG9wW10gPSAic3RvcCI7 CitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2NtZF9zdGFydFtdID0gInN0YXJ0IjsKK3N0YXRpYyBj b25zdCBjaGFyIGN0cmxfY21kX3Jlc2V0W10gPSAicmVzZXQiOworCitzdGF0aWMgY29uc3QgY2hh ciB3cm9uZ19jdHJsX2NtZFtdID0gIjAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0 NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAx MjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkiOworCitzdGF0aWMgY29uc3Qg Y2hhciB0aHJfY21kX2FkZF9sb29wYmFja18wW10gPSAiYWRkX2RldmljZSBsb0AwIjsKK3N0YXRp YyBjb25zdCBjaGFyIHRocl9jbWRfcm1fbG9vcGJhY2tfMFtdID0gInJlbV9kZXZpY2VfYWxsIjsK Kworc3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfdGhyX2NtZFtdID0gImZvcnN1cmVhd3Jvbmdjb21t YW5kIjsKK3N0YXRpYyBjb25zdCBjaGFyIGxlZ2FjeV90aHJfY21kW10gPSAibWF4X2JlZm9yZV9z b2Z0aXJxIjsKKworc3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfZGV2X2NtZFtdID0gImZvcnN1cmV3 cm9uZ2NvbW1hbmQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVfMFtd ID0gIm1pbl9wa3Rfc2l6ZSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6 ZV8xW10gPSAibWluX3BrdF9zaXplICI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9w a3Rfc2l6ZV8yW10gPSAibWluX3BrdF9zaXplIDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9taW5fcGt0X3NpemVfM1tdID0gIm1pbl9wa3Rfc2l6ZSAxIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfbWluX3BrdF9zaXplXzRbXSA9ICJtaW5fcGt0X3NpemUgMTAwIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzVbXSA9ICJtaW5fcGt0X3NpemU9MTAwMSI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV82W10gPSAibWluX3BrdF9z aXplID0yMDAyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzdbXSA9 ICJtaW5fcGt0X3NpemU9IDMwMDMiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0 X3NpemVfOFtdID0gIm1pbl9wa3Rfc2l6ZSA9IDQwMDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9tYXhfcGt0X3NpemVfMFtdID0gIm1heF9wa3Rfc2l6ZSAyMDAiOworc3RhdGljIGNvbnN0 IGNoYXIgZGV2X2NtZF9wa3Rfc2l6ZV8wW10gPSAicGt0X3NpemUgMzAwIjsKK3N0YXRpYyBjb25z dCBjaGFyIGRldl9jbWRfaW1peF93ZWlnaHRzXzBbXSA9ICJpbWl4X3dlaWdodHMgMCw3IDU3Niw0 IDE1MDAsMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ltaXhfd2VpZ2h0c18xW10gPSAi aW1peF93ZWlnaHRzIDEwMSwxIDEwMiwyIDEwMywzIDEwNCw0IDEwNSw1IDEwNiw2IDEwNyw3IDEw OCw4IDEwOSw5IDExMCwxMCAxMTEsMTEgMTEyLDEyIDExMywxMyAxMTQsMTQgMTE1LDE1IDExNiwx NiAxMTcsMTcgMTE4LDE4IDExOSwxOSAxMjAsMjAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9pbWl4X3dlaWdodHNfMltdID0gImltaXhfd2VpZ2h0cyAxMDAsMSAxMDIsMiAxMDMsMyAxMDQs NCAxMDUsNSAxMDYsNiAxMDcsNyAxMDgsOCAxMDksOSAxMTAsMTAgMTExLDExIDExMiwxMiAxMTMs MTMgMTE0LDE0IDExNSwxNSAxMTYsMTYgMTE3LDE3IDExOCwxOCAxMTksMTkgMTIwLDIwIDEyMSwy MSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RlYnVnXzBbXSA9ICJkZWJ1ZyAxIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZGVidWdfMVtdID0gImRlYnVnIDAiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9mcmFnc18wW10gPSAiZnJhZ3MgMTAwIjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfZGVsYXlfMFtdID0gImRlbGF5IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX2RlbGF5XzFbXSA9ICJkZWxheSAyMTQ3NDgzNjQ3IjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfcmF0ZV8wW10gPSAicmF0ZSAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRf cmF0ZV8xW10gPSAicmF0ZSAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9yYXRlcF8w W10gPSAicmF0ZXAgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVwXzFbXSA9ICJy YXRlcCAyMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF91ZHBfc3JjX21pbl8wW10gPSAi dWRwX3NyY19taW4gMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3VkcF9kc3RfbWluXzBb XSA9ICJ1ZHBfZHN0X21pbiAyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdWRwX3NyY19t YXhfMFtdID0gInVkcF9zcmNfbWF4IDMiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF91ZHBf ZHN0X21heF8wW10gPSAidWRwX2RzdF9tYXggNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X2Nsb25lX3NrYl8wW10gPSAiY2xvbmVfc2tiIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9jbG9uZV9za2JfMVtdID0gImNsb25lX3NrYiAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9j bWRfY291bnRfMFtdID0gImNvdW50IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Ny Y19tYWNfY291bnRfMFtdID0gInNyY19tYWNfY291bnQgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfZHN0X21hY19jb3VudF8wW10gPSAiZHN0X21hY19jb3VudCAxMDAiOworc3RhdGlj IGNvbnN0IGNoYXIgZGV2X2NtZF9idXJzdF8wW10gPSAiYnVyc3QgMCI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX25vZGVfMFtdID0gIm5vZGUgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRl dl9jbWRfeG1pdF9tb2RlXzBbXSA9ICJ4bWl0X21vZGUgc3RhcnRfeG1pdCI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX3htaXRfbW9kZV8xW10gPSAieG1pdF9tb2RlIG5ldGlmX3JlY2VpdmUi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF94bWl0X21vZGVfMltdID0gInhtaXRfbW9kZSBx dWV1ZV94bWl0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfeG1pdF9tb2RlXzNbXSA9ICJ4 bWl0X21vZGUgbm9uc2Vuc2UiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mbGFnXzBbXSA9 ICJmbGFnIFVEUENTVU0iOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mbGFnXzFbXSA9ICJm bGFnICFVRFBDU1VNIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZmxhZ18yW10gPSAiZmxh ZyBub25zZW5zZSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9taW5fMFtdID0gImRz dF9taW4gMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0XzBb XSA9ICJkc3QgMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0 X21heF8wW10gPSAiZHN0X21heCAyMDEuMjAyLjIwMy4yMDQiOworc3RhdGljIGNvbnN0IGNoYXIg ZGV2X2NtZF9kc3Q2XzBbXSA9ICJkc3Q2IDIwMDE6ZGIzODoxMjM0OjAwMDA6MDAwMDowMDAwOjAw MDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdDZfbWluXzBbXSA9ICJkc3Q2 X21pbiAyMDAxOmRiODoxMjM0OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMCI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX2RzdDZfbWF4XzBbXSA9ICJkc3Q2X21heCAyMDAxOmRiODoxMjM0OjAw MDA6MDAwMDowMDAwOjAwMDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3NyYzZf MFtdID0gInNyYzYgMjAwMTpkYjM4OjEyMzQ6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjX21pbl8wW10gPSAic3JjX21pbiAxMDEuMTAyLjEw My4xMDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcmNfbWF4XzBbXSA9ICJzcmNfbWF4 IDIwMS4yMDIuMjAzLjIwNCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9tYWNfMFtd ID0gImRzdF9tYWMgMDE6MDI6MDM6MDQ6MDU6MDYiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9zcmNfbWFjXzBbXSA9ICJzcmNfbWFjIDExOjEyOjEzOjE0OjE1OjE2IjsKK3N0YXRpYyBjb25z dCBjaGFyIGRldl9jbWRfY2xlYXJfY291bnRlcnNfMFtdID0gImNsZWFyX2NvdW50ZXJzIjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZmxvd3NfMFtdID0gImZsb3dzIDEwMCI7CitzdGF0aWMg Y29uc3QgY2hhciBkZXZfY21kX3NwaV8wW10gPSAic3BpIDEwMCI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX2Zsb3dsZW5fMFtdID0gImZsb3dsZW4gMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfcXVldWVfbWFwX21pbl8wW10gPSAicXVldWVfbWFwX21pbiAxIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfcXVldWVfbWFwX21heF8wW10gPSAicXVldWVfbWFwX21heCAyIjsK K3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbXBsc18wW10gPSAibXBscyAwMDAwMDAwMSI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21wbHNfMVtdID0gIm1wbHMgMDAwMDAwMDEsMDAwMDAw ZjIiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9tcGxzXzJbXSA9ICJtcGxzIDAwMDAwZjAw LDAwMDAwZjAxLDAwMDAwZjAyLDAwMDAwZjAzLDAwMDAwZjA0LDAwMDAwZjA1LDAwMDAwZjA2LDAw MDAwZjA3LDAwMDAwZjA4LDAwMDAwZjA5LDAwMDAwZjBhLDAwMDAwZjBiLDAwMDAwZjBjLDAwMDAw ZjBkLDAwMDAwZjBlLDAwMDAwZjBmIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbXBsc18z W10gPSAibXBscyAwMDAwMGYwMCwwMDAwMGYwMSwwMDAwMGYwMiwwMDAwMGYwMywwMDAwMGYwNCww MDAwMGYwNSwwMDAwMGYwNiwwMDAwMGYwNywwMDAwMGYwOCwwMDAwMGYwOSwwMDAwMGYwYSwwMDAw MGYwYiwwMDAwMGYwYywwMDAwMGYwZCwwMDAwMGYwZSwwMDAwMGYwZiwwMDAwMGYxMCI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX3ZsYW5faWRfMFtdID0gInZsYW5faWQgMSI7CitzdGF0aWMg Y29uc3QgY2hhciBkZXZfY21kX3ZsYW5fcF8wW10gPSAidmxhbl9wIDEiOworc3RhdGljIGNvbnN0 IGNoYXIgZGV2X2NtZF92bGFuX2NmaV8wW10gPSAidmxhbl9jZmkgMSI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX3ZsYW5faWRfMVtdID0gInZsYW5faWQgNDA5NiI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX3N2bGFuX2lkXzBbXSA9ICJzdmxhbl9pZCAxIjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfc3ZsYW5fcF8wW10gPSAic3ZsYW5fcCAxIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfc3ZsYW5fY2ZpXzBbXSA9ICJzdmxhbl9jZmkgMSI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX3N2bGFuX2lkXzFbXSA9ICJzdmxhbl9pZCA0MDk2IjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfdG9zXzBbXSA9ICJ0b3MgMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X3Rvc18xW10gPSAidG9zIDBmIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdG9zXzJbXSA9 ICJ0b3MgMGZmIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdHJhZmZpY19jbGFzc18wW10g PSAidHJhZmZpY19jbGFzcyBmMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3NrYl9wcmlv cml0eV8wW10gPSAic2tiX3ByaW9yaXR5IDk5OSI7CisKK0ZJWFRVUkUocHJvY19uZXRfcGt0Z2Vu KSB7CisJaW50IGN0cmxfZmQ7CisJaW50IHRocl9mZDsKKwlpbnQgZGV2X2ZkOworfTsKKworRklY VFVSRV9TRVRVUChwcm9jX25ldF9wa3RnZW4pIHsKKwlpbnQgcjsKKwlzc2l6ZV90IGxlbjsKKwor CXIgPSBzeXN0ZW0oIm1vZHByb2JlIHBrdGdlbiIpOworCUFTU0VSVF9FUShyLCAwKSBUSF9MT0co IkNPTkZJR19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUgcGt0Z2VuIG5vdCBsb2FkZWQ/ Iik7CisKKwlzZWxmLT5jdHJsX2ZkID0gb3BlbigiL3Byb2MvbmV0L3BrdGdlbi9wZ2N0cmwiLCBP X1JEV1IpOworCUFTU0VSVF9HRShzZWxmLT5jdHJsX2ZkLCAwKSBUSF9MT0coIkNPTkZJR19ORVRf UEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUgcGt0Z2VuIG5vdCBsb2FkZWQ/Iik7CisKKwlzZWxm LT50aHJfZmQgPSBvcGVuKCIvcHJvYy9uZXQvcGt0Z2VuL2twa3RnZW5kXzAiLCBPX1JEV1IpOwor CUFTU0VSVF9HRShzZWxmLT50aHJfZmQsIDApIFRIX0xPRygiQ09ORklHX05FVF9QS1RHRU4gbm90 IGVuYWJsZWQsIG1vZHVsZSBwa3RnZW4gbm90IGxvYWRlZD8iKTsKKworCWxlbiA9IHdyaXRlKHNl bGYtPnRocl9mZCwgdGhyX2NtZF9hZGRfbG9vcGJhY2tfMCwgc2l6ZW9mKHRocl9jbWRfYWRkX2xv b3BiYWNrXzApKTsKKwlBU1NFUlRfRVEobGVuLCBzaXplb2YodGhyX2NtZF9hZGRfbG9vcGJhY2tf MCkpIFRIX0xPRygiZGV2aWNlIGxvQDAgYWxyZWFkeSByZWdpc3RlcmVkPyIpOworCisJc2VsZi0+ ZGV2X2ZkID0gb3BlbigiL3Byb2MvbmV0L3BrdGdlbi9sb0AwIiwgT19SRFdSKTsKKwlBU1NFUlRf R0Uoc2VsZi0+ZGV2X2ZkLCAwKSBUSF9MT0coImRldmljZSBlbnRyeSBmb3IgbG9AMCBtaXNzaW5n PyIpOworfQorCitGSVhUVVJFX1RFQVJET1dOKHByb2NfbmV0X3BrdGdlbikgeworCWludCByZXQ7 CisJc3NpemVfdCBsZW47CisKKwlyZXQgPSBjbG9zZShzZWxmLT5kZXZfZmQpOworCUVYUEVDVF9F UShyZXQsIDApOworCisJbGVuID0gd3JpdGUoc2VsZi0+dGhyX2ZkLCB0aHJfY21kX3JtX2xvb3Bi YWNrXzAsIHNpemVvZih0aHJfY21kX3JtX2xvb3BiYWNrXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YodGhyX2NtZF9ybV9sb29wYmFja18wKSk7CisKKwlyZXQgPSBjbG9zZShzZWxmLT50aHJf ZmQpOworCUVYUEVDVF9FUShyZXQsIDApOworCisJcmV0ID0gY2xvc2Uoc2VsZi0+Y3RybF9mZCk7 CisJRVhQRUNUX0VRKHJldCwgMCk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIHdyb25n X2N0cmxfY21kKSB7CisJZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZW9mKHdyb25nX2N0cmxfY21k KTsgaSsrKSB7CisJCXNzaXplX3QgbGVuOworCisJCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxfZmQs IHdyb25nX2N0cmxfY21kLCBpKTsKKwkJRVhQRUNUX0VRKGxlbiwgLTEpOworCQlFWFBFQ1RfRVEo ZXJybm8sIEVJTlZBTCk7CisJfQorfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBjdHJsX2Nt ZCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgY3RybF9j bWRfc3RvcCwgc2l6ZW9mKGN0cmxfY21kX3N0b3ApKTsKKwlFWFBFQ1RfRVEobGVuLAlzaXplb2Yo Y3RybF9jbWRfc3RvcCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+Y3RybF9mZCwgY3RybF9jbWRf c3RvcCwgc2l6ZW9mKGN0cmxfY21kX3N0b3ApIC0gMSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9m KGN0cmxfY21kX3N0b3ApIC0gMSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJs X2NtZF9zdGFydCwgc2l6ZW9mKGN0cmxfY21kX3N0YXJ0KSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6 ZW9mKGN0cmxfY21kX3N0YXJ0KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJs X2NtZF9zdGFydCwgc2l6ZW9mKGN0cmxfY21kX3N0YXJ0KSAtIDEpOworCUVYUEVDVF9FUShsZW4s CXNpemVvZihjdHJsX2NtZF9zdGFydCkgLSAxKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxf ZmQsIGN0cmxfY21kX3Jlc2V0LCBzaXplb2YoY3RybF9jbWRfcmVzZXQpKTsKKwlFWFBFQ1RfRVEo bGVuLAlzaXplb2YoY3RybF9jbWRfcmVzZXQpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmN0cmxf ZmQsIGN0cmxfY21kX3Jlc2V0LCBzaXplb2YoY3RybF9jbWRfcmVzZXQpIC0gMSk7CisJRVhQRUNU X0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3Jlc2V0KSAtIDEpOworfQorCitURVNUX0YocHJvY19u ZXRfcGt0Z2VuLCB3cm9uZ190aHJfY21kKSB7CisJZm9yIChpbnQgaSA9IDA7IGkgPD0gc2l6ZW9m KHdyb25nX3Rocl9jbWQpOyBpKyspIHsKKwkJc3NpemVfdCBsZW47CisKKwkJbGVuID0gd3JpdGUo c2VsZi0+dGhyX2ZkLCB3cm9uZ190aHJfY21kLCBpKTsKKwkJRVhQRUNUX0VRKGxlbiwgLTEpOwor CQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisJfQorfQorCitURVNUX0YocHJvY19uZXRfcGt0 Z2VuLCBsZWdhY3lfdGhyX2NtZCkgeworCWZvciAoaW50IGkgPSAwOyBpIDw9IHNpemVvZihsZWdh Y3lfdGhyX2NtZCk7IGkrKykgeworCQlzc2l6ZV90IGxlbjsKKworCQlsZW4gPSB3cml0ZShzZWxm LT50aHJfZmQsIGxlZ2FjeV90aHJfY21kLCBpKTsKKwkJaWYgKGkgPCAoc2l6ZW9mKGxlZ2FjeV90 aHJfY21kKSAtIDEpKSB7CisJCQkvKiBpbmNvbXBsZXRlIGNvbW1hbmQgc3RyaW5nICovCisJCQlF WFBFQ1RfRVEobGVuLCAtMSk7CisJCQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisJCX0gZWxz ZSB7CisJCQkvKiBjb21wbGV0ZSBjb21tYW5kIHN0cmluZyB3aXRob3V0L3dpdGggdHJhaWxpbmcg J1wwJyAqLworCQkJRVhQRUNUX0VRKGxlbiwgaSk7CisJCX0KKwl9Cit9CisKK1RFU1RfRihwcm9j X25ldF9wa3RnZW4sIHdyb25nX2Rldl9jbWQpIHsKKwlmb3IgKGludCBpID0gMDsgaSA8PSBzaXpl b2Yod3JvbmdfZGV2X2NtZCk7IGkrKykgeworCQlzc2l6ZV90IGxlbjsKKworCQlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIHdyb25nX2Rldl9jbWQsIGkpOworCQlFWFBFQ1RfRVEobGVuLCAtMSk7 CisJCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKwl9Cit9CisKK1RFU1RfRihwcm9jX25ldF9w a3RnZW4sIGRldl9jbWRfbWluX3BrdF9zaXplKSB7CisJc3NpemVfdCBsZW47CisKKwkvKiB3aXRo IHRyYWlsaW5nICdcMCcgKi8KKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWlu X3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8wKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzApKTsKKworCS8qIHdpdGhvdXQgdHJh aWxpbmcgJ1wwJyAqLworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0 X3NpemVfMCwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzApIC0gMSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzApIC0gMSk7CisKKwkvKiB3aXRoIHRy YWlsaW5nICdcMCcgKi8KKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3Br dF9zaXplXzEsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzEpKTsKKworCS8qIHdpdGhvdXQgdHJhaWxp bmcgJ1wwJyAqLworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3Np emVfMSwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzEpIC0gMSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzEpIC0gMSk7CisKKwkvKiB3aXRoIHRyYWls aW5nICdcMCcgKi8KKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9z aXplXzIsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzIpKTsKKworCS8qIHdpdGhvdXQgdHJhaWxpbmcg J1wwJyAqLworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVf Miwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzIpIC0gMSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzIpIC0gMSk7CisKKwlsZW4gPSB3cml0ZShzZWxm LT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzMsIHNpemVvZihkZXZfY21kX21pbl9wa3Rf c2l6ZV8zKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzMp KTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfNCwg c2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzQpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2Yo ZGV2X2NtZF9taW5fcGt0X3NpemVfNCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX21pbl9wa3Rfc2l6ZV81LCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNSkpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV81KSk7CisKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzYsIHNpemVvZihkZXZf Y21kX21pbl9wa3Rfc2l6ZV82KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbWlu X3BrdF9zaXplXzYpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9taW5f cGt0X3NpemVfNywgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzcpKTsKKwlFWFBFQ1RfRVEo bGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNykpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV84LCBzaXplb2YoZGV2X2NtZF9taW5fcGt0 X3NpemVfOCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV84 KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfbWF4X3BrdF9zaXplKSB7 CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWF4 X3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21heF9wa3Rfc2l6ZV8wKSk7CisJRVhQRUNUX0VR KGxlbiwgc2l6ZW9mKGRldl9jbWRfbWF4X3BrdF9zaXplXzApKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF9wa3Rfc2l6ZSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX3Br dF9zaXplXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9wa3Rfc2l6ZV8wKSk7 Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfaW1peF93ZWlnaHRzKSB7CisJ c3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfaW1peF93 ZWlnaHRzXzAsIHNpemVvZihkZXZfY21kX2ltaXhfd2VpZ2h0c18wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWlnaHRzXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYt PmRldl9mZCwgZGV2X2NtZF9pbWl4X3dlaWdodHNfMSwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWln aHRzXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9pbWl4X3dlaWdodHNfMSkp OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ltaXhfd2VpZ2h0c18yLCBz aXplb2YoZGV2X2NtZF9pbWl4X3dlaWdodHNfMikpOworCUVYUEVDVF9FUShsZW4sIC0xKTsKKwlF WFBFQ1RfRVEoZXJybm8sIEUyQklHKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2 X2NtZF9kZWJ1ZykgeworCXNzaXplX3QgbGVuOworCisJLyogZGVidWcgb24gKi8KKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZGVidWdfMCwgc2l6ZW9mKGRldl9jbWRfZGVidWdf MCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RlYnVnXzApKTsKKworCS8qIGRl YnVnIG9mZiAqLworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kZWJ1Z18xLCBz aXplb2YoZGV2X2NtZF9kZWJ1Z18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf ZGVidWdfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2ZyYWdzKSB7 CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZnJh Z3NfMCwgc2l6ZW9mKGRldl9jbWRfZnJhZ3NfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX2ZyYWdzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9k ZWxheSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZf Y21kX2RlbGF5XzAsIHNpemVvZihkZXZfY21kX2RlbGF5XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBz aXplb2YoZGV2X2NtZF9kZWxheV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRl dl9jbWRfZGVsYXlfMSwgc2l6ZW9mKGRldl9jbWRfZGVsYXlfMSkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX2RlbGF5XzEpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF9yYXRlKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfcmF0ZV8wLCBzaXplb2YoZGV2X2NtZF9yYXRlXzApKTsKKwlFWFBFQ1RfRVEo bGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3JhdGVfMSwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8xKSk7CisJRVhQ RUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8xKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfcmF0ZXApIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9yYXRlcF8wLCBzaXplb2YoZGV2X2NtZF9yYXRlcF8wKSk7 CisJRVhQRUNUX0VRKGxlbiwgLTEpOworCUVYUEVDVF9FUShlcnJubywgRUlOVkFMKTsKKworCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9yYXRlcF8xLCBzaXplb2YoZGV2X2NtZF9y YXRlcF8xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBfMSkpOworfQor CitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3VkcF9zcmNfbWluKSB7CisJc3NpemVf dCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRwX3NyY19taW5f MCwgc2l6ZW9mKGRldl9jbWRfdWRwX3NyY19taW5fMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX3VkcF9zcmNfbWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwg ZGV2X2NtZF91ZHBfZHN0X21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9kc3RfbWluXzAsIHNpemVvZihkZXZfY21kX3VkcF9kc3Rf bWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0X21pbl8wKSk7 Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdWRwX3NyY19tYXgpIHsKKwlz c2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF91ZHBfc3Jj X21heF8wLCBzaXplb2YoZGV2X2NtZF91ZHBfc3JjX21heF8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfdWRwX3NyY19tYXhfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0 Z2VuLCBkZXZfY21kX3VkcF9kc3RfbWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRwX2RzdF9tYXhfMCwgc2l6ZW9mKGRldl9jbWRfdWRw X2RzdF9tYXhfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3VkcF9kc3RfbWF4 XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jbG9uZV9za2IpIHsK Kwlzc2l6ZV90IGxlbjsKKworCS8qIGNsb25lX3NrYiBvbiAoZ2l2ZXMgRU9QTk9UU1VQUCBvbiBs byBkZXZpY2UpICovCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Nsb25lX3Nr Yl8wLCBzaXplb2YoZGV2X2NtZF9jbG9uZV9za2JfMCkpOworCUVYUEVDVF9FUShsZW4sIC0xKTsK KwlFWFBFQ1RfRVEoZXJybm8sIEVPUE5PVFNVUFApOworCisJLyogY2xvbmVfc2tiIG9mZiAqLwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbG9uZV9za2JfMSwgc2l6ZW9mKGRl dl9jbWRfY2xvbmVfc2tiXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9jbG9u ZV9za2JfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2NvdW50KSB7 CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfY291 bnRfMCwgc2l6ZW9mKGRldl9jbWRfY291bnRfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX2NvdW50XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9z cmNfbWFjX2NvdW50KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfc3JjX21hY19jb3VudF8wLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjX2NvdW50 XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjX2NvdW50XzApKTsK K30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3RfbWFjX2NvdW50KSB7CisJ c3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0X21h Y19jb3VudF8wLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjX2NvdW50XzApKTsKKwlFWFBFQ1RfRVEo bGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjX2NvdW50XzApKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF9idXJzdCkgeworCXNzaXplX3QgbGVuOworCisJLyogYnVyc3Qg b2ZmICovCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2J1cnN0XzAsIHNpemVv ZihkZXZfY21kX2J1cnN0XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9idXJz dF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfbm9kZSkgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX25vZGVfMCwg c2l6ZW9mKGRldl9jbWRfbm9kZV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf bm9kZV8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfeG1pdF9tb2Rl KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRf eG1pdF9tb2RlXzAsIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF94bWl0X21vZGVfMSwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzEpKTsK KwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMSkpOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8yLCBzaXplb2YoZGV2X2NtZF94 bWl0X21vZGVfMikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8y KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfeG1pdF9tb2RlXzMsIHNp emVvZihkZXZfY21kX3htaXRfbW9kZV8zKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfeG1pdF9tb2RlXzMpKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9m bGFnKSB7CisJc3NpemVfdCBsZW47CisKKwkvKiBmbGFnIFVEUENTVU0gb24gKi8KKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxhZ18wLCBzaXplb2YoZGV2X2NtZF9mbGFnXzAp KTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mbGFnXzApKTsKKworCS8qIGZsYWcg VURQQ1NVTSBvZmYgKi8KKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxhZ18x LCBzaXplb2YoZGV2X2NtZF9mbGFnXzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9mbGFnXzEpKTsKKworCS8qIGZsYWcgaW52YWxpZCAqLworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9mbGFnXzIsIHNpemVvZihkZXZfY21kX2ZsYWdfMikpOworCUVYUEVDVF9F UShsZW4sIHNpemVvZihkZXZfY21kX2ZsYWdfMikpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0 Z2VuLCBkZXZfY21kX2RzdF9taW4pIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF9kc3RfbWluXzAsIHNpemVvZihkZXZfY21kX2RzdF9taW5fMCkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdF9taW5fMCkpOworfQorCitURVNU X0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdCkgeworCXNzaXplX3QgbGVuOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF8wLCBzaXplb2YoZGV2X2NtZF9kc3Rf MCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdF8wKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0X21heCkgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYXhfMCwgc2l6ZW9mKGRldl9j bWRfZHN0X21heF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0X21heF8w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0NikgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdDZfMCwgc2l6 ZW9mKGRldl9jbWRfZHN0Nl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0 Nl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0Nl9taW4pIHsK Kwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kc3Q2 X21pbl8wLCBzaXplb2YoZGV2X2NtZF9kc3Q2X21pbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6 ZW9mKGRldl9jbWRfZHN0Nl9taW5fMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBk ZXZfY21kX2RzdDZfbWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfZHN0Nl9tYXhfMCwgc2l6ZW9mKGRldl9jbWRfZHN0Nl9tYXhfMCkpOwor CUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfbWF4XzApKTsKK30KKworVEVTVF9G KHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9zcmM2KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjNl8wLCBzaXplb2YoZGV2X2NtZF9zcmM2 XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmM2XzApKTsKK30KKworVEVT VF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9zcmNfbWluKSB7CisJc3NpemVfdCBsZW47CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjX21pbl8wLCBzaXplb2YoZGV2 X2NtZF9zcmNfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmNfbWlu XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9zcmNfbWF4KSB7CisJ c3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjX21h eF8wLCBzaXplb2YoZGV2X2NtZF9zcmNfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2Yo ZGV2X2NtZF9zcmNfbWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2Nt ZF9kc3RfbWFjKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfZHN0X21hY18wLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjXzApKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9kc3RfbWFjXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF9zcmNfbWFjKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0 ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3JjX21hY18wLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFj XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9zcmNfbWFjXzApKTsKK30KKwor VEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jbGVhcl9jb3VudGVycykgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2NsZWFyX2NvdW50 ZXJzXzAsIHNpemVvZihkZXZfY21kX2NsZWFyX2NvdW50ZXJzXzApKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfZmxvd3MpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF9mbG93c18wLCBzaXplb2YoZGV2X2NtZF9mbG93c18wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxvd3NfMCkpOworfQorCitURVNUX0Yo cHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3NwaSkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NwaV8wLCBzaXplb2YoZGV2X2NtZF9zcGlfMCkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3NwaV8wKSkgVEhfTE9HKCJDT05GSUdf WEZSTSBub3QgZW5hYmxlZD8iKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2Nt ZF9mbG93bGVuKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfZmxvd2xlbl8wLCBzaXplb2YoZGV2X2NtZF9mbG93bGVuXzApKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9mbG93bGVuXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF9xdWV1ZV9tYXBfbWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfcXVldWVfbWFwX21pbl8wLCBzaXplb2YoZGV2 X2NtZF9xdWV1ZV9tYXBfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9x dWV1ZV9tYXBfbWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9x dWV1ZV9tYXBfbWF4KSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZf ZmQsIGRldl9jbWRfcXVldWVfbWFwX21heF8wLCBzaXplb2YoZGV2X2NtZF9xdWV1ZV9tYXBfbWF4 XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9xdWV1ZV9tYXBfbWF4XzApKTsK K30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9tcGxzKSB7CisJc3NpemVfdCBs ZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbXBsc18wLCBzaXplb2Yo ZGV2X2NtZF9tcGxzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9tcGxzXzAp KTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9tcGxzXzEsIHNpemVvZihk ZXZfY21kX21wbHNfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21wbHNfMSkp OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21wbHNfMiwgc2l6ZW9mKGRl dl9jbWRfbXBsc18yKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfbXBsc18yKSk7 CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbXBsc18zLCBzaXplb2YoZGV2 X2NtZF9tcGxzXzMpKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5vLCBF MkJJRyk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdmxhbl9pZCkgewor CXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5f aWRfMCwgc2l6ZW9mKGRldl9jbWRfdmxhbl9pZF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfdmxhbl9pZF8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfdmxhbl9wXzAsIHNpemVvZihkZXZfY21kX3ZsYW5fcF8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfdmxhbl9wXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwg ZGV2X2NtZF92bGFuX2NmaV8wLCBzaXplb2YoZGV2X2NtZF92bGFuX2NmaV8wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdmxhbl9jZmlfMCkpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5faWRfMSwgc2l6ZW9mKGRldl9jbWRfdmxhbl9pZF8xKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdmxhbl9pZF8xKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3ZsYW5faWQpIHsKKwlzc2l6ZV90IGxlbjsKKwor CWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9zdmxhbl9pZF8wLCBzaXplb2YoZGV2 X2NtZF9zdmxhbl9pZF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5f aWRfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3N2bGFuX3BfMCwg c2l6ZW9mKGRldl9jbWRfc3ZsYW5fcF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfc3ZsYW5fcF8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3Zs YW5fY2ZpXzAsIHNpemVvZihkZXZfY21kX3N2bGFuX2NmaV8wKSk7CisJRVhQRUNUX0VRKGxlbiwg c2l6ZW9mKGRldl9jbWRfc3ZsYW5fY2ZpXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9zdmxhbl9pZF8xLCBzaXplb2YoZGV2X2NtZF9zdmxhbl9pZF8xKSk7CisJRVhQ RUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMSkpOworfQorCisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdG9zKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdG9zXzAsIHNpemVvZihkZXZfY21kX3Rvc18wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdG9zXzApKTsKKworCWxlbiA9IHdyaXRl KHNlbGYtPmRldl9mZCwgZGV2X2NtZF90b3NfMSwgc2l6ZW9mKGRldl9jbWRfdG9zXzEpKTsKKwlF WFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF90b3NfMSkpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3Rvc18yLCBzaXplb2YoZGV2X2NtZF90b3NfMikpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX3Rvc18yKSk7Cit9CisKKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgZGV2X2NtZF90cmFmZmljX2NsYXNzKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4g PSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdHJhZmZpY19jbGFzc18wLCBzaXplb2YoZGV2 X2NtZF90cmFmZmljX2NsYXNzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF90 cmFmZmljX2NsYXNzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9z a2JfcHJpb3JpdHkpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9za2JfcHJpb3JpdHlfMCwgc2l6ZW9mKGRldl9jbWRfc2tiX3ByaW9yaXR5XzAp KTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9za2JfcHJpb3JpdHlfMCkpOworfQor CitURVNUX0hBUk5FU1NfTUFJTgotLSAKMi40OC4xCgo=