From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id /hbwG2BXFGnPEDkAWB0awg (envelope-from ) for ; Wed, 12 Nov 2025 04:46:08 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=agKlIJrD; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 5F4BC1E057; Wed, 12 Nov 2025 04:46:08 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id B84611E057 for ; Wed, 12 Nov 2025 04:46:03 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id F1C533858426 for ; Wed, 12 Nov 2025 09:46:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org F1C533858426 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=agKlIJrD Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.11]) by sourceware.org (Postfix) with ESMTPS id D793A3858D20 for ; Wed, 12 Nov 2025 09:45:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D793A3858D20 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D793A3858D20 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=198.175.65.11 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1762940712; cv=fail; b=ZC5PWYeINFW8su+4bt1nYW8XLrbqoicycoLr3pvykudQAbK6aYWXg/whNXfzD0kzUcZ+HQJbOQim+Jgpf5yK6DWhHdpKyeFdhS7WXPp8yHILaXhsEuePAaWdK8xUsCTaQghwDO7rXOwGJh9LxwcMt17xeHJ5MVrKj166rCs23Js= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1762940712; c=relaxed/simple; bh=LcAXXWrrEbmY/XDgDHDh3PEajVOrtGxBnHHz/9kUYdE=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=A743iy9EB8wGRrsS0BHT1VT1HNuk702doXAZYHtkCwPj+mhX13XOBZpc2DI2eBCfMVxgjAQl5AdLSTnq9CJMIgioBeYphF92xOt1ouEw6jzOM7NPJOBsRnPkvAEY5uKF59aCWfa4RPnqQ0OFtekXDPybt8S1cE43rOQZKXVHmIk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D793A3858D20 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1762940711; x=1794476711; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=LcAXXWrrEbmY/XDgDHDh3PEajVOrtGxBnHHz/9kUYdE=; b=agKlIJrD5PX49C5VTTlz6rJc+oIf4Esqb9ZNL2EBLJaP7wkUVaojAWIJ teCEC7vPhydZsYDg11ZI3116boxQ3kE9NQo9Osct3/N/rzeMPr3lfhP2J ODw+OVdRzAcMXoiP8Zd9gzf1ZtOZ2Jy1kE+n0iPHw7faJYFFUpbvB3N+P JPV+sZp21g/2/CsKfukX3LcGfwYPY88l0CkHgtNHYWnx5wH0/RP0uNvsW hvqnmHvGAz2CD8giOJ9ubeWtSb3YUu7+YEVfa1/2f/HALVIex64k07GFf 9zLljEAIWW8iCzkXkSQlPHOJEqpmLPx0UMJ03he/Gs5pkC0u/w98o+H54 w==; X-CSE-ConnectionGUID: p9is/97bQnKqFsGxZJ/jyQ== X-CSE-MsgGUID: ZbagxdzOQJOtxjzeDZqOHw== X-IronPort-AV: E=McAfee;i="6800,10657,11610"; a="75306013" X-IronPort-AV: E=Sophos;i="6.19,299,1754982000"; d="scan'208";a="75306013" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by orvoesa103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Nov 2025 01:45:09 -0800 X-CSE-ConnectionGUID: l9skKbq3QXmJmW6YqKSWEg== X-CSE-MsgGUID: rA03vTFmSjGvGr0DVpMY7Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,299,1754982000"; d="scan'208";a="219905432" Received: from orsmsx901.amr.corp.intel.com ([10.22.229.23]) by fmviesa001.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Nov 2025 01:45:10 -0800 Received: from ORSMSX902.amr.corp.intel.com (10.22.229.24) by ORSMSX901.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Wed, 12 Nov 2025 01:45:09 -0800 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by ORSMSX902.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27 via Frontend Transport; Wed, 12 Nov 2025 01:45:09 -0800 Received: from SA9PR02CU001.outbound.protection.outlook.com (40.93.196.58) by edgegateway.intel.com (134.134.137.111) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Wed, 12 Nov 2025 01:45:09 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OWgkr5wipfvS2j4FxG1zobxKPiEX7Y3HnDbu0EiQScj716BjhXDYtp6cGfqoDOQ03J4l2gWHLe1ZVokxGcaALLC9f/3KikO4tYfLi4HnYiyy7u0zyk4h+kqAf+QNg7n3Eqcv0xFvfoRzFp/C0m5nJjS67x1uYpKSTgT7TTNUx1xYeWHMzi708Wfws5WmSDl1IzSzeyiseaCzhcYBEUCP8OXkByeq8oXuZx/eKqUehTVR++o74+YvsxjTUEjv4L2bjdY6UYpPCSEKqjbKLOSvdVOnmG3yLV320DIFAvVWrz2+k+MWgaSadLly/f2FWHQGiuF8yXWQ6TgpWisfvWUpcg== 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=UrCT3uatwHbVUkee7+HaKpqwdMIjf80tuAUBj68H1Gs=; b=uVUbBkb484Gp7dhCVeRPZUQbTDtodmN7DVxS7wj7YdLjjZ1Li/K7NT3G6KbQxgG3WasHXXG24beXWEmPpRUYB9yfaZxMTtE19fV/adOO/RivOxFM4mj6EsKpE2zNcib+ncai0O3BK/r+G2E+KFcrfoLoCtK9zuUtfSjyupvdLsAYtIAh71cb9fEfvWq4+6yPNejEDufXHMWLAQg3tn6QHJCfktVmgHeYZYChimC/loilrIg9NVA5XLg/b5uAnk0amNjSr3+nrgK/hGmYkZGmb8QLGdNciI39HAQ35OfPgNmfgh7qKJgMHa19+O7QlWjzbw0eAAkAt2I9cFX1r7U2+g== 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 PH0PR11MB7636.namprd11.prod.outlook.com (2603:10b6:510:26f::13) by IA1PR11MB8175.namprd11.prod.outlook.com (2603:10b6:208:44f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9298.16; Wed, 12 Nov 2025 09:45:06 +0000 Received: from PH0PR11MB7636.namprd11.prod.outlook.com ([fe80::e7bd:a2c9:c01d:1823]) by PH0PR11MB7636.namprd11.prod.outlook.com ([fe80::e7bd:a2c9:c01d:1823%5]) with mapi id 15.20.9320.013; Wed, 12 Nov 2025 09:45:00 +0000 From: "Schimpe, Christina" To: Andrew Burgess , "gdb-patches@sourceware.org" CC: Eli Zaretskii , Keith Seitz Subject: RE: [PATCHv4] gdb: include NT_I386_TLS note in generated core files Thread-Topic: [PATCHv4] gdb: include NT_I386_TLS note in generated core files Thread-Index: AQHcTlwjOTBZ1JeBJEeapRgHC3O9qbTu1UYQ Date: Wed, 12 Nov 2025 09:44:59 +0000 Message-ID: References: <730728a6858a3fcf4477ebe3895088c98f0fead2.1760450001.git.aburgess@redhat.com> In-Reply-To: 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: PH0PR11MB7636:EE_|IA1PR11MB8175:EE_ x-ms-office365-filtering-correlation-id: 88002207-8b38-44bb-3173-08de21d02552 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700021|13003099007; x-microsoft-antispam-message-info: =?utf-8?B?d0RhOGt6Wnp5c3lFSWl3MEhvd0N0SXZuSThERG1qTVZQQnIvWkdydW93dGFV?= =?utf-8?B?U3JYR1FUUUphTzcxRXozRGI4ejhYZG1veWFlSGVDVFRybjhuUnh3TGxCaGdQ?= =?utf-8?B?eG4yVi9GcTZhdEtLWlpKWTRSVEVBSmw3c2Z6Q082ZGM3OG5OWHIvNGcxcDRr?= =?utf-8?B?aW42QlBSNTY2ckJRWmRKUUhkWEtDU2NpOEpxdUpYZFdISkFUWUpyNzl0NHVv?= =?utf-8?B?S2l5cFZha2tLZ3N2RElBUE51djFBUlk2QkcxRXdHY2gxQjh5b3R0SFFIQWZU?= =?utf-8?B?VklnTVJYOStVaGZockpKREJWNldRbFBxb25XYk9LTGFHMWswTVFXRC9mNE1i?= =?utf-8?B?NXlnQlRFSmh0NEdrWi81UFZwSXRPUWp3dWM3NEpraEl0bUhYK3FGbmFBYlJM?= =?utf-8?B?b3hwd3hwVk8zUnBXSFRyeGh1cVFEUkNxME1tV01hZHhyTzVKZ1hicG1XNU9q?= =?utf-8?B?UlZBWU9tZVhxYTI2VHlpSExYbVM1cDF2MnhpdVhKK2loVzlDcVVCa0lLM3k2?= =?utf-8?B?T2lKbUpmMDgxK3NkVFFYdFlYODBUQ2ZjMkltTXJneFJpcXo5alNIQ0dJRFBy?= =?utf-8?B?VXpTUlM3TE54TzcvZzFKT3A1bjJHZDg3dnZSSU5XUSt4bnUyeUxEaFhZZERr?= =?utf-8?B?VkNCVnQyWlpyc0FlQy9aVkdmQnpHUjNzTzZkNnVKYnN4TEZXQWJrOTF5azBX?= =?utf-8?B?M2M4R0hicWVnY0F2dG85ZkhJaUI2L2FieVZERDU1VkZac1NxbnYzZUlYZExu?= =?utf-8?B?UWowY1F3UFU4bldDOU9BM0Ivd29MVWFYRFFCMDdpZ21mdVZEQ1ozMXdITVF3?= =?utf-8?B?OU11S2dGbEwxOTZTRllBekRJNFVUcGEzU2ZVckd0M05jYU5PRytUaDdRNG5y?= =?utf-8?B?cjFHc0Q4enhnUldvL2M2cWJxRUxUNUwxWU1md1JZZU9VQm5WWFM3dldYTS96?= =?utf-8?B?clErSDVjSVdxRXpDMU9ZeVZOWVNzWHg1WFJjaG41SmlXOEY5eEZmeUR4SUhG?= =?utf-8?B?UHZ2VTFHY3VJUU1UclJRS2ZHa2V6eW9td2ZSWUlZNzZ4QVJ4N0lwY0lEZ2R2?= =?utf-8?B?YkNkM3BuUk1XK2VCUHpPNjNkRm9PWHRlTFI4OFIvM3FVQUhrYllEUk0vdUxn?= =?utf-8?B?OVdjN1hJa3VZSDI5MmZ2cGtqSzVLUENGdTlBSzZ2SVBFSk0yN0xzMU5uVERQ?= =?utf-8?B?c1RKMEwwR1ZmS0NKdW1wNStHUDlrbnVFUG1yZ1JmS3ZtZlJjRTc1eXZOQnRP?= =?utf-8?B?aFQ1WnEwY3B4ZFJEVnBTMTI1R0FNQzZCdTFWQzMrQzhPbjJBcXhaOHZEa3Az?= =?utf-8?B?cTRHN1l1K21wYUxiL1pVRzJIZGM4eG8xdVJhTmNPbDZEbEpsUEpuQ1g5RHRw?= =?utf-8?B?QWxOSEdsM3J5YmdlalUyYW5lVlRseGphTHJnQy9ibUp3MTJXK0VVZUc1bi80?= =?utf-8?B?OVdOUzhyNkFpMGZteWZyTWNNbVVrNWRrdFhtOVJGWVJPZjdtVTJPdUdtRUo0?= =?utf-8?B?Wk9Da2JwSlI5Uk12NCs3VW8veDkxOEZaMU8zTVRRTm1FSStOMytmd2lrRnN2?= =?utf-8?B?Rno5RlhZajBMeFc1aS9sSkNYOHU2T2QvZmFFbDVIUlYyRnYvZ2dkNGdyZ0JC?= =?utf-8?B?UUdqUVRnTFQvNmQ3UEhXdHZ3aWw0NjhYR21lVHRzOTdCYzIrRmJhdFhTakNV?= =?utf-8?B?aU9YcnNyWEcvWGxGY0dSZzk2aXRwajZSeDJDVzN2MFBHNFdEeDRDcXZ6Rkph?= =?utf-8?B?ZVA3T0l2cVNJQTV5MjRTbTlRUlAxSEdCTlFYb0J4OFR6NlZjSmc4WXhlNVhF?= =?utf-8?B?Um5TREpkZHNIMVIrRjlYTHdtb0VhaVZJUXFHNWhRUm9HMU5TaXFWR0dzWlc4?= =?utf-8?B?eGdVTFcwaUN3QWJVNHU4MGNaWjZZK3JvcjRZem5wbkxYS1ZhbldiMG40UEYv?= =?utf-8?B?M25vTlB5NHFPZFUxK09BMkx3VnM4NTZ6eGNrL3B4RlZwNHhZalc0Q3lkNnhp?= =?utf-8?B?WWFVUHZrK1dnPT0=?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB7636.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700021)(13003099007); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?K3RDUE12LzR5MjNzZDhJQmpycEhFT0FiVmlwZnY5UlhkSVVraHowSmpWWUNF?= =?utf-8?B?U2x1Q1BCaWdGZ3JVcmVqOGFNV1FYY0d5WjhmcmNVVDlYQzFzbVBwcUhQMGZo?= =?utf-8?B?bzB2UWZ5anhKWEY3cDB6UVhaZmRiVnJwOUZ3emNIdjlpUXRYR0lVMjJaTTFY?= =?utf-8?B?OWNKRm9QZW0ycE9OYWV1dGpjRUk0VEE4Z2pHUUZVTUxOWjN3SU1tdW1VemFF?= =?utf-8?B?YWRJVUtkNzR4dmIvYTJ2VFVvZFlyeUx6U05tRFZmMU9GamRSVEx3TGJVN1hI?= =?utf-8?B?K3VOeW9UQzNlZXBZM0pGc0F5ZHFKSXFnaWoranBoZVpqR3hodkhVcGRRZ1E1?= =?utf-8?B?L0I5eE5EQ0ZUK2kwL250cW55anV0TW8zNnBTcjN0cmVQVHl0NWp5aExqZytF?= =?utf-8?B?cUhrRWdTSGxFcE9YSVlzeUE3emJBa3lEejFxdUtBUExYdWJDcko5d0dPK1N6?= =?utf-8?B?L2tEdHYrVFNYbERuVjhXVUtmcDJyL3hyby9vZkdwb0d1UGZBZmFuajFyQXRz?= =?utf-8?B?VGl2ck10T0dxRnFGdk5vWDNweG1Ha2Jpa2dla250ODhYemdCRjAzTkVRanY4?= =?utf-8?B?SkFqKzliYXdKU2NpM3YwQis0SzJDaG9uYS8zTjkrZk93ZGFVSXRQK1JBUWQ2?= =?utf-8?B?YUhqT1AzUDZJdHVzeHk1cVEreU5UWktldG0xUWwvU1Y1S1RBcG1wRk84Lzdj?= =?utf-8?B?YzRRbSt1UFIrMDJybnhJR0NzUFUyOWp0S0JaU0xsdEg3dXBGRlVBRHNEQklJ?= =?utf-8?B?c1RQU01KL3BsdDcyNUphT0pVbVlXTEo1dXJwck1sbjJ4Qm5KUFlRL1pmQkg4?= =?utf-8?B?S1plalpRTXlMMTVjVnExcDh5U2VPTm5FQUprU0ttTEVoMEZzSjhocm5RYkZ1?= =?utf-8?B?MkMwZ1lHZTUwbW9jclp0RHk1TmpVZ3Q0d3RyTzZiU29BZHRlQlNubHJ6WmU3?= =?utf-8?B?THZnUnhuOTdVc1gwVC95U0JwWCt1bEpFaSsyckV2SnFzNnJNUXhLTWJQd3da?= =?utf-8?B?YUtVWGk3Zmpva1NhVlo4L2d1NERvVjlZWXhNYlVJSjl3OTVXaWZxSkVaV1Q0?= =?utf-8?B?endrQytXNVRhRUgycGs3UjJXWkNyaExGSTgrTm9jaTRKcmxtTStnMHJmR1U1?= =?utf-8?B?Ty91clNSUjFybXVJVUlUa0xhck9FazJ0b2VuMkc5UEdnMm9oSU01VzNWeEtw?= =?utf-8?B?STYyNGNOUFdoMTk0ZHZ2SjlYNTZ6dk40L3lxTmxWV2d6M3liajFFL05zclZh?= =?utf-8?B?TEpySWVsVEVCc0VOV1NCSzNiN1QxZUhtUW1uZzVsaWQzLy9XNFlLK3FwbHVs?= =?utf-8?B?STljZlRoZlhuRU5iUGNOQ1NnNW56QzRyLzlBRFNEdlBmR1F1MnlZV3FvQklO?= =?utf-8?B?TDFSNmlyZE5leXJiTDZlVkhONU8wbzlCUE0vOUFpN0xVeWF2aWJpQUhNVzJj?= =?utf-8?B?ZmpmQ0x5K0MvVGJxSUh0YlB3OGdQNEdjZHNISnhhTklLc2lsdHBrbmtMSUdY?= =?utf-8?B?UHF1SW55cHBTQVgrVDF6bi82U2dkOEhMOVFrVDY3MzVZVk41TDBCc2g4SzVk?= =?utf-8?B?U2lERCs1L3RYdE5WZnZZZ080clZhWExaQTRQbms4MjFSWVkrbTJSS3V5K0lK?= =?utf-8?B?b1RWZDNHSGhPN28yWkJXcmFoTjZqdmNPN3hLQlFMK20vWWRtckxBRklMU0kr?= =?utf-8?B?dkVRdXd2bUpTL3VoV1hEL0ozVmwrSTZVTG9YM1VaTW1ZQW9BZUY4UHNLajRj?= =?utf-8?B?di9OWHpnNUEwNzBOeW42Q2dpWVZuWndFcDVNdGUwdmdXYUZXQnh2ZkdmN1My?= =?utf-8?B?WXVyNFIrSG44clJxKzREKzFWZDFwVEl5T0lqK05PbVQ4S2xXSkJSa3IwRU02?= =?utf-8?B?aERVOWlySGlXNEtBMFpycXpRejdCLzhraXlZamVDSFBxeFU1Q1lOYWdYQ3l2?= =?utf-8?B?c1R1Z2hwejNkazBEQ1Fsb3VWazExM2FhWnRYb0QvTi9rMDM3TVJYbzhVRE41?= =?utf-8?B?WjhxLzQxUWptSWdTd3FsMmIydmdCajlmbG1zeVdiRTQwK2pSSyt2KzdIRzNo?= =?utf-8?B?MHJHYzduMWlRbVdybmZEcUVUOEppS2dDVXVGZGZBTkJIaHJ1T2s5V1laMit2?= =?utf-8?B?WWJlcUlMQkdCSGRwMzc4K0JHNW5UMkgyN0JWR1kyMzdIYmgzZHRZZmFBZkUr?= =?utf-8?B?OVE9PQ==?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB7636.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 88002207-8b38-44bb-3173-08de21d02552 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Nov 2025 09:44:59.3714 (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: FWL0H3SgzdVjacWaAw25G3qegH5/TjwyNozyfeVbzgZO/P5ZHHMVE3jYTHhxu3KMKL5DXDfUKQqMvL1TLPhaD8V55g6WOuIK17zVDz1rneA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB8175 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org SGkgQW5kcmV3LCANCg0KSSBvbmx5IGhhdmUgc29tZSBvcHRpb25hbCBjb21tZW50cyBhbmQgZm91 bmQgYSBmZXcgbml0cywgcGxlYXNlIHNlZSBiZWxvdy4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPiBGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4NCj4g U2VudDogTWl0dHdvY2gsIDUuIE5vdmVtYmVyIDIwMjUgMTQ6NTcNCj4gVG86IGdkYi1wYXRjaGVz QHNvdXJjZXdhcmUub3JnDQo+IENjOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNv bT47IFNjaGltcGUsIENocmlzdGluYQ0KPiA8Y2hyaXN0aW5hLnNjaGltcGVAaW50ZWwuY29tPjsg RWxpIFphcmV0c2tpaSA8ZWxpekBnbnUub3JnPg0KPiBTdWJqZWN0OiBbUEFUQ0h2NF0gZ2RiOiBp bmNsdWRlIE5UX0kzODZfVExTIG5vdGUgaW4gZ2VuZXJhdGVkIGNvcmUgZmlsZXMNCj4gDQo+IElu IHY0Og0KPiANCj4gICAtIFVwZGF0ZWQgYmFzZWQgb24gQ2hyaXN0aW5hJ3MgZmVlZGJhY2suDQo+ IA0KPiAgIC0gUmVtb3ZlZCBleGNlc3NpdmUgdXNlIG9mICdzdHJ1Y3QnIHRocm91Z2hvdXQgdGhl IHBhdGNoLg0KPiANCj4gICAtIEZpeGVkIHdoaXRlc3BhY2UgaXNzdWUgaW4gY29tbWVudC4NCj4g DQo+ICAgLSBSZW5hbWVkIHRlc3QgdG8gcmVtb3ZlICdsaW51eC0nLCB0aGlzIGlzIGlubGluZSB3 aXRoIGFsbCB0aGUgb3RoZXINCj4gICAgIExpbnV4IHNwZWNpZmljIHRlc3RzLCB3aGljaCBkb24n dCBoYXZlICdsaW51eCcgaW4gdGhlaXIgbmFtZS4NCj4gDQo+ICAgLSBDaGFuZ2VkICdyZXR1cm4g LTEnIHRvICdyZXR1cm4nIGluIHRoZSB0ZXN0IHNjcmlwdC4NCj4gDQo+ICAgLSBVcGRhdGVkIHRl c3QgdG8gaGFuZGxlIGNhc2Ugd2hlcmUga2VybmVsIHByb2R1Y2VkIGNvcmUgZmlsZQ0KPiAgICAg ZG9lc24ndCB3b3JrLCBlLmcuIHN5c3RlbSBpcyBjb25maWd1cmVkIHRvIG5vdCBhbGxvdyB0aGUg a2VybmVsIHRvDQo+ICAgICBkdW1wIGNvcmUuICBUZXN0IHdpbGwgbm93IHJlcG9ydCAndW5zdXBw b3J0ZWQnLg0KPiANCj4gICAtIFVwZGF0ZWQgZ2Ric2VydmVyIGNoYW5nZXMgc28gZmV0Y2hfdGxz X2FyZWFfcmVnaXN0ZXIgYW5kDQo+ICAgICBzdG9yZV90bHNfYXJlYV9yZWdpc3RlciBub3cgcmV0 dXJuICd2b2lkJy4gIFRoZXNlIGZ1bmN0aW9ucyBoYXZlDQo+ICAgICBiZWVuIHVwZGF0ZWQgdG8g Z2l2ZSBhIHdhcm5pbmcgaWYgc29tZXRoaW5nIGdvZXMgd3JvbmcuDQo+IA0KPiAgIC0gUmViYXNl ZCBvbnRvIHNvbWV0aGluZyBtb3JlIHJlY2VudCwgcmVyYW4gdGhlIHBhdGNoIHNwZWNpZmljIHRl c3QNCj4gICAgIG9ubHkgYXMgdGhlIGNoYW5nZXMgYWJvdmUgYXJlIGFsbCBtaW5vciBhbmQgc2hv dWxkbid0IGltcGFjdA0KPiAgICAgYW55dGhpbmcgb3V0c2lkZSBvZiB0aGlzIGNoYW5nZS4NCj4g DQo+IEluIHYzOg0KPiANCj4gICAtIEZpeGVkIGRvYyBpc3N1ZSB0aGF0IEVsaSBwb2ludGVkIG91 dC4NCj4gDQo+ICAgLSBSZWJhc2VkIHRvIGN1cnJlbnQgSEVBRCwgbm8gbWVyZ2VkIGNvbmZsaWN0 cy4NCj4gDQo+IEluIHYyOg0KPiANCj4gICAtIFJlYmFzZWQgdG8gY3VycmVudCBIRUFELCByZXNv bHZlZCBtZXJnZSBjb25mbGljdHMgcmVsYXRlZCB0bw0KPiAgICAgcmVjZW50IGkzODYgcmVnaXN0 ZXIgY2hhbmdlcy4NCj4gDQo+ICAgLSBVcGRhdGVkIHRlc3QgdG8gdGFrZSBhY2NvdW50IG9mIHJl Y2VudCBjbGVhbl9yZXN0YXJ0IGNoYW5nZXMuDQo+IA0KPiAgIC0gUmV0ZXN0ZWQuDQo+IA0KPiAt LS0NCj4gDQo+IFRoaXMgY29tbWl0IGV4dGVuZHMgR0RCIGZvciB4ODYvTGludXggdG8gaW5jbHVk ZSB0aGUgTlRfSTM4Nl9UTFMgbm90ZSBpbg0KPiBnZW5lcmF0ZWQgY29yZSBmaWxlcyAoaS5lLiBj cmVhdGVkIHdpdGggYGdlbmVyYXRlLWNvcmUtZmlsZWAgb3IgYGdjb3JlYCBjb21tYW5kKS4NCj4g VGhpcyBub3RlIGNvbnRhaW5zIHRoZSAzIHBlci10aHJlYWQgVExTIHJlbGF0ZWQgR0RUIChnbG9i YWwgZGVzY3JpcHRvciB0YWJsZSkNCj4gZW50cmllcywgYW5kIGlzIHByZXNlbnQgZm9yIGkzODYg YmluYXJpZXMsIG9yIHRob3NlIGNvbXBpbGVkIG9uIHg4Ni02NCB3aXRoIC0NCj4gbTMyLg0KPiAN Cj4gVGhlIGFwcHJvYWNoIEkgaGF2ZSB0YWtlbiB0byBhY2hpZXZlIHRoaXMsIGlzIHRvIG1ha2Ug dGhlIDMgR0RUIGVudHJpZXMNCj4gYXZhaWxhYmxlIHdpdGhpbiAzIG5ldyByZWdpc3RlcnMuICBJ IGFkZGVkIHRoZXNlIHJlZ2lzdGVycyB0byB0aGUNCj4gb3JnLmdudS5nZGIuaTM4Ni5saW51eCB0 YXJnZXQgZGVzY3JpcHRpb24gZmVhdHVyZSwgYXMgdGhpcyBmZWF0dXJlIHNlZW1lZA0KPiBwZXJm ZWN0bHkgbmFtZWQuICBBcyB0aGUgbmV3IHJlZ2lzdGVycyBhcmUgb3B0aW9uYWwgSSBkb24ndCBz ZWUgYW55IGhhcm0gaW4NCj4gZXh0ZW5kaW5nIHRoaXMgZXhpc3RpbmcgZmVhdHVyZS4gIEkgZGlk IGNvbnNpZGVyIGFkZGluZyBhIG5ldyBmZWF0dXJlIHdpdGggYHRsc2AgaW4NCj4gdGhlIG5hbWUs IGJ1dCB0aGlzIHNlZW1lZCBleGNlc3NpdmUgZ2l2ZW4gdGhlIGV4aXN0aW5nIGZlYXR1cmUuDQo+ IA0KPiBXaGljaCBHRFQgZW50cmllcyBhcmUgdXNlZCBmb3IgVExTIHZhcmllcyBiZXR3ZWVuIGkz ODYgYW5kIHg4Ni02NCBydW5uaW5nIGluDQo+IDMyLWJpdCBtb2RlLiAgQXMgc3VjaCB0aGUgcmVn aXN0ZXJzIGFyZSBuYW1lZCB3aXRoIHN1ZmZpeGVzIDAsIDEsIGFuZCAyLCBhbmQgaXQgaXMNCj4g bGVmdCB0byBHREIgb3IgZ2Ric2VydmVyLCB0byBmaW5kIHRoZSBjb3JyZWN0IEdEVCBlbnRyaWVz IChiYXNlZCBvbiB0aGUgcHJlY2lzZQ0KPiB0YXJnZXQpIGFuZCBwbGFjZSB0aGUgY29udGVudHMg aW50byB0aGVzZSByZWdpc3RlcnMuDQo+IA0KPiBXaXRoIHRoaXMgZG9uZSwgYWRkaW5nIHRoZSBy ZWxldmFudCByZWdzZXQgaXMgc3VmZmljaWVudCB0byBnZXQgdGhlIHRscyBjb250ZW50cw0KPiBl bWl0dGVkIGFzIGEgY29yZSBmaWxlIG5vdGUuICBTdXBwb3J0IGZvciBlbWl0dGluZyB0aGUgbm90 ZSBpbnRvIHRoZSBnZW5lcmF0ZWQNCj4gY29yZSBmaWxlIHJlbGllcyBvbiBzb21lIEJGRCBjaGFu Z2VzIHdoaWNoIHdlcmUgbWFkZSBpbiBhbiBlYXJsaWVyIGNvbW1pdDoNCj4gDQo+ICAgY29tbWl0 IGVhNmVjMDBmZjQ1MjA4OTU3MzVlNDkxM2NiOTBjOTMzYzcyOTZmMDQNCj4gICBEYXRlOiAgIEZy aSBKdWwgMjUgMTk6NTE6NTggMjAyNSArMDEwMA0KPiANCj4gICAgICAgYmZkOiBzdXBwb3J0IGZv ciBOVF8zODZfVExTIG5vdGVzDQo+IA0KPiBUaGUgdGhyZWUgbmV3IHJlZ2lzdGVycyBhcmUgcmVh ZGFibGUgYW5kIHdyaXRhYmxlLiAgV3JpdGluZyB0byBvbmUgb2YgdGhlIG5ldw0KPiByZWdpc3Rl cnMgd2lsbCB1cGRhdGUgdGhlIHJlbGV2YW50IGtlcm5lbCBHRFQgZW50cnkuDQo+IA0KPiBFYWNo IFRMUyBHRFQgaXMgcmVwcmVzZW50ZWQgYnkgYSAnc3RydWN0IHVzZXJfZGVzYycgKHNlZSAnbWFu IDINCj4gZ2V0X3RocmVhZF9hcmVhJyBmb3IgZGV0YWlscyksIHRoZSBmaXJzdCA0IGJ5dGVzIG9m IGVhY2ggJ3VzZXJfZGVzYycNCj4gaXMgdGhlICdlbnRyeV9udW1iZXInIGZpZWxkLCB0aGlzIGlz IHRoZSBpbmRleCBvZiB0aGUgR0RUIHdpdGhpbiB0aGUga2VybmVsLCBhbmQNCj4gY2Fubm90IGJl IG1vZGlmaWVkLiAgQXR0ZW1wdHMgdG8gd3JpdGUgdG8gdGhpcyByZWdpb24gb2YgdGhlIHJlZ2lz dGVyIHdpbGwgYmUNCj4gaWdub3JlZCwgYnV0IHdpbGwgbm90IGdpdmUgYW4gZXJyb3IuDQo+IA0K PiBJIGRpZCBjb25zaWRlciBub3QgaW5jbHVkaW5nIHRoaXMgcGFydCBvZiB0aGUgdXNlcl9kZXNj IHdpdGhpbiB0aGUgcmVnaXN0ZXIgdmFsdWUsDQo+IGJ1dCB0aGlzIGJlY29tZXMgZGlmZmljdWx0 IHdoZW4gd2UgY29uc2lkZXIgcmVtb3RlIHRhcmdldHMsIEdEQiB3b3VsZCB0aGVuDQo+IG5lZWQg dG8gZmlndXJlIG91dCB3aGF0IHRoZXNlIGluZGV4ZXMgd2VyZSBzbyB0aGF0IHRoZSBjb3JlIGZp bGUgbm90ZSBjb3VsZCBiZQ0KPiBnZW5lcmF0ZWQuICBTdXJlLCB3ZSBwcm9iYWJseSBjb3VsZCBm aWd1cmUgdGhlIGNvcnJlY3QgaW5kZXggdmFsdWVzIG91dCwgYnV0IEkNCj4gZmlndXJlLCB3aHkg Ym90aGVyLCB3ZSBjYW4ganVzdCBwYXNzIHRoZW0gdGhyb3VnaCBpbiB0aGUgcmVnaXN0ZXIgYW5k IGtub3cgZm9yDQo+IGNlcnRhaW4gdGhhdCB3ZSBoYXZlIHRoZSBjb3JyZWN0IHZhbHVlcy4NCj4g DQo+IEZvciB0ZXN0aW5nLCB0aGVyZSdzIGEgbmV3IHRlc3QgdGhhdCBjb3ZlcnMgdGhlIGJhc2lj IGZ1bmN0aW9uYWxpdHksIGluY2x1ZGluZw0KPiByZWFkL3dyaXRlIGFjY2VzcyB0byB0aGUgbmV3 IHJlZ2lzdGVycywgYW5kIGNoZWNraW5nIHRoYXQgdGhlIE5UXzM4Nl9UTFMgbm90ZQ0KPiBpcyBh ZGRlZCB0byB0aGUgY29yZSBmaWxlLCBhbmQgdGhhdCB0aGUgbm90ZSBjb250ZW50cyBjYW4gYmUg cmVhZCBieSBHREIuDQo+IA0KPiBJIGFsc28gbWFudWFsbHkgdGVzdGVkIG9wZW5pbmcgYSBjb3Jl IGZpbGUgZ2VuZXJhdGVkIGZyb20gYW4gb2xkIEdEQiAoc28gbm8NCj4gTlRfMzg2X1RMUyBub3Rl cykgdXNpbmcgYSBHREIgd2l0aCB0aGlzIHBhdGNoLiAgVGhpcyB3b3JrcyBmaW5lLCB0aGUgbmV3 IHRscw0KPiByZWdpc3RlcnMgYXJlIG5vdCBjcmVhdGVkIGFzIHRoZSBOVF9HREJfVERFU0Mgbm90 ZSAodGhlIHRhcmdldCBkZXNjcmlwdGlvbikNCj4gZG9lc24ndCBpbmNsdWRlIHRoZSBuZXcgcmVn aXN0ZXJzLg0KPiANCj4gT3V0IG9mIGludGVyZXN0IEkgYWxzbyBwYXRjaGVkIGFuIG9sZCB2ZXJz aW9uIG9mIEdEQiB0byBhdm9pZCBjcmVhdGluZyB0aGUNCj4gTlRfR0RCX1RERVNDLCBhbmQgY3Jl YXRlZCBhIGNvcmUgZmlsZS4gIFRoaXMgY29yZSBmaWxlIGNvbnRhaW5lZCBuZWl0aGVyIHRoZQ0K PiBOVF8zODZfVExTIG5vciBOVF9HREJfVERFU0MuICBXaGVuIG9wZW5pbmcgdGhpcyBjb3JlIGZp bGUgd2l0aCBhIHBhdGNoZWQNCj4gR0RCLCB0aGUgbmV3IHJlZ2lzdGVycyBkbyBzaG93IHVwLCBi dXQgdGhlaXIgY29udGVudHMgYXJlIGdpdmVuIGFzDQo+IDx1bmF2YWlsYWJsZT4sIHdoaWNoIGlz IGV4YWN0bHkgd2hhdCB3ZSdkIGV4cGVjdCwgR0RCIGJ1aWxkcyBhIHRhcmdldA0KPiBkZXNjcmlw dGlvbiBiYXNlZCBvbiB0aGUgYXJjaGl0ZWN0dXJlLCB0aGUgYXJjaGl0ZWN0dXJlIHNheXMgdGhl c2UgcmVnaXN0ZXJzDQo+IHNob3VsZCBleGlzdCwgYnV0IHRoZXkgYXJlIG1pc3NpbmcgZnJvbSB0 aGUgY29yZSBmaWxlLCBoZW5jZSwgPHVuYXZhaWxhYmxlPi4NCj4gDQo+IEkgYWxzbyB0ZXN0ZWQg dXNpbmcgYSBwYXRjaGVkIEdEQiB3aXRoIGFuIG9sZCB2ZXJzaW9uIG9mIGdkYnNlcnZlciwgdGhl IG5ldw0KPiByZWdpc3RlcnMgZG9uJ3Qgc2hvdyB1cCBhcyB0aGUgb2xkIGdkYnNlcnZlciBkb2Vz bid0IHNlbmQgdGhlbSBpbiBpdHMgdGFyZ2V0DQo+IGRlc2NyaXB0aW9uLiAgQW5kIGEgY29yZSBm aWxlIGNyZWF0ZWQgdXNpbmcgdGhlIGdjb3JlIGNvbW1hbmQgaW4gc3VjaCBhIHNldHVwDQo+IGxl YXZlcyBubyBOVF8zODZfVExTIG5vdGVzIGFkZGVkLCB3aGljaCBpcyB3aGF0IHdlJ2QgZXhwZWN0 Lg0KPiANCj4gQW5kIEkgYWxzbyB0ZXN0ZWQgYSBuZXcgZ2Ric2VydmVyIHJ1bm5pbmcgd2l0aCBh biBvbGQgdmVyc2lvbiBvZiBHREIuDQo+IEFzIHRoZSBuZXcgdGxzIHJlZ2lzdGVycyBhcmUgbm93 IG1lbnRpb25lZCBpbiB0aGUgdGFyZ2V0IGRlc2NyaXB0aW9uLCB0aGVuDQo+IG9idmlvdXNseSwg dGhlIG9sZCBHREIgZG9lcyBzZWUgdGhlIHJlZ2lzdGVycywgYW5kIHByZXNlbnQgdGhlbSB0byB0 aGUgdXNlciwNCj4gaG93ZXZlciBHREIgZG9lc24ndCBrbm93IGhvdyB0byB1c2UgdGhlc2UgcmVn aXN0ZXJzIHRvIGNyZWF0ZSBhIE5UXzM4Nl9UTFMsDQo+IHNvIHRoYXQgbm90ZSBpc24ndCBhZGRl ZCB0byBhbnkgY29yZSBmaWxlcy4NCj4gQWxzbywgd2hpbGUgYSBuZXcgR0RCIHBsYWNlcyB0aGUg dGxzIHJlZ2lzdGVycyBpbnRvIHRoZSAnc3lzdGVtJw0KPiBncm91cCwgYW4gb2xkIEdEQiBkb2Vz bid0IGRvIHRoaXMsIHNvIHRoZSByZWdpc3RlcnMgZW5kIHVwIGluIHRoZSAnZ2VuZXJhbCcNCj4g Z3JvdXAgYnkgZGVmYXVsdC4gIFRoaXMgbWVhbnMgdGhleSBzaG93IHVwIHdpdGhpbiAnaW5mbyBy ZWdpc3RlcnMnIG91dHB1dC4gIFRoaXMNCj4gaXNuJ3QgaWRlYWwsIGJ1dCB0aGVyZSdzIG5vdCBt dWNoIHRoYXQgY2FuIGJlIGRvbmUgYWJvdXQgdGhpcy4NCj4gDQo+IE92ZXJhbGwsIEkgZmVlbCB0 aGUgY29tYmluYXRpb25zIG9mIG9sZCBhbmQgbmV3IHRvb2xzIGhhcyBiZWVuIHRlc3RlZCwgYW5k IHRoZQ0KPiBiZWhhdmlvdXJzIGFyZSB3aGF0IHdlJ2Qgd2FudCBvciBleHBlY3QuDQo+IA0KPiBJ J20gdGFnZ2luZyB0aGlzIGNvbW1pdCB3aXRoIFBSIGdkYi8xNTU5MSwgZXZlbiB0aG91Z2ggdGhp cyBwYXRjaCBpc24ndA0KPiBkaXJlY3RseSByZWxhdGVkLiAgVGhhdCBidWcgaXMgZm9yIGltcHJv dmluZyBHREIncyB0ZXN0aW5nIG9mIFRMUyBzdXBwb3J0IGluIGNvcmUNCj4gZmlsZXMuICBUaGUg dGVzdCBpbiB0aGlzIGNvbW1pdCBkb2VzIGRvIHNvbWUgdmVyeSBzaW1wbGUgcmVhZGluZyBvZiBh IFRMUw0KPiB2YXJpYWJsZSwgYnV0IHRoZXJlJ3Mgb25seSB0d28gdGhyZWFkcywgYW5kIG9uZSBU TFMgdmFyaWFibGUsIHNvIGl0J3Mgbm90DQo+IGV4dGVuc2l2ZS4gIEFkZGl0aW9uYWxseSwgdGhl IHRlc3QgaW4gdGhpcyBjb21taXQgaXMgeDg2IG9ubHksIHNvIHRoaXMgc2hvdWxkIG5vdCBiZQ0K PiBjb25zaWRlcmVkIGEgZnVsbCByZXNvbHV0aW9uIHRvIHRoYXQgYnVnLiAgQnV0IHN0aWxsLCBp dCdzIHNvbWV0aGluZy4NCj4gDQo+IEJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9idWd6aWxs YS9zaG93X2J1Zy5jZ2k/aWQ9MTU1OTENCj4gDQo+IFJldmlld2VkLUJ5OiBFbGkgWmFyZXRza2lp IDxlbGl6QGdudS5vcmc+DQo+IC0tLQ0KPiAgZ2RiL05FV1MgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgNCArDQo+ICBnZGIvYW1kNjQtbGludXgtbmF0LmMgICAgICAgICAgICAg ICAgICAgIHwgIDI2ICstDQo+ICBnZGIvZG9jL2dkYi50ZXhpbmZvICAgICAgICAgICAgICAgICAg ICAgIHwgIDExICstDQo+ICBnZGIvZmVhdHVyZXMvaTM4Ni8zMmJpdC1saW51eC5jICAgICAgICAg IHwgICA3ICsNCj4gIGdkYi9mZWF0dXJlcy9pMzg2LzMyYml0LWxpbnV4LnhtbCAgICAgICAgfCAg IDUgKw0KPiAgZ2RiL2kzODYtbGludXgtbmF0LmMgICAgICAgICAgICAgICAgICAgICB8ICAyMSAr Kw0KPiAgZ2RiL2kzODYtbGludXgtdGRlcC5jICAgICAgICAgICAgICAgICAgICB8IDE3NCArKysr KysrKysrKy0NCj4gIGdkYi9pMzg2LWxpbnV4LXRkZXAuaCAgICAgICAgICAgICAgICAgICAgfCAg MTUgKw0KPiAgZ2RiL2kzODYtdGRlcC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSAr DQo+ICBnZGIvbmF0L2FtZDY0LWxpbnV4LmggICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrDQo+ ICBnZGIvbmF0L2kzODYtbGludXguaCAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsNCj4gIGdk Yi9uYXQveDg2LWxpbnV4LmMgICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKysrDQo+ICBnZGIv bmF0L3g4Ni1saW51eC5oICAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsNCj4gIGdkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvaTM4Ni10bHMtcmVncy5jICAgfCAgNzQgKysrKysNCj4gIGdkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvaTM4Ni10bHMtcmVncy5leHAgfCAzMzUgKysrKysrKysrKysrKysrKysr KysrKysNCj4gIGdkYi94ODYtbGludXgtbmF0LmMgICAgICAgICAgICAgICAgICAgICAgfCAgNjcg KysrKysNCj4gIGdkYi94ODYtbGludXgtbmF0LmggICAgICAgICAgICAgICAgICAgICAgfCAgMTUg Kw0KPiAgZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuY2MgICAgICAgICAgICAgICB8IDEwNSArKysr KysrDQo+ICAxOCBmaWxlcyBjaGFuZ2VkLCA5NTUgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMo LSkgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBnZGIvbmF0L2FtZDY0LWxpbnV4LmggIGNyZWF0ZSBt b2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtdGxzLQ0KPiByZWdzLmMNCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtdGxzLXJlZ3Mu ZXhwDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUw0KPiBpbmRleCAwOTdk OGRhMzUwYi4uOWMwZWJkOThiMTggMTAwNjQ0DQo+IC0tLSBhL2dkYi9ORVdTDQo+ICsrKyBiL2dk Yi9ORVdTDQo+IEBAIC0xNjIsNiArMTYyLDEwIEBAIHFFeGVjQW5kQXJncw0KPiAgICBJbiBzeXN0 ZW1zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBsaW5rZXIgbmFtZXNwYWNlcywgb3IgaWYgdGhlIGluZmVy aW9yIGhhc24ndA0KPiAgICBzdGFydGVkIHlldCwgdGhlc2UgYWx3YXlzIHJldHVybiB0aGUgaW50 ZWdlciAwLg0KPiANCj4gKyogVGhlICdvcmcuZ251LmdkYi5pMzg2LmxpbnV4JyB0YXJnZXQgZGVz Y3JpcHRpb24gZmVhdHVyZSBjYW4gbm93DQo+ICsgIGNvbnRhaW4gdGhyZWUgYWRkaXRpb25hbCBy ZWdpc3RlcnMgd2hpY2ggcHJvdmlkZSBhY2Nlc3MgdG8gdGhlIFRMUw0KPiArICByZWxhdGVkIEdE VCBlbnRyaWVzIG9uIGkzODYgKGFuZCB4ODYtNjQgd2hlbiBjb21waWxpbmcgd2l0aCAtbTMyKS4N Cj4gKw0KPiAgKiBBZGQgcmVjb3JkIGZ1bGwgc3VwcG9ydCBmb3IgcnY2NGdjIGFyY2hpdGVjdHVy ZXMNCj4gDQo+ICAqIERlYnVnZ2luZyBMaW51eCBwcm9ncmFtcyB0aGF0IHVzZSBBQXJjaDY0IEd1 YXJkZWQgQ29udHJvbCBTdGFja3MgaXMgbm93DQo+IGRpZmYgLS1naXQgYS9nZGIvYW1kNjQtbGlu dXgtbmF0LmMgYi9nZGIvYW1kNjQtbGludXgtbmF0LmMgaW5kZXgNCj4gOTZhY2ZkYTdkMDAuLjUz YTkyZjg5OTU3IDEwMDY0NA0KPiAtLS0gYS9nZGIvYW1kNjQtbGludXgtbmF0LmMNCj4gKysrIGIv Z2RiL2FtZDY0LWxpbnV4LW5hdC5jDQo+IEBAIC0zOCw2ICszOCw5IEBADQo+ICAjaW5jbHVkZSAi eDg2LWxpbnV4LW5hdC5oIg0KPiAgI2luY2x1ZGUgIm5hdC9saW51eC1wdHJhY2UuaCINCj4gICNp bmNsdWRlICJuYXQvYW1kNjQtbGludXgtc2lnaW5mby5oIg0KPiArI2luY2x1ZGUgIm5hdC9pMzg2 LWxpbnV4LmgiDQo+ICsNCj4gKyNpbmNsdWRlIDxhc20vbGR0Lmg+DQo+IA0KPiAgLyogVGhpcyBk ZWZpbml0aW9uIGNvbWVzIGZyb20gcHJjdGwuaC4gIEtlcm5lbHMgb2xkZXIgdGhhbiAyLjUuNjQN Cj4gICAgIGRvIG5vdCBoYXZlIGl0LiAgKi8NCj4gQEAgLTg5LDcgKzkyLDggQEAgc3RhdGljIGlu dCBhbWQ2NF9saW51eF9ncmVnc2V0MzJfcmVnX29mZnNldFtdID0NCj4gICAgLTEsCQkJCSAgLyog UEtFWVMgcmVnaXN0ZXIgUEtSVSAgKi8NCj4gICAgLTEsCQkJCSAgLyogU1NQIHJlZ2lzdGVyLiAg Ki8NCj4gICAgLTEsIC0xLAkJCSAgLyogZnMvZ3MgYmFzZSByZWdpc3RlcnMuICAqLw0KPiAtICBP UklHX1JBWCAqIDgJCQkgIC8qICJvcmlnX2VheCIgICovDQo+ICsgIE9SSUdfUkFYICogOCwJCQkg IC8qICJvcmlnX2VheCIgICovDQo+ICsgIC0xLCAtMSwgLTEsCQkJICAvKiBUTFMgR0RUIHJlZ3M6 IGkzODZfdGxzX2dkdF8wLi4uMi4gICovDQo+ICB9Ow0KPiANCj4gDQo+IA0KPiANCj4gQEAgLTIz Niw3ICsyNDAsMTMgQEAgYW1kNjRfbGludXhfbmF0X3RhcmdldDo6ZmV0Y2hfcmVnaXN0ZXJzIChz dHJ1Y3QNCj4gcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKQ0KPiANCj4gICAgaWYgKHJl Z251bSA9PSAtMSB8fCAhYW1kNjRfbmF0aXZlX2dyZWdzZXRfc3VwcGxpZXNfcCAoZ2RiYXJjaCwg cmVnbnVtKSkNCj4gICAgICB7DQo+IC0gICAgICBlbGZfZnByZWdzZXRfdCBmcHJlZ3M7DQo+ICsg ICAgICBpZiAocmVnbnVtID09IC0xIHx8IGkzODZfaXNfdGxzX3JlZ251bV9wIChyZWdudW0pKQ0K PiArCXsNCj4gKwkgIGlmICh0ZGVwLT5pMzg2X2xpbnV4X3RscykNCj4gKwkgICAgaTM4Nl9mZXRj aF90bHNfcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbnVtKTsNCj4gKwkgIGlmIChyZWdudW0gIT0g LTEpDQo+ICsJICAgIHJldHVybjsNCj4gKwl9DQo+IA0KPiAgICAgICAgaWYgKGhhdmVfcHRyYWNl X2dldHJlZ3NldCA9PSBUUklCT09MX1RSVUUpDQo+ICAJew0KPiBAQCAtMjY2LDYgKzI3Niw4IEBA IGFtZDY0X2xpbnV4X25hdF90YXJnZXQ6OmZldGNoX3JlZ2lzdGVycyAoc3RydWN0DQo+IHJlZ2Nh Y2hlICpyZWdjYWNoZSwgaW50IHJlZ251bSkNCj4gIAl9DQo+ICAgICAgICBlbHNlDQo+ICAJew0K PiArCSAgZWxmX2ZwcmVnc2V0X3QgZnByZWdzOw0KPiArDQo+ICAJICBpZiAocHRyYWNlIChQVFJB Q0VfR0VURlBSRUdTLCB0aWQsIDAsIChsb25nKSAmZnByZWdzKSA8IDApDQo+ICAJICAgIHBlcnJv cl93aXRoX25hbWUgKF8oIkNvdWxkbid0IGdldCBmbG9hdGluZyBwb2ludCBzdGF0dXMiKSk7DQo+ IA0KPiBAQCAtMzA4LDcgKzMyMCwxMyBAQCBhbWQ2NF9saW51eF9uYXRfdGFyZ2V0OjpzdG9yZV9y ZWdpc3RlcnMgKHN0cnVjdA0KPiByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0pDQo+IA0K PiAgICBpZiAocmVnbnVtID09IC0xIHx8ICFhbWQ2NF9uYXRpdmVfZ3JlZ3NldF9zdXBwbGllc19w IChnZGJhcmNoLCByZWdudW0pKQ0KPiAgICAgIHsNCj4gLSAgICAgIGVsZl9mcHJlZ3NldF90IGZw cmVnczsNCj4gKyAgICAgIGlmIChyZWdudW0gPT0gLTEgfHwgaTM4Nl9pc190bHNfcmVnbnVtX3Ag KHJlZ251bSkpDQo+ICsJew0KPiArCSAgaWYgKHRkZXAtPmkzODZfbGludXhfdGxzKQ0KPiArCSAg ICBpMzg2X3N0b3JlX3Rsc19yZWdzIChyZWdjYWNoZSwgdGlkLCByZWdudW0pOw0KPiArCSAgaWYg KHJlZ251bSAhPSAtMSkNCj4gKwkgICAgcmV0dXJuOw0KPiArCX0NCj4gDQo+ICAgICAgICBpZiAo aGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID09IFRSSUJPT0xfVFJVRSkNCj4gIAl7DQo+IEBAIC0zMzcs NiArMzU1LDggQEAgYW1kNjRfbGludXhfbmF0X3RhcmdldDo6c3RvcmVfcmVnaXN0ZXJzIChzdHJ1 Y3QNCj4gcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKQ0KPiAgCX0NCj4gICAgICAgIGVs c2UNCj4gIAl7DQo+ICsJICBlbGZfZnByZWdzZXRfdCBmcHJlZ3M7DQo+ICsNCj4gIAkgIGlmIChw dHJhY2UgKFBUUkFDRV9HRVRGUFJFR1MsIHRpZCwgMCwgKGxvbmcpICZmcHJlZ3MpIDwgMCkNCj4g IAkgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3QgZ2V0IGZsb2F0aW5nIHBvaW50IHN0 YXR1cyIpKTsNCj4gDQo+IGRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2Rv Yy9nZGIudGV4aW5mbyBpbmRleA0KPiA4MjFmM2VkNGIwNS4uYjhiNzBhZjkzMWEgMTAwNjQ0DQo+ IC0tLSBhL2dkYi9kb2MvZ2RiLnRleGluZm8NCj4gKysrIGIvZ2RiL2RvYy9nZGIudGV4aW5mbw0K PiBAQCAtNTAzMTEsOCArNTAzMTEsMTUgQEAgaTM4NiBGZWF0dXJlcw0KPiAgQHNhbXB7eW1tMGh9 IHRocm91Z2ggQHNhbXB7eW1tMTVofSBmb3IgYW1kNjQgIEBlbmQgaXRlbWl6ZQ0KPiANCj4gLVRo ZSBAc2FtcHtvcmcuZ251LmdkYi5pMzg2LmxpbnV4fSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSXQg c2hvdWxkIC1kZXNjcmliZSBhDQo+IHNpbmdsZSByZWdpc3RlciwgQHNhbXB7b3JpZ19lYXh9Lg0K PiArVGhlIEBzYW1we29yZy5nbnUuZ2RiLmkzODYubGludXh9IGZlYXR1cmUgaXMgb3B0aW9uYWwu ICBJZiB0aGUgZmVhdHVyZQ0KPiAraXMgcHJlc2VudCwgdGhlbiBpdCBzaG91bGQgZGVzY3JpYmUg dGhlIDMyIGJpdCByZWdpc3RlciwgQHNhbXB7b3JpZ19lYXh9Lg0KPiArDQo+ICtBZGRpdGlvbmFs bHksIHRoZSBAc2FtcHtvcmcuZ251LmdkYi5pMzg2LmxpbnV4fSBmZWF0dXJlIGNhbiBvcHRpb25h bGx5DQo+ICtjb250YWluIHRocmVlIDEyOCBiaXQgcmVnaXN0ZXJzIGNhbGxlZCBAc2FtcHtpMzg2 X3Rsc19nZHRfMH0sDQo+ICtAc2FtcHtpMzg2X3Rsc19nZHRfMX0sIGFuZCBAc2FtcHtpMzg2X3Rs c19nZHRfMn0uICBFYWNoIG9mIHRoZXNlDQo+ICtyZWdpc3RlcnMgY29udGFpbnMgb25lIDE2IGJ5 dGUgQHNhbXB7c3RydWN0IHVzZXJfZGVzY30gKHNlZSBAa2Jke21hbg0KPiArMiBnZXRfdGhyZWFk X2FyZWF9KSBvYmplY3Qgd2hpY2ggZGVzY3JpYmVzIG9uZSBvZiB0aGUgdGhyZWUgVExTIHJlbGF0 ZWQNCj4gK0dEVCBlbnRyaWVzLg0KPiANCj4gIFRoZSBAc2FtcHtvcmcuZ251LmdkYi5pMzg2LnNl Z21lbnRzfSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSXQgc2hvdWxkDQo+IGRlc2NyaWJlIHR3byBz eXN0ZW0gcmVnaXN0ZXJzOiBAc2FtcHtmc19iYXNlfSBhbmQgQHNhbXB7Z3NfYmFzZX0uDQo+IGRp ZmYgLS1naXQgYS9nZGIvZmVhdHVyZXMvaTM4Ni8zMmJpdC1saW51eC5jIGIvZ2RiL2ZlYXR1cmVz L2kzODYvMzJiaXQtbGludXguYw0KPiBpbmRleCAzMjg5ZjA3ZDMzMi4uNmZiYThhNjg4MGIgMTAw NjQ0DQo+IC0tLSBhL2dkYi9mZWF0dXJlcy9pMzg2LzMyYml0LWxpbnV4LmMNCj4gKysrIGIvZ2Ri L2ZlYXR1cmVzL2kzODYvMzJiaXQtbGludXguYw0KPiBAQCAtOSw3ICs5LDE0IEBAIGNyZWF0ZV9m ZWF0dXJlX2kzODZfMzJiaXRfbGludXggKHN0cnVjdCB0YXJnZXRfZGVzYw0KPiAqcmVzdWx0LCBs b25nIHJlZ251bSkNCj4gICAgc3RydWN0IHRkZXNjX2ZlYXR1cmUgKmZlYXR1cmU7DQo+IA0KPiAg ICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkz ODYubGludXgiKTsNCj4gKyAgdGRlc2NfdHlwZSAqZWxlbWVudF90eXBlOw0KPiArICBlbGVtZW50 X3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidWludDMyIik7DQo+ICsgdGRlc2Nf Y3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgImkzODZfdGxzX2dkdF9yZWciLCBlbGVtZW50X3R5cGUs IDQpOw0KPiArDQo+ICAgIHJlZ251bSA9IDQxOw0KPiAgICB0ZGVzY19jcmVhdGVfcmVnIChmZWF0 dXJlLCAib3JpZ19lYXgiLCByZWdudW0rKywgMSwgTlVMTCwgMzIsICJpbnQiKTsNCj4gKyAgdGRl c2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImkzODZfdGxzX2dkdF8wIiwgcmVnbnVtKyssIDEsICJz eXN0ZW0iLA0KPiArIDEyOCwgImkzODZfdGxzX2dkdF9yZWciKTsgIHRkZXNjX2NyZWF0ZV9yZWcg KGZlYXR1cmUsDQo+ICsgImkzODZfdGxzX2dkdF8xIiwgcmVnbnVtKyssIDEsICJzeXN0ZW0iLCAx MjgsICJpMzg2X3Rsc19nZHRfcmVnIik7DQo+ICsgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwg ImkzODZfdGxzX2dkdF8yIiwgcmVnbnVtKyssIDEsICJzeXN0ZW0iLA0KPiArIDEyOCwgImkzODZf dGxzX2dkdF9yZWciKTsNCj4gICAgcmV0dXJuIHJlZ251bTsNCj4gIH0NCj4gZGlmZiAtLWdpdCBh L2dkYi9mZWF0dXJlcy9pMzg2LzMyYml0LWxpbnV4LnhtbCBiL2dkYi9mZWF0dXJlcy9pMzg2LzMy Yml0LQ0KPiBsaW51eC54bWwNCj4gaW5kZXggMGJmYzBiYzU1NjMuLjdkZTMxOThiN2RhIDEwMDY0 NA0KPiAtLS0gYS9nZGIvZmVhdHVyZXMvaTM4Ni8zMmJpdC1saW51eC54bWwNCj4gKysrIGIvZ2Ri L2ZlYXR1cmVzL2kzODYvMzJiaXQtbGludXgueG1sDQo+IEBAIC04LDQgKzgsOSBAQA0KPiAgPCFE T0NUWVBFIGZlYXR1cmUgU1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+ICA8ZmVhdHVyZQ0KPiBuYW1l PSJvcmcuZ251LmdkYi5pMzg2LmxpbnV4Ij4NCj4gICAgPHJlZyBuYW1lPSJvcmlnX2VheCIgYml0 c2l6ZT0iMzIiIHR5cGU9ImludCIgcmVnbnVtPSI0MSIvPg0KPiArDQo+ICsgIDx2ZWN0b3IgaWQ9 ImkzODZfdGxzX2dkdF9yZWciIHR5cGU9InVpbnQzMiIgY291bnQ9IjQiIC8+ICA8cmVnDQo+ICsg bmFtZT0iaTM4Nl90bHNfZ2R0XzAiIGJpdHNpemU9IjEyOCIgdHlwZT0iaTM4Nl90bHNfZ2R0X3Jl ZyINCj4gKyBncm91cD0ic3lzdGVtIiAvPiAgPHJlZyBuYW1lPSJpMzg2X3Rsc19nZHRfMSIgYml0 c2l6ZT0iMTI4Ig0KPiArIHR5cGU9ImkzODZfdGxzX2dkdF9yZWciIGdyb3VwPSJzeXN0ZW0iIC8+ ICA8cmVnIG5hbWU9ImkzODZfdGxzX2dkdF8yIg0KPiArIGJpdHNpemU9IjEyOCIgdHlwZT0iaTM4 Nl90bHNfZ2R0X3JlZyIgZ3JvdXA9InN5c3RlbSIgLz4NCj4gIDwvZmVhdHVyZT4NCj4gZGlmZiAt LWdpdCBhL2dkYi9pMzg2LWxpbnV4LW5hdC5jIGIvZ2RiL2kzODYtbGludXgtbmF0LmMgaW5kZXgN Cj4gNGFmMDZjNDQ4YTguLmY4NjAwNWUzMGU4IDEwMDY0NA0KPiAtLS0gYS9nZGIvaTM4Ni1saW51 eC1uYXQuYw0KPiArKysgYi9nZGIvaTM4Ni1saW51eC1uYXQuYw0KPiBAQCAtNDQ3LDYgKzQ0Nyw4 IEBAIHN0b3JlX2ZweHJlZ3MgKGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsIGludA0K PiB0aWQsIGludCByZWdubykgIHZvaWQgIGkzODZfbGludXhfbmF0X3RhcmdldDo6ZmV0Y2hfcmVn aXN0ZXJzIChzdHJ1Y3QgcmVnY2FjaGUNCj4gKnJlZ2NhY2hlLCBpbnQgcmVnbm8pICB7DQo+ICsg IGdkYmFyY2ggKmdkYmFyY2ggPSByZWdjYWNoZS0+YXJjaCAoKTsgIGNvbnN0IGkzODZfZ2RiYXJj aF90ZGVwICp0ZGVwDQo+ICsgPSBnZGJhcmNoX3RkZXA8aTM4Nl9nZGJhcmNoX3RkZXA+IChnZGJh cmNoKTsNCj4gICAgcGlkX3QgdGlkOw0KPiANCj4gICAgLyogVXNlIHRoZSBvbGQgbWV0aG9kIG9m IHBlZWtpbmcgYXJvdW5kIGluIGBzdHJ1Y3QgdXNlcicgaWYgdGhlIEBAIC00NzAsNg0KPiArNDcy LDkgQEAgaTM4Nl9saW51eF9uYXRfdGFyZ2V0OjpmZXRjaF9yZWdpc3RlcnMgKHN0cnVjdCByZWdj YWNoZSAqcmVnY2FjaGUsDQo+IGludCByZWdubykNCj4gICAgICAgemVyby4gICovDQo+ICAgIGlm IChyZWdubyA9PSAtMSkNCj4gICAgICB7DQo+ICsgICAgICBpZiAodGRlcC0+aTM4Nl9saW51eF90 bHMpDQo+ICsJaTM4Nl9mZXRjaF90bHNfcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pOw0KPiAr DQo+ICAgICAgICBmZXRjaF9yZWdzIChyZWdjYWNoZSwgdGlkKTsNCj4gDQo+ICAgICAgICAvKiBU aGUgY2FsbCBhYm92ZSBtaWdodCByZXNldCBgaGF2ZV9wdHJhY2VfZ2V0cmVncycuICAqLyBAQCAt NTE0LDYNCj4gKzUxOSwxMiBAQCBpMzg2X2xpbnV4X25hdF90YXJnZXQ6OmZldGNoX3JlZ2lzdGVy cyAoc3RydWN0IHJlZ2NhY2hlDQo+ICpyZWdjYWNoZSwgaW50IHJlZ25vKQ0KPiAgICAgICAgcmV0 dXJuOw0KPiAgICAgIH0NCj4gDQo+ICsgIGlmICh0ZGVwLT5pMzg2X2xpbnV4X3RscyAmJiBpMzg2 X2lzX3Rsc19yZWdudW1fcCAocmVnbm8pKQ0KPiArICAgIHsNCj4gKyAgICAgIGkzODZfZmV0Y2hf dGxzX3JlZ3MgKHJlZ2NhY2hlLCB0aWQsIHJlZ25vKTsNCj4gKyAgICAgIHJldHVybjsNCj4gKyAg ICB9DQo+ICsNCj4gICAgaW50ZXJuYWxfZXJyb3IgKF8oIkdvdCByZXF1ZXN0IGZvciBiYWQgcmVn aXN0ZXIgbnVtYmVyICVkLiIpLCByZWdubyk7ICB9DQo+IA0KPiBAQCAtNTIzLDYgKzUzNCw4IEBA IGkzODZfbGludXhfbmF0X3RhcmdldDo6ZmV0Y2hfcmVnaXN0ZXJzIChzdHJ1Y3QNCj4gcmVnY2Fj aGUgKnJlZ2NhY2hlLCBpbnQgcmVnbm8pICB2b2lkICBpMzg2X2xpbnV4X25hdF90YXJnZXQ6OnN0 b3JlX3JlZ2lzdGVycw0KPiAoc3RydWN0IHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25vKSAg ew0KPiArICBnZGJhcmNoICpnZGJhcmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7ICBjb25zdCBpMzg2 X2dkYmFyY2hfdGRlcCAqdGRlcA0KPiArID0gZ2RiYXJjaF90ZGVwPGkzODZfZ2RiYXJjaF90ZGVw PiAoZ2RiYXJjaCk7DQo+ICAgIHBpZF90IHRpZDsNCj4gDQo+ICAgIC8qIFVzZSB0aGUgb2xkIG1l dGhvZCBvZiBwb2tpbmcgYXJvdW5kIGluIGBzdHJ1Y3QgdXNlcicgaWYgdGhlIEBAIC01NDUsNg0K PiArNTU4LDggQEAgaTM4Nl9saW51eF9uYXRfdGFyZ2V0OjpzdG9yZV9yZWdpc3RlcnMgKHN0cnVj dCByZWdjYWNoZSAqcmVnY2FjaGUsDQo+IGludCByZWdubykNCj4gICAgICAgc3RvcmVfZnB4cmVn cyBjYW4gZmFpbCwgYW5kIHJldHVybiB6ZXJvLiAgKi8NCj4gICAgaWYgKHJlZ25vID09IC0xKQ0K PiAgICAgIHsNCj4gKyAgICAgIGlmICh0ZGVwLT5pMzg2X2xpbnV4X3RscykNCj4gKwlpMzg2X3N0 b3JlX3Rsc19yZWdzIChyZWdjYWNoZSwgdGlkLCByZWdubyk7DQo+ICAgICAgICBzdG9yZV9yZWdz IChyZWdjYWNoZSwgdGlkLCByZWdubyk7DQo+ICAgICAgICBpZiAoc3RvcmVfeHN0YXRlcmVncyAo cmVnY2FjaGUsIHRpZCwgcmVnbm8pKQ0KPiAgCXJldHVybjsNCj4gQEAgLTU3OCw2ICs1OTMsMTIg QEAgaTM4Nl9saW51eF9uYXRfdGFyZ2V0OjpzdG9yZV9yZWdpc3RlcnMgKHN0cnVjdA0KPiByZWdj YWNoZSAqcmVnY2FjaGUsIGludCByZWdubykNCj4gICAgICAgIHJldHVybjsNCj4gICAgICB9DQo+ IA0KPiArICBpZiAodGRlcC0+aTM4Nl9saW51eF90bHMgJiYgaTM4Nl9pc190bHNfcmVnbnVtX3Ag KHJlZ25vKSkNCj4gKyAgICB7DQo+ICsgICAgICBpMzg2X3N0b3JlX3Rsc19yZWdzIChyZWdjYWNo ZSwgdGlkLCByZWdubyk7DQo+ICsgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICAgIGlu dGVybmFsX2Vycm9yIChfKCJHb3QgcmVxdWVzdCB0byBzdG9yZSBiYWQgcmVnaXN0ZXIgbnVtYmVy ICVkLiIpLCByZWdubyk7ICB9DQo+IA0KPiANCj4gDQo+IGRpZmYgLS1naXQgYS9nZGIvaTM4Ni1s aW51eC10ZGVwLmMgYi9nZGIvaTM4Ni1saW51eC10ZGVwLmMgaW5kZXgNCj4gMjBhZGYxNjljODEu LjFkNmFiZTJmNTQ2IDEwMDY0NA0KPiAtLS0gYS9nZGIvaTM4Ni1saW51eC10ZGVwLmMNCj4gKysr IGIvZ2RiL2kzODYtbGludXgtdGRlcC5jDQo+IEBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbnQN Cj4gIGkzODZfbGludXhfcmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFy Y2gsIGludCByZWdudW0sDQo+ICAJCQkJY29uc3Qgc3RydWN0IHJlZ2dyb3VwICpncm91cCkNCj4g IHsNCj4gLSAgaWYgKHJlZ251bSA9PSBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSkNCj4gKyAg aWYgKHJlZ251bSA9PSBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSB8fCBpMzg2X2lzX3Rsc19y ZWdudW1fcA0KPiArIChyZWdudW0pKQ0KPiAgICAgIHJldHVybiAoZ3JvdXAgPT0gc3lzdGVtX3Jl Z2dyb3VwDQo+ICAJICAgIHx8IGdyb3VwID09IHNhdmVfcmVnZ3JvdXANCj4gIAkgICAgfHwgZ3Jv dXAgPT0gcmVzdG9yZV9yZWdncm91cCk7DQo+IEBAIC0xMDQ3LDYgKzEwNDcsNyBAQCBpbnQgaTM4 Nl9saW51eF9ncmVnc2V0X3JlZ19vZmZzZXRbXSA9DQo+ICAgIC0xLAkJCQkgIC8qIFNTUCByZWdp c3Rlci4gICovDQo+ICAgIC0xLCAtMSwJCQkgIC8qIGZzL2dzIGJhc2UgcmVnaXN0ZXJzLiAgKi8N Cj4gICAgMTEgKiA0LAkJCSAgLyogIm9yaWdfZWF4IiAgKi8NCj4gKyAgLTEsIC0xLCAtMSwJCQkg IC8qIFRMUyBHRFQgcmVnczogaTM4Nl90bHNfZ2R0XzAuLi4yLiAgKi8NCj4gIH07DQo+IA0KPiAg LyogTWFwcGluZyBiZXR3ZWVuIHRoZSBnZW5lcmFsLXB1cnBvc2UgcmVnaXN0ZXJzIGluIGBzdHJ1 Y3QgQEAgLTExNjMsMTUNCj4gKzExNjQsMTUwIEBAIGkzODZfbGludXhfY29sbGVjdF94c3RhdGVy ZWdzZXQgKGNvbnN0IHN0cnVjdCByZWdzZXQgKnJlZ3NldCwNCj4gICAgaTM4N19jb2xsZWN0X3hz YXZlIChyZWdjYWNoZSwgcmVnbnVtLCB4c3RhdGVyZWdzLCAxKTsgIH0NCj4gDQo+ICsvKiBXaXRo aW4gYSB0ZGVwIGZpbGUgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gc3lzdGVtIGhlYWRlcnMuICBU aGlzDQo+ICsgICBzdHJ1Y3R1cmUgaXMgYSBjbG9uZSBvZiAnc3RydWN0IHVzZXJfZGVzYycgZnJv bSAnYXNtL2xkdC5oJyBvbiB4ODYNCj4gKyAgIEdOVS9MaW51eCBzeXN0ZW1zLiAgU2VlICdzZWUg bWFuIDIgZ2V0X3RocmVhZF9hcmVhJyBvbiBhIHN1aXRhYmxlIHg4Ng0KPiArICAgbWFjaGluZSBm b3IgbW9yZSBkZXRhaWxzLiAgKi8NCj4gKw0KPiArc3RydWN0IHg4Nl91c2VyX2Rlc2MNCj4gK3sN Cj4gKyAgdWludDMyX3QgIGVudHJ5X251bWJlcjsNCj4gKyAgdWludDMyX3QgIGJhc2VfYWRkcjsN Cj4gKyAgdWludDMyX3QgIGxpbWl0Ow0KPiArDQo+ICsgIC8qIEluIHRoZSBhY3R1YWwgc3RydWN0 LCB0aGVzZSBmbGFncyBhcmUgYSBzZXJpZXMgb2YgMS1iaXQgc2VwYXJhdGUNCj4gKyAgICAgZmxh Z3MuICBCdXQgd2UgZG9uJ3QgbmVlZCB0aGF0IGxldmVsIG9mIGluc2lnaHQgZm9yIHRoZQ0KPiAr ICAgICBwcm9jZXNzaW5nIHdlIGRvIGluIEdEQiwgc28ganVzdCBtYWtlIGl0IGEgc2luZ2xlIGZp ZWxkLiAgKi8NCj4gKyAgdWludDMyX3QgZmxhZ3M7DQo+ICt9Ow0KPiArDQo+ICsvKiBTdXBwbHkg dGhlIDMgdGxzIHJlbGF0ZWQgcmVnaXN0ZXJzIGZyb20gQlVGRkVSIChsZW5ndGggTEVOKSBpbnRv DQo+ICsgICBSRUdDQUNIRS4gIFRoZSBSRUdTRVQgYW5kIFJFR05VTSBhcmUgaWdub3JlZCwgYWxs IHRocmVlIHJlZ2lzdGVycyBhcmUNCj4gKyAgIGFsd2F5cyBzdXBwbGllZCBmcm9tIEJVRkZFUi4g ICovDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtpMzg2X2xpbnV4X3N1cHBseV90bHNfcmVnc2V0 IChjb25zdCByZWdzZXQgKnJlZ3NldCwNCj4gKwkJCSAgICAgIHJlZ2NhY2hlICpyZWdjYWNoZSwg aW50IHJlZ251bSwNCj4gKwkJCSAgICAgIGNvbnN0IHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGxlbikg ew0KPiArICBnZGJhcmNoICpnZGJhcmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7DQo+ICsgIGkzODZf Z2RiYXJjaF90ZGVwICp0ZGVwID0gZ2RiYXJjaF90ZGVwPGkzODZfZ2RiYXJjaF90ZGVwPiAoZ2Ri YXJjaCk7DQo+ICsNCj4gKyAgaWYgKCF0ZGVwLT5pMzg2X2xpbnV4X3RscykNCj4gKyAgICByZXR1 cm47DQo+ICsNCj4gKyAgZ2RiX2Fzc2VydCAobGVuID09IHNpemVvZiAoeDg2X3VzZXJfZGVzYykg KiAzKTsNCj4gKw0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkNCj4gKyAgICB7DQo+ ICsgICAgICBpbnQgdGxzX3JlZ25vID0gSTM4Nl9MSU5VWF9UTFNfR0RUXzAgKyBpOw0KPiArDQo+ ICsgICAgICBnZGJfYXNzZXJ0IChyZWdjYWNoZS0+cmVnaXN0ZXJfc2l6ZSAodGxzX3JlZ25vKQ0K PiArCQkgID09IHNpemVvZiAoeDg2X3VzZXJfZGVzYykpOw0KDQpZb3UncmUgY2FsbGluZyBzaXpl b2YgNCB0aW1lcyBoZXJlIGZvciB4ODZfdXNlcl9kZXNjLiBXb3VsZCBpdCBtYWtlIHNlbnNlIHRv IHN0b3JlIGl0IGluIGEgdmFyaWFibGU/DQoNCj4gKw0KPiArICAgICAgcmVnY2FjaGUtPnJhd19z dXBwbHkgKHRsc19yZWdubywgYnVmZmVyKTsNCj4gKyAgICAgIGJ1ZmZlciA9IHN0YXRpY19jYXN0 PGNvbnN0IHg4Nl91c2VyX2Rlc2MgKj4gKGJ1ZmZlcikgKyAxOw0KPiArICAgIH0NCj4gK30NCj4g Kw0KPiArLyogQ29sbGVjdCB0aGUgMyB0bHMgcmVsYXRlZCByZWdpc3RlcnMgZnJvbSBSRUdDQUNI RSwgcGxhY2luZyB0aGUgcmVzdWx0cw0KPiArICAgaW4gdG8gQlVGRkVSIChsZW5ndGggTEVOKS4g IFRoZSBSRUdTRVQgYW5kIFJFR05VTSBhcmUgaWdub3JlZCwgYWxsIHRocmVlDQo+ICsgICByZWdp c3RlcnMgYXJlIGFsd2F5cyBjb2xsZWN0ZWQgZnJvbSBSRUdDQUNIRS4gICovDQo+ICsNCj4gK3N0 YXRpYyB2b2lkDQo+ICtpMzg2X2xpbnV4X2NvbGxlY3RfdGxzX3JlZ3NldCAoY29uc3QgcmVnc2V0 ICpyZWdzZXQsDQo+ICsJCQkgICAgICAgY29uc3QgcmVnY2FjaGUgKnJlZ2NhY2hlLA0KPiArCQkJ ICAgICAgIGludCByZWdudW0sIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGxlbikgew0KPiArICBnZGJh cmNoICpnZGJhcmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7DQo+ICsgIGkzODZfZ2RiYXJjaF90ZGVw ICp0ZGVwID0gZ2RiYXJjaF90ZGVwPGkzODZfZ2RiYXJjaF90ZGVwPiAoZ2RiYXJjaCk7DQo+ICsN Cj4gKyAgaWYgKCF0ZGVwLT5pMzg2X2xpbnV4X3RscykNCj4gKyAgICByZXR1cm47DQo+ICsNCj4g KyAgZ2RiX2Fzc2VydCAobGVuID09IHNpemVvZiAoeDg2X3VzZXJfZGVzYykgKiAzKTsNCj4gKw0K PiArICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICB4ODZf dXNlcl9kZXNjIGRlc2M7DQo+ICsgICAgICBpbnQgdGxzX3JlZ25vID0gSTM4Nl9MSU5VWF9UTFNf R0RUXzAgKyBpOw0KPiArDQo+ICsgICAgICBnZGJfYXNzZXJ0IChyZWdjYWNoZS0+cmVnaXN0ZXJf c2l6ZSAodGxzX3JlZ25vKSA9PSBzaXplb2YNCj4gKyAoZGVzYykpOw0KPiArDQo+ICsgICAgICBy ZWdjYWNoZS0+cmF3X2NvbGxlY3QgKHRsc19yZWdubywgJmRlc2MpOw0KPiArICAgICAgbWVtY3B5 IChidWZmZXIsICZkZXNjLCBzaXplb2YgKGRlc2MpKTsNCj4gKyAgICAgIGJ1ZmZlciA9IHN0YXRp Y19jYXN0PHg4Nl91c2VyX2Rlc2MgKj4gKGJ1ZmZlcikgKyAxOw0KPiArICAgIH0NCj4gK30NCj4g Kw0KPiAgLyogUmVnaXN0ZXIgc2V0IGRlZmluaXRpb25zLiAgKi8NCj4gDQo+IC1zdGF0aWMgY29u c3Qgc3RydWN0IHJlZ3NldCBpMzg2X2xpbnV4X3hzdGF0ZXJlZ3NldCA9DQo+ICtzdGF0aWMgY29u c3QgcmVnc2V0IGkzODZfbGludXhfeHN0YXRlcmVnc2V0ID0NCj4gICAgew0KPiAgICAgIE5VTEws DQo+ICAgICAgaTM4Nl9saW51eF9zdXBwbHlfeHN0YXRlcmVnc2V0LA0KPiAgICAgIGkzODZfbGlu dXhfY29sbGVjdF94c3RhdGVyZWdzZXQNCj4gICAgfTsNCj4gDQo+ICtzdGF0aWMgY29uc3QgcmVn c2V0IGkzODZfbGludXhfdGxzX3JlZ3NldCA9DQo+ICsgIHsNCj4gKyAgICBOVUxMLA0KPiArICAg IGkzODZfbGludXhfc3VwcGx5X3Rsc19yZWdzZXQsDQo+ICsgICAgaTM4Nl9saW51eF9jb2xsZWN0 X3Rsc19yZWdzZXQNCj4gKyAgfTsNCj4gKw0KPiArLyogSGVscGVyIGZvciBpMzg2X2xpbnV4X2l0 ZXJhdGVfb3Zlcl9yZWdzZXRfc2VjdGlvbnMuICBTaG91bGQgd2UNCj4gKyAgIHZpc2l0IHRoZSBO VF8zODZfVExTIG5vdGU/ICBJZiBSRUdDQUNIRSBpcyBOVUxMIHRoZW4gd2UgYXJlIHJlYWRpbmcN Cj4gKyAgIHRoZSBub3RlcyBmcm9tIHRoZSBjb3JlZmlsZSwgc28gd2UgYWx3YXlzIHZpc2l0IHRo ZSBub3RlLiAgSWYNCj4gKyAgIFJFR0NBQ0hFIGlzIG5vdCBOVUxMLCBpbiB0aGlzIGNhc2Ugd2Ug YXJlIGNyZWF0aW5nIGEgY29yZWZpbGUuICBJbg0KPiArICAgdGhpcyBjYXNlLCB3ZSBvbmx5IHZp c2l0IHRoZSBub3RlIGlmIGFsbCB0aGUgVExTIHJlZ2lzdGVycyBhcmUNCj4gKyAgIHZhbGlkLCBh bmQgdGhlaXIgYmFzZSBhZGRyZXNzIGFuZCBsaW1pdCBhcmUgbm90IHplcm8sIHRoaXMgbWlycm9y cw0KPiArICAgdGhlIGtlcm5lbCBiZWhhdmlvdXIgd2hlcmUgdGhlIFRMUyBub3RlIGlzIGVsaWRl ZCB3aGVuIHRoZSBUTFMgR0RUDQo+ICsgICBlbnRyaWVzIGhhdmUgbm90IGJlZW4gc2V0Lg0KPiAr DQo+ICsgICBPbmx5IGNhbGwgZm9yIGFyY2hpdGVjdHVyZXMgd2hlcmUgaTM4Nl9nZGJhcmNoX3Rk ZXA6OmkzODZfbGludXhfdGxzDQo+ICsgICBpcyB0cnVlLiAgKi8NCj4gKw0KPiArc3RhdGljIGJv b2wNCj4gK3Nob3VsZF92aXNpdF9pMzg2X3Rsc19ub3RlIChjb25zdCByZWdjYWNoZSAqcmVnY2Fj aGUpIHsNCj4gKyAgaWYgKHJlZ2NhY2hlID09IG51bGxwdHIpDQo+ICsgICAgcmV0dXJuIHRydWU7 DQo+ICsNCj4gKyAgLyogQ2hlY2sgdGhlIHByZS1jb25kaXRpb24uICAqLw0KPiArICBnZGJhcmNo ICpnZGJhcmNoID0gcmVnY2FjaGUtPmFyY2ggKCk7ICBpMzg2X2dkYmFyY2hfdGRlcCAqdGRlcCA9 DQo+ICsgZ2RiYXJjaF90ZGVwPGkzODZfZ2RiYXJjaF90ZGVwPiAoZ2RiYXJjaCk7ICBnZGJfYXNz ZXJ0DQo+ICsgKHRkZXAtPmkzODZfbGludXhfdGxzKTsNCj4gKw0KPiArICBmb3IgKGludCBpID0g MDsgaSA8IDM7ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICBpbnQgdGxzX3JlZ25vID0gSTM4Nl9M SU5VWF9UTFNfR0RUXzAgKyBpOw0KPiArDQo+ICsgICAgICAvKiBJZiB3ZSBmYWlsZWQgdG8gcmVh ZCBhbnkgb2YgdGhlIHJlZ2lzdGVycyB0aGVuIHdlJ2xsIG5vdCBiZQ0KPiArCSBhYmxlIHRvIGVt aXQgdmFsaWQgbm90ZS4gICovDQo+ICsgICAgICBpZiAocmVnY2FjaGUtPmdldF9yZWdpc3Rlcl9z dGF0dXMgKHRsc19yZWdubykgIT0gUkVHX1ZBTElEKQ0KPiArCXJldHVybiBmYWxzZTsNCj4gKw0K PiArICAgICAgLyogQXMgaTM4Nl9nZGJhcmNoX3RkZXA6OmkzODZfbGludXhfdGxzIGlzIHRydWUs IHRoZSByZWdpc3RlcnMNCj4gKwkgbXVzdCBiZSB0aGUgcmlnaHQgc2l6ZS4gIFRoZSBmbGFnIGlz IG9ubHkgc2V0IHRydWUgd2hlbiB0aGlzDQo+ICsJIGNvbmRpdGlvbiBob2xkcy4gICovDQo+ICsg ICAgICBnZGJfYXNzZXJ0IChyZWdjYWNoZS0+cmVnaXN0ZXJfc2l6ZSAodGxzX3JlZ25vKQ0KPiAr CQkgID09IHNpemVvZiAoeDg2X3VzZXJfZGVzYykpOw0KPiArDQo+ICsgICAgICAvKiBSZWFkIHRo ZSBUTFMgR0RUIGVudHJ5LiAgSWYgaXQgaXMgaW4gdXNlIHRoZW4gd2Ugd2FudCB0bw0KPiArCSB3 cml0ZSB0aGUgTlRfMzg2X1RMUyBub3RlLiAgKi8NCj4gKyAgICAgIHg4Nl91c2VyX2Rlc2MgdWQ7 DQo+ICsgICAgICByZWdjYWNoZS0+cmF3X2NvbGxlY3QgKHRsc19yZWdubywgJnVkKTsNCj4gKyAg ICAgIGlmICh1ZC5iYXNlX2FkZHIgIT0gMCAmJiB1ZC5saW1pdCAhPSAwKQ0KPiArCXJldHVybiB0 cnVlOw0KPiArICAgIH0NCj4gKw0KPiArICAvKiBNYWRlIGl0IHRocm91Z2ggdGhlIGxvb3Agd2l0 aG91dCBmaW5kaW5nIGFueSBpbi11c2UgVExTIHJlbGF0ZWQNCj4gKyAgICAgR0RUIGVudHJpZXMu ICBObyBwb2ludCBjcmVhdGluZyB0aGUgTlRfMzg2X1RMUyBub3RlLCB0aGUga2VybmVsDQo+ICsg ICAgIGRvZXNuJ3QuICAqLw0KPiArICByZXR1cm4gZmFsc2U7DQo+ICt9DQo+ICsNCj4gIC8qIEl0 ZXJhdGUgb3ZlciBjb3JlIGZpbGUgcmVnaXN0ZXIgbm90ZSBzZWN0aW9ucy4gICovDQo+IA0KPiAg c3RhdGljIHZvaWQNCj4gQEAgLTExOTMsNiArMTMyOSw5IEBAIGkzODZfbGludXhfaXRlcmF0ZV9v dmVyX3JlZ3NldF9zZWN0aW9ucyAoc3RydWN0DQo+IGdkYmFyY2ggKmdkYmFyY2gsDQo+ICAJY2Jf ZGF0YSk7DQo+ICAgIGVsc2UNCj4gICAgICBjYiAoIi5yZWcyIiwgMTA4LCAxMDgsICZpMzg2X2Zw cmVnc2V0LCBOVUxMLCBjYl9kYXRhKTsNCj4gKw0KPiArICBpZiAodGRlcC0+aTM4Nl9saW51eF90 bHMgJiYgc2hvdWxkX3Zpc2l0X2kzODZfdGxzX25vdGUgKHJlZ2NhY2hlKSkNCj4gKyAgICBjYiAo Ii5yZWctaTM4Ni10bHMiLCA0OCwgNDgsICZpMzg2X2xpbnV4X3Rsc19yZWdzZXQsIG51bGxwdHIs DQo+ICsgY2JfZGF0YSk7DQo+ICB9DQo+IA0KPiAgLyogTGludXgga2VybmVsIHNob3dzIFBDIHZh bHVlIGFmdGVyIHRoZSAnaW50ICQweDgwJyBpbnN0cnVjdGlvbiBldmVuIGlmIEBAIC0NCj4gMTI3 Miw2ICsxNDExLDM3IEBAIGkzODZfbGludXhfaW5pdF9hYmkgKHN0cnVjdCBnZGJhcmNoX2luZm8g aW5mbywgc3RydWN0DQo+IGdkYmFyY2ggKmdkYmFyY2gpDQo+ICAgIGlmICghdmFsaWRfcCkNCj4g ICAgICByZXR1cm47DQo+IA0KPiArICAvKiBIZWxwZXIgZnVuY3Rpb24uICBMb29rIGZvciBUTFNf UkVHX05BTUUgaW4gSTM4Nl9GRUFUVVJFICh3aXRoIHRoZQ0KPiArICAgICBhc3NvY2lhdGVkIExP Q0FMX1RERVNDX0RBVEEpLCBhbmQgaWYgdGhlIHJlZ2lzdGVyIGlzIGZvdW5kIGFzc2lnbiBpdA0K PiArICAgICBUTFNfUkVHTk8uICBSZXR1cm4gdHJ1ZSBpZiB0aGUgcmVnaXN0ZXIgaXMgZm91bmQs IGFuZCBpdCBpcyB0aGUgc2l6ZQ0KPiArICAgICBvZiAnc3RydWN0IHVzZXJfZGVzYycgKHNlZSBt YW4gMiBnZXRfdGhyZWFkX2FyZWEpLCBvdGhlcndpc2UsIHJldHVybg0KPiArICAgICBmYWxzZS4g ICovDQo+ICsgIHN0YXRpYyBjb25zdCBhdXRvIHZhbGlkX3Rsc19yZWcNCj4gKyAgICA9IFtdIChj b25zdCB0ZGVzY19mZWF0dXJlICppMzg2X2ZlYXR1cmUsDQo+ICsJICB0ZGVzY19hcmNoX2RhdGEg KmxvY2FsX3RkZXNjX2RhdGEsDQo+ICsJICBjb25zdCBjaGFyICp0bHNfcmVnX25hbWUsIGludCB0 bHNfcmVnbm8pIC0+IGJvb2wNCj4gKyAgew0KPiArICAgIHN0YXRpYyBjb25zdGV4cHIgaW50IHJl cXVpcmVkX3JlZ19zaXplDQo+ICsgICAgICA9IHNpemVvZiAoeDg2X3VzZXJfZGVzYykgKiBIT1NU X0NIQVJfQklUOw0KPiArICAgIHJldHVybiAodGRlc2NfbnVtYmVyZWRfcmVnaXN0ZXIgKGkzODZf ZmVhdHVyZSwgbG9jYWxfdGRlc2NfZGF0YSwNCj4gKwkJCQkgICAgIHRsc19yZWdubywgdGxzX3Jl Z19uYW1lKQ0KPiArCSAgICAmJiAodGRlc2NfcmVnaXN0ZXJfYml0c2l6ZSAoaTM4Nl9mZWF0dXJl LCB0bHNfcmVnX25hbWUpDQo+ICsJCT09IHJlcXVpcmVkX3JlZ19zaXplKSk7DQo+ICsgIH07DQo+ ICsNCj4gKyAgLyogQ2hlY2sgYWxsIHRoZSBleHBlY3RlZCB0bHMgcmVsYXRlZCByZWdpc3RlcnMg YXJlIGZvdW5kLCBhbmQgYXJlIHRoZQ0KPiArICAgICBjb3JyZWN0IHNpemUuICBJZiB0aGV5IGFy ZSB0aGVuIG1hcmsgdGhlIHRscyBmZWF0dXJlIGFzIGJlaW5nIGFjdGl2ZQ0KPiArICAgICBpbiBU REVQLiAgT3RoZXJ3aXNlLCBsZWF2ZSB0aGUgZmVhdHVyZSBhcyBkZWFjdGl2YXRlZC4gICovDQo+ ICsgIHZhbGlkX3AgPSAodmFsaWRfdGxzX3JlZyAoZmVhdHVyZSwgdGRlc2NfZGF0YSwgImkzODZf dGxzX2dkdF8wIiwNCj4gKwkJCSAgICBJMzg2X0xJTlVYX1RMU19HRFRfMCkNCj4gKwkgICAgICYm IHZhbGlkX3Rsc19yZWcgKGZlYXR1cmUsIHRkZXNjX2RhdGEsICJpMzg2X3Rsc19nZHRfMSIsDQo+ ICsJCQkgICAgICAgSTM4Nl9MSU5VWF9UTFNfR0RUXzEpDQo+ICsJICAgICAmJiB2YWxpZF90bHNf cmVnIChmZWF0dXJlLCB0ZGVzY19kYXRhLCAiaTM4Nl90bHNfZ2R0XzIiLA0KPiArCQkJICAgICAg IEkzODZfTElOVVhfVExTX0dEVF8yKSk7DQo+ICsNCj4gKyAgaWYgKHZhbGlkX3ApDQo+ICsgICAg dGRlcC0+aTM4Nl9saW51eF90bHMgPSB0cnVlOw0KPiArDQo+ICAgIC8qIEFkZCB0aGUgJW9yaWdf ZWF4IHJlZ2lzdGVyIHVzZWQgZm9yIHN5c2NhbGwgcmVzdGFydGluZy4gICovDQo+ICAgIHNldF9n ZGJhcmNoX3dyaXRlX3BjIChnZGJhcmNoLCBpMzg2X2xpbnV4X3dyaXRlX3BjKTsNCj4gDQo+IGRp ZmYgLS1naXQgYS9nZGIvaTM4Ni1saW51eC10ZGVwLmggYi9nZGIvaTM4Ni1saW51eC10ZGVwLmgg aW5kZXgNCj4gOGExYTI0NDc3NzYuLmU3NWU1M2FiYTk1IDEwMDY0NA0KPiAtLS0gYS9nZGIvaTM4 Ni1saW51eC10ZGVwLmgNCj4gKysrIGIvZ2RiL2kzODYtbGludXgtdGRlcC5oDQo+IEBAIC0zOSw2 ICszOSwxMyBAQCBlbnVtIGkzODZfbGludXhfcmVnbnVtDQo+ICAgICAgIGlzIHN1cHBvc2VkIHRv IHJlc3RhcnQuICAqLw0KPiAgICBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSA9IEkzODZfTlVN X1JFR1MsDQo+IA0KPiArICAvKiBSZWdpc3RlciBudW1iZXJzIGZvciB0aGUgdGhyZWUgVExTIEdE VCByZWdpc3RlcnMuICBUaGVzZSBjb250YWluIHRoZQ0KPiArICAgICAnc3RydWN0IHVzZXJfZGVz YycgKHNlZSAnbWFuIDIgZ2V0X3RocmVhZF9hcmVhJykgdmFsdWVzIGZvciB0aGUgdGhyZWUNCj4g KyAgICAgVExTIHJlbGF0ZWQgR2xvYmFsIERlc2NyaXB0b3IgVGFibGUgZW50cmllcy4gICovDQo+ ICsgSTM4Nl9MSU5VWF9UTFNfR0RUXzAsICBJMzg2X0xJTlVYX1RMU19HRFRfMSwNCj4gSTM4Nl9M SU5VWF9UTFNfR0RUXzIsDQo+ICsNCj4gICAgLyogVG90YWwgbnVtYmVyIG9mIHJlZ2lzdGVycyBm b3IgR05VL0xpbnV4LiAgKi8NCj4gICAgSTM4Nl9MSU5VWF9OVU1fUkVHUw0KPiANCj4gQEAgLTYx LDQgKzY4LDEyIEBAIGV4dGVybiBib29sIGkzODZfbGludXhfY29yZV9yZWFkX3g4Nl94c2F2ZV9s YXlvdXQNCj4gKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KPiANCj4gIGV4dGVybiBpbnQgaTM4 Nl9saW51eF9ncmVnc2V0X3JlZ19vZmZzZXRbXTsNCj4gDQo+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBS RUdOVU0gaXMgb25lIG9mIHRoZSAzIHRscyBnZHQgcmVnaXN0ZXJzLiAgKi8NCj4gKw0KPiArc3Rh dGljIGlubGluZSBib29sDQo+ICtpMzg2X2lzX3Rsc19yZWdudW1fcCAoaW50IHJlZ251bSkNCj4g K3sNCj4gKyAgcmV0dXJuIHJlZ251bSA+PSBJMzg2X0xJTlVYX1RMU19HRFRfMCAmJiByZWdudW0g PD0NCj4gK0kzODZfTElOVVhfVExTX0dEVF8yOyB9DQo+ICsNCj4gICNlbmRpZiAvKiBHREJfSTM4 Nl9MSU5VWF9UREVQX0ggKi8NCj4gZGlmZiAtLWdpdCBhL2dkYi9pMzg2LXRkZXAuaCBiL2dkYi9p Mzg2LXRkZXAuaCBpbmRleA0KPiBjZmUwZDczODNkNi4uYWQzNTVlYjU5N2EgMTAwNjQ0DQo+IC0t LSBhL2dkYi9pMzg2LXRkZXAuaA0KPiArKysgYi9nZGIvaTM4Ni10ZGVwLmgNCj4gQEAgLTI0MCw2 ICsyNDAsMTEgQEAgc3RydWN0IGkzODZfZ2RiYXJjaF90ZGVwIDogZ2RiYXJjaF90ZGVwX2Jhc2UN Cj4gICAgc3RydWN0IHR5cGUgKmkzODZfem1tX3R5cGUgPSBudWxscHRyOw0KPiAgICBzdHJ1Y3Qg dHlwZSAqaTM4N19leHRfdHlwZSA9IG51bGxwdHI7DQo+IA0KPiArICAvKiBJZiB0aGUgcmVnaXN0 ZXJzIGNvbnRhaW5pbmcgdGhlIGkzODYgTGludXggVExTIHJlbGF0ZWQgZ2xvYmFsDQo+ICsgICAg IGRlc2NyaXB0b3IgdGFibGUgaW5mb3JtYXRpb24gYXJlIGF2YWlsYWJsZS4gIFRoaXMgaXMgdXNl ZCB0byBkZWNpZGUNCj4gKyAgICAgd2hldGhlciB0byBhZGQgdGhlIE5UXzM4Nl9UTFMgbm90ZSB0 byB0aGUgY29yZSBmaWxlIG9yIG5vdC4gICovDQo+ICsgYm9vbCBpMzg2X2xpbnV4X3RscyA9IGZh bHNlOw0KPiArDQo+ICAgIC8qIFByb2Nlc3MgcmVjb3JkL3JlcGxheSB0YXJnZXQuICAqLw0KPiAg ICAvKiBUaGUgbWFwIGZvciByZWdpc3RlcnMgYmVjYXVzZSB0aGUgQU1ENjQncyByZWdpc3RlcnMg b3JkZXINCj4gICAgICAgaW4gR0RCIGlzIG5vdCBzYW1lIGFzIEkzODYgaW5zdHJ1Y3Rpb25zLiAg Ki8gZGlmZiAtLWdpdCBhL2dkYi9uYXQvYW1kNjQtDQo+IGxpbnV4LmggYi9nZGIvbmF0L2FtZDY0 LWxpbnV4LmggbmV3IGZpbGUgbW9kZSAxMDA2NDQgaW5kZXgNCj4gMDAwMDAwMDAwMDAuLjFkNWJm NTczODI5DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL25hdC9hbWQ2NC1saW51eC5oDQo+ IEBAIC0wLDAgKzEsMjkgQEANCj4gKy8qIE5hdGl2ZS1kZXBlbmRlbnQgY29kZSBmb3IgR05VL0xp bnV4IGFtZDY0Lg0KPiArDQo+ICsgICBDb3B5cmlnaHQgKEMpIDIwMjUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uLCBJbmMuDQo+ICsNCj4gKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdEQi4NCj4g Kw0KPiArICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkNCj4gKyAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5DQo+ICsgICB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcg0K PiArICAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4NCj4gKw0KPiArICAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsDQo+ICsgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZg0KPiArICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQ0KPiArICAgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4NCj4gKw0KPiArICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UNCj4gKyAgIGFsb25n IHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUNCj4gKyA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uICAqLw0KPiArDQo+ICsjaWZuZGVmIEdEQl9OQVRfQU1ENjRfTElOVVhfSA0K PiArI2RlZmluZSBHREJfTkFUX0FNRDY0X0xJTlVYX0gNCj4gKw0KPiArLyogU2VlIG5hdC9pMzg2 LWxpbnV4LmggZm9yIGEgZnVsbCBkZXNjcmlwdGlvbiBvZiB0aGlzIGNvbnN0YW50LiAgVGhpcyBp cw0KPiArICAgdGhlIHZlcnNpb24gdXNlZCB3aGVuIEdEQiBpcyBjb21waWxlZCBmb3IgYW1kNjQs IGFuZCBpcyBydW5uaW5nIGFuDQo+ICsgICBleGVjdXRhYmxlIGNvbXBpbGVkIHdpdGggLW0zMi4g ICovDQo+ICsNCj4gK3N0YXRpYyBpbmxpbmUgY29uc3RleHByIGludCBpMzg2X2luaXRpYWxfdGxz X2dkdCA9IDEyOw0KPiArDQo+ICsjZW5kaWYgLyogR0RCX05BVF9BTUQ2NF9MSU5VWF9IICovDQo+ IGRpZmYgLS1naXQgYS9nZGIvbmF0L2kzODYtbGludXguaCBiL2dkYi9uYXQvaTM4Ni1saW51eC5o IGluZGV4DQo+IGQ4MGUwZjk5OWJmLi5iOTlmMGEwMjQxOCAxMDA2NDQNCj4gLS0tIGEvZ2RiL25h dC9pMzg2LWxpbnV4LmgNCj4gKysrIGIvZ2RiL25hdC9pMzg2LWxpbnV4LmgNCj4gQEAgLTM0LDQg KzM0LDE0IEBADQo+ICAgICB2YXJpYWJsZS4gICovDQo+ICBleHRlcm4gdHJpYm9vbCBoYXZlX3B0 cmFjZV9nZXRmcHhyZWdzOw0KPiANCj4gKy8qIFRoaXMgY29uc3RhbnQgZGVmaW5lcyB0aGUgZmly c3QgR0RUIChHbG9iYWwgRGVzY3JpcHRvciBUYWJsZSkgZW50cnkNCj4gKyAgIHRoYXQgdGhlIGtl cm5lbCBhbGxvY2F0ZXMgZm9yIGhvbGRpbmcgVExTIGRlc2NyaXB0b3JzLiAgVGhlcmUgYXJlIHRo cmVlDQo+ICsgICBlbnRyaWVzLCBzdGFydGluZyBhdCB0aGlzIGluZGV4IHdoaWNoIGNhbiBiZSBh Y2Nlc3NlZCB1c2luZyB0aGUNCj4gKyAgIFBUUkFDRV9HRVRfVEhSRUFEX0FSRUEgYW5kIFBUUkFD RV9TRVRfVEhSRUFEX0FSRUEgcHRyYWNlIGNhbGxzLg0KPiBUaGlzDQo+ICsgICBjb25zdGFudCBp cyBvbmx5IHZhbGlkIGZvciB0cnVlIGkzODYga2VybmVscy4gIEZvciBhbWQ2NCBrZXJuZWxzDQo+ ICsgICBydW5uaW5nIGluIDMyLWJpdCBtb2RlIChpLmUuIGV4ZWN1dGFibGVzIGNvbXBpbGVkIC1t MzIpIHRoZXJlIGlzIGENCj4gKyAgIGRpZmZlcmVudCBjb25zdGFudCwgc2VlIG5hdC9hbWQ2NC1s aW51eC5oLiAgKi8NCj4gKw0KPiArc3RhdGljIGlubGluZSBjb25zdGV4cHIgaW50IGkzODZfaW5p dGlhbF90bHNfZ2R0ID0gNjsNCj4gKw0KPiAgI2VuZGlmIC8qIEdEQl9OQVRfSTM4Nl9MSU5VWF9I ICovDQo+IGRpZmYgLS1naXQgYS9nZGIvbmF0L3g4Ni1saW51eC5jIGIvZ2RiL25hdC94ODYtbGlu dXguYyBpbmRleA0KPiA1NTE1ODI2ODk3MC4uODkwNmI3ZTYxMDQgMTAwNjQ0DQo+IC0tLSBhL2dk Yi9uYXQveDg2LWxpbnV4LmMNCj4gKysrIGIvZ2RiL25hdC94ODYtbGludXguYw0KPiBAQCAtMjgs NiArMjgsMTIgQEANCj4gICNpbmNsdWRlICJuYXQvZ2RiX3B0cmFjZS5oIg0KPiAgI2luY2x1ZGUg PHN5cy91c2VyLmg+DQo+IA0KPiArI2lmbmRlZiBfX3g4Nl82NF9fDQo+ICsjaW5jbHVkZSAibmF0 L2kzODYtbGludXguaCINCj4gKyNlbHNlDQo+ICsjaW5jbHVkZSAibmF0L2FtZDY0LWxpbnV4Lmgi DQo+ICsjZW5kaWYNCj4gKw0KPiAgLyogUGVyLXRocmVhZCBhcmNoLXNwZWNpZmljIGRhdGEgd2Ug d2FudCB0byBrZWVwLiAgKi8NCj4gDQo+ICBzdHJ1Y3QgYXJjaF9sd3BfaW5mbw0KPiBAQCAtMTg1 LDMgKzE5MSw0MSBAQCB4ODZfY2hlY2tfc3NwX3N1cHBvcnQgKGNvbnN0IGludCB0aWQpDQo+IA0K PiAgICByZXR1cm4gdHJ1ZTsNCj4gIH0NCj4gKw0KPiArLyogU2VlIG5hdC94ODYtbGludXguaC4g ICovDQo+ICsNCj4gK2Jvb2wNCj4gK2kzODZfcHRyYWNlX2dldF90bHNfZGF0YSAoaW50IHBpZCwg Z2RiOjphcnJheV92aWV3PHVzZXJfZGVzYz4gYnVmZmVyKSB7DQo+ICsgIGdkYl9hc3NlcnQgKGJ1 ZmZlci5zaXplICgpID09IDMpOw0KPiArDQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytp KQ0KPiArICAgIHsNCj4gKyAgICAgIHZvaWQgKmFkZHIgPSAodm9pZCAqKSAodWludHB0cl90KSAo aTM4Nl9pbml0aWFsX3Rsc19nZHQgKyBpKTsNCj4gKyAgICAgIHZvaWQgKmRhdGEgPSBidWZmZXIu c2xpY2UgKGksIDEpLmRhdGEgKCk7DQo+ICsNCj4gKyAgICAgIGlmIChwdHJhY2UgKFBUUkFDRV9H RVRfVEhSRUFEX0FSRUEsIHBpZCwgYWRkciwgZGF0YSkgPCAwKQ0KPiArCXJldHVybiBmYWxzZTsN Cj4gKyAgICB9DQo+ICsNCj4gKyAgcmV0dXJuIHRydWU7DQo+ICt9DQo+ICsNCj4gKy8qIFNlZSBu YXQveDg2LWxpbnV4LmguICAqLw0KPiArDQo+ICtib29sDQo+ICtpMzg2X3B0cmFjZV9zZXRfdGxz X2RhdGEgKGludCBwaWQsIGdkYjo6YXJyYXlfdmlldzx1c2VyX2Rlc2M+IGJ1ZmZlcikgew0KPiAr ICBnZGJfYXNzZXJ0IChidWZmZXIuc2l6ZSAoKSA9PSAzKTsNCj4gKw0KPiArICBmb3IgKGludCBp ID0gMDsgaSA8IDM7ICsraSkNCj4gKyAgICB7DQo+ICsgICAgICB2b2lkICphZGRyID0gKHZvaWQg KikgKHVpbnRwdHJfdCkgKGkzODZfaW5pdGlhbF90bHNfZ2R0ICsgaSk7DQo+ICsgICAgICB2b2lk ICpkYXRhID0gYnVmZmVyLnNsaWNlIChpLCAxKS5kYXRhICgpOw0KPiArDQo+ICsgICAgICBpZiAo cHRyYWNlIChQVFJBQ0VfU0VUX1RIUkVBRF9BUkVBLCBwaWQsIGFkZHIsIGRhdGEpIDwgMCkNCj4g KyAgICAgICByZXR1cm4gZmFsc2U7DQo+ICsgICAgfQ0KPiArDQo+ICsgIHJldHVybiB0cnVlOw0K PiArfQ0KPiBkaWZmIC0tZ2l0IGEvZ2RiL25hdC94ODYtbGludXguaCBiL2dkYi9uYXQveDg2LWxp bnV4LmggaW5kZXgNCj4gMTc4M2FhZTA1ZDAuLmM5ODJhNDZiZjJlIDEwMDY0NA0KPiAtLS0gYS9n ZGIvbmF0L3g4Ni1saW51eC5oDQo+ICsrKyBiL2dkYi9uYXQveDg2LWxpbnV4LmgNCj4gQEAgLTIx LDYgKzIxLDcgQEANCj4gICNkZWZpbmUgR0RCX05BVF9YODZfTElOVVhfSA0KPiANCj4gICNpbmNs dWRlICJuYXQvbGludXgtbmF0LmgiDQo+ICsjaW5jbHVkZSA8YXNtL2xkdC5oPg0KPiANCj4gIC8q IFNldCB3aGV0aGVyIG91ciBsb2NhbCBtaXJyb3Igb2YgTFdQJ3MgZGVidWcgcmVnaXN0ZXJzIGhh cyBiZWVuDQo+ICAgICBjaGFuZ2VkIHNpbmNlIHRoZSB2YWx1ZXMgd2VyZSBsYXN0IHdyaXR0ZW4g dG8gdGhlIHRocmVhZC4gIE5vbnplcm8gQEAgLTc5LDQNCj4gKzgwLDE4IEBAIGV4dGVybiB4ODZf bGludXhfYXJjaF9zaXplIHg4Nl9saW51eF9wdHJhY2VfZ2V0X2FyY2hfc2l6ZSAoaW50DQo+IHRp ZCk7DQo+IA0KPiAgZXh0ZXJuIGJvb2wgeDg2X2NoZWNrX3NzcF9zdXBwb3J0IChjb25zdCBpbnQg dGlkKTsNCj4gDQo+ICsvKiBHZXQgdGhlIHRocmVlIFRMUyByZWxhdGVkIEdEVCAoR2xvYmFsIERl c2NyaXB0b3IgVGFibGUpIGVudHJpZXMgZnJvbQ0KPiArICAgdGhlIGtlcm5lbCBmb3IgdGhyZWFk IFBJRCwgcGxhY2luZyB0aGUgcmVzdWx0cyBpbnRvIEJVRkZFUiwgYW4gYXJyYXkgb2YNCj4gKyAg IGxlbmd0aCAzLiAgKi8NCj4gKw0KPiArZXh0ZXJuIGJvb2wgaTM4Nl9wdHJhY2VfZ2V0X3Rsc19k YXRhDQo+ICsgIChpbnQgcGlkLCBnZGI6OmFycmF5X3ZpZXc8dXNlcl9kZXNjPiBidWZmZXIpOw0K PiArDQo+ICsvKiBTdG9yZSB0aGUgdGhyZWUgVExTIHJlbGF0ZWQgR0RUIChHbG9iYWwgRGVzY3Jp cHRvciBUYWJsZSkgZW50cmllcyBoZWxkDQo+ICsgICBpbiBCVUZGRVIgYmFjayBpbnRvIHRoZSBr ZXJuZWwgZm9yIHRocmVhZCBQSUQuICBCVUZGRVIgbXVzdCBoYXZlIGENCj4gKyAgIGxlbmd0aCBv ZiB0aHJlZS4gICovDQo+ICsNCj4gK2V4dGVybiBib29sIGkzODZfcHRyYWNlX3NldF90bHNfZGF0 YQ0KPiArICAoaW50IHBpZCwgZ2RiOjphcnJheV92aWV3PHVzZXJfZGVzYz4gYnVmZmVyKTsNCj4g Kw0KPiAgI2VuZGlmIC8qIEdEQl9OQVRfWDg2X0xJTlVYX0ggKi8NCj4gZGlmZiAtLWdpdCBhL2dk Yi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni10bHMtcmVncy5jDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9pMzg2LXRscy1yZWdzLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAuLjQyMGQxNTY2ZjIwDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXRscy1yZWdzLmMNCj4gQEAgLTAsMCArMSw3NCBAQA0KPiAr LyogVGhpcyB0ZXN0Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4NCj4gKw0K PiArICAgQ29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ICsN Cj4gKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ICsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiArICAgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3INCj4g KyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ICsNCj4gKyAgIFRoaXMg cHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LA0KPiArICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YNCj4gKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCj4gKyAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ICsNCj4gKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl ZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQo+ICsgICBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlDQo+ICsgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8NCj4gKw0KPiArI2luY2x1ZGUgPHB0aHJlYWQuaD4NCj4gKyNpbmNsdWRl IDxzdGRsaWIuaD4NCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4NCj4gKw0KPiArc3RhdGljIHB0aHJl YWRfYmFycmllcl90IGJhcnJpZXI7DQo+ICsNCj4gK3N0YXRpYyBfX3RocmVhZCBpbnQgbG9jYWxf dmFyID0gMDsNCj4gKw0KPiArdm9sYXRpbGUgaW50IHdhaXRfZm9yX2dkYl9wID0gMTsNCj4gKw0K PiArdm9sYXRpbGUgaW50IHNob3VsZF9kdW1wX2NvcmVfcCA9IDE7DQo+ICsNCj4gK3ZvaWQNCj4g K2NyYXNoX2Z1bmMgKHZvaWQpDQo+ICt7DQo+ICsgIGlmIChzaG91bGRfZHVtcF9jb3JlX3ApDQo+ ICsgICAgYWJvcnQgKCk7DQo+ICt9DQo+ICsNCj4gK3ZvaWQNCj4gK3NwaW5fZm9yZXZlciAodm9p ZCkNCj4gK3sNCj4gKyAgd2hpbGUgKHdhaXRfZm9yX2dkYl9wKQ0KPiArICAgIHNsZWVwICgxKTsN Cj4gK30NCj4gKw0KPiArdm9pZCAqDQo+ICt0aHJlYWRfZnVuYyAodm9pZCAqYXJnKQ0KPiArew0K PiArICBsb2NhbF92YXIgPSAqKChpbnQqKSBhcmcpOw0KPiArDQo+ICsgIHB0aHJlYWRfYmFycmll cl93YWl0ICgmYmFycmllcik7DQo+ICsNCj4gKyAgc3Bpbl9mb3JldmVyICgpOw0KPiArfQ0KPiAr DQo+ICtpbnQNCj4gK21haW4gKHZvaWQpDQo+ICt7DQo+ICsgIHB0aHJlYWRfdCB0aHI7DQo+ICsN Cj4gKyAgaWYgKHB0aHJlYWRfYmFycmllcl9pbml0ICgmYmFycmllciwgTlVMTCwgMikgIT0gMCkN Cj4gKyAgICBhYm9ydCAoKTsNCj4gKw0KPiArICBsb2NhbF92YXIgPSAxOw0KPiArICBpbnQgaSA9 IDI7DQo+ICsgIGlmIChwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgdGhyZWFkX2Z1bmMsICZp KSAhPSAwKQ0KPiArICAgIGFib3J0ICgpOw0KPiArDQo+ICsgIHB0aHJlYWRfYmFycmllcl93YWl0 ICgmYmFycmllcik7DQo+ICsNCj4gKyAgY3Jhc2hfZnVuYyAoKTsNCj4gKw0KPiArICBzcGluX2Zv cmV2ZXIgKCk7DQo+ICsNCj4gKyAgcmV0dXJuIDA7DQo+ICt9DQo+IGRpZmYgLS1naXQgYS9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtdGxzLXJlZ3MuZXhwDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9n ZGIuYXJjaC9pMzg2LXRscy1yZWdzLmV4cA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMC4uMTc1M2Y4NzYyYzYNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtdGxzLXJlZ3MuZXhwDQo+IEBAIC0wLDAgKzEsMzM1IEBA DQo+ICsjIENvcHlyaWdodCAyMDI1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiAr Iw0KPiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiArIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiArIyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAjDQo+ ICsoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArIw0KPiArIyBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwg IyBidXQNCj4gK1dJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YgIw0KPiArTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAjIEdOVQ0KPiArR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLg0KPiArIw0KPiArIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAjDQo+ICthbG9uZyB3aXRoIHRo aXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4N Cj4gKw0KPiArIyBDaGVjayB0aGF0IHRoZSBUTFMgR0RUIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxl IGZvciBpMzg2IGV4ZWN1dGFibGUuDQo+ICsNCj4gK3JlcXVpcmUge2lzX2FueV90YXJnZXQgImk/ ODYtKi1saW51eCoiICJ4ODZfNjQtKi1saW51eCoifQ0KPiArDQo+ICtzdGFuZGFyZF90ZXN0Zmls ZQ0KPiArDQo+ICtzZXQgb3B0aW9ucyB7ZGVidWcgcHRocmVhZHN9DQo+ICtpZiB7IVtpc3Rhcmdl dCAiaTM4Ni0qLSoiXX0gew0KPiArICAgIGxhcHBlbmQgb3B0aW9ucyAiYWRkaXRpb25hbF9mbGFn cz0tbTMyIg0KPiArfQ0KPiArDQo+ICsjIENoZWNrIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGNvbXBp bGUgYSAzMi1iaXQgZXhlY3V0YWJsZS4NCj4gKyMNCj4gKyMgSXQgaXMgcG9zc2libGUgdGhhdCBl dmVuIHdpdGggdGhlIGFib3ZlIHNldHRpbmcgb2YgT1BUSU9OUywgd2UgbWlnaHQNCj4gKyMgc3Rp bGwgZ2V0IGEgNjQtYml0IGV4ZWN1dGFibGUsIGZvciBleGFtcGxlLCBydW5uaW5nIG9uIHg4Ni02 NCB3aXRoICMNCj4gKyctLXRhcmdldF9ib2FyZD11bml4Ly1tNjQnIHdpbGwgYWRkIHRoZSAtbTY0 IGFmdGVyIHRoZSBhYm92ZSAtbTMyLCAjDQo+ICttZWFuaW5nIHdlIGFsd2F5cyBlbmQgdXAgd2l0 aCBhIDY0LWJpdCBleGVjdXRhYmxlLg0KPiArIw0KPiArIyBJZiB0aGUgZm9sbG93aW5nIGNvbXBp bGVzIHRoZW4gd2UgYXJlIGdldHRpbmcgYSAzMi1iaXQgZXhlY3V0YWJsZS4NCj4gK2lmIHshW2dk Yl9jYW5fc2ltcGxlX2NvbXBpbGUgaXNfbHA2NF90YXJnZXQgew0KPiArCWludCBkdW1teVtzaXpl b2YgKGludCkgPT0gNA0KPiArCQkgICYmIHNpemVvZiAodm9pZCAqKSA9PSA0DQo+ICsJCSAgJiYg c2l6ZW9mIChsb25nKSA9PSA0ID8gMSA6IC0xXTt9IFwNCj4gKwkgIG9iamVjdCAkb3B0aW9uc119 IHsNCj4gKyAgICB1bnN1cHBvcnRlZCAiY2Fubm90IGNvbXBpbGUgMzItYml0IGV4ZWN1dGFibGUi DQo+ICsgICAgcmV0dXJuDQo+ICt9DQo+ICsNCj4gK2lmIHsgW2J1aWxkX2V4ZWN1dGFibGUgImZh aWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2ZpbGUgJG9wdGlvbnNdIH0gew0KPiArICAg IHJldHVybg0KPiArfQ0KPiArDQo+ICsjIFN0YXJ0IGFuIGluZmVyaW9yIGFuZCBjaGVjayB3ZSBj YW4gcmVhZCBhbmQgbW9kaWZ5IHRoZSBUTFMgcmVnaXN0ZXJzLg0KPiArcHJvY193aXRoX3ByZWZp eCB0ZXN0X3Rsc19yZWdfYXZhaWxhYmlsaXR5IHt9IHsNCj4gKyAgICBjbGVhbl9yZXN0YXJ0ICQ6 OnRlc3RmaWxlDQo+ICsNCj4gKyAgICBpZiB7IVtydW50b19tYWluXX0gew0KPiArCXJldHVybg0K PiArICAgIH0NCj4gKw0KPiArICAgIHNldCB0bHNfcmVnX3ZhbHMgeyAiIiAiIiAiIiB9DQo+ICsg ICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImluZm8gcmVnaXN0ZXJzIHN5c3RlbSIgImNoZWNrIGZvciBU TFMgcmVncyIgew0KPiArCS1yZSAiXmluZm8gcmVnaXN0ZXJzIHN5c3RlbVxyXG4iIHsNCj4gKwkg ICAgZXhwX2NvbnRpbnVlDQo+ICsJfQ0KPiArCS1yZSAiXmkzODZfdGxzX2dkdF8oXFxkKSBcXHso JDo6aGV4KSwgKCQ6OmhleCksICgkOjpoZXgpLCAoJDo6aGV4KVxcfVxyXG4iIHsNCj4gKwkgICAg c2V0IGlkeCAkZXhwZWN0X291dCgxLHN0cmluZykNCj4gKwkgICAgc2V0IHZhbDAgJGV4cGVjdF9v dXQoMixzdHJpbmcpDQo+ICsJICAgIHNldCB2YWwxICRleHBlY3Rfb3V0KDMsc3RyaW5nKQ0KPiAr CSAgICBzZXQgdmFsMiAkZXhwZWN0X291dCg0LHN0cmluZykNCj4gKwkgICAgc2V0IHZhbDMgJGV4 cGVjdF9vdXQoNSxzdHJpbmcpDQo+ICsJICAgIHNldCB2YWwgW2xpc3QgJHZhbDAgJHZhbDEgJHZh bDIgJHZhbDNdDQo+ICsJICAgIHNldCB0bHNfcmVnX3ZhbHMgW2xyZXBsYWNlICR0bHNfcmVnX3Zh bHMgJGlkeCAkaWR4ICR2YWxdDQo+ICsJICAgIGV4cF9jb250aW51ZQ0KPiArCX0NCj4gKwktcmUg Il4kOjpnZGJfcHJvbXB0ICQiIHsNCj4gKwkgICAgZ2RiX2Fzc2VydCB7W2xzZWFyY2ggLWV4YWN0 ICR0bHNfcmVnX3ZhbHMgIiJdID09IC0xfSAkZ2RiX3Rlc3RfbmFtZQ0KPiArCX0NCj4gKwktcmUg Il5cW15cclxuXF0rXHJcbiIgew0KPiArCSAgICBleHBfY29udGludWUNCj4gKwl9DQo+ICsgICAg fQ0KPiArDQo+ICsgICAgaWYgeyBbbGluZGV4ICR0bHNfcmVnX3ZhbHMgMF0gIT0gW2xpbmRleCAk dGxzX3JlZ192YWxzIDFdIH0gew0KPiArCXNldCBuZXdfdmFscyBbbGluZGV4ICR0bHNfcmVnX3Zh bHMgMF0NCj4gKwlzZXQgb2xkX3ZhbHMgW2xpbmRleCAkdGxzX3JlZ192YWxzIDFdDQo+ICsNCj4g KwlzZXQgdmFsMCBbbGluZGV4ICRvbGRfdmFscyAwXQ0KPiArCXNldCB2YWwxIFtsaW5kZXggJG5l d192YWxzIDFdDQo+ICsJc2V0IHZhbDIgW2xpbmRleCAkbmV3X3ZhbHMgMl0NCj4gKwlzZXQgdmFs MyBbbGluZGV4ICRuZXdfdmFscyAzXQ0KPiArDQo+ICsJc2V0IG5ld192YWxfc3RyICJ7JHZhbDAs ICR2YWwxLCAkdmFsMiwgJHZhbDN9Ig0KPiArDQo+ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQg XCRpMzg2X3Rsc19nZHRfMSA9ICRuZXdfdmFsX3N0ciINCj4gKwlzZXQgcmUgW3N0cmluZ190b19y ZWdleHAgJG5ld192YWxfc3RyXQ0KPiArCWdkYl90ZXN0ICJwcmludCAveCBcJGkzODZfdGxzX2dk dF8xIiAiID0gJHJlIg0KPiArICAgIH0NCj4gKw0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAi c2V0IHNob3VsZF9kdW1wX2NvcmVfcD0wIg0KPiArICAgIGdkYl90ZXN0X25vX291dHB1dCAic2V0 IHdhaXRfZm9yX2dkYl9wPTAiDQo+ICsNCj4gKyAgICBnZGJfY29udGludWVfdG9fZW5kICIiIGNv bnRpbnVlIHRydWUgfQ0KPiArDQo+ICsjIFN0YXJ0IEdEQiB1c2luZyBnbG9iYWwgQklORklMRSwg bG9hZCBDT1JFRklMRSAod2hpY2ggbXVzdCBtYXRjaCAjDQo+ICtCSU5GSUxFKSwgYW5kIGNoZWNr IHRoYXQgdGhlIGNvcmUgaGFzIHR3byB0aHJlYWRzLCB0aGF0IHRoZSBUTFMgIw0KPiArcmVnaXN0 ZXJzIGFyZSB2aXNpYmxlIGluIGJvdGggdGhyZWFkcywgYW5kIHRoYXQgdGhlIFRMUyByZWdpc3Rl ciAjDQo+ICt2YWx1ZXMgYXJlIGRpZmZlcmVudCBpbiBlYWNoIHRocmVhZC4NCj4gK3Byb2MgbG9h ZF9jb3JlX2FuZF90ZXN0X3Rsc19yZWdzIHsgY29yZWZpbGUgfSB7DQo+ICsgICAgY2xlYW5fcmVz dGFydCAkOjp0ZXN0ZmlsZQ0KPiArDQo+ICsgICAgZ2RiX2NvcmVfY21kICRjb3JlZmlsZSAibG9h ZCBjb3JlZmlsZSINCj4gKw0KPiArICAgIGdkYl90ZXN0ICJpbmZvIHRocmVhZHMiIFwNCj4gKwlb bXVsdGlfbGluZSBcDQo+ICsJICAgICAiXFwqXFxzKzFcXHMrVGhyZWFkIFxbXlxyXG5cXSsiIFwN Cj4gKwkgICAgICJcXHMrMlxccytUaHJlYWQgXFteXHJcblxdKyJdIFwNCj4gKwkiY2hlY2sgZm9y IHR3byB0aHJlYWRzIg0KPiArDQo+ICsgICAgIyBSZWNvcmQgdGhlIFRMUyB2YWx1ZXMgaW4gdGhy ZWFkIDEuDQo+ICsgICAgc2V0IHRsc19yZWdfdmFsc190aHJfMSB7ICIiICIiICIiIH0NCj4gKyAg ICBnZGJfdGVzdF9tdWx0aXBsZSAiaW5mbyByZWdpc3RlcnMgc3lzdGVtIiAiY2hlY2sgZm9yIFRM UyByZWdzIHRocmVhZCAxIiB7DQo+ICsJLXJlICJeaW5mbyByZWdpc3RlcnMgc3lzdGVtXHJcbiIg ew0KPiArCSAgICBleHBfY29udGludWUNCj4gKwl9DQo+ICsJLXJlICJeaTM4Nl90bHNfZ2R0Xyhc XGQpIChcXHskOjpoZXgsICQ6OmhleCwgJDo6aGV4LCAkOjpoZXhcXH0pXHJcbiIgew0KPiArCSAg ICBzZXQgaWR4ICRleHBlY3Rfb3V0KDEsc3RyaW5nKQ0KPiArCSAgICBzZXQgdmFsICRleHBlY3Rf b3V0KDIsc3RyaW5nKQ0KPiArCSAgICBzZXQgdGxzX3JlZ192YWxzX3Rocl8xIFtscmVwbGFjZSAk dGxzX3JlZ192YWxzX3Rocl8xICRpZHggJGlkeCAkdmFsXQ0KPiArCSAgICBleHBfY29udGludWUN Cj4gKwl9DQo+ICsJLXJlICJeJDo6Z2RiX3Byb21wdCAkIiB7DQo+ICsJICAgIGdkYl9hc3NlcnQg e1tsc2VhcmNoIC1leGFjdCAkdGxzX3JlZ192YWxzX3Rocl8xICIiXSA9PSAtMX0NCj4gJGdkYl90 ZXN0X25hbWUNCj4gKwl9DQo+ICsJLXJlICJeXFteXHJcblxdK1xyXG4iIHsNCj4gKwkgICAgZXhw X2NvbnRpbnVlDQo+ICsJfQ0KPiArICAgIH0NCj4gKw0KPiArICAgICMgQ2hlY2sgYSBUTFMgdmFy aWFibGUgaW4gdGhyZWFkIDEuDQo+ICsgICAgZ2RiX3Rlc3QgInByaW50IGxvY2FsX3ZhciIgIiA9 IDEiIFwNCj4gKwkiY2hlY2sgVExTIHZhcmlhYmxlIGluIHRocmVhZCAxIg0KPiArDQo+ICsgICAg IyBTd2l0Y2ggdG8gdGhyZWFkIDIgYW5kIGNvbmZpcm0gdGhlIHZhbHVlcyBhcmUgZGlmZmVyZW50 Lg0KPiArICAgIGdkYl90ZXN0ICJ0aHJlYWQgMiINCj4gKw0KPiArICAgIHNldCB0bHNfcmVnX3Zh bHNfdGhyXzIgeyAiIiAiIiAiIiB9DQo+ICsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImluZm8gcmVn aXN0ZXJzIHN5c3RlbSIgImNoZWNrIGZvciBUTFMgcmVncyB0aHJlYWQgMiIgew0KPiArCS1yZSAi XmluZm8gcmVnaXN0ZXJzIHN5c3RlbVxyXG4iIHsNCj4gKwkgICAgZXhwX2NvbnRpbnVlDQo+ICsJ fQ0KPiArCS1yZSAiXmkzODZfdGxzX2dkdF8oXFxkKSAoXFx7JDo6aGV4LCAkOjpoZXgsICQ6Omhl eCwgJDo6aGV4XFx9KVxyXG4iIHsNCj4gKwkgICAgc2V0IGlkeCAkZXhwZWN0X291dCgxLHN0cmlu ZykNCj4gKwkgICAgc2V0IHZhbCAkZXhwZWN0X291dCgyLHN0cmluZykNCj4gKwkgICAgc2V0IHRs c19yZWdfdmFsc190aHJfMiBcDQo+ICsJCVtscmVwbGFjZSAkdGxzX3JlZ192YWxzX3Rocl8yICRp ZHggJGlkeCAkdmFsXQ0KPiArCSAgICBleHBfY29udGludWUNCj4gKwl9DQo+ICsJLXJlICJeJDo6 Z2RiX3Byb21wdCAkIiB7DQo+ICsJICAgIGdkYl9hc3NlcnQge1tsc2VhcmNoIC1leGFjdCAkdGxz X3JlZ192YWxzX3Rocl8yICIiXSA9PSAtMX0gXA0KPiArCQkkZ2RiX3Rlc3RfbmFtZQ0KPiArCX0N Cj4gKwktcmUgIl5cW15cclxuXF0rXHJcbiIgew0KPiArCSAgICBleHBfY29udGludWUNCj4gKwl9 DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgIyBDaGVjayBhIFRMUyB2YXJpYWJsZSBpbiB0aHJlYWQg Mi4NCj4gKyAgICBnZGJfdGVzdCAicHJpbnQgbG9jYWxfdmFyIiAiID0gMiIgXA0KPiArCSJjaGVj ayBUTFMgdmFyaWFibGUgaW4gdGhyZWFkIDIiDQo+ICsNCj4gKyAgICBzZXQgYWxsX3NhbWUgW2V4 cHIgW2xpbmRleCAkdGxzX3JlZ192YWxzX3Rocl8xIDBdID09IFtsaW5kZXgNCj4gJHRsc19yZWdf dmFsc190aHJfMiAwXSBcDQo+ICsJCSAgICAgICYmIFtsaW5kZXggJHRsc19yZWdfdmFsc190aHJf MSAxXSA9PSBbbGluZGV4DQo+ICR0bHNfcmVnX3ZhbHNfdGhyXzIgMV0gXA0KPiArCQkgICAgICAm JiBbbGluZGV4ICR0bHNfcmVnX3ZhbHNfdGhyXzEgMl0gPT0gW2xpbmRleA0KPiAkdGxzX3JlZ192 YWxzX3Rocl8yIDJdXQ0KPiArICAgIGdkYl9hc3NlcnQgeyEkYWxsX3NhbWV9IFwNCj4gKwkidGxz IHJlZ3MgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRocmVhZHMiDQo+ICt9DQo+ICsNCj4gKyMgR2Vu ZXJhdGUgYSBjb3JlIGZpbGUgdXNpbmcgdGhlIGdjb3JlIGNvbW1hbmQuICBMb2FkIGl0IGludG8g R0RCIGFuZCAjDQo+ICtjaGVjayB3ZSBjYW4gc3RpbGwgcmVhZCB0aGUgVExTIHJlZ2lzdGVycy4N Cj4gK3Byb2Nfd2l0aF9wcmVmaXggdGVzdF9nY29yZV90bHMge30gew0KPiArDQo+ICsgICAgaWYg eyFbZ2NvcmVfY21kX2F2YWlsYWJsZV19IHsNCj4gKwl1bnN1cHBvcnRlZCAiZ2NvcmUgY29tbWFu ZCBub3QgYXZhaWxhYmxlIg0KPiArCXJldHVybg0KPiArICAgIH0NCj4gKw0KPiArICAgIGNsZWFu X3Jlc3RhcnQgJDo6dGVzdGZpbGUNCj4gKw0KPiArICAgIGlmIHshW3J1bnRvX21haW5dfSB7DQo+ ICsJcmV0dXJuDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQg c2hvdWxkX2R1bXBfY29yZV9wPTAiDQo+ICsNCj4gKyAgICBnZGJfYnJlYWtwb2ludCBjcmFzaF9m dW5jDQo+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInN0b3AgYXQgY3Jhc2hfZnVu YyINCj4gKw0KPiArICAgIHNldCBjb3JlZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHs6OnRl c3RmaWxlfS5nY29yZV0NCj4gKyAgICBpZiB7IVtnZGJfZ2NvcmVfY21kICRjb3JlZmlsZSAiZHVt cCBjb3JlIl19IHsNCj4gKwlyZXR1cm4NCj4gKyAgICB9DQo+ICsNCj4gKyAgICBzZXQgcmVhZGVs Zl9wcm9ncmFtIFtnZGJfZmluZF9yZWFkZWxmXQ0KPiArICAgIHNldCByZXMgW2NhdGNoIHtleGVj ICRyZWFkZWxmX3Byb2dyYW0gLW4gJGNvcmVmaWxlfSBvdXRwdXRdDQo+ICsgICAgaWYgeyAkcmVz ICE9IDAgfSB7DQo+ICsJdW5yZXNvbHZlZCAidW5hYmxlIHRvIHJ1biByZWFkZWxmIHRvIGNoZWNr IGZvciBUTFMgbm90ZXMiDQo+ICsJcmV0dXJuDQo+ICsgICAgfQ0KPiArICAgIHNldCBsaW5lcyBb c3BsaXQgJG91dHB1dCBcbl0NCj4gKyAgICBzZXQgdGxzX2NvdW50IDANCj4gKyAgICBmb3JlYWNo IGxpbmUgJGxpbmVzIHsNCj4gKwlpZiB7W3JlZ2V4cCAiXlxccytMSU5VWFxccyskOjpoZXhcXHMr TlRfMzg2X1RMUyIgJGxpbmVdfSB7DQo+ICsJICAgIGluY3IgdGxzX2NvdW50DQo+ICsJfQ0KPiAr ICAgIH0NCj4gKyAgICBnZGJfYXNzZXJ0IHskdGxzX2NvdW50ID09IDJ9IFwNCj4gKwkiZXhwZWN0 ZWQgbnVtYmVyIG9mIFRMUyBub3RlcyINCj4gKw0KPiArICAgIGxvYWRfY29yZV9hbmRfdGVzdF90 bHNfcmVncyAkY29yZWZpbGUgfQ0KPiArDQo+ICsjIEdlbmVyYXRlIGEgY29yZSBmaWxlIHVzaW5n IHRoZSBnY29yZSBjb21tYW5kLCBidXQgYmVmb3JlIGRvaW5nIHNvLCAjDQo+ICtjbGVhciBhbGwg dGhlIFRMUyByZWxhdGVkIEdEVCBlbnRyaWVzLiAgV2hlbiB0aGUgVExTIEdEVCBlbnRyaWVzICMg aGF2ZQ0KPiArYSBiYXNlIGFkZHJlc3MgYW5kIGxpbWl0IG9mIHplcm8gdGhlIGtlcm5lbCBkb2Vz bid0IGVtaXQgdGhlICMNCj4gK05UXzM4Nl9UTFMgbm90ZSwgR0RCIGNvcGllcyB0aGlzIGJlaGF2 aW91ci4NCj4gK3Byb2Nfd2l0aF9wcmVmaXggdGVzdF9nY29yZV9ub190bHMge30gew0KPiArDQo+ ICsgICAgaWYgeyFbZ2NvcmVfY21kX2F2YWlsYWJsZV19IHsNCj4gKwl1bnN1cHBvcnRlZCAiZ2Nv cmUgY29tbWFuZCBub3QgYXZhaWxhYmxlIg0KPiArCXJldHVybg0KPiArICAgIH0NCj4gKw0KPiAr ICAgIGNsZWFuX3Jlc3RhcnQgJDo6dGVzdGZpbGUNCj4gKw0KPiArICAgIGlmIHshW3J1bnRvX21h aW5dfSB7DQo+ICsJcmV0dXJuDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0 cHV0ICJzZXQgc2hvdWxkX2R1bXBfY29yZV9wPTAiDQo+ICsNCj4gKyAgICBnZGJfYnJlYWtwb2lu dCBjcmFzaF9mdW5jDQo+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInN0b3AgYXQg Y3Jhc2hfZnVuYyINCj4gKw0KPiArICAgICMgQ2xlYXIgdGhlIFRMUyByZWdpc3RlcnMgaW4gZWFj aCB0aHJlYWQuDQo+ICsgICAgZm9yZWFjaF93aXRoX3ByZWZpeCB0aHIgeyAxIDIgfSB7DQo+ICsJ Z2RiX3Rlc3QgInRocmVhZCAkdGhyIiAiLioiIFwNCj4gKwkgICAgInN3aXRjaCB0aHJlYWQgdG8g Y2xlYXIgdGxzIHJlZ3MiDQo+ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgXCRpMzg2X3Rsc19n ZHRfMCA9IHsgMHgwLCAweDAsIDB4MCwgMHgyOCB9Ig0KPiArCWdkYl90ZXN0X25vX291dHB1dCAi c2V0IFwkaTM4Nl90bHNfZ2R0XzEgPSB7IDB4MCwgMHgwLCAweDAsIDB4MjggfSINCj4gKwlnZGJf dGVzdF9ub19vdXRwdXQgInNldCBcJGkzODZfdGxzX2dkdF8yID0geyAweDAsIDB4MCwgMHgwLCAw eDI4IH0iDQo+ICsgICAgfQ0KPiArDQo+ICsgICAgc2V0IGNvcmVmaWxlIFtzdGFuZGFyZF9vdXRw dXRfZmlsZSAkezo6dGVzdGZpbGV9Lmdjb3JlXQ0KPiArICAgIGlmIHshW2dkYl9nY29yZV9jbWQg JGNvcmVmaWxlICJkdW1wIGNvcmUiXX0gew0KPiArCXJldHVybg0KPiArICAgIH0NCj4gKw0KPiAr ICAgICMgTG9vayBpbiB0aGUgY29yZSBmaWxlIGZvciBOVF8zODZfVExTIGVudHJpZXMuICBUaGVy ZSBzaG91bGQgYmUNCj4gKyAgICAjIG5vbmUuDQo+ICsgICAgc2V0IHJlYWRlbGZfcHJvZ3JhbSBb Z2RiX2ZpbmRfcmVhZGVsZl0NCj4gKyAgICBzZXQgcmVzIFtjYXRjaCB7ZXhlYyAkcmVhZGVsZl9w cm9ncmFtIC1uICRjb3JlZmlsZX0gb3V0cHV0XQ0KPiArICAgIGlmIHsgJHJlcyAhPSAwIH0gew0K PiArCXVucmVzb2x2ZWQgInVuYWJsZSB0byBydW4gcmVhZGVsZiB0byBjaGVjayBmb3IgVExTIG5v dGVzIg0KPiArCXJldHVybg0KPiArICAgIH0NCj4gKyAgICBzZXQgbGluZXMgW3NwbGl0ICRvdXRw dXQgXG5dDQo+ICsgICAgc2V0IHRsc19jb3VudCAwDQo+ICsgICAgZm9yZWFjaCBsaW5lICRsaW5l cyB7DQo+ICsJaWYge1tyZWdleHAgIl5cXHMrTElOVVhcXHMrJDo6aGV4XFxzK05UXzM4Nl9UTFMi ICRsaW5lXX0gew0KPiArCSAgICBpbmNyIHRsc19jb3VudA0KPiArCX0NCj4gKyAgICB9DQo+ICsg ICAgZ2RiX2Fzc2VydCB7JHRsc19jb3VudCA9PSAwfSBcDQo+ICsJImV4cGVjdGVkIG51bWJlciBv ZiBUTFMgbm90ZXMiDQo+ICsNCj4gKyAgICAjIFJlc3RhcnQgR0RCIGFuZCBsb2FkIHRoZSBjb3Jl IGZpbGUuICBBcyB0aGVyZSBhcmUgbm8gTlRfMzg2X1RMUw0KPiArICAgICMgZW50cmllcyB0aGUg VExTIHJlZ2lzdGVycyBzaG91bGQgc2hvdyBhcyB1bmF2YWlsYWJsZS4NCj4gKyAgICBjbGVhbl9y ZXN0YXJ0ICQ6OnRlc3RmaWxlDQo+ICsNCj4gKyAgICBnZGJfY29yZV9jbWQgJGNvcmVmaWxlICJs b2FkIGNvcmVmaWxlIg0KPiArDQo+ICsgICAgZ2RiX3Rlc3QgImluZm8gdGhyZWFkcyIgXA0KPiAr CVttdWx0aV9saW5lIFwNCj4gKwkgICAgICJcXCpcXHMrMVxccytUaHJlYWQgXFteXHJcblxdKyIg XA0KPiArCSAgICAgIlxccysyXFxzK1RocmVhZCBcW15cclxuXF0rIl0gXA0KPiArCSJjaGVjayBm b3IgdHdvIHRocmVhZHMiDQo+ICsNCj4gKyAgICBmb3JlYWNoX3dpdGhfcHJlZml4IHRociB7IDEg MiB9IHsNCj4gKwlzZXQgdW5hdmFpbGFibGVfdGxzX2NvdW50IDANCj4gKwlzZXQgdmFsaWRfdGxz X2NvdW50IDANCj4gKwlnZGJfdGVzdCAidGhyZWFkICR0aHIiICIuKiIgXA0KPiArCSAgICAic3dp dGNoIHRocmVhZCB0byBjaGVjayBUTFMgcmVnaXN0ZXIgc3RhdHVzIg0KPiArCWdkYl90ZXN0X211 bHRpcGxlICJpbmZvIHJlZ2lzdGVycyBzeXN0ZW0iICJjaGVjayBUTFMgcmVnIHZhbHVlcyIgew0K PiArCSAgICAtcmUgIl5pbmZvIHJlZ2lzdGVycyBzeXN0ZW1cclxuIiB7DQo+ICsJCWV4cF9jb250 aW51ZQ0KPiArCSAgICB9DQo+ICsJICAgIC1yZSAiXmkzODZfdGxzX2dkdF9cXGQgXFx7PHVuYXZh aWxhYmxlPiwgPHVuYXZhaWxhYmxlPiwNCj4gPHVuYXZhaWxhYmxlPiwgPHVuYXZhaWxhYmxlPlxc fVxyXG4iIHsNCj4gKwkJaW5jciB1bmF2YWlsYWJsZV90bHNfY291bnQNCj4gKwkJZXhwX2NvbnRp bnVlDQo+ICsJICAgIH0NCj4gKwkgICAgLXJlICJeaTM4Nl90bHNfZ2R0X1xcZCBcW15cclxuXF0r XHJcbiIgew0KPiArCQlpbmNyIHZhbGlkX3Rsc19jb3VudA0KPiArCQlleHBfY29udGludWUNCj4g KwkgICAgfQ0KPiArDQo+ICsJICAgIC1yZSAiXiQ6OmdkYl9wcm9tcHQgJCIgew0KPiArCQlnZGJf YXNzZXJ0IHskdmFsaWRfdGxzX2NvdW50ID09IDAgJiYgXA0KPiArCQkJCSR1bmF2YWlsYWJsZV90 bHNfY291bnQgPT0gM30gXA0KPiArCQkgICAgJGdkYl90ZXN0X25hbWUNCj4gKwkgICAgfQ0KPiAr CSAgICAtcmUgIl5cW15cclxuXF0rXHJcbiIgew0KPiArCQlleHBfY29udGludWUNCj4gKwkgICAg fQ0KPiArCX0NCj4gKw0KPiArCSMgQ2hlY2sgYSBUTFMgdmFyaWFibGUgaW4gdGhpcyB0aHJlYWQu DQo+ICsJZ2RiX3Rlc3QgInByaW50IGxvY2FsX3ZhciIgIiA9ICR0aHIiIFwNCj4gKwkgICAgImNo ZWNrIFRMUyB2YXJpYWJsZSBpbiB0aHJlYWQgJHRociINCj4gKyAgICB9DQo+ICt9DQo+ICsNCj4g KyMgR2VuZXJhdGUgYSBuYXRpdmUgY29yZSBmaWxlLiAgTG9hZCBpdCBpbnRvIEdEQiBhbmQgY2hl Y2sgdGhlIFRMUyAjDQo+ICtyZWdpc3RlcnMgY2FuIGJlIHJlYWQuDQo+ICtwcm9jX3dpdGhfcHJl Zml4IHRlc3RfbmF0aXZlX2NvcmUge30gew0KPiArICAgIHNldCBjb3JlZmlsZSBbY29yZV9maW5k ICQ6OmJpbmZpbGVdDQo+ICsgICAgaWYgeyAkY29yZWZpbGUgZXEgIiIgfSB7DQo+ICsJdW5zdXBw b3J0ZWQgInVuYWJsZSB0byBnZW5lcmF0ZSBjb3JlIGZpbGUiDQoNCkdpdmVuIHRoYXQgdGhpcyBp cyB1c3VhbGx5IGEgc2V0dXAgaXNzdWUsIEkgdGhpbmsgVU5URVNURUQgd291bGQgZml0IGJldHRl ciBoZXJlLg0KSSB0cmllZCB0byBtYWtlIHRoYXQgY29uc2lzdGVudCBpbiBvdXIgdGVzdHN1aXRl IHdpdGggdGhpcyBwYXRjaDoNCmh0dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWJpbnV0aWxz LWdkYi5naXQ7YT1jb21taXQ7aD04NTdlZjk1Y2Q5ZWI4N2ExNTQ4ZjFkNDk5OWNlMjMwYTQ1NGYx NmFjDQpTb3JyeSBmb3Igbm90IGJlaW5nIHRvbyBzcGVjaWZpYyBpbiB0aGUgZmlyc3QgcGxhY2Uu DQoNCj4gKwlyZXR1cm4NCj4gKyAgICB9DQo+ICsNCj4gKyAgICBsb2FkX2NvcmVfYW5kX3Rlc3Rf dGxzX3JlZ3MgJGNvcmVmaWxlIH0NCj4gKw0KPiArIyBSdW4gdGhlIHRlc3RzLg0KPiArdGVzdF90 bHNfcmVnX2F2YWlsYWJpbGl0eQ0KPiArdGVzdF9nY29yZV90bHMNCj4gK3Rlc3RfZ2NvcmVfbm9f dGxzDQo+ICt0ZXN0X25hdGl2ZV9jb3JlDQo+IGRpZmYgLS1naXQgYS9nZGIveDg2LWxpbnV4LW5h dC5jIGIvZ2RiL3g4Ni1saW51eC1uYXQuYyBpbmRleA0KPiA2NjBhOTA2Y2RiNi4uNThiN2I2Mzc5 ZmYgMTAwNjQ0DQo+IC0tLSBhL2dkYi94ODYtbGludXgtbmF0LmMNCj4gKysrIGIvZ2RiL3g4Ni1s aW51eC1uYXQuYw0KPiBAQCAtMjU0LDYgKzI1NCw3MyBAQCB4ODZfbGludXhfc3RvcmVfc3NwIChj b25zdCByZWdjYWNoZSAqcmVnY2FjaGUsDQo+IGNvbnN0IGludCB0aWQpDQo+ICAgICAgcGVycm9y X3dpdGhfbmFtZSAoXygiRmFpbGVkIHRvIHdyaXRlIHBsM19zc3AgcmVnaXN0ZXIiKSk7ICB9DQo+ IA0KPiArLyogQ29weSBmcm9tIEJVRkZFUiBpbnRvIFJFR0NBQ0hFLCBzdXBwbHlpbmcgdGhlIHRs cyBnZHQgZW50cnkgcmVnaXN0ZXJzLg0KPiArICAgVXNlIFJFR05VTSB0byBkZWNpZGUgZXhhY3Rs eSB3aGljaCByZWdpc3RlcnMgYXJlIGNvcGllZC4gICovDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ ICtpMzg2X3N1cHBseV90bHNfcmVncyAocmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtLA0K PiArCQkgICAgICAgZ2RiOjphcnJheV92aWV3PHVzZXJfZGVzYz4gYnVmZmVyKSB7DQoNCk5pdDog SSB0aGluayB0aGVyZSBpcyBhbiBpbmRlbnQgaXNzdWUgaGVyZS4gIFRoZXJlIGlzIG9uZSB3aGl0 ZXNwYWNlIHRvbw0KbXVjaCBpbiB0aGUgbGluZSBhYm92ZSAoYWxzbyBmb3IgaTM4Nl9jb2xsZWN0 X3Rsc19yZWdzIGJlbG93KS4NCg0KPiArICBnZGJfYXNzZXJ0IChidWZmZXIuc2l6ZSAoKSA9PSAz KTsNCj4gKw0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IDM7ICsraSkNCj4gKyAgICB7DQo+ICsg ICAgICBpZiAocmVnbnVtID09IC0xIHx8IHJlZ251bSA9PSBJMzg2X0xJTlVYX1RMU19HRFRfMCAr IGkpDQo+ICsJcmVnY2FjaGUtPnJhd19zdXBwbHkgKEkzODZfTElOVVhfVExTX0dEVF8wICsgaSwN Cj4gKwkJCSAgICAgIGJ1ZmZlci5zbGljZSAoaSwgMSkuZGF0YSAoKSk7DQo+ICsgICAgfQ0KPiAr fQ0KPiArDQo+ICsvKiBDb3B5IGZyb20gUkVHQ0FDSEUgaW50byBCVUZGRVIsIGNvbGxlY3Rpbmcg dGhlIHRscyBnZHQgZW50cnkNCj4gKyAgIHJlZ2lzdGVycy4gIFVTRSBSRUdOVU0gdG8gZGVjaWRl IHdoaWNoIHJlZ2lzdGVycyBhcmUgY29waWVkLiAgKi8NCg0KTml0OiBVU0UtPiBVc2UNCg0KPiAr DQo+ICtzdGF0aWMgdm9pZA0KPiAraTM4Nl9jb2xsZWN0X3Rsc19yZWdzIChyZWdjYWNoZSAqcmVn Y2FjaGUsIGludCByZWdudW0sDQo+ICsJCQlnZGI6OmFycmF5X3ZpZXc8dXNlcl9kZXNjPiBidWZm ZXIpDQo+ICt7DQo+ICsgIGdkYl9hc3NlcnQgKGJ1ZmZlci5zaXplICgpID09IDMpOw0KPiArDQo+ ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKQ0KPiArICAgIHsNCj4gKyAgICAgIGlmIChy ZWdudW0gPT0gLTEgfHwgcmVnbnVtID09IEkzODZfTElOVVhfVExTX0dEVF8wICsgaSkNCj4gKwly ZWdjYWNoZS0+cmF3X2NvbGxlY3QgKEkzODZfTElOVVhfVExTX0dEVF8wICsgaSwNCj4gKwkJCSAg ICAgICBidWZmZXIuc2xpY2UgKGksIDEpLmRhdGEgKCkpOw0KPiArICAgIH0NCj4gK30NCj4gKw0K PiArLyogU2VlIHg4Ni1saW51eC1uYXQuaC4gICAqLw0KDQpOaXQ6IG9uZSB3aGl0ZXNwYWNlIHRv byBtdWNoIGJlZm9yZSAiKi8iDQoNCj4gKw0KPiArdm9pZA0KPiAraTM4Nl9mZXRjaF90bHNfcmVn cyAocmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgdGlkLCBpbnQgcmVnbnVtKSB7DQo+ICsgIHVzZXJf ZGVzYyB0bHNfdWRbM107DQo+ICsgIGlmICghaTM4Nl9wdHJhY2VfZ2V0X3Rsc19kYXRhICh0aWQs IHRsc191ZCkpDQo+ICsgICAgcGVycm9yX3dpdGhfbmFtZSAoXygiQ291bGRuJ3QgZ2V0IFRMUyBh cmVhIGRhdGEiKSk7DQo+ICsNCj4gKyAgaTM4Nl9zdXBwbHlfdGxzX3JlZ3MgKHJlZ2NhY2hlLCBy ZWdudW0sIHRsc191ZCk7IH0NCj4gKw0KPiArLyogU2VlIHg4Ni1saW51eC1uYXQuaC4gICAqLw0K PiArDQo+ICt2b2lkDQo+ICtpMzg2X3N0b3JlX3Rsc19yZWdzIChyZWdjYWNoZSAqcmVnY2FjaGUs IGludCB0aWQsIGludCByZWdudW0pIHsNCj4gKyAgLyogUmVhZCBjdXJyZW50IHZhbHVlcyBpbiB0 byBUTFNfVUQuICAqLw0KPiArICB1c2VyX2Rlc2MgdGxzX3VkWzNdOw0KPiArICBpZiAoIWkzODZf cHRyYWNlX2dldF90bHNfZGF0YSAodGlkLCB0bHNfdWQpKQ0KPiArICAgIHBlcnJvcl93aXRoX25h bWUgKF8oIkNvdWxkbid0IGdldCBUTFMgYXJlYSBkYXRhIikpOw0KPiArDQo+ICsgIC8qIFdyaXRl IG5ldyB2YWx1ZXMgZnJvbSByZWdjYWNoZSBpbnRvIFRMU19VRC4gIE92ZXJ3cml0aW5nIHRoZQ0K PiArICAgICBjdXJyZW50IHZhbHVlcy4gICovDQo+ICsgIGkzODZfY29sbGVjdF90bHNfcmVncyAo cmVnY2FjaGUsIHJlZ251bSwgdGxzX3VkKTsNCj4gKw0KPiArICAvKiBXcml0ZSB0aGUgbmV3IHZh bHVlcyBiYWNrIHRvIHRoZSBrZXJuZWwuICAqLw0KPiArICBpZiAoIWkzODZfcHRyYWNlX3NldF90 bHNfZGF0YSAodGlkLCB0bHNfdWQpKQ0KPiArICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIkNvdWxk bid0IHdyaXRlIFRMUyBhcmVhIGRhdGEiKSk7IH0NCj4gKw0KPiArDQo+IA0KPiANCj4gKw0KPiAg SU5JVF9HREJfRklMRSAoeDg2X2xpbnV4X25hdCkNCj4gIHsNCj4gICAgLyogSW5pdGlhbGl6ZSB0 aGUgZGVidWcgcmVnaXN0ZXIgZnVuY3Rpb24gdmVjdG9ycy4gICovIGRpZmYgLS1naXQgYS9nZGIv eDg2LWxpbnV4LQ0KPiBuYXQuaCBiL2dkYi94ODYtbGludXgtbmF0LmggaW5kZXggYzQ1NTY1MzIy MjYuLjE2YTNiMzViNTQ3IDEwMDY0NA0KPiAtLS0gYS9nZGIveDg2LWxpbnV4LW5hdC5oDQo+ICsr KyBiL2dkYi94ODYtbGludXgtbmF0LmgNCj4gQEAgLTI1LDYgKzI1LDcgQEANCj4gICNpbmNsdWRl ICJnZGJzdXBwb3J0L3g4Ni14c3RhdGUuaCINCj4gICNpbmNsdWRlICJ4ODYtbmF0LmgiDQo+ICAj aW5jbHVkZSAibmF0L3g4Ni1saW51eC5oIg0KPiArI2luY2x1ZGUgImkzODYtbGludXgtdGRlcC5o Ig0KPiANCj4gIHN0cnVjdCB4ODZfbGludXhfbmF0X3RhcmdldCA6IHB1YmxpYyB4ODZfbmF0X3Rh cmdldDxsaW51eF9uYXRfdGFyZ2V0PiAgeyBAQCAtDQo+IDEwMyw0ICsxMDQsMTggQEAgZXh0ZXJu IHZvaWQgeDg2X2xpbnV4X2ZldGNoX3NzcCAocmVnY2FjaGUgKnJlZ2NhY2hlLA0KPiBjb25zdCBp bnQgdGlkKTsNCj4gDQo+ICBleHRlcm4gdm9pZCB4ODZfbGludXhfc3RvcmVfc3NwIChjb25zdCBy ZWdjYWNoZSAqcmVnY2FjaGUsIGNvbnN0IGludCB0aWQpOw0KPiANCj4gKy8qIEZldGNoIHRoZSB0 bHMgcmVsYXRlZCByZWdpc3RlcnMgZm9yIHRocmVhZCBUSUQgZnJvbSB0aGUga2VybmVsIGFuZCBw bGFjZQ0KPiArICAgdGhlbSBpbnRvIFJFR0NBQ0hFLiAgSWYgUkVHTlVNIGlzIC0xIHRoZW4gYWxs IDMgdGxzIHJlZ2lzdGVycyBhcmUNCj4gKyAgIGZldGNoZWQsIG90aGVyd2lzZSBvbmx5IHRoZSBy ZWdpc3RlciBtYXRjaGluZyBSRUdOVU0gaXMgZmV0Y2hlZC4gIEEgdGxzDQo+ICsgICByZWdpc3Rl ciBudW1iZXIgaXMgb25lIGZvciB3aGljaCBpMzg2X2lzX3Rsc19yZWdudW1fcCByZXR1cm5zIHRy dWUuDQo+ICsqLw0KPiArDQo+ICtleHRlcm4gdm9pZCBpMzg2X2ZldGNoX3Rsc19yZWdzIChyZWdj YWNoZSAqcmVnY2FjaGUsIGludCB0aWQsIGludA0KPiArcmVnbnVtKTsNCj4gKw0KPiArLyogU3Rv cmUgdGhlIHRscyByZWxhdGVkIHJlZ2lzdGVycyBmb3IgdGhyZWFkIFRJRCBmcm9tIFJFR0NBQ0hF IGJhY2sgaW4gdG8NCj4gKyAgIHRoZSBrZXJuZWwuICBJZiBSRUdOVU0gaXMgLTEgdGhlbiBhbGwg MyB0bHMgcmVnaXN0ZXJzIGFyZSBzdG9yZWQsDQo+ICsgICBvdGhlcndpc2Ugb25seSB0aGUgcmVn aXN0ZXIgbWF0Y2hpbmcgUkVHTlVNIGlzIHN0b3JlZC4gIEEgdGxzIHJlZ2lzdGVyDQo+ICsgICBu dW1iZXIgaXMgb25lIGZvciB3aGljaCBpMzg2X2lzX3Rsc19yZWdudW1fcCByZXR1cm5zIHRydWUu ICAqLw0KPiArDQo+ICtleHRlcm4gdm9pZCBpMzg2X3N0b3JlX3Rsc19yZWdzIChyZWdjYWNoZSAq cmVnY2FjaGUsIGludCB0aWQsIGludA0KPiArcmVnbnVtKTsNCj4gKw0KPiAgI2VuZGlmIC8qIEdE Ql9YODZfTElOVVhfTkFUX0ggKi8NCj4gZGlmZiAtLWdpdCBhL2dkYnNlcnZlci9saW51eC14ODYt bG93LmNjIGIvZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuY2MgaW5kZXgNCj4gMmFhODVlYzNkOWMu LjBmZDMyYTIyYjQyIDEwMDY0NA0KPiAtLS0gYS9nZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYw0K PiArKysgYi9nZGJzZXJ2ZXIvbGludXgteDg2LWxvdy5jYw0KPiBAQCAtNTMsNiArNTMsOCBAQA0K PiAgI2luY2x1ZGUgIm5hdC94ODYtbGludXgtZHJlZ3MuaCINCj4gICNpbmNsdWRlICJuYXQveDg2 LWxpbnV4LXRkZXNjLmgiDQo+IA0KPiArI2luY2x1ZGUgPGFzbS9sZHQuaD4NCj4gKw0KPiAgI2lm ZGVmIF9feDg2XzY0X18NCj4gIHN0YXRpYyB0YXJnZXRfZGVzY191cCB0ZGVzY19hbWQ2NF9saW51 eF9ub194bWw7ICAjZW5kaWYgQEAgLTEzMiw2DQo+ICsxMzQsMTAgQEAgcHVibGljOg0KPiANCj4g ICAgaW50IGdldF9pcGFfdGRlc2NfaWR4ICgpIG92ZXJyaWRlOw0KPiANCj4gKyAgLyogT3ZlcnJp ZGUgdGhlc2UgdG8gcHJvdmlkZSBhY2Nlc3MgdG8gaTM4NiBUTFMgc3RhdGUuICAqLyAgdm9pZA0K PiArIGZldGNoX3JlZ2lzdGVycyAocmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbm8pIG92ZXJy aWRlOyAgdm9pZA0KPiArIHN0b3JlX3JlZ2lzdGVycyAocmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQg cmVnbm8pIG92ZXJyaWRlOw0KPiArDQo+ICBwcm90ZWN0ZWQ6DQo+IA0KPiAgICB2b2lkIGxvd19h cmNoX3NldHVwICgpIG92ZXJyaWRlOw0KPiBAQCAtNTczLDYgKzU3OSwxMDUgQEAgc3RhdGljIHN0 cnVjdCByZWdzZXRfaW5mbyB4ODZfcmVnc2V0c1tdID0NCj4gICAgTlVMTF9SRUdTRVQNCj4gIH07 DQo+IA0KPiArLyogRmV0Y2ggVExTIGFyZWEgZGF0YSBmcm9tIHRoZSBrZXJuZWwgYW5kIGNvcHkg aXQgaW50byBSRUdDQUNIRS4gIFJFR05PDQo+ICsgICBpbmRpY2F0ZXMgd2hpY2ggVExTIGFyZWEg cmVnaXN0ZXIgaXMgd2FudGVkLCBvciAtMSBmb3IgYWxsIG9mIHRoZW0uDQo+ICsNCj4gKyAgIElm IGFueXRoaW5nIGdvZXMgd3JvbmcgdGhlbiB0aGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIHdpdGhv dXQgdXBkYXRpbmcNCj4gKyAgIFJFR0NBQ0hFLiAgKi8NCj4gKw0KPiArc3RhdGljIHZvaWQNCj4g K2ZldGNoX3Rsc19hcmVhX3JlZ2lzdGVyIChyZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdubykg ew0KPiArICBpbnQgdGlkID0gY3VycmVudF90aHJlYWQtPmlkLmx3cCAoKTsNCj4gKw0KPiArICAv KiBGZXRjaCBhbGwgdGhlIFRMUyBhcmVhIGRhdGEgZnJvbSB0aGUga2VybmVsLiAgKi8gIHVzZXJf ZGVzYw0KPiArIHRsc191ZFszXTsgIGlmICghaTM4Nl9wdHJhY2VfZ2V0X3Rsc19kYXRhICh0aWQs IHRsc191ZCkpDQo+ICsgICAgew0KPiArICAgICAgd2FybmluZyAoXygiZmFpbGVkIHRvIHJlYWQg VExTIEdEVCBlbnRyaWVzIGZvciByZWdpc3RlciByZWFkIikpOw0KPiArICAgICAgcmV0dXJuOw0K PiArICAgIH0NCj4gKw0KPiArICAvKiBOb3cgY29weSB0aGUgdmFsdWVzIGZyb20gVExTX1VEIGJh Y2sgaW50byB0aGUgcmVnaXN0ZXIgY2FjaGUuICAqLw0KPiArIGludCB0bHNfcmVnbm9bM10gPSB7 DQo+ICsgICAgZmluZF9yZWdubyAocmVnY2FjaGUtPnRkZXNjLCAiaTM4Nl90bHNfZ2R0XzAiKSwN Cj4gKyAgICBmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJpMzg2X3Rsc19nZHRfMSIpLA0K PiArICAgIGZpbmRfcmVnbm8gKHJlZ2NhY2hlLT50ZGVzYywgImkzODZfdGxzX2dkdF8yIikgIH07 DQo+ICsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBzdGQ6OnNpemUgKHRsc19yZWdubyk7ICsr aSkNCj4gKyAgICBzdXBwbHlfcmVnaXN0ZXIgKHJlZ2NhY2hlLCB0bHNfcmVnbm9baV0sICZ0bHNf dWRbaV0pOyB9DQo+ICsNCj4gKy8qIFNlZSBjbGFzcyBkZWNsYXJhdGlvbiBhYm92ZS4gICovDQo+ ICsNCj4gK3ZvaWQNCj4gK3g4Nl90YXJnZXQ6OmZldGNoX3JlZ2lzdGVycyAocmVnY2FjaGUgKnJl Z2NhY2hlLCBpbnQgcmVnbm8pIHsNCj4gKyAgbGludXhfcHJvY2Vzc190YXJnZXQ6OmZldGNoX3Jl Z2lzdGVycyAocmVnY2FjaGUsIHJlZ25vKTsNCj4gKw0KPiArI2lmZGVmIF9feDg2XzY0X18NCj4g KyAgaWYgKCFpc182NGJpdF90ZGVzYyAoY3VycmVudF90aHJlYWQpKSAjZW5kaWYNCj4gKyAgICB7 DQo+ICsgICAgICBmZXRjaF90bHNfYXJlYV9yZWdpc3RlciAocmVnY2FjaGUsIHJlZ25vKTsNCj4g KyAgICB9DQo+ICt9DQo+ICsNCj4gKy8qIENvcHkgVExTIGFyZWEgZGF0YSBmcm9tIFJFR0NBQ0hF IGJhY2sgdG8gdGhlIGtlcm5lbC4gIFJFR05PIGluZGljYXRlcw0KPiArICAgd2hpY2ggVExTIGFy ZWEgcmVnaXN0ZXIgc2hvdWxkIGJlIGNvcGllZCwgb3IgLTEgZm9yIGFsbCBvZiB0aGVtLiAgSWYN Cj4gKyAgIGFueXRoaW5nIGdvZXMgd3JvbmcgdGhlbiByZXR1cm4gaW1tZWRpYXRlbHk7IHNvbWUg b2YgdGhlIHJlZ2lzdGVyIG1heQ0KPiArICAgaGF2ZSBiZWVuIHdyaXR0ZW4gYmFjayB0byB0aGUg a2VybmVsIGluIHRoaXMgY2FzZS4gICovDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICtzdG9yZV90 bHNfYXJlYV9yZWdpc3RlcnMgKHJlZ2NhY2hlICpyZWdjYWNoZSwgaW50IHJlZ25vKSB7DQo+ICsg IGludCB0aWQgPSBjdXJyZW50X3RocmVhZC0+aWQubHdwICgpOw0KPiArDQo+ICsgIC8qIFJlYWQg Y3VycmVudCBUTFMgYXJlYSBkYXRhIGZyb20gdGhlIGtlcm5lbCBpbnRvIFRMU19VRC4gIFdlIHRo ZW4NCj4gKyAgICAgb3ZlcndyaXRlIHRoaXMgd2l0aCB2YWx1ZXMgZnJvbSBSRUdDQUNIRSwgYW5k IGZpbmFsbHksIGNvcHkgdGhlDQo+ICsgICAgIHVwZGF0ZWQgdmFsdWVzIGJhY2sgdG8gdGhlIGtl cm5lbC4gICovICB1c2VyX2Rlc2MgdGxzX3VkWzNdOyAgaWYNCj4gKyAoIWkzODZfcHRyYWNlX2dl dF90bHNfZGF0YSAodGlkLCB0bHNfdWQpKQ0KPiArICAgIHsNCj4gKyAgICAgIHdhcm5pbmcgKF8o ImZhaWxlZCB0byByZWFkIFRMUyBHRFQgZW50cmllcyBmb3IgcmVnaXN0ZXIgc3RvcmUiKSk7DQo+ ICsgICAgICByZXR1cm47DQo+ICsgICAgfQ0KPiArDQo+ICsgIGludCB0bHNfcmVnbm9bXSA9IHsN Cj4gKyAgICBmaW5kX3JlZ25vIChyZWdjYWNoZS0+dGRlc2MsICJpMzg2X3Rsc19nZHRfMCIpLA0K PiArICAgIGZpbmRfcmVnbm8gKHJlZ2NhY2hlLT50ZGVzYywgImkzODZfdGxzX2dkdF8xIiksDQo+ ICsgICAgZmluZF9yZWdubyAocmVnY2FjaGUtPnRkZXNjLCAiaTM4Nl90bHNfZ2R0XzIiKSAgfTsN Cj4gKw0KPiArICAvKiBOb3cgY29weSBkYXRhIGZyb20gUkVHQ0FDSEUgb3ZlciB0aGUgdG9wIG9m IHRoZSB2YWx1ZXMgd3JpdHRlbg0KPiArICAgICBpbnRvIFRMU19VRC4gICovDQo+ICsgIGZvciAo aW50IGkgPSAwOyBpIDwgc3RkOjpzaXplICh0bHNfcmVnbm8pOyArK2kpDQo+ICsgICAgY29sbGVj dF9yZWdpc3RlciAocmVnY2FjaGUsIHRsc19yZWdub1tpXSwgJnRsc191ZFtpXSk7DQo+ICsNCj4g KyAgLyogQW5kIHdyaXRlIHRoZSBjb250ZW50cyBvZiBUTFNfVUQgYmFjayB0byB0aGUga2VybmVs LiAgV2UgaWdub3JlIHRoZQ0KPiArICAgICByZXR1cm4gdmFsdWUgZnJvbSB0aGlzIGNhbGw7IGlm IGFueXRoaW5nIHdlbnQgd3JvbmcgdGhlbiB0aGVyZSdzDQo+ICsgICAgIG5vdGhpbmcgd2UgY2Fu IGRvIGFib3V0IGl0LiAgKi8NCj4gKyAgaWYgKCFpMzg2X3B0cmFjZV9zZXRfdGxzX2RhdGEgKHRp ZCwgdGxzX3VkKSkNCj4gKyAgICB3YXJuaW5nIChfKCJmYWlsZWQgdG8gd3JpdGUgdXBkYXRlZCBU TFMgR0RUIGVudHJpZXMgZm9yIHJlZ2lzdGVyDQo+ICsgc3RvcmUiKSk7DQo+ICsNCj4gK30NCj4g Kw0KPiArLyogU2VlIGNsYXNzIGRlY2xhcmF0aW9uIGFib3ZlLiAgKi8NCj4gKw0KPiArdm9pZA0K PiAreDg2X3RhcmdldDo6c3RvcmVfcmVnaXN0ZXJzIChyZWdjYWNoZSAqcmVnY2FjaGUsIGludCBy ZWdubykgew0KPiArICBsaW51eF9wcm9jZXNzX3RhcmdldDo6c3RvcmVfcmVnaXN0ZXJzIChyZWdj YWNoZSwgcmVnbm8pOw0KPiArDQo+ICsjaWZkZWYgX194ODZfNjRfXw0KPiArICBpZiAoIWlzXzY0 Yml0X3RkZXNjIChjdXJyZW50X3RocmVhZCkpICNlbmRpZg0KPiArICAgIHsNCj4gKyAgICAgIHN0 b3JlX3Rsc19hcmVhX3JlZ2lzdGVycyAocmVnY2FjaGUsIHJlZ25vKTsNCj4gKyAgICB9DQo+ICt9 DQo+ICsNCj4gIGJvb2wNCj4gIHg4Nl90YXJnZXQ6Omxvd19zdXBwb3J0c19icmVha3BvaW50cyAo KSAgew0KPiANCj4gYmFzZS1jb21taXQ6IDFkZGZkNGYzZWFjODU4Mjk0NzkzODAxZmE1MmQ2M2Qz NjA0MmI0YjMNCj4gLS0NCj4gMi40Ny4xDQo+IA0KDQpXaXRoIHRoZSBjb21tZW50IGZyb20gS2Vp dGggYW5kIHRoZSBuaXRzIGZpeGVkIHRoaXMgbGd0bS4NCg0KUmV2aWV3ZWQtQnk6IENocmlzdGlu YSBTY2hpbXBlIDxjaHJpc3RpbmEuc2NoaW1wZUBpbnRlbC5jb20+DQoNCkNocmlzdGluYQ0KDQoN CkludGVsIERldXRzY2hsYW5kIEdtYkgNClJlZ2lzdGVyZWQgQWRkcmVzczogRG9ybmFjaGVyIFN0 cmHDn2UgMSwgODU2MjIgRmVsZGtpcmNoZW4sIEdlcm1hbnkNClRlbDogKzQ5IDg5IDk5MSA0MzAs IHd3dy5pbnRlbC5kZQ0KTWFuYWdpbmcgRGlyZWN0b3JzOiBIYXJyeSBEZW1hcywgSmVmZnJleSBT Y2huZWlkZXJtYW4sIFlpbiBDaG9uZyBTb3JyZWxsDQpDaGFpcnBlcnNvbiBvZiB0aGUgU3VwZXJ2 aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUNClJlZ2lzdGVyZWQgU2VhdDogTXVuaWNoDQpDb21tZXJj aWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNw7xuY2hlbiBIUkIgMTg2OTI4Cg==