From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 7D8F421E87985 for ; Mon, 11 Sep 2017 06:57:38 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Sep 2017 07:00:33 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,378,1500966000"; d="scan'208";a="1193789044" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga001.fm.intel.com with ESMTP; 11 Sep 2017 07:00:33 -0700 Received: from fmsmsx116.amr.corp.intel.com (10.18.116.20) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Sep 2017 07:00:33 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx116.amr.corp.intel.com (10.18.116.20) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Sep 2017 07:00:33 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.39]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.168]) with mapi id 14.03.0319.002; Mon, 11 Sep 2017 22:00:31 +0800 From: "Shi, Steven" To: Paulo Alcantara , Laszlo Ersek , edk2-devel-01 CC: "Ni, Ruiyu" , "Dong, Eric" , "Zeng, Star" , Ard Biesheuvel Thread-Topic: [edk2] [PATCH 0/5] MdeModulePkg: UDF fixes and cleanups Thread-Index: AQHTKcmbPIdg+ibdkUCg8wDkkAXa4aKtg50g///DFgCAAFeRgIAAj1FQ//+SHICAAdp4gP//lnMAABD75FA= Date: Mon, 11 Sep 2017 14:00:30 +0000 Message-ID: <06C8AB66E78EE34A949939824ABE2B313B57F55A@shsmsx102.ccr.corp.intel.com> References: <20170910001304.8628-1-lersek@redhat.com> <06C8AB66E78EE34A949939824ABE2B313B57E700@shsmsx102.ccr.corp.intel.com> <5d0d40da-5d93-2be7-f8ef-73e981b48f49@redhat.com> <06C8AB66E78EE34A949939824ABE2B313B57EAA3@shsmsx102.ccr.corp.intel.com> <06C8AB66E78EE34A949939824ABE2B313B57F227@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 0/5] MdeModulePkg: UDF fixes and cleanups X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Sep 2017 13:57:38 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgUGF1bG8sDQpZb3VyIGZpeCB3b3JrcyBmb3IgbWUuIFRoZSAiTnVsbCBQb2ludGVyIFVzZSIg aXNzdWUgZGlzYXBwZWFycyBhZnRlciBhcHBseSB5b3VyIG5ldyBhc3NpZ25tZW50IHBhdGNoLiBU aGFua3MhDQoNCg0KU3RldmVuIFNoaQ0KSW50ZWxcU1NHXFNUT1xVRUZJIEZpcm13YXJlDQoNClRl bDogKzg2IDAyMS02MTE2NjUyMg0KaU5ldDogODIxLTY1MjINCg0KDQo+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+IEZyb206IFBhdWxvIEFsY2FudGFyYSBbbWFpbHRvOnBjYWNqckB6eXRv ci5jb21dDQo+IFNlbnQ6IE1vbmRheSwgU2VwdGVtYmVyIDExLCAyMDE3IDk6NTIgUE0NCj4gVG86 IFNoaSwgU3RldmVuIDxzdGV2ZW4uc2hpQGludGVsLmNvbT47IExhc3psbyBFcnNlayA8bGVyc2Vr QHJlZGhhdC5jb20+Ow0KPiBlZGsyLWRldmVsLTAxIDxlZGsyLWRldmVsQGxpc3RzLjAxLm9yZz4N Cj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgRG9uZywgRXJpYyA8ZXJpYy5k b25nQGludGVsLmNvbT47IFplbmcsDQo+IFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBBcmQg Qmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gU3ViamVjdDogUmU6IFtl ZGsyXSBbUEFUQ0ggMC81XSBNZGVNb2R1bGVQa2c6IFVERiBmaXhlcyBhbmQgY2xlYW51cHMNCj4g DQo+IEhpIFN0ZXZlbiwNCj4gDQo+IE9uIDExLzA5LzIwMTcgMTA6MDcsIFNoaSwgU3RldmVuIHdy b3RlOg0KPiA+IEhpIExhc3psbywNCj4gPiBZb3VyIGNvZGUgaXMgZ29vZC4gQnV0IHRoZXJlIGlz IGEgIk51bGwgUG9pbnRlciBVc2UiIGlzc3VlLCB3aGljaCBpcyBhDQo+IHVuZGVmaW5lZCBiZWhh dmlvciBpbiBDIHNwZWMsIGluDQo+IGVkazIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1Vk ZkR4ZS9GaWxlLmMsIGxpbmU6Njk2LCBjb2x1bW46IDcgYW5kDQo+IGxpbmU6NzA3LCBjb2x1bW46 IDE0Lg0KPiA+DQo+ID4gTGluZTY5NToNCj4gPiAgICBGaWxlSWRlbnRpZmllckRlc2MgPSBQcml2 RmlsZURhdGEtPkZpbGUuRmlsZUlkZW50aWZpZXJEZXNjOw0KPiA+ICAgIGlmIChJU19GSURfRElS RUNUT1JZX0ZJTEUgKEZpbGVJZGVudGlmaWVyRGVzYykpIHsNCj4gPiAgICAgLi4uDQo+ID4NCj4g PiBUaGUgYWJvdmUgRmlsZUlkZW50aWZpZXJEZXNjIGNhbiBiZSBOVUxMIGlmIHlvdSBydW4gYSAu ZWZpIGluIGEgVWRmIHBhcnRpdGlvbi4NCj4gQW5kIHRoZSBsYXRlciBJU19GSURfRElSRUNUT1JZ X0ZJTEUgKEZpbGVJZGVudGlmaWVyRGVzYykgaXMgdW5zYWZlIGlmDQo+IEZpbGVJZGVudGlmaWVy RGVzYyA9PSBOVUxMLiBZb3UgY2FuIHRlc3QgaXQgd2l0aCBiZWxvdyBleHRyYSBjb2RlIHdoaWNo IGFkZA0KPiBkZWJ1ZyBvdXRwdXQgd2hlbiBGaWxlSWRlbnRpZmllckRlc2MgPT0gTlVMTCwgYW5k IGNoZWNrIHRoZSBsb2cgYWZ0ZXIgbG9hZA0KPiBhbmQgcnVuIHNvbWV0aGluZyBpbiBhIFVkZiBw YXJ0aXRpb24uDQo+ID4NCj4gPiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rpc2svVWRm RHhlL0ZpbGUuYw0KPiA+IEBAIC02OTMsNiArNjkzLDExIEBAIFVkZlNldFBvc2l0aW9uICgNCj4g PiAgICAgUHJpdkZpbGVEYXRhID0gUFJJVkFURV9VREZfRklMRV9EQVRBX0ZST01fVEhJUyAoVGhp cyk7DQo+ID4NCj4gPiAgICAgRmlsZUlkZW50aWZpZXJEZXNjID0gUHJpdkZpbGVEYXRhLT5GaWxl LkZpbGVJZGVudGlmaWVyRGVzYzsNCj4gPiArICBpZiAoRmlsZUlkZW50aWZpZXJEZXNjID09IE5V TEwpIHsNCj4gPiArICAgIERFQlVHICgoRUZJX0RfRVJST1IsICJGaWxlSWRlbnRpZmllckRlc2Mg PT0gTlVMTCFcbiIpKTsNCj4gPiArICAgIHJldHVybiBTdGF0dXM7DQo+ID4gKyAgfQ0KPiA+ICsN Cj4gPiAgICAgaWYgKElTX0ZJRF9ESVJFQ1RPUllfRklMRSAoRmlsZUlkZW50aWZpZXJEZXNjKSkg ew0KPiA+ICAgICAgIC8vDQo+ID4gICAgICAgLy8gSWYgdGhlIGZpbGUgaGFuZGxlIGlzIGEgZGly ZWN0b3J5LCB0aGUgX29ubHlfIHBvc2l0aW9uIHRoYXQgbWF5IGJlIHNldCBpcw0KPiA+DQo+ID4g SSBmb2xsb3dlZCB0aGUgUGF1bG8ncyBzdWdnZXN0aW9uLCBhbmQgZm91bmQgdGhpcyBpc3N1ZSB3 aGVuIHVzaW5nIHRoZSBVZGYNCj4gcGFydGl0aW9uIG9mIFdpbmRvd3MgMTAgRW50ZXJwcmlzZSBJ U08gaW1hZ2Ugb24gcWVtdS4gQmVsb3cgaXMgbXkgcWVtdQ0KPiBjb21tYW5kOg0KPiA+IC91c3Iv bG9jYWwvYmluL3FlbXUtc3lzdGVtLXg4Nl82NCAtbSA1MTIwIC1lbmFibGUta3ZtICAtbWFjaGlu ZSBwYy0NCj4gcTM1LTIuOSAtYmlvcyBPVk1GLmZkIC1zZXJpYWwgZmlsZTpzZXJpYWwubG9nICAt Y2Ryb20gL21lZGlhL2pzaGkxOS9NeVwNCj4gUGFzc3BvcnQvT1NJbWFnZS9JU08vd2luc2VydmVy L2VuX3dpbmRvd3Nfc2VydmVyXzIwMTZfeDY0X2R2ZF85MzI3DQo+IDc1MS5pc28NCj4gPg0KPiA+ IEkndmUgc3VibWl0dGVkIGEgYnVnIGZvciB0aGlzIGlzc3VlOg0KPiBodHRwczovL2J1Z3ppbGxh LnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTcwNC4NCj4gPg0KPiA+IEkgZm91bmQgdGhp cyBpc3N1ZSBieSBlZGsyIGxsdm0gdW5kZWZpbmVkIGJlaGF2aW9yIHNhbml0aXplciwgYW5kIGJl bG93IGlzDQo+IHRoZSBzYW5pdGl6ZXIgb3V0cHV0LiBGWUkuDQo+ID4NCj4gL2hvbWUvanNoaTE5 L3drc3BfZWZpL2VkazIvTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9EaXNrL1VkZkR4ZS9GaWxlLmMs DQo+IGxpbmU6MHgwMkI4LCBjb2x1bW46MHgwMDA3IEVycm9yVHlwZSA9IE51bGxQb2ludGVyVXNl OiBtZW1iZXIgYWNjZXNzDQo+IHdpdGhpbiBudWxsIHBvaW50ZXIgb2YgdHlwZSAnVURGX0ZJTEVf SURFTlRJRklFUl9ERVNDUklQVE9SJw0KPiA+IEFTQU4gTUVNT1JZIEFDQ0VTUyBjaGVjayBmYWls ISBfX3Vic2FuX2hhbmRsZV90eXBlX21pc21hdGNoX3YxIGlzDQo+IGNhbGxlZDoNCj4gPiBVZGZT ZXRQb3NpdGlvbg0KPiA+DQo+IC9ob21lL2pzaGkxOS93a3NwX2VmaS9lZGsyL01kZU1vZHVsZVBr Zy9Vbml2ZXJzYWwvRGlzay9VZGZEeGUvRmlsZS5jOg0KPiA2OTY6Nw0KPiA+IEVmaVNoZWxsRmlu ZEZpbGVzSW5EaXINCj4gPg0KPiAvaG9tZS9qc2hpMTkvd2tzcF9lZmkvZWRrMi9TaGVsbFBrZy9B cHBsaWNhdGlvbi9TaGVsbC9TaGVsbFByb3RvY29sLmM6MjEzDQo+IDY6MTgNCj4gPiBTaGVsbFNl YXJjaEhhbmRsZQ0KPiA+DQo+IC9ob21lL2pzaGkxOS93a3NwX2VmaS9lZGsyL1NoZWxsUGtnL0Fw cGxpY2F0aW9uL1NoZWxsL1NoZWxsUHJvdG9jb2wuYzoyNDENCj4gMzoxNA0KPiA+IEVmaVNoZWxs RmluZEZpbGVzDQo+ID4NCj4gL2hvbWUvanNoaTE5L3drc3BfZWZpL2VkazIvU2hlbGxQa2cvQXBw bGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5jOjI1OA0KPiA2OjE4DQo+ID4gRWZpU2hlbGxP cGVuRmlsZUxpc3QNCj4gPg0KPiAvaG9tZS9qc2hpMTkvd2tzcF9lZmkvZWRrMi9TaGVsbFBrZy9B cHBsaWNhdGlvbi9TaGVsbC9TaGVsbFByb3RvY29sLmM6MjY2DQo+IDY6MTINCj4gPiBTaGVsbE9w ZW5GaWxlTWV0YUFyZw0KPiA+DQo+IC9ob21lL2pzaGkxOS93a3NwX2VmaS9lZGsyL1NoZWxsUGtn L0xpYnJhcnkvVWVmaVNoZWxsTGliL1VlZmlTaGVsbExpYi5jOjE1DQo+IDcwOjE0DQo+ID4NCj4g Pg0KPiAvaG9tZS9qc2hpMTkvd2tzcF9lZmkvZWRrMi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0Rp c2svVWRmRHhlL0ZpbGUuYywNCj4gbGluZToweDAyQzMsIGNvbHVtbjoweDAwMEUgRXJyb3JUeXBl ID0gTnVsbFBvaW50ZXJVc2U6IG1lbWJlciBhY2Nlc3MNCj4gd2l0aGluIG51bGwgcG9pbnRlciBv ZiB0eXBlICdVREZfRklMRV9JREVOVElGSUVSX0RFU0NSSVBUT1InDQo+ID4gQVNBTiBNRU1PUlkg QUNDRVNTIGNoZWNrIGZhaWwhIF9fdWJzYW5faGFuZGxlX3R5cGVfbWlzbWF0Y2hfdjEgaXMNCj4g Y2FsbGVkOg0KPiA+IC4uLg0KPiANCj4gVGhhbmsgeW91IGZvciBjYXRjaGluZyB0aGlzIGJ1ZyB1 cC4gSSB0aGluayB0aGlzIGlzc3VlIGlzIHJlbGF0ZWQgdG8NCj4gYWNjZXNzaW5nIGEgRmlsZSBJ ZGVudGlmaWVyIERlc2NyaXB0b3IgZnJvbSBhIHJvb3QgZGlyZWN0b3J5IGZpbGUgLS0NCj4gZS5n LiwgdGhpcyBzaG91bGQgYmUgIkZpbGVJZGVudGlmaWVyRGVzYyA9DQo+IFByaXZGaWxlRGF0YS0+ Um9vdC0+RmlsZUlkZW50aWZpZXJEZXNjOyINCj4gDQo+IENvdWxkIHlvdSBwbGVhc2UgcmVwbGFj ZSB0aGUgYnJva2VuIGFzc2lnbm1lbnQgd2l0aDoNCj4gDQo+IEZpbGVJZGVudGlmaWVyRGVzYyA9 IF9GSUxFKFByaXZGaWxlRGF0YSktPkZpbGVJZGVudGlmaWVyRGVzYzsNCj4gQVNTRVJUIChGaWxl SWRlbnRpZmllckRlc2MgIT0gTlVMTCk7DQo+IC4uLg0KPiANCj4gVGVsbCBtZSBpZiB0aGF0IHdv cmtlZCBmb3IgeW91LiBJZiBzbywgSSBjb3VsZCBzZW5kIGEgZm9ybWFsIHBhdGNoDQo+IGZpeGlu ZyB0aGlzIGlzc3VlIGxhdGVyLg0KPiANCj4gKEJUVywgSSBkbyBhcG9sb2dpemUgdGhlIGxhdGUg cmVwbGllcyBidXQgSSdtIG9ubHkgYWJsZSB0byB3b3JrIG9uIHRoaXMNCj4gaW4gbXkgZnJlZSB0 aW1lKQ0KPiANCj4gVGhhbmtzLA0KPiBQYXVsbw0KPiANCj4gPg0KPiA+IFN0ZXZlbiBTaGkNCj4g PiBJbnRlbFxTU0dcU1RPXFVFRkkgRmlybXdhcmUNCj4gPg0KPiA+IFRlbDogKzg2IDAyMS02MTE2 NjUyMg0KPiA+IGlOZXQ6IDgyMS02NTIyDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4gRnJvbTogUGF1bG8gQWxjYW50YXJhIFttYWlsdG86cGNhY2pyQHp5dG9yLmNv bV0NCj4gPj4gU2VudDogU3VuZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTcgMTE6NTIgUE0NCj4gPj4g VG86IFNoaSwgU3RldmVuIDxzdGV2ZW4uc2hpQGludGVsLmNvbT47IExhc3psbyBFcnNlaw0KPiA8 bGVyc2VrQHJlZGhhdC5jb20+Ow0KPiA+PiBlZGsyLWRldmVsLTAxIDxlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZz4NCj4gPj4gQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlAaW50ZWwuY29tPjsgRG9uZywg RXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47DQo+IFplbmcsDQo+ID4+IFN0YXIgPHN0YXIuemVu Z0BpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4N Cj4gPj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMC81XSBNZGVNb2R1bGVQa2c6IFVERiBm aXhlcyBhbmQgY2xlYW51cHMNCj4gPj4NCj4gPj4NCj4gPj4NCj4gPj4gT24gMTAvMDkvMjAxNyAx MToyNywgU2hpLCBTdGV2ZW4gd3JvdGU6DQo+ID4+PiBPSy4gRG9lcyB0aGUgVURGIGltYWdlIHlv dSBjcmVhdGVkIGNvcnJlY3RseSBzaG93IHVwIGFzIENELVJPTQ0KPiA+PiBjb250ZW50IGluIExp bnV4LCBlLmcgRmVkb3JhPw0KPiA+Pg0KPiA+PiBUaGUgRmVkb3JhIGltYWdlIEkgaGF2ZSAoRmVk b3JhLVdvcmtzdGF0aW9uLUxpdmUteDg2XzY0LTI2LTEuNS5pc28pDQo+IGRvZXMNCj4gPj4gbm90 IGNvbnRhaW4gYSB2YWxpZCBVREYgZmlsZSBzeXN0ZW0sIHNvIHlvdSBjYW5ub3QgdXNlIGl0IGZv ciB0ZXN0aW5nLg0KPiA+Pg0KPiA+PiBUbyBtYWtlIHN1cmUgaXQgcmVhbGx5IGRvZXNuJ3QsIEkg dXNlZCBhICJQaGlsaXBzIFVERiBDb25mb3JtYW5jZSBUb29sIg0KPiA+PiB0aGF0IHlvdSBjYW4g Z3JhYiBpbiBbMV0sIGFuZCB0aGUgdG9vbCBkaWRuJ3QgZmluZCBhbnkgdmFsaWQgVURGIGZpbGUN Cj4gPj4gc3lzdGVtIGluIGl0Lg0KPiA+Pg0KPiA+PiBJJ3ZlIGJlZW4gdXNpbmcgYW4gdW5tb2Rp ZmllZCBXaW5kb3dzIDEwIEVudGVycHJpc2UgaW1hZ2UgdGhhdCBkb2VzDQo+ID4+IGNvbnRhaW4g YSB2YWxpZCBVREYgYnJpZGdlIGRpc2sgaW1hZ2UgKElTTzk2NjArRWxUb3JpdG8rVURGKSB0byBw ZXJmb3JtDQo+ID4+IG15IHRlc3RzLg0KPiA+Pg0KPiA+PiBBZGRpdGlvbmFsbHksIEkgdXNlIGFu IFVTQiBzdGljayB0aGF0IEkgZm9ybWF0IGl0IHdpdGggJ3N1ZG8gbWt1ZGZmcyAtYg0KPiA+PiA1 MTIgLS1tZWRpYS10eXBlPWhkIC9kZXYvc2RYJyBhbmQgY29weSBzb21lIGZpbGVzIHRvIGl0IGZv ciB0ZXN0aW5nDQo+ID4+DQo+ID4+IEJUVywgd2hlbiB0ZXN0aW5nIHdpdGggT1ZNRiBBQVJDSDY0 LCBJIHdhcyB1c2luZyBteSBVU0Igc3RpY2sgdGhhdA0KPiA+PiBzaG93ZWQgdXAgY29ycmVjdGx5 IGFzICdmc1gnIGluIFVFRkkgc2hlbGwsIGJ1dCB3aXRoIHRoZSBXaW5kb3dzIDEwDQo+ID4+IEVu dGVycHJpc2UgSVNPIGltYWdlLCBpdCBkaWRuJ3QuIEkgbG9va2VkIGF0IHRoZSBsb2dzIHRvIHNl ZSB3aGF0IHdhcw0KPiA+PiBnb2luZyBvbiBhbmQgSSBmb3VuZCBvdXQgdGhhdCB0aGUgZW11bGF0 ZWQgQ0QtUk9NIGRyaXZlIGlzIHJlcG9ydGluZyBhDQo+ID4+IGJsb2NrIHNpemUgb2YgNTEyIGlu c3RlYWQgb2YgMjA0OCAtLSB3aGljaCBzZWVtcyB3cm9uZyB0byBtZS4gV2l0aA0KPiA+PiAncWVt dS1zeXN0ZW0teDg2XzY0IC1jZHJvbScsIGl0IHJlcG9ydHMgYSBibG9jayBzaXplIG9mIDIwNDgu DQo+ID4+DQo+ID4+IFRoZSBQYXJ0aXRpb24gZHJpdmVyIGlzIHN0aWxsIGFibGUgdG8gZmluZCBh IHZhbGlkIEVsVG9yaXRvIHBhcnRpdGlvbg0KPiA+PiBiZWNhdXNlLCByZWdhcmRsZXNzIHRoZSBk ZXZpY2UgYmxvY2sgc2l6ZSwgaXQgYWx3YXlzIHVzZSBhIGxvZ2ljYWwgYmxvY2sNCj4gPj4gc2l6 ZSBvZiAyMDQ4IHN0YXJ0aW5nIGF0IDMySy4gSW4gVURGLCB3aGVuIHNlYXJjaGluZyBmb3IgQVZE UHMgKEFuY2hvcg0KPiA+PiBWb2x1bWUgRGVzY3JpcHRvciBQb2ludGVycyksIHdlIHNlYXJjaCBm b3IgdGhlbSBhdCBmaXhlZCBsb2NhdGlvbnM6IDI1NiwNCj4gPj4gTiAtIDI1NiwgTiBhbmQgNTEy IC0tIGJ1dCwgd2l0aCBhIGJsb2NrIHNpemUgb2YgNTEyLCB0aGUgbG9jYXRpb25zDQo+ID4+IGNo YW5nZSB0byAxMDI0LCBOIC0gMTAyNCwgTiBhbmQgMjA0OCAtLSB0aHVzIGJyZWFraW5nIHRoZSB2 b2x1bWUNCj4gPj4gcmVjb2duaXRpb24gc2VxdWVuY2UuDQo+ID4+DQo+ID4+IEZvciB0ZXN0aW5n IHRoZSBXaW5kb3dzIGltYWdlIHdpdGggYSBibG9jayBzaXplIG9mIDUxMiwgSSB1c2VkIHRoZQ0K PiA+PiBjb21mb3JtYW5jZSB0b29sIHdpdGggJy4vdWRmX3Rlc3QgLXZlcmJvc2UgNjAgLWJsb2Nr c2l6ZSA1MTINCj4gPj4gfi9pbWcvd2luX2VudDEwLmlzbycgYW5kIGl0IGZhaWxlZCB0byBmaW5k IGEgdmFsaWQgVURGIGZpbGUgc3lzdGVtLiBCdXQNCj4gPj4gd2l0aCBhIGJsb2NrIHNpemUgb2Yg MjA0OCwgaXQgd29ya2VkLg0KPiA+Pg0KPiA+PiBJcyB0aGVyZSBhbnkgcmVhc29uIGZvciByZXBv cnRpbmcgYSBibG9jayBzaXplIG9mIDUxMiB3aGVuIHVzaW5nDQo+ID4+ICctY2Ryb20nIG9wdGlv biBpbiBxZW11LXN5c3RlbS1hYXJjaDY0PyBJcyB0aGF0IGEgYnVnPyBPciBhbSBJIG1pc3NpbmcN Cj4gPj4gc29tZXRoaW5nIGhlcmU/DQo+ID4+DQo+ID4+IFRoYW5rcyENCj4gPj4gUGF1bG8NCj4g Pj4NCj4gPj4gWzFdIC0gaHR0cHM6Ly93d3cubHNjZHdlYi5jb20vcmVnaXN0ZXJlZC91ZGZfdmVy aWZpZXIuaHRtbA0KPiA+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+PiBTdGV2ZW4gU2hpDQo+ID4+PiBJ bnRlbFxTU0dcU1RPXFVFRkkgRmlybXdhcmUNCj4gPj4+DQo+ID4+PiBUZWw6ICs4NiAwMjEtNjEx NjY1MjINCj4gPj4+IGlOZXQ6IDgyMS02NTIyDQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogTGFzemxvIEVyc2VrIFttYWlsdG86bGVyc2VrQHJl ZGhhdC5jb21dDQo+ID4+Pj4gU2VudDogU3VuZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTcgOTo1MiBQ TQ0KPiA+Pj4+IFRvOiBTaGksIFN0ZXZlbiA8c3RldmVuLnNoaUBpbnRlbC5jb20+OyBlZGsyLWRl dmVsLTAxIDxlZGsyLQ0KPiA+Pj4+IGRldmVsQGxpc3RzLjAxLm9yZz4NCj4gPj4+PiBDYzogTmks IFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwu Y29tPjsNCj4gPj4gWmVuZywNCj4gPj4+PiBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgQXJk IEJpZXNoZXV2ZWwNCj4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ID4+Pj4gU3ViamVj dDogUmU6IFtlZGsyXSBbUEFUQ0ggMC81XSBNZGVNb2R1bGVQa2c6IFVERiBmaXhlcyBhbmQNCj4g Y2xlYW51cHMNCj4gPj4+Pg0KPiA+Pj4+IEhpIFN0ZXZlbiwNCj4gPj4+Pg0KPiA+Pj4+IE9uIDA5 LzEwLzE3IDEwOjM4LCBMYXN6bG8gRXJzZWsgd3JvdGU6DQo+ID4+Pj4+IE9uIDA5LzEwLzE3IDA2 OjI0LCBTaGksIFN0ZXZlbiB3cm90ZToNCj4gPj4+Pj4+IEhpIExhc3psbywNCj4gPj4+Pj4+IEhv dyBjb3VsZCB3ZSBjb25maWd1cmUgdGhlIFFlbXUgYW5kIHRlc3QgdGhlIFVERiBkcml2ZXIgb24g T1ZNRj8NCj4gPj4+Pj4NCj4gPj4+Pj4gSSBndWVzcyB5b3Ugd291bGQgZm9ybWF0IGUuZy4gYSBE VkQgaW1hZ2Ugd2l0aCBVREYsIGFuZCBhdHRhY2ggaXQgdG8NCj4gPj4+Pj4gUUVNVSBsaWtlIGFu eSBvdGhlciBDRC1ST00uDQo+ID4+Pj4NCj4gPj4+PiBJIHRyaWVkIHRvIGxvb2sgaW50byB0aGlz IC0tIEkgdHJpZWQgc2V2ZXJhbCB0aGluZ3MsIGJ1dCBub3RoaW5nDQo+ID4+Pj4gcHJvZHVjZWQg YW4gVURGIGltYWdlIGZpbGUgdGhhdCwgd2hlbiBhdHRhY2hlZCB0byB0aGUgVk0sIHdvdWxkDQo+ IHNob3cNCj4gPj4gdXANCj4gPj4+PiBpbiB0aGUgVUVGSSBzaGVsbCBhcyBGU246DQo+ID4+Pj4N Cj4gPj4+PiBHb29nbGUgcmV0dXJuZWQgYSBidW5jaCBvZiBwYWdlcywgYnV0IGFsbCBJIGZvdW5k IHdhczoNCj4gPj4+PiAtIHRpcHMgdGhhdCBkaWRuJ3Qgd29yayAoc2VlIGFib3ZlKSwNCj4gPj4+ PiAtIGNvbmZ1c2VkIHVzZXJzIChsaWtlIG1lKSBsb29raW5nIGZvciBzb2x1dGlvbnMuDQo+ID4+ Pj4NCj4gPj4+PiBTbywgYXQgdGhlIG1vbWVudCwgSSBoYXZlIG5vIGlkZWEgaG93IGF1dGhvcmlu ZyBVREYgRFZEIGltYWdlcyBpcw0KPiA+Pj4+IHBvc3NpYmxlIG9uIExpbnV4LCBzbyB0aGF0IHRo ZXknZCBiZSByZWNvZ25pemVkIGluIGVkazIuDQo+ID4+Pj4NCj4gPj4+PiAoSSdtIGludGVyZXN0 ZWQgaW4gdGhlIGVkazIgVURGIGRyaXZlciBub3QgYmVjYXVzZSBJIHdhbnQgdG8gImF1dGhvciIN Cj4gPj4+PiBVREYgRFZEIGltYWdlcyAoSVNPOTY2MCtFbFRvcml0byB3b3JrcyBqdXN0IGZpbmUp LCBidXQgYmVjYXVzZSBzb21lDQo+ID4+Pj4gb3B0aWNhbCBtZWRpYSBpbWFnZXMgdGhhdCB3ZXJl IGdpdmVuIHRvIG1lIGFyZSBmb3JtYXR0ZWQgVURGLW9ubHkuDQo+ID4+IFRoZXkNCj4gPj4+PiBj YW4gYmUgdHJhbnNsYXRlZCBpbnRvIElTTzk2NjArRWxUb3JpdG8gb2ZmLWxpbmUsIGJ1dCB0aGF0 J3MgYSBjaG9yZS4pDQo+ID4+Pj4NCj4gPj4+PiBUaGFua3MsDQo+ID4+Pj4gTGFzemxvDQo+ID4+ PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+Pj4g ZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ ID4+PiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4g Pj4+DQo+ID4NCg==