From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.120]) by sourceware.org (Postfix) with ESMTPS id 4D5183858C54 for ; Tue, 17 Oct 2023 15:49:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4D5183858C54 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 4D5183858C54 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=192.55.52.120 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1697557782; cv=pass; b=jl3covKazYQv82wLqRwyv2nkkExWrkCG0J652NHeH3ZVSQL8t7rouSmOpzkPr33ziHlK+6P7odlzLredzxpbBOhljO86LbxChaW/rjFfax1yrmYbBw1EKXsvya3ouZpILzX7pvGDQ9sinrm6OFoDewdCorl3RoM3SUqSSDwnVjY= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1697557782; c=relaxed/simple; bh=GLIx71+oq/8MsWo54gb8ou0Z/hlCXwBlooG97uYnzs0=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=jbbyrxZ4zraO2u/dEp8h5l5xjo5WXwIbxdohSWGsfEOkgbXwHsKe73fWd2iWs6n8L5pOOl6oMIsPbW8q0RTV51IqvdvHx4wbP+i6DsmNzIpukKCrArl/PzJUwwysvl4D2f8O00xjeMjunVYlFfE8kE+j5/zAMLAYjN8iqxC9c7U= 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=1697557778; x=1729093778; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=GLIx71+oq/8MsWo54gb8ou0Z/hlCXwBlooG97uYnzs0=; b=aF6V8v1uXqfAtIraMFseg6ZZnBmmY079+2k6UoWegh5f6+xeNZ+7e9f2 GyfFp0CGrPeSPxWgfXE7CX4k9TeZRnlw+pWb65ivJWXBy4bNik8/fZfNs KlInXNkoryav6tU68YghU9g4rK/Saw6Af32SNRiTKYg6DjrN/ir9EHrWN s7wCA0VXKygFggWjl7ZbvlVkVK+4QQQBAs/q56uFxOQzT3g0YXLaxqHNR ToQvPO9lbuX17biyz7tYr58iMPFV8DvBU9WrM6NR5Xr9Mbm+eUAOr92/1 6o+SI+u8E8DCAeIbeD+ElHr4AqTSFm9RaCGU9meN7N/72pte6V1sJxNqd w==; X-IronPort-AV: E=McAfee;i="6600,9927,10866"; a="384692362" X-IronPort-AV: E=Sophos;i="6.03,232,1694761200"; d="scan'208,217";a="384692362" Received: from orsmga004.jf.intel.com ([10.7.209.38]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Oct 2023 08:48:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10866"; a="879860389" X-IronPort-AV: E=Sophos;i="6.03,232,1694761200"; d="scan'208,217";a="879860389" Received: from orsmsx603.amr.corp.intel.com ([10.22.229.16]) by orsmga004.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 17 Oct 2023 08:48:21 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX603.amr.corp.intel.com (10.22.229.16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 17 Oct 2023 08:48:20 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 17 Oct 2023 08:48:20 -0700 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Tue, 17 Oct 2023 08:48:20 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.169) 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.32; Tue, 17 Oct 2023 08:48:19 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ssn/3+HZ8Gio1ZAkZ7ECsSlkqsTY9z/DRNaPsR6Y9JVjJ7+dh2/2EATW3VrjeBYuM3cnqhlMlecFdnwqEcLWriuMbe93H4NjKAt7FnoXR4PSYHYb6qfAQf45iHQzIcTmOQyLQu/nrqY/zUCJSbRK8irljIzrSLY6YW+86QyI0OONfn1mq88TEBoAEaHLmD6ocbmNpoZ8mFezQWu66MXLTov4xir0aTYbgzbfI8sYIr+gEb9rrUGYKhTWMrqYJTpyephX0JKsF1Sk+99jGVvMlLDMZftayvmTLzXUMjGIamglLG276xzgtco2liamJNfFPkC2I7ab79CAEuOvJ3OotQ== 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=GLIx71+oq/8MsWo54gb8ou0Z/hlCXwBlooG97uYnzs0=; b=ifQqd7p1uQ8VnUSABqP1uPe7/oHvGUS9eb6gSMg/ddawEfEP6tI8tZMZBJV4mPnJ7Pk0j529zAAyTRME9emVqCfLgc7mYzojI+qYpqZ4OGqwjdBTlmZRd8YG4F9i3ZWnxFJWGdoj1w2obA+YiuFc2fh3NG1rwiQO6V9VNx94B7ElauItnLv4fEGmQEtvd469A8aHPRZqI2P4+85IgE+oRaDCrSHDVOyjZBX7yWJ0YRXi8xB6+MljzjK5dFEplr+A0CBIaMcWC4gV3zk8EFeJkJOw6QJGov1DQ9RKJKgn9kXCr3I7/y7xXTOkkuM4FRnRnHELLabE+ltvETPCVJSuxg== 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 PH7PR11MB7595.namprd11.prod.outlook.com (2603:10b6:510:27a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6907.21; Tue, 17 Oct 2023 15:48:12 +0000 Received: from SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::1e00:3b04:bfe7:41f7]) by SJ0PR11MB5600.namprd11.prod.outlook.com ([fe80::1e00:3b04:bfe7:41f7%3]) with mapi id 15.20.6886.034; Tue, 17 Oct 2023 15:48:12 +0000 From: "Cui, Lili" To: "Beulich, Jan" CC: "Lu, Hongjiu" , "binutils@sourceware.org" Subject: RE: [PATCH 2/8] Support APX GPR32 with extend evex prefix Thread-Topic: [PATCH 2/8] Support APX GPR32 with extend evex prefix Thread-Index: AQHZ6w3MWKsf5i0yDkqFor4PT/spz7AmpGmAgBkSn6A= Date: Tue, 17 Oct 2023 15:48:12 +0000 Message-ID: References: <20230919152527.497773-1-lili.cui@intel.com> <20230919152527.497773-3-lili.cui@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR11MB5600:EE_|PH7PR11MB7595:EE_ x-ms-office365-filtering-correlation-id: fabff89c-c2d5-4acc-bf47-08dbcf28780b 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: H09AmQlHLqtbutWxmWkNaxZ4Kffc2QQrbAyNWnw1fAHW0JntwsxOh7NwFcNhGFN8La3QeszDQXVtOFG9wtbQbJqzwPZjzc/z0TFRiiZXQYJSJerSSMdyVl8D7K2blsYUmC0TyPEoPmsAm69pgU9udKvHy/A1NILaqUdTQuWMxNHnni4smcP8qMLNSit+0zBLxpgexjkcb878A6YmQOyN1Z5xprsyMctC/D114WGWdPJNBoqO9akYyjdo/NTTZWMfh5PKohKMxEwJTLmzDAUHRw10Yh471LukJ/tKQ8cbsa0OcCynATONxGroj/aa7UQZD/6fAgYLMhOcu2MynjZt2A3Bd1WnbMe069N2AmZzVIFsMggm8VdcsCc4zIZWAoziCUCQUud4WT7O5tU47D1CzlWdMlsNxStFzvrg3Dt9mOCwkLWhRSPH/X39utnMyJoc26dsks1haI0IFthb4cq1g+vaNsznzL7QeQ8wutizO78KxcCE+qDS9t5lDVrNuAX3HnGomdylZopjua3uqlSs4r51NJhp/lXCFapA8JnL0+avVwb0uCGVB0HIoIvpFrQx+Gh4kSeRAz4rA3TnGWyX4q11hE46WzhzzKHiVlveV+rMRjXMeGfIgoY4RgTlJRNk 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)(39860400002)(346002)(396003)(376002)(366004)(136003)(230922051799003)(451199024)(1800799009)(186009)(64100799003)(38070700005)(53546011)(33656002)(9686003)(6506007)(38100700002)(7696005)(41300700001)(30864003)(2906002)(6916009)(316002)(64756008)(54906003)(66446008)(66476007)(66556008)(66946007)(76116006)(478600001)(4326008)(8936002)(8676002)(5660300002)(86362001)(52536014)(71200400001)(122000001)(82960400001)(55016003)(83380400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZEtHMVVqek9FTzE5c0tHR0dKM2xkSGdTazVnb0tlNk9QdHdoT1U1VGNwQ2lS?= =?utf-8?B?ajRYL1hXL1Rya05GY2ltRHVtVDhYTVd1c3BvaysyODNRUXZBVDBQbjJvK1J2?= =?utf-8?B?c0kwQkYwMTNlNHVVdVdZNVpTTk5XTWtUZTRXSWlZK3ZONFFKek9tYWEyeXpk?= =?utf-8?B?Y2N4bVZIeXNvNHNaL3FmbEQ3dHNmc0hIMHcwaVp1OVpTSVFvWkVtckdxZXVi?= =?utf-8?B?M2RqbFdXZlN1eFRtUlQ0MkVkMHNobk1lUFlRUXp6YXBrS1QzNThUSXVNQ0dL?= =?utf-8?B?cy9yRVYxQkNPVzlYV3h4dlhPOVV1UDVFZjJQcHRmVjlZYlVxRUNqZjEwR2li?= =?utf-8?B?RXFpN29ETEc3RHJTN3NSZTQ1UWppYUFTOGdiMmt0TXpFb3cwN0hMTDZXbHJ0?= =?utf-8?B?WVRGZ3VmNFBCTW1wN0dVbENFYzIrWFRtOXBaenZxcXVjelF1czZsWVhPNUV4?= =?utf-8?B?NGVmc2xJUVVtUnZUeW9TY1NSUW1ubmxyVVRHVE5PbkNReWp0MHphSUM5dDdv?= =?utf-8?B?RUFRT3Zlb3h3Vm44clVwbnE3aUpodTRXckdNWDFiT0N4Z3l4Z2NrcjU3eFJr?= =?utf-8?B?ZDNrc2pwNXZyek9ZRy9ncDVOVTBRa0wzMkczdFowUHFyaEVLWGgySnVhUzlL?= =?utf-8?B?RDNCRjlSTGFoNFVoTXlIY0VCUWs1T1VkSVg2R3c2MEZFTE5Jd2lCS002YnM3?= =?utf-8?B?NVkra0hsY3FSSXFTaDdrUkllcStUQ0pLUGduQUR0aUlLQytwRG9FYTRjUmpx?= =?utf-8?B?emVROHl3Z0RwMHA4OGFUY08xbjhzbnRkMTRSTmJjKzVTK2hkUk8zT0hYZFQ1?= =?utf-8?B?KzVtTWhyOXZOZElja1VUYitjTXJmV1NTNnIrYzFGMkxDdTh0YUF1L29ZWkd0?= =?utf-8?B?Qk5JdlB0cTh5SGZqTWorVlBPaWk4TWQrTStSY3czZi9zaEN2cGhucjJONWdv?= =?utf-8?B?TGg0ZnR3YnpYQUtvNXdnSWxvMldQcFZtU0NTdFUwTEZuNkVOS29xR3huaWcv?= =?utf-8?B?ZGZyOFBVZHE5MzMybjA2TnhPSk54bCtWTzFKVW1vZjYyTGNSM0cremZzdmpv?= =?utf-8?B?YklpWTNoT051cng4VWs0TFVJR2RJUTh2ZEZreVNxekxoY25wTFNOb05lR1pJ?= =?utf-8?B?OGI5U0IraE9vNzRlNytkWldzVSt2U05HaGNwQjZDcC9TQVN3bGFERXJWM01U?= =?utf-8?B?TTM0SnhieGFYNDZ5VkY5NmRvWmtLdXF2Ukk1d0Q0WnhPR2hzbWRkdzlUaVZP?= =?utf-8?B?TEtEUWFtNm8veHkwdTdaWWo4aGplRlZkajlUaEZPamNscDg5MFBvZ2tmUlZJ?= =?utf-8?B?VGMzWGJnRmptb3d0c0NKZml5S1lWMDhjVlJKWkVPZjNucGFzWm96Y3VHcFcw?= =?utf-8?B?VVVOS3R0bHY4L1FQTmF5T0RSTUxwVGlHUFhLamtJaHdyRHkxSktyQWxIZlhG?= =?utf-8?B?bEY3eFlabytxOGtpVjgrUlRnb05KSE5sRWJaSUFjc2xrN3FKeE1oeFBLdkF0?= =?utf-8?B?RS82UzkwNElMRS9HMlFpL3RQM01sck9mT2RtYUt3UlEvT0g3NXdNQ3l4MmRu?= =?utf-8?B?TEk0T2w3Nkd2eFN0VFQyNHNmSWpXY2Y1cVkzRGYyaXRlZ2RwS0VwOUUySFE1?= =?utf-8?B?Mmo0NG9UODY5Y25YNUFmUjlzVzJQWFRONG1oSVhRdVZMMTJwdjUxZTJYQ3dp?= =?utf-8?B?bWdIaDFKZnE5dFFkUERweUlKZkR0ZmJpengvc1RqaDRkdFRYODM0MTZJUVIy?= =?utf-8?B?OXlYM0c5T0g3QkRzcmZJdFpJb2laQlRZUTV2WEg0Y2xpVi96dmpzN0JJRDlo?= =?utf-8?B?Y0w5Y0doOGtPdTI5U0wwQmk1bCtQcjNpd2wyZzk2bUlkU0NqMVZDSHlDaEJ3?= =?utf-8?B?M0QrRUUvY0tRaDE1aUxReGs5U1RoUVY2OHRvUzBtSG5teGZFVTFCZGk0YjdL?= =?utf-8?B?YWxqUE5mc1RYeFpkV3VNaWlzT1ZSUFA1ZVp5RUk5L3JCRnpqRmg5Q0piaUVm?= =?utf-8?B?MWhuM3VLbGp0Nm92clduT0RNYTYxYXVOc3NQenZqSm1oenZxajlUc3J4VFY2?= =?utf-8?B?am1wWFhHamk2RmZkTHRzL0JPLzJkRE10TDhGZmhDVC9XZXJzNitEbHByRko2?= =?utf-8?B?cFgwWitRUEYrQVk1ZjJEWXEwVHF0TWdIRTh2QnNPVm9zOTlNQ2k3TUQvb0Yz?= =?utf-8?Q?yum5zQCaKwKvGQ3eEVR+uQv2OxJ0YnMBr+6WklGsTSKC?= Content-Type: multipart/alternative; boundary="_000_SJ0PR11MB56008D045F483814CCBB895E9ED6ASJ0PR11MB5600namp_" 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: fabff89c-c2d5-4acc-bf47-08dbcf28780b X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Oct 2023 15:48:12.2376 (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: i106jn8zFDQfQlqe6pc/c7RRH7qjN3kpLeCD2Hua30y/Hy0Sz26xpc8m3KZLmf3iV2Alu+WqoHOd+532GTGdFQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7595 X-OriginatorOrg: intel.com X-Spam-Status: No, score=-5.8 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,HTML_MESSAGE,SPF_HELO_NONE,SPF_NONE,TXREP 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: --_000_SJ0PR11MB56008D045F483814CCBB895E9ED6ASJ0PR11MB5600namp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiBPbiAxOS4wOS4yMDIzIDE3OjI1LCBDdWksIExpbGkgd3JvdGU6DQoNCj4g PiAtLS0gYS9nYXMvY29uZmlnL3RjLWkzODYuYw0KDQo+ID4gKysrIGIvZ2Fz L2NvbmZpZy90Yy1pMzg2LmMNCg0KPiA+IEBAIC0xOTQ1LDYgKzE5NDUsMzAg QEAgY3B1X2ZsYWdzX21hdGNoIChjb25zdCBpbnNuX3RlbXBsYXRlICp0KQ0K DQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgJiYgKCF4LmJpdGZpZWxk LmNwdXZwY2xtdWxxZHEgfHwNCg0KPiBjcHUuYml0ZmllbGQuY3B1dnBjbG11 bHFkcSkpDQoNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggfD0g Q1BVX0ZMQUdTX0FSQ0hfTUFUQ0g7DQoNCj4gPiAgICAgICAgICAgICB9DQoN Cj4gPiArICAgICAgICBlbHNlIGlmICh4LmJpdGZpZWxkLmNwdWFweF9mKQ0K DQo+ID4gKyAgICAgICAgICB7DQoNCj4gPiArICAgICAgICAgICAgaWYgKGNw dS5iaXRmaWVsZC5jcHVhcHhfZg0KDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAmJiAoIXguYml0ZmllbGQuY3B1bW92YmUgfHwgY3B1LmJpdGZpZWxk LmNwdW1vdmJlKQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAmJiAo IXguYml0ZmllbGQuY3B1ZXB0IHx8IGNwdS5iaXRmaWVsZC5jcHVlcHQpDQoN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICYmICgheC5iaXRmaWVsZC5j cHVpbnZwY2lkIHx8IGNwdS5iaXRmaWVsZC5jcHVpbnZwY2lkKQ0KDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAmJiAoIXguYml0ZmllbGQuY3B1c3Nl NF8yIHx8IGNwdS5iaXRmaWVsZC5jcHVzc2U0XzIpDQoNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICYmICgheC5iaXRmaWVsZC5jcHVibWkyIHx8IGNw dS5iaXRmaWVsZC5jcHVibWkyKQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAmJiAoIXguYml0ZmllbGQuY3B1Ym1pIHx8IGNwdS5iaXRmaWVsZC5j cHVibWkpDQoNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICYmICgheC5i aXRmaWVsZC5jcHVhZHggfHwgY3B1LmJpdGZpZWxkLmNwdWFkeCkNCg0KPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgJiYgKCF4LmJpdGZpZWxkLmNwdXNo YSB8fCBjcHUuYml0ZmllbGQuY3B1c2hhKQ0KDQo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAmJiAoIXguYml0ZmllbGQuY3B1YXZ4NTEyYncgfHwgY3B1 LmJpdGZpZWxkLmNwdWF2eDUxMmJ3KQ0KDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAmJiAoIXguYml0ZmllbGQuY3B1YXZ4NTEyZHEgfHwgY3B1LmJp dGZpZWxkLmNwdWF2eDUxMmRxKQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAmJiAoIXguYml0ZmllbGQuY3B1YXZ4NTEyZiB8fCBjcHUuYml0Zmll bGQuY3B1YXZ4NTEyZikNCg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg JiYgKCF4LmJpdGZpZWxkLmNwdXNoc3RrIHx8IGNwdS5iaXRmaWVsZC5jcHVz aHN0aykNCg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgJiYgKCF4LmJp dGZpZWxkLmNwdW1vdmRpcjY0YiB8fCBjcHUuYml0ZmllbGQuY3B1bW92ZGly NjRiKQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAmJiAoIXguYml0 ZmllbGQuY3B1bW92ZGlyaSB8fCBjcHUuYml0ZmllbGQuY3B1bW92ZGlyaSkN Cg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgJiYgKCF4LmJpdGZpZWxk LmNwdWVucWNtZCB8fCBjcHUuYml0ZmllbGQuY3B1ZW5xY21kKQ0KDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAmJiAoIXguYml0ZmllbGQuY3B1a2wg fHwgY3B1LmJpdGZpZWxkLmNwdWtsKQ0KDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAmJiAoIXguYml0ZmllbGQuY3B1d2lkZWtsIHx8IGNwdS5iaXRm aWVsZC5jcHV3aWRla2wpDQoNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICYmICgheC5iaXRmaWVsZC5jcHVjbXBjY3hhZGQgfHwgY3B1LmJpdGZpZWxk LmNwdWNtcGNjeGFkZCkNCg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg JiYgKCF4LmJpdGZpZWxkLmNwdXJhb19pbnQgfHwgY3B1LmJpdGZpZWxkLmNw dXJhb19pbnQpKQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgbWF0Y2gg fD0gQ1BVX0ZMQUdTX0FSQ0hfTUFUQ0g7DQoNCj4gPiArICAgICAgICAgIH0N Cg0KPiA+ICAgICAgICAgICBlbHNlDQoNCj4gPiAgICAgICAgICAgICBtYXRj aCB8PSBDUFVfRkxBR1NfQVJDSF9NQVRDSDsNCg0KPiA+DQoNCj4NCg0KPiBU aGlzIGlzIGdldHRpbmcgdW53aWVsZHksIHNvIEkgdGhpbmsgd2Ugd2lsbCBu ZWVkIHRvIHRoaW5rIG9mIGEgYmV0dGVyIHdheSBvZg0KDQo+IGV4cHJlc3Np bmcgYm90aCAibXVsdGlwbGUgSVNBcyBuZWVkIHRvIGJlIGVuYWJsZWQiIGFu ZCAib25lIG9mIGEgc2V0IG9mIElTQXMNCg0KPiBuZWVkcyB0byBiZSBlbmFi bGVkIi4gSXQncyBvbmx5IHRoZSBtaXggb2YgdGhlc2UgZXhwcmVzc2VkIGlu IGEgdW5pZm9ybSB3YXkgaW4NCg0KPiB0aGUgaW5zbiB0YWJsZSB0aGF0IHJl cXVpcmVzIHRoZXNlIGV4dHJhIGNvbmRpdGlvbmFscy4gV2l0aCB0aGUgc2l6 ZSBvZg0KDQo+IGkzODZfY3B1X2F0dHIgZ3JlYXRseSBzaHJ1bmsgYXMgb2Yg cmVjZW50bHksIEkgd29uZGVyIGlmIHdlIGNvdWxkbid0IHNpbXBseSBhZGQN Cg0KPiBhIDJuZCBpbnN0YW5jZSBvZiBpdCB0byBpbnNuX3RlbXBsYXRlLiBP bmUgd291bGQgYmUgImFsbCBvZiB0aGVzZSBhcmUgcmVxdWlyZWQiLA0KDQo+ IHdoaWxlIHRoZSBvdGhlciB3b3VsZCBiZSAiYW55IG9uZSBvZiB0aGVzZSBp cyBzdWZmaWNpZW50Ii4NCg0KPg0KDQoNCg0KSSBkaWRuJ3QgZmluZCBhIGJl dHRlciB3YXkgdG8gZGlzdGluZ3Vpc2ggdGhlc2UgdHdvIHR5cGVzIG9mIHJl cXVpcmVtZW50cyBpbiBpbnNuX3RlbXBsYXRlLg0KDQpJIHdyb3RlIGEgbmV3 IGZ1bmN0aW9uICJjcHVfZmxhZ3Nfbm90X29yX2NoZWNrIiB0byByZXBsYWNl IHRoZXNlIGNsdW1zeSBqdWRnbWVudHMuDQoNCg0KDQpzdGF0aWMgSU5MSU5F IGludA0KDQpjcHVfZmxhZ3Nfbm90X29yX2NoZWNrIChjb25zdCB1bmlvbiBp Mzg2X2NwdV9mbGFncyAqeCwNCg0KICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgdW5pb24gaTM4Nl9jcHVfZmxhZ3MgKnkpDQoNCnsNCg0KICBzd2l0 Y2ggKEFSUkFZX1NJWkUoeC0+YXJyYXkpKQ0KDQogICAgew0KDQogICAgY2Fz ZSA1Og0KDQogICAgICBpZiAoKH54LT5hcnJheVs0XSB8IHktPmFycmF5WzRd KSAhPSAweGZmZmZmZmZmKQ0KDQogICAgICAgIHJldHVybiAwOw0KDQogICAg ICAvKiBGYWxsIHRocm91Z2guICAqLw0KDQogICAgY2FzZSA0Og0KDQogICAg ICBpZiAoKH54LT5hcnJheVszXSB8IHktPmFycmF5WzNdKSAhPSAweGZmZmZm ZmZmKQ0KDQogICAgICAgIHJldHVybiAwOw0KDQogICAgICAvKiBGYWxsIHRo cm91Z2guICAqLw0KDQogICAgY2FzZSAzOg0KDQogICAgICBpZiAoKH54LT5h cnJheVsyXSB8IHktPmFycmF5WzJdKSAhPSAweGZmZmZmZmZmKQ0KDQogICAg ICAgIHJldHVybiAwOw0KDQogICAgICAvKiBGYWxsIHRocm91Z2guICAqLw0K DQogICAgY2FzZSAyOg0KDQogICAgICBpZiAoKH54LT5hcnJheVsxXSB8IHkt PmFycmF5WzFdKSAhPSAweGZmZmZmZmZmKQ0KDQogICAgICAgIHJldHVybiAw Ow0KDQogICAgICAvKiBGYWxsIHRocm91Z2guICAqLw0KDQogICAgY2FzZSAx Og0KDQogICAgIHJldHVybiAoKH54LT5hcnJheVsxXSB8IHktPmFycmF5WzFd KSA9PSAwWGZmZmZmZmZmKTsNCg0KICAgICAgYnJlYWs7DQoNCiAgICBkZWZh dWx0Og0KDQogICAgICBhYm9ydCAoKTsNCg0KICAgIH0NCg0KfQ0KDQoNCg0K PiA+IEBAIC0zODUwLDcgKzM4NzQsMTAgQEAgaXNfYW55X3ZleF9lbmNvZGlu ZyAoY29uc3QgaW5zbl90ZW1wbGF0ZSAqdCkNCg0KPiA+IHN0YXRpYyBJTkxJ TkUgYm9vbCAgaXNfYW55X2FweF9lbmNvZGluZyAodm9pZCkgIHsNCg0KPiA+ IC0gIHJldHVybiBpLnJleDIgfHwgaS5yZXgyX2VuY29kaW5nOw0KDQo+ID4g KyAgcmV0dXJuIGkucmV4Mg0KDQo+ID4gKyAgICB8fCBpLnJleDJfZW5jb2Rp bmcNCg0KPiA+ICsgICAgfHwgKGkudmV4LnJlZ2lzdGVyX3NwZWNpZmllcg0K DQo+ID4gKyAgICAgICYmIGkudmV4LnJlZ2lzdGVyX3NwZWNpZmllci0+cmVn X2ZsYWdzICYgUmVnUmV4Mik7DQoNCj4NCg0KPiBOaXQ6IEZvciByZWFkYWJp bGl0eSBhcyB3ZWxsIGFzIGZvciBjb25zaXN0ZW5jeSB0aGlzIHdhbnRzIGlu ZGVudGluZw0KDQo+IGRpZmZlcmVudGx5Og0KDQo+DQoNCj4gICByZXR1cm4g aS5yZXgyDQoNCj4gICAgICAgICAgICAgfHwgaS5yZXgyX2VuY29kaW5nDQoN Cj4gICAgICAgICAgICAgfHwgKGkudmV4LnJlZ2lzdGVyX3NwZWNpZmllcg0K DQo+ICAgICAgICAgICAgICAgICAmJiBpLnZleC5yZWdpc3Rlcl9zcGVjaWZp ZXItPnJlZ19mbGFncyAmIFJlZ1JleDIpOw0KDQo+DQoNCj4gb3IgcG9zc2li bHkgKHNsaWdodGx5IHNob3J0ZXIpDQoNCj4NCg0KPiAgIHJldHVybiBpLnJl eDIgfHwgaS5yZXgyX2VuY29kaW5nDQoNCj4gICAgICAgICAgICAgfHwgKGku dmV4LnJlZ2lzdGVyX3NwZWNpZmllcg0KDQo+ICAgICAgICAgICAgICAgICAm JiBpLnZleC5yZWdpc3Rlcl9zcGVjaWZpZXItPnJlZ19mbGFncyAmIFJlZ1Jl eDIpOw0KDQo+DQoNCj4gSW4gYW55IGV2ZW50IHlvdSB3YW50IHRvIGF2b2lk IHRyYWlsaW5nIGJsYW5rcyBvbiBhbnkgbGluZS4NCg0KPg0KDQoNCg0KRG9u ZS4NCg0KDQoNCj4gPiBAQCAtMzg1OSw2ICszODg2LDEyIEBAIGlzX2FueV9h cHhfcmV4Ml9lbmNvZGluZyAodm9pZCkNCg0KPiA+ICAgIHJldHVybiAoaS5y ZXgyICYmIGkudmV4Lmxlbmd0aCA9PSAyKSB8fCBpLnJleDJfZW5jb2Rpbmc7 ICB9DQoNCj4gPg0KDQo+ID4gK3N0YXRpYyBJTkxJTkUgYm9vbA0KDQo+ID4g K2lzX2FueV9hcHhfZXZleF9lbmNvZGluZyAodm9pZCkNCg0KPiA+ICt7DQoN Cj4gPiArICByZXR1cm4gaS5yZXgyICYmIGkudmV4Lmxlbmd0aCA9PSA0OyB9 DQoNCj4NCg0KPiBUaGlzIGRvZXNuJ3QgZmVlbCByaWdodDoge2V2ZXh9IHVz ZSB3b3VsZCBkZW1hbmQgdGhpcyBlbmNvZGluZyBldmVuIGlmDQoNCj4gaS5y ZXgyIGlzIHN0aWxsIHplcm8uDQoNCj4NCg0KPiBBbHNvIC0gd2hhdCBpcyAi YW55IiBpbiB0aGUgbmFtZSAoYWxzbyBvZiB0aGUgZWFybGllciBwcmVkaWNh dGUpIGludGVuZGluZyB0bw0KDQo+IGV4cHJlc3M/IGlzX2FueV92ZXhfZW5j b2RpbmcoKSBpcyBuYW1lZCB0aGUgd2F5IGl0IGlzIGJlY2F1c2UgaXQgY292 ZXJzIGJvdGgNCg0KPiBWRVggYW5kIEVWRVguDQoNCj4NCg0KDQoNClllcywg eW91IGFyZSByaWdodCwgSSBmb3VuZCAgdGhpcyBmZWF0dXJlIGlzIHJlZHVu ZGFudC4gSXQgaXMgb25seSB1c2VkIGluIG91dHB1dF9pbnNuLCBzZWUgYmVs b3csIGV2ZXggZW5jb2RpbmcgaXMgYWxyZWFkeSBpbmNsdWRlZCBpbiBpc19h bnlfdmV4X2VuY29kaW5nKCZpLnRtKSAoc2luY2Ugd2UgYWRkZWQgRVZFWDEy OCBmb3IgYWxsIEVWRVgtcHJvbW90ZWQgaW5zdHJ1Y3Rpb24gaW4gaW5zbiB0 ZW1wbGF0ZSksIEkgcmVtb3ZlZCB0aGlzIGZ1bmN0aW9uLg0KDQoNCg0KaWYg KCFpc19hbnlfdmV4X2VuY29kaW5nICgmaS50bSkgJiYgIWlzX2FueV9hcHhf ZXZleF9lbmNvZGluZyAoKSkNCg0KDQoNCj4gPiBAQCAtNDEyOSw2ICs0MTYy LDUwIEBAIGJ1aWxkX3JleDJfcHJlZml4ICh2b2lkKQ0KDQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgICB8IChpLnJleDIgPDwgNCkgfCBpLnJleCk7 DQoNCj4gPiAgfQ0KDQo+ID4NCg0KPiA+ICsvKiBCdWlsZCB0aGUgRVZFWCBw cmVmaXggKDQtYnl0ZSkgZm9yIGV2ZXggaW5zbg0KDQo+ID4gKyAgIHwgNjJo IHwNCg0KPiA+ICsgICB8IGBSYFhgQmBSJyB8IEInbW1tIHwNCg0KPiA+ICsg ICB8IFcgfCB2YHZgdmB2IHwgYHgnIHwgcHAgfA0KDQo+ID4gKyAgIHwgenwg TCdMIHwgYiB8IGB2IHwgYWFhIHwNCg0KPiA+ICsqLw0KDQo+ID4gK3N0YXRp YyB2b2lkDQoNCj4gPiArYnVpbGRfZXZleF9pbnNuc193aXRoX2V4dGVuZF9l dmV4X3ByZWZpeCAodm9pZCkNCg0KPg0KDQo+IFRoZSBuYW1lIGlzIHNvbWV3 aGF0IG9kZCBhbmQgZG9lc24ndCBmaXQgdGhhdCBvZiBvdGhlciBzaW1pbGFy IGZ1bmN0aW9ucy4NCg0KPiBJbiBwYXJ0aWN1bGFyIHRoaXMgZnVuY3Rpb24g ZG9lc24ndCBidWlsZCBhbiBlbnRpcmUgaW5zbiwgYnV0IHN0aWxsIGp1c3Qg dGhlIHByZWZpeC4NCg0KPiBTbyBwZXJoYXBzIGJ1aWxkX2FweF9ldmV4X3By ZWZpeCgpPw0KDQo+DQoNCg0KDQpJdCBpcyBiZXR0ZXIsIHJlcGxhY2VkLg0K DQoNCg0KPiA+ICt7DQoNCj4gPiArICBidWlsZF9ldmV4X3ByZWZpeCAoKTsN Cg0KPiA+ICsgIGlmIChpLnJleDIgJiBSRVhfUikNCg0KPiA+ICsgICAgJj0g MHhlZjsNCg0KPiA+ICsgIGlmIChpLnZleC5yZWdpc3Rlcl9zcGVjaWZpZXIN Cg0KPiA+ICsgICAgICAmJiByZWdpc3Rlcl9udW1iZXIgKGkudmV4LnJlZ2lz dGVyX3NwZWNpZmllcikgPiAweGYpDQoNCj4gPiArICAgIGkudmV4LmJ5dGVz WzNdICY9MHhmNzsNCg0KPg0KDQo+IE5pdDogTWlzc2luZyBibGFuay4NCg0K Pg0KDQo+IEJ1dDogSXMgdGhpcyBuZWVkZWQ/IERvZXNuJ3QgYnVpbGRfZXZl eF9wcmVmaXgoKSBmaWxsIHRoaXMgYml0IGFscmVhZHksIHdoaWNoIGlzbid0 DQoNCj4gbmV3IGluIEFQWD8NCg0KPg0KDQoNCg0KVjQgaXMgdXNlZCBmb3Ig dmVjdG9yIHJlZ2lzdGVyIEluIGJ1aWxkX2V2ZXhfcHJlZml4KCksIHdlIG5l ZWQgdG8gdXBkYXRlIFY0IHdpdGggR1BSMzIuDQoNCg0KDQogICAgICAvKiBU aGUgdXBwZXIgMTYgcmVnaXN0ZXJzIGFyZSBlbmNvZGVkIGluIHRoZSBmb3Vy dGggYnl0ZSBvZiB0aGUNCg0KICAgICAgICAgRVZFWCBwcmVmaXguICAqLw0K DQogICAgICBpZiAoIShpLnZleC5yZWdpc3Rlcl9zcGVjaWZpZXItPnJlZ19m bGFncyAmIFJlZ1ZSZXgpKQ0KDQogICAgICAgIGkudmV4LmJ5dGVzWzNdID0g MHg4Ow0KDQoNCg0KPiA+ICsgIGlmIChpLnJleDIgJiBSRVhfQikNCg0KPiA+ ICsgICAgaS52ZXguYnl0ZXNbMV0gfD0gMHgwODsNCg0KPiA+ICsgIGlmIChp LnJleDIgJiBSRVhfWCkNCg0KPiA+ICsgICAgaS52ZXguYnl0ZXNbMl0gJj0g MHhmYjsNCg0KPiA+ICt9DQoNCj4gPiArDQoNCj4gPiArLyogQnVpbGQgdGhl IEVWRVggcHJlZml4ICg0LWJ5dGUpIGZvciBsZWdhY3kgaW5zbg0KDQo+ID4g KyAgIHwgNjJoIHwNCg0KPiA+ICsgICB8IGBSYFhgQmBSJyB8IEInMTAwIHwN Cg0KPiA+ICsgICB8IFcgfCB2YHZgdmB2IHwgYHgnIHwgcHAgfA0KDQo+ID4g KyAgIHwgMDAwIHwgTkQgfCBgdiB8IE5GIHwgMDAgfA0KDQo+ID4gKyAgIEZv ciBsZWdhY3kgaW5zbiB3aXRob3V0IG5kZCBub3IgbmYsIFt2dnZ2dl0gbXVz dCBiZSBhbGwgemVyby4gICovDQoNCj4gPiArc3RhdGljIHZvaWQgYnVpbGRf bGVnYWN5X2luc25zX3dpdGhfYXB4X2VuY29kaW5nICh2b2lkKQ0KDQo+DQoN Cj4gQXMgcGVyIGFib3ZlLCBtYXliZSBidWlsZF9leHRlbmRlZF9ldmV4X3By ZWZpeCgpPyBPciwgLi4uDQoNCj4NCg0KPiA+ICt7DQoNCj4gPiArICAvKiBt YXB7MCwxfSBvZiBsZWdhY3kgc3BhY2Ugd2l0aG91dCBuZGQgb3IgbmYgY291 bGQgdXNlIHJleDINCg0KPiA+ICtwcmVmaXguICAqLw0KDQo+ID4gKyAgaWYg KGkudG0ub3Bjb2RlX3NwYWNlIDw9IFNQQUNFXzBGDQoNCj4gPiArICAgICAg JiYgIWkudmV4LnJlZ2lzdGVyX3NwZWNpZmllciAmJiAhaS5oYXNfbmYgJiYg IWkuaGFzX3plcm9fdXBwZXIpDQoNCj4gPiArICAgIHJldHVybiBidWlsZF9y ZXgyX3ByZWZpeCAoKTsNCg0KPg0KDQo+IC4uLiBiZWNhdXNlIG9mIHRoaXMs IGJ1aWxkX2FweF9wcmVmaXgoKT8gWWV0IEkgdGhpbmsgdGhlIGNhbGwgdG8g dGhpcyBmdW5jdGlvbiBtaWdodA0KDQo+IGJldHRlciByZW1haW4gaW4gdGhl IGNhbGxlci4NCg0KPg0KDQoNCg0KSSBkZWxldGVkIHRoaXMgZnVuY3Rpb24s IHNpbmNlIHdlIGhhbmRsZSByZXgyIGZvbGxvd2luZyByZXgsIGFuZCBoYW5k bGUgb3RoZXJzIGZvbGxvd2luZyBWRVggYW5kIEVWRVguDQoNCg0KDQo+ID4g KyAgaWYgKGkucHJlZml4W0RBVEFfUFJFRklYXSAhPSAwKQ0KDQo+ID4gKyAg ICB7DQoNCj4gPiArICAgICAgaS50bS5vcGNvZGVfbW9kaWZpZXIub3Bjb2Rl cHJlZml4ID0gUFJFRklYXzBYNjY7DQoNCj4gPiArICAgICAgaS5wcmVmaXhb REFUQV9QUkVGSVhdID0gMDsNCg0KPiA+ICsgICAgfQ0KDQo+DQoNCj4gV2hp bGUgdGhpcyBsb29rcyB0byBiZSBjb3JyZWN0IGZvciB0aGUgY2FzZSB3aGVu IHRoZSBwcmVmaXggd2FzIGRlcml2ZWQgZnJvbSBhbg0KDQo+IGluc24gdGVt cGxhdGUgYW5kIHRoZSB1c2Ugb2YgMTYtYml0IG9wZXJhbmRzLCBJIGRvbid0 IHRoaW5rIGl0IGlzIHVuaWZvcm1seQ0KDQo+IGNvcnJlY3Qgd2hlbiAiZGF0 YTE2IiB3YXMgdXNlZCBhcyBhIHByZWZpeCBleHBsaWNpdGx5LiBJbiBzdWNo IGEgY2FzZSBlaXRoZXINCg0KPiBSRVgyIGVuY29kaW5nIG5lZWRzIHRvIGJl IHVzZWQsIG9yIGFuIGVycm9yIG5lZWRzIGVtaXR0aW5nLg0KDQo+DQoNCj4g WW91IG1heSBmdXJ0aGVyIHdhbnQgdG8gYXNzZXJ0IHRoYXQgaS50bS5vcGNv ZGVfbW9kaWZpZXIub3Bjb2RlcHJlZml4IGlzIHN0aWxsDQoNCj4gemVybyBh aGVhZCBvZiB0aGUgYXNzaWdubWVudC4NCg0KPg0KDQoNCg0KRm9yIFJFWDIg ZW5jb2RpbmcsIHdlIGFkZCBubyBzcGVjaWFsIGhhbmRsaW5nLCBqdXN0IGZv bGxvdyBSRVguDQoNCkZvciBFVkVYLXByb21vdGVkIGVuY29kaW5nLCBzdWNo IGFzIOKAnGRhdGExNiBhYW5kICAgJXIyNWQsMHgxMjMoJXIzMSwlcmF4LDQp 4oCdLCB0aGUgZm9sbG93aW5nIGV4aXN0aW5nIGNvZGUgd2lsbCByZXBvcnQg YW4gZXJyb3IuDQoNCg0KDQogIGlmIChpc19hbnlfdmV4X2VuY29kaW5nICgm aS50bSkNCg0KICAgICAgfHwgaS50bS5vcGVyYW5kX3R5cGVzW2kuaW1tX29w ZXJhbmRzXS5iaXRmaWVsZC5jbGFzcyA+PSBSZWdNTVgNCg0KICAgICAgfHwg aS50bS5vcGVyYW5kX3R5cGVzW2kuaW1tX29wZXJhbmRzICsgMV0uYml0Zmll bGQuY2xhc3MgPj0gUmVnTU1YKQ0KDQogICAgew0KDQogICAgICAvKiBDaGVj ayBmb3IgZGF0YSBzaXplIHByZWZpeCBvbiBWRVgvWE9QL0VWRVggZW5jb2Rl ZCBhbmQgU0lNRCBpbnNucy4gICovDQoNCiAgICAgIGlmIChpLnByZWZpeFtE QVRBX1BSRUZJWF0pDQoNCiAgICAgICAgew0KDQogICAgICAgICAgYXNfYmFk IChfKCJkYXRhIHNpemUgcHJlZml4IGludmFsaWQgd2l0aCBgJXMnIiksIGlu c25fbmFtZSAoJmkudG0pKTsNCg0KICAgICAgICAgIHJldHVybjsNCg0KICAg ICAgICB9DQoNCg0KDQo+ID4gQEAgLTEwMDU3LDcgKzEwMTM2LDcgQEAgb3V0 cHV0X2luc24gKHZvaWQpDQoNCj4gPg0KDQo+ID4gICAgICAgIC8qIFNpbmNl IHRoZSBWRVgvRVZFWCBwcmVmaXggY29udGFpbnMgdGhlIGltcGxpY2l0IHBy ZWZpeCwgd2UNCg0KPiA+ICAgICAgICAgIGRvbid0IG5lZWQgdGhlIGV4cGxp Y2l0IHByZWZpeC4gICovDQoNCj4gPiAtICAgICAgaWYgKCFpc19hbnlfdmV4 X2VuY29kaW5nICgmaS50bSkpDQoNCj4gPiArICAgICAgaWYgKCFpc19hbnlf dmV4X2VuY29kaW5nICgmaS50bSkgJiYgIWlzX2FueV9hcHhfZXZleF9lbmNv ZGluZw0KDQo+ID4gKyAoKSkNCg0KPiA+ICAgICAgICAgew0KDQo+ID4gICAg ICAgICAgIHN3aXRjaCAoaS50bS5vcGNvZGVfbW9kaWZpZXIub3Bjb2RlcHJl Zml4KQ0KDQo+DQoNCj4gSSdtIG5vdCBjb252aW5jZWQgdGhlIHVzZSBvZiB0 aGlzIHByZWRpY2F0ZSBpcyBhcHByb3ByaWF0ZSBoZXJlLiBJJ2QgZ2VuZXJh bGx5DQoNCj4gaGF2ZSBleHBlY3RlZCBpc19hbnlfdmV4X2VuY29kaW5nKCkg dG8gYmUgZXh0ZW5kZWQgdG8gYWxzbyBkZXRlY3QgYWxsIGNhc2VzDQoNCj4g b2YgRVZFWCBlbmNvZGluZ3MgaW4gQVBYLg0KDQoNCg0KUmVtb3ZlZCB0aGlz IGZ1bmN0aW9uLCBhcyBtZW50aW9uZWQgYmVmb3JlLCBldmV4IGVuY29kaW5n IGlzIGFscmVhZHkgaW5jbHVkZWQgaW4gaXNfYW55X3ZleF9lbmNvZGluZygm aS50bSkgKHNpbmNlIHdlIGFkZGVkIEVWRVgxMjggZm9yIGFsbCBFVkVYLXBy b21vdGVkIGluc3RydWN0aW9uIGluIGluc24gdGVtcGxhdGUpLg0KDQoNCg0K Pg0KDQo+ID4gLS0tIGEvb3Bjb2Rlcy9pMzg2LWRpcy1ldmV4LWxlbi5oDQoN Cj4gPiArKysgYi9vcGNvZGVzL2kzODYtZGlzLWV2ZXgtbGVuLmgNCg0KPg0K DQo+IEFzIGZvciB0aGUgZWFybGllciBwYXRjaCwgSSdsbCBsb29rIGF0IHRo ZSBkaXNhc3NlbWJsZXIgY2hhbmdlcyBzZXBhcmF0ZWx5Lg0KDQo+DQoNCj4g PiBAQCAtMTEyMSw2ICsxMTIyLDE1IEBAIHByb2Nlc3NfaTM4Nl9vcGNvZGVf bW9kaWZpZXIgKEZJTEUgKnRhYmxlLA0KDQo+IGNoYXIgKm1vZCwgdW5zaWdu ZWQgaW50IHNwYWNlLA0KDQo+ID4gICAgICAgICBmcHJpbnRmIChzdGRlcnIs DQoNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICIlczogJWQ6IFcgbW9k aWZpZXIgd2l0aG91dCBXb3JkL0R3b3JkL1F3b3JkDQoNCj4gb3BlcmFuZChz KVxuIiwNCg0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUs IGxpbmVubyk7DQoNCj4gPiArICAgICAgaWYgKG1vZGlmaWVyc1tWZXhdLnZh bHVlDQoNCj4gPiArICAgICAgICB8fCAoc3BhY2UgPiBTUEFDRV8wRg0KDQo+ ID4gKyAgICAgICAgICAgICYmICEoc3BhY2UgPT0gU1BBQ0VfRVZFWE1BUDQN Cg0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHx8IG1vZGlmaWVyc1tF VmV4XS52YWx1ZQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfHwg bW9kaWZpZXJzW0Rpc3A4TWVtU2hpZnRdLnZhbHVlDQoNCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICB8fCBtb2RpZmllcnNbQnJvYWRjYXN0XS52YWx1 ZQ0KDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfHwgbW9kaWZpZXJz W01hc2tpbmddLnZhbHVlDQoNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICB8fCBtb2RpZmllcnNbU0FFXS52YWx1ZSkpKQ0KDQo+DQoNCj4gRmlyc3Qg b2YgYWxsLCB0aGlzIHdhbnRzIHNpbXBsaWZ5aW5nIHRvDQoNCj4NCg0KPiAg ICAgICBpZiAobW9kaWZpZXJzW1ZleF0udmFsdWUNCg0KPiAgICAgICAgICAg ICAgfHwgKHNwYWNlID4gU1BBQ0VfMEYNCg0KPiAgICAgICAgICAgICAgICAg ICYmIHNwYWNlICE9IFNQQUNFX0VWRVhNQVA0DQoNCj4gICAgICAgICAgICAg ICAgICAmJiAhbW9kaWZpZXJzW0VWZXhdLnZhbHVlDQoNCj4gICAgICAgICAg ICAgICAgICAmJiAhbW9kaWZpZXJzW0Rpc3A4TWVtU2hpZnRdLnZhbHVlDQoN Cj4gICAgICAgICAgICAgICAgICAmJiAhbW9kaWZpZXJzW0Jyb2FkY2FzdF0u dmFsdWUNCg0KPiAgICAgICAgICAgICAgICAgICYmICFtb2RpZmllcnNbTWFz a2luZ10udmFsdWUNCg0KPiAgICAgICAgICAgICAgICAgICYmICFtb2RpZmll cnNbU0FFXS52YWx1ZSkpDQoNCj4NCg0KPiB3aGljaCBoZWxwcyByZWFkYWJp bGl0eSBhbmQgbWFrZXMgbW9yZSBvYnZpb3VzIHRoYXQgdGhpcyBwYXJhbGxl bHMgdGMtDQoNCj4gaTM4Ni5jOmlzX2V2ZXhfZW5jb2RpbmcoKS4gU3VjaCBh IGNvbm5lY3Rpb24sIHdoZXJlIHVwZGF0ZXMgbmVlZCB0byBiZQ0KDQo+IG1h ZGUgaW4gc3luYywgbmVlZHMgcG9pbnRpbmcgb3V0IGluIGNvZGUgY29tbWVu dHMgYXQgYm90aCBzaXRlcy4NCg0KPg0KDQoNCg0KRG9uZS4NCg0KDQoNCj4g WWV0IG9mIGNvdXJzZSB0aGlzIGNvbmRpdGlvbiB3b24ndCBob2xkIGFueW1v cmUgZm9yIGNvbWJpbmVkIFZFWC9FVkVYDQoNCj4gdGVtcGxhdGVzLg0KDQo+ DQoNCg0KDQpJIHJlYmFzZWQgbWFzdGVyIGFuZCBhcyB5b3UgcHJlZGljdGVk IHRoaXMgZG9lc24ndCB3b3JrLCBvbmUgZW50cnkgY29udGFpbnMgYm90aCBW RVggYW5kIEVWRVgsIFZFWCByZXF1aXJlcyBOb19lZ3ByPTEgYW5kIEVWRVgg cmVxdWlyZXMgTm9fZWdwcj0wLA0KDQpGaW5hbGx5IEkgY2hvc2UgdG8gYWRk ICJOb19lZ3ByPTEiIGZvciBpdC4gQW5kIGFkZGVkIHRoZSBmb2xsb3dpbmcg anVkZ21lbnQgaW4gY2hlY2tfRWdwck9wZXJhbmRzLg0KDQoNCg0KY2hlY2tf RWdwck9wZXJhbmRzIChjb25zdCBpbnNuX3RlbXBsYXRlICp0KQ0KDQp7DQoN Ci0gIGlmICh0LT5vcGNvZGVfbW9kaWZpZXIubm9lZ3ByKQ0KDQppZiAodC0+ b3Bjb2RlX21vZGlmaWVyLm5vZWdwciAmJiAhbmVlZF9ldmV4X2VuY29kaW5n KCkpDQoNCg0KDQo+ID4gKyAgICAgIG1vZGlmaWVyc1tOb19lZ3ByXS52YWx1 ZSA9IDE7DQoNCj4gPiAgICAgIH0NCg0KPg0KDQo+IEFuZCB0aGVuIC0gc2hv dWxkbid0IGF0IGxlYXN0IHBhcnQgb2YgdGhpcyBhbHJlYWR5IGJlIHB1dCBp biBwbGFjZSBpbiBwYXRjaCAxPw0KDQo+DQoNCg0KDQpEb25lIGluIHBhdGNo IDEuDQoNCg0KDQo+IEZpbmFsbHksIHRvIGF2b2lkIHRoZSBzcGxpdCBiZXR3 ZWVuIHdoZXJlIHRoaXMgYXR0cmlidXRlIGdldHMgc2V0LCB3b3VsZG4ndCBp dCBiZQ0KDQo+IHBvc3NpYmxlIHRvIGFsc28gaGFuZGxlIHRoZSBYU0FWRS9Y UlNUT1IgdmFyaWFudHMgaGVyZSByYXRoZXIgdGhhbiBkaXJlY3RseSBpbg0K DQo+IHRoZSBvcGNvZGUgdGFibGU/DQoNCj4NCg0KDQoNCkRvbmUgaW4gcGF0 Y2ggMS4NCg0KDQoNCj4gPiBAQCAtMTg3LDYgKzE4OCw3IEBAIG1vdiwgMHhm MjQsIGkzODZ8Tm82NCwNCg0KPiA+IER8UmVnTWVtfElnbm9yZVNpemV8Tm9f YlN1ZnxOb193U3VmfE5vX3NTdWZ8Tm9fcVN1ZiwgeyBUZQ0KDQo+ID4NCg0K PiA+ICAvLyBNb3ZlIGFmdGVyIHN3YXBwaW5nIHRoZSBieXRlcw0KDQo+ID4g IG1vdmJlLCAweDBmMzhmMCwgTW92YmUsDQoNCj4gRHxNb2RybXxDaGVja09w ZXJhbmRTaXplfE5vX2JTdWZ8Tm9fc1N1Ziwgew0KDQo+ID4gV29yZHxEd29y ZHxRd29yZHxVbnNwZWNpZmllZHxCYXNlSW5kZXgsIFJlZzE2fFJlZzMyfFJl ZzY0IH0NCg0KPiA+ICttb3ZiZSwgMHg2MCwgTW92YmV8QVBYX0Z8eDY0LA0K DQo+ID4gK0R8TW9kcm18Q2hlY2tPcGVyYW5kU2l6ZXxOb19iU3VmfE5vX3NT dWZ8RVZleDEyOHxFVmV4TWFwNCwgew0KDQo+ID4gK1JlZzE2fFJlZzMyfFJl ZzY0fFdvcmR8RHdvcmR8UXdvcmR8VW5zcGVjaWZpZWR8QmFzZUluZGV4LA0K DQo+ID4gK1JlZzE2fFJlZzMyfFJlZzY0IH0NCg0KPg0KDQo+IEluIG5ldyBj b2RlIHBsZWFzZSBvbWl0IHJlZHVuZGFudCBXb3JkLCBEd29yZCwgYW5kIGFs aWtlLg0KDQo+DQoNCg0KDQpEb25lLg0KDQoNCg0KPiBJIGZ1cnRoZXIgd29u ZGVyIGlmIGl0IHdvdWxkbid0IGhlbHAgaWYgaTM4Ni1nZW4gaW5zZXJ0ZWQg dGhlIHg2NCBmb3IgYWxsIEFQWA0KDQo+IHRlbXBsYXRlcywgcmF0aGVyIHRo YW4gb3Blbi1jb2RpbmcgdGhhdCBvbiBldmVyeSBzaW5nbGUgdGVtcGxhdGUu DQoNCj4gT3IgYWx0ZXJuYXRpdmVseSBwdXQNCg0KPg0KDQo+ICNkZWZpbmUg QVBYX0YgQVBYX0Z8eDY0DQoNCj4NCg0KPiBlYXJsaWVyIGluIHRoZSBmaWxl Lg0KDQo+DQoNCg0KDQpEb25lLg0KDQoNCg0KPiA+IEBAIC0zMDAsNiArMzAy LDkgQEAgc2JiLCAweDE4LCAwLA0KDQo+ID4NCg0KPiBSZWc4fFJlZzE2fFJl ZzMyfFJlZzY0fEJ5dGV8V29yZHxEd29yZHxRd29yZHxVbnNwZWNpZmllZHxC YXNlSW5kDQoNCj4gZXggfQ0KDQo+ID4gK25vdCwgMHhmNi8yLCBBUFhfRnx4 NjQsIFd8TW9kcm18Tm9fc1N1ZnxFVmV4MTI4fEVWZXhNYXA0LCB7DQoNCj4g Pg0KDQo+ICtSZWc4fFJlZzE2fFJlZzMyfFJlZzY0fEJ5dGV8V29yZHxEd29y ZHxRd29yZHxVbnNwZWNpZmllZHxCYXNlSW4NCg0KPiBkZXggfQ0KDQo+DQoN Cj4gTG9va2luZyBhdCBqdXN0IHRoZSBhZGRpdGlvbnMgdXAgdG8gaGVyZSwg SSdtIGdldHRpbmcgdGhlIGltcHJlc3Npb24gdGhhdCBpbiB0aGlzDQoNCj4g cGF0Y2ggLSBkZXNwaXRlIGl0cyB0aXRsZSAtIHlvdSBvbmx5IGFkZCBub24t TkQsIG5vbi1ORiBpbnNuIGZvcm1zIGZvcg0KDQo+IHByZXZpb3VzbHkgbm9u LVZFWC1lbmNvZGVkIGluc25zLiBUaGlzIGNvdWxkIGRvIHdpdGggY2xhcmlm eWluZywgYnkgYm90aA0KDQo+IG1ha2luZyB0aGUgdGl0bGUgbW9yZSBjb25j aXNlIGFuZCBieSBzdGF0aW5nIHRoZSBleGFjdCBzY29wZSBvZiB0aGUgd29y ayBkb25lDQoNCj4gaW4gdGhlIGRlc2NyaXB0aW9uLg0KDQo+DQoNCg0KDQpE b25lLg0KDQoNCg0KPiA+IEBAIC0xMzEyLDEzICsxMzMwLDE2IEBAIGdldHNl YywgMHhmMzcsIFNNWCwgTm9TdWYsIHt9DQoNCj4gPg0KDQo+ID4gIGludmVw dCwgMHg2NjBmMzg4MCwgRVBUfE5vNjQsIE1vZHJtfElnbm9yZVNpemV8Tm9T dWYsIHsNCg0KPiA+IE93b3JkfFVuc3BlY2lmaWVkfEJhc2VJbmRleCwgUmVn MzIgfSAgaW52ZXB0LCAweDY2MGYzODgwLCBFUFR8eDY0LA0KDQo+ID4gTW9k cm18Tm9TdWZ8Tm9SZXg2NCwgeyBPd29yZHxVbnNwZWNpZmllZHxCYXNlSW5k ZXgsIFJlZzY0IH0NCg0KPiA+ICtpbnZlcHQsIDB4ZjNmMCwgQVBYX0Z8RVBU fHg2NCwNCg0KPiBNb2RybXxOb1N1ZnxOb1JleDY0fEVWZXgxMjh8RVZleE1h cDQsDQoNCj4gPiAreyBPd29yZHxVbnNwZWNpZmllZHxCYXNlSW5kZXgsIFJl ZzY0IH0NCg0KPiA+ICBpbnZ2cGlkLCAweDY2MGYzODgxLCBFUFR8Tm82NCwg TW9kcm18SWdub3JlU2l6ZXxOb1N1Ziwgew0KDQo+ID4gT3dvcmR8VW5zcGVj aWZpZWR8QmFzZUluZGV4LCBSZWczMiB9ICBpbnZ2cGlkLCAweDY2MGYzODgx LCBFUFR8eDY0LA0KDQo+ID4gTW9kcm18Tm9TdWZ8Tm9SZXg2NCwgeyBPd29y ZHxVbnNwZWNpZmllZHxCYXNlSW5kZXgsIFJlZzY0IH0NCg0KPiA+ICtpbnZ2 cGlkLCAweGYzZjEsIEFQWF9GfEVQVHx4NjQsDQoNCj4gTW9kcm18Tm9TdWZ8 Tm9SZXg2NHxFVmV4MTI4fEVWZXhNYXA0LA0KDQo+ID4gK3sgT3dvcmR8VW5z cGVjaWZpZWR8QmFzZUluZGV4LCBSZWc2NCB9DQoNCj4gPg0KDQo+ID4gIC8v IElOVlBDSUQgaW5zdHJ1Y3Rpb24NCg0KPiA+DQoNCj4gPiAgaW52cGNpZCwg MHg2NjBmMzg4MiwgSU5WUENJRHxObzY0LCBNb2RybXxJZ25vcmVTaXplfE5v U3VmLCB7DQoNCj4gPiBPd29yZHxVbnNwZWNpZmllZHxCYXNlSW5kZXgsIFJl ZzMyIH0gIGludnBjaWQsIDB4NjYwZjM4ODIsDQoNCj4gPiBJTlZQQ0lEfHg2 NCwgTW9kcm18Tm9TdWZ8Tm9SZXg2NCwgeyBPd29yZHxVbnNwZWNpZmllZHxC YXNlSW5kZXgsDQoNCj4gUmVnNjQNCg0KPiA+IH0NCg0KPiA+ICtpbnZwY2lk LCAweGYzZjIsIEFQWF9GfElOVlBDSUR8eDY0LA0KDQo+ID4gK01vZHJtfE5v U3VmfE5vUmV4NjR8RVZleDEyOHxFVmV4TWFwNCwNCg0KPiB7IE93b3JkfFVu c3BlY2lmaWVkfEJhc2VJbmRleCwNCg0KPiA+ICtSZWc2NCB9DQoNCj4NCg0K PiBJIGRvbid0IHRoaW5rIE5vUmV4NjQgYmVsb25ncyBpbiBhbnkgRVZFWCB0 ZW1wbGF0ZS4NCg0KPg0KDQoNCg0KUmVtb3ZlZCBpdCBmcm9tIEFQWF9GIEVW RVggdGVtcGxhdGUuDQoNCg0KDQo+ID4gIGNyYzMyLCAweGYyMGYzOGYwLCBT U0U0XzJ8eDY0LCBXfE1vZHJtfE5vX3dTdWZ8Tm9fbFN1ZnxOb19zU3VmLCB7 DQoNCj4gPiBSZWc4fFJlZzY0fFVuc3BlY2lmaWVkfEJhc2VJbmRleCwgUmVn NjQgfQ0KDQo+ID4gK2NyYzMyLCAweGYwLCBBUFhfRnx4NjQsDQoNCj4gPiAr V3xNb2RybXxOb193U3VmfE5vX2xTdWZ8Tm9fc1N1ZnxFVmV4MTI4fEVWZXhN YXA0LCB7DQoNCj4gPiArUmVnOHxSZWc2NHxVbnNwZWNpZmllZHxCYXNlSW5k ZXgsIFJlZzY0IH0NCg0KPg0KDQo+IFRoZXJlJ3MgcXVpdGUgYSBiaXQgb2Yg bG9naWMgaW4gdGMtaTM4Ni5jIHRvIGdldCBDUkMzMiByaWdodC4gSSB3b25k ZXIgaWYgeW91IGNhbg0KDQo+IHJlYWxseSBnZXQgYXdheSB3aXRob3V0IGFk anVzdGluZyB0aGF0IGxvZ2ljIHRvIGFsc28gdGFrZSBlZmZlY3Qgb24gdGhl IEVWRVgNCg0KPiBlbmNvZGluZ3MuDQoNCj4NCg0KDQoNClRoYW5rcyBmb3Ig cmVtaW5kaW5nLCBjaGVja2VkIGNyYzMyIGxvZ2ljIGluIHRjLWkzODYuYywg aXQgbWFpbmx5IGZvY3VzZXMgb24gYmFzZV9vcGNvZGUgYW5kIGkucmV4IFcg Yml0LCBmb3IgYmFzZV9vcGNvZGUgcGFydCB3ZSBjYW4gLCBmb3IgaS5yZXgu dyBiaXQsIHdlIG5lZWQgYXBwbHkgaXQgdG8gZXZleC53IGJpdCwNCg0KRm9y IGNyYzMyIGNhc2Ugd2UgdXNlIGVsc2UgYW5kIEFQWF9GIG9ubHkgc3VwcG9y dHMgNjQgYml0IG1vZGUsIGl0IGNhbiBtYWtlIHN1cmUgd2UgdXNlIGkucmV4 ICYgUkVYX1cgZm9yIGV2ZXgudy4gIGFuZCBhZGRlZCBzb21lIG5ldyB0ZXN0 IGNhc2UgdG8gbWFrZSBzdXJlIGVuY29kZSBpcyByaWdodC4NCg0KDQoNClRo YW5rcyBmb3IgdGhlIHJlbWluZGVyLiBJIGNoZWNrZWQgdGhlIGNyYzMyIGxv Z2ljIGluIHRjLWkzODYuYywgbWFpbmx5IGZvY3VzaW5nIG9uIHRoZSBiYXNl X29wY29kZSBhbmQgaS5yZXggVyBiaXRzLiBGb3IgdGhlIGJhc2Vfb3Bjb2Rl IHBhcnQsIHdlIGNhbiBpbmhlcml0IGl0LiBGb3IgdGhlIGkucmV4LncgYml0 LCB3ZSBuZWVkIHRvIGFwcGx5IGl0IHRvIHRoZSBldmV4LncgYml0LiAsDQoN CkZvciB0aGUgZm9sbG93aW5nIGNvZGUgaW4gYnVpbGRfZXZleF9wcmVmaXgo KSwgY3JjMzIgdGFrZXMgdGhlIGVsc2UgYnJhbmNoIGFuZCBBUFhfRiBvbmx5 IHN1cHBvcnRzIDY0IGJpdCBtb2RlLCBpdCBjYW4gZW5zdXJlcyB3ZSB1c2Ug aS5yZXgudyBmb3IgZXZleC53LiAgQW5kIGFkZGVkIHNvbWUgbmV3IHRlc3Qg Y2FzZXMgdG8gZW5zdXJlIGNvcnJlY3QgZW5jb2RpbmcuDQoNCg0KDQogIC8q IENoZWNrIHRoZSBSRVguVyBiaXQgYW5kIFZFWFcuICAqLw0KDQogIGlmIChp LnRtLm9wY29kZV9tb2RpZmllci52ZXh3ID09IFZFWFdJRykNCg0KICAgIHcg PSAoZXZleHdpZyA9PSBldmV4dzEgfHwgKGkucmV4ICYgUkVYX1cpKSA/IDEg OiAwOw0KDQogIGVsc2UgaWYgKGkudG0ub3Bjb2RlX21vZGlmaWVyLnZleHcp DQoNCiAgICB3ID0gaS50bS5vcGNvZGVfbW9kaWZpZXIudmV4dyA9PSBWRVhX MSA/IDEgOiAwOw0KDQogIGVsc2UNCg0KICAgIHcgPSAoZmxhZ19jb2RlID09 IENPREVfNjRCSVQgPyBpLnJleCAmIFJFWF9XIDogZXZleHdpZyA9PSBldmV4 dzEpID8gMSA6IDA7DQoNCg0KDQorICAgICAgY3JjMzJxICAlcjMxLCAlcjIy DQoNCisgICAgICBjcmMzMnEgICglcjMxKSwgJXIyMg0KDQorICAgICAgY3Jj MzJiICAlcjE5YiwgJXIxNw0KDQorICAgICAgY3JjMzJiICAlcjE5YiwgJXIy MWQNCg0KKyAgICAgIGNyYzMyYiAoJXIxOSksJWVieA0KDQorICAgICAgY3Jj MzJsICAlcjMxZCwgJXIyM2QNCg0KKyAgICAgIGNyYzMybCAgKCVyMzEpLCAl cjIzZA0KDQorICAgICAgY3JjMzJ3ICAlcjMxdywgJXIyMWQNCg0KKyAgICAg IGNyYzMydyAoJXIzMSksJXIyMWQNCg0KKyAgICAgIGNyYzMyICAgJXJheCwg JXIxOA0KDQo+ID4gQEAgLTM0MDgsMyArMzQ4Nyw0IEBAIGVyZXRzLCAweGYy MGYwMWNhLCBGUkVEfHg2NCwgTm9TdWYsIHt9ICBlcmV0dSwNCg0KPiA+IDB4 ZjMwZjAxY2EsIEZSRUR8eDY0LCBOb1N1Ziwge30NCg0KPiA+DQoNCj4gPiAg Ly8gRlJFRCBpbnN0cnVjdGlvbnMgZW5kLg0KDQo+ID4gKw0KDQo+DQoNCj4g Tml0OiBTdHJheSBjaGFuZ2UuDQoNCg0KDQpEb25lLg0KDQoNCg0KVGhhbmtz LA0KDQpMaWxpLg0K --_000_SJ0PR11MB56008D045F483814CCBB895E9ED6ASJ0PR11MB5600namp_--