From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id WqXQMVf5FmkG8AAAWB0awg (envelope-from ) for ; Fri, 14 Nov 2025 04:41:43 -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=HC9uueL8; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id BAB061E0B8; Fri, 14 Nov 2025 04:41:43 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,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 C2FE81E057 for ; Fri, 14 Nov 2025 04:41:39 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 40C97385840D for ; Fri, 14 Nov 2025 09:41:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 40C97385840D 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=HC9uueL8 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) by sourceware.org (Postfix) with ESMTPS id 5442A3858C55 for ; Fri, 14 Nov 2025 09:37:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5442A3858C55 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 5442A3858C55 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=198.175.65.12 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1763113051; cv=fail; b=Xm4+HSMLbmtsMc6G/wg+/kvWViHZR9gHMuk0K4dwWJwxdMXbP3U0+VuQQnzghlL6dQk2tXaIIR1De5IiZsDkifS7NHsnYlwR4DnrIVmH7Z3lij66WuBmi8Sg01AxdIkiBlHz/JwAq4xKjCHKiQmNOJX7z084NCLYy6W0JMP68Ew= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1763113051; c=relaxed/simple; bh=tf+TYQL7dqp02akYJA0njI5p6Et2coCVfqLZQIu1XmI=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=RxYMmS13eLZYosklN1r24Hr//eoQ7DG7xD0LyywQtMJ0H0lO9S4UgvWb9oQd4KeBO9ltEkK7kU3WiuHDmjHYE/XswovNVy6DJiQ0qPtV2+eBX4FFU3L35btx+DjaqBh6Cw8ln0QxNYGiV0VRqoo1mvK2j5//oEwbKL4k2fW//nw= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5442A3858C55 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1763113052; x=1794649052; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=tf+TYQL7dqp02akYJA0njI5p6Et2coCVfqLZQIu1XmI=; b=HC9uueL8Mexa/yV0+EBD4uSRxJK+P1JJCaPGdydUAy5GCos7O7DGkcSL WnkriqqE69NrJ9GfG2TUIcLEwgRjTyEO/Y7KVYjDFRc/67znFX8czj0SC Y9pDuy19qneaK4cww7PIWRLQyW8OFwwbRxSSyliibaV7lP6xqkN76tsS6 l7T0PyhtehF4a+09f5/Rj3yfYBZS8/JjhgZrozxc1xwSYgOV53N0hvP+m 8QwhdmlzYI1k1glkOSHvSMHARq511pDMCqUrHIhFTyxdiNQU5ZreYYsAQ oBQnsE6YgFWyCm79my/Q7x78dVFoaxDX6yNyLVUckBC6z3l1We3Pvex1t g==; X-CSE-ConnectionGUID: eR4gACy/RlK/+LqpvPOCzQ== X-CSE-MsgGUID: bm5ZeZxoTqaNxpOaABcTPA== X-IronPort-AV: E=McAfee;i="6800,10657,11612"; a="76666118" X-IronPort-AV: E=Sophos;i="6.19,304,1754982000"; d="scan'208";a="76666118" Received: from orviesa010.jf.intel.com ([10.64.159.150]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Nov 2025 01:37:30 -0800 X-CSE-ConnectionGUID: w2DML4qlToykN7HnvcKqNw== X-CSE-MsgGUID: 1jgiq38qQ42gFEHoTvZ87A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.19,304,1754982000"; d="scan'208";a="189033174" Received: from orsmsx903.amr.corp.intel.com ([10.22.229.25]) by orviesa010.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Nov 2025 01:37:30 -0800 Received: from ORSMSX903.amr.corp.intel.com (10.22.229.25) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27; Fri, 14 Nov 2025 01:37:29 -0800 Received: from ORSEDG901.ED.cps.intel.com (10.7.248.11) by ORSMSX903.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.27 via Frontend Transport; Fri, 14 Nov 2025 01:37:29 -0800 Received: from CH5PR02CU005.outbound.protection.outlook.com (40.107.200.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; Fri, 14 Nov 2025 01:37:29 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=A0v5kpctR/jRJVaQEQoXSJuiEkeUn/FbG/I3vmo+MIiG5DneMAKYp4YkrQndpdCo2IdHyl9lQALeSYv6eb2OGyggjRjotVII60iIjbGQfth9wWK3aZhohy0w+iDC/fj+UQ1Q7mWIqiBz7sQX3Wa4AQms5IBMJInc/AtLwKJ4bBCzmTG0biOFiuoHfKmIWNlvZSyoTH8ZpM3k9Q7RrrNAsU0F5o9Ec9Tzefvj7pe2uhm3IKfEHhSz2Qst3TLooYYEAQVvuW4CTCdnr5kLTYqfKffMEmx3BuNNibMTfwbs3UCF2ZgxVIbMHGAbe8c50D5jW7n+9zKAMpcTW/hOb+bX6Q== 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=tpw00eNvWj8ftt17exVwrMzAVqUB/SIf0lQQ91m6j84=; b=AsrS14LhgIp8tPtT0zSiBTcIEA954Ein9ruAOVjzgcy1WZCfeTU+sjtXVj3XAsxnDu9Q2cWYGwXAmFhyG+Qe3Qb/ptFtvfTOWBICz5dUIFmdxDmFFOXpK4Cl5eOMI1wyqa36s8Yqk1j/HqFI4EhLwm59yrch4oNbPN/WX1jy/vQxNB8JTAXily57zkBk7ZnzyIJxETwx2uuT3oGDnGzMKGp8bWpYCBxPf0S/c47iVQQDRJFwmTmJSoZPlgz7/PQXwyTu4fVxXcZthFkGSTkj3bBsQrZS/tdfTb/rxFz624JcgT1EOkdRsueStqefyAN7MXA8/1fq11H5TUQAk7KDew== 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 SN7PR11MB7638.namprd11.prod.outlook.com (2603:10b6:806:34b::22) by IA4PR11MB9371.namprd11.prod.outlook.com (2603:10b6:208:56a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9320.17; Fri, 14 Nov 2025 09:37:15 +0000 Received: from SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::25b8:16dc:755e:34d1]) by SN7PR11MB7638.namprd11.prod.outlook.com ([fe80::25b8:16dc:755e:34d1%5]) with mapi id 15.20.9320.013; Fri, 14 Nov 2025 09:37:15 +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: AQHcTlwjOTBZ1JeBJEeapRgHC3O9qbTu1UYQgAI3PgCAACQl8A== Date: Fri, 14 Nov 2025 09:37:14 +0000 Message-ID: References: <730728a6858a3fcf4477ebe3895088c98f0fead2.1760450001.git.aburgess@redhat.com> <87ldk9zpxv.fsf@redhat.com> In-Reply-To: <87ldk9zpxv.fsf@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SN7PR11MB7638:EE_|IA4PR11MB9371:EE_ x-ms-office365-filtering-correlation-id: fa5f2620-e956-43da-e7c0-08de23616539 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|376014|1800799024|13003099007|38070700021; x-microsoft-antispam-message-info: =?utf-8?B?aTFlQlNWVkRvZXVKQjFNc242RzNTQ3FUcjVCdDQ5a1hXb004QTBLQ3lNb09t?= =?utf-8?B?MDdqSHBEVlQrVFJXNzlxWWVGWVhZQ1dRWEo5cWlOWXdvZUNldFJxcklyeDFC?= =?utf-8?B?YXRlQnVRM1JPOW1xUUVIYzdpeE0yZnFaUE1HNWo5dXRjSWJkMG1EdGlabmdm?= =?utf-8?B?VFljd3VTakdLam9rKzBmd1NtdzEyZ0lRSUcxTFJyenYrNGN4alF6cSsxek45?= =?utf-8?B?Nmw5Rm5LS0hFQmFERWpyNDVwSVptYU93RnRpamtNaWNHZWVlVnNyb3NNcE93?= =?utf-8?B?NzVzbnFsSmxKRzhSQmFiYnQzQVlDcFJuWkRZRmNkazBIdVlkWkx5RWNZc3Nx?= =?utf-8?B?d2FZUkpqeGp3MUNmd3pFbVdMVzZTaU5VajJoSWdpRlVDeDRVYWMyRUg0bVRF?= =?utf-8?B?RUFkZjJVTGlVSDRuTE5GRUdJR3N2QUtveWtXSjdvakxKMXI2T1oyc0hxdmQv?= =?utf-8?B?emdUUFJLeXRSY3k5Z2k5RFc2VUFFRmtKeHlaNkZrbFIxaXREdnI0U0VtblhF?= =?utf-8?B?N0lCa1R6SXpNalhrVU1UR2xHSW1ybS9iUUlFRjdMRzE4SndqUE1ReHNVd3J1?= =?utf-8?B?aHlFZG44M1NJZnZPRHBQWHJXcmdYN1FjbEcrdGp3RVlicllJdUE3K1dhTitR?= =?utf-8?B?MnZGYjhMKzgyMGV3Rm51YTRIdnYxTFVKWWVBQjIzY3ZSRHh1SDhNOE1OU0dh?= =?utf-8?B?RlMwRlpaU0ZBRmtjVHM5QVVKc2JEY3JkWDNLc2IvM2NMVlBNZ3YrSzRFRTdZ?= =?utf-8?B?WUtjaDBMZThML1I5Vit5MUJlcVcybHd6MTBETWtiOGlpQjFrS1d4YktKSno0?= =?utf-8?B?UXgyVjlFUklRUWxzc0VzbmtXWFIwUm9EV3RTa1RMalZ1d2Z4TDBsZVNWM1B3?= =?utf-8?B?Ky9jVTdOR0U4TzhEUkRIS3pndmZ5NXdlMHRMRERjemRkOE5ZdndJUmFTRytx?= =?utf-8?B?dGM0eWNEUFd3eHMrVVlaRmtycEVLQ1FKelFRUHBsRm44YWs5ZHNxWGlpQWRZ?= =?utf-8?B?QUYrZ0RjU2FEelVKdm1kd1pqenUxNmVtcVJUaGEvRzZ0eWlPdTQ4SGRyd2M0?= =?utf-8?B?UzJCTWRsdzg0MGg4c3NaL2tNaDVKU0R0Sm5vUUNrM1M4UnhrWTJHM2lPYkdi?= =?utf-8?B?THZ2VFFJdU9EOEp0aWJ1NXR5L0JYUGxSRFlqVDdBZ1ZRTmZHdnRia250Skxq?= =?utf-8?B?RTVxSFloREFmbkhEcWQxNVJMdXJTbkFxYW92N3YrYjkzUE9RYTNFMXUvVWxI?= =?utf-8?B?dkpDQWNtYXo0NnJMSFZ0SGFtdkk4eUNFdDRMaFkvaFArYXRpU1kwRVF4OG9P?= =?utf-8?B?VElKVHFKZXNBdjBDM0IzRkN6ekpNbm1DTUwrVFJEQ2tUWUgxWFpFNzQwb1pq?= =?utf-8?B?Vkx5SmlpNG5vcUZYMk5tSlVCQkxqT1BzUjNJc0tIa012VXpsNFkwQmRJYjNq?= =?utf-8?B?cDljTnVRckRGZnArSXpTS0I0TDZkRjJxR1pmOUtlekN4Z2xTQUYrVjNoZjdI?= =?utf-8?B?YUlPMU5kNm1LekJpMjdXbXFmQlFFNXlhU1NsNGRkZUxTc0NhNUJ1MEJlQzdm?= =?utf-8?B?MEEyMEZicGJiUXNsZHAzcy9ocVFvVnNCRjhaUzJLS1IwQkZvMjJVYVVUWHJn?= =?utf-8?B?ei9uM3Eyck95WU1sMk14V2lxQzRIZlU4MExOOVh2QWtwdXJuMStwdHJtZGc4?= =?utf-8?B?ZEczcndJd2FzSEp1M0lsMTJ0U1RuVW92ZlZyMWhpKys2b1NDemJwN2EwNENE?= =?utf-8?B?Ri8xY3JpNEZhRjkycmVsRUZVTXdSbkFBd2dtQTlrMnVNdGVQRFJZTGI4QmRa?= =?utf-8?B?QkNCWHgrVkIxUytBa2dMcWZMaVBjOXNFdVljY0dQdjZrV2JTZGV1Skt6Uk9i?= =?utf-8?B?RytvRG9jNDhmdFNWY3hpdHo0aU45SWZEZ0RiaWd2cHB6cDc5b3NZekc1WDB5?= =?utf-8?B?TEZzWE40TThXQ0NLOFJVR29lRU92N0g3dWhKQlRhWTlvN2xMd3Q2T1haWWJj?= =?utf-8?B?MThlM25hZkhBPT0=?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SN7PR11MB7638.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(376014)(1800799024)(13003099007)(38070700021); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OXB0cWJtTDJFYXUxVXBMcmViYnFmNkU4YzVmKzhjMUJYdFZ6OWMvdTdpeUZn?= =?utf-8?B?WmphQWd0dzRZWFcvVDJFUGJQUkU2RHhMcC94dXE0dFJ2eFNyUTNYWEpXQUxJ?= =?utf-8?B?ZHp4c1d2WkN3aVV0ek5naDJEMURNbmZ4NUp1VHpKV0FxdU9HMURlakxVRU90?= =?utf-8?B?UU9yV1FqdkV3UkFScCtXcU91NEdWMlNqZDFaT2NLTkZyaHZBNlpFYm1hM3Jt?= =?utf-8?B?U0dGTXRzOUpSWWJGSGpNSGlqWkdJWWdLbDN6WldpS0RGTVpVWWpWallzY3Fo?= =?utf-8?B?OFdlL25ZdkNpL2VlT3B1Q1pBRHBrVVN2QVFicU8wOTVGdDdrZ0FGVmNwTGF1?= =?utf-8?B?ZkV5Z2RIUXhkMWlWRWtIRUZHcGxYM3BsYnBCQzMrcGxlMWs0bFgxZTVLcnZB?= =?utf-8?B?K1piRlRoMkUyUjBLVXNEWmM1ZFJNaFU2UzVBa0pvYlVlcGI4V3JlYTg5bGw1?= =?utf-8?B?bVVLdlBaT0t1VXJDNGR5aVNDWkE3dVBvQnM0cTBSVmZJY29sVXJOZUZvQzRn?= =?utf-8?B?dnl0L3BNSjZtUUlBQXhkVFV1TEJ1NHFNcWtEdFRscXVZTWdUWmhDOUhmTitn?= =?utf-8?B?SDB4Ry9VYVBBcUg0Z2diaXFPOGtmTkt4a2xNNnVCTDFkRVlISHUrRGdmdUVS?= =?utf-8?B?S2hEc2lXSlJKdERCK0JTN2d2RGNvWjhCYi9VNWNwL1ArUWNabXlwUndPZlVQ?= =?utf-8?B?S3JaN3hXMVlSNFhKZm5vaDhNMEJnb2ExYkhDcTVHNkd4VjhZbmYvY1g1WE03?= =?utf-8?B?aHRxTkV0RFc5OXQ0Tnd4NGFVKzNCNDdXZHdiWVU3RnpxaG8yQWpCTEFiTjhZ?= =?utf-8?B?ZW5NMWE3Wkd3MWd3cHM0T0RGaXU3VGttTHY4Wkw4ZlJGYnR0QjBob0dCWDlv?= =?utf-8?B?WkNkTU11QUZXUVhQQVo5aG0vT1FJcjhmcU5najMvbktLQkJXRXh2M0R5aHh2?= =?utf-8?B?eGxqSnhQZzlwQ3JaVytvTVZJaEVoLytlYzhxMFNEc0duY2s0cXNYeTlpL1ZP?= =?utf-8?B?Y05aZ3ZkWVllTWxCd2ltWmdVcGJ1dCtOYm4xN2RHQlNNUnZtTVppeFE1c05X?= =?utf-8?B?WmtXK3hQSWYxalYweHF0NG9nczhKYk1tQ1NCWnZSUjJoZVJJcE9IcTJ5VmxF?= =?utf-8?B?YUtiWXA4QUsyNkVMNFJ6OGpZMmI0UFhWSWFtS0c0SVhMQzgzRWFGVWpieml3?= =?utf-8?B?akp0UDJoU2V5Y2Y0bTB3VWZwYzJHbmN5bW1DbC82K0RzT1pEM3dzMG1iMU1R?= =?utf-8?B?WGRkbmdGdmhDUFFUZk43ZWJuVVRhOFpZdHEwZERTSjFBVkpIRnJDTnY0QURp?= =?utf-8?B?V1gyb0xtM2cxNjNsRXFaM0o3WmdOU0FHMzVzb25JcmlqZjFTZXlvamkwR2ls?= =?utf-8?B?U1VDUmFoZ0U0ZEFuRytmTlQyYkYvSkx5QzROVkZMQ1YrV0dqeDJ4bzRqR2Ru?= =?utf-8?B?Qm9CZVRWOHBkSGFTMHk0OFJvcjY3ZE5OUmRpaDdxZm5Ed2VqSm1IQ1BCNGx5?= =?utf-8?B?MDNZNElsMm5wYjkyOGduSXFFekRZQUtJUmlTYk9PQ1doZWE4d1ZNTGNObFFi?= =?utf-8?B?ck5iN0JUcUVKZlpDVjR5K3UxNkFTYkZ0enhRdExrODBadUxuSVA2RE5wdDY3?= =?utf-8?B?cWNTUEh0a1J1WlNGY2dQTGtlWFN6OEJkTit4cmg1SHcxb1ZOUmJzNDJETDdS?= =?utf-8?B?dE5zdUhtOTR3dUFwMjNNOVZOREJuTCt4U1VQS2hYY1V1aXp4VitrL3pBTmk2?= =?utf-8?B?bmFOOXEvTDJpQ3psbHNnKyswKzVKRmI3QllmeW9CbzBUSUxiclRwbEN5eDh3?= =?utf-8?B?QUpzdlRYUEFqM21TZjdCZXNuY2NZdWRRTS84bm94bGpndXhFN2RNU2p2MFFR?= =?utf-8?B?SDRFK0U0NEorNEhpZUd4L09RanBPUTEwcCtEZmFwR1ppZVNRWkgzRGpSTUN4?= =?utf-8?B?aXQrVFNPb0htTDJJSHhJMGI0VjY2UmhMNXNIWENXdjBVSVFTSWNtYXcrRDBj?= =?utf-8?B?NU5NSHdRalBReWdmNkVtejFES0p3RURXdHhpVnlvbHY1THhtZjZxZG1MZG1P?= =?utf-8?B?UEZ1TU5YY1BZV0JTYTZIbnlHNVJsRzZEMUJtVmVRY2EvdUxxdERSbVF6Q3Qv?= =?utf-8?B?Q1JRcWF3dnEyMHRSdGlwclZvS25QY0Jrd3pXQnM0WVc4RkRuSE9TN0l1d0M3?= =?utf-8?B?cUE9PQ==?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN7PR11MB7638.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: fa5f2620-e956-43da-e7c0-08de23616539 X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Nov 2025 09:37:14.9713 (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: 8VYl2cb3iMVgpjDJC8jXUShJAF4GIetNFc4dyiWHhoJLIF1J1bMS6PnSDzOsQpTqSxuri4Z5gdgy6T0GbUIlHDQIgL4vvnvlGyE2JF6iS38= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR11MB9371 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 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1 cmdlc3NAcmVkaGF0LmNvbT4NCj4gU2VudDogRG9ubmVyc3RhZywgMTMuIE5vdmVtYmVyIDIwMjUg MjA6MzUNCj4gVG86IFNjaGltcGUsIENocmlzdGluYSA8Y2hyaXN0aW5hLnNjaGltcGVAaW50ZWwu Y29tPjsgZ2RiLQ0KPiBwYXRjaGVzQHNvdXJjZXdhcmUub3JnDQo+IENjOiBFbGkgWmFyZXRza2lp IDxlbGl6QGdudS5vcmc+OyBLZWl0aCBTZWl0eiA8a2VpdGhzQHJlZGhhdC5jb20+DQo+IFN1Ympl Y3Q6IFJFOiBbUEFUQ0h2NF0gZ2RiOiBpbmNsdWRlIE5UX0kzODZfVExTIG5vdGUgaW4gZ2VuZXJh dGVkIGNvcmUgZmlsZXMNCj4gDQo+ICJTY2hpbXBlLCBDaHJpc3RpbmEiIDxjaHJpc3RpbmEuc2No aW1wZUBpbnRlbC5jb20+IHdyaXRlczoNCj4gDQo+ID4gSGkgQW5kcmV3LA0KPiA+DQo+ID4gSSBv bmx5IGhhdmUgc29tZSBvcHRpb25hbCBjb21tZW50cyBhbmQgZm91bmQgYSBmZXcgbml0cywgcGxl YXNlIHNlZQ0KPiBiZWxvdy4NCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+PiBGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0LmNvbT4NCj4gPj4gU2Vu dDogTWl0dHdvY2gsIDUuIE5vdmVtYmVyIDIwMjUgMTQ6NTcNCj4gPj4gVG86IGdkYi1wYXRjaGVz QHNvdXJjZXdhcmUub3JnDQo+ID4+IENjOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1cmdlc3NAcmVkaGF0 LmNvbT47IFNjaGltcGUsIENocmlzdGluYQ0KPiA+PiA8Y2hyaXN0aW5hLnNjaGltcGVAaW50ZWwu Y29tPjsgRWxpIFphcmV0c2tpaSA8ZWxpekBnbnUub3JnPg0KPiA+PiBTdWJqZWN0OiBbUEFUQ0h2 NF0gZ2RiOiBpbmNsdWRlIE5UX0kzODZfVExTIG5vdGUgaW4gZ2VuZXJhdGVkIGNvcmUgZmlsZXMN Cj4gPj4NCj4gPj4gSW4gdjQ6DQo+ID4+DQo+ID4+ICAgLSBVcGRhdGVkIGJhc2VkIG9uIENocmlz dGluYSdzIGZlZWRiYWNrLg0KPiA+Pg0KPiA+PiAgIC0gUmVtb3ZlZCBleGNlc3NpdmUgdXNlIG9m ICdzdHJ1Y3QnIHRocm91Z2hvdXQgdGhlIHBhdGNoLg0KPiA+Pg0KPiA+PiAgIC0gRml4ZWQgd2hp dGVzcGFjZSBpc3N1ZSBpbiBjb21tZW50Lg0KPiA+Pg0KPiA+PiAgIC0gUmVuYW1lZCB0ZXN0IHRv IHJlbW92ZSAnbGludXgtJywgdGhpcyBpcyBpbmxpbmUgd2l0aCBhbGwgdGhlIG90aGVyDQo+ID4+ ICAgICBMaW51eCBzcGVjaWZpYyB0ZXN0cywgd2hpY2ggZG9uJ3QgaGF2ZSAnbGludXgnIGluIHRo ZWlyIG5hbWUuDQo+ID4+DQo+ID4+ICAgLSBDaGFuZ2VkICdyZXR1cm4gLTEnIHRvICdyZXR1cm4n IGluIHRoZSB0ZXN0IHNjcmlwdC4NCj4gPj4NCj4gPj4gICAtIFVwZGF0ZWQgdGVzdCB0byBoYW5k bGUgY2FzZSB3aGVyZSBrZXJuZWwgcHJvZHVjZWQgY29yZSBmaWxlDQo+ID4+ICAgICBkb2Vzbid0 IHdvcmssIGUuZy4gc3lzdGVtIGlzIGNvbmZpZ3VyZWQgdG8gbm90IGFsbG93IHRoZSBrZXJuZWwg dG8NCj4gPj4gICAgIGR1bXAgY29yZS4gIFRlc3Qgd2lsbCBub3cgcmVwb3J0ICd1bnN1cHBvcnRl ZCcuDQo+ID4+DQo+ID4+ICAgLSBVcGRhdGVkIGdkYnNlcnZlciBjaGFuZ2VzIHNvIGZldGNoX3Rs c19hcmVhX3JlZ2lzdGVyIGFuZA0KPiA+PiAgICAgc3RvcmVfdGxzX2FyZWFfcmVnaXN0ZXIgbm93 IHJldHVybiAndm9pZCcuICBUaGVzZSBmdW5jdGlvbnMgaGF2ZQ0KPiA+PiAgICAgYmVlbiB1cGRh dGVkIHRvIGdpdmUgYSB3YXJuaW5nIGlmIHNvbWV0aGluZyBnb2VzIHdyb25nLg0KPiA+Pg0KPiA+ PiAgIC0gUmViYXNlZCBvbnRvIHNvbWV0aGluZyBtb3JlIHJlY2VudCwgcmVyYW4gdGhlIHBhdGNo IHNwZWNpZmljIHRlc3QNCj4gPj4gICAgIG9ubHkgYXMgdGhlIGNoYW5nZXMgYWJvdmUgYXJlIGFs bCBtaW5vciBhbmQgc2hvdWxkbid0IGltcGFjdA0KPiA+PiAgICAgYW55dGhpbmcgb3V0c2lkZSBv ZiB0aGlzIGNoYW5nZS4NCj4gPj4NCj4gPj4gSW4gdjM6DQo+ID4+DQo+ID4+ICAgLSBGaXhlZCBk b2MgaXNzdWUgdGhhdCBFbGkgcG9pbnRlZCBvdXQuDQo+ID4+DQo+ID4+ICAgLSBSZWJhc2VkIHRv IGN1cnJlbnQgSEVBRCwgbm8gbWVyZ2VkIGNvbmZsaWN0cy4NCj4gPj4NCj4gPj4gSW4gdjI6DQo+ ID4+DQo+ID4+ICAgLSBSZWJhc2VkIHRvIGN1cnJlbnQgSEVBRCwgcmVzb2x2ZWQgbWVyZ2UgY29u ZmxpY3RzIHJlbGF0ZWQgdG8NCj4gPj4gICAgIHJlY2VudCBpMzg2IHJlZ2lzdGVyIGNoYW5nZXMu DQo+ID4+DQo+ID4+ICAgLSBVcGRhdGVkIHRlc3QgdG8gdGFrZSBhY2NvdW50IG9mIHJlY2VudCBj bGVhbl9yZXN0YXJ0IGNoYW5nZXMuDQo+ID4+DQo+ID4+ICAgLSBSZXRlc3RlZC4NCj4gPj4NCj4g Pj4gLS0tDQo+ID4+DQo+ID4+IFRoaXMgY29tbWl0IGV4dGVuZHMgR0RCIGZvciB4ODYvTGludXgg dG8gaW5jbHVkZSB0aGUgTlRfSTM4Nl9UTFMgbm90ZQ0KPiBpbg0KPiA+PiBnZW5lcmF0ZWQgY29y ZSBmaWxlcyAoaS5lLiBjcmVhdGVkIHdpdGggYGdlbmVyYXRlLWNvcmUtZmlsZWAgb3IgYGdjb3Jl YA0KPiBjb21tYW5kKS4NCj4gPj4gVGhpcyBub3RlIGNvbnRhaW5zIHRoZSAzIHBlci10aHJlYWQg VExTIHJlbGF0ZWQgR0RUIChnbG9iYWwgZGVzY3JpcHRvcg0KPiB0YWJsZSkNCj4gPj4gZW50cmll cywgYW5kIGlzIHByZXNlbnQgZm9yIGkzODYgYmluYXJpZXMsIG9yIHRob3NlIGNvbXBpbGVkIG9u IHg4Ni02NCB3aXRoDQo+IC0NCj4gPj4gbTMyLg0KPiA+Pg0KPiA+PiBUaGUgYXBwcm9hY2ggSSBo YXZlIHRha2VuIHRvIGFjaGlldmUgdGhpcywgaXMgdG8gbWFrZSB0aGUgMyBHRFQgZW50cmllcw0K PiA+PiBhdmFpbGFibGUgd2l0aGluIDMgbmV3IHJlZ2lzdGVycy4gIEkgYWRkZWQgdGhlc2UgcmVn aXN0ZXJzIHRvIHRoZQ0KPiA+PiBvcmcuZ251LmdkYi5pMzg2LmxpbnV4IHRhcmdldCBkZXNjcmlw dGlvbiBmZWF0dXJlLCBhcyB0aGlzIGZlYXR1cmUgc2VlbWVkDQo+ID4+IHBlcmZlY3RseSBuYW1l ZC4gIEFzIHRoZSBuZXcgcmVnaXN0ZXJzIGFyZSBvcHRpb25hbCBJIGRvbid0IHNlZSBhbnkgaGFy bSBpbg0KPiA+PiBleHRlbmRpbmcgdGhpcyBleGlzdGluZyBmZWF0dXJlLiAgSSBkaWQgY29uc2lk ZXIgYWRkaW5nIGEgbmV3IGZlYXR1cmUgd2l0aA0KPiBgdGxzYCBpbg0KPiA+PiB0aGUgbmFtZSwg YnV0IHRoaXMgc2VlbWVkIGV4Y2Vzc2l2ZSBnaXZlbiB0aGUgZXhpc3RpbmcgZmVhdHVyZS4NCj4g Pj4NCj4gPj4gV2hpY2ggR0RUIGVudHJpZXMgYXJlIHVzZWQgZm9yIFRMUyB2YXJpZXMgYmV0d2Vl biBpMzg2IGFuZCB4ODYtNjQNCj4gcnVubmluZyBpbg0KPiA+PiAzMi1iaXQgbW9kZS4gIEFzIHN1 Y2ggdGhlIHJlZ2lzdGVycyBhcmUgbmFtZWQgd2l0aCBzdWZmaXhlcyAwLCAxLCBhbmQgMiwNCj4g YW5kIGl0IGlzDQo+ID4+IGxlZnQgdG8gR0RCIG9yIGdkYnNlcnZlciwgdG8gZmluZCB0aGUgY29y cmVjdCBHRFQgZW50cmllcyAoYmFzZWQgb24gdGhlDQo+IHByZWNpc2UNCj4gPj4gdGFyZ2V0KSBh bmQgcGxhY2UgdGhlIGNvbnRlbnRzIGludG8gdGhlc2UgcmVnaXN0ZXJzLg0KPiA+Pg0KPiA+PiBX aXRoIHRoaXMgZG9uZSwgYWRkaW5nIHRoZSByZWxldmFudCByZWdzZXQgaXMgc3VmZmljaWVudCB0 byBnZXQgdGhlIHRscw0KPiBjb250ZW50cw0KPiA+PiBlbWl0dGVkIGFzIGEgY29yZSBmaWxlIG5v dGUuICBTdXBwb3J0IGZvciBlbWl0dGluZyB0aGUgbm90ZSBpbnRvIHRoZQ0KPiBnZW5lcmF0ZWQN Cj4gPj4gY29yZSBmaWxlIHJlbGllcyBvbiBzb21lIEJGRCBjaGFuZ2VzIHdoaWNoIHdlcmUgbWFk ZSBpbiBhbiBlYXJsaWVyDQo+IGNvbW1pdDoNCj4gPj4NCj4gPj4gICBjb21taXQgZWE2ZWMwMGZm NDUyMDg5NTczNWU0OTEzY2I5MGM5MzNjNzI5NmYwNA0KPiA+PiAgIERhdGU6ICAgRnJpIEp1bCAy NSAxOTo1MTo1OCAyMDI1ICswMTAwDQo+ID4+DQo+ID4+ICAgICAgIGJmZDogc3VwcG9ydCBmb3Ig TlRfMzg2X1RMUyBub3Rlcw0KPiA+Pg0KPiA+PiBUaGUgdGhyZWUgbmV3IHJlZ2lzdGVycyBhcmUg cmVhZGFibGUgYW5kIHdyaXRhYmxlLiAgV3JpdGluZyB0byBvbmUgb2YgdGhlDQo+IG5ldw0KPiA+ PiByZWdpc3RlcnMgd2lsbCB1cGRhdGUgdGhlIHJlbGV2YW50IGtlcm5lbCBHRFQgZW50cnkuDQo+ ID4+DQo+ID4+IEVhY2ggVExTIEdEVCBpcyByZXByZXNlbnRlZCBieSBhICdzdHJ1Y3QgdXNlcl9k ZXNjJyAoc2VlICdtYW4gMg0KPiA+PiBnZXRfdGhyZWFkX2FyZWEnIGZvciBkZXRhaWxzKSwgdGhl IGZpcnN0IDQgYnl0ZXMgb2YgZWFjaCAndXNlcl9kZXNjJw0KPiA+PiBpcyB0aGUgJ2VudHJ5X251 bWJlcicgZmllbGQsIHRoaXMgaXMgdGhlIGluZGV4IG9mIHRoZSBHRFQgd2l0aGluIHRoZSBrZXJu ZWwsDQo+IGFuZA0KPiA+PiBjYW5ub3QgYmUgbW9kaWZpZWQuICBBdHRlbXB0cyB0byB3cml0ZSB0 byB0aGlzIHJlZ2lvbiBvZiB0aGUgcmVnaXN0ZXIgd2lsbCBiZQ0KPiA+PiBpZ25vcmVkLCBidXQg d2lsbCBub3QgZ2l2ZSBhbiBlcnJvci4NCj4gPj4NCj4gPj4gSSBkaWQgY29uc2lkZXIgbm90IGlu Y2x1ZGluZyB0aGlzIHBhcnQgb2YgdGhlIHVzZXJfZGVzYyB3aXRoaW4gdGhlIHJlZ2lzdGVyDQo+ IHZhbHVlLA0KPiA+PiBidXQgdGhpcyBiZWNvbWVzIGRpZmZpY3VsdCB3aGVuIHdlIGNvbnNpZGVy IHJlbW90ZSB0YXJnZXRzLCBHREIgd291bGQNCj4gdGhlbg0KPiA+PiBuZWVkIHRvIGZpZ3VyZSBv dXQgd2hhdCB0aGVzZSBpbmRleGVzIHdlcmUgc28gdGhhdCB0aGUgY29yZSBmaWxlIG5vdGUgY291 bGQNCj4gYmUNCj4gPj4gZ2VuZXJhdGVkLiAgU3VyZSwgd2UgcHJvYmFibHkgY291bGQgZmlndXJl IHRoZSBjb3JyZWN0IGluZGV4IHZhbHVlcyBvdXQsDQo+IGJ1dCBJDQo+ID4+IGZpZ3VyZSwgd2h5 IGJvdGhlciwgd2UgY2FuIGp1c3QgcGFzcyB0aGVtIHRocm91Z2ggaW4gdGhlIHJlZ2lzdGVyIGFu ZA0KPiBrbm93IGZvcg0KPiA+PiBjZXJ0YWluIHRoYXQgd2UgaGF2ZSB0aGUgY29ycmVjdCB2YWx1 ZXMuDQo+ID4+DQo+ID4+IEZvciB0ZXN0aW5nLCB0aGVyZSdzIGEgbmV3IHRlc3QgdGhhdCBjb3Zl cnMgdGhlIGJhc2ljIGZ1bmN0aW9uYWxpdHksIGluY2x1ZGluZw0KPiA+PiByZWFkL3dyaXRlIGFj Y2VzcyB0byB0aGUgbmV3IHJlZ2lzdGVycywgYW5kIGNoZWNraW5nIHRoYXQgdGhlIE5UXzM4Nl9U TFMNCj4gbm90ZQ0KPiA+PiBpcyBhZGRlZCB0byB0aGUgY29yZSBmaWxlLCBhbmQgdGhhdCB0aGUg bm90ZSBjb250ZW50cyBjYW4gYmUgcmVhZCBieSBHREIuDQo+ID4+DQo+ID4+IEkgYWxzbyBtYW51 YWxseSB0ZXN0ZWQgb3BlbmluZyBhIGNvcmUgZmlsZSBnZW5lcmF0ZWQgZnJvbSBhbiBvbGQgR0RC IChzbw0KPiBubw0KPiA+PiBOVF8zODZfVExTIG5vdGVzKSB1c2luZyBhIEdEQiB3aXRoIHRoaXMg cGF0Y2guICBUaGlzIHdvcmtzIGZpbmUsIHRoZSBuZXcNCj4gdGxzDQo+ID4+IHJlZ2lzdGVycyBh cmUgbm90IGNyZWF0ZWQgYXMgdGhlIE5UX0dEQl9UREVTQyBub3RlICh0aGUgdGFyZ2V0DQo+IGRl c2NyaXB0aW9uKQ0KPiA+PiBkb2Vzbid0IGluY2x1ZGUgdGhlIG5ldyByZWdpc3RlcnMuDQo+ID4+ DQo+ID4+IE91dCBvZiBpbnRlcmVzdCBJIGFsc28gcGF0Y2hlZCBhbiBvbGQgdmVyc2lvbiBvZiBH REIgdG8gYXZvaWQgY3JlYXRpbmcgdGhlDQo+ID4+IE5UX0dEQl9UREVTQywgYW5kIGNyZWF0ZWQg YSBjb3JlIGZpbGUuICBUaGlzIGNvcmUgZmlsZSBjb250YWluZWQgbmVpdGhlcg0KPiB0aGUNCj4g Pj4gTlRfMzg2X1RMUyBub3IgTlRfR0RCX1RERVNDLiAgV2hlbiBvcGVuaW5nIHRoaXMgY29yZSBm aWxlIHdpdGggYQ0KPiBwYXRjaGVkDQo+ID4+IEdEQiwgdGhlIG5ldyByZWdpc3RlcnMgZG8gc2hv dyB1cCwgYnV0IHRoZWlyIGNvbnRlbnRzIGFyZSBnaXZlbiBhcw0KPiA+PiA8dW5hdmFpbGFibGU+ LCB3aGljaCBpcyBleGFjdGx5IHdoYXQgd2UnZCBleHBlY3QsIEdEQiBidWlsZHMgYSB0YXJnZXQN Cj4gPj4gZGVzY3JpcHRpb24gYmFzZWQgb24gdGhlIGFyY2hpdGVjdHVyZSwgdGhlIGFyY2hpdGVj dHVyZSBzYXlzIHRoZXNlIHJlZ2lzdGVycw0KPiA+PiBzaG91bGQgZXhpc3QsIGJ1dCB0aGV5IGFy ZSBtaXNzaW5nIGZyb20gdGhlIGNvcmUgZmlsZSwgaGVuY2UsIDx1bmF2YWlsYWJsZT4uDQo+ID4+ DQo+ID4+IEkgYWxzbyB0ZXN0ZWQgdXNpbmcgYSBwYXRjaGVkIEdEQiB3aXRoIGFuIG9sZCB2ZXJz aW9uIG9mIGdkYnNlcnZlciwgdGhlDQo+IG5ldw0KPiA+PiByZWdpc3RlcnMgZG9uJ3Qgc2hvdyB1 cCBhcyB0aGUgb2xkIGdkYnNlcnZlciBkb2Vzbid0IHNlbmQgdGhlbSBpbiBpdHMNCj4gdGFyZ2V0 DQo+ID4+IGRlc2NyaXB0aW9uLiAgQW5kIGEgY29yZSBmaWxlIGNyZWF0ZWQgdXNpbmcgdGhlIGdj b3JlIGNvbW1hbmQgaW4gc3VjaCBhDQo+IHNldHVwDQo+ID4+IGxlYXZlcyBubyBOVF8zODZfVExT IG5vdGVzIGFkZGVkLCB3aGljaCBpcyB3aGF0IHdlJ2QgZXhwZWN0Lg0KPiA+Pg0KPiA+PiBBbmQg SSBhbHNvIHRlc3RlZCBhIG5ldyBnZGJzZXJ2ZXIgcnVubmluZyB3aXRoIGFuIG9sZCB2ZXJzaW9u IG9mIEdEQi4NCj4gPj4gQXMgdGhlIG5ldyB0bHMgcmVnaXN0ZXJzIGFyZSBub3cgbWVudGlvbmVk IGluIHRoZSB0YXJnZXQgZGVzY3JpcHRpb24sIHRoZW4NCj4gPj4gb2J2aW91c2x5LCB0aGUgb2xk IEdEQiBkb2VzIHNlZSB0aGUgcmVnaXN0ZXJzLCBhbmQgcHJlc2VudCB0aGVtIHRvIHRoZQ0KPiB1 c2VyLA0KPiA+PiBob3dldmVyIEdEQiBkb2Vzbid0IGtub3cgaG93IHRvIHVzZSB0aGVzZSByZWdp c3RlcnMgdG8gY3JlYXRlIGENCj4gTlRfMzg2X1RMUywNCj4gPj4gc28gdGhhdCBub3RlIGlzbid0 IGFkZGVkIHRvIGFueSBjb3JlIGZpbGVzLg0KPiA+PiBBbHNvLCB3aGlsZSBhIG5ldyBHREIgcGxh Y2VzIHRoZSB0bHMgcmVnaXN0ZXJzIGludG8gdGhlICdzeXN0ZW0nDQo+ID4+IGdyb3VwLCBhbiBv bGQgR0RCIGRvZXNuJ3QgZG8gdGhpcywgc28gdGhlIHJlZ2lzdGVycyBlbmQgdXAgaW4gdGhlICdn ZW5lcmFsJw0KPiA+PiBncm91cCBieSBkZWZhdWx0LiAgVGhpcyBtZWFucyB0aGV5IHNob3cgdXAg d2l0aGluICdpbmZvIHJlZ2lzdGVycycgb3V0cHV0Lg0KPiBUaGlzDQo+ID4+IGlzbid0IGlkZWFs LCBidXQgdGhlcmUncyBub3QgbXVjaCB0aGF0IGNhbiBiZSBkb25lIGFib3V0IHRoaXMuDQo+ID4+ DQo+ID4+IE92ZXJhbGwsIEkgZmVlbCB0aGUgY29tYmluYXRpb25zIG9mIG9sZCBhbmQgbmV3IHRv b2xzIGhhcyBiZWVuIHRlc3RlZCwgYW5kDQo+IHRoZQ0KPiA+PiBiZWhhdmlvdXJzIGFyZSB3aGF0 IHdlJ2Qgd2FudCBvciBleHBlY3QuDQo+ID4+DQo+ID4+IEknbSB0YWdnaW5nIHRoaXMgY29tbWl0 IHdpdGggUFIgZ2RiLzE1NTkxLCBldmVuIHRob3VnaCB0aGlzIHBhdGNoIGlzbid0DQo+ID4+IGRp cmVjdGx5IHJlbGF0ZWQuICBUaGF0IGJ1ZyBpcyBmb3IgaW1wcm92aW5nIEdEQidzIHRlc3Rpbmcg b2YgVExTIHN1cHBvcnQgaW4NCj4gY29yZQ0KPiA+PiBmaWxlcy4gIFRoZSB0ZXN0IGluIHRoaXMg Y29tbWl0IGRvZXMgZG8gc29tZSB2ZXJ5IHNpbXBsZSByZWFkaW5nIG9mIGEgVExTDQo+ID4+IHZh cmlhYmxlLCBidXQgdGhlcmUncyBvbmx5IHR3byB0aHJlYWRzLCBhbmQgb25lIFRMUyB2YXJpYWJs ZSwgc28gaXQncyBub3QNCj4gPj4gZXh0ZW5zaXZlLiAgQWRkaXRpb25hbGx5LCB0aGUgdGVzdCBp biB0aGlzIGNvbW1pdCBpcyB4ODYgb25seSwgc28gdGhpcyBzaG91bGQNCj4gbm90IGJlDQo+ID4+ IGNvbnNpZGVyZWQgYSBmdWxsIHJlc29sdXRpb24gdG8gdGhhdCBidWcuICBCdXQgc3RpbGwsIGl0 J3Mgc29tZXRoaW5nLg0KPiA+Pg0KPiA+PiBCdWc6IGh0dHBzOi8vc291cmNld2FyZS5vcmcvYnVn emlsbGEvc2hvd19idWcuY2dpP2lkPTE1NTkxDQo+ID4+DQo+ID4+IFJldmlld2VkLUJ5OiBFbGkg WmFyZXRza2lpIDxlbGl6QGdudS5vcmc+DQo+ID4+IC0tLQ0KPiA+PiAgZ2RiL05FV1MgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArDQo+ID4+ICBnZGIvYW1kNjQtbGludXgt bmF0LmMgICAgICAgICAgICAgICAgICAgIHwgIDI2ICstDQo+ID4+ICBnZGIvZG9jL2dkYi50ZXhp bmZvICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstDQo+ID4+ICBnZGIvZmVhdHVyZXMvaTM4 Ni8zMmJpdC1saW51eC5jICAgICAgICAgIHwgICA3ICsNCj4gPj4gIGdkYi9mZWF0dXJlcy9pMzg2 LzMyYml0LWxpbnV4LnhtbCAgICAgICAgfCAgIDUgKw0KPiA+PiAgZ2RiL2kzODYtbGludXgtbmF0 LmMgICAgICAgICAgICAgICAgICAgICB8ICAyMSArKw0KPiA+PiAgZ2RiL2kzODYtbGludXgtdGRl cC5jICAgICAgICAgICAgICAgICAgICB8IDE3NCArKysrKysrKysrKy0NCj4gPj4gIGdkYi9pMzg2 LWxpbnV4LXRkZXAuaCAgICAgICAgICAgICAgICAgICAgfCAgMTUgKw0KPiA+PiAgZ2RiL2kzODYt dGRlcC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSArDQo+ID4+ICBnZGIvbmF0L2Ft ZDY0LWxpbnV4LmggICAgICAgICAgICAgICAgICAgIHwgIDI5ICsrDQo+ID4+ICBnZGIvbmF0L2kz ODYtbGludXguaCAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsNCj4gPj4gIGdkYi9uYXQveDg2 LWxpbnV4LmMgICAgICAgICAgICAgICAgICAgICAgfCAgNDQgKysrDQo+ID4+ICBnZGIvbmF0L3g4 Ni1saW51eC5oICAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsNCj4gPj4gIGdkYi90ZXN0c3Vp dGUvZ2RiLmFyY2gvaTM4Ni10bHMtcmVncy5jICAgfCAgNzQgKysrKysNCj4gPj4gIGdkYi90ZXN0 c3VpdGUvZ2RiLmFyY2gvaTM4Ni10bHMtcmVncy5leHAgfCAzMzUNCj4gKysrKysrKysrKysrKysr KysrKysrKysNCj4gPj4gIGdkYi94ODYtbGludXgtbmF0LmMgICAgICAgICAgICAgICAgICAgICAg fCAgNjcgKysrKysNCj4gPj4gIGdkYi94ODYtbGludXgtbmF0LmggICAgICAgICAgICAgICAgICAg ICAgfCAgMTUgKw0KPiA+PiAgZ2Ric2VydmVyL2xpbnV4LXg4Ni1sb3cuY2MgICAgICAgICAgICAg ICB8IDEwNSArKysrKysrDQo+ID4+ICAxOCBmaWxlcyBjaGFuZ2VkLCA5NTUgaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+PiBnZGIvbmF0L2FtZDY0 LWxpbnV4LmggIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiBnZGIvdGVzdHN1aXRlL2dkYi5hcmNoL2kz ODYtdGxzLQ0KPiA+PiByZWdzLmMNCj4gPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBnZGIvdGVzdHN1 aXRlL2dkYi5hcmNoL2kzODYtdGxzLXJlZ3MuZXhwDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9n ZGIvTkVXUyBiL2dkYi9ORVdTDQo+ID4+IGluZGV4IDA5N2Q4ZGEzNTBiLi45YzBlYmQ5OGIxOCAx MDA2NDQNCj4gPj4gLS0tIGEvZ2RiL05FV1MNCj4gPj4gKysrIGIvZ2RiL05FV1MNCj4gPj4gQEAg LTE2Miw2ICsxNjIsMTAgQEAgcUV4ZWNBbmRBcmdzDQo+ID4+ICAgIEluIHN5c3RlbXMgdGhhdCBk b24ndCBzdXBwb3J0IGxpbmtlciBuYW1lc3BhY2VzLCBvciBpZiB0aGUgaW5mZXJpb3IgaGFzbid0 DQo+ID4+ICAgIHN0YXJ0ZWQgeWV0LCB0aGVzZSBhbHdheXMgcmV0dXJuIHRoZSBpbnRlZ2VyIDAu DQo+ID4+DQo+ID4+ICsqIFRoZSAnb3JnLmdudS5nZGIuaTM4Ni5saW51eCcgdGFyZ2V0IGRlc2Ny aXB0aW9uIGZlYXR1cmUgY2FuIG5vdw0KPiA+PiArICBjb250YWluIHRocmVlIGFkZGl0aW9uYWwg cmVnaXN0ZXJzIHdoaWNoIHByb3ZpZGUgYWNjZXNzIHRvIHRoZSBUTFMNCj4gPj4gKyAgcmVsYXRl ZCBHRFQgZW50cmllcyBvbiBpMzg2IChhbmQgeDg2LTY0IHdoZW4gY29tcGlsaW5nIHdpdGggLW0z MikuDQo+ID4+ICsNCj4gPj4gICogQWRkIHJlY29yZCBmdWxsIHN1cHBvcnQgZm9yIHJ2NjRnYyBh cmNoaXRlY3R1cmVzDQo+ID4+DQo+ID4+ICAqIERlYnVnZ2luZyBMaW51eCBwcm9ncmFtcyB0aGF0 IHVzZSBBQXJjaDY0IEd1YXJkZWQgQ29udHJvbCBTdGFja3MgaXMNCj4gbm93DQo+ID4+IGRpZmYg LS1naXQgYS9nZGIvYW1kNjQtbGludXgtbmF0LmMgYi9nZGIvYW1kNjQtbGludXgtbmF0LmMgaW5k ZXgNCj4gPj4gOTZhY2ZkYTdkMDAuLjUzYTkyZjg5OTU3IDEwMDY0NA0KPiA+PiAtLS0gYS9nZGIv YW1kNjQtbGludXgtbmF0LmMNCj4gPj4gKysrIGIvZ2RiL2FtZDY0LWxpbnV4LW5hdC5jDQo+ID4+ IEBAIC0zOCw2ICszOCw5IEBADQo+ID4+ICAjaW5jbHVkZSAieDg2LWxpbnV4LW5hdC5oIg0KPiA+ PiAgI2luY2x1ZGUgIm5hdC9saW51eC1wdHJhY2UuaCINCj4gPj4gICNpbmNsdWRlICJuYXQvYW1k NjQtbGludXgtc2lnaW5mby5oIg0KPiA+PiArI2luY2x1ZGUgIm5hdC9pMzg2LWxpbnV4LmgiDQo+ ID4+ICsNCj4gPj4gKyNpbmNsdWRlIDxhc20vbGR0Lmg+DQo+ID4+DQo+ID4+ICAvKiBUaGlzIGRl ZmluaXRpb24gY29tZXMgZnJvbSBwcmN0bC5oLiAgS2VybmVscyBvbGRlciB0aGFuIDIuNS42NA0K PiA+PiAgICAgZG8gbm90IGhhdmUgaXQuICAqLw0KPiA+PiBAQCAtODksNyArOTIsOCBAQCBzdGF0 aWMgaW50IGFtZDY0X2xpbnV4X2dyZWdzZXQzMl9yZWdfb2Zmc2V0W10gPQ0KPiA+PiAgICAtMSwJ CQkJICAvKiBQS0VZUyByZWdpc3RlciBQS1JVICAqLw0KPiA+PiAgICAtMSwJCQkJICAvKiBTU1Ag cmVnaXN0ZXIuICAqLw0KPiA+PiAgICAtMSwgLTEsCQkJICAvKiBmcy9ncyBiYXNlIHJlZ2lzdGVy cy4gICovDQo+ID4+IC0gIE9SSUdfUkFYICogOAkJCSAgLyogIm9yaWdfZWF4IiAgKi8NCj4gPj4g KyAgT1JJR19SQVggKiA4LAkJCSAgLyogIm9yaWdfZWF4IiAgKi8NCj4gPj4gKyAgLTEsIC0xLCAt MSwJCQkgIC8qIFRMUyBHRFQgcmVnczogaTM4Nl90bHNfZ2R0XzAuLi4yLiAgKi8NCj4gPj4gIH07 DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IEBAIC0yMzYsNyArMjQwLDEzIEBAIGFtZDY0 X2xpbnV4X25hdF90YXJnZXQ6OmZldGNoX3JlZ2lzdGVycyAoc3RydWN0DQo+ID4+IHJlZ2NhY2hl ICpyZWdjYWNoZSwgaW50IHJlZ251bSkNCj4gPj4NCj4gPj4gICAgaWYgKHJlZ251bSA9PSAtMSB8 fCAhYW1kNjRfbmF0aXZlX2dyZWdzZXRfc3VwcGxpZXNfcCAoZ2RiYXJjaCwNCj4gcmVnbnVtKSkN Cj4gPj4gICAgICB7DQo+ID4+IC0gICAgICBlbGZfZnByZWdzZXRfdCBmcHJlZ3M7DQo+ID4+ICsg ICAgICBpZiAocmVnbnVtID09IC0xIHx8IGkzODZfaXNfdGxzX3JlZ251bV9wIChyZWdudW0pKQ0K PiA+PiArCXsNCj4gPj4gKwkgIGlmICh0ZGVwLT5pMzg2X2xpbnV4X3RscykNCj4gPj4gKwkgICAg aTM4Nl9mZXRjaF90bHNfcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbnVtKTsNCj4gPj4gKwkgIGlm IChyZWdudW0gIT0gLTEpDQo+ID4+ICsJICAgIHJldHVybjsNCj4gPj4gKwl9DQo+ID4+DQo+ID4+ ICAgICAgICBpZiAoaGF2ZV9wdHJhY2VfZ2V0cmVnc2V0ID09IFRSSUJPT0xfVFJVRSkNCj4gPj4g IAl7DQo+ID4+IEBAIC0yNjYsNiArMjc2LDggQEAgYW1kNjRfbGludXhfbmF0X3RhcmdldDo6ZmV0 Y2hfcmVnaXN0ZXJzIChzdHJ1Y3QNCj4gPj4gcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVt KQ0KPiA+PiAgCX0NCj4gPj4gICAgICAgIGVsc2UNCj4gPj4gIAl7DQo+ID4+ICsJICBlbGZfZnBy ZWdzZXRfdCBmcHJlZ3M7DQo+ID4+ICsNCj4gPj4gIAkgIGlmIChwdHJhY2UgKFBUUkFDRV9HRVRG UFJFR1MsIHRpZCwgMCwgKGxvbmcpICZmcHJlZ3MpIDwgMCkNCj4gPj4gIAkgICAgcGVycm9yX3dp dGhfbmFtZSAoXygiQ291bGRuJ3QgZ2V0IGZsb2F0aW5nIHBvaW50IHN0YXR1cyIpKTsNCj4gPj4N Cj4gPj4gQEAgLTMwOCw3ICszMjAsMTMgQEAgYW1kNjRfbGludXhfbmF0X3RhcmdldDo6c3RvcmVf cmVnaXN0ZXJzIChzdHJ1Y3QNCj4gPj4gcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbnVtKQ0K PiA+Pg0KPiA+PiAgICBpZiAocmVnbnVtID09IC0xIHx8ICFhbWQ2NF9uYXRpdmVfZ3JlZ3NldF9z dXBwbGllc19wIChnZGJhcmNoLA0KPiByZWdudW0pKQ0KPiA+PiAgICAgIHsNCj4gPj4gLSAgICAg IGVsZl9mcHJlZ3NldF90IGZwcmVnczsNCj4gPj4gKyAgICAgIGlmIChyZWdudW0gPT0gLTEgfHwg aTM4Nl9pc190bHNfcmVnbnVtX3AgKHJlZ251bSkpDQo+ID4+ICsJew0KPiA+PiArCSAgaWYgKHRk ZXAtPmkzODZfbGludXhfdGxzKQ0KPiA+PiArCSAgICBpMzg2X3N0b3JlX3Rsc19yZWdzIChyZWdj YWNoZSwgdGlkLCByZWdudW0pOw0KPiA+PiArCSAgaWYgKHJlZ251bSAhPSAtMSkNCj4gPj4gKwkg ICAgcmV0dXJuOw0KPiA+PiArCX0NCj4gPj4NCj4gPj4gICAgICAgIGlmIChoYXZlX3B0cmFjZV9n ZXRyZWdzZXQgPT0gVFJJQk9PTF9UUlVFKQ0KPiA+PiAgCXsNCj4gPj4gQEAgLTMzNyw2ICszNTUs OCBAQCBhbWQ2NF9saW51eF9uYXRfdGFyZ2V0OjpzdG9yZV9yZWdpc3RlcnMgKHN0cnVjdA0KPiA+ PiByZWdjYWNoZSAqcmVnY2FjaGUsIGludCByZWdudW0pDQo+ID4+ICAJfQ0KPiA+PiAgICAgICAg ZWxzZQ0KPiA+PiAgCXsNCj4gPj4gKwkgIGVsZl9mcHJlZ3NldF90IGZwcmVnczsNCj4gPj4gKw0K PiA+PiAgCSAgaWYgKHB0cmFjZSAoUFRSQUNFX0dFVEZQUkVHUywgdGlkLCAwLCAobG9uZykgJmZw cmVncykgPCAwKQ0KPiA+PiAgCSAgICBwZXJyb3Jfd2l0aF9uYW1lIChfKCJDb3VsZG4ndCBnZXQg ZmxvYXRpbmcgcG9pbnQgc3RhdHVzIikpOw0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZ2RiL2Rv Yy9nZGIudGV4aW5mbyBiL2dkYi9kb2MvZ2RiLnRleGluZm8gaW5kZXgNCj4gPj4gODIxZjNlZDRi MDUuLmI4YjcwYWY5MzFhIDEwMDY0NA0KPiA+PiAtLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvDQo+ ID4+ICsrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8NCj4gPj4gQEAgLTUwMzExLDggKzUwMzExLDE1 IEBAIGkzODYgRmVhdHVyZXMNCj4gPj4gIEBzYW1we3ltbTBofSB0aHJvdWdoIEBzYW1we3ltbTE1 aH0gZm9yIGFtZDY0ICBAZW5kIGl0ZW1pemUNCj4gPj4NCj4gPj4gLVRoZSBAc2FtcHtvcmcuZ251 LmdkYi5pMzg2LmxpbnV4fSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSXQgc2hvdWxkIC0NCj4gZGVz Y3JpYmUgYQ0KPiA+PiBzaW5nbGUgcmVnaXN0ZXIsIEBzYW1we29yaWdfZWF4fS4NCj4gPj4gK1Ro ZSBAc2FtcHtvcmcuZ251LmdkYi5pMzg2LmxpbnV4fSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSWYg dGhlIGZlYXR1cmUNCj4gPj4gK2lzIHByZXNlbnQsIHRoZW4gaXQgc2hvdWxkIGRlc2NyaWJlIHRo ZSAzMiBiaXQgcmVnaXN0ZXIsIEBzYW1we29yaWdfZWF4fS4NCj4gPj4gKw0KPiA+PiArQWRkaXRp b25hbGx5LCB0aGUgQHNhbXB7b3JnLmdudS5nZGIuaTM4Ni5saW51eH0gZmVhdHVyZSBjYW4gb3B0 aW9uYWxseQ0KPiA+PiArY29udGFpbiB0aHJlZSAxMjggYml0IHJlZ2lzdGVycyBjYWxsZWQgQHNh bXB7aTM4Nl90bHNfZ2R0XzB9LA0KPiA+PiArQHNhbXB7aTM4Nl90bHNfZ2R0XzF9LCBhbmQgQHNh bXB7aTM4Nl90bHNfZ2R0XzJ9LiAgRWFjaCBvZiB0aGVzZQ0KPiA+PiArcmVnaXN0ZXJzIGNvbnRh aW5zIG9uZSAxNiBieXRlIEBzYW1we3N0cnVjdCB1c2VyX2Rlc2N9IChzZWUgQGtiZHttYW4NCj4g Pj4gKzIgZ2V0X3RocmVhZF9hcmVhfSkgb2JqZWN0IHdoaWNoIGRlc2NyaWJlcyBvbmUgb2YgdGhl IHRocmVlIFRMUyByZWxhdGVkDQo+ID4+ICtHRFQgZW50cmllcy4NCj4gPj4NCj4gPj4gIFRoZSBA c2FtcHtvcmcuZ251LmdkYi5pMzg2LnNlZ21lbnRzfSBmZWF0dXJlIGlzIG9wdGlvbmFsLiAgSXQg c2hvdWxkDQo+ID4+IGRlc2NyaWJlIHR3byBzeXN0ZW0gcmVnaXN0ZXJzOiBAc2FtcHtmc19iYXNl fSBhbmQgQHNhbXB7Z3NfYmFzZX0uDQo+ID4+IGRpZmYgLS1naXQgYS9nZGIvZmVhdHVyZXMvaTM4 Ni8zMmJpdC1saW51eC5jIGIvZ2RiL2ZlYXR1cmVzL2kzODYvMzJiaXQtDQo+IGxpbnV4LmMNCj4g Pj4gaW5kZXggMzI4OWYwN2QzMzIuLjZmYmE4YTY4ODBiIDEwMDY0NA0KPiA+PiAtLS0gYS9nZGIv ZmVhdHVyZXMvaTM4Ni8zMmJpdC1saW51eC5jDQo+ID4+ICsrKyBiL2dkYi9mZWF0dXJlcy9pMzg2 LzMyYml0LWxpbnV4LmMNCj4gPj4gQEAgLTksNyArOSwxNCBAQCBjcmVhdGVfZmVhdHVyZV9pMzg2 XzMyYml0X2xpbnV4IChzdHJ1Y3QgdGFyZ2V0X2Rlc2MNCj4gPj4gKnJlc3VsdCwgbG9uZyByZWdu dW0pDQo+ID4+ICAgIHN0cnVjdCB0ZGVzY19mZWF0dXJlICpmZWF0dXJlOw0KPiA+Pg0KPiA+PiAg ICBmZWF0dXJlID0gdGRlc2NfY3JlYXRlX2ZlYXR1cmUgKHJlc3VsdCwgIm9yZy5nbnUuZ2RiLmkz ODYubGludXgiKTsNCj4gPj4gKyAgdGRlc2NfdHlwZSAqZWxlbWVudF90eXBlOw0KPiA+PiArICBl bGVtZW50X3R5cGUgPSB0ZGVzY19uYW1lZF90eXBlIChmZWF0dXJlLCAidWludDMyIik7DQo+ID4+ ICsgdGRlc2NfY3JlYXRlX3ZlY3RvciAoZmVhdHVyZSwgImkzODZfdGxzX2dkdF9yZWciLCBlbGVt ZW50X3R5cGUsIDQpOw0KPiA+PiArDQo+ID4+ICAgIHJlZ251bSA9IDQxOw0KPiA+PiAgICB0ZGVz Y19jcmVhdGVfcmVnIChmZWF0dXJlLCAib3JpZ19lYXgiLCByZWdudW0rKywgMSwgTlVMTCwgMzIs ICJpbnQiKTsNCj4gPj4gKyAgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImkzODZfdGxzX2dk dF8wIiwgcmVnbnVtKyssIDEsICJzeXN0ZW0iLA0KPiA+PiArIDEyOCwgImkzODZfdGxzX2dkdF9y ZWciKTsgIHRkZXNjX2NyZWF0ZV9yZWcgKGZlYXR1cmUsDQo+ID4+ICsgImkzODZfdGxzX2dkdF8x IiwgcmVnbnVtKyssIDEsICJzeXN0ZW0iLCAxMjgsICJpMzg2X3Rsc19nZHRfcmVnIik7DQo+ID4+ ICsgdGRlc2NfY3JlYXRlX3JlZyAoZmVhdHVyZSwgImkzODZfdGxzX2dkdF8yIiwgcmVnbnVtKyss IDEsICJzeXN0ZW0iLA0KPiA+PiArIDEyOCwgImkzODZfdGxzX2dkdF9yZWciKTsNCj4gPj4gICAg cmV0dXJuIHJlZ251bTsNCj4gPj4gIH0NCj4gPj4gZGlmZiAtLWdpdCBhL2dkYi9mZWF0dXJlcy9p Mzg2LzMyYml0LWxpbnV4LnhtbCBiL2dkYi9mZWF0dXJlcy9pMzg2LzMyYml0LQ0KPiA+PiBsaW51 eC54bWwNCj4gPj4gaW5kZXggMGJmYzBiYzU1NjMuLjdkZTMxOThiN2RhIDEwMDY0NA0KPiA+PiAt LS0gYS9nZGIvZmVhdHVyZXMvaTM4Ni8zMmJpdC1saW51eC54bWwNCj4gPj4gKysrIGIvZ2RiL2Zl YXR1cmVzL2kzODYvMzJiaXQtbGludXgueG1sDQo+ID4+IEBAIC04LDQgKzgsOSBAQA0KPiA+PiAg PCFET0NUWVBFIGZlYXR1cmUgU1lTVEVNICJnZGItdGFyZ2V0LmR0ZCI+ICA8ZmVhdHVyZQ0KPiA+ PiBuYW1lPSJvcmcuZ251LmdkYi5pMzg2LmxpbnV4Ij4NCj4gPj4gICAgPHJlZyBuYW1lPSJvcmln X2VheCIgYml0c2l6ZT0iMzIiIHR5cGU9ImludCIgcmVnbnVtPSI0MSIvPg0KPiA+PiArDQo+ID4+ ICsgIDx2ZWN0b3IgaWQ9ImkzODZfdGxzX2dkdF9yZWciIHR5cGU9InVpbnQzMiIgY291bnQ9IjQi IC8+ICA8cmVnDQo+ID4+ICsgbmFtZT0iaTM4Nl90bHNfZ2R0XzAiIGJpdHNpemU9IjEyOCIgdHlw ZT0iaTM4Nl90bHNfZ2R0X3JlZyINCj4gPj4gKyBncm91cD0ic3lzdGVtIiAvPiAgPHJlZyBuYW1l PSJpMzg2X3Rsc19nZHRfMSIgYml0c2l6ZT0iMTI4Ig0KPiA+PiArIHR5cGU9ImkzODZfdGxzX2dk dF9yZWciIGdyb3VwPSJzeXN0ZW0iIC8+ICA8cmVnDQo+IG5hbWU9ImkzODZfdGxzX2dkdF8yIg0K PiA+PiArIGJpdHNpemU9IjEyOCIgdHlwZT0iaTM4Nl90bHNfZ2R0X3JlZyIgZ3JvdXA9InN5c3Rl bSIgLz4NCj4gPj4gIDwvZmVhdHVyZT4NCj4gPj4gZGlmZiAtLWdpdCBhL2dkYi9pMzg2LWxpbnV4 LW5hdC5jIGIvZ2RiL2kzODYtbGludXgtbmF0LmMgaW5kZXgNCj4gPj4gNGFmMDZjNDQ4YTguLmY4 NjAwNWUzMGU4IDEwMDY0NA0KPiA+PiAtLS0gYS9nZGIvaTM4Ni1saW51eC1uYXQuYw0KPiA+PiAr KysgYi9nZGIvaTM4Ni1saW51eC1uYXQuYw0KPiA+PiBAQCAtNDQ3LDYgKzQ0Nyw4IEBAIHN0b3Jl X2ZweHJlZ3MgKGNvbnN0IHN0cnVjdCByZWdjYWNoZSAqcmVnY2FjaGUsDQo+IGludA0KPiA+PiB0 aWQsIGludCByZWdubykgIHZvaWQgIGkzODZfbGludXhfbmF0X3RhcmdldDo6ZmV0Y2hfcmVnaXN0 ZXJzIChzdHJ1Y3QNCj4gcmVnY2FjaGUNCj4gPj4gKnJlZ2NhY2hlLCBpbnQgcmVnbm8pICB7DQo+ ID4+ICsgIGdkYmFyY2ggKmdkYmFyY2ggPSByZWdjYWNoZS0+YXJjaCAoKTsgIGNvbnN0IGkzODZf Z2RiYXJjaF90ZGVwICp0ZGVwDQo+ID4+ICsgPSBnZGJhcmNoX3RkZXA8aTM4Nl9nZGJhcmNoX3Rk ZXA+IChnZGJhcmNoKTsNCj4gPj4gICAgcGlkX3QgdGlkOw0KPiA+Pg0KPiA+PiAgICAvKiBVc2Ug dGhlIG9sZCBtZXRob2Qgb2YgcGVla2luZyBhcm91bmQgaW4gYHN0cnVjdCB1c2VyJyBpZiB0aGUg QEAgLQ0KPiA0NzAsNg0KPiA+PiArNDcyLDkgQEAgaTM4Nl9saW51eF9uYXRfdGFyZ2V0OjpmZXRj aF9yZWdpc3RlcnMgKHN0cnVjdCByZWdjYWNoZQ0KPiAqcmVnY2FjaGUsDQo+ID4+IGludCByZWdu bykNCj4gPj4gICAgICAgemVyby4gICovDQo+ID4+ICAgIGlmIChyZWdubyA9PSAtMSkNCj4gPj4g ICAgICB7DQo+ID4+ICsgICAgICBpZiAodGRlcC0+aTM4Nl9saW51eF90bHMpDQo+ID4+ICsJaTM4 Nl9mZXRjaF90bHNfcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pOw0KPiA+PiArDQo+ID4+ICAg ICAgICBmZXRjaF9yZWdzIChyZWdjYWNoZSwgdGlkKTsNCj4gPj4NCj4gPj4gICAgICAgIC8qIFRo ZSBjYWxsIGFib3ZlIG1pZ2h0IHJlc2V0IGBoYXZlX3B0cmFjZV9nZXRyZWdzJy4gICovIEBAIC01 MTQsNg0KPiA+PiArNTE5LDEyIEBAIGkzODZfbGludXhfbmF0X3RhcmdldDo6ZmV0Y2hfcmVnaXN0 ZXJzIChzdHJ1Y3QgcmVnY2FjaGUNCj4gPj4gKnJlZ2NhY2hlLCBpbnQgcmVnbm8pDQo+ID4+ICAg ICAgICByZXR1cm47DQo+ID4+ICAgICAgfQ0KPiA+Pg0KPiA+PiArICBpZiAodGRlcC0+aTM4Nl9s aW51eF90bHMgJiYgaTM4Nl9pc190bHNfcmVnbnVtX3AgKHJlZ25vKSkNCj4gPj4gKyAgICB7DQo+ ID4+ICsgICAgICBpMzg2X2ZldGNoX3Rsc19yZWdzIChyZWdjYWNoZSwgdGlkLCByZWdubyk7DQo+ ID4+ICsgICAgICByZXR1cm47DQo+ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICAgIGludGVybmFs X2Vycm9yIChfKCJHb3QgcmVxdWVzdCBmb3IgYmFkIHJlZ2lzdGVyIG51bWJlciAlZC4iKSwgcmVn bm8pOyAgfQ0KPiA+Pg0KPiA+PiBAQCAtNTIzLDYgKzUzNCw4IEBAIGkzODZfbGludXhfbmF0X3Rh cmdldDo6ZmV0Y2hfcmVnaXN0ZXJzIChzdHJ1Y3QNCj4gPj4gcmVnY2FjaGUgKnJlZ2NhY2hlLCBp bnQgcmVnbm8pICB2b2lkDQo+IGkzODZfbGludXhfbmF0X3RhcmdldDo6c3RvcmVfcmVnaXN0ZXJz DQo+ID4+IChzdHJ1Y3QgcmVnY2FjaGUgKnJlZ2NhY2hlLCBpbnQgcmVnbm8pICB7DQo+ID4+ICsg IGdkYmFyY2ggKmdkYmFyY2ggPSByZWdjYWNoZS0+YXJjaCAoKTsgIGNvbnN0IGkzODZfZ2RiYXJj aF90ZGVwICp0ZGVwDQo+ID4+ICsgPSBnZGJhcmNoX3RkZXA8aTM4Nl9nZGJhcmNoX3RkZXA+IChn ZGJhcmNoKTsNCj4gPj4gICAgcGlkX3QgdGlkOw0KPiA+Pg0KPiA+PiAgICAvKiBVc2UgdGhlIG9s ZCBtZXRob2Qgb2YgcG9raW5nIGFyb3VuZCBpbiBgc3RydWN0IHVzZXInIGlmIHRoZSBAQCAtNTQ1 LDYNCj4gPj4gKzU1OCw4IEBAIGkzODZfbGludXhfbmF0X3RhcmdldDo6c3RvcmVfcmVnaXN0ZXJz IChzdHJ1Y3QgcmVnY2FjaGUNCj4gKnJlZ2NhY2hlLA0KPiA+PiBpbnQgcmVnbm8pDQo+ID4+ICAg ICAgIHN0b3JlX2ZweHJlZ3MgY2FuIGZhaWwsIGFuZCByZXR1cm4gemVyby4gICovDQo+ID4+ICAg IGlmIChyZWdubyA9PSAtMSkNCj4gPj4gICAgICB7DQo+ID4+ICsgICAgICBpZiAodGRlcC0+aTM4 Nl9saW51eF90bHMpDQo+ID4+ICsJaTM4Nl9zdG9yZV90bHNfcmVncyAocmVnY2FjaGUsIHRpZCwg cmVnbm8pOw0KPiA+PiAgICAgICAgc3RvcmVfcmVncyAocmVnY2FjaGUsIHRpZCwgcmVnbm8pOw0K PiA+PiAgICAgICAgaWYgKHN0b3JlX3hzdGF0ZXJlZ3MgKHJlZ2NhY2hlLCB0aWQsIHJlZ25vKSkN Cj4gPj4gIAlyZXR1cm47DQo+ID4+IEBAIC01NzgsNiArNTkzLDEyIEBAIGkzODZfbGludXhfbmF0 X3RhcmdldDo6c3RvcmVfcmVnaXN0ZXJzIChzdHJ1Y3QNCj4gPj4gcmVnY2FjaGUgKnJlZ2NhY2hl LCBpbnQgcmVnbm8pDQo+ID4+ICAgICAgICByZXR1cm47DQo+ID4+ICAgICAgfQ0KPiA+Pg0KPiA+ PiArICBpZiAodGRlcC0+aTM4Nl9saW51eF90bHMgJiYgaTM4Nl9pc190bHNfcmVnbnVtX3AgKHJl Z25vKSkNCj4gPj4gKyAgICB7DQo+ID4+ICsgICAgICBpMzg2X3N0b3JlX3Rsc19yZWdzIChyZWdj YWNoZSwgdGlkLCByZWdubyk7DQo+ID4+ICsgICAgICByZXR1cm47DQo+ID4+ICsgICAgfQ0KPiA+ PiArDQo+ID4+ICAgIGludGVybmFsX2Vycm9yIChfKCJHb3QgcmVxdWVzdCB0byBzdG9yZSBiYWQg cmVnaXN0ZXIgbnVtYmVyICVkLiIpLA0KPiByZWdubyk7ICB9DQo+ID4+DQo+ID4+DQo+ID4+DQo+ ID4+IGRpZmYgLS1naXQgYS9nZGIvaTM4Ni1saW51eC10ZGVwLmMgYi9nZGIvaTM4Ni1saW51eC10 ZGVwLmMgaW5kZXgNCj4gPj4gMjBhZGYxNjljODEuLjFkNmFiZTJmNTQ2IDEwMDY0NA0KPiA+PiAt LS0gYS9nZGIvaTM4Ni1saW51eC10ZGVwLmMNCj4gPj4gKysrIGIvZ2RiL2kzODYtbGludXgtdGRl cC5jDQo+ID4+IEBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbnQNCj4gPj4gIGkzODZfbGludXhf cmVnaXN0ZXJfcmVnZ3JvdXBfcCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsIGludCByZWdudW0s DQo+ID4+ICAJCQkJY29uc3Qgc3RydWN0IHJlZ2dyb3VwICpncm91cCkNCj4gPj4gIHsNCj4gPj4g LSAgaWYgKHJlZ251bSA9PSBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSkNCj4gPj4gKyAgaWYg KHJlZ251bSA9PSBJMzg2X0xJTlVYX09SSUdfRUFYX1JFR05VTSB8fA0KPiBpMzg2X2lzX3Rsc19y ZWdudW1fcA0KPiA+PiArIChyZWdudW0pKQ0KPiA+PiAgICAgIHJldHVybiAoZ3JvdXAgPT0gc3lz dGVtX3JlZ2dyb3VwDQo+ID4+ICAJICAgIHx8IGdyb3VwID09IHNhdmVfcmVnZ3JvdXANCj4gPj4g IAkgICAgfHwgZ3JvdXAgPT0gcmVzdG9yZV9yZWdncm91cCk7DQo+ID4+IEBAIC0xMDQ3LDYgKzEw NDcsNyBAQCBpbnQgaTM4Nl9saW51eF9ncmVnc2V0X3JlZ19vZmZzZXRbXSA9DQo+ID4+ICAgIC0x LAkJCQkgIC8qIFNTUCByZWdpc3Rlci4gICovDQo+ID4+ICAgIC0xLCAtMSwJCQkgIC8qIGZzL2dz IGJhc2UgcmVnaXN0ZXJzLiAgKi8NCj4gPj4gICAgMTEgKiA0LAkJCSAgLyogIm9yaWdfZWF4IiAg Ki8NCj4gPj4gKyAgLTEsIC0xLCAtMSwJCQkgIC8qIFRMUyBHRFQgcmVnczogaTM4Nl90bHNfZ2R0 XzAuLi4yLiAgKi8NCj4gPj4gIH07DQo+ID4+DQo+ID4+ICAvKiBNYXBwaW5nIGJldHdlZW4gdGhl IGdlbmVyYWwtcHVycG9zZSByZWdpc3RlcnMgaW4gYHN0cnVjdCBAQCAtDQo+IDExNjMsMTUNCj4g Pj4gKzExNjQsMTUwIEBAIGkzODZfbGludXhfY29sbGVjdF94c3RhdGVyZWdzZXQgKGNvbnN0IHN0 cnVjdCByZWdzZXQNCj4gKnJlZ3NldCwNCj4gPj4gICAgaTM4N19jb2xsZWN0X3hzYXZlIChyZWdj YWNoZSwgcmVnbnVtLCB4c3RhdGVyZWdzLCAxKTsgIH0NCj4gPj4NCj4gPj4gKy8qIFdpdGhpbiBh IHRkZXAgZmlsZSB3ZSBkb24ndCBoYXZlIGFjY2VzcyB0byBzeXN0ZW0gaGVhZGVycy4gIFRoaXMN Cj4gPj4gKyAgIHN0cnVjdHVyZSBpcyBhIGNsb25lIG9mICdzdHJ1Y3QgdXNlcl9kZXNjJyBmcm9t ICdhc20vbGR0LmgnIG9uIHg4Ng0KPiA+PiArICAgR05VL0xpbnV4IHN5c3RlbXMuICBTZWUgJ3Nl ZSBtYW4gMiBnZXRfdGhyZWFkX2FyZWEnIG9uIGEgc3VpdGFibGUgeDg2DQo+ID4+ICsgICBtYWNo aW5lIGZvciBtb3JlIGRldGFpbHMuICAqLw0KPiA+PiArDQo+ID4+ICtzdHJ1Y3QgeDg2X3VzZXJf ZGVzYw0KPiA+PiArew0KPiA+PiArICB1aW50MzJfdCAgZW50cnlfbnVtYmVyOw0KPiA+PiArICB1 aW50MzJfdCAgYmFzZV9hZGRyOw0KPiA+PiArICB1aW50MzJfdCAgbGltaXQ7DQo+ID4+ICsNCj4g Pj4gKyAgLyogSW4gdGhlIGFjdHVhbCBzdHJ1Y3QsIHRoZXNlIGZsYWdzIGFyZSBhIHNlcmllcyBv ZiAxLWJpdCBzZXBhcmF0ZQ0KPiA+PiArICAgICBmbGFncy4gIEJ1dCB3ZSBkb24ndCBuZWVkIHRo YXQgbGV2ZWwgb2YgaW5zaWdodCBmb3IgdGhlDQo+ID4+ICsgICAgIHByb2Nlc3Npbmcgd2UgZG8g aW4gR0RCLCBzbyBqdXN0IG1ha2UgaXQgYSBzaW5nbGUgZmllbGQuICAqLw0KPiA+PiArICB1aW50 MzJfdCBmbGFnczsNCj4gPj4gK307DQo+ID4+ICsNCj4gPj4gKy8qIFN1cHBseSB0aGUgMyB0bHMg cmVsYXRlZCByZWdpc3RlcnMgZnJvbSBCVUZGRVIgKGxlbmd0aCBMRU4pIGludG8NCj4gPj4gKyAg IFJFR0NBQ0hFLiAgVGhlIFJFR1NFVCBhbmQgUkVHTlVNIGFyZSBpZ25vcmVkLCBhbGwgdGhyZWUg cmVnaXN0ZXJzDQo+IGFyZQ0KPiA+PiArICAgYWx3YXlzIHN1cHBsaWVkIGZyb20gQlVGRkVSLiAg Ki8NCj4gPj4gKw0KPiA+PiArc3RhdGljIHZvaWQNCj4gPj4gK2kzODZfbGludXhfc3VwcGx5X3Rs c19yZWdzZXQgKGNvbnN0IHJlZ3NldCAqcmVnc2V0LA0KPiA+PiArCQkJICAgICAgcmVnY2FjaGUg KnJlZ2NhY2hlLCBpbnQgcmVnbnVtLA0KPiA+PiArCQkJICAgICAgY29uc3Qgdm9pZCAqYnVmZmVy LCBzaXplX3QgbGVuKSB7DQo+ID4+ICsgIGdkYmFyY2ggKmdkYmFyY2ggPSByZWdjYWNoZS0+YXJj aCAoKTsNCj4gPj4gKyAgaTM4Nl9nZGJhcmNoX3RkZXAgKnRkZXAgPSBnZGJhcmNoX3RkZXA8aTM4 Nl9nZGJhcmNoX3RkZXA+DQo+IChnZGJhcmNoKTsNCj4gPj4gKw0KPiA+PiArICBpZiAoIXRkZXAt PmkzODZfbGludXhfdGxzKQ0KPiA+PiArICAgIHJldHVybjsNCj4gPj4gKw0KPiA+PiArICBnZGJf YXNzZXJ0IChsZW4gPT0gc2l6ZW9mICh4ODZfdXNlcl9kZXNjKSAqIDMpOw0KPiA+PiArDQo+ID4+ ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgKytpKQ0KPiA+PiArICAgIHsNCj4gPj4gKyAgICAg IGludCB0bHNfcmVnbm8gPSBJMzg2X0xJTlVYX1RMU19HRFRfMCArIGk7DQo+ID4+ICsNCj4gPj4g KyAgICAgIGdkYl9hc3NlcnQgKHJlZ2NhY2hlLT5yZWdpc3Rlcl9zaXplICh0bHNfcmVnbm8pDQo+ ID4+ICsJCSAgPT0gc2l6ZW9mICh4ODZfdXNlcl9kZXNjKSk7DQo+ID4NCj4gPiBZb3UncmUgY2Fs bGluZyBzaXplb2YgNCB0aW1lcyBoZXJlIGZvciB4ODZfdXNlcl9kZXNjLiBXb3VsZCBpdCBtYWtl IHNlbnNlIHRvDQo+IHN0b3JlIGl0IGluIGEgdmFyaWFibGU/DQo+IA0KPiBJJ2xsIGdldCB0aGlz IGZpeGVkLg0KPiANCj4gDQo+IA0KPiA+DQo+ID4+ICsNCj4gPj4gKyAgICAgIHJlZ2NhY2hlLT5y YXdfc3VwcGx5ICh0bHNfcmVnbm8sIGJ1ZmZlcik7DQo+ID4+ICsgICAgICBidWZmZXIgPSBzdGF0 aWNfY2FzdDxjb25zdCB4ODZfdXNlcl9kZXNjICo+IChidWZmZXIpICsgMTsNCj4gPj4gKyAgICB9 DQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gKy8qIENvbGxlY3QgdGhlIDMgdGxzIHJlbGF0ZWQgcmVn aXN0ZXJzIGZyb20gUkVHQ0FDSEUsIHBsYWNpbmcgdGhlIHJlc3VsdHMNCj4gPj4gKyAgIGluIHRv IEJVRkZFUiAobGVuZ3RoIExFTikuICBUaGUgUkVHU0VUIGFuZCBSRUdOVU0gYXJlIGlnbm9yZWQs IGFsbA0KPiB0aHJlZQ0KPiA+PiArICAgcmVnaXN0ZXJzIGFyZSBhbHdheXMgY29sbGVjdGVkIGZy b20gUkVHQ0FDSEUuICAqLw0KPiA+PiArDQo+ID4+ICtzdGF0aWMgdm9pZA0KPiA+PiAraTM4Nl9s aW51eF9jb2xsZWN0X3Rsc19yZWdzZXQgKGNvbnN0IHJlZ3NldCAqcmVnc2V0LA0KPiA+PiArCQkJ ICAgICAgIGNvbnN0IHJlZ2NhY2hlICpyZWdjYWNoZSwNCj4gPj4gKwkJCSAgICAgICBpbnQgcmVn bnVtLCB2b2lkICpidWZmZXIsIHNpemVfdCBsZW4pIHsNCj4gPj4gKyAgZ2RiYXJjaCAqZ2RiYXJj aCA9IHJlZ2NhY2hlLT5hcmNoICgpOw0KPiA+PiArICBpMzg2X2dkYmFyY2hfdGRlcCAqdGRlcCA9 IGdkYmFyY2hfdGRlcDxpMzg2X2dkYmFyY2hfdGRlcD4NCj4gKGdkYmFyY2gpOw0KPiA+PiArDQo+ ID4+ICsgIGlmICghdGRlcC0+aTM4Nl9saW51eF90bHMpDQo+ID4+ICsgICAgcmV0dXJuOw0KPiA+ PiArDQo+ID4+ICsgIGdkYl9hc3NlcnQgKGxlbiA9PSBzaXplb2YgKHg4Nl91c2VyX2Rlc2MpICog Myk7DQo+ID4+ICsNCj4gPj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyArK2kpDQo+ID4+ICsg ICAgew0KPiA+PiArICAgICAgeDg2X3VzZXJfZGVzYyBkZXNjOw0KPiA+PiArICAgICAgaW50IHRs c19yZWdubyA9IEkzODZfTElOVVhfVExTX0dEVF8wICsgaTsNCj4gPj4gKw0KPiA+PiArICAgICAg Z2RiX2Fzc2VydCAocmVnY2FjaGUtPnJlZ2lzdGVyX3NpemUgKHRsc19yZWdubykgPT0gc2l6ZW9m DQo+ID4+ICsgKGRlc2MpKTsNCj4gPj4gKw0KPiA+PiArICAgICAgcmVnY2FjaGUtPnJhd19jb2xs ZWN0ICh0bHNfcmVnbm8sICZkZXNjKTsNCj4gPj4gKyAgICAgIG1lbWNweSAoYnVmZmVyLCAmZGVz Yywgc2l6ZW9mIChkZXNjKSk7DQo+ID4+ICsgICAgICBidWZmZXIgPSBzdGF0aWNfY2FzdDx4ODZf dXNlcl9kZXNjICo+IChidWZmZXIpICsgMTsNCj4gPj4gKyAgICB9DQo+ID4+ICt9DQo+ID4+ICsN Cj4gPj4gIC8qIFJlZ2lzdGVyIHNldCBkZWZpbml0aW9ucy4gICovDQo+ID4+DQo+ID4+IC1zdGF0 aWMgY29uc3Qgc3RydWN0IHJlZ3NldCBpMzg2X2xpbnV4X3hzdGF0ZXJlZ3NldCA9DQo+ID4+ICtz dGF0aWMgY29uc3QgcmVnc2V0IGkzODZfbGludXhfeHN0YXRlcmVnc2V0ID0NCj4gPj4gICAgew0K PiA+PiAgICAgIE5VTEwsDQo+ID4+ICAgICAgaTM4Nl9saW51eF9zdXBwbHlfeHN0YXRlcmVnc2V0 LA0KPiA+PiAgICAgIGkzODZfbGludXhfY29sbGVjdF94c3RhdGVyZWdzZXQNCj4gPj4gICAgfTsN Cj4gPj4NCj4gPj4gK3N0YXRpYyBjb25zdCByZWdzZXQgaTM4Nl9saW51eF90bHNfcmVnc2V0ID0N Cj4gPj4gKyAgew0KPiA+PiArICAgIE5VTEwsDQo+ID4+ICsgICAgaTM4Nl9saW51eF9zdXBwbHlf dGxzX3JlZ3NldCwNCj4gPj4gKyAgICBpMzg2X2xpbnV4X2NvbGxlY3RfdGxzX3JlZ3NldA0KPiA+ PiArICB9Ow0KPiA+PiArDQo+ID4+ICsvKiBIZWxwZXIgZm9yIGkzODZfbGludXhfaXRlcmF0ZV9v dmVyX3JlZ3NldF9zZWN0aW9ucy4gIFNob3VsZCB3ZQ0KPiA+PiArICAgdmlzaXQgdGhlIE5UXzM4 Nl9UTFMgbm90ZT8gIElmIFJFR0NBQ0hFIGlzIE5VTEwgdGhlbiB3ZSBhcmUgcmVhZGluZw0KPiA+ PiArICAgdGhlIG5vdGVzIGZyb20gdGhlIGNvcmVmaWxlLCBzbyB3ZSBhbHdheXMgdmlzaXQgdGhl IG5vdGUuICBJZg0KPiA+PiArICAgUkVHQ0FDSEUgaXMgbm90IE5VTEwsIGluIHRoaXMgY2FzZSB3 ZSBhcmUgY3JlYXRpbmcgYSBjb3JlZmlsZS4gIEluDQo+ID4+ICsgICB0aGlzIGNhc2UsIHdlIG9u bHkgdmlzaXQgdGhlIG5vdGUgaWYgYWxsIHRoZSBUTFMgcmVnaXN0ZXJzIGFyZQ0KPiA+PiArICAg dmFsaWQsIGFuZCB0aGVpciBiYXNlIGFkZHJlc3MgYW5kIGxpbWl0IGFyZSBub3QgemVybywgdGhp cyBtaXJyb3JzDQo+ID4+ICsgICB0aGUga2VybmVsIGJlaGF2aW91ciB3aGVyZSB0aGUgVExTIG5v dGUgaXMgZWxpZGVkIHdoZW4gdGhlIFRMUyBHRFQNCj4gPj4gKyAgIGVudHJpZXMgaGF2ZSBub3Qg YmVlbiBzZXQuDQo+ID4+ICsNCj4gPj4gKyAgIE9ubHkgY2FsbCBmb3IgYXJjaGl0ZWN0dXJlcyB3 aGVyZSBpMzg2X2dkYmFyY2hfdGRlcDo6aTM4Nl9saW51eF90bHMNCj4gPj4gKyAgIGlzIHRydWUu ICAqLw0KPiA+PiArDQo+ID4+ICtzdGF0aWMgYm9vbA0KPiA+PiArc2hvdWxkX3Zpc2l0X2kzODZf dGxzX25vdGUgKGNvbnN0IHJlZ2NhY2hlICpyZWdjYWNoZSkgew0KPiA+PiArICBpZiAocmVnY2Fj aGUgPT0gbnVsbHB0cikNCj4gPj4gKyAgICByZXR1cm4gdHJ1ZTsNCj4gPj4gKw0KPiA+PiArICAv KiBDaGVjayB0aGUgcHJlLWNvbmRpdGlvbi4gICovDQo+ID4+ICsgIGdkYmFyY2ggKmdkYmFyY2gg PSByZWdjYWNoZS0+YXJjaCAoKTsgIGkzODZfZ2RiYXJjaF90ZGVwICp0ZGVwID0NCj4gPj4gKyBn ZGJhcmNoX3RkZXA8aTM4Nl9nZGJhcmNoX3RkZXA+IChnZGJhcmNoKTsgIGdkYl9hc3NlcnQNCj4g Pj4gKyAodGRlcC0+aTM4Nl9saW51eF90bHMpOw0KPiA+PiArDQo+ID4+ICsgIGZvciAoaW50IGkg PSAwOyBpIDwgMzsgKytpKQ0KPiA+PiArICAgIHsNCj4gPj4gKyAgICAgIGludCB0bHNfcmVnbm8g PSBJMzg2X0xJTlVYX1RMU19HRFRfMCArIGk7DQo+ID4+ICsNCj4gPj4gKyAgICAgIC8qIElmIHdl IGZhaWxlZCB0byByZWFkIGFueSBvZiB0aGUgcmVnaXN0ZXJzIHRoZW4gd2UnbGwgbm90IGJlDQo+ ID4+ICsJIGFibGUgdG8gZW1pdCB2YWxpZCBub3RlLiAgKi8NCj4gPj4gKyAgICAgIGlmIChyZWdj YWNoZS0+Z2V0X3JlZ2lzdGVyX3N0YXR1cyAodGxzX3JlZ25vKSAhPSBSRUdfVkFMSUQpDQo+ID4+ ICsJcmV0dXJuIGZhbHNlOw0KPiA+PiArDQo+ID4+ICsgICAgICAvKiBBcyBpMzg2X2dkYmFyY2hf dGRlcDo6aTM4Nl9saW51eF90bHMgaXMgdHJ1ZSwgdGhlIHJlZ2lzdGVycw0KPiA+PiArCSBtdXN0 IGJlIHRoZSByaWdodCBzaXplLiAgVGhlIGZsYWcgaXMgb25seSBzZXQgdHJ1ZSB3aGVuIHRoaXMN Cj4gPj4gKwkgY29uZGl0aW9uIGhvbGRzLiAgKi8NCj4gPj4gKyAgICAgIGdkYl9hc3NlcnQgKHJl Z2NhY2hlLT5yZWdpc3Rlcl9zaXplICh0bHNfcmVnbm8pDQo+ID4+ICsJCSAgPT0gc2l6ZW9mICh4 ODZfdXNlcl9kZXNjKSk7DQo+ID4+ICsNCj4gPj4gKyAgICAgIC8qIFJlYWQgdGhlIFRMUyBHRFQg ZW50cnkuICBJZiBpdCBpcyBpbiB1c2UgdGhlbiB3ZSB3YW50IHRvDQo+ID4+ICsJIHdyaXRlIHRo ZSBOVF8zODZfVExTIG5vdGUuICAqLw0KPiA+PiArICAgICAgeDg2X3VzZXJfZGVzYyB1ZDsNCj4g Pj4gKyAgICAgIHJlZ2NhY2hlLT5yYXdfY29sbGVjdCAodGxzX3JlZ25vLCAmdWQpOw0KPiA+PiAr ICAgICAgaWYgKHVkLmJhc2VfYWRkciAhPSAwICYmIHVkLmxpbWl0ICE9IDApDQo+ID4+ICsJcmV0 dXJuIHRydWU7DQo+ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICsgIC8qIE1hZGUgaXQgdGhyb3Vn aCB0aGUgbG9vcCB3aXRob3V0IGZpbmRpbmcgYW55IGluLXVzZSBUTFMgcmVsYXRlZA0KPiA+PiAr ICAgICBHRFQgZW50cmllcy4gIE5vIHBvaW50IGNyZWF0aW5nIHRoZSBOVF8zODZfVExTIG5vdGUs IHRoZSBrZXJuZWwNCj4gPj4gKyAgICAgZG9lc24ndC4gICovDQo+ID4+ICsgIHJldHVybiBmYWxz ZTsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiAgLyogSXRlcmF0ZSBvdmVyIGNvcmUgZmlsZSByZWdp c3RlciBub3RlIHNlY3Rpb25zLiAgKi8NCj4gPj4NCj4gPj4gIHN0YXRpYyB2b2lkDQo+ID4+IEBA IC0xMTkzLDYgKzEzMjksOSBAQCBpMzg2X2xpbnV4X2l0ZXJhdGVfb3Zlcl9yZWdzZXRfc2VjdGlv bnMgKHN0cnVjdA0KPiA+PiBnZGJhcmNoICpnZGJhcmNoLA0KPiA+PiAgCWNiX2RhdGEpOw0KPiA+ PiAgICBlbHNlDQo+ID4+ICAgICAgY2IgKCIucmVnMiIsIDEwOCwgMTA4LCAmaTM4Nl9mcHJlZ3Nl dCwgTlVMTCwgY2JfZGF0YSk7DQo+ID4+ICsNCj4gPj4gKyAgaWYgKHRkZXAtPmkzODZfbGludXhf dGxzICYmIHNob3VsZF92aXNpdF9pMzg2X3Rsc19ub3RlIChyZWdjYWNoZSkpDQo+ID4+ICsgICAg Y2IgKCIucmVnLWkzODYtdGxzIiwgNDgsIDQ4LCAmaTM4Nl9saW51eF90bHNfcmVnc2V0LCBudWxs cHRyLA0KPiA+PiArIGNiX2RhdGEpOw0KPiA+PiAgfQ0KPiA+Pg0KPiA+PiAgLyogTGludXgga2Vy bmVsIHNob3dzIFBDIHZhbHVlIGFmdGVyIHRoZSAnaW50ICQweDgwJyBpbnN0cnVjdGlvbiBldmVu IGlmDQo+IEBAIC0NCj4gPj4gMTI3Miw2ICsxNDExLDM3IEBAIGkzODZfbGludXhfaW5pdF9hYmkg KHN0cnVjdCBnZGJhcmNoX2luZm8gaW5mbywgc3RydWN0DQo+ID4+IGdkYmFyY2ggKmdkYmFyY2gp DQo+ID4+ICAgIGlmICghdmFsaWRfcCkNCj4gPj4gICAgICByZXR1cm47DQo+ID4+DQo+ID4+ICsg IC8qIEhlbHBlciBmdW5jdGlvbi4gIExvb2sgZm9yIFRMU19SRUdfTkFNRSBpbiBJMzg2X0ZFQVRV UkUgKHdpdGggdGhlDQo+ID4+ICsgICAgIGFzc29jaWF0ZWQgTE9DQUxfVERFU0NfREFUQSksIGFu ZCBpZiB0aGUgcmVnaXN0ZXIgaXMgZm91bmQgYXNzaWduIGl0DQo+ID4+ICsgICAgIFRMU19SRUdO Ty4gIFJldHVybiB0cnVlIGlmIHRoZSByZWdpc3RlciBpcyBmb3VuZCwgYW5kIGl0IGlzIHRoZSBz aXplDQo+ID4+ICsgICAgIG9mICdzdHJ1Y3QgdXNlcl9kZXNjJyAoc2VlIG1hbiAyIGdldF90aHJl YWRfYXJlYSksIG90aGVyd2lzZSwgcmV0dXJuDQo+ID4+ICsgICAgIGZhbHNlLiAgKi8NCj4gPj4g KyAgc3RhdGljIGNvbnN0IGF1dG8gdmFsaWRfdGxzX3JlZw0KPiA+PiArICAgID0gW10gKGNvbnN0 IHRkZXNjX2ZlYXR1cmUgKmkzODZfZmVhdHVyZSwNCj4gPj4gKwkgIHRkZXNjX2FyY2hfZGF0YSAq bG9jYWxfdGRlc2NfZGF0YSwNCj4gPj4gKwkgIGNvbnN0IGNoYXIgKnRsc19yZWdfbmFtZSwgaW50 IHRsc19yZWdubykgLT4gYm9vbA0KPiA+PiArICB7DQo+ID4+ICsgICAgc3RhdGljIGNvbnN0ZXhw ciBpbnQgcmVxdWlyZWRfcmVnX3NpemUNCj4gPj4gKyAgICAgID0gc2l6ZW9mICh4ODZfdXNlcl9k ZXNjKSAqIEhPU1RfQ0hBUl9CSVQ7DQo+ID4+ICsgICAgcmV0dXJuICh0ZGVzY19udW1iZXJlZF9y ZWdpc3RlciAoaTM4Nl9mZWF0dXJlLCBsb2NhbF90ZGVzY19kYXRhLA0KPiA+PiArCQkJCSAgICAg dGxzX3JlZ25vLCB0bHNfcmVnX25hbWUpDQo+ID4+ICsJICAgICYmICh0ZGVzY19yZWdpc3Rlcl9i aXRzaXplIChpMzg2X2ZlYXR1cmUsIHRsc19yZWdfbmFtZSkNCj4gPj4gKwkJPT0gcmVxdWlyZWRf cmVnX3NpemUpKTsNCj4gPj4gKyAgfTsNCj4gPj4gKw0KPiA+PiArICAvKiBDaGVjayBhbGwgdGhl IGV4cGVjdGVkIHRscyByZWxhdGVkIHJlZ2lzdGVycyBhcmUgZm91bmQsIGFuZCBhcmUgdGhlDQo+ ID4+ICsgICAgIGNvcnJlY3Qgc2l6ZS4gIElmIHRoZXkgYXJlIHRoZW4gbWFyayB0aGUgdGxzIGZl YXR1cmUgYXMgYmVpbmcgYWN0aXZlDQo+ID4+ICsgICAgIGluIFRERVAuICBPdGhlcndpc2UsIGxl YXZlIHRoZSBmZWF0dXJlIGFzIGRlYWN0aXZhdGVkLiAgKi8NCj4gPj4gKyAgdmFsaWRfcCA9ICh2 YWxpZF90bHNfcmVnIChmZWF0dXJlLCB0ZGVzY19kYXRhLCAiaTM4Nl90bHNfZ2R0XzAiLA0KPiA+ PiArCQkJICAgIEkzODZfTElOVVhfVExTX0dEVF8wKQ0KPiA+PiArCSAgICAgJiYgdmFsaWRfdGxz X3JlZyAoZmVhdHVyZSwgdGRlc2NfZGF0YSwgImkzODZfdGxzX2dkdF8xIiwNCj4gPj4gKwkJCSAg ICAgICBJMzg2X0xJTlVYX1RMU19HRFRfMSkNCj4gPj4gKwkgICAgICYmIHZhbGlkX3Rsc19yZWcg KGZlYXR1cmUsIHRkZXNjX2RhdGEsICJpMzg2X3Rsc19nZHRfMiIsDQo+ID4+ICsJCQkgICAgICAg STM4Nl9MSU5VWF9UTFNfR0RUXzIpKTsNCj4gPj4gKw0KPiA+PiArICBpZiAodmFsaWRfcCkNCj4g Pj4gKyAgICB0ZGVwLT5pMzg2X2xpbnV4X3RscyA9IHRydWU7DQo+ID4+ICsNCj4gPj4gICAgLyog QWRkIHRoZSAlb3JpZ19lYXggcmVnaXN0ZXIgdXNlZCBmb3Igc3lzY2FsbCByZXN0YXJ0aW5nLiAg Ki8NCj4gPj4gICAgc2V0X2dkYmFyY2hfd3JpdGVfcGMgKGdkYmFyY2gsIGkzODZfbGludXhfd3Jp dGVfcGMpOw0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZ2RiL2kzODYtbGludXgtdGRlcC5oIGIv Z2RiL2kzODYtbGludXgtdGRlcC5oIGluZGV4DQo+ID4+IDhhMWEyNDQ3Nzc2Li5lNzVlNTNhYmE5 NSAxMDA2NDQNCj4gPj4gLS0tIGEvZ2RiL2kzODYtbGludXgtdGRlcC5oDQo+ID4+ICsrKyBiL2dk Yi9pMzg2LWxpbnV4LXRkZXAuaA0KPiA+PiBAQCAtMzksNiArMzksMTMgQEAgZW51bSBpMzg2X2xp bnV4X3JlZ251bQ0KPiA+PiAgICAgICBpcyBzdXBwb3NlZCB0byByZXN0YXJ0LiAgKi8NCj4gPj4g ICAgSTM4Nl9MSU5VWF9PUklHX0VBWF9SRUdOVU0gPSBJMzg2X05VTV9SRUdTLA0KPiA+Pg0KPiA+ PiArICAvKiBSZWdpc3RlciBudW1iZXJzIGZvciB0aGUgdGhyZWUgVExTIEdEVCByZWdpc3RlcnMu ICBUaGVzZSBjb250YWluIHRoZQ0KPiA+PiArICAgICAnc3RydWN0IHVzZXJfZGVzYycgKHNlZSAn bWFuIDIgZ2V0X3RocmVhZF9hcmVhJykgdmFsdWVzIGZvciB0aGUgdGhyZWUNCj4gPj4gKyAgICAg VExTIHJlbGF0ZWQgR2xvYmFsIERlc2NyaXB0b3IgVGFibGUgZW50cmllcy4gICovDQo+ID4+ICsg STM4Nl9MSU5VWF9UTFNfR0RUXzAsICBJMzg2X0xJTlVYX1RMU19HRFRfMSwNCj4gPj4gSTM4Nl9M SU5VWF9UTFNfR0RUXzIsDQo+ID4+ICsNCj4gPj4gICAgLyogVG90YWwgbnVtYmVyIG9mIHJlZ2lz dGVycyBmb3IgR05VL0xpbnV4LiAgKi8NCj4gPj4gICAgSTM4Nl9MSU5VWF9OVU1fUkVHUw0KPiA+ Pg0KPiA+PiBAQCAtNjEsNCArNjgsMTIgQEAgZXh0ZXJuIGJvb2wNCj4gaTM4Nl9saW51eF9jb3Jl X3JlYWRfeDg2X3hzYXZlX2xheW91dA0KPiA+PiAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsDQo+ ID4+DQo+ID4+ICBleHRlcm4gaW50IGkzODZfbGludXhfZ3JlZ3NldF9yZWdfb2Zmc2V0W107DQo+ ID4+DQo+ID4+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBSRUdOVU0gaXMgb25lIG9mIHRoZSAzIHRscyBn ZHQgcmVnaXN0ZXJzLiAgKi8NCj4gPj4gKw0KPiA+PiArc3RhdGljIGlubGluZSBib29sDQo+ID4+ ICtpMzg2X2lzX3Rsc19yZWdudW1fcCAoaW50IHJlZ251bSkNCj4gPj4gK3sNCj4gPj4gKyAgcmV0 dXJuIHJlZ251bSA+PSBJMzg2X0xJTlVYX1RMU19HRFRfMCAmJiByZWdudW0gPD0NCj4gPj4gK0kz ODZfTElOVVhfVExTX0dEVF8yOyB9DQo+ID4+ICsNCj4gPj4gICNlbmRpZiAvKiBHREJfSTM4Nl9M SU5VWF9UREVQX0ggKi8NCj4gPj4gZGlmZiAtLWdpdCBhL2dkYi9pMzg2LXRkZXAuaCBiL2dkYi9p Mzg2LXRkZXAuaCBpbmRleA0KPiA+PiBjZmUwZDczODNkNi4uYWQzNTVlYjU5N2EgMTAwNjQ0DQo+ ID4+IC0tLSBhL2dkYi9pMzg2LXRkZXAuaA0KPiA+PiArKysgYi9nZGIvaTM4Ni10ZGVwLmgNCj4g Pj4gQEAgLTI0MCw2ICsyNDAsMTEgQEAgc3RydWN0IGkzODZfZ2RiYXJjaF90ZGVwIDogZ2RiYXJj aF90ZGVwX2Jhc2UNCj4gPj4gICAgc3RydWN0IHR5cGUgKmkzODZfem1tX3R5cGUgPSBudWxscHRy Ow0KPiA+PiAgICBzdHJ1Y3QgdHlwZSAqaTM4N19leHRfdHlwZSA9IG51bGxwdHI7DQo+ID4+DQo+ ID4+ICsgIC8qIElmIHRoZSByZWdpc3RlcnMgY29udGFpbmluZyB0aGUgaTM4NiBMaW51eCBUTFMg cmVsYXRlZCBnbG9iYWwNCj4gPj4gKyAgICAgZGVzY3JpcHRvciB0YWJsZSBpbmZvcm1hdGlvbiBh cmUgYXZhaWxhYmxlLiAgVGhpcyBpcyB1c2VkIHRvIGRlY2lkZQ0KPiA+PiArICAgICB3aGV0aGVy IHRvIGFkZCB0aGUgTlRfMzg2X1RMUyBub3RlIHRvIHRoZSBjb3JlIGZpbGUgb3Igbm90LiAgKi8N Cj4gPj4gKyBib29sIGkzODZfbGludXhfdGxzID0gZmFsc2U7DQo+ID4+ICsNCj4gPj4gICAgLyog UHJvY2VzcyByZWNvcmQvcmVwbGF5IHRhcmdldC4gICovDQo+ID4+ICAgIC8qIFRoZSBtYXAgZm9y IHJlZ2lzdGVycyBiZWNhdXNlIHRoZSBBTUQ2NCdzIHJlZ2lzdGVycyBvcmRlcg0KPiA+PiAgICAg ICBpbiBHREIgaXMgbm90IHNhbWUgYXMgSTM4NiBpbnN0cnVjdGlvbnMuICAqLyBkaWZmIC0tZ2l0 IGEvZ2RiL25hdC9hbWQ2NC0NCj4gPj4gbGludXguaCBiL2dkYi9uYXQvYW1kNjQtbGludXguaCBu ZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPiA+PiAwMDAwMDAwMDAwMC4uMWQ1YmY1NzM4MjkN Cj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi9nZGIvbmF0L2FtZDY0LWxpbnV4LmgNCj4g Pj4gQEAgLTAsMCArMSwyOSBAQA0KPiA+PiArLyogTmF0aXZlLWRlcGVuZGVudCBjb2RlIGZvciBH TlUvTGludXggYW1kNjQuDQo+ID4+ICsNCj4gPj4gKyAgIENvcHlyaWdodCAoQykgMjAyNSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gPj4gKw0KPiA+PiArICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR0RCLg0KPiA+PiArDQo+ID4+ICsgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiA+PiArICAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkNCj4gPj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ID4+ICsgICAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLg0KPiA+PiArDQo+ID4+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gPj4gKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m DQo+ID4+ICsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlDQo+ID4+ICsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLg0KPiA+PiArDQo+ID4+ICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiA+PiArICAgYWxvbmcg d2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZQ0KPiA+PiArIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovDQo+ID4+ICsNCj4gPj4gKyNpZm5kZWYgR0RCX05BVF9BTUQ2NF9M SU5VWF9IDQo+ID4+ICsjZGVmaW5lIEdEQl9OQVRfQU1ENjRfTElOVVhfSA0KPiA+PiArDQo+ID4+ ICsvKiBTZWUgbmF0L2kzODYtbGludXguaCBmb3IgYSBmdWxsIGRlc2NyaXB0aW9uIG9mIHRoaXMg Y29uc3RhbnQuICBUaGlzIGlzDQo+ID4+ICsgICB0aGUgdmVyc2lvbiB1c2VkIHdoZW4gR0RCIGlz IGNvbXBpbGVkIGZvciBhbWQ2NCwgYW5kIGlzIHJ1bm5pbmcgYW4NCj4gPj4gKyAgIGV4ZWN1dGFi bGUgY29tcGlsZWQgd2l0aCAtbTMyLiAgKi8NCj4gPj4gKw0KPiA+PiArc3RhdGljIGlubGluZSBj b25zdGV4cHIgaW50IGkzODZfaW5pdGlhbF90bHNfZ2R0ID0gMTI7DQo+ID4+ICsNCj4gPj4gKyNl bmRpZiAvKiBHREJfTkFUX0FNRDY0X0xJTlVYX0ggKi8NCj4gPj4gZGlmZiAtLWdpdCBhL2dkYi9u YXQvaTM4Ni1saW51eC5oIGIvZ2RiL25hdC9pMzg2LWxpbnV4LmggaW5kZXgNCj4gPj4gZDgwZTBm OTk5YmYuLmI5OWYwYTAyNDE4IDEwMDY0NA0KPiA+PiAtLS0gYS9nZGIvbmF0L2kzODYtbGludXgu aA0KPiA+PiArKysgYi9nZGIvbmF0L2kzODYtbGludXguaA0KPiA+PiBAQCAtMzQsNCArMzQsMTQg QEANCj4gPj4gICAgIHZhcmlhYmxlLiAgKi8NCj4gPj4gIGV4dGVybiB0cmlib29sIGhhdmVfcHRy YWNlX2dldGZweHJlZ3M7DQo+ID4+DQo+ID4+ICsvKiBUaGlzIGNvbnN0YW50IGRlZmluZXMgdGhl IGZpcnN0IEdEVCAoR2xvYmFsIERlc2NyaXB0b3IgVGFibGUpIGVudHJ5DQo+ID4+ICsgICB0aGF0 IHRoZSBrZXJuZWwgYWxsb2NhdGVzIGZvciBob2xkaW5nIFRMUyBkZXNjcmlwdG9ycy4gIFRoZXJl IGFyZSB0aHJlZQ0KPiA+PiArICAgZW50cmllcywgc3RhcnRpbmcgYXQgdGhpcyBpbmRleCB3aGlj aCBjYW4gYmUgYWNjZXNzZWQgdXNpbmcgdGhlDQo+ID4+ICsgICBQVFJBQ0VfR0VUX1RIUkVBRF9B UkVBIGFuZCBQVFJBQ0VfU0VUX1RIUkVBRF9BUkVBIHB0cmFjZQ0KPiBjYWxscy4NCj4gPj4gVGhp cw0KPiA+PiArICAgY29uc3RhbnQgaXMgb25seSB2YWxpZCBmb3IgdHJ1ZSBpMzg2IGtlcm5lbHMu ICBGb3IgYW1kNjQga2VybmVscw0KPiA+PiArICAgcnVubmluZyBpbiAzMi1iaXQgbW9kZSAoaS5l LiBleGVjdXRhYmxlcyBjb21waWxlZCAtbTMyKSB0aGVyZSBpcyBhDQo+ID4+ICsgICBkaWZmZXJl bnQgY29uc3RhbnQsIHNlZSBuYXQvYW1kNjQtbGludXguaC4gICovDQo+ID4+ICsNCj4gPj4gK3N0 YXRpYyBpbmxpbmUgY29uc3RleHByIGludCBpMzg2X2luaXRpYWxfdGxzX2dkdCA9IDY7DQo+ID4+ ICsNCj4gPj4gICNlbmRpZiAvKiBHREJfTkFUX0kzODZfTElOVVhfSCAqLw0KPiA+PiBkaWZmIC0t Z2l0IGEvZ2RiL25hdC94ODYtbGludXguYyBiL2dkYi9uYXQveDg2LWxpbnV4LmMgaW5kZXgNCj4g Pj4gNTUxNTgyNjg5NzAuLjg5MDZiN2U2MTA0IDEwMDY0NA0KPiA+PiAtLS0gYS9nZGIvbmF0L3g4 Ni1saW51eC5jDQo+ID4+ICsrKyBiL2dkYi9uYXQveDg2LWxpbnV4LmMNCj4gPj4gQEAgLTI4LDYg KzI4LDEyIEBADQo+ID4+ICAjaW5jbHVkZSAibmF0L2dkYl9wdHJhY2UuaCINCj4gPj4gICNpbmNs dWRlIDxzeXMvdXNlci5oPg0KPiA+Pg0KPiA+PiArI2lmbmRlZiBfX3g4Nl82NF9fDQo+ID4+ICsj aW5jbHVkZSAibmF0L2kzODYtbGludXguaCINCj4gPj4gKyNlbHNlDQo+ID4+ICsjaW5jbHVkZSAi bmF0L2FtZDY0LWxpbnV4LmgiDQo+ID4+ICsjZW5kaWYNCj4gPj4gKw0KPiA+PiAgLyogUGVyLXRo cmVhZCBhcmNoLXNwZWNpZmljIGRhdGEgd2Ugd2FudCB0byBrZWVwLiAgKi8NCj4gPj4NCj4gPj4g IHN0cnVjdCBhcmNoX2x3cF9pbmZvDQo+ID4+IEBAIC0xODUsMyArMTkxLDQxIEBAIHg4Nl9jaGVj a19zc3Bfc3VwcG9ydCAoY29uc3QgaW50IHRpZCkNCj4gPj4NCj4gPj4gICAgcmV0dXJuIHRydWU7 DQo+ID4+ICB9DQo+ID4+ICsNCj4gPj4gKy8qIFNlZSBuYXQveDg2LWxpbnV4LmguICAqLw0KPiA+ PiArDQo+ID4+ICtib29sDQo+ID4+ICtpMzg2X3B0cmFjZV9nZXRfdGxzX2RhdGEgKGludCBwaWQs IGdkYjo6YXJyYXlfdmlldzx1c2VyX2Rlc2M+IGJ1ZmZlcikgew0KPiA+PiArICBnZGJfYXNzZXJ0 IChidWZmZXIuc2l6ZSAoKSA9PSAzKTsNCj4gPj4gKw0KPiA+PiArICBmb3IgKGludCBpID0gMDsg aSA8IDM7ICsraSkNCj4gPj4gKyAgICB7DQo+ID4+ICsgICAgICB2b2lkICphZGRyID0gKHZvaWQg KikgKHVpbnRwdHJfdCkgKGkzODZfaW5pdGlhbF90bHNfZ2R0ICsgaSk7DQo+ID4+ICsgICAgICB2 b2lkICpkYXRhID0gYnVmZmVyLnNsaWNlIChpLCAxKS5kYXRhICgpOw0KPiA+PiArDQo+ID4+ICsg ICAgICBpZiAocHRyYWNlIChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLCBwaWQsIGFkZHIsIGRhdGEp IDwgMCkNCj4gPj4gKwlyZXR1cm4gZmFsc2U7DQo+ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICsg IHJldHVybiB0cnVlOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICsvKiBTZWUgbmF0L3g4Ni1saW51 eC5oLiAgKi8NCj4gPj4gKw0KPiA+PiArYm9vbA0KPiA+PiAraTM4Nl9wdHJhY2Vfc2V0X3Rsc19k YXRhIChpbnQgcGlkLCBnZGI6OmFycmF5X3ZpZXc8dXNlcl9kZXNjPiBidWZmZXIpIHsNCj4gPj4g KyAgZ2RiX2Fzc2VydCAoYnVmZmVyLnNpemUgKCkgPT0gMyk7DQo+ID4+ICsNCj4gPj4gKyAgZm9y IChpbnQgaSA9IDA7IGkgPCAzOyArK2kpDQo+ID4+ICsgICAgew0KPiA+PiArICAgICAgdm9pZCAq YWRkciA9ICh2b2lkICopICh1aW50cHRyX3QpIChpMzg2X2luaXRpYWxfdGxzX2dkdCArIGkpOw0K PiA+PiArICAgICAgdm9pZCAqZGF0YSA9IGJ1ZmZlci5zbGljZSAoaSwgMSkuZGF0YSAoKTsNCj4g Pj4gKw0KPiA+PiArICAgICAgaWYgKHB0cmFjZSAoUFRSQUNFX1NFVF9USFJFQURfQVJFQSwgcGlk LCBhZGRyLCBkYXRhKSA8IDApDQo+ID4+ICsgICAgICAgcmV0dXJuIGZhbHNlOw0KPiA+PiArICAg IH0NCj4gPj4gKw0KPiA+PiArICByZXR1cm4gdHJ1ZTsNCj4gPj4gK30NCj4gPj4gZGlmZiAtLWdp dCBhL2dkYi9uYXQveDg2LWxpbnV4LmggYi9nZGIvbmF0L3g4Ni1saW51eC5oIGluZGV4DQo+ID4+ IDE3ODNhYWUwNWQwLi5jOTgyYTQ2YmYyZSAxMDA2NDQNCj4gPj4gLS0tIGEvZ2RiL25hdC94ODYt bGludXguaA0KPiA+PiArKysgYi9nZGIvbmF0L3g4Ni1saW51eC5oDQo+ID4+IEBAIC0yMSw2ICsy MSw3IEBADQo+ID4+ICAjZGVmaW5lIEdEQl9OQVRfWDg2X0xJTlVYX0gNCj4gPj4NCj4gPj4gICNp bmNsdWRlICJuYXQvbGludXgtbmF0LmgiDQo+ID4+ICsjaW5jbHVkZSA8YXNtL2xkdC5oPg0KPiA+ Pg0KPiA+PiAgLyogU2V0IHdoZXRoZXIgb3VyIGxvY2FsIG1pcnJvciBvZiBMV1AncyBkZWJ1ZyBy ZWdpc3RlcnMgaGFzIGJlZW4NCj4gPj4gICAgIGNoYW5nZWQgc2luY2UgdGhlIHZhbHVlcyB3ZXJl IGxhc3Qgd3JpdHRlbiB0byB0aGUgdGhyZWFkLiAgTm9uemVybyBAQA0KPiAtNzksNA0KPiA+PiAr ODAsMTggQEAgZXh0ZXJuIHg4Nl9saW51eF9hcmNoX3NpemUgeDg2X2xpbnV4X3B0cmFjZV9nZXRf YXJjaF9zaXplDQo+IChpbnQNCj4gPj4gdGlkKTsNCj4gPj4NCj4gPj4gIGV4dGVybiBib29sIHg4 Nl9jaGVja19zc3Bfc3VwcG9ydCAoY29uc3QgaW50IHRpZCk7DQo+ID4+DQo+ID4+ICsvKiBHZXQg dGhlIHRocmVlIFRMUyByZWxhdGVkIEdEVCAoR2xvYmFsIERlc2NyaXB0b3IgVGFibGUpIGVudHJp ZXMgZnJvbQ0KPiA+PiArICAgdGhlIGtlcm5lbCBmb3IgdGhyZWFkIFBJRCwgcGxhY2luZyB0aGUg cmVzdWx0cyBpbnRvIEJVRkZFUiwgYW4gYXJyYXkgb2YNCj4gPj4gKyAgIGxlbmd0aCAzLiAgKi8N Cj4gPj4gKw0KPiA+PiArZXh0ZXJuIGJvb2wgaTM4Nl9wdHJhY2VfZ2V0X3Rsc19kYXRhDQo+ID4+ ICsgIChpbnQgcGlkLCBnZGI6OmFycmF5X3ZpZXc8dXNlcl9kZXNjPiBidWZmZXIpOw0KPiA+PiAr DQo+ID4+ICsvKiBTdG9yZSB0aGUgdGhyZWUgVExTIHJlbGF0ZWQgR0RUIChHbG9iYWwgRGVzY3Jp cHRvciBUYWJsZSkgZW50cmllcyBoZWxkDQo+ID4+ICsgICBpbiBCVUZGRVIgYmFjayBpbnRvIHRo ZSBrZXJuZWwgZm9yIHRocmVhZCBQSUQuICBCVUZGRVIgbXVzdCBoYXZlIGENCj4gPj4gKyAgIGxl bmd0aCBvZiB0aHJlZS4gICovDQo+ID4+ICsNCj4gPj4gK2V4dGVybiBib29sIGkzODZfcHRyYWNl X3NldF90bHNfZGF0YQ0KPiA+PiArICAoaW50IHBpZCwgZ2RiOjphcnJheV92aWV3PHVzZXJfZGVz Yz4gYnVmZmVyKTsNCj4gPj4gKw0KPiA+PiAgI2VuZGlmIC8qIEdEQl9OQVRfWDg2X0xJTlVYX0gg Ki8NCj4gPj4gZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmFyY2gvaTM4Ni10bHMtcmVn cy5jDQo+ID4+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2LXRscy1yZWdzLmMNCj4gPj4g bmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPj4gaW5kZXggMDAwMDAwMDAwMDAuLjQyMGQxNTY2ZjIw DQo+ID4+IC0tLSAvZGV2L251bGwNCj4gPj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9p Mzg2LXRscy1yZWdzLmMNCj4gPj4gQEAgLTAsMCArMSw3NCBAQA0KPiA+PiArLyogVGhpcyB0ZXN0 Y2FzZSBpcyBwYXJ0IG9mIEdEQiwgdGhlIEdOVSBkZWJ1Z2dlci4NCj4gPj4gKw0KPiA+PiArICAg Q29weXJpZ2h0IDIwMjUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ID4+ICsNCj4g Pj4gKyAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5DQo+ID4+ICsgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiA+PiArICAgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwg b3INCj4gPj4gKyAgIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uDQo+ID4+ICsN Cj4gPj4gKyAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLA0KPiA+PiArICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YNCj4gPj4gKyAgIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUNCj4gPj4gKyAg IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuDQo+ID4+ICsNCj4g Pj4gKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlDQo+ID4+ICsgICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5v dCwgc2VlDQo+ID4+ICsgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8NCj4gPj4g Kw0KPiA+PiArI2luY2x1ZGUgPHB0aHJlYWQuaD4NCj4gPj4gKyNpbmNsdWRlIDxzdGRsaWIuaD4N Cj4gPj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4NCj4gPj4gKw0KPiA+PiArc3RhdGljIHB0aHJlYWRf YmFycmllcl90IGJhcnJpZXI7DQo+ID4+ICsNCj4gPj4gK3N0YXRpYyBfX3RocmVhZCBpbnQgbG9j YWxfdmFyID0gMDsNCj4gPj4gKw0KPiA+PiArdm9sYXRpbGUgaW50IHdhaXRfZm9yX2dkYl9wID0g MTsNCj4gPj4gKw0KPiA+PiArdm9sYXRpbGUgaW50IHNob3VsZF9kdW1wX2NvcmVfcCA9IDE7DQo+ ID4+ICsNCj4gPj4gK3ZvaWQNCj4gPj4gK2NyYXNoX2Z1bmMgKHZvaWQpDQo+ID4+ICt7DQo+ID4+ ICsgIGlmIChzaG91bGRfZHVtcF9jb3JlX3ApDQo+ID4+ICsgICAgYWJvcnQgKCk7DQo+ID4+ICt9 DQo+ID4+ICsNCj4gPj4gK3ZvaWQNCj4gPj4gK3NwaW5fZm9yZXZlciAodm9pZCkNCj4gPj4gK3sN Cj4gPj4gKyAgd2hpbGUgKHdhaXRfZm9yX2dkYl9wKQ0KPiA+PiArICAgIHNsZWVwICgxKTsNCj4g Pj4gK30NCj4gPj4gKw0KPiA+PiArdm9pZCAqDQo+ID4+ICt0aHJlYWRfZnVuYyAodm9pZCAqYXJn KQ0KPiA+PiArew0KPiA+PiArICBsb2NhbF92YXIgPSAqKChpbnQqKSBhcmcpOw0KPiA+PiArDQo+ ID4+ICsgIHB0aHJlYWRfYmFycmllcl93YWl0ICgmYmFycmllcik7DQo+ID4+ICsNCj4gPj4gKyAg c3Bpbl9mb3JldmVyICgpOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtpbnQNCj4gPj4gK21haW4g KHZvaWQpDQo+ID4+ICt7DQo+ID4+ICsgIHB0aHJlYWRfdCB0aHI7DQo+ID4+ICsNCj4gPj4gKyAg aWYgKHB0aHJlYWRfYmFycmllcl9pbml0ICgmYmFycmllciwgTlVMTCwgMikgIT0gMCkNCj4gPj4g KyAgICBhYm9ydCAoKTsNCj4gPj4gKw0KPiA+PiArICBsb2NhbF92YXIgPSAxOw0KPiA+PiArICBp bnQgaSA9IDI7DQo+ID4+ICsgIGlmIChwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgdGhyZWFk X2Z1bmMsICZpKSAhPSAwKQ0KPiA+PiArICAgIGFib3J0ICgpOw0KPiA+PiArDQo+ID4+ICsgIHB0 aHJlYWRfYmFycmllcl93YWl0ICgmYmFycmllcik7DQo+ID4+ICsNCj4gPj4gKyAgY3Jhc2hfZnVu YyAoKTsNCj4gPj4gKw0KPiA+PiArICBzcGluX2ZvcmV2ZXIgKCk7DQo+ID4+ICsNCj4gPj4gKyAg cmV0dXJuIDA7DQo+ID4+ICt9DQo+ID4+IGRpZmYgLS1naXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5h cmNoL2kzODYtdGxzLXJlZ3MuZXhwDQo+ID4+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYXJjaC9pMzg2 LXRscy1yZWdzLmV4cA0KPiA+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiA+PiBpbmRleCAwMDAw MDAwMDAwMC4uMTc1M2Y4NzYyYzYNCj4gPj4gLS0tIC9kZXYvbnVsbA0KPiA+PiArKysgYi9nZGIv dGVzdHN1aXRlL2dkYi5hcmNoL2kzODYtdGxzLXJlZ3MuZXhwDQo+ID4+IEBAIC0wLDAgKzEsMzM1 IEBADQo+ID4+ICsjIENvcHlyaWdodCAyMDI1IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j Lg0KPiA+PiArIw0KPiA+PiArIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQ0KPiA+PiArIyBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiA+ PiArIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvciAjDQo+ID4+ICsoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u Lg0KPiA+PiArIw0KPiA+PiArIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgIyBidXQNCj4gPj4gK1dJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgIw0KPiA+PiArTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSAj DQo+IEdOVQ0KPiA+PiArR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLg0K PiA+PiArIw0KPiA+PiArIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAjDQo+ID4+ICthbG9uZyB3aXRoIHRoaXMgcHJvZ3Jh bS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4NCj4gPj4gKw0K PiA+PiArIyBDaGVjayB0aGF0IHRoZSBUTFMgR0RUIHJlZ2lzdGVycyBhcmUgYXZhaWxhYmxlIGZv ciBpMzg2IGV4ZWN1dGFibGUuDQo+ID4+ICsNCj4gPj4gK3JlcXVpcmUge2lzX2FueV90YXJnZXQg Imk/ODYtKi1saW51eCoiICJ4ODZfNjQtKi1saW51eCoifQ0KPiA+PiArDQo+ID4+ICtzdGFuZGFy ZF90ZXN0ZmlsZQ0KPiA+PiArDQo+ID4+ICtzZXQgb3B0aW9ucyB7ZGVidWcgcHRocmVhZHN9DQo+ ID4+ICtpZiB7IVtpc3RhcmdldCAiaTM4Ni0qLSoiXX0gew0KPiA+PiArICAgIGxhcHBlbmQgb3B0 aW9ucyAiYWRkaXRpb25hbF9mbGFncz0tbTMyIg0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICsjIENo ZWNrIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGNvbXBpbGUgYSAzMi1iaXQgZXhlY3V0YWJsZS4NCj4g Pj4gKyMNCj4gPj4gKyMgSXQgaXMgcG9zc2libGUgdGhhdCBldmVuIHdpdGggdGhlIGFib3ZlIHNl dHRpbmcgb2YgT1BUSU9OUywgd2UgbWlnaHQNCj4gPj4gKyMgc3RpbGwgZ2V0IGEgNjQtYml0IGV4 ZWN1dGFibGUsIGZvciBleGFtcGxlLCBydW5uaW5nIG9uIHg4Ni02NCB3aXRoICMNCj4gPj4gKyct LXRhcmdldF9ib2FyZD11bml4Ly1tNjQnIHdpbGwgYWRkIHRoZSAtbTY0IGFmdGVyIHRoZSBhYm92 ZSAtbTMyLCAjDQo+ID4+ICttZWFuaW5nIHdlIGFsd2F5cyBlbmQgdXAgd2l0aCBhIDY0LWJpdCBl eGVjdXRhYmxlLg0KPiA+PiArIw0KPiA+PiArIyBJZiB0aGUgZm9sbG93aW5nIGNvbXBpbGVzIHRo ZW4gd2UgYXJlIGdldHRpbmcgYSAzMi1iaXQgZXhlY3V0YWJsZS4NCj4gPj4gK2lmIHshW2dkYl9j YW5fc2ltcGxlX2NvbXBpbGUgaXNfbHA2NF90YXJnZXQgew0KPiA+PiArCWludCBkdW1teVtzaXpl b2YgKGludCkgPT0gNA0KPiA+PiArCQkgICYmIHNpemVvZiAodm9pZCAqKSA9PSA0DQo+ID4+ICsJ CSAgJiYgc2l6ZW9mIChsb25nKSA9PSA0ID8gMSA6IC0xXTt9IFwNCj4gPj4gKwkgIG9iamVjdCAk b3B0aW9uc119IHsNCj4gPj4gKyAgICB1bnN1cHBvcnRlZCAiY2Fubm90IGNvbXBpbGUgMzItYml0 IGV4ZWN1dGFibGUiDQo+ID4+ICsgICAgcmV0dXJuDQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gK2lm IHsgW2J1aWxkX2V4ZWN1dGFibGUgImZhaWxlZCB0byBwcmVwYXJlIiAkdGVzdGZpbGUgJHNyY2Zp bGUgJG9wdGlvbnNdIH0gew0KPiA+PiArICAgIHJldHVybg0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ ICsjIFN0YXJ0IGFuIGluZmVyaW9yIGFuZCBjaGVjayB3ZSBjYW4gcmVhZCBhbmQgbW9kaWZ5IHRo ZSBUTFMgcmVnaXN0ZXJzLg0KPiA+PiArcHJvY193aXRoX3ByZWZpeCB0ZXN0X3Rsc19yZWdfYXZh aWxhYmlsaXR5IHt9IHsNCj4gPj4gKyAgICBjbGVhbl9yZXN0YXJ0ICQ6OnRlc3RmaWxlDQo+ID4+ ICsNCj4gPj4gKyAgICBpZiB7IVtydW50b19tYWluXX0gew0KPiA+PiArCXJldHVybg0KPiA+PiAr ICAgIH0NCj4gPj4gKw0KPiA+PiArICAgIHNldCB0bHNfcmVnX3ZhbHMgeyAiIiAiIiAiIiB9DQo+ ID4+ICsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImluZm8gcmVnaXN0ZXJzIHN5c3RlbSIgImNoZWNr IGZvciBUTFMgcmVncyIgew0KPiA+PiArCS1yZSAiXmluZm8gcmVnaXN0ZXJzIHN5c3RlbVxyXG4i IHsNCj4gPj4gKwkgICAgZXhwX2NvbnRpbnVlDQo+ID4+ICsJfQ0KPiA+PiArCS1yZSAiXmkzODZf dGxzX2dkdF8oXFxkKSBcXHsoJDo6aGV4KSwgKCQ6OmhleCksICgkOjpoZXgpLCAoJDo6aGV4KVxc fVxyXG4iDQo+IHsNCj4gPj4gKwkgICAgc2V0IGlkeCAkZXhwZWN0X291dCgxLHN0cmluZykNCj4g Pj4gKwkgICAgc2V0IHZhbDAgJGV4cGVjdF9vdXQoMixzdHJpbmcpDQo+ID4+ICsJICAgIHNldCB2 YWwxICRleHBlY3Rfb3V0KDMsc3RyaW5nKQ0KPiA+PiArCSAgICBzZXQgdmFsMiAkZXhwZWN0X291 dCg0LHN0cmluZykNCj4gPj4gKwkgICAgc2V0IHZhbDMgJGV4cGVjdF9vdXQoNSxzdHJpbmcpDQo+ ID4+ICsJICAgIHNldCB2YWwgW2xpc3QgJHZhbDAgJHZhbDEgJHZhbDIgJHZhbDNdDQo+ID4+ICsJ ICAgIHNldCB0bHNfcmVnX3ZhbHMgW2xyZXBsYWNlICR0bHNfcmVnX3ZhbHMgJGlkeCAkaWR4ICR2 YWxdDQo+ID4+ICsJICAgIGV4cF9jb250aW51ZQ0KPiA+PiArCX0NCj4gPj4gKwktcmUgIl4kOjpn ZGJfcHJvbXB0ICQiIHsNCj4gPj4gKwkgICAgZ2RiX2Fzc2VydCB7W2xzZWFyY2ggLWV4YWN0ICR0 bHNfcmVnX3ZhbHMgIiJdID09IC0xfSAkZ2RiX3Rlc3RfbmFtZQ0KPiA+PiArCX0NCj4gPj4gKwkt cmUgIl5cW15cclxuXF0rXHJcbiIgew0KPiA+PiArCSAgICBleHBfY29udGludWUNCj4gPj4gKwl9 DQo+ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICsgICAgaWYgeyBbbGluZGV4ICR0bHNfcmVnX3Zh bHMgMF0gIT0gW2xpbmRleCAkdGxzX3JlZ192YWxzIDFdIH0gew0KPiA+PiArCXNldCBuZXdfdmFs cyBbbGluZGV4ICR0bHNfcmVnX3ZhbHMgMF0NCj4gPj4gKwlzZXQgb2xkX3ZhbHMgW2xpbmRleCAk dGxzX3JlZ192YWxzIDFdDQo+ID4+ICsNCj4gPj4gKwlzZXQgdmFsMCBbbGluZGV4ICRvbGRfdmFs cyAwXQ0KPiA+PiArCXNldCB2YWwxIFtsaW5kZXggJG5ld192YWxzIDFdDQo+ID4+ICsJc2V0IHZh bDIgW2xpbmRleCAkbmV3X3ZhbHMgMl0NCj4gPj4gKwlzZXQgdmFsMyBbbGluZGV4ICRuZXdfdmFs cyAzXQ0KPiA+PiArDQo+ID4+ICsJc2V0IG5ld192YWxfc3RyICJ7JHZhbDAsICR2YWwxLCAkdmFs MiwgJHZhbDN9Ig0KPiA+PiArDQo+ID4+ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgXCRpMzg2 X3Rsc19nZHRfMSA9ICRuZXdfdmFsX3N0ciINCj4gPj4gKwlzZXQgcmUgW3N0cmluZ190b19yZWdl eHAgJG5ld192YWxfc3RyXQ0KPiA+PiArCWdkYl90ZXN0ICJwcmludCAveCBcJGkzODZfdGxzX2dk dF8xIiAiID0gJHJlIg0KPiA+PiArICAgIH0NCj4gPj4gKw0KPiA+PiArICAgIGdkYl90ZXN0X25v X291dHB1dCAic2V0IHNob3VsZF9kdW1wX2NvcmVfcD0wIg0KPiA+PiArICAgIGdkYl90ZXN0X25v X291dHB1dCAic2V0IHdhaXRfZm9yX2dkYl9wPTAiDQo+ID4+ICsNCj4gPj4gKyAgICBnZGJfY29u dGludWVfdG9fZW5kICIiIGNvbnRpbnVlIHRydWUgfQ0KPiA+PiArDQo+ID4+ICsjIFN0YXJ0IEdE QiB1c2luZyBnbG9iYWwgQklORklMRSwgbG9hZCBDT1JFRklMRSAod2hpY2ggbXVzdCBtYXRjaCAj DQo+ID4+ICtCSU5GSUxFKSwgYW5kIGNoZWNrIHRoYXQgdGhlIGNvcmUgaGFzIHR3byB0aHJlYWRz LCB0aGF0IHRoZSBUTFMgIw0KPiA+PiArcmVnaXN0ZXJzIGFyZSB2aXNpYmxlIGluIGJvdGggdGhy ZWFkcywgYW5kIHRoYXQgdGhlIFRMUyByZWdpc3RlciAjDQo+ID4+ICt2YWx1ZXMgYXJlIGRpZmZl cmVudCBpbiBlYWNoIHRocmVhZC4NCj4gPj4gK3Byb2MgbG9hZF9jb3JlX2FuZF90ZXN0X3Rsc19y ZWdzIHsgY29yZWZpbGUgfSB7DQo+ID4+ICsgICAgY2xlYW5fcmVzdGFydCAkOjp0ZXN0ZmlsZQ0K PiA+PiArDQo+ID4+ICsgICAgZ2RiX2NvcmVfY21kICRjb3JlZmlsZSAibG9hZCBjb3JlZmlsZSIN Cj4gPj4gKw0KPiA+PiArICAgIGdkYl90ZXN0ICJpbmZvIHRocmVhZHMiIFwNCj4gPj4gKwlbbXVs dGlfbGluZSBcDQo+ID4+ICsJICAgICAiXFwqXFxzKzFcXHMrVGhyZWFkIFxbXlxyXG5cXSsiIFwN Cj4gPj4gKwkgICAgICJcXHMrMlxccytUaHJlYWQgXFteXHJcblxdKyJdIFwNCj4gPj4gKwkiY2hl Y2sgZm9yIHR3byB0aHJlYWRzIg0KPiA+PiArDQo+ID4+ICsgICAgIyBSZWNvcmQgdGhlIFRMUyB2 YWx1ZXMgaW4gdGhyZWFkIDEuDQo+ID4+ICsgICAgc2V0IHRsc19yZWdfdmFsc190aHJfMSB7ICIi ICIiICIiIH0NCj4gPj4gKyAgICBnZGJfdGVzdF9tdWx0aXBsZSAiaW5mbyByZWdpc3RlcnMgc3lz dGVtIiAiY2hlY2sgZm9yIFRMUyByZWdzIHRocmVhZCAxIg0KPiB7DQo+ID4+ICsJLXJlICJeaW5m byByZWdpc3RlcnMgc3lzdGVtXHJcbiIgew0KPiA+PiArCSAgICBleHBfY29udGludWUNCj4gPj4g Kwl9DQo+ID4+ICsJLXJlICJeaTM4Nl90bHNfZ2R0XyhcXGQpIChcXHskOjpoZXgsICQ6OmhleCwg JDo6aGV4LCAkOjpoZXhcXH0pXHJcbiIgew0KPiA+PiArCSAgICBzZXQgaWR4ICRleHBlY3Rfb3V0 KDEsc3RyaW5nKQ0KPiA+PiArCSAgICBzZXQgdmFsICRleHBlY3Rfb3V0KDIsc3RyaW5nKQ0KPiA+ PiArCSAgICBzZXQgdGxzX3JlZ192YWxzX3Rocl8xIFtscmVwbGFjZSAkdGxzX3JlZ192YWxzX3Ro cl8xICRpZHggJGlkeCAkdmFsXQ0KPiA+PiArCSAgICBleHBfY29udGludWUNCj4gPj4gKwl9DQo+ ID4+ICsJLXJlICJeJDo6Z2RiX3Byb21wdCAkIiB7DQo+ID4+ICsJICAgIGdkYl9hc3NlcnQge1ts c2VhcmNoIC1leGFjdCAkdGxzX3JlZ192YWxzX3Rocl8xICIiXSA9PSAtMX0NCj4gPj4gJGdkYl90 ZXN0X25hbWUNCj4gPj4gKwl9DQo+ID4+ICsJLXJlICJeXFteXHJcblxdK1xyXG4iIHsNCj4gPj4g KwkgICAgZXhwX2NvbnRpbnVlDQo+ID4+ICsJfQ0KPiA+PiArICAgIH0NCj4gPj4gKw0KPiA+PiAr ICAgICMgQ2hlY2sgYSBUTFMgdmFyaWFibGUgaW4gdGhyZWFkIDEuDQo+ID4+ICsgICAgZ2RiX3Rl c3QgInByaW50IGxvY2FsX3ZhciIgIiA9IDEiIFwNCj4gPj4gKwkiY2hlY2sgVExTIHZhcmlhYmxl IGluIHRocmVhZCAxIg0KPiA+PiArDQo+ID4+ICsgICAgIyBTd2l0Y2ggdG8gdGhyZWFkIDIgYW5k IGNvbmZpcm0gdGhlIHZhbHVlcyBhcmUgZGlmZmVyZW50Lg0KPiA+PiArICAgIGdkYl90ZXN0ICJ0 aHJlYWQgMiINCj4gPj4gKw0KPiA+PiArICAgIHNldCB0bHNfcmVnX3ZhbHNfdGhyXzIgeyAiIiAi IiAiIiB9DQo+ID4+ICsgICAgZ2RiX3Rlc3RfbXVsdGlwbGUgImluZm8gcmVnaXN0ZXJzIHN5c3Rl bSIgImNoZWNrIGZvciBUTFMgcmVncyB0aHJlYWQgMiINCj4gew0KPiA+PiArCS1yZSAiXmluZm8g cmVnaXN0ZXJzIHN5c3RlbVxyXG4iIHsNCj4gPj4gKwkgICAgZXhwX2NvbnRpbnVlDQo+ID4+ICsJ fQ0KPiA+PiArCS1yZSAiXmkzODZfdGxzX2dkdF8oXFxkKSAoXFx7JDo6aGV4LCAkOjpoZXgsICQ6 OmhleCwgJDo6aGV4XFx9KVxyXG4iIHsNCj4gPj4gKwkgICAgc2V0IGlkeCAkZXhwZWN0X291dCgx LHN0cmluZykNCj4gPj4gKwkgICAgc2V0IHZhbCAkZXhwZWN0X291dCgyLHN0cmluZykNCj4gPj4g KwkgICAgc2V0IHRsc19yZWdfdmFsc190aHJfMiBcDQo+ID4+ICsJCVtscmVwbGFjZSAkdGxzX3Jl Z192YWxzX3Rocl8yICRpZHggJGlkeCAkdmFsXQ0KPiA+PiArCSAgICBleHBfY29udGludWUNCj4g Pj4gKwl9DQo+ID4+ICsJLXJlICJeJDo6Z2RiX3Byb21wdCAkIiB7DQo+ID4+ICsJICAgIGdkYl9h c3NlcnQge1tsc2VhcmNoIC1leGFjdCAkdGxzX3JlZ192YWxzX3Rocl8yICIiXSA9PSAtMX0gXA0K PiA+PiArCQkkZ2RiX3Rlc3RfbmFtZQ0KPiA+PiArCX0NCj4gPj4gKwktcmUgIl5cW15cclxuXF0r XHJcbiIgew0KPiA+PiArCSAgICBleHBfY29udGludWUNCj4gPj4gKwl9DQo+ID4+ICsgICAgfQ0K PiA+PiArDQo+ID4+ICsgICAgIyBDaGVjayBhIFRMUyB2YXJpYWJsZSBpbiB0aHJlYWQgMi4NCj4g Pj4gKyAgICBnZGJfdGVzdCAicHJpbnQgbG9jYWxfdmFyIiAiID0gMiIgXA0KPiA+PiArCSJjaGVj ayBUTFMgdmFyaWFibGUgaW4gdGhyZWFkIDIiDQo+ID4+ICsNCj4gPj4gKyAgICBzZXQgYWxsX3Nh bWUgW2V4cHIgW2xpbmRleCAkdGxzX3JlZ192YWxzX3Rocl8xIDBdID09IFtsaW5kZXgNCj4gPj4g JHRsc19yZWdfdmFsc190aHJfMiAwXSBcDQo+ID4+ICsJCSAgICAgICYmIFtsaW5kZXggJHRsc19y ZWdfdmFsc190aHJfMSAxXSA9PSBbbGluZGV4DQo+ID4+ICR0bHNfcmVnX3ZhbHNfdGhyXzIgMV0g XA0KPiA+PiArCQkgICAgICAmJiBbbGluZGV4ICR0bHNfcmVnX3ZhbHNfdGhyXzEgMl0gPT0gW2xp bmRleA0KPiA+PiAkdGxzX3JlZ192YWxzX3Rocl8yIDJdXQ0KPiA+PiArICAgIGdkYl9hc3NlcnQg eyEkYWxsX3NhbWV9IFwNCj4gPj4gKwkidGxzIHJlZ3MgYXJlIGRpZmZlcmVudCBiZXR3ZWVuIHRo cmVhZHMiDQo+ID4+ICt9DQo+ID4+ICsNCj4gPj4gKyMgR2VuZXJhdGUgYSBjb3JlIGZpbGUgdXNp bmcgdGhlIGdjb3JlIGNvbW1hbmQuICBMb2FkIGl0IGludG8gR0RCIGFuZCAjDQo+ID4+ICtjaGVj ayB3ZSBjYW4gc3RpbGwgcmVhZCB0aGUgVExTIHJlZ2lzdGVycy4NCj4gPj4gK3Byb2Nfd2l0aF9w cmVmaXggdGVzdF9nY29yZV90bHMge30gew0KPiA+PiArDQo+ID4+ICsgICAgaWYgeyFbZ2NvcmVf Y21kX2F2YWlsYWJsZV19IHsNCj4gPj4gKwl1bnN1cHBvcnRlZCAiZ2NvcmUgY29tbWFuZCBub3Qg YXZhaWxhYmxlIg0KPiA+PiArCXJldHVybg0KPiA+PiArICAgIH0NCj4gPj4gKw0KPiA+PiArICAg IGNsZWFuX3Jlc3RhcnQgJDo6dGVzdGZpbGUNCj4gPj4gKw0KPiA+PiArICAgIGlmIHshW3J1bnRv X21haW5dfSB7DQo+ID4+ICsJcmV0dXJuDQo+ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICsgICAg Z2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgc2hvdWxkX2R1bXBfY29yZV9wPTAiDQo+ID4+ICsNCj4g Pj4gKyAgICBnZGJfYnJlYWtwb2ludCBjcmFzaF9mdW5jDQo+ID4+ICsgICAgZ2RiX2NvbnRpbnVl X3RvX2JyZWFrcG9pbnQgInN0b3AgYXQgY3Jhc2hfZnVuYyINCj4gPj4gKw0KPiA+PiArICAgIHNl dCBjb3JlZmlsZSBbc3RhbmRhcmRfb3V0cHV0X2ZpbGUgJHs6OnRlc3RmaWxlfS5nY29yZV0NCj4g Pj4gKyAgICBpZiB7IVtnZGJfZ2NvcmVfY21kICRjb3JlZmlsZSAiZHVtcCBjb3JlIl19IHsNCj4g Pj4gKwlyZXR1cm4NCj4gPj4gKyAgICB9DQo+ID4+ICsNCj4gPj4gKyAgICBzZXQgcmVhZGVsZl9w cm9ncmFtIFtnZGJfZmluZF9yZWFkZWxmXQ0KPiA+PiArICAgIHNldCByZXMgW2NhdGNoIHtleGVj ICRyZWFkZWxmX3Byb2dyYW0gLW4gJGNvcmVmaWxlfSBvdXRwdXRdDQo+ID4+ICsgICAgaWYgeyAk cmVzICE9IDAgfSB7DQo+ID4+ICsJdW5yZXNvbHZlZCAidW5hYmxlIHRvIHJ1biByZWFkZWxmIHRv IGNoZWNrIGZvciBUTFMgbm90ZXMiDQo+ID4+ICsJcmV0dXJuDQo+ID4+ICsgICAgfQ0KPiA+PiAr ICAgIHNldCBsaW5lcyBbc3BsaXQgJG91dHB1dCBcbl0NCj4gPj4gKyAgICBzZXQgdGxzX2NvdW50 IDANCj4gPj4gKyAgICBmb3JlYWNoIGxpbmUgJGxpbmVzIHsNCj4gPj4gKwlpZiB7W3JlZ2V4cCAi XlxccytMSU5VWFxccyskOjpoZXhcXHMrTlRfMzg2X1RMUyIgJGxpbmVdfSB7DQo+ID4+ICsJICAg IGluY3IgdGxzX2NvdW50DQo+ID4+ICsJfQ0KPiA+PiArICAgIH0NCj4gPj4gKyAgICBnZGJfYXNz ZXJ0IHskdGxzX2NvdW50ID09IDJ9IFwNCj4gPj4gKwkiZXhwZWN0ZWQgbnVtYmVyIG9mIFRMUyBu b3RlcyINCj4gPj4gKw0KPiA+PiArICAgIGxvYWRfY29yZV9hbmRfdGVzdF90bHNfcmVncyAkY29y ZWZpbGUgfQ0KPiA+PiArDQo+ID4+ICsjIEdlbmVyYXRlIGEgY29yZSBmaWxlIHVzaW5nIHRoZSBn Y29yZSBjb21tYW5kLCBidXQgYmVmb3JlIGRvaW5nIHNvLCAjDQo+ID4+ICtjbGVhciBhbGwgdGhl IFRMUyByZWxhdGVkIEdEVCBlbnRyaWVzLiAgV2hlbiB0aGUgVExTIEdEVCBlbnRyaWVzICMgaGF2 ZQ0KPiA+PiArYSBiYXNlIGFkZHJlc3MgYW5kIGxpbWl0IG9mIHplcm8gdGhlIGtlcm5lbCBkb2Vz bid0IGVtaXQgdGhlICMNCj4gPj4gK05UXzM4Nl9UTFMgbm90ZSwgR0RCIGNvcGllcyB0aGlzIGJl aGF2aW91ci4NCj4gPj4gK3Byb2Nfd2l0aF9wcmVmaXggdGVzdF9nY29yZV9ub190bHMge30gew0K PiA+PiArDQo+ID4+ICsgICAgaWYgeyFbZ2NvcmVfY21kX2F2YWlsYWJsZV19IHsNCj4gPj4gKwl1 bnN1cHBvcnRlZCAiZ2NvcmUgY29tbWFuZCBub3QgYXZhaWxhYmxlIg0KPiA+PiArCXJldHVybg0K PiA+PiArICAgIH0NCj4gPj4gKw0KPiA+PiArICAgIGNsZWFuX3Jlc3RhcnQgJDo6dGVzdGZpbGUN Cj4gPj4gKw0KPiA+PiArICAgIGlmIHshW3J1bnRvX21haW5dfSB7DQo+ID4+ICsJcmV0dXJuDQo+ ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICsgICAgZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJzZXQgc2hv dWxkX2R1bXBfY29yZV9wPTAiDQo+ID4+ICsNCj4gPj4gKyAgICBnZGJfYnJlYWtwb2ludCBjcmFz aF9mdW5jDQo+ID4+ICsgICAgZ2RiX2NvbnRpbnVlX3RvX2JyZWFrcG9pbnQgInN0b3AgYXQgY3Jh c2hfZnVuYyINCj4gPj4gKw0KPiA+PiArICAgICMgQ2xlYXIgdGhlIFRMUyByZWdpc3RlcnMgaW4g ZWFjaCB0aHJlYWQuDQo+ID4+ICsgICAgZm9yZWFjaF93aXRoX3ByZWZpeCB0aHIgeyAxIDIgfSB7 DQo+ID4+ICsJZ2RiX3Rlc3QgInRocmVhZCAkdGhyIiAiLioiIFwNCj4gPj4gKwkgICAgInN3aXRj aCB0aHJlYWQgdG8gY2xlYXIgdGxzIHJlZ3MiDQo+ID4+ICsJZ2RiX3Rlc3Rfbm9fb3V0cHV0ICJz ZXQgXCRpMzg2X3Rsc19nZHRfMCA9IHsgMHgwLCAweDAsIDB4MCwgMHgyOCB9Ig0KPiA+PiArCWdk Yl90ZXN0X25vX291dHB1dCAic2V0IFwkaTM4Nl90bHNfZ2R0XzEgPSB7IDB4MCwgMHgwLCAweDAs IDB4MjggfSINCj4gPj4gKwlnZGJfdGVzdF9ub19vdXRwdXQgInNldCBcJGkzODZfdGxzX2dkdF8y ID0geyAweDAsIDB4MCwgMHgwLCAweDI4IH0iDQo+ID4+ICsgICAgfQ0KPiA+PiArDQo+ID4+ICsg ICAgc2V0IGNvcmVmaWxlIFtzdGFuZGFyZF9vdXRwdXRfZmlsZSAkezo6dGVzdGZpbGV9Lmdjb3Jl XQ0KPiA+PiArICAgIGlmIHshW2dkYl9nY29yZV9jbWQgJGNvcmVmaWxlICJkdW1wIGNvcmUiXX0g ew0KPiA+PiArCXJldHVybg0KPiA+PiArICAgIH0NCj4gPj4gKw0KPiA+PiArICAgICMgTG9vayBp biB0aGUgY29yZSBmaWxlIGZvciBOVF8zODZfVExTIGVudHJpZXMuICBUaGVyZSBzaG91bGQgYmUN Cj4gPj4gKyAgICAjIG5vbmUuDQo+ID4+ICsgICAgc2V0IHJlYWRlbGZfcHJvZ3JhbSBbZ2RiX2Zp bmRfcmVhZGVsZl0NCj4gPj4gKyAgICBzZXQgcmVzIFtjYXRjaCB7ZXhlYyAkcmVhZGVsZl9wcm9n cmFtIC1uICRjb3JlZmlsZX0gb3V0cHV0XQ0KPiA+PiArICAgIGlmIHsgJHJlcyAhPSAwIH0gew0K PiA+PiArCXVucmVzb2x2ZWQgInVuYWJsZSB0byBydW4gcmVhZGVsZiB0byBjaGVjayBmb3IgVExT IG5vdGVzIg0KPiA+PiArCXJldHVybg0KPiA+PiArICAgIH0NCj4gPj4gKyAgICBzZXQgbGluZXMg W3NwbGl0ICRvdXRwdXQgXG5dDQo+ID4+ICsgICAgc2V0IHRsc19jb3VudCAwDQo+ID4+ICsgICAg Zm9yZWFjaCBsaW5lICRsaW5lcyB7DQo+ID4+ICsJaWYge1tyZWdleHAgIl5cXHMrTElOVVhcXHMr JDo6aGV4XFxzK05UXzM4Nl9UTFMiICRsaW5lXX0gew0KPiA+PiArCSAgICBpbmNyIHRsc19jb3Vu dA0KPiA+PiArCX0NCj4gPj4gKyAgICB9DQo+ID4+ICsgICAgZ2RiX2Fzc2VydCB7JHRsc19jb3Vu dCA9PSAwfSBcDQo+ID4+ICsJImV4cGVjdGVkIG51bWJlciBvZiBUTFMgbm90ZXMiDQo+ID4+ICsN Cj4gPj4gKyAgICAjIFJlc3RhcnQgR0RCIGFuZCBsb2FkIHRoZSBjb3JlIGZpbGUuICBBcyB0aGVy ZSBhcmUgbm8gTlRfMzg2X1RMUw0KPiA+PiArICAgICMgZW50cmllcyB0aGUgVExTIHJlZ2lzdGVy cyBzaG91bGQgc2hvdyBhcyB1bmF2YWlsYWJsZS4NCj4gPj4gKyAgICBjbGVhbl9yZXN0YXJ0ICQ6 OnRlc3RmaWxlDQo+ID4+ICsNCj4gPj4gKyAgICBnZGJfY29yZV9jbWQgJGNvcmVmaWxlICJsb2Fk IGNvcmVmaWxlIg0KPiA+PiArDQo+ID4+ICsgICAgZ2RiX3Rlc3QgImluZm8gdGhyZWFkcyIgXA0K PiA+PiArCVttdWx0aV9saW5lIFwNCj4gPj4gKwkgICAgICJcXCpcXHMrMVxccytUaHJlYWQgXFte XHJcblxdKyIgXA0KPiA+PiArCSAgICAgIlxccysyXFxzK1RocmVhZCBcW15cclxuXF0rIl0gXA0K PiA+PiArCSJjaGVjayBmb3IgdHdvIHRocmVhZHMiDQo+ID4+ICsNCj4gPj4gKyAgICBmb3JlYWNo X3dpdGhfcHJlZml4IHRociB7IDEgMiB9IHsNCj4gPj4gKwlzZXQgdW5hdmFpbGFibGVfdGxzX2Nv dW50IDANCj4gPj4gKwlzZXQgdmFsaWRfdGxzX2NvdW50IDANCj4gPj4gKwlnZGJfdGVzdCAidGhy ZWFkICR0aHIiICIuKiIgXA0KPiA+PiArCSAgICAic3dpdGNoIHRocmVhZCB0byBjaGVjayBUTFMg cmVnaXN0ZXIgc3RhdHVzIg0KPiA+PiArCWdkYl90ZXN0X211bHRpcGxlICJpbmZvIHJlZ2lzdGVy cyBzeXN0ZW0iICJjaGVjayBUTFMgcmVnIHZhbHVlcyIgew0KPiA+PiArCSAgICAtcmUgIl5pbmZv IHJlZ2lzdGVycyBzeXN0ZW1cclxuIiB7DQo+ID4+ICsJCWV4cF9jb250aW51ZQ0KPiA+PiArCSAg ICB9DQo+ID4+ICsJICAgIC1yZSAiXmkzODZfdGxzX2dkdF9cXGQgXFx7PHVuYXZhaWxhYmxlPiwg PHVuYXZhaWxhYmxlPiwNCj4gPj4gPHVuYXZhaWxhYmxlPiwgPHVuYXZhaWxhYmxlPlxcfVxyXG4i IHsNCj4gPj4gKwkJaW5jciB1bmF2YWlsYWJsZV90bHNfY291bnQNCj4gPj4gKwkJZXhwX2NvbnRp bnVlDQo+ID4+ICsJICAgIH0NCj4gPj4gKwkgICAgLXJlICJeaTM4Nl90bHNfZ2R0X1xcZCBcW15c clxuXF0rXHJcbiIgew0KPiA+PiArCQlpbmNyIHZhbGlkX3Rsc19jb3VudA0KPiA+PiArCQlleHBf Y29udGludWUNCj4gPj4gKwkgICAgfQ0KPiA+PiArDQo+ID4+ICsJICAgIC1yZSAiXiQ6OmdkYl9w cm9tcHQgJCIgew0KPiA+PiArCQlnZGJfYXNzZXJ0IHskdmFsaWRfdGxzX2NvdW50ID09IDAgJiYg XA0KPiA+PiArCQkJCSR1bmF2YWlsYWJsZV90bHNfY291bnQgPT0gM30gXA0KPiA+PiArCQkgICAg JGdkYl90ZXN0X25hbWUNCj4gPj4gKwkgICAgfQ0KPiA+PiArCSAgICAtcmUgIl5cW15cclxuXF0r XHJcbiIgew0KPiA+PiArCQlleHBfY29udGludWUNCj4gPj4gKwkgICAgfQ0KPiA+PiArCX0NCj4g Pj4gKw0KPiA+PiArCSMgQ2hlY2sgYSBUTFMgdmFyaWFibGUgaW4gdGhpcyB0aHJlYWQuDQo+ID4+ ICsJZ2RiX3Rlc3QgInByaW50IGxvY2FsX3ZhciIgIiA9ICR0aHIiIFwNCj4gPj4gKwkgICAgImNo ZWNrIFRMUyB2YXJpYWJsZSBpbiB0aHJlYWQgJHRociINCj4gPj4gKyAgICB9DQo+ID4+ICt9DQo+ ID4+ICsNCj4gPj4gKyMgR2VuZXJhdGUgYSBuYXRpdmUgY29yZSBmaWxlLiAgTG9hZCBpdCBpbnRv IEdEQiBhbmQgY2hlY2sgdGhlIFRMUyAjDQo+ID4+ICtyZWdpc3RlcnMgY2FuIGJlIHJlYWQuDQo+ ID4+ICtwcm9jX3dpdGhfcHJlZml4IHRlc3RfbmF0aXZlX2NvcmUge30gew0KPiA+PiArICAgIHNl dCBjb3JlZmlsZSBbY29yZV9maW5kICQ6OmJpbmZpbGVdDQo+ID4+ICsgICAgaWYgeyAkY29yZWZp bGUgZXEgIiIgfSB7DQo+ID4+ICsJdW5zdXBwb3J0ZWQgInVuYWJsZSB0byBnZW5lcmF0ZSBjb3Jl IGZpbGUiDQo+ID4NCj4gPiBHaXZlbiB0aGF0IHRoaXMgaXMgdXN1YWxseSBhIHNldHVwIGlzc3Vl LCBJIHRoaW5rIFVOVEVTVEVEIHdvdWxkIGZpdCBiZXR0ZXINCj4gaGVyZS4NCj4gPiBJIHRyaWVk IHRvIG1ha2UgdGhhdCBjb25zaXN0ZW50IGluIG91ciB0ZXN0c3VpdGUgd2l0aCB0aGlzIHBhdGNo Og0KPiA+IGh0dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWJpbnV0aWxzLQ0KPiBnZGIuZ2l0 O2E9Y29tbWl0O2g9ODU3ZWY5NWNkOWViODdhMTU0OGYxZDQ5OTljZTIzMGE0NTRmMTZhYw0KPiA+ IFNvcnJ5IGZvciBub3QgYmVpbmcgdG9vIHNwZWNpZmljIGluIHRoZSBmaXJzdCBwbGFjZS4NCj4g DQo+IEkgdGhpbmsgVU5URVNURUQgaXMgdGhlIHdyb25nIGNob2ljZS4gIEhlcmUncyB3aGF0IHRo ZSBEZWphR05VIG1hbnVhbA0KPiBoYXMgdG8gc2F5Og0KPiANCj4gICBVTlRFU1RFRA0KPiAgICAg ICAgQSB0ZXN0IHdhcyBub3QgcnVuLiAgVGhpcyBpcyBhIHBsYWNlaG9sZGVyIHVzZWQgd2hlbiB0 aGVyZSBpcyBubw0KPiAgICAgICAgcmVhbCB0ZXN0IGNhc2UgeWV0Lg0KDQpBaCwgSSBzZWUuIFVO VEVTVEVEIGlzIG5vdCBhIGdvb2QgY2hvaWNlLCBJIGFncmVlLg0KDQo+IFNvIHRvIG1lLCB0aGlz IGlzIGZvciBjYXNlcyB3aGVyZSB3ZSAoR0RCIGRldmVsb3BlcnMpIGVpdGhlciBoYXZlbid0DQo+ IHdyaXR0ZW4gYSB0ZXN0IHlldCwgb3IgZG9uJ3Qga25vdyBob3cgdG8gd3JpdGUgYSB0ZXN0LiAg VGhlIGJpdCBhYm91dA0KPiAibm8gcmVhbCB0ZXN0IGNhc2UgeWV0IiBjZXJ0YWlubHkgc2VlbXMg dG8gZXhjbHVkZSBpdHMgdXNlIGluIHRoaXMgY2FzZS4NCj4gDQo+IEZvciBVTlNVUFBPUlRFRCB0 aGUgbWFudWFsIHNheXM6DQo+IA0KPiAgIFVOU1VQUE9SVEVEDQo+ICAgICAgICBUaGVyZSBpcyBu byBzdXBwb3J0IGZvciB0aGUgdGVzdGVkIGNhc2UuICBUaGlzIG1heSBtZWFuIHRoYXQgYQ0KPiAg ICAgICAgY29uZGl0aW9uYWwgZmVhdHVyZSBvZiBhbiBvcGVyYXRpbmcgc3lzdGVtLCBvciBvZiBh IGNvbXBpbGVyLCBpcw0KPiAgICAgICAgbm90IGltcGxlbWVudGVkLiAgRGVqYUdudSBhbHNvIHVz ZXMgdGhpcyBtZXNzYWdlIHdoZW4gYSB0ZXN0aW5nDQo+ICAgICAgICBlbnZpcm9ubWVudCAob2Z0 ZW4gYSAiYmFyZSBib2FyZCIgdGFyZ2V0KSBsYWNrcyBiYXNpYyBzdXBwb3J0IGZvcg0KPiAgICAg ICAgY29tcGlsaW5nIG9yIHJ1bm5pbmcgdGhlIHRlc3QgY2FzZS4gIEZvciBleGFtcGxlLCBhIHRl c3QgZm9yIHRoZQ0KPiAgICAgICAgc3lzdGVtIHN1YnJvdXRpbmUgX2dldGhvc3RuYW1lXyB3b3Vs ZCBuZXZlciB3b3JrIG9uIGEgdGFyZ2V0IGJvYXJkDQo+ICAgICAgICBydW5uaW5nIG9ubHkgYSBi b290IG1vbml0b3IuDQo+IA0KPiBXaGljaCBzZWVtcyB0byBiZSBhIHNsaWdodGx5IGJldHRlciBt YXRjaCBmb3IgdGhpcyBjYXNlLCB0aG91Z2ggSSdkDQo+IGFncmVlIGl0J3Mgbm90IGEgcGVyZmVj dCBtYXRjaC4gIFRoZSBjb25kaXRpb25hbCBmZWF0dXJlIChrZXJuZWwgY29yZQ0KPiBmaWxlIGdl bmVyYXRpb24pIGlzIGltcGxlbWVudGVkICh3ZSBjYW4gYXNzdW1lKSwgYnV0IGlzIGRpc2FibGVk IG9uIHRoaXMNCj4gc3lzdGVtLiAgQW5kIEkgdGhpbmsgdGhpcyBtYWtlcyBzZW5zZTsgb24gYSBz eXN0ZW0gd2hlcmUga2VybmVsIGNvcmUNCj4gZmlsZSBjcmVhdGlvbiBoYXMgYmVlbiBkaXNhYmxl ZCwgcnVubmluZyBhIHRlc3QgdGhhdCByZWxpZXMgb24gdGhpcw0KPiBmZWF0dXJlIGlzIG5vdCBz dXBwb3J0ZWQuDQoNCkluIHByYWN0aWNlLCBJ4oCZdmUgb2Z0ZW4gb2JzZXJ2ZWQgdGhhdCB0aGUg dGVzdHN1aXRlIHJ1bnMgYW5kIGFueSBVTlNVUFBPUlRFRA0KbG9ncyBhcmUgb3Zlcmxvb2tlZC4g QXMgYSByZXN1bHQsIGl0IGZyZXF1ZW50bHkgZ29lcyB1bm5vdGljZWQgdGhhdCBjb3JlZmlsZSB0 ZXN0cw0KaGF2ZSBub3QgYmVlbiBleGVjdXRlZC4gSWRlYWxseSwgdGhlcmUgd291bGQgYmUgYSB3 YXkgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuDQpzZXR1cCBpc3N1ZXMgdGhhdCBjYW4gYmUgcmVz b2x2ZWQgYW5kIHRlc3RzIHRoYXQgYXJlIHRydWx5IHVuc3VwcG9ydGVkIGR1ZSB0bw0KaGFyZHdh cmUgbGltaXRhdGlvbnMuDQpPbmUgYWx0ZXJuYXRpdmUgY291bGQgYmUgdG8gbWFyayB0aGUgdGVz dCBhcyBmYWlsZWQgd2hlbiB0aGUgY29yZWZpbGUgaXMgbm90DQpmb3VuZC4gSG93ZXZlciwgSeKA mW0gbm90IGVudGlyZWx5IGNvbWZvcnRhYmxlIHdpdGggdGhhdCBhcHByb2FjaCBlaXRoZXIuIElm IHRoZQ0KdGVzdHMgYXJlIG9ubHkgcmV2aWV3ZWQgd2hlbiBhIG5ldyBwYXRjaCBpbnRyb2R1Y2Vz IGZhaWx1cmVzLCB0aGlzIGlzc3VlIGNvdWxkDQpyZW1haW4gaGlkZGVuIGFzIHdlbGwuDQoNCkNo cmlzdGluYQ0KDQoNCkludGVsIERldXRzY2hsYW5kIEdtYkgNClJlZ2lzdGVyZWQgQWRkcmVzczog RG9ybmFjaGVyIFN0cmHDn2UgMSwgODU2MjIgRmVsZGtpcmNoZW4sIEdlcm1hbnkNClRlbDogKzQ5 IDg5IDk5MSA0MzAsIHd3dy5pbnRlbC5kZQ0KTWFuYWdpbmcgRGlyZWN0b3JzOiBIYXJyeSBEZW1h cywgSmVmZnJleSBTY2huZWlkZXJtYW4sIFlpbiBDaG9uZyBTb3JyZWxsDQpDaGFpcnBlcnNvbiBv ZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUNClJlZ2lzdGVyZWQgU2VhdDogTXVu aWNoDQpDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNw7xuY2hlbiBIUkIgMTg2OTI4 Cg==