From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.115]) by sourceware.org (Postfix) with ESMTPS id 427B1385841A for ; Mon, 6 Nov 2023 15:20:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 427B1385841A 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 427B1385841A Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.55.52.115 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699284058; cv=pass; b=oyVLrVfak+fMhorGN8G6QKhBV8K3cagsxNc0J02ABD7ljZ3rn0Y25S9K20lPVBuai8iqYWtoxod2o0cXxqSESxyChkz1YeM1XqK+16FoqNcwysRj31Yd76x3SJy8bU8aOSPnv6mLxsCqCPoXK5aadvrZbAWj9kYha/hRHE1rAO0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699284058; c=relaxed/simple; bh=zm80BIPMC7zU7RzWO18XtxatG6cLKYdWKFsktPkLOZ4=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=qLtot+RA5fH+ldHxzQN7KEbYmTPvoroIbTm2YuRXfc5FZhcAG5x0mxrIQQMvC83385SsL8pv65IrPirCQj9LZ5yv7Am1vli1bwWXg6K43pXh/y9MvtNuYTZCVJ71ef8iry5RP6pJYiuH1LLk8HrtXF8DmzMjDMXCmZFx/Nu4p1U= 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=1699284055; x=1730820055; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=zm80BIPMC7zU7RzWO18XtxatG6cLKYdWKFsktPkLOZ4=; b=TRuP2wg5KJQcMqFyLIuSkSRdRRrY1GOdvOSTJUxLGO04q5n3KBTIX+v+ d0zVTifAal77Ge2z2QqeY3cUa4iTg11RqrlOrhzPVL6puuOgpCgHcQAIE zt5eS7Oyzf2urgaKUslFPq87VkqIUj2I9X2TWpojdbzTlElMeASa/HBBi LyK1bhfrxyUaidXzHjpeFYbYoGUhk9Dl+/BfLaP5o6Z28i2XBIGthRFKn e4FYjO6PHcdUb6gynev96VdNWDBInIwavqf7kXO02VPXmb99Hro80AnoR 8mwgGqwCTUdjBRObjj0WI5VfaFKEpj98UN8Uc3myGZx2jIR+gAT5BnRyI A==; X-IronPort-AV: E=McAfee;i="6600,9927,10886"; a="389104527" X-IronPort-AV: E=Sophos;i="6.03,281,1694761200"; d="scan'208";a="389104527" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Nov 2023 07:20:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10886"; a="755881333" X-IronPort-AV: E=Sophos;i="6.03,281,1694761200"; d="scan'208";a="755881333" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orsmga007.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 06 Nov 2023 07:20:44 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 6 Nov 2023 07:20:43 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34; Mon, 6 Nov 2023 07:20:43 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.34 via Frontend Transport; Mon, 6 Nov 2023 07:20:43 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.34; Mon, 6 Nov 2023 07:20:42 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=m0qT937ShOKLu4JZD7sIkFiGd8z8eyIjyBjO1uEjf4cWjNB81ncsjA1NWRa80xdG4oSWgZZtIZD+2Zgnm6KT6k0MKi+BnUMMh066d7xyVEnQsxJFaprKFYE0jtqw5ggwKXHesg0nJQFcijmI2TIjYHQZQ11BOfaEccNHh4AZsdgVuTPampIyhockaTCfWOMnauYbfy6vzCEZN9oKlurRVAzaAAvxF8b3/+Li1+FHBwUbkiMfFmFvkc4de5MNPmURBbrpW1TQFjVOiQXE+lZA9/qGA+Dcx5M8PtcAzwfuYyEEfPcXN/bpiH0rEEeNJud925EP6zrfrqnG6vVycaOHOw== 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=zm80BIPMC7zU7RzWO18XtxatG6cLKYdWKFsktPkLOZ4=; b=W48NKwJbYl2ZY58K09czdC5KuryTFAe7inuq3n6ZRTRFJFZ+LKhFRMe3h1rnztD2EZfu4DBX64nJ7YxmvgTB7UWUDcD6LJo1LeysyfjL2jGU4v4jW+L54w1Vyx2zDJD3xrr7TgNJUXNFMhgDIrUB4jAo6gEaV2BR3IpjSqzW70YcgopEocTz+7nguaRqyswJ/9QuUgFgw3thhV5/2doxW9kxyOs2AiFvM3GAiJqEll1Ck4YZJnboocACScGQgJXfOKBiHxa13vomQKtG2sst0c6swAeOEAHOLg/q1Ml/njvT5EV5ogVbfZnrjOL/r7AOSxZtGvCcYPTZ2N0A9dcDnw== 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 SJ0PR11MB5600.namprd11.prod.outlook.com (2603:10b6:a03:3ab::16) by SN7PR11MB8041.namprd11.prod.outlook.com (2603:10b6:806:2ec::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6954.21; Mon, 6 Nov 2023 15:20:39 +0000 Received: from SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::6ff2:834a:7174:8903]) by SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::6ff2:834a:7174:8903%4]) with mapi id 15.20.6954.028; Mon, 6 Nov 2023 15:20:39 +0000 From: "Cui, Lili" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "ccoutant@gmail.com" , "binutils@sourceware.org" Subject: RE: [PATCH 1/8] Support APX GPR32 with rex2 prefix Thread-Topic: [PATCH 1/8] Support APX GPR32 with rex2 prefix Thread-Index: AQHaDX/0xkb266R9fEeRpoLuS5N5i7BoposAgAPstkA= Date: Mon, 6 Nov 2023 15:20:39 +0000 Message-ID: References: <20231102112911.2372810-1-lili.cui@intel.com> <20231102112911.2372810-2-lili.cui@intel.com> <9373c79d-85bb-15bd-4501-7634687d9a8e@suse.com> In-Reply-To: <9373c79d-85bb-15bd-4501-7634687d9a8e@suse.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: SJ0PR11MB5600:EE_|SN7PR11MB8041:EE_ x-ms-office365-filtering-correlation-id: 270207ed-4a6a-4852-a63e-08dbdedbef39 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: e5GUCPWWcJM1PEWf08E14GHhwiA2n6mF26kntfqz3sX5KI7aePI4RAS9vZPdYxOayRGD46LD0ePRnccw7BFWS3KIG0AhVFudiicW0jQWTmGQISF/VEex3vvHxcspHyQX0R+e/ATxOTsZagDpbSESMAJJfTVi3wB9490U8y1KCERaWK+mzIvvPiW9XQMtgppyF8LGAvfCIcxIhRYVrQ9DY14bsQW7VwOeYSY7tFK+2wWhuDWN1wpalUco0RJ2OvFESKmnD3TKIHRDgoDeXid95nRYoUSoUWTDZsDHaVonbW+wRv1lyuBvpt+muo48RAXSHz9M75Xy9EWO522PNijA6uSQmMILCTVhIf8NgzNQpwaXoG1/fuOxaAxKw8MrE2mJ2MKMbNrwc55A3G83AfAIrY1nk/qIwClgH5dyptJ6d1G6V9emf9nzw4lhJPj3dNaA8yRdw7whNSEUR66qcVaNA8fj/Kt5jmPnvFSleEZvG04b4sqqwXHj5NbAhJvDHuCb3E11f0BHwTUCFe4QgoNF3jJi0n5RfDXxisi6JfgDTzyJXDfrKT5Ao1PC5rp8zZmoiecYx5+4EpfqGK58sFh+fB5CPKYPNovcA23U7v1u6ls5lNHtK5e18TkeKJ7onfqP x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR11MB5600.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(366004)(346002)(136003)(39860400002)(376002)(396003)(230922051799003)(64100799003)(1800799009)(186009)(451199024)(55016003)(66899024)(6506007)(71200400001)(9686003)(53546011)(86362001)(478600001)(7696005)(66476007)(5660300002)(2906002)(38100700002)(122000001)(82960400001)(33656002)(64756008)(66556008)(66446008)(54906003)(41300700001)(30864003)(66946007)(83380400001)(52536014)(38070700009)(4326008)(316002)(8676002)(6916009)(8936002)(76116006);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?a2h2MEV1bGRwcUVKTTlrSWFNWHJreTBsRkxKMjMrb1hUc0ZaSkZ3anN1dzYz?= =?utf-8?B?N0Q3eW1mYUtMazF1ajFJODZQbFAySzBEbG1LUzNyeVVIelM4OEZxQjBFVVo0?= =?utf-8?B?NWFmWkRIQ3lmVHJiVFFMcGRQcmMwK2tiZ1dKYVNuL2o1NG5nRG9qaUk4amlu?= =?utf-8?B?Qm43VFM3eTltZWlnd0YzMk5GWjZrY3ppTmJOS3Q1NmUwOHcyOEtBbU4zbjRY?= =?utf-8?B?ZndWR2hhbkMxL1ovWFI3alNhRUZtUXZESEt4NmxyMk9YSmY4TW9ZeHJWNnNl?= =?utf-8?B?SEJ4ZVVibi9BRjE5YVFjVWZnd25iU3RjaGZ6cktnQUxmcXUvSUI4bElveXFJ?= =?utf-8?B?S3dCQThPNkpscHBlVi9pc1g0MTc1UzJ3dmNWRWgrQkg5dUMzeXlBZUpzTWps?= =?utf-8?B?S3B2bDIwTVhab3BHMUM3My84eksxRGZLbHdsai91L1RVenc0akZ5OThhcWMr?= =?utf-8?B?RXJFOWJ4TThSNm0zQ21sd3N6cmkwekFwMDZCWFRmdk9VaGt1a1NGSWFZVytW?= =?utf-8?B?YWUveDZkOEpCcXlmMlJlTEpTaGwxUzI4TFNJeitMd1VJWjVTdlJPS2I1WkxQ?= =?utf-8?B?UW94dzJ3cXBmWXlXUEJYT1JvTUhuMzFmLzJjczRxa2pVYUsrSU92dDFsQzlv?= =?utf-8?B?T3pMOWR1aklUOWsrZlY2cUVzbjY2MFdLUU5VYWQraUtDKy9Ib1hNdy9OMlBh?= =?utf-8?B?WVY3QjY2VVJWd21GQktkbjBnSldOTHNhOW44OEpvTVV1NXF0a2lTSVBEUFVs?= =?utf-8?B?MDJ6NEtEZkJONUM1RWs0Vit1MGo2QUpjK2U0cnZxbHBGbkV1WWhhTDE5Ny9n?= =?utf-8?B?Z0NtdHF3ZEMwbFF0dFpyMDd6ZEZuaFZSSWhvWnJZQlhXN0NEUlpJbnVGb2lS?= =?utf-8?B?RFVvOFJCbEpNNGVEQ3RUQmZWdmdqam4rOG8rR2RnY2g3aDR0eFg1MHdPTkFQ?= =?utf-8?B?NWJLTFZ6MHNCYzR5SkFrL05GQlZ4aGxlWWNRclJ0WnAxK0lmUEhuUWI0TlJk?= =?utf-8?B?SXlUUktpdVcyOG5pSjZveUdFdGNKTU5TY2xodkVsVDBsVFowaU5rOFVhR2Qv?= =?utf-8?B?YTFPa0FibU0wRFZ6alVCQ2w1NDdUWFo1bURacGtPTTVVRzZDL0liTXJpK1VU?= =?utf-8?B?UHQrUmZRU1FnRlV3Z3M2MGk0UVZsU0lqM001YVlNcCtUZkpmYUdOVnNDOUVV?= =?utf-8?B?aS80aFRwUXVvUGFCMFBPL0EzVDVtWVVMdzF0OUVUMkpXNngxSE5ib2dSREUy?= =?utf-8?B?REFUbGxYQXNodDV6K2N1ZU0xYkdJV1FTR1F4eGhRYWdxSVRQcmRJaHlYMENS?= =?utf-8?B?Y1hpcDhmSHY3UEJiUUxvc3hKWGVTdzRFLy9HdVZDRUh5NFhnRnhUdzZHaWNB?= =?utf-8?B?VEpvbnFnc3JoN2NSTkpBSTJtaCswd1dFemJMQlhvbmJCeVVsb3gweXUvM1hs?= =?utf-8?B?N0VZZWkrOERqRzlyMEZpT0REQllQUnJtakM1VGtGQnpocnBZcmhZYmd2QTFR?= =?utf-8?B?Zkk5WmhsdFdsUHVUVGVtQVNWY3lYWS9IdVZBV3NDQ0phTmpYb082Njg5enMr?= =?utf-8?B?SkFlY0RKYnBGTEJsRitvUWtCZzJKb0FuVDdLVEt2UngvdDVyS0t2Ym1YV0l2?= =?utf-8?B?bVg3OWdYS2JGZE1RUnNhLzRtcWpOci9oK3h5NTZxbjZicisvOUNNYzJUWW1C?= =?utf-8?B?VmJzSDFacVNaNkJoREhtZzVBMXhBSnQyRHo1QWk0ZVJlK3NuUytnUG1XT1I2?= =?utf-8?B?VktVZ0lIUEFQR3BpOUd3cnpwbWVwSnRCTzZFem5PM1d5M1lUTlY4eDFvRTY4?= =?utf-8?B?NTJkSWtEaVllVTFuR1krTU1nZ0JwMUFDMzNNZlN1cFNhOGJ6d3NOUS9WUCsy?= =?utf-8?B?eG1DMHJkS2FqNFkydTkwbEw3UnhYay9iNnF4Y3YrUGdjb1FFVVpvL0xHbTVZ?= =?utf-8?B?MkZLWklEMVEyYXVhdFp2K2NEWUN2T0JOTmg1Y0ZLQ0U5TUVTdnpxYmRKOUFL?= =?utf-8?B?dmV3U0hLUHRkRHVRM0Fqc1o4TzR4MEFFN2IwYmRRbUprQmltU3AwU0gzVE00?= =?utf-8?B?bElaYUh1R2ozYnZJbDdkaDZ5OTRRb0VqRi93SldPR24yTUlMZ0Y2Q2c1RjZL?= =?utf-8?B?MiszbllaTExOSWJjMk53RjRUdm1GcVBuS21sb1lrQ2NuNXFWZ0J2SndiNHVE?= =?utf-8?Q?rqPafd6I7A16cgsxo15eSSn2NQutd0SHft9sMqYCAogZ?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR11MB5600.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 270207ed-4a6a-4852-a63e-08dbdedbef39 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Nov 2023 15:20:39.5310 (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: pFKok1brnKQzZIh2tESKjQAJwkoU8pjewHLv9dWysYDngjZ8HRZhmCd/6bpUqHPmdow7UYz0i5Pr09zhR7vtdA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR11MB8041 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-5.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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: PiBTdWJqZWN0OiBSZTogW1BBVENIIDEvOF0gU3VwcG9ydCBBUFggR1BSMzIgd2l0aCByZXgyIHBy ZWZpeA0KPiANCj4gT24gMDIuMTEuMjAyMyAxMjoyOSwgQ3VpLCBMaWxpIHdyb3RlOg0KPiA+IEBA IC00MDYsNiArNDA5LDExIEBAIHN0cnVjdCBfaTM4Nl9pbnNuDQo+ID4gICAgICAvKiBDb21wcmVz c2VkIGRpc3A4Kk4gYXR0cmlidXRlLiAgKi8NCj4gPiAgICAgIHVuc2lnbmVkIGludCBtZW1zaGlm dDsNCj4gPg0KPiA+ICsgICAgLyogTm8gQ1NQQVpPIGZsYWdzIHVwZGF0ZS4qLw0KPiA+ICsgICAg Ym9vbCBoYXNfbmY7DQo+ID4gKw0KPiA+ICsgICAgYm9vbCBoYXNfemVyb191cHBlcjsNCj4gPiAr DQo+IA0KPiBDYW4gYm90aCBwbGVhc2UgYmUgaW50cm9kdWNlZCB3aGVuIHRoZXkncmUgbmVlZGVk LCBub3QgcmFuZG9tbHkgYWhlYWQgb2YNCj4gdGltZT8NCiANCk1vdmVkIGhhc19uZiB0byBwYXRj aCAyLzggYW5kIGRlbGV0ZWQgaGFzX3plcm9fdXBwZXIuDQoNCj4gPiBAQCAtMjM3NSw2ICsyMzg4 LDkgQEAgcmVnaXN0ZXJfbnVtYmVyIChjb25zdCByZWdfZW50cnkgKnIpDQo+ID4gICAgaWYgKHIt PnJlZ19mbGFncyAmIFJlZ1JleCkNCj4gPiAgICAgIG5yICs9IDg7DQo+ID4NCj4gPiArICBpZiAo ci0+cmVnX2ZsYWdzICYgUmVnUmV4MikNCj4gPiArICAgIG5yICs9IDE2Ow0KPiA+ICsNCj4gPiAg ICBpZiAoci0+cmVnX2ZsYWdzICYgUmVnVlJleCkNCj4gPiAgICAgIG5yICs9IDE2Ow0KPiANCj4g UGVyaGFwcyBmb2xkIHRvDQo+IA0KPiAgICAgaWYgKHItPnJlZ19mbGFncyAmIChSZWdWUmV4IHwg UmVnUmV4MikpDQo+ICAgICAgIG5yICs9IDE2Ow0KPiANCj4gPyBJcnJlc3BlY3RpdmUgYW4gYXNz ZXJ0aW9uIG1heSBiZSB3b3J0aHdoaWxlIHRoYXQgYm90aCBmbGFncyBhcmVuJ3Qgc2V0IGF0IHRo ZQ0KPiBzYW1lIHRpbWU/DQoNCkRvbmUuDQoNCj4gDQo+ID4gQEAgLTQxNTgsNiArNDE4MiwxOSBA QCBidWlsZF9ldmV4X3ByZWZpeCAodm9pZCkNCj4gPiAgICAgIGkudmV4LmJ5dGVzWzNdIHw9IGku bWFzay5yZWctPnJlZ19udW07ICB9DQo+ID4NCj4gPiArLyogQnVpbGQgKDIgYnl0ZXMpIHJleDIg cHJlZml4Lg0KPiA+ICsgICB8IEQ1aCB8DQo+ID4gKyAgIHwgbSB8IFI0IFg0IEI0IHwgVyBSIFgg QiB8DQo+ID4gKyovDQo+ID4gK3N0YXRpYyB2b2lkDQo+ID4gK2J1aWxkX3JleDJfcHJlZml4ICh2 b2lkKQ0KPiA+ICt7DQo+ID4gKyAgaS52ZXgubGVuZ3RoID0gMjsNCj4gPiArICBpLnZleC5ieXRl c1swXSA9IDB4ZDU7DQo+ID4gKyAgaS52ZXguYnl0ZXNbMV0gPSAoKGkudG0ub3Bjb2RlX3NwYWNl IDw8IDcpDQo+ID4gKwkJICAgIHwgKGkucmV4MiA8PCA0KSB8IGkucmV4KTsNCj4gPiArfQ0KPiAN Cj4gSSBtYXkgaGF2ZSBhc2tlZCBvbiB2MSBhbHJlYWR5OiBGb3IgZW1pdHRpbmcgUkVYIHdlIGRv bid0IHJlc29ydCB0byAoYWIpdXNpbmcNCj4gaS52ZXguIElzIHRoYXQgcmVhbGx5IG5lY2Vzc2Fy eT8gKElmIHNvLCBhIGNvbW1lbnQgbmV4dCB0byB0aGUgZmllbGQgZGVjbGFyYXRpb24NCj4gbWF5 IGJlIHdhcnJhbnRlZC4pDQo+IA0KQWRkZWQgY29tbWVudCBmb3IgaXQuDQoNCiAgLyogRm9yIHRo ZSBXIFIgWCBCIGJpdHMsIHRoZSB2YXJpYWJsZXMgb2YgcmV4IHByZWZpeCB3aWxsIGJlIHJldXNl ZC4gICovDQogIGkudmV4LmJ5dGVzWzFdID0gKChpLnRtLm9wY29kZV9zcGFjZSA8PCA3KQ0KICAg ICAgICAgICAgICAgICAgICB8IChpLnJleDIgPDwgNCkgfCBpLnJleCk7DQoNCj4gU3BlYWtpbmcg b2YgdjE6IENhbiB5b3UgcGxlYXNlIG1ha2Ugc3VyZSB5b3UgaGF2ZSBjb3JyZWN0IHZlcnNpb24g dGFncyBvbg0KPiBzdWJtaXNzaW9ucyBvZiB1cGRhdGVkIHBhdGNoIHZlcnNpb25zPw0KPiANCkkg dXNlZCBnaXQgdG8gc2VuZCBhbGwgdGhlIHBhdGNoZXMgYXQgb25jZSggZ2l0IHNlbmQtZW1haWwg IC0tY292ZXItbGV0dGVyIC0tYW5ub3RhdGUgIC0tdG89Ii4uLiIgLTgpLCB3aGljaCBvbmx5IGhh cyB0aGUgb3Bwb3J0dW5pdHkgdG8gY2hhbmdlIHRoZSB2ZXJzaW9uIG9mIHRoZSBjb3ZlciBsZXR0 ZXIgcGF0Y2guIFRvIGNoYW5nZSB0aGUgdmVyc2lvbiBvZiBlYWNoIHBhdGNoLCBJIGNhbiBzZW5k IHRoZW0gb25lIGJ5IG9uZSBuZXh0IHRpbWUuIEJ5IHRoZSB3YXksIGRvIHlvdSBoYXZlIGEgYmV0 dGVyIHdheT8gT3IgaG93IGRpZCB5b3UgbW9kaWZ5IHRoZW0/IFRoYW5rcy4NCg0KPiA+IEBAIC00 NDIzLDEyICs0NDYwLDE2IEBAIG9wdGltaXplX2VuY29kaW5nICh2b2lkKQ0KPiA+ICAJICBpLnN1 ZmZpeCA9IDA7DQo+ID4gIAkgIC8qIENvbnZlcnQgdG8gYnl0ZSByZWdpc3RlcnMuICAqLw0KPiA+ ICAJICBpZiAoaS50eXBlc1sxXS5iaXRmaWVsZC53b3JkKQ0KPiA+IC0JICAgIGogPSAxNjsNCj4g PiAtCSAgZWxzZSBpZiAoaS50eXBlc1sxXS5iaXRmaWVsZC5kd29yZCkNCj4gPiArCSAgICAvKiBU aGVyZSBhcmUgMzIgOC1iaXQgcmVnaXN0ZXJzLiAgKi8NCj4gDQo+IFBsZWFzZSBtYWtlIHN1cmUg Y29tbWVudHMgYXJlIGFjdHVhbGx5IGNvcnJlY3QuIFdpdGggeW91ciBhZGRpdGlvbnMgdGhlcmUN Cj4gYXJlIDQwIDgtYml0IHJlZ2lzdGVyczsgcHJpb3IgdG8gdGhhdCB0aGVyZSB3ZXJlIDI0LiBU aGUgaiArPSA4IGZ1cnRoZXIgZG93biBkZWFsDQo+IHdpdGggdGhhdCBkaWZmZXJlbmNlLCBhbmQg dGhlIGNvbW1lbnQgaGVyZSAoaWYgb25lIGlzIHRvIGJlIGFkZGVkKSB3YW50cyB0bw0KPiB0ZWxs IHRoZSBmdWxsIHRydXRoLg0KPiANCg0KRG9uZS4NCg0KPiA+IEBAIC01Mjc4LDYgKzUzMTksOSBA QCBtZF9hc3NlbWJsZSAoY2hhciAqbGluZSkNCj4gPiAgCWNhc2UgcmVnaXN0ZXJfdHlwZV9taXNt YXRjaDoNCj4gPiAgCSAgZXJyX21zZyA9IF8oInJlZ2lzdGVyIHR5cGUgbWlzbWF0Y2giKTsNCj4g PiAgCSAgYnJlYWs7DQo+ID4gKwljYXNlIHJlZ2lzdGVyX3R5cGVfb2ZfYWRkcmVzc19taXNtYXRj aDoNCj4gPiArCSAgZXJyX21zZyA9IF8oInJlZ2lzdGVyIHR5cGUgb2YgYWRkcmVzcyBtaXNtYXRj aCIpOw0KPiA+ICsJICBicmVhazsNCj4gDQo+IEkgaGF2ZSBhIGNvbmNlcm4gd2l0aCB3b3JkaW5n IC8gbmFtaW5nIGhlcmU6IElmIEkgc2F3IHRoaXMgaW4gYW4gZXJyb3IgbWVzc2FnZSwNCj4gSSB3 b3VsZG4ndCBrbm93IHdoYXQgaXMgbWVhbnQuIE1heWJlIHNvbWV0aGluZyBhbG9uZyB0aGUgbGlu ZXMgb2YgImNhbm5vdA0KPiB1c2UgYW4gZXh0ZW5kZWQgR1BSIGZvciBhZGRyZXNzaW5nIj8gQW5k IHRoZW4gdGhlIGVudW1lcmF0b3Igc3VpdGFibGV5DQo+IHJlbmFtZWQgYXMgd2VsbD8NCj4gDQog Q2hhbmdlZCB0byAgDQoNCisgICAgICAgY2FzZSB1bnN1cHBvcnRlZF9FR1BSX2Zvcl9hZGRyZXNz aW5nOg0KKyAgICAgICAgIGVycl9tc2cgPSBfKCJ1bnN1cHBvcnRlZCBFR1BSIGZvciBhZGRyZXNz aW5nIik7DQorICAgICAgICAgYnJlYWs7DQoNCj4gPiBAQCAtNTU3OCw3ICs1NjI1LDcgQEAgbWRf YXNzZW1ibGUgKGNoYXIgKmxpbmUpDQo+ID4gICAgICAgIGFzX3dhcm4gKF8oInRyYW5zbGF0aW5n IHRvIGAlc3AnIiksIGluc25fbmFtZSAoJmkudG0pKTsNCj4gPiAgICAgIH0NCj4gPg0KPiA+IC0g IGlmIChpc19hbnlfdmV4X2VuY29kaW5nICgmaS50bSkpDQo+ID4gKyBpZiAoaXNfYW55X3ZleF9l bmNvZGluZyAoJmkudG0pKQ0KPiA+ICAgICAgew0KPiANCj4gU3RyYXkgY2hhbmdlLCBicmVha2lu ZyBpbmRlbnRhdGlvbj8NCj4gDQoNCkRvbmUuDQoNCj4gPiBAQCAtNTU5NCw2ICs1NjQxLDEzIEBA IG1kX2Fzc2VtYmxlIChjaGFyICpsaW5lKQ0KPiA+ICAJICByZXR1cm47DQo+ID4gIAl9DQo+ID4N Cj4gPiArICAgICAgLyogQ2hlY2sgZm9yIGV4cGxpY2l0IFJFWDIgcHJlZml4LiAgKi8NCj4gPiAr ICAgICAgaWYgKGkucmV4MiB8fCBpLnJleDJfZW5jb2RpbmcpDQo+IA0KPiBUaGlzIG9wZW4tY29k ZXMgaXNfYW55X2FweF9yZXgyX2VuY29kaW5nKCkuIEJ1dCByZWFkIG9uLg0KPiANCj4gPiArCXsN Cj4gPiArCSAgYXNfYmFkIChfKCJSRVgyIHByZWZpeCBpbnZhbGlkIHdpdGggYCVzJyIpLCBpbnNu X25hbWUgKCZpLnRtKSk7DQo+IA0KPiBUaGVyZSdzIG5vIFJFWDIgcHJlZml4OyB7cmV4Mn0gb25s eSBzZXRzIGkucmV4Ml9lbmNvZGluZy4gUXVlc3Rpb24gaXMgd2hhdCBjYXNlDQo+IHRoZSBpLnJl eDIgY2hlY2sgYWJvdmUgaXMgaW50ZW5kZWQgdG8gY292ZXIuIEVycm9yIG1lc3NhZ2UgY29tbWVu dCwgYW5kDQo+IGNvbmRpdGlvbiB3YW50IHRvIHJlZmxlY3QgdGhhdC4NCj4gDQoNClJlbW92ZWQg aS5yZXgyIGFuZCBrZWVwIGkucmV4Ml9lbmNvZGluZyBoZXJlLiBBZGRlZCBvbmUgaW52YWxpZCB0 ZXN0Y2FzZSBmb3IgaXQuDQoNCiAgICAgICAge3JleH0gdm1vdmFwcyAleG1tNywleG1tMg0KICAg ICAgICB7cmV4fSB2bW92YXBzICV4bW0xNywleG1tMg0KICAgICAgICB7cmV4fSByb3J4ICQ3LCVl YXgsJWVieA0KKyAgICAgICB7cmV4Mn0gdm1vdmFwcyAleG1tNywleG1tMg0KDQo+ID4gQEAgLTU2 MzMsMTEgKzU2ODcsMTEgQEAgbWRfYXNzZW1ibGUgKGNoYXIgKmxpbmUpDQo+ID4gIAkgICYmIChp Lm9wWzFdLnJlZ3MtPnJlZ19mbGFncyAmIFJlZ1JleDY0KSAhPSAwKQ0KPiA+ICAgICAgICB8fCAo KChpLnR5cGVzWzBdLmJpdGZpZWxkLmNsYXNzID09IFJlZyAmJiBpLnR5cGVzWzBdLmJpdGZpZWxk LmJ5dGUpDQo+ID4gIAkgICB8fCAoaS50eXBlc1sxXS5iaXRmaWVsZC5jbGFzcyA9PSBSZWcgJiYg aS50eXBlc1sxXS5iaXRmaWVsZC5ieXRlKSkNCj4gPiAtCSAgJiYgaS5yZXggIT0gMCkpDQo+ID4g KwkgICYmIChpLnJleCAhPSAwIHx8IGkucmV4MiAhPSAwKSkpDQo+ID4gICAgICB7DQo+ID4gICAg ICAgIGludCB4Ow0KPiA+IC0NCj4gPiAtICAgICAgaS5yZXggfD0gUkVYX09QQ09ERTsNCj4gDQo+ IFBsZWFzZSBkb24ndCByZW1vdmUgYmxhbmsgbGluZXMgbGlrZSB0aGlzLg0KPiANCg0KRG9uZS4N Cg0KPiA+IEBAIC01NjQ3LDkgKzU3MDEsMTEgQEAgbWRfYXNzZW1ibGUgKGNoYXIgKmxpbmUpDQo+ ID4gIAkgICAgICBnYXNfYXNzZXJ0ICghKGkub3BbeF0ucmVncy0+cmVnX2ZsYWdzICYgUmVnUmV4 KSk7DQo+ID4gIAkgICAgICAvKiBJbiBjYXNlIGl0IGlzICJoaSIgcmVnaXN0ZXIsIGdpdmUgdXAu ICAqLw0KPiA+ICAJICAgICAgaWYgKGkub3BbeF0ucmVncy0+cmVnX251bSA+IDMpDQo+ID4gLQkJ YXNfYmFkIChfKCJjYW4ndCBlbmNvZGUgcmVnaXN0ZXIgJyVzJXMnIGluIGFuICINCj4gPiAtCQkJ ICAiaW5zdHJ1Y3Rpb24gcmVxdWlyaW5nIFJFWCBwcmVmaXguIiksDQo+ID4gLQkJCXJlZ2lzdGVy X3ByZWZpeCwgaS5vcFt4XS5yZWdzLT5yZWdfbmFtZSk7DQo+ID4gKwkJew0KPiA+ICsJCSAgYXNf YmFkIChfKCJjYW4ndCBlbmNvZGUgcmVnaXN0ZXIgJyVzJXMnIGluIGFuICINCj4gPiArCQkJICAg ICJpbnN0cnVjdGlvbiByZXF1aXJpbmcgUkVYL1JFWDIgcHJlZml4LiIpLA0KPiA+ICsJCQkgIHJl Z2lzdGVyX3ByZWZpeCwgaS5vcFt4XS5yZWdzLT5yZWdfbmFtZSk7DQo+ID4gKwkJfQ0KPiANCj4g VGhlcmUncyBubyBuZWVkIHRvIGludHJvZHVjZSBicmFjZXMgaGVyZS4gV2l0aG91dCBkb2luZyBz byB0aGlzIHdpbGwgYWxzbyBiZQ0KPiBsZXNzIG9mIGEgY2hhbmdlLg0KPiANCg0KRG9uZS4NCg0K PiA+IEBAIC02OTg5LDYgKzcwNTYsNDQgQEAgVkVYX2NoZWNrX2VuY29kaW5nIChjb25zdCBpbnNu X3RlbXBsYXRlICp0KQ0KPiA+ICAgIHJldHVybiAwOw0KPiA+ICB9DQo+ID4NCj4gPiArLyogQ2hl Y2sgaWYgRWdwcnMgb3BlcmFuZHMgYXJlIHZhbGlkIGZvciB0aGUgaW5zdHJ1Y3Rpb24uICAqLw0K PiA+ICsNCj4gPiArc3RhdGljIGludA0KPiA+ICtjaGVja19FZ3ByT3BlcmFuZHMgKGNvbnN0IGlu c25fdGVtcGxhdGUgKnQpIHsNCj4gPiArICBpZiAodC0+b3Bjb2RlX21vZGlmaWVyLm5vZWdwcikN Cj4gPiArICAgIHsNCj4gDQo+IFRoaXMgc2NvcGUgZWZmZWN0aXZlbHkgY292ZXJzIHRoZSBlbnRp cmUgZnVuY3Rpb24uIERpZCB5b3UgY29uc2lkZXINCj4gDQo+ICAgaWYgKCF0LT5vcGNvZGVfbW9k aWZpZXIubm9lZ3ByKQ0KPiAgICAgcmV0dXJuIDA7DQo+IA0KPiB0byBhaWQgcmVhZGFiaWxpdHk/ DQo+IA0KDQpEb25lLg0KDQo+ID4gKyAgICAgIGZvciAodW5zaWduZWQgaW50IG9wID0gMDsgb3Ag PCBpLm9wZXJhbmRzOyBvcCsrKQ0KPiA+ICsJew0KPiA+ICsJICBpZiAoaS50eXBlc1tvcF0uYml0 ZmllbGQuY2xhc3MgIT0gUmVnDQo+ID4gKwkgICAgICAvKiBTcGVjaWFsIGNhc2UgZm9yICglZHgp IHdoaWxlIGRvaW5nIGlucHV0L291dHB1dCBvcCAqLw0KPiA+ICsJICAgICAgfHwgaS5pbnB1dF9v dXRwdXRfb3BlcmFuZCkNCj4gDQo+IFdoeSBpcyB0aGlzIG5lZWRlZD8gVGhlIHJlZ2lzdGVyIHRh YmxlIGVudHJ5IGZvciAlZHggLi4uDQo+IA0KPiA+ICsJICAgIGNvbnRpbnVlOw0KPiA+ICsNCj4g PiArCSAgaWYgKGkub3Bbb3BdLnJlZ3MtPnJlZ19mbGFncyAmIFJlZ1JleDIpDQo+IA0KPiAuLi4g ZG9lc24ndCBoYXZlIHRoaXMgYml0IHNldCBhbnl3YXkuDQo+IA0KDQpGb3IgdGhpcyBzcGVjaWFs IGNhc2UgaS5vcCBpcyBlbXB0eSwgd2UgbmVlZCBjb250aW51ZSwgb3RoZXJ3aXNlIHIgaS5vcFtv cF0ucmVncy0+cmVnX2ZsYWdzICB3aWxsIGNhdXNlIHNlZ21lbnQgZmF1bHQuDQoNCj4gPiArCSAg ICB7DQo+ID4gKwkgICAgICBpLmVycm9yID0gcmVnaXN0ZXJfdHlwZV9taXNtYXRjaDsNCj4gPiAr CSAgICAgIHJldHVybiAxOw0KPiA+ICsJICAgIH0NCj4gPiArCX0NCj4gPiArDQo+ID4gKyAgICAg IGlmICgoaS5pbmRleF9yZWcgJiYgKGkuaW5kZXhfcmVnLT5yZWdfZmxhZ3MgJiBSZWdSZXgyKSkN Cj4gPiArCSAgfHwgKGkuYmFzZV9yZWcgJiYgKGkuYmFzZV9yZWctPnJlZ19mbGFncyAmIFJlZ1Jl eDIpKSkNCj4gPiArCXsNCj4gPiArCSAgaS5lcnJvciA9IHJlZ2lzdGVyX3R5cGVfb2ZfYWRkcmVz c19taXNtYXRjaDsNCj4gPiArCSAgcmV0dXJuIDE7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsgICAg ICAvKiBDaGVjayBwc2V1ZG8gcHJlZml4IHtyZXgyfSBhcmUgdmFsaWQuICAqLw0KPiA+ICsgICAg ICBpZiAoaS5yZXgyX2VuY29kaW5nKQ0KPiA+ICsJew0KPiA+ICsJICBpLmVycm9yID0gaW52YWxp ZF9wc2V1ZG9fcHJlZml4Ow0KPiA+ICsJICByZXR1cm4gMTsNCj4gPiArCX0NCj4gDQo+IEZ1cnRo ZXIgdXAgaW4gbWRfYXNzZW1ibGUoKSB7cmV4fSBvciB7cmV4Mn0gaXMgc2ltcGx5IGlnbm9yZWQg d2hlbiB3cm9uZyB0bw0KPiBhcHBseS4gV2h5IHdvdWxkIGFuIGluYXBwbGljYWJsZSB7cmV4Mn0g YmUgdHJlYXRlZCBhcyBhbiBlcnJvciBoZXJlPyBUaGlzDQo+IHdvdWxkIHRoZW4gYWxzbyAuLi4N Cj4gDQo+ID4gQEAgLTcxMjUsNyArNzIzMCw3IEBAIG1hdGNoX3RlbXBsYXRlIChjaGFyIG1uZW1f c3VmZml4KQ0KPiA+ICAgICAgICAvKiBEbyBub3QgdmVyaWZ5IG9wZXJhbmRzIHdoZW4gdGhlcmUg YXJlIG5vbmUuICAqLw0KPiA+ICAgICAgICBpZiAoIXQtPm9wZXJhbmRzKQ0KPiA+ICAJew0KPiA+ IC0JICBpZiAoVkVYX2NoZWNrX2VuY29kaW5nICh0KSkNCj4gPiArCSAgaWYgKFZFWF9jaGVja19l bmNvZGluZyAodCkgfHwgY2hlY2tfRWdwck9wZXJhbmRzICh0KSkNCj4gPiAgCSAgICB7DQo+ID4g IAkgICAgICBzcGVjaWZpY19lcnJvciA9IHByb2dyZXNzIChpLmVycm9yKTsNCj4gPiAgCSAgICAg IGNvbnRpbnVlOw0KPiANCj4gLi4uIGVsaW1pbmF0ZSB0aGUgbmVlZCBmb3IgdGhpcyBjaGFuZ2Us IHdoaWNoIGlzIGtpbmQgb2YgYm9ndXMgYW55d2F5Og0KPiBUaGVyZSBhcmUgbm8gb3BlcmFuZHMg aGVyZSwgc28gY2FsbGluZyBhIGZ1bmN0aW9uIG9mIHRoZSBnaXZlbiBuYW1lIGlzIGF0IGxlYXN0 DQo+IHN1c3BpY2lvdXMuDQo+IA0KDQpXZSBoYXZlIHRoZXNlIHRlc3RzIGFuZCBJJ20gY29uZnVz ZWQgd2hldGhlciB0byByZW1vdmUgdGhlbSBvciBub3QuDQoNCisgICAgICAgI0FsbCBvcGNvZGVz IGluIHRoZSByb3cgMHhmMyogcHJlZml4ZWQgUkVYMiBhcmUgaWxsZWdhbC4NCisgICAgICAge3Jl eDJ9IHdybXNyDQorICAgICAgIHtyZXgyfSByZHRzYw0KKyAgICAgICB7cmV4Mn0gcmRtc3INCisg ICAgICAge3JleDJ9IHN5c2VudGVyDQorICAgICAgIHtyZXgyfSBzeXNleGl0bA0KKyAgICAgICB7 cmV4Mn0gcmRwbWMNCg0KPiA+IEBAIC0xNDEzMSw2ICsxNDI1OCwxMyBAQCBzdGF0aWMgYm9vbCBj aGVja19yZWdpc3RlciAoY29uc3QgcmVnX2VudHJ5ICpyKQ0KPiA+ICAJaS52ZWNfZW5jb2Rpbmcg PSB2ZXhfZW5jb2RpbmdfZXJyb3I7DQo+ID4gICAgICB9DQo+ID4NCj4gPiArICBpZiAoci0+cmVn X2ZsYWdzICYgUmVnUmV4MikNCj4gPiArICAgIHsNCj4gPiArICAgICAgaWYgKCFjcHVfYXJjaF9m bGFncy5iaXRmaWVsZC5jcHVhcHhfZg0KPiA+ICsJICB8fCBmbGFnX2NvZGUgIT0gQ09ERV82NEJJ VCkNCj4gPiArCXJldHVybiBmYWxzZTsNCj4gPiArICAgIH0NCj4gDQo+IFBsZWFzZSBmb2xkIHRo ZSB0d28gaWYoKXMgaW50byBvbmUgKHVubGVzcyBvZiBjb3Vyc2UgeW91IGtub3cgdGhhdCB0aGUg b3V0ZXINCj4gb25lIGlzIGdvaW5nIHRvIGJlIGV4dGVuZGVkIGluIGEgc3Vic2VxdWVudCBwYXRj aCkuDQo+IA0KDQpZZXMsIG90aGVyIGNvZGUgd2lsbCBiZSBhZGRlZCBpbiB0aGUgb3V0ZXIgaWYg d2l0aCBwYXRjaDIvOC4NCg0KPiA+IC0tLSBhL2dhcy9kb2MvYy1pMzg2LnRleGkNCj4gPiArKysg Yi9nYXMvZG9jL2MtaTM4Ni50ZXhpDQo+ID4gQEAgLTIxNiw2ICsyMTYsNyBAQCBhY2NlcHQgdmFy aW91cyBleHRlbnNpb24gbW5lbW9uaWNzLiAgRm9yIGV4YW1wbGUsDQo+ID4gQGNvZGV7YXZ4MTAu MS81MTJ9LCAgQGNvZGV7YXZ4MTAuMS8yNTZ9LCAgQGNvZGV7YXZ4MTAuMS8xMjh9LA0KPiA+ICtA Y29kZXthcHh9LA0KPiA+ICBAY29kZXthbXhfaW50OH0sDQo+ID4gIEBjb2Rle2FteF9iZjE2fSwN Cj4gPiAgQGNvZGV7YW14X2ZwMTZ9LA0KPiA+IEBAIC0xNjYyLDcgKzE2NjMsNyBAQCBzdXBwb3J0 ZWQgb24gdGhlIENQVSBzcGVjaWZpZWQuICBUaGUgY2hvaWNlcyBmb3INCj4gQHZhcntjcHVfdHlw ZX0gYXJlOg0KPiA+ICBAaXRlbSBAc2FtcHsubHdwfSBAdGFiIEBzYW1wey5mbWE0fSBAdGFiIEBz YW1wey54b3B9IEB0YWINCj4gPiBAc2FtcHsuY3gxNn0gIEBpdGVtIEBzYW1wey5wYWRsb2NrfSBA dGFiIEBzYW1wey5jbHplcm99IEB0YWINCj4gPiBAc2FtcHsubXdhaXR4fSBAdGFiIEBzYW1wey5y ZHBydX0gIEBpdGVtIEBzYW1wey5tY29tbWl0fSBAdGFiDQo+ID4gQHNhbXB7LnNldl9lc30gQHRh YiBAc2FtcHsuc25wfSBAdGFiIEBzYW1wey5pbnZscGdifSAtQGl0ZW0NCj4gPiBAc2FtcHsudGxi c3luY30NCj4gPiArQGl0ZW0gQHNhbXB7LnRsYnN5bmN9IEB0YWIgQHNhbXB7LmFweH0NCj4gPiAg QGVuZCBtdWx0aXRhYmxlDQo+IA0KPiBEWU0gYXB4X2YgaW4gYm90aCBjYXNlcz8NCj4gDQo+IEFs c28gZG9uJ3QgeW91IG5lZWQgdG8gYWxzbyBtZW50aW9uIHtyZXgyfSBzb21ld2hlcmUgaW4gdGhp cyBmaWxlPw0KPiANCg0KRG9uZS4NCg0KPiA+IC0tLSBhL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYv aWxwMzIveDg2LTY0LW9wY29kZS1pbnZhbC1pbnRlbC5kDQo+ID4gKysrIGIvZ2FzL3Rlc3RzdWl0 ZS9nYXMvaTM4Ni9pbHAzMi94ODYtNjQtb3Bjb2RlLWludmFsLWludGVsLmQNCj4gPiBAQCAtMTEs MTEgKzExLDExIEBAIERpc2Fzc2VtYmx5IG9mIHNlY3Rpb24gLnRleHQ6DQo+ID4gIFsgCV0qW2Et ZjAtOV0rOgkzNyAgICAgICAgICAgICAgICAgICAJXChiYWRcKQ0KPiA+DQo+ID4gIDArMSA8YWFk MD46DQo+ID4gLVsgCV0qW2EtZjAtOV0rOglkNSAgICAgICAgICAgICAgICAgICAJXChiYWRcKQ0K PiA+ICtbIAldKlthLWYwLTldKzoJZDUgICAgICAgICAgICAgICAgICAgCXJleDINCj4gPiAgWyAJ XSpbYS1mMC05XSs6CTBhICAgICAgICAgICAgICAgICAgIAkuYnl0ZSAweGENCj4gPg0KPiA+ICAw KzMgPGFhZDE+Og0KPiA+IC1bIAldKlthLWYwLTldKzoJZDUgICAgICAgICAgICAgICAgICAgCVwo YmFkXCkNCj4gPiArWyAJXSpbYS1mMC05XSs6CWQ1ICAgICAgICAgICAgICAgICAgIAlyZXgyDQo+ ID4gIFsgCV0qW2EtZjAtOV0rOgkwMiAgICAgICAgICAgICAgICAgICAJLmJ5dGUgMHgyDQo+ID4N Cj4gPiAgMCs1IDxhYW0wPjoNCj4gPiAtLS0gYS9nYXMvdGVzdHN1aXRlL2dhcy9pMzg2L2lscDMy L3g4Ni02NC1vcGNvZGUtaW52YWwuZA0KPiA+ICsrKyBiL2dhcy90ZXN0c3VpdGUvZ2FzL2kzODYv aWxwMzIveDg2LTY0LW9wY29kZS1pbnZhbC5kDQo+ID4gQEAgLTExLDExICsxMSwxMSBAQCBEaXNh c3NlbWJseSBvZiBzZWN0aW9uIC50ZXh0Og0KPiA+ICBbIAldKlthLWYwLTldKzoJMzcgICAgICAg ICAgICAgICAgICAgCVwoYmFkXCkNCj4gPg0KPiA+ICAwKzEgPGFhZDA+Og0KPiA+IC1bIAldKlth LWYwLTldKzoJZDUgICAgICAgICAgICAgICAgICAgCVwoYmFkXCkNCj4gPiArWyAJXSpbYS1mMC05 XSs6CWQ1ICAgICAgICAgICAgICAgICAgIAlyZXgyDQo+ID4gIFsgCV0qW2EtZjAtOV0rOgkwYSAg ICAgICAgICAgICAgICAgICAJLmJ5dGUgMHhhDQo+ID4NCj4gPiAgMCszIDxhYWQxPjoNCj4gPiAt WyAJXSpbYS1mMC05XSs6CWQ1ICAgICAgICAgICAgICAgICAgIAlcKGJhZFwpDQo+ID4gK1sgCV0q W2EtZjAtOV0rOglkNSAgICAgICAgICAgICAgICAgICAJcmV4Mg0KPiA+ICBbIAldKlthLWYwLTld KzoJMDIgICAgICAgICAgICAgICAgICAgCS5ieXRlIDB4Mg0KPiA+DQo+ID4gIDArNSA8YWFtMD46 DQo+IA0KPiBUaGVzZSBleHBlY3RhdGlvbnMgbWF0Y2ggdGhlIG9uZXMgb2YgdGhlIHNhbWUgdGVz dCBpbiB0aGUgcGFyZW50IGRpcmVjdG9yeS4NCj4gSGVuY2UgaW5zdGVhZCBvZiBhZGp1c3Rpbmcg ZWFjaCBpbiBib3RoIHBsYWNlcywgcGxlYXNlIGhhdmUgdGhlIG9uZXMgaGVyZQ0KPiByZWZlcmVu Y2UgdGhlIHBhcmVudCBkaXJlY3RvcnkgZmlsZXMuDQo+IA0KDQpUaGV5IGFyZSB1c2VkIHRvIHRl c3QgaWxsZWdhbCBvcGNvZGVzIGZvciB4ODYtNjQuIFNpbmNlIEQ1IG5vdyBtYWtlcyBzZW5zZSwg dGhlc2UgdHdvIHRlc3QgY2FzZXMgd2VyZSByZW1vdmVkLg0KDQojIEFsbCB0aGUgZm9sbG93aW5n cyBhcmUgaWxsZWdhbCBvcGNvZGVzIGZvciB4ODYtNjQuDQphYWQwOg0KICAgICAgICBhYWQNCmFh ZDE6DQogICAgICAgIGFhZCAkMg0KDQo+ID4gLS0tIGEvb3Bjb2Rlcy9pMzg2LWRpcy5jDQo+ID4g KysrIGIvb3Bjb2Rlcy9pMzg2LWRpcy5jDQo+IA0KPiBBcyBiZWZvcmUgSSdsbCBsb29rIGF0IHRo ZSBkaXNhc3NlbWJsZXIgY2hhbmdlcyBzZXBhcmF0ZWx5LiBUaGlzIHBhdGNoIGlzIHNpbXBseQ0K PiB0b28gYmlnLg0KPiANCg0KT2sNCg0KPiA+IEBAIC0xMDA4LDEwICsxMDEyLDM1IEBAIGdldF9l bGVtZW50X3NpemUgKGNoYXIgKipvcG5kLCBpbnQgbGluZW5vKQ0KPiA+ICAgIHJldHVybiBlbGVt X3NpemU7DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgYm9vbA0KPiA+ICtpZl9lbnRyeV9uZWVk c19zcGVjaWFsX2hhbmRsZSAoY29uc3QgdW5zaWduZWQgbG9uZyBsb25nIG9wY29kZSwgdW5zaWdu ZWQNCj4gaW50IHNwYWNlLA0KPiA+ICsJCQkgICAgICAgY29uc3QgY2hhciAqY3B1X2ZsYWdzKQ0K PiA+ICt7DQo+ID4gKyAgLyogUHJlZml4aW5nIFhTQVZFKiBhbmQgWFJTVE9SKiBpbnN0cnVjdGlv bnMgd2l0aCBSRVgyIHRyaWdnZXJzDQo+ID4gKyNVRC4gICovDQo+ID4gKyAgaWYgKHN0cmNtcCAo Y3B1X2ZsYWdzLCAiWFNBVkVTIikgPj0gMA0KPiA+ICsgICAgICB8fCBzdHJjbXAgKGNwdV9mbGFn cywgIlhTQVZFQyIpID49IDANCj4gPiArICAgICAgfHwgc3RyY21wIChjcHVfZmxhZ3MsICJYc2F2 ZSIpID49IDANCj4gPiArICAgICAgfHwgc3RyY21wIChjcHVfZmxhZ3MsICJYc2F2ZW9wdCIpID49 IDANCj4gDQo+IFVwb24gZnVydGhlciB0aG91Z2h0IGZvciB0aGVzZSAoYW5kIG1heWJlIGV2ZW4g Li4uDQo+IA0KPiA+ICsgICAgICB8fCAhc3RyY21wIChjcHVfZmxhZ3MsICIzZG5vdyIpDQo+ID4g KyAgICAgIHx8ICFzdHJjbXAgKGNwdV9mbGFncywgIjNkbm93QSIpKQ0KPiANCj4gLi4uIGZvciB0 aGVzZSwgYnV0IHNlZSBhbHNvIGJlbG93KSBpdCBtaWdodCBiZSBiZXR0ZXIgdG8gYWRkIHRoZSBh dHRyaWJ1dGUgcmlnaHQgaW4NCj4gdGhlIG9wY29kZSB0YWJsZS4NCj4gDQo+IEFzIHRvIHRoZSAz ZG5vdyBpbnNucyAtIEkgdGhpbmsgSSdkIGxpa2UgdG8gcmV2aXNlIG15IGVhcmxpZXIgc3VnZ2Vz dGlvbiB0byBhbHNvDQo+IHRhZyB0aG9zZS4gTGlrZSBlLmcuIEZQVSBpbnNucyB0aGV5J3JlIHBy ZXR0eSBub3JtYWwgR1BSLXdpc2UsIHNvIGFsbG93aW5nIHRoZW0NCj4gdG8gYmUgdXNlZCBsaWtl IHRoYXQgd291bGQgYXBwZWFyIG9ubHkgY29uc2lzdGVudC4gT3RoZXJ3aXNlLCBpZiB3ZSB3ZXJl DQo+IGNvbmNlcm5lZCBvZiBBTUQgZXh0ZW5zaW9ucyBpbiBnZW5lcmFsLCBTU0U0YSBpbnNucyAo YW5kIG1heWJlIGZ1cnRoZXINCj4gb25lcykgd291bGQgYWxzbyBuZWVkIGV4Y2x1ZGluZy4gKEFk ZGl0aW9uYWxseSByZWNhbGwgdGhhdCB0aGVyZSdzIGFuIG92ZXJsYXANCj4gYmV0d2VlbiAzZG5v d2EgYW5kIFNTRSwgd2hpY2ggd291bGQgcmVzdWx0IGluIGFub3RoZXIgW2FwcGFyZW50XQ0KPiBp bmNvbnNpc3RlbmN5IHdoZW4gZXhjbHVkaW5nIDNkbm93IGluc25zIGhlcmUuKQ0KPiANCg0KSSBz ZWUsIGZvciBleGFtcGxlICBJIHRoaW5rIEkgbmVlZCB0byBzcGxpdCB0aGlzIHRhYmxlIGludG8g dHdvIHBhcnRzLCBvbmUgaXMgZm9yIFNTRSBhbmQgb25lIGlzIGZvciAzZG5vd0EsIHRoZW4gYWRk IG5vZWdwciB0byB0aGUgU1NFIG9uZSwgcmlnaHQ/DQpwZXh0cncsIDB4ZmM1LCBTU0V8M2Rub3dB LCBNb2RybXxJZ25vcmVTaXplfE5vX2JTdWZ8Tm9fd1N1ZnxOb19zU3VmfE5vUmV4NjQsIHsgSW1t OCwgUmVnTU1YLCBSZWczMnxSZWc2NCB9DQoNClRoYW5rcywNCkxpbGkuDQo=