From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.9]) by sourceware.org (Postfix) with ESMTPS id 880313858D20 for ; Tue, 5 Mar 2024 15:50:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 880313858D20 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 880313858D20 Authentication-Results: server2.sourceware.org; arc=fail smtp.remote-ip=198.175.65.9 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1709653816; cv=fail; b=Q+xzgCuq2ez7ymBXCo3nyR1xy3hPoZao4JUI94dWMzjsV37L4pm8DyhDgmEZoKBptooLIbkIeVMRL2cu5VwpayU9zrtm2u8Rq+4wPcxGUiv1hk5YLF65MhmSgCBG4ApF7fOmHvO1M0wjQIU6UBgXnVJSQ5xj37mOS9359nbG32w= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1709653816; c=relaxed/simple; bh=8YR/sK1sCt7JE5SFxyJrIbFK0EtClnenN7rOpEM9krM=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=OAa9Y4zeosyHBYm7QpGjjtPEXamQqrrTZbUOmqrB98hBdf+A0J9V6D8Ovpx8lE9X9OjLO3EvmlSz4bIVebGAHPKZW4uvhFIzUF5Ue9zH5Isv2giaAtdyR+Iwvi3kwvfukQY9rwJRXRKMOpIuzPlr+TG6kbCoWOXOUoRfueYI/o4= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1709653812; x=1741189812; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=8YR/sK1sCt7JE5SFxyJrIbFK0EtClnenN7rOpEM9krM=; b=dxoFPK15+z3YOCudfVY1IBm4F7QPcbYqGNVEzG7BGKqNvkchhrEy9FHd 8BlD63MfCFqOHl9DEnZAqH5Msvx2/7e6qFMPKN+t4n59QMJ6c0KETfneX h8+02rozQe8pUv+hgi7Txrpmida6/zcb6ge0bMsvO9i5fp3Pjhdrfo6N1 6b2bIteN/8yHg1+bS94dcXK2ZrSCRyg+yDlwC70N55ZT82hdAR0R6F1y6 NG0d7X/KaeYdoBvjygdUTo+bnzdM54hjQUisk52ETbzAvpX+Y1Kt3emXf z1ixjin9li+HVEO6Ua1gyYxVazBQPyyV7k+rFCesiD4ArhXySk1OXuMS/ w==; X-IronPort-AV: E=McAfee;i="6600,9927,11003"; a="26671889" X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="26671889" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by orvoesa101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2024 07:50:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,205,1705392000"; d="scan'208";a="32594989" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by fmviesa002.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 05 Mar 2024 07:50:06 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Tue, 5 Mar 2024 07:50:06 -0800 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Tue, 5 Mar 2024 07:50:06 -0800 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.101) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Tue, 5 Mar 2024 07:50:03 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JC4JXlWdRks2t3kh9I0QXDnYWGv1QQPQNnTpdHx2GqUVzEhVcDW/cWusGPj3rvN8wgOLp1W0MB2v4mWiZJzz1gfdVvqg4e9p9zilCAs5SQMjQigOV2NGn+hKW/OBEnaCJxMfr4z/QN3Fejay/rQ3jI8F8WTEFJDSjcU1KFJp9C/QoKWBEOfqRqPeUv29DodNh6UMJx2uAtpJBYGDFryd+ZSGS6jK53GRWDiDzn093i0GnudAMb7lzVsY6MtlmWVbW00fr1nX10icMhdNOdYCl9KRYhucevTSkn6WlzbnEyUR1g0PLoxI/ilp7DGiGBx6rrQWhN9RVSUF0q32GP6wFg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qMhElpwnqTj26s+FWeiwJ6wZNnmch/9rg9XLXylLu9s=; b=PsqXNCWqCzT7iprLZjEuPEx7DKayf9TL0PES79n4qrPecdZVdMQLImCmUUY/wajh7TtxsdhRYIOJ6mIRgY7cFVNyEXcX9KLgMVusfefCRvOB7srw796A2jgSwJffDOr0IoqQKVwlVFI5QwaG4rORkS1Yn4rlmpyHKLQG9F3INyz4Nfuqc/kRs3iKVYPFg2DMwVq9OUBT086K0pUdzYWy6TDcycihuf/0K+cSvFBw30zXuDg+40WaCYdkE7NSz6A9qO2fRRlY2vaaAIwvI3tQjdX8Lppj0e6ea7bKp46WK5JxO0bOr4StHrtw9/30d0ezKbBTwTnwSgg3A32nQUTbLg== 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 MN2PR11MB4566.namprd11.prod.outlook.com (2603:10b6:208:24e::16) by CH3PR11MB8467.namprd11.prod.outlook.com (2603:10b6:610:1bd::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.22; Tue, 5 Mar 2024 15:49:57 +0000 Received: from MN2PR11MB4566.namprd11.prod.outlook.com ([fe80::39be:a2b8:752e:a089]) by MN2PR11MB4566.namprd11.prod.outlook.com ([fe80::39be:a2b8:752e:a089%5]) with mapi id 15.20.7362.015; Tue, 5 Mar 2024 15:49:57 +0000 From: "Willgerodt, Felix" To: Andrew Burgess , "gdb-patches@sourceware.org" CC: Eli Zaretskii Subject: RE: [PATCHv9 14/14] gdb: only insert thread-specific breakpoints in the relevant inferior Thread-Topic: [PATCHv9 14/14] gdb: only insert thread-specific breakpoints in the relevant inferior Thread-Index: AQHabxFrbueZIhPmR0Gu5K7TW/zGdbEpSFOA Date: Tue, 5 Mar 2024 15:49:57 +0000 Message-ID: References: <3a2b295e10626cf03ce54b1d32c9175eba725f0c.1709651994.git.aburgess@redhat.com> In-Reply-To: <3a2b295e10626cf03ce54b1d32c9175eba725f0c.1709651994.git.aburgess@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: MN2PR11MB4566:EE_|CH3PR11MB8467:EE_ x-ms-office365-filtering-correlation-id: 9a785c36-05cb-4f46-089d-08dc3d2be85e x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 78OQlVNnvSKrU1uwNqWwGzoBQhhmJ2dMCEb3TgOtUzpvmd3/gUZc16FPZMK9Mx/uG+PAnInwp/53ElUERYJ6lfibDuZGfBhQk3UhTaX4EgKM+/HMIeEK7wq+icZ4pH6cRSMQcKdKotMYkXcXEmQoseP/ssytBP8WMoV2wevLkp65XVgVePdptyRsc6Iz50DqQLhhT3VJ7Sxp/siZvVIBrHAf4BXHy1e9y1qPfpbJjoHqgQUdPN3zvyrWJzrid3rFl2MeyOTRn1iBGnVY9mbkq8MHgK7tKmbUDdmyQvTxcUE9Kjyu9qbJPUHnCrUdzbrIlKBIN1rFuJY6MUF9lTeHzWshvPrBudKltwDPhjJj1bNWo0cfCBlXIMWoV3OhK10HlQvsL7eDOdZB8UPQJYsGcf/ZcI1hEg9Xl0LfWZViARLCxUVBGHthpOhPZ7CZn7wTiAKL1XVret4jsotcmXWX23P2XAP+FP2+wViAWVJC8he8KzqChfZv0ZZ857kXI0GWB/I/yF8jHKwRrPVxRJSDIGMOhfLzk0d2MmeC++JLYhm2U1FoRc4QHhH1YJrakQRdw/JBudZn6UO2eJ7N/PPWDZcAM5R+KjFKPhIWXX5EUiZQh3JTPHQKGOPkX3wc37vZ9llTOvUHpxdy3bRH+cQz+gnNLRpcfp66CGq139mM5RI= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4566.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376005)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?aGNOOFJBUDdXVmRXV25XK1FDWGIzdFVYMXlNd290N0lPcWV4WFhvbGlLRWZ3?= =?utf-8?B?b2I4SmtobFFIeU1XR0dzWjNSb2JGRlQ4N3NqSmRFOXVaOVNvZHhPN2lXNTdn?= =?utf-8?B?STMvVjNQK3Y1UTQ2QzlMQUpUby95NG1ubmFObFFxd0l4NnNLOGpiVjZUcGpt?= =?utf-8?B?T0NqTGpzZXNKRWt2eExoU1NxaUwvVFZ2Zm56Ym1LUW00a1dTVnFWQXkrSEhR?= =?utf-8?B?U1VST2N1T1owa3dWVGhKOGtYeTh4WjlzSkpvelZldkl3bDRiV29NZnYxOU1l?= =?utf-8?B?ZW05aUtmY2NZMklCR2NqT3V1aE5EOVNrS0VTdmRoMURUV05KY2VNTlg1NDNj?= =?utf-8?B?R21rS2x5Q3Bpc2grMDREcGs3RExoTzc2ckV5Sm5IMlV2bGUvSmhkY1FBWVBQ?= =?utf-8?B?MTNSNkNpRlFraVhJaUludWhaVllFSlhiOXIzYzUySm4xSDY3a0V5MEVOTkt4?= =?utf-8?B?a0dQYWNySGdDN0hpRTJhZDgvZUxEQThyeHk1Y3FCbDFEbXY3SDBTSDMrRytp?= =?utf-8?B?NmxiSlNyU2dtUHB2a3NaL2RibmREdklqOHRhZzFvRVh2N04zK2xQMEtXWDJR?= =?utf-8?B?K3BtcE1hU2tJNm9jOXVQR0MxSTY0bWZtQ0k5T0cydERTNVoyaTNEc0w0emM1?= =?utf-8?B?dVozTlFYLzJXNEF4UWxXc0hLT2syT2JqNHdNWkVSN25XWm1Ja09rUVFYOUFm?= =?utf-8?B?a0NtWEY0bGVwd2RHbmExdlNld0k5ek9qelZYV0V5bGtLMzB2cVhoM1hmR2VB?= =?utf-8?B?WnRyZDlSNTFTc21lWUdrVVJpWFRsTHJyOHNzSE9qZEdXRDl6NUNWTlF5dlg5?= =?utf-8?B?KzlHcFhnTjUzNERQcDRvOURMTTM0UnpJdmxqYVNxM2NXK3ZoYWkwVElTNm51?= =?utf-8?B?RU9zVHlhRHJZWW1JYjkvOHlnWWh4ZDZVM0dxdGo3TkhXZkRobnJUTnFZaXlv?= =?utf-8?B?YStMM2xkOVh4REJSbkIzUmd2SWpFTE5ma3UveHpWV0wzWm9zVTB3REN1MGsx?= =?utf-8?B?cEl4TU1wT3hKUlBLVWFyT29pclN5YnVqVUN1d1EzUW5xUDcxUjUxMnJ1L2pU?= =?utf-8?B?ZHkvVFc2bGxucjhlTGhjL29xQVVoWkwrSWo2ZUNCR1VYYkpwRzJYNFNvMHVZ?= =?utf-8?B?RE1DQ1p1QlYybldNM1IvcE1mcG9NWWsvS3FWMTZmK3NLbnlYUlFSaVUrTUR1?= =?utf-8?B?cXE5Wkt1ejMwTGtLWEtsT0l2SjFTTEhuTzY5Zk1BYmZ5NC9iTHhaL0dpWlBH?= =?utf-8?B?TWlkdVZBbE9LdXJrS0Rzbkp4SWVnNTUyNER0ZFczb21pbFVLM1FqTE5nWitK?= =?utf-8?B?eEdoaUlLMUtUUHZqUkkvM0NveE1wSVQvanJVa3BxWld6RlNwTXpVU2NSTk5V?= =?utf-8?B?N2FMM0NGZjhWUmZaRFY5eVFsNXFrL2tWdCtMTkl2cGMzQUpuUjRuYk1pK0p1?= =?utf-8?B?VUZnY1Rtdk4zQzAxeWxoVFY1WlE4TE9aVzZrRkJxcUdvRmMvUDhGTVZpL1U3?= =?utf-8?B?aEVmc25wNU8yaTRqc25TakNPOW43TytsRG42UHNzcEtJRmMxNEtUcHkxL3pq?= =?utf-8?B?MEl0U2hMNDVoU1Q2Q01XZUVCS0hMSDRrRVNyViswcVZJdWxRcmoxT0hMbjVw?= =?utf-8?B?MU1CdC9NWHphN3l0cmxGTERSaFM3QW5VRTJkd3E2VnhBRndvaVQ2SG42c0dO?= =?utf-8?B?KzFXV0t2ZUEyU0NmRXcwRFZ1aDhvWWlsV1JmcmZVQUlsaU43YXVHVzBhR0x3?= =?utf-8?B?Qjc0UFlzK0M5aVZxQzFDcGZJdkY3WFZMNGhiUURFdTlORDNtTi9aUTI3TjFW?= =?utf-8?B?REQ4blpnRzk5VUZFWW94V0liaGtvdTd6eDVtVVN6Z0wySi9PUjRFRlRzVUFn?= =?utf-8?B?Z0hTdTd4SFF0b2wzS0lkVWp1dGV2b0V2VkZiTmZXM0FaNTl3NlpFNDdpVm1J?= =?utf-8?B?R2podEt0OUNQUmZmQy9QNTRVWHZFbGErMWVKSEFMU0tZRjVIYkVuVWVGRW41?= =?utf-8?B?MTFoN2pHMDJGM0ZMM3lkL2pDZ0FFbDVsNnFQV01NNUZWN3RHQWtzWDlPMHJP?= =?utf-8?B?R1YrNHkvK0RGUUdXeUU1N0JJcWM3Nk43TWZMeXUzZzhuM1JUaHFsK2pCU25u?= =?utf-8?B?WFVrZjRwb2JhME9MZkVKZ1YraW82WEtYOTdSTjZOSU1LVUtwNGFaMEkxWUJL?= =?utf-8?B?bVpORjRXVEdPN2xoMHp5cmo0U3hELytWdVlVVFNSTFYwTW1MS0NrUnZUcGc4?= =?utf-8?B?MERYOW85QnFsd2RCc0UycnRPSDh3PT0=?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4566.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a785c36-05cb-4f46-089d-08dc3d2be85e X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2024 15:49:57.0848 (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: zsJS/fF7nvpXPmK7hyG+1zF3jRPJm9BzF9yRs6dh9v5ycISUhvAnwOJgg1pvazZYj8uqR4t7yO5YNYRqfGHEv5Q0D649HpPSPFXQ1jiMQAg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8467 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBBbmRyZXcgQnVyZ2VzcyA8YWJ1 cmdlc3NAcmVkaGF0LmNvbT4NCj4gU2VudDogRGllbnN0YWcsIDUuIE3DpHJ6IDIwMjQgMTY6MjIN Cj4gVG86IGdkYi1wYXRjaGVzQHNvdXJjZXdhcmUub3JnDQo+IENjOiBBbmRyZXcgQnVyZ2VzcyA8 YWJ1cmdlc3NAcmVkaGF0LmNvbT47IEVsaSBaYXJldHNraWkgPGVsaXpAZ251Lm9yZz4NCj4gU3Vi amVjdDogW1BBVENIdjkgMTQvMTRdIGdkYjogb25seSBpbnNlcnQgdGhyZWFkLXNwZWNpZmljIGJy ZWFrcG9pbnRzIGluIHRoZQ0KPiByZWxldmFudCBpbmZlcmlvcg0KPiANCj4gVGhpcyBjb21taXQg dXBkYXRlcyBHREIgc28gdGhhdCB0aHJlYWQgb3IgaW5mZXJpb3Igc3BlY2lmaWMNCj4gYnJlYWtw b2ludHMgYXJlIG9ubHkgaW5zZXJ0ZWQgaW50byB0aGUgcHJvZ3JhbSBzcGFjZSBpbiB3aGljaCB0 aGUNCj4gc3BlY2lmaWMgdGhyZWFkIG9yIGluZmVyaW9yIGlzIHJ1bm5pbmcuDQo+IA0KPiBJbiB0 ZXJtcyBvZiBpbXBsZW1lbnRhdGlvbiwgZ2V0dGluZyB0aGlzIGJhc2ljYWxseSB3b3JraW5nIGlz IGVhc3kNCj4gZW5vdWdoLCBub3cgdGhhdCBhIGJyZWFrcG9pbnQncyB0aHJlYWQgb3IgaW5mZXJp b3IgZmllbGQgaXMgc2V0dXANCj4gcHJpb3IgdG8gR0RCIGxvb2tpbmcgZm9yIGxvY2F0aW9ucywg d2UgY2FuIGVhc2lseSB1c2UgdGhpcyBpbmZvcm1hdGlvbg0KPiB0byBmaW5kIGEgc3VpdGFibGUg cHJvZ3JhbV9zcGFjZSBhbmQgcGFzcyB0aGlzIHRvIGFzIGEgZmlsdGVyIHdoZW4NCj4gY3JlYXRp bmcgdGhlIHNhbHMuDQo+IA0KPiBPciB3ZSBjb3VsZCBpZiBicmVha3BvaW50X29wczo6Y3JlYXRl X3NhbHNfZnJvbV9sb2NhdGlvbl9zcGVjIGFsbG93ZWQNCj4gdXMgdG8gcGFzcyBpbiBhIGZpbHRl ciBwcm9ncmFtX3NwYWNlLg0KPiANCj4gU28sIHRoaXMgY29tbWl0IGV4dGVuZHMgYnJlYWtwb2lu dF9vcHM6OmNyZWF0ZV9zYWxzX2Zyb21fbG9jYXRpb25fc3BlYw0KPiB0byB0YWtlIGEgcHJvZ3Jh bV9zcGFjZSBhcmd1bWVudCwgYW5kIHVzZXMgdGhpcyB0byBmaWx0ZXIgdGhlIHNldCBvZg0KPiBy ZXR1cm5lZCBzYWxzLiAgVGhpcyBhY2NvdW50cyBmb3IgYWJvdXQgaGFsZiB0aGUgY2hhbmdlIGlu IHRoaXMgcGF0Y2guDQo+IA0KPiBUaGUgc2Vjb25kIHNldCBvZiBjaGFuZ2VzIHN0YXJ0cyBmcm9t IGJyZWFrcG9pbnRfc2V0X3RocmVhZCBhbmQNCj4gYnJlYWtwb2ludF9zZXRfaW5mZXJpb3IsIHRo aXMgaXMgY2FsbGVkIHdoZW4gdGhlIHRocmVhZCBvciBpbmZlcmlvcg0KPiBmb3IgYSBicmVha3Bv aW50IGNoYW5nZXMsIGUuZy4gZnJvbSB0aGUgUHl0aG9uIEFQSS4NCj4gDQo+IFByZXZpb3VzbHkg dGhpcyBjYWxsIHdvdWxkIG5ldmVyIHJlc3VsdCBpbiB0aGUgbG9jYXRpb25zIG9mIGENCj4gYnJl YWtwb2ludCBjaGFuZ2luZywgYWZ0ZXIgYWxsLCBsb2NhdGlvbnMgd2VyZSBpbnNlcnRlZCBpbiBl dmVyeQ0KPiBwcm9ncmFtIHNwYWNlLCBhbmQgd2UganVzdCB1c2UgdGhlIHRocmVhZCBvciBpbmZl cmlvciB2YXJpYWJsZSB0bw0KPiBkZWNpZGUgd2hlbiB3ZSBzaG91bGQgc3RvcC4gIE5vdyB0aG91 Z2gsIGNoYW5naW5nIGEgYnJlYWtwb2ludCdzDQo+IHRocmVhZCBvciBpbmZlcmlvciBjYW4gbWVh biB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgYSBuZXcgc2V0IG9mDQo+IGJyZWFrcG9pbnQgbG9jYXRp b25zLg0KPiANCj4gVG8gc3VwcG9ydCB0aGlzIEkndmUgYWRkZWQgYSBuZXcgYnJlYWtwb2ludF9y ZV9zZXRfb25lIGZ1bmN0aW9uLCB3aGljaA0KPiBpcyBsaWtlIGJyZWFrcG9pbnRfcmVfc2V0LCBi dXQgdGFrZXMgYSBzaW5nbGUgYnJlYWtwb2ludCwgYW5kIGp1c3QNCj4gdXBkYXRlcyB0aGUgbG9j YXRpb25zIGZvciB0aGF0IG9uZSBicmVha3BvaW50LiAgV2Ugb25seSBuZWVkIHRvIGNhbGwNCj4g dGhpcyBmdW5jdGlvbiBpZiB0aGUgcHJvZ3JhbV9zcGFjZSBpbiB3aGljaCBhIGJyZWFrcG9pbnQn cyB0aHJlYWQgKG9yDQo+IGluZmVyaW9yKSBpcyBydW5uaW5nIGFjdHVhbGx5IGNoYW5nZXMuICBJ ZiB0aGUgcHJvZ3JhbV9zcGFjZSBkb2VzDQo+IGNoYW5nZSB0aGVuIHdlIGNhbGwgdGhlIG5ldyBi cmVha3BvaW50X3JlX3NldF9vbmUgZnVuY3Rpb24gcGFzc2luZyBpbg0KPiB0aGUgcHJvZ3JhbV9z cGFjZSB3aGljaCBzaG91bGQgYmUgdXNlZCB0byBmaWx0ZXIgdGhlIG5ldyBsb2NhdGlvbnMgKG9y DQo+IG51bGxwdHIgdG8gaW5kaWNhdGUgd2Ugc2hvdWxkIHNldCBsb2NhdGlvbnMgaW4gYWxsIHBy b2dyYW0gc3BhY2VzKS4NCj4gVGhpcyBmaWx0ZXIgcHJvZ3JhbV9zcGFjZSBuZWVkcyB0byBwcm9w YWdhdGUgZG93biB0byBhbGwgdGhlIHJlX3NldA0KPiBtZXRob2RzLCB0aGlzIGFjY291bnRzIGZv ciB0aGUgcmVtYWluaW5nIGhhbGYgb2YgdGhlIGNoYW5nZXMgaW4gdGhpcw0KPiBwYXRjaC4NCj4g DQo+IFRoZXJlIHdlcmUgYSBjb3VwbGUgb2YgZXhpc3RpbmcgdGVzdHMgdGhhdCBjcmVhdGVkIHRo cmVhZCBvciBpbmZlcmlvcg0KPiBzcGVjaWZpYyBicmVha3BvaW50cyBhbmQgdGhlbiBjaGVja2Vk IHRoZSAnaW5mbyBicmVha3BvaW50cycgb3V0cHV0LA0KPiB0aGVzZSBuZWVkZWQgdXBkYXRpbmcu ICBUaGVzZSB3ZXJlOg0KPiANCj4gICBnZGIubWkvdXNlci1zZWxlY3RlZC1jb250ZXh0LXN5bmMu ZXhwDQo+ICAgZ2RiLm11bHRpL2JwLXRocmVhZC1zcGVjaWZpYy5leHANCj4gICBnZGIubXVsdGkv bXVsdGktdGFyZ2V0LWNvbnRpbnVlLmV4cA0KPiAgIGdkYi5tdWx0aS9tdWx0aS10YXJnZXQtcGlu Zy1wb25nLW5leHQuZXhwDQo+ICAgZ2RiLm11bHRpL3RpZHMuZXhwDQo+ICAgZ2RiLm1pL25ldy11 aS1icC1kZWxldGVkLmV4cA0KPiAgIGdkYi5tdWx0aS9pbmZlcmlvci1zcGVjaWZpYy1icC5leHAN Cj4gICBnZGIubXVsdGkvcGVuZGluZy1icC1kZWwtaW5mZXJpb3IuZXhwDQo+IA0KPiBJJ3ZlIGFs c28gYWRkZWQgc29tZSBhZGRpdGlvbmFsIHRlc3RzIHRvOg0KPiANCj4gICBnZGIubXVsdGkvcGVu ZGluZy1icC5leHANCj4gDQo+IEkndmUgdXBkYXRlZCB0aGUgZG9jdW1lbnRhdGlvbiBhbmQgYWRk ZWQgYSBORVdTIGVudHJ5Lg0KPiANCj4gUmV2aWV3ZWQtQnk6IEVsaSBaYXJldHNraWkgPGVsaXpA Z251Lm9yZz4NCj4gLS0tDQo+ICBnZGIvTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDcgKw0KPiAgZ2RiL2FkYS1sYW5nLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICA2ICstDQo+ICBnZGIvYnJlYWstY2F0Y2gtdGhyb3cuYyAgICAgICAgICAg ICAgICAgICAgICAgfCAgIDYgKy0NCj4gIGdkYi9icmVha3BvaW50LmMgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IDI4MCArKysrKysrKysrKysrKy0tLS0NCj4gIGdkYi9icmVha3BvaW50 LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyOSArLQ0KPiAgZ2RiL3Rlc3RzdWl0 ZS9nZGIubWkvbmV3LXVpLWJwLWRlbGV0ZWQuZXhwICAgIHwgICA4ICstDQo+ICAuLi4vZ2RiLm1p L3VzZXItc2VsZWN0ZWQtY29udGV4dC1zeW5jLmV4cCAgICAgfCAgIDQgKy0NCj4gIC4uLi9nZGIu bXVsdGkvYnAtdGhyZWFkLXNwZWNpZmljLmV4cCAgICAgICAgICB8ICAgNyArLQ0KPiAgLi4uL2dk Yi5tdWx0aS9pbmZlcmlvci1zcGVjaWZpYy1icC5leHAgICAgICAgIHwgIDEyICstDQo+ICAuLi4v Z2RiLm11bHRpL211bHRpLXRhcmdldC1jb250aW51ZS5leHAgICAgICAgfCAgIDIgKy0NCj4gIC4u Li9nZGIubXVsdGkvbXVsdGktdGFyZ2V0LXBpbmctcG9uZy1uZXh0LmV4cCB8ICAgNCArLQ0KPiAg Li4uL2dkYi5tdWx0aS9wZW5kaW5nLWJwLWRlbC1pbmZlcmlvci5leHAgICAgIHwgICA2ICstDQo+ ICBnZGIvdGVzdHN1aXRlL2dkYi5tdWx0aS9wZW5kaW5nLWJwLmV4cCAgICAgICAgfCAyMDYgKysr KysrKysrKysrKw0KPiAgZ2RiL3Rlc3RzdWl0ZS9nZGIubXVsdGkvdGlkcy5leHAgICAgICAgICAg ICAgIHwgICA2ICstDQo+ICAxNCBmaWxlcyBjaGFuZ2VkLCA0ODQgaW5zZXJ0aW9ucygrKSwgOTkg ZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL05FV1MgYi9nZGIvTkVXUw0KPiBp bmRleCBjMTcwMzg1YTUwZS4uMmE4ODhkNjRlNGQgMTAwNjQ0DQo+IC0tLSBhL2dkYi9ORVdTDQo+ ICsrKyBiL2dkYi9ORVdTDQo+IEBAIC0xNyw2ICsxNywxMyBAQA0KPiAgICAndGhyZWFkJyBvciAn dGFzaycga2V5d29yZHMgYXJlIHBhcnNlZCBhdCB0aGUgdGltZSB0aGUgYnJlYWtwb2ludCBpcw0K PiAgICBjcmVhdGVkLCByYXRoZXIgdGhhbiBhdCB0aGUgdGltZSB0aGUgYnJlYWtwb2ludCBiZWNv bWVzIG5vbi1wZW5kaW5nLg0KPiANCj4gKyogVGhyZWFkLXNwZWNpZmljIGJyZWFrcG9pbnRzIGFy ZSBvbmx5IGluc2VydGVkIGludG8gdGhlIHByb2dyYW0gc3BhY2UNCj4gKyAgaW4gd2hpY2ggdGhl IHRocmVhZCBvZiBpbnRlcmVzdCBpcyBydW5uaW5nLiAgSW4gbW9zdCBjYXNlcyBwcm9ncmFtDQo+ ICsgIHNwYWNlcyBhcmUgdW5pcXVlIGZvciBlYWNoIGluZmVyaW9yLCBzbyB0aGlzIG1lYW5zIHRo YXQNCj4gKyAgdGhyZWFkLXNwZWNpZmljIGJyZWFrcG9pbnRzIHdpbGwgdXN1YWxseSBvbmx5IGJl IGluc2VydGVkIGZvciB0aGUNCj4gKyAgaW5mZXJpb3IgY29udGFpbmluZyB0aGUgdGhyZWFkIG9m IGludGVyZXN0LiAgVGhlIGJyZWFrcG9pbnQgd2lsbA0KPiArICBiZSBoaXQgbm8gbGVzcyB0aGFu IGJlZm9yZS4NCj4gKw0KPiAgKiBDaGFuZ2VkIGNvbW1hbmRzDQo+IA0KPiAgZGlzYXNzZW1ibGUN Cj4gZGlmZiAtLWdpdCBhL2dkYi9hZGEtbGFuZy5jIGIvZ2RiL2FkYS1sYW5nLmMNCj4gaW5kZXgg MWMyNmViZjdiMzAuLmM4OGFjZGY0MDM1IDEwMDY0NA0KPiAtLS0gYS9nZGIvYWRhLWxhbmcuYw0K PiArKysgYi9nZGIvYWRhLWxhbmcuYw0KPiBAQCAtMTIwMTAsMTEgKzEyMDEwLDExIEBAIHN0cnVj dCBhZGFfY2F0Y2hwb2ludCA6IHB1YmxpYw0KPiBjb2RlX2JyZWFrcG9pbnQNCj4gICAgICBlbmFi bGVfc3RhdGUgPSBlbmFibGVkID8gYnBfZW5hYmxlZCA6IGJwX2Rpc2FibGVkOw0KPiAgICAgIGxh bmd1YWdlID0gbGFuZ3VhZ2VfYWRhOw0KPiANCj4gLSAgICByZV9zZXQgKCk7DQo+ICsgICAgcmVf c2V0IChwc3BhY2UpOw0KPiAgICB9DQo+IA0KPiAgICBzdHJ1Y3QgYnBfbG9jYXRpb24gKmFsbG9j YXRlX2xvY2F0aW9uICgpIG92ZXJyaWRlOw0KPiAtICB2b2lkIHJlX3NldCAoKSBvdmVycmlkZTsN Cj4gKyAgdm9pZCByZV9zZXQgKHByb2dyYW1fc3BhY2UgKnBzcGFjZSkgb3ZlcnJpZGU7DQo+ICAg IHZvaWQgY2hlY2tfc3RhdHVzIChzdHJ1Y3QgYnBzdGF0ICpicykgb3ZlcnJpZGU7DQo+ICAgIGVu dW0gcHJpbnRfc3RvcF9hY3Rpb24gcHJpbnRfaXQgKGNvbnN0IGJwc3RhdCAqYnMpIGNvbnN0IG92 ZXJyaWRlOw0KPiAgICBib29sIHByaW50X29uZSAoY29uc3QgYnBfbG9jYXRpb24gKiopIGNvbnN0 IG92ZXJyaWRlOw0KPiBAQCAtMTIwNTksNyArMTIwNTksNyBAQCBzdGF0aWMgc3RydWN0IHN5bXRh Yl9hbmRfbGluZSBhZGFfZXhjZXB0aW9uX3NhbA0KPiAgICAgY2F0Y2hwb2ludCBraW5kcy4gICov DQo+IA0KPiAgdm9pZA0KPiAtYWRhX2NhdGNocG9pbnQ6OnJlX3NldCAoKQ0KPiArYWRhX2NhdGNo cG9pbnQ6OnJlX3NldCAocHJvZ3JhbV9zcGFjZSAqcHNwYWNlKQ0KPiAgew0KPiAgICBzdGQ6OnZl Y3RvcjxzeW10YWJfYW5kX2xpbmU+IHNhbHM7DQo+ICAgIHRyeQ0KPiBkaWZmIC0tZ2l0IGEvZ2Ri L2JyZWFrLWNhdGNoLXRocm93LmMgYi9nZGIvYnJlYWstY2F0Y2gtdGhyb3cuYw0KPiBpbmRleCBk MDUzYmQ1ZmJlMC4uNzE5MWQxYjM4ZmEgMTAwNjQ0DQo+IC0tLSBhL2dkYi9icmVhay1jYXRjaC10 aHJvdy5jDQo+ICsrKyBiL2dkYi9icmVhay1jYXRjaC10aHJvdy5jDQo+IEBAIC04MiwxMCArODIs MTAgQEAgc3RydWN0IGV4Y2VwdGlvbl9jYXRjaHBvaW50IDogcHVibGljIGNvZGVfYnJlYWtwb2lu dA0KPiAgCQkJCSAgICAgXygiaW52YWxpZCB0eXBlLW1hdGNoaW5nIHJlZ2V4cCIpKSkNCj4gICAg ew0KPiAgICAgIHBzcGFjZSA9IGN1cnJlbnRfcHJvZ3JhbV9zcGFjZTsNCj4gLSAgICByZV9zZXQg KCk7DQo+ICsgICAgcmVfc2V0IChwc3BhY2UpOw0KPiAgICB9DQo+IA0KPiAtICB2b2lkIHJlX3Nl dCAoKSBvdmVycmlkZTsNCj4gKyAgdm9pZCByZV9zZXQgKHByb2dyYW1fc3BhY2UgKnBzcGFjZSkg b3ZlcnJpZGU7DQo+ICAgIGVudW0gcHJpbnRfc3RvcF9hY3Rpb24gcHJpbnRfaXQgKGNvbnN0IGJw c3RhdCAqYnMpIGNvbnN0IG92ZXJyaWRlOw0KPiAgICBib29sIHByaW50X29uZSAoY29uc3QgYnBf bG9jYXRpb24gKiopIGNvbnN0IG92ZXJyaWRlOw0KPiAgICB2b2lkIHByaW50X21lbnRpb24gKCkg Y29uc3Qgb3ZlcnJpZGU7DQo+IEBAIC0xOTgsNyArMTk4LDcgQEAgZXhjZXB0aW9uX2NhdGNocG9p bnQ6OmNoZWNrX3N0YXR1cyAoc3RydWN0IGJwc3RhdA0KPiAqYnMpDQo+ICAvKiBJbXBsZW1lbnQg dGhlICdyZV9zZXQnIG1ldGhvZC4gICovDQo+IA0KPiAgdm9pZA0KPiAtZXhjZXB0aW9uX2NhdGNo cG9pbnQ6OnJlX3NldCAoKQ0KPiArZXhjZXB0aW9uX2NhdGNocG9pbnQ6OnJlX3NldCAocHJvZ3Jh bV9zcGFjZSAqcHNwYWNlKQ0KPiAgew0KPiAgICBzdGQ6OnZlY3RvcjxzeW10YWJfYW5kX2xpbmU+ IHNhbHM7DQo+ICAgIHN0cnVjdCBwcm9ncmFtX3NwYWNlICpmaWx0ZXJfcHNwYWNlID0gY3VycmVu dF9wcm9ncmFtX3NwYWNlOw0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuYyBiL2dkYi9i cmVha3BvaW50LmMNCj4gaW5kZXggZTFlZmRlNjZmZWIuLmExOTBmMmE3OGJmIDEwMDY0NA0KPiAt LS0gYS9nZGIvYnJlYWtwb2ludC5jDQo+ICsrKyBiL2dkYi9icmVha3BvaW50LmMNCj4gQEAgLTkx LDkgKzkxLDEyIEBADQo+ICBzdGF0aWMgdm9pZCBtYXBfYnJlYWtwb2ludF9udW1iZXJzIChjb25z dCBjaGFyICosDQo+ICAJCQkJICAgIGdkYjo6ZnVuY3Rpb25fdmlldzx2b2lkIChicmVha3BvaW50 ICopPik7DQo+IA0KPiAtc3RhdGljIHZvaWQNCj4gLSAgY3JlYXRlX3NhbHNfZnJvbV9sb2NhdGlv bl9zcGVjX2RlZmF1bHQgKGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMsDQo+IC0JCQkJCSAgbGluZXNw ZWNfcmVzdWx0ICpjYW5vbmljYWwpOw0KPiArc3RhdGljIHZvaWQgcGFyc2VfYnJlYWtwb2ludF9z YWxzIChsb2NhdGlvbl9zcGVjICpsb2NzcGVjLA0KPiArCQkJCSAgIGxpbmVzcGVjX3Jlc3VsdCAq Y2Fub25pY2FsLA0KPiArCQkJCSAgIHByb2dyYW1fc3BhY2UgKnNlYXJjaF9wc3BhY2UpOw0KPiAr DQo+ICtzdGF0aWMgdm9pZCBicmVha3BvaW50X3JlX3NldF9vbmUgKGJyZWFrcG9pbnQgKmIsDQo+ ICsJCQkJICAgcHJvZ3JhbV9zcGFjZSAqZmlsdGVyX3BzcGFjZSk7DQo+IA0KPiAgc3RhdGljIHZv aWQgY3JlYXRlX2JyZWFrcG9pbnRzX3NhbCAoc3RydWN0IGdkYmFyY2ggKiwNCj4gIAkJCQkgICAg c3RydWN0IGxpbmVzcGVjX3Jlc3VsdCAqLA0KPiBAQCAtMjgzLDExICsyODYsMTIgQEAgc3RhdGlj IGJvb2wgc3RyYWNlX21hcmtlcl9wIChzdHJ1Y3QgYnJlYWtwb2ludCAqYik7DQo+IA0KPiAgc3Rh dGljIHZvaWQgYmtwdF9wcm9iZV9jcmVhdGVfc2Fsc19mcm9tX2xvY2F0aW9uX3NwZWMNCj4gICAg ICAgKGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMsDQo+IC0gICAgICBzdHJ1Y3QgbGluZXNwZWNfcmVz dWx0ICpjYW5vbmljYWwpOw0KPiArICAgICAgc3RydWN0IGxpbmVzcGVjX3Jlc3VsdCAqY2Fub25p Y2FsLA0KPiArICAgICAgc3RydWN0IHByb2dyYW1fc3BhY2UgKnNlYXJjaF9wc3BhY2UpOw0KPiAN Cj4gIGNvbnN0IHN0cnVjdCBicmVha3BvaW50X29wcyBjb2RlX2JyZWFrcG9pbnRfb3BzID0NCj4g IHsNCj4gLSAgY3JlYXRlX3NhbHNfZnJvbV9sb2NhdGlvbl9zcGVjX2RlZmF1bHQsDQo+ICsgIHBh cnNlX2JyZWFrcG9pbnRfc2FscywNCj4gICAgY3JlYXRlX2JyZWFrcG9pbnRzX3NhbCwNCj4gIH07 DQo+IA0KPiBAQCAtMzUyLDcgKzM1Niw3IEBAIHN0cnVjdCBpbnRlcm5hbF9icmVha3BvaW50IDog cHVibGljIGNvZGVfYnJlYWtwb2ludA0KPiAgICAgIGRpc3Bvc2l0aW9uID0gZGlzcF9kb250dG91 Y2g7DQo+ICAgIH0NCj4gDQo+IC0gIHZvaWQgcmVfc2V0ICgpIG92ZXJyaWRlOw0KPiArICB2b2lk IHJlX3NldCAocHJvZ3JhbV9zcGFjZSAqcHNwYWNlKSBvdmVycmlkZTsNCj4gICAgdm9pZCBjaGVj a19zdGF0dXMgKHN0cnVjdCBicHN0YXQgKmJzKSBvdmVycmlkZTsNCj4gICAgZW51bSBwcmludF9z dG9wX2FjdGlvbiBwcmludF9pdCAoY29uc3QgYnBzdGF0ICpicykgY29uc3Qgb3ZlcnJpZGU7DQo+ ICAgIHZvaWQgcHJpbnRfbWVudGlvbiAoKSBjb25zdCBvdmVycmlkZTsNCj4gQEAgLTM4OSw3ICsz OTMsNyBAQCBzdHJ1Y3QgbW9tZW50YXJ5X2JyZWFrcG9pbnQgOiBwdWJsaWMNCj4gY29kZV9icmVh a3BvaW50DQo+ICAgICAgZ2RiX2Fzc2VydCAoaW5mZXJpb3IgPT0gLTEpOw0KPiAgICB9DQo+IA0K PiAtICB2b2lkIHJlX3NldCAoKSBvdmVycmlkZTsNCj4gKyAgdm9pZCByZV9zZXQgKHByb2dyYW1f c3BhY2UgKnBzcGFjZSkgb3ZlcnJpZGU7DQo+ICAgIHZvaWQgY2hlY2tfc3RhdHVzIChzdHJ1Y3Qg YnBzdGF0ICpicykgb3ZlcnJpZGU7DQo+ICAgIGVudW0gcHJpbnRfc3RvcF9hY3Rpb24gcHJpbnRf aXQgKGNvbnN0IGJwc3RhdCAqYnMpIGNvbnN0IG92ZXJyaWRlOw0KPiAgICB2b2lkIHByaW50X21l bnRpb24gKCkgY29uc3Qgb3ZlcnJpZGU7DQo+IEBAIC00MDAsNyArNDA0LDcgQEAgc3RydWN0IGRw cmludGZfYnJlYWtwb2ludCA6IHB1YmxpYw0KPiBvcmRpbmFyeV9icmVha3BvaW50DQo+ICB7DQo+ ICAgIHVzaW5nIG9yZGluYXJ5X2JyZWFrcG9pbnQ6Om9yZGluYXJ5X2JyZWFrcG9pbnQ7DQo+IA0K PiAtICB2b2lkIHJlX3NldCAoKSBvdmVycmlkZTsNCj4gKyAgdm9pZCByZV9zZXQgKHByb2dyYW1f c3BhY2UgKnBzcGFjZSkgb3ZlcnJpZGU7DQo+ICAgIGludCBicmVha3BvaW50X2hpdCAoY29uc3Qg c3RydWN0IGJwX2xvY2F0aW9uICpibCwNCj4gIAkJICAgICAgY29uc3QgYWRkcmVzc19zcGFjZSAq YXNwYWNlLA0KPiAgCQkgICAgICBDT1JFX0FERFIgYnBfYWRkciwNCj4gQEAgLTE1NDksNyArMTU1 MywzNiBAQCBicmVha3BvaW50X3NldF90aHJlYWQgKHN0cnVjdCBicmVha3BvaW50ICpiLCBpbnQN Cj4gdGhyZWFkKQ0KPiAgICBpbnQgb2xkX3RocmVhZCA9IGItPnRocmVhZDsNCj4gICAgYi0+dGhy ZWFkID0gdGhyZWFkOw0KPiAgICBpZiAob2xkX3RocmVhZCAhPSB0aHJlYWQpDQo+IC0gICAgbm90 aWZ5X2JyZWFrcG9pbnRfbW9kaWZpZWQgKGIpOw0KPiArICAgIHsNCj4gKyAgICAgIC8qIElmIFRI UkVBRCBpcyBpbiBhIGRpZmZlcmVudCBwcm9ncmFtX3NwYWNlIHRoYW4gT0xEX1RIUkVBRCwgb3Ig dGhlDQo+ICsJIGJyZWFrcG9pbnQgaGFzIHN3aXRjaGVkIHRvIG9yIGZyb20gYmVpbmcgdGhyZWFk LXNwZWNpZmljLCB0aGVuIHdlDQo+ICsJIG5lZWQgdG8gcmUtc2V0IHRoZSBsb2NhdGlvbnMgb2Yg dGhpcyBicmVha3BvaW50LiAgRmlyc3QsIGZpZ3VyZQ0KPiArCSBvdXQgdGhlIHByb2dyYW1fc3Bh Y2UgZm9yIHRoZSBvbGQgYW5kIG5ldyB0aHJlYWRzLCB1c2UgYSB2YWx1ZSBvZg0KPiArCSBudWxs cHRyIHRvIGluZGljYXRlIHRoZSBicmVha3BvaW50IGlzIGluIGFsbCBwcm9ncmFtIHNwYWNlcy4g ICovDQo+ICsgICAgICBwcm9ncmFtX3NwYWNlICpvbGRfcHNwYWNlID0gbnVsbHB0cjsNCj4gKyAg ICAgIGlmIChvbGRfdGhyZWFkICE9IC0xKQ0KPiArCXsNCj4gKwkgIHN0cnVjdCB0aHJlYWRfaW5m byAqdGhyID0gZmluZF90aHJlYWRfZ2xvYmFsX2lkIChvbGRfdGhyZWFkKTsNCj4gKwkgIGdkYl9h c3NlcnQgKHRociAhPSBudWxscHRyKTsNCj4gKwkgIG9sZF9wc3BhY2UgPSB0aHItPmluZi0+cHNw YWNlOw0KPiArCX0NCj4gKw0KPiArICAgICAgcHJvZ3JhbV9zcGFjZSAqbmV3X3BzcGFjZSA9IG51 bGxwdHI7DQo+ICsgICAgICBpZiAodGhyZWFkICE9IC0xKQ0KPiArCXsNCj4gKwkgIHN0cnVjdCB0 aHJlYWRfaW5mbyAqdGhyID0gZmluZF90aHJlYWRfZ2xvYmFsX2lkICh0aHJlYWQpOw0KPiArCSAg Z2RiX2Fzc2VydCAodGhyICE9IG51bGxwdHIpOw0KPiArCSAgbmV3X3BzcGFjZSA9IHRoci0+aW5m LT5wc3BhY2U7DQo+ICsJfQ0KPiArDQo+ICsgICAgICAvKiBJZiB0aGUgcHJvZ3JhbSBzcGFjZSBo YXMgY2hhbmdlZCBmb3IgdGhpcyBicmVha3BvaW50LCB0aGVuDQo+ICsJIHJlLWV2YWx1YXRlIGl0 J3MgbG9jYXRpb25zLiAgKi8NCj4gKyAgICAgIGlmIChvbGRfcHNwYWNlICE9IG5ld19wc3BhY2Up DQo+ICsJYnJlYWtwb2ludF9yZV9zZXRfb25lIChiLCBuZXdfcHNwYWNlKTsNCj4gKw0KPiArICAg ICAgLyogTGV0IG90aGVycyBrbm93IHRoZSBicmVha3BvaW50IGhhcyBjaGFuZ2VkLiAgKi8NCj4g KyAgICAgIG5vdGlmeV9icmVha3BvaW50X21vZGlmaWVkIChiKTsNCj4gKyAgICB9DQo+ICB9DQo+ IA0KPiAgLyogU2VlIGJyZWFrcG9pbnQuaC4gICovDQo+IEBAIC0xNTY4LDcgKzE2MDEsMzQgQEAg YnJlYWtwb2ludF9zZXRfaW5mZXJpb3IgKHN0cnVjdCBicmVha3BvaW50ICpiLCBpbnQNCj4gaW5m ZXJpb3IpDQo+ICAgIGludCBvbGRfaW5mZXJpb3IgPSBiLT5pbmZlcmlvcjsNCj4gICAgYi0+aW5m ZXJpb3IgPSBpbmZlcmlvcjsNCj4gICAgaWYgKG9sZF9pbmZlcmlvciAhPSBpbmZlcmlvcikNCj4g LSAgICBub3RpZnlfYnJlYWtwb2ludF9tb2RpZmllZCAoYik7DQo+ICsgICAgew0KPiArICAgICAg LyogSWYgSU5GRVJJT1IgaXMgaW4gYSBkaWZmZXJlbnQgcHJvZ3JhbV9zcGFjZSB0aGFuIE9MRF9J TkZFUklPUiwgb3INCj4gKwkgdGhlIGJyZWFrcG9pbnQgaGFzIHN3aXRjaCB0byBvciBmcm9tIGlu ZmVyaW9yLXNwZWNpZmljLCB0aGVuIHdlDQo+ICsJIG5lZWQgdG8gcmUtc2V0IHRoZSBsb2NhdGlv bnMgb2YgdGhpcyBicmVha3BvaW50LiAgRmlyc3QsIGZpZ3VyZQ0KPiArCSBvdXQgdGhlIHByb2dy YW1fc3BhY2UgZm9yIHRoZSBvbGQgYW5kIG5ldyBpbmZlcmlvcnMsIHVzZSBhIHZhbHVlDQo+ICsJ IG9mIG51bGxwdHIgdG8gaW5kaWNhdGUgdGhlIGJyZWFrcG9pbnQgaXMgaW4gYWxsIHByb2dyYW0N Cj4gKwkgc3BhY2VzLiAgKi8NCj4gKyAgICAgIHByb2dyYW1fc3BhY2UgKm9sZF9wc3BhY2UgPSBu dWxscHRyOw0KPiArICAgICAgaWYgKG9sZF9pbmZlcmlvciAhPSAtMSkNCj4gKwl7DQo+ICsJICBz dHJ1Y3QgaW5mZXJpb3IgKmluZiA9IGZpbmRfaW5mZXJpb3JfaWQgKG9sZF9pbmZlcmlvcik7DQo+ ICsJICBnZGJfYXNzZXJ0IChpbmYgIT0gbnVsbHB0cik7DQo+ICsJICBvbGRfcHNwYWNlID0gaW5m LT5wc3BhY2U7DQo+ICsJfQ0KPiArDQo+ICsgICAgICBwcm9ncmFtX3NwYWNlICpuZXdfcHNwYWNl ID0gbnVsbHB0cjsNCj4gKyAgICAgIGlmIChpbmZlcmlvciAhPSAtMSkNCj4gKwl7DQo+ICsJICBz dHJ1Y3QgaW5mZXJpb3IgKmluZiA9IGZpbmRfaW5mZXJpb3JfaWQgKGluZmVyaW9yKTsNCj4gKwkg IGdkYl9hc3NlcnQgKGluZiAhPSBudWxscHRyKTsNCj4gKwkgIG5ld19wc3BhY2UgPSBpbmYtPnBz cGFjZTsNCj4gKwl9DQo+ICsNCj4gKyAgICAgIGlmIChvbGRfcHNwYWNlICE9IG5ld19wc3BhY2Up DQo+ICsJYnJlYWtwb2ludF9yZV9zZXRfb25lIChiLCBuZXdfcHNwYWNlKTsNCj4gKw0KPiArICAg ICAgbm90aWZ5X2JyZWFrcG9pbnRfbW9kaWZpZWQgKGIpOw0KPiArICAgIH0NCj4gIH0NCj4gDQo+ ICAvKiBTZWUgYnJlYWtwb2ludC5oLiAgKi8NCj4gQEAgLTg3OTksNyArODg1OSw4IEBAIGNyZWF0 ZV9icmVha3BvaW50c19zYWwgKHN0cnVjdCBnZGJhcmNoICpnZGJhcmNoLA0KPiANCj4gIHN0YXRp YyB2b2lkDQo+ICBwYXJzZV9icmVha3BvaW50X3NhbHMgKGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMs DQo+IC0JCSAgICAgICBzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0ICpjYW5vbmljYWwpDQo+ICsJCSAg ICAgICBzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0ICpjYW5vbmljYWwsDQo+ICsJCSAgICAgICBzdHJ1 Y3QgcHJvZ3JhbV9zcGFjZSAqc2VhcmNoX3BzcGFjZSkNCj4gIHsNCj4gICAgc3RydWN0IHN5bXRh Yl9hbmRfbGluZSBjdXJzYWw7DQo+IA0KPiBAQCAtODg2NCw3ICs4OTI1LDcgQEAgcGFyc2VfYnJl YWtwb2ludF9zYWxzIChsb2NhdGlvbl9zcGVjICpsb2NzcGVjLA0KPiAgCSAgICAgICYmIHN0cmNo ciAoIistIiwgc3BlY1swXSkgIT0gTlVMTA0KPiAgCSAgICAgICYmIHNwZWNbMV0gIT0gJ1snKSkN Cj4gIAl7DQo+IC0JICBkZWNvZGVfbGluZV9mdWxsIChsb2NzcGVjLCBERUNPREVfTElORV9GVU5G SVJTVExJTkUsIE5VTEwsDQo+ICsJICBkZWNvZGVfbGluZV9mdWxsIChsb2NzcGVjLCBERUNPREVf TElORV9GVU5GSVJTVExJTkUsDQo+IHNlYXJjaF9wc3BhY2UsDQo+ICAJCQkgICAgZ2V0X2xhc3Rf ZGlzcGxheWVkX3N5bXRhYiAoKSwNCj4gIAkJCSAgICBnZXRfbGFzdF9kaXNwbGF5ZWRfbGluZSAo KSwNCj4gIAkJCSAgICBjYW5vbmljYWwsIE5VTEwsIE5VTEwpOw0KPiBAQCAtODg3Miw3ICs4OTMz LDcgQEAgcGFyc2VfYnJlYWtwb2ludF9zYWxzIChsb2NhdGlvbl9zcGVjICpsb2NzcGVjLA0KPiAg CX0NCj4gICAgICB9DQo+IA0KPiAtICBkZWNvZGVfbGluZV9mdWxsIChsb2NzcGVjLCBERUNPREVf TElORV9GVU5GSVJTVExJTkUsIE5VTEwsDQo+ICsgIGRlY29kZV9saW5lX2Z1bGwgKGxvY3NwZWMs IERFQ09ERV9MSU5FX0ZVTkZJUlNUTElORSwgc2VhcmNoX3BzcGFjZSwNCj4gIAkJICAgIGN1cnNh bC5zeW10YWIsIGN1cnNhbC5saW5lLCBjYW5vbmljYWwsIE5VTEwsIE5VTEwpOw0KPiAgfQ0KPiAN Cj4gQEAgLTg5NzEsNiArOTAzMiwzOSBAQCBicmVha3BvaW50X29wc19mb3JfbG9jYXRpb25fc3Bl Y190eXBlIChlbnVtDQo+IGxvY2F0aW9uX3NwZWNfdHlwZSBsb2NzcGVjX3R5cGUsDQo+ICAgICAg fQ0KPiAgfQ0KPiANCj4gKy8qIFJldHVybiB0aGUgcHJvZ3JhbSBzcGFjZSB0byB1c2UgYXMgYSBm aWx0ZXIgd2hlbiBzZWFyY2hpbmcgZm9yIGxvY2F0aW9ucw0KPiArICAgb2YgYSBicmVha3BvaW50 IHNwZWNpZmljIHRvIFRIUkVBRCBvciBJTkZFUklPUi4gIElmIFRIUkVBRCBhbmQgSU5GRVJJT1IN Cj4gKyAgIGFyZSBib3RoIC0xLCBtZWFuaW5nIGFsbCB0aHJlYWRzL2luZmVyaW9ycywgdGhlbiB0 aGlzIGZ1bmN0aW9uIHJldHVybnMNCj4gKyAgIG51bGxwdHIsIGluZGljYXRpbmcgbm8gcHJvZ3Jh bSBzcGFjZSBmaWx0ZXJpbmcgc2hvdWxkIGJlIHBlcmZvcm1lZC4NCj4gKyAgIE90aGVyd2lzZSwg dGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBwcm9ncmFtIHNwYWNlIGZvciB0aGUgaW5mZXJpb3Ig dGhhdA0KPiArICAgY29udGFpbnMgVEhSRUFEICh3aGVuIFRIUkVBRCBpcyBub3QgLTEpLCBvciB0 aGUgcHJvZ3JhbSBzcGFjZSBmb3INCj4gKyAgIElORkVSSU9SICh3aGVuIElORkVSSU9SIGlzIG5v dCAtMSkuICAqLw0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHByb2dyYW1fc3BhY2UgKg0KPiArZmlu ZF9wcm9ncmFtX3NwYWNlX2Zvcl9icmVha3BvaW50IChpbnQgdGhyZWFkLCBpbnQgaW5mZXJpb3Ip DQo+ICt7DQo+ICsgIGlmICh0aHJlYWQgIT0gLTEpDQo+ICsgICAgew0KPiArICAgICAgZ2RiX2Fz c2VydCAoaW5mZXJpb3IgPT0gLTEpOw0KPiArDQo+ICsgICAgICBzdHJ1Y3QgdGhyZWFkX2luZm8g KnRociA9IGZpbmRfdGhyZWFkX2dsb2JhbF9pZCAodGhyZWFkKTsNCj4gKyAgICAgIGdkYl9hc3Nl cnQgKHRociAhPSBudWxscHRyKTsNCj4gKyAgICAgIGdkYl9hc3NlcnQgKHRoci0+aW5mICE9IG51 bGxwdHIpOw0KPiArICAgICAgcmV0dXJuIHRoci0+aW5mLT5wc3BhY2U7DQo+ICsgICAgfQ0KPiAr ICBlbHNlIGlmIChpbmZlcmlvciAhPSAtMSkNCj4gKyAgICB7DQo+ICsgICAgICBnZGJfYXNzZXJ0 ICh0aHJlYWQgPT0gLTEpOw0KPiArDQo+ICsgICAgICBzdHJ1Y3QgaW5mZXJpb3IgKmluZiA9IGZp bmRfaW5mZXJpb3JfaWQgKGluZmVyaW9yKTsNCj4gKyAgICAgIGdkYl9hc3NlcnQgKGluZiAhPSBu dWxscHRyKTsNCj4gKw0KPiArICAgICAgcmV0dXJuIGluZi0+cHNwYWNlOw0KPiArICAgIH0NCj4g Kw0KPiArICByZXR1cm4gbnVsbHB0cjsNCj4gK30NCj4gKw0KPiAgLyogU2VlIGJyZWFrcG9pbnQu aC4gICovDQo+IA0KPiAgY29uc3Qgc3RydWN0IGJyZWFrcG9pbnRfb3BzICoNCj4gQEAgLTkwNzIs NyArOTE2NiwxMCBAQCBjcmVhdGVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gs DQo+IA0KPiAgICB0cnkNCj4gICAgICB7DQo+IC0gICAgICBvcHMtPmNyZWF0ZV9zYWxzX2Zyb21f bG9jYXRpb25fc3BlYyAobG9jc3BlYywgJmNhbm9uaWNhbCk7DQo+ICsgICAgICBzdHJ1Y3QgcHJv Z3JhbV9zcGFjZSAqc2VhcmNoX3BzcGFjZQ0KPiArCT0gZmluZF9wcm9ncmFtX3NwYWNlX2Zvcl9i cmVha3BvaW50ICh0aHJlYWQsIGluZmVyaW9yKTsNCj4gKyAgICAgIG9wcy0+Y3JlYXRlX3NhbHNf ZnJvbV9sb2NhdGlvbl9zcGVjIChsb2NzcGVjLCAmY2Fub25pY2FsLA0KPiArCQkJCQkgICBzZWFy Y2hfcHNwYWNlKTsNCj4gICAgICB9DQo+ICAgIGNhdGNoIChjb25zdCBnZGJfZXhjZXB0aW9uX2Vy cm9yICZlKQ0KPiAgICAgIHsNCj4gQEAgLTk1NDUsNyArOTY0Miw3IEBAIGJyZWFrX3JhbmdlX2Nv bW1hbmQgKGNvbnN0IGNoYXIgKmFyZywgaW50DQo+IGZyb21fdHR5KQ0KPiAgICBhcmdfc3RhcnQg PSBhcmc7DQo+ICAgIGxvY2F0aW9uX3NwZWNfdXAgc3RhcnRfbG9jc3BlYw0KPiAgICAgID0gc3Ry aW5nX3RvX2xvY2F0aW9uX3NwZWMgKCZhcmcsIGN1cnJlbnRfbGFuZ3VhZ2UpOw0KPiAtICBwYXJz ZV9icmVha3BvaW50X3NhbHMgKHN0YXJ0X2xvY3NwZWMuZ2V0ICgpLCAmY2Fub25pY2FsX3N0YXJ0 KTsNCj4gKyAgcGFyc2VfYnJlYWtwb2ludF9zYWxzIChzdGFydF9sb2NzcGVjLmdldCAoKSwgJmNh bm9uaWNhbF9zdGFydCwgbnVsbHB0cik7DQo+IA0KPiAgICBpZiAoYXJnWzBdICE9ICcsJykNCj4g ICAgICBlcnJvciAoXygiVG9vIGZldyBhcmd1bWVudHMuIikpOw0KPiBAQCAtOTY0Niw3ICs5NzQz LDcgQEAgd2F0Y2hwb2ludF9leHBfaXNfY29uc3QgKGNvbnN0IHN0cnVjdCBleHByZXNzaW9uDQo+ ICpleHApDQo+ICAvKiBJbXBsZW1lbnQgdGhlICJyZV9zZXQiIG1ldGhvZCBmb3Igd2F0Y2hwb2lu dHMuICAqLw0KPiANCj4gIHZvaWQNCj4gLXdhdGNocG9pbnQ6OnJlX3NldCAoKQ0KPiArd2F0Y2hw b2ludDo6cmVfc2V0IChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAqcHNwYWNlKQ0KPiAgew0KPiAgICAv KiBXYXRjaHBvaW50IGNhbiBiZSBlaXRoZXIgb24gZXhwcmVzc2lvbiB1c2luZyBlbnRpcmVseSBn bG9iYWwNCj4gICAgICAgdmFyaWFibGVzLCBvciBpdCBjYW4gYmUgb24gbG9jYWwgdmFyaWFibGVz Lg0KPiBAQCAtMTE3NTcsNyArMTE4NTQsNyBAQCBicmVha3BvaW50OjpwcmludF9yZWNyZWF0ZSAo c3RydWN0IHVpX2ZpbGUgKmZwKQ0KPiBjb25zdA0KPiAgLyogRGVmYXVsdCBicmVha3BvaW50X29w cyBtZXRob2RzLiAgKi8NCj4gDQo+ICB2b2lkDQo+IC1jb2RlX2JyZWFrcG9pbnQ6OnJlX3NldCAo KQ0KPiArY29kZV9icmVha3BvaW50OjpyZV9zZXQgKHN0cnVjdCBwcm9ncmFtX3NwYWNlICpwc3Bh Y2UpDQo+ICB7DQo+ICAgIC8qIEZJWE1FOiBpcyB0aGlzIHN0aWxsIHJlYWNoYWJsZT8gICovDQo+ ICAgIGlmIChicmVha3BvaW50X2xvY2F0aW9uX3NwZWNfZW1wdHlfcCAodGhpcykpDQo+IEBAIC0x MTc2Nyw3ICsxMTg2NCw3IEBAIGNvZGVfYnJlYWtwb2ludDo6cmVfc2V0ICgpDQo+ICAgICAgICBy ZXR1cm47DQo+ICAgICAgfQ0KPiANCj4gLSAgcmVfc2V0X2RlZmF1bHQgKCk7DQo+ICsgIHJlX3Nl dF9kZWZhdWx0IChwc3BhY2UpOw0KPiAgfQ0KPiANCj4gIGludA0KPiBAQCAtMTE5NzMsNyArMTIw NzAsNyBAQCBjb2RlX2JyZWFrcG9pbnQ6OmRlY29kZV9sb2NhdGlvbl9zcGVjDQo+IChsb2NhdGlv bl9zcGVjICpsb2NzcGVjLA0KPiAgLyogVmlydHVhbCB0YWJsZSBmb3IgaW50ZXJuYWwgYnJlYWtw b2ludHMuICAqLw0KPiANCj4gIHZvaWQNCj4gLWludGVybmFsX2JyZWFrcG9pbnQ6OnJlX3NldCAo KQ0KPiAraW50ZXJuYWxfYnJlYWtwb2ludDo6cmVfc2V0IChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAq cHNwYWNlKQ0KPiAgew0KPiAgICBzd2l0Y2ggKHR5cGUpDQo+ICAgICAgew0KPiBAQCAtMTIwNjYs NyArMTIxNjMsNyBAQCBpbnRlcm5hbF9icmVha3BvaW50OjpwcmludF9tZW50aW9uICgpIGNvbnN0 DQo+ICAvKiBWaXJ0dWFsIHRhYmxlIGZvciBtb21lbnRhcnkgYnJlYWtwb2ludHMgICovDQo+IA0K PiAgdm9pZA0KPiAtbW9tZW50YXJ5X2JyZWFrcG9pbnQ6OnJlX3NldCAoKQ0KPiArbW9tZW50YXJ5 X2JyZWFrcG9pbnQ6OnJlX3NldCAoc3RydWN0IHByb2dyYW1fc3BhY2UgKnBzcGFjZSkNCj4gIHsN Cj4gICAgLyogS2VlcCB0ZW1wb3JhcnkgYnJlYWtwb2ludHMsIHdoaWNoIGNhbiBiZSBlbmNvdW50 ZXJlZCB3aGVuIHdlIHN0ZXANCj4gICAgICAgb3ZlciBhIGRsb3BlbiBjYWxsIGFuZCBzb2xpYl9h ZGQgaXMgcmVzZXR0aW5nIHRoZSBicmVha3BvaW50cy4NCj4gQEAgLTEyMTA3LDEyICsxMjIwNCwx MyBAQCBsb25nam1wX2JyZWFrcG9pbnQ6On5sb25nam1wX2JyZWFrcG9pbnQgKCkNCj4gDQo+ICBz dGF0aWMgdm9pZA0KPiAgYmtwdF9wcm9iZV9jcmVhdGVfc2Fsc19mcm9tX2xvY2F0aW9uX3NwZWMg KGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMsDQo+IC0JCQkJCSAgIHN0cnVjdCBsaW5lc3BlY19yZXN1 bHQgKmNhbm9uaWNhbCkNCj4gKwkJCQkJICAgc3RydWN0IGxpbmVzcGVjX3Jlc3VsdCAqY2Fub25p Y2FsLA0KPiArCQkJCQkgICBzdHJ1Y3QgcHJvZ3JhbV9zcGFjZQ0KPiAqc2VhcmNoX3BzcGFjZSkN Cj4gDQo+ICB7DQo+ICAgIHN0cnVjdCBsaW5lc3BlY19zYWxzIGxzYWw7DQo+IA0KPiAtICBsc2Fs LnNhbHMgPSBwYXJzZV9wcm9iZXMgKGxvY3NwZWMsIE5VTEwsIGNhbm9uaWNhbCk7DQo+ICsgIGxz YWwuc2FscyA9IHBhcnNlX3Byb2JlcyAobG9jc3BlYywgc2VhcmNoX3BzcGFjZSwgY2Fub25pY2Fs KTsNCj4gICAgbHNhbC5jYW5vbmljYWwgPSB4c3RyZHVwIChjYW5vbmljYWwtPmxvY3NwZWMtPnRv X3N0cmluZyAoKSk7DQo+ICAgIGNhbm9uaWNhbC0+bHNhbHMucHVzaF9iYWNrIChzdGQ6Om1vdmUg KGxzYWwpKTsNCj4gIH0NCj4gQEAgLTEyMjAyLDkgKzEyMzAwLDkgQEAgdHJhY2Vwb2ludDo6cHJp bnRfcmVjcmVhdGUgKHN0cnVjdCB1aV9maWxlICpmcCkNCj4gY29uc3QNCj4gIH0NCj4gDQo+ICB2 b2lkDQo+IC1kcHJpbnRmX2JyZWFrcG9pbnQ6OnJlX3NldCAoKQ0KPiArZHByaW50Zl9icmVha3Bv aW50OjpyZV9zZXQgKHN0cnVjdCBwcm9ncmFtX3NwYWNlICpwc3BhY2UpDQo+ICB7DQo+IC0gIHJl X3NldF9kZWZhdWx0ICgpOw0KPiArICByZV9zZXRfZGVmYXVsdCAocHNwYWNlKTsNCj4gDQo+ICAg IC8qIDEgLSBjb25uZWN0IHRvIHRhcmdldCAxLCB0aGF0IGNhbiBydW4gYnJlYWtwb2ludCBjb21t YW5kcy4NCj4gICAgICAgMiAtIGNyZWF0ZSBhIGRwcmludGYsIHdoaWNoIHJlc29sdmVzIGZpbmUu DQo+IEBAIC0xMjI1OCw4ICsxMjM1NiwxMCBAQCBkcHJpbnRmX2JyZWFrcG9pbnQ6OmFmdGVyX2Nv bmRpdGlvbl90cnVlDQo+IChzdHJ1Y3QgYnBzdGF0ICpicykNCj4gICAgIG1hcmtlcnMgKGAtbScp LiAgKi8NCj4gDQo+ICBzdGF0aWMgdm9pZA0KPiAtc3RyYWNlX21hcmtlcl9jcmVhdGVfc2Fsc19m cm9tX2xvY2F0aW9uX3NwZWMgKGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMsDQo+IC0JCQkJCSAgICAg IHN0cnVjdCBsaW5lc3BlY19yZXN1bHQgKmNhbm9uaWNhbCkNCj4gK3N0cmFjZV9tYXJrZXJfY3Jl YXRlX3NhbHNfZnJvbV9sb2NhdGlvbl9zcGVjDQo+ICsJKGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMs DQo+ICsJIHN0cnVjdCBsaW5lc3BlY19yZXN1bHQgKmNhbm9uaWNhbCwNCj4gKwkgc3RydWN0IHBy b2dyYW1fc3BhY2UgKnNlYXJjaF9wc3BhY2UpDQo+ICB7DQo+ICAgIHN0cnVjdCBsaW5lc3BlY19z YWxzIGxzYWw7DQo+ICAgIGNvbnN0IGNoYXIgKmFyZ19zdGFydCwgKmFyZzsNCj4gQEAgLTEyNzc2 LDEyICsxMjg3NiwzMiBAQCB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlvbnMNCj4gKGNvZGVfYnJl YWtwb2ludCAqYiwNCj4gICAgICAgYWxsIGxvY2F0aW9ucyBhcmUgaW4gdGhlIHNhbWUgc2hhcmVk IGxpYnJhcnksIHRoYXQgd2FzIHVubG9hZGVkLg0KPiAgICAgICBXZSdkIGxpa2UgdG8gcmV0YWlu IHRoZSBsb2NhdGlvbiwgc28gdGhhdCB3aGVuIHRoZSBsaWJyYXJ5IGlzDQo+ICAgICAgIGxvYWRl ZCBhZ2Fpbiwgd2UgZG9uJ3QgbG9vc2UgdGhlIGVuYWJsZWQvZGlzYWJsZWQgc3RhdHVzIG9mIHRo ZQ0KPiAtICAgICBpbmRpdmlkdWFsIGxvY2F0aW9ucy4gICovDQo+ICsgICAgIGluZGl2aWR1YWwg bG9jYXRpb25zLg0KPiArDQo+ICsgICAgIFRocmVhZCBzcGVjaWZpYyBicmVha3BvaW50cyB3aWxs IGFsc28gdHJpZ2dlciB0aGlzIGNhc2UgaWYgdGhlIHRocmVhZA0KPiArICAgICBpcyBjaGFuZ2Vk IHRvIGEgZGlmZmVyZW50IHByb2dyYW0gc3BhY2UsIGFuZCBhbGwgb2YgdGhlIG9sZCBsb2NhdGlv bnMNCj4gKyAgICAgZ28gb3V0IG9mIHNjb3BlLiAgSW4gdGhpcyBjYXNlIHdlIGRvIChjdXJyZW50 bHkpIGRpc2NhcmQgdGhlIG9sZA0KPiArICAgICBsb2NhdGlvbnMgLS0gd2UgYXNzdW1lIHRoZSBj aGFuZ2UgaW4gdGhyZWFkIGlzIHBlcm1hbmVudCBhbmQgdGhlIG9sZA0KPiArICAgICBsb2NhdGlv bnMgd2lsbCBuZXZlciBjb21lIGJhY2sgaW50byBzY29wZS4gICovDQo+ICAgIGlmIChhbGxfbG9j YXRpb25zX2FyZV9wZW5kaW5nIChiLCBmaWx0ZXJfcHNwYWNlKSAmJiBzYWxzLmVtcHR5ICgpKQ0K PiAtICAgIHJldHVybjsNCj4gKyAgICB7DQo+ICsgICAgICBpZiAoYi0+dGhyZWFkICE9IC0xKQ0K PiArCWItPmNsZWFyX2xvY2F0aW9ucyAoKTsNCj4gKyAgICAgIHJldHVybjsNCj4gKyAgICB9DQo+ IA0KPiAgICBicF9sb2NhdGlvbl9saXN0IGV4aXN0aW5nX2xvY2F0aW9ucyA9IGItPnN0ZWFsX2xv Y2F0aW9ucyAoZmlsdGVyX3BzcGFjZSk7DQo+IA0KPiArICAvKiBJZiB0aGlzIGlzIGEgdGhyZWFk LXNwZWNpZmljIGJyZWFrcG9pbnQgdGhlbiBhbnkgbG9jYXRpb25zIGxlZnQgb24gdGhlDQo+ICsg ICAgIGJyZWFrcG9pbnQgYXJlIGZvciBhIHByb2dyYW0gc3BhY2UgaW4gd2hpY2ggdGhlIHRocmVh ZCBvZiBpbnRlcmVzdA0KPiArICAgICBkb2VzIG5vdCBvcGVyYXRlLiAgVGhpcyBjYW4gaGFwcGVu IHdoZW4gdGhlIHVzZXIgY2hhbmdlcyB0aGUgdGhyZWFkIG9mDQo+ICsgICAgIGEgdGhyZWFkLXNw ZWNpZmljIGJyZWFrcG9pbnQuDQo+ICsNCj4gKyAgICAgV2UgYXNzdW1lIHRoYXQgdGhlIGNoYW5n ZSBpbiB0aHJlYWQgaXMgcGVybWFuZW50LCBhbmQgdGhhdCB0aGUgb2xkDQo+ICsgICAgIGxvY2F0 aW9ucyB3aWxsIG5ldmVyIGJlIHVzZWQgYWdhaW4sIHNvIGRpc2NhcmQgdGhlbSBub3cuICAqLw0K PiArICBpZiAoYi0+dGhyZWFkICE9IC0xKQ0KPiArICAgIGItPmNsZWFyX2xvY2F0aW9ucyAoKTsN Cj4gKw0KPiAgICBmb3IgKGNvbnN0IGF1dG8gJnNhbCA6IHNhbHMpDQo+ICAgICAgew0KPiAgICAg ICAgc3RydWN0IGJwX2xvY2F0aW9uICpuZXdfbG9jOw0KPiBAQCAtMTI5NDcsNDAgKzEzMDY3LDQ1 IEBAIGNvZGVfYnJlYWtwb2ludDo6bG9jYXRpb25fc3BlY190b19zYWxzDQo+IChsb2NhdGlvbl9z cGVjICpsb2NzcGVjLA0KPiAgICAgbG9jYXRpb25zLiAgKi8NCj4gDQo+ICB2b2lkDQo+IC1jb2Rl X2JyZWFrcG9pbnQ6OnJlX3NldF9kZWZhdWx0ICgpDQo+ICtjb2RlX2JyZWFrcG9pbnQ6OnJlX3Nl dF9kZWZhdWx0IChzdHJ1Y3QgcHJvZ3JhbV9zcGFjZSAqZmlsdGVyX3BzcGFjZSkNCj4gIHsNCj4g LSAgc3RydWN0IHByb2dyYW1fc3BhY2UgKmZpbHRlcl9wc3BhY2UgPSBjdXJyZW50X3Byb2dyYW1f c3BhY2U7DQo+ICAgIHN0ZDo6dmVjdG9yPHN5bXRhYl9hbmRfbGluZT4gZXhwYW5kZWQsIGV4cGFu ZGVkX2VuZDsNCj4gDQo+IC0gIGludCBmb3VuZDsNCj4gLSAgc3RkOjp2ZWN0b3I8c3ltdGFiX2Fu ZF9saW5lPiBzYWxzID0gbG9jYXRpb25fc3BlY190b19zYWxzIChsb2NzcGVjLmdldCAoKSwNCj4g LQkJCQkJCQkgICAgIGZpbHRlcl9wc3BhY2UsDQo+IC0JCQkJCQkJICAgICAmZm91bmQpOw0KPiAt ICBpZiAoZm91bmQpDQo+IC0gICAgZXhwYW5kZWQgPSBzdGQ6Om1vdmUgKHNhbHMpOw0KPiAtDQo+ IC0gIGlmIChsb2NzcGVjX3JhbmdlX2VuZCAhPSBudWxscHRyKQ0KPiAtICAgIHsNCj4gLSAgICAg IHN0ZDo6dmVjdG9yPHN5bXRhYl9hbmRfbGluZT4gc2Fsc19lbmQNCj4gLQk9IGxvY2F0aW9uX3Nw ZWNfdG9fc2FscyAobG9jc3BlY19yYW5nZV9lbmQuZ2V0ICgpLA0KPiAtCQkJCSBmaWx0ZXJfcHNw YWNlLCAmZm91bmQpOw0KPiArICAvKiBJZiB0aGlzIGJyZWFrcG9pbnQgaXMgdGhyZWFkLXNwZWNp ZmljIHRoZW4gZmluZCB0aGUgcHJvZ3JhbSBzcGFjZSBpbg0KPiArICAgICB3aGljaCB0aGUgc3Bl Y2lmaWMgdGhyZWFkIGV4aXN0cy4gIE90aGVyd2lzZSwgZm9yIGJyZWFrcG9pbnRzIHRoYXQgYXJl DQo+ICsgICAgIG5vdCB0aHJlYWQtc3BlY2lmaWMgVEhSRUFEX1BTUEFDRSB3aWxsIGJlIG51bGxw dHIuICAqLw0KPiArICBwcm9ncmFtX3NwYWNlICpicF9wc3BhY2UNCj4gKyAgICA9IGZpbmRfcHJv Z3JhbV9zcGFjZV9mb3JfYnJlYWtwb2ludCAodGhpcy0+dGhyZWFkLCB0aGlzLT5pbmZlcmlvcik7 DQo+ICsNCj4gKyAgLyogSWYgdGhpcyBpcyBub3QgYSB0aHJlYWQgb3IgaW5mZXJpb3Igc3BlY2lm aWMgYnJlYWtwb2ludCwgb3IgaXQgaXMgYQ0KPiArICAgICB0aHJlYWQgb3IgaW5mZXJpb3Igc3Bl Y2lmaWMgYnJlYWtwb2ludCBidXQgd2UgYXJlIGxvb2tpbmcgZm9yIG5ldw0KPiArICAgICBsb2Nh dGlvbnMgaW4gdGhlIHByb2dyYW0gc3BhY2UgdGhhdCB0aGUgc3BlY2lmaWMgdGhyZWFkIG9yIGlu ZmVyaW9yIGlzDQo+ICsgICAgIHJ1bm5pbmcsIHRoZW4gbG9vayBmb3IgbmV3IGxvY2F0aW9ucyBm b3IgdGhpcyBicmVha3BvaW50LiAgKi8NCj4gKyAgaWYgKGJwX3BzcGFjZSA9PSBudWxscHRyIHx8 IGZpbHRlcl9wc3BhY2UgPT0gYnBfcHNwYWNlKQ0KPiArICAgIHsNCj4gKyAgICAgIGludCBmb3Vu ZDsNCj4gKyAgICAgIHN0ZDo6dmVjdG9yPHN5bXRhYl9hbmRfbGluZT4gc2Fscw0KPiArCT0gbG9j YXRpb25fc3BlY190b19zYWxzIChsb2NzcGVjLmdldCAoKSwgZmlsdGVyX3BzcGFjZSwgJmZvdW5k KTsNCj4gICAgICAgIGlmIChmb3VuZCkNCj4gLQlleHBhbmRlZF9lbmQgPSBzdGQ6Om1vdmUgKHNh bHNfZW5kKTsNCj4gKwlleHBhbmRlZCA9IHN0ZDo6bW92ZSAoc2Fscyk7DQo+ICsNCj4gKyAgICAg IGlmIChsb2NzcGVjX3JhbmdlX2VuZCAhPSBudWxscHRyKQ0KPiArCXsNCj4gKwkgIHN0ZDo6dmVj dG9yPHN5bXRhYl9hbmRfbGluZT4gc2Fsc19lbmQNCj4gKwkgICAgPSBsb2NhdGlvbl9zcGVjX3Rv X3NhbHMgKGxvY3NwZWNfcmFuZ2VfZW5kLmdldCAoKSwNCj4gKwkJCQkgICAgIGZpbHRlcl9wc3Bh Y2UsICZmb3VuZCk7DQo+ICsJICBpZiAoZm91bmQpDQo+ICsJICAgIGV4cGFuZGVkX2VuZCA9IHN0 ZDo6bW92ZSAoc2Fsc19lbmQpOw0KPiArCX0NCj4gICAgICB9DQo+IA0KPiArICAvKiBVcGRhdGUg dGhlIGxvY2F0aW9ucyBmb3IgdGhpcyBicmVha3BvaW50LiAgRm9yIHRocmVhZC1zcGVjaWZpYw0K PiArICAgICBicmVha3BvaW50cyB0aGlzIHdpbGwgcmVtb3ZlIGFueSBvbGQgbG9jYXRpb25zIHRo YXQgYXJlIGZvciB0aGUgd3JvbmcNCj4gKyAgICAgcHJvZ3JhbSBzcGFjZSAtLSB0aGlzIGNhbiBo YXBwZW4gaWYgdGhlIHVzZXIgY2hhbmdlcyB0aGUgdGhyZWFkIG9mIGENCj4gKyAgICAgdGhyZWFk LXNwZWNpZmljIGJyZWFrcG9pbnQuICAqLw0KPiAgICB1cGRhdGVfYnJlYWtwb2ludF9sb2NhdGlv bnMgKHRoaXMsIGZpbHRlcl9wc3BhY2UsIGV4cGFuZGVkLA0KPiBleHBhbmRlZF9lbmQpOw0KPiAg fQ0KPiANCj4gLS8qIERlZmF1bHQgbWV0aG9kIGZvciBjcmVhdGluZyBTQUxzIGZyb20gYW4gYWRk cmVzcyBzdHJpbmcuICBJdCBiYXNpY2FsbHkNCj4gLSAgIGNhbGxzIHBhcnNlX2JyZWFrcG9pbnRf c2Fscy4gIFJldHVybiAxIGZvciBzdWNjZXNzLCB6ZXJvIGZvciBmYWlsdXJlLiAgKi8NCj4gLQ0K PiAtc3RhdGljIHZvaWQNCj4gLWNyZWF0ZV9zYWxzX2Zyb21fbG9jYXRpb25fc3BlY19kZWZhdWx0 IChsb2NhdGlvbl9zcGVjICpsb2NzcGVjLA0KPiAtCQkJCQlzdHJ1Y3QgbGluZXNwZWNfcmVzdWx0 ICpjYW5vbmljYWwpDQo+IC17DQo+IC0gIHBhcnNlX2JyZWFrcG9pbnRfc2FscyAobG9jc3BlYywg Y2Fub25pY2FsKTsNCj4gLX0NCj4gLQ0KPiAgLyogUmUtc2V0IGJyZWFrcG9pbnQgbG9jYXRpb25z IGZvciB0aGUgY3VycmVudCBwcm9ncmFtIHNwYWNlLg0KPiAgICAgTG9jYXRpb25zIGJvdW5kIHRv IG90aGVyIHByb2dyYW0gc3BhY2VzIGFyZSBsZWZ0IHVudG91Y2hlZC4gICovDQo+IA0KPiBAQCAt MTMwMTUsNyArMTMxNDAsNyBAQCBicmVha3BvaW50X3JlX3NldCAodm9pZCkNCj4gIAkgIHsNCj4g IAkgICAgaW5wdXRfcmFkaXggPSBiLmlucHV0X3JhZGl4Ow0KPiAgCSAgICBzZXRfbGFuZ3VhZ2Ug KGIubGFuZ3VhZ2UpOw0KPiAtCSAgICBiLnJlX3NldCAoKTsNCj4gKwkgICAgYi5yZV9zZXQgKGN1 cnJlbnRfcHJvZ3JhbV9zcGFjZSk7DQo+ICAJICB9DQo+ICAJY2F0Y2ggKGNvbnN0IGdkYl9leGNl cHRpb24gJmV4KQ0KPiAgCSAgew0KPiBAQCAtMTMwMzYsNiArMTMxNjEsNTMgQEAgYnJlYWtwb2lu dF9yZV9zZXQgKHZvaWQpDQo+ICAgIC8qIE5vdyB3ZSBjYW4gaW5zZXJ0LiAgKi8NCj4gICAgdXBk YXRlX2dsb2JhbF9sb2NhdGlvbl9saXN0IChVR0xMX01BWV9JTlNFUlQpOw0KPiAgfQ0KPiArDQo+ ICsvKiBSZS1zZXQgbG9jYXRpb25zIGZvciBicmVha3BvaW50IEIgaW4gRklMVEVSX1BTUEFDRS4g IElmIEZJTFRFUl9QU1BBQ0UgaXMNCj4gKyAgIG51bGxwdHIgdGhlbiByZS1zZXQgbG9jYXRpb25z IGZvciBCIGluIGFsbCBwcm9ncmFtIHNwYWNlcy4gIExvY2F0aW9ucw0KPiArICAgYm91bmQgdG8g cHJvZ3JhbSBzcGFjZXMgb3RoZXIgdGhhbiBGSUxURVJfUFNQQUNFIGFyZSBsZWZ0IHVudG91Y2hl ZC4gICovDQo+ICsNCj4gK3N0YXRpYyB2b2lkDQo+ICticmVha3BvaW50X3JlX3NldF9vbmUgKGJy ZWFrcG9pbnQgKmIsIHByb2dyYW1fc3BhY2UgKmZpbHRlcl9wc3BhY2UpDQo+ICt7DQo+ICsgIHsN Cj4gKyAgICBzY29wZWRfcmVzdG9yZV9jdXJyZW50X2xhbmd1YWdlIHNhdmVfbGFuZ3VhZ2U7DQo+ ICsgICAgc2NvcGVkX3Jlc3RvcmUgc2F2ZV9pbnB1dF9yYWRpeCA9IG1ha2Vfc2NvcGVkX3Jlc3Rv cmUgKCZpbnB1dF9yYWRpeCk7DQo+ICsgICAgc2NvcGVkX3Jlc3RvcmVfY3VycmVudF9wc3BhY2Vf YW5kX3RocmVhZCByZXN0b3JlX3BzcGFjZV90aHJlYWQ7DQo+ICsNCj4gKyAgICAvKiBUbyA6OnJl X3NldCBlYWNoIGJyZWFrcG9pbnQgd2Ugc2V0IHRoZSBjdXJyZW50X2xhbmd1YWdlIHRvIHRoZQ0K PiArICAgICAgIGxhbmd1YWdlIG9mIHRoZSBicmVha3BvaW50IGJlZm9yZSByZS1ldmFsdWF0aW5n IHRoZSBicmVha3BvaW50J3MNCj4gKyAgICAgICBsb2NhdGlvbi4gIFRoaXMgY2hhbmdlIGNhbiB1 bmZvcnR1bmF0ZWx5IGdldCB1bmRvbmUgYnkgYWNjaWRlbnQgaWYNCj4gKyAgICAgICB0aGUgbGFu Z3VhZ2VfbW9kZSBpcyBzZXQgdG8gYXV0bywgYW5kIHdlIGVpdGhlciBzd2l0Y2ggZnJhbWVzLCBv cg0KPiArICAgICAgIG1vcmUgbGlrZWx5IGluIHRoaXMgY29udGV4dCwgd2Ugc2VsZWN0IHRoZSBj dXJyZW50IGZyYW1lLg0KPiArDQo+ICsgICAgICAgV2UgcHJldmVudCB0aGlzIGJ5IHRlbXBvcmFy aWx5IHR1cm5pbmcgdGhlIGxhbmd1YWdlX21vZGUgdG8NCj4gKyAgICAgICBsYW5ndWFnZV9tb2Rl X21hbnVhbC4gIFdlIHJlc3RvcmUgaXQgb25jZSBhbGwgYnJlYWtwb2ludHMNCj4gKyAgICAgICBo YXZlIGJlZW4gcmVzZXQuICAqLw0KPiArICAgIHNjb3BlZF9yZXN0b3JlIHNhdmVfbGFuZ3VhZ2Vf bW9kZSA9IG1ha2Vfc2NvcGVkX3Jlc3RvcmUNCj4gKCZsYW5ndWFnZV9tb2RlKTsNCj4gKyAgICBs YW5ndWFnZV9tb2RlID0gbGFuZ3VhZ2VfbW9kZV9tYW51YWw7DQo+ICsNCj4gKyAgICAvKiBOb3Rl OiB3ZSBtdXN0IG5vdCB0cnkgdG8gaW5zZXJ0IGxvY2F0aW9ucyB1bnRpbCBhZnRlciBhbGwNCj4g KyAgICAgICBicmVha3BvaW50cyBoYXZlIGJlZW4gcmUtc2V0LiAgT3RoZXJ3aXNlLCBlLmcuLCB3 aGVuIHJlLXNldHRpbmcNCj4gKyAgICAgICBicmVha3BvaW50IDEsIHdlJ2QgaW5zZXJ0IHRoZSBs b2NhdGlvbnMgb2YgYnJlYWtwb2ludCAyLCB3aGljaA0KPiArICAgICAgIGhhZG4ndCBiZWVuIHJl LXNldCB5ZXQsIGFuZCB0aHVzIG1heSBoYXZlIHN0YWxlIGxvY2F0aW9ucy4gICovDQo+ICsNCj4g KyAgICB0cnkNCj4gKyAgICAgIHsNCj4gKwlpbnB1dF9yYWRpeCA9IGItPmlucHV0X3JhZGl4Ow0K PiArCXNldF9sYW5ndWFnZSAoYi0+bGFuZ3VhZ2UpOw0KPiArCWItPnJlX3NldCAoZmlsdGVyX3Bz cGFjZSk7DQo+ICsgICAgICB9DQo+ICsgICAgY2F0Y2ggKGNvbnN0IGdkYl9leGNlcHRpb24gJmV4 KQ0KPiArICAgICAgew0KPiArCWV4Y2VwdGlvbl9mcHJpbnRmIChnZGJfc3RkZXJyLCBleCwNCj4g KwkJCSAgICJFcnJvciBpbiByZS1zZXR0aW5nIGJyZWFrcG9pbnQgJWQ6ICIsDQo+ICsJCQkgICBi LT5udW1iZXIpOw0KPiArICAgICAgfQ0KPiArICB9DQo+ICsNCj4gKyAgLyogTm93IHdlIGNhbiBp bnNlcnQuICAqLw0KPiArICB1cGRhdGVfZ2xvYmFsX2xvY2F0aW9uX2xpc3QgKFVHTExfTUFZX0lO U0VSVCk7DQo+ICt9DQo+IA0KPiANCj4gDQo+ICAvKiBSZXNldCB0aGUgdGhyZWFkIG51bWJlciBv ZiB0aGlzIGJyZWFrcG9pbnQ6DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2RiL2JyZWFrcG9pbnQuaCBi L2dkYi9icmVha3BvaW50LmgNCj4gaW5kZXggNDJiNDkxNDRlNzkuLmRlYTU1ZGViMzE0IDEwMDY0 NA0KPiAtLS0gYS9nZGIvYnJlYWtwb2ludC5oDQo+ICsrKyBiL2dkYi9icmVha3BvaW50LmgNCj4g QEAgLTU3MCwxNSArNTcwLDE1IEBAIGVudW0gcHJpbnRfc3RvcF9hY3Rpb24NCj4gDQo+ICBzdHJ1 Y3QgYnJlYWtwb2ludF9vcHMNCj4gIHsNCj4gLSAgLyogQ3JlYXRlIFNBTHMgZnJvbSBsb2NhdGlv biBzcGVjLCBzdG9yaW5nIHRoZSByZXN1bHQgaW4NCj4gLSAgICAgbGluZXNwZWNfcmVzdWx0Lg0K PiAtDQo+IC0gICAgIEZvciBhbiBleHBsYW5hdGlvbiBhYm91dCB0aGUgYXJndW1lbnRzLCBzZWUg dGhlIGZ1bmN0aW9uDQo+IC0gICAgIGBjcmVhdGVfc2Fsc19mcm9tX2xvY2F0aW9uX3NwZWNfZGVm YXVsdCcuDQo+ICsgIC8qIENyZWF0ZSBTQUxzIGZyb20gTE9DU1BFQywgc3RvcmluZyB0aGUgcmVz dWx0IGluIGxpbmVzcGVjX3Jlc3VsdA0KPiArICAgICBDQU5PTklDQUwuICBJZiBTRUFSQ0hfUFNQ QUNFIGlzIG5vdCBudWxscHRyIHRoZW4gb25seSByZXN1bHRzIGluIHRoZQ0KPiArICAgICBjb3Jy ZXNwb25kaW5nIHByb2dyYW0gc3BhY2UgYXJlIHJldHVybmVkLiAgSWYgU0VBUkNIX1BTUEFDRSBp cyBudWxscHRyDQo+ICsgICAgIHRoZW4gcmVzdWx0cyBmb3IgYWxsIHByb2dyYW0gc3BhY2VzIGFy ZSByZXR1cm5lZC4NCj4gDQo+ICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGluc2lkZSBg Y3JlYXRlX2JyZWFrcG9pbnQnLiAgKi8NCj4gICAgdm9pZCAoKmNyZWF0ZV9zYWxzX2Zyb21fbG9j YXRpb25fc3BlYykgKGxvY2F0aW9uX3NwZWMgKmxvY3NwZWMsDQo+IC0JCQkJCSAgc3RydWN0IGxp bmVzcGVjX3Jlc3VsdCAqY2Fub25pY2FsKTsNCj4gKwkJCQkJICBsaW5lc3BlY19yZXN1bHQgKmNh bm9uaWNhbCwNCj4gKwkJCQkJICBwcm9ncmFtX3NwYWNlICpzZWFyY2hfcHNwYWNlKTsNCj4gDQo+ ICAgIC8qIFRoaXMgbWV0aG9kIHdpbGwgYmUgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGEgYnJl YWtwb2ludCBnaXZlbiBpdHMgU0FMcy4NCj4gICAgICAgVXN1YWxseSwgaXQganVzdCBjYWxscyBg Y3JlYXRlX2JyZWFrcG9pbnRzX3NhbCcgKGZvciBvcmRpbmFyeQ0KPiBAQCAtNzEwLDggKzcxMCwx NSBAQCBzdHJ1Y3QgYnJlYWtwb2ludCA6IHB1YmxpYw0KPiBpbnRydXNpdmVfbGlzdF9ub2RlPGJy ZWFrcG9pbnQ+DQo+IA0KPiAgICAvKiBSZWV2YWx1YXRlIGEgYnJlYWtwb2ludC4gIFRoaXMgaXMg bmVjZXNzYXJ5IGFmdGVyIHN5bWJvbHMgY2hhbmdlDQo+ICAgICAgIChlLmcuLCBhbiBleGVjdXRh YmxlIG9yIERTTyB3YXMgbG9hZGVkLCBvciB0aGUgaW5mZXJpb3IganVzdA0KPiAtICAgICBzdGFy dGVkKS4gICovDQo+IC0gIHZpcnR1YWwgdm9pZCByZV9zZXQgKCkNCj4gKyAgICAgc3RhcnRlZCku DQo+ICsNCj4gKyAgICAgSWYgbm90IG51bGxwdHIsIHRoZW4gRklMVEVSX1BTUEFDRSBpcyB0aGUg cHJvZ3JhbSBzcGFjZSBpbiB3aGljaA0KPiArICAgICBzeW1ib2xzIG1heSBoYXZlIGNoYW5nZWQs IHdlIG9ubHkgbmVlZCB0byBhZGQgbmV3IGxvY2F0aW9ucyBpbg0KPiArICAgICBGSUxURVJfUFNQ QUNFLg0KPiArDQo+ICsgICAgIElmIEZJTFRFUl9QU1BBQ0UgaXMgbnVsbHB0ciB0aGVuIGFsbCBw cm9ncmFtIHNwYWNlcyBtYXkgaGF2ZSBjaGFuZ2VkLA0KPiArICAgICBuZXcgbG9jYXRpb25zIG5l ZWQgdG8gYmUgc2VhcmNoZWQgZm9yIGluIGV2ZXJ5IHByb2dyYW0gc3BhY2UuICAqLw0KPiArICB2 aXJ0dWFsIHZvaWQgcmVfc2V0IChwcm9ncmFtX3NwYWNlICpmaWx0ZXJfcHNwYWNlKQ0KPiAgICB7 DQo+ICAgICAgLyogTm90aGluZyB0byByZS1zZXQuICAqLw0KPiAgICB9DQo+IEBAIC05NTUsNyAr OTYyLDcgQEAgc3RydWN0IGNvZGVfYnJlYWtwb2ludCA6IHB1YmxpYyBicmVha3BvaW50DQo+ICAg IC8qIEFkZCBhIGxvY2F0aW9uIGZvciBTQUwgdG8gdGhpcyBicmVha3BvaW50LiAgKi8NCj4gICAg YnBfbG9jYXRpb24gKmFkZF9sb2NhdGlvbiAoY29uc3Qgc3ltdGFiX2FuZF9saW5lICZzYWwpOw0K PiANCj4gLSAgdm9pZCByZV9zZXQgKCkgb3ZlcnJpZGU7DQo+ICsgIHZvaWQgcmVfc2V0IChwcm9n cmFtX3NwYWNlICpwc3BhY2UpIG92ZXJyaWRlOw0KPiAgICBpbnQgaW5zZXJ0X2xvY2F0aW9uIChz dHJ1Y3QgYnBfbG9jYXRpb24gKikgb3ZlcnJpZGU7DQo+ICAgIGludCByZW1vdmVfbG9jYXRpb24g KHN0cnVjdCBicF9sb2NhdGlvbiAqLA0KPiAgCQkgICAgICAgZW51bSByZW1vdmVfYnBfcmVhc29u IHJlYXNvbikgb3ZlcnJpZGU7DQo+IEBAIC05NzcsNyArOTg0LDcgQEAgc3RydWN0IGNvZGVfYnJl YWtwb2ludCA6IHB1YmxpYyBicmVha3BvaW50DQo+ICAgICAgIHN0cnVjdCBwcm9ncmFtX3NwYWNl ICpzZWFyY2hfcHNwYWNlKTsNCj4gDQo+ICAgIC8qIEhlbHBlciBtZXRob2QgdGhhdCBkb2VzIHRo ZSBiYXNpYyB3b3JrIG9mIHJlX3NldC4gICovDQo+IC0gIHZvaWQgcmVfc2V0X2RlZmF1bHQgKCk7 DQo+ICsgIHZvaWQgcmVfc2V0X2RlZmF1bHQgKHByb2dyYW1fc3BhY2UgKnBzcGFjZSk7DQo+IA0K PiAgICAvKiBGaW5kIHRoZSBTYUwgbG9jYXRpb25zIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVu IExPQ0FUSU9OLg0KPiAgICAgICBPbiByZXR1cm4sIEZPVU5EIHdpbGwgYmUgMSBpZiBhbnkgU2FM IHdhcyBmb3VuZCwgemVybyBvdGhlcndpc2UuICAqLw0KPiBAQCAtOTk5LDcgKzEwMDYsNyBAQCBz dHJ1Y3Qgd2F0Y2hwb2ludCA6IHB1YmxpYyBicmVha3BvaW50DQo+ICB7DQo+ICAgIHVzaW5nIGJy ZWFrcG9pbnQ6OmJyZWFrcG9pbnQ7DQo+IA0KPiAtICB2b2lkIHJlX3NldCAoKSBvdmVycmlkZTsN Cj4gKyAgdm9pZCByZV9zZXQgKHByb2dyYW1fc3BhY2UgKnBzcGFjZSkgb3ZlcnJpZGU7DQo+ICAg IGludCBpbnNlcnRfbG9jYXRpb24gKHN0cnVjdCBicF9sb2NhdGlvbiAqKSBvdmVycmlkZTsNCj4g ICAgaW50IHJlbW92ZV9sb2NhdGlvbiAoc3RydWN0IGJwX2xvY2F0aW9uICosDQo+ICAJCSAgICAg ICBlbnVtIHJlbW92ZV9icF9yZWFzb24gcmVhc29uKSBvdmVycmlkZTsNCj4gZGlmZiAtLWdpdCBh L2dkYi90ZXN0c3VpdGUvZ2RiLm1pL25ldy11aS1icC1kZWxldGVkLmV4cA0KPiBiL2dkYi90ZXN0 c3VpdGUvZ2RiLm1pL25ldy11aS1icC1kZWxldGVkLmV4cA0KPiBpbmRleCBmNzM2OTk0ZDIzNC4u OTM4ZTZkZWVjMDUgMTAwNjQ0DQo+IC0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL25ldy11aS1i cC1kZWxldGVkLmV4cA0KPiArKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5taS9uZXctdWktYnAtZGVs ZXRlZC5leHANCj4gQEAgLTc2LDggKzc2LDEyIEBAIGZvcmVhY2hfbWlfdWlfbW9kZSBtb2RlIHsN Cj4gICAgICBzZXQgbG9jMiBbbWFrZV9icF9sb2MgIiQ6OmRlY2ltYWxcXC4yIl0NCj4gDQo+ICAg ICAgIyBDcmVhdGUgdGhlIGluZmVyaW9yLXNwZWNpZmljIGJyZWFrcG9pbnQuDQo+IC0gICAgbWlf Y3JlYXRlX2JyZWFrcG9pbnRfbXVsdGkgIi1nIGkyIGZvbyIgImNyZWF0ZSBicmVha3BvaW50IGlu IGluZmVyaW9yIDIiIFwNCj4gLQktaW5mZXJpb3IgIjIiIC1sb2NhdGlvbnMgIlxcXFskbG9jMSwk bG9jMlxcXF0iDQo+ICsgICAgbWlfY3JlYXRlX2JyZWFrcG9pbnQgIi1nIGkyIGZvbyIgImNyZWF0 ZSBicmVha3BvaW50IGluIGluZmVyaW9yIDIiIFwNCj4gKwktbnVtYmVyICIkZGVjaW1hbCIgXA0K PiArCS10eXBlICJicmVha3BvaW50IiBcDQo+ICsJLWVuYWJsZWQgInkiIFwNCj4gKwktZnVuYyAi Zm9vIiBcDQo+ICsJLWluZmVyaW9yICIyIg0KPiAgICAgIHNldCBicG51bSBbbWlfZ2V0X3ZhbHVl b2YgIi9kIiAiXCRicG51bSIgIklOVkFMSUQiXQ0KPiANCj4gICAgICBpZiB7JG1vZGUgZXEgInNl cGFyYXRlIn0gew0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdXNlci1zZWxl Y3RlZC1jb250ZXh0LXN5bmMuZXhwDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdXNlci1zZWxl Y3RlZC1jb250ZXh0LXN5bmMuZXhwDQo+IGluZGV4IDkzYjkxYjQyZjkyLi5lZDMzMWFmZjg3MyAx MDA2NDQNCj4gLS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIubWkvdXNlci1zZWxlY3RlZC1jb250ZXh0 LXN5bmMuZXhwDQo+ICsrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLm1pL3VzZXItc2VsZWN0ZWQtY29u dGV4dC1zeW5jLmV4cA0KPiBAQCAtMzcwLDcgKzM3MCw3IEBAIHByb2MgdGVzdF9jb250aW51ZV90 b19zdGFydCB7IG1vZGUgaW5mIH0gew0KPiAgCQkJICAgICJ0aHJlYWQgJGluZi4yIHN0b3BzIE1J Ig0KPiAgCQkgICAgfSBlbHNlIHsNCj4gIAkJCW1pX2V4cGVjdF9zdG9wICJicmVha3BvaW50LWhp dCINCj4gImNoaWxkX3N1Yl9mdW5jdGlvbiIgXA0KPiAtCQkJICAgICIiICIkc3JjZmlsZSIgIiRk ZWNpbWFsIiB7IiIgImRpc3A9XCJkZWxcIiINCj4gImxvY25vPVwiWzAtOV0rXCIifSBcDQo+ICsJ CQkgICAgIiIgIiRzcmNmaWxlIiAiJGRlY2ltYWwiIHsiIiAiZGlzcD1cImRlbFwiIn0gXA0KPiAg CQkJICAgICJ0aHJlYWQgJGluZi4yIHN0b3BzIE1JIg0KPiAgCQkgICAgfQ0KDQpIaSBBbmRyZXcs DQoNCkZvciB3aGF0IGl0IGlzIHdvcnRoOiBBdCBzb21lIHBvaW50IEkgaGFkIGJhY2twb3J0ZWQg eW91ciB2OCBvbiB0aGUNCmdkYiAxNCBicmFuY2ggdG8gcGxheSBhcm91bmQgd2l0aCBpdCBhbmQg c2VlIGlmIGl0IGZpeGVzIGEgZG93bnN0cmVhbQ0KcHJvYmxlbSBJIGhhZC4gSXQgZGlkbid0LCBi dXQgSSB0ZXN0ZWQgeW91ciB2OCBhIGJpdCBhbmQgZGlkbid0IGZpbmQgYW55DQppc3N1ZXMgd2l0 aCBpdCBvbiBnZGIgMTQuDQoNCldoaWxlIGRvaW5nIHRoYXQgSSBzYXcgdGhhdCB3ZSBwcm9iYWJs eSBjYW4ganVzdCBnZXQgcmlkIG9mIHRoZQ0KaWYgZWxzZSBpbiB0aGlzIHRlc3RjYXNlIGhlcmUg bm93LiBTb3JyeSBmb3Igbm90IGNvbW1lbnRpbmcgdGhpcyBlYXJsaWVyLg0KDQpSZWdhcmRzLA0K RmVsaXgNCkludGVsIERldXRzY2hsYW5kIEdtYkgKUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1w ZW9uIDEwLCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkKVGVsOiArNDkgODkgOTkgODg1My0wLCB3 d3cuaW50ZWwuZGUgPGh0dHA6Ly93d3cuaW50ZWwuZGU+Ck1hbmFnaW5nIERpcmVjdG9yczogQ2hy aXN0aW4gRWlzZW5zY2htaWQsIFNoYXJvbiBIZWNrLCBUaWZmYW55IERvb24gU2lsdmEgIApDaGFp cnBlcnNvbiBvZiB0aGUgU3VwZXJ2aXNvcnkgQm9hcmQ6IE5pY29sZSBMYXUKUmVnaXN0ZXJlZCBP ZmZpY2U6IE11bmljaApDb21tZXJjaWFsIFJlZ2lzdGVyOiBBbXRzZ2VyaWNodCBNdWVuY2hlbiBI UkIgMTg2OTI4Cg==