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 375A7A0540; Wed, 6 Jul 2022 23:04:20 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id CA7EB4069D; Wed, 6 Jul 2022 23:04:19 +0200 (CEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mails.dpdk.org (Postfix) with ESMTP id 46AF940691 for ; Wed, 6 Jul 2022 23:04:17 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1657141457; x=1688677457; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XGvDhjHzrZtlf7+iE9iTtgYjFmrakJxkw2jzuksLwZQ=; b=kUomHrtb9UzEdgBGpmT9Ddc3FHHVUkttaD9BQdjL+/VM2q/5UrVQk64C ZLz+Ed7NjIQOisJWZ9pgd5kyrfeuf79VnAHSzoV+a3Mha0B0aExjOaPF9 UvBA2Pp99X6HODWNcH/YD2yaZh9xIU//n82w7FDG/eJ7p2x77HaEBQeA3 /5PSLspGulX3zpPs4nrsjazmHkrpxNOFdOiiqZ7UzueNzAE6MfMhmcKq1 Ok4Um8srkpV/oWhCCde0s2cGuOVlFvTwrOo6OyVO2NMRbcbnkBFtKZeQF dSA5lzkPsL/ugtqT3sKRND9/4SfII5B0f97ndDkPRD2plEpmFFpCPo0sd A==; X-IronPort-AV: E=McAfee;i="6400,9594,10400"; a="264284660" X-IronPort-AV: E=Sophos;i="5.92,250,1650956400"; d="scan'208";a="264284660" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2022 14:04:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,250,1650956400"; d="scan'208";a="568236074" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga006.jf.intel.com with ESMTP; 06 Jul 2022 14:04:15 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Wed, 6 Jul 2022 14:04:15 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Wed, 6 Jul 2022 14:04:15 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Wed, 6 Jul 2022 14:04:15 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dcUmJo72brTyA37vHvRe/XDMjOU8apsXSPRyL/gmEJKWxOIb6NzrpFtDbNHrj+3OJJyRE2n70NaiDiGAIPl/vw8lfTM19w6cAVJSSn87tAaOU9spYhZPL4clRjCl7BK0p/P/IqJ0kn38y1pIs6SXEI2mZl4bBv9i9nUYoNgWTalQUJ6IK7PNOrrZcMOyzG9YO5hojEnS+I4pt44IskmFDOkAy9eWNLvzTG9iz086Ycm+QdIXjXmK2gIBnKuyfR0wAL/OTE2hUEC3DWJvgQJzuZ67sbrA9IW7FGK9raOtNdiN/AEi1HFU124S8umk8A9S1U5rCcwr9bASV7lNRY2AmQ== 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=XGvDhjHzrZtlf7+iE9iTtgYjFmrakJxkw2jzuksLwZQ=; b=L/oCvOknejnRloqC0J95rraI2HFR3My39bha0qrH/7ev88kPp0XPrSyqsa2M2SflF5H5nDUrgQ19TtjqWVlBDWgRIhHOtNRTd07Nl7VUaAyR/wKItm4AJV4J9Hz+j+m1BvuhR4ZKAQj5gozXAvEWdniWVWbspoNR+Irs1m3PG8axQpzTpMqLhEbu5zyDNTZRQNtwI1hdkVChLOLGnUhxv7EPHXIRawJzAbHDsN8tnXghydCL45wKzy/OU48XhSJvyf5q0kcY0jKOXGoLUHmIR3EYelXan9CfVy/XN4jhzSWqJ8SRYi/xK72wHldarhr9SCcR/dzz/j9Ke4+8UJe4oQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BY5PR11MB4451.namprd11.prod.outlook.com (2603:10b6:a03:1cb::30) by PH0PR11MB4774.namprd11.prod.outlook.com (2603:10b6:510:40::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Wed, 6 Jul 2022 21:04:13 +0000 Received: from BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::1df7:bcbb:7825:37fe]) by BY5PR11MB4451.namprd11.prod.outlook.com ([fe80::1df7:bcbb:7825:37fe%7]) with mapi id 15.20.5417.016; Wed, 6 Jul 2022 21:04:13 +0000 From: "Chautru, Nicolas" To: Tom Rix , "dev@dpdk.org" , "thomas@monjalon.net" , "gakhil@marvell.com" , "hemant.agrawal@nxp.com" CC: "maxime.coquelin@redhat.com" , "mdr@ashroe.eu" , "Richardson, Bruce" , "david.marchand@redhat.com" , "stephen@networkplumber.org" Subject: RE: [PATCH v4 5/7] bbdev: add new operation for FFT processing Thread-Topic: [PATCH v4 5/7] bbdev: add new operation for FFT processing Thread-Index: AQHYkNCi2j6Ng/pvZU2kMIPJhbUOY61xsC2AgAAeXWA= Date: Wed, 6 Jul 2022 21:04:13 +0000 Message-ID: References: <1655491040-183649-6-git-send-email-nicolas.chautru@intel.com> <1657067022-54373-1-git-send-email-nicolas.chautru@intel.com> <1657067022-54373-6-git-send-email-nicolas.chautru@intel.com> <0d0baa2c-3c59-ebde-b223-bb6062a814bd@redhat.com> In-Reply-To: <0d0baa2c-3c59-ebde-b223-bb6062a814bd@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 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: f0f5c848-3872-4195-d0ea-08da5f93147c x-ms-traffictypediagnostic: PH0PR11MB4774:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jZXb08/XtO1k35CWl68rBtfWvkM8gdNZzSZwbegeqLJx0TfcuVvSGAWdd5Flz80ATm1TOArttrweday+Gi0orhe26pJgF9eVCrwOJeKRASYELB3l64sHubDK1qqH3xjs8XvAk89enqFKnnEsAPtwu6PwcjAHtLu3J32HdZCir12M/Vx+/MMTX9F4ADcXL0c7o/Q4CKjCSEm7j6aSxAuEIOz3j4PElkvLPCIRqSO/3BYZHJ4pDX7XdhBES43mOjCRbnos6vtmrZUEsnmyfU/vsK4yTYNd2WjvK6Ye8I+mwNwPyD3oZSq0bt9B53eGdNQHd6VQzLxMjf4GNJih75IhYVZhN9O5MULm6AiCLv0VSHH8qNvuh9BjAVbpdi32GCHv4OMKk5jMyR8bJgMRAdmjbrvj2u8Qlow3BYx4R3NbzeetMgyeats3XB7xQQTSYvKifp/4eTqJlQWvG2/dL70Ce8MC0FoyBscQId3yuS2as5g902TEVigBAq/2fkHvAvdVYyzkX03SG91PaCKXJPlTdMb5x4BAoS9WFtnyy8f9wV77LV0EGZjm/U9q5uUZl6N3WrHqaK4P/w8iatDTUY2Y0M8QF7te6/UHKbcUTDlROLuCRQxVhkk4k9Sk11QuJbB4W5nMpjGExAw1/zjRdRSGU/fsS/d7KPobuosgKgx9u4KvMdZulrwWA7ZDWBSHWmn9CeA5YMARrkvmlPuo6dHI70o5cVOAq5dWyOb7t8/5sNLBatNIydFq1b0jSDY6nHv+E0U92SgWmtEaoGdpBUJq1cIczpya5ow7QFF4bvNccShqJiYdU6zejxtTuR263o97 x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB4451.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(366004)(39860400002)(136003)(396003)(376002)(346002)(83380400001)(186003)(66476007)(66946007)(8936002)(5660300002)(76116006)(4326008)(33656002)(71200400001)(52536014)(9686003)(30864003)(26005)(41300700001)(110136005)(8676002)(53546011)(478600001)(55016003)(316002)(6506007)(122000001)(82960400001)(64756008)(66446008)(2906002)(38100700002)(66556008)(38070700005)(7696005)(54906003)(86362001)(559001)(579004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SlhNSHB4N2lFclFUOTlyZDRob0NHaVpHMGlxQ1l3K2d6alFRTUVDY1Y3cHpI?= =?utf-8?B?N3piUFVXSFNvVHAzbVZWRUtuTXJlZi9YeDZaV0RjSUlDcndjYVoxUm54cEFE?= =?utf-8?B?NDhNTU0yUkhBRWtTa3BIUGc3SVZkN3Jvck9hVllRVXpleXdNTXlhb1k3UUdC?= =?utf-8?B?T0E0UWdaNFI1L241bStvSklZdjJUVkVJYW0rWllkMWs0RkhGOVQxQjl5VjQy?= =?utf-8?B?Y0Vzdjg5cVBOVG90YmNBajRBMG9nMkNieUdBOHJnOUsxUFRDYndyRUlnRWNW?= =?utf-8?B?bHlXUWk3dU8rL0UwVktnUjJBQU5aRTQrTVBzclNFazA5bTRObk1IdGYwZWVC?= =?utf-8?B?NXNmTDdrU3lLQXI2M3A4VUwvaWZlbTV2enl0MWxDNktnSTR5c0FpVU9xRE9t?= =?utf-8?B?ZGwwYmQvRzNsTFVFVjcxbk53eWYxZVZaK0dEVUxUaXJsVGlXL2oyREc1SVFW?= =?utf-8?B?TUR1dHhHVm1leERqbDlraUFNdlhpd3ZsSkI5TEt6Q3FaOEV3NThRNFc0NDZK?= =?utf-8?B?SDI5QzlXRHFNWTRBd21pT005Tms0THpXVVlSVnY0NTZaVjhuVXBpT255U3d0?= =?utf-8?B?UGgwU2tkUkhQZ2RNTDFFSlFHVUlxR25hUHdSZjhZaVYzY2pFZGMyRnh6aVB3?= =?utf-8?B?SE4vRW11SnBNS2JWWlNxcWhaWVhWYTFlVUhSWUcvY3l4emFpcE9OS25EUUVD?= =?utf-8?B?MFZIMmgrdWk4SXhhYXo1aTUrSmREbG8rUXp3amRBdTh3YmZEOHpjZkU4c1d5?= =?utf-8?B?ZkdMcGNkYjNuL210REZKUmtMa0JQV2lWWEdWZTNTb0YzdzhVcWgxTERkOHVO?= =?utf-8?B?dXJSdDVkSzBnblZET1dLbGdNWXJzajNlT3hHaVJacWpRanF4Ti9nVkZTR3BE?= =?utf-8?B?VE03UEJWNENqZktLNUswTGppY2JVMUh2bnBOQmJkb2k0MzlkUWFGZWNtTXhW?= =?utf-8?B?U2l4TDdDR2J5dHJnZThxVVZoOHJoMU9QckMzT1crMm9PQ291Ykx2Nm9WclZO?= =?utf-8?B?WDZLZWliMlVuT0NJZm0zR1JlNUtyNUEwWDBOQzhTeGpzR0xHZHV4V0lsL3dz?= =?utf-8?B?Y0g3eC9nMExQVkt6UzJGNk9VWE0xVFdBMEFRTG5BcEl4bmZPMVA3VFVQM0FF?= =?utf-8?B?c0MyVXpibDB6UGlqS20yODNvVjgwU296N21CTE5DTlh5TUFJZzZRMHROVDdo?= =?utf-8?B?VTZVRW9PcjJ0NnJlNmtzS2hFVWhPeU5KL0dETXJvS3VlT01ReVp1Z05HSEp4?= =?utf-8?B?SnZRQ2NPTzIrUXlmNnpjRmJQendtNXduRGFSczNlZVJ2T1NzQTAvejZFazJh?= =?utf-8?B?T2ttbXRya2o3MFF0bVpsdER4ZDBXR2dOSmV6VExtb1RIS3dya0kxSTd4ZndC?= =?utf-8?B?aGxCdXNXd0JUaHp2QmhUMjNSS3NlNlcxZmNGazhmVTR0ekp0NGo1OFkrcUJP?= =?utf-8?B?VWVkeGxpYWw4cldjRkdsSXJ2R2pyeTkzSUh0bmg0TkIrR0l0czlHTFFzYXFK?= =?utf-8?B?WGlLWEIzYWtqNSt4TG5aYWZxRUVhaUpKb0Vhc3EwVG9NUmpUamdrTGJrdVB6?= =?utf-8?B?ZUVjSjAyRHZLVzRKR01raTJFM1ljYWJDQUt4aXAxanBjRDI4Z2JOU1BJZFU2?= =?utf-8?B?Uk8vdElMUFg4Q2dHb0RzM2RRaC9XMWxBbm9TNlhDU2ord3NwblgvZzM4bHVP?= =?utf-8?B?enlsTGtSS1FKZDZSWk5XV2lPU0JDdWt2YjBHSjgxYXF4YmdEL1N6M2FTYlRC?= =?utf-8?B?RFI3MXJBTUpqNzJSdDRzMVlTUXZKQmtsckdkOGMxblUxd2pFYnR2VnFUOElG?= =?utf-8?B?Z1ZOZFJKQTlvajBreUdnR1Q5NUl6S0pzeE5FYkd3cy9aUVppZngzdDBHUG1K?= =?utf-8?B?clNmazRPblZMbHFzdkJXNU1pVGY2N2E5QUI5bXMrM3NnN0poVlJoYVhnZkkw?= =?utf-8?B?aDRHdFV0bHh4NDRlZHk0d24ySmw2TTcrZHhPb21VdEJtYmdURGpMSVhmb0ky?= =?utf-8?B?akN2d2cxVGhheCtIRkxxc0J6Ky9tQTg5NzQyVUhrZWhPbXVEVFVVMDFwb0Nt?= =?utf-8?B?cisrMlZPVU9lQVpMVnJBbGFsRGtmcEU2clRIZGI3enE5Nm5CdjN0dWhLOVRs?= =?utf-8?Q?/OBlkEFLJBf/b9UoI0+YJ/8Y4?= 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: BY5PR11MB4451.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f0f5c848-3872-4195-d0ea-08da5f93147c X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2022 21:04:13.4589 (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: mNFCcWrwstJRFTYq+ozQYDyy5Wzx3/LRWAnPbe7lQ9LD0+VcdnnegrvkhqI4MNdL4rUh6dnGCz6Zv7ekJoQtGAVuv8uhOf//WlRPSPXPJlo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB4774 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 SGkgVG9tLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUb20gUml4 IDx0cml4QHJlZGhhdC5jb20+PiANCj4gDQo+IE9uIDcvNS8yMiA1OjIzIFBNLCBOaWNvbGFzIENo YXV0cnUgd3JvdGU6DQo+ID4gRXh0ZW5zaW9uIG9mIGJiZGV2IG9wZXJhdGlvbiB0byBzdXBwb3J0 IEZGVCBiYXNlZCBvcGVyYXRpb25zLg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogTmljb2xhcyBD aGF1dHJ1IDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPg0KPiA+IEFja2VkLWJ5OiBIZW1hbnQg QWdyYXdhbCA8aGVtYW50LmFncmF3YWxAbnhwLmNvbT4NCj4gPiAtLS0NCj4gPiAgIGRvYy9ndWlk ZXMvcHJvZ19ndWlkZS9iYmRldi5yc3QgfCAxMzANCj4gKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysNCj4gPiAgIGxpYi9iYmRldi9ydGVfYmJkZXYuYyAgICAgICAgICAgfCAgMTEg KystDQo+ID4gICBsaWIvYmJkZXYvcnRlX2JiZGV2LmggICAgICAgICAgIHwgIDc2ICsrKysrKysr KysrKysrKysrKysrDQo+ID4gICBsaWIvYmJkZXYvcnRlX2JiZGV2X29wLmggICAgICAgIHwgMTQ5 DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgIGxpYi9i YmRldi92ZXJzaW9uLm1hcCAgICAgICAgICAgfCAgIDQgKysNCj4gPiAgIDUgZmlsZXMgY2hhbmdl ZCwgMzY5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQg YS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvYmJkZXYucnN0DQo+ID4gYi9kb2MvZ3VpZGVzL3Byb2df Z3VpZGUvYmJkZXYucnN0IGluZGV4IDcwZmEwMWEuLjRhMDU1YjUgMTAwNjQ0DQo+ID4gLS0tIGEv ZG9jL2d1aWRlcy9wcm9nX2d1aWRlL2JiZGV2LnJzdA0KPiA+ICsrKyBiL2RvYy9ndWlkZXMvcHJv Z19ndWlkZS9iYmRldi5yc3QNCj4gPiBAQCAtMTExOCw2ICsxMTE4LDEzNiBAQCBGaWd1cmUgOm51 bXJlZjpgZmlndXJlX3R1cmJvX3RiX2RlY29kZWAgYWJvdmUNCj4gPiAgIHNob3dpbmcgdGhlIFR1 cmJvIGRlY29kaW5nIG9mIENCcyB1c2luZyBCQkRFViBpbnRlcmZhY2UgaW4gVEItbW9kZQ0KPiA+ ICAgaXMgYWxzbyB2YWxpZCBmb3IgTERQQyBkZWNvZGUuDQo+ID4NCj4gPiArQkJERVYgRkZUIE9w ZXJhdGlvbg0KPiA+ICt+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+DQo+ID4gKw0KPiA+ICtU aGlzIG9wZXJhdGlvbiBhbGxvd3MgdG8gcnVuIGEgY29tYmluYXRpb24gb2YgREZUIGFuZC9vciBJ REZUIGFuZC9vciB0aW1lLQ0KPiBkb21haW4gd2luZG93aW5nLg0KPiA+ICtUaGVzZSBjYW4gYmUg dXNlZCBpbiBhIG1vZHVsYXIgZmFzaGlvbiAodXNpbmcgYnlwYXNzIG1vZGVzKSBvciBhcyBhDQo+ ID4gK3Byb2Nlc3NpbmcgcGlwZWxpbmUgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIEZGVC1iYXNlZCBi YXNlYmFuZCBzaWduYWwNCj4gcHJvY2Vzc2luZy4NCj4gPiArSW4gbW9yZSBkZXRhaWxzIGl0IGFs bG93cyA6DQo+ID4gKy0gdG8gcHJvY2VzcyB0aGUgZGF0YSBmaXJzdCB0aHJvdWdoIGFuIElERlQg b2YgYWRqdXN0YWJsZSBzaXplIGFuZA0KPiA+ICtwYWRkaW5nOw0KPiA+ICstIHRvIHBlcmZvcm0g dGhlIHdpbmRvd2luZyBhcyBhIHByb2dyYW1tYWJsZSBjeWNsaWMgc2hpZnQgb2Zmc2V0IG9mDQo+ ID4gK3RoZSBkYXRhIGZvbGxvd2VkIGJ5IGEgcG9pbnR3aXNlIG11bHRpcGxpY2F0aW9uIGJ5IGEg dGltZSBkb21haW4NCj4gPiArd2luZG93Ow0KPiA+ICstIHRvIHByb2Nlc3MgdGhlIHJlbGF0ZWQg ZGF0YSB0aHJvdWdoIGEgREZUIG9mIGFkanVzdGFibGUgc2l6ZSBhbmQNCj4gPiArZGVwYWRkaW5n IGZvciBlYWNoIHN1Y2ggY3ljbGljIHNoaWZ0IG91dHB1dC4NCj4gPiArDQo+ID4gK0EgZmxleGli bGUgbnVtYmVyIG9mIFJ4IGFudGVubmFzIGFyZSBiZWluZyBwcm9jZXNzZWQgaW4gcGFyYWxsZWwg d2l0aCB0aGUNCj4gc2FtZSBjb25maWd1cmF0aW9uLg0KPiA+ICtUaGUgQVBJIGFsbG93cyBtb3Jl IGdlbmVyYWxseSBmb3IgZmxleGliaWxpdHkgaW4gd2hhdCB0aGUgUE1EIG1heQ0KPiA+ICtzdXBw b3J0IChjYWJhYmlsaXR5IGZsYWdzKSBhbmQgZmxleGliaWxpdHkgdG8gYWRqdXN0IHNvbWUgb2Yg dGhlIHBhcmFtZXRlcnMgb2YNCj4gdGhlIHByb2Nlc3NpbmcuDQo+ID4gKw0KPiA+ICtUaGUgb3Bl cmF0aW9uL2NhcGFiaWxpdHkgZmxhZ3MgdGhhdCBjYW4gYmUgc2V0IGZvciBlYWNoIEZGVCBvcGVy YXRpb24gYXJlDQo+IGdpdmVuIGJlbG93Lg0KPiA+ICsNCj4gPiArICAqKk5PVEU6KiogVGhlIGFj dHVhbCBvcGVyYXRpb24gZmxhZ3MgdGhhdCBtYXkgYmUgdXNlZCB3aXRoIGENCj4gPiArIHNwZWNp ZmljICBCQkRFViBQTUQgYXJlIGRlcGVuZGVudCBvbiB0aGUgZHJpdmVyIGNhcGFiaWxpdGllcyBh cw0KPiA+ICsgcmVwb3J0ZWQgdmlhICBgYHJ0ZV9iYmRldl9pbmZvX2dldCgpYGAsIGFuZCBtYXkg YmUgYSBzdWJzZXQgb2YgdGhvc2UgYmVsb3cuDQo+ID4gKw0KPiA+ICsrLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ ID4gK3xEZXNjcmlwdGlvbiBvZiBGRlQgY2FwYWJpbGl0eSBmbGFncyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwNCj4gPg0KPiArKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PQ0KPiA+ICsrKw0KPiA+ ICt8UlRFX0JCREVWX0ZGVF9XSU5ET1dJTkcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8DQo+ID4gK3wgU2V0IHRvIGVuYWJsZS9zdXBwb3J0IHdpbmRvd2luZyBp biB0aW1lIGRvbWFpbiAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiA+ICt8UlRFX0JCREVWX0ZGVF9DU19BREpVU1RNRU5UICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8DQo+ID4gK3wgU2V0IHRvIGVuYWJsZS9zdXBwb3J0ICB0aGUgY3lj bGljIHNoaWZ0IHRpbWUgb2Zmc2V0IGFkanVzdG1lbnQgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Kw0KPiA+ICt8UlRFX0JCREVWX0ZGVF9ERlRfQllQQVNTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8DQo+ID4gK3wgU2V0IHRvIGJ5cGFzcyB0aGUgREZUIGFuZCB1 c2UgZGlyZWN0bHkgdGhlIElERlQgYXMgYW4gb3B0aW9uICAgICAgIHwNCj4gPiArKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiA+ICt8UlRFX0JCREVWX0ZGVF9JREZUX0JZUEFTUyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gK3wgU2V0IHRvIGJ5cGFzcyB0aGUgSURGVCBh bmQgdXNlIGRpcmVjdGx5IHRoZSBERlQgYXMgYW4gb3B0aW9uICAgICAgIHwNCj4gPiArKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKw0KPiA+ICt8UlRFX0JCREVWX0ZGVF9XSU5ET1dJTkdfQllQQVNTICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8DQo+ID4gK3wgU2V0IHRvIGJ5cGFzcyB0aGUgdGlt ZSBkb21haW4gd2luZG93aW5nICBhcyBhbiBvcHRpb24gICAgICAgICAgICAgIHwNCj4gPiArKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKw0KPiA+ICt8UlRFX0JCREVWX0ZGVF9QT1dFUl9NRUFTDQo+IA0KPiBPdGhlciBm bGFncyBhcmUgbm90IHRydW5jYXRlZCwgc2hvdWxkIGJlDQo+IA0KPiBSVEVfQkJERVZfRkZUX1BP V0VSX01FQVNVUkVNRU5UDQo+IA0KDQpUaGUgaW50ZW50aW9uIGZyb20gRFBESyByZWNvbW1lbmRh dGlvbiBpcyBmb3IgdGhlc2UgdG8gYmUga2VwdCBzaG9ydG5hbWVzLCBpc24ndCBpdD8NCkFib3Zl IHdlIHVzZSBtYW55IGFjcm9ueW1zIHRvIGtlZXAgaXQgc2hvcnQgKENTLCBldGMuLi4pDQpFdmVu IGluIGN1cnJlbnQgQkJERVYgQVBJIHdlIHVzZSBtYW55IHRydW5jYXRpb24gdG8ga2VlcCBuYW1l cyBzaG9ydDogT1VULCBFTkMvREVDLCBIUSwgUk0gb24gdG9wIG9mIGFjcm9ueW1zLiANCkkgYmVs aWV2ZSB0aGlzIGlzIHN0aWxsIHN1cGVyIGV4cGxpY2l0IHdpdGggdGhhdCBuYW1lPw0KDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICt8IFNl dCB0byBwcm92aWRlIGFuIG9wdGlvbmFsIHBvd2VyIG1lYXN1bWVudCBvZiB0aGUgREZUIG91dHB1 dCAgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gbWVhc3VyZW1lbnQNCg0KT0sgVGhhbmtz DQoNCj4gPiArfFJURV9CQkRFVl9GRlRfRlAxNl9JTlBVVCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICt8IFNldCBpZiB0aGUgaW5wdXQgZGF0YSBzaGFs bCB1c2UgRlAxNiBmb3JtYXQgaW5zdGVhZCBvZiBJTlQxNiAgICAgICB8DQo+ID4gKystLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSsNCj4gPiArfFJURV9CQkRFVl9GRlRfRlAxNl9PVVRQVVQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICt8IFNldCBpZiB0aGUgb3V0cHV0IGRhdGEg c2hhbGwgdXNlIEZQMTYgZm9ybWF0IGluc3RlYWQgb2YgSU5UMTYgICAgICB8DQo+ID4gKystLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSsNCj4gPiArDQo+ID4gK1RoZSBzdHJ1Y3R1cmUgcGFzc2VkIGZvciBlYWNoIEZGVCBv cGVyYXRpb24gaXMgZ2l2ZW4gYmVsb3csIHdpdGggdGhlDQo+ID4gK29wZXJhdGlvbiBmbGFncyBm b3JtaW5nIGEgYml0bWFzayBpbiB0aGUgYGBvcF9mbGFnc2BgIGZpZWxkLg0KPiA+ICsNCj4gPiAr Li4gY29kZS1ibG9jazo6IGMNCj4gPiArDQo+ID4gKyAgICBzdHJ1Y3QgcnRlX2JiZGV2X29wX2Zm dCB7DQo+ID4gKyAgICAgICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIGJhc2VfaW5wdXQ7DQo+ ID4gKyAgICAgICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIGJhc2Vfb3V0cHV0Ow0KPiA+ICsg ICAgICAgIHN0cnVjdCBydGVfYmJkZXZfb3BfZGF0YSBwb3dlcl9tZWFzX291dHB1dDsNCj4gc2lt aWxhciB0byBhYm92ZSwgbWVhcyAtPiBtZWFzdXJlbWVudA0KDQpTZWUgYWJvdmUuIFdvdWxkIHRo YXQgcmVhbGx5IGhlbHA/IEkgZG9u4oCZdCBiZWxpZXZlIHRoZXJlIGNhbiBiZSBhbnkgY29uZnVz aW9uLiANCg0KPiA+ICsgICAgICAgIHVpbnQzMl90IG9wX2ZsYWdzOw0KPiA+ICsgICAgICAgIHVp bnQxNl90IGlucHV0X3NlcXVlbmNlX3NpemU7DQo+IENvdWxkIHRoZXNlIGJlIGZ1dHVyZSBwcm9v ZmVkIGJ5IGluY3JlYXNpbmcgc21hbGwgaW50IHNpemUncyB0byB1aW50MzJfdCA/DQoNCkl0IGlz IG5vdCBwb3NzaWJsZSB0byBiZSB0aGF0IGJpZyBmb3IgYW55IHNpZ25hbCBwcm9jZXNzaW5nIHJl bGV2YW50IHRvIHRoYXQgb3BlcmF0aW9uLiANCg0KPiA+ICsgICAgICAgIHVpbnQxNl90IGlucHV0 X2xlYWRpbmdfcGFkZGluZzsNCj4gPiArICAgICAgICB1aW50MTZfdCBvdXRwdXRfc2VxdWVuY2Vf c2l6ZTsNCj4gPiArICAgICAgICB1aW50MTZfdCBvdXRwdXRfbGVhZGluZ19kZXBhZGRpbmc7DQo+ ID4gKyAgICAgICAgdWludDhfdCB3aW5kb3dfaW5kZXhbUlRFX0JCREVWX01BWF9DU18yXTsNCj4g PiArICAgICAgICB1aW50MTZfdCBjc19iaXRtYXA7DQo+ID4gKyAgICAgICAgdWludDhfdCBudW1f YW50ZW5uYXNfbG9nMjsNCj4gPiArICAgICAgICB1aW50OF90IGlkZnRfbG9nMjsNCj4gPiArICAg ICAgICB1aW50OF90IGRmdF9sb2cyOw0KPiBpcyBfbG9nMiBuZWVkZWQgaW4gdmFyaWFibGUgbmFt ZSBpZiBpdCBpcyBkb2N1bWVuYXRpb24gPw0KDQpJIGJlbGlldmUgaXQgaXMgYSBiZXN0IHByYWN0 aWNlIHdoZW4gdGhlIHZhcmlhYmxlIG5hbWUgbWF5IGJlIG1pc2xlYWRpbmcsIGllLiB0aGlzIGlz IG5vdCB0aGUgYWN0dWFsIGRmdCBzaXplIGFzIGEgbmF0dXJhbCBudW1iZXIgKDIwNDggZm9yIGlu c3RhbmNlKSBidXQgdGhlcmUgaXMgYW4gaW1wbGllZCBtYXBwaW5nLiANCg0KPiA+ICsgICAgICAg IGludDhfdCBjc190aW1lX2FkanVzdG1lbnQ7DQo+ID4gKyAgICAgICAgaW50OF90IGlkZnRfc2hp ZnQ7DQo+ID4gKyAgICAgICAgaW50OF90IGRmdF9zaGlmdDsNCj4gPiArICAgICAgICB1aW50MTZf dCBuY3NfcmVjaXByb2NhbDsNCj4gPiArICAgICAgICB1aW50MTZfdCBwb3dlcl9zaGlmdDsNCj4g PiArICAgICAgICB1aW50MTZfdCBmcDE2X2V4cF9hZGp1c3Q7DQo+ID4gKyAgICB9Ow0KPiA+ICsN Cj4gPiArVGhlIEZGVCBwYXJhbWV0ZXJzIGFyZSBzZXQgb3V0IGluIHRoZSB0YWJsZSBiZWxvdy4N Cj4gPiArDQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICt8UGFyYW1l dGVyICAgICAgICAgICAgIHxEZXNjcmlwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPg0KPiArKz09PT09PT09PT09PT09PT09PT09PT0r PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPiA9PT09PQ0KPiA+ICsr PT09PT09PT09PT09PT09PT0rDQo+ID4gK3xiYXNlX2lucHV0ICAgICAgICAgICAgfGlucHV0IGRh dGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0K PiA+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArfGJhc2Vfb3V0cHV0ICAg ICAgICAgICB8b3V0cHV0IGRhdGEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ ICt8cG93ZXJfbWVhc19vdXRwdXQgICAgIHxvcHRpb25hbCBvdXRwdXQgZGF0YSB3aXRoIHBvd2Vy IG1lYXN1cmVtZW50DQo+IG9uIERGVCBvdXRwdXQgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ID4gK3xvcF9mbGFncyAgICAgICAgICAgICAgfGJpdG1hc2sgb2Yg YWxsIGFjdGl2ZSBvcGVyYXRpb24gY2FwYWJpbGl0aWVzICAgICAgICAgICAgICAgICAgfA0KPiA+ ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArfGlucHV0X3NlcXVlbmNlX3Np emUgICB8c2l6ZSBvZiB0aGUgaW5wdXQgc2VxdWVuY2UgaW4gMzItYml0cyBwb2ludHMgcGVyDQo+ IGFudGVubmEgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ ICt8aW5wdXRfbGVhZGluZ19wYWRkaW5nIHxudW1iZXIgb2YgcG9pbnRzIHBhZGRlZCBhdCB0aGUg c3RhcnQgb2YgaW5wdXQNCj4gZGF0YSAgICAgICAgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rDQo+ID4gK3xvdXRwdXRfc2VxdWVuY2Vfc2l6ZSAgfHNpemUgb2YgdGhl IG91dHB1dCBzZXF1ZW5jZSBwZXIgYW50ZW5uYSBhbmQNCj4gY3ljbGljIHNoaWZ0ICAgICAgfA0K PiA+ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArfG91dHB1dF9kZXBhZGRp bmcgICAgICB8bnVtYmVyIG9mIHBvaW50cyBkZXBhZGRlZCBhdCB0aGUgc3RhcnQgb2Ygb3V0cHV0 DQo+IGRhdGEgICAgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0K PiBvdXRwdXRfbGVhZGluZ19kZXBhZGRpbmcNCg0KT0sgVGhhbmtzDQoNCj4gPiArfHdpbmRvd19p bmRleCAgICAgICAgICB8b3B0aW9uYWwgd2luZG93aW5nIHByb2ZpbGUgaW5kZXggdXNlZCBmb3Ig ZWFjaCBjeWNsaWMNCj4gc2hpZnQgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKw0KPiA+ICt8Y3NfYml0bWFwICAgICAgICAgICAgIHxiaXRtYXAgb2YgdGhlIGN5Y2xpYyBz aGlmdCBvdXRwdXQgcmVxdWVzdGVkIChMU0IgZm9yDQo+IGluZGV4IDApIHwNCj4gPiArKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4gK3xudW1fYW50ZW5uYXNfbG9nMiAgICAgfG51 bWJlciBvZiBhbnRlbm5hcyBhcyBhIGxvZzIgKDEwIG1hcHMgdG8gMTAyNC4uLikNCj4gfA0KPiA+ ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArfGlkZnRfbG9nMiAgICAgICAg ICAgICB8aURGVCBzaXplIGFzIGEgbG9nMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICt8 ZGZ0X2xvZzIgICAgICAgICAgICAgIHxERlQgc2l6ZSBhcyBhIGxvZzIgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ID4gK3xjc190aW1lX2FkanVzdG1lbnQgICAgfGFkanVzdG1lbnQgb2YgdGlt ZSBwb3NpdGlvbiBvZiBhbGwgdGhlIGN5Y2xpYyBzaGlmdA0KPiBvdXRwdXQgICAgfA0KPiA+ICsr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArfGlkZnRfc2hpZnQgICAgICAgICAg ICB8c2hpZnQgZG93biBvZiBzaWduYWwgbGV2ZWwgcG9zdCBpREZUICAgICAgICAgICAgICAgICAg ICAgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICt8ZGZ0 X3NoaWZ0ICAgICAgICAgICAgIHxzaGlmdCBkb3duIG9mIHNpZ25hbCBsZXZlbCBwb3N0IERGVCAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rDQo+ID4gK3xuY3NfcmVjaXByb2NhbCAgICAgICAgfGludmVyc2Ugb2YgbWF4IG51bWJl ciBvZiBDUyBub3JtYWxpemVkIHRvIDE1YiAoaWUuDQo+IDIzMSBmb3IgMTIpfA0KPiA+ICsrLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gPiArfHBvd2VyX3NoaWZ0ICAgICAgICAgICB8 c2hpZnQgZG93biBvZiBsZXZlbCBvZiBwb3dlciBtZWFzdXJlbWVudCB3aGVuDQo+IGVuYWJsZWQg ICAgICAgICB8DQo+ID4gKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICt8ZnAx Nl9leHBfYWRqdXN0ICAgICAgIHx2YWx1ZSBhZGRlZCB0byBGUDE2IGV4cG9uZW50IGF0IGNvbnZl cnNpb24gZnJvbQ0KPiBJTlQxNiAgICAgICAgIHwNCj4gPiArKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rDQo+ID4gKw0KPiA+ICtUaGUgbWJ1ZiBpbnB1dCBgYGJhc2VfaW5wdXRgYCBpcyBt YW5kYXRvcnkgZm9yIGFsbCBCQkRFViBQTURzIGFuZCBpcw0KPiA+ICt0aGUgaW5jb21pbmcgZGF0 YSBmb3IgdGhlIHByb2Nlc3NpbmcuIEl0cyBzaXplIG1heSBub3QgZml0IGludG8gYW4NCj4gPiAr YWN0dWFsIG1idWYsIGJ1dCB0aGUgc3RydWN0dXJlIGlzIHVzZWQgdG8gcGFzcyBpb3ZhIGFkZHJl c3MuDQo+ID4gK1RoZSBtYnVmIG91dHB1dCBgYG91dHB1dGBgIGlzIG1hbmRhdG9yeSBhbmQgaXMg b3V0cHV0IG9mIHRoZSBGRlQNCj4gcHJvY2Vzc2luZyBjaGFpbi4NCj4gPiArRWFjaCBwb2ludCBp cyBhIGNvbXBsZXggbnVtYmVyIG9mIDMyYml0cyA6IGVpdGhlciBhcyAyIElOVDE2IG9yIGFzIDIN Cj4gPiArRlAxNiBiYXNlZCB3aGVuIHRoZSBvcHRpb24gc3VwcG9ydGVkLg0KPiA+ICtUaGUgZGF0 YSBsYXlvdXQgaXMgYmFzZWQgb24gY29udGlndW91cyBjb25jYXRlbmF0aW9uIG9mIG91dHB1dCBk YXRhDQo+ID4gK2ZpcnN0IGJ5IGN5Y2xpYyBzaGlmdCB0aGVuIGJ5IGFudGVubmEuDQo+ID4NCj4g PiAgIFNhbXBsZSBjb2RlDQo+ID4gICAtLS0tLS0tLS0tLQ0KPiA+IGRpZmYgLS1naXQgYS9saWIv YmJkZXYvcnRlX2JiZGV2LmMgYi9saWIvYmJkZXYvcnRlX2JiZGV2LmMgaW5kZXgNCj4gPiA1NTVi ZGE5Li4yOGIxMDVkIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9iYmRldi9ydGVfYmJkZXYuYw0KPiA+ ICsrKyBiL2xpYi9iYmRldi9ydGVfYmJkZXYuYw0KPiA+IEBAIC0yNCw3ICsyNCw3IEBADQo+ID4g ICAjZGVmaW5lIERFVl9OQU1FICJCQkRFViINCj4gPg0KPiA+ICAgLyogTnVtYmVyIG9mIHN1cHBv cnRlZCBvcGVyYXRpb24gdHlwZXMgKi8gLSNkZWZpbmUNCj4gPiBCQkRFVl9PUF9UWVBFX0NPVU5U IDUNCj4gPiArI2RlZmluZSBCQkRFVl9PUF9UWVBFX0NPVU5UIDYNCj4gPiAgIC8qIE51bWJlciBv ZiBzdXBwb3J0ZWQgZGV2aWNlIHN0YXR1cyAqLw0KPiA+ICAgI2RlZmluZSBCQkRFVl9ERVZfU1RB VFVTX0NPVU5UIDkNCj4gPg0KPiA+IEBAIC04NTQsNiArODU0LDkgQEAgc3RydWN0IHJ0ZV9iYmRl diAqDQo+ID4gICAJY2FzZSBSVEVfQkJERVZfT1BfTERQQ19FTkM6DQo+ID4gICAJCXJlc3VsdCA9 IHNpemVvZihzdHJ1Y3QgcnRlX2JiZGV2X2VuY19vcCk7DQo+ID4gICAJCWJyZWFrOw0KPiA+ICsJ Y2FzZSBSVEVfQkJERVZfT1BfRkZUOg0KPiA+ICsJCXJlc3VsdCA9IHNpemVvZihzdHJ1Y3QgcnRl X2JiZGV2X2ZmdF9vcCk7DQo+ID4gKwkJYnJlYWs7DQo+ID4gICAJZGVmYXVsdDoNCj4gPiAgIAkJ YnJlYWs7DQo+ID4gICAJfQ0KPiA+IEBAIC04NzcsNiArODgwLDEwIEBAIHN0cnVjdCBydGVfYmJk ZXYgKg0KPiA+ICAgCQlzdHJ1Y3QgcnRlX2JiZGV2X2VuY19vcCAqb3AgPSBlbGVtZW50Ow0KPiA+ ICAgCQltZW1zZXQob3AsIDAsIG1lbXBvb2wtPmVsdF9zaXplKTsNCj4gPiAgIAkJb3AtPm1lbXBv b2wgPSBtZW1wb29sOw0KPiA+ICsJfSBlbHNlIGlmICh0eXBlID09IFJURV9CQkRFVl9PUF9GRlQp IHsNCj4gPiArCQlzdHJ1Y3QgcnRlX2JiZGV2X2ZmdF9vcCAqb3AgPSBlbGVtZW50Ow0KPiA+ICsJ CW1lbXNldChvcCwgMCwgbWVtcG9vbC0+ZWx0X3NpemUpOw0KPiA+ICsJCW9wLT5tZW1wb29sID0g bWVtcG9vbDsNCj4gPiAgIAl9DQo+ID4gICB9DQo+ID4NCj4gPiBAQCAtMTEyNiw2ICsxMTMzLDgg QEAgc3RydWN0IHJ0ZV9tZW1wb29sICoNCj4gPiAgIAkJIlJURV9CQkRFVl9PUF9UVVJCT19ERUMi LA0KPiA+ICAgCQkiUlRFX0JCREVWX09QX1RVUkJPX0VOQyIsDQo+ID4gICAJCSJSVEVfQkJERVZf T1BfTERQQ19ERUMiLA0KPiA+ICsJCSJSVEVfQkJERVZfT1BfTERQQ19FTkMiLA0KPiBXaHkgbGRw Y19lbmMgbGluZSwgdGhpcyBpcyBhbHJlYWR5IGluIGNvZGViYXNlID8NCj4gPiArCQkiUlRFX0JC REVWX09QX0ZGVCIsDQoNClRoYW5rcywgdGhlcmUgdGhpcyBpcyBhIHJlYmFzZSBpc3N1ZSBpbiBw cmV2aW91cyBjb21taXQNCg0KDQo+ID4gICAJfTsNCj4gPg0KPiA+ICAgCWlmIChvcF90eXBlIDwg QkJERVZfT1BfVFlQRV9DT1VOVCkNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2JiZGV2L3J0ZV9iYmRl di5oIGIvbGliL2JiZGV2L3J0ZV9iYmRldi5oIGluZGV4DQo+ID4gYWM5NDFkNi4uZWQ1MjhiOCAx MDA2NDQNCj4gPiAtLS0gYS9saWIvYmJkZXYvcnRlX2JiZGV2LmgNCj4gPiArKysgYi9saWIvYmJk ZXYvcnRlX2JiZGV2LmgNCj4gPiBAQCAtNDAxLDYgKzQwMSwxMiBAQCB0eXBlZGVmIHVpbnQxNl90 DQo+ICgqcnRlX2JiZGV2X2VucXVldWVfZGVjX29wc190KSgNCj4gPiAgIAkJc3RydWN0IHJ0ZV9i YmRldl9kZWNfb3AgKipvcHMsDQo+ID4gICAJCXVpbnQxNl90IG51bSk7DQo+ID4NCj4gPiArLyoq IEBpbnRlcm5hbCBFbnF1ZXVlIGZmdCBvcGVyYXRpb25zIGZvciBwcm9jZXNzaW5nIG9uIHF1ZXVl IG9mIGENCj4gPiArZGV2aWNlLiAqLyB0eXBlZGVmIHVpbnQxNl90ICgqcnRlX2JiZGV2X2VucXVl dWVfZmZ0X29wc190KSgNCj4gPiArCQlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0 YSwNCj4gPiArCQlzdHJ1Y3QgcnRlX2JiZGV2X2ZmdF9vcCAqKm9wcywNCj4gPiArCQl1aW50MTZf dCBudW0pOw0KPiA+ICsNCj4gPiAgIC8qKiBAaW50ZXJuYWwgRGVxdWV1ZSBlbmNvZGUgb3BlcmF0 aW9ucyBmcm9tIGEgcXVldWUgb2YgYSBkZXZpY2UuICovDQo+ID4gICB0eXBlZGVmIHVpbnQxNl90 ICgqcnRlX2JiZGV2X2RlcXVldWVfZW5jX29wc190KSgNCj4gPiAgIAkJc3RydWN0IHJ0ZV9iYmRl dl9xdWV1ZV9kYXRhICpxX2RhdGEsIEBAIC00MTEsNiArNDE3LDExDQo+IEBAIHR5cGVkZWYNCj4g PiB1aW50MTZfdCAoKnJ0ZV9iYmRldl9kZXF1ZXVlX2RlY19vcHNfdCkoDQo+ID4gICAJCXN0cnVj dCBydGVfYmJkZXZfcXVldWVfZGF0YSAqcV9kYXRhLA0KPiA+ICAgCQlzdHJ1Y3QgcnRlX2JiZGV2 X2RlY19vcCAqKm9wcywgdWludDE2X3QgbnVtKTsNCj4gPg0KPiA+ICsvKiogQGludGVybmFsIERl cXVldWUgZmZ0IG9wZXJhdGlvbnMgZnJvbSBhIHF1ZXVlIG9mIGEgZGV2aWNlLiAqLw0KPiA+ICt0 eXBlZGVmIHVpbnQxNl90ICgqcnRlX2JiZGV2X2RlcXVldWVfZmZ0X29wc190KSgNCj4gPiArCQlz dHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSwNCj4gPiArCQlzdHJ1Y3QgcnRlX2Ji ZGV2X2ZmdF9vcCAqKm9wcywgdWludDE2X3QgbnVtKTsNCj4gPiArDQo+ID4gICAjZGVmaW5lIFJU RV9CQkRFVl9OQU1FX01BWF9MRU4gIDY0ICAvKio8IE1heCBsZW5ndGggb2YgZGV2aWNlIG5hbWUN Cj4gPiAqLw0KPiA+DQo+ID4gICAvKioNCj4gPiBAQCAtNDU5LDYgKzQ3MCwxMCBAQCBzdHJ1Y3Qg X19ydGVfY2FjaGVfYWxpZ25lZCBydGVfYmJkZXYgew0KPiA+ICAgCXJ0ZV9iYmRldl9kZXF1ZXVl X2VuY19vcHNfdCBkZXF1ZXVlX2xkcGNfZW5jX29wczsNCj4gPiAgIAkvKiogRGVxdWV1ZSBkZWNv ZGUgZnVuY3Rpb24gKi8NCj4gPiAgIAlydGVfYmJkZXZfZGVxdWV1ZV9kZWNfb3BzX3QgZGVxdWV1 ZV9sZHBjX2RlY19vcHM7DQo+ID4gKwkvKiogRW5xdWV1ZSBGRlQgZnVuY3Rpb24gKi8NCj4gPiAr CXJ0ZV9iYmRldl9lbnF1ZXVlX2ZmdF9vcHNfdCBlbnF1ZXVlX2ZmdF9vcHM7DQo+ID4gKwkvKiog RGVxdWV1ZSBGRlQgZnVuY3Rpb24gKi8NCj4gPiArCXJ0ZV9iYmRldl9kZXF1ZXVlX2ZmdF9vcHNf dCBkZXF1ZXVlX2ZmdF9vcHM7DQo+ID4gICAJY29uc3Qgc3RydWN0IHJ0ZV9iYmRldl9vcHMgKmRl dl9vcHM7ICAvKio8IEZ1bmN0aW9ucyBleHBvcnRlZCBieQ0KPiBQTUQgKi8NCj4gPiAgIAlzdHJ1 Y3QgcnRlX2JiZGV2X2RhdGEgKmRhdGE7ICAvKio8IFBvaW50ZXIgdG8gZGV2aWNlIGRhdGEgKi8N Cj4gPiAgIAllbnVtIHJ0ZV9iYmRldl9zdGF0ZSBzdGF0ZTsgIC8qKjwgSWYgZGV2aWNlIGlzIGN1 cnJlbnRseSB1c2VkIG9yDQo+ID4gbm90ICovIEBAIC01OTEsNiArNjA2LDM2IEBAIHN0cnVjdCBf X3J0ZV9jYWNoZV9hbGlnbmVkIHJ0ZV9iYmRldiB7DQo+ID4gICAJcmV0dXJuIGRldi0+ZW5xdWV1 ZV9sZHBjX2RlY19vcHMocV9kYXRhLCBvcHMsIG51bV9vcHMpOw0KPiA+ICAgfQ0KPiA+DQo+ID4g Ky8qKg0KPiA+ICsgKiBFbnF1ZXVlIGEgYnVyc3Qgb2YgZmZ0IG9wZXJhdGlvbnMgdG8gYSBxdWV1 ZSBvZiB0aGUgZGV2aWNlLg0KPiA+ICsgKiBUaGlzIGZ1bmN0aW9ucyBvbmx5IGVucXVldWVzIGFz IG1hbnkgb3BlcmF0aW9ucyBhcyBjdXJyZW50bHkNCj4gPiArcG9zc2libGUgYW5kDQo+ID4gKyAq IGRvZXMgbm90IGJsb2NrIHVudGlsIEBwIG51bV9vcHMgZW50cmllcyBpbiB0aGUgcXVldWUgYXJl IGF2YWlsYWJsZS4NCj4gPiArICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBwcm92aWRlIGFueSBl cnJvciBub3RpZmljYXRpb24gdG8gYXZvaWQgdGhlDQo+ID4gKyAqIGNvcnJlc3BvbmRpbmcgb3Zl cmhlYWQuDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBkZXZfaWQNCj4gPiArICogICBUaGUgaWRl bnRpZmllciBvZiB0aGUgZGV2aWNlLg0KPiA+ICsgKiBAcGFyYW0gcXVldWVfaWQNCj4gPiArICog ICBUaGUgaW5kZXggb2YgdGhlIHF1ZXVlLg0KPiA+ICsgKiBAcGFyYW0gb3BzDQo+ID4gKyAqICAg UG9pbnRlciBhcnJheSBjb250YWluaW5nIG9wZXJhdGlvbnMgdG8gYmUgZW5xdWV1ZWQgTXVzdCBo YXZlIGF0IGxlYXN0DQo+ID4gKyAqICAgQHAgbnVtX29wcyBlbnRyaWVzDQo+ID4gKyAqIEBwYXJh bSBudW1fb3BzDQo+ID4gKyAqICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIG9wZXJhdGlvbnMgdG8g ZW5xdWV1ZS4NCj4gPiArICoNCj4gPiArICogQHJldHVybg0KPiA+ICsgKiAgIFRoZSBudW1iZXIg b2Ygb3BlcmF0aW9ucyBhY3R1YWxseSBlbnF1ZXVlZCAodGhpcyBpcyB0aGUgbnVtYmVyIG9mDQo+ IHByb2Nlc3NlZA0KPiA+ICsgKiAgIGVudHJpZXMgaW4gdGhlIEBwIG9wcyBhcnJheSkuDQo+ID4g KyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIGlubGluZSB1aW50MTZf dA0KPiA+ICtydGVfYmJkZXZfZW5xdWV1ZV9mZnRfb3BzKHVpbnQxNl90IGRldl9pZCwgdWludDE2 X3QgcXVldWVfaWQsDQo+ID4gKwkJc3RydWN0IHJ0ZV9iYmRldl9mZnRfb3AgKipvcHMsIHVpbnQx Nl90IG51bV9vcHMpIHsNCj4gPiArCXN0cnVjdCBydGVfYmJkZXYgKmRldiA9ICZydGVfYmJkZXZf ZGV2aWNlc1tkZXZfaWRdOw0KPiBXaG8gY2hlY2tzIHRoZSBpbnB1dCBpcyB2YWxpZCA/DQo+ID4g KwlzdHJ1Y3QgcnRlX2JiZGV2X3F1ZXVlX2RhdGEgKnFfZGF0YSA9ICZkZXYtPmRhdGEtDQo+ID5x dWV1ZXNbcXVldWVfaWRdOw0KPiA+ICsJcmV0dXJuIGRldi0+ZW5xdWV1ZV9mZnRfb3BzKHFfZGF0 YSwgb3BzLCBudW1fb3BzKTsgfQ0KPiA+DQo+ID4gICAvKioNCj4gPiAgICAqIERlcXVldWUgYSBi dXJzdCBvZiBwcm9jZXNzZWQgZW5jb2RlIG9wZXJhdGlvbnMgZnJvbSBhIHF1ZXVlIG9mIHRoZQ0K PiBkZXZpY2UuDQo+ID4gQEAgLTcxNiw2ICs3NjEsMzcgQEAgc3RydWN0IF9fcnRlX2NhY2hlX2Fs aWduZWQgcnRlX2JiZGV2IHsNCj4gPiAgIAlyZXR1cm4gZGV2LT5kZXF1ZXVlX2xkcGNfZGVjX29w cyhxX2RhdGEsIG9wcywgbnVtX29wcyk7DQo+ID4gICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAq IERlcXVldWUgYSBidXJzdCBvZiBmZnQgb3BlcmF0aW9ucyBmcm9tIGEgcXVldWUgb2YgdGhlIGRl dmljZS4NCj4gPiArICogVGhpcyBmdW5jdGlvbnMgcmV0dXJucyBvbmx5IHRoZSBjdXJyZW50IGNv bnRlbnRzIG9mIHRoZSBxdWV1ZSwgYW5kDQo+ID4gK2RvZXMgbm90DQo+ID4gKyAqIGJsb2NrIHVu dGlsIEAgbnVtX29wcyBpcyBhdmFpbGFibGUuDQo+ID4gKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBu b3QgcHJvdmlkZSBhbnkgZXJyb3Igbm90aWZpY2F0aW9uIHRvIGF2b2lkIHRoZQ0KPiA+ICsgKiBj b3JyZXNwb25kaW5nIG92ZXJoZWFkLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2X2lkDQo+ ID4gKyAqICAgVGhlIGlkZW50aWZpZXIgb2YgdGhlIGRldmljZS4NCj4gPiArICogQHBhcmFtIHF1 ZXVlX2lkDQo+ID4gKyAqICAgVGhlIGluZGV4IG9mIHRoZSBxdWV1ZS4NCj4gPiArICogQHBhcmFt IG9wcw0KPiA+ICsgKiAgIFBvaW50ZXIgYXJyYXkgd2hlcmUgb3BlcmF0aW9ucyB3aWxsIGJlIGRl cXVldWVkIHRvLiBNdXN0IGhhdmUgYXQgbGVhc3QNCj4gPiArICogICBAcCBudW1fb3BzIGVudHJp ZXMNCj4gPiArICogQHBhcmFtIG51bV9vcHMNCj4gPiArICogICBUaGUgbWF4aW11bSBudW1iZXIg b2Ygb3BlcmF0aW9ucyB0byBkZXF1ZXVlLg0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJuDQo+ID4g KyAqICAgVGhlIG51bWJlciBvZiBvcGVyYXRpb25zIGFjdHVhbGx5IGRlcXVldWVkICh0aGlzIGlz IHRoZSBudW1iZXIgb2YNCj4gZW50cmllcw0KPiA+ICsgKiAgIGNvcGllZCBpbnRvIHRoZSBAcCBv cHMgYXJyYXkpLg0KPiA+ICsgKi8NCj4gPiArX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK3N0YXRp YyBpbmxpbmUgdWludDE2X3QNCj4gPiArcnRlX2JiZGV2X2RlcXVldWVfZmZ0X29wcyh1aW50MTZf dCBkZXZfaWQsIHVpbnQxNl90IHF1ZXVlX2lkLA0KPiA+ICsJCXN0cnVjdCBydGVfYmJkZXZfZmZ0 X29wICoqb3BzLCB1aW50MTZfdCBudW1fb3BzKSB7DQo+ID4gKwlzdHJ1Y3QgcnRlX2JiZGV2ICpk ZXYgPSAmcnRlX2JiZGV2X2RldmljZXNbZGV2X2lkXTsNCj4gPiArCXN0cnVjdCBydGVfYmJkZXZf cXVldWVfZGF0YSAqcV9kYXRhID0gJmRldi0+ZGF0YS0NCj4gPnF1ZXVlc1txdWV1ZV9pZF07DQo+ ID4gKwlyZXR1cm4gZGV2LT5kZXF1ZXVlX2ZmdF9vcHMocV9kYXRhLCBvcHMsIG51bV9vcHMpOyB9 DQo+ID4gKw0KPiA+ICAgLyoqIERlZmluaXRpb25zIG9mIGRldmljZSBldmVudCB0eXBlcyAqLw0K PiA+ICAgZW51bSBydGVfYmJkZXZfZXZlbnRfdHlwZSB7DQo+ID4gICAJUlRFX0JCREVWX0VWRU5U X1VOS05PV04sICAvKio8IHVua25vd24gZXZlbnQgdHlwZSAqLyBkaWZmIC0tZ2l0DQo+ID4gYS9s aWIvYmJkZXYvcnRlX2JiZGV2X29wLmggYi9saWIvYmJkZXYvcnRlX2JiZGV2X29wLmggaW5kZXgN Cj4gPiBjZDgyNDE4Li4zZTQ2ZjFkIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9iYmRldi9ydGVfYmJk ZXZfb3AuaA0KPiA+ICsrKyBiL2xpYi9iYmRldi9ydGVfYmJkZXZfb3AuaA0KPiA+IEBAIC00Nyw2 ICs0Nyw4IEBADQo+ID4gICAjZGVmaW5lIFJURV9CQkRFVl9UVVJCT19NQVhfQ09ERV9CTE9DS1Mg KDY0KQ0KPiA+ICAgLyogTERQQzogIE1heGltdW0gbnVtYmVyIG9mIENvZGUgQmxvY2tzIGluIFRy YW5zcG9ydCBCbG9jay4qLw0KPiA+ICAgI2RlZmluZSBSVEVfQkJERVZfTERQQ19NQVhfQ09ERV9C TE9DS1MgKDI1NikNCj4gPiArLyogMTIgQ1MgbWF4aW11bSAqLw0KPiA+ICsjZGVmaW5lIFJURV9C QkRFVl9NQVhfQ1NfMiAoNikNCj4gPg0KPiA+ICAgLyoqIEZsYWdzIGZvciB0dXJibyBkZWNvZGVy IG9wZXJhdGlvbiBhbmQgY2FwYWJpbGl0eSBzdHJ1Y3R1cmUgKi8NCj4gPiAgIGVudW0gcnRlX2Ji ZGV2X29wX3RkX2ZsYWdfYml0bWFza3MgeyBAQCAtMjExLDYgKzIxMywyNiBAQCBlbnVtDQo+ID4g cnRlX2JiZGV2X29wX2xkcGNlbmNfZmxhZ19iaXRtYXNrcyB7DQo+ID4gICAJUlRFX0JCREVWX0xE UENfRU5DX0NPTkNBVEVOQVRJT04gPSAoMVVMTCA8PCA3KQ0KPiA+ICAgfTsNCj4gPg0KPiA+ICsv KiogRmxhZ3MgZm9yIERGVCBvcGVyYXRpb24gYW5kIGNhcGFiaWxpdHkgc3RydWN0dXJlICovIGVu dW0NCj4gPiArcnRlX2JiZGV2X29wX2ZmdF9mbGFnX2JpdG1hc2tzIHsNCj4gPiArCS8qKiBGbGV4 aWJsZSB3aW5kb3dpbmcgY2FwYWJpbGl0eSAqLw0KPiA+ICsJUlRFX0JCREVWX0ZGVF9XSU5ET1dJ TkcgPSAoMVVMTCA8PCAwKSwNCj4gPiArCS8qKiBGbGV4aWJsZSBhZGp1c3RtZW50IG9mIEN5Y2xp YyBTaGlmdCB0aW1lIG9mZnNldCAqLw0KPiA+ICsJUlRFX0JCREVWX0ZGVF9DU19BREpVU1RNRU5U ID0gKDFVTEwgPDwgMSksDQo+ID4gKwkvKiogU2V0IGZvciBieXBhc3MgdGhlIERGVCBhbmQgZ2V0 IGRpcmVjdGx5IGludG8gaURGVCBpbnB1dCAqLw0KPiA+ICsJUlRFX0JCREVWX0ZGVF9ERlRfQllQ QVNTID0gKDFVTEwgPDwgMiksDQo+ID4gKwkvKiogU2V0IGZvciBieXBhc3MgdGhlIElERlQgYW5k IGdldCBkaXJlY3RseSB0aGUgREZUIG91dHB1dCAqLw0KPiA+ICsJUlRFX0JCREVWX0ZGVF9JREZU X0JZUEFTUyA9ICgxVUxMIDw8IDMpLA0KPiA+ICsJLyoqIFNldCBmb3IgYnlwYXNzIHRpbWUgZG9t YWluIHdpbmRvd2luZyAqLw0KPiA+ICsJUlRFX0JCREVWX0ZGVF9XSU5ET1dJTkdfQllQQVNTID0g KDFVTEwgPDwgNCksDQo+ID4gKwkvKiogU2V0IGZvciBvcHRpb25hbCBwb3dlciBtZWFzdXJlbWVu dCBvbiBERlQgb3V0cHV0ICovDQo+ID4gKwlSVEVfQkJERVZfRkZUX1BPV0VSX01FQVMgPSAoMVVM TCA8PCA1KSwNCj4gTWVhcyBoZXJlIHRvbywgY2hhbmdlIGdlbmVyYWxseQ0KPiA+ICsJLyoqIFNl dCBpZiB0aGUgaW5wdXQgZGF0YSB1c2VkIEZQMTYgZm9ybWF0ICovDQo+ID4gKwlSVEVfQkJERVZf RkZUX0ZQMTZfSU5QVVQgPSAoMVVMTCA8PCA2KSwNCj4gDQo+IFdoYXQgYXJlIHRoZSBvdGhlciBk YXRhIHR5cGUocykgPw0KPiANCj4gVGhlIGRlZmF1bHQgaXMgbm90IG1lbnRpb25lZCwgb3IgaSBt aXNzZWQgaXQuDQo+IA0KPiA+ICsJLyoqICBTZXQgaWYgdGhlIG91dHB1dCBkYXRhIHVzZXMgRlAx NiBmb3JtYXQgICovDQo+ID4gKwlSVEVfQkJERVZfRkZUX0ZQMTZfT1VUUFVUID0gKDFVTEwgPDwg NykgfTsNCj4gPiArDQo+ID4gICAvKiogRmxhZ3MgZm9yIHRoZSBDb2RlIEJsb2NrL1RyYW5zcG9y dCBibG9jayBtb2RlICAqLw0KPiA+ICAgZW51bSBydGVfYmJkZXZfb3BfY2JfbW9kZSB7DQo+ID4g ICAJLyoqIE9uZSBvcGVyYXRpb24gaXMgb25lIG9yIGZyYWN0aW9uIG9mIG9uZSB0cmFuc3BvcnQg YmxvY2sgICovIEBADQo+ID4gLTY4OSw2ICs3MTEsNTUgQEAgc3RydWN0IHJ0ZV9iYmRldl9vcF9s ZHBjX2VuYyB7DQo+ID4gICAJfTsNCj4gPiAgIH07DQo+ID4NCj4gPiArLyoqIE9wZXJhdGlvbiBz dHJ1Y3R1cmUgZm9yIEZGVCBwcm9jZXNzaW5nLg0KPiA+ICsgKg0KPiA+ICsgKiBUaGUgb3BlcmF0 aW9uIHByb2Nlc3NlcyB0aGUgZGF0YSBmb3IgbXVsdGlwbGUgYW50ZW5uYXMgaW4gYSBzaW5nbGUN Cj4gPiArY2FsbA0KPiA+ICsgKiAoLmkuZSBmb3IgYWxsIHRoZSBSRXMgYmVsb25naW5nIHRvIGEg Z2l2ZW4gU1JTIHNlcXVlbmNlIGZvcg0KPiA+ICtpbnN0YW5jZSkNCj4gPiArICoNCj4gPiArICog VGhlIG91dHB1dCBtYnVmIGRhdGEgc3RydWN0dXJlIGlzIGV4cGVjdGVkIHRvIGJlIGFsbG9jYXRl ZCBieSB0aGUNCj4gPiArICogYXBwbGljYXRpb24gd2l0aCBlbm91Z2ggcm9vbSBmb3IgdGhlIG91 dHB1dCBkYXRhLg0KPiA+ICsgKi8NCj4gPiArc3RydWN0IHJ0ZV9iYmRldl9vcF9mZnQgew0KPiA+ ICsJLyoqIElucHV0IGRhdGEgc3RhcnRpbmcgZnJvbSBmaXJzdCBhbnRlbm5hICovDQo+ID4gKwlz dHJ1Y3QgcnRlX2JiZGV2X29wX2RhdGEgYmFzZV9pbnB1dDsNCj4gPiArCS8qKiBPdXRwdXQgZGF0 YSBzdGFydGluZyBmcm9tIGZpcnN0IGFudGVubmEgYW5kIGZpcnN0IGN5Y2xpYyBzaGlmdCAqLw0K PiA+ICsJc3RydWN0IHJ0ZV9iYmRldl9vcF9kYXRhIGJhc2Vfb3V0cHV0Ow0KPiA+ICsJLyoqIE9w dGlvbmFsIHBvd2VyIG1lYXN1cmVtZW50IG91dHB1dCBkYXRhICovDQo+ID4gKwlzdHJ1Y3QgcnRl X2JiZGV2X29wX2RhdGEgcG93ZXJfbWVhc19vdXRwdXQ7DQo+ID4gKwkvKiogRmxhZ3MgZnJvbSBy dGVfYmJkZXZfb3BfZmZ0X2ZsYWdfYml0bWFza3MgKi8NCj4gPiArCXVpbnQzMl90IG9wX2ZsYWdz Ow0KPiA+ICsJLyoqIElucHV0IHNlcXVlbmNlIHNpemUgaW4gMzItYml0cyBwb2ludHMgKi8NCj4g PiArCXVpbnQxNl90IGlucHV0X3NlcXVlbmNlX3NpemU7DQo+IHNpemUgaXMgYnl0ZXMqNCA/IGhv dyBkb2VzIHRoaXMgd29yayB3aXRoIGZwMTYgPw0KPiA+ICsJLyoqIFBhZGRpbmcgYXQgdGhlIHN0 YXJ0IG9mIHRoZSBzZXF1ZW5jZSAqLw0KPiA+ICsJdWludDE2X3QgaW5wdXRfbGVhZGluZ19wYWRk aW5nOw0KPiA+ICsJLyoqIE91dHB1dCBzZXF1ZW5jZSBzaXplIGluIDMyLWJpdHMgcG9pbnRzICov DQo+ID4gKwl1aW50MTZfdCBvdXRwdXRfc2VxdWVuY2Vfc2l6ZTsNCj4gPiArCS8qKiBEZXBhZGRp bmcgYXQgdGhlIHN0YXJ0IG9mIHRoZSBERlQgb3V0cHV0ICovDQo+ID4gKwl1aW50MTZfdCBvdXRw dXRfbGVhZGluZ19kZXBhZGRpbmc7DQo+ID4gKwkvKiogV2luZG93IGluZGV4IGJlaW5nIHVzZWQg Zm9yIGVhY2ggY3ljbGljIHNoaWZ0IG91dHB1dCAqLw0KPiA+ICsJdWludDhfdCB3aW5kb3dfaW5k ZXhbUlRFX0JCREVWX01BWF9DU18yXTsNCj4gPiArCS8qKiBCaXRtYXAgb2YgdGhlIGN5Y2xpYyBz aGlmdCBvdXRwdXQgcmVxdWVzdGVkICovDQo+ID4gKwl1aW50MTZfdCBjc19iaXRtYXA7DQo+ID4g KwkvKiogTnVtYmVyIG9mIGFudGVubmFzIGFzIGEgbG9nMiDigJMgOCB0byAxMjggKi8NCj4gPiAr CXVpbnQ4X3QgbnVtX2FudGVubmFzX2xvZzI7DQo+ID4gKwkvKiogaURGVCBzaXplIGFzIGEgbG9n MiAtIDMyIHRvIDIwNDggKi8NCj4gPiArCXVpbnQ4X3QgaWRmdF9sb2cyOw0KPiA+ICsJLyoqIERG VCBzaXplIGFzIGEgbG9nMiAtIDggdG8gMjA0OCAqLw0KPiA+ICsJdWludDhfdCBkZnRfbG9nMjsN Cj4gPiArCS8qKiBBZGp1c3RtZW50IG9mIHBvc2l0aW9uIG9mIHRoZSBjeWNsaWMgc2hpZnRzIC0g LTMxIHRvIDMxICovDQo+ID4gKwlpbnQ4X3QgY3NfdGltZV9hZGp1c3RtZW50Ow0KPiA+ICsJLyoq IGlERlQgc2hpZnQgZG93biAqLw0KPiA+ICsJaW50OF90IGlkZnRfc2hpZnQ7DQo+ID4gKwkvKiog REZUIHNoaWZ0IGRvd24gKi8NCj4gPiArCWludDhfdCBkZnRfc2hpZnQ7DQo+ID4gKwkvKiogTkNT IHJlY2lwcm9jYWwgZmFjdG9yICAqLw0KPiA+ICsJdWludDE2X3QgbmNzX3JlY2lwcm9jYWw7DQo+ ID4gKwkvKiogcG93ZXIgbWVhc3VyZW1lbnQgb3V0IHNoaWZ0IGRvd24gKi8NCj4gPiArCXVpbnQx Nl90IHBvd2VyX3NoaWZ0Ow0KPiA+ICsJLyoqIEFkanVzdCB0aGUgRlA2IGV4cG9uZW50IGZvciBJ TlQ8LT5GUDE2IGNvbnZlcnNpb24gKi8NCj4gPiArCXVpbnQxNl90IGZwMTZfZXhwX2FkanVzdDsN Cj4gPiArfTsNCj4gPiArDQo+ID4gICAvKiogTGlzdCBvZiB0aGUgY2FwYWJpbGl0aWVzIGZvciB0 aGUgVHVyYm8gRGVjb2RlciAqLw0KPiA+ICAgc3RydWN0IHJ0ZV9iYmRldl9vcF9jYXBfdHVyYm9f ZGVjIHsNCj4gPiAgIAkvKiogRmxhZ3MgZnJvbSBydGVfYmJkZXZfb3BfdGRfZmxhZ19iaXRtYXNr cyAqLyBAQCAtNzQxLDYgKzgxMiwxNg0KPiA+IEBAIHN0cnVjdCBydGVfYmJkZXZfb3BfY2FwX2xk cGNfZW5jIHsNCj4gPiAgIAl1aW50MTZfdCBudW1fYnVmZmVyc19kc3Q7DQo+ID4gICB9Ow0KPiA+ DQo+ID4gKy8qKiBMaXN0IG9mIHRoZSBjYXBhYmlsaXRpZXMgZm9yIHRoZSBGRlQgKi8gc3RydWN0 DQo+ID4gK3J0ZV9iYmRldl9vcF9jYXBfZmZ0IHsNCj4gPiArCS8qKiBGbGFncyBmcm9tIHJ0ZV9i YmRldl9vcF9sZHBjZW5jX2ZsYWdfYml0bWFza3MgKi8NCj4geW91IG1lYW4gJ2Zyb20gcnRlX2Ji ZGV2X29wX2ZmdF9mbGFnX2JpdG1hc2tzJyA/DQo+ID4gKwl1aW50MzJfdCBjYXBhYmlsaXR5X2Zs YWdzOw0KPiA+ICsJLyoqIE51bSBpbnB1dCBjb2RlIGJsb2NrIGJ1ZmZlcnMgKi8NCj4gPiArCXVp bnQxNl90IG51bV9idWZmZXJzX3NyYzsNCj4gPiArCS8qKiBOdW0gb3V0cHV0IGNvZGUgYmxvY2sg YnVmZmVycyAqLw0KPiA+ICsJdWludDE2X3QgbnVtX2J1ZmZlcnNfZHN0Ow0KPiA+ICt9Ow0KPiA+ ICsNCj4gPiAgIC8qKiBEaWZmZXJlbnQgb3BlcmF0aW9uIHR5cGVzIHN1cHBvcnRlZCBieSB0aGUg ZGV2aWNlICovDQo+ID4gICBlbnVtIHJ0ZV9iYmRldl9vcF90eXBlIHsNCj4gPiAgIAlSVEVfQkJE RVZfT1BfTk9ORSwgIC8qKjwgRHVtbXkgb3BlcmF0aW9uIHRoYXQgZG9lcyBub3RoaW5nICovDQo+ IEBADQo+ID4gLTc0OCw2ICs4MjksNyBAQCBlbnVtIHJ0ZV9iYmRldl9vcF90eXBlIHsNCj4gPiAg IAlSVEVfQkJERVZfT1BfVFVSQk9fRU5DLCAgLyoqPCBUdXJibyBlbmNvZGUgKi8NCj4gPiAgIAlS VEVfQkJERVZfT1BfTERQQ19ERUMsICAvKio8IExEUEMgZGVjb2RlICovDQo+ID4gICAJUlRFX0JC REVWX09QX0xEUENfRU5DLCAgLyoqPCBMRFBDIGVuY29kZSAqLw0KPiA+ICsJUlRFX0JCREVWX09Q X0ZGVCwgIC8qKjwgRkZUICovDQo+ID4gICAJUlRFX0JCREVWX09QX1RZUEVfUEFEREVEX01BWCA9 IDgsICAvKio8IE1heGltdW0gb3AgdHlwZQ0KPiBudW1iZXIgaW5jbHVkaW5nIHBhZGRpbmcgKi8N Cj4gPiAgIH07DQo+ID4NCj4gPiBAQCAtNzkxLDYgKzg3MywxOCBAQCBzdHJ1Y3QgcnRlX2JiZGV2 X2RlY19vcCB7DQo+ID4gICAJfTsNCj4gPiAgIH07DQo+ID4NCj4gPiArLyoqIFN0cnVjdHVyZSBz cGVjaWZ5aW5nIGEgc2luZ2xlIGZmdCBvcGVyYXRpb24gKi8gc3RydWN0DQo+ID4gK3J0ZV9iYmRl dl9mZnRfb3Agew0KPiA+ICsJLyoqIFN0YXR1cyBvZiBvcGVyYXRpb24gdGhhdCB3YXMgcGVyZm9y bWVkICovDQo+ID4gKwlpbnQgc3RhdHVzOw0KPiA+ICsJLyoqIE1lbXBvb2wgd2hpY2ggb3AgaW5z dGFuY2UgaXMgaW4gKi8NCj4gPiArCXN0cnVjdCBydGVfbWVtcG9vbCAqbWVtcG9vbDsNCj4gPiAr CS8qKiBPcGFxdWUgcG9pbnRlciBmb3IgdXNlciBkYXRhICovDQo+ID4gKwl2b2lkICpvcGFxdWVf ZGF0YTsNCj4gPiArCS8qKiBDb250YWlucyB0dXJibyBkZWNvZGVyIHNwZWNpZmljIHBhcmFtZXRl cnMgKi8NCj4gPiArCXN0cnVjdCBydGVfYmJkZXZfb3BfZmZ0IGZmdDsNCj4gPiArfTsNCj4gPiAr DQo+ID4gICAvKiogT3BlcmF0aW9uIGNhcGFiaWxpdGllcyBzdXBwb3J0ZWQgYnkgYSBkZXZpY2Ug Ki8NCj4gPiAgIHN0cnVjdCBydGVfYmJkZXZfb3BfY2FwIHsNCj4gPiAgIAllbnVtIHJ0ZV9iYmRl dl9vcF90eXBlIHR5cGU7ICAvKio8IFR5cGUgb2Ygb3BlcmF0aW9uICovIEBAIC03OTksNg0KPiA+ ICs4OTMsNyBAQCBzdHJ1Y3QgcnRlX2JiZGV2X29wX2NhcCB7DQo+ID4gICAJCXN0cnVjdCBydGVf YmJkZXZfb3BfY2FwX3R1cmJvX2VuYyB0dXJib19lbmM7DQo+ID4gICAJCXN0cnVjdCBydGVfYmJk ZXZfb3BfY2FwX2xkcGNfZGVjIGxkcGNfZGVjOw0KPiA+ICAgCQlzdHJ1Y3QgcnRlX2JiZGV2X29w X2NhcF9sZHBjX2VuYyBsZHBjX2VuYzsNCj4gPiArCQlzdHJ1Y3QgcnRlX2JiZGV2X29wX2NhcF9m ZnQgZmZ0Ow0KPiA+ICAgCX0gY2FwOyAgLyoqPCBPcGVyYXRpb24tdHlwZSBzcGVjaWZpYyBjYXBh YmlsaXRpZXMgKi8NCj4gPiAgIH07DQo+ID4NCj4gPiBAQCAtOTE4LDYgKzEwMTMsNDIgQEAgc3Ry dWN0IHJ0ZV9tZW1wb29sICoNCj4gPiAgIH0NCj4gPg0KPiA+ICAgLyoqDQo+ID4gKyAqIEJ1bGsg YWxsb2NhdGUgZmZ0IG9wZXJhdGlvbnMgZnJvbSBhIG1lbXBvb2wgd2l0aCBwYXJhbWV0ZXIgZGVm YXVsdHMNCj4gcmVzZXQuDQo+ID4gKyAqDQo+ID4gKyAqIEBwYXJhbSBtZW1wb29sDQo+ID4gKyAq ICAgT3BlcmF0aW9uIG1lbXBvb2wsIGNyZWF0ZWQgYnkgcnRlX2JiZGV2X29wX3Bvb2xfY3JlYXRl KCkuDQo+ID4gKyAqIEBwYXJhbSBvcHMNCj4gPiArICogICBPdXRwdXQgYXJyYXkgdG8gcGxhY2Ug YWxsb2NhdGVkIG9wZXJhdGlvbnMNCj4gPiArICogQHBhcmFtIG51bV9vcHMNCj4gPiArICogICBO dW1iZXIgb2Ygb3BlcmF0aW9ucyB0byBhbGxvY2F0ZQ0KPiA+ICsgKg0KPiA+ICsgKiBAcmV0dXJu cw0KPiA+ICsgKiAgIC0gMCBvbiBzdWNjZXNzDQo+ID4gKyAqICAgLSBFSU5WQUwgaWYgaW52YWxp ZCBtZW1wb29sIGlzIHByb3ZpZGVkDQo+ID4gKyAqLw0KPiA+ICtfX3J0ZV9leHBlcmltZW50YWwN Cj4gPiArc3RhdGljIGlubGluZSBpbnQNCj4gPiArcnRlX2JiZGV2X2ZmdF9vcF9hbGxvY19idWxr KHN0cnVjdCBydGVfbWVtcG9vbCAqbWVtcG9vbCwNCj4gPiArCQlzdHJ1Y3QgcnRlX2JiZGV2X2Zm dF9vcCAqKm9wcywgdWludDE2X3QgbnVtX29wcykgew0KPiA+ICsJc3RydWN0IHJ0ZV9iYmRldl9v cF9wb29sX3ByaXZhdGUgKnByaXY7DQo+ID4gKwlpbnQgcmV0Ow0KPiA+ICsNCj4gPiArCS8qIENo ZWNrIHR5cGUgKi8NCj4gPiArCXByaXYgPSAoc3RydWN0IHJ0ZV9iYmRldl9vcF9wb29sX3ByaXZh dGUgKikNCj4gPiArCQkJcnRlX21lbXBvb2xfZ2V0X3ByaXYobWVtcG9vbCk7DQo+ID4gKwlpZiAo dW5saWtlbHkocHJpdi0+dHlwZSAhPSBSVEVfQkJERVZfT1BfRkZUKSkNCj4gPiArCQlyZXR1cm4g LUVJTlZBTDsNCj4gPiArDQo+ID4gKwkvKiBHZXQgZWxlbWVudHMgKi8NCj4gPiArCXJldCA9IHJ0 ZV9tZW1wb29sX2dldF9idWxrKG1lbXBvb2wsICh2b2lkICoqKW9wcywgbnVtX29wcyk7DQo+ID4g KwlpZiAodW5saWtlbHkocmV0IDwgMCkpDQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gDQo+IGlmLWNo ZWNrIGlzIG5vdCBuZWVkZWQsIGp1c3QNCj4gDQo+IHJldHVybiByZXQ7DQo+IA0KPiBhbmQgZHJv cCB0aGUgbmV4dCBsaW5lDQo+IA0KPiBUb20NCj4gDQo+ID4gKw0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gK30NCj4gPiArDQo+ID4gKy8qKg0KPiA+ICAgICogRnJlZSBkZWNvZGUgb3BlcmF0aW9uIHN0 cnVjdHVyZXMgdGhhdCB3ZXJlIGFsbG9jYXRlZCBieQ0KPiA+ICAgICogcnRlX2JiZGV2X2RlY19v cF9hbGxvY19idWxrKCkuDQo+ID4gICAgKiBBbGwgc3RydWN0dXJlcyBtdXN0IGJlbG9uZyB0byB0 aGUgc2FtZSBtZW1wb29sLg0KPiA+IEBAIC05NTEsNiArMTA4MiwyNCBAQCBzdHJ1Y3QgcnRlX21l bXBvb2wgKg0KPiA+ICAgCQlydGVfbWVtcG9vbF9wdXRfYnVsayhvcHNbMF0tPm1lbXBvb2wsICh2 b2lkICoqKW9wcywNCj4gbnVtX29wcyk7DQo+ID4gICB9DQo+ID4NCj4gPiArLyoqDQo+ID4gKyAq IEZyZWUgZW5jb2RlIG9wZXJhdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSBhbGxvY2F0ZWQgYnkN Cj4gPiArICogcnRlX2JiZGV2X2ZmdF9vcF9hbGxvY19idWxrKCkuDQo+ID4gKyAqIEFsbCBzdHJ1 Y3R1cmVzIG11c3QgYmVsb25nIHRvIHRoZSBzYW1lIG1lbXBvb2wuDQo+ID4gKyAqDQo+ID4gKyAq IEBwYXJhbSBvcHMNCj4gPiArICogICBPcGVyYXRpb24gc3RydWN0dXJlcw0KPiA+ICsgKiBAcGFy YW0gbnVtX29wcw0KPiA+ICsgKiAgIE51bWJlciBvZiBzdHJ1Y3R1cmVzDQo+ID4gKyAqLw0KPiA+ ICtfX3J0ZV9leHBlcmltZW50YWwNCj4gPiArc3RhdGljIGlubGluZSB2b2lkDQo+ID4gK3J0ZV9i YmRldl9mZnRfb3BfZnJlZV9idWxrKHN0cnVjdCBydGVfYmJkZXZfZmZ0X29wICoqb3BzLCB1bnNp Z25lZA0KPiA+ICtpbnQgbnVtX29wcykgew0KPiA+ICsJaWYgKG51bV9vcHMgPiAwKQ0KPiA+ICsJ CXJ0ZV9tZW1wb29sX3B1dF9idWxrKG9wc1swXS0+bWVtcG9vbCwgKHZvaWQgKiopb3BzLA0KPiBu dW1fb3BzKTsgfQ0KPiA+ICsNCj4gPiAgICNpZmRlZiBfX2NwbHVzcGx1cw0KPiA+ICAgfQ0KPiA+ ICAgI2VuZGlmDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9iYmRldi92ZXJzaW9uLm1hcCBiL2xpYi9i YmRldi92ZXJzaW9uLm1hcCBpbmRleA0KPiA+IDlhYzM2NDMuLmVmYWU1MGIgMTAwNjQ0DQo+ID4g LS0tIGEvbGliL2JiZGV2L3ZlcnNpb24ubWFwDQo+ID4gKysrIGIvbGliL2JiZGV2L3ZlcnNpb24u bWFwDQo+ID4gQEAgLTQ0LDQgKzQ0LDggQEAgRVhQRVJJTUVOVEFMIHsNCj4gPiAgIAlnbG9iYWw6 DQo+ID4NCj4gPiAgIAlydGVfYmJkZXZfZGV2aWNlX3N0YXR1c19zdHI7DQo+ID4gKwlydGVfYmJk ZXZfZW5xdWV1ZV9mZnRfb3BzOw0KPiA+ICsJcnRlX2JiZGV2X2RlcXVldWVfZmZ0X29wczsNCj4g PiArCXJ0ZV9iYmRldl9mZnRfb3BfYWxsb2NfYnVsazsNCj4gPiArCXJ0ZV9iYmRldl9mZnRfb3Bf ZnJlZV9idWxrOw0KPiA+ICAgfTsNCg0K