From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id D0AFA4A8E3 for ; Wed, 24 Apr 2024 05:07:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4259168CFCE; Wed, 24 Apr 2024 08:07:04 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.10]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3847868CD6B for ; Wed, 24 Apr 2024 08:06:56 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713935223; x=1745471223; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-id:content-transfer-encoding: mime-version; bh=RMNld0jvQEWXKNajnMzZ05GDDTqmh/RQPeOJo8Yg0bg=; b=cJCB4sKgoF2nAM5dtUC8gpOxSzxAXusZUyrobKc2ygwo/fofU3UnlcxU nz66xiy8P6ntU1XXV29XumWmVLQb98QX2mpidKhtbGonVdshFvhMf4Qsw W6j2n2CX08KBCZbtXW5B3xgQL2Ky7VDWVikZO4oExqrHMNND8uXmbGfKi dUapTijC74x9W1Mum4b0Ox0inH2pW3zInHR5Lq8IdxU0nj7LIofK6JDQL pCHMlMAMRj9BnQhRAuOrOfBiTtoAxcX0d1mNSMruLwih8MIUpiAuXB71Q riGZbAiTXsV6JAzNG+52zb+2d7ROxrc5XPbMmNabTcGPx3sQ+LxDyp+h6 w==; X-CSE-ConnectionGUID: adQ0cK/nS+Waqm7rrd7M7g== X-CSE-MsgGUID: h3svpFeZS8SmBX6tzjaR+w== X-IronPort-AV: E=McAfee;i="6600,9927,11053"; a="27002975" X-IronPort-AV: E=Sophos;i="6.07,225,1708416000"; d="scan'208";a="27002975" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by orvoesa102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2024 22:06:54 -0700 X-CSE-ConnectionGUID: k24VpXA0RtWUW8A3uj52vw== X-CSE-MsgGUID: gydUavAmS+SRh/x1NSY3DA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,225,1708416000"; d="scan'208";a="55791285" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa001.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 23 Apr 2024 22:06:54 -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.35; Tue, 23 Apr 2024 22:06:53 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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.35 via Frontend Transport; Tue, 23 Apr 2024 22:06:53 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 23 Apr 2024 22:06:53 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jflMFkr9Iw7cBmv+cGC6iJ4WSnWThpScLL2LVfpaa6xK9eSFPTeNTzKbRFmUS/9zN4aumJPBMjhPGsJb7JbDLzekEvvTJ7PRILhgw//GD3QzZJx814YmrNYN8JvjY9vI/Zu5StI80NvzNIzzdR+CTB1EFnUdEah9QD8Segtps8Hmia/4NI626TUDb+ErWTXhF+ImElcsA1pqbVIu5sAimVPRpECSNbswDVxD4d0aCxDnOpsbiHqEEZJhKrgChsNUTxKdNgAZJP+62jx5X9x71UX8g/ya245rDyQnj21YQhiKTfdjv7Jtjfi4b8HXRct5BhD8i0Pz1dikF+wxCx2v5g== 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=RMNld0jvQEWXKNajnMzZ05GDDTqmh/RQPeOJo8Yg0bg=; b=HbUnS5ed5rXwLe13aN0craJd1NZ4MUozpDqE7Q8O3uc81MlOuI4FtaCT9Q65IweEjumzS1CHtyWxZBZgh7MUPc5mmmUtHiovUI+KwgsdAUJgniNcEyUSvWZOzdlr8iMPhd3aqS85GsnYxNs8shCj0O+tFF3pBPCaDeMPd2Avk6B+prHsACXXCw/w7+WQtPHupy6f8QXk+JG+WaTT7p2VzCTp1l7x6NKIiLVK9Wm9ANsYby4tQYBoHRK61hGmahMF519yOu9M5VgnkRVrcoRvmFfSgf+DnwHMmrxWZC5TaxfCEhkMXi3l0Xx1U0oY+4iT9tRypBQC/rX5r9dPT2NEyw== 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 DM3PR11MB8757.namprd11.prod.outlook.com (2603:10b6:8:1af::7) by SA1PR11MB8490.namprd11.prod.outlook.com (2603:10b6:806:3a7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7519.22; Wed, 24 Apr 2024 05:06:51 +0000 Received: from DM3PR11MB8757.namprd11.prod.outlook.com ([fe80::103a:9795:6ae2:7c96]) by DM3PR11MB8757.namprd11.prod.outlook.com ([fe80::103a:9795:6ae2:7c96%4]) with mapi id 15.20.7430.045; Wed, 24 Apr 2024 05:06:51 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: Make qsv hardware transfers thread safe Thread-Index: AQHajaJc+nAVYB2PH0+k/79f47xtWLFsI5kAgABtMwCACl5cAA== Date: Wed, 24 Apr 2024 05:06:51 +0000 Message-ID: <23bc06db581b5c3d0ab49f894af2a5fa69fb7d89.camel@intel.com> References: <20240417151013.362-1-samuelsonm@gmail.com> In-Reply-To: <20240417151013.362-1-samuelsonm@gmail.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 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: DM3PR11MB8757:EE_|SA1PR11MB8490:EE_ x-ms-office365-filtering-correlation-id: 954aab25-23a9-4cec-334f-08dc641c59f6 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|376005|1800799015|366007|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?MkFsMUxaVittaTJ6WWZ6N3dCS2VXVW5vSGVEUkhsWlFPNEluR2dPTmtJdHZa?= =?utf-8?B?VkFlaTY1bjlvak5ibU9yMHVxdG5QbXN3Zzg2Y0xhcEJjRGVHMDhWWHRxWEov?= =?utf-8?B?aDJrQjZGbFRhSzNEQWhaUURFVGE3aWhna0dMQm80UzcxampVdEU3RmJTSUVC?= =?utf-8?B?Um1oRjZpNG1tcXVPRFJoNzduYVptNzcrbDJ0b1REV09YRVpvR2NwdjM4SVVP?= =?utf-8?B?d2RNQTFNVGRkKzRzbnFmRk1RMFhaUTJPY1NpdFlwdXFTdjB5a3c0SDhPN3d0?= =?utf-8?B?ZW5ReWNWb1dOYzh1V0ZhUUw2cExtS3JrMldLWU9zTzM5N29qQWtPb24xODBD?= =?utf-8?B?azBKb2lXQXh6aFp4b2liWThJNjQ3T1RzMTRBTzlCZytERkNLU0NleFU5OENu?= =?utf-8?B?RmlpMHlaRDhWaHF2dVZiWjN4VU83c0ZRb0VCK09NR2pwdGlFdS91cGN1OHRP?= =?utf-8?B?RzhQdlpwdkdjcXVxZVNWb2dZN0drenpWL2daUmNGaXBmV3pIQ0pDT2dCazlq?= =?utf-8?B?aHlHNCtEQ2FwZ0JTcUhSaFB4Z2xYOGRwME0zNE1rL3hlQUpKdXorR2E0WEky?= =?utf-8?B?eklzNW1yRTA1MU9qa21JN0JEUjcxTXFreHBlVjhhV3BFUWFRWlpXT0VzYVJK?= =?utf-8?B?bFAwbDU4MmVSaEhRNERta3JSaDRyMEhNbGc3THF2WlVZdHdZQ2kxc0JMWWNZ?= =?utf-8?B?TzR6a1pNdzZIM216SUxrcVFtRDdIZlFVa2lCZmdMSlpnQzk1Wm9KcEVDTW9X?= =?utf-8?B?bWh5QTdLNlBmU2I4Qk91ZW5MbjBVV1JtZVNHbDNqOWgrUnVPOUhEQTdvYlBW?= =?utf-8?B?ZTg3UWxqa1RmWXRoVS9HQlp4UTFZTTdwUTF4RUh3ZktuT3JkVy9MRXZvZnNk?= =?utf-8?B?VDRLSURXRElnbnlkVlc2SVhKc3VtOHNQeUZ5WlRuaFJBWldXcnNtVkpMdDVB?= =?utf-8?B?NVBtNE9sRi9TK1FnemEyS25FaGJqN0x1Tk5HUndhNW9qWm1odTVYYkRCS3JT?= =?utf-8?B?ZGJBWS81T1p4RFdDVWU0WVczME1ndHY4TkU3VS9aQTdBcjEzYnZNRlZsTTQ2?= =?utf-8?B?WGw3TU9qeU05QzlZZll1NTJ5N2IxVVd5QjN0MzdUZHV5dGRQTG0zR1ZQZmZP?= =?utf-8?B?dkVXTjF0Y0syaFFZd1pMT0JFallCMHZkcGtZckJjeEZYcUFMekJ4dnE1Ym9h?= =?utf-8?B?Vi9lMnBuZnBDNlJ2anByOUpkVkFKWHVTOEl4TDFrU1RIbndpT1dWTjRGeG9E?= =?utf-8?B?N1JaUlViNzlCemdtdjg2ZDdvMFJmakZRRVpkQ0VLRnVaMTFLb1RFUnArMW01?= =?utf-8?B?M3RXMTVjZmVyVExwZngvbDVxMmlnSlZUSmp1a1JReE5TR2pncmVMcVN6UEZh?= =?utf-8?B?aFQyZHdnemFIRGZ1WlFPZFEvNTJLQTVKb1pNZHdFdFpqZWdURlJRNWNMeUNh?= =?utf-8?B?QWpkdU9FN25SMXVPWThjNUxtdXRZcnJkNXRIOXZnL2FrdHlQeDJkbzhoU1Vm?= =?utf-8?B?N084aWUvK29sbUtaaHBOMVdWWFRMZWJrVHh5Z3B5VkhPNGFJMG1uR3dKaE1t?= =?utf-8?B?bGs2SGNRempYMUZCZ0J0M05QeFMrTXdXZkNsbzJ5NUdCUzQwRXVXVE1ndngr?= =?utf-8?B?TUJhZjU5azIzT3p6d2ZFTVExN3lHVE5BUFNic1oxcDF0VS9NSUpCZGhNL1pP?= =?utf-8?B?QUN6UXNoT2NYSWRBcDBGNlUvaWFXWXhhdjN3L0pJUllSdlYxNk9Ybkdoa0hm?= =?utf-8?B?dGZZZWxEV2V1SjVrWG1NaUhLZkJONlZLTmJTVUc5UnB1Zko4R2NjTTBxSjBx?= =?utf-8?B?RlcyVzFCZ2JUQ0tGK2UxQT09?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM3PR11MB8757.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(376005)(1800799015)(366007)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Vy9UekwweXpySC9pVGpkSXpxOUxWM1NPVldnWjBuNjdMZVphUG1lczlZY01C?= =?utf-8?B?ME9ZK1FnY01BT1JJZXh0amdLQ294NzdGQkZPOWFJRjdZYUNiUkdzc01VUGJB?= =?utf-8?B?a1hRK0cvVnh5RmtZd1RBREs4a1ptc2gxeWZIRktRQk1uam5YYUVuZnMrSVBR?= =?utf-8?B?bWxsN1owYzlqODl6Z1FMQkUzZTFTUzllMW5BL1FhR1dMYkJrVmF3YWo1TzEw?= =?utf-8?B?YXlZVGxMK1JyNG5ZMnlIcC84NzVhS1dBWUtCNytINHhqMnZObWtqa2kzTjJm?= =?utf-8?B?MEFCUS9XRkZPY1FrUHl3UERZZEFXODFFMUxnK1FrUFVNa1NHTXREWWVQalJl?= =?utf-8?B?QUZJWFl6VEphZWc1a1NUanorUVJCbzcxb3lCanNLSHhuTDJXWUdRcnRyM3hM?= =?utf-8?B?M25VWS9oV0QxT0p1cHpJYVIvYkdGcmJkRWZQMkNzdS9tMlpZaUNYUkFTMGtI?= =?utf-8?B?MHFZZDY4V2FYMitNV1RaNjlTKzhWRVRNRmJpRnU0U0xpV0pzSU9wYUJWNlcv?= =?utf-8?B?czBSNTU3YUQxclB1QVdzMm9jVUlHSGZHRk5EeXZ0alZHelFMMm5zb2FmVita?= =?utf-8?B?ZkgyQ0V5TmJTVE5zTHNlTDFXTGprOWNXa1hKbFpXMFdVc1VrV3VqaVNFdGxD?= =?utf-8?B?a1FJNG5jYW1wQ0FCUll6eDdDekdzd2tkdWpUNmpyTVN3QW5qejAvQnNyaDNR?= =?utf-8?B?eWpoeVlqVFJYaWlnTnpIWlRnWGZYZExsN0xjUkgyZ3RqZ1BKMXRXdHo0a3d4?= =?utf-8?B?LzRvVExFVlo3bmZteVA3SlM4YXZPNUlIb2ovRlBIbUc4MEJMM1h5ZzgzeDdV?= =?utf-8?B?Y3RrMWpmOUUwUGk3MFN3aUkyQ1YySXBIUXhuOGdVWmVHNjAvUzV6UkJna3pz?= =?utf-8?B?bGNIMnhUS28vUDd4RHdpTjh4V1hkd3k4OW1GdWRheU9IMFh4MVdEVUV3U3JK?= =?utf-8?B?SndzS2ZsaHNDZWpuRXJXZEpoVVlMU2w3NHRqSzlaemROK3ZZcDBSYW9GY29w?= =?utf-8?B?SlZEMDNZOHROdnkwZVBUd2FXMEl6ZTBSYWRaMHJJSUNCTU5MZzlKTExaRW5L?= =?utf-8?B?TkpXS1ZoVjJ6WkM4S1E1STFpK0NRelFKTEY3SXdlbGZKaFpsNXFXcUQ3c0wx?= =?utf-8?B?SCtudHFzNVFCMXVOK0xraWpEZDFzMlpBM3dwc2hZWktPOERuOVpMcUxtcXB6?= =?utf-8?B?djYzVlRCTit2ajUrdGw0SUVZRzRZVEVYcEwzZGpFSHJLdE1DbmxwZm9lUWdJ?= =?utf-8?B?QnpjOG1lS0lKRTZ5NVgwS1lXL1VSYnJPTnp3WmwycEVVZjN1TWhrcUNBa0ZY?= =?utf-8?B?UWlwcFE3ZjhZMGF0M2x0QWcwc0VZMUNNZEJjcXpoZ2kxaFk5MS9WaTBCYWJp?= =?utf-8?B?S2M5S3pNWVVtWDNDY244dGc0c05lYzIraUFWR1JPdXRuUHEwRStzaExrbFo5?= =?utf-8?B?Tmp0bU9SQkFCMUFULzRBVnBnTE1HZ2NRb1pqaWVDdm9mN0FiYmc1aytWQWZp?= =?utf-8?B?NzhUaUNONXR3MVp3YUp4STZhLzFXZ0M5VE5kcndMK2FMZU5TSFdMMEdQTThB?= =?utf-8?B?ZldJTkc1cUhnUVp6TTNjTlZ1YUxRTjNQRExZeVdTWTlxMUtIbDduWnlyVXdh?= =?utf-8?B?YTRoQjFFLzJVRWpxZjA0TXBIeW5JL1RUK1F0Um9tTXpMU2c5UW4vek5OYWo3?= =?utf-8?B?T0tPZDBMYUxacG84bWZUM3ExUyt0RWtLaW5hcXdBYWppT08xZXJGRC91R2Ev?= =?utf-8?B?WVU1K0xITThJWmthQnVzMnZOVkdHQmZ1ZDc1akxqck1XQVVWQ0FNRmhUR2dh?= =?utf-8?B?VXI5d2lneVNJQlRodGJCTmQ4VUhERTMzdDgyUXVwVEFvRHBMWmpxT2F2YVd4?= =?utf-8?B?K09LcnRXUDRmUUtTQlVpU0JaNFNIS0F2TW95VGViWWE0OWFkb1NhczlyNXpE?= =?utf-8?B?VGVoN1VtWVJPbVRFMVIwWjBwU29hc1BkRy84MWpTRmN0YUo4TVNKNVF1NlhJ?= =?utf-8?B?UlY1WHYybURWMDd3bzdmY0hkdkJCanh4YnZpOWdVNWEwWml6Q3hDc0N4cHVW?= =?utf-8?B?SndhWkt4bDJPd0FlRUw4cXpXeDRJSmNMQVAxdDJPY1NHRll5TTBrMlBUcGI3?= =?utf-8?B?THB4Y1hMTnQ1anpSVVlNeTZ2VzJnejgyVVQxbkNjRS9LTDdzRWFnQ2tzUDBa?= =?utf-8?B?c2c9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM3PR11MB8757.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 954aab25-23a9-4cec-334f-08dc641c59f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2024 05:06:51.0705 (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: 3dpJc9BrZOXaGao91JgmfZeUgiSPD12VC8qxa0KqcGMvdAckv4fUKke2sFie/YOKx7U0NVWeSGdSZt7a9Vkd3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR11MB8490 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] libavutil/hwcontext_qsv: Make qsv hardware transfers thread safe X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: "samuelsonm@gmail.com" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gV28sIDIwMjQtMDQtMTcgYXQgMDk6NDYgLTA1MDAsIE1hcmsgU2FtdWVsc29uIHdyb3RlOgo+ IFRoZSBRU1YgaGFyZHdhcmUgY29udGV4dCBjdXJyZW50bHkgdXNlcyBwdGhyZWFkcyB0byBsb2Nr IGluaXRpbGl6YXRpb24sCj4gd2hpY2ggaXMgbm90IGF2YWlsYWJsZSBvbiB3aW5kb3dzIGJ1aWxk cy7CoCBJbnN0ZWFkLCB1c2UgdGhlIEFWTXV0ZXgKPiBvYmplY3QuwqAgQWxzbyBsb2NrIHVzZXMg b2YgdGhlIHJlYWxpZ25lZF91cGxvYWRfZnJhbWUgYW5kCj4gcmVhbGlnbmVkX2Rvd25sb2FkX2Zy YW1lIG9iamVjdHMsIHNvIG11bHRpcGxlIHRocmVhZHMgZG8gbm90IGF0dGVtcHQKPiB0byB3cml0 ZSB0byB0aGVtIGF0IHRoZSBzYW1lIHRpbWUuCj4gLS0tCj4gwqAKPiBIZXJlIGlzIGEgbmV3IHBh dGNoIGFkZHJlc3NpbmcgeW91ciBjb21tZW50cwo+IEZpeGVkIHRoZSBuZXN0ZWQgY2FsbHMgdG8g ZmZfbXV0ZXhfbG9jawo+IEZpeGVkIHRoZSB0d28gYWNjaWRlbnRhbCB0YWJzCj4gRml4ZWQgdGhl IHR3byB2aW9sYXRpb25zIG9mIEsmUiBzdHlsZQo+IEZpeGVkIHRoZSB0d28gaW5jaWRlbnRzIG9m IG1peGluZyBkZWNsYXJhdGlvbiBhbmQgY29kZQo+IAo+IAo+IMKgbGliYXZ1dGlsL2h3Y29udGV4 dF9xc3YuYyB8IDkzICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQo+IMKg MSBmaWxlIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQo+IAo+IGRp ZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3Fzdi5jIGIvbGliYXZ1dGlsL2h3Y29udGV4 dF9xc3YuYwo+IGluZGV4IGM3Yzc4Nzg2NDQuLmVkNDYyZDQ0MGEgMTAwNjQ0Cj4gLS0tIGEvbGli YXZ1dGlsL2h3Y29udGV4dF9xc3YuYwo+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfcXN2LmMK PiBAQCAtMjMsMTAgKzIzLDcgQEAKPiDCoCNpbmNsdWRlIDxtZnh2aWRlby5oPgo+IMKgCj4gwqAj aW5jbHVkZSAiY29uZmlnLmgiCj4gLQo+IC0jaWYgSEFWRV9QVEhSRUFEUwo+IC0jaW5jbHVkZSA8 cHRocmVhZC5oPgo+IC0jZW5kaWYKPiArI2luY2x1ZGUgInRocmVhZC5oIgo+IMKgCj4gwqAjZGVm aW5lIENPQkpNQUNST1MKPiDCoCNpZiBDT05GSUdfVkFBUEkKPiBAQCAtOTgsOSArOTUsNyBAQCB0 eXBlZGVmIHN0cnVjdCBRU1ZGcmFtZXNDb250ZXh0IHsKPiDCoMKgwqDCoCBhdG9taWNfaW50IHNl c3Npb25fZG93bmxvYWRfaW5pdDsKPiDCoMKgwqDCoCBtZnhTZXNzaW9uIHNlc3Npb25fdXBsb2Fk Owo+IMKgwqDCoMKgIGF0b21pY19pbnQgc2Vzc2lvbl91cGxvYWRfaW5pdDsKPiAtI2lmIEhBVkVf UFRIUkVBRFMKPiAtwqDCoMKgIHB0aHJlYWRfbXV0ZXhfdCBzZXNzaW9uX2xvY2s7Cj4gLSNlbmRp Zgo+ICvCoMKgwqAgQVZNdXRleCBzZXNzaW9uX2xvY2s7Cj4gwqAKPiDCoMKgwqDCoCBBVkJ1ZmZl clJlZiAqY2hpbGRfZnJhbWVzX3JlZjsKPiDCoMKgwqDCoCBtZnhGcmFtZVN1cmZhY2UxICpzdXJm YWNlc19pbnRlcm5hbDsKPiBAQCAtMzU0LDkgKzM0OSw3IEBAIHN0YXRpYyB2b2lkIHFzdl9mcmFt ZXNfdW5pbml0KEFWSFdGcmFtZXNDb250ZXh0ICpjdHgpCj4gwqDCoMKgwqAgcy0+c2Vzc2lvbl91 cGxvYWQgPSBOVUxMOwo+IMKgwqDCoMKgIHMtPnNlc3Npb25fdXBsb2FkX2luaXQgPSAwOwo+IMKg Cj4gLSNpZiBIQVZFX1BUSFJFQURTCj4gLcKgwqDCoCBwdGhyZWFkX211dGV4X2Rlc3Ryb3koJnMt PnNlc3Npb25fbG9jayk7Cj4gLSNlbmRpZgo+ICvCoMKgwqAgZmZfbXV0ZXhfZGVzdHJveSgmcy0+ c2Vzc2lvbl9sb2NrKTsKPiDCoAo+IMKgwqDCoMKgIGF2X2ZyZWVwKCZzLT5tZW1faWRzKTsKPiDC oCNpZiBRU1ZfSEFWRV9PUEFRVUUKPiBAQCAtMTMwMiw5ICsxMjk1LDcgQEAgc3RhdGljIGludCBx c3ZfZnJhbWVzX2luaXQoQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCkKPiDCoMKgwqDCoCBzLT5zZXNz aW9uX2Rvd25sb2FkX2luaXQgPSAwOwo+IMKgwqDCoMKgIHMtPnNlc3Npb25fdXBsb2FkX2luaXTC oMKgID0gMDsKPiDCoAo+IC0jaWYgSEFWRV9QVEhSRUFEUwo+IC3CoMKgwqAgcHRocmVhZF9tdXRl eF9pbml0KCZzLT5zZXNzaW9uX2xvY2ssIE5VTEwpOwo+IC0jZW5kaWYKPiArwqDCoMKgIGZmX211 dGV4X2luaXQoJnMtPnNlc3Npb25fbG9jaywgTlVMTCk7Cj4gwqAKPiDCoMKgwqDCoCByZXR1cm4g MDsKPiDCoH0KPiBAQCAtMTYyOSwyNCArMTYyMCwyMCBAQCBzdGF0aWMgaW50Cj4gcXN2X2ludGVy bmFsX3Nlc3Npb25fY2hlY2tfaW5pdChBVkhXRnJhbWVzQ29udGV4dCAqY3R4LCBpbnQgdXBsb2Fk KQo+IMKgwqDCoMKgIGlmIChhdG9taWNfbG9hZChpbml0ZWQpKQo+IMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIDA7Cj4gwqAKPiAtI2lmIEhBVkVfUFRIUkVBRFMKPiAtwqDCoMKgIHB0aHJlYWRfbXV0 ZXhfbG9jaygmcy0+c2Vzc2lvbl9sb2NrKTsKPiAtI2VuZGlmCj4gK8KgwqDCoCBmZl9tdXRleF9s b2NrKCZzLT5zZXNzaW9uX2xvY2spOwo+IMKgCj4gwqDCoMKgwqAgaWYgKCFhdG9taWNfbG9hZChp bml0ZWQpKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoCByZXQgPSBxc3ZfaW5pdF9pbnRlcm5hbF9zZXNz aW9uKGN0eCwgc2Vzc2lvbiwgdXBsb2FkKTsKPiDCoMKgwqDCoMKgwqDCoMKgIGF0b21pY19zdG9y ZShpbml0ZWQsIDEpOwo+IMKgwqDCoMKgIH0KPiDCoAo+IC0jaWYgSEFWRV9QVEhSRUFEUwo+IC3C oMKgwqAgcHRocmVhZF9tdXRleF91bmxvY2soJnMtPnNlc3Npb25fbG9jayk7Cj4gLSNlbmRpZgo+ ICvCoMKgwqAgZmZfbXV0ZXhfdW5sb2NrKCZzLT5zZXNzaW9uX2xvY2spOwo+IMKgCj4gwqDCoMKg wqAgcmV0dXJuIHJldDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgaW50IHFzdl90cmFuc2Zlcl9kYXRh X2Zyb20oQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCwgQVZGcmFtZSAqZHN0LAo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Y29uc3QgQVZGcmFtZSAqc3JjKQo+ICtzdGF0aWMgaW50IHFzdl90cmFuc2Zlcl9kYXRhX2Zyb21f aW50ZXJuYWwoQVZIV0ZyYW1lc0NvbnRleHQgKmN0eCwgQVZGcmFtZQo+ICpkc3QsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpzcmMsIGludCByZWFsaWduZWQp Cj4gwqB7Cj4gwqDCoMKgwqAgUVNWRnJhbWVzQ29udGV4dMKgICpzID0gY3R4LT5od2N0eDsKPiDC oMKgwqDCoCBtZnhGcmFtZVN1cmZhY2UxIG91dCA9IHt7IDAgfX07Cj4gQEAgLTE2NTgsMTcgKzE2 NDUsMTEgQEAgc3RhdGljIGludCBxc3ZfdHJhbnNmZXJfZGF0YV9mcm9tKEFWSFdGcmFtZXNDb250 ZXh0Cj4gKmN0eCwgQVZGcmFtZSAqZHN0LAo+IMKgwqDCoMKgIC8qIGRvd25sb2FkIHRvIHRlbXAg ZnJhbWUgaWYgdGhlIG91dHB1dCBpcyBub3QgcGFkZGVkIGFzIGxpYm1meCByZXF1aXJlcwo+ICov Cj4gwqDCoMKgwqAgQVZGcmFtZSAqdG1wX2ZyYW1lID0gJnMtPnJlYWxpZ25lZF9kb3dubG9hZF9m cmFtZTsKPiDCoMKgwqDCoCBBVkZyYW1lICpkc3RfZnJhbWU7Cj4gLcKgwqDCoCBpbnQgcmVhbGln bmVkID0gMDsKPiAtCj4gLcKgwqDCoCByZXQgPSBxc3ZfaW50ZXJuYWxfc2Vzc2lvbl9jaGVja19p bml0KGN0eCwgMCk7Cj4gLcKgwqDCoCBpZiAocmV0IDwgMCkKPiAtwqDCoMKgwqDCoMKgwqAgcmV0 dXJuIHJldDsKPiDCoAo+IMKgwqDCoMKgIC8qIEFjY29yZGluZyB0byBNU0RLIHNwZWMgZm9yIG1m eGZyYW1laW5mbywgIldpZHRoIG11c3QgYmUgYSBtdWx0aXBsZSBvZgo+IDE2Lgo+IMKgwqDCoMKg wqAgKiBIZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2IGZvciBwcm9ncmVzc2l2ZSBmcmFt ZSBzZXF1ZW5jZSBhbmQgYQo+IMKgwqDCoMKgwqAgKiBtdWx0aXBsZSBvZiAzMiBvdGhlcndpc2Uu Iiwgc28gYWxsaWduIGFsbCBmcmFtZXMgdG8gMTYgYmVmb3JlCj4gZG93bmxvYWRpbmcuICovCj4g LcKgwqDCoCBpZiAoZHN0LT5oZWlnaHQgJiAxNSB8fCBkc3QtPmxpbmVzaXplWzBdICYgMTUpIHsK PiAtwqDCoMKgwqDCoMKgwqAgcmVhbGlnbmVkID0gMTsKPiArwqDCoMKgIGlmIChyZWFsaWduZWQp IHsKPiDCoMKgwqDCoMKgwqDCoMKgIGlmICh0bXBfZnJhbWUtPmZvcm1hdCAhPSBkc3QtPmZvcm1h dCB8fAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0bXBfZnJhbWUtPndpZHRowqAgIT0gRkZB TElHTihkc3QtPmxpbmVzaXplWzBdLCAxNikgfHwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg dG1wX2ZyYW1lLT5oZWlnaHQgIT0gRkZBTElHTihkc3QtPmhlaWdodCwgMTYpKSB7Cj4gQEAgLTE3 MjgsOCArMTcwOSwzMCBAQCBzdGF0aWMgaW50IHFzdl90cmFuc2Zlcl9kYXRhX2Zyb20oQVZIV0Zy YW1lc0NvbnRleHQKPiAqY3R4LCBBVkZyYW1lICpkc3QsCj4gwqDCoMKgwqAgcmV0dXJuIDA7Cj4g wqB9Cj4gwqAKPiAtc3RhdGljIGludCBxc3ZfdHJhbnNmZXJfZGF0YV90byhBVkhXRnJhbWVzQ29u dGV4dCAqY3R4LCBBVkZyYW1lICpkc3QsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IEFWRnJhbWUgKnNyYykKPiAr c3RhdGljIGludCBxc3ZfdHJhbnNmZXJfZGF0YV9mcm9tKEFWSFdGcmFtZXNDb250ZXh0ICpjdHgs IEFWRnJhbWUgKmRzdCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IEFWRnJhbWUgKnNyYykKPiArewo+ICvC oMKgwqAgUVNWRnJhbWVzQ29udGV4dCAqcyA9IGN0eC0+aHdjdHg7Cj4gK8KgwqDCoCBpbnQgcmVh bGlnbmVkID0gMDsKPiArwqDCoMKgIGludCByZXQgPSAwOwo+ICsKPiArwqDCoMKgIHJldCA9IHFz dl9pbnRlcm5hbF9zZXNzaW9uX2NoZWNrX2luaXQoY3R4LCAwKTsKPiArwqDCoMKgIGlmIChyZXQg PCAwKQo+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gcmV0Owo+ICsKPiArwqDCoMKgIGlmIChkc3Qt PmhlaWdodCAmIDE1IHx8IGRzdC0+bGluZXNpemVbMF0gJiAxNSkgewo+ICvCoMKgwqDCoMKgwqDC oCByZWFsaWduZWQgPSAxOwo+ICvCoMKgwqDCoMKgwqDCoCBmZl9tdXRleF9sb2NrKCZzLT5zZXNz aW9uX2xvY2spOwoKTmVlZG4ndCBsb2NrIHRoZSB1c2UgaWYgY2hhbmdpbmcgcmVhbGlnbmVkX3Vw bG9hZF9mcmFtZSBhbmQKcmVhbGlnbmVkX2Rvd25sb2FkX2ZyYW1lIHRvIGxvY2FsIHZhcmlhYmxl cy4KClRoYW5rcwpIYWloYW8KCj4gK8KgwqDCoCB9Cj4gK8KgwqDCoCByZXQgPSBxc3ZfdHJhbnNm ZXJfZGF0YV9mcm9tX2ludGVybmFsKGN0eCwgZHN0LCBzcmMsIHJlYWxpZ25lZCk7Cj4gK8KgwqDC oCBpZiAocmVhbGlnbmVkKQo+ICvCoMKgwqDCoMKgwqDCoCBmZl9tdXRleF91bmxvY2soJnMtPnNl c3Npb25fbG9jayk7Cj4gKwo+ICvCoMKgwqAgcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGlj IGludCBxc3ZfdHJhbnNmZXJfZGF0YV90b19pbnRlcm5hbChBVkhXRnJhbWVzQ29udGV4dCAqY3R4 LCBBVkZyYW1lCj4gKmRzdCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgQVZGcmFt ZSAqc3JjLCBpbnQgcmVhbGlnbmVkKQo+IMKgewo+IMKgwqDCoMKgIFFTVkZyYW1lc0NvbnRleHTC oMKgICpzID0gY3R4LT5od2N0eDsKPiDCoMKgwqDCoCBtZnhGcmFtZVN1cmZhY2UxwqDCoCBpbiA9 IHt7IDAgfX07Cj4gQEAgLTE3NDIsMTcgKzE3NDUsMTEgQEAgc3RhdGljIGludCBxc3ZfdHJhbnNm ZXJfZGF0YV90byhBVkhXRnJhbWVzQ29udGV4dAo+ICpjdHgsIEFWRnJhbWUgKmRzdCwKPiDCoMKg wqDCoCAvKiBtYWtlIGEgY29weSBpZiB0aGUgaW5wdXQgaXMgbm90IHBhZGRlZCBhcyBsaWJtZngg cmVxdWlyZXMgKi8KPiDCoMKgwqDCoCBBVkZyYW1lICp0bXBfZnJhbWUgPSAmcy0+cmVhbGlnbmVk X3VwbG9hZF9mcmFtZTsKPiDCoMKgwqDCoCBjb25zdCBBVkZyYW1lICpzcmNfZnJhbWU7Cj4gLcKg wqDCoCBpbnQgcmVhbGlnbmVkID0gMDsKPiAtCj4gLcKgwqDCoCByZXQgPSBxc3ZfaW50ZXJuYWxf c2Vzc2lvbl9jaGVja19pbml0KGN0eCwgMSk7Cj4gLcKgwqDCoCBpZiAocmV0IDwgMCkKPiAtwqDC oMKgwqDCoMKgwqAgcmV0dXJuIHJldDsKPiDCoAo+IMKgwqDCoMKgIC8qIEFjY29yZGluZyB0byBN U0RLIHNwZWMgZm9yIG1meGZyYW1laW5mbywgIldpZHRoIG11c3QgYmUgYSBtdWx0aXBsZSBvZgo+ IDE2Lgo+IMKgwqDCoMKgwqAgKiBIZWlnaHQgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDE2IGZvciBw cm9ncmVzc2l2ZSBmcmFtZSBzZXF1ZW5jZSBhbmQgYQo+IMKgwqDCoMKgwqAgKiBtdWx0aXBsZSBv ZiAzMiBvdGhlcndpc2UuIiwgc28gYWxsaWduIGFsbCBmcmFtZXMgdG8gMTYgYmVmb3JlCj4gdXBs b2FkaW5nLiAqLwo+IC3CoMKgwqAgaWYgKHNyYy0+aGVpZ2h0ICYgMTUgfHwgc3JjLT5saW5lc2l6 ZVswXSAmIDE1KSB7Cj4gLcKgwqDCoMKgwqDCoMKgIHJlYWxpZ25lZCA9IDE7Cj4gK8KgwqDCoCBp ZiAocmVhbGlnbmVkKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoCBpZiAodG1wX2ZyYW1lLT5mb3JtYXQg IT0gc3JjLT5mb3JtYXQgfHwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdG1wX2ZyYW1lLT53 aWR0aMKgICE9IEZGQUxJR04oc3JjLT53aWR0aCwgMTYpIHx8Cj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHRtcF9mcmFtZS0+aGVpZ2h0ICE9IEZGQUxJR04oc3JjLT5oZWlnaHQsIDE2KSkgewo+ IEBAIC0xODIxLDYgKzE4MTgsMjggQEAgc3RhdGljIGludCBxc3ZfdHJhbnNmZXJfZGF0YV90byhB VkhXRnJhbWVzQ29udGV4dCAqY3R4LAo+IEFWRnJhbWUgKmRzdCwKPiDCoMKgwqDCoCByZXR1cm4g MDsKPiDCoH0KPiDCoAo+ICtzdGF0aWMgaW50IHFzdl90cmFuc2Zlcl9kYXRhX3RvKEFWSFdGcmFt ZXNDb250ZXh0ICpjdHgsIEFWRnJhbWUgKmRzdCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgQVZGcmFtZSAqc3Jj KQo+ICt7Cj4gK8KgwqDCoCBRU1ZGcmFtZXNDb250ZXh0ICpzID0gY3R4LT5od2N0eDsKPiArwqDC oMKgIGludCByZWFsaWduZWQgPSAwOwo+ICvCoMKgwqAgaW50IHJldCA9IDA7Cj4gKwo+ICvCoMKg wqAgcmV0ID0gcXN2X2ludGVybmFsX3Nlc3Npb25fY2hlY2tfaW5pdChjdHgsIDEpOwo+ICvCoMKg wqAgaWYgKHJldCA8IDApCj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiByZXQ7Cj4gKwo+ICvCoMKg wqAgaWYgKHNyYy0+aGVpZ2h0ICYgMTUgfHwgc3JjLT5saW5lc2l6ZVswXSAmIDE1KSB7Cj4gK8Kg wqDCoMKgwqDCoMKgIHJlYWxpZ25lZCA9IDE7Cj4gK8KgwqDCoMKgwqDCoMKgIGZmX211dGV4X2xv Y2soJnMtPnNlc3Npb25fbG9jayk7Cj4gK8KgwqDCoCB9Cj4gK8KgwqDCoCByZXQgPSBxc3ZfdHJh bnNmZXJfZGF0YV90b19pbnRlcm5hbChjdHgsIGRzdCwgc3JjLCByZWFsaWduZWQpOwo+ICvCoMKg wqAgaWYgKHJlYWxpZ25lZCkKPiArwqDCoMKgwqDCoMKgwqAgZmZfbXV0ZXhfdW5sb2NrKCZzLT5z ZXNzaW9uX2xvY2spOwo+ICsKPiArwqDCoMKgIHJldHVybiByZXQ7Cj4gK30KPiArCj4gwqBzdGF0 aWMgaW50IHFzdl9mcmFtZXNfZGVyaXZlX3RvKEFWSFdGcmFtZXNDb250ZXh0ICpkc3RfY3R4LAo+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQVZIV0ZyYW1lc0NvbnRleHQgKnNyY19jdHgsIGludCBmbGFncykKPiDCoHsKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZl bCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3Jn L21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGlu ayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1 YmplY3QgInVuc3Vic2NyaWJlIi4K