From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by mx.groups.io with SMTP id smtpd.web12.2848.1593625362424719295 for ; Wed, 01 Jul 2020 10:42:42 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=pMlJMYSm; spf=pass (domain: intel.com, ip: 134.134.136.65, mailfrom: michael.d.kinney@intel.com) IronPort-SDR: nlBWHcgTQbe0SKJPmQfKzt4ByQaICQdvycmjn74FdJgGcJOMO1Cn87smfYbsjVZVtFdC1GPYLP cEm/ZmDNtwxg== X-IronPort-AV: E=McAfee;i="6000,8403,9669"; a="146654379" X-IronPort-AV: E=Sophos;i="5.75,301,1589266800"; d="scan'208";a="146654379" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Jul 2020 10:42:41 -0700 IronPort-SDR: pFpyOzZYYpRDWlTT4EFVYTJf4N3QMGzkFkVpoUiaJJPenpC4/EKXZR+jLpaTNqiJq8l4ow2jFn a18X2mK645+g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,301,1589266800"; d="scan'208";a="313843962" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga002.fm.intel.com with ESMTP; 01 Jul 2020 10:42:41 -0700 Received: from orsmsx606.amr.corp.intel.com (10.22.229.19) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 1 Jul 2020 10:42:40 -0700 Received: from orsmsx154.amr.corp.intel.com (10.22.226.12) by orsmsx606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 1 Jul 2020 10:42:40 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by ORSMSX154.amr.corp.intel.com (10.22.226.12) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 10:42:39 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 1 Jul 2020 10:42:39 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WWbxnCM+y3PzfzXBVJr7h1QaBBbDjp4Sd9QN2/Ykd6o91BVVJu21jHBG/yp8s79tiNrXUOY1YMWwkd2Js0R4N4ZYDDwQ5i7MYei/8vcmIJh8c2EkyOx+7LA4BpULNrKUEk7lcFZzGvjHcSBJ0qiFnsEAs+nNbuTwLxH/YCRB0QosvzMG8/0k+/fEmJecbI2G6uLarZUWDFCU8lnNHJpzaevAo8FwYKzQ7qwlJn7EW3rB5VchSxKPaBSUm9PZPyLiKk2D3cse3CLx+CSiRbC05BCthM3Veq71XurpfEOj0Z+Tgs4V+qBNh7FExuozOmlpcxmKhb3qo/+eunmf+z1DYg== 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-SenderADCheck; bh=kwni1DnLjdQtFDEaHd6XznJMcE51wSnzcEeoodwy+h8=; b=hmENRem1p+HeFNj5U2DBNQIvc5Zl6WknRMNq0L8J5I1oJKmzwb8NVjlC/cJllsmSbR30gfg1m+QNkeVPOba/Dwq7ji9qPY0U5Gk3ZAVLh+OKWt0CpiEs0Cjozu1OUee8uf/l8QyDgLDZR6jwQmGTVu5iC3lanpe652NPxVgFlvwjePu9rckk0vXTYQWWIhyGgkq5UaQvdk1KGAjey3rEyxD2J5arh9OtpNtwabc13YAmuuCybSbKja0xKp96n2iONdfgk+QbWIJeSaVPgVgnjGe5R5WgDsTVmeB+uXqGZuAm7I+vMdY9EULkxEWv6GqO7KWeDTktswCTv74l/zb50A== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=kwni1DnLjdQtFDEaHd6XznJMcE51wSnzcEeoodwy+h8=; b=pMlJMYSmpJyDqALWQYpvaro0rgCZp1o06WQ2UwW73aQW0gzqwUH/pjMjOuO7xEDRzCzEBgEIoZk8UJH+C2qKfPkLiCdgUg1Rssse6djv7kgLhM+65IsZWQ1NIAUyN1vq7YIOYsMyhf+jKEt5Gxe7j3+bgIkJY9+fEtvUlWpolUc= Received: from MN2PR11MB4461.namprd11.prod.outlook.com (2603:10b6:208:192::29) by MN2PR11MB4582.namprd11.prod.outlook.com (2603:10b6:208:265::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.23; Wed, 1 Jul 2020 17:42:38 +0000 Received: from MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1]) by MN2PR11MB4461.namprd11.prod.outlook.com ([fe80::10bc:1a4e:4745:ffc1%3]) with mapi id 15.20.3131.028; Wed, 1 Jul 2020 17:42:38 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "lsun@mellanox.com" , "Jiang, Guomin" , "Xu, Wei6" , "Gao, Liming" , "Kinney, Michael D" CC: Sean Brogan Subject: Re: [edk2-devel] [PATCH] FmpDevicePkg: Enhance capsule verification with secure boot keys Thread-Topic: [edk2-devel] [PATCH] FmpDevicePkg: Enhance capsule verification with secure boot keys Thread-Index: AQHWRmHkwzsQ1FwWN0yXDTbJEKh6m6ju+xgAgAGWkICAAELiAIAAV9EAgADLtoCAAQPtAIAAE/hQ Date: Wed, 1 Jul 2020 17:42:38 +0000 Message-ID: References: <5b42e8e089fb961766c639b733284413ccf03272.1592587621.git.lsun@mellanox.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [134.134.136.200] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e02c5d2d-c649-4774-a1ad-08d81de625bd x-ms-traffictypediagnostic: MN2PR11MB4582: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-forefront-prvs: 04519BA941 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eRszOTQxINTvRfkYMIwDWQ4wdnzkNAfCH51eU0qh/+3KbUcsi3znby8gNn/49qavT5UAYCBuwSfRWdYTlTfHzld4iXrPFBByq/cE70NcXOgZAIbnUA26QVGlA+i59iWIALyNqArfHwrWYxRVG/6sOxhOOHl4uzAZUMOO94E1OC+KtdMyBng/Ux2mUKfivEtNLcDL4uwNxh6cAPeea/betnhQWb8QVZ01k+2+E4nmI3/+gwmv9Tygqb6ztZkEw2G6U2M5ja7uMqO+l2JV//2Y6XpqLKSH70LZT+/4Q7QExRORyK+yvvkdpqfKl+XgPYAbot6DwNyQ4AEUt6R7zhRw7xADBLd4L+lA1VJJ2mVEARAJqoXIFUxQbnAvmyrA8m9EYSbtuv/EDUCGOzTaNn7zuBQyKWA51hHYW+ze1MynIBey7rGpbHh6q8MUsZB4X1UJ x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4461.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(346002)(396003)(376002)(366004)(136003)(39860400002)(71200400001)(7696005)(4326008)(83380400001)(30864003)(52536014)(86362001)(33656002)(110136005)(55016002)(316002)(8676002)(6506007)(9686003)(53546011)(5660300002)(26005)(66446008)(66556008)(186003)(64756008)(2906002)(66476007)(66946007)(478600001)(966005)(15650500001)(76116006)(8936002)(19627235002)(921003)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: mY6kR53CHVghHy5bp/yftrA/BmY+OJBKIi37dSSpelFmBNF7lyzHVkzF7tU+/Ri1PdQHDLnz61yx5gp2jE5VNfJ2Hae9Tr8VJoq6bJh1xomOEB5lDrIXq6ZR2CU2Gjj/noFq6j5nv+0P2ireSXolt7BnJTSTYGXiE5e/anz5MWACgzaHvc186LqpmbmBAELACVVdCPNJdV/1dxnUP97FgjKx6NW75H3uU+dg9Uj0deWVWjwtcaybLkY17P5Kt1AA5LGJuQXiX6s8nVxyRPyvGZ1opAqPQxkmgoOlEqnu4trEK36UsrIBqciM3NOjL7woy6x7jZhjq760yPb7VQOVVWyMzxBRPULLc/3YS+OxQT/nzdmxs9XP/ex6cxCvFqg+qJpjKO44MSXojyx/cWvBsgNKLmY6SFTPvxMsIQ8XJQWxwd2q+Z8SmqKmh1+bZ3enWFS+efc1wmHqYhHjc7Lta1OHofnvI0OvE2Njq+l5hBPlpAUpBKp0hx8cQwsfrgOc MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4461.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e02c5d2d-c649-4774-a1ad-08d81de625bd X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Jul 2020 17:42:38.3294 (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: 4Wc/AoE0laK46dCCTZ3wWfz54oFEglrJotuDahMJoFMUow5uwgUGBfUWUJWP8o+Qf/+NgdgjnKIWNeOtWSBRaMvvtfn3lzzCUpYxyvK3fHE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4582 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 TGltaW5nIFN1biwNCg0KQ2FuIHlvdSBleHBsYWluIHdoeSB5b3UgY2Fubm90IHVzZSBQY2RGbXBE ZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIgDQpmb3IgeW91ciB1c2UgY2FzZT8gIEkgd2FudCB0byB1 bmRlcnN0YW5kIHRoZSB1c2UgY2FzZSB0byBzZWUgaWYgDQp0aGF0IGZlYXR1cmUgY2FuIGJlIGFw cGxpZWQgb3IgaWYgYSBtaW5vciBlbmhhbmNlbWVudCB0byB0aGlzDQpmZWF0dXJlIGNhbiB3b3Jr Lg0KDQpVc2luZyB0aGUgVUVGSSBTZWN1cmUgQm9vdCBEQiBmb3IgYW55dGhpbmcgb3RoZXIgdGhh biBhdXRoZW50aWNhdGlvbg0Kb2YgVUVGSSBib290IGxvYWRlcnMgaXMgbm90IHJlY29tbWVuZGVk Lg0KDQpUaGFua3MsDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uDQo+IEJl aGFsZiBPZiBMaW1pbmcgU3VuDQo+IFNlbnQ6IFdlZG5lc2RheSwgSnVseSAxLCAyMDIwIDk6Mjcg QU0NCj4gVG86IEppYW5nLCBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+Ow0KPiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgWHUsIFdlaTYgPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLA0KPiBM aW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1p Y3Jvc29mdC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBGbXBEZXZp Y2VQa2c6IEVuaGFuY2UNCj4gY2Fwc3VsZSB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBr ZXlzDQo+IA0KPiA+PiBCdXQgaWYgeW91ciBjdXN0b21lciBpbmRlZWQgd2FudCBpdCwgeW91IGNh biBhZGQgaXQNCj4gdG8geW91ciBjdXN0b21pemF0aW9uIGNvZGUuDQo+IFRoYW5rcy4gWWVzLCB0 aGlzIGlzIGEgYmVoYXZpb3IgY3VzdG9tZXIgZXhwZWN0cy4gVGhpcw0KPiBjaGFuZ2UganVzdCB0 cmllcyB0byBwcm92aWRlIGEgaGFuZHkgd2F5IHRvIGVucm9sbA0KPiBpbml0aWFsIGtleXMuDQo+ IFNvIHRoZSBpbml0aWFsIGtleXMgY291bGQgYmUgY2FycmllZCBpbiB0aGUgY2Fwc3VsZQ0KPiBp dHNlbGYuDQo+IEl0IGFsc28gaGFzICJQY2RGbXBEZXZpY2VBbGxvd1NlY3VyZUJvb3RLZXlzIiBk aXNhYmxlZA0KPiBieSBkZWZhdWx0LCBzbyBpdCBiZWhhdmVzIHRoZSBzYW1lIGFzIGJlZm9yZS4N Cj4gDQo+IFdlJ2xsIHRyeSB0byB1c2UgY3VzdG9taXphdGlvbiBjb2RlIGluc3RlYWQgYXMNCj4g c3VnZ2VzdGVkLg0KPiANCj4gVGhhbmtzLA0KPiBMaW1pbmcNCj4gDQo+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50 ZWwuY29tPg0KPiA+IFNlbnQ6IFR1ZXNkYXksIEp1bmUgMzAsIDIwMjAgODo1NiBQTQ0KPiA+IFRv OiBMaW1pbmcgU3VuIDxsc3VuQG1lbGxhbm94LmNvbT47DQo+IGRldmVsQGVkazIuZ3JvdXBzLmlv OyBYdSwgV2VpNiA8d2VpNi54dUBpbnRlbC5jb20+OyBHYW8sDQo+IExpbWluZyA8bGltaW5nLmdh b0BpbnRlbC5jb20+Ow0KPiA+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4NCj4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+ DQo+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEZtcERldmljZVBrZzoNCj4g RW5oYW5jZSBjYXBzdWxlIHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBib290IGtleXMNCj4gPg0K PiA+IEkgd2FudCB0byBhc2sgeW91ciBvbmUgcXVlc3Rpb246IGFyZSB5b3Ugc3VyZSB0aGF0DQo+ IGV2ZXJ5IG1vdGhlciBib2FyZCB3aGljaCBkZWxpdmVyIHRvIGN1c3RvbWVyIHdpbGwgZW5hYmxl DQo+IHRoZSBzZWN1cmUgYm9vdCBtb2RlPw0KPiA+DQo+ID4gSSBqdXN0IGVtcGhhc2l6ZSB0aGF0 IEkgd2FudCB0byBtYWtlIHN1cmUgdGhhdCB0aGUNCj4gZGV2aWNlIGZpcm13YXJlIGNvbWUgZnJv bSB0aGUgZGV2aWNlIHZlbmRvci4NCj4gPg0KPiA+IFRoYW5rcyBmb3IgeW91ciBlZmZvcnQsIHRo ZSBwYXRjaCBpcyBnb29kLCBJIGp1c3QNCj4gdGhpbmsgaXQgaXMgbm90IHN1aXRhYmxlIGZvciBj b21tb24gc29sdXRpb24uDQo+ID4NCj4gPiBCdXQgaWYgeW91ciBjdXN0b21lciBpbmRlZWQgd2Fu dCBpdCwgeW91IGNhbiBhZGQgaXQgdG8NCj4geW91ciBjdXN0b21pemF0aW9uIGNvZGUuDQo+ID4N Cj4gPiBUaGFua3MNCj4gPiBHdW9taW4NCj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+IEZyb206IExpbWluZyBTdW4gPGxzdW5AbWVsbGFub3guY29tPg0KPiA+ID4g U2VudDogVHVlc2RheSwgSnVuZSAzMCwgMjAyMCA4OjQ3IFBNDQo+ID4gPiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IEppYW5nLCBHdW9taW4NCj4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBY dSwNCj4gPiA+IFdlaTYgPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGxpbWlu Zy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LA0KPiA+ID4gTWljaGFlbCBEIDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4NCj4gPiA+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9z b2Z0LmNvbT4NCj4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBGbXBEZXZp Y2VQa2c6DQo+IEVuaGFuY2UgY2Fwc3VsZQ0KPiA+ID4gdmVyaWZpY2F0aW9uIHdpdGggc2VjdXJl IGJvb3Qga2V5cw0KPiA+ID4NCj4gPiA+IFRoYW5rcyBHdW9taW4uDQo+ID4gPg0KPiA+ID4gSSBz dGlsbCBoYXZlIG9uZSBxdWVzdGlvbi4gTGV0J3MgYXNzdW1lIHdlJ3JlIHRoZQ0KPiBkZXZpY2Ug dmVuZG9yIGFuZCB3ZSBsZXQNCj4gPiA+IGN1c3RvbWVyIHRvIGVucm9sbCB0aGVpciBrZXlzLiBP bmNlIHRoZSBrZXlzIGFyZQ0KPiBlbnJvbGxlZCwgdGhlIGRldmljZSB3aWxsIGJlDQo+ID4gPiBp biBzZWN1cmUgYm9vdCBtb2RlLiBBcmUgeW91IHNheWluZyB0aGF0IHRoZSBlbmQNCj4gdXNlciBj b3VsZCAiaGF2ZSB0aGUgYWJpbGl0eQ0KPiA+ID4gdG8gZW5yb2xsIHRoZWlyIERCIHdpdGhvdXQg dG9vIG1hbnkgZWZmb3J0IiBldmVuDQo+IGFmdGVyIHRoZSBzZWN1cmUgYm9vdCBoYXMNCj4gPiA+ IGJlZW4gZW5hYmxlZCBhbHJlYWR5Pw0KPiA+ID4NCj4gPiA+IFBsZWFzZSBjb3JyZWN0IG1lIGlm IEkgbWlzdW5kZXJzdG9vZCBpdC4NCj4gPiA+DQo+ID4gPiAtIExpbWluZw0KPiA+ID4NCj4gPiA+ ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPg0KPiBPbiBCZWhhbGYgT2YNCj4gPiA+IEd1 b21pbg0KPiA+ID4gPiBKaWFuZyB2aWEgZ3JvdXBzLmlvDQo+ID4gPiA+IFNlbnQ6IFR1ZXNkYXks IEp1bmUgMzAsIDIwMjAgMzozMyBBTQ0KPiA+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87 IExpbWluZyBTdW4NCj4gPGxzdW5AbWVsbGFub3guY29tPjsgWHUsIFdlaTYNCj4gPiA+ID4gPHdl aTYueHVAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsg S2lubmV5LA0KPiA+ID4gPiBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0K PiA+ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4g PiA+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBGbXBEZXZpY2VQa2c6DQo+IEVu aGFuY2UgY2Fwc3VsZQ0KPiA+ID4gPiB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBrZXlz DQo+ID4gPiA+DQo+ID4gPiA+IExpbWluZywNCj4gPiA+ID4NCj4gPiA+ID4gVGhlIGVuZCB1c2Vy IGhhdmUgdGhlIGFiaWxpdHkgdG8gZW5yb2xsIHRoZWlyIERCDQo+IHdpdGhvdXQgdG9vIG1hbnkg ZWZmb3J0Lg0KPiA+ID4gPg0KPiA+ID4gPiBBbmQgSSB0aGluayBzb21lIGVuZCB1c2VyIGFsc28g aGF2ZSB0aGUgYWJpbGl0eSB0bw0KPiBnZXQgaW5zZWN1cmUgZmlybXdhcmUNCj4gPiA+IHdoaWNo IG5vdCBmcm9tIHRoZSBkZXZpY2UgdmVuZG9yLg0KPiA+ID4gPg0KPiA+ID4gPiBJIHN1Z2dlc3Qg dGhhdCB0ZWxsIHRoZSBkZXZpY2UgdmVuZG9yIHRoYXQgaXQgaXMNCj4gY3JpdGljYWwgdGhhdCBz ZXQgdGhlDQo+ID4gPiBQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIgcmF0aGVyIHRoYW4g ZGVjcmVhc2UNCj4gdGhlIHNlY3VyaXR5Lg0KPiA+ID4gPg0KPiA+ID4gPiBCZXN0IFJlZ2FyZHMN Cj4gPiA+ID4gR3VvbWluDQo+ID4gPiA+DQo+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZg0KPiA+ID4gPiA+IExpbWluZyBTdW4NCj4gPiA+ID4g PiBTZW50OiBUdWVzZGF5LCBKdW5lIDMwLCAyMDIwIDExOjMzIEFNDQo+ID4gPiA+ID4gVG86IEpp YW5nLCBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+Ow0KPiBkZXZlbEBlZGsyLmdyb3Vw cy5pbzsNCj4gPiA+ID4gPiBYdSwNCj4gPiA+ID4gPiBXZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT47 IEdhbywgTGltaW5nDQo+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47DQo+ID4gPiA+ID4gS2lubmV5 LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENjOiBT ZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gRm1wRGV2aWNlUGtnOg0KPiBFbmhhbmNlIGNhcHN1 bGUNCj4gPiA+ID4gPiB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBrZXlzDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBUaGFua3MgR3VvbWluIGZvciB0aGUgY29tbWVudHMhDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBCZWxvdyBpcyB0aGUgbWFpbiBzY2VuYXJpbyBmb3IgdGhlIHByb3Bvc2VkDQo+ IGNoYW5nZToNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IC0gRGV2aWNlIE1hbnVmYWN0dXJlciBwcm92 aWRlcyB0aGUgZGV2aWNlcyB3aXRoDQo+IFVFRkkgcHJlaW5zdGFsbGVkIGluDQo+ID4gPiA+ID4g bm9uLSBzZWN1cmUgc3RhdGUgYW5kIG5vIGhhcmQtY29kZWQga2V5cyAoDQo+ID4gPiBQY2RGbXBE ZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIpLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gLSBDdXN0b21l ciAobm90IEVuZC1Vc2VyKSBlbnJvbGxzIHRoZWlyIG93biBrZXlzDQo+IGluIHRydXN0ZWQNCj4g PiA+ID4gPiBlbnZpcm9ubWVudCBiZWZvcmUgZGVsaXZlcmluZyB0byBFbmQgVXNlci4NCj4gPiA+ ID4gPiBUaGlzIGNhcHN1bGUgYXBwcm9hY2ggY2FuIGJlIHVzZWQgZm9yIGxhcmdlDQo+IGRlcGxv eW1lbnQgd2l0aG91dA0KPiA+ID4gPiA+IGludm9sdmluZyBhbnkgcHJpdmF0ZSBrZXlzLg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gWWVzLCBJIGRvIGFncmVlIHRoYXQgb25jZSBpdCdzIGRlbGl2ZXJl ZCB0byBFbmQNCj4gVXNlciBpdCB3b24ndCBiZQ0KPiA+ID4gPiA+IGNvbnNpZGVyZWQgc2VjdXJl Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+IExpbWluZw0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4g RnJvbTogSmlhbmcsIEd1b21pbiA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ IFNlbnQ6IFN1bmRheSwgSnVuZSAyOCwgMjAyMCAxMToxOCBQTQ0KPiA+ID4gPiA+ID4gVG86IGRl dmVsQGVkazIuZ3JvdXBzLmlvOyBMaW1pbmcgU3VuDQo+IDxsc3VuQG1lbGxhbm94LmNvbT47IFh1 LCBXZWk2DQo+ID4gPiA+ID4gPiA8d2VpNi54dUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA8 bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4gPiA+ID4gPiBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gQ2M6IFNlYW4gQnJvZ2FuIDxz ZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsy LWRldmVsXSBbUEFUQ0hdDQo+IEZtcERldmljZVBrZzogRW5oYW5jZSBjYXBzdWxlDQo+ID4gPiA+ ID4gPiB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBrZXlzDQo+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gSSB0aGluayBpdCBoYXZlIHNvbWUgdnVsbmVyYWJpbGl0eSwgdGhlIGNhc2UNCj4g YXMgYmVsb3cuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMS4gVW50cnVzdGVkIEVuZCBVc2Vy IGVucm9sbCB0aGUgbmV3IERCIGtleSAtPg0KPiBzaWduIHRoZSB1bnRydXN0ZWQNCj4gPiA+ID4g PiA+IGRldmljZSBmaXJtd2FyZSAtPiBmbGFzaCB0aGUgdW50cnVzdGVkIGRldmljZQ0KPiBmaXJt d2FyZSAtPiB0aGUNCj4gPiA+ID4gPiA+IHN5c3RlbSB3aWxsDQo+ID4gPiA+ID4gYmVjb21lIHVu c2FmZS4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJIHRoaW5rIHRoZSBlbmQgdXNlciBpcyB1 bnRydXN0ZWQgYW5kIHdlIG5lZWQNCj4gdG8gbWFrZSBzdXJlIG9ubHkNCj4gPiA+ID4gPiA+IGZl dyBwZXJzb24NCj4gPiA+ID4gPiBjYW4gaGF2ZSB0aGUgcHJpdmlsZWdlLg0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IEJlc3QgUmVnYXJkcw0KPiA+ID4gPiA+ID4gR3VvbWluDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ID4g PiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9u IEJlaGFsZiBPZg0KPiA+ID4gPiA+ID4gPiBMaW1pbmcgU3VuDQo+ID4gPiA+ID4gPiA+IFNlbnQ6 IFNhdHVyZGF5LCBKdW5lIDIwLCAyMDIwIDE6NDggQU0NCj4gPiA+ID4gPiA+ID4gVG86IFh1LCBX ZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT47IEdhbywNCj4gTGltaW5nDQo+ID4gPiA+ID4gPiA+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA+ID4gPiA+IDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gQ2M6IExpbWluZyBTdW4g PGxzdW5AbWVsbGFub3guY29tPjsNCj4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IFNlYW4NCj4gPiA+ ID4gPiA+ID4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+ID4gPiA+ID4g PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIXSBGbXBEZXZpY2VQa2c6DQo+IEVuaGFuY2Ug Y2Fwc3VsZQ0KPiA+ID4gPiA+ID4gPiB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBrZXlz DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoaXMgY29tbWl0IGVuaGFuY2VzIHRoZSBG bXBEZXZpY2VQa2cNCj4gcGFja2FnZSB0byBvcHRpb25hbGx5DQo+ID4gPiA+ID4gPiA+IHZlcmlm eSBjYXBzdWxlIHdpdGggdGhlIHNlY3VyZSBib290IGtleXMNCj4gd2hlbg0KPiA+ID4gPiA+ID4g PiBQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIgaXMgbm90IHNldA0KPiBhbmQgdGhlIG5l dyBQQ0QNCj4gPiA+ID4gPiA+ID4gdmFyaWFibGUgUGNkRm1wRGV2aWNlQWxsb3dTZWN1cmVCb290 S2V5cyBpcw0KPiBjb25maWd1cmVkLiBCZWxvdyBpcw0KPiA+ID4gPiA+ID4gPiB0aGUgY2hlY2sN Cj4gPiA+ID4gPiBsb2dpYzoNCj4gPiA+ID4gPiA+ID4gICAtIFBhc3MgaWYgdmVyaWZpZWQgd2l0 aCBQSyBrZXksIG9yIFBLIGtleQ0KPiBub3Qgc2V0IHlldDsNCj4gPiA+ID4gPiA+ID4gICAtIERl bnkgaWYgdmVyaWZpZWQgd2l0aCB0aGUgREJYIGtleXM7DQo+ID4gPiA+ID4gPiA+ICAgLSBWZXJp ZmllZCBpdCBhZ2FpbnN0IHRoZSBEQiBrZXlzOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBPbmUgcHVycG9zZSBmb3IgdGhpcyBjaGFuZ2UgaXMgdG8gYXV0by0NCj4gZGVwbG95IHRoZSBV RUZJIHNlY3VyZQ0KPiA+ID4gPiA+ID4gPiBib290IGtleXMgd2l0aCBVRUZJIGNhcHN1bGUuIElu aXRpYWxseSBpdCdzDQo+IGRvbmUgaW4gdHJ1c3RlZCBlbnZpcm9ubWVudC4NCj4gPiA+ID4gPiA+ ID4gT25jZSBzZWN1cmUgYm9vdCBpcyBlbmFibGVkLCB0aGUgc2FtZSBrZXlzDQo+IHdpbGwgYmUg dXNlZCB0bw0KPiA+ID4gPiA+ID4gPiB2ZXJpZnkgdGhlIHNpZ25lZCBjYXBzdWxlcyBhcyB3ZWxs IGZvcg0KPiBmdXJ0aGVyIHVwZGF0ZXMuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFNp Z25lZC1vZmYtYnk6IExpbWluZyBTdW4NCj4gPGxzdW5AbWVsbGFub3guY29tPg0KPiA+ID4gPiA+ ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4gIEZtcERldmljZVBrZy9GbXBEZXZpY2VQa2cuZGVjICAg ICB8ICAgNiArKysNCj4gPiA+ID4gPiA+ID4gIEZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmMg ICAgICB8IDEwOQ0KPiA+ID4gPiA+ID4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLQ0KPiA+ID4gPiA+ID4gPiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaCAgICAg IHwgICAxICsNCj4gPiA+ID4gPiA+ID4gIEZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmluZiAg ICB8ICAgMyArKw0KPiA+ID4gPiA+ID4gPiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGVMaWIu aW5mIHwgICAxICsNCj4gPiA+ID4gPiA+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMTE3IGluc2VydGlv bnMoKyksIDMNCj4gZGVsZXRpb25zKC0pDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGRp ZmYgLS1naXQgYS9GbXBEZXZpY2VQa2cvRm1wRGV2aWNlUGtnLmRlYw0KPiA+ID4gPiA+ID4gPiBi L0ZtcERldmljZVBrZy9GbXBEZXZpY2VQa2cuZGVjIGluZGV4DQo+IGNhYjYzZjUuLjNhZWI4OWMg MTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLSBhL0ZtcERldmljZVBrZy9GbXBEZXZpY2VQa2cuZGVj DQo+ID4gPiA+ID4gPiA+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEZXZpY2VQa2cuZGVjDQo+ID4g PiA+ID4gPiA+IEBAIC0xMjYsNiArMTI2LDEyIEBADQo+ID4gPiA+ID4gPiA+ICAgICMgQFByb21w dCBGaXJtd2FyZSBEZXZpY2UgSW1hZ2UgVHlwZSBJRA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiBnRm1wRGV2aWNlUGtnVG9rZW5TcGFjZUd1aWQuUGNk Rm1wRGV2aWNlSW1hZ2VUeXBlSWRHdWlkfA0KPiB7MH18Vk9JRA0KPiA+ID4gPiA+ID4gPiAqfDB4 NDAwMDAwMTANCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgIyMgVGhpcyBvcHRpb24g aXMgdXNlZCB0byB2ZXJpZnkgdGhlDQo+IGNhcHN1bGUgdXNpbmcgc2VjdXJlDQo+ID4gPiA+ID4g PiA+ICsgYm9vdCBrZXlzIGlmIHRoZSAgIw0KPiBQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJY ZHIgaXMgbm90DQo+ID4gPiBjb25maWd1cmVkLg0KPiA+ID4gPiA+ID4gPiArIEluIHN1Y2ggY2Fz ZSwgdGhlIGNoZWNrICAjIHdpbGwgcGFzcyBpZg0KPiBzZWN1cmUgYm9vdCBoYXNuJ3QNCj4gPiA+ ID4gPiA+ID4gKyBiZWVuIGVuYWJsZWQNCj4gPiA+ID4gPiB5ZXQuDQo+ID4gPiA+ID4gPiA+ICsg ICMgQEEgZmxhZyB0byB0ZWxsIHdoZXRoZXIgdG8gdXNlIHNlY3VyZQ0KPiBib290IGtleXMgd2hl bg0KPiA+ID4gPiA+ID4gPiBQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIgaXMgbm90IHNl dC4NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VB bGxvd1NlY3VyZUJvb3RLDQo+IGV5c3wweDB8DQo+ID4gPiA+ID4gPiA+IFVJTlQ4fA0KPiA+ID4g PiA+ID4gPiArIDB4NDAwMDAwMTINCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAgW1Bj ZHNGaXhlZEF0QnVpbGQsIFBjZHNQYXRjaGFibGVJbk1vZHVsZSwNCj4gUGNkc0R5bmFtaWMsDQo+ ID4gPiA+ID4gUGNkc0R5bmFtaWNFeF0NCj4gPiA+ID4gPiA+ID4gICAgIyMgT25lIG9yIG1vcmUg UEtDUzcgY2VydGlmaWNhdGVzIHVzZWQgdG8NCj4gdmVyaWZ5IGEgZmlybXdhcmUNCj4gPiA+ID4g PiA+ID4gZGV2aWNlDQo+ID4gPiA+ID4gY2Fwc3VsZQ0KPiA+ID4gPiA+ID4gPiAgICAjICB1cGRh dGUgaW1hZ2UuICBFbmNvZGVkIHVzaW5nIHRoZQ0KPiBWYXJpYWJsZS1MZW5ndGggT3BhcXVlDQo+ ID4gPiA+ID4gPiA+IERhdGEgZm9ybWF0IG9mIFJGQyBkaWZmIC0tZ2l0DQo+IGEvRm1wRGV2aWNl UGtnL0ZtcER4ZS9GbXBEeGUuYw0KPiA+ID4gPiA+ID4gPiBiL0ZtcERldmljZVBrZy9GbXBEeGUv Rm1wRHhlLmMgaW5kZXgNCj4gNTg4NDE3Ny4uNmY4MmFlZSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4g LS0tIGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuYw0KPiA+ID4gPiA+ID4gPiArKysgYi9G bXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5jDQo+ID4gPiA+ID4gPiA+IEBAIC02ODIsNiArNjgy LDEwMiBAQCBHZXRBbGxIZWFkZXJTaXplICgNCj4gPiA+ID4gPiA+ID4gICAgcmV0dXJuIENhbGN1 bGF0ZWRTaXplOw0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArRUZJX1NUQVRVUw0KPiA+ID4gPiA+ID4gPiArQ2hlY2tUaGVJbWFnZVdpdGhTZWN1cmVCb290 VmFyaWFibGUgKA0KPiA+ID4gPiA+ID4gPiArICBJTiBDT05TVCBDSEFSMTYgICAgKk5hbWUsDQo+ ID4gPiA+ID4gPiA+ICsgIElOIENPTlNUIEVGSV9HVUlEICAqR3VpZCwNCj4gPiA+ID4gPiA+ID4g KyAgSU4gQ09OU1QgVk9JRCAgICAgICpJbWFnZSwNCj4gPiA+ID4gPiA+ID4gKyAgSU4gVUlOVE4g ICAgICAgICAgIEltYWdlU2l6ZQ0KPiA+ID4gPiA+ID4gPiArICApDQo+ID4gPiA+ID4gPiA+ICt7 DQo+ID4gPiA+ID4gPiA+ICsgIEVGSV9TVEFUVVMgICAgICAgICAgU3RhdHVzOw0KPiA+ID4gPiA+ ID4gPiArICBWT0lEICAgICAgICAgICAgICAgICpEYXRhOw0KPiA+ID4gPiA+ID4gPiArICBVSU5U TiAgICAgICAgICAgICAgIExlbmd0aDsNCj4gPiA+ID4gPiA+ID4gKyAgRUZJX1NJR05BVFVSRV9M SVNUICAqQ2VydExpc3Q7DQo+ID4gPiA+ID4gPiA+ICsgIEVGSV9TSUdOQVRVUkVfREFUQSAgKkNl cnREYXRhOw0KPiA+ID4gPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgIENlcnRDb3VudDsN Cj4gPiA+ID4gPiA+ID4gKyAgVUlOVE4gICAgICAgICAgICAgICBJbmRleDsNCj4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPiArICBTdGF0dXMgPSBHZXRWYXJpYWJsZTIgKE5hbWUsIEd1aWQs ICZEYXRhLA0KPiAmTGVuZ3RoKTsgIGlmDQo+ID4gPiA+ID4gPiA+ICsgKEVGSV9FUlJPUg0KPiA+ ID4gPiA+ID4gPiArIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9O T1RfRk9VTkQ7DQo+ID4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ ID4gPiArICBDZXJ0TGlzdCA9IChFRklfU0lHTkFUVVJFX0xJU1QgKikgRGF0YTsNCj4gd2hpbGUg KChMZW5ndGggPiAwKQ0KPiA+ID4gPiA+ID4gPiArICYmIChMZW5ndGggPj0gQ2VydExpc3QtDQo+ ID5TaWduYXR1cmVMaXN0U2l6ZSkpIHsNCj4gPiA+ID4gPiA+ID4gKyAgICBpZiAoQ29tcGFyZUd1 aWQgKCZDZXJ0TGlzdC0NCj4gPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFg1MDlHdWlkKSkNCj4g PiA+IHsNCj4gPiA+ID4gPiA+ID4gKyAgICAgIENlcnREYXRhICA9IChFRklfU0lHTkFUVVJFX0RB VEEgKikNCj4gKChVSU5UOCAqKSBDZXJ0TGlzdCArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIHNp emVvZiAoRUZJX1NJR05BVFVSRV9MSVNUKSArDQo+IENlcnRMaXN0LT5TaWduYXR1cmVIZWFkZXJT aXplKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgIENlcnRDb3VudCA9IChDZXJ0TGlzdC0NCj4gPlNp Z25hdHVyZUxpc3RTaXplIC0gc2l6ZW9mDQo+ID4gPiA+ID4gPiA+ICsgKEVGSV9TSUdOQVRVUkVf TElTVCkNCj4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIENlcnRMaXN0LT5TaWdu YXR1cmVIZWFkZXJTaXplKSAvDQo+ID4gPiA+ID4gPiA+ICsgQ2VydExpc3QtPlNpZ25hdHVyZVNp emU7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgIGZvciAoSW5kZXggPSAw OyBJbmRleCA8IENlcnRDb3VudDsNCj4gSW5kZXgrKykgew0KPiA+ID4gPiA+ID4gPiArICAgICAg ICBTdGF0dXMgPSBBdXRoZW50aWNhdGVGbXBJbWFnZSAoDQo+ID4gPiA+ID4gPiA+ICsNCj4gKEVG SV9GSVJNV0FSRV9JTUFHRV9BVVRIRU5USUNBVElPTiAqKUltYWdlLA0KPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgIEltYWdlU2l6ZSwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICAgICBDZXJ0RGF0YS0+U2lnbmF0dXJlRGF0YSwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICBDZXJ0TGlzdC0+U2lnbmF0dXJlU2l6ZQ0KPiAtIHNpemVvZiAoRUZJX0dVSUQp DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgKTsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgaWYgKCFFRklfRVJST1IgKFN0YXR1cykpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg Z290byBEb25lOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIENlcnRE YXRhID0gKEVGSV9TSUdOQVRVUkVfREFUQSAqKQ0KPiAoKFVJTlQ4ICopIENlcnREYXRhICsNCj4g PiA+ID4gPiA+ID4gKyBDZXJ0TGlzdC0NCj4gPiA+ID4gPiA+ID4gPlNpZ25hdHVyZVNpemUpOw0K PiA+ID4gPiA+ID4gPiArICAgICAgfQ0KPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgIExlbmd0aCAtPSBDZXJ0TGlzdC0+U2lnbmF0dXJlTGlz dFNpemU7DQo+ID4gPiA+ID4gPiA+ICsgICAgQ2VydExpc3QgPSAoRUZJX1NJR05BVFVSRV9MSVNU ICopDQo+ICgoVUlOVDggKikgQ2VydExpc3QgKw0KPiA+ID4gPiA+ID4gPiArIENlcnRMaXN0LT5T aWduYXR1cmVMaXN0U2l6ZSk7ICB9DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gK0Rv bmU6DQo+ID4gPiA+ID4gPiA+ICsgIEZyZWVQb29sIChEYXRhKTsNCj4gPiA+ID4gPiA+ID4gKyAg cmV0dXJuIFN0YXR1czsNCj4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gPiA+ID4gPiArQ2hlY2tUaGVJbWFnZVdpdGhTZWN1 cmVCb290S2V5cyAoDQo+ID4gPiA+ID4gPiA+ICsgIElOICBDT05TVCBWT0lEICAqSW1hZ2UsDQo+ ID4gPiA+ID4gPiA+ICsgIElOICBVSU5UTiAgICAgICBJbWFnZVNpemUNCj4gPiA+ID4gPiA+ID4g KyAgKQ0KPiA+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gPiArICBFRklfU1RBVFVTICBTdGF0 dXM7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgLy8gUEsgY2hlY2suDQo+ID4g PiA+ID4gPiA+ICsgIFN0YXR1cyA9DQo+IENoZWNrVGhlSW1hZ2VXaXRoU2VjdXJlQm9vdFZhcmlh YmxlKA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgIEVGSV9QTEFURk9STV9LRVlfTkFNRSwN Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAmZ0VmaUdsb2JhbFZhcmlhYmxlR3VpZCwNCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBJbWFnZSwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICBJbWFnZVNpemUNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ ID4gPiArICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSB8fCBTdGF0dXMgPT0NCj4gRUZJX05PVF9G T1VORCkgew0KPiA+ID4gPiA+ID4gPiArICAgIC8vIFJldHVybiBTVUNDRVNTIGlmIHZlcmlmaWVk IGJ5IFBLIGtleQ0KPiBvciBQSyBrZXkgbm90IGNvbmZpZ3VyZWQuDQo+ID4gPiA+ID4gPiA+ICsg ICAgREVCVUcgKChERUJVR19JTkZPLCAiRm1wRHhlOiBWZXJpZmllZA0KPiBjYXBzdWxlIHdpdGgg UEsNCj4gPiA+IGtleS5cbiIpKTsNCj4gPiA+ID4gPiA+ID4gKyAgICByZXR1cm4gRUZJX1NVQ0NF U1M7DQo+ID4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAr ICAvLyBEQlggY2hlY2suDQo+ID4gPiA+ID4gPiA+ICsgIFN0YXR1cyA9DQo+IENoZWNrVGhlSW1h Z2VXaXRoU2VjdXJlQm9vdFZhcmlhYmxlKA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgIEVG SV9JTUFHRV9TRUNVUklUWV9EQVRBQkFTRTEsDQo+ID4gPiA+ID4gPiA+ICsNCj4gJmdFZmlJbWFn ZVNlY3VyaXR5RGF0YWJhc2VHdWlkLA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgIEltYWdl LA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgIEltYWdlU2l6ZQ0KPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgICk7DQo+ID4gPiA+ID4gPiA+ICsgIGlmICghRUZJX0VSUk9SIChTdGF0dXMp KSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiRm1wRHhlOiBSZWpl Y3QNCj4gY2Fwc3VsZSB3aXRoIERCWA0KPiA+ID4ga2V5LlxuIikpOw0KPiA+ID4gPiA+ID4gPiAr ICAgIHJldHVybiBFRklfU0VDVVJJVFlfVklPTEFUSU9OOyAgfQ0KPiA+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiA+ICsgIC8vIERCIGNoZWNrLg0KPiA+ID4gPiA+ID4gPiArICBERUJVRyAoKERF QlVHX0lORk8sICJGbXBEeGU6IFZlcmlmeQ0KPiBjYXBzdWxlIHdpdGggREINCj4gPiA+ID4gPiA+ ID4gK2tleS5cbiIpKTsNCj4gPiA+ID4gPiA+ID4gKyAgU3RhdHVzID0NCj4gQ2hlY2tUaGVJbWFn ZVdpdGhTZWN1cmVCb290VmFyaWFibGUoDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgRUZJ X0lNQUdFX1NFQ1VSSVRZX0RBVEFCQVNFLA0KPiA+ID4gPiA+ID4gPiArDQo+ICZnRWZpSW1hZ2VT ZWN1cml0eURhdGFiYXNlR3VpZCwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBJbWFnZSwN Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBJbWFnZVNpemUNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICApOw0KPiA+ID4gPiA+ID4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ ID4gPiArfQ0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+ ID4gICAgQ2hlY2tzIGlmIHRoZSBmaXJtd2FyZSBpbWFnZSBpcyB2YWxpZCBmb3INCj4gdGhlIGRl dmljZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQEAgLTcyOCw2ICs4MjQsNyBAQCBD aGVja1RoZUltYWdlICgNCj4gPiA+ID4gPiA+ID4gICAgVUlOVDgNCj4gKlB1YmxpY0tleURhdGFY ZHJFbmQ7DQo+ID4gPiA+ID4gPiA+ICAgIEVGSV9GSVJNV0FSRV9JTUFHRV9ERVANCj4gKkRlcGVu ZGVuY2llczsNCj4gPiA+ID4gPiA+ID4gICAgVUlOVDMyDQo+IERlcGVuZGVuY2llc1NpemU7DQo+ ID4gPiA+ID4gPiA+ICsgIFVJTlQ4DQo+IEFsbG93U2VjdXJlQm9vdEtleXM7DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICAgIFN0YXR1cyAgICAgICAgICAgPSBFRklfU1VDQ0VTUzsNCj4g PiA+ID4gPiA+ID4gICAgUmF3U2l6ZSAgICAgICAgICA9IDA7DQo+ID4gPiA+ID4gPiA+IEBAIC03 ODIsOSArODc5LDE1IEBAIENoZWNrVGhlSW1hZ2UgKA0KPiA+ID4gPiA+ID4gPiAgICBQdWJsaWNL ZXlEYXRhWGRyICAgID0gUGNkR2V0UHRyDQo+ID4gPiAoUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVm ZmVyWGRyKTsNCj4gPiA+ID4gPiA+ID4gICAgUHVibGljS2V5RGF0YVhkckVuZCA9IFB1YmxpY0tl eURhdGFYZHIgKw0KPiBQY2RHZXRTaXplDQo+ID4gPiA+ID4gPiA+IChQY2RGbXBEZXZpY2VQa2Nz N0NlcnRCdWZmZXJYZHIpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICBpZiAoUHVi bGljS2V5RGF0YVhkciA9PSBOVUxMIHx8DQo+IChQdWJsaWNLZXlEYXRhWGRyID09DQo+ID4gPiA+ ID4gPiA+IFB1YmxpY0tleURhdGFYZHJFbmQpKSB7DQo+ID4gPiA+ID4gPiA+IC0gICAgREVCVUcg KChERUJVR19FUlJPUiwgIkZtcER4ZSglcyk6DQo+IEludmFsaWQgY2VydGlmaWNhdGUsIHNraXBw aW5nDQo+ID4gPiBpdC5cbiIsDQo+ID4gPiA+ID4gPiA+IG1JbWFnZUlkTmFtZSkpOw0KPiA+ID4g PiA+ID4gPiAtICAgIFN0YXR1cyA9IEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPiArICBpZiAo UHVibGljS2V5RGF0YVhkciA9PSBOVUxMIHx8DQo+IChQdWJsaWNLZXlEYXRhWGRyRW5kIC0NCj4g PiA+ID4gPiA+ID4gKyBQdWJsaWNLZXlEYXRhWGRyDQo+ID4gPiA+ID4gPiA+IDwgc2l6ZW9mIChV SU5UMzIpKSkgew0KPiA+ID4gPiA+ID4gPiArICAgIEFsbG93U2VjdXJlQm9vdEtleXMgPSBQY2RH ZXQ4DQo+ID4gPiA+ID4gKFBjZEZtcERldmljZUFsbG93U2VjdXJlQm9vdEtleXMpOw0KPiA+ID4g PiA+ID4gPiArICAgIGlmIChBbGxvd1NlY3VyZUJvb3RLZXlzKSB7DQo+ID4gPiA+ID4gPiA+ICsg ICAgICBERUJVRyAoKERFQlVHX0lORk8sICJGbXBEeGU6IFVzZQ0KPiBzZWN1cmUgYm9vdCBjZXJ0 cy5cbiIpKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgIFN0YXR1cyA9DQo+IENoZWNrVGhlSW1hZ2VX aXRoU2VjdXJlQm9vdEtleXMgKEltYWdlLA0KPiA+ID4gSW1hZ2VTaXplKTsNCj4gPiA+ID4gPiA+ ID4gKyAgICB9IGVsc2Ugew0KPiA+ID4gPiA+ID4gPiArICAgICAgREVCVUcgKChERUJVR19FUlJP UiwgIkZtcER4ZSglcyk6DQo+IEludmFsaWQgY2VydGlmaWNhdGUsDQo+ID4gPiA+ID4gPiA+ICsg c2tpcHBpbmcNCj4gPiA+ID4gPiA+ID4gaXQuXG4iLCBtSW1hZ2VJZE5hbWUpKTsNCj4gPiA+ID4g PiA+ID4gKyAgICAgIFN0YXR1cyA9IEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPiArICAgIH0N Cj4gPiA+ID4gPiA+ID4gICAgfSBlbHNlIHsNCj4gPiA+ID4gPiA+ID4gICAgICAvLw0KPiA+ID4g PiA+ID4gPiAgICAgIC8vIFRyeSBlYWNoIGtleSBmcm9tDQo+IFBjZEZtcERldmljZVBrY3M3Q2Vy dEJ1ZmZlclhkciBkaWZmDQo+ID4gPiA+ID4gPiA+IC0tZ2l0IGEvRm1wRGV2aWNlUGtnL0ZtcER4 ZS9GbXBEeGUuaA0KPiA+ID4gPiA+ID4gPiBiL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmgN Cj4gPiA+ID4gPiBpbmRleA0KPiA+ID4gPiA+ID4gPiAzMDc1NGRlLi43MmE2Y2U2IDEwMDY0NA0K PiA+ID4gPiA+ID4gPiAtLS0gYS9GbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5oDQo+ID4gPiA+ ID4gPiA+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmgNCj4gPiA+ID4gPiA+ID4g QEAgLTM0LDYgKzM0LDcgQEANCj4gPiA+ID4gPiA+ID4gICNpbmNsdWRlIDxQcm90b2NvbC9GaXJt d2FyZU1hbmFnZW1lbnQuaD4NCj4gI2luY2x1ZGUNCj4gPiA+ID4gPiA+ID4gPFByb3RvY29sL0Zp cm13YXJlTWFuYWdlbWVudFByb2dyZXNzLmg+DQo+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8UHJv dG9jb2wvVmFyaWFibGVMb2NrLmg+DQo+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8R3VpZC9JbWFn ZUF1dGhlbnRpY2F0aW9uLmg+DQo+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8R3VpZC9TeXN0ZW1S ZXNvdXJjZVRhYmxlLmg+DQo+ICNpbmNsdWRlDQo+ID4gPiA+ID4gPiA+IDxHdWlkL0V2ZW50R3Jv dXAuaD4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL0ZtcERldmlj ZVBrZy9GbXBEeGUvRm1wRHhlLmluZg0KPiA+ID4gPiA+ID4gPiBiL0ZtcERldmljZVBrZy9GbXBE eGUvRm1wRHhlLmluZiBpbmRleA0KPiBlZWI5MDRhLi42MGIwMmQ0DQo+ID4gPiAxMDA2NDQNCj4g PiA+ID4gPiA+ID4gLS0tIGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaW5mDQo+ID4gPiA+ ID4gPiA+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmluZg0KPiA+ID4gPiA+ID4g PiBAQCAtNTgsNiArNTgsOCBAQA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgW0d1aWRz XQ0KPiA+ID4gPiA+ID4gPiAgICBnRWZpRW5kT2ZEeGVFdmVudEdyb3VwR3VpZA0KPiA+ID4gPiA+ ID4gPiArICBnRWZpQ2VydFg1MDlHdWlkDQo+ID4gPiA+ID4gPiA+ICsgIGdFZmlJbWFnZVNlY3Vy aXR5RGF0YWJhc2VHdWlkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICBbUHJvdG9jb2xz XQ0KPiA+ID4gPiA+ID4gPiAgICBnRWRraWlWYXJpYWJsZUxvY2tQcm90b2NvbEd1aWQNCj4gIyMg Q09OU1VNRVMNCj4gPiA+ID4gPiA+ID4gQEAgLTc0LDYgKzc2LDcgQEANCj4gPiA+ID4gPiA+ID4N Cj4gZ0ZtcERldmljZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZl clgNCj4gZHINCj4gPiA+ID4gPiA+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VUZXN0S2V5U2hhMjU2 RGlnDQo+IGVzdA0KPiA+ID4gPiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPg0KPiBn Rm1wRGV2aWNlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRm1wRGV2aWNlSW1hZ2VUeXBlSWRHdWlkDQo+ ID4gPiA+ID4gPiA+ICMjIENPTlNVTUVTDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+DQo+IGdGbXBE ZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VBbGxvd1NlY3VyZUJvb3RLDQo+IGV5 cw0KPiA+ID4gPiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPg0KPiBnRWZpTWRlTW9k dWxlUGtnVG9rZW5TcGFjZUd1aWQuUGNkVGVzdEtleVVzZWQNCj4gPiA+ICMjDQo+ID4gPiA+ID4g PiA+IFNPTUVUSU1FU19QUk9EVUNFUw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgW0Rl cGV4XQ0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0DQo+IGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9G bXBEeGVMaWIuaW5mDQo+ID4gPiA+ID4gPiA+IGIvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGVM aWIuaW5mDQo+ID4gPiA+ID4gPiA+IGluZGV4IDlhOTNiNWUuLjEzMDhjYWUgMTAwNjQ0DQo+ID4g PiA+ID4gPiA+IC0tLSBhL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlTGliLmluZg0KPiA+ID4g PiA+ID4gPiArKysgYi9GbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZUxpYi5pbmYNCj4gPiA+ID4g PiA+ID4gQEAgLTc0LDYgKzc0LDcgQEANCj4gPiA+ID4gPiA+ID4NCj4gZ0ZtcERldmljZVBrZ1Rv a2VuU3BhY2VHdWlkLlBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZlclgNCj4gZHINCj4gPiA+ID4g PiA+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+DQo+IGdGbXBEZXZpY2VQa2dU b2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VUZXN0S2V5U2hhMjU2RGlnDQo+IGVzdA0KPiA+ID4g PiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPg0KPiBnRm1wRGV2aWNlUGtnVG9rZW5T cGFjZUd1aWQuUGNkRm1wRGV2aWNlSW1hZ2VUeXBlSWRHdWlkDQo+ID4gPiA+ID4gPiA+ICMjIENP TlNVTUVTDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+DQo+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNl R3VpZC5QY2RGbXBEZXZpY2VBbGxvd1NlY3VyZUJvb3RLDQo+IGV5cw0KPiA+ID4gPiA+ID4gPiAj IyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPg0KPiBnRWZpTWRlTW9kdWxlUGtnVG9rZW5TcGFjZUd1 aWQuUGNkVGVzdEtleVVzZWQNCj4gPiA+ICMjDQo+ID4gPiA+ID4gPiA+IFNPTUVUSU1FU19QUk9E VUNFUw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgW0RlcGV4XQ0KPiA+ID4gPiA+ID4g PiAtLQ0KPiA+ID4gPiA+ID4gPiAxLjguMy4xDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4gPiA+DQo+ID4gPiA+DQo+IA0KPiANCj4gDQoNCg==