From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by dpdk.space (Postfix) with ESMTP id 94C91A00E6
	for <public@inbox.dpdk.org>; Fri, 19 Apr 2019 00:43:02 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 0C8541BC74;
	Fri, 19 Apr 2019 00:43:01 +0200 (CEST)
Received: from EUR03-VE1-obe.outbound.protection.outlook.com
 (mail-eopbgr50042.outbound.protection.outlook.com [40.107.5.42])
 by dpdk.org (Postfix) with ESMTP id 766171BC71
 for <dev@dpdk.org>; Fri, 19 Apr 2019 00:42:59 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=dLWe9uW8P/Etw6l0hzDl//GUlvA4jMSsKk6YDvJGjdo=;
 b=Vil4wD54dRZ9EUiLRYK88j+TedaGkLSiry1L4KPnskQ5ByrXax5j4HZmGrWIdTYgc1jktl6UKoN9Ep4YXDZy51U+TRkVv7Ava/3+tG7+cND1HbOqQIvthK0TIgwwMySZHkniOcIsQaP7S6pfGlO63LYZfaUaKJbqux3KURL/BKs=
Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com (52.134.72.27) by
 DB3PR0502MB4010.eurprd05.prod.outlook.com (52.134.66.28) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.1813.12; Thu, 18 Apr 2019 22:42:57 +0000
Received: from DB3PR0502MB3980.eurprd05.prod.outlook.com
 ([fe80::6072:43be:7c2d:103a]) by DB3PR0502MB3980.eurprd05.prod.outlook.com
 ([fe80::6072:43be:7c2d:103a%3]) with mapi id 15.20.1813.013; Thu, 18 Apr 2019
 22:42:57 +0000
From: Yongseok Koh <yskoh@mellanox.com>
To: "Cel, TomaszX" <tomaszx.cel@intel.com>, Thomas Monjalon
 <thomas@monjalon.net>, "Jozwiak, TomaszX" <tomaszx.jozwiak@intel.com>
CC: "dev@dpdk.org" <dev@dpdk.org>, "Trahe, Fiona" <fiona.trahe@intel.com>
Thread-Topic: [dpdk-dev] [PATCH v2 1/1] test/compress: add max mbuf size test
 case
Thread-Index: AQHU6U7T9s6iIIzR3UWqkNjU5Sd5UaZCnYMA
Date: Thu, 18 Apr 2019 22:42:57 +0000
Message-ID: <825F643C-86B8-4A5D-934A-E074DE1458C1@mellanox.com>
References: <1550223873-17119-3-git-send-email-tomaszx.jozwiak@intel.com>
 <1554207413-19049-1-git-send-email-tomaszx.cel@intel.com>
 <1554207413-19049-2-git-send-email-tomaszx.cel@intel.com>
 <F41EA7C757B0A74DB2ACA0C2C77F19940130591F@HASMSX111.ger.corp.intel.com>
In-Reply-To: <F41EA7C757B0A74DB2ACA0C2C77F19940130591F@HASMSX111.ger.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=yskoh@mellanox.com; 
x-originating-ip: [209.116.155.178]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 12ac2bd6-fca1-41d4-5c79-08d6c44f33dc
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0;
 RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(4618075)(2017052603328)(7193020);
 SRVR:DB3PR0502MB4010; 
x-ms-traffictypediagnostic: DB3PR0502MB4010:
x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr
x-microsoft-antispam-prvs: <DB3PR0502MB4010EF27D53CEF4990DA78AAC3260@DB3PR0502MB4010.eurprd05.prod.outlook.com>
x-forefront-prvs: 0011612A55
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(39860400002)(136003)(376002)(366004)(396003)(346002)(189003)(199004)(13464003)(30864003)(53546011)(33656002)(82746002)(256004)(76176011)(71190400001)(229853002)(14444005)(476003)(6486002)(478600001)(71200400001)(97736004)(11346002)(83716004)(2616005)(81166006)(53946003)(53936002)(6512007)(66476007)(91956017)(66556008)(76116006)(6506007)(5660300002)(99286004)(6436002)(102836004)(81156014)(186003)(93886005)(14454004)(8936002)(26005)(86362001)(36756003)(7736002)(6246003)(66066001)(2906002)(6116002)(3846002)(4326008)(110136005)(446003)(54906003)(316002)(305945005)(68736007)(486006)(66446008)(64756008)(66946007)(25786009)(73956011);
 DIR:OUT; SFP:1101; SCL:1; SRVR:DB3PR0502MB4010;
 H:DB3PR0502MB3980.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en;
 PTR:InfoNoRecords; MX:1; A:1; 
received-spf: None (protection.outlook.com: mellanox.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 1/NxxGH59cSwNznIW6ANeUjAz7YCrwNkUshmjCqv6XwcTVJXjSkaDHInl2AuJr3g5AmhmX0DKxZYn7Dys98Rc78HUqmGYine9pC3G1+LQa0MNSSbAnlQDGDMDqqatwUNv3Xnd+lRIbzTH2py5LTr5G9D7KJyxg9WQZgjw5NeIqo2FizWRe+903gWM5VhLzvEXQzGeeALTc94HY8ydHzovDTmDSTBT8qzHtqHVboB27JUD4pqJAtWD9dcdAYdgPODtHt0GjVmTIK8YsqSg1zXMcnPnY4k8G5wNKOf70Q6spJ3NPECYIgsPMbHl1j702T6mqfgmZVfnXh6UTvkGIrbT2+2PbSqDWfHyVveERa+SX1bEM6t1GgRs8yvAM4/+Pahxt8OReYq/xpQY546Kcmh245zVvhUyq1pZvtd6f8Fpm8=
Content-Type: text/plain; charset="UTF-8"
Content-ID: <679A4C5C8DB2C94799351F1A84D385E7@eurprd05.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: Mellanox.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 12ac2bd6-fca1-41d4-5c79-08d6c44f33dc
X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Apr 2019 22:42:57.0213 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR0502MB4010
Subject: Re: [dpdk-dev] [PATCH v2 1/1] test/compress: add max mbuf size
	test	case
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>
Message-ID: <20190418224257.g33S-w-wvdPwA2sLX-b9mXiiqHihXwZwCWorml9GJj8@z>

SGksDQoNCkknbSBzZWVpbmcgY29tcGlsZSBlcnJvci4NCklzbid0IGl0IGR1ZSB0byB0aGlzIHBh
dGNoPw0KDQokIGdjYyAtLXZlcnNpb24NCmdjYyAoR0NDKSA0LjguNSAyMDE1MDYyMyAoUmVkIEhh
dCA0LjguNS0yOCkNCg0KDQpbMTQ4NC8xNTIzXSBDb21waWxpbmcgQyBvYmplY3QgJ2FwcC90ZXN0
L2FwcEB0ZXN0QEBkcGRrLXRlc3RAZXhlL3Rlc3RfY29tcHJlc3NkZXYuYy5vJy4NCkZBSUxFRDog
YXBwL3Rlc3QvYXBwQHRlc3RAQGRwZGstdGVzdEBleGUvdGVzdF9jb21wcmVzc2Rldi5jLm8NCmNj
IC1JYXBwL3Rlc3QvYXBwQHRlc3RAQGRwZGstdGVzdEBleGUgLUlhcHAvdGVzdCAtSS4uL2FwcC90
ZXN0IC1JbGliL2xpYnJ0ZV9hY2wgLUkuLi9saWIvbGlicnRlX2FjbCAtSS4gLUkuLi8gLUljb25m
aWcgLUkuLi9jb25maWcgLUlsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZSAtSS4uL2xpYi9s
aWJydGVfZWFsL2NvbW1vbi9pbmNsdWRlIC1JLi4vbGliL2xpYnJ0ZV9lYWwvbGludXgvZWFsL2lu
Y2x1ZGUgLUlsaWIvbGlicnRlX2VhbC9jb21tb24gLUkuLi9saWIvbGlicnRlX2VhbC9jb21tb24g
LUlsaWIvbGlicnRlX2VhbC9jb21tb24vaW5jbHVkZS9hcmNoL3g4NiAtSS4uL2xpYi9saWJydGVf
ZWFsL2NvbW1vbi9pbmNsdWRlL2FyY2gveDg2IC1JbGliL2xpYnJ0ZV9lYWwgLUkuLi9saWIvbGli
cnRlX2VhbCAtSWxpYi9saWJydGVfa3ZhcmdzIC1JLi4vbGliL2xpYnJ0ZV9rdmFyZ3MgLUlsaWIv
bGlicnRlX2JpdHJhdGVzdGF0cyAtSS4uL2xpYi9saWJydGVfYml0cmF0ZXN0YXRzIC1JbGliL2xp
YnJ0ZV9ldGhkZXYgLUkuLi9saWIvbGlicnRlX2V0aGRldiAtSWxpYi9saWJydGVfbmV0IC1JLi4v
bGliL2xpYnJ0ZV9uZXQgLUlsaWIvbGlicnRlX21idWYtSS4uL2xpYi9saWJydGVfbWJ1ZiAtSWxp
Yi9saWJydGVfbWVtcG9vbCAtSS4uL2xpYi9saWJydGVfbWVtcG9vbCAtSWxpYi9saWJydGVfcmlu
ZyAtSS4uL2xpYi9saWJydGVfcmluZyAtSWxpYi9saWJydGVfY21kbGluZSAtSS4uL2xpYi9saWJy
dGVfY21kbGluZSAtSWxpYi9saWJydGVfbWV0ZXIgLUkuLi9saWIvbGlicnRlX21ldGVyIC1JbGli
L2xpYnJ0ZV9tZXRyaWNzIC1JLi4vbGliL2xpYnJ0ZV9tZXRyaWNzIC1JbGliL2xpYnJ0ZV9icGYg
LUkuLi9saWIvbGlicnRlX2JwZiAtSWxpYi9saWJydGVfY2ZnZmlsZSAtSS4uL2xpYi9saWJydGVf
Y2ZnZmlsZSAtSWxpYi9saWJydGVfY3J5cHRvZGV2IC1JLi4vbGliL2xpYnJ0ZV9jcnlwdG9kZXYg
LUlsaWIvbGlicnRlX2Rpc3RyaWJ1dG9yIC1JLi4vbGliL2xpYnJ0ZV9kaXN0cmlidXRvciAtSWxp
Yi9saWJydGVfZWZkIC1JLi4vbGliL2xpYnJ0ZV9lZmQgLUlsaWIvbGlicnRlX2hhc2ggLUkuLi9s
aWIvbGlicnRlX2hhc2ggLUlsaWIvbGlicnRlX2V2ZW50ZGV2IC1JLi4vbGliL2xpYnJ0ZV9ldmVu
dGRldiAtSWxpYi9saWJydGVfdGltZXIgLUkuLi9saWIvbGlicnRlX3RpbWVyIC1JbGliL2xpYnJ0
ZV9mbG93X2NsYXNzaWZ5IC1JLi4vbGliL2xpYnJ0ZV9mbG93X2NsYXNzaWZ5IC1JbGliL2xpYnJ0
ZV90YWJsZSAtSS4uL2xpYi9saWJydGVfdGFibGUgLUlsaWIvbGlicnRlX3BvcnQgLUkuLi9saWIv
bGlicnRlX3BvcnQgLUlsaWIvbGlicnRlX3NjaGVkIC1JLi4vbGliL2xpYnJ0ZV9zY2hlZCAtSWxp
Yi9saWJydGVfaXBfZnJhZyAtSS4uL2xpYi9saWJydGVfaXBfZnJhZyAtSWxpYi9saWJydGVfa25p
IC1JLi4vbGliL2xpYnJ0ZV9rbmkgLUlsaWIvbGlicnRlX3BjaSAtSS4uL2xpYi9saWJydGVfcGNp
IC1JbGliL2xpYnJ0ZV9scG0gLUkuLi9saWIvbGlicnRlX2xwbSAtSWxpYi9saWJydGVfaXBzZWMg
LUkuLi9saWIvbGlicnRlX2lwc2VjIC1JbGliL2xpYnJ0ZV9zZWN1cml0eSAtSS4uL2xpYi9saWJy
dGVfc2VjdXJpdHkgLUlsaWIvbGlicnRlX2xhdGVuY3lzdGF0cyAtSS4uL2xpYi9saWJydGVfbGF0
ZW5jeXN0YXRzIC1JbGliL2xpYnJ0ZV9tZW1iZXIgLUkuLi9saWIvbGlicnRlX21lbWJlciAtSWxp
Yi9saWJydGVfcGlwZWxpbmUgLUkuLi9saWIvbGlicnRlX3BpcGVsaW5lIC1JbGliL2xpYnJ0ZV9y
ZW9yZGVyIC1JLi4vbGliL2xpYnJ0ZV9yZW9yZGVyIC1JbGliL2xpYnJ0ZV9zdGFjayAtSS4uL2xp
Yi9saWJydGVfc3RhY2sgLUlsaWIvbGlicnRlX3BkdW1wIC1JLi4vbGliL2xpYnJ0ZV9wZHVtcCAt
SWRyaXZlcnMvbmV0L2k0MGUgLUkuLi9kcml2ZXJzL25ldC9pNDBlIC1JZHJpdmVycy9uZXQvaTQw
ZS9iYXNlIC1JLi4vZHJpdmVycy9uZXQvaTQwZS9iYXNlIC1JZHJpdmVycy9idXMvcGNpIC1JLi4v
ZHJpdmVycy9idXMvcGNpIC1JLi4vZHJpdmVycy9idXMvcGNpL2xpbnV4IC1JZHJpdmVycy9idXMv
dmRldiAtSS4uL2RyaXZlcnMvYnVzL3ZkZXYgLUlkcml2ZXJzL25ldC9peGdiZSAtSS4uL2RyaXZl
cnMvbmV0L2l4Z2JlIC1JZHJpdmVycy9uZXQvaXhnYmUvYmFzZSAtSS4uL2RyaXZlcnMvbmV0L2l4
Z2JlL2Jhc2UtSWRyaXZlcnMvbmV0L2JvbmRpbmcgLUkuLi9kcml2ZXJzL25ldC9ib25kaW5nIC1J
ZHJpdmVycy9uZXQvcmluZyAtSS4uL2RyaXZlcnMvbmV0L3JpbmcgLUlsaWIvbGlicnRlX3Bvd2Vy
IC1JLi4vbGliL2xpYnJ0ZV9wb3dlciAtSWxpYi9saWJydGVfY29tcHJlc3NkZXYgLUkuLi9saWIv
bGlicnRlX2NvbXByZXNzZGV2IC1waXBlIC1EX0ZJTEVfT0ZGU0VUX0JJVFM9NjQgLVdhbGwgLVdp
bnZhbGlkLXBjaCAtTzMgLWluY2x1ZGUgcnRlX2NvbmZpZy5oIC1Xc2lnbi1jb21wYXJlIC1XY2Fz
dC1xdWFsIC1tYXJjaD1uYXRpdmUgLURfR05VX1NPVVJDRSAtREFMTE9XX0VYUEVSSU1FTlRBTF9B
UEkgIC1NRCAtTVEgJ2FwcC90ZXN0L2FwcEB0ZXN0QEBkcGRrLXRlc3RAZXhlL3Rlc3RfY29tcHJl
c3NkZXYuYy5vJyAtTUYgJ2FwcC90ZXN0L2FwcEB0ZXN0QEBkcGRrLXRlc3RAZXhlL3Rlc3RfY29t
cHJlc3NkZXYuYy5vLmQnIC1vICdhcHAvdGVzdC9hcHBAdGVzdEBAZHBkay10ZXN0QGV4ZS90ZXN0
X2NvbXByZXNzZGV2LmMubycgLWMgLi4vYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rldi5jDQouLi9h
cHAvdGVzdC90ZXN0X2NvbXByZXNzZGV2LmM6IEluIGZ1bmN0aW9uIOKAmHRlc3RfY29tcHJlc3Nk
ZXZfZGVmbGF0ZV9zdGF0ZWxlc3NfZHluYW1pY19iaWfigJk6DQouLi9hcHAvdGVzdC90ZXN0X2Nv
bXByZXNzZGV2LmM6MTk5MjoxNjogZXJyb3I6IGNvbmZsaWN0aW5nIHR5cGVzIGZvciDigJhp4oCZ
DQogIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBCSUdfREFUQV9URVNUX1NJWkUgLSAxOyArK2kp
DQogICAgICAgICAgICAgICAgXg0KLi4vYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rldi5jOjE5NDk6
MTE6IG5vdGU6IHByZXZpb3VzIGRlZmluaXRpb24gb2Yg4oCYaeKAmSB3YXMgaGVyZQ0KICB1aW50
MTZfdCBpID0gMDsNCiAgICAgICAgICAgXg0KLi4vYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rldi5j
OjE5OTI6MjogZXJyb3I6IOKAmGZvcuKAmSBsb29wIGluaXRpYWwgZGVjbGFyYXRpb25zIGFyZSBv
bmx5IGFsbG93ZWQgaW4gQzk5IG1vZGUNCiAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IEJJR19E
QVRBX1RFU1RfU0laRSAtIDE7ICsraSkNCiAgXg0KLi4vYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rl
di5jOjE5OTI6Mjogbm90ZTogdXNlIG9wdGlvbiAtc3RkPWM5OSBvciAtc3RkPWdudTk5IHRvIGNv
bXBpbGUgeW91ciBjb2RlDQouLi9hcHAvdGVzdC90ZXN0X2NvbXByZXNzZGV2LmM6MTk5NjoxOTog
d2FybmluZzogYXNzaWdubWVudCBmcm9tIGluY29tcGF0aWJsZSBwb2ludGVyIHR5cGUgW2VuYWJs
ZWQgYnkgZGVmYXVsdF0NCiAgaW50X2RhdGEuYnVmX2lkeCA9ICZpOw0KICAgICAgICAgICAgICAg
ICAgIF4NClsxNTAxLzE1MjNdIEdlbmVyYXRpbmcgaWdiX3VpbyB3aXRoIGEgY3VzdG9tIGNvbW1h
bmQuDQptYWtlOiBFbnRlcmluZyBkaXJlY3RvcnkgYC91c3Ivc3JjL2tlcm5lbHMvMy4xMC4wLTg2
Mi5lbDcueDg2XzY0Jw0KICBDQyBbTV0gIC9hdXRvL210aXN3Z3dvcmsveXNrb2gvZ2l0L21lbGxh
bm94L2RwZGsub3JnLTIvYnVpbGQva2VybmVsL2xpbnV4L2lnYl91aW8vaWdiX3Vpby5vDQogIEJ1
aWxkaW5nIG1vZHVsZXMsIHN0YWdlIDIuDQogIE1PRFBPU1QgMSBtb2R1bGVzDQptYWtlWzFdOiBX
YXJuaW5nOiBGaWxlIGAvYXV0by9tdGlzd2d3b3JrL3lza29oL2dpdC9tZWxsYW5veC9kcGRrLm9y
Zy0yL2J1aWxkL2tlcm5lbC9saW51eC9pZ2JfdWlvL2lnYl91aW8ubW9kLmMnIGhhcyBtb2RpZmlj
YXRpb24gdGltZSAwLjAwOTYgcyBpbiB0aGUgZnV0dXJlDQogIENDICAgICAgL2F1dG8vbXRpc3dn
d29yay95c2tvaC9naXQvbWVsbGFub3gvZHBkay5vcmctMi9idWlsZC9rZXJuZWwvbGludXgvaWdi
X3Vpby9pZ2JfdWlvLm1vZC5vDQogIExEIFtNXSAgL2F1dG8vbXRpc3dnd29yay95c2tvaC9naXQv
bWVsbGFub3gvZHBkay5vcmctMi9idWlsZC9rZXJuZWwvbGludXgvaWdiX3Vpby9pZ2JfdWlvLmtv
DQptYWtlWzFdOiB3YXJuaW5nOiAgQ2xvY2sgc2tldyBkZXRlY3RlZC4gIFlvdXIgYnVpbGQgbWF5
IGJlIGluY29tcGxldGUuDQptYWtlOiBMZWF2aW5nIGRpcmVjdG9yeSBgL3Vzci9zcmMva2VybmVs
cy8zLjEwLjAtODYyLmVsNy54ODZfNjQnDQoNCg0KVGhhbmtzLA0KWW9uZ3Nlb2sNCg0KPiBPbiBB
cHIgMiwgMjAxOSwgYXQgNToyMiBBTSwgQ2VsLCBUb21hc3pYIDx0b21hc3p4LmNlbEBpbnRlbC5j
b20+IHdyb3RlOg0KPiANCj4gSGkgVG9tYXN6LA0KPiANCj4+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+PiBGcm9tOiBDZWwsIFRvbWFzelgNCj4+IFNlbnQ6IFR1ZXNkYXksIEFwcmlsIDIs
IDIwMTkgMToxNyBQTQ0KPj4gVG86IGRldkBkcGRrLm9yZzsgVHJhaGUsIEZpb25hIDxmaW9uYS50
cmFoZUBpbnRlbC5jb20+OyBKb3p3aWFrLCBUb21hc3pYDQo+PiA8dG9tYXN6eC5qb3p3aWFrQGlu
dGVsLmNvbT47IENlbCwgVG9tYXN6WCA8dG9tYXN6eC5jZWxAaW50ZWwuY29tPg0KPj4gU3ViamVj
dDogW1BBVENIIHYyIDEvMV0gdGVzdC9jb21wcmVzczogYWRkIG1heCBtYnVmIHNpemUgdGVzdCBj
YXNlDQo+PiANCj4+IEZyb206IFRvbWFzeiBKb3p3aWFrIDx0b21hc3p4LmpvendpYWtAaW50ZWwu
Y29tPg0KPj4gDQo+PiBUaGlzIHBhdGNoIGFkZHMgbmV3IHRlc3QgY2FzZSBpbiB3aGljaCBtYXgu
IHNpemUgb2YgY2hhaW4gbWJ1ZnMgaGFzIGJlZW4NCj4+IHVzZWQgdG8gY29tcHJlc3MgcmFuZG9t
IGRhdGEgZHluYW1pY2FsbHkuDQo+PiANCj4+IFNpZ25lZC1vZmYtYnk6IFRvbWFzeiBKb3p3aWFr
IDx0b21hc3p4LmpvendpYWtAaW50ZWwuY29tPg0KPj4gLS0tDQo+PiBhcHAvdGVzdC90ZXN0X2Nv
bXByZXNzZGV2LmMgfCAxNTgNCj4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrLS0tLS0tDQo+PiAxIGZpbGUgY2hhbmdlZCwgMTM2IGluc2VydGlvbnMoKyksIDIyIGRlbGV0
aW9ucygtKQ0KPj4gDQo+PiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rldi5j
IGIvYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rldi5jDQo+PiBpbmRleCAxM2NmMjZjLi5mNTliM2Qy
IDEwMDY0NA0KPj4gLS0tIGEvYXBwL3Rlc3QvdGVzdF9jb21wcmVzc2Rldi5jDQo+PiArKysgYi9h
cHAvdGVzdC90ZXN0X2NvbXByZXNzZGV2LmMNCj4+IEBAIC0xLDEwICsxLDEwIEBADQo+PiAvKiBT
UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTMtQ2xhdXNlDQo+PiAtICogQ29weXJpZ2h0KGMp
IDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4+ICsgKiBDb3B5cmlnaHQoYykgMjAxOCAtIDIwMTkg
SW50ZWwgQ29ycG9yYXRpb24NCj4+ICAqLw0KPj4gI2luY2x1ZGUgPHN0cmluZy5oPg0KPj4gI2lu
Y2x1ZGUgPHpsaWIuaD4NCj4+ICNpbmNsdWRlIDxtYXRoLmg+DQo+PiAtI2luY2x1ZGUgPHVuaXN0
ZC5oPg0KPj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4NCj4+IA0KPj4gI2luY2x1ZGUgPHJ0ZV9jeWNs
ZXMuaD4NCj4+ICNpbmNsdWRlIDxydGVfbWFsbG9jLmg+DQo+PiBAQCAtNDUsNiArNDUsMTEgQEAN
Cj4+IA0KPj4gI2RlZmluZSBPVVRfT0ZfU1BBQ0VfQlVGIDENCj4+IA0KPj4gKyNkZWZpbmUgTUFY
X01CVUZfU0VHTUVOVF9TSVpFIDY1NTM1DQo+PiArI2RlZmluZSBNQVhfREFUQV9NQlVGX1NJWkUg
KE1BWF9NQlVGX1NFR01FTlRfU0laRSAtDQo+PiArUlRFX1BLVE1CVUZfSEVBRFJPT00pICNkZWZp
bmUgTlVNX0JJR19NQlVGUyA0ICNkZWZpbmUNCj4+ICtCSUdfREFUQV9URVNUX1NJWkUgKE1BWF9E
QVRBX01CVUZfU0laRSAqIE5VTV9CSUdfTUJVRlMgLyAyKQ0KPj4gKw0KPj4gY29uc3QgY2hhciAq
DQo+PiBodWZmbWFuX3R5cGVfc3RyaW5nc1tdID0gew0KPj4gCVtSVEVfQ09NUF9IVUZGTUFOX0RF
RkFVTFRdCT0gIlBNRCBkZWZhdWx0IiwNCj4+IEBAIC03Myw2ICs3OCw3IEBAIHN0cnVjdCBwcml2
X29wX2RhdGEgew0KPj4gc3RydWN0IGNvbXBfdGVzdHN1aXRlX3BhcmFtcyB7DQo+PiAJc3RydWN0
IHJ0ZV9tZW1wb29sICpsYXJnZV9tYnVmX3Bvb2w7DQo+PiAJc3RydWN0IHJ0ZV9tZW1wb29sICpz
bWFsbF9tYnVmX3Bvb2w7DQo+PiArCXN0cnVjdCBydGVfbWVtcG9vbCAqYmlnX21idWZfcG9vbDsN
Cj4+IAlzdHJ1Y3QgcnRlX21lbXBvb2wgKm9wX3Bvb2w7DQo+PiAJc3RydWN0IHJ0ZV9jb21wX3hm
b3JtICpkZWZfY29tcF94Zm9ybTsNCj4+IAlzdHJ1Y3QgcnRlX2NvbXBfeGZvcm0gKmRlZl9kZWNv
bXBfeGZvcm07IEBAIC05Miw2ICs5OCw3IEBADQo+PiBzdHJ1Y3QgdGVzdF9kYXRhX3BhcmFtcyB7
DQo+PiAJZW51bSB2YXJpZWRfYnVmZiBidWZmX3R5cGU7DQo+PiAJZW51bSB6bGliX2RpcmVjdGlv
biB6bGliX2RpcjsNCj4+IAl1bnNpZ25lZCBpbnQgb3V0X29mX3NwYWNlOw0KPj4gKwl1bnNpZ25l
ZCBpbnQgYmlnX2RhdGE7DQo+PiB9Ow0KPj4gDQo+PiBzdGF0aWMgc3RydWN0IGNvbXBfdGVzdHN1
aXRlX3BhcmFtcyB0ZXN0c3VpdGVfcGFyYW1zID0geyAwIH07IEBAIC0xMDUsMTENCj4+ICsxMTIs
MTQgQEAgdGVzdHN1aXRlX3RlYXJkb3duKHZvaWQpDQo+PiAJCVJURV9MT0coRVJSLCBVU0VSMSwg
IkxhcmdlIG1idWYgcG9vbCBzdGlsbCBoYXMgdW5mcmVlZA0KPj4gYnVmc1xuIik7DQo+PiAJaWYg
KHJ0ZV9tZW1wb29sX2luX3VzZV9jb3VudCh0c19wYXJhbXMtPnNtYWxsX21idWZfcG9vbCkpDQo+
PiAJCVJURV9MT0coRVJSLCBVU0VSMSwgIlNtYWxsIG1idWYgcG9vbCBzdGlsbCBoYXMgdW5mcmVl
ZA0KPj4gYnVmc1xuIik7DQo+PiArCWlmIChydGVfbWVtcG9vbF9pbl91c2VfY291bnQodHNfcGFy
YW1zLT5iaWdfbWJ1Zl9wb29sKSkNCj4+ICsJCVJURV9MT0coRVJSLCBVU0VSMSwgIkJpZyBtYnVm
IHBvb2wgc3RpbGwgaGFzIHVuZnJlZWQNCj4+IGJ1ZnNcbiIpOw0KPj4gCWlmIChydGVfbWVtcG9v
bF9pbl91c2VfY291bnQodHNfcGFyYW1zLT5vcF9wb29sKSkNCj4+IAkJUlRFX0xPRyhFUlIsIFVT
RVIxLCAib3AgcG9vbCBzdGlsbCBoYXMgdW5mcmVlZCBvcHNcbiIpOw0KPj4gDQo+PiAJcnRlX21l
bXBvb2xfZnJlZSh0c19wYXJhbXMtPmxhcmdlX21idWZfcG9vbCk7DQo+PiAJcnRlX21lbXBvb2xf
ZnJlZSh0c19wYXJhbXMtPnNtYWxsX21idWZfcG9vbCk7DQo+PiArCXJ0ZV9tZW1wb29sX2ZyZWUo
dHNfcGFyYW1zLT5iaWdfbWJ1Zl9wb29sKTsNCj4+IAlydGVfbWVtcG9vbF9mcmVlKHRzX3BhcmFt
cy0+b3BfcG9vbCk7DQo+PiAJcnRlX2ZyZWUodHNfcGFyYW1zLT5kZWZfY29tcF94Zm9ybSk7DQo+
PiAJcnRlX2ZyZWUodHNfcGFyYW1zLT5kZWZfZGVjb21wX3hmb3JtKTsNCj4+IEBAIC0xNjIsNiAr
MTcyLDE3IEBAIHRlc3RzdWl0ZV9zZXR1cCh2b2lkKQ0KPj4gCQlnb3RvIGV4aXQ7DQo+PiAJfQ0K
Pj4gDQo+PiArCS8qIENyZWF0ZSBtZW1wb29sIHdpdGggYmlnIGJ1ZmZlcnMgZm9yIFNHTCB0ZXN0
aW5nICovDQo+PiArCXRzX3BhcmFtcy0+YmlnX21idWZfcG9vbCA9DQo+PiBydGVfcGt0bWJ1Zl9w
b29sX2NyZWF0ZSgiYmlnX21idWZfcG9vbCIsDQo+PiArCQkJTlVNX0JJR19NQlVGUyArIDEsDQo+
PiArCQkJQ0FDSEVfU0laRSwgMCwNCj4+ICsJCQlNQVhfTUJVRl9TRUdNRU5UX1NJWkUsDQo+PiAr
CQkJcnRlX3NvY2tldF9pZCgpKTsNCj4+ICsJaWYgKHRzX3BhcmFtcy0+YmlnX21idWZfcG9vbCA9
PSBOVUxMKSB7DQo+PiArCQlSVEVfTE9HKEVSUiwgVVNFUjEsICJCaWcgbWJ1ZiBwb29sIGNvdWxk
IG5vdCBiZQ0KPj4gY3JlYXRlZFxuIik7DQo+PiArCQlnb3RvIGV4aXQ7DQo+PiArCX0NCj4+ICsN
Cj4+IAl0c19wYXJhbXMtPm9wX3Bvb2wgPSBydGVfY29tcF9vcF9wb29sX2NyZWF0ZSgib3BfcG9v
bCIsDQo+PiBOVU1fT1BTLA0KPj4gCQkJCTAsIHNpemVvZihzdHJ1Y3QgcHJpdl9vcF9kYXRhKSwN
Cj4+IAkJCQlydGVfc29ja2V0X2lkKCkpOw0KPj4gQEAgLTU5OCwxMCArNjE5LDExIEBAIHByZXBh
cmVfc2dsX2J1ZnMoY29uc3QgY2hhciAqdGVzdF9idWYsIHN0cnVjdA0KPj4gcnRlX21idWYgKmhl
YWRfYnVmLA0KPj4gCQl1aW50MzJfdCB0b3RhbF9kYXRhX3NpemUsDQo+PiAJCXN0cnVjdCBydGVf
bWVtcG9vbCAqc21hbGxfbWJ1Zl9wb29sLA0KPj4gCQlzdHJ1Y3QgcnRlX21lbXBvb2wgKmxhcmdl
X21idWZfcG9vbCwNCj4+IC0JCXVpbnQ4X3QgbGltaXRfc2Vnc19pbl9zZ2wpDQo+PiArCQl1aW50
OF90IGxpbWl0X3NlZ3NfaW5fc2dsLA0KPj4gKwkJdWludDE2X3Qgc2VnX3NpemUpDQo+PiB7DQo+
PiAJdWludDMyX3QgcmVtYWluaW5nX2RhdGEgPSB0b3RhbF9kYXRhX3NpemU7DQo+PiAtCXVpbnQx
Nl90IG51bV9yZW1haW5pbmdfc2VncyA9IERJVl9DRUlMKHJlbWFpbmluZ19kYXRhLA0KPj4gU01B
TExfU0VHX1NJWkUpOw0KPj4gKwl1aW50MTZfdCBudW1fcmVtYWluaW5nX3NlZ3MgPSBESVZfQ0VJ
TChyZW1haW5pbmdfZGF0YSwNCj4+IHNlZ19zaXplKTsNCj4+IAlzdHJ1Y3QgcnRlX21lbXBvb2wg
KnBvb2w7DQo+PiAJc3RydWN0IHJ0ZV9tYnVmICpuZXh0X3NlZzsNCj4+IAl1aW50MzJfdCBkYXRh
X3NpemU7DQo+PiBAQCAtNjE3LDEwICs2MzksMTAgQEAgcHJlcGFyZV9zZ2xfYnVmcyhjb25zdCBj
aGFyICp0ZXN0X2J1Ziwgc3RydWN0DQo+PiBydGVfbWJ1ZiAqaGVhZF9idWYsDQo+PiAJICogQWxs
b2NhdGUgZGF0YSBpbiB0aGUgZmlyc3Qgc2VnbWVudCAoaGVhZGVyKSBhbmQNCj4+IAkgKiBjb3B5
IGRhdGEgaWYgdGVzdCBidWZmZXIgaXMgcHJvdmlkZWQNCj4+IAkgKi8NCj4+IC0JaWYgKHJlbWFp
bmluZ19kYXRhIDwgU01BTExfU0VHX1NJWkUpDQo+PiArCWlmIChyZW1haW5pbmdfZGF0YSA8IHNl
Z19zaXplKQ0KPj4gCQlkYXRhX3NpemUgPSByZW1haW5pbmdfZGF0YTsNCj4+IAllbHNlDQo+PiAt
CQlkYXRhX3NpemUgPSBTTUFMTF9TRUdfU0laRTsNCj4+ICsJCWRhdGFfc2l6ZSA9IHNlZ19zaXpl
Ow0KPj4gCWJ1Zl9wdHIgPSBydGVfcGt0bWJ1Zl9hcHBlbmQoaGVhZF9idWYsIGRhdGFfc2l6ZSk7
DQo+PiAJaWYgKGJ1Zl9wdHIgPT0gTlVMTCkgew0KPj4gCQlSVEVfTE9HKEVSUiwgVVNFUjEsDQo+
PiBAQCAtNjQ0LDEzICs2NjYsMTMgQEAgcHJlcGFyZV9zZ2xfYnVmcyhjb25zdCBjaGFyICp0ZXN0
X2J1Ziwgc3RydWN0DQo+PiBydGVfbWJ1ZiAqaGVhZF9idWYsDQo+PiANCj4+IAkJaWYgKGkgPT0g
KG51bV9yZW1haW5pbmdfc2VncyAtIDEpKSB7DQo+PiAJCQkvKiBsYXN0IHNlZ21lbnQgKi8NCj4+
IC0JCQlpZiAocmVtYWluaW5nX2RhdGEgPiBTTUFMTF9TRUdfU0laRSkNCj4+ICsJCQlpZiAocmVt
YWluaW5nX2RhdGEgPiBzZWdfc2l6ZSkNCj4+IAkJCQlwb29sID0gbGFyZ2VfbWJ1Zl9wb29sOw0K
Pj4gCQkJZWxzZQ0KPj4gCQkJCXBvb2wgPSBzbWFsbF9tYnVmX3Bvb2w7DQo+PiAJCQlkYXRhX3Np
emUgPSByZW1haW5pbmdfZGF0YTsNCj4+IAkJfSBlbHNlIHsNCj4+IC0JCQlkYXRhX3NpemUgPSBT
TUFMTF9TRUdfU0laRTsNCj4+ICsJCQlkYXRhX3NpemUgPSBzZWdfc2l6ZTsNCj4+IAkJCXBvb2wg
PSBzbWFsbF9tYnVmX3Bvb2w7DQo+PiAJCX0NCj4+IA0KPj4gQEAgLTcwNCw2ICs3MjYsNyBAQCB0
ZXN0X2RlZmxhdGVfY29tcF9kZWNvbXAoY29uc3Qgc3RydWN0DQo+PiBpbnRlcmltX2RhdGFfcGFy
YW1zICppbnRfZGF0YSwNCj4+IAllbnVtIHJ0ZV9jb21wX29wX3R5cGUgc3RhdGUgPSB0ZXN0X2Rh
dGEtPnN0YXRlOw0KPj4gCXVuc2lnbmVkIGludCBidWZmX3R5cGUgPSB0ZXN0X2RhdGEtPmJ1ZmZf
dHlwZTsNCj4+IAl1bnNpZ25lZCBpbnQgb3V0X29mX3NwYWNlID0gdGVzdF9kYXRhLT5vdXRfb2Zf
c3BhY2U7DQo+PiArCXVuc2lnbmVkIGludCBiaWdfZGF0YSA9IHRlc3RfZGF0YS0+YmlnX2RhdGE7
DQo+PiAJZW51bSB6bGliX2RpcmVjdGlvbiB6bGliX2RpciA9IHRlc3RfZGF0YS0+emxpYl9kaXI7
DQo+PiAJaW50IHJldF9zdGF0dXMgPSAtMTsNCj4+IAlpbnQgcmV0Ow0KPj4gQEAgLTczOCw3ICs3
NjEsOSBAQCB0ZXN0X2RlZmxhdGVfY29tcF9kZWNvbXAoY29uc3Qgc3RydWN0DQo+PiBpbnRlcmlt
X2RhdGFfcGFyYW1zICppbnRfZGF0YSwNCj4+IAltZW1zZXQob3BzX3Byb2Nlc3NlZCwgMCwgc2l6
ZW9mKHN0cnVjdCBydGVfY29tcF9vcCAqKSAqDQo+PiBudW1fYnVmcyk7DQo+PiAJbWVtc2V0KHBy
aXZfeGZvcm1zLCAwLCBzaXplb2Yodm9pZCAqKSAqIG51bV9idWZzKTsNCj4+IA0KPj4gLQlpZiAo
YnVmZl90eXBlID09IFNHTF9CT1RIKQ0KPj4gKwlpZiAoYmlnX2RhdGEpDQo+PiArCQlidWZfcG9v
bCA9IHRzX3BhcmFtcy0+YmlnX21idWZfcG9vbDsNCj4+ICsJZWxzZSBpZiAoYnVmZl90eXBlID09
IFNHTF9CT1RIKQ0KPj4gCQlidWZfcG9vbCA9IHRzX3BhcmFtcy0+c21hbGxfbWJ1Zl9wb29sOw0K
Pj4gCWVsc2UNCj4+IAkJYnVmX3Bvb2wgPSB0c19wYXJhbXMtPmxhcmdlX21idWZfcG9vbDsgQEAg
LTc1NywxMA0KPj4gKzc4MiwxMSBAQCB0ZXN0X2RlZmxhdGVfY29tcF9kZWNvbXAoY29uc3Qgc3Ry
dWN0IGludGVyaW1fZGF0YV9wYXJhbXMNCj4+ICppbnRfZGF0YSwNCj4+IAkJZm9yIChpID0gMDsg
aSA8IG51bV9idWZzOyBpKyspIHsNCj4+IAkJCWRhdGFfc2l6ZSA9IHN0cmxlbih0ZXN0X2J1ZnNb
aV0pICsgMTsNCj4+IAkJCWlmIChwcmVwYXJlX3NnbF9idWZzKHRlc3RfYnVmc1tpXSwgdW5jb21w
X2J1ZnNbaV0sDQo+PiAtCQkJCQlkYXRhX3NpemUsDQo+PiAtCQkJCQl0c19wYXJhbXMtPnNtYWxs
X21idWZfcG9vbCwNCj4+IC0JCQkJCXRzX3BhcmFtcy0+bGFyZ2VfbWJ1Zl9wb29sLA0KPj4gLQkJ
CQkJTUFYX1NFR1MpIDwgMCkNCj4+ICsJCQkgICAgZGF0YV9zaXplLA0KPj4gKwkJCSAgICBiaWdf
ZGF0YSA/IGJ1Zl9wb29sIDogdHNfcGFyYW1zLQ0KPj4+IHNtYWxsX21idWZfcG9vbCwNCj4+ICsJ
CQkgICAgYmlnX2RhdGEgPyBidWZfcG9vbCA6IHRzX3BhcmFtcy0NCj4+PiBsYXJnZV9tYnVmX3Bv
b2wsDQo+PiArCQkJICAgIGJpZ19kYXRhID8gMCA6IE1BWF9TRUdTLA0KPj4gKwkJCSAgICBiaWdf
ZGF0YSA/IE1BWF9EQVRBX01CVUZfU0laRSA6DQo+PiBTTUFMTF9TRUdfU0laRSkgPCAwKQ0KPj4g
CQkJCWdvdG8gZXhpdDsNCj4+IAkJfQ0KPj4gCX0gZWxzZSB7DQo+PiBAQCAtNzg5LDEwICs4MTUs
MTIgQEAgdGVzdF9kZWZsYXRlX2NvbXBfZGVjb21wKGNvbnN0IHN0cnVjdA0KPj4gaW50ZXJpbV9k
YXRhX3BhcmFtcyAqaW50X2RhdGEsDQo+PiAJCQkJCUNPTVBSRVNTX0JVRl9TSVpFX1JBVElPKTsN
Cj4+IA0KPj4gCQkJaWYgKHByZXBhcmVfc2dsX2J1ZnMoTlVMTCwgY29tcF9idWZzW2ldLA0KPj4g
LQkJCQkJZGF0YV9zaXplLA0KPj4gLQkJCQkJdHNfcGFyYW1zLT5zbWFsbF9tYnVmX3Bvb2wsDQo+
PiAtCQkJCQl0c19wYXJhbXMtPmxhcmdlX21idWZfcG9vbCwNCj4+IC0JCQkJCU1BWF9TRUdTKSA8
IDApDQo+PiArCQkJICAgICAgZGF0YV9zaXplLA0KPj4gKwkJCSAgICAgIGJpZ19kYXRhID8gYnVm
X3Bvb2wgOiB0c19wYXJhbXMtDQo+Pj4gc21hbGxfbWJ1Zl9wb29sLA0KPj4gKwkJCSAgICAgIGJp
Z19kYXRhID8gYnVmX3Bvb2wgOiB0c19wYXJhbXMtDQo+Pj4gbGFyZ2VfbWJ1Zl9wb29sLA0KPj4g
KwkJCSAgICAgIGJpZ19kYXRhID8gMCA6IE1BWF9TRUdTLA0KPj4gKwkJCSAgICAgIGJpZ19kYXRh
ID8gTUFYX0RBVEFfTUJVRl9TSVpFIDoNCj4+IFNNQUxMX1NFR19TSVpFKQ0KPj4gKwkJCQkJPCAw
KQ0KPj4gCQkJCWdvdG8gZXhpdDsNCj4+IAkJfQ0KPj4gDQo+PiBAQCAtMTAxNywxMCArMTA0NSwx
MiBAQCB0ZXN0X2RlZmxhdGVfY29tcF9kZWNvbXAoY29uc3Qgc3RydWN0DQo+PiBpbnRlcmltX2Rh
dGFfcGFyYW1zICppbnRfZGF0YSwNCj4+IAkJCQlzdHJsZW4odGVzdF9idWZzW3ByaXZfZGF0YS0+
b3JpZ19pZHhdKSArIDE7DQo+PiANCj4+IAkJCWlmIChwcmVwYXJlX3NnbF9idWZzKE5VTEwsIHVu
Y29tcF9idWZzW2ldLA0KPj4gLQkJCQkJZGF0YV9zaXplLA0KPj4gLQkJCQkJdHNfcGFyYW1zLT5z
bWFsbF9tYnVmX3Bvb2wsDQo+PiAtCQkJCQl0c19wYXJhbXMtPmxhcmdlX21idWZfcG9vbCwNCj4+
IC0JCQkJCU1BWF9TRUdTKSA8IDApDQo+PiArCQkJICAgICAgIGRhdGFfc2l6ZSwNCj4+ICsJCQkg
ICAgICAgYmlnX2RhdGEgPyBidWZfcG9vbCA6IHRzX3BhcmFtcy0NCj4+PiBzbWFsbF9tYnVmX3Bv
b2wsDQo+PiArCQkJICAgICAgIGJpZ19kYXRhID8gYnVmX3Bvb2wgOiB0c19wYXJhbXMtDQo+Pj4g
bGFyZ2VfbWJ1Zl9wb29sLA0KPj4gKwkJCSAgICAgICBiaWdfZGF0YSA/IDAgOiBNQVhfU0VHUywN
Cj4+ICsJCQkgICAgICAgYmlnX2RhdGEgPyBNQVhfREFUQV9NQlVGX1NJWkUgOg0KPj4gU01BTExf
U0VHX1NJWkUpDQo+PiArCQkJCQk8IDApDQo+PiAJCQkJZ290byBleGl0Ow0KPj4gCQl9DQo+PiAN
Cj4+IEBAIC0xMzIwLDYgKzEzNTAsNyBAQCB0ZXN0X2NvbXByZXNzZGV2X2RlZmxhdGVfc3RhdGVs
ZXNzX2ZpeGVkKHZvaWQpDQo+PiAJCVJURV9DT01QX09QX1NUQVRFTEVTUywNCj4+IAkJTEJfQk9U
SCwNCj4+IAkJWkxJQl9ERUNPTVBSRVNTLA0KPj4gKwkJMCwNCj4+IAkJMA0KPj4gCX07DQo+PiAN
Cj4+IEBAIC0xMzkwLDYgKzE0MjEsNyBAQA0KPj4gdGVzdF9jb21wcmVzc2Rldl9kZWZsYXRlX3N0
YXRlbGVzc19keW5hbWljKHZvaWQpDQo+PiAJCVJURV9DT01QX09QX1NUQVRFTEVTUywNCj4+IAkJ
TEJfQk9USCwNCj4+IAkJWkxJQl9ERUNPTVBSRVNTLA0KPj4gKwkJMCwNCj4+IAkJMA0KPj4gCX07
DQo+PiANCj4+IEBAIC0xNDQzLDYgKzE0NzUsNyBAQA0KPj4gdGVzdF9jb21wcmVzc2Rldl9kZWZs
YXRlX3N0YXRlbGVzc19tdWx0aV9vcCh2b2lkKQ0KPj4gCQlSVEVfQ09NUF9PUF9TVEFURUxFU1Ms
DQo+PiAJCUxCX0JPVEgsDQo+PiAJCVpMSUJfREVDT01QUkVTUywNCj4+ICsJCTAsDQo+PiAJCTAN
Cj4+IAl9Ow0KPj4gDQo+PiBAQCAtMTQ5Miw2ICsxNTI1LDcgQEANCj4+IHRlc3RfY29tcHJlc3Nk
ZXZfZGVmbGF0ZV9zdGF0ZWxlc3NfbXVsdGlfbGV2ZWwodm9pZCkNCj4+IAkJUlRFX0NPTVBfT1Bf
U1RBVEVMRVNTLA0KPj4gCQlMQl9CT1RILA0KPj4gCQlaTElCX0RFQ09NUFJFU1MsDQo+PiArCQkw
LA0KPj4gCQkwDQo+PiAJfTsNCj4+IA0KPj4gQEAgLTE1ODEsNiArMTYxNSw3IEBADQo+PiB0ZXN0
X2NvbXByZXNzZGV2X2RlZmxhdGVfc3RhdGVsZXNzX211bHRpX3hmb3JtKHZvaWQpDQo+PiAJCVJU
RV9DT01QX09QX1NUQVRFTEVTUywNCj4+IAkJTEJfQk9USCwNCj4+IAkJWkxJQl9ERUNPTVBSRVNT
LA0KPj4gKwkJMCwNCj4+IAkJMA0KPj4gCX07DQo+PiANCj4+IEBAIC0xNjI2LDYgKzE2NjEsNyBA
QCB0ZXN0X2NvbXByZXNzZGV2X2RlZmxhdGVfc3RhdGVsZXNzX3NnbCh2b2lkKQ0KPj4gCQlSVEVf
Q09NUF9PUF9TVEFURUxFU1MsDQo+PiAJCVNHTF9CT1RILA0KPj4gCQlaTElCX0RFQ09NUFJFU1Ms
DQo+PiArCQkwLA0KPj4gCQkwDQo+PiAJfTsNCj4+IA0KPj4gQEAgLTE3MzMsNiArMTc2OSw3IEBA
DQo+PiB0ZXN0X2NvbXByZXNzZGV2X2RlZmxhdGVfc3RhdGVsZXNzX2NoZWNrc3VtKHZvaWQpDQo+
PiAJCVJURV9DT01QX09QX1NUQVRFTEVTUywNCj4+IAkJTEJfQk9USCwNCj4+IAkJWkxJQl9ERUNP
TVBSRVNTLA0KPj4gKwkJMCwNCj4+IAkJMA0KPj4gCX07DQo+PiANCj4+IEBAIC0xODYzLDcgKzE5
MDAsOCBAQCB0ZXN0X2NvbXByZXNzZGV2X291dF9vZl9zcGFjZV9idWZmZXIodm9pZCkNCj4+IAkJ
UlRFX0NPTVBfT1BfU1RBVEVMRVNTLA0KPj4gCQlMQl9CT1RILA0KPj4gCQlaTElCX0RFQ09NUFJF
U1MsDQo+PiAtCQkxDQo+PiArCQkxLA0KPj4gKwkJMA0KPj4gCX07DQo+PiAJLyogQ29tcHJlc3Mg
d2l0aCBjb21wcmVzc2RldiwgZGVjb21wcmVzcyB3aXRoIFpsaWIgKi8NCj4+IAl0ZXN0X2RhdGEu
emxpYl9kaXIgPSBaTElCX0RFQ09NUFJFU1M7DQo+PiBAQCAtMTkwNCw2ICsxOTQyLDgwIEBAIHRl
c3RfY29tcHJlc3NkZXZfb3V0X29mX3NwYWNlX2J1ZmZlcih2b2lkKQ0KPj4gCXJldHVybiByZXQ7
DQo+PiB9DQo+PiANCj4+ICtzdGF0aWMgaW50DQo+PiArdGVzdF9jb21wcmVzc2Rldl9kZWZsYXRl
X3N0YXRlbGVzc19keW5hbWljX2JpZyh2b2lkKQ0KPj4gK3sNCj4+ICsJc3RydWN0IGNvbXBfdGVz
dHN1aXRlX3BhcmFtcyAqdHNfcGFyYW1zID0gJnRlc3RzdWl0ZV9wYXJhbXM7DQo+PiArCXVpbnQx
Nl90IGkgPSAwOw0KPj4gKwlpbnQgcmV0ID0gVEVTVF9TVUNDRVNTOw0KPj4gKwljb25zdCBzdHJ1
Y3QgcnRlX2NvbXByZXNzZGV2X2NhcGFiaWxpdGllcyAqY2FwYWI7DQo+PiArCWNoYXIgKnRlc3Rf
YnVmZmVyID0gTlVMTDsNCj4+ICsNCj4+ICsJY2FwYWIgPSBydGVfY29tcHJlc3NkZXZfY2FwYWJp
bGl0eV9nZXQoMCwNCj4+IFJURV9DT01QX0FMR09fREVGTEFURSk7DQo+PiArCVRFU1RfQVNTRVJU
KGNhcGFiICE9IE5VTEwsICJGYWlsZWQgdG8gcmV0cmlldmUgZGV2aWNlIGNhcGFiaWxpdGllcyIp
Ow0KPj4gKw0KPj4gKwlpZiAoKGNhcGFiLT5jb21wX2ZlYXR1cmVfZmxhZ3MgJg0KPj4gUlRFX0NP
TVBfRkZfSFVGRk1BTl9EWU5BTUlDKSA9PSAwKQ0KPj4gKwkJcmV0dXJuIC1FTk9UU1VQOw0KPj4g
Kw0KPj4gKwlpZiAoKGNhcGFiLT5jb21wX2ZlYXR1cmVfZmxhZ3MgJg0KPj4gUlRFX0NPTVBfRkZf
T09QX1NHTF9JTl9TR0xfT1VUKSA9PSAwKQ0KPj4gKwkJcmV0dXJuIC1FTk9UU1VQOw0KPj4gKw0K
Pj4gKwl0ZXN0X2J1ZmZlciA9IHJ0ZV9tYWxsb2MoTlVMTCwgQklHX0RBVEFfVEVTVF9TSVpFLCAw
KTsNCj4+ICsJaWYgKHRlc3RfYnVmZmVyID09IE5VTEwpIHsNCj4+ICsJCVJURV9MT0coRVJSLCBV
U0VSMSwNCj4+ICsJCQkiQ2FuJ3QgYWxsb2NhdGUgYnVmZmVyIGZvciBiaWctZGF0YVxuIik7DQo+
PiArCQlyZXR1cm4gVEVTVF9GQUlMRUQ7DQo+PiArCX0NCj4+ICsNCj4+ICsJc3RydWN0IGludGVy
aW1fZGF0YV9wYXJhbXMgaW50X2RhdGEgPSB7DQo+PiArCQkoY29uc3QgY2hhciAqIGNvbnN0ICop
JnRlc3RfYnVmZmVyLA0KPj4gKwkJMSwNCj4+ICsJCU5VTEwsDQo+PiArCQkmdHNfcGFyYW1zLT5k
ZWZfY29tcF94Zm9ybSwNCj4+ICsJCSZ0c19wYXJhbXMtPmRlZl9kZWNvbXBfeGZvcm0sDQo+PiAr
CQkxDQo+PiArCX07DQo+PiArDQo+PiArCXN0cnVjdCB0ZXN0X2RhdGFfcGFyYW1zIHRlc3RfZGF0
YSA9IHsNCj4+ICsJCVJURV9DT01QX09QX1NUQVRFTEVTUywNCj4+ICsJCVNHTF9CT1RILA0KPj4g
KwkJWkxJQl9ERUNPTVBSRVNTLA0KPj4gKwkJMCwNCj4+ICsJCTENCj4+ICsJfTsNCj4+ICsNCj4+
ICsJdHNfcGFyYW1zLT5kZWZfY29tcF94Zm9ybS0+Y29tcHJlc3MuZGVmbGF0ZS5odWZmbWFuID0N
Cj4+ICsNCj4+IAlSVEVfQ09NUF9IVUZGTUFOX0RZTkFNSUM7DQo+PiArDQo+PiArCS8qIGZpbGwg
dGhlIGJ1ZmZlciB3aXRoIGRhdGEgYmFzZWQgb24gcmFuZC4gZGF0YSAqLw0KPj4gKwlzcmFuZChC
SUdfREFUQV9URVNUX1NJWkUpOw0KPj4gKwlmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgQklHX0RB
VEFfVEVTVF9TSVpFIC0gMTsgKytpKQ0KPj4gKwkJdGVzdF9idWZmZXJbaV0gPSAodWludDhfdCko
cmFuZCgpICUgKCh1aW50OF90KS0xKSkgfCAxOw0KPj4gKw0KPj4gKwl0ZXN0X2J1ZmZlcltCSUdf
REFUQV9URVNUX1NJWkUtMV0gPSAwOw0KPj4gKwlpbnRfZGF0YS5idWZfaWR4ID0gJmk7DQo+PiAr
DQo+PiArCS8qIENvbXByZXNzIHdpdGggY29tcHJlc3NkZXYsIGRlY29tcHJlc3Mgd2l0aCBabGli
ICovDQo+PiArCXRlc3RfZGF0YS56bGliX2RpciA9IFpMSUJfREVDT01QUkVTUzsNCj4+ICsJaWYg
KHRlc3RfZGVmbGF0ZV9jb21wX2RlY29tcCgmaW50X2RhdGEsICZ0ZXN0X2RhdGEpIDwgMCkgew0K
Pj4gKwkJcmV0ID0gVEVTVF9GQUlMRUQ7DQo+PiArCQlnb3RvIGVuZDsNCj4+ICsJfQ0KPj4gKw0K
Pj4gKwkvKiBDb21wcmVzcyB3aXRoIFpsaWIsIGRlY29tcHJlc3Mgd2l0aCBjb21wcmVzc2RldiAq
Lw0KPj4gKwl0ZXN0X2RhdGEuemxpYl9kaXIgPSBaTElCX0NPTVBSRVNTOw0KPj4gKwlpZiAodGVz
dF9kZWZsYXRlX2NvbXBfZGVjb21wKCZpbnRfZGF0YSwgJnRlc3RfZGF0YSkgPCAwKSB7DQo+PiAr
CQlyZXQgPSBURVNUX0ZBSUxFRDsNCj4+ICsJCWdvdG8gZW5kOw0KPj4gKwl9DQo+PiArDQo+PiAr
ZW5kOg0KPj4gKwl0c19wYXJhbXMtPmRlZl9jb21wX3hmb3JtLT5jb21wcmVzcy5kZWZsYXRlLmh1
ZmZtYW4gPQ0KPj4gKw0KPj4gCVJURV9DT01QX0hVRkZNQU5fREVGQVVMVDsNCj4+ICsJcnRlX2Zy
ZWUodGVzdF9idWZmZXIpOw0KPj4gKwlyZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4+IA0KPj4g
c3RhdGljIHN0cnVjdCB1bml0X3Rlc3Rfc3VpdGUgY29tcHJlc3NkZXZfdGVzdHN1aXRlICA9IHsN
Cj4+IAkuc3VpdGVfbmFtZSA9ICJjb21wcmVzc2RldiB1bml0IHRlc3Qgc3VpdGUiLCBAQCAtMTkx
Nyw2ICsyMDI5LDgNCj4+IEBAIHN0YXRpYyBzdHJ1Y3QgdW5pdF90ZXN0X3N1aXRlIGNvbXByZXNz
ZGV2X3Rlc3RzdWl0ZSAgPSB7DQo+PiAJCVRFU1RfQ0FTRV9TVChnZW5lcmljX3V0X3NldHVwLCBn
ZW5lcmljX3V0X3RlYXJkb3duLA0KPj4gCQkJdGVzdF9jb21wcmVzc2Rldl9kZWZsYXRlX3N0YXRl
bGVzc19keW5hbWljKSwNCj4+IAkJVEVTVF9DQVNFX1NUKGdlbmVyaWNfdXRfc2V0dXAsIGdlbmVy
aWNfdXRfdGVhcmRvd24sDQo+PiArCQkJdGVzdF9jb21wcmVzc2Rldl9kZWZsYXRlX3N0YXRlbGVz
c19keW5hbWljX2JpZyksDQo+PiArCQlURVNUX0NBU0VfU1QoZ2VuZXJpY191dF9zZXR1cCwgZ2Vu
ZXJpY191dF90ZWFyZG93biwNCj4+IAkJCXRlc3RfY29tcHJlc3NkZXZfZGVmbGF0ZV9zdGF0ZWxl
c3NfbXVsdGlfb3ApLA0KPj4gCQlURVNUX0NBU0VfU1QoZ2VuZXJpY191dF9zZXR1cCwgZ2VuZXJp
Y191dF90ZWFyZG93biwNCj4+IAkJCXRlc3RfY29tcHJlc3NkZXZfZGVmbGF0ZV9zdGF0ZWxlc3Nf
bXVsdGlfbGV2ZWwpLA0KPj4gLS0NCj4+IDIuNy40DQo+IA0KPiBBY2tlZC1ieTogVG9tYXN6IENl
bCA8dG9tYXN6eC5jZWxAaW50ZWwuY29tPg0KPiANCg0K