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 9E956459B2; Mon, 16 Sep 2024 18:17:24 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3193A4025F; Mon, 16 Sep 2024 18:17:24 +0200 (CEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.19]) by mails.dpdk.org (Postfix) with ESMTP id 5F54D40150 for ; Mon, 16 Sep 2024 18:17:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1726503442; x=1758039442; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=+977RhekFO0Gjr58JDCxMAP6ThdIZk1ZFrxfaWRV/uM=; b=aPOPPkCgTr4vJXA8kHMWHsa7u3QPWw9+FFUHteJ1SrOshOlH37ri2Ezs qVUyuZ5fCMAdOcrQVWCGhDuymdyCNIxU8wbpv87BnWecYs8fAv3gg7Nqi C7MCCHIjh8wKQUkr2Po+08usifTw38c0fCtXq2I9M0Yal33YNtGay7L4D IiGhuMkIvcgqO5jJUtzJFnY3mRVYzUk+TWJEUr1O1Dy/aY94kCNJlt5nd pKp6JjgfbeDV7HAPt4e5pJ7KUoX0+B0eP5uQ8LcXqNVQg7i7/rB+pRZzY Vk8z21IN4mJeFefkgZjPpGAp8VnXneCpd7bjOrOQsO68I0FpxhHvjMt2y Q==; X-CSE-ConnectionGUID: SPH0y4UrQ4S+lb3jgeUBQQ== X-CSE-MsgGUID: cZY0hRGPSzOE0Z/ovbAuPw== X-IronPort-AV: E=McAfee;i="6700,10204,11197"; a="24872670" X-IronPort-AV: E=Sophos;i="6.10,233,1719903600"; d="scan'208";a="24872670" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by fmvoesa113.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Sep 2024 09:17:21 -0700 X-CSE-ConnectionGUID: MRxCAwiGTiW+izgJnyPB5w== X-CSE-MsgGUID: uMzTdWRfQd+WxZO+xUSlGg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.10,233,1719903600"; d="scan'208";a="73500727" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa004.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 16 Sep 2024 09:17:21 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 16 Sep 2024 09:17:20 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Mon, 16 Sep 2024 09:17:20 -0700 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Mon, 16 Sep 2024 09:17:20 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.47) 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.2507.39; Mon, 16 Sep 2024 09:17:20 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nSXR25vgYW20FsRktwkztANNFR0ZT4xewbED3kS3QRlD+tMj6iFchjTLpAsCvEsLX9vmR1C1UDRDjq5lzBHcLzA155vts3L5Jqeyufq6afE4j+eqNZpqMoEUsh5dV2I5NVBaW3GlwDT2gf1ZvvXBC4JrQSh0RN8CHlvG35l9IHB7MZMowPctSWFXHkZ4ThtufIXAcQWaxKTh9ch3nGJH7SNRcHAv+xB4SwhQZv59AzSsPWjkS5cfetMOGa+voLY+6HJ7lpoD4/jKRXcKO0jl+72LEr0y5pYpwtNN7Ya2oRSIHtThAednJLXMMN1FkBnb4Wo5HU5V2OivWrh9HbLq5A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=+977RhekFO0Gjr58JDCxMAP6ThdIZk1ZFrxfaWRV/uM=; b=Cefgy+mN+w36+iavkhPYVlaLek/qAWhoNVz2OVW1YW/CoV3UFXlqqzGk9FosED7MwhYRUaOvvcoiJCVNEkXoMQHVy621irNdUUzqPdWGdqG8PPRAmzlKnfltl4M926amA1oOm0UPJa4MCcuIPYnjUsrGt+josJti2zhpeuoZoYPbOjL+EQ/yDs+KptAPzEIpLiqs97PsZVc24noNs5UigGlzwWlNJzAnGo2AaYLDsbPDcWOE2t5qpp2/sWtMaI8Jw3X/K/SGhD9PBNGu2TdRJ3P/gsVZfBNymBq+pFvWQxQLKylO2rmGC3rIjRKF/7sr57jk8KZ9+jUhXerEi5Z4/A== 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 SJ0PR11MB6694.namprd11.prod.outlook.com (2603:10b6:a03:44d::17) by BL1PR11MB5238.namprd11.prod.outlook.com (2603:10b6:208:313::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7962.24; Mon, 16 Sep 2024 16:17:16 +0000 Received: from SJ0PR11MB6694.namprd11.prod.outlook.com ([fe80::37fd:2328:c9e0:9d57]) by SJ0PR11MB6694.namprd11.prod.outlook.com ([fe80::37fd:2328:c9e0:9d57%4]) with mapi id 15.20.7962.022; Mon, 16 Sep 2024 16:17:15 +0000 From: "Chautru, Nicolas" To: Maxime Coquelin , "dev@dpdk.org" CC: "hemant.agrawal@nxp.com" , "Marchand, David" , "Vargas, Hernan" Subject: RE: [PATCH v2 2/2] baseband/acc: improvement to logging mechanism Thread-Topic: [PATCH v2 2/2] baseband/acc: improvement to logging mechanism Thread-Index: AQHa+k6Rw4l7eKbiEkeVfkmFgrjcIbJV2u0AgABNssCAA/7nAIAAiyzw Date: Mon, 16 Sep 2024 16:17:15 +0000 Message-ID: References: <20240829200624.38551-1-nicolas.chautru@intel.com> <20240829200624.38551-3-nicolas.chautru@intel.com> <7cb5ea2d-71d8-4eb9-b273-bd176a8373be@redhat.com> <4dd48a09-4212-48e3-865e-67c01add683d@redhat.com> In-Reply-To: <4dd48a09-4212-48e3-865e-67c01add683d@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB6694:EE_|BL1PR11MB5238:EE_ x-ms-office365-filtering-correlation-id: 59e2c996-4f31-4e44-e208-08dcd66b07b3 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; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?L1VLcGFaK1d6VkhWdWVtUEV6ZXU4S05qQ3Rqc2ZQUnl1RHNJSWR6TUZiNC9R?= =?utf-8?B?Znl2S2d5VjhWc2pXL0NGNkdrbHlmVFVBaTdNVXFIN2QzbjJhejlzWit2SlI0?= =?utf-8?B?ektTcXllS1ZiOWtPL2krZFM4RjdSN1FyQzdtQXY1LzBjZWZjTFJlZkN0eHdz?= =?utf-8?B?eEUvWjRPV3VhOEFNY0Y4MnZCK0JaRTQvbnVFdEJoWEIyZU1CMkpNZGN1WWZ0?= =?utf-8?B?cDMvT2pGOTkvcEZDSHFKaXk5SW55MlJpV0FOY3pmWUFLOTYwNkFwNTJielJS?= =?utf-8?B?eFh2QVBlZUtXMWpEVjFrd0pjTyt5c3Q5d0h0MDhRTXlNMmx2OFNqSG1KeTMx?= =?utf-8?B?eTFQMElOWndoaGM3bFJRK2NJRy9XekpnYVNlNFhLbmVOUlU5SDFNMGZkeXFC?= =?utf-8?B?dENTWG9pRFBNMXlwcVZobnJUWGZ6K2F2T3pPTk5Vejl6TkhrQkpqYkw2OEs1?= =?utf-8?B?aVZlU0JvKzA2RFphbkF5TkNuMjM5V1B4K0k1VW96REgxUVNMdnh2TWZVT3Ez?= =?utf-8?B?K0FMRnIvWWpoNXhUOFpDbkdFQmdnZ2dDcS91ODJ1aXZHdWtwVUNpb2hKSVdW?= =?utf-8?B?aFhGTWRRektlQUlVNFROT2FHV1JOZk9uS3R6T3JzcmIyM2FVT0VaL3ozMVZs?= =?utf-8?B?SDRkRnJCd3dUZjIxYnpsZGZoM1g3M05VOC9vSCtkVUd4ZXczNksyMi9OOTVT?= =?utf-8?B?ZWV4bWlKZU5UaDdBdWs2Zk12eS93SVV4ekhTWml2RE1lWjQ3NkpnTVhwa0NC?= =?utf-8?B?ek5vbTJDdE9nQVFESEVLZS9Qcy9ycHBBR0x1YWdwcGpvRkFnUHZYMGxmS3Br?= =?utf-8?B?VkJucUlNS2lqci9lU0lkeGNUSm5RR3BNMCtTcktmRGcyRTZGRUM0Vnl2Tzlh?= =?utf-8?B?cWdUZkJsY090V293bGVNbkVFZytQT29OWHVibjk3UzhrellLZGZybzlZekpv?= =?utf-8?B?aTlhbWFqL1pYeHh4U0tydVFrbDhjZFlKWlNBb0NleWk0SVoxcm5nelhhR1NC?= =?utf-8?B?b3hKeExkazVwSEFiWTdMN0xMWFZpZjFqNWVpVzFWN0RldllqMmJNYkM1L2hq?= =?utf-8?B?cFJwTmowT1lraGwzbEpML09YVnpOeWMzR3ExeHd2b0NKZStndmRqZ2NZZFUz?= =?utf-8?B?QSs5SXI4TUdTS3Y4RWVVL1ZFeCtqOXRhL01TTU5HZzJhblZ5ZkFLV21YV1lQ?= =?utf-8?B?LzUvTlVDZ3Y3N3d6eTFmM2UrNS9yOU9oeUxXbFZwOEYraGVCS05CZDVlNkw3?= =?utf-8?B?MUdybzVTUExsaDZrQ2ZkdmZSQWJYR3hkUDBYZkRlTWJvSnBvbnNwMGpBV2Fs?= =?utf-8?B?RklmRjZmdWFsRHNlTGtFVXhmTTZTQkV0OFJqR3F0d1RMZzZuZEc2Ulc4cEFj?= =?utf-8?B?RTlTL3h2cDIrWHJEeG5MdFpGRGJkV1FaWHg1T1NTL1FkNk9qbzNjdTJsUzEy?= =?utf-8?B?VElPbmZIU2pZUHAwdmF1N3hKL0lqdlRRTVFzaXBRMDhTZlhyWE1kWUlZanNq?= =?utf-8?B?T09GdnZ5eU9OQ1Z2T1lVOFlCWG5Tc2twZS9wK3ljdFlrNDBzdjhnQzlITDI0?= =?utf-8?B?WnFDMndrOG5NZzJzcnVyVmxpV1BzVDVMRHhoNnU1YW9ya0YzZVpOa0R1a3JM?= =?utf-8?B?RU1iT3dHZDdQZlNKY05XZWQyU0Vyb09yMDRCY3gvWkYwRTRsVkVNMTdzOEht?= =?utf-8?B?a2E5M0VKQ0JsQVg0YUkrMUpscXBvbVdENHdiQzJJMXlEK0tqTjhnSmFoK1VE?= =?utf-8?B?Yk53bURjcWtJUEFGL1FNa04rQ0RkcDUxSmRrYXFKZkJYVDROK2g4eWM3UzM0?= =?utf-8?B?QU42RlZ2SXNjdi9MQ1JqSzR1QmRnM1FMUjh6Z0JRdUZxQjVFUnFDaHBsNFFH?= =?utf-8?B?YWNycFN5aVlpdWlLUzJsZXJWT2ZrOFNZdDRYKzMrZTcxNVE9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR11MB6694.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?V1Y3cVFHcGZIcWg4cjlvcGROa01HbVI5WVYvSXFLN0ZBc1kzc0FUNjVzakoz?= =?utf-8?B?bUpCVVdURVJmZEZLRDM4Y3p3a3JEa1FVcExHYnlpNDVJdzI1N0dVdEFLM1VI?= =?utf-8?B?YU9sbGNzUWcydnBOVHVsbENzWm04aDdVa29ZRmlvUjlqTDFxM1VYSnFYSUFi?= =?utf-8?B?dXBrbi9oSWJEODN2SDAxdERGYjdIWk5GUDZhVmRudUFmVnB6a3VtVERmWjk2?= =?utf-8?B?dVZyNFpxc05hcmFQd0dMUUZPSlAwamN5eDZVM2l5THB1ZXFtemltUGp2eHZF?= =?utf-8?B?d1FDVkI5ek5DTTdzbFVLVmdXK1hjaTd4Z1VvVnJrWmRTSU44azdjWnFmN3c0?= =?utf-8?B?UXFsUWV0YU5jY0RZOGN6ZkhIcEEwWTlQRlhjb3krRHZWVHBSUThDYlV1aXF5?= =?utf-8?B?WkN3ejdDWno5YlA0L3BUSm04bVdzNUNDUnlBZnJzN1ZpSy9GNDhZcFhNK1Zh?= =?utf-8?B?OEgyVVUrcG8vamlYV0IzNEd5NkwzMFd5VGZKSkhZc2hTbUdJSVRaZmdRVnZY?= =?utf-8?B?cE9LSC91RjRudW45cHVVY1ZJZDRNUzlCWnpad0xPYms5cXZnVlVNek9NdlJP?= =?utf-8?B?dERNcUQyY2laM3loUllHRVd1ajcxSzRsck5oRTh4bDVBZG9qeDRrcGZndDQx?= =?utf-8?B?dnJuVVZrSG1uVHVucVhtd2FlNFJONFdWZzkxN1BKMTBLVE9lM0dXYW8zRkdy?= =?utf-8?B?MXZwY09meTFKdE5sWXFCdXE1OU9pUlFoOUFqSC9VTGJHa0thL1FjUW4wdUtC?= =?utf-8?B?S1NGdytXc1BDZmFlRkFvZFhUNG4xUHhwZmRLOVphaStFN2puS0Y4WGcvRkN6?= =?utf-8?B?V0NrVlpReVRkL0VzeFRMbjNMamQrdWQ1NEh3QnFOei9pWGllMDl1OVVUSkhR?= =?utf-8?B?RHNVOG9FWVpSb1hZZ1RDT1VhYkVLT3gwVXNMWWxkSkc0UVE1TDdnUmloSE15?= =?utf-8?B?MHk5OGo3L3h3S2Y1d1IyZlp6Z25oMVQ5bFhnQjRKRThPS0lWWEFyYmdDS2Fk?= =?utf-8?B?RlV6UXJQMktWaUhHd2dXY1hyTGlWNHRuOWhNd3duSTI2VDM5eXM5VjhzNnpK?= =?utf-8?B?U2JULzlRUkk0ZXhXL2tSK2FDUmFzTXlqeTQxZmxIMHk0Ukw4MmdVVHJvbk1o?= =?utf-8?B?djA1ZWVvamtSWmlWb2xjazJMWDU3OXVxUkdNUXZCalVkd2g0cEhhdVRXWUhH?= =?utf-8?B?WUpObHJtaS80a254eGN3VzN6S3J3NXpva3p5aWR4d0FaK1ZiWDFYM1F4MXFz?= =?utf-8?B?cnJGVzRhOThISUVwVS8zVkZYMW1vSGxVeENYVEZkanBxWDFWQkpmdjlWcXhI?= =?utf-8?B?VmpVUWRCZSt3U0hMdmM5VDBJSEhYaVk0VkY1dkZMTVUwYlQxbFprSUhGVk82?= =?utf-8?B?aVlteE80MnA1T3dsOHVNOHZ2YXp4OXpzOUNTWEpVWmlINVdDQXY1YlExMzFw?= =?utf-8?B?YWo0bXFMdHhYNGVPbjNLSEcvWXRlSkVJb0VJMVFudDQ1ZjZGMUJrTmdHTEwr?= =?utf-8?B?ZlJ5U09KQlA4V3B3NVdFTVpHT2xhUlU1a3NJWnprelloVGYzNTF4cjNlNnIv?= =?utf-8?B?T0h1MjhraDUwS0JSQ2QzT1FzalFrLzNCbjFWdVVjV2xxUEM5b2VScHE1cXZo?= =?utf-8?B?Q0l5VmQxbm5xeXk3elJYb1NQYUJwUFkxQmdDL280SDFwZWVjTVdCUHFHdFhu?= =?utf-8?B?MTZURlpzWk9XOXRhbll5d3hzZXVac25sYmFDNHpuSkc0LzRwZFZHKzdnUEhM?= =?utf-8?B?Z2EwNmRvYVRxMElKRzVBZTdNVWNPWmlUMGpsL0tTOGJtckxIQlMrTUZoMWt5?= =?utf-8?B?U0VZdkRreUxrK1B6S0ZFMldrdHdwU0x0RlhiVWx3Y0pNTzZ3d3JpcjJUOG9W?= =?utf-8?B?azBRSEt4SzQ1QWhTdTRKdWdOWTI1UzlHSWJxUmQ2NW9UdFArdWtLZUEzQk83?= =?utf-8?B?NTdNWEdNRkxHTEdoSk0vbTJQV0ZOdVhQdGthK25teFd3L1RrZDlhU0VPT0NV?= =?utf-8?B?Z0VPdG54elFiUlRTNGg0OXVFeUhsWU5WK3RYeDhyQnR2RCtzaTJiZ2hPMFdm?= =?utf-8?B?cW53bnRMUzJqZk9zWFFyeUpVUXFEbW83aHFxNmsvV3VGQmNwY3BwL045STVi?= =?utf-8?Q?yvcpyiW+8gI/RPlCTkQqzzfap?= 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: SJ0PR11MB6694.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59e2c996-4f31-4e44-e208-08dcd66b07b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Sep 2024 16:17:15.8303 (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: M8gaJICpFTLpnC+nQUY8Nr+Dfeb4+5Ya+wcblRNNuwA9JwZ2GbjeuUfKrYPs/J7t2pUi1Pddyri3o62VvC9Hhk67Kx4+L98/MuvDDQY0suk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5238 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 SGkgTWF4aW1lLCANCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhp bWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBNb25kYXks IFNlcHRlbWJlciAxNiwgMjAyNCAxMjo1NyBBTQ0KPiBUbzogQ2hhdXRydSwgTmljb2xhcyA8bmlj b2xhcy5jaGF1dHJ1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogaGVtYW50LmFncmF3 YWxAbnhwLmNvbTsgTWFyY2hhbmQsIERhdmlkDQo+IDxkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29t PjsgVmFyZ2FzLCBIZXJuYW4gPGhlcm5hbi52YXJnYXNAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBS ZTogW1BBVENIIHYyIDIvMl0gYmFzZWJhbmQvYWNjOiBpbXByb3ZlbWVudCB0byBsb2dnaW5nIG1l Y2hhbmlzbQ0KPiANCj4gDQo+IA0KPiBPbiA5LzEzLzI0IDIxOjAwLCBDaGF1dHJ1LCBOaWNvbGFz IHdyb3RlOg0KPiA+IEhpIE1heGltZSwNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiA+PiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQu Y29tPg0KPiA+PiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAxMywgMjAyNCA3OjE4IEFNDQo+ID4+ IFRvOiBDaGF1dHJ1LCBOaWNvbGFzIDxuaWNvbGFzLmNoYXV0cnVAaW50ZWwuY29tPjsgZGV2QGRw ZGsub3JnDQo+ID4+IENjOiBoZW1hbnQuYWdyYXdhbEBueHAuY29tOyBNYXJjaGFuZCwgRGF2aWQN Cj4gPj4gPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5jb20+OyBWYXJnYXMsIEhlcm5hbg0KPiA8aGVy bmFuLnZhcmdhc0BpbnRlbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMi8yXSBi YXNlYmFuZC9hY2M6IGltcHJvdmVtZW50IHRvIGxvZ2dpbmcNCj4gPj4gbWVjaGFuaXNtDQo+ID4+ DQo+ID4+DQo+ID4+DQo+ID4+IE9uIDgvMjkvMjQgMjI6MDYsIE5pY29sYXMgQ2hhdXRydSB3cm90 ZToNCj4gPj4+IFN1cHBvcnQgdGhlIG5ldyBkZXYgb3AgdG8gZHVtcCBvcGVyYXRpb25zIGluZm9y bWF0aW9uIHJlbGF0ZWQgdG8gYQ0KPiA+Pj4gZ2l2ZW4gcXVldWUgYW5kIGluZm9ybWF0aW9uIG9u IHByZXZpb3VzIGVycm9ycyBkZXRlY3RlZCBieSB0aGUNCj4gPj4+IGRyaXZlciBhbmQgdHJhY2tl ZCBpbnRlcm5hbGx5IGluIFBNRC4NCj4gPj4+DQo+ID4+PiBTaWduZWQtb2ZmLWJ5OiBOaWNvbGFz IENoYXV0cnUgPG5pY29sYXMuY2hhdXRydUBpbnRlbC5jb20+DQo+ID4+PiAtLS0NCj4gPj4+ICAg IGRyaXZlcnMvYmFzZWJhbmQvYWNjL2FjY19jb21tb24uaCAgfCAgMzcgKysrKysrKysrDQo+ID4+ PiAgICBkcml2ZXJzL2Jhc2ViYW5kL2FjYy9ydGVfdnJiX3BtZC5jIHwgMTI4DQo+ID4+PiArKysr KysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4+IC0NCj4gPj4+ICAgIDIgZmlsZXMgY2hhbmdl ZCwgMTM4IGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQ0KPiA+Pj4NCj4gPj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4gPj4+IGIvZHJpdmVy cy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1vbi5oDQo+ID4+PiBpbmRleCBlMjQ5ZjM3ZTM4Li5jODkx NGIyM2UwIDEwMDY0NA0KPiA+Pj4gLS0tIGEvZHJpdmVycy9iYXNlYmFuZC9hY2MvYWNjX2NvbW1v bi5oDQo+ID4+PiArKysgYi9kcml2ZXJzL2Jhc2ViYW5kL2FjYy9hY2NfY29tbW9uLmgNCj4gPj4+ IEBAIC0xNDksNiArMTQ5LDggQEANCj4gPj4+ICAgICNkZWZpbmUgVlJCMl9WRl9JRF9TSElGVCAg ICAgNg0KPiA+Pj4NCj4gPj4+ICAgICNkZWZpbmUgQUNDX01BWF9GRlRfV0lOICAgICAgMTYNCj4g Pj4+ICsjZGVmaW5lIEFDQ19NQVhfTE9HTEVOICAgIDI1Ng0KPiA+Pj4gKyNkZWZpbmUgQUNDX01B WF9CVUZGRVJMRU4gMjU2DQo+ID4+Pg0KPiA+Pj4gICAgZXh0ZXJuIGludCBhY2NfY29tbW9uX2xv Z3R5cGU7DQo+ID4+Pg0KPiA+Pj4gQEAgLTY0Niw4ICs2NDgsNDMgQEAgc3RydWN0IF9fcnRlX2Nh Y2hlX2FsaWduZWQgYWNjX3F1ZXVlIHsNCj4gPj4+ICAgIAlydGVfaW92YV90IGZjd19yaW5nX2Fk ZHJfaW92YTsNCj4gPj4+ICAgIAlpbnQ4X3QgKmRlcm1fYnVmZmVyOyAvKiBpbnRlcmltIGJ1ZmZl ciBmb3IgZGUtcm0gaW4gU0RLICovDQo+ID4+PiAgICAJc3RydWN0IGFjY19kZXZpY2UgKmQ7DQo+ ID4+PiArCWNoYXIgZXJyb3JfYnVmc1tBQ0NfTUFYX0JVRkZFUkxFTl1bQUNDX01BWF9MT0dMRU5d OyAvKio8DQo+ID4+IEJ1ZmZlciBmb3INCj4gPj4+ICtlcnJvciBsb2cuICovDQo+ID4+DQo+ID4+ IDY1S0IgaXMgcXVpdGUgYmlnIGZvciBlYWNoIHF1ZXVlcw0KPiA+Pg0KPiA+PiBJIGRvbid0IHNl ZSB0aGUgcG9pbnQgb2YgYWxsIHRoaXMsIGFzIGVycm9ycyBhcmUgYWxyZWFkeSBsb2dnZWQgdXNp bmcNCj4gPj4gcnRlX2JiZGV2X2xvZy4gT25seSB0aGluZyB5b3UgbWlzcyBpcyB0aGUgcXVldWUv ZGV2aWNlIGluZm8gaW4NCj4gPj4gY3VycmV0biBzb2x1dGlvbiwgbm8/DQo+ID4NCj4gPiBUaGUg cnRlX2JiZGV2X2xvZyBpcyBvbmx5IGZvciBzdGRfb3V0cHV0IHdoaWNoIHdvdWxkIGJlIGRpc2Fi bGVkIGJ5IGRlZmF1bHQNCj4gZm9yIHJlYWwgdGltZSBhcHBsaWNhdGlvbiBzbyB2ZXJ5IGxpbWl0 ZWQgdXNhYmlsaXR5Lg0KPiA+IEhlcmUgd2Ugc3RvcmUgdGhlIHJlbGF0ZWQgaW5mb3JtYXRpb24g Zm9yIHRoZSBhcHBsaWNhdGlvbiB0byBiZSBhYmxlIHRvDQo+IHJldHJpZXZlIHRoZW1zZWx2ZXMg YXMgcmVxdWlyZWQgYWZ0ZXIgdGhlIGZhY3QgKG5vdCBpbXBhY3RpbmcgcmVhbCB0aW1lKS4NCj4g DQo+IElmIHlvdSByZWFsbHkgY2FyZSBhYm91dCByZWFsdGltZSwgdGhlbiB0aGUgb2JqZWN0cyBz aG91bGQgYmUgc2F2ZWQgaW4gYmluYXJ5DQo+IGZvcm0sIGFuZCBwb3N0LXByb2Nlc3NlZCBpbnRv IHN0cmluZ3MgaW4gdGhlIGR1bXAgZnVuY3Rpb24uDQo+IA0KPiBEb2luZyB0aGlzLCBubyB3YXN0 ZWQgQ1BVIGN5Y2xlcyBpbiB0aGUgZGF0YXBhdGggcGVyZm9ybWluZyBzdHJpbmdzDQo+IHByb2Nl c3NpbmcsIGFuZCBsZXNzIG1lbW9yeSB3YXN0ZWQuDQoNClRoaXMgaXMgdGhlIEJLTSB3ZSB1c2Ug Zm9yIHRoaXMgcmVhbCB0aW1lIHdvcmtsb2FkIGFjcm9zcyBpbmdyZWRpZW50cywgDQpiZXN0IGNv bXByb21pc2Ugb2YgcGVyZm9ybWFuY2UgYW5kIGNvbnZlbmllbmNlLA0KYW5kIGRlZmluaXRlbHkg Y2Fubm90IHJlbHkgb24gc3RhbmRhcmQgb3V0cHV0DQpMZXQgbWUga25vdyBpZiB5b3Ugd291bGQg bGlrZSB0byBkaXNjdXNzIG1vcmUuDQpUaGFua3MNCk5pYw0KDQo+IA0KPiA+DQo+ID4+DQo+ID4+ PiArCXVpbnQxNl90IGVycm9yX2hlYWQ7ICAvKio8IEhlYWQgLSBCdWZmZXIgZm9yIGVycm9yIGxv Zy4gKi8NCj4gPj4+ICsJdWludDE2X3QgIGVycm9yX3dyYXA7IC8qKjwgV3JhcCBDb3VudGVyIC0g QnVmZmVyIGZvciBlcnJvciBsb2cuICovDQo+ID4+PiAgICB9Ow0KPiA+Pj4NCj4gPj4+ICsvKioN Cj4gPj4+ICsgKiBAYnJpZWYgUmVwb3J0IGVycm9yIGJvdGggdGhyb3VnaCBSVEUgbG9nZ2luZyBh bmQgaW50byBpbnRlcm5hbA0KPiA+Pj4gK2RyaXZlcg0KPiA+PiBtZW1vcnkuDQo+ID4+PiArICoN Cj4gPj4+ICsgKiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbG9nIGFuIGVycm9yIGZvciBhIHNw ZWNpZmljIEFDQyBxdWV1ZQ0KPiA+Pj4gKyBhbmQNCj4gPj4gb3BlcmF0aW9uLg0KPiA+Pj4gKyAq DQo+ID4+PiArICogQHBhcmFtIHEgICBQb2ludGVyIHRvIHRoZSBBQ0MgcXVldWUuDQo+ID4+PiAr ICogQHBhcmFtIG9wICBQb2ludGVyIHRvIHRoZSBvcGVyYXRpb24uDQo+ID4+PiArICogQHBhcmFt IGZtdCBGb3JtYXQgc3RyaW5nIGZvciB0aGUgZXJyb3IgbWVzc2FnZS4NCj4gPj4+ICsgKiBAcGFy YW0gLi4uIEFkZGl0aW9uYWwgYXJndW1lbnRzIGZvciB0aGUgZm9ybWF0IHN0cmluZy4NCj4gPj4+ ICsgKi8NCj4gPj4+ICtfX3J0ZV9mb3JtYXRfcHJpbnRmKDMsIDQpDQo+ID4+PiArc3RhdGljIGlu bGluZSB2b2lkDQo+ID4+PiArYWNjX2Vycm9yX2xvZyhzdHJ1Y3QgYWNjX3F1ZXVlICpxLCB2b2lk ICpvcCwgY29uc3QgY2hhciAqZm10LCAuLi4pIHsNCj4gPj4+ICsJdmFfbGlzdCBhcmdzLCBhcmdz MjsNCj4gPj4+ICsNCj4gPj4+ICsJdmFfc3RhcnQoYXJncywgZm10KTsNCj4gPj4+ICsJdmFfY29w eShhcmdzMiwgYXJncyk7DQo+ID4+PiArCXJ0ZV92bG9nKFJURV9MT0dfRVJSLCBhY2NfY29tbW9u X2xvZ3R5cGUsIGZtdCwgYXJncyk7DQo+ID4+PiArCXZzbnByaW50ZihxLT5lcnJvcl9idWZzW3Et PmVycm9yX2hlYWRdLCBBQ0NfTUFYX0xPR0xFTiwgZm10LA0KPiA+PiBhcmdzMik7DQo+ID4+PiAr CXEtPmVycm9yX2hlYWQrKzsNCj4gPj4+ICsJc25wcmludGYocS0+ZXJyb3JfYnVmc1txLT5lcnJv cl9oZWFkXSwgQUNDX01BWF9MT0dMRU4sDQo+ID4+PiArCQkJIiVzIiwgcnRlX2JiZGV2X29wc19w YXJhbV9zdHJpbmcob3AsIHEtPm9wX3R5cGUpKTsNCj4gPj4+ICsJcS0+ZXJyb3JfaGVhZCsrOw0K PiA+Pj4gKwlpZiAocS0+ZXJyb3JfaGVhZCA9PSBBQ0NfTUFYX0xPR0xFTikgew0KPiA+Pj4gKwkJ cS0+ZXJyb3JfaGVhZCA9IDA7DQo+ID4+PiArCQlxLT5lcnJvcl93cmFwKys7DQo+ID4+PiArCX0N Cj4gPj4+ICsJdmFfZW5kKGFyZ3MpOw0KPiA+Pj4gKwl2YV9lbmQoYXJnczIpOw0KPiA+Pj4gK30N Cj4gPj4+ICsNCj4gPj4+ICAgIC8qIFdyaXRlIHRvIE1NSU8gcmVnaXN0ZXIgYWRkcmVzcyAqLw0K PiA+Pj4gICAgc3RhdGljIGlubGluZSB2b2lkDQo+ID4+PiAgICBtbWlvX3dyaXRlKHZvaWQgKmFk ZHIsIHVpbnQzMl90IHZhbHVlKSBkaWZmIC0tZ2l0DQo+ID4+PiBhL2RyaXZlcnMvYmFzZWJhbmQv YWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+IGIvZHJpdmVycy9iYXNlYmFuZC9hY2MvcnRlX3ZyYl9w bWQuYw0KPiA+Pj4gaW5kZXggNTg1ZGM0OWJkNi4uOWQwMTQ1ZDA5YiAxMDA2NDQNCj4gPj4+IC0t LSBhL2RyaXZlcnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+ICsrKyBiL2RyaXZl cnMvYmFzZWJhbmQvYWNjL3J0ZV92cmJfcG1kLmMNCj4gPj4+IEBAIC0xMDIyLDYgKzEwMjIsMTAg QEAgdnJiX3F1ZXVlX3NldHVwKHN0cnVjdCBydGVfYmJkZXYgKmRldiwNCj4gPj4gdWludDE2X3Qg cXVldWVfaWQsDQo+ID4+PiAgICAJcS0+bW1pb19yZWdfZW5xdWV1ZSA9IFJURV9QVFJfQUREKGQt Pm1taW9fYmFzZSwNCj4gPj4+ICAgIAkJCWQtPnF1ZXVlX29mZnNldChkLT5wZl9kZXZpY2UsIHEt PnZmX2lkLCBxLT5xZ3JwX2lkLA0KPiBxLQ0KPiA+Pj4gYXFfaWQpKTsNCj4gPj4+DQo+ID4+PiAr CS8qKiBpbml0aWFsaXplIHRoZSBlcnJvciBidWZmZXIuICovDQo+ID4+PiArCXEtPmVycm9yX2hl YWQgPSAwOw0KPiA+Pj4gKwlxLT5lcnJvcl93cmFwID0gMDsNCj4gPj4+ICsNCj4gPj4+ICAgIAly dGVfYmJkZXZfbG9nX2RlYnVnKA0KPiA+Pj4gICAgCQkJIlNldHVwIGRldiV1IHEldTogcWdycF9p ZD0ldSwgdmZfaWQ9JXUsIGFxX2lkPSV1LA0KPiA+PiBhcV9kZXB0aD0ldSwgbW1pb19yZWdfZW5x dWV1ZT0lcCBiYXNlICVwXG4iLA0KPiA+Pj4gICAgCQkJZGV2LT5kYXRhLT5kZXZfaWQsIHF1ZXVl X2lkLCBxLT5xZ3JwX2lkLCBxLT52Zl9pZCwNCj4gPj4gQEAgLTE0MzQsNg0KPiA+Pj4gKzE0Mzgs NzQgQEAgdnJiX3F1ZXVlX2ludHJfZGlzYWJsZShzdHJ1Y3QgcnRlX2JiZGV2ICpkZXYsIHVpbnQx Nl90DQo+ID4+IHF1ZXVlX2lkKQ0KPiA+Pj4gICAgCXJldHVybiAwOw0KPiA+Pj4gICAgfQ0KPiA+ Pj4NCj4gPj4+ICsNCj4gPj4+ICtzdGF0aWMgaW50DQo+ID4+PiArdnJiX3F1ZXVlX29wc19kdW1w KHN0cnVjdCBydGVfYmJkZXYgKmRldiwgdWludDE2X3QgcXVldWVfaWQsIEZJTEUNCj4gPj4+ICsq Zikgew0KPiA+Pj4gKwlzdHJ1Y3QgYWNjX3F1ZXVlICpxID0gZGV2LT5kYXRhLT5xdWV1ZXNbcXVl dWVfaWRdLnF1ZXVlX3ByaXZhdGU7DQo+ID4+PiArCXN0cnVjdCBydGVfYmJkZXZfZGVjX29wICpv cDsNCj4gPj4+ICsJdWludDE2X3Qgc3RhcnRfZXJyLCBlbmRfZXJyLCBpLCBpbnRfbmI7DQo+ID4+ PiArCXZvbGF0aWxlIHVuaW9uIGFjY19pbmZvX3JpbmdfZGF0YSAqcmluZ19kYXRhOw0KPiA+Pj4g Kwl1aW50MTZfdCBpbmZvX3JpbmdfaGVhZCA9IHEtPmQtPmluZm9fcmluZ19oZWFkOw0KPiA+Pj4g Kw0KPiA+Pj4gKwlpZiAoZiA9PSBOVUxMKSB7DQo+ID4+PiArCQlydGVfYmJkZXZfbG9nKEVSUiwg IkludmFsaWQgRmlsZSBpbnB1dCIpOw0KPiA+Pj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+PiAr CX0NCj4gPj4+ICsNCj4gPj4+ICsJLyoqIFByaW50IGdlbmVyaWMgaW5mb3JtYXRpb24gb24gcXVl dWUgc3RhdHVzLiAqLw0KPiA+Pj4gKwlmcHJpbnRmKGYsICJEdW1wIG9mIG9wZXJhdGlvbnMgJXMg b24gUXVldWUgJWQgYnkgJXNcbiIsDQo+ID4+PiArCQkJcnRlX2JiZGV2X29wX3R5cGVfc3RyKHEt Pm9wX3R5cGUpLCBxdWV1ZV9pZCwgZGV2LQ0KPiA+Pj4gZGV2aWNlLT5kcml2ZXItPm5hbWUpOw0K PiA+Pj4gKwlmcHJpbnRmKGYsICIgICAgQVEgRW5xdWV1ZWQgJWQgRGVxdWV1ZWQgJWQgRGVwdGgg JWQgLSBBdmFpbGFibGUgRW5xDQo+ID4+ICVkIERlcSAlZFxuIiwNCj4gPj4+ICsJCQlxLT5hcV9l bnF1ZXVlZCwgcS0+YXFfZGVxdWV1ZWQsIHEtPmFxX2RlcHRoLA0KPiA+Pj4gKwkJCWFjY19yaW5n X2F2YWlsX2VucShxKSwgYWNjX3JpbmdfYXZhaWxfZGVxKHEpKTsNCj4gPj4+ICsNCj4gPj4+ICsJ LyoqIFByaW50IGluZm9ybWF0aW9uIGNhcHR1cmVkIGluIHRoZSBlcnJvciBidWZmZXIuICovDQo+ ID4+PiArCWlmIChxLT5lcnJvcl93cmFwID09IDApIHsNCj4gPj4+ICsJCXN0YXJ0X2VyciA9IDA7 DQo+ID4+PiArCQllbmRfZXJyID0gcS0+ZXJyb3JfaGVhZDsNCj4gPj4+ICsJfSBlbHNlIHsNCj4g Pj4+ICsJCXN0YXJ0X2VyciA9IHEtPmVycm9yX2hlYWQ7DQo+ID4+PiArCQllbmRfZXJyID0gcS0+ ZXJyb3JfaGVhZCArIEFDQ19NQVhfQlVGRkVSTEVOOw0KPiA+Pj4gKwl9DQo+ID4+PiArCWZwcmlu dGYoZiwgIkVycm9yIEJ1ZmZlciAtIEhlYWQgJWQgV3JhcCAlZFxuIiwgcS0+ZXJyb3JfaGVhZCwg cS0NCj4gPj4+IGVycm9yX3dyYXApOw0KPiA+Pj4gKwlmb3IgKGkgPSBzdGFydF9lcnI7IGkgPCBl bmRfZXJyOyArK2kpDQo+ID4+PiArCQlmcHJpbnRmKGYsICIgICVkXHQlcyIsIGksIHEtPmVycm9y X2J1ZnNbaSAlDQo+ID4+IEFDQ19NQVhfQlVGRkVSTEVOXSk7DQo+ID4+PiArDQo+ID4+PiArCS8q KiBQcmludCBpbmZvcm1hdGlvbiBjYXB0dXJlZCBpbiB0aGUgaW5mbyByaW5nLiAqLw0KPiA+Pj4g KwlpZiAocS0+ZC0+aW5mb19yaW5nICE9IE5VTEwpIHsNCj4gPj4+ICsJCWZwcmludGYoZiwgIklu Zm8gUmluZyBCdWZmZXIgLSBIZWFkICVkXG4iLCBxLT5kLQ0KPiA+Pj4gaW5mb19yaW5nX2hlYWQp Ow0KPiA+Pj4gKwkJcmluZ19kYXRhID0gcS0+ZC0+aW5mb19yaW5nICsgKHEtPmQtPmluZm9fcmlu Z19oZWFkICYNCj4gPj4gQUNDX0lORk9fUklOR19NQVNLKTsNCj4gPj4+ICsJCXdoaWxlIChyaW5n X2RhdGEtPnZhbGlkKSB7DQo+ID4+PiArCQkJaW50X25iID0gaW50X2Zyb21fcmluZygqcmluZ19k YXRhLCBxLT5kLQ0KPiA+Pj4gZGV2aWNlX3ZhcmlhbnQpOw0KPiA+Pj4gKwkJCWlmICgoaW50X25i IDwgQUNDX1BGX0lOVF9ETUFfRExfREVTQ19JUlEpIHx8ICgNCj4gPj4+ICsJCQkJCWludF9uYiA+ DQo+ID4+IEFDQ19QRl9JTlRfRE1BX01MRF9ERVNDX0lSUSkpIHsNCj4gPj4+ICsJCQkJZnByaW50 ZihmLCAiICBJbmZvUmluZzogSVRSOiVkIEluZm86MHgleCIsDQo+ID4+PiArCQkJCQkJaW50X25i LCByaW5nX2RhdGEtDQo+ID4+PiBkZXRhaWxlZF9pbmZvKTsNCj4gPj4+ICsJCQkJLyogSW5pdGlh bGl6ZSBJbmZvIFJpbmcgZW50cnkgYW5kIG1vdmUgZm9yd2FyZC4NCj4gPj4gKi8NCj4gPj4+ICsJ CQkJcmluZ19kYXRhLT52YWxpZCA9IDA7DQo+ID4+PiArCQkJfQ0KPiA+Pj4gKwkJCWluZm9fcmlu Z19oZWFkKys7DQo+ID4+PiArCQkJcmluZ19kYXRhID0gcS0+ZC0+aW5mb19yaW5nICsgKGluZm9f cmluZ19oZWFkICYNCj4gPj4gQUNDX0lORk9fUklOR19NQVNLKTsNCj4gPj4+ICsJCX0NCj4gPj4+ ICsJfQ0KPiA+Pj4gKw0KPiA+Pj4gKwlmcHJpbnRmKGYsICJSaW5nIENvbnRlbnQgLSBIZWFkICVk IFRhaWwgJWQgRGVwdGggJWRcbiIsDQo+ID4+PiArCQkJcS0+c3dfcmluZ19oZWFkLCBxLT5zd19y aW5nX3RhaWwsIHEtPnN3X3JpbmdfZGVwdGgpOw0KPiA+Pj4gKwkvKiogUHJpbnQgaW5mb3JtYXRp b24gYWJvdXQgZWFjaCBvcGVyYXRpb24gaW4gdGhlIHNvZnR3YXJlIHJpbmcuICovDQo+ID4+PiAr CWZvciAoaSA9IDA7IGkgPCBxLT5zd19yaW5nX2RlcHRoOyArK2kpIHsNCj4gPj4+ICsJCW9wID0g KHEtPnJpbmdfYWRkciArIGkpLT5yZXEub3BfYWRkcjsNCj4gPj4+ICsJCWlmIChvcCAhPSBOVUxM KQ0KPiA+Pj4gKwkJCWZwcmludGYoZiwgIiAgJWRcdG4gJWQgJXMiLA0KPiA+Pj4gKwkJCQkJaSwg KHEtPnJpbmdfYWRkciArIGkpLT5yZXEubnVtQ0JzLA0KPiA+Pj4gKwkJCQkJcnRlX2JiZGV2X29w c19wYXJhbV9zdHJpbmcob3AsIHEtDQo+ID4+PiBvcF90eXBlKSk7DQo+ID4+PiArCX0NCj4gPj4+ ICsNCj4gPj4+ICsJZnByaW50ZihmLCAiPT0gRW5kIG9mIEZpbGUgPT1cbiIpOw0KPiA+Pj4gKw0K PiA+Pj4gKwlyZXR1cm4gMDsNCj4gPj4+ICt9DQo+ID4+PiArDQo+ID4+PiAgICBzdGF0aWMgY29u c3Qgc3RydWN0IHJ0ZV9iYmRldl9vcHMgdnJiX2JiZGV2X29wcyA9IHsNCj4gPj4+ICAgIAkuc2V0 dXBfcXVldWVzID0gdnJiX3NldHVwX3F1ZXVlcywNCj4gPj4+ICAgIAkuaW50cl9lbmFibGUgPSB2 cmJfaW50cl9lbmFibGUsDQo+ID4+PiBAQCAtMTQ0Myw3ICsxNTE1LDggQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBydGVfYmJkZXZfb3BzDQo+ID4+PiB2cmJfYmJkZXZfb3BzDQo+ID4+ID0gew0KPiA+ Pj4gICAgCS5xdWV1ZV9yZWxlYXNlID0gdnJiX3F1ZXVlX3JlbGVhc2UsDQo+ID4+PiAgICAJLnF1 ZXVlX3N0b3AgPSB2cmJfcXVldWVfc3RvcCwNCj4gPj4+ICAgIAkucXVldWVfaW50cl9lbmFibGUg PSB2cmJfcXVldWVfaW50cl9lbmFibGUsDQo+ID4+PiAtCS5xdWV1ZV9pbnRyX2Rpc2FibGUgPSB2 cmJfcXVldWVfaW50cl9kaXNhYmxlDQo+ID4+PiArCS5xdWV1ZV9pbnRyX2Rpc2FibGUgPSB2cmJf cXVldWVfaW50cl9kaXNhYmxlLA0KPiA+Pj4gKwkucXVldWVfb3BzX2R1bXAgPSB2cmJfcXVldWVf b3BzX2R1bXANCj4gPj4+ICAgIH07DQo+ID4+Pg0KPiA+Pj4gICAgLyogUENJIFBGIGFkZHJlc3Mg bWFwLiAqLw0KPiA+Pj4gQEAgLTE2ODAsNyArMTc1Myw3IEBAIHZyYl9kbWFfZGVzY190ZF9maWxs KHN0cnVjdCBydGVfYmJkZXZfZGVjX29wDQo+ID4+ICpvcCwNCj4gPj4+ICAgIAkJdWludDMyX3Qg KmluX29mZnNldCwgdWludDMyX3QgKmhfb3V0X29mZnNldCwNCj4gPj4+ICAgIAkJdWludDMyX3Qg KnNfb3V0X29mZnNldCwgdWludDMyX3QgKmhfb3V0X2xlbmd0aCwNCj4gPj4+ICAgIAkJdWludDMy X3QgKnNfb3V0X2xlbmd0aCwgdWludDMyX3QgKm1idWZfdG90YWxfbGVmdCwNCj4gPj4+IC0JCXVp bnQzMl90ICpzZWdfdG90YWxfbGVmdCwgdWludDhfdCByKQ0KPiA+Pj4gKwkJdWludDMyX3QgKnNl Z190b3RhbF9sZWZ0LCB1aW50OF90IHIsIHN0cnVjdCBhY2NfcXVldWUgKnEpDQo+ID4+PiAgICB7 DQo+ID4+PiAgICAJaW50IG5leHRfdHJpcGxldCA9IDE7IC8qIEZDVyBhbHJlYWR5IGRvbmUuICov DQo+ID4+PiAgICAJdWludDE2X3QgazsNCj4gPj4+IEBAIC0xNzI0LDggKzE3OTcsOCBAQCB2cmJf ZG1hX2Rlc2NfdGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiA+PiAqb3AsDQo+ID4+ PiAgICAJa3cgPSBSVEVfQUxJR05fQ0VJTChrICsgNCwgMzIpICogMzsNCj4gPj4+DQo+ID4+PiAg ICAJaWYgKHVubGlrZWx5KCgqbWJ1Zl90b3RhbF9sZWZ0ID09IDApIHx8ICgqbWJ1Zl90b3RhbF9s ZWZ0IDwga3cpKSkgew0KPiA+Pj4gLQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4+PiAtCQkJCSJN aXNtYXRjaCBiZXR3ZWVuIG1idWYgbGVuZ3RoIGFuZCBpbmNsdWRlZA0KPiA+PiBDQiBzaXplczog bWJ1ZiBsZW4gJXUsIGNiIGxlbiAldSIsDQo+ID4+PiArCQlhY2NfZXJyb3JfbG9nKHEsICh2b2lk ICopb3AsDQo+ID4+PiArCQkJCSJNaXNtYXRjaCBiZXR3ZWVuIG1idWYgbGVuZ3RoIGFuZCBpbmNs dWRlZA0KPiA+PiBDQiBzaXplczogbWJ1ZiBsZW4gJXUsDQo+ID4+PiArY2IgbGVuICV1XG4iLA0K PiA+Pj4gICAgCQkJCSptYnVmX3RvdGFsX2xlZnQsIGt3KTsNCj4gPj4+ICAgIAkJcmV0dXJuIC0x Ow0KPiA+Pj4gICAgCX0NCj4gPj4+IEBAIC0xNzM1LDggKzE4MDgsOCBAQCB2cmJfZG1hX2Rlc2Nf dGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiA+PiAqb3AsDQo+ID4+PiAgICAJCQlj aGVja19iaXQob3AtPnR1cmJvX2RlYy5vcF9mbGFncywNCj4gPj4+ICAgIAkJCVJURV9CQkRFVl9U VVJCT19ERUNfU0NBVFRFUl9HQVRIRVIpKTsNCj4gPj4+ICAgIAlpZiAodW5saWtlbHkobmV4dF90 cmlwbGV0IDwgMCkpIHsNCj4gPj4+IC0JCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+Pj4gLQkJCQki TWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRvIHByb2Nlc3MgYW5kIG1idWYNCj4gPj4gZGF0YSBsZW5n dGggaW4gYmJkZXZfb3A6ICVwIiwNCj4gPj4+ICsJCWFjY19lcnJvcl9sb2cocSwgKHZvaWQgKilv cCwNCj4gPj4+ICsJCQkJIk1pc21hdGNoIGJldHdlZW4gZGF0YSB0byBwcm9jZXNzIGFuZCBtYnVm DQo+ID4+IGRhdGEgbGVuZ3RoIGluDQo+ID4+PiArYmJkZXZfb3A6ICVwXG4iLA0KPiA+Pj4gICAg CQkJCW9wKTsNCj4gPj4+ICAgIAkJcmV0dXJuIC0xOw0KPiA+Pj4gICAgCX0NCj4gPj4+IEBAIC0x NzQ4LDcgKzE4MjEsNyBAQCB2cmJfZG1hX2Rlc2NfdGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2Rl Y19vcA0KPiA+PiAqb3AsDQo+ID4+PiAgICAJCQlkZXNjLCBoX291dHB1dCwgKmhfb3V0X29mZnNl dCwNCj4gPj4+ICAgIAkJCSpoX291dF9sZW5ndGgsIG5leHRfdHJpcGxldCwNCj4gPj4gQUNDX0RN QV9CTEtJRF9PVVRfSEFSRCk7DQo+ID4+PiAgICAJaWYgKHVubGlrZWx5KG5leHRfdHJpcGxldCA8 IDApKSB7DQo+ID4+PiAtCQlydGVfYmJkZXZfbG9nKEVSUiwNCj4gPj4+ICsJCWFjY19lcnJvcl9s b2cocSwgKHZvaWQgKilvcCwNCj4gPj4+ICAgIAkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRv IHByb2Nlc3MgYW5kIG1idWYNCj4gPj4gZGF0YSBsZW5ndGggaW4gYmJkZXZfb3A6ICVwIiwNCj4g Pj4+ICAgIAkJCQlvcCk7DQo+ID4+PiAgICAJCXJldHVybiAtMTsNCj4gPj4+IEBAIC0xNzYwLDcg KzE4MzMsNyBAQCB2cmJfZG1hX2Rlc2NfdGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0K PiA+PiAqb3AsDQo+ID4+PiAgICAJLyogU29mdCBvdXRwdXQuICovDQo+ID4+PiAgICAJaWYgKGNo ZWNrX2JpdChvcC0+dHVyYm9fZGVjLm9wX2ZsYWdzLA0KPiA+PiBSVEVfQkJERVZfVFVSQk9fU09G VF9PVVRQVVQpKSB7DQo+ID4+PiAgICAJCWlmIChvcC0+dHVyYm9fZGVjLnNvZnRfb3V0cHV0LmRh dGEgPT0gMCkgew0KPiA+Pj4gLQkJCXJ0ZV9iYmRldl9sb2coRVJSLCAiU29mdCBvdXRwdXQgaXMg bm90IGRlZmluZWQiKTsNCj4gPj4+ICsJCQlhY2NfZXJyb3JfbG9nKHEsICh2b2lkICopb3AsICJT b2Z0IG91dHB1dCBpcyBub3QNCj4gPj4gZGVmaW5lZFxuIik7DQo+ID4+PiAgICAJCQlyZXR1cm4g LTE7DQo+ID4+PiAgICAJCX0NCj4gPj4+ICAgIAkJaWYgKGNoZWNrX2JpdChvcC0+dHVyYm9fZGVj Lm9wX2ZsYWdzLA0KPiA+Pj4gQEAgLTE3NzMsOCArMTg0Niw4IEBAIHZyYl9kbWFfZGVzY190ZF9m aWxsKHN0cnVjdCBydGVfYmJkZXZfZGVjX29wDQo+ID4+ICpvcCwNCj4gPj4+ICAgIAkJCQkqc19v dXRfb2Zmc2V0LCAqc19vdXRfbGVuZ3RoLCBuZXh0X3RyaXBsZXQsDQo+ID4+PiAgICAJCQkJQUND X0RNQV9CTEtJRF9PVVRfU09GVCk7DQo+ID4+PiAgICAJCWlmICh1bmxpa2VseShuZXh0X3RyaXBs ZXQgPCAwKSkgew0KPiA+Pj4gLQkJCXJ0ZV9iYmRldl9sb2coRVJSLA0KPiA+Pj4gLQkJCQkJIk1p c21hdGNoIGJldHdlZW4gZGF0YSB0byBwcm9jZXNzDQo+ID4+IGFuZCBtYnVmIGRhdGEgbGVuZ3Ro IGluIGJiZGV2X29wOiAlcCIsDQo+ID4+PiArCQkJYWNjX2Vycm9yX2xvZyhxLCAodm9pZCAqKW9w LA0KPiA+Pj4gKwkJCQkJIk1pc21hdGNoIGJldHdlZW4gZGF0YSB0byBwcm9jZXNzDQo+ID4+IGFu ZCBtYnVmIGRhdGEgbGVuZ3RoIGluDQo+ID4+PiArYmJkZXZfb3A6ICVwXG4iLA0KPiA+Pj4gICAg CQkJCQlvcCk7DQo+ID4+PiAgICAJCQlyZXR1cm4gLTE7DQo+ID4+PiAgICAJCX0NCj4gPj4+IEBA IC0xNzk3LDcgKzE4NzAsOCBAQCB2cmJfZG1hX2Rlc2NfbGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2 X2RlY19vcA0KPiA+PiAqb3AsDQo+ID4+PiAgICAJCXN0cnVjdCBydGVfbWJ1ZiAqKmlucHV0LCBz dHJ1Y3QgcnRlX21idWYgKmhfb3V0cHV0LA0KPiA+Pj4gICAgCQl1aW50MzJfdCAqaW5fb2Zmc2V0 LCB1aW50MzJfdCAqaF9vdXRfb2Zmc2V0LA0KPiA+Pj4gICAgCQl1aW50MzJfdCAqaF9vdXRfbGVu Z3RoLCB1aW50MzJfdCAqbWJ1Zl90b3RhbF9sZWZ0LA0KPiA+Pj4gLQkJdWludDMyX3QgKnNlZ190 b3RhbF9sZWZ0LCBzdHJ1Y3QgYWNjX2Zjd19sZCAqZmN3LCB1aW50MTZfdA0KPiA+PiBkZXZpY2Vf dmFyaWFudCkNCj4gPj4+ICsJCXVpbnQzMl90ICpzZWdfdG90YWxfbGVmdCwgc3RydWN0IGFjY19m Y3dfbGQgKmZjdywgdWludDE2X3QNCj4gPj4gZGV2aWNlX3ZhcmlhbnQsDQo+ID4+PiArCQlzdHJ1 Y3QgYWNjX3F1ZXVlICpxKQ0KPiA+Pj4gICAgew0KPiA+Pj4gICAgCXN0cnVjdCBydGVfYmJkZXZf b3BfbGRwY19kZWMgKmRlYyA9ICZvcC0+bGRwY19kZWM7DQo+ID4+PiAgICAJaW50IG5leHRfdHJp cGxldCA9IDE7IC8qIEZDVyBhbHJlYWR5IGRvbmUuICovIEBAIC0xODA4LDggKzE4ODIsOA0KPiA+ PiBAQA0KPiA+Pj4gdnJiX2RtYV9kZXNjX2xkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3Ag Km9wLA0KPiA+Pj4gICAgCWlmIChkZXZpY2VfdmFyaWFudCA9PSBWUkIxX1ZBUklBTlQpIHsNCj4g Pj4+ICAgIAkJaWYgKGNoZWNrX2JpdChvcC0+bGRwY19kZWMub3BfZmxhZ3MsDQo+ID4+IFJURV9C QkRFVl9MRFBDX0hBUlFfNEJJVF9DT01QUkVTU0lPTikgfHwNCj4gPj4+ICAgIAkJCQljaGVja19i aXQob3AtPmxkcGNfZGVjLm9wX2ZsYWdzLA0KPiA+PiBSVEVfQkJERVZfTERQQ19TT0ZUX09VVF9F TkFCTEUpKSB7DQo+ID4+PiAtCQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4+PiAtCQkJCQkiVlJC MSBkb2VzIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQNCj4gPj4gY2FwYWJpbGl0aWVzICV4IiwN Cj4gPj4+ICsJCQlhY2NfZXJyb3JfbG9nKHEsICh2b2lkICopb3AsDQo+ID4+PiArCQkJCQkiVlJC MSBkb2VzIG5vdCBzdXBwb3J0IHRoZSByZXF1ZXN0ZWQNCj4gPj4gY2FwYWJpbGl0aWVzICV4XG4i LA0KPiANCj4gWW91IHNob3VsZCBub3QgcmUtaW50cm9kdWNlICJcbiIsIERhdmlkIGlzIGN1cnJl bnRseSB3b3JraW5nIG9uIGdldHRpbmcgcmlkIG9mZg0KPiB0aGVtIGFsbC4NCj4gDQo+ID4+PiAg ICAJCQkJCW9wLT5sZHBjX2RlYy5vcF9mbGFncyk7DQo+ID4+PiAgICAJCQlyZXR1cm4gLTE7DQo+ ID4+PiAgICAJCX0NCj4gPj4+IEBAIC0xODI5LDggKzE5MDMsOCBAQCB2cmJfZG1hX2Rlc2NfbGRf ZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcA0KPiA+PiAqb3AsDQo+ID4+PiAgICAJb3V0cHV0 X2xlbmd0aCA9IEsgLSBkZWMtPm5fZmlsbGVyIC0gY3JjMjRfb3ZlcmxhcDsNCj4gPj4+DQo+ID4+ PiAgICAJaWYgKHVubGlrZWx5KCgqbWJ1Zl90b3RhbF9sZWZ0ID09IDApIHx8ICgqbWJ1Zl90b3Rh bF9sZWZ0IDwNCj4gPj4gaW5wdXRfbGVuZ3RoKSkpIHsNCj4gPj4+IC0JCXJ0ZV9iYmRldl9sb2co RVJSLA0KPiA+Pj4gLQkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBtYnVmIGxlbmd0aCBhbmQgaW5jbHVk ZWQNCj4gPj4gQ0Igc2l6ZXM6IG1idWYgbGVuICV1LCBjYiBsZW4gJXUiLA0KPiA+Pj4gKwkJYWNj X2Vycm9yX2xvZyhxLCAodm9pZCAqKW9wLA0KPiA+Pj4gKwkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBt YnVmIGxlbmd0aCBhbmQgaW5jbHVkZWQNCj4gPj4gQ0Igc2l6ZXM6IG1idWYgbGVuICV1LA0KPiA+ Pj4gK2NiIGxlbiAldVxuIiwNCj4gPj4+ICAgIAkJCQkqbWJ1Zl90b3RhbF9sZWZ0LCBpbnB1dF9s ZW5ndGgpOw0KPiA+Pj4gICAgCQlyZXR1cm4gLTE7DQo+ID4+PiAgICAJfQ0KPiA+Pj4gQEAgLTE4 NDIsMTUgKzE5MTYsMTUgQEAgdnJiX2RtYV9kZXNjX2xkX2ZpbGwoc3RydWN0DQo+IHJ0ZV9iYmRl dl9kZWNfb3ANCj4gPj4gKm9wLA0KPiA+Pj4gICAgCQkJUlRFX0JCREVWX0xEUENfREVDX1NDQVRU RVJfR0FUSEVSKSk7DQo+ID4+Pg0KPiA+Pj4gICAgCWlmICh1bmxpa2VseShuZXh0X3RyaXBsZXQg PCAwKSkgew0KPiA+Pj4gLQkJcnRlX2JiZGV2X2xvZyhFUlIsDQo+ID4+PiAtCQkJCSJNaXNtYXRj aCBiZXR3ZWVuIGRhdGEgdG8gcHJvY2VzcyBhbmQgbWJ1Zg0KPiA+PiBkYXRhIGxlbmd0aCBpbiBi YmRldl9vcDogJXAiLA0KPiA+Pj4gKwkJYWNjX2Vycm9yX2xvZyhxLCAodm9pZCAqKW9wLA0KPiA+ Pj4gKwkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRvIHByb2Nlc3MgYW5kIG1idWYNCj4gPj4g ZGF0YSBsZW5ndGggaW4NCj4gPj4+ICtiYmRldl9vcDogJXBcbiIsDQo+ID4+PiAgICAJCQkJb3Ap Ow0KPiA+Pj4gICAgCQlyZXR1cm4gLTE7DQo+ID4+PiAgICAJfQ0KPiA+Pj4NCj4gPj4+ICAgIAlp ZiAoY2hlY2tfYml0KG9wLT5sZHBjX2RlYy5vcF9mbGFncywNCj4gPj4gUlRFX0JCREVWX0xEUENf SFFfQ09NQklORV9JTl9FTkFCTEUpKSB7DQo+ID4+PiAgICAJCWlmIChvcC0+bGRwY19kZWMuaGFy cV9jb21iaW5lZF9pbnB1dC5kYXRhID09IDApIHsNCj4gPj4+IC0JCQlydGVfYmJkZXZfbG9nKEVS UiwgIkhBUlEgaW5wdXQgaXMgbm90IGRlZmluZWQiKTsNCj4gPj4+ICsJCQlhY2NfZXJyb3JfbG9n KHEsICh2b2lkICopb3AsICJIQVJRIGlucHV0IGlzIG5vdA0KPiA+PiBkZWZpbmVkXG4iKTsNCj4g Pj4+ICAgIAkJCXJldHVybiAtMTsNCj4gPj4+ICAgIAkJfQ0KPiA+Pj4gICAgCQloX3Bfc2l6ZSA9 IGZjdy0+aGNpbl9zaXplMCArIGZjdy0+aGNpbl9zaXplMTsgQEAgLTE4NTksNw0KPiA+PiArMTkz Myw3DQo+ID4+PiBAQCB2cmJfZG1hX2Rlc2NfbGRfZmlsbChzdHJ1Y3QgcnRlX2JiZGV2X2RlY19v cCAqb3AsDQo+ID4+PiAgICAJCWVsc2UgaWYgKGZjdy0+aGNpbl9kZWNvbXBfbW9kZSA9PSA0KQ0K PiA+Pj4gICAgCQkJaF9wX3NpemUgPSBoX3Bfc2l6ZSAvIDI7DQo+ID4+PiAgICAJCWlmIChvcC0+ bGRwY19kZWMuaGFycV9jb21iaW5lZF9pbnB1dC5kYXRhID09IDApIHsNCj4gPj4+IC0JCQlydGVf YmJkZXZfbG9nKEVSUiwgIkhBUlEgaW5wdXQgaXMgbm90IGRlZmluZWQiKTsNCj4gPj4+ICsJCQlh Y2NfZXJyb3JfbG9nKHEsICh2b2lkICopb3AsICJIQVJRIGlucHV0IGlzIG5vdA0KPiA+PiBkZWZp bmVkXG4iKTsNCj4gPj4+ICAgIAkJCXJldHVybiAtMTsNCj4gPj4+ICAgIAkJfQ0KPiA+Pj4gICAg CQlhY2NfZG1hX2ZpbGxfYmxrX3R5cGUoDQo+ID4+PiBAQCAtMTg4Miw3ICsxOTU2LDcgQEAgdnJi X2RtYV9kZXNjX2xkX2ZpbGwoc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3ANCj4gPj4+ICpvcCwNCj4g Pj4+DQo+ID4+PiAgICAJaWYgKGNoZWNrX2JpdChvcC0+bGRwY19kZWMub3BfZmxhZ3MsDQo+ID4+ IFJURV9CQkRFVl9MRFBDX1NPRlRfT1VUX0VOQUJMRSkpIHsNCj4gPj4+ICAgIAkJaWYgKG9wLT5s ZHBjX2RlYy5zb2Z0X291dHB1dC5kYXRhID09IDApIHsNCj4gPj4+IC0JCQlydGVfYmJkZXZfbG9n KEVSUiwgIlNvZnQgb3V0cHV0IGlzIG5vdCBkZWZpbmVkIik7DQo+ID4+PiArCQkJYWNjX2Vycm9y X2xvZyhxLCAodm9pZCAqKW9wLCAiU29mdCBvdXRwdXQgaXMgbm90DQo+ID4+IGRlZmluZWRcbiIp Ow0KPiA+Pj4gICAgCQkJcmV0dXJuIC0xOw0KPiA+Pj4gICAgCQl9DQo+ID4+PiAgICAJCWRlYy0+ c29mdF9vdXRwdXQubGVuZ3RoID0gZmN3LT5ybV9lOyBAQCAtMTg5NCw3ICsxOTY4LDcNCj4gPj4g QEANCj4gPj4+IHZyYl9kbWFfZGVzY19sZF9maWxsKHN0cnVjdCBydGVfYmJkZXZfZGVjX29wICpv cCwNCj4gPj4+ICAgIAlpZiAoY2hlY2tfYml0KG9wLT5sZHBjX2RlYy5vcF9mbGFncywNCj4gPj4+ DQo+ID4+IAlSVEVfQkJERVZfTERQQ19IUV9DT01CSU5FX09VVF9FTkFCTEUpKSB7DQo+ID4+PiAg ICAJCWlmIChvcC0+bGRwY19kZWMuaGFycV9jb21iaW5lZF9vdXRwdXQuZGF0YSA9PSAwKSB7DQo+ ID4+PiAtCQkJcnRlX2JiZGV2X2xvZyhFUlIsICJIQVJRIG91dHB1dCBpcyBub3QgZGVmaW5lZCIp Ow0KPiA+Pj4gKwkJCWFjY19lcnJvcl9sb2cocSwgKHZvaWQgKilvcCwgIkhBUlEgb3V0cHV0IGlz IG5vdA0KPiA+PiBkZWZpbmVkXG4iKTsNCj4gPj4+ICAgIAkJCXJldHVybiAtMTsNCj4gPj4+ICAg IAkJfQ0KPiA+Pj4NCj4gPj4+IEBAIC0yMzI2LDggKzI0MDAsOCBAQCB2cmIyX2VucXVldWVfbGRw Y19lbmNfb25lX29wX3RiKHN0cnVjdA0KPiA+PiBhY2NfcXVldWUgKnEsIHN0cnVjdCBydGVfYmJk ZXZfZW5jX29wICpvcA0KPiA+Pj4gICAgCQkJaW5fbGVuZ3RoX2luX2J5dGVzLCAmc2VnX3RvdGFs X2xlZnQsIG5leHRfdHJpcGxldCwNCj4gPj4+ICAgIAkJCWNoZWNrX2JpdChlbmMtPm9wX2ZsYWdz LA0KPiA+PiBSVEVfQkJERVZfTERQQ19FTkNfU0NBVFRFUl9HQVRIRVIpKTsNCj4gPj4+ICAgIAlp ZiAodW5saWtlbHkobmV4dF90cmlwbGV0IDwgMCkpIHsNCj4gPj4+IC0JCXJ0ZV9iYmRldl9sb2co RVJSLA0KPiA+Pj4gLQkJCQkiTWlzbWF0Y2ggYmV0d2VlbiBkYXRhIHRvIHByb2Nlc3MgYW5kIG1i dWYNCj4gPj4gZGF0YSBsZW5ndGggaW4gYmJkZXZfb3A6ICVwIiwNCj4gPj4+ICsJCWFjY19lcnJv cl9sb2cocSwgKHZvaWQgKilvcCwNCj4gPj4+ICsJCQkJIk1pc21hdGNoIGJldHdlZW4gZGF0YSB0 byBwcm9jZXNzIGFuZCBtYnVmDQo+ID4+IGRhdGEgbGVuZ3RoIGluDQo+ID4+PiArYmJkZXZfb3A6 ICVwXG4iLA0KPiA+Pj4gICAgCQkJCW9wKTsNCj4gPj4+ICAgIAkJcmV0dXJuIC0xOw0KPiA+Pj4g ICAgCX0NCj4gPj4+IEBAIC0yMzk5LDcgKzI0NzMsNyBAQCBlbnF1ZXVlX2RlY19vbmVfb3BfY2Io c3RydWN0IGFjY19xdWV1ZSAqcSwNCj4gPj4gc3RydWN0IHJ0ZV9iYmRldl9kZWNfb3AgKm9wLA0K PiA+Pj4gICAgCXJldCA9IHZyYl9kbWFfZGVzY190ZF9maWxsKG9wLCAmZGVzYy0+cmVxLCAmaW5w dXQsIGhfb3V0cHV0LA0KPiA+Pj4gICAgCQkJc19vdXRwdXQsICZpbl9vZmZzZXQsICZoX291dF9v ZmZzZXQsICZzX291dF9vZmZzZXQsDQo+ID4+PiAgICAJCQkmaF9vdXRfbGVuZ3RoLCAmc19vdXRf bGVuZ3RoLCAmbWJ1Zl90b3RhbF9sZWZ0LA0KPiA+Pj4gLQkJCSZzZWdfdG90YWxfbGVmdCwgMCk7 DQo+ID4+PiArCQkJJnNlZ190b3RhbF9sZWZ0LCAwLCBxKTsNCj4gPj4+DQo+ID4+PiAgICAJaWYg KHVubGlrZWx5KHJldCA8IDApKQ0KPiA+Pj4gICAgCQlyZXR1cm4gcmV0Ow0KPiA+Pj4gQEAgLTI0 NzgsNyArMjU1Miw3IEBAIHZyYl9lbnF1ZXVlX2xkcGNfZGVjX29uZV9vcF9jYihzdHJ1Y3QNCj4g Pj4gYWNjX3F1ZXVlICpxLCBzdHJ1Y3QgcnRlX2JiZGV2X2RlY19vcCAqb3AsDQo+ID4+PiAgICAJ CXJldCA9IHZyYl9kbWFfZGVzY19sZF9maWxsKG9wLCAmZGVzYy0+cmVxLCAmaW5wdXQsIGhfb3V0 cHV0LA0KPiA+Pj4gICAgCQkJCSZpbl9vZmZzZXQsICZoX291dF9vZmZzZXQsDQo+ID4+PiAgICAJ CQkJJmhfb3V0X2xlbmd0aCwgJm1idWZfdG90YWxfbGVmdCwNCj4gPj4+IC0JCQkJJnNlZ190b3Rh bF9sZWZ0LCBmY3csIHEtPmQtPmRldmljZV92YXJpYW50KTsNCj4gPj4+ICsJCQkJJnNlZ190b3Rh bF9sZWZ0LCBmY3csIHEtPmQtPmRldmljZV92YXJpYW50LCBxKTsNCj4gPj4+ICAgIAkJaWYgKHVu bGlrZWx5KHJldCA8IDApKQ0KPiA+Pj4gICAgCQkJcmV0dXJuIHJldDsNCj4gPj4+ICAgIAl9DQo+ ID4+PiBAQCAtMjU3Miw3ICsyNjQ2LDcgQEAgdnJiX2VucXVldWVfbGRwY19kZWNfb25lX29wX3Ri KHN0cnVjdA0KPiA+PiBhY2NfcXVldWUgKnEsIHN0cnVjdCBydGVfYmJkZXZfZGVjX29wICpvcCwN Cj4gPj4+ICAgIAkJCQloX291dHB1dCwgJmluX29mZnNldCwgJmhfb3V0X29mZnNldCwNCj4gPj4+ ICAgIAkJCQkmaF9vdXRfbGVuZ3RoLA0KPiA+Pj4gICAgCQkJCSZtYnVmX3RvdGFsX2xlZnQsICZz ZWdfdG90YWxfbGVmdCwNCj4gPj4+IC0JCQkJJmRlc2MtPnJlcS5mY3dfbGQsIHEtPmQtPmRldmlj ZV92YXJpYW50KTsNCj4gPj4+ICsJCQkJJmRlc2MtPnJlcS5mY3dfbGQsIHEtPmQtPmRldmljZV92 YXJpYW50LCBxKTsNCj4gPj4+DQo+ID4+PiAgICAJCWlmICh1bmxpa2VseShyZXQgPCAwKSkNCj4g Pj4+ICAgIAkJCXJldHVybiByZXQ7DQo+ID4+PiBAQCAtMjY1OCw3ICsyNzMyLDcgQEAgZW5xdWV1 ZV9kZWNfb25lX29wX3RiKHN0cnVjdCBhY2NfcXVldWUgKnEsDQo+ID4+IHN0cnVjdCBydGVfYmJk ZXZfZGVjX29wICpvcCwNCj4gPj4+ICAgIAkJcmV0ID0gdnJiX2RtYV9kZXNjX3RkX2ZpbGwob3As ICZkZXNjLT5yZXEsICZpbnB1dCwNCj4gPj4+ICAgIAkJCQloX291dHB1dCwgc19vdXRwdXQsICZp bl9vZmZzZXQsDQo+ID4+ICZoX291dF9vZmZzZXQsDQo+ID4+PiAgICAJCQkJJnNfb3V0X29mZnNl dCwgJmhfb3V0X2xlbmd0aCwNCj4gPj4gJnNfb3V0X2xlbmd0aCwNCj4gPj4+IC0JCQkJJm1idWZf dG90YWxfbGVmdCwgJnNlZ190b3RhbF9sZWZ0LCByKTsNCj4gPj4+ICsJCQkJJm1idWZfdG90YWxf bGVmdCwgJnNlZ190b3RhbF9sZWZ0LCByLCBxKTsNCj4gPj4+DQo+ID4+PiAgICAJCWlmICh1bmxp a2VseShyZXQgPCAwKSkNCj4gPj4+ICAgIAkJCXJldHVybiByZXQ7DQo+ID4NCg0K