From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mx.groups.io with SMTP id smtpd.web12.9050.1595378292406865071 for ; Tue, 21 Jul 2020 17:38:12 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=w8E0FobT; spf=pass (domain: intel.com, ip: 192.55.52.136, mailfrom: guomin.jiang@intel.com) IronPort-SDR: gqzxAwBqMMcv4w4hzkobATWp4jUaaus5rgl3PjBRNzdGDb7E0hdxFdNTGlw8Ua5fbxr99YgRl+ NiN0/t2t5AEA== X-IronPort-AV: E=McAfee;i="6000,8403,9689"; a="129819648" X-IronPort-AV: E=Sophos;i="5.75,380,1589266800"; d="scan'208";a="129819648" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2020 17:38:11 -0700 IronPort-SDR: eCKLyaZkSMdrDIY3u3dcbK2AxFAcaye34dx3KGhtxK748OHmj7mXfyhk6VxY/x7xp1Hif6enpH qGkmspZ0kDvQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,380,1589266800"; d="scan'208";a="362551602" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga001.jf.intel.com with ESMTP; 21 Jul 2020 17:38:10 -0700 Received: from fmsmsx152.amr.corp.intel.com (10.18.125.5) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 21 Jul 2020 17:38:09 -0700 Received: from FMSEDG001.ED.cps.intel.com (10.1.192.133) by FMSMSX152.amr.corp.intel.com (10.18.125.5) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 21 Jul 2020 17:38:09 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.100) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 21 Jul 2020 17:38:09 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NDqSSTxEq1AG37fJ8mMPhZpqmD5g44N6DBr7iav6WEZ2Zrm9/DuaaRtM7PiwWXSinGIZN/3VI+kdO0Ni6/rwaWGIXHP2mP9RP7QC4IYtF2ZKzUxfHzcOLcEuwKDzwjCFzySLAj1IOw/wwpDhPB49XNEh6tBNt2yTZLFzaAEhv/YQ6s3PXEaTD/GN0BbsKJocL/MhDQAEjrAfJq14Xo6MjGyZuAFwT3AhmT0P3/gZvDGOa/m8roUYVfORyEA2mQe26YOT+TZblfNkXUPl324+5eZw0/FL9QiAtoy8OEdBIsH4dODAANIFCECdl7RrFF+NIKsECsummnCOLxYt5bHveQ== 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=GA3GdQNE+c2+RxDPbm1TqKzhvC792IStyWZctVuJ+u0=; b=S/jAhoOPxtYJ734w/RklIJmnNaFUkksqFfEy7Vr/Mx3pcoi544e4rRNlkhyfZ3bKBRHCh9yG13e+Kpe0vEZe++F+YGIASTjuhhCaBRSNLnhhrLgvTxZczxFOvFafeOj9G+x3FWTmg4VSMzGReX6Cp0a5NQf5CVVcWNqE3gjvqNgYhPUNUzXFnDVjXJpM5pevTditsLIwH4ZMdvflv98VVMK6RCgLSlseghtyWulsDDDItA1VGhKhj8heiULGWxmeDy4LLErdHEeVySURH8auLeMp1S4/OOspgnycPeVkjHHFblKZGLCJI46Kf749+SQnphNo3wkaI5acnaCE6l82LA== 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=GA3GdQNE+c2+RxDPbm1TqKzhvC792IStyWZctVuJ+u0=; b=w8E0FobTImZq2ZZEi9Mdjty6I0TDgjfTnXF2BaoAWpD7NeTNzVuFE2YUyjHxqvkEMg1qNDkcfxQuS1cvI8pKPL2oidPvZcLSAw+f90NI0lc8PBzBPQYHZD6L/za5ggsqiy7fvoHcr7mJ1WBeMd76YIREZZz31k6eEgcrw8q3S9k= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM6PR11MB4426.namprd11.prod.outlook.com (2603:10b6:5:1d8::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.20; Wed, 22 Jul 2020 00:37:59 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d%5]) with mapi id 15.20.3174.027; Wed, 22 Jul 2020 00:37:59 +0000 From: "Guomin Jiang" To: "Kinney, Michael D" , "devel@edk2.groups.io" , "lsun@mellanox.com" , "Xu, Wei6" , "Gao, Liming" , "Ni, Ray" , "Zimmer, Vincent" , "Rothman, Michael A" 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: AQHWRmLn4qcSWkWl3EKmf7xe2byxn6ju+QaQgAGYoICAAEGHYIAAWSwAgADGtCCAAQjvAIAAFUQAgAgSgACAATncgIAWlfeQ Date: Wed, 22 Jul 2020 00:37:58 +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-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.203] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f91dc709-6653-4316-dcc3-08d82dd77bf3 x-ms-traffictypediagnostic: DM6PR11MB4426: x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6790; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8qHMqKIe9o3UeMuJaKUFai6nRhKQH8O6ir1rMs/+hH/kaCN+T3xafxR7KyTvlcaFeODIrqE4gU7KJKhPO2adCrg3YtD1v8bNf04EyOLHVooMCDMSp4OY8ThhANwKBCrXmLqbSy5b3zXIbgEMUNk6fN5/Jm4IW4d9T7Rue2TVKBpSNKcT310myR/XsyJnAj5OtTIozXGs58i+9eWOqIA+VWX/T8JWZYEwqWwR57TXj/7u5q/AAipylrmEzxfPK1058V2Xk0sdL143jhR0FQXSlpgAFiTLOM4x3mjzCYQlNm00K8AHRiboSDLMRCBfZ2Zn8LAGfg2QD7aaZ6Fa2UDHNaeX8+eK00fPdX0LeR2uktfsB4ucjImYCRq1g78zpeF+JbVPz2YA1g7drRvvpd0NnXZ6t0OsyB8/NjOo38OAkdyMX0meYUoL1XjKjn5gF4d0 x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(376002)(366004)(136003)(346002)(39860400002)(19627235002)(83380400001)(71200400001)(26005)(186003)(55016002)(30864003)(4326008)(6506007)(5660300002)(86362001)(478600001)(8936002)(7696005)(53546011)(316002)(966005)(9686003)(15650500001)(33656002)(6636002)(110136005)(66556008)(66446008)(8676002)(52536014)(66476007)(66946007)(64756008)(76116006)(2906002)(921003)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: drfNGfctVHZ/TJJyCbe9pc1T1VVwYVqfV1Efhq10QnX0gik8OeKqJlqWZJXFi9NzCXG8Z5cPf3SeGsO0ZzxtvQiXdEsnIcW7J8I7L32Ezz7OkUfnu011/+eWnkcltqel/VJZh60Wji7A2yHtqqk2nuWeyXfvmf+N8KgI1DuQ+aQaRQc2fwEO/Ig7BDDAvz/eseAzTm0NznfQVtLCFyGU0hfLfNdiFuw02T/Tr0VEv3MHnPfJRoeoXmDuCFKYrrc4SW2ZVv/lqpnNK1xAslwVP05BfNIhQ4yf6W/SVBdn5AZ6UB835/LeQjik12YEJaFfA3+bv9G5CkWdwVIG5dbUO+Uwf6/1L2EK2xH3b9gRvXDu+liB9rvwh0IKB86qCbu92Rt5ApD3r51pyjWBPt+EFD/x7wYjmXnKCCwkp2/ElUSyR9nlUoF0Ef0noGtyA48EDfNlSDPx3YjMX25lxedism9dEVS0p24bGQvvB7BH1mRHcUd+av70dtxG+P9w9rkM MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2955.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f91dc709-6653-4316-dcc3-08d82dd77bf3 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2020 00:37:58.8495 (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: d/JQ/mgswbdIt1Ii3RlU1SKX1lNrRNSlwunDvIHz3fCJcMeVfOR4H6B8PoqpGW1VObWG9dLUS9g0GUB1MGWc2Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4426 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIHRvcGljIGlzIGRvbmUgb3IgZHJvcHBlZD8NCg0KQW55IHN0YXR1cyB1cGRhdGUgb3IgZGVj aXNpb24gbWFraW5nPw0KDQpUaGFua3MNCkd1b21pbg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut LS0tLQ0KPiBGcm9tOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+DQo+IFNlbnQ6IFR1ZXNkYXksIEp1bHkgNywgMjAyMCAxMTo0MiBQTQ0KPiBUbzogZGV2ZWxA ZWRrMi5ncm91cHMuaW87IGxzdW5AbWVsbGFub3guY29tOyBKaWFuZywgR3VvbWluDQo+IDxndW9t aW4uamlhbmdAaW50ZWwuY29tPjsgWHUsIFdlaTYgPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLCBM aW1pbmcNCj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNv bT47IFppbW1lciwgVmluY2VudA0KPiA8dmluY2VudC56aW1tZXJAaW50ZWwuY29tPjsgUm90aG1h biwgTWljaGFlbCBBDQo+IDxtaWNoYWVsLmEucm90aG1hbkBpbnRlbC5jb20+OyBLaW5uZXksIE1p Y2hhZWwgRA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+IENjOiBTZWFuIEJyb2dh biA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVs XSBbUEFUQ0hdIEZtcERldmljZVBrZzogRW5oYW5jZSBjYXBzdWxlDQo+IHZlcmlmaWNhdGlvbiB3 aXRoIHNlY3VyZSBib290IGtleXMNCj4gDQo+IEhpIExpbWluZyBTdW4sDQo+IA0KPiBUaGFuayB5 b3UgZm9yIHByb3ZpZGluZyB0aGUgYWRkaXRpb25hbCBkZXRhaWxzLg0KPiANCj4gVGhlIHVzZSBj YXNlIGRlc2NyaXB0aW9uIGlzIHZlcnkgYnJpZWYgYW5kIGFwcGVhcnMgdGhhdCBpdCBtYXkgbm90 IGZvbGxvdw0KPiBzb21lIG9mIHRoZSBVRUZJIFNwZWNpZmljYXRpb24gcmVxdWlyZW1lbnRzLg0K PiBJIHdhbnQgdG8gbWFrZSBzdXJlIHdlIGhhdmUgYSBjbGVhciB1bmRlcnN0YW5kaW5nIG9mIHRo ZSB1c2UgY2FzZXMgd2l0aA0KPiBzb21lIG9mIHRoZSBVRUZJIFNlY3VyZSBCb290IGFuZCBGaXJt d2FyZSBVcGRhdGVzIGV4cGVydHMuDQo+IA0KPiBXZSBoYXZlIGEgVGlhbm9Db3JlIGRlc2lnbiBt ZWV0aW5nIHRoYXQgaXMgaG9zdGVkIGJ5IFJheSBOaS4NCj4gDQo+IENhbiB5b3UgcGxlYXNlIHdv cmsgd2l0aCBSYXkgdG8gZ2V0IG9udG8gdGhlIGFnZW5kYSBmb3IgdGhhdCBtZWV0aW5nIHdoZXJl DQo+IHlvdSBjYW4gcHJlc2VudCB5b3VyIGlkZWFzPw0KPiANCj4gVGhhbmtzLA0KPiANCj4gTWlr ZQ0KPiANCj4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IGRldmVsQGVk azIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExpbWluZw0K PiA+IFN1bg0KPiA+IFNlbnQ6IE1vbmRheSwgSnVseSA2LCAyMDIwIDE6NTkgUE0NCj4gPiBUbzog S2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4gPiBkZXZl bEBlZGsyLmdyb3Vwcy5pbzsgSmlhbmcsIEd1b21pbiA8Z3VvbWluLmppYW5nQGludGVsLmNvbT47 IFh1LA0KPiBXZWk2DQo+ID4gPHdlaTYueHVAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWlu Zy5nYW9AaW50ZWwuY29tPg0KPiA+IENjOiBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9z b2Z0LmNvbT4NCj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gRm1wRGV2aWNl UGtnOiBFbmhhbmNlIGNhcHN1bGUNCj4gPiB2ZXJpZmljYXRpb24gd2l0aCBzZWN1cmUgYm9vdCBr ZXlzDQo+ID4NCj4gPiBUaGFua3MgTWljaGFlbC4gQmVsb3cgaXMgdGhlIHVzZSBjYXNlOg0KPiA+ DQo+ID4gLSBEZXZpY2UgdmVuZG9yIHByb3ZpZGVzIGRldmljZXMgd2l0aCBVRUZJIHByZWluc3Rh bGxlZDsNCj4gPiAtIEN1c3RvbWVyIGdldHMgdGhlIGRldmljZSBpbiBub24tc2VjdXJlLWJvb3Qg bW9kZSBieSBkZWZhdWx0LCBhbmQNCj4gPiB3b3VsZCBsaWtlIHRvIGVucm9sbCB0aGUgc2VjdXJl IGJvb3Qga2V5cyB0aGVtc2VsdmVzIGluIHNvbWUgYXV0b21hdGljDQo+ID4gd2F5IChzdWNoIGFz IHVzaW5nIGNhcHN1bGUpLg0KPiA+DQo+ID4gUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRy IGlzIG5vdCB1c2VkIGZvciB0d28gcmVhc29ucyBmb3IgdGhpcw0KPiA+IHVzZSBjYXNlOg0KPiA+ IDEuIFNpbXBsaWNpdHkuIFNvIHZlbmRvciBkb2Vzbid0IG5lZWQgdG8gYmUgaW52b2x2ZWQgaW4g dGhlIGtleQ0KPiA+IG1hbmFnZW1lbnQsIGFuZCBjdXN0b21lciBjb3VsZCBjcmVhdGUgYW5kIHNp Z24gdGhlIGNhcHN1bGUgdGhlbXNlbHZlcy4NCj4gPiAyLiBTZWN1cmUgcmVhc29ucy4gT25jZSBj dXN0b21lciBmdWxseSBvd24gdGhlIGRldmljZSBhbmQgcHV0IGl0IGludG8NCj4gPiBzZWN1cmUt Ym9vdCBtb2RlLCBldmVuIHRoZSBjYXBzdWxlIGZyb20gdGhlIGRldmljZSB2ZW5kb3IgY291bGRu J3QgYmUNCj4gPiBhcHBsaWVkIHdpdGhvdXQgYmVpbmcgc2lnbmVkIGJ5IGN1c3RvbWVyLiAoVGhl IGhhcmRjb2RlZA0KPiA+IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZlclhkciBjb3VsZG4ndCBh Y2hpZXZlIHRoaXMgZ29hbCkuDQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gTGltaW5nDQo+ID4NCj4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBXZWRuZXNkYXks IEp1bHkgMSwgMjAyMCAxOjQzIFBNDQo+ID4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW87IExp bWluZyBTdW4NCj4gPiA8bHN1bkBtZWxsYW5veC5jb20+OyBKaWFuZywgR3VvbWluDQo+ID4gPGd1 b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBYdSwgV2VpNg0KPiA+ID4gPHdlaTYueHVAaW50ZWwuY29t PjsgR2FvLCBMaW1pbmcNCj4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksIE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzogU2VhbiBCcm9nYW4g PHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gRm1wRGV2aWNlUGtnOg0KPiA+IEVuaGFuY2UgY2Fwc3VsZSB2ZXJpZmljYXRp b24gd2l0aCBzZWN1cmUgYm9vdCBrZXlzDQo+ID4gPg0KPiA+ID4gTGltaW5nIFN1biwNCj4gPiA+ DQo+ID4gPiBDYW4geW91IGV4cGxhaW4gd2h5IHlvdSBjYW5ub3QgdXNlDQo+ID4gUGNkRm1wRGV2 aWNlUGtjczdDZXJ0QnVmZmVyWGRyDQo+ID4gPiBmb3IgeW91ciB1c2UgY2FzZT8gIEkgd2FudCB0 byB1bmRlcnN0YW5kIHRoZSB1c2UgY2FzZQ0KPiA+IHRvIHNlZSBpZg0KPiA+ID4gdGhhdCBmZWF0 dXJlIGNhbiBiZSBhcHBsaWVkIG9yIGlmIGEgbWlub3IgZW5oYW5jZW1lbnQNCj4gPiB0byB0aGlz DQo+ID4gPiBmZWF0dXJlIGNhbiB3b3JrLg0KPiA+ID4NCj4gPiA+IFVzaW5nIHRoZSBVRUZJIFNl Y3VyZSBCb290IERCIGZvciBhbnl0aGluZyBvdGhlciB0aGFuDQo+ID4gYXV0aGVudGljYXRpb24N Cj4gPiA+IG9mIFVFRkkgYm9vdCBsb2FkZXJzIGlzIG5vdCByZWNvbW1lbmRlZC4NCj4gPiA+DQo+ ID4gPiBUaGFua3MsDQo+ID4gPg0KPiA+ID4gTWlrZQ0KPiA+ID4NCj4gPiA+ID4gLS0tLS1Pcmln aW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRl dmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+ID4gTGltaW5nIFN1bg0KPiA+ ID4gPiBTZW50OiBXZWRuZXNkYXksIEp1bHkgMSwgMjAyMCA5OjI3IEFNDQo+ID4gPiA+IFRvOiBK aWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW87DQo+ID4gPiA+IFh1LCBXZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT47DQo+ID4gR2FvLA0KPiA+ ID4gPiBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4g PiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiBDYzogU2VhbiBCcm9n YW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+IFN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1BBVENIXSBGbXBEZXZpY2VQa2c6DQo+ID4gRW5oYW5jZQ0KPiA+ID4gPiBjYXBz dWxlIHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBib290IGtleXMNCj4gPiA+ID4NCj4gPiA+ID4g Pj4gQnV0IGlmIHlvdXIgY3VzdG9tZXIgaW5kZWVkIHdhbnQgaXQsIHlvdSBjYW4gYWRkDQo+ID4g aXQNCj4gPiA+ID4gdG8geW91ciBjdXN0b21pemF0aW9uIGNvZGUuDQo+ID4gPiA+IFRoYW5rcy4g WWVzLCB0aGlzIGlzIGEgYmVoYXZpb3IgY3VzdG9tZXIgZXhwZWN0cy4NCj4gPiBUaGlzDQo+ID4g PiA+IGNoYW5nZSBqdXN0IHRyaWVzIHRvIHByb3ZpZGUgYSBoYW5keSB3YXkgdG8gZW5yb2xsIGlu aXRpYWwga2V5cy4NCj4gPiA+ID4gU28gdGhlIGluaXRpYWwga2V5cyBjb3VsZCBiZSBjYXJyaWVk IGluIHRoZSBjYXBzdWxlIGl0c2VsZi4NCj4gPiA+ID4gSXQgYWxzbyBoYXMgIlBjZEZtcERldmlj ZUFsbG93U2VjdXJlQm9vdEtleXMiDQo+ID4gZGlzYWJsZWQNCj4gPiA+ID4gYnkgZGVmYXVsdCwg c28gaXQgYmVoYXZlcyB0aGUgc2FtZSBhcyBiZWZvcmUuDQo+ID4gPiA+DQo+ID4gPiA+IFdlJ2xs IHRyeSB0byB1c2UgY3VzdG9taXphdGlvbiBjb2RlIGluc3RlYWQgYXMgc3VnZ2VzdGVkLg0KPiA+ ID4gPg0KPiA+ID4gPiBUaGFua3MsDQo+ID4gPiA+IExpbWluZw0KPiA+ID4gPg0KPiA+ID4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogSmlhbmcsIEd1b21p biA8Z3VvbWluLmppYW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBKdW5l IDMwLCAyMDIwIDg6NTYgUE0NCj4gPiA+ID4gPiBUbzogTGltaW5nIFN1biA8bHN1bkBtZWxsYW5v eC5jb20+Ow0KPiA+ID4gPiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgWHUsIFdlaTYgPHdlaTYueHVA aW50ZWwuY29tPjsNCj4gPiBHYW8sDQo+ID4gPiA+IExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5j b20+Ow0KPiA+ID4gPiA+IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPiA+ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5j b20+DQo+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdIEZtcERldmlj ZVBrZzoNCj4gPiA+ID4gRW5oYW5jZSBjYXBzdWxlIHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBi b290IGtleXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEkgd2FudCB0byBhc2sgeW91ciBvbmUgcXVl c3Rpb246IGFyZSB5b3Ugc3VyZSB0aGF0DQo+ID4gPiA+IGV2ZXJ5IG1vdGhlciBib2FyZCB3aGlj aCBkZWxpdmVyIHRvIGN1c3RvbWVyIHdpbGwNCj4gPiBlbmFibGUNCj4gPiA+ID4gdGhlIHNlY3Vy ZSBib290IG1vZGU/DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIGp1c3QgZW1waGFzaXplIHRoYXQg SSB3YW50IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZQ0KPiA+ID4gPiBkZXZpY2UgZmlybXdhcmUgY29t ZSBmcm9tIHRoZSBkZXZpY2UgdmVuZG9yLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gVGhhbmtzIGZv ciB5b3VyIGVmZm9ydCwgdGhlIHBhdGNoIGlzIGdvb2QsIEkganVzdA0KPiA+ID4gPiB0aGluayBp dCBpcyBub3Qgc3VpdGFibGUgZm9yIGNvbW1vbiBzb2x1dGlvbi4NCj4gPiA+ID4gPg0KPiA+ID4g PiA+IEJ1dCBpZiB5b3VyIGN1c3RvbWVyIGluZGVlZCB3YW50IGl0LCB5b3UgY2FuIGFkZA0KPiA+ IGl0IHRvDQo+ID4gPiA+IHlvdXIgY3VzdG9taXphdGlvbiBjb2RlLg0KPiA+ID4gPiA+DQo+ID4g PiA+ID4gVGhhbmtzDQo+ID4gPiA+ID4gR3VvbWluDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiBGcm9tOiBMaW1pbmcgU3VuIDxs c3VuQG1lbGxhbm94LmNvbT4NCj4gPiA+ID4gPiA+IFNlbnQ6IFR1ZXNkYXksIEp1bmUgMzAsIDIw MjAgODo0NyBQTQ0KPiA+ID4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBKaWFuZywg R3VvbWluDQo+ID4gPiA+IDxndW9taW4uamlhbmdAaW50ZWwuY29tPjsgWHUsDQo+ID4gPiA+ID4g PiBXZWk2IDx3ZWk2Lnh1QGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ID4gPiA+IDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IEtpbm5leSwNCj4gPiA+ID4gPiA+IE1pY2hhZWwgRCA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJv Z2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW2VkazItZGV2ZWxd IFtQQVRDSF0gRm1wRGV2aWNlUGtnOg0KPiA+ID4gPiBFbmhhbmNlIGNhcHN1bGUNCj4gPiA+ID4g PiA+IHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBib290IGtleXMNCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiBUaGFua3MgR3VvbWluLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgc3RpbGwg aGF2ZSBvbmUgcXVlc3Rpb24uIExldCdzIGFzc3VtZSB3ZSdyZQ0KPiA+IHRoZQ0KPiA+ID4gPiBk ZXZpY2UgdmVuZG9yIGFuZCB3ZSBsZXQNCj4gPiA+ID4gPiA+IGN1c3RvbWVyIHRvIGVucm9sbCB0 aGVpciBrZXlzLiBPbmNlIHRoZSBrZXlzIGFyZQ0KPiA+ID4gPiBlbnJvbGxlZCwgdGhlIGRldmlj ZSB3aWxsIGJlDQo+ID4gPiA+ID4gPiBpbiBzZWN1cmUgYm9vdCBtb2RlLiBBcmUgeW91IHNheWlu ZyB0aGF0IHRoZSBlbmQNCj4gPiA+ID4gdXNlciBjb3VsZCAiaGF2ZSB0aGUgYWJpbGl0eQ0KPiA+ ID4gPiA+ID4gdG8gZW5yb2xsIHRoZWlyIERCIHdpdGhvdXQgdG9vIG1hbnkgZWZmb3J0IiBldmVu DQo+ID4gPiA+IGFmdGVyIHRoZSBzZWN1cmUgYm9vdCBoYXMNCj4gPiA+ID4gPiA+IGJlZW4gZW5h YmxlZCBhbHJlYWR5Pw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFBsZWFzZSBjb3JyZWN0IG1l IGlmIEkgbWlzdW5kZXJzdG9vZCBpdC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAtIExpbWlu Zw0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0N Cj4gPiA+ID4gPiA+ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+DQo+ID4gPiA+IE9uIEJlaGFsZiBPZg0KPiA+ID4gPiA+ID4gR3VvbWluDQo+ ID4gPiA+ID4gPiA+IEppYW5nIHZpYSBncm91cHMuaW8NCj4gPiA+ID4gPiA+ID4gU2VudDogVHVl c2RheSwgSnVuZSAzMCwgMjAyMCAzOjMzIEFNDQo+ID4gPiA+ID4gPiA+IFRvOiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsgTGltaW5nIFN1bg0KPiA+ID4gPiA8bHN1bkBtZWxsYW5veC5jb20+OyBYdSwg V2VpNg0KPiA+ID4gPiA+ID4gPiA8d2VpNi54dUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+ ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4gPiA+ID4gPiA+IE1pY2hh ZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IENjOiBTZWFu IEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT4NCj4gPiA+ID4gPiA+ID4gU3ViamVj dDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0hdDQo+ID4gRm1wRGV2aWNlUGtnOg0KPiA+ID4gPiBF bmhhbmNlIGNhcHN1bGUNCj4gPiA+ID4gPiA+ID4gdmVyaWZpY2F0aW9uIHdpdGggc2VjdXJlIGJv b3Qga2V5cw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBMaW1pbmcsDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IFRoZSBlbmQgdXNlciBoYXZlIHRoZSBhYmlsaXR5IHRvIGVucm9s bCB0aGVpcg0KPiA+IERCDQo+ID4gPiA+IHdpdGhvdXQgdG9vIG1hbnkgZWZmb3J0Lg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBbmQgSSB0aGluayBzb21lIGVuZCB1c2VyIGFsc28gaGF2 ZSB0aGUNCj4gPiBhYmlsaXR5IHRvDQo+ID4gPiA+IGdldCBpbnNlY3VyZSBmaXJtd2FyZQ0KPiA+ ID4gPiA+ID4gd2hpY2ggbm90IGZyb20gdGhlIGRldmljZSB2ZW5kb3IuDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IEkgc3VnZ2VzdCB0aGF0IHRlbGwgdGhlIGRldmljZSB2ZW5kb3IgdGhh dCBpdA0KPiA+IGlzDQo+ID4gPiA+IGNyaXRpY2FsIHRoYXQgc2V0IHRoZQ0KPiA+ID4gPiA+ID4g UGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRyIHJhdGhlciB0aGFuDQo+ID4gZGVjcmVhc2UN Cj4gPiA+ID4gdGhlIHNlY3VyaXR5Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBCZXN0 IFJlZ2FyZHMNCj4gPiA+ID4gPiA+ID4gR3VvbWluDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiBGcm9tOiBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA8ZGV2ZWxAZWRrMi5ncm91cHMuaW8+IE9uIEJl aGFsZiBPZg0KPiA+ID4gPiA+ID4gPiA+IExpbWluZyBTdW4NCj4gPiA+ID4gPiA+ID4gPiBTZW50 OiBUdWVzZGF5LCBKdW5lIDMwLCAyMDIwIDExOjMzIEFNDQo+ID4gPiA+ID4gPiA+ID4gVG86IEpp YW5nLCBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+Ow0KPiA+ID4gPiBkZXZlbEBlZGsy Lmdyb3Vwcy5pbzsNCj4gPiA+ID4gPiA+ID4gPiBYdSwNCj4gPiA+ID4gPiA+ID4gPiBXZWk2IDx3 ZWk2Lnh1QGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+ID4gPiA+IDxsaW1pbmcuZ2FvQGludGVs LmNvbT47DQo+ID4gPiA+ID4gPiA+ID4gS2lubmV5LCBNaWNoYWVsIEQNCj4gPiA8bWljaGFlbC5k Lmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gQ2M6IFNlYW4gQnJvZ2FuIDxzZWFu LmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbZWRr Mi1kZXZlbF0gW1BBVENIXQ0KPiA+IEZtcERldmljZVBrZzoNCj4gPiA+ID4gRW5oYW5jZSBjYXBz dWxlDQo+ID4gPiA+ID4gPiA+ID4gdmVyaWZpY2F0aW9uIHdpdGggc2VjdXJlIGJvb3Qga2V5cw0K PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gVGhhbmtzIEd1b21pbiBmb3IgdGhlIGNv bW1lbnRzIQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gQmVsb3cgaXMgdGhlIG1h aW4gc2NlbmFyaW8gZm9yIHRoZSBwcm9wb3NlZA0KPiA+ID4gPiBjaGFuZ2U6DQo+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiAtIERldmljZSBNYW51ZmFjdHVyZXIgcHJvdmlkZXMgdGhl IGRldmljZXMNCj4gPiB3aXRoDQo+ID4gPiA+IFVFRkkgcHJlaW5zdGFsbGVkIGluDQo+ID4gPiA+ ID4gPiA+ID4gbm9uLSBzZWN1cmUgc3RhdGUgYW5kIG5vIGhhcmQtY29kZWQga2V5cyAoDQo+ID4g PiA+ID4gPiBQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIpLg0KPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gLSBDdXN0b21lciAobm90IEVuZC1Vc2VyKSBlbnJvbGxzIHRoZWly IG93bg0KPiA+IGtleXMNCj4gPiA+ID4gaW4gdHJ1c3RlZA0KPiA+ID4gPiA+ID4gPiA+IGVudmly b25tZW50IGJlZm9yZSBkZWxpdmVyaW5nIHRvIEVuZCBVc2VyLg0KPiA+ID4gPiA+ID4gPiA+IFRo aXMgY2Fwc3VsZSBhcHByb2FjaCBjYW4gYmUgdXNlZCBmb3IgbGFyZ2UNCj4gPiA+ID4gZGVwbG95 bWVudCB3aXRob3V0DQo+ID4gPiA+ID4gPiA+ID4gaW52b2x2aW5nIGFueSBwcml2YXRlIGtleXMu DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBZZXMsIEkgZG8gYWdyZWUgdGhhdCBv bmNlIGl0J3MgZGVsaXZlcmVkIHRvDQo+ID4gRW5kDQo+ID4gPiA+IFVzZXIgaXQgd29uJ3QgYmUN Cj4gPiA+ID4gPiA+ID4gPiBjb25zaWRlcmVkIHNlY3VyZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+IFRoYW5rcywNCj4gPiA+ID4gPiA+ID4gPiBMaW1pbmcNCj4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ ID4gPiA+ID4gPiA+IEZyb206IEppYW5nLCBHdW9taW4NCj4gPiA8Z3VvbWluLmppYW5nQGludGVs LmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IFN1bmRheSwgSnVuZSAyOCwgMjAyMCAxMTox OCBQTQ0KPiA+ID4gPiA+ID4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBMaW1pbmcg U3VuDQo+ID4gPiA+IDxsc3VuQG1lbGxhbm94LmNvbT47IFh1LCBXZWk2DQo+ID4gPiA+ID4gPiA+ ID4gPiA8d2VpNi54dUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+ID4gPiA8bGltaW5nLmdh b0BpbnRlbC5jb20+OyBLaW5uZXksDQo+ID4gPiA+ID4gPiA+ID4gPiBNaWNoYWVsIEQgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IFNlYW4gQnJvZ2Fu DQo+ID4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiBTdWJq ZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0NCj4gPiA+ID4gRm1wRGV2aWNlUGtnOiBFbmhh bmNlIGNhcHN1bGUNCj4gPiA+ID4gPiA+ID4gPiA+IHZlcmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBi b290IGtleXMNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBJIHRoaW5rIGl0 IGhhdmUgc29tZSB2dWxuZXJhYmlsaXR5LCB0aGUNCj4gPiBjYXNlDQo+ID4gPiA+IGFzIGJlbG93 Lg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IDEuIFVudHJ1c3RlZCBFbmQg VXNlciBlbnJvbGwgdGhlIG5ldyBEQg0KPiA+IGtleSAtPg0KPiA+ID4gPiBzaWduIHRoZSB1bnRy dXN0ZWQNCj4gPiA+ID4gPiA+ID4gPiA+IGRldmljZSBmaXJtd2FyZSAtPiBmbGFzaCB0aGUgdW50 cnVzdGVkDQo+ID4gZGV2aWNlDQo+ID4gPiA+IGZpcm13YXJlIC0+IHRoZQ0KPiA+ID4gPiA+ID4g PiA+ID4gc3lzdGVtIHdpbGwNCj4gPiA+ID4gPiA+ID4gPiBiZWNvbWUgdW5zYWZlLg0KPiA+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEkgdGhpbmsgdGhlIGVuZCB1c2VyIGlzIHVu dHJ1c3RlZCBhbmQgd2UNCj4gPiBuZWVkDQo+ID4gPiA+IHRvIG1ha2Ugc3VyZSBvbmx5DQo+ID4g PiA+ID4gPiA+ID4gPiBmZXcgcGVyc29uDQo+ID4gPiA+ID4gPiA+ID4gY2FuIGhhdmUgdGhlIHBy aXZpbGVnZS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBCZXN0IFJlZ2Fy ZHMNCj4gPiA+ID4gPiA+ID4gPiA+IEd1b21pbg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gPGRldmVsQGVkazIuZ3JvdXBz LmlvPiBPbiBCZWhhbGYgT2YNCj4gPiA+ID4gPiA+ID4gPiA+ID4gTGltaW5nIFN1bg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBTZW50OiBTYXR1cmRheSwgSnVuZSAyMCwgMjAyMCAxOjQ4IEFNDQo+ID4g PiA+ID4gPiA+ID4gPiA+IFRvOiBYdSwgV2VpNiA8d2VpNi54dUBpbnRlbC5jb20+OyBHYW8sDQo+ ID4gPiA+IExpbWluZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+ OyBLaW5uZXksIE1pY2hhZWwNCj4gPiBEDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDxtaWNoYWVsLmQu a2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IExpbWluZyBTdW4gPGxz dW5AbWVsbGFub3guY29tPjsNCj4gPiA+ID4gZGV2ZWxAZWRrMi5ncm91cHMuaW87IFNlYW4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gQnJvZ2FuIDxzZWFuLmJyb2dhbkBtaWNyb3NvZnQuY29tPg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIXQ0KPiA+IEZtcERl dmljZVBrZzoNCj4gPiA+ID4gRW5oYW5jZSBjYXBzdWxlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHZl cmlmaWNhdGlvbiB3aXRoIHNlY3VyZSBib290IGtleXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gVGhpcyBjb21taXQgZW5oYW5jZXMgdGhlIEZtcERldmljZVBrZw0K PiA+ID4gPiBwYWNrYWdlIHRvIG9wdGlvbmFsbHkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gdmVyaWZ5 IGNhcHN1bGUgd2l0aCB0aGUgc2VjdXJlIGJvb3Qga2V5cw0KPiA+ID4gPiB3aGVuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZlclhkciBpcyBub3QNCj4gPiBz ZXQNCj4gPiA+ID4gYW5kIHRoZSBuZXcgUENEDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHZhcmlhYmxl IFBjZEZtcERldmljZUFsbG93U2VjdXJlQm9vdEtleXMNCj4gPiBpcw0KPiA+ID4gPiBjb25maWd1 cmVkLiBCZWxvdyBpcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGUgY2hlY2sNCj4gPiA+ID4gPiA+ ID4gPiBsb2dpYzoNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAtIFBhc3MgaWYgdmVyaWZpZWQgd2l0 aCBQSyBrZXksIG9yIFBLDQo+ID4ga2V5DQo+ID4gPiA+IG5vdCBzZXQgeWV0Ow0KPiA+ID4gPiA+ ID4gPiA+ID4gPiAgIC0gRGVueSBpZiB2ZXJpZmllZCB3aXRoIHRoZSBEQlgga2V5czsNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gICAtIFZlcmlmaWVkIGl0IGFnYWluc3QgdGhlIERCIGtleXM7DQo+ID4g PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IE9uZSBwdXJwb3NlIGZvciB0aGlz IGNoYW5nZSBpcyB0byBhdXRvLQ0KPiA+ID4gPiBkZXBsb3kgdGhlIFVFRkkgc2VjdXJlDQo+ID4g PiA+ID4gPiA+ID4gPiA+IGJvb3Qga2V5cyB3aXRoIFVFRkkgY2Fwc3VsZS4gSW5pdGlhbGx5DQo+ ID4gaXQncw0KPiA+ID4gPiBkb25lIGluIHRydXN0ZWQgZW52aXJvbm1lbnQuDQo+ID4gPiA+ID4g PiA+ID4gPiA+IE9uY2Ugc2VjdXJlIGJvb3QgaXMgZW5hYmxlZCwgdGhlIHNhbWUNCj4gPiBrZXlz DQo+ID4gPiA+IHdpbGwgYmUgdXNlZCB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiB2ZXJpZnkgdGhl IHNpZ25lZCBjYXBzdWxlcyBhcyB3ZWxsIGZvcg0KPiA+ID4gPiBmdXJ0aGVyIHVwZGF0ZXMuDQo+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IExp bWluZyBTdW4NCj4gPiA+ID4gPGxzdW5AbWVsbGFub3guY29tPg0KPiA+ID4gPiA+ID4gPiA+ID4g PiAtLS0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gIEZtcERldmljZVBrZy9GbXBEZXZpY2VQa2cuZGVj ICAgICB8ICAgNg0KPiA+ICsrKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgRm1wRGV2aWNlUGtnL0Zt cER4ZS9GbXBEeGUuYyAgICAgIHwgMTA5DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICBGbXBEZXZp Y2VQa2cvRm1wRHhlL0ZtcER4ZS5oICAgICAgfCAgIDENCj4gPiArDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICBGbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5pbmYgICAgfCAgIDMNCj4gPiArKw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiAgRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGVMaWIuaW5mIHwgICAx DQo+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0 aW9ucygrKSwgMw0KPiA+ID4gPiBkZWxldGlvbnMoLSkNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+IGEvRm1wRGV2aWNlUGtnL0ZtcERldmlj ZVBrZy5kZWMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYi9GbXBEZXZpY2VQa2cvRm1wRGV2aWNlUGtn LmRlYyBpbmRleA0KPiA+ID4gPiBjYWI2M2Y1Li4zYWViODljIDEwMDY0NA0KPiA+ID4gPiA+ID4g PiA+ID4gPiAtLS0gYS9GbXBEZXZpY2VQa2cvRm1wRGV2aWNlUGtnLmRlYw0KPiA+ID4gPiA+ID4g PiA+ID4gPiArKysgYi9GbXBEZXZpY2VQa2cvRm1wRGV2aWNlUGtnLmRlYw0KPiA+ID4gPiA+ID4g PiA+ID4gPiBAQCAtMTI2LDYgKzEyNiwxMiBAQA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAjIEBQ cm9tcHQgRmlybXdhcmUgRGV2aWNlIEltYWdlIFR5cGUNCj4gPiBJRA0KPiA+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K PiA+ID4gPg0KPiA+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VJbWFn ZVR5cGVJZEd1aWR8DQo+ID4gPiA+IHswfXxWT0lEDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICp8MHg0 MDAwMDAxMA0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAjIyBU aGlzIG9wdGlvbiBpcyB1c2VkIHRvIHZlcmlmeSB0aGUNCj4gPiA+ID4gY2Fwc3VsZSB1c2luZyBz ZWN1cmUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyBib290IGtleXMgaWYgdGhlICAjDQo+ID4gPiA+ IFBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZlclhkciBpcyBub3QNCj4gPiA+ID4gPiA+IGNvbmZp Z3VyZWQuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgSW4gc3VjaCBjYXNlLCB0aGUgY2hlY2sgICMg d2lsbCBwYXNzDQo+ID4gaWYNCj4gPiA+ID4gc2VjdXJlIGJvb3QgaGFzbid0DQo+ID4gPiA+ID4g PiA+ID4gPiA+ICsgYmVlbiBlbmFibGVkDQo+ID4gPiA+ID4gPiA+ID4geWV0Lg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAjIEBBIGZsYWcgdG8gdGVsbCB3aGV0aGVyIHRvIHVzZQ0KPiA+IHNlY3Vy ZQ0KPiA+ID4gPiBib290IGtleXMgd2hlbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBQY2RGbXBEZXZp Y2VQa2NzN0NlcnRCdWZmZXJYZHIgaXMgbm90DQo+ID4gc2V0Lg0KPiA+ID4gPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiBnRm1wRGV2aWNlUGtnVG9rZW5TcGFj ZUd1aWQuUGNkRm1wRGV2aWNlQWxsb3dTZWN1cmVCb290Sw0KPiA+ID4gPiBleXN8MHgwfA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiBVSU5UOHwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAweDQwMDAwMDEy DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gIFtQY2RzRml4ZWRB dEJ1aWxkLA0KPiA+IFBjZHNQYXRjaGFibGVJbk1vZHVsZSwNCj4gPiA+ID4gUGNkc0R5bmFtaWMs DQo+ID4gPiA+ID4gPiA+ID4gUGNkc0R5bmFtaWNFeF0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAg IyMgT25lIG9yIG1vcmUgUEtDUzcgY2VydGlmaWNhdGVzDQo+ID4gdXNlZCB0bw0KPiA+ID4gPiB2 ZXJpZnkgYSBmaXJtd2FyZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBkZXZpY2UNCj4gPiA+ID4gPiA+ ID4gPiBjYXBzdWxlDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgICMgIHVwZGF0ZSBpbWFnZS4gIEVu Y29kZWQgdXNpbmcgdGhlDQo+ID4gPiA+IFZhcmlhYmxlLUxlbmd0aCBPcGFxdWUNCj4gPiA+ID4g PiA+ID4gPiA+ID4gRGF0YSBmb3JtYXQgb2YgUkZDIGRpZmYgLS1naXQNCj4gPiA+ID4gYS9GbXBE ZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGIvRm1wRGV2aWNl UGtnL0ZtcER4ZS9GbXBEeGUuYyBpbmRleA0KPiA+ID4gPiA1ODg0MTc3Li42ZjgyYWVlIDEwMDY0 NA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9GbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5j DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsrKyBiL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlLmMN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTY4Miw2ICs2ODIsMTAyIEBAIEdldEFsbEhlYWRlclNp emUgKA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICByZXR1cm4gQ2FsY3VsYXRlZFNpemU7ICB9DQo+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICtFRklfU1RBVFVTDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICtDaGVja1RoZUltYWdlV2l0aFNlY3VyZUJvb3RWYXJpYWJsZSAoDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsgIElOIENPTlNUIENIQVIxNiAgICAqTmFtZSwNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgSU4gQ09OU1QgRUZJX0dVSUQgICpHdWlkLA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiArICBJTiBDT05TVCBWT0lEICAgICAgKkltYWdlLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICBJTiBVSU5UTiAgICAgICAgICAgSW1hZ2VTaXplDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICkN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgRUZJX1NUQVRV UyAgICAgICAgICBTdGF0dXM7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFZPSUQgICAgICAgICAg ICAgICAgKkRhdGE7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAg TGVuZ3RoOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICBFRklfU0lHTkFUVVJFX0xJU1QgICpDZXJ0 TGlzdDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgRUZJX1NJR05BVFVSRV9EQVRBICAqQ2VydERh dGE7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAgICAgICAgICAgQ2VydENvdW50 Ow0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICBVSU5UTiAgICAgICAgICAgICAgIEluZGV4Ow0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFN0YXR1cyA9IEdldFZh cmlhYmxlMiAoTmFtZSwgR3VpZCwNCj4gPiAmRGF0YSwNCj4gPiA+ID4gJkxlbmd0aCk7ICBpZg0K PiA+ID4gPiA+ID4gPiA+ID4gPiArIChFRklfRVJST1INCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAo U3RhdHVzKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBFRklfTk9UX0ZPVU5E OyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIENlcnRM aXN0ID0gKEVGSV9TSUdOQVRVUkVfTElTVCAqKQ0KPiA+IERhdGE7DQo+ID4gPiA+IHdoaWxlICgo TGVuZ3RoID4gMCkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAmJiAoTGVuZ3RoID49IENlcnRMaXN0 LQ0KPiA+ID4gPiA+U2lnbmF0dXJlTGlzdFNpemUpKSB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsg ICAgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtDQo+ID4gPiA+ID5TaWduYXR1cmVUeXBlLCAm Z0VmaUNlcnRYNTA5R3VpZCkpDQo+ID4gPiA+ID4gPiB7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsg ICAgICBDZXJ0RGF0YSAgPSAoRUZJX1NJR05BVFVSRV9EQVRBDQo+ID4gKikNCj4gPiA+ID4gKChV SU5UOCAqKSBDZXJ0TGlzdCArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgIHNpemVvZiAo RUZJX1NJR05BVFVSRV9MSVNUKSArDQo+ID4gPiA+IENlcnRMaXN0LT5TaWduYXR1cmVIZWFkZXJT aXplKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIENlcnRDb3VudCA9IChDZXJ0TGlzdC0N Cj4gPiA+ID4gPlNpZ25hdHVyZUxpc3RTaXplIC0gc2l6ZW9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgKEVGSV9TSUdOQVRVUkVfTElTVCkNCj4gPiA+ID4gPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgICAgICAgIENlcnRMaXN0LT5TaWduYXR1cmVIZWFkZXJTaXplKQ0KPiA+IC8NCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyBDZXJ0TGlzdC0+U2lnbmF0dXJlU2l6ZTsNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgZm9yIChJbmRleCA9IDA7IElu ZGV4IDwNCj4gPiBDZXJ0Q291bnQ7DQo+ID4gPiA+IEluZGV4KyspIHsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgU3RhdHVzID0gQXV0aGVudGljYXRlRm1wSW1hZ2UgKA0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArDQo+ID4gPiA+IChFRklfRklSTVdBUkVfSU1BR0VfQVVUSEVOVElDQVRJT04g KilJbWFnZSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICBJbWFnZVNp emUsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgQ2VydERhdGEtDQo+ ID4gPlNpZ25hdHVyZURhdGEsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgQ2VydExpc3QtDQo+ID4gPlNpZ25hdHVyZVNpemUNCj4gPiA+ID4gLSBzaXplb2YgKEVGSV9H VUlEKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgICAgICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArICAgICAgICAgIGdvdG8gRG9uZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgICBDZXJ0RGF0YSA9IChFRklfU0lHTkFUVVJFX0RB VEENCj4gPiAqKQ0KPiA+ID4gPiAoKFVJTlQ4ICopIENlcnREYXRhICsNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKyBDZXJ0TGlzdC0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPlNpZ25hdHVyZVNpemUpOw0K PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIH0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIExlbmd0aCAt PSBDZXJ0TGlzdC0NCj4gPiA+U2lnbmF0dXJlTGlzdFNpemU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICsgICAgQ2VydExpc3QgPSAoRUZJX1NJR05BVFVSRV9MSVNUICopDQo+ID4gPiA+ICgoVUlOVDgg KikgQ2VydExpc3QgKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArIENlcnRMaXN0LT5TaWduYXR1cmVM aXN0U2l6ZSk7ICB9DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g K0RvbmU6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIEZyZWVQb29sIChEYXRhKTsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gK30NCj4g PiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArRUZJX1NUQVRVUw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArQ2hlY2tUaGVJbWFnZVdpdGhTZWN1cmVCb290S2V5cyAoDQo+ID4g PiA+ID4gPiA+ID4gPiA+ICsgIElOICBDT05TVCBWT0lEICAqSW1hZ2UsDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsgIElOICBVSU5UTiAgICAgICBJbWFnZVNpemUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KyAgKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICBFRklf U1RBVFVTICBTdGF0dXM7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gKyAgLy8gUEsgY2hlY2suDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFN0YXR1cyA9DQo+ID4g PiA+IENoZWNrVGhlSW1hZ2VXaXRoU2VjdXJlQm9vdFZhcmlhYmxlKA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICAgIEVGSV9QTEFURk9STV9LRVlfTkFNRSwNCj4gPiA+ID4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAmZ0VmaUdsb2JhbFZhcmlhYmxlR3VpZCwNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICBJbWFnZSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICBJbWFnZVNpemUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICApOw0K PiA+ID4gPiA+ID4gPiA+ID4gPiArICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSB8fCBTdGF0dXMg PT0NCj4gPiA+ID4gRUZJX05PVF9GT1VORCkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIC8v IFJldHVybiBTVUNDRVNTIGlmIHZlcmlmaWVkIGJ5IFBLDQo+ID4ga2V5DQo+ID4gPiA+IG9yIFBL IGtleSBub3QgY29uZmlndXJlZC4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICBERUJVRyAoKERF QlVHX0lORk8sICJGbXBEeGU6DQo+ID4gVmVyaWZpZWQNCj4gPiA+ID4gY2Fwc3VsZSB3aXRoIFBL DQo+ID4gPiA+ID4gPiBrZXkuXG4iKSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9TVUNDRVNTOyAgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICsgIC8vIERCWCBjaGVjay4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgU3RhdHVzID0NCj4g PiA+ID4gQ2hlY2tUaGVJbWFnZVdpdGhTZWN1cmVCb290VmFyaWFibGUoDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICsNCj4gPiBFRklfSU1BR0VfU0VDVVJJVFlfREFUQUJBU0UxLA0KPiA+ID4gPiA+ID4g PiA+ID4gPiArDQo+ID4gPiA+ICZnRWZpSW1hZ2VTZWN1cml0eURhdGFiYXNlR3VpZCwNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBJbWFnZSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICBJbWFnZVNpemUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICApOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0K PiA+ID4gPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIkZtcER4ZTogUmVq ZWN0DQo+ID4gPiA+IGNhcHN1bGUgd2l0aCBEQlgNCj4gPiA+ID4gPiA+IGtleS5cbiIpKTsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgICByZXR1cm4gRUZJX1NFQ1VSSVRZX1ZJT0xBVElPTjsgIH0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArICAvLyBEQiBjaGVj ay4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgREVCVUcgKChERUJVR19JTkZPLCAiRm1wRHhlOiBW ZXJpZnkNCj4gPiA+ID4gY2Fwc3VsZSB3aXRoIERCDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICtrZXku XG4iKSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIFN0YXR1cyA9DQo+ID4gPiA+IENoZWNrVGhl SW1hZ2VXaXRoU2VjdXJlQm9vdFZhcmlhYmxlKA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4g RUZJX0lNQUdFX1NFQ1VSSVRZX0RBVEFCQVNFLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ICZnRWZpSW1hZ2VTZWN1cml0eURhdGFiYXNlR3VpZCwNCj4gPiA+ID4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICBJbWFnZSwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICBJ bWFnZVNpemUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ ID4gPiA+ID4gPiArICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArfQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAvKioNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gICAgQ2hlY2tzIGlmIHRoZSBmaXJtd2FyZSBpbWFnZSBpcyB2YWxpZA0KPiA+IGZv cg0KPiA+ID4gPiB0aGUgZGV2aWNlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gPiBAQCAtNzI4LDYgKzgyNCw3IEBAIENoZWNrVGhlSW1hZ2UgKA0KPiA+ID4gPiA+ID4g PiA+ID4gPiAgICBVSU5UOA0KPiA+ID4gPiAqUHVibGljS2V5RGF0YVhkckVuZDsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gICAgRUZJX0ZJUk1XQVJFX0lNQUdFX0RFUA0KPiA+ID4gPiAqRGVwZW5kZW5j aWVzOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICBVSU5UMzINCj4gPiA+ID4gRGVwZW5kZW5jaWVz U2l6ZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgVUlOVDgNCj4gPiA+ID4gQWxsb3dTZWN1cmVC b290S2V5czsNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgU3Rh dHVzICAgICAgICAgICA9IEVGSV9TVUNDRVNTOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICBSYXdT aXplICAgICAgICAgID0gMDsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTc4Miw5ICs4NzksMTUg QEAgQ2hlY2tUaGVJbWFnZSAoDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIFB1YmxpY0tleURhdGFY ZHIgICAgPSBQY2RHZXRQdHINCj4gPiA+ID4gPiA+IChQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZm ZXJYZHIpOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgICBQdWJsaWNLZXlEYXRhWGRyRW5kID0NCj4g PiBQdWJsaWNLZXlEYXRhWGRyICsNCj4gPiA+ID4gUGNkR2V0U2l6ZQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiAoUGNkRm1wRGV2aWNlUGtjczdDZXJ0QnVmZmVyWGRyKTsNCj4gPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gLSAgaWYgKFB1YmxpY0tleURhdGFYZHIgPT0gTlVMTCB8 fA0KPiA+ID4gPiAoUHVibGljS2V5RGF0YVhkciA9PQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBQdWJs aWNLZXlEYXRhWGRyRW5kKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtICAgIERFQlVHICgoREVC VUdfRVJST1IsICJGbXBEeGUoJXMpOg0KPiA+ID4gPiBJbnZhbGlkIGNlcnRpZmljYXRlLCBza2lw cGluZw0KPiA+ID4gPiA+ID4gaXQuXG4iLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBtSW1hZ2VJZE5h bWUpKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gLSAgICBTdGF0dXMgPSBFRklfQUJPUlRFRDsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgaWYgKFB1YmxpY0tleURhdGFYZHIgPT0gTlVMTCB8fA0KPiA+ ID4gPiAoUHVibGljS2V5RGF0YVhkckVuZCAtDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgUHVibGlj S2V5RGF0YVhkcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA8IHNpemVvZiAoVUlOVDMyKSkpIHsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gKyAgICBBbGxvd1NlY3VyZUJvb3RLZXlzID0gUGNkR2V0OA0KPiA+ ID4gPiA+ID4gPiA+IChQY2RGbXBEZXZpY2VBbGxvd1NlY3VyZUJvb3RLZXlzKTsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgICBpZiAoQWxsb3dTZWN1cmVCb290S2V5cykgew0KPiA+ID4gPiA+ID4g PiA+ID4gPiArICAgICAgREVCVUcgKChERUJVR19JTkZPLCAiRm1wRHhlOiBVc2UNCj4gPiA+ID4g c2VjdXJlIGJvb3QgY2VydHMuXG4iKSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBTdGF0 dXMgPQ0KPiA+ID4gPiBDaGVja1RoZUltYWdlV2l0aFNlY3VyZUJvb3RLZXlzIChJbWFnZSwNCj4g PiA+ID4gPiA+IEltYWdlU2l6ZSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgfSBlbHNlIHsN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAgIERFQlVHICgoREVCVUdfRVJST1IsICJGbXBEeGUo JXMpOg0KPiA+ID4gPiBJbnZhbGlkIGNlcnRpZmljYXRlLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAr IHNraXBwaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGl0LlxuIiwgbUltYWdlSWROYW1lKSk7DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAgICBTdGF0dXMgPSBFRklfQUJPUlRFRDsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gKyAgICB9DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIH0gZWxzZSB7DQo+ID4g PiA+ID4gPiA+ID4gPiA+ICAgICAgLy8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAgICAvLyBUcnkg ZWFjaCBrZXkgZnJvbQ0KPiA+ID4gPiBQY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJYZHIgZGlm Zg0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLWdpdCBhL0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhl LmgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYi9GbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5oDQo+ ID4gPiA+ID4gPiA+ID4gaW5kZXgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gMzA3NTRkZS4uNzJhNmNl NiAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9G bXBEeGUuaA0KPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9GbXBEZXZpY2VQa2cvRm1wRHhlL0Zt cER4ZS5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC0zNCw2ICszNCw3IEBADQo+ID4gPiA+ID4g PiA+ID4gPiA+ICAjaW5jbHVkZQ0KPiA+IDxQcm90b2NvbC9GaXJtd2FyZU1hbmFnZW1lbnQuaD4N Cj4gPiA+ID4gI2luY2x1ZGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPFByb3RvY29sL0Zpcm13YXJl TWFuYWdlbWVudFByb2dyZXNzLmg+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8UHJv dG9jb2wvVmFyaWFibGVMb2NrLmg+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsjaW5jbHVkZSA8R3Vp ZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmg+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAjaW5jbHVkZSA8 R3VpZC9TeXN0ZW1SZXNvdXJjZVRhYmxlLmg+DQo+ID4gPiA+ICNpbmNsdWRlDQo+ID4gPiA+ID4g PiA+ID4gPiA+IDxHdWlkL0V2ZW50R3JvdXAuaD4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+IGEvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBE eGUuaW5mDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGIvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUu aW5mIGluZGV4DQo+ID4gPiA+IGVlYjkwNGEuLjYwYjAyZDQNCj4gPiA+ID4gPiA+IDEwMDY0NA0K PiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9GbXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZS5pbmYN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGUuaW5m DQo+ID4gPiA+ID4gPiA+ID4gPiA+IEBAIC01OCw2ICs1OCw4IEBADQo+ID4gPiA+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICBbR3VpZHNdDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAg IGdFZmlFbmRPZkR4ZUV2ZW50R3JvdXBHdWlkDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICsgIGdFZmlD ZXJ0WDUwOUd1aWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgZ0VmaUltYWdlU2VjdXJpdHlEYXRh YmFzZUd1aWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gIFtQcm90 b2NvbHNdDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIGdFZGtpaVZhcmlhYmxlTG9ja1Byb3RvY29s R3VpZA0KPiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBAQCAtNzQsNiAr NzYsNyBAQA0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+IGdGbXBEZXZpY2VQa2dU b2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VQa2NzN0NlcnRCdWZmZXJYDQo+ID4gPiA+IGRyDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ICMjIENPTlNVTUVTDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPg0KPiA+ID4gPg0KPiA+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RGbXBE ZXZpY2VUZXN0S2V5U2hhMjU2RGlnDQo+ID4gPiA+IGVzdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAj IyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+IGdGbXBEZXZpY2VQ a2dUb2tlblNwYWNlR3VpZC5QY2RGbXBEZXZpY2VJbWFnZVR5cGVJZEd1aWQNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4N Cj4gPiA+ID4NCj4gPiBnRm1wRGV2aWNlUGtnVG9rZW5TcGFjZUd1aWQuUGNkRm1wRGV2aWNlQWxs b3dTZWN1cmVCb290Sw0KPiA+ID4gPiBleXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gIyMgQ09OU1VN RVMNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gZ0VmaU1kZU1vZHVsZVBrZ1Rva2VuU3Bh Y2VHdWlkLlBjZFRlc3RLZXlVc2VkDQo+ID4gPiA+ID4gPiAjIw0KPiA+ID4gPiA+ID4gPiA+ID4g PiBTT01FVElNRVNfUFJPRFVDRVMNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gIFtEZXBleF0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiBh L0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlTGliLmluZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBi L0ZtcERldmljZVBrZy9GbXBEeGUvRm1wRHhlTGliLmluZg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBp bmRleCA5YTkzYjVlLi4xMzA4Y2FlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLS0gYS9G bXBEZXZpY2VQa2cvRm1wRHhlL0ZtcER4ZUxpYi5pbmYNCj4gPiA+ID4gPiA+ID4gPiA+ID4gKysr IGIvRm1wRGV2aWNlUGtnL0ZtcER4ZS9GbXBEeGVMaWIuaW5mDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IEBAIC03NCw2ICs3NCw3IEBADQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gZ0Zt cERldmljZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZtcERldmljZVBrY3M3Q2VydEJ1ZmZlclgNCj4g PiA+ID4gZHINCj4gPiA+ID4gPiA+ID4gPiA+ID4gIyMgQ09OU1VNRVMNCj4gPiA+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gZ0ZtcERldmljZVBrZ1Rva2VuU3BhY2VH dWlkLlBjZEZtcERldmljZVRlc3RLZXlTaGEyNTZEaWcNCj4gPiA+ID4gZXN0DQo+ID4gPiA+ID4g PiA+ID4gPiA+ICMjIENPTlNVTUVTDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4g Z0ZtcERldmljZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZEZtcERldmljZUltYWdlVHlwZUlkR3VpZA0K PiA+ID4gPiA+ID4gPiA+ID4gPiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+IGdGbXBEZXZpY2VQa2dUb2tlblNwYWNlR3VpZC5QY2RG bXBEZXZpY2VBbGxvd1NlY3VyZUJvb3RLDQo+ID4gPiA+IGV5cw0KPiA+ID4gPiA+ID4gPiA+ID4g PiAjIyBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiBnRWZpTWRlTW9kdWxl UGtnVG9rZW5TcGFjZUd1aWQuUGNkVGVzdEtleVVzZWQNCj4gPiA+ID4gPiA+ICMjDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IFNPTUVUSU1FU19QUk9EVUNFUw0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiAgW0RlcGV4XQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiAxLjguMy4xDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4gPiA+DQo+ID4NCj4gPg0KPiA+IA0KDQo=