From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C9FFCA04A2; Sun, 23 Jan 2022 17:56:57 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5833D4278D; Sun, 23 Jan 2022 17:56:57 +0100 (CET) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by mails.dpdk.org (Postfix) with ESMTP id 7CF0340040 for ; Sun, 23 Jan 2022 17:56:54 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1642957014; x=1674493014; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=b8sEhKUG1nxT7If2i2J76pF3qziCOXD8Tnu7rEL+SbI=; b=SPZ/mM5fFMAV3MYy/ml/+i8NH/QGz0CbpGHPVtnIiX6YTN8pvLPSICA/ 6NaGiuP5eTvoSI/nZAickaAE5PhAA+GptisBBuqIVQto6yFiYJdRHLTDm PkQrw0Bcma4EOvI3MKoYEpba4m2w6pAcz3gytwfrbbgAMSURd1nBiqsz9 qScGi5Rgk1CvZ9ovoKFUJn1DvZ6QNOBBN7yjXeEZJgbJHZC+NL6/dgdOs gYCyHvNTy1lfMhCzKKAWmCx9knEEAyJWtB0conhWZuyxZhaJjwZXBNpfx MHixAud9y4cZJi+vh4xxAg65/UHXt+VXDscvKYsbSIragsw7yq14bidxh w==; X-IronPort-AV: E=McAfee;i="6200,9189,10235"; a="245690872" X-IronPort-AV: E=Sophos;i="5.88,310,1635231600"; d="scan'208";a="245690872" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Jan 2022 08:56:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,310,1635231600"; d="scan'208";a="519662588" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga007.jf.intel.com with ESMTP; 23 Jan 2022 08:56:53 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 23 Jan 2022 08:56:52 -0800 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Sun, 23 Jan 2022 08:56:52 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Sun, 23 Jan 2022 08:56:52 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.106) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Sun, 23 Jan 2022 08:56:51 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QoUyVLX0o9VgRy6SxR+54vPfBpfx01Na3+vmQ14FXy5XzqG8P3a7xRbQbgssoWG5SxMeo1o2FAfuMQ9nPOHV00n4zaiPJodfgipjUVH0PtOH2tM7YbPx0mcG70unOyFygXsXJGeYYEWM3ER4rfrd+wxfbtiYhkE3w10olbN+ZRSJSjU92iprwo4drE2JiDpbTjLhvnm8zCMdrJiMtqRwXztOcgTpR/tPzyE7DFRjBRbdI+gFuaeOR0i1+0DDcUeIKdtsMlTQQ1+8Wvh3olZaO5TO6eCFm61JHZXLo+A3C8rYafJmr+7On+dbP23wvn9zV6ag38TFHy0kP0o+s/HDmA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=b8sEhKUG1nxT7If2i2J76pF3qziCOXD8Tnu7rEL+SbI=; b=llbw+1hoBjvr/EodNFsZ4DNG9nJjmTCN/GXyf6K9JyQjnHH6BOO4ezKwDYQ+7eBY04QgN6UjmGMAKFSmVWj51+2J9pF7FX++B8RhPEf9prMNuo88EXvkyFjkgfQR5c9T8WxoVHXTdgGQBI2Wf1J830Jwo9bQ3SvMjW7c02qhf5vsE8w1tRf1206uKGTI7ueEyofd1UEB85qZjXujZcMzpahrjymwvHJuvFcZGznL7yYtWGw/sTr7xfUWAoiRTRWaIlLzULjwrFwNj1sU5u/ESFwZb4g4vyEQIibyY/F8G7jeQoHBECWUtf0dI/hrJZlbL0sJQVrvBf3MOdhRb1uNQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from PH0PR11MB4824.namprd11.prod.outlook.com (2603:10b6:510:38::13) by SN6PR11MB2750.namprd11.prod.outlook.com (2603:10b6:805:54::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.10; Sun, 23 Jan 2022 16:56:44 +0000 Received: from PH0PR11MB4824.namprd11.prod.outlook.com ([fe80::8087:583f:a2f0:111a]) by PH0PR11MB4824.namprd11.prod.outlook.com ([fe80::8087:583f:a2f0:111a%6]) with mapi id 15.20.4909.017; Sun, 23 Jan 2022 16:56:44 +0000 From: "Gujjar, Abhinandan S" To: Jerin Jacob , Shijith Thotton CC: dpdk-dev , Jerin Jacob , Anoob Joseph , Pavan Nikhilesh , Akhil Goyal Subject: RE: [PATCH v3] app/eventdev: add crypto producer mode Thread-Topic: [PATCH v3] app/eventdev: add crypto producer mode Thread-Index: AQHYAVatjp8Y9bS4UkqOt0F7dz8QJ6xtgTsAgANuhXA= Date: Sun, 23 Jan 2022 16:56:44 +0000 Message-ID: References: <5b7dadb222f6eb018c74983750052543eb5f0d8e.1640076426.git.sthotton@marvell.com> <736dc424a780b9547033f76f8911342ff06d3f87.1641292088.git.sthotton@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-Mentions: sthotton@marvell.com X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 6791e20e-dd86-4626-24f9-08d9de9155e8 x-ms-traffictypediagnostic: SN6PR11MB2750:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:660; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 2mI861tWngVTni0ULL7GKO4hrf8GdHk6y2Ne3lKRReRbns5NgBGdNHRlia5cjs1jO8eHesA99T+lzA3fWXpuO8DKFVlVajhev9THsaKQi/uUK9q2lFwXowhml755rbbsM24na6vP6ZgxaQvLjSFZPJTRo7UcRTQm39iVZfQXuRgutY/X0Uuud8itQnZYL2rXIxcoeXDx9v99F/M786AeqGKIRa3OuDQpRn7CEsZA6puoPG0b+fiS+yk+9jJPlRCJUYFfdSp5Edx7cUxadx7RQ/uXqNajhkbMutczBGstozjWXuvj2q9y7mw8TI+VncK+KCnI5hd6ZsEevfZPsSU6EjjbadjGpBk3t3+UBxt9tIdtg1TevMxkjP2SE0NhxzJiR0/+xlHnZeE/7B0lxTYWOAI3sCLnYJNLUaKPBwS0NdE2uc4V096NhVsQiZa2irAfIkZnDOzFZ4/CU+l7KTu+H1FePcei+hASkJwJ7R57szy33bD48KjBfFBRTSDM2pJCDrnYWRWBFmVg8Fz68TTcomj1Ip59bftfiOsVEuyty4U7/oou0uKNpvD7LNC/lT0qgHcn7UsIP+G0acDV8s40UJP4AsN4wMn9k8TqlKGNDOD3dPiIi2N09EEJMEGjz6Hag0JNQgaF95QBgb44vASCCtA1rVlvIbmWnJAgcprdMda1nrAgErOFRHiOh4iHdhnPQBfWVa8b26SxKLvWg0PMFw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB4824.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(66946007)(55016003)(6506007)(66556008)(66476007)(53546011)(83380400001)(9686003)(5660300002)(64756008)(4326008)(110136005)(316002)(66446008)(2906002)(8676002)(76116006)(86362001)(8936002)(38070700005)(7696005)(33656002)(508600001)(71200400001)(122000001)(38100700002)(52536014)(82960400001)(54906003)(30864003)(186003)(26005)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?dHJadldFTzYzMDdneUh5SVdPZFVUaFQ5aGthS210YWNqRmpTMmdVeEtXcmVi?= =?utf-8?B?aXJrWWtERWVCRmpob1NhditISFJmQmJXY1paMldyVHFURHlNNTlHMHhuOUtN?= =?utf-8?B?a0RPU1JZNE9xcVAvbGxZekdoRUw5U0wyY3E5dW9teGtsYWZDN0c5TmdTSFpq?= =?utf-8?B?OXY0TUVZSU9odkxwejc0NEF6YXhqOXc3N0YzTzhyb0tQSTJKTk1EUTV3enA2?= =?utf-8?B?amsxbWsweTFpSFVsbUNrNnh2YWlpRExWVVVvN2JOMittRWdiK1JSSmJNZWV2?= =?utf-8?B?OGhPVGdNVEQ4RmljWHIzdFIxNkNoZlZKUE1aY2wwa1IzQmtjU0xLN3h6VFBB?= =?utf-8?B?OThycW1STUxxUm9WYW0vQWU3c1oyc3BzMnlwQ2hOTTRJQndWcittL21CRDgx?= =?utf-8?B?Uld1N0s4VHRpc0tJVjNPYVVLMnhCK3dxcVJKdExqQmEzTU45TUF2b1hYTmUx?= =?utf-8?B?Zy8wRm9sVlBwellHZ2plV01qVDhveFFzdjdKMElSbGJQVFZvcG5Qb0dPTmFy?= =?utf-8?B?Z3Z4Q3Zwei9EM1RZRXhsUFRkaXNkaFo0a2tRN0VITVh1QXd2Y1plOHNvbXBt?= =?utf-8?B?MHhYT3c2UWRlajhmVWZ6Lzh0ZTNCN0JDUkZISGtDU1lQY25IVUpvU1c3V0R0?= =?utf-8?B?Y2s4QTYrS25NRG81UnNLOHhuRndPSVdDOTF6ZE1WY3dKK1F5NmtVSi9mamNo?= =?utf-8?B?NU9qbkVBMUIzT2M4TGJGTUh1WkZFamNJN29xdlIvbXdnOHBWZlBiNGl5dVFZ?= =?utf-8?B?UUcrZDByTmNXQWp5OWVpeVc0dzRHVGx5S1pWaE5FS1IvbVBlTjdLdk1yblk2?= =?utf-8?B?Q2ZXa0RKcWJsQ0NmamkyMVJRZTBZcDdybW9RcEpaS1MrNHpjc0JWejlqMTZW?= =?utf-8?B?RDZybEtKODlNQURIajV0aEJhL1ZFZkRTSW5Wd2pHZVNTVWdtUlF6V0R1bGkx?= =?utf-8?B?Z1pVdmVZZ1g0NWhMMFBZTkhrejZjcklJbTZ6L2E3SUhGcmtreVMwMTFwZ3Yr?= =?utf-8?B?QmhoZUo2L0JGUmRPV3N5N2RtQ1dVQzRzNlRjMmdTK3NudHllRkFUR2NKaFJu?= =?utf-8?B?MUhtdGZlNzdnbTZ4S1FyUzc5SnphTFU2K0o3QWdJYmc0L3ZJTC9Mc3g2RzB6?= =?utf-8?B?bjZkd3VNTnpOWVdNeCthd2Z4RUpZTHVVV3ZwLzArUVVDWlBrZE9BV1JvdVFF?= =?utf-8?B?QU5KT2xkWjNYcUF1TC8yb05RSThkZFhVNEFjZmI1M1lWblVHVjZrS1JpeFpu?= =?utf-8?B?M1lrN0RON0RXSEduMjVZeHhYeEJVOFRLNGs4V0gwaEZ4UVAxbXZhbFovcThl?= =?utf-8?B?RzducTY1MUxxRC9COWN4RUszcUVyRjZsZ1ZwNmprN0ZCVWYzamRHYTR3QzV2?= =?utf-8?B?YytyTjR4d1RsbGhZbjh2UGpGVmJBd1JTYWhHdlkxSE0xd3ZPd1M1dDdtWmxs?= =?utf-8?B?aGpsaFRMN2xWUmdFM2lDZS8yNDdYaWFZK0NiS0F5VWtZUHNPUEdiNnIvSEhi?= =?utf-8?B?bzZkYXJvSEMySFBabXgrNmRXV2tzZklLZVFhZ28zNEtBeFJvWStmblZmMTFQ?= =?utf-8?B?SjlOSFJIL1AvQ0tOOEpyNzQ1U050Ti9VTnBoSWgvMHgxOHhwbnhuWDZNbDI3?= =?utf-8?B?ejBQUVJGWldiSFRqSElxOE1Gb2pvanlxMUJleHZQdDJxY2JZeHd3Ni9KWHBs?= =?utf-8?B?VzY1ajhNVWFjdmx6Nlp3eVh0UEhxRjFaOXBoKytZSnpHMXNHVGdRL2lEczUy?= =?utf-8?B?bkV0ZzFFK0hTb1RucTZEUzVXSStDWWliWFZLdWpuV1JPMU5ncnZlUlVsajFU?= =?utf-8?B?bkJRc0w3THRTUWJkMzZVQXlOcTBMcytaZTNBNWFXQUl4NURiTUNQajhLRWVL?= =?utf-8?B?eWRWU1ZnUkVzNjgyN2QwTC92Szl4OWxpeHEwNWlkT1dOeFB4eEt5emNWd3dZ?= =?utf-8?B?OURaVEd5bWdvMTZ3c1dGY0xGOFVOV082anc0OG5kZjdLZVdqeVkyQTNtR09p?= =?utf-8?B?YnZlQi9RVkNKN0ZGNnQwN29IWDVSeWoyV2N0eG1lQ1BOdEdwYSt1ZHB3L0ZM?= =?utf-8?B?eXhVUjFwNnlzMHlZRXFnYW0zS3BEZzRoT1RjNHcyR204L0wrQ0hhQjZQcGdT?= =?utf-8?B?akNxR2tScFlBR0Jqd1dGcG9KNC8vS3hZV3JQT2VMV2JrdWpTMEdiblhsUHRW?= =?utf-8?B?eURWTG5rbXZzcklhM2p5a1VaWXhkTFl2cElmVHhudTZ3VWRnQWZ2ZU92eDdJ?= =?utf-8?B?WUZKdERXZC9Pb0owQ2RQNURuVCt3PT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4824.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6791e20e-dd86-4626-24f9-08d9de9155e8 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Jan 2022 16:56:44.1443 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4iCplDARM60C1qgntSKEvgg+Ij8LqkEH4p+E/qGGQteP58VC9u1u9dSFhXhX/SkLiA8cHGqsJ+rqmfdE3SXdNYJd+a38YsXs7qz/7rSvKtI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR11MB2750 X-OriginatorOrg: intel.com X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org SGkgSmVyaW4sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmVyaW4g SmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gU2VudDogRnJpZGF5LCBKYW51YXJ5IDIx LCAyMDIyIDU6NTUgUE0NCj4gVG86IFNoaWppdGggVGhvdHRvbiA8c3Rob3R0b25AbWFydmVsbC5j b20+DQo+IENjOiBkcGRrLWRldiA8ZGV2QGRwZGsub3JnPjsgSmVyaW4gSmFjb2IgPGplcmluakBt YXJ2ZWxsLmNvbT47IEFub29iDQo+IEpvc2VwaCA8YW5vb2JqQG1hcnZlbGwuY29tPjsgUGF2YW4g TmlraGlsZXNoDQo+IDxwYmhhZ2F2YXR1bGFAbWFydmVsbC5jb20+OyBBa2hpbCBHb3lhbCA8Z2Fr aGlsQG1hcnZlbGwuY29tPjsgR3VqamFyLA0KPiBBYmhpbmFuZGFuIFMgPGFiaGluYW5kYW4uZ3Vq amFyQGludGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2M10gYXBwL2V2ZW50ZGV2OiBh ZGQgY3J5cHRvIHByb2R1Y2VyIG1vZGUNCj4gDQo+IE9uIFR1ZSwgSmFuIDQsIDIwMjIgYXQgNDow NCBQTSBTaGlqaXRoIFRob3R0b24gPHN0aG90dG9uQG1hcnZlbGwuY29tPg0KPiB3cm90ZToNCj4g Pg0KPiA+IEluIGNyeXB0byBwcm9kdWNlciBtb2RlLCBwcm9kdWNlciBjb3JlIGVucXVldWVzIGNy eXB0b2RldiB3aXRoDQo+ID4gc29mdHdhcmUgZ2VuZXJhdGVkIGNyeXB0byBvcHMgYW5kIHdvcmtl ciBjb3JlIGRlcXVldWVzIGNyeXB0bw0KPiA+IGNvbXBsZXRpb24gZXZlbnRzIGZyb20gdGhlIGV2 ZW50ZGV2LiBFdmVudCBjcnlwdG8gbWV0YWRhdGEgdXNlZCBmb3INCj4gPiBhYm92ZSBwcm9jZXNz aW5nIGlzIHByZS1wb3B1bGF0ZWQgaW4gZWFjaCBjcnlwdG8gc2Vzc2lvbi4NCj4gPg0KPiA+IFBh cmFtZXRlciAtLXByb2RfdHlwZV9jcnlwdG9kZXYgY2FuIGJlIHVzZWQgdG8gZW5hYmxlIGNyeXB0 byBwcm9kdWNlcg0KPiA+IG1vZGUuIFBhcmFtZXRlciAtLWNyeXB0b19hZHB0cl9tb2RlIGNhbiBi ZSBzZXQgdG8gc2VsZWN0IHRoZSBjcnlwdG8NCj4gPiBhZGFwdGVyIG1vZGUsIDAgZm9yIE9QX05F VyBhbmQgMSBmb3IgT1BfRk9SV0FSRC4NCj4gPg0KPiA+IFRoaXMgbW9kZSBjYW4gYmUgdXNlZCB0 byBtZWFzdXJlIHRoZSBwZXJmb3JtYW5jZSBvZiBjcnlwdG8gYWRhcHRlci4NCj4gPg0KPiA+IEV4 YW1wbGU6DQo+ID4gICAuL2RwZGstdGVzdC1ldmVudGRldiAtbCAwLTIgLXcgPEVWRU5UREVWPiAt dyA8Q1JZUFRPREVWPiAtLSBcDQo+ID4gICAtLXByb2RfdHlwZV9jcnlwdG9kZXYgLS1jcnlwdG9f YWRwdHJfbW9kZSAxIC0tdGVzdD1wZXJmX2F0cSBcDQo+ID4gICAtLXN0bGlzdD1hIC0td2xjb3Jl cyAxIC0tcGxjb3JlcyAyDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBTaGlqaXRoIFRob3R0b24g PHN0aG90dG9uQG1hcnZlbGwuY29tPg0KPiA+IC0tLQ0KPiA+IHYzOg0KPiA+ICogUmVkdWNlIGRl cmVmZXJlbmNlIGluc2lkZSBsb29wLg0KPiANCj4gSGkgQEd1amphciwgQWJoaW5hbmRhbiBTDQo+ IA0KPiBEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgb3Igb2JqZWN0aW9ucyB0byBtZXJnaW5nIHRo aXMgY2hhbmdlPw0KSSBhbSB0cnlpbmcgdG8gZ2V0IHRoZSBhcHAgd29ya2luZyBvbiBteSBzYW5k Ym94LiBJIGhhdmUgZmV3IGNvbW1lbnRzIGZvciBTaGlqaXRoLg0KDQpAU2hpaml0aCBUaG90dG9u LCBBZnRlciB0cnlpbmcgd2l0aCBvcGVuc3NsIGNyeXB0b2RldiwgSSB0cmllZCB3aXRoIGNyeXB0 b2Rldl9udWxsIHBtZCB0byBnZXQgdGhlIGFwcCB3b3JraW5nLg0KSXQgdGhyb3dzIGFuIGVycm9y IGhlcmUgdG9vOg0KDQpyb290QGFiaGktVmlydHVhbEJveDovWERQL0RQREtfR0lUL2RwZGstbmV4 dC1ldmVudGRldi9hYmhpIyAuL2FwcC9kcGRrLXRlc3QtZXZlbnRkZXYgLWwgMC0yIC0tdmRldj1l dmVudF9zdzAgIC0tdmRldj0iY3J5cHRvX251bGwiIC0tIC0tcHJvZF90eXBlX2NyeXB0b2RldiAt LWNyeXB0b19hZHB0cl9tb2RlIDEgLS10ZXN0PXBlcmZfcXVldWUgLS1zdGxpc3Q9YSAtLXdsY29y ZXMgMSAtLXBsY29yZXMgMg0KRUFMOiBEZXRlY3RlZCBDUFUgbGNvcmVzOiA0DQpFQUw6IERldGVj dGVkIE5VTUEgbm9kZXM6IDENCkVBTDogRGV0ZWN0ZWQgc3RhdGljIGxpbmthZ2Ugb2YgRFBESw0K RUFMOiBNdWx0aS1wcm9jZXNzIHNvY2tldCAvdmFyL3J1bi9kcGRrL3J0ZS9tcF9zb2NrZXQNCkVB TDogU2VsZWN0ZWQgSU9WQSBtb2RlICdQQScNCkVBTDogVkZJTyBzdXBwb3J0IGluaXRpYWxpemVk DQpDUllQVE9ERVY6IENyZWF0aW5nIGNyeXB0b2RldiBjcnlwdG9fbnVsbA0KDQpDUllQVE9ERVY6 IEluaXRpYWxpc2F0aW9uIHBhcmFtZXRlcnMgLSBuYW1lOiBjcnlwdG9fbnVsbCxzb2NrZXQgaWQ6 IDAsIG1heCBxdWV1ZSBwYWlyczogOA0KVEVMRU1FVFJZOiBObyBsZWdhY3kgY2FsbGJhY2tzLCBs ZWdhY3kgc29ja2V0IG5vdCBjcmVhdGVkDQoJZHJpdmVyICAgICAgICAgICAgICAgOiBldmVudF9z dw0KCXRlc3QgICAgICAgICAgICAgICAgIDogcGVyZl9xdWV1ZQ0KCWRldiAgICAgICAgICAgICAg ICAgIDogMA0KCXZlcmJvc2VfbGV2ZWwgICAgICAgIDogMQ0KCXNvY2tldF9pZCAgICAgICAgICAg IDogLTENCglwb29sX3N6ICAgICAgICAgICAgICA6IDE2Mzg0DQoJbWFpbiBsY29yZSAgICAgICAg ICAgOiAwDQoJbmJfcGt0cyAgICAgICAgICAgICAgOiA2NzEwODg2NA0KCW5iX3RpbWVycyAgICAg ICAgICAgIDogMTAwMDAwMDAwDQoJYXZhaWxhYmxlIGxjb3JlcyAgICAgOiB7MCAxIDJ9DQoJbmJf Zmxvd3MgICAgICAgICAgICAgOiAxMDI0DQoJd29ya2VyIGRlcSBkZXB0aCAgICAgOiAxNg0KCWZ3 ZF9sYXRlbmN5ICAgICAgICAgIDogZmFsc2UNCgluYl9wcm9kX2xjb3JlcyAgICAgICA6IDENCglw cm9kdWNlciBsY29yZXMgICAgICA6IHsyfQ0KCW5iX3dvcmtlcl9sY29yZXMgICAgIDogMQ0KCXdv cmtlciBsY29yZXMgICAgICAgIDogezF9DQoJbmJfc3RhZ2VzICAgICAgICAgICAgOiAxDQoJbmJf ZXZkZXZfcG9ydHMgICAgICAgOiAyDQoJbmJfZXZkZXZfcXVldWVzICAgICAgOiAxDQoJcXVldWVf cHJpb3JpdHkgICAgICAgOiBmYWxzZQ0KCXNjaGVkX3R5cGVfbGlzdCAgICAgIDoge0F9DQoJY3J5 cHRvIGFkYXB0ZXIgbW9kZSAgOiBPUF9GT1JXQVJEDQoJbmJfY3J5cHRvZGV2ICAgICAgICAgOiAx DQoJcHJvZF90eXBlICAgICAgICAgICAgOiBFdmVudCBjcnlwdG8gYWRhcHRlciBwcm9kdWNlcnMN Cglwcm9kX2VucV9idXJzdF9zeiAgICA6IDENCkNSWVBUT0RFVjogZWx0X3NpemUgMCBpcyBleHBh bmRlZCB0byAyODgNCg0KZXJyb3I6IHBlcmZfZXZlbnRfY3J5cHRvX2FkYXB0ZXJfc2V0dXAoKSBj cnlwdG8gYWRhcHRlciBPUF9GT1JXQVJEIG1vZGUgdW5zdXBwb3J0ZWQNCg0KZXJyb3I6IG1haW4o KSBwZXJmX3F1ZXVlOiBldmVudGRldiBzZXR1cCBmYWlsZWQNCkNSWVBUT0RFVjogcnRlX2NyeXB0 b2Rldl9zdG9wKCkgbGluZSAxMTE2OiBEZXZpY2Ugd2l0aCBkZXZfaWQ9MCBhbHJlYWR5IHN0b3Bw ZWQNCg0KDQpXaXRoIC0tY3J5cHRvX2FkcHRyX21vZGUgMA0KZXJyb3I6IHBlcmZfZXZlbnRfY3J5 cHRvX2FkYXB0ZXJfc2V0dXAoKSBjcnlwdG8gYWRhcHRlciBPUF9ORVcgbW9kZSB1bnN1cHBvcnRl ZA0KDQoNCkNvdWxkIHlvdSBwbGVhc2UgcHJvdmlkZSB0aGUgcmlnaHQgY29tbWFuZHMgdG8gZ2V0 IHRoaXMgcnVubmluZz8NCk1lYW50aW1lLCBJIHdpbGwgZ28gdGhyb3VnaCB0aGUgY29kZS4gVGhh bmtzIQ0KDQo+IA0KPiANCj4gPg0KPiA+IHYyOg0KPiA+ICogRml4IFJIRUwgY29tcGlsYXRpb24g d2FybmluZy4NCj4gPg0KPiA+ICBhcHAvdGVzdC1ldmVudGRldi9ldnRfY29tbW9uLmggICAgICAg fCAgIDMgKw0KPiA+ICBhcHAvdGVzdC1ldmVudGRldi9ldnRfbWFpbi5jICAgICAgICAgfCAgMTMg Ky0NCj4gPiAgYXBwL3Rlc3QtZXZlbnRkZXYvZXZ0X29wdGlvbnMuYyAgICAgIHwgIDI3ICsrDQo+ ID4gIGFwcC90ZXN0LWV2ZW50ZGV2L2V2dF9vcHRpb25zLmggICAgICB8ICAxMiArDQo+ID4gIGFw cC90ZXN0LWV2ZW50ZGV2L2V2dF90ZXN0LmggICAgICAgICB8ICAgNiArDQo+ID4gIGFwcC90ZXN0 LWV2ZW50ZGV2L3Rlc3RfcGVyZl9hdHEuYyAgICB8ICA1MSArKysrDQo+ID4gIGFwcC90ZXN0LWV2 ZW50ZGV2L3Rlc3RfcGVyZl9jb21tb24uYyB8IDQxMA0KPiA+ICsrKysrKysrKysrKysrKysrKysr KysrKysrLSAgYXBwL3Rlc3QtDQo+IGV2ZW50ZGV2L3Rlc3RfcGVyZl9jb21tb24uaCB8DQo+ID4g MTYgKysgIGFwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVyZl9xdWV1ZS5jICB8ICA1MiArKysrDQo+ ID4gIGRvYy9ndWlkZXMvdG9vbHMvdGVzdGV2ZW50ZGV2LnJzdCAgICB8ICAxMyArDQo+ID4gIDEw IGZpbGVzIGNoYW5nZWQsIDU5NiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQ0KPiA+DQo+ ID4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LWV2ZW50ZGV2L2V2dF9jb21tb24uaA0KPiA+IGIvYXBw L3Rlc3QtZXZlbnRkZXYvZXZ0X2NvbW1vbi5oIGluZGV4IGY0NjY0MzQ0NTkuLjJmMzAxYTdlNzkN Cj4gMTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtZXZlbnRkZXYvZXZ0X2NvbW1vbi5oDQo+ID4g KysrIGIvYXBwL3Rlc3QtZXZlbnRkZXYvZXZ0X2NvbW1vbi5oDQo+ID4gQEAgLTcsNiArNyw3IEBA DQo+ID4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9jb21tb24uaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9k ZWJ1Zy5oPg0KPiA+ICsjaW5jbHVkZSA8cnRlX2V2ZW50X2NyeXB0b19hZGFwdGVyLmg+DQo+ID4g ICNpbmNsdWRlIDxydGVfZXZlbnRkZXYuaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9zZXJ2aWNlLmg+ DQo+ID4NCj4gPiBAQCAtMzksNiArNDAsNyBAQCBlbnVtIGV2dF9wcm9kX3R5cGUgew0KPiA+ICAg ICAgICAgRVZUX1BST0RfVFlQRV9TWU5ULCAgICAgICAgICAvKiBQcm9kdWNlciB0eXBlIFN5bnRo ZXRpYyBpLmUuIENQVS4gKi8NCj4gPiAgICAgICAgIEVWVF9QUk9EX1RZUEVfRVRIX1JYX0FEUFRS LCAgLyogUHJvZHVjZXIgdHlwZSBFdGggUnggQWRhcHRlci4NCj4gKi8NCj4gPiAgICAgICAgIEVW VF9QUk9EX1RZUEVfRVZFTlRfVElNRVJfQURQVFIsICAvKiBQcm9kdWNlciB0eXBlIFRpbWVyDQo+ ID4gQWRhcHRlci4gKi8NCj4gPiArICAgICAgIEVWVF9QUk9EX1RZUEVfRVZFTlRfQ1JZUFRPX0FE UFRSLCAgLyogUHJvZHVjZXIgdHlwZSBDcnlwdG8NCj4gPiArIEFkYXB0ZXIuICovDQo+ID4gICAg ICAgICBFVlRfUFJPRF9UWVBFX01BWCwNCj4gPiAgfTsNCj4gPg0KPiA+IEBAIC03Nyw2ICs3OSw3 IEBAIHN0cnVjdCBldnRfb3B0aW9ucyB7DQo+ID4gICAgICAgICB1aW50NjRfdCB0aW1lcl90aWNr X25zZWM7DQo+ID4gICAgICAgICB1aW50NjRfdCBvcHRtX3RpbWVyX3RpY2tfbnNlYzsNCj4gPiAg ICAgICAgIGVudW0gZXZ0X3Byb2RfdHlwZSBwcm9kX3R5cGU7DQo+ID4gKyAgICAgICBlbnVtIHJ0 ZV9ldmVudF9jcnlwdG9fYWRhcHRlcl9tb2RlIGNyeXB0b19hZHB0cl9tb2RlOw0KPiA+ICB9Ow0K PiA+DQo+ID4gIHN0YXRpYyBpbmxpbmUgYm9vbA0KPiA+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1l dmVudGRldi9ldnRfbWFpbi5jDQo+ID4gYi9hcHAvdGVzdC1ldmVudGRldi9ldnRfbWFpbi5jIGlu ZGV4IDE5NGM5ODBjN2EuLmNlZjBmYjEzODIgMTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtZXZl bnRkZXYvZXZ0X21haW4uYw0KPiA+ICsrKyBiL2FwcC90ZXN0LWV2ZW50ZGV2L2V2dF9tYWluLmMN Cj4gPiBAQCAtMTYxLDEyICsxNjEsMTkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgZ290byBtZW1wb29sX2Rlc3Ryb3k7DQo+ID4gICAg ICAgICAgICAgICAgIH0NCj4gPiAgICAgICAgIH0NCj4gPiArICAgICAgIC8qIFRlc3Qgc3BlY2lm aWMgY3J5cHRvZGV2IHNldHVwICovDQo+ID4gKyAgICAgICBpZiAodGVzdC0+b3BzLmNyeXB0b2Rl dl9zZXR1cCkgew0KPiA+ICsgICAgICAgICAgICAgICBpZiAodGVzdC0+b3BzLmNyeXB0b2Rldl9z ZXR1cCh0ZXN0LCAmb3B0KSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGV2dF9lcnIo IiVzOiBjcnlwdG9kZXYgc2V0dXAgZmFpbGVkIiwgb3B0LnRlc3RfbmFtZSk7DQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgZ290byBldGhkZXZfZGVzdHJveTsNCj4gPiArICAgICAgICAgICAg ICAgfQ0KPiA+ICsgICAgICAgfQ0KPiA+DQo+ID4gICAgICAgICAvKiBUZXN0IHNwZWNpZmljIGV2 ZW50ZGV2IHNldHVwICovDQo+ID4gICAgICAgICBpZiAodGVzdC0+b3BzLmV2ZW50ZGV2X3NldHVw KSB7DQo+ID4gICAgICAgICAgICAgICAgIGlmICh0ZXN0LT5vcHMuZXZlbnRkZXZfc2V0dXAodGVz dCwgJm9wdCkpIHsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBldnRfZXJyKCIlczogZXZl bnRkZXYgc2V0dXAgZmFpbGVkIiwgb3B0LnRlc3RfbmFtZSk7DQo+ID4gLSAgICAgICAgICAgICAg ICAgICAgICAgZ290byBldGhkZXZfZGVzdHJveTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBnb3RvIGNyeXB0b2Rldl9kZXN0cm95Ow0KPiA+ICAgICAgICAgICAgICAgICB9DQo+ID4gICAg ICAgICB9DQo+ID4NCj4gPiBAQCAtMTk3LDYgKzIwNCwxMCBAQCBtYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikNCj4gPiAgICAgICAgIGlmICh0ZXN0LT5vcHMuZXZlbnRkZXZfZGVzdHJveSkNCj4g PiAgICAgICAgICAgICAgICAgdGVzdC0+b3BzLmV2ZW50ZGV2X2Rlc3Ryb3kodGVzdCwgJm9wdCk7 DQo+ID4NCj4gPiArY3J5cHRvZGV2X2Rlc3Ryb3k6DQo+ID4gKyAgICAgICBpZiAodGVzdC0+b3Bz LmNyeXB0b2Rldl9kZXN0cm95KQ0KPiA+ICsgICAgICAgICAgICAgICB0ZXN0LT5vcHMuY3J5cHRv ZGV2X2Rlc3Ryb3kodGVzdCwgJm9wdCk7DQo+ID4gKw0KPiA+ICBldGhkZXZfZGVzdHJveToNCj4g PiAgICAgICAgIGlmICh0ZXN0LT5vcHMuZXRoZGV2X2Rlc3Ryb3kpDQo+ID4gICAgICAgICAgICAg ICAgIHRlc3QtPm9wcy5ldGhkZXZfZGVzdHJveSh0ZXN0LCAmb3B0KTsgZGlmZiAtLWdpdA0KPiA+ IGEvYXBwL3Rlc3QtZXZlbnRkZXYvZXZ0X29wdGlvbnMuYyBiL2FwcC90ZXN0LWV2ZW50ZGV2L2V2 dF9vcHRpb25zLmMNCj4gPiBpbmRleCA3NTNhN2RiZDdkLi41YWQxNDkxMDIwIDEwMDY0NA0KPiA+ IC0tLSBhL2FwcC90ZXN0LWV2ZW50ZGV2L2V2dF9vcHRpb25zLmMNCj4gPiArKysgYi9hcHAvdGVz dC1ldmVudGRldi9ldnRfb3B0aW9ucy5jDQo+ID4gQEAgLTEyMiw2ICsxMjIsMjYgQEAgZXZ0X3Bh cnNlX3RpbWVyX3Byb2RfdHlwZV9idXJzdChzdHJ1Y3QNCj4gZXZ0X29wdGlvbnMgKm9wdCwNCj4g PiAgICAgICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiArc3RhdGljIGludA0KPiA+ICtl dnRfcGFyc2VfY3J5cHRvX3Byb2RfdHlwZShzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICphcmcgX19ydGVfdW51c2VkKSB7 DQo+ID4gKyAgICAgICBvcHQtPnByb2RfdHlwZSA9IEVWVF9QUk9EX1RZUEVfRVZFTlRfQ1JZUFRP X0FEUFRSOw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRp YyBpbnQNCj4gPiArZXZ0X3BhcnNlX2NyeXB0b19hZHB0cl9tb2RlKHN0cnVjdCBldnRfb3B0aW9u cyAqb3B0LCBjb25zdCBjaGFyICphcmcpDQo+ID4gK3sNCj4gPiArICAgICAgIHVpbnQ4X3QgbW9k ZTsNCj4gPiArICAgICAgIGludCByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0ID0gcGFyc2Vy X3JlYWRfdWludDgoJm1vZGUsIGFyZyk7DQo+ID4gKyAgICAgICBvcHQtPmNyeXB0b19hZHB0cl9t b2RlID0gbW9kZSA/DQo+IFJURV9FVkVOVF9DUllQVE9fQURBUFRFUl9PUF9GT1JXQVJEIDoNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0VWRU5UX0NSWVBU T19BREFQVEVSX09QX05FVzsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ID4gK30NCj4gPiAr DQo+ID4gIHN0YXRpYyBpbnQNCj4gPiAgZXZ0X3BhcnNlX3Rlc3RfbmFtZShzdHJ1Y3QgZXZ0X29w dGlvbnMgKm9wdCwgY29uc3QgY2hhciAqYXJnKSAgeyBAQA0KPiA+IC0zMzUsNiArMzU1LDcgQEAg dXNhZ2UoY2hhciAqcHJvZ3JhbSkNCj4gPiAgICAgICAgICAgICAgICAgIlx0LS1xdWV1ZV9wcmlv cml0eSAgIDogZW5hYmxlIHF1ZXVlIHByaW9yaXR5XG4iDQo+ID4gICAgICAgICAgICAgICAgICJc dC0tZGVxX3Rtb19uc2VjICAgICA6IGdsb2JhbCBkZXF1ZXVlIHRpbWVvdXRcbiINCj4gPiAgICAg ICAgICAgICAgICAgIlx0LS1wcm9kX3R5cGVfZXRoZGV2IDogdXNlIGV0aGVybmV0IGRldmljZSBh cyBwcm9kdWNlci5cbiINCj4gPiArICAgICAgICAgICAgICAgIlx0LS1wcm9kX3R5cGVfY3J5cHRv ZGV2IDogdXNlIGNyeXB0byBkZXZpY2UgYXMgcHJvZHVjZXIuXG4iDQo+ID4gICAgICAgICAgICAg ICAgICJcdC0tcHJvZF90eXBlX3RpbWVyZGV2IDogdXNlIGV2ZW50IHRpbWVyIGRldmljZSBhcyBw cm9kdWNlci5cbiINCj4gPiAgICAgICAgICAgICAgICAgIlx0ICAgICAgICAgICAgICAgICAgICAg ZXhwaXR5X25zZWMgd291bGQgYmUgdGhlIHRpbWVvdXRcbiINCj4gPiAgICAgICAgICAgICAgICAg Ilx0ICAgICAgICAgICAgICAgICAgICAgaW4gbnMuXG4iDQo+ID4gQEAgLTM0NSw2ICszNjYsOCBA QCB1c2FnZShjaGFyICpwcm9ncmFtKQ0KPiA+ICAgICAgICAgICAgICAgICAiXHQtLXRpbWVyX3Rp Y2tfbnNlYyAgOiB0aW1lciB0aWNrIGludGVydmFsIGluIG5zLlxuIg0KPiA+ICAgICAgICAgICAg ICAgICAiXHQtLW1heF90bW9fbnNlYyAgICAgOiBtYXggdGltZW91dCBpbnRlcnZhbCBpbiBucy5c biINCj4gPiAgICAgICAgICAgICAgICAgIlx0LS1leHBpcnlfbnNlYyAgICAgIDogZXZlbnQgdGlt ZXIgZXhwaXJ5IG5zLlxuIg0KPiA+ICsgICAgICAgICAgICAgICAiXHQtLWNyeXB0b19hZHB0cl9t b2RlIDogMCBmb3IgT1BfTkVXIG1vZGUgKGRlZmF1bHQpIGFuZFxuIg0KPiA+ICsgICAgICAgICAg ICAgICAiXHQgICAgICAgICAgICAgICAgICAgICAgMSBmb3IgT1BfRk9SV0FSRCBtb2RlLlxuIg0K PiA+ICAgICAgICAgICAgICAgICAiXHQtLW1idWZfc3ogICAgICAgICAgOiBwYWNrZXQgbWJ1ZiBz aXplLlxuIg0KPiA+ICAgICAgICAgICAgICAgICAiXHQtLW1heF9wa3Rfc3ogICAgICAgOiBtYXgg cGFja2V0IHNpemUuXG4iDQo+ID4gICAgICAgICAgICAgICAgICJcdC0tcHJvZF9lbnFfYnVyc3Rf c3ogOiBwcm9kdWNlciBlbnF1ZXVlIGJ1cnN0IHNpemUuXG4iDQo+ID4gQEAgLTQxNSw4ICs0Mzgs MTAgQEAgc3RhdGljIHN0cnVjdCBvcHRpb24gbGdvcHRzW10gPSB7DQo+ID4gICAgICAgICB7IEVW VF9RVUVVRV9QUklPUklUWSwgICAgICAwLCAwLCAwIH0sDQo+ID4gICAgICAgICB7IEVWVF9ERVFf VE1PX05TRUMsICAgICAgICAxLCAwLCAwIH0sDQo+ID4gICAgICAgICB7IEVWVF9QUk9EX0VUSERF ViwgICAgICAgICAwLCAwLCAwIH0sDQo+ID4gKyAgICAgICB7IEVWVF9QUk9EX0NSWVBUT0RFViwg ICAgICAwLCAwLCAwIH0sDQo+ID4gICAgICAgICB7IEVWVF9QUk9EX1RJTUVSREVWLCAgICAgICAw LCAwLCAwIH0sDQo+ID4gICAgICAgICB7IEVWVF9QUk9EX1RJTUVSREVWX0JVUlNULCAwLCAwLCAw IH0sDQo+ID4gKyAgICAgICB7IEVWVF9DUllQVE9fQURQVFJfTU9ERSwgICAxLCAwLCAwIH0sDQo+ ID4gICAgICAgICB7IEVWVF9OQl9USU1FUlMsICAgICAgICAgICAxLCAwLCAwIH0sDQo+ID4gICAg ICAgICB7IEVWVF9OQl9USU1FUl9BRFBUUlMsICAgICAxLCAwLCAwIH0sDQo+ID4gICAgICAgICB7 IEVWVF9USU1FUl9USUNLX05TRUMsICAgICAxLCAwLCAwIH0sDQo+ID4gQEAgLTQ1NSw4ICs0ODAs MTAgQEAgZXZ0X29wdHNfcGFyc2VfbG9uZyhpbnQgb3B0X2lkeCwgc3RydWN0DQo+IGV2dF9vcHRp b25zICpvcHQpDQo+ID4gICAgICAgICAgICAgICAgIHsgRVZUX1FVRVVFX1BSSU9SSVRZLCBldnRf cGFyc2VfcXVldWVfcHJpb3JpdHl9LA0KPiA+ICAgICAgICAgICAgICAgICB7IEVWVF9ERVFfVE1P X05TRUMsIGV2dF9wYXJzZV9kZXFfdG1vX25zZWN9LA0KPiA+ICAgICAgICAgICAgICAgICB7IEVW VF9QUk9EX0VUSERFViwgZXZ0X3BhcnNlX2V0aF9wcm9kX3R5cGV9LA0KPiA+ICsgICAgICAgICAg ICAgICB7IEVWVF9QUk9EX0NSWVBUT0RFViwgZXZ0X3BhcnNlX2NyeXB0b19wcm9kX3R5cGV9LA0K PiA+ICAgICAgICAgICAgICAgICB7IEVWVF9QUk9EX1RJTUVSREVWLCBldnRfcGFyc2VfdGltZXJf cHJvZF90eXBlfSwNCj4gPiAgICAgICAgICAgICAgICAgeyBFVlRfUFJPRF9USU1FUkRFVl9CVVJT VCwNCj4gPiBldnRfcGFyc2VfdGltZXJfcHJvZF90eXBlX2J1cnN0fSwNCj4gPiArICAgICAgICAg ICAgICAgeyBFVlRfQ1JZUFRPX0FEUFRSX01PREUsIGV2dF9wYXJzZV9jcnlwdG9fYWRwdHJfbW9k ZX0sDQo+ID4gICAgICAgICAgICAgICAgIHsgRVZUX05CX1RJTUVSUywgZXZ0X3BhcnNlX25iX3Rp bWVyc30sDQo+ID4gICAgICAgICAgICAgICAgIHsgRVZUX05CX1RJTUVSX0FEUFRSUywgZXZ0X3Bh cnNlX25iX3RpbWVyX2FkcHRyc30sDQo+ID4gICAgICAgICAgICAgICAgIHsgRVZUX1RJTUVSX1RJ Q0tfTlNFQywgZXZ0X3BhcnNlX3RpbWVyX3RpY2tfbnNlY30sDQo+ID4gZGlmZiAtLWdpdCBhL2Fw cC90ZXN0LWV2ZW50ZGV2L2V2dF9vcHRpb25zLmgNCj4gPiBiL2FwcC90ZXN0LWV2ZW50ZGV2L2V2 dF9vcHRpb25zLmggaW5kZXggNDEzZDcwOTJmMC4uMjIzMWM1ODgwMSAxMDA2NDQNCj4gPiAtLS0g YS9hcHAvdGVzdC1ldmVudGRldi9ldnRfb3B0aW9ucy5oDQo+ID4gKysrIGIvYXBwL3Rlc3QtZXZl bnRkZXYvZXZ0X29wdGlvbnMuaA0KPiA+IEBAIC05LDYgKzksNyBAQA0KPiA+ICAjaW5jbHVkZSA8 c3RkYm9vbC5oPg0KPiA+DQo+ID4gICNpbmNsdWRlIDxydGVfY29tbW9uLmg+DQo+ID4gKyNpbmNs dWRlIDxydGVfY3J5cHRvZGV2Lmg+DQo+ID4gICNpbmNsdWRlIDxydGVfZXRoZGV2Lmg+DQo+ID4g ICNpbmNsdWRlIDxydGVfZXZlbnRkZXYuaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9sY29yZS5oPg0K PiA+IEBAIC0zMyw4ICszNCwxMCBAQA0KPiA+ICAjZGVmaW5lIEVWVF9RVUVVRV9QUklPUklUWSAg ICAgICAoInF1ZXVlX3ByaW9yaXR5IikNCj4gPiAgI2RlZmluZSBFVlRfREVRX1RNT19OU0VDICAg ICAgICAgKCJkZXFfdG1vX25zZWMiKQ0KPiA+ICAjZGVmaW5lIEVWVF9QUk9EX0VUSERFViAgICAg ICAgICAoInByb2RfdHlwZV9ldGhkZXYiKQ0KPiA+ICsjZGVmaW5lIEVWVF9QUk9EX0NSWVBUT0RF ViAgICAgICgicHJvZF90eXBlX2NyeXB0b2RldiIpDQo+ID4gICNkZWZpbmUgRVZUX1BST0RfVElN RVJERVYgICAgICAgICgicHJvZF90eXBlX3RpbWVyZGV2IikNCj4gPiAgI2RlZmluZSBFVlRfUFJP RF9USU1FUkRFVl9CVVJTVCAgKCJwcm9kX3R5cGVfdGltZXJkZXZfYnVyc3QiKQ0KPiA+ICsjZGVm aW5lIEVWVF9DUllQVE9fQURQVFJfTU9ERSAgICgiY3J5cHRvX2FkcHRyX21vZGUiKQ0KPiA+ICAj ZGVmaW5lIEVWVF9OQl9USU1FUlMgICAgICAgICAgICAoIm5iX3RpbWVycyIpDQo+ID4gICNkZWZp bmUgRVZUX05CX1RJTUVSX0FEUFRSUyAgICAgICgibmJfdGltZXJfYWRwdHJzIikNCj4gPiAgI2Rl ZmluZSBFVlRfVElNRVJfVElDS19OU0VDICAgICAgKCJ0aW1lcl90aWNrX25zZWMiKQ0KPiA+IEBA IC0yNDksNiArMjUyLDggQEAgZXZ0X3Byb2RfaWRfdG9fbmFtZShlbnVtIGV2dF9wcm9kX3R5cGUN Cj4gcHJvZF90eXBlKQ0KPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gIkV0aGRldiBSeCBBZGFw dGVyIjsNCj4gPiAgICAgICAgIGNhc2UgRVZUX1BST0RfVFlQRV9FVkVOVF9USU1FUl9BRFBUUjoN Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuICJFdmVudCB0aW1lciBhZGFwdGVyIjsNCj4gPiAr ICAgICAgIGNhc2UgRVZUX1BST0RfVFlQRV9FVkVOVF9DUllQVE9fQURQVFI6DQo+ID4gKyAgICAg ICAgICAgICAgIHJldHVybiAiRXZlbnQgY3J5cHRvIGFkYXB0ZXIiOw0KPiA+ICAgICAgICAgfQ0K PiA+DQo+ID4gICAgICAgICByZXR1cm4gIiI7DQo+ID4gQEAgLTI4OCw2ICsyOTMsMTMgQEAgZXZ0 X2R1bXBfcHJvZHVjZXJfdHlwZShzdHJ1Y3QgZXZ0X29wdGlvbnMNCj4gKm9wdCkNCj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICBldnRfZHVtcCgidGltZXJfdGlja19uc2VjIiwgIiUiUFJJdTY0 IiIsDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdC0+dGlt ZXJfdGlja19uc2VjKTsNCj4gPiAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICBj YXNlIEVWVF9QUk9EX1RZUEVfRVZFTlRfQ1JZUFRPX0FEUFRSOg0KPiA+ICsgICAgICAgICAgICAg ICBzbnByaW50ZihuYW1lLCBFVlRfUFJPRF9NQVhfTkFNRV9MRU4sDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICJFdmVudCBjcnlwdG8gYWRhcHRlciBwcm9kdWNlcnMiKTsNCj4gPiArICAg ICAgICAgICAgICAgZXZ0X2R1bXAoImNyeXB0byBhZGFwdGVyIG1vZGUiLCAiJXMiLA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBvcHQtPmNyeXB0b19hZHB0cl9tb2RlID8gIk9QX0ZPUldB UkQiIDogIk9QX05FVyIpOw0KPiA+ICsgICAgICAgICAgICAgICBldnRfZHVtcCgibmJfY3J5cHRv ZGV2IiwgIiV1IiwgcnRlX2NyeXB0b2Rldl9jb3VudCgpKTsNCj4gPiArICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4gICAgICAgICB9DQo+ID4gICAgICAgICBldnRfZHVtcCgicHJvZF90eXBlIiwg IiVzIiwgbmFtZSk7ICB9IGRpZmYgLS1naXQNCj4gPiBhL2FwcC90ZXN0LWV2ZW50ZGV2L2V2dF90 ZXN0LmggYi9hcHAvdGVzdC1ldmVudGRldi9ldnRfdGVzdC5oIGluZGV4DQo+ID4gZjA3ZDJjMzMz Ni4uNTBmYTQ3NGVjMiAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVzdC1ldmVudGRldi9ldnRfdGVz dC5oDQo+ID4gKysrIGIvYXBwL3Rlc3QtZXZlbnRkZXYvZXZ0X3Rlc3QuaA0KPiA+IEBAIC0yOSw2 ICsyOSw4IEBAIHR5cGVkZWYgaW50ICgqZXZ0X3Rlc3RfbWVtcG9vbF9zZXR1cF90KQ0KPiA+ICAg ICAgICAgICAgICAgICAoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3QgZXZ0X29wdGlvbnMg Km9wdCk7DQo+ID4gdHlwZWRlZiBpbnQgKCpldnRfdGVzdF9ldGhkZXZfc2V0dXBfdCkNCj4gPiAg ICAgICAgICAgICAgICAgKHN0cnVjdCBldnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25z ICpvcHQpOw0KPiA+ICt0eXBlZGVmIGludCAoKmV2dF90ZXN0X2NyeXB0b2Rldl9zZXR1cF90KQ0K PiA+ICsgICAgICAgICAgICAgICAoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3QgZXZ0X29w dGlvbnMgKm9wdCk7DQo+ID4gIHR5cGVkZWYgaW50ICgqZXZ0X3Rlc3RfZXZlbnRkZXZfc2V0dXBf dCkNCj4gPiAgICAgICAgICAgICAgICAgKHN0cnVjdCBldnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2 dF9vcHRpb25zICpvcHQpOw0KPiA+IHR5cGVkZWYgaW50ICgqZXZ0X3Rlc3RfbGF1bmNoX2xjb3Jl c190KSBAQCAtMzksNiArNDEsOCBAQCB0eXBlZGVmIHZvaWQNCj4gPiAoKmV2dF90ZXN0X2V2ZW50 ZGV2X2Rlc3Ryb3lfdCkNCj4gPiAgICAgICAgICAgICAgICAgKHN0cnVjdCBldnRfdGVzdCAqdGVz dCwgc3RydWN0IGV2dF9vcHRpb25zICpvcHQpOw0KPiA+IHR5cGVkZWYgdm9pZCAoKmV2dF90ZXN0 X2V0aGRldl9kZXN0cm95X3QpDQo+ID4gICAgICAgICAgICAgICAgIChzdHJ1Y3QgZXZ0X3Rlc3Qg KnRlc3QsIHN0cnVjdCBldnRfb3B0aW9ucyAqb3B0KTsNCj4gPiArdHlwZWRlZiB2b2lkICgqZXZ0 X3Rlc3RfY3J5cHRvZGV2X2Rlc3Ryb3lfdCkNCj4gPiArICAgICAgICAgICAgICAgKHN0cnVjdCBl dnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25zICpvcHQpOw0KPiA+ICB0eXBlZGVmIHZv aWQgKCpldnRfdGVzdF9tZW1wb29sX2Rlc3Ryb3lfdCkNCj4gPiAgICAgICAgICAgICAgICAgKHN0 cnVjdCBldnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25zICpvcHQpOw0KPiA+IHR5cGVk ZWYgdm9pZCAoKmV2dF90ZXN0X2Rlc3Ryb3lfdCkgQEAgLTUyLDEwICs1NiwxMiBAQCBzdHJ1Y3QN Cj4gPiBldnRfdGVzdF9vcHMgew0KPiA+ICAgICAgICAgZXZ0X3Rlc3RfbWVtcG9vbF9zZXR1cF90 IG1lbXBvb2xfc2V0dXA7DQo+ID4gICAgICAgICBldnRfdGVzdF9ldGhkZXZfc2V0dXBfdCBldGhk ZXZfc2V0dXA7DQo+ID4gICAgICAgICBldnRfdGVzdF9ldmVudGRldl9zZXR1cF90IGV2ZW50ZGV2 X3NldHVwOw0KPiA+ICsgICAgICAgZXZ0X3Rlc3RfY3J5cHRvZGV2X3NldHVwX3QgY3J5cHRvZGV2 X3NldHVwOw0KPiA+ICAgICAgICAgZXZ0X3Rlc3RfbGF1bmNoX2xjb3Jlc190IGxhdW5jaF9sY29y ZXM7DQo+ID4gICAgICAgICBldnRfdGVzdF9yZXN1bHRfdCB0ZXN0X3Jlc3VsdDsNCj4gPiAgICAg ICAgIGV2dF90ZXN0X2V2ZW50ZGV2X2Rlc3Ryb3lfdCBldmVudGRldl9kZXN0cm95Ow0KPiA+ICAg ICAgICAgZXZ0X3Rlc3RfZXRoZGV2X2Rlc3Ryb3lfdCBldGhkZXZfZGVzdHJveTsNCj4gPiArICAg ICAgIGV2dF90ZXN0X2NyeXB0b2Rldl9kZXN0cm95X3QgY3J5cHRvZGV2X2Rlc3Ryb3k7DQo+ID4g ICAgICAgICBldnRfdGVzdF9tZW1wb29sX2Rlc3Ryb3lfdCBtZW1wb29sX2Rlc3Ryb3k7DQo+ID4g ICAgICAgICBldnRfdGVzdF9kZXN0cm95X3QgdGVzdF9kZXN0cm95OyAgfTsgZGlmZiAtLWdpdA0K PiA+IGEvYXBwL3Rlc3QtZXZlbnRkZXYvdGVzdF9wZXJmX2F0cS5jDQo+ID4gYi9hcHAvdGVzdC1l dmVudGRldi90ZXN0X3BlcmZfYXRxLmMNCj4gPiBpbmRleCA4ZmQ1MTAwNGVlLi5kYmIxZGM4YzBj IDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVyZl9hdHEuYw0KPiA+ ICsrKyBiL2FwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVyZl9hdHEuYw0KPiA+IEBAIC00OCw2ICs0 OCwyMiBAQCBwZXJmX2F0cV93b3JrZXIodm9pZCAqYXJnLCBjb25zdCBpbnQNCj4gZW5hYmxlX2Z3 ZF9sYXRlbmN5KQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICAg ICAgICAgICAgICAgICB9DQo+ID4NCj4gPiArICAgICAgICAgICAgICAgaWYgKHByb2RfY3J5cHRv X3R5cGUgJiYNCj4gPiArICAgICAgICAgICAgICAgICAgIChldi5ldmVudF90eXBlID09IFJURV9F VkVOVF9UWVBFX0NSWVBUT0RFVikpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1 Y3QgcnRlX2NyeXB0b19vcCAqb3AgPSBldi5ldmVudF9wdHI7DQo+ID4gKw0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChvcC0+c3RhdHVzID09IFJURV9DUllQVE9fT1BfU1RBVFVTX1NV Q0NFU1MpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcC0+c3lt LT5tX2RzdCA9PSBOVUxMKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBldi5ldmVudF9wdHIgPSBvcC0+c3ltLT5tX3NyYzsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2UNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZXYuZXZlbnRfcHRyID0gb3AtPnN5bS0+bV9kc3Q7DQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBydGVfY3J5cHRvX29wX2ZyZWUob3ApOw0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBydGVfY3J5cHRvX29wX2ZyZWUob3ApOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsg ICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICAgICAgICAgICAgICAgICBpZiAoZW5hYmxlX2Z3 ZF9sYXRlbmN5ICYmICFwcm9kX3RpbWVyX3R5cGUpDQo+ID4gICAgICAgICAgICAgICAgIC8qIGZp cnN0IHN0YWdlIGluIHBpcGVsaW5lLCBtYXJrIHRzIHRvIGNvbXB1dGUgZndkIGxhdGVuY3kgKi8N Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBhdHFfbWFya19md2RfbGF0ZW5jeSgmZXYpOyBA QCAtODcsNiArMTAzLDI1IEBADQo+ID4gcGVyZl9hdHFfd29ya2VyX2J1cnN0KHZvaWQgKmFyZywg Y29uc3QgaW50IGVuYWJsZV9md2RfbGF0ZW5jeSkNCj4gPiAgICAgICAgICAgICAgICAgfQ0KPiA+ DQo+ID4gICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBuYl9yeDsgaSsrKSB7DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHByb2RfY3J5cHRvX3R5cGUgJiYNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGV2W2ldLmV2ZW50X3R5cGUgPT0gUlRFX0VWRU5UX1RZ UEVfQ1JZUFRPREVWKSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry dWN0IHJ0ZV9jcnlwdG9fb3AgKm9wID0NCj4gPiArIGV2W2ldLmV2ZW50X3B0cjsNCj4gPiArDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AtPnN0YXR1cyA9PQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9DUllQVE9fT1BfU1RBVFVT X1NVQ0NFU1MpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aWYgKG9wLT5zeW0tPm1fZHN0ID09IE5VTEwpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZXZbaV0uZXZlbnRfcHRyID0NCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wLT5zeW0tPm1f c3JjOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZbaV0u ZXZlbnRfcHRyID0NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9wLT5zeW0tPm1fZHN0Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBydGVfY3J5cHRvX29wX2ZyZWUob3ApOw0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcnRlX2NyeXB0b19vcF9mcmVlKG9wKTsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0K PiA+ICsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5hYmxlX2Z3ZF9sYXRlbmN5 ICYmICFwcm9kX3RpbWVyX3R5cGUpIHsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJ0ZV9wcmVmZXRjaDAoZXZbaSsxXS5ldmVudF9wdHIpOw0KPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyogZmlyc3Qgc3RhZ2UgaW4gcGlwZWxpbmUuDQo+ID4gQEAgLTI1 NCw2ICsyODksMjAgQEAgcGVyZl9hdHFfZXZlbnRkZXZfc2V0dXAoc3RydWN0IGV2dF90ZXN0ICp0 ZXN0LA0KPiBzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCkNCj4gPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgfQ0K PiA+ICAgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9IGVsc2UgaWYgKG9wdC0+cHJvZF90 eXBlID09DQo+IEVWVF9QUk9EX1RZUEVfRVZFTlRfQ1JZUFRPX0FEUFRSKSB7DQo+ID4gKyAgICAg ICAgICAgICAgIHVpbnQ4X3QgY2Rldl9pZCwgY2Rldl9jb3VudDsNCj4gPiArDQo+ID4gKyAgICAg ICAgICAgICAgIGNkZXZfY291bnQgPSBydGVfY3J5cHRvZGV2X2NvdW50KCk7DQo+ID4gKyAgICAg ICAgICAgICAgIGZvciAoY2Rldl9pZCA9IDA7IGNkZXZfaWQgPCBjZGV2X2NvdW50OyBjZGV2X2lk KyspIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBydGVfY3J5cHRvZGV2X3N0 YXJ0KGNkZXZfaWQpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dF9lcnIoIkZhaWxlZCB0byBzdGFy dCBjcnlwdG9kZXYgJXUiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjZGV2X2lkKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biByZXQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAg ICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBydGVfZXZlbnRfY3J5cHRvX2FkYXB0ZXJf c3RhcnQodC0+Y3J5cHRvX2FkcHRyLmlkKTsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAg ICAgcmV0dXJuIDA7DQo+ID4gQEAgLTI5NSwxMiArMzQ0LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZXZ0X3Rlc3Rfb3BzIHBlcmZfYXRxID0gIHsNCj4gPiAgICAgICAgIC5vcHRfZHVtcCAgICAg ICAgICAgPSBwZXJmX2F0cV9vcHRfZHVtcCwNCj4gPiAgICAgICAgIC50ZXN0X3NldHVwICAgICAg ICAgPSBwZXJmX3Rlc3Rfc2V0dXAsDQo+ID4gICAgICAgICAuZXRoZGV2X3NldHVwICAgICAgID0g cGVyZl9ldGhkZXZfc2V0dXAsDQo+ID4gKyAgICAgICAuY3J5cHRvZGV2X3NldHVwICAgID0gcGVy Zl9jcnlwdG9kZXZfc2V0dXAsDQo+ID4gICAgICAgICAubWVtcG9vbF9zZXR1cCAgICAgID0gcGVy Zl9tZW1wb29sX3NldHVwLA0KPiA+ICAgICAgICAgLmV2ZW50ZGV2X3NldHVwICAgICA9IHBlcmZf YXRxX2V2ZW50ZGV2X3NldHVwLA0KPiA+ICAgICAgICAgLmxhdW5jaF9sY29yZXMgICAgICA9IHBl cmZfYXRxX2xhdW5jaF9sY29yZXMsDQo+ID4gICAgICAgICAuZXZlbnRkZXZfZGVzdHJveSAgID0g cGVyZl9ldmVudGRldl9kZXN0cm95LA0KPiA+ICAgICAgICAgLm1lbXBvb2xfZGVzdHJveSAgICA9 IHBlcmZfbWVtcG9vbF9kZXN0cm95LA0KPiA+ICAgICAgICAgLmV0aGRldl9kZXN0cm95ICAgICA9 IHBlcmZfZXRoZGV2X2Rlc3Ryb3ksDQo+ID4gKyAgICAgICAuY3J5cHRvZGV2X2Rlc3Ryb3kgID0g cGVyZl9jcnlwdG9kZXZfZGVzdHJveSwNCj4gPiAgICAgICAgIC50ZXN0X3Jlc3VsdCAgICAgICAg PSBwZXJmX3Rlc3RfcmVzdWx0LA0KPiA+ICAgICAgICAgLnRlc3RfZGVzdHJveSAgICAgICA9IHBl cmZfdGVzdF9kZXN0cm95LA0KPiA+ICB9Ow0KPiA+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1ldmVu dGRldi90ZXN0X3BlcmZfY29tbW9uLmMNCj4gPiBiL2FwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVy Zl9jb21tb24uYw0KPiA+IGluZGV4IDliNzM4NzQxNTEuLjkxY2I2NzQ4ZWUgMTAwNjQ0DQo+ID4g LS0tIGEvYXBwL3Rlc3QtZXZlbnRkZXYvdGVzdF9wZXJmX2NvbW1vbi5jDQo+ID4gKysrIGIvYXBw L3Rlc3QtZXZlbnRkZXYvdGVzdF9wZXJmX2NvbW1vbi5jDQo+ID4gQEAgLTYsNiArNiw4IEBADQo+ ID4NCj4gPiAgI2luY2x1ZGUgInRlc3RfcGVyZl9jb21tb24uaCINCj4gPg0KPiA+ICsjZGVmaW5l IE5CX0NSWVBUT0RFVl9ERVNDUklQVE9SUyAxMjgNCj4gPiArDQo+ID4gIGludA0KPiA+ICBwZXJm X3Rlc3RfcmVzdWx0KHN0cnVjdCBldnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25zICpv cHQpICB7DQo+ID4gQEAgLTI3Miw2ICsyNzQsMTI1IEBAIHBlcmZfZXZlbnRfdGltZXJfcHJvZHVj ZXJfYnVyc3Qodm9pZCAqYXJnKQ0KPiA+ICAgICAgICAgcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0K PiA+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiArY3J5cHRvX2FkYXB0ZXJfZW5xX29wX25ldyhz dHJ1Y3QgcHJvZF9kYXRhICpwKSB7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9z eW1fc2Vzc2lvbiAqKmNyeXB0b19zZXNzID0gcC0+Y3J5cHRvX3Nlc3M7DQo+ID4gKyAgICAgICBz dHJ1Y3QgdGVzdF9wZXJmICp0ID0gcC0+dDsNCj4gPiArICAgICAgIGNvbnN0IHVpbnQzMl90IG5i X2Zsb3dzID0gdC0+bmJfZmxvd3M7DQo+ID4gKyAgICAgICBjb25zdCB1aW50NjRfdCBuYl9wa3Rz ID0gdC0+bmJfcGt0czsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbCAqcG9vbCA9IHQt PnBvb2w7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b19zeW1fb3AgKnN5bV9vcDsNCj4g PiArICAgICAgIHN0cnVjdCBldnRfb3B0aW9ucyAqb3B0ID0gdC0+b3B0Ow0KPiA+ICsgICAgICAg dWludDE2X3QgcXBfaWQgPSBwLT5jZGV2X3FwX2lkOw0KPiA+ICsgICAgICAgdWludDhfdCBjZGV2 X2lkID0gcC0+Y2Rldl9pZDsNCj4gPiArICAgICAgIHVpbnQzMl90IGZsb3dfY291bnRlciA9IDA7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3A7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgcnRlX21idWYgKm07DQo+ID4gKyAgICAgICB1aW50NjRfdCBjb3VudCA9IDA7DQo+ID4gKyAg ICAgICB1aW50MTZfdCBsZW47DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKG9wdC0+dmVyYm9zZV9s ZXZlbCA+IDEpDQo+ID4gKyAgICAgICAgICAgICAgIHByaW50ZigiJXMoKTogbGNvcmUgJWQgcXVl dWUgJWQgY2Rldl9pZCAldSBjZGV2X3FwX2lkICV1XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgX19mdW5jX18sIHJ0ZV9sY29yZV9pZCgpLCBwLT5xdWV1ZV9pZCwgcC0+Y2Rldl9pZCwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgIHAtPmNkZXZfcXBfaWQpOw0KPiA+ICsNCj4gPiAr ICAgICAgIGxlbiA9IG9wdC0+bWJ1Zl9zeiA/IG9wdC0+bWJ1Zl9zeiA6IFJURV9FVEhFUl9NSU5f TEVOOw0KPiA+ICsNCj4gPiArICAgICAgIHdoaWxlIChjb3VudCA8IG5iX3BrdHMgJiYgdC0+ZG9u ZSA9PSBmYWxzZSkgew0KPiA+ICsgICAgICAgICAgICAgICBtID0gcnRlX3BrdG1idWZfYWxsb2Mo cG9vbCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChtID09IE5VTEwpDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBydGVf cGt0bWJ1Zl9hcHBlbmQobSwgbGVuKTsNCj4gPiArICAgICAgICAgICAgICAgb3AgPSBydGVfY3J5 cHRvX29wX2FsbG9jKHQtPmNyeXB0b19hZHB0ci5vcF9wb29sLA0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQyk7 DQo+ID4gKyAgICAgICAgICAgICAgIHN5bV9vcCA9IG9wLT5zeW07DQo+ID4gKyAgICAgICAgICAg ICAgIHN5bV9vcC0+bV9zcmMgPSBtOw0KPiA+ICsgICAgICAgICAgICAgICBzeW1fb3AtPmNpcGhl ci5kYXRhLm9mZnNldCA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgIHN5bV9vcC0+Y2lwaGVyLmRh dGEubGVuZ3RoID0gbGVuOw0KPiA+ICsgICAgICAgICAgICAgICBydGVfY3J5cHRvX29wX2F0dGFj aF9zeW1fc2Vzc2lvbigNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBvcCwgY3J5cHRvX3Nl c3NbZmxvd19jb3VudGVyKysgJSBuYl9mbG93c10pOw0KPiA+ICsgICAgICAgICAgICAgICB3aGls ZSAocnRlX2NyeXB0b2Rldl9lbnF1ZXVlX2J1cnN0KGNkZXZfaWQsIHFwX2lkLCAmb3AsIDEpICE9 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAxKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgaWYgKHQtPmRvbmUpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi cmVhazsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBydGVfcGF1c2UoKTsNCj4gPiArICAg ICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICBjb3VudCsrOw0KPiA+ICsgICAgICAg fQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW5saW5lIHZvaWQNCj4gPiArY3J5cHRvX2Fk YXB0ZXJfZW5xX29wX2Z3ZChzdHJ1Y3QgcHJvZF9kYXRhICpwKSB7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgcnRlX2NyeXB0b2Rldl9zeW1fc2Vzc2lvbiAqKmNyeXB0b19zZXNzID0gcC0+Y3J5cHRvX3Nl c3M7DQo+ID4gKyAgICAgICBjb25zdCB1aW50OF90IGRldl9pZCA9IHAtPmRldl9pZDsNCj4gPiAr ICAgICAgIGNvbnN0IHVpbnQ4X3QgcG9ydCA9IHAtPnBvcnRfaWQ7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgdGVzdF9wZXJmICp0ID0gcC0+dDsNCj4gPiArICAgICAgIGNvbnN0IHVpbnQzMl90IG5iX2Zs b3dzID0gdC0+bmJfZmxvd3M7DQo+ID4gKyAgICAgICBjb25zdCB1aW50NjRfdCBuYl9wa3RzID0g dC0+bmJfcGt0czsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbCAqcG9vbCA9IHQtPnBv b2w7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCA9IHQtPm9wdDsNCj4gPiAr ICAgICAgIHN0cnVjdCBydGVfY3J5cHRvX3N5bV9vcCAqc3ltX29wOw0KPiA+ICsgICAgICAgdWlu dDMyX3QgZmxvd19jb3VudGVyID0gMDsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfY3J5cHRvX29w ICpvcDsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfZXZlbnQgZXY7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgcnRlX21idWYgKm07DQo+ID4gKyAgICAgICB1aW50NjRfdCBjb3VudCA9IDA7DQo+ID4gKyAg ICAgICB1aW50MTZfdCBsZW47DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKG9wdC0+dmVyYm9zZV9s ZXZlbCA+IDEpDQo+ID4gKyAgICAgICAgICAgICAgIHByaW50ZigiJXMoKTogbGNvcmUgJWQgcG9y dCAlZCBxdWV1ZSAlZCBjZGV2X2lkICV1IGNkZXZfcXBfaWQNCj4gJXVcbiIsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICBfX2Z1bmNfXywgcnRlX2xjb3JlX2lkKCksIHBvcnQsIHAtPnF1ZXVl X2lkLCBwLT5jZGV2X2lkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgcC0+Y2Rldl9xcF9p ZCk7DQo+ID4gKw0KPiA+ICsgICAgICAgZXYuZXZlbnQgPSAwOw0KPiA+ICsgICAgICAgZXYub3Ag PSBSVEVfRVZFTlRfT1BfTkVXOw0KPiA+ICsgICAgICAgZXYucXVldWVfaWQgPSBwLT5xdWV1ZV9p ZDsNCj4gPiArICAgICAgIGV2LnNjaGVkX3R5cGUgPSBSVEVfU0NIRURfVFlQRV9BVE9NSUM7DQo+ ID4gKyAgICAgICBldi5ldmVudF90eXBlID0gUlRFX0VWRU5UX1RZUEVfQ1BVOw0KPiA+ICsgICAg ICAgbGVuID0gb3B0LT5tYnVmX3N6ID8gb3B0LT5tYnVmX3N6IDogUlRFX0VUSEVSX01JTl9MRU47 DQo+ID4gKw0KPiA+ICsgICAgICAgd2hpbGUgKGNvdW50IDwgbmJfcGt0cyAmJiB0LT5kb25lID09 IGZhbHNlKSB7DQo+ID4gKyAgICAgICAgICAgICAgIG0gPSBydGVfcGt0bWJ1Zl9hbGxvYyhwb29s KTsNCj4gPiArICAgICAgICAgICAgICAgaWYgKG0gPT0gTlVMTCkNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBjb250aW51ZTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIHJ0ZV9wa3Rt YnVmX2FwcGVuZChtLCBsZW4pOw0KPiA+ICsgICAgICAgICAgICAgICBvcCA9IHJ0ZV9jcnlwdG9f b3BfYWxsb2ModC0+Y3J5cHRvX2FkcHRyLm9wX3Bvb2wsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklDKTsNCj4g PiArICAgICAgICAgICAgICAgc3ltX29wID0gb3AtPnN5bTsNCj4gPiArICAgICAgICAgICAgICAg c3ltX29wLT5tX3NyYyA9IG07DQo+ID4gKyAgICAgICAgICAgICAgIHN5bV9vcC0+Y2lwaGVyLmRh dGEub2Zmc2V0ID0gMDsNCj4gPiArICAgICAgICAgICAgICAgc3ltX29wLT5jaXBoZXIuZGF0YS5s ZW5ndGggPSBsZW47DQo+ID4gKyAgICAgICAgICAgICAgIHJ0ZV9jcnlwdG9fb3BfYXR0YWNoX3N5 bV9zZXNzaW9uKA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG9wLCBjcnlwdG9fc2Vzc1tm bG93X2NvdW50ZXIrKyAlIG5iX2Zsb3dzXSk7DQo+ID4gKyAgICAgICAgICAgICAgIGV2LmV2ZW50 X3B0ciA9IG9wOw0KPiA+ICsgICAgICAgICAgICAgICB3aGlsZSAocnRlX2V2ZW50X2NyeXB0b19h ZGFwdGVyX2VucXVldWUoZGV2X2lkLCBwb3J0LCAmZXYsIDEpDQo+ICE9DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAxKSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgaWYgKHQtPmRv bmUpDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBydGVfcGF1c2UoKTsNCj4gPiArICAgICAgICAgICAgICAgfQ0K PiA+ICsgICAgICAgICAgICAgICBjb3VudCsrOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgaW5saW5lIGludA0KPiA+ICtwZXJmX2V2ZW50X2NyeXB0b19wcm9kdWNl cih2b2lkICphcmcpIHsNCj4gPiArICAgICAgIHN0cnVjdCBwcm9kX2RhdGEgKnAgPSBhcmc7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCA9IHAtPnQtPm9wdDsNCj4gPiArDQo+ ID4gKyAgICAgICBpZiAob3B0LT5jcnlwdG9fYWRwdHJfbW9kZSA9PQ0KPiBSVEVfRVZFTlRfQ1JZ UFRPX0FEQVBURVJfT1BfTkVXKQ0KPiA+ICsgICAgICAgICAgICAgICBjcnlwdG9fYWRhcHRlcl9l bnFfb3BfbmV3KHApOw0KPiA+ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBjcnlw dG9fYWRhcHRlcl9lbnFfb3BfZndkKHApOw0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiAwOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgaW50DQo+ID4gIHBlcmZfcHJvZHVjZXJfd3JhcHBl cih2b2lkICphcmcpDQo+ID4gIHsNCj4gPiBAQCAtMjk4LDYgKzQxOSw4IEBAIHBlcmZfcHJvZHVj ZXJfd3JhcHBlcih2b2lkICphcmcpDQo+ID4gICAgICAgICBlbHNlIGlmICh0LT5vcHQtPnByb2Rf dHlwZSA9PSBFVlRfUFJPRF9UWVBFX0VWRU5UX1RJTUVSX0FEUFRSDQo+ICYmDQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgdC0+b3B0LT50aW1kZXZfdXNlX2J1cnN0KQ0KPiA+ICAgICAgICAg ICAgICAgICByZXR1cm4gcGVyZl9ldmVudF90aW1lcl9wcm9kdWNlcl9idXJzdChhcmcpOw0KPiA+ ICsgICAgICAgZWxzZSBpZiAodC0+b3B0LT5wcm9kX3R5cGUgPT0NCj4gRVZUX1BST0RfVFlQRV9F VkVOVF9DUllQVE9fQURQVFIpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBwZXJmX2V2ZW50 X2NyeXB0b19wcm9kdWNlcihhcmcpOw0KPiA+ICAgICAgICAgcmV0dXJuIDA7DQo+ID4gIH0NCj4g Pg0KPiA+IEBAIC00MDUsOCArNTI4LDEwIEBAIHBlcmZfbGF1bmNoX2xjb3JlcyhzdHJ1Y3QgZXZ0 X3Rlc3QgKnRlc3QsIHN0cnVjdA0KPiBldnRfb3B0aW9ucyAqb3B0LA0KPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChyZW1haW5pbmcgPD0gMCkgew0KPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdC0+cmVzdWx0ID0gRVZUX1RFU1RfU1VDQ0VTUzsNCj4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHQtPnByb2RfdHlwZSA9PSBFVlRfUFJPRF9U WVBFX1NZTlQgfHwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg b3B0LT5wcm9kX3R5cGUgPT0NCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgRVZUX1BST0RfVFlQRV9FVkVOVF9USU1FUl9BRFBUUikgew0KPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdC0+cHJvZF90eXBlID09DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFVlRfUFJPRF9UWVBFX0VWRU5UX1RJ TUVSX0FEUFRSIHx8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0 LT5wcm9kX3R5cGUgPT0NCj4gPiArDQo+ID4gKyBFVlRfUFJPRF9UWVBFX0VWRU5UX0NSWVBUT19B RFBUUikgew0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LT5k b25lID0gdHJ1ZTsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gQEAgLTQx NSw3ICs1NDAsOCBAQCBwZXJmX2xhdW5jaF9sY29yZXMoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBz dHJ1Y3QNCj4gPiBldnRfb3B0aW9ucyAqb3B0LA0KPiA+DQo+ID4gICAgICAgICAgICAgICAgIGlm IChuZXdfY3ljbGVzIC0gZGVhZF9sb2NrX2N5Y2xlcyA+IGRlYWRfbG9ja19zYW1wbGUgJiYNCj4g PiAgICAgICAgICAgICAgICAgICAgIChvcHQtPnByb2RfdHlwZSA9PSBFVlRfUFJPRF9UWVBFX1NZ TlQgfHwNCj4gPiAtICAgICAgICAgICAgICAgICAgICBvcHQtPnByb2RfdHlwZSA9PSBFVlRfUFJP RF9UWVBFX0VWRU5UX1RJTUVSX0FEUFRSKSkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgIG9w dC0+cHJvZF90eXBlID09IEVWVF9QUk9EX1RZUEVfRVZFTlRfVElNRVJfQURQVFIgfHwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICBvcHQtPnByb2RfdHlwZSA9PQ0KPiA+ICsgRVZUX1BST0RfVFlQ RV9FVkVOVF9DUllQVE9fQURQVFIpKSB7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmVt YWluaW5nID0gdC0+b3V0c3RhbmRfcGt0cyAtIHByb2Nlc3NlZF9wa3RzKHQpOw0KPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChkZWFkX2xvY2tfcmVtYWluaW5nID09IHJlbWFpbmluZykg ew0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2V2ZW50X2Rldl9kdW1w KG9wdC0+ZGV2X2lkLA0KPiA+IHN0ZG91dCk7IEBAIC01MzcsNiArNjYzLDk2IEBAIHBlcmZfZXZl bnRfdGltZXJfYWRhcHRlcl9zZXR1cChzdHJ1Y3QNCj4gdGVzdF9wZXJmICp0KQ0KPiA+ICAgICAg ICAgcmV0dXJuIDA7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK3BlcmZfZXZl bnRfY3J5cHRvX2FkYXB0ZXJfc2V0dXAoc3RydWN0IHRlc3RfcGVyZiAqdCwNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVfZXZlbnRfcG9ydF9jb25mIHBvcnRf Y29uZikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IGV2dF9vcHRpb25zICpvcHQgPSB0LT5v cHQ7DQo+ID4gKyAgICAgICB1aW50OF90IGNkZXZfaWQsIGNkZXZfY291bnQ7DQo+ID4gKyAgICAg ICBpbnQgcmV0Ow0KPiA+ICsNCj4gPiArICAgICAgIHQtPmNyeXB0b19hZHB0ci5pZCA9IDA7DQo+ ID4gKyAgICAgICByZXQgPSBydGVfZXZlbnRfY3J5cHRvX2FkYXB0ZXJfY3JlYXRlKHQtPmNyeXB0 b19hZHB0ci5pZCwgb3B0LQ0KPiA+ZGV2X2lkLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAmcG9ydF9jb25mLCAwKTsNCj4gPiArICAgICAgIGlmIChy ZXQpDQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gKw0KPiA+ICsgICAgICAg Y2Rldl9jb3VudCA9IHJ0ZV9jcnlwdG9kZXZfY291bnQoKTsNCj4gPiArICAgICAgIGZvciAoY2Rl dl9pZCA9IDA7IGNkZXZfaWQgPCBjZGV2X2NvdW50OyBjZGV2X2lkKyspIHsNCj4gPiArICAgICAg ICAgICAgICAgdWludDMyX3QgY2FwOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0g cnRlX2V2ZW50X2NyeXB0b19hZGFwdGVyX2NhcHNfZ2V0KG9wdC0+ZGV2X2lkLCBjZGV2X2lkLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJmNhcCk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICBldnRfZXJyKCJGYWlsZWQgdG8gZ2V0IGNyeXB0byBhZGFwdGVyIGNhcGFi aWxpdGllcyIpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4g KyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgIGlmICgoKG9wdC0+ Y3J5cHRvX2FkcHRyX21vZGUgPT0NCj4gPiArICAgICAgICAgICAgICAgICAgICAgUlRFX0VWRU5U X0NSWVBUT19BREFQVEVSX09QX05FVykgJiYNCj4gPiArICAgICAgICAgICAgICAgICAgICAhKGNh cCAmDQo+ID4gKw0KPiBSVEVfRVZFTlRfQ1JZUFRPX0FEQVBURVJfQ0FQX0lOVEVSTkFMX1BPUlRf T1BfTkVXKSkgfHwNCj4gPiArICAgICAgICAgICAgICAgICAgICgob3B0LT5jcnlwdG9fYWRwdHJf bW9kZSA9PQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICBSVEVfRVZFTlRfQ1JZUFRPX0FEQVBU RVJfT1BfRk9SV0FSRCkgJiYNCj4gPiArICAgICAgICAgICAgICAgICAgICAhKGNhcCAmDQo+ID4g Kw0KPiBSVEVfRVZFTlRfQ1JZUFRPX0FEQVBURVJfQ0FQX0lOVEVSTkFMX1BPUlRfT1BfRldEKSkp IHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBldnRfZXJyKCJjcnlwdG8gYWRhcHRlciAl cyBtb2RlIHVuc3VwcG9ydGVkXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgb3B0LT5jcnlwdG9fYWRwdHJfbW9kZSA/ICJPUF9GT1JXQVJEIiA6DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk9QX05FVyIp Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPiA+ICsgICAg ICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBpZiAoIShjYXAgJg0KPiA+ ICsNCj4gUlRFX0VWRU5UX0NSWVBUT19BREFQVEVSX0NBUF9TRVNTSU9OX1BSSVZBVEVfREFUQSkp IHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBldnRfZXJyKCJTdG9yaW5nIGNyeXB0byBz ZXNzaW9uIG5vdCBzdXBwb3J0ZWQiKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgICAg ICAgICAgaWYgKGNhcCAmDQo+ID4gKw0KPiBSVEVfRVZFTlRfQ1JZUFRPX0FEQVBURVJfQ0FQX0lO VEVSTkFMX1BPUlRfUVBfRVZfQklORCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBydGVfZXZlbnQgcmVzcG9uc2VfaW5mbzsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgcmVzcG9uc2VfaW5mby5ldmVudCA9IDA7DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgcmV0ID0gcnRlX2V2ZW50X2NyeXB0b19hZGFwdGVyX3F1ZXVlX3BhaXJfYWRkKA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdC0+Y3J5cHRvX2FkcHRyLmlkLCBjZGV2 X2lkLCAtMSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZyZXNwb25zZV9p bmZvKTsNCj4gPiArICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICByZXQgPSBydGVfZXZlbnRfY3J5cHRvX2FkYXB0ZXJfcXVldWVfcGFpcl9hZGQoDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LT5jcnlwdG9fYWRwdHIuaWQsIGNk ZXZfaWQsIC0xLCBOVUxMKTsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAg ICAgICBpZiAocmV0KQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIDA7DQo+ID4gK30NCj4gPiAr DQo+ID4gK3N0YXRpYyBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zeW1fc2Vzc2lvbiAqDQo+ID4gK2Ny eXB0b2Rldl9zeW1fc2Vzc19jcmVhdGUoc3RydWN0IHByb2RfZGF0YSAqcCwgc3RydWN0IHRlc3Rf cGVyZiAqdCkgew0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX3hmb3JtIGNpcGhl cl94Zm9ybTsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfY3J5cHRvZGV2X3N5bV9zZXNzaW9uICpz ZXNzOw0KPiA+ICsNCj4gPiArICAgICAgIGNpcGhlcl94Zm9ybS50eXBlID0gUlRFX0NSWVBUT19T WU1fWEZPUk1fQ0lQSEVSOw0KPiA+ICsgICAgICAgY2lwaGVyX3hmb3JtLmNpcGhlci5hbGdvID0g UlRFX0NSWVBUT19DSVBIRVJfTlVMTDsNCj4gPiArICAgICAgIGNpcGhlcl94Zm9ybS5jaXBoZXIu b3AgPSBSVEVfQ1JZUFRPX0NJUEhFUl9PUF9FTkNSWVBUOw0KPiA+ICsgICAgICAgY2lwaGVyX3hm b3JtLm5leHQgPSBOVUxMOw0KPiA+ICsNCj4gPiArICAgICAgIHNlc3MgPSBydGVfY3J5cHRvZGV2 X3N5bV9zZXNzaW9uX2NyZWF0ZSh0LQ0KPiA+Y3J5cHRvX2FkcHRyLnNlc3NfcG9vbCk7DQo+ID4g KyAgICAgICBpZiAoc2VzcyA9PSBOVUxMKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGV2dF9lcnIo IkZhaWxlZCB0byBjcmVhdGUgc3ltIHNlc3Npb24iKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIE5VTEw7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKHJ0ZV9jcnlw dG9kZXZfc3ltX3Nlc3Npb25faW5pdChwLT5jZGV2X2lkLCBzZXNzLCAmY2lwaGVyX3hmb3JtLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0LT5jcnlwdG9f YWRwdHIuc2Vzc19wcml2X3Bvb2wpKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGV2dF9lcnIoIkZh aWxlZCB0byBpbml0IHNlc3Npb24iKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7 DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmV0dXJuIHNlc3M7DQo+ID4gK30N Cj4gPiArDQo+ID4gIGludA0KPiA+ICBwZXJmX2V2ZW50X2Rldl9wb3J0X3NldHVwKHN0cnVjdCBl dnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25zDQo+ICpvcHQsDQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IHN0cmlkZSwgdWludDhfdCBuYl9xdWV1ZXMs IEBADQo+ID4gLTU5OCw2ICs4MTQsNTUgQEAgcGVyZl9ldmVudF9kZXZfcG9ydF9zZXR1cChzdHJ1 Y3QgZXZ0X3Rlc3QgKnRlc3QsDQo+IHN0cnVjdCBldnRfb3B0aW9ucyAqb3B0LA0KPiA+ICAgICAg ICAgICAgICAgICByZXQgPSBwZXJmX2V2ZW50X3RpbWVyX2FkYXB0ZXJfc2V0dXAodCk7DQo+ID4g ICAgICAgICAgICAgICAgIGlmIChyZXQpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHJldDsNCj4gPiArICAgICAgIH0gZWxzZSBpZiAob3B0LT5wcm9kX3R5cGUgPT0NCj4gRVZU X1BST0RfVFlQRV9FVkVOVF9DUllQVE9fQURQVFIpIHsNCj4gPiArICAgICAgICAgICAgICAgdWlu dDhfdCBjZGV2X2lkID0gMDsNCj4gPiArICAgICAgICAgICAgICAgdWludDE2X3QgcXBfaWQgPSAw Ow0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgcHJvZCA9IDA7DQo+ID4gKyAgICAgICAgICAg ICAgIGZvciAoOyBwb3J0IDwgcGVyZl9uYl9ldmVudF9wb3J0cyhvcHQpOyBwb3J0KyspIHsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9zeW1fc2Vzc2lv biAqY3J5cHRvX3Nlc3M7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgdW5pb24gcnRlX2V2 ZW50X2NyeXB0b19tZXRhZGF0YSBtX2RhdGE7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg c3RydWN0IHByb2RfZGF0YSAqcCA9ICZ0LT5wcm9kW3BvcnRdOw0KPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgIHVpbnQzMl90IGZsb3dfaWQ7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIGlmIChxcF9pZCA9PSBydGVfY3J5cHRvZGV2X3F1ZXVlX3BhaXJfY291bnQoY2Rldl9p ZCkpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNkZXZfaWQrKzsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFwX2lkID0gMDsNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHAt PmRldl9pZCA9IG9wdC0+ZGV2X2lkOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHAtPnBv cnRfaWQgPSBwb3J0Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHAtPnF1ZXVlX2lkID0g cHJvZCAqIHN0cmlkZTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBwLT5jZGV2X2lkID0g Y2Rldl9pZDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBwLT5jZGV2X3FwX2lkID0gcXBf aWQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgcC0+Y3J5cHRvX3Nlc3MgPSBydGVfem1h bGxvY19zb2NrZXQoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBz aXplb2YoY3J5cHRvX3Nlc3MpICogdC0+bmJfZmxvd3MsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBSVEVfQ0FDSEVfTElORV9TSVpFLCBvcHQtPnNvY2tldF9pZCk7DQo+ID4g Kw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YS5yZXF1ZXN0X2luZm8uY2Rldl9p ZCA9IHAtPmNkZXZfaWQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhLnJlcXVl c3RfaW5mby5xdWV1ZV9wYWlyX2lkID0gcC0+Y2Rldl9xcF9pZDsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICBtX2RhdGEucmVzcG9uc2VfaW5mby5vcCA9IFJURV9FVkVOVF9PUF9ORVc7DQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgbV9kYXRhLnJlc3BvbnNlX2luZm8uc2NoZWRfdHlw ZSA9DQo+IFJURV9TQ0hFRF9UWVBFX0FUT01JQzsNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBtX2RhdGEucmVzcG9uc2VfaW5mby5ldmVudF90eXBlID0gUlRFX0VWRU5UX1RZUEVfQ1BVOw0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG1fZGF0YS5yZXNwb25zZV9pbmZvLnF1ZXVlX2lk ID0gcC0+cXVldWVfaWQ7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIChmbG93X2lk ID0gMDsgZmxvd19pZCA8IHQtPm5iX2Zsb3dzOyBmbG93X2lkKyspIHsNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNyeXB0b19zZXNzID0gY3J5cHRvZGV2X3N5bV9zZXNzX2Ny ZWF0ZShwLCB0KTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjcnlw dG9fc2VzcyA9PSBOVUxMKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm4gLUVOT01FTTsNCj4gPiArDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtX2RhdGEucmVzcG9uc2VfaW5mby5mbG93X2lkID0gZmxvd19pZDsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9jcnlwdG9kZXZfc3ltX3Nlc3Npb25fc2V0 X3VzZXJfZGF0YSgNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3J5cHRvX3Nlc3MsICZtX2RhdGEsIHNpemVvZihtX2RhdGEpKTsNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHAtPmNyeXB0b19zZXNzW2Zsb3dfaWRdID0gY3J5cHRvX3Nlc3M7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgIHAtPnQgPSB0Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHFwX2lkKys7DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgcHJvZCsrOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ ID4gKw0KPiA+ICsgICAgICAgICAgICAgICByZXQgPSBwZXJmX2V2ZW50X2NyeXB0b19hZGFwdGVy X3NldHVwKHQsICpwb3J0X2NvbmYpOw0KPiA+ICsgICAgICAgICAgICAgICBpZiAocmV0KQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7DQo+ID4gICAgICAgICB9IGVsc2Ug ew0KPiA+ICAgICAgICAgICAgICAgICBwcm9kID0gMDsNCj4gPiAgICAgICAgICAgICAgICAgZm9y ICggOyBwb3J0IDwgcGVyZl9uYl9ldmVudF9wb3J0cyhvcHQpOyBwb3J0KyspIHsgQEANCj4gPiAt NjU5LDcgKzkyNCw4IEBAIHBlcmZfb3B0X2NoZWNrKHN0cnVjdCBldnRfb3B0aW9ucyAqb3B0LCB1 aW50NjRfdA0KPiBuYl9xdWV1ZXMpDQo+ID4gICAgICAgICB9DQo+ID4NCj4gPiAgICAgICAgIGlm IChvcHQtPnByb2RfdHlwZSA9PSBFVlRfUFJPRF9UWVBFX1NZTlQgfHwNCj4gPiAtICAgICAgICAg ICAgICAgICAgICAgICBvcHQtPnByb2RfdHlwZSA9PSBFVlRfUFJPRF9UWVBFX0VWRU5UX1RJTUVS X0FEUFRSKSB7DQo+ID4gKyAgICAgICAgICAgb3B0LT5wcm9kX3R5cGUgPT0gRVZUX1BST0RfVFlQ RV9FVkVOVF9USU1FUl9BRFBUUiB8fA0KPiA+ICsgICAgICAgICAgIG9wdC0+cHJvZF90eXBlID09 IEVWVF9QUk9EX1RZUEVfRVZFTlRfQ1JZUFRPX0FEUFRSKSB7DQo+ID4gICAgICAgICAgICAgICAg IC8qIFZhbGlkYXRlIHByb2R1Y2VyIGxjb3JlcyAqLw0KPiA+ICAgICAgICAgICAgICAgICBpZiAo ZXZ0X2xjb3Jlc19oYXNfb3ZlcmxhcChvcHQtPnBsY29yZXMsDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9nZXRfbWFpbl9sY29yZSgpKSkgeyBAQA0KPiA+ IC03NjcsOCArMTAzMyw3IEBAIHBlcmZfZXRoZGV2X3NldHVwKHN0cnVjdCBldnRfdGVzdCAqdGVz dCwgc3RydWN0DQo+IGV2dF9vcHRpb25zICpvcHQpDQo+ID4gICAgICAgICAgICAgICAgIH0sDQo+ ID4gICAgICAgICB9Ow0KPiA+DQo+ID4gLSAgICAgICBpZiAob3B0LT5wcm9kX3R5cGUgPT0gRVZU X1BST0RfVFlQRV9TWU5UIHx8DQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgb3B0LT5wcm9k X3R5cGUgPT0gRVZUX1BST0RfVFlQRV9FVkVOVF9USU1FUl9BRFBUUikNCj4gPiArICAgICAgIGlm IChvcHQtPnByb2RfdHlwZSAhPSBFVlRfUFJPRF9UWVBFX0VUSF9SWF9BRFBUUikNCj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4NCj4gPiAgICAgICAgIGlmICghcnRlX2V0aF9kZXZf Y291bnRfYXZhaWwoKSkgeyBAQCAtODQxLDYgKzExMDYsMTM5IEBAIHZvaWQNCj4gPiBwZXJmX2V0 aGRldl9kZXN0cm95KHN0cnVjdCBldnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25zICpv cHQpDQo+ID4gICAgICAgICB9DQo+ID4gIH0NCj4gPg0KPiA+ICtpbnQNCj4gPiArcGVyZl9jcnlw dG9kZXZfc2V0dXAoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9w dCkNCj4gPiArew0KPiA+ICsgICAgICAgdWludDhfdCBjZGV2X2NvdW50LCBjZGV2X2lkLCBuYl9w bGNvcmVzLCBuYl9xcHM7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdGVzdF9wZXJmICp0ID0gZXZ0X3Rl c3RfcHJpdih0ZXN0KTsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBtYXhfc2Vzc2lvbl9zaXpl Ow0KPiA+ICsgICAgICAgdWludDMyX3QgbmJfc2Vzc2lvbnM7DQo+ID4gKyAgICAgICBpbnQgcmV0 Ow0KPiA+ICsNCj4gPiArICAgICAgIGlmIChvcHQtPnByb2RfdHlwZSAhPSBFVlRfUFJPRF9UWVBF X0VWRU5UX0NSWVBUT19BRFBUUikNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIDA7DQo+ID4g Kw0KPiA+ICsgICAgICAgY2Rldl9jb3VudCA9IHJ0ZV9jcnlwdG9kZXZfY291bnQoKTsNCj4gPiAr ICAgICAgIGlmIChjZGV2X2NvdW50ID09IDApIHsNCj4gPiArICAgICAgICAgICAgICAgZXZ0X2Vy cigiTm8gY3J5cHRvIGRldmljZXMgYXZhaWxhYmxlXG4iKTsNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIC1FTk9ERVY7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgdC0+Y3J5 cHRvX2FkcHRyLm9wX3Bvb2wgPSBydGVfY3J5cHRvX29wX3Bvb2xfY3JlYXRlKA0KPiA+ICsgICAg ICAgICAgICAgICAiY3J5cHRvX29wX3Bvb2wiLCBSVEVfQ1JZUFRPX09QX1RZUEVfU1lNTUVUUklD LCBvcHQtDQo+ID5wb29sX3N6LA0KPiA+ICsgICAgICAgICAgICAgICAxMjgsIDAsIHJ0ZV9zb2Nr ZXRfaWQoKSk7DQo+ID4gKyAgICAgICBpZiAodC0+Y3J5cHRvX2FkcHRyLm9wX3Bvb2wgPT0gTlVM TCkgew0KPiA+ICsgICAgICAgICAgICAgICBldnRfZXJyKCJGYWlsZWQgdG8gY3JlYXRlIGNyeXB0 byBvcCBwb29sIik7DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOw0KPiA+ICsg ICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIG5iX3Nlc3Npb25zID0gZXZ0X25yX2FjdGl2ZV9s Y29yZXMob3B0LT5wbGNvcmVzKSAqIHQtPm5iX2Zsb3dzOw0KPiA+ICsgICAgICAgdC0+Y3J5cHRv X2FkcHRyLnNlc3NfcG9vbCA9DQo+IHJ0ZV9jcnlwdG9kZXZfc3ltX3Nlc3Npb25fcG9vbF9jcmVh dGUoDQo+ID4gKyAgICAgICAgICAgICAgICJjYV9zZXNzX3Bvb2wiLCBuYl9zZXNzaW9ucywgMCwg MCwNCj4gPiArICAgICAgICAgICAgICAgc2l6ZW9mKHVuaW9uIHJ0ZV9ldmVudF9jcnlwdG9fbWV0 YWRhdGEpLCBTT0NLRVRfSURfQU5ZKTsNCj4gPiArICAgICAgIGlmICh0LT5jcnlwdG9fYWRwdHIu c2Vzc19wb29sID09IE5VTEwpIHsNCj4gPiArICAgICAgICAgICAgICAgZXZ0X2VycigiRmFpbGVk IHRvIGNyZWF0ZSBzeW0gc2Vzc2lvbiBwb29sIik7DQo+ID4gKyAgICAgICAgICAgICAgIHJldCA9 IC1FTk9NRU07DQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+ICsgICAgICAgfQ0K PiA+ICsNCj4gPiArICAgICAgIG1heF9zZXNzaW9uX3NpemUgPSAwOw0KPiA+ICsgICAgICAgZm9y IChjZGV2X2lkID0gMDsgY2Rldl9pZCA8IGNkZXZfY291bnQ7IGNkZXZfaWQrKykgew0KPiA+ICsg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc2Vzc2lvbl9zaXplOw0KPiA+ICsNCj4gPiArICAg ICAgICAgICAgICAgc2Vzc2lvbl9zaXplID0NCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBy dGVfY3J5cHRvZGV2X3N5bV9nZXRfcHJpdmF0ZV9zZXNzaW9uX3NpemUoY2Rldl9pZCk7DQo+ID4g KyAgICAgICAgICAgICAgIGlmIChzZXNzaW9uX3NpemUgPiBtYXhfc2Vzc2lvbl9zaXplKQ0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIG1heF9zZXNzaW9uX3NpemUgPSBzZXNzaW9uX3NpemU7 DQo+ID4gKyAgICAgICB9DQo+ID4gKyAgICAgICBtYXhfc2Vzc2lvbl9zaXplICs9IHNpemVvZih1 bmlvbiBydGVfZXZlbnRfY3J5cHRvX21ldGFkYXRhKTsNCj4gPiArICAgICAgIHQtPmNyeXB0b19h ZHB0ci5zZXNzX3ByaXZfcG9vbCA9IHJ0ZV9tZW1wb29sX2NyZWF0ZSgNCj4gPiArICAgICAgICAg ICAgICAgImNhX3Nlc3NfcHJpdl9wb29sIiwgbmJfc2Vzc2lvbnMsIG1heF9zZXNzaW9uX3NpemUs IDAsIDAsIE5VTEwsDQo+ID4gKyAgICAgICAgICAgICAgIE5VTEwsIE5VTEwsIE5VTEwsIFNPQ0tF VF9JRF9BTlksIDApOw0KPiA+ICsgICAgICAgaWYgKHQtPmNyeXB0b19hZHB0ci5zZXNzX3ByaXZf cG9vbCA9PSBOVUxMKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGV2dF9lcnIoImZhaWxlZCB0byBj cmVhdGUgc3ltIHNlc3Npb24gcHJpdmF0ZSBwb29sIik7DQo+ID4gKyAgICAgICAgICAgICAgIHJl dCA9IC1FTk9NRU07DQo+ID4gKyAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+ICsgICAgICAg fQ0KPiA+ICsNCj4gPiArICAgICAgIG5iX3BsY29yZXMgPSBldnRfbnJfYWN0aXZlX2xjb3Jlcyhv cHQtPnBsY29yZXMpOw0KPiA+ICsgICAgICAgbmJfcXBzID0gKG5iX3BsY29yZXMgJSBjZGV2X2Nv dW50KSA/IChuYl9wbGNvcmVzIC8gY2Rldl9jb3VudCkgKyAxIDoNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYl9wbGNvcmVzIC8gY2Rldl9jb3VudDsN Cj4gPiArICAgICAgIGZvciAoY2Rldl9pZCA9IDA7IGNkZXZfaWQgPCBjZGV2X2NvdW50OyBjZGV2 X2lkKyspIHsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfcXBfY29u ZiBxcF9jb25mOw0KPiA+ICsgICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9jb25m aWcgY29uZjsNCj4gPiArICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfaW5mbyBp bmZvOw0KPiA+ICsgICAgICAgICAgICAgICBpbnQgcXBfaWQ7DQo+ID4gKw0KPiA+ICsgICAgICAg ICAgICAgICBydGVfY3J5cHRvZGV2X2luZm9fZ2V0KGNkZXZfaWQsICZpbmZvKTsNCj4gPiArICAg ICAgICAgICAgICAgaWYgKG5iX3FwcyA+IGluZm8ubWF4X25iX3F1ZXVlX3BhaXJzKSB7DQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgZXZ0X2VycigiTm90IGVub3VnaCBxdWV1ZSBwYWlycyBw ZXIgY3J5cHRvZGV2ICgldSkiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bmJfcXBzKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRUlOVkFMOw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gZXJyOw0KPiA+ICsgICAgICAgICAgICAgICB9 DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBjb25mLm5iX3F1ZXVlX3BhaXJzID0gbmJfcXBz Ow0KPiA+ICsgICAgICAgICAgICAgICBjb25mLnNvY2tldF9pZCA9IFNPQ0tFVF9JRF9BTlk7DQo+ ID4gKyAgICAgICAgICAgICAgIGNvbmYuZmZfZGlzYWJsZSA9IFJURV9DUllQVE9ERVZfRkZfU0VD VVJJVFk7DQo+ID4gKw0KPiA+ICsgICAgICAgICAgICAgICByZXQgPSBydGVfY3J5cHRvZGV2X2Nv bmZpZ3VyZShjZGV2X2lkLCAmY29uZik7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQpIHsN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBldnRfZXJyKCJGYWlsZWQgdG8gY29uZmlndXJl IGNyeXB0b2RldiAoJXUpIiwgY2Rldl9pZCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg Z290byBlcnI7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICAgICAg ICAgIHFwX2NvbmYubmJfZGVzY3JpcHRvcnMgPSBOQl9DUllQVE9ERVZfREVTQ1JJUFRPUlM7DQo+ ID4gKyAgICAgICAgICAgICAgIHFwX2NvbmYubXBfc2Vzc2lvbiA9IHQtPmNyeXB0b19hZHB0ci5z ZXNzX3Bvb2w7DQo+ID4gKyAgICAgICAgICAgICAgIHFwX2NvbmYubXBfc2Vzc2lvbl9wcml2YXRl ID0NCj4gPiArIHQtPmNyeXB0b19hZHB0ci5zZXNzX3ByaXZfcG9vbDsNCj4gPiArDQo+ID4gKyAg ICAgICAgICAgICAgIGZvciAocXBfaWQgPSAwOyBxcF9pZCA8IGNvbmYubmJfcXVldWVfcGFpcnM7 IHFwX2lkKyspIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBydGVfY3J5cHRv ZGV2X3F1ZXVlX3BhaXJfc2V0dXAoDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjZGV2X2lkLCBxcF9pZCwgJnFwX2NvbmYsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBydGVfY3J5cHRvZGV2X3NvY2tldF9pZChjZGV2X2lkKSk7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHJldCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZXZ0X2VycigiRmFpbGVkIHRvIHNldHVwIHF1ZXVlIHBhaXJzIG9uIGNyeXB0b2RldiAl dVxuIiwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Rldl9p ZCk7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArICAg ICAgIH0NCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gPiArZXJyOg0KPiA+ICsgICAg ICAgcnRlX21lbXBvb2xfZnJlZSh0LT5jcnlwdG9fYWRwdHIub3BfcG9vbCk7DQo+ID4gKyAgICAg ICBydGVfbWVtcG9vbF9mcmVlKHQtPmNyeXB0b19hZHB0ci5zZXNzX3Bvb2wpOw0KPiA+ICsgICAg ICAgcnRlX21lbXBvb2xfZnJlZSh0LT5jcnlwdG9fYWRwdHIuc2Vzc19wcml2X3Bvb2wpOw0KPiA+ ICsNCj4gPiArICAgICAgIHJldHVybiByZXQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQNCj4g PiArcGVyZl9jcnlwdG9kZXZfZGVzdHJveShzdHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsIHN0cnVjdCBl dnRfb3B0aW9ucw0KPiA+ICsqb3B0KSB7DQo+ID4gKyAgICAgICB1aW50OF90IGNkZXZfaWQsIGNk ZXZfY291bnQgPSBydGVfY3J5cHRvZGV2X2NvdW50KCk7DQo+ID4gKyAgICAgICBzdHJ1Y3QgdGVz dF9wZXJmICp0ID0gZXZ0X3Rlc3RfcHJpdih0ZXN0KTsNCj4gPiArDQo+ID4gKyAgICAgICBSVEVf U0VUX1VTRUQob3B0KTsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAob3B0LT5wcm9kX3R5cGUgIT0g RVZUX1BST0RfVFlQRV9FVkVOVF9DUllQVE9fQURQVFIpDQo+ID4gKyAgICAgICAgICAgICAgIHJl dHVybjsNCj4gPiArDQo+ID4gKyAgICAgICBydGVfZXZlbnRfY3J5cHRvX2FkYXB0ZXJfc3RvcCh0 LT5jcnlwdG9fYWRwdHIuaWQpOw0KPiA+ICsNCj4gPiArICAgICAgIGZvciAoY2Rldl9pZCA9IDA7 IGNkZXZfaWQgPCBjZGV2X2NvdW50OyBjZGV2X2lkKyspIHsNCj4gPiArICAgICAgICAgICAgICAg cnRlX2NyeXB0b2Rldl9zdG9wKGNkZXZfaWQpOw0KPiA+ICsgICAgICAgICAgICAgICBydGVfZXZl bnRfY3J5cHRvX2FkYXB0ZXJfcXVldWVfcGFpcl9kZWwodC0+Y3J5cHRvX2FkcHRyLmlkLA0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2Rldl9pZCwgLTEpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJ0ZV9ldmVu dF9jcnlwdG9fYWRhcHRlcl9mcmVlKHQtPmNyeXB0b19hZHB0ci5pZCk7DQo+ID4gKw0KPiA+ICsg ICAgICAgcnRlX21lbXBvb2xfZnJlZSh0LT5jcnlwdG9fYWRwdHIub3BfcG9vbCk7DQo+ID4gKyAg ICAgICBydGVfbWVtcG9vbF9mcmVlKHQtPmNyeXB0b19hZHB0ci5zZXNzX3Bvb2wpOw0KPiA+ICsg ICAgICAgcnRlX21lbXBvb2xfZnJlZSh0LT5jcnlwdG9fYWRwdHIuc2Vzc19wcml2X3Bvb2wpOw0K PiA+ICt9DQo+ID4gKw0KPiA+ICBpbnQNCj4gPiAgcGVyZl9tZW1wb29sX3NldHVwKHN0cnVjdCBl dnRfdGVzdCAqdGVzdCwgc3RydWN0IGV2dF9vcHRpb25zICpvcHQpICB7DQo+ID4gZGlmZiAtLWdp dCBhL2FwcC90ZXN0LWV2ZW50ZGV2L3Rlc3RfcGVyZl9jb21tb24uaA0KPiA+IGIvYXBwL3Rlc3Qt ZXZlbnRkZXYvdGVzdF9wZXJmX2NvbW1vbi5oDQo+ID4gaW5kZXggMTRkY2Y4MDQyOS4uZDlhZDNh MGIwZCAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVzdC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9u LmgNCj4gPiArKysgYi9hcHAvdGVzdC1ldmVudGRldi90ZXN0X3BlcmZfY29tbW9uLmgNCj4gPiBA QCAtOSw5ICs5LDExIEBADQo+ID4gICNpbmNsdWRlIDxzdGRib29sLmg+DQo+ID4gICNpbmNsdWRl IDx1bmlzdGQuaD4NCj4gPg0KPiA+ICsjaW5jbHVkZSA8cnRlX2NyeXB0b2Rldi5oPg0KPiA+ICAj aW5jbHVkZSA8cnRlX2N5Y2xlcy5oPg0KPiA+ICAjaW5jbHVkZSA8cnRlX2V0aGRldi5oPg0KPiA+ ICAjaW5jbHVkZSA8cnRlX2V2ZW50ZGV2Lmg+DQo+ID4gKyNpbmNsdWRlIDxydGVfZXZlbnRfY3J5 cHRvX2FkYXB0ZXIuaD4NCj4gPiAgI2luY2x1ZGUgPHJ0ZV9ldmVudF9ldGhfcnhfYWRhcHRlci5o PiAgI2luY2x1ZGUNCj4gPiA8cnRlX2V2ZW50X3RpbWVyX2FkYXB0ZXIuaD4gICNpbmNsdWRlIDxy dGVfbGNvcmUuaD4gQEAgLTM3LDkgKzM5LDE4DQo+IEBADQo+ID4gc3RydWN0IHByb2RfZGF0YSB7 DQo+ID4gICAgICAgICB1aW50OF90IGRldl9pZDsNCj4gPiAgICAgICAgIHVpbnQ4X3QgcG9ydF9p ZDsNCj4gPiAgICAgICAgIHVpbnQ4X3QgcXVldWVfaWQ7DQo+ID4gKyAgICAgICB1aW50OF90IGNk ZXZfaWQ7DQo+ID4gKyAgICAgICB1aW50MTZfdCBjZGV2X3FwX2lkOw0KPiA+ICsgICAgICAgc3Ry dWN0IHJ0ZV9jcnlwdG9kZXZfc3ltX3Nlc3Npb24gKipjcnlwdG9fc2VzczsNCj4gPiAgICAgICAg IHN0cnVjdCB0ZXN0X3BlcmYgKnQ7DQo+ID4gIH0gX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gPg0K PiA+ICtzdHJ1Y3QgY3J5cHRvX2FkcHRyX2RhdGEgew0KPiA+ICsgICAgICAgdWludDhfdCBpZDsN Cj4gPiArICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbCAqb3BfcG9vbDsNCj4gPiArICAgICAgIHN0 cnVjdCBydGVfbWVtcG9vbCAqc2Vzc19wb29sOw0KPiA+ICsgICAgICAgc3RydWN0IHJ0ZV9tZW1w b29sICpzZXNzX3ByaXZfcG9vbDsgfTsNCj4gPg0KPiA+ICBzdHJ1Y3QgdGVzdF9wZXJmIHsNCj4g PiAgICAgICAgIC8qIERvbid0IGNoYW5nZSB0aGUgb2Zmc2V0IG9mICJkb25lIi4gU2lnbmFsIGhh bmRsZXIgdXNlIHRoaXMNCj4gPiBtZW1vcnkgQEAgLTU4LDYgKzY5LDcgQEAgc3RydWN0IHRlc3Rf cGVyZiB7DQo+ID4gICAgICAgICB1aW50OF90IHNjaGVkX3R5cGVfbGlzdFtFVlRfTUFYX1NUQUdF U10gX19ydGVfY2FjaGVfYWxpZ25lZDsNCj4gPiAgICAgICAgIHN0cnVjdCBydGVfZXZlbnRfdGlt ZXJfYWRhcHRlciAqdGltZXJfYWRwdHJbDQo+ID4gICAgICAgICAgICAgICAgIFJURV9FVkVOVF9U SU1FUl9BREFQVEVSX05VTV9NQVhdIF9fcnRlX2NhY2hlX2FsaWduZWQ7DQo+ID4gKyAgICAgICBz dHJ1Y3QgY3J5cHRvX2FkcHRyX2RhdGEgY3J5cHRvX2FkcHRyOw0KPiA+ICB9IF9fcnRlX2NhY2hl X2FsaWduZWQ7DQo+ID4NCj4gPiAgc3RydWN0IHBlcmZfZWx0IHsNCj4gPiBAQCAtODEsNiArOTMs OCBAQCBzdHJ1Y3QgcGVyZl9lbHQgew0KPiA+ICAgICAgICAgY29uc3QgdWludDhfdCBwb3J0ID0g dy0+cG9ydF9pZDtcDQo+ID4gICAgICAgICBjb25zdCB1aW50OF90IHByb2RfdGltZXJfdHlwZSA9 IFwNCj4gPiAgICAgICAgICAgICAgICAgb3B0LT5wcm9kX3R5cGUgPT0gRVZUX1BST0RfVFlQRV9F VkVOVF9USU1FUl9BRFBUUjtcDQo+ID4gKyAgICAgICBjb25zdCB1aW50OF90IHByb2RfY3J5cHRv X3R5cGUgPSBcDQo+ID4gKyAgICAgICAgICAgICAgIG9wdC0+cHJvZF90eXBlID09IEVWVF9QUk9E X1RZUEVfRVZFTlRfQ1JZUFRPX0FEUFRSO1wNCj4gPiAgICAgICAgIHVpbnQ4X3QgKmNvbnN0IHNj aGVkX3R5cGVfbGlzdCA9ICZ0LT5zY2hlZF90eXBlX2xpc3RbMF07XA0KPiA+ICAgICAgICAgc3Ry dWN0IHJ0ZV9tZW1wb29sICpjb25zdCBwb29sID0gdC0+cG9vbDtcDQo+ID4gICAgICAgICBjb25z dCB1aW50OF90IG5iX3N0YWdlcyA9IHQtPm9wdC0+bmJfc3RhZ2VzO1wgQEAgLTE1NCw2ICsxNjgs Nw0KPiA+IEBAIGludCBwZXJmX3Rlc3RfcmVzdWx0KHN0cnVjdCBldnRfdGVzdCAqdGVzdCwgc3Ry dWN0IGV2dF9vcHRpb25zDQo+ID4gKm9wdCk7ICBpbnQgcGVyZl9vcHRfY2hlY2soc3RydWN0IGV2 dF9vcHRpb25zICpvcHQsIHVpbnQ2NF90DQo+ID4gbmJfcXVldWVzKTsgIGludCBwZXJmX3Rlc3Rf c2V0dXAoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3QNCj4gPiBldnRfb3B0aW9ucyAqb3B0 KTsgIGludCBwZXJmX2V0aGRldl9zZXR1cChzdHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsDQo+ID4gc3Ry dWN0IGV2dF9vcHRpb25zICpvcHQpOw0KPiA+ICtpbnQgcGVyZl9jcnlwdG9kZXZfc2V0dXAoc3Ry dWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3QgZXZ0X29wdGlvbnMNCj4gPiArKm9wdCk7DQo+ID4g IGludCBwZXJmX21lbXBvb2xfc2V0dXAoc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3QgZXZ0 X29wdGlvbnMNCj4gPiAqb3B0KTsgIGludCBwZXJmX2V2ZW50X2Rldl9wb3J0X3NldHVwKHN0cnVj dCBldnRfdGVzdCAqdGVzdCwgc3RydWN0DQo+IGV2dF9vcHRpb25zICpvcHQsDQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IHN0cmlkZSwgdWludDhfdCBuYl9xdWV1 ZXMsIEBADQo+ID4gLTE2NCw2ICsxNzksNyBAQCBpbnQgcGVyZl9sYXVuY2hfbGNvcmVzKHN0cnVj dCBldnRfdGVzdCAqdGVzdCwgc3RydWN0DQo+ID4gZXZ0X29wdGlvbnMgKm9wdCwgIHZvaWQgcGVy Zl9vcHRfZHVtcChzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCwgdWludDhfdA0KPiA+IG5iX3F1ZXVl cyk7ICB2b2lkIHBlcmZfdGVzdF9kZXN0cm95KHN0cnVjdCBldnRfdGVzdCAqdGVzdCwgc3RydWN0 DQo+ID4gZXZ0X29wdGlvbnMgKm9wdCk7ICB2b2lkIHBlcmZfZXZlbnRkZXZfZGVzdHJveShzdHJ1 Y3QgZXZ0X3Rlc3QgKnRlc3QsDQo+ID4gc3RydWN0IGV2dF9vcHRpb25zICpvcHQpOw0KPiA+ICt2 b2lkIHBlcmZfY3J5cHRvZGV2X2Rlc3Ryb3koc3RydWN0IGV2dF90ZXN0ICp0ZXN0LCBzdHJ1Y3Qg ZXZ0X29wdGlvbnMNCj4gPiArKm9wdCk7DQo+ID4gIHZvaWQgcGVyZl9ldGhkZXZfZGVzdHJveShz dHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsIHN0cnVjdCBldnRfb3B0aW9ucw0KPiA+ICpvcHQpOyAgdm9p ZCBwZXJmX21lbXBvb2xfZGVzdHJveShzdHJ1Y3QgZXZ0X3Rlc3QgKnRlc3QsIHN0cnVjdA0KPiA+ IGV2dF9vcHRpb25zICpvcHQpOw0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2FwcC90ZXN0LWV2ZW50 ZGV2L3Rlc3RfcGVyZl9xdWV1ZS5jDQo+ID4gYi9hcHAvdGVzdC1ldmVudGRldi90ZXN0X3BlcmZf cXVldWUuYw0KPiA+IGluZGV4IGY0ZWEzYTc5NWYuLjU2NTdjOGIzY2QgMTAwNjQ0DQo+ID4gLS0t IGEvYXBwL3Rlc3QtZXZlbnRkZXYvdGVzdF9wZXJmX3F1ZXVlLmMNCj4gPiArKysgYi9hcHAvdGVz dC1ldmVudGRldi90ZXN0X3BlcmZfcXVldWUuYw0KPiA+IEBAIC00OSw2ICs0OSwyMyBAQCBwZXJm X3F1ZXVlX3dvcmtlcih2b2lkICphcmcsIGNvbnN0IGludA0KPiBlbmFibGVfZndkX2xhdGVuY3kp DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcnRlX3BhdXNlKCk7DQo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gICAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ ID4gKyAgICAgICAgICAgICAgIGlmIChwcm9kX2NyeXB0b190eXBlICYmDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAoZXYuZXZlbnRfdHlwZSA9PSBSVEVfRVZFTlRfVFlQRV9DUllQVE9ERVYpKSB7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wID0g ZXYuZXZlbnRfcHRyOw0KPiA+ICsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICBpZiAob3At PnN0YXR1cyA9PSBSVEVfQ1JZUFRPX09QX1NUQVRVU19TVUNDRVNTKSB7DQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBpZiAob3AtPnN5bS0+bV9kc3QgPT0gTlVMTCkNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXYuZXZlbnRfcHRyID0gb3At PnN5bS0+bV9zcmM7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2LmV2ZW50X3B0ciA9 IG9wLT5zeW0tPm1fZHN0Ow0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRl X2NyeXB0b19vcF9mcmVlKG9wKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug ew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnRlX2NyeXB0b19vcF9mcmVl KG9wKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsN Cj4gPiAgICAgICAgICAgICAgICAgaWYgKGVuYWJsZV9md2RfbGF0ZW5jeSAmJiAhcHJvZF90aW1l cl90eXBlKQ0KPiA+ICAgICAgICAgICAgICAgICAvKiBmaXJzdCBxIGluIHBpcGVsaW5lLCBtYXJr IHRpbWVzdGFtcCB0byBjb21wdXRlIGZ3ZCBsYXRlbmN5ICovDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgbWFya19md2RfbGF0ZW5jeSgmZXYsIG5iX3N0YWdlcyk7IEBAIC04OCw2DQo+ID4g KzEwNSwyNSBAQCBwZXJmX3F1ZXVlX3dvcmtlcl9idXJzdCh2b2lkICphcmcsIGNvbnN0IGludA0K PiBlbmFibGVfZndkX2xhdGVuY3kpDQo+ID4gICAgICAgICAgICAgICAgIH0NCj4gPg0KPiA+ICAg ICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbmJfcng7IGkrKykgew0KPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgIGlmIChwcm9kX2NyeXB0b190eXBlICYmDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIChldltpXS5ldmVudF90eXBlID09IFJURV9FVkVOVF9UWVBFX0NSWVBU T0RFVikpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydGVf Y3J5cHRvX29wICpvcCA9DQo+ID4gKyBldltpXS5ldmVudF9wdHI7DQo+ID4gKw0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wLT5zdGF0dXMgPT0NCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSVEVfQ1JZUFRPX09QX1NUQVRVU19TVUNDRVNT KSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcC0+ c3ltLT5tX2RzdCA9PSBOVUxMKQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGV2W2ldLmV2ZW50X3B0ciA9DQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcC0+c3ltLT5tX3NyYzsNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQ0KPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2W2ldLmV2ZW50X3B0 ciA9DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBvcC0+c3ltLT5tX2RzdDsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcnRlX2NyeXB0b19vcF9mcmVlKG9wKTsNCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIH0gZWxzZSB7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJ0ZV9jcnlwdG9fb3BfZnJlZShvcCk7DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH0NCj4gPiArDQo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuYWJsZV9md2RfbGF0ZW5jeSAmJiAhcHJv ZF90aW1lcl90eXBlKSB7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydGVf cHJlZmV0Y2gwKGV2W2krMV0uZXZlbnRfcHRyKTsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIGZpcnN0IHF1ZXVlIGluIHBpcGVsaW5lLg0KPiA+IEBAIC0yNjksNiArMzA1 LDIwIEBAIHBlcmZfcXVldWVfZXZlbnRkZXZfc2V0dXAoc3RydWN0IGV2dF90ZXN0DQo+ICp0ZXN0 LCBzdHJ1Y3QgZXZ0X29wdGlvbnMgKm9wdCkNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiByZXQ7DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICAg ICAgICAgICAgICAgICB9DQo+ID4gKyAgICAgICB9IGVsc2UgaWYgKG9wdC0+cHJvZF90eXBlID09 DQo+IEVWVF9QUk9EX1RZUEVfRVZFTlRfQ1JZUFRPX0FEUFRSKSB7DQo+ID4gKyAgICAgICAgICAg ICAgIHVpbnQ4X3QgY2Rldl9pZCwgY2Rldl9jb3VudDsNCj4gPiArDQo+ID4gKyAgICAgICAgICAg ICAgIGNkZXZfY291bnQgPSBydGVfY3J5cHRvZGV2X2NvdW50KCk7DQo+ID4gKyAgICAgICAgICAg ICAgIGZvciAoY2Rldl9pZCA9IDA7IGNkZXZfaWQgPCBjZGV2X2NvdW50OyBjZGV2X2lkKyspIHsN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBydGVfY3J5cHRvZGV2X3N0YXJ0KGNk ZXZfaWQpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXQpIHsNCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dF9lcnIoIkZhaWxlZCB0byBzdGFydCBjcnlw dG9kZXYgJXUiLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj ZGV2X2lkKTsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ ID4gKw0KPiA+ICsgICAgICAgICAgICAgICBydGVfZXZlbnRfY3J5cHRvX2FkYXB0ZXJfc3RhcnQo dC0+Y3J5cHRvX2FkcHRyLmlkKTsNCj4gPiAgICAgICAgIH0NCj4gPg0KPiA+ICAgICAgICAgcmV0 dXJuIDA7DQo+ID4gQEAgLTMxMSwxMSArMzYxLDEzIEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZXZ0 X3Rlc3Rfb3BzIHBlcmZfcXVldWUgPSAgew0KPiA+ICAgICAgICAgLnRlc3Rfc2V0dXAgICAgICAg ICA9IHBlcmZfdGVzdF9zZXR1cCwNCj4gPiAgICAgICAgIC5tZW1wb29sX3NldHVwICAgICAgPSBw ZXJmX21lbXBvb2xfc2V0dXAsDQo+ID4gICAgICAgICAuZXRoZGV2X3NldHVwICAgICAgID0gcGVy Zl9ldGhkZXZfc2V0dXAsDQo+ID4gKyAgICAgICAuY3J5cHRvZGV2X3NldHVwICAgID0gcGVyZl9j cnlwdG9kZXZfc2V0dXAsDQo+ID4gICAgICAgICAuZXZlbnRkZXZfc2V0dXAgICAgID0gcGVyZl9x dWV1ZV9ldmVudGRldl9zZXR1cCwNCj4gPiAgICAgICAgIC5sYXVuY2hfbGNvcmVzICAgICAgPSBw ZXJmX3F1ZXVlX2xhdW5jaF9sY29yZXMsDQo+ID4gICAgICAgICAuZXZlbnRkZXZfZGVzdHJveSAg ID0gcGVyZl9ldmVudGRldl9kZXN0cm95LA0KPiA+ICAgICAgICAgLm1lbXBvb2xfZGVzdHJveSAg ICA9IHBlcmZfbWVtcG9vbF9kZXN0cm95LA0KPiA+ICAgICAgICAgLmV0aGRldl9kZXN0cm95ICAg ICA9IHBlcmZfZXRoZGV2X2Rlc3Ryb3ksDQo+ID4gKyAgICAgICAuY3J5cHRvZGV2X2Rlc3Ryb3kg ID0gcGVyZl9jcnlwdG9kZXZfZGVzdHJveSwNCj4gPiAgICAgICAgIC50ZXN0X3Jlc3VsdCAgICAg ICAgPSBwZXJmX3Rlc3RfcmVzdWx0LA0KPiA+ICAgICAgICAgLnRlc3RfZGVzdHJveSAgICAgICA9 IHBlcmZfdGVzdF9kZXN0cm95LA0KPiA+ICB9Ow0KPiA+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVz L3Rvb2xzL3Rlc3RldmVudGRldi5yc3QNCj4gPiBiL2RvYy9ndWlkZXMvdG9vbHMvdGVzdGV2ZW50 ZGV2LnJzdA0KPiA+IGluZGV4IDQ4ZWZiOWVhNmUuLmY3ZDgxMzIyNmQgMTAwNjQ0DQo+ID4gLS0t IGEvZG9jL2d1aWRlcy90b29scy90ZXN0ZXZlbnRkZXYucnN0DQo+ID4gKysrIGIvZG9jL2d1aWRl cy90b29scy90ZXN0ZXZlbnRkZXYucnN0DQo+ID4gQEAgLTEyMCw2ICsxMjAsMTAgQEAgVGhlIGZv bGxvd2luZyBhcmUgdGhlIGFwcGxpY2F0aW9uIGNvbW1hbmQtbGluZQ0KPiBvcHRpb25zOg0KPiA+ DQo+ID4gICAgICAgICBVc2UgYnVyc3QgbW9kZSBldmVudCB0aW1lciBhZGFwdGVyIGFzIHByb2R1 Y2VyLg0KPiA+DQo+ID4gKyogYGAtLXByb2RfdHlwZV9jcnlwdG9kZXZgYA0KPiA+ICsNCj4gPiAr ICAgICAgICBVc2UgY3J5cHRvIGRldmljZSBhcyBwcm9kdWNlci4NCj4gPiArDQo+ID4gICogYGAt LXRpbWVyX3RpY2tfbnNlY2BgDQo+ID4NCj4gPiAgICAgICAgIFVzZWQgdG8gZGljdGF0ZSBudW1i ZXIgb2YgbmFubyBzZWNvbmRzIGJldHdlZW4gYnVja2V0DQo+ID4gdHJhdmVyc2FsIG9mIHRoZSBA QCAtMTQ4LDYgKzE1MiwxMSBAQCBUaGUgZm9sbG93aW5nIGFyZSB0aGUgYXBwbGljYXRpb24NCj4g Y29tbWFuZC1saW5lIG9wdGlvbnM6DQo+ID4gICAgICAgICB0aW1lb3V0IGlzIG91dCBvZiB0aGUg c3VwcG9ydGVkIHJhbmdlIG9mIGV2ZW50IGRldmljZSBpdCB3aWxsIGJlDQo+ID4gICAgICAgICBh ZGp1c3RlZCB0byB0aGUgaGlnaGVzdC9sb3dlc3Qgc3VwcG9ydGVkIGRlcXVldWUgdGltZW91dA0K PiBzdXBwb3J0ZWQuDQo+ID4NCj4gPiArKiBgYC0tY3J5cHRvX2FkcHRyX21vZGVgYA0KPiA+ICsN Cj4gPiArICAgICAgICBTZXQgY3J5cHRvIGFkYXB0ZXIgbW9kZS4gVXNlIDAgZm9yIE9QX05FVyAo ZGVmYXVsdCkgYW5kIDEgZm9yDQo+ID4gKyAgICAgICAgT1BfRk9SV0FSRCBtb2RlLg0KPiA+ICsN Cj4gPiAgKiBgYC0tbWJ1Zl9zemBgDQo+ID4NCj4gPiAgICAgICAgIFNldCBwYWNrZXQgbWJ1ZiBz aXplLiBDYW4gYmUgdXNlZCB0byBjb25maWd1cmUgSnVtYm8gRnJhbWVzLg0KPiA+IE9ubHkgQEAg LTQyMCw2ICs0MjksNyBAQCBTdXBwb3J0ZWQgYXBwbGljYXRpb24gY29tbWFuZCBsaW5lIG9wdGlv bnMNCj4gYXJlIGZvbGxvd2luZzo6DQo+ID4gICAgICAgICAgLS1wcm9kX3R5cGVfZXRoZGV2DQo+ ID4gICAgICAgICAgLS1wcm9kX3R5cGVfdGltZXJkZXZfYnVyc3QNCj4gPiAgICAgICAgICAtLXBy b2RfdHlwZV90aW1lcmRldg0KPiA+ICsgICAgICAgIC0tcHJvZF90eXBlX2NyeXB0b2Rldg0KPiA+ ICAgICAgICAgIC0tcHJvZF9lbnFfYnVyc3Rfc3oNCj4gPiAgICAgICAgICAtLXRpbWVyX3RpY2tf bnNlYw0KPiA+ICAgICAgICAgIC0tbWF4X3Rtb19uc2VjDQo+ID4gQEAgLTQyNyw2ICs0MzcsNyBA QCBTdXBwb3J0ZWQgYXBwbGljYXRpb24gY29tbWFuZCBsaW5lIG9wdGlvbnMgYXJlDQo+IGZvbGxv d2luZzo6DQo+ID4gICAgICAgICAgLS1uYl90aW1lcnMNCj4gPiAgICAgICAgICAtLW5iX3RpbWVy X2FkcHRycw0KPiA+ICAgICAgICAgIC0tZGVxX3Rtb19uc2VjDQo+ID4gKyAgICAgICAgLS1jcnlw dG9fYWRwdHJfbW9kZQ0KPiA+DQo+ID4gIEV4YW1wbGUNCj4gPiAgXl5eXl5eXg0KPiA+IEBAIC01 MjksMTIgKzU0MCwxNCBAQCBTdXBwb3J0ZWQgYXBwbGljYXRpb24gY29tbWFuZCBsaW5lIG9wdGlv bnMgYXJlDQo+IGZvbGxvd2luZzo6DQo+ID4gICAgICAgICAgLS1wcm9kX3R5cGVfZXRoZGV2DQo+ ID4gICAgICAgICAgLS1wcm9kX3R5cGVfdGltZXJkZXZfYnVyc3QNCj4gPiAgICAgICAgICAtLXBy b2RfdHlwZV90aW1lcmRldg0KPiA+ICsgICAgICAgIC0tcHJvZF90eXBlX2NyeXB0b2Rldg0KPiA+ ICAgICAgICAgIC0tdGltZXJfdGlja19uc2VjDQo+ID4gICAgICAgICAgLS1tYXhfdG1vX25zZWMN Cj4gPiAgICAgICAgICAtLWV4cGlyeV9uc2VjDQo+ID4gICAgICAgICAgLS1uYl90aW1lcnMNCj4g PiAgICAgICAgICAtLW5iX3RpbWVyX2FkcHRycw0KPiA+ICAgICAgICAgIC0tZGVxX3Rtb19uc2Vj DQo+ID4gKyAgICAgICAgLS1jcnlwdG9fYWRwdHJfbW9kZQ0KPiA+DQo+ID4gIEV4YW1wbGUNCj4g PiAgXl5eXl5eXg0KPiA+IC0tDQo+ID4gMi4yNS4xDQo+ID4NCg==