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 3691A4A945 for ; Wed, 24 Apr 2024 13:45:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A98BA68D26B; Wed, 24 Apr 2024 16:45:31 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3EFF368CFF4 for ; Wed, 24 Apr 2024 16:45:23 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1713966329; x=1745502329; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=667jFXecgtgEg3JE9K2Loy8BZznKnXo5qPFwRDUwy2w=; b=jbMvQXbzHmhauWBcWEHIfrPNKWYlq8dHHTVtEn3SaPI3loXd6rJX2CXM SauODd0r2iSnPDWqB+IyydcOMte0VdS678loNjfh+vRHjf0aS1kh/y59S sfAOJ3hFEC3LWUajznXekdiamvxKmwdUwL2ru6FG8lx2SoROTatWMoJ/u Fbz9mUAdtu4OndW2UeJBBqfYYTOO1SoBSbfJUbPio3CDZsXcuPXHAteL6 xm64WKsyyBwel33rDOPpKesgMyv/m0t3+68CwCEHhjMK9crU+fXR/hAEp xZ49bkB3ZfuRmNG2scXYeuraQ6KPEqzjWwIZsbxE0Gqu/5vblMp2ubyDr g==; X-CSE-ConnectionGUID: y1OsIuUFQraM4F8NNXtE4Q== X-CSE-MsgGUID: EdDyMCH3QcyezzumfVFqPA== X-IronPort-AV: E=McAfee;i="6600,9927,11054"; a="20212757" X-IronPort-AV: E=Sophos;i="6.07,226,1708416000"; d="scan'208";a="20212757" Received: from fmviesa010.fm.intel.com ([10.60.135.150]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Apr 2024 06:45:21 -0700 X-CSE-ConnectionGUID: 7cLY5YLeSHWMLqLalfQD8A== X-CSE-MsgGUID: hgn4mo4tQ6Kbab3JsmEGeQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.07,226,1708416000"; d="scan'208";a="24779220" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by fmviesa010.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 24 Apr 2024 06:45:21 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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.2507.35; Wed, 24 Apr 2024 06:45:20 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 24 Apr 2024 06:45:20 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Wed, 24 Apr 2024 06:45:20 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.100) 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; Wed, 24 Apr 2024 06:45:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ls3Il58pg2FJCcnPqKlvreCrTr/dgRmGB6Sm5m01S5VKBQFl/TsvL5cJYdXUOsApbP2pJabeaXkZH1RCXNfeuquDg34QaUzOc77K/9pNURn5OGo4h3LTniWYH/OaHrc4DGgIVr6j6NA0Ady4Yk320dvHZ+0lZeZnb4TQULam75THNi92oVxo21s1Vq13qHhqMX0vYOo53e4dc4en3UsDrffVFZObvJGeeXWDiBz07Qf4v3582wCX038TBlCcRkXHEdzrgfNj4DV2/fDntdlwuNZdkly5g+bBf6WeGGwTC/G6tRgtbt+5VkGy8JihH66cmkn/Hswdy36uGJrpwIl4mw== 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=667jFXecgtgEg3JE9K2Loy8BZznKnXo5qPFwRDUwy2w=; b=kdPg30560rnu9OogwzdJmQosacusydYwiXeUDb0Zo2KofYh2Wwd3HReC1TSJ26AKjNgY4aPI+T0OVBAVanGA7INlkJKb5AUHGXBRmc4kh5nk5q+P6BY//R+dHl8am9qcYLZG96MLnKWdMI5/oab4YFqY0WrO5mxvWErcHHB2KtKWTMXl3jIaXDF5VCkFvgLlWPr0gJyHkHOm+s88Dlh03GLUMb17CtDXbdAWw7YLpwRto8hl2l5XlLpdoR2/B90cSpCujmJ7uoVLg+vWR5UITCzGAtAerXAyIExzkcyDJayomKdRQ17QTXM3wK6QiFa9sEA41toRTMqntX1s8OspZA== 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 MN2PR11MB4663.namprd11.prod.outlook.com (2603:10b6:208:26f::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 13:45:16 +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 13:45:16 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH 2/2] lavc/vaapi_hevc: Don't require exact profiles Thread-Index: AQHalPtOkeKEYt9SXkqaXXQckkC/ybF3cU0A Date: Wed, 24 Apr 2024 13:45:16 +0000 Message-ID: <6a904f10e7dab1ad088c643bc348f4ef793d9f0a.camel@intel.com> References: <20240318042111.21983-1-fei.w.wang@intel.com> <90d041b98b5d9ba69b093d9dcae168130389b364.camel@intel.com> <1fa0491e-4609-49ae-bad4-820ea63a52b0@jkqxz.net> <6aca0a524bb0862d07f6469097a4c1b1a991e222.camel@intel.com> <4bccfe20-83a0-4c8f-a6d3-974faf064dbc@jkqxz.net> <1bcdfb6e-8d63-4d1f-9cd9-631e79c03f5f@jkqxz.net> In-Reply-To: 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_|MN2PR11MB4663:EE_ x-ms-office365-filtering-correlation-id: 7ab9d061-59c9-4514-8583-08dc6464c645 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230031|366007|376005|1800799015|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?aVZJRmsyaUJlQzVtcDBZOFlxbHpXeDVvNWlEemhEVk1NN0JNa2ZYTWhQaWJX?= =?utf-8?B?NUhpOFVlZkFCL3hFblNOM1IrMllFTjg3VllUNE1MQkNsR2kzdVcrL25PYXRz?= =?utf-8?B?ZTUwVTlQazlNNVJZZGpmYi80ZTcwUm1pR3lIem1rc2tqVU10QTZ3VEZZdmta?= =?utf-8?B?aUlOUHBWaXRCc2pmQ0NkZTVGUk9iUkVvVW9JTmwrRWIwUVNsblMwNE8vOGxo?= =?utf-8?B?S3Q0MFVmWUxjMTU3T0JpS0V4Qkcrb2NnMUIzTG1WaUZMMHFmQno3OFF2Qnov?= =?utf-8?B?RUVPdmY5K01DR1IwT2tUMHoxK2hKRHJuYW1POFFsUXdMTkFjTnpHQnRHcU0r?= =?utf-8?B?bmVJRnA0S3hsNEJTaTJ2NlF5STFFa2tmNGI1dEpya2ZpK3lrTDcxSmhPOFJl?= =?utf-8?B?OG1LMDhRYXZzM20ycklERHc1bWNMc0pKQW02QWhwNEo1aVZjR2hIT29KQ282?= =?utf-8?B?MjJSUFRPdHMvMEQ5SnBmNUdPcGN2d3FzcU5iWmZXVUVocjhXeU1NYUJhS3dy?= =?utf-8?B?Y1lyNnFrYVlWMHFmT1hMTEhXV1llQjVIREtnSWlvb2hDbjBDbFRKYVYxWEM3?= =?utf-8?B?UEZvOHJhYy9Xd3d4bXZBVitkNEJJVGwxcnJXWWU5aFViMUdPS1RTc29rNXc3?= =?utf-8?B?K1BqTzdibzhuSktDdHg2OUVpZG1tZmkvTFhYblhGVkc3enpTS1J5OFphZHMx?= =?utf-8?B?ZWl2cXY3bEJHTDhnYzBsdEE3V21nL3lTMmxzaUI1MGFETndKcThyMGFuZm1R?= =?utf-8?B?bDlsT2VkcFpNbWg4L25pKytXUmhsdk1yN2dTaHNBaGpzMUdWSElWZENOVkFM?= =?utf-8?B?SE9UaVBUY2Y4citMd2hXUVhzL1FaY1BYVVRvd2hsR0wvZklyNzBYYjRvWWRa?= =?utf-8?B?dkZFYnJJdUcvV3lsaWNwT28zcVZWODNBU1dPM1RoY0wwZmRTekdGc3psb2xs?= =?utf-8?B?bGJrYmY5QUEwVmZTY25jcTZWdExlZzFxWlBkc3FINUJaSUtkZHh1TmJQOXlq?= =?utf-8?B?YzJTekZFa1FJcFRTZnZVTGRBdktsQVJPWHcyRXFZNjladGhIa0ZRU2NHTXgr?= =?utf-8?B?V1RWUGFwWTFNUTYrK0t4UDhMdzJYdmdMMFpLaGdBZDVKYzUydUNRVnRMdDdr?= =?utf-8?B?elMvZ29RZnlHb1p1dHBNTkdIWklZVDZham9uRmpFd1NGQVBVR2JvMENYYjlk?= =?utf-8?B?VGg1M2luMHhRSDUwQ1ZhZSttQk95WENjWmlaTlNndzNWcHp6NmxES0cvQXB1?= =?utf-8?B?SmVFZWlxSGNQOXRUMWU3Z3VTU0FyMWx2MWlKK01RMTcwMTlVRUxKUkFwQ08x?= =?utf-8?B?RmovUG9aNHR6TGRuVi9MSS9QMlIvaVl2RGE3ZXZWcFlYaGJ2dFdtOVY0ekVs?= =?utf-8?B?QTFINU5MWnRHUVNCU3FMMjFWVGJBYXVxK3hiMytnMC9HZldWNXZrZFBlUEZy?= =?utf-8?B?M1FhY3hlcDBYUm45Ryt0NGZlVW1ETnhKTm5SZEppdGUyNkZCZzJXVlZXeVNW?= =?utf-8?B?WEZxa3lGcDVRdlhzVitUNEgxZE5SaDJuanNlNzVWZDF1UzZLaXJycHlxNDc3?= =?utf-8?B?bXZrc0dvUUdrMzNydk5WLzFnRmlJQUE5TCtyUElUWk9yR0cxc0xBWmxvblFH?= =?utf-8?B?ZFdqcEF6S1QyYU1vdlZubElPRUVxR0lQWG1NNnFLZ2VZeEtaY0NXaWRQeGkr?= =?utf-8?B?cExKYWd5QzhzTWFjbWloNHMrRFZ4YXZ3Zm5jb2RWS28zRjBqdXVQUVVFOFo2?= =?utf-8?B?UFBHQ01mMXMrd016NmdhMFhtV3A2bk1oNTZlZy9wUzZLb1ZTSHdPa0pKeSta?= =?utf-8?B?MHBwVzI2Y3c4S1lJVVdDQT09?= 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)(366007)(376005)(1800799015)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?TEhycEtxMm1KWmNBTit2cklRRHp5VFVlM2RBMHo1ejhIdldwaFRnZ2ZRUno0?= =?utf-8?B?dWtZWjZUTTFYbUtkRVAvNTd6aWdBNGNJWDNZYzlvRDd1STUvbFQ2UDJVbFlH?= =?utf-8?B?N2d3MlZOeW5KcmZEcFhJRGdrbkZmU2VmUHBBcmNBMWd1empUOGcxVDFJL3I4?= =?utf-8?B?ci9XWDlvVXJjd0V2SUQ1VkwyZ0lVZUpoSmREVHZrbFRqWEJjTzFUOXJ1aGhl?= =?utf-8?B?S0pNdFZaZ2dRVER3c2tiRkF5VUhVeW5rKzJ1YUFjTGRaNUl6WndvQU5RbDJS?= =?utf-8?B?bTJKQzdvZFExRXJIRFcrTnJzcGRkaXVrRzVNQ1d5QWI5RWhJUXZJMWFQMEF6?= =?utf-8?B?RGFkRVFWRVI1U0d2QWpWR2FDRVRSUFlGUUlVM2dGdnlJRDRDaUVCaFk0R3hC?= =?utf-8?B?QUtLSFNQUXFEcnZ0M21ValFnNG1rL1BoMW0rM0EzN1ZEcXFkaXQ4RXJqdkhC?= =?utf-8?B?ZC9Hb1h2d2I5U3NTY0VBOU81bHl4TUJtRTF4ZlBodXR1OVdCYVJwVnE1VkpR?= =?utf-8?B?WjN1eWdZNjNTMUY5L1k4Um9BOEE1U2JqTkpNQ29LTTQvOExxUVlCQ0gycGM5?= =?utf-8?B?WFZKcjVKNWRRVjY4amJPNEJNYW90OVlLQkM1NEJCQUlIU0dsclJpekx6Yzhy?= =?utf-8?B?TXlKV1BNQmNaRXlkV1BWaWNsNUQzaTlUOU9ORkV0Wmx6Vk03ZHo5U0g2M0VT?= =?utf-8?B?a1dpaDBJRkVSUUREc0NBSVVhQjI5dWh6bUkvU0RIOHU2dXpHV1BVWWpWajdN?= =?utf-8?B?TytiQ1BhR2lNVlAvV0k0TU1XMitCU2JrOUFKbHppSW05K1dhV00zcFJ3QUNq?= =?utf-8?B?RjJGc0xZb3lHOFhLNHhWMVpnS24vVm14bkNxQ2t4bGFETWptRjlxZUcrcnZC?= =?utf-8?B?RFpnK3hUcEZPMjZpajVnRHB1Wkl0ZW9IUlVyQ0xzdWZ2akVGUWcweTJWSlFh?= =?utf-8?B?V1gyVmNSNXlsMHhYM2loR3RRRndVZUVCWks0UjBUZ1g3NnphRU9oR0NadExK?= =?utf-8?B?alI4d0dBRWtQVjZidGZjR0V0U0FKbXJpSUdJNVpPRjhNS3RVeTZiRWo5bzZK?= =?utf-8?B?cndsZGpuNFFudml2Zk1kR3hpM1R4emtaOHl5OXRKYzcxTjlWcnlOK0dDMjJE?= =?utf-8?B?VEVQK0dFRmovTm8zcmdvMkFoV0xEYWRMWnlIUDR2UFpLNnpMQXdNNGUxbU00?= =?utf-8?B?K0pNTFhoMnhpM0o0YVdRTndRdkF5VExnYVdGNFgwT1J3KzJYYTdoT053K2hj?= =?utf-8?B?SGtGa1N3WHBWUWJJQW8wODJCbk9TR3RWVHMvR29pbXdKU3pmZ1NkY21vRVNM?= =?utf-8?B?QUZxVFNYV3hQSFU1dEwxckNoZFdVY3J6SVJrVXdDUTYrQWZrK1UyY2VjNjZq?= =?utf-8?B?MUFpOUdlNVkwbERLd2ZYYUN1eVFiNVNPSSswSHVSV2VIMjQ2NTZFUEsxZHBL?= =?utf-8?B?Z1hiY3hHYUxhMjVhUys3Nzhnd2F6QVhlS3BGcmZINE1TRXdrK2I2K2NWcU8v?= =?utf-8?B?MTY5VUY4TEZyeFMxU1VLSWpWQjU2L3FIVytEaUtqN1pnS2hoVGVLVFBtd21V?= =?utf-8?B?d3N1aFNKMzJqSEtIamVSQzdtRURwVk5HRDR0eHl3V0pwUlVCY0RERmtvVTlQ?= =?utf-8?B?SWNRbWY4dHlBdDEycU1zZ210N0dOY2ozRTVUdi9JbWdqMEZ6TUxvckRQK2cy?= =?utf-8?B?SUlONm92TmN5eHhVbnB6WVRTMk11aW9nTHYzMDRYSTNDMitvRmFySHQzb3VK?= =?utf-8?B?WnViR2hZYzRwaHkwcW5YWW9aWGZ2LzFITXdxdlo4dExPcnBVaGNDVTdOMVhF?= =?utf-8?B?L01UOUxKYWNZaFZ2YlNQMGtEdTlQQXlLRDhnR0MvWTJmaE93bG1NWjRSd3Yw?= =?utf-8?B?RUxXeGdwZWZGZVJ5SFhvSUU5ZzlEZjhFem8wZzhkaUpWWk1aNDFyUWpnTlZz?= =?utf-8?B?RDgyYlVHVXFuMjBKSC8zbmdOSkhqZXRYY3V6RytYaGFrbVlUU0VFZE1pVEFB?= =?utf-8?B?ZU9LOXI1dG1odkZURkNjWXJyMlpSRDhhaDNoY3oxVTFUL1VNMHp0ekZNNU1Y?= =?utf-8?B?SXNpTmRDalY5K05QaVhjVjl5SmNlc2FydlhBMk83NzVnWEU0bkRlRURqNXpn?= =?utf-8?B?UVJvRDVWaHk3Um0yaEJTZVlPQ01lazAySEVhcW0xZmZoQ3JXY1Q4b1UyVlY3?= =?utf-8?B?ZUE9PQ==?= Content-ID: <28621856E23FCB4A898C306033F1EB37@namprd11.prod.outlook.com> 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: 7ab9d061-59c9-4514-8583-08dc6464c645 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Apr 2024 13:45:16.5651 (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: 1kLz9JirDTdS3mwV/VNqNeYscO9hOro5dodYcivaYWaquQGVnY58J/RLNbXFlL5ZhFlSgMhPc5SINuYpJZhgSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4663 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH 2/2] lavc/vaapi_hevc: Don't require exact profiles 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 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: T24gTWEsIDIwMjQtMDQtMjIgYXQgMjI6MjMgKzAxMDAsIE1hcmsgVGhvbXBzb24gd3JvdGU6Cj4g UmF0aGVyIHRoYW4gdHVybmluZyB0aGUgY29uc3RyYWludCBmbGFncyBpbnRvIGEgc2luZ2xlIHBy b2ZpbGUgYW5kIHRoZW4KPiBzZWFyY2hpbmcgZm9yIHRoYXQgcHJvZmlsZSAoYW5kIGZhaWxpbmcg aWYgaXQgZG9lc24ndCBtYXRjaCBhbnkgcHJvZmlsZQo+IGV4YWN0bHkpLCBpbnN0ZWFkIHNlYXJj aCBhbGwgc3VwcG9ydGVkIHByb2ZpbGVzIGFuZCB1c2UgdGhlIGZpcnN0IG9uZQo+IHdoaWNoIHN1 cHBvcnRzIHRoZSBnaXZlbiBzZXQgb2YgY29uc3RyYWludCBmbGFncy4KPiAtLS0KPiBUaGlzIGZp eGVzIGRlY29kZSBvZiByZXh0IDgtYml0IDQ6MjowOyBpdCB3aWxsIGNvcnJlY3RseSBwaWNrIE1h aW4gMTIgb3IgTWFpbgo+IDQ6MjoyIDEwIG9yIE1haW4gNDo0OjQgKGZpcnN0IG9uZSBhdmFpbGFi bGUpIHRvIHVzZSBhcyB0aGUgZGVjb2RpbmcgcHJvZmlsZQo+IGFmdGVyIHRoaXMgcGF0Y2guCgpz dyBkZWNvZGluZyBhbmQgdmFhcGkgZGVjb2RpbmcgbWlnaHQgaGF2ZSBkaWZmZXJlbnQgYml0cyAo VGhlcmUgaXMgdGhlIHNhbWUKaXNzdWUgaWYgYXBwbHlpbmcgRmVpJ3MgcGF0Y2hzZXQpLiAgCgpG b3IgZXhhbXBsZToKJCBmZm1wZWcgLWh3YWNjZWwgdmFhcGkgLWYgbGF2ZmkgLWkgdGVzdHNyYyAt dmYgJ2Zvcm1hdD1udjEyLGh3dXBsb2FkJyAtYzp2CmhldmNfdmFhcGkgLXByb2ZpbGU6diByZXh0 IC12ZnJhbWVzIDMwIC15IG91dC5tcDQKCjhiaXQgb3VwdXQgaWYgdXNpbmcgc3cgZGVjb2Rpbmc6 CiQgZmZtcGVnIC1pIG91dC5tcDQgLWYgbnVsbCAtIApbLi4uXQpTdHJlYW0gIzA6MCh1bmQpOiBW aWRlbzogd3JhcHBlZF9hdmZyYW1lLCB5dXY0MjBwKHR2LCBwcm9ncmVzc2l2ZSksIDMyMHgyNDAg W1NBUgoxOjEgREFSIDQ6M10sIHE9Mi0zMSwgMjAwIGtiL3MsIDI1IGZwcywgMjUgdGJuIChkZWZh dWx0KQoKMTJiaXQgb3V0cHV0IGlmIHVzaW5nIHZhYXBpIGRlY29kaW5nOgokIGZmbXBlZyAtaHdh Y2NlbCB2YWFwaSAtaSBvdXQubXA0IC1mIG51bGwgLQpbLi4uXQogU3RyZWFtICMwOjAodW5kKTog VmlkZW86IHdyYXBwZWRfYXZmcmFtZSwgcDAxMmxlKHR2LCBwcm9ncmVzc2l2ZSksIDMyMHgyNDAg W1NBUgoxOjEgREFSIDQ6M10sIHE9Mi0zMSwgMjAwIGtiL3MsIDI1IGZwcywgMjUgdGJuIChkZWZh dWx0KQoKVGhhbmtzCkhhaWhhbwoKPiAKPiDCoGxpYmF2Y29kZWMvdmFhcGlfZGVjb2RlLmMgfCA0 NSArKysrKysrKysrKystLS0tLS0tCj4gwqBsaWJhdmNvZGVjL3ZhYXBpX2hldmMuY8KgwqAgfCA5 NSArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0KPiDCoGxpYmF2Y29kZWMv dmFhcGlfaGV2Yy5owqDCoCB8wqAgNCArLQo+IMKgMyBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRp b25zKCspLCA2MSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92YWFw aV9kZWNvZGUuYyBiL2xpYmF2Y29kZWMvdmFhcGlfZGVjb2RlLmMKPiBpbmRleCAyMWIyNzNjZDBm Li5mMTMyNzQ2NGY1IDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdmFhcGlfZGVjb2RlLmMKPiAr KysgYi9saWJhdmNvZGVjL3ZhYXBpX2RlY29kZS5jCj4gQEAgLTM4Nyw3ICszODcsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHsKPiDCoMKgwqDCoCBlbnVtIEFWQ29kZWNJRCBjb2RlY19pZDsKPiDC oMKgwqDCoCBpbnQgY29kZWNfcHJvZmlsZTsKPiDCoMKgwqDCoCBWQVByb2ZpbGUgdmFfcHJvZmls ZTsKPiAtwqDCoMKgIFZBUHJvZmlsZSAoKnByb2ZpbGVfcGFyc2VyKShBVkNvZGVjQ29udGV4dCAq YXZjdHgpOwo+ICvCoMKgwqAgVkFQcm9maWxlICgqbWF0Y2hfcHJvZmlsZSkoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgVkFQcm9maWxlICpwcm9maWxlX2xpc3QsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBp bnQgcHJvZmlsZV9jb3VudCk7Cj4gwqB9IHZhYXBpX3Byb2ZpbGVfbWFwW10gPSB7Cj4gwqAjZGVm aW5lIE1BUChjLCBwLCB2LCAuLi4pIHsgQVZfQ09ERUNfSURfICMjIGMsIEFWX1BST0ZJTEVfICMj IHAsIFZBUHJvZmlsZSAjIwo+IHYsIF9fVkFfQVJHU19fIH0KPiDCoMKgwqDCoCBNQVAoTVBFRzJW SURFTyzCoCBNUEVHMl9TSU1QTEUswqDCoMKgIE1QRUcyU2ltcGxlICksCj4gQEAgLTQxNCw5ICs0 MTYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKPiDCoCNlbmRpZgo+IMKgI2lmIFZBX0NIRUNL X1ZFUlNJT04oMSwgMiwgMCkgJiYgQ09ORklHX0hFVkNfVkFBUElfSFdBQ0NFTAo+IMKgwqDCoMKg IE1BUChIRVZDLMKgwqDCoMKgwqDCoMKgIEhFVkNfUkVYVCzCoMKgwqDCoMKgwqAgTm9uZSwKPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmZfdmFhcGlfcGFyc2VfaGV2Y19yZXh0 X3NjY19wcm9maWxlICksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmZl92YWFwaV9oZXZj X21hdGNoX3JleHRfc2NjX3Byb2ZpbGUgKSwKPiDCoMKgwqDCoCBNQVAoSEVWQyzCoMKgwqDCoMKg wqDCoCBIRVZDX1NDQyzCoMKgwqDCoMKgwqDCoCBOb25lLAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBmZl92YWFwaV9wYXJzZV9oZXZjX3JleHRfc2NjX3Byb2ZpbGUgKSwKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZmX3ZhYXBpX2hldmNfbWF0Y2hfcmV4dF9zY2NfcHJv ZmlsZSApLAo+IMKgI2VuZGlmCj4gwqDCoMKgwqAgTUFQKE1KUEVHLMKgwqDCoMKgwqDCoCBNSlBF R19IVUZGTUFOX0JBU0VMSU5FX0RDVCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEpQRUdCYXNlbGlu ZSksCj4gQEAgLTQ5OSwyMiArNTAxLDMzIEBAIHN0YXRpYyBpbnQgdmFhcGlfZGVjb2RlX21ha2Vf Y29uZmlnKEFWQ29kZWNDb250ZXh0Cj4gKmF2Y3R4LAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB2YWFwaV9wcm9maWxlX21hcFtpXS5jb2RlY19wcm9maWxlID09IEFWX1BST0ZJTEVfVU5LTk9X TikKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJvZmlsZV9tYXRjaCA9IDE7Cj4gCj4gLcKg wqDCoMKgwqDCoMKgIHZhX3Byb2ZpbGUgPSB2YWFwaV9wcm9maWxlX21hcFtpXS5wcm9maWxlX3Bh cnNlciA/Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdmFhcGlf cHJvZmlsZV9tYXBbaV0ucHJvZmlsZV9wYXJzZXIoYXZjdHgpIDoKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWFwaV9wcm9maWxlX21hcFtpXS52YV9wcm9maWxl Owo+IMKgwqDCoMKgwqDCoMKgwqAgY29kZWNfcHJvZmlsZSA9IHZhYXBpX3Byb2ZpbGVfbWFwW2ld LmNvZGVjX3Byb2ZpbGU7Cj4gLQo+IC3CoMKgwqDCoMKgwqDCoCBmb3IgKGogPSAwOyBqIDwgcHJv ZmlsZV9jb3VudDsgaisrKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHZhX3Byb2Zp bGUgPT0gcHJvZmlsZV9saXN0W2pdKSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBleGFjdF9tYXRjaCA9IHByb2ZpbGVfbWF0Y2g7Cj4gK8KgwqDCoMKgwqDCoMKgIGlmICh2YWFw aV9wcm9maWxlX21hcFtpXS5tYXRjaF9wcm9maWxlKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgdmFfcHJvZmlsZSA9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2YWFwaV9w cm9maWxlX21hcFtpXS5tYXRjaF9wcm9maWxlKGF2Y3R4LCBwcm9maWxlX2xpc3QsCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJvZmlsZV9jb3VudCk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHZhX3Byb2ZpbGUgIT0gVkFQcm9maWxlTm9uZSkg ewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWF0Y2hlZF92YV9wcm9maWxlID0g dmFfcHJvZmlsZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1hdGNoZWRfZmZf cHJvZmlsZSA9IGNvZGVjX3Byb2ZpbGU7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBleGFjdF9tYXRjaCA9IDE7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJl YWs7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiAtwqDCoMKgwqDCoMKgwqAgfQo+IC3C oMKgwqDCoMKgwqDCoCBpZiAoaiA8IHByb2ZpbGVfY291bnQpIHsKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBtYXRjaGVkX3ZhX3Byb2ZpbGUgPSB2YV9wcm9maWxlOwo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG1hdGNoZWRfZmZfcHJvZmlsZSA9IGNvZGVjX3Byb2ZpbGU7Cj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgaWYgKGV4YWN0X21hdGNoKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgYnJlYWs7Cj4gK8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgdmFfcHJvZmlsZSA9IHZhYXBpX3Byb2ZpbGVfbWFwW2ldLnZhX3Byb2ZpbGU7 Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZvciAoaiA9IDA7IGogPCBwcm9maWxlX2Nv dW50OyBqKyspIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICh2YV9wcm9m aWxlID09IHByb2ZpbGVfbGlzdFtqXSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBleGFjdF9tYXRjaCA9IHByb2ZpbGVfbWF0Y2g7Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiArCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqAgaWYgKGogPCBwcm9maWxlX2NvdW50KSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBtYXRjaGVkX3ZhX3Byb2ZpbGUgPSB2YV9wcm9maWxlOwo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWF0Y2hlZF9mZl9wcm9maWxlID0gY29kZWNfcHJvZmls ZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChleGFjdF9tYXRjaCkKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKgIH0KPiDCoMKg wqDCoCBhdl9mcmVlcCgmcHJvZmlsZV9saXN0KTsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92 YWFwaV9oZXZjLmMgYi9saWJhdmNvZGVjL3ZhYXBpX2hldmMuYwo+IGluZGV4IDc3ZjU1ZmY4YjEu LjI4ZjdjOTI4MGUgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy92YWFwaV9oZXZjLmMKPiArKysg Yi9saWJhdmNvZGVjL3ZhYXBpX2hldmMuYwo+IEBAIC01OTAsNjMgKzU5MCw3MCBAQCBzdGF0aWMg aW50IHB0bF9jb252ZXJ0KGNvbnN0IFBUTENvbW1vbiAqZ2VuZXJhbF9wdGwsCj4gSDI2NVJhd1By b2ZpbGVUaWVyTGV2ZWwgKmgyCj4gwqB9Cj4gCj4gwqAvKgo+IC0gKiBGaW5kIGV4YWN0IHZhX3By b2ZpbGUgZm9yIEhFVkMgUmFuZ2UgRXh0ZW5zaW9uIGFuZCBTY3JlZW4gQ29udGVudCBDb2RpbmcK PiBFeHRlbnNpb24KPiArICogRmluZCBjb21wYXRpYmxlIHZhX3Byb2ZpbGUgZm9yIEhFVkMgUmFu Z2UgRXh0ZW5zaW9uIGFuZCBTY3JlZW4KPiArICogQ29udGVudCBDb2RpbmcgRXh0ZW5zaW9uIHBy b2ZpbGVzLgo+IMKgICovCj4gLVZBUHJvZmlsZSBmZl92YWFwaV9wYXJzZV9oZXZjX3JleHRfc2Nj X3Byb2ZpbGUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+ICtWQVByb2ZpbGUgZmZfdmFhcGlfaGV2 Y19tYXRjaF9yZXh0X3NjY19wcm9maWxlKEFWQ29kZWNDb250ZXh0ICphdmN0eCwKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgVkFQcm9maWxlICpwcm9maWxlX2xp c3QsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBwcm9maWxlX2Nv dW50KQo+IMKgewo+IMKgwqDCoMKgIGNvbnN0IEhFVkNDb250ZXh0ICpoID0gYXZjdHgtPnByaXZf ZGF0YTsKPiDCoMKgwqDCoCBjb25zdCBIRVZDU1BTICpzcHMgPSBoLT5wcy5zcHM7Cj4gwqDCoMKg wqAgY29uc3QgUFRMICpwdGwgPSAmc3BzLT5wdGw7Cj4gwqDCoMKgwqAgY29uc3QgUFRMQ29tbW9u ICpnZW5lcmFsX3B0bCA9ICZwdGwtPmdlbmVyYWxfcHRsOwo+IC3CoMKgwqAgY29uc3QgSDI2NVBy b2ZpbGVEZXNjcmlwdG9yICpwcm9maWxlOwo+IMKgwqDCoMKgIEgyNjVSYXdQcm9maWxlVGllckxl dmVsIGgyNjVfcmF3X3B0bCA9IHswfTsKPiAKPiArwqDCoMKgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ewo+ICvCoMKgwqDCoMKgwqDCoCBpbnQgcHJvZmlsZTsKPiArwqDCoMKgwqDCoMKgwqAgVkFQcm9m aWxlIHZhX3Byb2ZpbGU7Cj4gK8KgwqDCoCB9IG1hcFtdID0gewo+ICsjaWYgVkFfQ0hFQ0tfVkVS U0lPTigxLCAyLCAwKQo+ICvCoMKgwqDCoMKgwqDCoCB7IEgyNjVfUFJPRklMRV9NQUlOXzEyLAo+ ICvCoMKgwqDCoMKgwqDCoMKgwqAgVkFQcm9maWxlSEVWQ01haW4xMiB9LAo+ICvCoMKgwqDCoMKg wqDCoCB7IEgyNjVfUFJPRklMRV9NQUlOXzQyMl8xMCwKPiArwqDCoMKgwqDCoMKgwqDCoMKgIFZB UHJvZmlsZUhFVkNNYWluNDIyXzEwIH0sCj4gK8KgwqDCoMKgwqDCoMKgIHsgSDI2NV9QUk9GSUxF X01BSU5fNDQ0LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgVkFQcm9maWxlSEVWQ01haW40NDQgfSwK PiArwqDCoMKgwqDCoMKgwqAgeyBIMjY1X1BST0ZJTEVfTUFJTl80NDRfMTAsCj4gK8KgwqDCoMKg wqDCoMKgwqDCoCBWQVByb2ZpbGVIRVZDTWFpbjQ0NF8xMCB9LAo+ICvCoMKgwqDCoMKgwqDCoCB7 IEgyNjVfUFJPRklMRV9NQUlOXzQ0NF8xMiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgIFZBUHJvZmls ZUhFVkNNYWluNDQ0XzEyIH0sCj4gK8KgwqDCoMKgwqDCoMKgIHsgSDI2NV9QUk9GSUxFX1NDUkVF Tl9FWFRFTkRFRF9NQUlOLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgVkFQcm9maWxlSEVWQ1NjY01h aW4gfSwKPiArwqDCoMKgwqDCoMKgwqAgeyBIMjY1X1BST0ZJTEVfU0NSRUVOX0VYVEVOREVEX01B SU5fMTAsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoCBWQVByb2ZpbGVIRVZDU2NjTWFpbjEwIH0sCj4g KyNlbmRpZgo+ICsjaWYgVkFfQ0hFQ0tfVkVSU0lPTigxLCA4LCAwKQo+ICvCoMKgwqDCoMKgwqDC oCB7IEgyNjVfUFJPRklMRV9TQ1JFRU5fRVhURU5ERURfTUFJTl80NDQsCj4gK8KgwqDCoMKgwqDC oMKgwqDCoCBWQVByb2ZpbGVIRVZDU2NjTWFpbjQ0NCB9LAo+ICsjZW5kaWYKPiArwqDCoMKgIH07 Cj4gKwo+IMKgwqDCoMKgIC8qIGNvbnZlcnQgUFRMQ29tbW9uIHRvIEgyNjVSYXdQcm9maWxlVGll ckxldmVsICovCj4gwqDCoMKgwqAgcHRsX2NvbnZlcnQoZ2VuZXJhbF9wdGwsICZoMjY1X3Jhd19w dGwpOwo+IAo+IC3CoMKgwqAgcHJvZmlsZSA9IGZmX2gyNjVfZmluZF9wcm9maWxlKCZoMjY1X3Jh d19wdGwpOwo+IC3CoMKgwqAgaWYgKCFwcm9maWxlKSB7Cj4gLcKgwqDCoMKgwqDCoMKgIGF2X2xv ZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJIRVZDIHByb2ZpbGUgaXMgbm90IGZvdW5kLlxuIik7 Cj4gLcKgwqDCoMKgwqDCoMKgIGdvdG8gZW5kOwo+IC3CoMKgwqAgfSBlbHNlIHsKPiAtwqDCoMKg wqDCoMKgwqAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfVkVSQk9TRSwgIkhFVkMgcHJvZmlsZSAlcyBp cyBmb3VuZC5cbiIsIHByb2ZpbGUtCj4gPm5hbWUpOwo+ICvCoMKgwqAgZm9yIChpbnQgaSA9IDA7 IGkgPCBGRl9BUlJBWV9FTEVNUyhtYXApOyBpKyspIHsKPiArwqDCoMKgwqDCoMKgwqAgaW50IGF2 YWlsYWJsZSA9IDA7Cj4gK8KgwqDCoMKgwqDCoMKgIGZvciAoaW50IGogPSAwOyBqIDwgcHJvZmls ZV9jb3VudDsgaisrKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHByb2ZpbGVfbGlz dFtqXSA9PSBtYXBbaV0udmFfcHJvZmlsZSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgYXZhaWxhYmxlID0gMTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJy ZWFrOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiArwqDCoMKgwqDCoMKgwqAgfQo+ICvC oMKgwqDCoMKgwqDCoCBpZiAoIWF2YWlsYWJsZSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj b250aW51ZTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgIGlmIChmZl9oMjY1X3Byb2ZpbGVfY29tcGF0 aWJsZSgmaDI2NV9yYXdfcHRsLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1hcFtpXS5wcm9maWxl KSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IEgyNjVQcm9maWxlRGVzY3JpcHRv ciAqcHJvZmlsZV9kZXNjID0KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZmX2gy NjVfZ2V0X3Byb2ZpbGUobWFwW2ldLnByb2ZpbGUpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IGF2X2xvZyhhdmN0eCwgQVZfTE9HX1ZFUkJPU0UsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAiRGVjb2Rpbmcgd2l0aCBIRVZDIHByb2ZpbGUgJXMuXG4iLAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcHJvZmlsZV9kZXNjLT5uYW1lKTsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gbWFwW2ldLnZhX3Byb2ZpbGU7Cj4gK8KgwqDC oMKgwqDCoMKgIH0KPiDCoMKgwqDCoCB9Cj4gCj4gLSNpZiBWQV9DSEVDS19WRVJTSU9OKDEsIDIs IDApCj4gLcKgwqDCoCBpZiAoIXN0cmNtcChwcm9maWxlLT5uYW1lLCAiTWFpbiAxMiIpIHx8Cj4g LcKgwqDCoMKgwqDCoMKgICFzdHJjbXAocHJvZmlsZS0+bmFtZSwgIk1haW4gMTIgSW50cmEiKSkK PiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIFZBUHJvZmlsZUhFVkNNYWluMTI7Cj4gLcKgwqDCoCBl bHNlIGlmICghc3RyY21wKHByb2ZpbGUtPm5hbWUsICJNYWluIDQ6MjoyIDEwIikgfHwKPiAtwqDC oMKgwqDCoMKgwqAgIXN0cmNtcChwcm9maWxlLT5uYW1lLCAiTWFpbiA0OjI6MiAxMCBJbnRyYSIp KQo+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gVkFQcm9maWxlSEVWQ01haW40MjJfMTA7Cj4gLcKg wqDCoCBlbHNlIGlmICghc3RyY21wKHByb2ZpbGUtPm5hbWUsICJNYWluIDQ6MjoyIDEyIikgfHwK PiAtwqDCoMKgwqDCoMKgwqAgIXN0cmNtcChwcm9maWxlLT5uYW1lLCAiTWFpbiA0OjI6MiAxMiBJ bnRyYSIpKQo+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gVkFQcm9maWxlSEVWQ01haW40MjJfMTI7 Cj4gLcKgwqDCoCBlbHNlIGlmICghc3RyY21wKHByb2ZpbGUtPm5hbWUsICJNYWluIDQ6NDo0Iikg fHwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICFzdHJjbXAocHJvZmlsZS0+bmFtZSwgIk1h aW4gNDo0OjQgSW50cmEiKSkKPiAtwqDCoMKgwqDCoMKgwqAgcmV0dXJuIFZBUHJvZmlsZUhFVkNN YWluNDQ0Owo+IC3CoMKgwqAgZWxzZSBpZiAoIXN0cmNtcChwcm9maWxlLT5uYW1lLCAiTWFpbiA0 OjQ6NCAxMCIpIHx8Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAhc3RyY21wKHByb2ZpbGUt Pm5hbWUsICJNYWluIDQ6NDo0IDEwIEludHJhIikpCj4gLcKgwqDCoMKgwqDCoMKgIHJldHVybiBW QVByb2ZpbGVIRVZDTWFpbjQ0NF8xMDsKPiAtwqDCoMKgIGVsc2UgaWYgKCFzdHJjbXAocHJvZmls ZS0+bmFtZSwgIk1haW4gNDo0OjQgMTIiKSB8fAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg IXN0cmNtcChwcm9maWxlLT5uYW1lLCAiTWFpbiA0OjQ6NCAxMiBJbnRyYSIpKQo+IC3CoMKgwqDC oMKgwqDCoCByZXR1cm4gVkFQcm9maWxlSEVWQ01haW40NDRfMTI7Cj4gLcKgwqDCoCBlbHNlIGlm ICghc3RyY21wKHByb2ZpbGUtPm5hbWUsICJTY3JlZW4tRXh0ZW5kZWQgTWFpbiIpKQo+IC3CoMKg wqDCoMKgwqDCoCByZXR1cm4gVkFQcm9maWxlSEVWQ1NjY01haW47Cj4gLcKgwqDCoCBlbHNlIGlm ICghc3RyY21wKHByb2ZpbGUtPm5hbWUsICJTY3JlZW4tRXh0ZW5kZWQgTWFpbiAxMCIpKQo+IC3C oMKgwqDCoMKgwqDCoCByZXR1cm4gVkFQcm9maWxlSEVWQ1NjY01haW4xMDsKPiAtwqDCoMKgIGVs c2UgaWYgKCFzdHJjbXAocHJvZmlsZS0+bmFtZSwgIlNjcmVlbi1FeHRlbmRlZCBNYWluIDQ6NDo0 IikpCj4gLcKgwqDCoMKgwqDCoMKgIHJldHVybiBWQVByb2ZpbGVIRVZDU2NjTWFpbjQ0NDsKPiAt I2lmIFZBX0NIRUNLX1ZFUlNJT04oMSwgOCwgMCkKPiAtwqDCoMKgIGVsc2UgaWYgKCFzdHJjbXAo cHJvZmlsZS0+bmFtZSwgIlNjcmVlbi1FeHRlbmRlZCBNYWluIDQ6NDo0IDEwIikpCj4gLcKgwqDC oMKgwqDCoMKgIHJldHVybiBWQVByb2ZpbGVIRVZDU2NjTWFpbjQ0NF8xMDsKPiAtI2VuZGlmCj4g LSNlbHNlCj4gLcKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJOSU5HLCAiSEVWQyBwcm9m aWxlICVzIGlzICIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqAgIm5vdCBzdXBwb3J0ZWQgd2l0aCB0 aGlzIFZBIHZlcnNpb24uXG4iLCBwcm9maWxlLT5uYW1lKTsKPiAtI2VuZGlmCj4gLQo+IC1lbmQ6 Cj4gwqDCoMKgwqAgaWYgKGF2Y3R4LT5od2FjY2VsX2ZsYWdzICYgQVZfSFdBQ0NFTF9GTEFHX0FM TE9XX1BST0ZJTEVfTUlTTUFUQ0gpIHsKPiDCoMKgwqDCoMKgwqDCoMKgIC8vIERlZmF1bHQgdG8g c2VsZWN0aW5nIE1haW4gcHJvZmlsZSBpZiBwcm9maWxlIG1pc21hdGNoIGlzIGFsbG93ZWQKPiDC oMKgwqDCoMKgwqDCoMKgIHJldHVybiBWQVByb2ZpbGVIRVZDTWFpbjsKPiBkaWZmIC0tZ2l0IGEv bGliYXZjb2RlYy92YWFwaV9oZXZjLmggYi9saWJhdmNvZGVjL3ZhYXBpX2hldmMuaAo+IGluZGV4 IDQ0OTYzNWQwZDcuLjQ1NWM2OGU2YmEgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy92YWFwaV9o ZXZjLmgKPiArKysgYi9saWJhdmNvZGVjL3ZhYXBpX2hldmMuaAo+IEBAIC0yMiw2ICsyMiw4IEBA Cj4gwqAjaW5jbHVkZSA8dmEvdmEuaD4KPiDCoCNpbmNsdWRlICJhdmNvZGVjLmgiCj4gCj4gLVZB UHJvZmlsZSBmZl92YWFwaV9wYXJzZV9oZXZjX3JleHRfc2NjX3Byb2ZpbGUoQVZDb2RlY0NvbnRl eHQgKmF2Y3R4KTsKPiArVkFQcm9maWxlIGZmX3ZhYXBpX2hldmNfbWF0Y2hfcmV4dF9zY2NfcHJv ZmlsZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGNvbnN0IFZBUHJvZmlsZSAqcHJvZmlsZV9saXN0LAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnQgcHJvZmlsZV9jb3VudCk7Cj4gCj4gwqAjZW5kaWYg LyogQVZDT0RFQ19WQUFQSV9IRVZDX0ggKi8KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K