From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web09.3129.1662489645416973219 for ; Tue, 06 Sep 2022 11:40:46 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=ZtZN7wKy; spf=permerror, err=too many SPF records (domain: intel.com, ip: 192.55.52.88, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1662489645; x=1694025645; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=lxge+KNiZ/jXbCEl9R2AQ+oE0zKfCFsSbrMXDaQIIoY=; b=ZtZN7wKyRrMjhRC3ima3LypBb2x1pmULlfasUQLSl725UyK6etTqXWxC 6i8gFK5A7PE7BsWZR/L0YAM+rviNz6RoDTO7CmTb/n+J0LyyE2WZtuSV1 CEC1ybj8L0iGbuLUHzV/N+J9h6TM/n+77LDpssCKWoE3gguvQ5L9vIbjS 6Jr+Sr+hfZkQum+/dylYym9rE1kkyfasl2JfEr0b/CgCqrOqLJn5EiAbz g2a6LxrbtkQYYNiAvOLA2EaAGVx5rB+pFHuc9QsPRlz6SJTSYmhtSk4B0 pO3wrhz0hAHQ+cZ67bEslZaQHMPXg+jzBTZJE3E3bhbf9xRZDt8UhXj1U A==; X-IronPort-AV: E=McAfee;i="6500,9779,10462"; a="322854070" X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="322854070" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Sep 2022 11:40:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.93,294,1654585200"; d="scan'208";a="616800653" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga007.fm.intel.com with ESMTP; 06 Sep 2022 11:40:44 -0700 Received: from fmsmsx608.amr.corp.intel.com (10.18.126.88) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Tue, 6 Sep 2022 11:40:44 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx608.amr.corp.intel.com (10.18.126.88) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Tue, 6 Sep 2022 11:40:44 -0700 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (104.47.55.169) 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.2375.31; Tue, 6 Sep 2022 11:40:43 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CJ4yz2dM4Wg8to0CKjEy6hYjnziGGvVmb3ukq4J4iQHqvmEZnuDf6dkqHVXZJ9MTS4AjXOAjp3JGsVbhXqDyhworwawdb4LWqYa28QkepTs2ZzRWQnerlLUcU6N9quWq4fPJ5ay5+eBsiaR/gTsOe0dasOdQ3PVOcKKKo7Viu1uU9LjOj8kStYXwLvMvEl+azb0OQB963fZoP+krUOfpdZg8ggeeXdHcCe7LmJ62mo63Ibo9YEx80Y5mgU/zrj5rbAwvFTBGQQK+7MasB4K2Nb68CKSXO0mbQNTR8tjr/BQzW8A0M2qVeiE1sIJy5SLKTf85dlYJNbJ3mfco1goLTA== 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=lxge+KNiZ/jXbCEl9R2AQ+oE0zKfCFsSbrMXDaQIIoY=; b=V75AjvRSB+12h/hGrlre8i7MoUp2TP3LdpziVcafbN/1xNdaDBGV0DaNBr5TQ+NWw8EA7wgaaHGt461S/5PyjBH7yVL+/Im9ie4N3prIIizGyU7V9hlXIlh28t1RjQJMbMnL0jktT9cr2VGm2tem85H2WNGe8L4Ejij6aXQe0z/qL+CgR9ZgqwyQSWXKXrxBlzoqgNKDfnFdAOBfAjGL1xABxaltLKtF+8vqlY8HokApEYEo1rKP+aIJFhL3BpQQ0M0zGDQnajpKzdMXkmrHv4sfm2dW468B0E8ZzKtjIXvx710USb7avDyMEV3/x+tEfyLciAdWFrMrDCfCvSb8Ag== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by DM5PR11MB1850.namprd11.prod.outlook.com (2603:10b6:3:112::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.17; Tue, 6 Sep 2022 18:40:39 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::1c59:c1de:5a13:a5fb]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::1c59:c1de:5a13:a5fb%8]) with mapi id 15.20.5588.018; Tue, 6 Sep 2022 18:40:38 +0000 From: "Michael D Kinney" To: Rebecca Cran , "devel@edk2.groups.io" , "Gao, Liming" , "Liu, Zhiguang" , Andrew Fish , "Kinney, Michael D" Subject: Re: [PATCH v3 1/1] MdePkg: Use ANSI colors to indicate debug message severity Thread-Topic: [PATCH v3 1/1] MdePkg: Use ANSI colors to indicate debug message severity Thread-Index: AQHYvr5+YTBz9echiEKTiRQPY0efM63SwXHQ Date: Tue, 6 Sep 2022 18:40:38 +0000 Message-ID: References: <20220902112322.203555-1-rebecca@quicinc.com> <20220902112322.203555-2-rebecca@quicinc.com> In-Reply-To: <20220902112322.203555-2-rebecca@quicinc.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.500.17 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9766c83b-a6a2-4cbe-1e15-08da90374b61 x-ms-traffictypediagnostic: DM5PR11MB1850:EE_ 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: 1R/qQAkdzeS9uz/UAPeYpK4SwgDwyn6NHiH/uX23iXlNSGIICIksiNYbWwep8faGrRJcMYajH/oabusejvL8ZZqXo1boXS33vP3GMZRORMFZE4v+iqewo6bjKcEdmBO/6N4M+SSjCKi7a+SfGpAFlMWElECMytdSAHxrDTGkwiofiQM6cPM6viD6ZJAEQ/+iC7VGdJkzynVEssYb8J3hgz1uhvBTnWVgdWqWoE3QCalyOXkO0vRRr4eoBoBX8XvGQxjHMGaeDIxCTBdIL5WzAKGarf6p8xiJgLA/7jrSA14pAhx2wN68uRaXsLFTcxmmhaDJa2aBv0Smp4ubhjnzJVULZaqISQqg/CM14ZrnyEbIiODyu5G/FeFCwetxJFGHrBQ7yxMZz7ftD0uM6ylqfEg7TrcelJyoIUH0C3Cra23BaoMHplCiAfNpzxhDnjl0keY3N5teDy+Rn9B3Ntc8ajO7wZw/uMjUGWAQssvFHjrfTjvHwAQCG+3mHmeD7wIDGZ9Qytr2Y7MypRztAaT8wuDrLY30xr3ycSVbSBMnE3X2X0DvB827C0GU/SER+FccOWJZEqqEnTmTT8Jv6aVxVzh7w9TY6E5rF7aB+osnHzNhSqV/SYk2MuzON2AXrp3XB79SZyyMbl7jDILMUyexjx/+gQhl96nxB4yM0vegihUWhbkx31X1POSyHsaXBL30KE7fUhHrX0jUhCncxeGTYfMrPyP84XY/Ef1qjY6jDbLCgslwxB5fBDzqGhT6sj3eZGKVGdxbJjV+gv/9BF+XHw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(136003)(346002)(396003)(376002)(39860400002)(366004)(6506007)(53546011)(9686003)(122000001)(26005)(5660300002)(30864003)(186003)(52536014)(8936002)(2906002)(86362001)(33656002)(478600001)(7696005)(71200400001)(41300700001)(38070700005)(82960400001)(66556008)(66946007)(64756008)(66476007)(8676002)(66446008)(76116006)(55016003)(110136005)(15650500001)(316002)(83380400001)(38100700002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RFdNQ0tTZmF2c2FOYzY4SjRkZ25RVGFGVDBiaGt4eFUvNjBjK0RSbW53UDYv?= =?utf-8?B?OHZwbksxcjIrUEtqQXIwWFJPNWNKckdRY3V4RFVab0pYYUlCNEc2a05YMGRB?= =?utf-8?B?amM5R253TXJldUtxQngxbG1pVDc4WnNLQ1V0MDVla2dBaHVOak5PdURvcC84?= =?utf-8?B?NU5uRFBSaVYrSmMvUnZGaUN1MHdlZ1JFSlJEY3NlOG9zZmUzZjZzVkwrc2tP?= =?utf-8?B?NGpXWFNUTGdyM0JqSldtdFZuanZnV1QrekRMa2kvbzAxUGZKTFYra2d6TjJN?= =?utf-8?B?ZXVGQko5dm5zcENQOUwzVjl5THVWcmFqMldjaTgwclp5YXFDVzZpcGJ2Y0N6?= =?utf-8?B?WWIxUDN0S3htRzh2OXp6VkVYTlFDb3ovWU53V2NJVEZlYnUvdkFFUEpSMjFq?= =?utf-8?B?S3RKYUpldnFCNGdCbDFzSUdZMzM3MXF3SXduSk9Hbmk0SlNOU2lJcXQxbFJT?= =?utf-8?B?aUV0SjJld3NMa2tkaWVSSSs2eG5SemdOV0VXRmJldTFLem9nQjA3cUZ6V01O?= =?utf-8?B?WVYrNkU4aUpzVno5R2g0MW9QNlo1bVBPZDR3TUZXb0tFU0I1eUFTNzhFbDNJ?= =?utf-8?B?VGdOb2I4Rjg1OGQ4SnZHd0poM3FSQUpQU2EwdGJIcU1rcnZRR0plS2F4YU10?= =?utf-8?B?RStUOGJaVUdUTFZJMVZPc1ZVWTJRZUdoeXJDM1NQRkdpb1l4YVUyUTNkTDVS?= =?utf-8?B?T0dQMGs5NjRjcTlBbkV4RFVDeDhrUmRqTmRzMThoNnBET3h6ZmJQYkE5RWJp?= =?utf-8?B?QkJDbE9oQlRUK0JKOUdmdzVsRzRibEMyTFgvNVpxY25SNDFuS3cwNHRxblZw?= =?utf-8?B?MG1uaDFxZFp5ai9YeWh5QWhGSnZXQVhKQVExbXVWNFhqclJJMGIxRVNHQ2N0?= =?utf-8?B?c3dRNm84ZEpwSDlCNmxnT0s2bjVsMlVlY0hZcCsxRjNwK1N6ZG1DOFFTd2M2?= =?utf-8?B?WjVENW5RVmlZSGNrd2E1TFMvd1B6T0pMMmhBU3R1T09aRTdNeitHSFRaMFlP?= =?utf-8?B?dzA5NERaUFcyMGVrS241MW5pMTNOTGRMcTAzb1QyWXowMW81Ui9lbUUzYlQz?= =?utf-8?B?OTlVKzF6Z1JWRlZtSEwrRXVXaXZYTGJOSFpTTlRCaHZWY0JqOEtiRjJ6M2lU?= =?utf-8?B?WlEyL0VjUEU1SEhYeE5WNzk1VW4rSnZESVNpb0haL2FFZjNKdGN3aFU3UjYy?= =?utf-8?B?UFFaTWdqZVF3NCtmQ25HSlNsM09COGkvb0EwbHhoa3NSenZtSmdGMW50Ykt4?= =?utf-8?B?UXMyakdKdGlXOWZXUnpqNnhqQllXVVZkRmgxKzk4Z25EOUZNU1VVWTBtMUpG?= =?utf-8?B?Mlc1aHcvVFhQTXV5cnN6c2FkbERPRjVDVWNOREU4VEovUkdGZGE0N3BmNGNY?= =?utf-8?B?ODNpdHp1KzRnZG96TEFQbU5ESFA0L0h4M2hiRDR1WkFLQzhoYnkrRHl0MEo5?= =?utf-8?B?SkRveTRISnpYeFVMMTlXdDZ1dEVOS2wyMlpNNWtTRzdyRFZKR1B2a2U4WGZV?= =?utf-8?B?SndNMkcwMUttbWoydXYyQ1lOenc0Y2RrSkJLZ2ZvSkFtRFJNdlVWSnBIZmxZ?= =?utf-8?B?NGh4VnprTEFDZUV0bDdPcTE3N21mc2NMZkpYUVllQTJOYnV4cWMxWXhkZFl0?= =?utf-8?B?ejBTa1dlUUthOGp0NUF4MWU2dVcxbkJrNEFLbGV6WnBZUFJ2anRvdUd5QTZo?= =?utf-8?B?T2dRYlhnZXdjMk5UM1QrbzMvWjhCWEV6a2k2dHV5ZTdFa0RLSjVEbU9pem44?= =?utf-8?B?UlBWV08yTHN3WmQ0ZitEamtrR3JhVzFOellRUmhQVHQ0Y0JMaWQwOEFVcFVH?= =?utf-8?B?RWdPUmd6UzZkRWNVNTBDcW9pdHFRT3g5RzgwZmN3aHpuMTRadGJ4TnRGNzFw?= =?utf-8?B?TU51bmk2Mnk1Vktrck9DeC83Qm5lVy9oMTRHZ1B0ZmJ5MHRma2VMU1B2bTVD?= =?utf-8?B?VkFKcVR1bnA0Q3Z3clZ2dE96bm5oUXNTLzI5SHBHMCszSmVjdXpiNDlEalI4?= =?utf-8?B?c2Q2YzRCVVFFcjlEMUI1N0tISDB3VjRjNmhpYnlUTFA1NnM3VVhnUFAwUGJN?= =?utf-8?B?U0NYMVYwVmg2cHpNcWQ3dTBJNzBlUlVBU1BTWkMrdGcvVElwb05DWDFGVm5S?= =?utf-8?B?SHNvVVI4Nko0QnErcHJXMW13ekNEelJqRG43UzJ5bzBEdlNleG02clpadnk4?= =?utf-8?B?bnc9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9766c83b-a6a2-4cbe-1e15-08da90374b61 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Sep 2022 18:40:38.8134 (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: fTUGQ8EFrZZn1Uhkaj8Zt2xMLsuZxTyqFWOZVcDmtNyTFzE5wTpKmhrECAk3q+gr1cxRXxKFt3ACMxlCUCAhJ97gHdWEjTnEM0DcHpWLeIM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1850 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmViZWNjYSwNCg0KQmFzZVByaW50TGliIGlzIHVzZWQgZm9yIG11Y2ggbW9yZSB0aGFuIGp1c3Qg REVCVUcoKSBtYWNyb3MuICBUaGlzIGZlYXR1cmVzIHNob3VsZA0Kbm90IG1vZGlmeSB0aGUgYmVo YXZpb3Igb2YgQmFzZVByaW50TGliLg0KDQpGb3IgZXhhbXBsZSwgYSBzaW5nbGUgbW9kdWxlIHRo YXQgbGlua3MgdG8gQmFzZVByaW50TGliIGNhbiB1c2UgdGhvc2Ugc2VydmljZXMNCmZvciBub24g RGVidWdMaWIgc2VydmljZXMgd2l0aCBubyBleHBlY3RhdGlvbiB0aGF0IEFOU0kgc2VxdWVuY2Vz IGFyZSBhZGRlZA0KYW5kIHRoYXQgc2FtZSBtb2R1bGUgY2FuIGxpbmsgYWdhaW5zdCBEZWJ1Z0xp YiBmb3IgREVCVUcoKSBtYWNybyBzdXBwb3J0IHRoYXQNCmV4cGVjdHMgQU5TSSBzZXF1ZW5jZXMg dG8gYmUgYWRkZWQuICBUaGlzIGlzIGEgY29uZmxpY3QuDQoNClRoZSBzY29wZSBvZiB0aGlzIGNo YW5nZSBzaG91bGQgYmUgb25seSB0aGUgRGVidWdMaWIgaW5zdGFuY2UuDQoNCk1pa2UNCg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FA cXVpY2luYy5jb20+DQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDIsIDIwMjIgNDoyMyBBTQ0K PiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+ OyBMaXUsDQo+IFpoaWd1YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPjsgQW5kcmV3IEZpc2gg PGFmaXNoQGFwcGxlLmNvbT4NCj4gQ2M6IFJlYmVjY2EgQ3JhbiA8cmViZWNjYUBxdWljaW5jLmNv bT4NCj4gU3ViamVjdDogW1BBVENIIHYzIDEvMV0gTWRlUGtnOiBVc2UgQU5TSSBjb2xvcnMgdG8g aW5kaWNhdGUgZGVidWcgbWVzc2FnZSBzZXZlcml0eQ0KPiANCj4gVGhlcmUgY3VycmVudGx5IGlz bid0IGEgd2F5IHRvIGRpZmZlcmVudGlhdGUgdGhlIGRpZmZlcmVudA0KPiBsZXZlbHMgb2YgREVC VUcgb3V0cHV0OiBERUJVR19FUlJPUiwgREVCVUdfV0FSTiwgREVCVUdfSU5GTw0KPiBldGMuDQo+ IA0KPiBUbyBpbXByb3ZlIHRoaXMsIHdyYXAgREVCVUdfRVJST1IgYW5kIERFQlVHX1dBUk4gbGV2 ZWwNCj4gbWVzc2FnZXMgaW4gQU5TSSBjb2xvciBjb2RlIGVzY2FwZSBzZXF1ZW5jZXMuIERFQlVH X0VSUk9SDQo+IG1lc3NhZ2VzIHdpbGwgYmUgZGlzcGxheWVkIGluIHJlZCB0ZXh0LCBhbmQgREVC VUdfV0FSTg0KPiBpbiB5ZWxsb3cuDQo+IA0KPiBPbmx5IGVuYWJsZSB0aGlzIG5ldyBmdW5jdGlv bmFsaXR5IGlmIHRoZSBGZWF0dXJlRmxhZw0KPiBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNk RGVidWdBbnNpU2VxU3VwcG9ydA0KPiBpcyBzZXQgdG8gVFJVRS4gQnkgZGVmYXVsdCBpdCdzIEZB TFNFLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogUmViZWNjYSBDcmFuIDxyZWJlY2NhQHF1aWNpbmMu Y29tPg0KPiAtLS0NCj4gIE1kZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKw0KPiAgTWRlUGtnL01kZVBrZy5kc2MgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQo+ICBN ZGVQa2cvTGlicmFyeS9CYXNlRGVidWdMaWJTZXJpYWxQb3J0L0Jhc2VEZWJ1Z0xpYlNlcmlhbFBv cnQuaW5mIHwgICAyICstDQo+ICBNZGVQa2cvTGlicmFyeS9VZWZpRGVidWdMaWJDb25PdXQvVWVm aURlYnVnTGliQ29uT3V0LmluZiAgICAgICAgIHwgICAyICstDQo+ICBNZGVQa2cvSW5jbHVkZS9M aWJyYXJ5L1ByaW50TGliLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICsr KysrKw0KPiAgTWRlUGtnL0xpYnJhcnkvQmFzZURlYnVnTGliU2VyaWFsUG9ydC9EZWJ1Z0xpYi5j ICAgICAgICAgICAgICAgICB8ICAgNCArDQo+ICBNZGVQa2cvTGlicmFyeS9CYXNlUHJpbnRMaWIv UHJpbnRMaWIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTI4ICsrKysrKysrKysrKysr KysrKysrDQo+ICBNZGVQa2cvTGlicmFyeS9VZWZpRGVidWdMaWJDb25PdXQvRGVidWdMaWIuYyAg ICAgICAgICAgICAgICAgICAgIHwgICA0ICsNCj4gIDggZmlsZXMgY2hhbmdlZCwgMTg1IGluc2Vy dGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL01kZVBr Zy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPiBpbmRleCBmMWViZjllMjUxYzEuLjAwYjUwY2Vk ZDUxMCAxMDA2NDQNCj4gLS0tIGEvTWRlUGtnL01kZVBrZy5kZWMNCj4gKysrIGIvTWRlUGtnL01k ZVBrZy5kZWMNCj4gQEAgLTQsNiArNCw3IEBADQo+ICAjIEl0IGFsc28gcHJvdmlkZXMgdGhlIGRl ZmluaXRpb25zKGluY2x1ZGluZyBQUElzL1BST1RPQ09Mcy9HVUlEcykgb2YNCj4gICMgRUZJMS4x MC9VRUZJMi43L1BJMS43IGFuZCBzb21lIEluZHVzdHJ5IFN0YW5kYXJkcy4NCj4gICMNCj4gKyMg Q29weXJpZ2h0IChjKSAyMDIyLCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwg cmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgQ29weXJpZ2h0IChjKSAyMDA3IC0gMjAyMiwgSW50 ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPiAgIyBQb3J0aW9ucyBj b3B5cmlnaHQgKGMpIDIwMDggLSAyMDA5LCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPiAgIyAoQykgQ29weXJpZ2h0IDIwMTYgLSAyMDIxIEhld2xldHQgUGFja2FyZCBFbnRl cnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiBAQCAtMTk3Myw2ICsxOTc0LDExIEBAIFtQY2Rz RmVhdHVyZUZsYWddDQo+ICAgICMgQFByb21wdCBWYWxpZGF0ZSBPUkRFUkVEX0NPTExFQ1RJT04g c3RydWN0dXJlDQo+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RWYWxpZGF0ZU9yZGVy ZWRDb2xsZWN0aW9ufEZBTFNFfEJPT0xFQU58MHgwMDAwMDAyYQ0KPiANCj4gKyAgIyMgSW5kaWNh dGVzIGlmIERFQlVHIG91dHB1dCBzaG91bGQgdXNlIEFOU0kgc2VxdWVuY2VzLjxCUj48QlI+DQo+ ICsgICMgICBUUlVFICAtIFdpbGwgdXNlIEFOU0kgc2VxdWVuY2VzIGluIERFQlVHIG91dHB1dC48 QlI+DQo+ICsgICMgICBGQUxTRSAtIFdpbGwgbm90IHVzZSBBTlNJIHNlcXVlbmNlcyBpbiBERUJV RyBvdXRwdXQuPEJSPg0KPiArICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRGVidWdBbnNp U2VxU3VwcG9ydHxGQUxTRXxCT09MRUFOfDB4MDAwMDAwMmYNCj4gKw0KPiAgW1BjZHNGaXhlZEF0 QnVpbGRdDQo+ICAgICMjIFN0YXR1cyBjb2RlIHZhbHVlIGZvciBpbmRpY2F0aW5nIGEgd2F0Y2hk b2cgdGltZXIgaGFzIGV4cGlyZWQuDQo+ICAgICMgRUZJX0NPTVBVVElOR19VTklUX0hPU1RfUFJP Q0VTU09SIHwgRUZJX0NVX0hQX0VDX1RJTUVSX0VYUElSRUQNCj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9NZGVQa2cuZHNjIGIvTWRlUGtnL01kZVBrZy5kc2MNCj4gaW5kZXggY2MxYWMxOTZhOTMxLi4x ZWNiZTY1MjZhYzkgMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9NZGVQa2cuZHNjDQo+ICsrKyBiL01k ZVBrZy9NZGVQa2cuZHNjDQo+IEBAIC0xLDYgKzEsNyBAQA0KPiAgIyMgQGZpbGUNCj4gICMgRUZJ L1BJIE1kZVBrZyBQYWNrYWdlDQo+ICAjDQo+ICsjIENvcHlyaWdodCAoYykgMjAyMiwgUXVhbGNv bW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAj IENvcHlyaWdodCAoYykgMjAwNyAtIDIwMjIsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4gICMgUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDA4IC0gMjAwOSwg QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICMgKEMpIENvcHlyaWdodCAy MDIwIEhld2xldHQgUGFja2FyZCBFbnRlcnByaXNlIERldmVsb3BtZW50IExQPEJSPg0KPiBAQCAt MjUsNiArMjYsNyBAQCBbRGVmaW5lc10NCj4gDQo+ICBbUGNkc0ZlYXR1cmVGbGFnXQ0KPiAgICBn RWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVWdhQ29uc3VtZVN1cHBvcnR8VFJVRQ0KPiArICBn RWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRGVidWdBbnNpU2VxU3VwcG9ydHxGQUxTRQ0KDQpU aGUgREVDIGRlZmF1bHQgdmFsdWUgaXMgRkFMU0UsIHNvIHRoaXMgbGluZSBpcyBub3QgcmVxdWly ZWQuDQoNCj4gDQo+ICBbUGNkc0ZpeGVkQXRCdWlsZF0NCj4gICAgZ0VmaU1kZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZERlYnVnUHJvcGVydHlNYXNrfDB4MGYNCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9M aWJyYXJ5L0Jhc2VEZWJ1Z0xpYlNlcmlhbFBvcnQvQmFzZURlYnVnTGliU2VyaWFsUG9ydC5pbmYN Cj4gYi9NZGVQa2cvTGlicmFyeS9CYXNlRGVidWdMaWJTZXJpYWxQb3J0L0Jhc2VEZWJ1Z0xpYlNl cmlhbFBvcnQuaW5mDQo+IGluZGV4IDc1MDRmYWVlNjdmMC4uOGQ2ZWQ3NTllOTc0IDEwMDY0NA0K PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlRGVidWdMaWJTZXJpYWxQb3J0L0Jhc2VEZWJ1Z0xp YlNlcmlhbFBvcnQuaW5mDQo+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VEZWJ1Z0xpYlNlcmlh bFBvcnQvQmFzZURlYnVnTGliU2VyaWFsUG9ydC5pbmYNCj4gQEAgLTQxLDQgKzQxLDQgQEAgW1Bj ZF0NCj4gICAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnQ2xlYXJNZW1vcnlWYWx1 ZSAgIyMgU09NRVRJTUVTX0NPTlNVTUVTDQo+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5Q Y2REZWJ1Z1Byb3BlcnR5TWFzayAgICAgICMjIENPTlNVTUVTDQo+ICAgIGdFZmlNZGVQa2dUb2tl blNwYWNlR3VpZC5QY2RGaXhlZERlYnVnUHJpbnRFcnJvckxldmVsICMjIENPTlNVTUVTDQo+IC0N Cj4gKyAgZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZERlYnVnQW5zaVNlcVN1cHBvcnQgICAg ICAgIyMgQ09OU1VNRVMNCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlEZWJ1Z0xp YkNvbk91dC9VZWZpRGVidWdMaWJDb25PdXQuaW5mDQo+IGIvTWRlUGtnL0xpYnJhcnkvVWVmaURl YnVnTGliQ29uT3V0L1VlZmlEZWJ1Z0xpYkNvbk91dC5pbmYNCj4gaW5kZXggNTNiYmM4Y2UzZjY1 Li42OTQ0OTRmZmM3YTMgMTAwNjQ0DQo+IC0tLSBhL01kZVBrZy9MaWJyYXJ5L1VlZmlEZWJ1Z0xp YkNvbk91dC9VZWZpRGVidWdMaWJDb25PdXQuaW5mDQo+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L1Vl ZmlEZWJ1Z0xpYkNvbk91dC9VZWZpRGVidWdMaWJDb25PdXQuaW5mDQo+IEBAIC01MCw0ICs1MCw0 IEBAIFtQY2RdDQo+ICAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2REZWJ1Z0NsZWFyTWVt b3J5VmFsdWUgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUw0KPiAgICBnRWZpTWRlUGtnVG9r ZW5TcGFjZUd1aWQuUGNkRGVidWdQcm9wZXJ0eU1hc2sgICAgICAgICAgICAjIyBDT05TVU1FUw0K PiAgICBnRWZpTWRlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRml4ZWREZWJ1Z1ByaW50RXJyb3JMZXZl bCAgICAjIyBDT05TVU1FUw0KPiAtDQo+ICsgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RE ZWJ1Z0Fuc2lTZXFTdXBwb3J0ICAgICAgICAgICMjIENPTlNVTUVTDQo+IGRpZmYgLS1naXQgYS9N ZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1ByaW50TGliLmggYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5 L1ByaW50TGliLmgNCj4gaW5kZXggOGQ1MjNjYWM1MjhkLi4wNmQ5NzYxZGY4OTcgMTAwNjQ0DQo+ IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUHJpbnRMaWIuaA0KPiArKysgYi9NZGVQa2cv SW5jbHVkZS9MaWJyYXJ5L1ByaW50TGliLmgNCj4gQEAgLTIsNiArMiw3IEBADQo+ICAgIFByb3Zp ZGVzIHNlcnZpY2VzIHRvIHByaW50IGEgZm9ybWF0dGVkIHN0cmluZyB0byBhIGJ1ZmZlci4gQWxs IGNvbWJpbmF0aW9ucyBvZg0KPiAgICBVbmljb2RlIGFuZCBBU0NJSSBzdHJpbmdzIGFyZSBzdXBw b3J0ZWQuDQo+IA0KPiArQ29weXJpZ2h0IChjKSAyMDIyLCBRdWFsY29tbSBJbm5vdmF0aW9uIENl bnRlciwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gIENvcHlyaWdodCAoYykgMjAw NiAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4g IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+IA0KPiBAQCAt OTMxLDQgKzkzMiw0MiBAQCBTUHJpbnRMZW5ndGhBc2NpaUZvcm1hdCAoDQo+ICAgIElOICBWQV9M SVNUICAgICAgTWFya2VyDQo+ICAgICk7DQo+IA0KPiArLyoqDQo+ICsgIFdyYXBzIGEgbWVzc2Fn ZSB3aXRoIEFOU0kgY29sb3IgZXNjYXBlIGNvZGVzLg0KPiArDQo+ICsgIEBwYXJhbSBTdHJpbmcg ICAgIFRoZSBzdHJpbmcgdG8gd3JhcC4NCj4gKyAgQHBhcmFtIFN0cmluZ0xlbiAgVGhlIHNpemUg b2YgdGhlIFN0cmluZyBidWZmZXIgaW4gY2hhcmFjdGVycy4NCj4gKyAgQHBhcmFtIEVycm9yTGV2 ZWwgVGhlIGVycm9yIGxldmVsLg0KPiArDQo+ICsgIEByZXR2YWwgUkVUVVJOX1NVQ0NFU1MgICAg ICAgICAgVGhlIHN0cmluZyB3YXMgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQuDQo+ICsgIEByZXR2YWwg UkVUVVJOX0JVRkZFUl9UT09fU01BTEwgVGhlIGJ1ZmZlciBpcyB0b28gc21hbGwuDQo+ICsNCj4g KyoqLw0KPiArUkVUVVJOX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtBc2NpaURlYnVnR2V0Q29sb3JT dHJpbmcgKA0KPiArICBJTiBPVVQgQ0hBUjggICpTdHJpbmcsDQo+ICsgIElOIFVJTlROICAgICAg U3RyaW5nTGVuLA0KPiArICBJTiBVSU5UTiAgICAgIEVycm9yTGV2ZWwNCj4gKyAgKTsNCj4gKw0K PiArLyoqDQo+ICsgIFdyYXBzIGEgbWVzc2FnZSB3aXRoIEFOU0kgY29sb3IgZXNjYXBlIGNvZGVz Lg0KPiArDQo+ICsgIEBwYXJhbSBTdHJpbmcgICAgIFRoZSBzdHJpbmcgdG8gd3JhcC4NCj4gKyAg QHBhcmFtIFN0cmluZ0xlbiAgVGhlIHNpemUgb2YgdGhlIFN0cmluZyBidWZmZXIgaW4gVW5pY29k ZSBjaGFyYWN0ZXJzLg0KPiArICBAcGFyYW0gRXJyb3JMZXZlbCBUaGUgZXJyb3IgbGV2ZWwuDQo+ ICsNCj4gKyAgQHJldHZhbCBSRVRVUk5fU1VDQ0VTUyAgICAgICAgICBUaGUgc3RyaW5nIHdhcyBz dWNjZXNzZnVsbHkgdXBkYXRlZC4NCj4gKyAgQHJldHZhbCBSRVRVUk5fQlVGRkVSX1RPT19TTUFM TCBUaGUgYnVmZmVyIGlzIHRvbyBzbWFsbC4NCj4gKw0KPiArKiovDQo+ICtSRVRVUk5fU1RBVFVT DQo+ICtFRklBUEkNCj4gK1VuaWNvZGVEZWJ1Z0dldENvbG9yU3RyaW5nICgNCj4gKyAgSU4gT1VU IENIQVIxNiAgKlN0cmluZywNCj4gKyAgSU4gVUlOVE4gICAgICAgU3RyaW5nTGVuLA0KPiArICBJ TiBVSU5UTiAgICAgICBFcnJvckxldmVsDQo+ICsgICk7DQo+ICsNCj4gICNlbmRpZg0KPiBkaWZm IC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvQmFzZURlYnVnTGliU2VyaWFsUG9ydC9EZWJ1Z0xpYi5j IGIvTWRlUGtnL0xpYnJhcnkvQmFzZURlYnVnTGliU2VyaWFsUG9ydC9EZWJ1Z0xpYi5jDQo+IGlu ZGV4IGJkNTY4Njk0NzcxMi4uMDk3MWM5YTU3Yzg4IDEwMDY0NA0KPiAtLS0gYS9NZGVQa2cvTGli cmFyeS9CYXNlRGVidWdMaWJTZXJpYWxQb3J0L0RlYnVnTGliLmMNCj4gKysrIGIvTWRlUGtnL0xp YnJhcnkvQmFzZURlYnVnTGliU2VyaWFsUG9ydC9EZWJ1Z0xpYi5jDQo+IEBAIC0xMjUsNiArMTI1 LDEwIEBAIERlYnVnUHJpbnRNYXJrZXIgKA0KPiAgICAgIEFzY2lpQlNQcmludCAoQnVmZmVyLCBz aXplb2YgKEJ1ZmZlciksIEZvcm1hdCwgQmFzZUxpc3RNYXJrZXIpOw0KPiAgICB9DQo+IA0KPiAr ICBpZiAoRmVhdHVyZVBjZEdldCAoUGNkRGVidWdBbnNpU2VxU3VwcG9ydCkpIHsNCj4gKyAgICBB c2NpaURlYnVnR2V0Q29sb3JTdHJpbmcgKEJ1ZmZlciwgTUFYX0RFQlVHX01FU1NBR0VfTEVOR1RI LCBFcnJvckxldmVsKTsNCj4gKyAgfQ0KPiArDQo+ICAgIC8vDQo+ICAgIC8vIFNlbmQgdGhlIHBy aW50IHN0cmluZyB0byBhIFNlcmlhbCBQb3J0DQo+ICAgIC8vDQo+IGRpZmYgLS1naXQgYS9NZGVQ a2cvTGlicmFyeS9CYXNlUHJpbnRMaWIvUHJpbnRMaWIuYyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VQ cmludExpYi9QcmludExpYi5jDQo+IGluZGV4IGU2ZjQwNDJiYjkwYi4uOTUxMzVkNDVhZmY5IDEw MDY0NA0KPiAtLS0gYS9NZGVQa2cvTGlicmFyeS9CYXNlUHJpbnRMaWIvUHJpbnRMaWIuYw0KPiAr KysgYi9NZGVQa2cvTGlicmFyeS9CYXNlUHJpbnRMaWIvUHJpbnRMaWIuYw0KPiBAQCAtMSwxMiAr MSwxNSBAQA0KPiAgLyoqIEBmaWxlDQo+ICAgIEJhc2UgUHJpbnQgTGlicmFyeSBpbnN0YW5jZSBp bXBsZW1lbnRhdGlvbi4NCj4gDQo+ICsgIENvcHlyaWdodCAoYykgMjAyMiwgUXVhbGNvbW0gSW5u b3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+DQo+ICAgIENvcHly aWdodCAoYykgMjAwNiAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2Vy dmVkLjxCUj4NCj4gICAgUG9ydGlvbnMgY29weXJpZ2h0IChjKSAyMDA4IC0gMjAwOSwgQXBwbGUg SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4gICAgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gDQo+ICAqKi8NCj4gDQo+ICsjaW5jbHVkZSA8TGli cmFyeS9CYXNlTWVtb3J5TGliLmg+DQo+ICsNCj4gICNpbmNsdWRlICJQcmludExpYkludGVybmFs LmgiDQo+IA0KPiAgLy8NCj4gQEAgLTE5LDYgKzIyLDE5IEBAIFZBX0xJU1QgIGdOdWxsVmFMaXN0 Ow0KPiANCj4gICNkZWZpbmUgQVNTRVJUX1VOSUNPREVfQlVGRkVSKEJ1ZmZlcikgIEFTU0VSVCAo KCgoVUlOVE4pIChCdWZmZXIpKSAmIDB4MDEpID09IDApDQo+IA0KPiArLy8NCj4gKy8vIERlZmlu ZSB0aGUgbWF4aW11bSBkZWJ1ZyBhbmQgYXNzZXJ0IG1lc3NhZ2UgbGVuZ3RoIHRoYXQgdGhpcyBs aWJyYXJ5IHN1cHBvcnRzDQo+ICsvLw0KPiArI2RlZmluZSBNQVhfREVCVUdfTUVTU0FHRV9MRU5H VEggIDB4MTAwDQo+ICsNCj4gKyNkZWZpbmUgQVNDSUlfUkVEX0VTQ19TRVEgICAgICJcMDMzWzMx bSINCj4gKyNkZWZpbmUgQVNDSUlfWUVMTE9XX0VTQ19TRVEgICJcMDMzWzMzbSINCj4gKyNkZWZp bmUgQVNDSUlfRU5EX0VTQ19TRVEgICAgICJcMDMzWzBtIg0KPiArDQo+ICsjZGVmaW5lIFJFRF9F U0NfU0VRICAgICBMIlwwMzNbMzFtIg0KPiArI2RlZmluZSBZRUxMT1dfRVNDX1NFUSAgTCJcMDMz WzMzbSINCj4gKyNkZWZpbmUgRU5EX0VTQ19TRVEgICAgIEwiXDAzM1swbSINCj4gKw0KPiAgLyoq DQo+ICAgIFByb2R1Y2VzIGEgTnVsbC10ZXJtaW5hdGVkIFVuaWNvZGUgc3RyaW5nIGluIGFuIG91 dHB1dCBidWZmZXIgYmFzZWQgb24NCj4gICAgYSBOdWxsLXRlcm1pbmF0ZWQgVW5pY29kZSBmb3Jt YXQgc3RyaW5nIGFuZCBhIFZBX0xJU1QgYXJndW1lbnQgbGlzdC4NCj4gQEAgLTgzNCwzICs4NTAs MTE1IEBAIFNQcmludExlbmd0aEFzY2lpRm9ybWF0ICgNCj4gIHsNCj4gICAgcmV0dXJuIEJhc2VQ cmludExpYlNQcmludE1hcmtlciAoTlVMTCwgMCwgT1VUUFVUX1VOSUNPREUgfCBDT1VOVF9PTkxZ X05PX1BSSU5ULCAoQ0hBUjggKilGb3JtYXRTdHJpbmcsIE1hcmtlciwgTlVMTCk7DQo+ICB9DQo+ ICsNCj4gKy8qKg0KPiArICBXcmFwcyBhIG1lc3NhZ2Ugd2l0aCBBTlNJIGNvbG9yIGVzY2FwZSBj b2Rlcy4NCj4gKw0KPiArICBAcGFyYW0gU3RyaW5nICAgICBUaGUgc3RyaW5nIHRvIHdyYXAuDQo+ ICsgIEBwYXJhbSBTdHJpbmdMZW4gIFRoZSBzaXplIG9mIHRoZSBTdHJpbmcgYnVmZmVyIGluIGNo YXJhY3RlcnMuDQo+ICsgIEBwYXJhbSBFcnJvckxldmVsIFRoZSBlcnJvciBsZXZlbC4NCj4gKw0K PiArICBAcmV0dmFsIFJFVFVSTl9TVUNDRVNTICAgICAgICAgIFRoZSBzdHJpbmcgd2FzIHN1Y2Nl c3NmdWxseSB1cGRhdGVkLg0KPiArICBAcmV0dmFsIFJFVFVSTl9CVUZGRVJfVE9PX1NNQUxMIFRo ZSBidWZmZXIgaXMgdG9vIHNtYWxsLg0KPiArDQo+ICsqKi8NCj4gK1JFVFVSTl9TVEFUVVMNCj4g K0VGSUFQSQ0KPiArQXNjaWlEZWJ1Z0dldENvbG9yU3RyaW5nICgNCj4gKyAgSU4gT1VUIENIQVI4 ICAqU3RyaW5nLA0KPiArICBJTiBVSU5UTiAgICAgIFN0cmluZ0xlbiwNCj4gKyAgSU4gVUlOVE4g ICAgICBFcnJvckxldmVsDQo+ICsgICkNCj4gK3sNCj4gKyAgQ0hBUjggIEJ1ZmZlcltNQVhfREVC VUdfTUVTU0FHRV9MRU5HVEhdOw0KPiArICBVSU5UTiAgUmVxQnVmZmVyTGVuOw0KPiArDQo+ICsg IFJlcUJ1ZmZlckxlbiA9IEFzY2lpU3RyTGVuIChTdHJpbmcpICsNCj4gKyAgICAgICAgICAgICAg ICAgQXNjaWlTdHJMZW4gKEFTQ0lJX1JFRF9FU0NfU0VRKSArDQo+ICsgICAgICAgICAgICAgICAg IEFzY2lpU3RyTGVuIChBU0NJSV9FTkRfRVNDX1NFUSkgKw0KPiArICAgICAgICAgICAgICAgICAx Ow0KPiArDQo+ICsgIGlmIChTdHJpbmdMZW4gPCBSZXFCdWZmZXJMZW4pIHsNCj4gKyAgICByZXR1 cm4gUkVUVVJOX0JVRkZFUl9UT09fU01BTEw7DQo+ICsgIH0NCj4gKw0KPiArICBaZXJvTWVtIChC dWZmZXIsIHNpemVvZiAoQnVmZmVyKSk7DQo+ICsNCj4gKyAgc3dpdGNoIChFcnJvckxldmVsKSB7 DQo+ICsgICAgY2FzZSBERUJVR19XQVJOOg0KPiArICAgICAgQXNjaWlTdHJDcHlTIChCdWZmZXIs IE1BWF9ERUJVR19NRVNTQUdFX0xFTkdUSCwgQVNDSUlfWUVMTE9XX0VTQ19TRVEpOw0KPiArICAg ICAgYnJlYWs7DQo+ICsgICAgY2FzZSBERUJVR19FUlJPUjoNCj4gKyAgICAgIEFzY2lpU3RyQ3B5 UyAoQnVmZmVyLCBNQVhfREVCVUdfTUVTU0FHRV9MRU5HVEgsIEFTQ0lJX1JFRF9FU0NfU0VRKTsN Cj4gKyAgICAgIGJyZWFrOw0KPiArICB9DQo+ICsNCj4gKyAgQXNjaWlTdHJDYXRTIChCdWZmZXIs IE1BWF9ERUJVR19NRVNTQUdFX0xFTkdUSCwgU3RyaW5nKTsNCj4gKw0KPiArICBzd2l0Y2ggKEVy cm9yTGV2ZWwpIHsNCj4gKyAgICBjYXNlIERFQlVHX1dBUk46DQo+ICsgICAgY2FzZSBERUJVR19F UlJPUjoNCj4gKyAgICAgIEFzY2lpU3RyQ2F0UyAoQnVmZmVyLCBNQVhfREVCVUdfTUVTU0FHRV9M RU5HVEgsIEFTQ0lJX0VORF9FU0NfU0VRKTsNCj4gKyAgICAgIGJyZWFrOw0KPiArICB9DQo+ICsN Cj4gKyAgQXNjaWlTdHJDcHlTIChTdHJpbmcsIFN0cmluZ0xlbiwgQnVmZmVyKTsNCj4gKw0KPiAr ICByZXR1cm4gUkVUVVJOX1NVQ0NFU1M7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBXcmFwcyBh IG1lc3NhZ2Ugd2l0aCBBTlNJIGNvbG9yIGVzY2FwZSBjb2Rlcy4NCj4gKw0KPiArICBAcGFyYW0g U3RyaW5nICAgICBUaGUgc3RyaW5nIHRvIHdyYXAuDQo+ICsgIEBwYXJhbSBTdHJpbmdMZW4gIFRo ZSBzaXplIG9mIHRoZSBTdHJpbmcgYnVmZmVyIGluIFVuaWNvZGUgY2hhcmFjdGVycy4NCj4gKyAg QHBhcmFtIEVycm9yTGV2ZWwgVGhlIGVycm9yIGxldmVsLg0KPiArDQo+ICsgIEByZXR2YWwgUkVU VVJOX1NVQ0NFU1MgICAgICAgICAgVGhlIHN0cmluZyB3YXMgc3VjY2Vzc2Z1bGx5IHVwZGF0ZWQu DQo+ICsgIEByZXR2YWwgUkVUVVJOX0JVRkZFUl9UT09fU01BTEwgVGhlIGJ1ZmZlciBpcyB0b28g c21hbGwuDQo+ICsNCj4gKyoqLw0KPiArUkVUVVJOX1NUQVRVUw0KPiArRUZJQVBJDQo+ICtVbmlj b2RlRGVidWdHZXRDb2xvclN0cmluZyAoDQo+ICsgIElOIE9VVCBDSEFSMTYgICpTdHJpbmcsDQo+ ICsgIElOIFVJTlROICAgICAgIFN0cmluZ0xlbiwNCj4gKyAgSU4gVUlOVE4gICAgICAgRXJyb3JM ZXZlbA0KPiArICApDQo+ICt7DQo+ICsgIENIQVIxNiAgQnVmZmVyW01BWF9ERUJVR19NRVNTQUdF X0xFTkdUSF07DQo+ICsgIFVJTlROICAgUmVxQnVmZmVyTGVuOw0KPiArDQo+ICsgIFJlcUJ1ZmZl ckxlbiA9IFN0ckxlbiAoU3RyaW5nKSArDQo+ICsgICAgICAgICAgICAgICAgIFN0ckxlbiAoUkVE X0VTQ19TRVEpICsNCj4gKyAgICAgICAgICAgICAgICAgU3RyTGVuIChFTkRfRVNDX1NFUSkgKw0K PiArICAgICAgICAgICAgICAgICAxOw0KPiArDQo+ICsgIGlmIChTdHJpbmdMZW4gPCBSZXFCdWZm ZXJMZW4pIHsNCj4gKyAgICByZXR1cm4gUkVUVVJOX0JVRkZFUl9UT09fU01BTEw7DQo+ICsgIH0N Cj4gKw0KPiArICBaZXJvTWVtIChCdWZmZXIsIHNpemVvZiAoQnVmZmVyKSk7DQo+ICsNCj4gKyAg c3dpdGNoIChFcnJvckxldmVsKSB7DQo+ICsgICAgY2FzZSBERUJVR19XQVJOOg0KPiArICAgICAg U3RyQ3B5UyAoQnVmZmVyLCBNQVhfREVCVUdfTUVTU0FHRV9MRU5HVEgsIFlFTExPV19FU0NfU0VR KTsNCj4gKyAgICAgIGJyZWFrOw0KPiArICAgIGNhc2UgREVCVUdfRVJST1I6DQo+ICsgICAgICBT dHJDcHlTIChCdWZmZXIsIE1BWF9ERUJVR19NRVNTQUdFX0xFTkdUSCwgUkVEX0VTQ19TRVEpOw0K PiArICAgICAgYnJlYWs7DQo+ICsgIH0NCj4gKw0KPiArICBTdHJDYXRTIChCdWZmZXIsIE1BWF9E RUJVR19NRVNTQUdFX0xFTkdUSCwgU3RyaW5nKTsNCj4gKw0KPiArICBzd2l0Y2ggKEVycm9yTGV2 ZWwpIHsNCj4gKyAgICBjYXNlIERFQlVHX1dBUk46DQo+ICsgICAgY2FzZSBERUJVR19FUlJPUjoN Cj4gKyAgICAgIFN0ckNhdFMgKEJ1ZmZlciwgTUFYX0RFQlVHX01FU1NBR0VfTEVOR1RILCBFTkRf RVNDX1NFUSk7DQo+ICsgICAgICBicmVhazsNCj4gKyAgfQ0KPiArDQo+ICsgIFN0ckNweVMgKFN0 cmluZywgU3RyaW5nTGVuLCBCdWZmZXIpOw0KPiArDQo+ICsgIHJldHVybiBSRVRVUk5fU1VDQ0VT UzsNCj4gK30NCj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlEZWJ1Z0xpYkNvbk91 dC9EZWJ1Z0xpYi5jIGIvTWRlUGtnL0xpYnJhcnkvVWVmaURlYnVnTGliQ29uT3V0L0RlYnVnTGli LmMNCj4gaW5kZXggNjVjOGRjMmI0NjU0Li5hYWM1YjZkNmUwMjIgMTAwNjQ0DQo+IC0tLSBhL01k ZVBrZy9MaWJyYXJ5L1VlZmlEZWJ1Z0xpYkNvbk91dC9EZWJ1Z0xpYi5jDQo+ICsrKyBiL01kZVBr Zy9MaWJyYXJ5L1VlZmlEZWJ1Z0xpYkNvbk91dC9EZWJ1Z0xpYi5jDQo+IEBAIC0xMDgsNiArMTA4 LDEwIEBAIERlYnVnUHJpbnRNYXJrZXIgKA0KPiAgICAgICAgVW5pY29kZUJTUHJpbnRBc2NpaUZv cm1hdCAoQnVmZmVyLCBzaXplb2YgKEJ1ZmZlciksIEZvcm1hdCwgQmFzZUxpc3RNYXJrZXIpOw0K PiAgICAgIH0NCj4gDQo+ICsgICAgaWYgKEZlYXR1cmVQY2RHZXQgKFBjZERlYnVnQW5zaVNlcVN1 cHBvcnQpKSB7DQo+ICsgICAgICBVbmljb2RlRGVidWdHZXRDb2xvclN0cmluZyAoQnVmZmVyLCBN QVhfREVCVUdfTUVTU0FHRV9MRU5HVEgsIEVycm9yTGV2ZWwpOw0KPiArICAgIH0NCj4gKw0KPiAg ICAgIC8vDQo+ICAgICAgLy8gU2VuZCB0aGUgcHJpbnQgc3RyaW5nIHRvIHRoZSBDb25zb2xlIE91 dHB1dCBkZXZpY2UNCj4gICAgICAvLw0KPiAtLQ0KPiAyLjMwLjINCg0K