From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) (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 82665257AE6; Fri, 21 Feb 2025 21:53:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=212.227.15.15 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174794; cv=none; b=p9rNLjJdXKRS1+JJWqfGF2eZGh+E30LzZJMb1XaxlbPqGnnAkcBw6F7n/Vv5XqptKNM6/1OCgcHh+7qkHA5TaqHdqr9bWq6+UFCq62hkoPZEXw6UBt3cR3XvkiTq1Dr5BrJXuxxq/X7rqvAEBKx6uQfDkRSmrqpPPjICmaSVaF4= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740174794; c=relaxed/simple; bh=c4MzV5QNFOw17wXCRMjBHThIgwuK82KlV9LXlwSIj1w=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=f+mbcUJcBrz6TGx7BSTh1e0gvWLQ/UUspcjrkwWNFF54NBxVy993pUis0Nowq0CglXW9+HeVyyCu87Ng6b+pdpq0+C/EYJybg4GSsL088ramzLXsawOcugXBpAaoOH+/81t0M1KpP+hirVTPj2TeQK82q4Pq9v/CMsRlm2y6+SY= 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=sB2S4PlL; arc=none smtp.client-ip=212.227.15.15 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="sB2S4PlL" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.net; s=s31663417; t=1740174773; x=1740779573; i=ps.report@gmx.net; bh=c4MzV5QNFOw17wXCRMjBHThIgwuK82KlV9LXlwSIj1w=; 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=sB2S4PlLEK/1hysYmCwkzAKmei70A3vsF4C1bxOeI9JeuChTxmYhBVPordufpaBq Q1aBsR5qox6gwbBkiJgcKI6f3mBJuZETF3Ya1Xw2C514fGqH915Igkq6Dn2qRATzI enrTI//2J44ugu/w+r2gXmKKsuCJZlsetZJpgI0mVB5ya5+vC8am4taMR4ZfAIg76 jYMHNob880em3qjN5zm/t9Uotn3WY/DqKqdt8Mmhp1DSfzwHwaWeNAFQRkLu3n9IV VuiZwQJ/IBxsSknMDJYbQfNaTtsmyMhLYXfA9LDoBY/cq9k86GysP553iVcNHlugL 2qPoiRH9VnpxRlGlsg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost.fritz.box ([82.135.81.92]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MSKuA-1ts6H70C52-00YNHA; Fri, 21 Feb 2025 22:52:53 +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 , Thomas Gleixner , Artem Chernyshev , Nam Cao Subject: [PATCH net-next v6 8/8] selftest: net: add proc_net_pktgen Date: Fri, 21 Feb 2025 22:52:46 +0100 Message-ID: <20250221215246.383373-9-ps.report@gmx.net> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250221215246.383373-1-ps.report@gmx.net> References: <20250221215246.383373-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:n8h81UcJOY1mExQo/IHsFWCf+CZR/R9JSKO2xWYrfG99FkhpRLE LVvs6fiy8ad4U+OWAvURN9NqNBOYdYVN5auCx9tGNAu3Ly+l8lFnHq8nZROeeU1AmtKzDNn /VxOQxC19Q7izIjkeq5bnjBO5UsSpl6cPKJTd3EHitsKPhB0mvZfSXr7jm8tAqPbxylkKbH xOa9OWS5tJCwCKSocplTQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:MOHJ7BqcxXc=;qddsZSIDopy+NHPdo8RzT++H7Yp EEqA5KWAUZJ/FEzSJpb2eL1QW/G2oHKHbBF1YleQ+Pr+YD2/i/US9G9/7zdn14jUggALn66oy Wto+kQabLLrNarEb+3chhuFhiMJ+Sn1NTW5qmONJhmNRkmfPm4li7fqHk8C8ZnISRJBSexEiA d7H5yQ4wIpPAFlKo4SWGhLUvviMWV3Il8cfclH7ZRz8fvtDX/9GETiZKwpJwKmHPHQeAC+25p OAHv2gzobbTGhVG2MgJZ3/IPwDBZDAmrxWD3BKEjmZWt9X3EyOQEr6JolMYnysY9YCjreuv1l KboQ++1iqch1cvr0lgSsmk7zHe1BLRwiOB69yIckNz8OzRMeD9O4AtUWGuWHFzwKcb7+LVSxD ZFGl4U29pnBZqKFbgdQlwtq3a/+49DpvSrwRLaRS/3F1DjmqJrJrwQ0eSA0z0tLNjQGO/e1nL Mu0MqaaiK334N10mLp29fLR1J1QwyI2EppuNf9AsRA2At1JwGkOr6zlR2hm/ebDagFuY5E75N joEpb+JMOBeGIugs1BhK+O3NiFR+SKFNrKK0jZ74FyQ/pwdHbDq1rYtzfDopDyjw9qXFy4RPO ki8gDMa+3KdtPI867OFGS6ZGdQvFBGK6NVOvR3dTZzUPXrHMNuKuNgWBg/UwDc3QifpgDvqCZ 0ufKBRR3Au4Frf5cBV4WOnLNaAHKkI9h3/xSNu9hfbEnpvPwEKg8+Cyj1/09ARaG2cQazVYUI sJu0ZFm1BKT1JQklnk/ShZZHsksT6hl2GjO7q07T7MPRG0gwj8G8mjPV+X+EBCRgUAHeJmV1O TXau4/GmsZmqjbl5RbAbBWui5r+tY4M+T34u625MhBkZ6FOyXjt1mlYKJA6+5PqLYZM+AoOss uzLn1roW090mrJ9sqkh6l527KdBVAiIk1cyQSYcgGHOENj5b3TkqL/Y/w33d0EPkyg0k/5lU9 Zqqsi9myylCP7ofn1ZkDivDxGyBlVBa01cvBf16oq2vv+B3jfzMDqca9udXxqFjBZANYelPO3 1z3+eh5fH97jN7KS17+Dlwv8ElRP572gof7HIdG4MGhRNlVQj7NUlapww81WYqTUb7Or+oT6/ fMva5T0KPDK/UVpG9E/J/Ql9YtPFd8M2AtRqLkUqEnNvOZwGfUNlamZwh00pgEbXRIODPgxFQ EJSPaSB8rzsqBb9p51rIYu1i5Z7KDaa/J9ZqKz+TGuLLT+yDc4UjMRnUC4mw4gBpewfk9Ha/7 7GC6Ot6RFAW+qyBVU+Oy7Vwv6cqj6LJJN9/Xy24S13SVaEu1vmRP1yse2JDPGzfjXaGOL6ecW DBhzNRJ1qF3UIxMeVIaNmfPgOYZYXnJF7IXbyVp+ZqpX5bAK59tpbaYTQbO84KKUVqJD+1/aq gZtAB2PWT3sq5FnXust8IzrxKl/dXkgmzd5IfYBKxJ86DKvBdgbnwhFzlc QWRkIHNvbWUgdGVzdCBmb3IgL3Byb2MvbmV0L3BrdGdlbi8uLi4gaW50ZXJmYWNlLgoKLSBlbmFi bGUgJ0NPTkZJR19ORVRfUEtUR0VOPW0nIGluIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKClNpZ25lZC1vZmYtYnk6IFBldGVyIFNlaWRlcmVyIDxwcy5yZXBvcnRAZ214Lm5ldD4K LS0tCkNoYW5nZXMgdjUgLT4gdjYKICAtIG5vIGNoYW5nZXMKCkNoYW5nZXMgdjQgLT4gdjUKICAt IHNwbGl0IHVwIHBhdGNoc2V0IGludG8gcGFydCBpL2lpIChzdWdnZXN0ZWQgYnkgU2ltb24gSG9y bWFuKQogIC0gYWRkYXB0IHRvIGRyb3BwZWQgcGF0Y2ggJ25ldDogcGt0Z2VuOiBoZXgzMl9hcmcv bnVtX2FyZyBlcnJvciBvdXQgaW4gY2FzZQogICAgbm8gY2hhcmFjdGVycyBhcmUgYXZhaWxhYmxl JywgZW1wdHkgaGV4L251bSBhcmcgaXMgbm93IGltcGxpY2l0IGFzc3VtZWQgYXMKICAgIHplcm8g dmFsdWUgKGluc3RlYWQgb2YgZmFpbHVyZSkKCkNoYW5nZXMgdjMgLT4gdjQ6CiAgLSBubyBjaGFu Z2VzCgpDaGFuZ2VzIHYyIC0+IHYzOgogIC0gZml4IHR5cG8gaW4gY2hhbmdlIGRlc2NyaXB0aW9u ICgndjEgLT4gdjEnIGFuZCB0eW9wKQogIC0gcmVuYW1lIHNvbWUgdmFycyB0byBiZXR0ZXIgbWF0 Y2ggdXNhZ2UKICAgIGFkZF9sb29wYmFja18wIC0+IHRocl9jbWRfYWRkX2xvb3BiYWNrXzAKICAg IHJtX2xvb3BiYWNrXzAgLT4gdGhyX2NtZF9ybV9sb29wYmFja18wCiAgICB3cm9uZ19jdHJsX2Nt ZCAtPiB3cm9uZ190aHJfY21kCiAgICBsZWdhY3lfY3RybF9jbWQgLT4gbGVnYWN5X3Rocl9jbWQK ICAgIGN0cmxfZmQgLT4gdGhyX2ZkCiAgLSBhZGQgY3RybCBpbnRlcmZhY2UgdGVzdHMKCkNoYW5n ZXMgdjEgLT4gdjI6CiAgLSBmaXggdHlvcCBub3QgdnMuIG5vZCAoc3VnZ2VzdGVkIGJ5IEpha3Vi IEtpY2luc2tpKQogIC0gZml4IG1pc2FsaWduZWQgbGluZSAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtp Y2luc2tpKQogIC0gZW5hYmxlIGZvbWVybHkgY29tbWVudGVkIG91dCBDT05GSUdfWEZSTSBkZXBl bmRlbnQgdGVzdCAoY29tbWFuZCBzcGkpLAogICAgYXMgQ09ORklHX1hGUk0gaXMgZW5hYmxlZCB2 aWEgdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZwogICAgQ09ORklHX1hGUk1fSU5U RVJGQUNFL0NPTkZJR19YRlJNX1VTRVIgKHN1Z2dlc3RleCBieSBKYWt1YiBLaWNpbnNraSkKICAt IGFkZCBDT05GSUdfTkVUX1BLVEdFTj1tIHRvIHRvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL25ldC9j b25maWcKICAgIChzdWdnZXN0ZWQgYnkgSmFrdWIgS2ljaW5za2kpCiAgLSBhZGQgbW9kcHJvYmUg cGt0Z2VuIHRvIEZJWFRVUkVfU0VUVVAoKSAoc3VnZ2VzdGVkIGJ5IEpha3ViIEtpY2luc2tpKQog IC0gZml4IHNvbWUgY2hlY2twYXRjaCB3YXJuaW5ncyAoTWlzc2luZyBhIGJsYW5rIGxpbmUgYWZ0 ZXIgZGVjbGFyYXRpb25zKQogIC0gc2hyaW5rIGxpbmUgbGVuZ3RoIGJ5IHJlLW5hbWluZyBzb21l IHZhcmlhYmxlcyAoY29tbWFuZCAtPiBjbWQsCiAgICBkZXZpY2UgLT4gZGV2KQogIC0gYWRkICdy YXRlIDAnIHRlc3RjYXNlCiAgLSBhZGQgJ3JhdGVwIDAnIHRlc3RjYXNlCi0tLQogdG9vbHMvdGVz dGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIHRvb2xzL3Rlc3Rp bmcvc2VsZnRlc3RzL25ldC9jb25maWcgICAgICAgICAgICB8ICAgMSArCiB0b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9uZXQvcHJvY19uZXRfcGt0Z2VuLmMgfCA2NDYgKysrKysrKysrKysrKysrKysr CiAzIGZpbGVzIGNoYW5nZWQsIDY0OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg dG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5jCgpkaWZmIC0tZ2l0 IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlIGIvdG9vbHMvdGVzdGluZy9z ZWxmdGVzdHMvbmV0L01ha2VmaWxlCmluZGV4IDhkNjExNmI4MGNmMS4uMTBiNDdmZDk2NGIwIDEw MDY0NAotLS0gYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvTWFrZWZpbGUKKysrIGIvdG9v bHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L01ha2VmaWxlCkBAIC0xMDMsNiArMTAzLDcgQEAgVEVT VF9QUk9HUyArPSB2bGFuX2JyaWRnZV9iaW5kaW5nLnNoCiBURVNUX1BST0dTICs9IGJwZl9vZmZs b2FkLnB5CiBURVNUX1BST0dTICs9IGlwdjZfcm91dGVfdXBkYXRlX3NvZnRfbG9ja3VwLnNoCiBU RVNUX1BST0dTICs9IGJ1c3lfcG9sbF90ZXN0LnNoCitURVNUX0dFTl9QUk9HUyArPSBwcm9jX25l dF9wa3RnZW4KIAogIyBZTkwgZmlsZXMsIG11c3QgYmUgYmVmb3JlICJpbmNsdWRlIC4ubGliLm1r IgogWU5MX0dFTl9GSUxFUyA6PSBidXN5X3BvbGxlciBuZXRsaW5rLWR1bXBzCmRpZmYgLS1naXQg YS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnIGIvdG9vbHMvdGVzdGluZy9zZWxm dGVzdHMvbmV0L2NvbmZpZwppbmRleCA1YjliYWY3MDg5NTAuLjlmZTFiMzQ2NGZiYyAxMDA2NDQK LS0tIGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L2NvbmZpZworKysgYi90b29scy90ZXN0 aW5nL3NlbGZ0ZXN0cy9uZXQvY29uZmlnCkBAIC0xMDcsMyArMTA3LDQgQEAgQ09ORklHX1hGUk1f SU5URVJGQUNFPW0KIENPTkZJR19YRlJNX1VTRVI9bQogQ09ORklHX0lQX05GX01BVENIX1JQRklM VEVSPW0KIENPTkZJR19JUDZfTkZfTUFUQ0hfUlBGSUxURVI9bQorQ09ORklHX05FVF9QS1RHRU49 bQpkaWZmIC0tZ2l0IGEvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdl bi5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOTE3ZjQ1YmU0NzY5Ci0tLSAvZGV2 L251bGwKKysrIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvbmV0L3Byb2NfbmV0X3BrdGdlbi5j CkBAIC0wLDAgKzEsNjQ2IEBACisvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMAor LyoKKyAqIHByb2NfbmV0X3BrdGdlbjoga3NlbGZ0ZXN0IGZvciAvcHJvYy9uZXQvcGt0Z2VuIGlu dGVyZmFjZQorICoKKyAqIENvcHlyaWdodCAoYykgMjAyNSBQZXRlciBTZWlkZXJlciA8cHMucmVw b3J0QGdteC5uZXQ+CisgKgorICovCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxmY250 bC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorCisjaW5jbHVk ZSAiLi4va3NlbGZ0ZXN0X2hhcm5lc3MuaCIKKworc3RhdGljIGNvbnN0IGNoYXIgY3RybF9jbWRf c3RvcFtdID0gInN0b3AiOworc3RhdGljIGNvbnN0IGNoYXIgY3RybF9jbWRfc3RhcnRbXSA9ICJz dGFydCI7CitzdGF0aWMgY29uc3QgY2hhciBjdHJsX2NtZF9yZXNldFtdID0gInJlc2V0IjsKKwor c3RhdGljIGNvbnN0IGNoYXIgd3JvbmdfY3RybF9jbWRbXSA9ICIwMTIzNDU2Nzg5MDEyMzQ1Njc4 OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1 Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5IjsK Kworc3RhdGljIGNvbnN0IGNoYXIgdGhyX2NtZF9hZGRfbG9vcGJhY2tfMFtdID0gImFkZF9kZXZp Y2UgbG9AMCI7CitzdGF0aWMgY29uc3QgY2hhciB0aHJfY21kX3JtX2xvb3BiYWNrXzBbXSA9ICJy ZW1fZGV2aWNlX2FsbCI7CisKK3N0YXRpYyBjb25zdCBjaGFyIHdyb25nX3Rocl9jbWRbXSA9ICJm b3JzdXJlYXdyb25nY29tbWFuZCI7CitzdGF0aWMgY29uc3QgY2hhciBsZWdhY3lfdGhyX2NtZFtd ID0gIm1heF9iZWZvcmVfc29mdGlycSI7CisKK3N0YXRpYyBjb25zdCBjaGFyIHdyb25nX2Rldl9j bWRbXSA9ICJmb3JzdXJld3Jvbmdjb21tYW5kIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRf bWluX3BrdF9zaXplXzBbXSA9ICJtaW5fcGt0X3NpemUiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9taW5fcGt0X3NpemVfMVtdID0gIm1pbl9wa3Rfc2l6ZSAiOworc3RhdGljIGNvbnN0IGNo YXIgZGV2X2NtZF9taW5fcGt0X3NpemVfMltdID0gIm1pbl9wa3Rfc2l6ZSAwIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfbWluX3BrdF9zaXplXzNbXSA9ICJtaW5fcGt0X3NpemUgMSI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV80W10gPSAibWluX3BrdF9zaXpl IDEwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21pbl9wa3Rfc2l6ZV81W10gPSAibWlu X3BrdF9zaXplPTEwMDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9taW5fcGt0X3NpemVf NltdID0gIm1pbl9wa3Rfc2l6ZSA9MjAwMiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21p bl9wa3Rfc2l6ZV83W10gPSAibWluX3BrdF9zaXplPSAzMDAzIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfbWluX3BrdF9zaXplXzhbXSA9ICJtaW5fcGt0X3NpemUgPSA0MDA0IjsKK3N0YXRp YyBjb25zdCBjaGFyIGRldl9jbWRfbWF4X3BrdF9zaXplXzBbXSA9ICJtYXhfcGt0X3NpemUgMjAw IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfcGt0X3NpemVfMFtdID0gInBrdF9zaXplIDMw MCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2ltaXhfd2VpZ2h0c18wW10gPSAiaW1peF93 ZWlnaHRzIDAsNyA1NzYsNCAxNTAwLDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9pbWl4 X3dlaWdodHNfMVtdID0gImltaXhfd2VpZ2h0cyAxMDEsMSAxMDIsMiAxMDMsMyAxMDQsNCAxMDUs NSAxMDYsNiAxMDcsNyAxMDgsOCAxMDksOSAxMTAsMTAgMTExLDExIDExMiwxMiAxMTMsMTMgMTE0 LDE0IDExNSwxNSAxMTYsMTYgMTE3LDE3IDExOCwxOCAxMTksMTkgMTIwLDIwIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfaW1peF93ZWlnaHRzXzJbXSA9ICJpbWl4X3dlaWdodHMgMTAwLDEg MTAyLDIgMTAzLDMgMTA0LDQgMTA1LDUgMTA2LDYgMTA3LDcgMTA4LDggMTA5LDkgMTEwLDEwIDEx MSwxMSAxMTIsMTIgMTEzLDEzIDExNCwxNCAxMTUsMTUgMTE2LDE2IDExNywxNyAxMTgsMTggMTE5 LDE5IDEyMCwyMCAxMjEsMjEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kZWJ1Z18wW10g PSAiZGVidWcgMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RlYnVnXzFbXSA9ICJkZWJ1 ZyAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZnJhZ3NfMFtdID0gImZyYWdzIDEwMCI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RlbGF5XzBbXSA9ICJkZWxheSAxMDAiOworc3Rh dGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kZWxheV8xW10gPSAiZGVsYXkgMjE0NzQ4MzY0NyI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3JhdGVfMFtdID0gInJhdGUgMCI7CitzdGF0aWMgY29u c3QgY2hhciBkZXZfY21kX3JhdGVfMVtdID0gInJhdGUgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFy IGRldl9jbWRfcmF0ZXBfMFtdID0gInJhdGVwIDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF9yYXRlcF8xW10gPSAicmF0ZXAgMjAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdWRw X3NyY19taW5fMFtdID0gInVkcF9zcmNfbWluIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2Nt ZF91ZHBfZHN0X21pbl8wW10gPSAidWRwX2RzdF9taW4gMiI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX3VkcF9zcmNfbWF4XzBbXSA9ICJ1ZHBfc3JjX21heCAzIjsKK3N0YXRpYyBjb25zdCBj aGFyIGRldl9jbWRfdWRwX2RzdF9tYXhfMFtdID0gInVkcF9kc3RfbWF4IDQiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF9jbG9uZV9za2JfMFtdID0gImNsb25lX3NrYiAxIjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfY2xvbmVfc2tiXzFbXSA9ICJjbG9uZV9za2IgMCI7CitzdGF0aWMg Y29uc3QgY2hhciBkZXZfY21kX2NvdW50XzBbXSA9ICJjb3VudCAxMDAiOworc3RhdGljIGNvbnN0 IGNoYXIgZGV2X2NtZF9zcmNfbWFjX2NvdW50XzBbXSA9ICJzcmNfbWFjX2NvdW50IDEwMCI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2RzdF9tYWNfY291bnRfMFtdID0gImRzdF9tYWNfY291 bnQgMTAwIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfYnVyc3RfMFtdID0gImJ1cnN0IDAi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9ub2RlXzBbXSA9ICJub2RlIDEwMCI7CitzdGF0 aWMgY29uc3QgY2hhciBkZXZfY21kX3htaXRfbW9kZV8wW10gPSAieG1pdF9tb2RlIHN0YXJ0X3ht aXQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF94bWl0X21vZGVfMVtdID0gInhtaXRfbW9k ZSBuZXRpZl9yZWNlaXZlIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfeG1pdF9tb2RlXzJb XSA9ICJ4bWl0X21vZGUgcXVldWVfeG1pdCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3ht aXRfbW9kZV8zW10gPSAieG1pdF9tb2RlIG5vbnNlbnNlIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRl dl9jbWRfZmxhZ18wW10gPSAiZmxhZyBVRFBDU1VNIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9j bWRfZmxhZ18xW10gPSAiZmxhZyAhVURQQ1NVTSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21k X2ZsYWdfMltdID0gImZsYWcgbm9uc2Vuc2UiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9k c3RfbWluXzBbXSA9ICJkc3RfbWluIDEwMS4xMDIuMTAzLjEwNCI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX2RzdF8wW10gPSAiZHN0IDEwMS4xMDIuMTAzLjEwNCI7CitzdGF0aWMgY29uc3Qg Y2hhciBkZXZfY21kX2RzdF9tYXhfMFtdID0gImRzdF9tYXggMjAxLjIwMi4yMDMuMjA0IjsKK3N0 YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfZHN0Nl8wW10gPSAiZHN0NiAyMDAxOmRiMzg6MTIzNDow MDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3Q2 X21pbl8wW10gPSAiZHN0Nl9taW4gMjAwMTpkYjg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAwOjAw MDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9kc3Q2X21heF8wW10gPSAiZHN0Nl9tYXgg MjAwMTpkYjg6MTIzNDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAiOworc3RhdGljIGNvbnN0IGNo YXIgZGV2X2NtZF9zcmM2XzBbXSA9ICJzcmM2IDIwMDE6ZGIzODoxMjM0OjAwMDA6MDAwMDowMDAw OjAwMDA6MDAwMCI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3NyY19taW5fMFtdID0gInNy Y19taW4gMTAxLjEwMi4xMDMuMTA0IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfc3JjX21h eF8wW10gPSAic3JjX21heCAyMDEuMjAyLjIwMy4yMDQiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2 X2NtZF9kc3RfbWFjXzBbXSA9ICJkc3RfbWFjIDAxOjAyOjAzOjA0OjA1OjA2IjsKK3N0YXRpYyBj b25zdCBjaGFyIGRldl9jbWRfc3JjX21hY18wW10gPSAic3JjX21hYyAxMToxMjoxMzoxNDoxNTox NiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2NsZWFyX2NvdW50ZXJzXzBbXSA9ICJjbGVh cl9jb3VudGVycyI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX2Zsb3dzXzBbXSA9ICJmbG93 cyAxMDAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zcGlfMFtdID0gInNwaSAxMDAiOwor c3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9mbG93bGVuXzBbXSA9ICJmbG93bGVuIDEwMCI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3F1ZXVlX21hcF9taW5fMFtdID0gInF1ZXVlX21hcF9t aW4gMSI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3F1ZXVlX21hcF9tYXhfMFtdID0gInF1 ZXVlX21hcF9tYXggMiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX21wbHNfMFtdID0gIm1w bHMgMDAwMDAwMDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9tcGxzXzFbXSA9ICJtcGxz IDAwMDAwMDAxLDAwMDAwMGYyIjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfbXBsc18yW10g PSAibXBscyAwMDAwMGYwMCwwMDAwMGYwMSwwMDAwMGYwMiwwMDAwMGYwMywwMDAwMGYwNCwwMDAw MGYwNSwwMDAwMGYwNiwwMDAwMGYwNywwMDAwMGYwOCwwMDAwMGYwOSwwMDAwMGYwYSwwMDAwMGYw YiwwMDAwMGYwYywwMDAwMGYwZCwwMDAwMGYwZSwwMDAwMGYwZiI7CitzdGF0aWMgY29uc3QgY2hh ciBkZXZfY21kX21wbHNfM1tdID0gIm1wbHMgMDAwMDBmMDAsMDAwMDBmMDEsMDAwMDBmMDIsMDAw MDBmMDMsMDAwMDBmMDQsMDAwMDBmMDUsMDAwMDBmMDYsMDAwMDBmMDcsMDAwMDBmMDgsMDAwMDBm MDksMDAwMDBmMGEsMDAwMDBmMGIsMDAwMDBmMGMsMDAwMDBmMGQsMDAwMDBmMGUsMDAwMDBmMGYs MDAwMDBmMTAiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFuX2lkXzBbXSA9ICJ2bGFu X2lkIDEiOworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFuX3BfMFtdID0gInZsYW5fcCAx IjsKK3N0YXRpYyBjb25zdCBjaGFyIGRldl9jbWRfdmxhbl9jZmlfMFtdID0gInZsYW5fY2ZpIDEi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF92bGFuX2lkXzFbXSA9ICJ2bGFuX2lkIDQwOTYi Oworc3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9pZF8wW10gPSAic3ZsYW5faWQgMSI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX3BfMFtdID0gInN2bGFuX3AgMSI7Citz dGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3N2bGFuX2NmaV8wW10gPSAic3ZsYW5fY2ZpIDEiOwor c3RhdGljIGNvbnN0IGNoYXIgZGV2X2NtZF9zdmxhbl9pZF8xW10gPSAic3ZsYW5faWQgNDA5NiI7 CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Rvc18wW10gPSAidG9zIDAiOworc3RhdGljIGNv bnN0IGNoYXIgZGV2X2NtZF90b3NfMVtdID0gInRvcyAwZiI7CitzdGF0aWMgY29uc3QgY2hhciBk ZXZfY21kX3Rvc18yW10gPSAidG9zIDBmZiI7CitzdGF0aWMgY29uc3QgY2hhciBkZXZfY21kX3Ry YWZmaWNfY2xhc3NfMFtdID0gInRyYWZmaWNfY2xhc3MgZjAiOworc3RhdGljIGNvbnN0IGNoYXIg ZGV2X2NtZF9za2JfcHJpb3JpdHlfMFtdID0gInNrYl9wcmlvcml0eSA5OTkiOworCitGSVhUVVJF KHByb2NfbmV0X3BrdGdlbikgeworCWludCBjdHJsX2ZkOworCWludCB0aHJfZmQ7CisJaW50IGRl dl9mZDsKK307CisKK0ZJWFRVUkVfU0VUVVAocHJvY19uZXRfcGt0Z2VuKSB7CisJaW50IHI7CisJ c3NpemVfdCBsZW47CisKKwlyID0gc3lzdGVtKCJtb2Rwcm9iZSBwa3RnZW4iKTsKKwlBU1NFUlRf RVEociwgMCkgVEhfTE9HKCJDT05GSUdfTkVUX1BLVEdFTiBub3QgZW5hYmxlZCwgbW9kdWxlIHBr dGdlbiBub3QgbG9hZGVkPyIpOworCisJc2VsZi0+Y3RybF9mZCA9IG9wZW4oIi9wcm9jL25ldC9w a3RnZW4vcGdjdHJsIiwgT19SRFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+Y3RybF9mZCwgMCkgVEhf TE9HKCJDT05GSUdfTkVUX1BLVEdFTiBub3QgZW5hYmxlZCwgbW9kdWxlIHBrdGdlbiBub3QgbG9h ZGVkPyIpOworCisJc2VsZi0+dGhyX2ZkID0gb3BlbigiL3Byb2MvbmV0L3BrdGdlbi9rcGt0Z2Vu ZF8wIiwgT19SRFdSKTsKKwlBU1NFUlRfR0Uoc2VsZi0+dGhyX2ZkLCAwKSBUSF9MT0coIkNPTkZJ R19ORVRfUEtUR0VOIG5vdCBlbmFibGVkLCBtb2R1bGUgcGt0Z2VuIG5vdCBsb2FkZWQ/Iik7CisK KwlsZW4gPSB3cml0ZShzZWxmLT50aHJfZmQsIHRocl9jbWRfYWRkX2xvb3BiYWNrXzAsIHNpemVv Zih0aHJfY21kX2FkZF9sb29wYmFja18wKSk7CisJQVNTRVJUX0VRKGxlbiwgc2l6ZW9mKHRocl9j bWRfYWRkX2xvb3BiYWNrXzApKSBUSF9MT0coImRldmljZSBsb0AwIGFscmVhZHkgcmVnaXN0ZXJl ZD8iKTsKKworCXNlbGYtPmRldl9mZCA9IG9wZW4oIi9wcm9jL25ldC9wa3RnZW4vbG9AMCIsIE9f UkRXUik7CisJQVNTRVJUX0dFKHNlbGYtPmRldl9mZCwgMCkgVEhfTE9HKCJkZXZpY2UgZW50cnkg Zm9yIGxvQDAgbWlzc2luZz8iKTsKK30KKworRklYVFVSRV9URUFSRE9XTihwcm9jX25ldF9wa3Rn ZW4pIHsKKwlpbnQgcmV0OworCXNzaXplX3QgbGVuOworCisJcmV0ID0gY2xvc2Uoc2VsZi0+ZGV2 X2ZkKTsKKwlFWFBFQ1RfRVEocmV0LCAwKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPnRocl9mZCwg dGhyX2NtZF9ybV9sb29wYmFja18wLCBzaXplb2YodGhyX2NtZF9ybV9sb29wYmFja18wKSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKHRocl9jbWRfcm1fbG9vcGJhY2tfMCkpOworCisJcmV0ID0g Y2xvc2Uoc2VsZi0+dGhyX2ZkKTsKKwlFWFBFQ1RfRVEocmV0LCAwKTsKKworCXJldCA9IGNsb3Nl KHNlbGYtPmN0cmxfZmQpOworCUVYUEVDVF9FUShyZXQsIDApOworfQorCitURVNUX0YocHJvY19u ZXRfcGt0Z2VuLCB3cm9uZ19jdHJsX2NtZCkgeworCWZvciAoaW50IGkgPSAwOyBpIDw9IHNpemVv Zih3cm9uZ19jdHJsX2NtZCk7IGkrKykgeworCQlzc2l6ZV90IGxlbjsKKworCQlsZW4gPSB3cml0 ZShzZWxmLT5jdHJsX2ZkLCB3cm9uZ19jdHJsX2NtZCwgaSk7CisJCUVYUEVDVF9FUShsZW4sIC0x KTsKKwkJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCX0KK30KKworVEVTVF9GKHByb2NfbmV0 X3BrdGdlbiwgY3RybF9jbWQpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYt PmN0cmxfZmQsIGN0cmxfY21kX3N0b3AsIHNpemVvZihjdHJsX2NtZF9zdG9wKSk7CisJRVhQRUNU X0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3N0b3ApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmN0 cmxfZmQsIGN0cmxfY21kX3N0b3AsIHNpemVvZihjdHJsX2NtZF9zdG9wKSAtIDEpOworCUVYUEVD VF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdG9wKSAtIDEpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+Y3RybF9mZCwgY3RybF9jbWRfc3RhcnQsIHNpemVvZihjdHJsX2NtZF9zdGFydCkpOworCUVY UEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9zdGFydCkpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+Y3RybF9mZCwgY3RybF9jbWRfc3RhcnQsIHNpemVvZihjdHJsX2NtZF9zdGFydCkgLSAxKTsK KwlFWFBFQ1RfRVEobGVuLAlzaXplb2YoY3RybF9jbWRfc3RhcnQpIC0gMSk7CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJsX2NtZF9yZXNldCwgc2l6ZW9mKGN0cmxfY21kX3Jlc2V0 KSk7CisJRVhQRUNUX0VRKGxlbiwJc2l6ZW9mKGN0cmxfY21kX3Jlc2V0KSk7CisKKwlsZW4gPSB3 cml0ZShzZWxmLT5jdHJsX2ZkLCBjdHJsX2NtZF9yZXNldCwgc2l6ZW9mKGN0cmxfY21kX3Jlc2V0 KSAtIDEpOworCUVYUEVDVF9FUShsZW4sCXNpemVvZihjdHJsX2NtZF9yZXNldCkgLSAxKTsKK30K KworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgd3JvbmdfdGhyX2NtZCkgeworCWZvciAoaW50IGkg PSAwOyBpIDw9IHNpemVvZih3cm9uZ190aHJfY21kKTsgaSsrKSB7CisJCXNzaXplX3QgbGVuOwor CisJCWxlbiA9IHdyaXRlKHNlbGYtPnRocl9mZCwgd3JvbmdfdGhyX2NtZCwgaSk7CisJCUVYUEVD VF9FUShsZW4sIC0xKTsKKwkJRVhQRUNUX0VRKGVycm5vLCBFSU5WQUwpOworCX0KK30KKworVEVT VF9GKHByb2NfbmV0X3BrdGdlbiwgbGVnYWN5X3Rocl9jbWQpIHsKKwlmb3IgKGludCBpID0gMDsg aSA8PSBzaXplb2YobGVnYWN5X3Rocl9jbWQpOyBpKyspIHsKKwkJc3NpemVfdCBsZW47CisKKwkJ bGVuID0gd3JpdGUoc2VsZi0+dGhyX2ZkLCBsZWdhY3lfdGhyX2NtZCwgaSk7CisJCWlmIChpIDwg KHNpemVvZihsZWdhY3lfdGhyX2NtZCkgLSAxKSkgeworCQkJLy8gaW5jb21wbGV0ZSBjb21tYW5k IHN0cmluZworCQkJRVhQRUNUX0VRKGxlbiwgLTEpOworCQkJRVhQRUNUX0VRKGVycm5vLCBFSU5W QUwpOworCQl9IGVsc2UgeworCQkJLy8gY29tcGxldGUgY29tbWFuZCBzdHJpbmcgd2l0aG91dC93 aXRoIHRyYWlsaW5nICdcMCcKKwkJCUVYUEVDVF9FUShsZW4sIGkpOworCQl9CisJfQorfQorCitU RVNUX0YocHJvY19uZXRfcGt0Z2VuLCB3cm9uZ19kZXZfY21kKSB7CisJZm9yIChpbnQgaSA9IDA7 IGkgPD0gc2l6ZW9mKHdyb25nX2Rldl9jbWQpOyBpKyspIHsKKwkJc3NpemVfdCBsZW47CisKKwkJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCB3cm9uZ19kZXZfY21kLCBpKTsKKwkJRVhQRUNUX0VR KGxlbiwgLTEpOworCQlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisJfQorfQorCitURVNUX0Yo cHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX21pbl9wa3Rfc2l6ZSkgeworCXNzaXplX3QgbGVuOwor CisJLy8gd2l0aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZf Y21kX21pbl9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMCkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8wKSk7CisKKwkvLyB3aXRo b3V0IHRyYWlsaW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWlu X3BrdF9zaXplXzAsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8wKSAtIDEpOworCUVYUEVD VF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8wKSAtIDEpOworCisJLy8gd2l0 aCB0cmFpbGluZyAnXDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9w a3Rfc2l6ZV8xLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMSkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSk7CisKKwkvLyB3aXRob3V0IHRyYWls aW5nICdcMCcKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXpl XzEsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSAtIDEpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8xKSAtIDEpOworCisJLy8gd2l0aCB0cmFpbGlu ZyAnXDAnCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8y LCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMikpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSk7CisKKwkvLyB3aXRob3V0IHRyYWlsaW5nICdcMCcK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzIsIHNpemVv ZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSAtIDEpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihk ZXZfY21kX21pbl9wa3Rfc2l6ZV8yKSAtIDEpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX21pbl9wa3Rfc2l6ZV8zLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfMykp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV8zKSk7CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXplXzQsIHNpemVvZihk ZXZfY21kX21pbl9wa3Rfc2l6ZV80KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf bWluX3BrdF9zaXplXzQpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9t aW5fcGt0X3NpemVfNSwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzUpKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfNSkpOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21pbl9wa3Rfc2l6ZV82LCBzaXplb2YoZGV2X2NtZF9taW5f cGt0X3NpemVfNikpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6 ZV82KSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfbWluX3BrdF9zaXpl XzcsIHNpemVvZihkZXZfY21kX21pbl9wa3Rfc2l6ZV83KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6 ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzcpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9m ZCwgZGV2X2NtZF9taW5fcGt0X3NpemVfOCwgc2l6ZW9mKGRldl9jbWRfbWluX3BrdF9zaXplXzgp KTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9taW5fcGt0X3NpemVfOCkpOworfQor CitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX21heF9wa3Rfc2l6ZSkgeworCXNzaXpl X3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX21heF9wa3Rfc2l6 ZV8wLCBzaXplb2YoZGV2X2NtZF9tYXhfcGt0X3NpemVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNp emVvZihkZXZfY21kX21heF9wa3Rfc2l6ZV8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3Rn ZW4sIGRldl9jbWRfcGt0X3NpemUpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF9wa3Rfc2l6ZV8wLCBzaXplb2YoZGV2X2NtZF9wa3Rfc2l6ZV8w KSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcGt0X3NpemVfMCkpOworfQorCitU RVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2ltaXhfd2VpZ2h0cykgeworCXNzaXplX3Qg bGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ltaXhfd2VpZ2h0c18w LCBzaXplb2YoZGV2X2NtZF9pbWl4X3dlaWdodHNfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVv ZihkZXZfY21kX2ltaXhfd2VpZ2h0c18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfaW1peF93ZWlnaHRzXzEsIHNpemVvZihkZXZfY21kX2ltaXhfd2VpZ2h0c18xKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfaW1peF93ZWlnaHRzXzEpKTsKKworCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9pbWl4X3dlaWdodHNfMiwgc2l6ZW9mKGRl dl9jbWRfaW1peF93ZWlnaHRzXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VR KGVycm5vLCBFMkJJRyk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZGVi dWcpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGRlYnVnIG9uCisJbGVuID0gd3JpdGUoc2VsZi0+ ZGV2X2ZkLCBkZXZfY21kX2RlYnVnXzAsIHNpemVvZihkZXZfY21kX2RlYnVnXzApKTsKKwlFWFBF Q1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9kZWJ1Z18wKSk7CisKKwkvLyBkZWJ1ZyBvZmYKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZGVidWdfMSwgc2l6ZW9mKGRldl9jbWRf ZGVidWdfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RlYnVnXzEpKTsKK30K KworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9mcmFncykgeworCXNzaXplX3QgbGVu OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZyYWdzXzAsIHNpemVvZihk ZXZfY21kX2ZyYWdzXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mcmFnc18w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZGVsYXkpIHsKKwlzc2l6 ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9kZWxheV8wLCBz aXplb2YoZGV2X2NtZF9kZWxheV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf ZGVsYXlfMCkpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RlbGF5XzEs IHNpemVvZihkZXZfY21kX2RlbGF5XzEpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9kZWxheV8xKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcmF0ZSkg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3Jh dGVfMCwgc2l6ZW9mKGRldl9jbWRfcmF0ZV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgLTEpOworCUVY UEVDVF9FUShlcnJubywgRUlOVkFMKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF9yYXRlXzEsIHNpemVvZihkZXZfY21kX3JhdGVfMSkpOworCUVYUEVDVF9FUShsZW4sIHNp emVvZihkZXZfY21kX3JhdGVfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZf Y21kX3JhdGVwKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfcmF0ZXBfMCwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBfMCkpOworCUVYUEVDVF9FUShs ZW4sIC0xKTsKKwlFWFBFQ1RfRVEoZXJybm8sIEVJTlZBTCk7CisKKwlsZW4gPSB3cml0ZShzZWxm LT5kZXZfZmQsIGRldl9jbWRfcmF0ZXBfMSwgc2l6ZW9mKGRldl9jbWRfcmF0ZXBfMSkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3JhdGVwXzEpKTsKK30KKworVEVTVF9GKHByb2Nf bmV0X3BrdGdlbiwgZGV2X2NtZF91ZHBfc3JjX21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3VkcF9zcmNfbWluXzAsIHNpemVvZihkZXZf Y21kX3VkcF9zcmNfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBf c3JjX21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdWRwX2Rz dF9taW4pIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF91ZHBfZHN0X21pbl8wLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0X21pbl8wKSk7CisJRVhQ RUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdWRwX2RzdF9taW5fMCkpOworfQorCitURVNUX0Yo cHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3VkcF9zcmNfbWF4KSB7CisJc3NpemVfdCBsZW47CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdWRwX3NyY19tYXhfMCwgc2l6ZW9m KGRldl9jbWRfdWRwX3NyY19tYXhfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X3VkcF9zcmNfbWF4XzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF91 ZHBfZHN0X21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX3VkcF9kc3RfbWF4XzAsIHNpemVvZihkZXZfY21kX3VkcF9kc3RfbWF4XzApKTsK KwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF91ZHBfZHN0X21heF8wKSk7Cit9CisKK1RF U1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfY2xvbmVfc2tiKSB7CisJc3NpemVfdCBsZW47 CisKKwkvLyBjbG9uZV9za2Igb24gKGdpdmVzIEVPUE5PVFNVUFAgb24gbG8gZGV2aWNlKQorCWxl biA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9jbG9uZV9za2JfMCwgc2l6ZW9mKGRldl9j bWRfY2xvbmVfc2tiXzApKTsKKwlFWFBFQ1RfRVEobGVuLCAtMSk7CisJRVhQRUNUX0VRKGVycm5v LCBFT1BOT1RTVVBQKTsKKworCS8vIGNsb25lX3NrYiBvZmYKKwlsZW4gPSB3cml0ZShzZWxmLT5k ZXZfZmQsIGRldl9jbWRfY2xvbmVfc2tiXzEsIHNpemVvZihkZXZfY21kX2Nsb25lX3NrYl8xKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfY2xvbmVfc2tiXzEpKTsKK30KKworVEVT VF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9jb3VudCkgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2NvdW50XzAsIHNpemVvZihkZXZfY21k X2NvdW50XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9jb3VudF8wKSk7Cit9 CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21hY19jb3VudCkgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYWNf Y291bnRfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY19jb3VudF8wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY19jb3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25l dF9wa3RnZW4sIGRldl9jbWRfZHN0X21hY19jb3VudCkgeworCXNzaXplX3QgbGVuOworCisJbGVu ID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYWNfY291bnRfMCwgc2l6ZW9mKGRl dl9jbWRfZHN0X21hY19jb3VudF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRf ZHN0X21hY19jb3VudF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf YnVyc3QpIHsKKwlzc2l6ZV90IGxlbjsKKworCS8vIGJ1cnN0IG9mZgorCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF9idXJzdF8wLCBzaXplb2YoZGV2X2NtZF9idXJzdF8wKSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfYnVyc3RfMCkpOworfQorCitURVNUX0YocHJv Y19uZXRfcGt0Z2VuLCBkZXZfY21kX25vZGUpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdy aXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9ub2RlXzAsIHNpemVvZihkZXZfY21kX25vZGVfMCkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX25vZGVfMCkpOworfQorCitURVNUX0Yo cHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3htaXRfbW9kZSkgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8wLCBzaXplb2YoZGV2 X2NtZF94bWl0X21vZGVfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRf bW9kZV8wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfeG1pdF9tb2Rl XzEsIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfeG1pdF9tb2RlXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2 X2NtZF94bWl0X21vZGVfMiwgc2l6ZW9mKGRldl9jbWRfeG1pdF9tb2RlXzIpKTsKKwlFWFBFQ1Rf RVEobGVuLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVfMikpOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3htaXRfbW9kZV8zLCBzaXplb2YoZGV2X2NtZF94bWl0X21vZGVf MykpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3htaXRfbW9kZV8zKSk7Cit9CisK K1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZmxhZykgeworCXNzaXplX3QgbGVuOwor CisJLy8gZmxhZyBVRFBDU1VNIG9uCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21k X2ZsYWdfMCwgc2l6ZW9mKGRldl9jbWRfZmxhZ18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9m KGRldl9jbWRfZmxhZ18wKSk7CisKKwkvLyBmbGFnIFVEUENTVU0gb2ZmCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2ZsYWdfMSwgc2l6ZW9mKGRldl9jbWRfZmxhZ18xKSk7CisJ RVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxhZ18xKSk7CisKKwkvLyBmbGFnIGludmFs aWQKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxhZ18yLCBzaXplb2YoZGV2 X2NtZF9mbGFnXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9mbGFnXzIpKTsK K30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3RfbWluKSB7CisJc3NpemVf dCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0X21pbl8wLCBz aXplb2YoZGV2X2NtZF9kc3RfbWluXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9kc3RfbWluXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3Qp IHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9k c3RfMCwgc2l6ZW9mKGRldl9jbWRfZHN0XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2 X2NtZF9kc3RfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2RzdF9t YXgpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2Nt ZF9kc3RfbWF4XzAsIHNpemVvZihkZXZfY21kX2RzdF9tYXhfMCkpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX2RzdF9tYXhfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2Vu LCBkZXZfY21kX2RzdDYpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9kc3Q2XzAsIHNpemVvZihkZXZfY21kX2RzdDZfMCkpOworCUVYUEVDVF9F UShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfMCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0 Z2VuLCBkZXZfY21kX2RzdDZfbWluKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShz ZWxmLT5kZXZfZmQsIGRldl9jbWRfZHN0Nl9taW5fMCwgc2l6ZW9mKGRldl9jbWRfZHN0Nl9taW5f MCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX2RzdDZfbWluXzApKTsKK30KKwor VEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9kc3Q2X21heCkgeworCXNzaXplX3QgbGVu OworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdDZfbWF4XzAsIHNpemVv ZihkZXZfY21kX2RzdDZfbWF4XzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF9k c3Q2X21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjNikg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3Ny YzZfMCwgc2l6ZW9mKGRldl9jbWRfc3JjNl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfc3JjNl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3Jj X21pbikgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZf Y21kX3NyY19taW5fMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21pbl8wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfc3JjX21pbl8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3Rn ZW4sIGRldl9jbWRfc3JjX21heCkgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2Vs Zi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYXhfMCwgc2l6ZW9mKGRldl9jbWRfc3JjX21heF8wKSk7 CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfc3JjX21heF8wKSk7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZHN0X21hYykgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2RzdF9tYWNfMCwgc2l6ZW9mKGRldl9j bWRfZHN0X21hY18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZHN0X21hY18w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc3JjX21hYykgeworCXNz aXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3NyY19tYWNf MCwgc2l6ZW9mKGRldl9jbWRfc3JjX21hY18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfc3JjX21hY18wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRf Y2xlYXJfY291bnRlcnMpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9jbGVhcl9jb3VudGVyc18wLCBzaXplb2YoZGV2X2NtZF9jbGVhcl9jb3Vu dGVyc18wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfY2xlYXJfY291bnRlcnNf MCkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX2Zsb3dzKSB7CisJc3Np emVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfZmxvd3NfMCwg c2l6ZW9mKGRldl9jbWRfZmxvd3NfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X2Zsb3dzXzApKTsKK30KKworVEVTVF9GKHByb2NfbmV0X3BrdGdlbiwgZGV2X2NtZF9zcGkpIHsK Kwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF9zcGlf MCwgc2l6ZW9mKGRldl9jbWRfc3BpXzApKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2Nt ZF9zcGlfMCkpIFRIX0xPRygiQ09ORklHX1hGUk0gbm90IGVuYWJsZWQ/Iik7Cit9CisKK1RFU1Rf Rihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfZmxvd2xlbikgeworCXNzaXplX3QgbGVuOworCisJ bGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX2Zsb3dsZW5fMCwgc2l6ZW9mKGRldl9j bWRfZmxvd2xlbl8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfZmxvd2xlbl8w KSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcXVldWVfbWFwX21pbikg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3F1 ZXVlX21hcF9taW5fMCwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21pbl8wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfcXVldWVfbWFwX21pbl8wKSk7Cit9CisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfcXVldWVfbWFwX21heCkgeworCXNzaXplX3QgbGVuOwor CisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3F1ZXVlX21hcF9tYXhfMCwgc2l6 ZW9mKGRldl9jbWRfcXVldWVfbWFwX21heF8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRl dl9jbWRfcXVldWVfbWFwX21heF8wKSk7Cit9CisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRl dl9jbWRfbXBscykgeworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2Zk LCBkZXZfY21kX21wbHNfMCwgc2l6ZW9mKGRldl9jbWRfbXBsc18wKSk7CisJRVhQRUNUX0VRKGxl biwgc2l6ZW9mKGRldl9jbWRfbXBsc18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQs IGRldl9jbWRfbXBsc18xLCBzaXplb2YoZGV2X2NtZF9tcGxzXzEpKTsKKwlFWFBFQ1RfRVEobGVu LCBzaXplb2YoZGV2X2NtZF9tcGxzXzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwg ZGV2X2NtZF9tcGxzXzIsIHNpemVvZihkZXZfY21kX21wbHNfMikpOworCUVYUEVDVF9FUShsZW4s IHNpemVvZihkZXZfY21kX21wbHNfMikpOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBk ZXZfY21kX21wbHNfMywgc2l6ZW9mKGRldl9jbWRfbXBsc18zKSk7CisJRVhQRUNUX0VRKGxlbiwg LTEpOworCUVYUEVDVF9FUShlcnJubywgRTJCSUcpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0 Z2VuLCBkZXZfY21kX3ZsYW5faWQpIHsKKwlzc2l6ZV90IGxlbjsKKworCWxlbiA9IHdyaXRlKHNl bGYtPmRldl9mZCwgZGV2X2NtZF92bGFuX2lkXzAsIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMCkp OworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5faWRfMCkpOworCisJbGVuID0g d3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3ZsYW5fcF8wLCBzaXplb2YoZGV2X2NtZF92bGFu X3BfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5fcF8wKSk7CisKKwls ZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdmxhbl9jZmlfMCwgc2l6ZW9mKGRldl9j bWRfdmxhbl9jZmlfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3ZsYW5fY2Zp XzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF92bGFuX2lkXzEsIHNp emVvZihkZXZfY21kX3ZsYW5faWRfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X3ZsYW5faWRfMSkpOworfQorCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3N2bGFu X2lkKSB7CisJc3NpemVfdCBsZW47CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9j bWRfc3ZsYW5faWRfMCwgc2l6ZW9mKGRldl9jbWRfc3ZsYW5faWRfMCkpOworCUVYUEVDVF9FUShs ZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2lkXzApKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRl dl9mZCwgZGV2X2NtZF9zdmxhbl9wXzAsIHNpemVvZihkZXZfY21kX3N2bGFuX3BfMCkpOworCUVY UEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX3BfMCkpOworCisJbGVuID0gd3JpdGUo c2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3N2bGFuX2NmaV8wLCBzaXplb2YoZGV2X2NtZF9zdmxhbl9j ZmlfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFuX2NmaV8wKSk7CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc3ZsYW5faWRfMSwgc2l6ZW9mKGRl dl9jbWRfc3ZsYW5faWRfMSkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21kX3N2bGFu X2lkXzEpKTsKK30KKworCitURVNUX0YocHJvY19uZXRfcGt0Z2VuLCBkZXZfY21kX3Rvcykgewor CXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3Rvc18w LCBzaXplb2YoZGV2X2NtZF90b3NfMCkpOworCUVYUEVDVF9FUShsZW4sIHNpemVvZihkZXZfY21k X3Rvc18wKSk7CisKKwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfdG9zXzEsIHNp emVvZihkZXZfY21kX3Rvc18xKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdG9z XzEpKTsKKworCWxlbiA9IHdyaXRlKHNlbGYtPmRldl9mZCwgZGV2X2NtZF90b3NfMiwgc2l6ZW9m KGRldl9jbWRfdG9zXzIpKTsKKwlFWFBFQ1RfRVEobGVuLCBzaXplb2YoZGV2X2NtZF90b3NfMikp OworfQorCisKK1RFU1RfRihwcm9jX25ldF9wa3RnZW4sIGRldl9jbWRfdHJhZmZpY19jbGFzcykg eworCXNzaXplX3QgbGVuOworCisJbGVuID0gd3JpdGUoc2VsZi0+ZGV2X2ZkLCBkZXZfY21kX3Ry YWZmaWNfY2xhc3NfMCwgc2l6ZW9mKGRldl9jbWRfdHJhZmZpY19jbGFzc18wKSk7CisJRVhQRUNU X0VRKGxlbiwgc2l6ZW9mKGRldl9jbWRfdHJhZmZpY19jbGFzc18wKSk7Cit9CisKK1RFU1RfRihw cm9jX25ldF9wa3RnZW4sIGRldl9jbWRfc2tiX3ByaW9yaXR5KSB7CisJc3NpemVfdCBsZW47CisK KwlsZW4gPSB3cml0ZShzZWxmLT5kZXZfZmQsIGRldl9jbWRfc2tiX3ByaW9yaXR5XzAsIHNpemVv ZihkZXZfY21kX3NrYl9wcmlvcml0eV8wKSk7CisJRVhQRUNUX0VRKGxlbiwgc2l6ZW9mKGRldl9j bWRfc2tiX3ByaW9yaXR5XzApKTsKK30KKworVEVTVF9IQVJORVNTX01BSU4KLS0gCjIuNDguMQoK