From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=JJ6BP9LO; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: michael.a.kubacki@intel.com) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by groups.io with SMTP; Thu, 26 Sep 2019 15:35:39 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Sep 2019 15:35:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,553,1559545200"; d="scan'208";a="390951659" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga006.fm.intel.com with ESMTP; 26 Sep 2019 15:35:39 -0700 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Sep 2019 15:35:39 -0700 Received: from FMSEDG002.ED.cps.intel.com (10.1.192.134) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Sep 2019 15:35:38 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.58) by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 26 Sep 2019 15:35:38 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gbzlvGlFrFyryQWeuQ5hnioZay7UZU31j3KjuQ/7CDusKeoYlzBXsJkDII3xFsOaBBkgGeqv3v+CCglW7c9IIQpM9mCQGZ69fF/3xX5BxE2yCPatsUoHy1G7M5IV+mRl43D46Gu8LdNiO+lYp0FmXW3jQpYr7wUQgq8uULcj3TUPgeVFCkyiS2rJqSFMFYsznsaDgUG1s4O/FCkThB7DMM/Cd25nEJDa7bcKv0TPsZvZ4MGGrj+3PYW21/2zGNjoio4MbwmO3SmiWYEf/yNUW7ubISkIPSkcazTa7Ila5oEhhT5DjQS/hX08ZKZ/5eWhKKM3ZCO9cl3almEvx2LTiA== 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=YffRFRHWrxB3Z0eeUO1ydxrNFBshsv0ufZFWawZfVr0=; b=Zs0uF3dgDDWjuMmlWiTEz5U//skjrnIUo2IqpAENwoCPLZiYVzxryStqR4Qp31b7FN0esrXIROtlYqdbUwFvUOyUbYYLeDFDa7/By8J2s1Z0P0jSWorYGFdDC0o0CmljcGfbpe07EDPR0Psd1RIkh1YMLoAvRVXLZjcV8Nwk4x8p9ZTlJk+3TISFRTGUUun5mFnMTblL9oHk8bs/Q0NxHUmdfvHaD+uRxB/zQsqKRpKaOYuLIF+GoxEjtv8sFS3qlEZsRuQcOGkLef4GfGqJ0C+i84+g4EM2HfFj4kMnFGwaIHkB1W0NQGz2W2eX4FiqrMU6eRH+Rl8OBuR/3XyMig== 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=YffRFRHWrxB3Z0eeUO1ydxrNFBshsv0ufZFWawZfVr0=; b=JJ6BP9LO1rwOS5aso+YUwreQPt2SddKyCyRwom15SQSWQ3eDO6v7iwF5bdgiEZ+mWvXwpLtB04HoTqoj6fB1dN9rhbyiwVbLUzuep5t7IOerK0DUyq4U58+g+i3kgTv7g5717iFjaPqO1ETceagceAOKoTw5ziZ1R/RVGX6R//o= Received: from DM6PR11MB3834.namprd11.prod.outlook.com (20.179.17.87) by DM6PR11MB4459.namprd11.prod.outlook.com (52.132.250.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2284.18; Thu, 26 Sep 2019 22:35:37 +0000 Received: from DM6PR11MB3834.namprd11.prod.outlook.com ([fe80::c093:6e7b:c014:6658]) by DM6PR11MB3834.namprd11.prod.outlook.com ([fe80::c093:6e7b:c014:6658%6]) with mapi id 15.20.2284.023; Thu, 26 Sep 2019 22:35:36 +0000 From: "Kubacki, Michael A" To: Laszlo Ersek , "devel@edk2.groups.io" CC: "Bi, Dandan" , Ard Biesheuvel , "Dong, Eric" , "Gao, Liming" , "Kinney, Michael D" , "Ni, Ray" , "Wang, Jian J" , "Wu, Hao A" , "Yao, Jiewen" Subject: Re: [PATCH V1 0/5] UEFI Variable SMI Reduction Thread-Topic: [PATCH V1 0/5] UEFI Variable SMI Reduction Thread-Index: AQHVdJeg98zsaxLGxUuyJUODhE9EJac+YMKQgAAR0kA= Date: Thu, 26 Sep 2019 22:35:36 +0000 Message-ID: References: <20190926045046.34592-1-michael.a.kubacki@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYmQ0NjQzMmItYWE1ZC00NTdhLWE4Y2EtNzFiNDM3MTcwODFkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoicXI1bFJBYnJnQkt2aUExRjR4Z25DXC9kZVwvb2NPNVBIbzVsOGxUR2liS01ZV0lcL0ZLbWdRY2lWb255ZjMzV3JVbCJ9 dlp-reaction: no-action dlp-version: 11.2.0.6 authentication-results: spf=none (sender IP is ) smtp.mailfrom=michael.a.kubacki@intel.com; x-originating-ip: [134.134.136.217] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 79a8ae34-8517-4c07-4e65-08d742d1da0b x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600167)(711020)(4605104)(1401327)(2017052603328)(7193020);SRVR:DM6PR11MB4459; x-ms-traffictypediagnostic: DM6PR11MB4459: x-ms-exchange-purlcount: 2 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:8273; x-forefront-prvs: 0172F0EF77 x-forefront-antispam-report: SFV:NSPM;SFS:(10019020)(396003)(376002)(346002)(39860400002)(366004)(136003)(199004)(189003)(51444003)(13464003)(478600001)(33656002)(8936002)(71190400001)(71200400001)(66066001)(2501003)(4326008)(102836004)(7736002)(6506007)(8676002)(74316002)(7696005)(446003)(76176011)(53546011)(26005)(476003)(305945005)(99286004)(486006)(186003)(11346002)(66476007)(6306002)(6436002)(55016002)(6246003)(64756008)(107886003)(66446008)(256004)(52536014)(76116006)(2940100002)(2906002)(5660300002)(229853002)(86362001)(81166006)(110136005)(9686003)(66946007)(66556008)(81156014)(316002)(3846002)(30864003)(14454004)(6116002)(966005)(25786009)(14444005)(54906003);DIR:OUT;SFP:1102;SCL:1;SRVR:DM6PR11MB4459;H:DM6PR11MB3834.namprd11.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: cokYFz3pg5xNNKDirovlyoQHj/vrlEDazer2un96uc0JjUXRXJbfHKCMMSMSVHvFXiWHx2EEO5jOC09Fk21LF3AsdVWKKYFVM6pASa3eazlSiD5bcjXNHIR8wnN5TeQ3VN6xfKFLSR/NVSLMeW0bdFhARaobheRw28LtK9gUN0Neo87E35y9AEOcP/6MMK4kVEf3eQahnsrjbtVEZQPLi0AWxhwLjAy+woIy8IPXLqlxXcW/fCCVYgG0hoAO69orU0o/1GwLUudX/fCwLiYM2i38Fdt/Ob3b1eePexAYWHuEz8AiXw8/vK4P79mpa+nR7z/BEVgCDkRUkC1ABsvY8pbOGRqofQuZ1lr2z986C9KMKRWDoTkTO9mq3jh470wZj6tLH3XMT5/YxXHGBm+lM1FGxXEII7uC8Hn8x81pB4Kl4Pz8elRadu6qCWYGA/r76RwY4DIVWjjI/uM+v4glzA== MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 79a8ae34-8517-4c07-4e65-08d742d1da0b X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Sep 2019 22:35:36.7628 (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: eJyhaGeXlxUb/o9MrEtPMd93+Bh+5mRD8JkXctcistnhLCbaX8A4eZItpVogU5jmHK1bToEcGr4tiZKOMQQ6uHn5GdamuBozfQ83TvREWPE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4459 Return-Path: michael.a.kubacki@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWZ0ZXIgdGhpbmtpbmcgYSBiaXQgbW9yZSwgdGhpcyB0ZXN0IGlzIGJhc2VkIG9uIGEgc2lkZSBl ZmZlY3Qgb2YgaW1wbGVtZW50YXRpb24uIEknZCBwcmVmZXIgdG8gYXZvaWQgdGhpcyBiZWluZyB0 aGUgc29sZSBjYXVzZSBvZiBhZGRpdGlvbmFsIGNvbXBsZXhpdHkgaW4gYW4gYWxyZWFkeSBjb21w bGV4IGRyaXZlci4gQXJlIG9uZSBvZiB0aGVzZSB0d28gb3B0aW9ucyBhY2NlcHRhYmxlPw0KDQox LiBVc2UgdGhlIFJ1bnRpbWUgU2VydmljZXMgUXVlcnlWYXJpYWJsZUluZm8gKCkgQVBJDQoNCklu IHRoaXMgcGF0Y2ggc2VyaWVzLCB0aGlzIGlzIHN0aWxsIGltcGxlbWVudGVkIHRvIHRyaWdnZXIg YW4gU01JIGFzIGludm9jYXRpb25zIG9jY3VyIHZlcnkgcmFyZWx5IG91dHNpZGUgbWFpbnN0cmVh bSBHZXRWYXJpYWJsZSAoKSBhbmQgR2V0TmV4dFZhcmlhYmxlTmFtZSAoKSB1c2FnZSBzbyBwZXJm b3JtYW5jZSBpcyBub3QgYSBtYWpvciBjb25jZXJuLiBUaGlzIGFsbG93cyBpdCB0byBjb250aW51 ZSB0byB1c2UgdGhlIHZhbGlkYXRlZCBwYXRoIHRvIHRoZSBjb252ZXJnZWQgaW1wbGVtZW50YXRp b24gaW4gVmFyaWFibGUuYw0KDQoyLiBJbmNsdWRlIGEgU01NIGRyaXZlciBpbiBPVk1GIHNwZWNp ZmljYWxseSBmb3IgZXhlcmNpc2luZyB0aGUgZWRrMiBTTU0gZmxvdy4NCg0KQSBTTU0gZHJpdmVy IGluIE9WTUYgKGluY2x1ZGVkIGlmIFNNTV9SRVFVSVJFIGlzIFRSVUUpIGNvdWxkIHJlZ2lzdGVy IGEgaGFuZGxlciB0aGF0IHNpbXBseSByZXR1cm5zIG9yIGhhcyBzb21ldGhpbmcgbGlrZSBhIGZp eGVkIDFtcyBkZWxheS4NCg0KVGhhbmtzLA0KTWljaGFlbA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+IEZyb206IEt1YmFja2ksIE1pY2hhZWwgQQ0KPiBTZW50OiBUaHVyc2RheSwg U2VwdGVtYmVyIDI2LCAyMDE5IDE6MjkgUE0NCj4gVG86IExhc3psbyBFcnNlayA8bGVyc2VrQHJl ZGhhdC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogQmksIERhbmRhbiA8ZGFuZGFu LmJpQGludGVsLmNvbT47IEFyZCBCaWVzaGV1dmVsDQo+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8u b3JnPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5 QGludGVsLmNvbT47DQo+IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEog PGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8NCj4gQSA8aGFvLmEud3VAaW50ZWwuY29t PjsgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSRTogW1BB VENIIFYxIDAvNV0gVUVGSSBWYXJpYWJsZSBTTUkgUmVkdWN0aW9uDQo+IA0KPiBIaSBMYXN6bG8s DQo+IA0KPiBJbiBzaG9ydCwgaXQgd291bGQgbm90IGNvbXBsaWNhdGUgdGhlIGNvZGUgYmV5b25k IGEgcmVhc29uYWJsZSBsZXZlbCB0bw0KPiBzdXBwb3J0IHRoZSBydW50aW1lIGNhY2hlIHdpdGgg YSBGZWF0dXJlUENELg0KPiANCj4gSSBoYWQgY29uc2lkZXJlZCB0aGlzIGJ1dCBkaXNtaXNzZWQg aXQgd2l0aCBsYWNrIG9mIGEgcHJhY3RpY2FsIHVzZSBjYXNlICh3aGljaA0KPiB5b3UgcHJvdmlk ZWQpIHRoYXQgY291bGQganVzdGlmeSBhZGRpbmcgYW5vdGhlciBjb25maWd1cmF0aW9uIG9wdGlv biB0byB0aGUNCj4gdmFyaWFibGUgZHJpdmVyLiBUaGUgU01NIGNvbW11bmljYXRpb24gYnVmZmVy IHByZXBhcmF0aW9uIGNvZGUgYW5kIFNNSQ0KPiBoYW5kbGVyIGNvZGUgZm9yIEdldFZhcmlhYmxl ICgpIGFuZCBHZXROZXh0VmFyaWFibGVOYW1lICgpIHdvdWxkIGhhdmUgdG8NCj4gYmUgYWRkZWQg YmFjayB3aGljaCBJJ2QgcHJlZmVyIGVsaW1pbmF0aW5nIG1haW50ZW5hbmNlIG9mIGlmIHBvc3Np YmxlLg0KPiANCj4gVGhlIFNNTSBjYWNoZSBpcyB1c2VkIHRvIHNlcnZlIFNNTSBjYWxsZXJzLg0K PiANCj4gRG8gb3RoZXJzIGhhdmUgYW4gb3BpbmlvbiBvciBzdWdnZXN0aW9uPyBJZiBub3QsIEkn bGwgcHJvY2VlZCB3aXRoIGFkZGluZyBhDQo+IEZlYXR1cmVQQ0QuDQo+IA0KPiBUaGFua3MsDQo+ IE1pY2hhZWwNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBM YXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBTZXB0 ZW1iZXIgMjYsIDIwMTkgMTE6MjQgQU0NCj4gPiBUbzogS3ViYWNraSwgTWljaGFlbCBBIDxtaWNo YWVsLmEua3ViYWNraUBpbnRlbC5jb20+Ow0KPiA+IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4g Q2M6IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPiA+ IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgRG9uZywgRXJpYyA8ZXJpYy5kb25nQGludGVs LmNvbT47IEdhbywNCj4gPiBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgS2lubmV5LCBN aWNoYWVsIEQNCj4gPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBOaSwgUmF5IDxyYXku bmlAaW50ZWwuY29tPjsgV2FuZywgSmlhbiBKDQo+ID4gPGppYW4uai53YW5nQGludGVsLmNvbT47 IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPiA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4gU3ViamVjdDogUmU6IFtQQVRDSCBWMSAwLzVdIFVFRkkgVmFy aWFibGUgU01JIFJlZHVjdGlvbg0KPiA+DQo+ID4gSGVsbG8gTWljaGFlbCwNCj4gPg0KPiA+IE9u IDA5LzI2LzE5IDA2OjUwLCBNaWNoYWVsIEt1YmFja2kgd3JvdGU6DQo+ID4gPiBSRUY6aHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwDQo+ID4gPg0KPiA+ ID4gT3ZlcnZpZXcNCj4gPiA+IC0tLS0tLS0tLQ0KPiA+ID4gVGhpcyBwYXRjaCBzZXJpZXMgcmVk dWNlcyBTTU0gdXNhZ2Ugd2hlbiB1c2luZw0KPiA+IFZhcmlhYmxlU21tUnVudGltZUR4ZQ0KPiA+ ID4gd2l0aCBWYXJpYWJsZVNtbS4gSXQgZG9lcyBzbyBieSBlbGltaW5hdGluZyBTTU0gdXNhZ2Ug Zm9yIHJ1bnRpbWUNCj4gPiA+IHNlcnZpY2UgR2V0VmFyaWFibGUgKCkgYW5kIEdldE5leHRWYXJp YWJsZU5hbWUgKCkgaW52b2NhdGlvbnMuIE1vc3QNCj4gPiA+IFVFRkkgdmFyaWFibGUgdXNhZ2Ug aW4gdHlwaWNhbCBzeXN0ZW1zIGFmdGVyIHRoZSB2YXJpYWJsZSBzdG9yZSBpcw0KPiA+ID4gaW5p dGlhbGl6ZWQgKGUuZy4gbWFudWZhY3R1cmluZyBib290cykgaXMgZHVlIHRvIEdldFZhcmlhYmxl ICggKSBhbmQNCj4gPiA+IEdldE5leHRWYXJpYWJsZU5hbWUgKCkgbm90IFNldFZhcmlhYmxlICgp LiBHZXRWYXJpYWJsZSAoKSBjYWxscyBjYW4NCj4gPiA+IHJlZ3VsYXJseSBleGNlZWQgMTAwIHBl ciBib290IHdoaWxlIFNldFZhcmlhYmxlICgpIGNhbGxzIHR5cGljYWxseQ0KPiA+ID4gcmVtYWlu IGxlc3MgdGhhbiAxMCBwZXIgYm9vdC4gQnkgZm9jdXNpbmcgb24gdGhlIGNvbW1vbiBjYXNlLCB0 aGUNCj4gPiA+IG1ham9yaXR5IG9mIG92ZXJoZWFkIGFzc29jaWF0ZWQgd2l0aCBTTU0gY2FuIGJl IGF2b2lkZWQgd2hpbGUgc3RpbGwNCj4gPiA+IHVzaW5nIGV4aXN0aW5nIGFuZCBwcm92ZW4gY29k ZSBmb3Igb3BlcmF0aW9ucyBzdWNoIGFzIHZhcmlhYmxlDQo+ID4gPiBhdXRoZW50aWNhdGlvbiB0 aGF0IHJlcXVpcmUgYW4gaXNvbGF0ZWQgZXhlY3V0aW9uIGVudmlyb25tZW50Lg0KPiA+ID4NCj4g PiA+ICAqIEFkdmFudGFnZTogUmVkdWNlcyBvdmVyYWxsIHN5c3RlbSBTTU0gdXNhZ2UNCj4gPiA+ ICAqIERpc2FkdmFudGFnZTogUmVxdWlyZXMgbW9yZSBSdW50aW1lIGRhdGEgbWVtb3J5IHVzYWdl DQo+ID4NCj4gPiBJbiBhIHBlcmZlY3Qgd29ybGQsIEkgd291bGQgY2FyZWZ1bGx5IHNjcnV0aW5p emUgdGhpcyBwYXRjaCBzZXQsIGFuZA0KPiA+IHJlc3BvbmQgd2l0aCBjb21tZW50cy4gSW4gdGhl IHJlYWwgd29ybGQsIEkgaGF2ZSBoYXJkbHkgZW5vdWdoIHRpbWUgdG8NCj4gPiByZWFkIHRoZSBi bHVyYiA6LyBTbyBJJ2xsIGhhdmUgdG8gZGVmZXIgdG8gdGhlIG90aGVyIHJldmlld2VycyBvbiB0 aGlzIHBhdGNoLg0KPiA+DQo+ID4gSSdkIGxpa2UgdG8gc3BlbGwgb3V0IGFub3RoZXIgImRpc2Fk dmFudGFnZSIgaG93ZXZlci4gQWRtaXR0ZWRseSBpdCdzDQo+ID4gcXVpdGUgYSBjb3JuZXIgY2Fz ZS4NCj4gPg0KPiA+IFRoZSBkaXNhZHZhbnRhZ2UgaW4gbXkgY2FzZSBpcyB0aGF0LCBieSBlbGlt aW5hdGluZyBTTU0gZnJvbSB2YXJpYWJsZQ0KPiA+ICpyZWFkcyosIE9WTUYgd2lsbCBsb3NlIGl0 cyBzaW1wbGVzdCBtZXRob2QgdG8gZXhlcmNpc2UgdGhlIFNNTSBkcml2ZXINCj4gPiBzdGFjay4g TmFtZWx5LCByaWdodCBub3csIGlmIHlvdSBib290IE9WTUYgKGJ1aWx0IHdpdGggLUQNCj4gPiBT TU1fUkVRVUlSRSksIGFuZCBhdCByb290IHByb21wdCBpbiB0aGUgTGludXggZ3Vlc3QsIHlvdSBy dW46DQo+ID4NCj4gPiAjIHRhc2tzZXQgLWMgMCBlZmlib290bWdyDQo+ID4gIyB0YXNrc2V0IC1j IDEgZWZpYm9vdG1ncg0KPiA+DQo+ID4gdGhlbiB5b3UgdmVyeSBlYXNpbHkgdGVzdCB0aGUgU01N IG1hY2hpbmVyeSAodGhyb3VnaCBCb290IyMjIywNCj4gPiBCb290T3JkZXIsIEJvb3ROZXh0IHZh cmlhYmxlICpyZWFkcyopLg0KPiA+DQo+ID4gSW4gYWRkaXRpb24sIHRoZSAidGFza3NldCIgY29t bWFuZHMgYWJvdmUgZm9yY2UgdGhlIGd1ZXN0IExpbnV4IGtlcm5lbA0KPiA+IHRvIGluaXRpYXRl IHRoZSBHZXRWYXJpYWJsZSBydW50aW1lIHNlcnZpY2UgY2FsbCAtLSBhbmQgdGhlcmVmb3JlDQo+ ID4gZW50ZXJpbmcgU01NIC0tIG9uIENQVSMwIChCU1ApIHZzLiBDUFUjMSAoQVApLg0KPiA+DQo+ ID4gVGhpcyBkaWZmZXJlbmNlICh0aGF0IGlzLCBCU1AgdnMuIEFQIGJlaW5nIHVzZWQgZm9yIHRo ZSBydW50aW1lDQo+ID4gc2VydmljZQ0KPiA+IGNhbGwpIHVzZWQgdG8gZXhwb3NlICpleHRyZW1l KiB0aW1pbmcgYW5kIHN0YWJpbGl0eSBkaWZmZXJlbmNlcyBpbiB0aGUNCj4gPiBlZGsyIFNNTSBz dGFjaywgZGVwZW5kZW50IG9uIHRoZSBTTUkgZGVsaXZlcnkgbWV0aG9kIHVzZWQuDQo+ID4NCj4g PiBUbyB0aGlzIGRheSwgdGhlIGFib3ZlIHR3byBjb21tYW5kcyByZW1haW4gcGFydCBvZiBvdXIg c3RvY2sNCj4gPiByZWdyZXNzaW9uLSB0ZXN0cyBmb3IgdGhlIGhlYWx0aCBvZiB0aGUgU01NIHN0 YWNrIC0tIHRoZSBjb21tYW5kcyBhcmUNCj4gPiBleGVjdXRlZCBpbiB0aGUgZ3Vlc3QgT1MgYm90 aCBhZnRlciBub3JtYWwgYm9vdCwgYW5kIGFmdGVyIFMzIHJlc3VtZS4NCj4gPg0KPiA+IGh0dHBz Oi8vZ2l0aHViLmNvbS90aWFub2NvcmUvdGlhbm9jb3JlLmdpdGh1Yi5pby93aWtpL1Rlc3Rpbmct U01NLXdpdGgNCj4gPiAtIFFFTVUsLUtWTS1hbmQtbGlidmlydCN1ZWZpLXZhcmlhYmxlLWFjY2Vz cy10ZXN0DQo+ID4NCj4gPiBUaGVyZWZvcmUsIHdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIG1ha2Ug dGhlIGZlYXR1cmUgZGVwZW5kZW50IG9uIGEgbmV3DQo+ID4gRmVhdHVyZVBDRD8NCj4gPg0KPiA+ IE9yLCBpZiB0aGF0IHdvdWxkIGNvbXBsaWNhdGUgdGhlIGNvZGUgdG9vIG11Y2gsIHBlcmhhcHMg bmV3IG1vZHVsZSBJTkYNCj4gPiBmaWxlcyBjb3VsZCBiZSBpbnRyb2R1Y2VkIChsaWJyYXJ5IGlu c3RhbmNlcywgb3IgZXZlbiBkcml2ZXJzKSB0aGF0IGENCj4gPiBwbGF0Zm9ybSBjb3VsZCBjaG9v c2UgdG8gc2VsZWN0IGluIERTQyBmaWxlcywgcGVyaGFwcyBkZXBlbmRlbnQgb24gYSAtRA0KPiBi dWlsZCBmbGFnLg0KPiA+IFRoZXJlIGNvdWxkIGJlIGEgc2V0IG9mIElORiBmaWxlcyBmb3IgdGhl IGN1cnJlbnQgYmVoYXZpb3IsIGFuZA0KPiA+IGFub3RoZXIgc2V0IG9mIElORiBmaWxlcyBmb3Ig dGhlICJyZWFkIGNhY2hlIiBiZWhhdmlvci4gQW5kIHRoZQ0KPiA+IHJlbGF0ZWQgQyBzb3VyY2Ug ZmlsZXMgd291bGQgbm90IGhhdmUgdG8gYmUgbGl0dGVyZWQgd2l0aA0KPiA+DQo+ID4gICBpZiAo RmVhdHVyZVBjZEdldCAoLi4uKSkgew0KPiA+ICAgICAvLw0KPiA+ICAgICAvLyByZWFkIGNhY2hl DQo+ID4gICAgIC8vDQo+ID4gICB9IGVsc2Ugew0KPiA+ICAgICAvLw0KPiA+ICAgICAvLyB0cmFk aXRpb25hbCBiZWhhdmlvcg0KPiA+ICAgICAvLw0KPiA+ICAgfQ0KPiA+DQo+ID4gT2YgY291cnNl LCB3aXRoIHRoZSByZWFkIGNhY2hlIGZlYXR1cmUsIFNNTSBlbnRyeSBjb3VsZCBzdGlsbCBiZQ0K PiA+IGZvcmNlZCBpbiBPVk1GIHRocm91Z2ggbm9uLXZvbGF0aWxlIHZhcmlhYmxlICp3cml0ZXMq IC0tIGJ1dCB3cml0ZXMNCj4gPiBhcmUgbm90IHdpdGhvdXQgc2lkZS1lZmZlY3RzIG9uIHRoZSB2 YXJzdG9yZSwgYW5kIHRoZXkgZGVwZW5kIG9uIGV4dHJhDQo+ID4gY29uZGl0aW9ucyByZWxhdGl2 ZSB0byByZWFkcy4NCj4gPg0KPiA+IFlvdSBtZW50aW9uICJTTU0gY2FjaGUiIGJlbG93LCBhbmQg SSdtIG5vdCBlbnRpcmVseSBjbGVhciB3aGVuIGV4YWN0bHkNCj4gPiB0aGF0IHdvdWxkIGJlIHVz ZWQsIGluIGZhdm9yIG9mIHRoZSAicnVudGltZSBjYWNoZSIuIEl0IHNlZW1zIHRoYXQgdGhlDQo+ ID4gIlNNTSBjYWNoZSIgd291bGQgcHJpbWFyaWx5IHNlcnZlIFNNTSBjYWxsZXJzLiBJZiB0aGUg RmVhdHVyZVBDRCBjb3VsZA0KPiA+IGJlIHVzZWQgZm9yIGZvcmNpbmcgdGhlIHVzZSBvZiAiU01N IGNhY2hlIiBmb3IgdGhlIG5vcm1hbCBHZXRWYXJpYWJsZQ0KPiA+IHJ1bnRpbWUgc2VydmljZSB0 b28sIEkgdGhpbmsgdGhhdCBtaWdodCBjb3ZlciBteSB1c2UgY2FzZS4gSSBkb24ndA0KPiA+IG5l ZWQgR2V0VmFyaWFibGUgdG8gYWNjZXNzIGZsYXNoLCBpLmUuIGNhY2hpbmcgcGVyIHNlIGlzIGZp bmU7IEknZA0KPiA+IGp1c3QgbmVlZCBHZXRWYXJpYWJsZSB0byBjb250aW51ZSBleGVyY2lzaW5n IHRoZSBTTU0gc3RhY2sgKmluIE9WTUYqDQo+ID4gLS0gZXZlbiBpZiB0aGF0IHBhdGggaXMgc2xv d2VyIHRoYW4gZGVzaXJhYmxlLCBmb3IgcGh5c2ljYWwgcGxhdGZvcm1zLg0KPiA+DQo+ID4gVGhh bmtzIQ0KPiA+IExhc3psbw0KPiA+DQo+ID4gPiBJbml0aWFsIFBlcmZvcm1hbmNlIE9ic2VydmF0 aW9ucw0KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgKiBX aXRoIHRoZXNlIHByb3Bvc2VkIGNoYW5nZXMsIGFuIEludGVsIEF0b20gYmFzZWQgU29DIHNhdw0K PiA+ID4gR2V0VmFyaWFibGUNCj4gPiAoICkNCj4gPiA+ICAgIHRpbWUgZm9yIGFuIGV4aXN0aW5n IHZhcmlhYmxlIHJlZHVjZSBmcm9tIH4yMjB1cyB0byB+NXVzLg0KPiA+ID4NCj4gPiA+IE1ham9y IENoYW5nZXMNCj4gPiA+IC0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgMS4gVHdvIFVFRkkgdmFyaWFi bGUgY2FjaGVzIHdpbGwgYmUgbWFpbnRhaW5lZC4NCj4gPiA+ICAgICAgYS4gIlJ1bnRpbWUgQ2Fj aGUiIC0gTWFpbnRhaW5lZCBpbiBWYXJpYWJsZVNtbVJ1bnRpbWVEeGUuIFVzZWQNCj4gPiA+IHRv DQo+ID4gc2VydmUNCj4gPiA+ICAgICAgICAgIHJ1bnRpbWUgc2VydmljZSBHZXRWYXJpYWJsZSAo KSBhbmQgR2V0TmV4dFZhcmlhYmxlTmFtZSAoKSBjYWxsZXJzLg0KPiA+ID4gICAgICBiLiAiU01N IGNhY2hlIiAtIE1haW50YWluZWQgaW4gVmFyaWFibGVTbW0gdG8gc2VydmljZSBTTU0NCj4gPiBH ZXRWYXJpYWJsZSAoKQ0KPiA+ID4gICAgICAgICAgYW5kIEdldE5leHRWYXJpYWJsZU5hbWUgKCkg Y2FsbGVycy4NCj4gPiA+ICAgICAgICAgIGkuIEEgY2FjaGUgaW4gU01SQU0gaXMgcmV0YWluZWQg c28gU01NIG1vZHVsZXMgZG8gbm90DQo+ID4gPiBvcGVyYXRlIG9uDQo+ID4gZGF0YQ0KPiA+ID4g ICAgICAgICAgICAgb3V0c2lkZSBTTVJBTS4NCj4gPiA+ICAyLiBBIG5ldyBVRUZJIHZhcmlhYmxl IHJlYWQgYW5kIHdyaXRlIGZsb3cgd2lsbCBiZSB1c2VkIGFzIGRlc2NyaWJlZA0KPiBiZWxvdy4N Cj4gPiA+DQo+ID4gPiBBdCBhbnkgZ2l2ZW4gdGltZSwgdGhlIHR3byBjYWNoZXMgd291bGQgYmUg Y29oZXJlbnQuIE9uIGEgdmFyaWFibGUNCj4gPiA+IHdyaXRlLCB0aGUgcnVudGltZSBjYWNoZSBp cyBvbmx5IHVwZGF0ZWQgYWZ0ZXIgdmFsaWRhdGlvbiBpbiBTTU0NCj4gPiA+IGFuZCwgaW4gdGhl IGNhc2Ugb2YgYSBub24tdm9sYXRpbGUgVUVGSSB2YXJpYWJsZSwgdGhlIHZhcmlhYmxlIG11c3QN Cj4gPiA+IGFsc28gYmUgc3VjY2Vzc2Z1bGx5IHdyaXR0ZW4gdG8gbm9uLXZvbGF0aWxlIHN0b3Jh Z2UuDQo+ID4gPg0KPiA+ID4gUHJpb3IgUkZDIEZlZWRiYWNrIEFkZHJlc3NlZA0KPiA+ID4gLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+IFJGQyBzZW50IFNlcHQuIDUsIDIwMTk6 IGh0dHBzOi8vZWRrMi5ncm91cHMuaW8vZy9kZXZlbC9tZXNzYWdlLzQ2OTM5DQo+ID4gPg0KPiA+ ID4gMS4gVUVGSSB2YXJpYWJsZSBkYXRhIHJldHJpZXZhbCBmcm9tIGEgcmluZyAwIGJ1ZmZlcg0K PiA+ID4NCj4gPiA+ICAgIEEgY29tbW9uIGNvbmNlcm4gd2l0aCB0aGlzIHByb3Bvc2VkIHNldCBv ZiBjaGFuZ2VzIGlzIHRoZQ0KPiA+ID4gcG90ZW50aWFsDQo+ID4gc2VjdXJpdHkNCj4gPiA+ICAg IHRocmVhdCBwcmVzZW50ZWQgYnkgc2VydmluZyBydW50aW1lIHNlcnZpY2VzIGNhbGxlcnMgZnJv bSBhIHJpbmcgMA0KPiBtZW1vcnkNCj4gPiA+ICAgIGJ1ZmZlciBvZiBFZmlSdW50aW1lU2Vydmlj ZXNEYXRhIHR5cGUuIFRoaXMgY29uY2x1c2lvbiB3YXMgdGhhdA0KPiA+ID4gdGhpcw0KPiA+IGNo YW5nZQ0KPiA+ID4gICAgZG9lcyBub3QgZnVuZGFtZW50YWxseSBhbHRlciB0aGUgYXR0YWNrIHN1 cmZhY2UuIFRoZSBVRUZJDQo+ID4gPiB2YXJpYWJsZQ0KPiA+IFJ1bnRpbWUNCj4gPiA+ICAgIFNl cnZpY2VzIGFyZSBpbnZva2VkIGZyb20gcmluZyAwIGFuZCB0aGUgZGF0YSBhbHJlYWR5IHRyYXZl bHMgdGhyb3VnaA0KPiByaW5nDQo+ID4gPiAgICAwIGJ1ZmZlcnMgKHN1Y2ggYXMgdGhlIFNNTSBj b21tdW5pY2F0ZSBidWZmZXIpIHRvIHJlYWNoIHRoZSBjYWxsZXIuDQo+IEV2ZW4NCj4gPiA+ICAg IHRvZGF5IGlmIHJpbmcgMCBpcyBhc3N1bWVkIHRvIGJlIG1hbGljaW91cywgdGhlIG1hbGljaW91 cyBjb2RlDQo+ID4gPiBtYXkga2VlcA0KPiA+IG9uZQ0KPiA+ID4gICAgQVAgaW4gYSBsb29wIHRv IG1vbml0b3IgdGhlIGNvbW11bmljYXRpb24gZGF0YSwgd2hlbiB0aGUgQlNQIGdldHMgYW4NCj4g PiA+ICAgIChhdXRoZW50aWNhdGVkKSB2YXJpYWJsZS4gV2hlbiB0aGUgY29tbXVuaWNhdGlvbiBi dWZmZXIgaXMNCj4gPiA+IHVwZGF0ZWQgYW5kDQo+ID4gdGhlDQo+ID4gPiAgICBzdGF0dXMgaXMg c2V0IHRvIEVGSV9TVUNDRVNTLCB0aGUgQVAgbWF5IG1vZGlmeSB0aGUgY29tbXVuaWNhdGlvbg0K PiA+IGJ1ZmZlcg0KPiA+ID4gICAgY29udGVudHMgc3VjaCB0aGUgdGFtcGVyZWQgZGF0YSBpcyBy ZXR1cm5lZCB0byB0aGUgQlNQIGNhbGxlci4gT3IgYW4NCj4gPiA+ICAgIGludGVycnVwdCBoYW5k bGVyIG9uIHRoZSBCU1AgbWF5IGFsdGVyIHRoZSBjb21tdW5pY2F0aW9uIGJ1ZmZlcg0KPiA+IGNv bnRlbnRzDQo+ID4gPiAgICBiZWZvcmUgdGhlIGRhdGEgaXMgcmV0dXJuZWQgdG8gdGhlIGNhbGxl ci4gSW4gc3VtbWFyeSwgdGhpcyB3YXMNCj4gPiA+IG5vdCBmb3VuZA0KPiA+IHRvDQo+ID4gPiAg ICBpbnRyb2R1Y2UgYW55IGF0dGFjayBub3QgcG9zc2libGUgdG9kYXkuDQo+ID4gPg0KPiA+ID4g Mi4gVmFyQ2hlY2tMaWIgaW1wYWN0DQo+ID4gPg0KPiA+ID4gICAgVmFyQ2hlY2tMaWIgcGxheXMg YSByb2xlIGluIFNldFZhcmlhYmxlICgpIGNhbGxzLiBUaGlzIHBhdGNoIHNlcmllcyBvbmx5DQo+ ID4gPiAgICBjaGFuZ2VzIEdldFZhcmlhYmxlICgpIGJlaGF2aW9yLiBUaGVyZWZvcmUsIFZhckNo ZWNrTGliIGlzIGV4cGVjdGVkIHRvDQo+ID4gPiAgICBoYXZlIG5vIGltcGFjdCBkdWUgdG8gdGhl c2UgY2hhbmdlcy4NCj4gPiA+DQo+ID4gPiBUZXN0aW5nIFBlcmZvcm1lZA0KPiA+ID4gLS0tLS0t LS0tLS0tLS0tLS0tDQo+ID4gPiBUaGlzIGNvZGUgd2FzIHRlc3RlZCB3aXRoIHRoZSBtYXN0ZXIg YnJhbmNoIG9mIGVkazIgb24gYW4gSW50ZWwgS2FieQ0KPiA+ID4gTGFrZSBVIEludGVsIFdoaXNr ZXkgTGFrZSBVIHJlZmVyZW5jZSB2YWxpZGF0aW9uIHBsYXRmb3JtLiBUaGUgc2V0DQo+ID4gPiBv ZiB0ZXN0cyBwZXJmb3JtZWQNCj4gPiA+IGluY2x1ZGVkOg0KPiA+ID4NCj4gPiA+IDEuIEJvb3Qg ZnJvbSBTNSB0byBXaW5kb3dzIDEwIE9TIHdpdGggU01NIHZhcmlhYmxlcyBlbmFibGVkLg0KPiA+ ID4gMi4gQm9vdCBmcm9tIFM1IHRvIFVidW50dSAxOC4wNC4xIExUUyB3aXRoIFNNTSB2YXJpYWJs ZSBlbmFibGVkLg0KPiA+ID4gMy4gQm9vdCBmcm9tIFM1IHRvIEVGSSBzaGVsbCB3aXRoIERYRSB2 YXJpYWJsZXMgZW5hYmxlZC4NCj4gPiA+IDQuIER1bXAgVUVGSSB2YXJpYWJsZSBzdG9yZSBhdCBz aGVsbCB3aXRoIGRtcHN0b3JlIHRvIHZlcmlmeSBjb250ZW50cy4NCj4gPiA+IDUuIER1bXAgTnZT dG9yYWdlIEZWIGZyb20gU1BJIGZsYXNoIGFmdGVyIGJvb3QgdG8gdmVyaWZ5IGNvbnRlbnRzDQo+ IHdyaXR0ZW4uDQo+ID4gPiA2LiBEdW1wIFVFRkkgdmFyaWFibGUgc3RhdGlzdGljcyB3aXRoIFZh cmlhYmxlSW5mbyBhdCBzaGVsbC4NCj4gPiA+IDcuIEJvb3Qgd2l0aCBlbXVsYXRlZCB2YXJpYWJs ZXMgZW5hYmxlZC4NCj4gPiA+IDguIEN5Y2xlcyBvZiBhZGRpbmcgYW5kIGRlbGV0aW5nIGEgVUVG SSB2YXJpYWJsZSB0byB2ZXJpZnkgY2FjaGUgcmVzdWx0cy4NCj4gPiA+IDkuIFNldCBPc0luZGlj YXRpb25zIHRvIHN0b3AgYXQgRlcgVUkgdG8gdmVyaWZ5IGNhY2hlIGxvYWQgb2Ygbm9uLXZvbGF0 aWxlDQo+ID4gPiAgICBjb250ZW50cy4NCj4gPiA+DQo+ID4gPiBXaHkgS2VlcCBTTU0gb24gVmFy aWFibGUgV3JpdGVzDQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ ID4gICogU01NIHByb3ZpZGVzIGEgdWJpcXVpdG91cyBpc29sYXRlZCBleGVjdXRpb24gZW52aXJv bm1lbnQgaW4geDg2IGZvcg0KPiA+ID4gICAgYXV0aGVudGljYXRlZCBVRUZJIHZhcmlhYmxlcy4N Cj4gPiA+ICAqIEJJT1MgcmVnaW9uIFNQSSBmbGFzaCB3cml0ZSByZXN0cmljdGlvbnMgdG8gU01N IGluIHBsYXRmb3JtcyB0b2RheSBjYW4NCj4gPiA+ICAgIGJlIHJldGFpbmVkLg0KPiA+ID4NCj4g PiA+IFRvZGF5J3MgVUVGSSBWYXJpYWJsZSBDYWNoZSAoZm9yIHJlZmVyZW5jZSkNCj4gPiA+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiAgKiBNYWlu dGFpbmVkIGluIFNNUkFNIHZpYSBWYXJpYWJsZVNtbS4NCj4gPiA+ICAqIEEgIndyaXRlLXRocm91 Z2giIGNhY2hlIG9mIHZhcmlhYmxlIGRhdGEgaW4gdGhlIGZvcm0gb2YgYSBVRUZJIHZhcmlhYmxl DQo+ID4gPiAgICBzdG9yZS4NCj4gPiA+ICAqIE5vbi12b2xhdGlsZSBhbmQgdm9sYXRpbGUgdmFy aWFibGVzIGFyZSBtYWludGFpbmVkIGluIHNlcGFyYXRlIGJ1ZmZlcnMNCj4gPiA+ICAgKHZhcmlh YmxlIHN0b3JlcykuDQo+ID4gPg0KPiA+ID4gUnVudGltZSAmIFNNTSBDYWNoZSBDb2hlcmVuY3kN Cj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gVGhlIG5vbi12b2xh dGlsZSBjYWNoZSBzaG91bGQgYWx3YXlzIGFjY3VyYXRlbHkgcmVmbGVjdCBub24tdm9sYXRpbGUN Cj4gPiA+IHN0b3JhZ2UgY29udGVudHMgKGRvbmUgdG9kYXkpIGFuZCB0aGUgIlNNTSBjYWNoZSIg YW5kICJSdW50aW1lDQo+IGNhY2hlIg0KPiA+ID4gc2hvdWxkIGFsd2F5cyBiZSBjb2hlcmVudCBv biBhY2Nlc3MuIFRoZSBydW50aW1lIGNhY2hlIGlzIHVwZGF0ZWQgYnkNCj4gPiBWYXJpYWJsZVNt bS4NCj4gPiA+DQo+ID4gPiBVcGRhdGluZyBib3RoIGNhY2hlcyBmcm9tIHdpdGhpbiBhIFNNTSBT ZXRWYXJpYWJsZSAoKSBvcGVyYXRpb24gaXMNCj4gPiA+IGZhaXJseSBzdHJhaWdodGZvcndhcmQg YnV0IGEgcmFjZSBjb25kaXRpb24gY2FuIG9jY3VyIGlmIGFuIFNNSQ0KPiA+ID4gb2NjdXJzIGR1 cmluZyB0aGUgZXhlY3V0aW9uIG9mIHJ1bnRpbWUgY29kZSByZWFkaW5nIGZyb20gdGhlIHJ1bnRp bWUNCj4gY2FjaGUuDQo+ID4gPiBUbyBoYW5kbGUgdGhpcyBjYXNlLCBhIHJ1bnRpbWUgY2FjaGUg cmVhZCBsb2NrIGlzIGludHJvZHVjZWQgdGhhdA0KPiA+ID4gZXhwbGljaXRseSBtb3ZlcyBwZW5k aW5nIHVwZGF0ZXMgZnJvbSBTTU0gdG8gdGhlIHJ1bnRpbWUgY2FjaGUgaWYgYW4NCj4gPiA+IFNN TSB1cGRhdGUgb2NjdXJzIHdoaWxlIHRoZSBydW50aW1lIGNhY2hlIGlzIGxvY2tlZC4gTm90ZSB0 aGF0IGl0IGlzDQo+ID4gPiBub3QgZXhwZWN0ZWQgYSBSdW50aW1lIHNlcnZpY2VzIGNhbGwgd2ls bCBpbnRlcnJ1cHQgU01NIHByb2Nlc3NpbmcNCj4gPiA+IHNpbmNlIGFsbA0KPiA+IENQVSBjb3Jl cyByZW5kZXp2b3VzIGluIFNNTS4NCj4gPiA+DQo+ID4gPiBOZXcgS2V5IEVsZW1lbnRzIGZvciBD b2hlcmVuY2UNCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+IFJ1 bnRpbWUgRFhFIChWYXJpYWJsZVNtbVJ1bnRpbWVEeGUpDQo+ID4gPiAgMS4gUnVudGltZUNhY2hl UmVhZExvY2sgLSBBIGdsb2JhbCBsb2NrIHVzZWQgdG8gbG9jayByZWFkIGFjY2VzcyB0byB0aGUN Cj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bnRpbWUgY2FjaGUuDQo+ID4gPiAg Mi4gUnVudGltZUNhY2hlUGVuZGluZ1VwZGF0ZSAtIEEgZ2xvYmFsIGZsYWcgdXNlZCB0byBub3Rp ZnkgcnVudGltZQ0KPiA+ID4gY29kZQ0KPiA+IG9mIGENCj4gPiA+ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGVuZGluZyBjYWNoZSB1cGRhdGUgaW4gU01NLg0KPiA+ID4NCj4gPiA+ IFNNTSAoVmFyaWFibGVTbW0pDQo+ID4gPiAgMS4gRmx1c2hSdW50aW1lQ2FjaGVQZW5kaW5nVXBk YXRlIFNNSSAtIEEgU1cgU01JIGhhbmRsZXIgdGhhdA0KPiA+IHN5bmNocm9uaXplcw0KPiA+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcnVudGltZSBjYWNo ZSBidWZmZXIgd2l0aCB0aGUgU01NDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNhY2hlIGJ1ZmZlci4NCj4gPiA+DQo+ID4gPiBQcm9wb3NlZCBSdW50aW1l IERYRSBSZWFkIEZsb3cNCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4g PiA+ICAxLiBXYWl0IGZvciBSdW50aW1lQ2FjaGVSZWFkTG9jayB0byBiZSBmcmVlICAyLiBBY3F1 aXJlDQo+ID4gPiBSdW50aW1lQ2FjaGVSZWFkTG9jayAgMy4gSWYgUnVudGltZUNhY2hlUGVuZGlu Z1VwZGF0ZSBmbGFnIChyYXJlKSBpcw0KPiA+ID4gc2V0IHRoZW46DQo+ID4gPiAgICAgIDMuYS4g VHJpZ2dlciBGbHVzaFJ1bnRpbWVDYWNoZVBlbmRpbmdVcGRhdGUgU01JDQo+ID4gPiAgICAgIDMu Yi4gVmVyaWZ5IFJ1bnRpbWVDYWNoZVBlbmRpbmdVcGRhdGUgZmxhZyBpcyBjbGVhcmVkICA0Lg0K PiA+ID4gUGVyZm9ybSByZWFkIGZyb20gUnVudGltZUNhY2hlICA1LiBSZWxlYXNlIFJ1bnRpbWVD YWNoZVJlYWRMb2NrDQo+ID4gPg0KPiA+ID4gUHJvcG9zZWQgRmx1c2hSdW50aW1lQ2FjaGVQZW5k aW5nVXBkYXRlIFNNSQ0KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCj4gPiA+ICAxLiBJZiBSdW50aW1lQ2FjaGVQZW5kaW5nVXBkYXRlIGZsYWcgaXMg bm90IHNldDoNCj4gPiA+ICAgICAgMS5hLiBSZXR1cm4NCj4gPiA+ICAyLiBDb3B5IHRoZSBkYXRh IGF0IFJ1bnRpbWVDYWNoZVBlbmRpbmdPZmZzZXQgb2YNCj4gPiBSdW50aW1lQ2FjaGVQZW5kaW5n TGVuZ3RoIHRvDQo+ID4gPiAgICAgUnVudGltZUNhY2hlDQo+ID4gPiAgMy4gQ2xlYXIgdGhlIFJ1 bnRpbWVDYWNoZVBlbmRpbmdVcGRhdGUgZmxhZw0KPiA+ID4NCj4gPiA+IFByb3Bvc2VkIFNNTSBX cml0ZSBGbG93DQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+ICAxLiBQZXJm b3JtIHZhcmlhYmxlIGF1dGhlbnRpY2F0aW9uIGFuZCBub24tdm9sYXRpbGUgd3JpdGUuIElmIGVp dGhlciBmYWlsLA0KPiA+ID4gICAgIHJldHVybiBhbiBlcnJvciB0byB0aGUgY2FsbGVyLg0KPiA+ ID4gIDIuIElmIFJ1bnRpbWVDYWNoZVJlYWRMb2NrIGlzIHNldCB0aGVuOg0KPiA+ID4gICAgICAy LmEuIFNldCBSdW50aW1lQ2FjaGVQZW5kaW5nVXBkYXRlIGZsYWcNCj4gPiA+ICAgICAgMi5iLiBV cGRhdGUgUnVudGltZUNhY2hlUGVuZGluZ09mZnNldCBhbmQNCj4gPiBSdW50aW1lQ2FjaGVQZW5k aW5nTGVuZ3RoIHRvDQo+ID4gPiAgICAgICAgICAgY292ZXIgdGhlIGEgc3VwZXJzZXQgb2YgdGhl IHBlbmRpbmcgY2h1bmsgKGZvciBzaW1wbGljaXR5LCB0aGUNCj4gPiA+ICAgICAgICAgICBlbnRp cmUgdmFyaWFibGUgc3RvcmUgaXMgY3VycmVudGx5IHN5bmNocm9uaXplZCkuDQo+ID4gPiAzLiBF bHNlOg0KPiA+ID4gICAgICAzLmEuIFVwZGF0ZSBSdW50aW1lQ2FjaGUNCj4gPiA+IDQuIFVwZGF0 ZSBTbW1DYWNoZQ0KPiA+ID4gICAgICAtIE5vdGU6IFJUIHJlYWQgY2Fubm90IG9jY3VyIGR1cmlu ZyBTTUkgcHJvY2Vzc2luZyBzaW5jZSBhbGwgY29yZXMgYXJlDQo+ID4gPiAgICAgICAgICAgICAg bG9ja2VkIGluIFNNTS4NCj4gPiA+DQo+ID4gPiBDYzogRGFuZGFuIEJpIDxkYW5kYW4uYmlAaW50 ZWwuY29tPg0KPiA+ID4gQ2M6IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8u b3JnPg0KPiA+ID4gQ2M6IEVyaWMgRG9uZyA8ZXJpYy5kb25nQGludGVsLmNvbT4NCj4gPiA+IENj OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+ID4gQ2M6IExpbWluZyBHYW8g PGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiA+ID4gQ2M6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hh ZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiA+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNv bT4NCj4gPiA+IENjOiBKaWFuIEogV2FuZyA8amlhbi5qLndhbmdAaW50ZWwuY29tPg0KPiA+ID4g Q2M6IEhhbyBBIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4gPiBDYzogSmlld2VuIFlhbyA8 amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNaWNoYWVsIEt1YmFj a2kgPG1pY2hhZWwuYS5rdWJhY2tpQGludGVsLmNvbT4NCj4gPiA+DQo+ID4gPiBNaWNoYWVsIEt1 YmFja2kgKDUpOg0KPiA+ID4gICBNZGVNb2R1bGVQa2cvVmFyaWFibGU6IENvbnNvbGlkYXRlIGNv bW1vbiBwYXJzaW5nIGZ1bmN0aW9ucw0KPiA+ID4gICBNZGVNb2R1bGVQa2cgVmFyaWFibGVJbmZv OiBBbHdheXMgY29uc2lkZXIgUlQgRFhFIGFuZCBTTU0gc3RhdHMNCj4gPiA+ICAgTWRlTW9kdWxl UGtnL1ZhcmlhYmxlOiBBZGQgUlQgR2V0VmFyaWFibGUoKSBjYWNoZSBzdXBwb3J0DQo+ID4gPiAg IE1kZU1vZHVsZVBrZy9WYXJpYWJsZTogQWRkIFJUIEdldE5leHRWYXJpYWJsZU5hbWUoKSBjYWNo ZQ0KPiBzdXBwb3J0DQo+ID4gPiAgIE1kZU1vZHVsZVBrZy9WYXJpYWJsZVNtbTogUmVtb3ZlIHVu dXNlZCBTTUkgaGFuZGxlciBmdW5jdGlvbnMNCj4gPiA+DQo+ID4gPg0KPiBNZGVNb2R1bGVQa2cv VW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVSdW50aW1lRHhlLmluZg0KPiA+ IHwgICA2ICsNCj4gPiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVE eGUvVmFyaWFibGVTbW0uaW5mDQo+IHwNCj4gPiA2ICsNCj4gPiA+DQo+ID4NCj4gTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU21tUnVudGltZUR4ZS5p DQo+ID4gbmYNCj4gPiA+IHwgIDMyICstDQo+ID4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9W YXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlU3RhbmRhbG9uZU1tLmluZg0KPiA+IHwgIDExICsN Cj4gPiA+ICBNZGVNb2R1bGVQa2cvSW5jbHVkZS9HdWlkL1NtbVZhcmlhYmxlQ29tbW9uLmggICAg ICAgICAgICAgICAgICAgICAgICB8ICAzMw0KPiArLQ0KPiA+ID4gIE1kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZS5oICAgICAgICAgICAgICAgIHwNCj4g MTU4DQo+ID4gKy0tLQ0KPiA+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVu dGltZUR4ZS9WYXJpYWJsZU5vblZvbGF0aWxlLmgNCj4gPiB8ICAyNSArDQo+ID4gPiAgTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUGFyc2luZy5oDQo+ IHwNCj4gPiAzNDIgKysrKysrKysNCj4gPiA+DQo+ID4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9W YXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUnVudGltZUNhY2hlLmgNCj4gPiB8ICA0NyArKw0K PiA+ID4gIE1kZU1vZHVsZVBrZy9BcHBsaWNhdGlvbi9WYXJpYWJsZUluZm8vVmFyaWFibGVJbmZv LmMgICAgICAgICAgICAgICAgIHwgIDM3ICstDQo+ID4gPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMgICAgICAgICAgICAgICAgfCA4MjgNCj4g PiArKy0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFy aWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZUV4TGliLmMgICAgICAgICAgIHwNCj4gPiAxMSArLQ0K PiA+ID4gIE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJs ZU5vblZvbGF0aWxlLmMNCj4gPiB8ICAyOCArDQo+ID4gPiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUGFyc2luZy5jICAgICAgICAgfA0KPiA+IDgx NiArKysrKysrKysrKysrKysrKysrDQo+ID4gPg0KPiBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1Zh cmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGVSdW50aW1lQ2FjaGUuYw0KPiA+IHwgMTUzICsrKysN Cj4gPiA+ICBNZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFi bGVTbW0uYyAgICAgICAgICAgICB8DQo+ID4gMjEzICsrKy0tDQo+ID4gPg0KPiA+DQo+IE1kZU1v ZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZVNtbVJ1bnRpbWVE eGUuDQo+ID4gYyAgIHwgNzI2ICsrKysrKysrKysrKystLS0tDQo+ID4gPiAgMTcgZmlsZXMgY2hh bmdlZCwgMjI5OCBpbnNlcnRpb25zKCspLCAxMTc0IGRlbGV0aW9ucygtKSAgY3JlYXRlDQo+ID4g PiBtb2RlDQo+ID4gPiAxMDA2NDQNCj4gPiA+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFi bGUvUnVudGltZUR4ZS9WYXJpYWJsZU5vblZvbGF0aWxlLmgNCj4gPiA+ICBjcmVhdGUgbW9kZSAx MDA2NDQNCj4gPiA+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9W YXJpYWJsZVBhcnNpbmcuaA0KPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+ID4NCj4gTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlUnVudGltZUNh Y2hlLmgNCj4gPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+IE1kZU1vZHVsZVBrZy9Vbml2 ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZU5vblZvbGF0aWxlLmMNCj4gPiA+ICBj cmVhdGUgbW9kZSAxMDA2NDQNCj4gPiA+IE1kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUv UnVudGltZUR4ZS9WYXJpYWJsZVBhcnNpbmcuYw0KPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NA0K PiA+ID4NCj4gTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1Zhcmlh YmxlUnVudGltZUNhY2hlLmMNCj4gPiA+DQoNCg==