From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (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 DB83C21E74914 for ; Fri, 15 Sep 2017 07:22:41 -0700 (PDT) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Sep 2017 07:25:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,397,1500966000"; d="scan'208";a="1219285648" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga002.fm.intel.com with ESMTP; 15 Sep 2017 07:25:41 -0700 Received: from fmsmsx124.amr.corp.intel.com (10.18.125.39) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 15 Sep 2017 07:25:41 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx124.amr.corp.intel.com (10.18.125.39) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 15 Sep 2017 07:25:40 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.98]) with mapi id 14.03.0319.002; Fri, 15 Sep 2017 22:25:38 +0800 From: "Zeng, Star" To: Laszlo Ersek , Paulo Alcantara , "Ni, Ruiyu" , "Yao, Jiewen" CC: "Dong, Eric" , "Bi, Dandan" , "edk2-devel@lists.01.org" , "Kinney, Michael D" , Ard Biesheuvel , "Leif Lindholm (Linaro address)" , "Zeng, Star" Thread-Topic: [PATCH] MdeModulePkg/UdfDxe: Remove negative comparison of unsigned number Thread-Index: AQHTLEsk9oaBZ5JdJkSAcz7I8VLM2KKyQ1ew//+FdgCAA6lMkP//xg6AgACKzcA= Date: Fri, 15 Sep 2017 14:25:38 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103B965AEC@shsmsx102.ccr.corp.intel.com> References: <8c5a7ec1d6f908eabda755bb6d3bc9a28b14210e.1505277490.git.pcacjr@zytor.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B940874@shsmsx102.ccr.corp.intel.com> <37D67821-E356-4E48-B175-3107DEF070AC@zytor.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B95A36E@SHSMSX151.ccr.corp.intel.com> <5cc939b5-e0df-e4a4-b2f5-9f95672f15e7@redhat.com> In-Reply-To: <5cc939b5-e0df-e4a4-b2f5-9f95672f15e7@redhat.com> Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/UdfDxe: Remove negative comparison of unsigned number 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: Fri, 15 Sep 2017 14:22:42 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QmFzaWNhbGx5LCBwZW9wbGUgYXJlIHRvdGFsbHkgZW5jb3VyYWdlZCBhbmQgd2VsY29tZSB0byBj b250cmlidXRlLCBubyBvbmUgY2FuIG1ha2Ugc3VyZSBoaXMvaGVyIHBhdGNoIHdpbGwgbmV2ZXIg YnJlYWsgYW55dGhpbmcuDQpJIHdhbnQgdG8gZW1waGFzaXplIEkgd2FzIG5vdCBjaGFsbGVuZ2lu ZyB0aGUgY29kZS9wZW9wbGUuDQoNClN0YWdpbmcgYnJhbmNoIGRvZXMgbm90IG1lYW4gaXQgaXMg dW5tYWludGFpbmVkLCBoZXJlIEkgZG8gbm90IHdhbnQgdG8gYXJndWUgdGhlIHBvc2l0aW9uIG9m IFN0YWdpbmcgYnJhbmNoLCBhbmQgSSBhbSBub3Qgc2F5aW5nIHRoZSBjb2RlIG11c3QgYmUgaW4g U3RhZ2luZyBicmFuY2guDQoNCkkgd2FzIGNvbmZpcm1pbmcgdGhlIGRldmVsb3BtZW50IHN0YXR1 cyBvZiB0aGUgY29kZSwgaWYgaXQgaXMgaW4gdmVyeSBlYXJseSBkZXZlbG9wbWVudCwgc2hvdWxk IGl0IGJlIGluIG1hc3Rlcj8gSWYgdGhlIGNvZGUgaGFzIGJlZW4gZXZhbHVhdGVkIGFuZCByZXZp ZXdlZCBiZWZvcmUgbGlrZSB5b3Ugc2FpZCwgSSBhbSB0b3RhbGx5IGZpbmUgd2l0aCBpdCBrZXB0 IGluIG1hc3Rlci4NCkFib3V0IHRoZSBpc3N1ZXMsIEkgd2FzIHRoaW5raW5nIGFuZCByYWlzaW5n IGhvdyBjYW4gd2UgZG8gYmV0dGVyIHRvIGF2b2lkIGZ1cnRoZXIgZWZmb3J0IChpbiBmdXR1cmUp Lg0KDQoNCkkgYWxzbyByZWFsbHkgd2FudCB0byBhcHByZWNpYXRlIGFsbCB5b3VyIGNvbnRyaWJ1 dGlvbiBhbmQgZGVkaWNhdGlvbiBhbGwgdGhlIHRpbWUuDQoNCg0KVGhhbmtzLA0KU3Rhcg0KLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IExhc3psbyBFcnNlayBbbWFpbHRvOmxlcnNl a0ByZWRoYXQuY29tXSANClNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDE1LCAyMDE3IDY6MTUgUE0N ClRvOiBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgUGF1bG8gQWxjYW50YXJhIDxw Y2FjanJAenl0b3IuY29tPjsgTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBZYW8sIEpp ZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQpDYzogRG9uZywgRXJpYyA8ZXJpYy5kb25nQGlu dGVsLmNvbT47IEJpLCBEYW5kYW4gPGRhbmRhbi5iaUBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZzsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+OyBMZWlmIExpbmRo b2xtIChMaW5hcm8gYWRkcmVzcykgPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz4NClN1YmplY3Q6 IFJlOiBbUEFUQ0hdIE1kZU1vZHVsZVBrZy9VZGZEeGU6IFJlbW92ZSBuZWdhdGl2ZSBjb21wYXJp c29uIG9mIHVuc2lnbmVkIG51bWJlcg0KDQpIaSBTdGFyLA0KDQpPbiAwOS8xNS8xNyAwODoxNCwg WmVuZywgU3RhciB3cm90ZToNCj4gSGksDQo+DQo+IEJhc2VkIG9uIHJlY2VudCBpc3N1ZXMgYWJv dXQgVURGIHNpbmNlIHRoZSBjb2RlIHdhcyBwdXNoZWQgZm9yIA0KPiBodHRwczovL2xpc3RzLjAx Lm9yZy9waXBlcm1haWwvZWRrMi1kZXZlbC8yMDE3LVNlcHRlbWJlci8wMTQzNjAuaHRtbCwgDQo+ IEkgd2FudCB0byByYWlzZSBzb21lIHF1ZXN0aW9ucyBraW5kbHkuDQo+DQo+IGh0dHBzOi8vbGlz dHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDQwOS5odG1s DQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVt YmVyLzAxNDUxOC5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRl dmVsLzIwMTctU2VwdGVtYmVyLzAxNDU0Mi5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3Bp cGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDQ4OS5odG1sDQo+IGh0dHBzOi8v bGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDU1MS5o dG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2Vw dGVtYmVyLzAxNDU2MC5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsy LWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDY0OS5odG1sDQo+IGh0dHBzOi8vbGlzdHMuMDEub3Jn L3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDY5NC5odG1sDQo+IGh0dHBz Oi8vbGlzdHMuMDEub3JnL3BpcGVybWFpbC9lZGsyLWRldmVsLzIwMTctU2VwdGVtYmVyLzAxNDY5 NS5odG1sDQo+DQo+IElzIHRoZSBjb2RlIGV4cGVjdGVkIHRvIGJlIGdvdCB1cHN0cmVhbSBvcmln aW5hbGx5PyAoSSBtYXkgYmUgYSBzdHVwaWQgDQo+IHF1ZXN0aW9uIHNpbmNlIHRoZSBjb2RlIGhh cyBiZWVuIGdvdHRlbiB1cHN0cmVhbSwgSSBqdXN0IHdhbnQgdG8gDQo+IGRvdWJsZSBjb25maXJt IHRoYXQgYXMgUGF1bG8ncyByZXBseSBiZWxvdyAiSSBiZWxpZXZlZCB0aGF0IGl0IHdvdWxkIA0K PiBuZXZlciBnZXQgdXBzdHJlYW0iLikgSXMgdGhlIGNvZGUgcmVhZHkgdG8gYmUgaW4gbWFzdGVy PyBTaG91bGQgaXQgYmUgDQo+IGluIFN0YWdpbmcgYnJhbmNoIGZpcnN0Pw0KPg0KPg0KPiBQYXVs bywNCj4gQ291bGQgeW91IGhlbHAgZG8gbW9yZSBldmFsdWF0aW9uIHRvIHRoZSBjb2RlIGFzIHlv dSBzYWlkICJJICpkbyoga25vdyANCj4gdGhhdCB0aGUgY29kZSByZWFsbHkgbmVlZHMgcmVmYWN0 b3JpbmcsIGRvY3VtZW50YXRpb24sIGV0YyI/IEkgYmVsaWV2ZSANCj4geW91IGFyZSBtb3N0IGZh bWlsaWFyIHdpdGggdGhlIGNvZGUgYW5kIGtub3cgaXRzIHF1YWxpdHkuIDopDQo+DQo+DQo+IEJU VzogTW9yZSB0ZXN0IHNlZW1zIG5lZWQgdG8gYmUgZG9uZSBiZWZvcmUgdGhlIGNvZGUgY2hlY2sg aW4sIGZvciANCj4gZXhhbXBsZSwgYnVpbGQgd2l0aCB2YXJpb3VzIHRvb2wgY2hhaW5zLCBFQ0Mg c2NhbiBmb3IgY29kaW5nIHN0eWxlLCANCj4gc3RhdGljIHRvb2wgc2NhbiwgZXRjLiBUaGF0IGlz IHdoYXQgd2UoZXNwZWNpYWxseSBtZSkgbmVlZCB0byBpbXByb3ZlIA0KPiBpbiBmdXR1cmUgd2hl biBkZXZlbG9waW5nIGFuZCByZXZpZXdpbmcuDQo+IEFueXdheSwgbGV0J3MgaGVscCBrZWVwIGlt cHJvdmluZyBVREYgY29kZXMuDQoNCkkndmUgYmVlbiB0aGlua2luZyBhYm91dCB0aGVzZSBxdWVz dGlvbnMuDQoNCkkgdGhpbmsgYSBzdGFnaW5nIGJyYW5jaCBpcyBhcHByb3ByaWF0ZSB3aGVuIGEg ZmVhdHVyZSBjb250YWlucyBpbnRydXNpdmUgY2hhbmdlcyB0aGF0IHJpc2sgYnJlYWtpbmcgY29y ZSBmdW5jdGlvbmFsaXR5LCBmb3Igc2V2ZXJhbCAobWF5YmUgYWxsKSBwbGF0Zm9ybXMuIEluIG15 IG9waW5pb24sIHRoaXMgaXMgbm90IHRoZSBjYXNlIGZvciBVZGZEeGU7IHRoZSBvbmx5IGZ1bmN0 aW9uYWwgcmVncmVzc2lvbnMgaXQgY291bGQgaGF2ZSBjYXVzZWQgKGJ1dCBkaWRuJ3QhKSB3ZXJl IGluIFBhcnRpdGlvbkR4ZSwgYW5kIGluIHRoZSBnZW5lcmljIGRyaXZlciBiaW5kaW5nIGNvZGUu IElzc3VlcyBpbiB0aGVzZSBwYXJ0cyBjb3VsZCBoYXZlIGludGVyZmVyZWQgd2l0aCB0aGUgbm9y bWFsIG9wZXJhdGlvbiBvZiBvdGhlciBwYXJ0cyBvZiB0aGUgZmlybXdhcmUsIGJ1dCB0aGVzZSBw YXJ0cyB3ZXJlIG5vdCBsYXJnZSwgYW5kIHRoZXkgd2VyZSB0aG9yb3VnaGx5IHJldmlld2VkLg0K DQpUaGUgYnVpbGQgYnJlYWthZ2VzIHdlcmUgYW5ub3lpbmcgKEkga25vdyBmaXJzdCBoYW5kKS4g SG93ZXZlciwgdGhhdCdzIGV4YWN0bHkgYW4gYXJlYSB3aGVyZSBhIHN0YWdpbmcgYnJhbmNoIGRv ZXNuJ3QgaGVscC4gU3VjaCBidWlsZCBicmVha2FnZXMgY2FuIG9ubHkgYmUgZm91bmQgdmlhIGFj dHVhbCBleHBvc3VyZSB0byBhIGxhcmdlIHNldCBvZiB0b29sY2hhaW5zLCBhbmQgdGhleSBjYW4g b25seSBiZSBhdm9pZGVkIChkdXJpbmcgZGV2ZWxvcG1lbnQpIHdpdGggbG9uZw0KZWRrMiBkZXZl bG9wbWVudCBleHBlcmllbmNlLg0KDQpGb3IgZXhhbXBsZSwgY29udHJpYnV0b3JzIHRoYXQgbWFp bmx5IHVzZSBNU1ZDIHRlbmQgdG8gKnJlbWVtYmVyKiB0byBjYXN0ICZJbnRlcmZhY2UgdG8gKFZP SUQqKikgd2hlbiBmZXRjaGluZyBpdCwgZXZlbiB0aG91Z2ggTVNWQyBkb2Vzbid0IGNvbXBsYWlu IGlmIGl0J3Mgbm90IGRvbmUgLS0gdGhlIGRldmVsb3BlcnMga25vdyBmcm9tIG1lbW9yeSB0aGF0 IEdDQyB3aWxsIGNvbXBsYWluIChmb3IgZ29vZCByZWFzb24gYWN0dWFsbHksIGV2ZW4gdGhlIChW T0lEKiopIGNhc3QgaXMgcXVlc3Rpb25hYmxlLCBidXQgSSBkaWdyZXNzKS4gU2ltaWxhcmx5LCBl dmVuIHRob3VnaCBnY2MgZG9lc24ndCBjb21wbGFpbiBhYm91dCAiVWludDMyVmFyaWFibGUgPSBV aW50NjRWYXJpYWJsZSIsIHBlb3BsZSB0aGF0IG1vc3RseSB1c2UgZ2NjIG5vdyAqcmVtZW1iZXIq IHRvIGFkZCBhbiBleHBsaWNpdCAoVUlOVDMyKSBjYXN0LCBvdGhlcndpc2UgLS0gdGhleSBrbm93 IC0tIE1TVkMgd2lsbCBjb21wbGFpbi4NCg0KRXZlbiB3aXRoIHRoaXMgZXhwZXJpZW5jZSwgYW5k IGluIHNwaXRlIG9mIHRoZSBjb2RlIHJldmlldyB0aGF0IHdlIHJlZ3VsYXJseSBkbywgc3VjaCBi dWlsZCBpc3N1ZXMgc2xpcCB0aHJvdWdoIHF1aXRlIGZyZXF1ZW50bHkuIFRoZSBvbmx5IGRpZmZl cmVuY2UgaW4gdGhpcyBjYXNlIHdhcyB0aGF0IHRoZSBjb2RlIGFkZGl0aW9uIHdhcyBsYXJnZSAo fjU1MDAgbGluZXMpLCBzbyB3ZSBnb3QgbWFueSB3YXJuaW5ncyBhbGwgYXQgb25jZS4NCg0KUHV0 dGluZyB0aGUgZHJpdmVyIG9uIGEgc3RhZ2luZyBicmFuY2ggZmlyc3Qgd291bGQgaGF2ZSBhY3R1 YWxseSBoYW1wZXJlZCB0aGUgZGlzY292ZXJ5IG9mIHRoZXNlIGlzc3Vlcy4gU2ltaWxhcmx5LCBp bmNsdWRpbmcgVWRmRHhlIGluIE92bWZQa2csIEFybVZpcnRQa2csIGFuZCBOdDMyUGtnIG9ubHkg Y29uZGl0aW9uYWxseSAoZS5nLiB3aXRoIC1EVURGX0VOQUJMRSksIHdvdWxkIGhhdmUgaGFkIHRo ZSBzYW1lIGVmZmVjdCAtLSBtb3N0IHBlb3BsZSB3b3VsZG4ndCBoYXZlIGNhcmVkIGFib3V0IFVk ZkR4ZSBhdCBhbGwsIGFuZCBVZGZEeGUgd291bGRuJ3QgaGF2ZSBiZWVuIGV4cG9zZWQgdG8gYSBn b29kIG51bWJlciBvZiB0b29sY2hhaW5zLg0KDQooTm90ZSB0aGF0IFVkZkR4ZSB3YXNuJ3QgaW1t ZWRpYXRlbHkgaW5jbHVkZWQgaW4gTWRlTW9kdWxlUGtnLmRzYywgc28gaXQncyBub3QgbGlrZSB0 aGUgZHJpdmVyIGJyb2tlIHRoZSBidWlsZGluZyBvZiBvbmUgb2YgdGhlIG1vc3QgaW1wb3J0YW50 IFBhY2thZ2VzIGluIHRoZSB0cmVlLiBBbHRob3VnaCwgYmFzZWQgb24gdGhlIHdpZGUgZmVlZGJh Y2ssIG5vdyBJIHdvbmRlciBpZiBPdm1mUGtnICppcyogb25lIG9mIHRoZSBtb3N0IGltcG9ydGFu dCBwYWNrYWdlcyBpbiB0aGUgdGhyZWUsIGhhaGEgOikNCikNCg0KVGhlIGJ1aWxkIGJyZWFrYWdl cyBjb3VsZCBoYXZlIGJlZW4gYXZvaWRlZCBpbiBhZHZhbmNlIG9ubHkgaWY6DQoNCi0gcGVvcGxl IHdpdGggYWNjZXNzIHRvIHZhcmlvdXMgdG9vbGNoYWlucyB3b3VsZCBoYXZlIG9mZmVyZWQgdG8N CiAgdGVzdC1idWlsZCBQYXVsbydzIHByaXZhdGUgYnJhbmNoIChvciBhIHN0YWdpbmcgYnJhbmNo KSBiZWZvcmUgbWVyZ2luZw0KICB0aGUgZHJpdmVyLA0KDQotIG9yIGlmIGEgYnVpbGQgZmFybSAv IENJIGVudmlyb25tZW50IGV4aXN0ZWQgdGhhdCBleGVyY2lzZWQgKmFsbCoNCiAgdG9vbGNoYWlu cyAobm8gZXhjZXB0aW9ucyEpLg0KDQpOb25lIG9mIHRoZXNlIHR3byBvcHRpb25zIHNlZW1lZCB0 byB3b3JrLCBzbyBJJ20gYWN0dWFsbHkgaGFwcGllciB3aXRoIHRoZSB3YXkgdGhpbmdzIHR1cm5l ZCBvdXQsIGVmZmVjdGl2ZWx5IGZvcmNpbmcgcGVvcGxlIHRvIGhlbHAuIChJJ20gc2F5aW5nIHRo aXMgYWZ0ZXIgcGVyc29uYWxseSBoYXZpbmcgbXkgdXJnZW50IFRPRE8gbGlzdCBkaXNydXB0ZWQg YnkgdGhlDQpmYWxsb3V0LikNCg0KUmVnYXJkaW5nIHRoZSByZXZpZXcgcHJvY2Vzcywgbm9ib2R5 IGNhbiBiZSBleHBlY3RlZCB0byB0aG9yb3VnaGx5IHJldmlldyBhIH41NTAwIGNvZGUgZHJvcC4g VGhpcyBkb2Vzbid0IG1lYW4gdGhlIGRyaXZlciBzaG91bGRuJ3QgaGF2ZSBiZWVuIGluY2x1ZGVk IC0tIGl0IGFic29sdXRlbHkgc2hvdWxkIGhhdmUgYmVlbjsgaXQncyBwZXJmZWN0bHkgZmluZSBp ZiB3ZSBjYWxsIGl0ICJleHBlcmltZW50YWwiIGZvciBub3csIGFzIGxvbmcgYXMgaXQgZG9lc24n dCBnZXQgaW4gcGVvcGxlJ3Mgd2F5LiBJIGRvbid0IHRoaW5rIHRoaXMganVzdGlmaWVzIGEgc3Rh Z2luZyBicmFuY2g7IEkgdGhpbmsgc3VjaCBtYXRlcmlhbCBzaG91bGQgYmUgYXZhaWxhYmxlIHRv IGRldmVsb3BlcnMgb24gdGhlIG1hc3RlciBicmFuY2gsIGJ1dCBwZXJoYXBzIG5vdCB1bmRlciBN ZGVNb2R1bGVQa2cuDQoNCldlJ3ZlIHRhbGtlZCBtYW55IHRpbWVzIGFib3V0IEZpbGVTeXN0ZW1Q a2cgZm9yIGV4YW1wbGUsIGJ1dCBpdCBqdXN0IGRvZXNuJ3Qgc2VlbSB0byBoYXBwZW4gLS0gaXQg d291bGQgcmVxdWlyZSBuZXcgTWFpbnRhaW5lcnMgdG8gYmUgYWRkZWQgdG8gTWFpbnRhaW5lcnMu dHh0LCBhbmQgYXBwYXJlbnRseSB0aGF0J3MgYW4gdW5zdXJtb3VudGFibGUgb2JzdGFjbGUuIElu IGRpZmZlcmVudCBwcm9qZWN0cywgYSBGaWxlU3lzdGVtUGtnL0V4cGVyaW1lbnRhbC9VZGZEeGUv IGRpcmVjdG9yeSB3b3VsZCBoYXZlIGJlZW4gY3JlYXRlZCwgYW5kIFBhdWxvIHdvdWxkIGhhdmUg YmVlbiBhZGRlZCBtaW5pbWFsbHkgYXMgUmV2aWV3ZXIgZm9yIHRoYXQgb25lIHN1YmRpcmVjdG9y eS4gVGhhbmtmdWxseSwgYXQgbGVhc3QgcmVnaXN0ZXJpbmcgaW4gdGhlIFRpYW5vQ29yZSBCdWd6 aWxsYSwgYW5kIGFzc2lnbmluZyBidWdzIHRvIHRoZSByZWFsIG93bmVyLCBhcmVuJ3QgZGlmZmlj dWx0IHRoaW5ncyB0byBkby4NCg0KSWYgeW91IHJlY2FsbCwgYXQgb25lIHBvaW50IEkgInRocmVh dGVuZWQiIHRvIGluY2x1ZGUgVWRmRHhlIHNvbWV3aGVyZSB1bmRlciBPdm1mUGtnLCBldmVuIHRo b3VnaCBpdCBkaWRuJ3QgYmVsb25nIHRoZXJlIGF0IGFsbC4gSSBqdXN0IGNvdWxkbid0IGJlYXIg aXQgYW55IGxvbmdlciB0aGF0IGEgdXNlZnVsLCBhbGJlaXQgc29tZXdoYXQgdW5wb2xpc2hlZCwg Y29udHJpYnV0aW9uIGNvdWxkbid0IGJlIGFjY2VwdGVkIHNpbXBseSBiZWNhdXNlIHdlIGNvdWxk bid0IGZpbmQgdGhlIHJpZ2h0IHBsYWNlIGZvciBpdCwgYW5kIHdlIHdlcmUgYXBwYXJlbnRseSAq YWxzbyogdW53aWxsaW5nIHRvICpjcmVhdGUqIHRoZSByaWdodCBwbGFjZSBmb3IgaXQuDQoNClNv IHVsdGltYXRlbHkgaXQgbGFuZGVkIHVuZGVyIE1kZU1vZHVsZVBrZy4gTm90IHRoZSBiZXN0IGxv Y2F0aW9uLCBidXQgaXQgd2lsbCBkby4NCg0KVHlpbmcgaW4gd2l0aCBwYXRjaCByZXZpZXcsIGFu ZCBtb3JlIGdlbmVyYWxseSB3aXRoIHRoZSBkZXZlbG9wbWVudCBwcm9jZXNzLCBzdWNoIGxhcmdl IGZlYXR1cmVzIHNob3VsZCBiZSBkZXZlbG9wZWQgaW4gdmVyeSBzbWFsbCBzdGVwcyAobWFueSBz bWFsbCBwYXRjaGVzKSwgb3ZlciBhIGxvbmdlciB0aW1lLCBwb3N0aW5nIHByb3RvdHlwZXMgZWFy bHkgZm9yIHJldmlldy4gV2hpbGUgb24gb25lIGhhbmQsIHdlIGNvdWxkIGF0dHJpYnV0ZSB0aGUg b3Zlcmx5IGNvYXJzZSBzdHJ1Y3R1cmluZyBvZiB0aGUgcGF0Y2ggc2VyaWVzIHRvIHRoZSBmYWN0 IHRoYXQgVWRmRHhlIGhhZCBiZWVuIFBhdWxvJ3MgZmlyc3QgbGFyZ2UgZWRrMiBjb250cmlidXRp b24gLS0gaS5lLiwgaGUgbWF5IGhhdmUgbGFja2VkIHRoZSBleHBlcmllbmNlIHRoYXQgaGUgc2hv dWxkIHN0YXJ0IHdpdGggdGhlIGRyaXZlciBtb2RlbCBmaXJzdCwgd2l0aG91dCBhY3R1YWwgZnVu Y3Rpb25hbGl0eSwgdGhlbiBidWlsZCB1cCB0aGUgVURGIHN0dWZmIGZyb20gc21hbGwgYmxvY2tz LCBhbmQgZmluYWxseSBpbnRlZ3JhdGUgd2l0aCBQYXJ0aXRpb25EeGUgLS0sIGl0IGNlcnRhaW5s eSBkaWRuJ3QgaGVscCB0aGF0IHRoZSBwcm9qZWN0IGJhc2ljYWxseSBkaWVkIHRocmVlIHllYXJz IGFnbyBkdWUgdG8gbGFjayBvZiBpbnRlcmVzdCwgYW5hbHlzaXMgcGFyYWx5c2lzLCBhbmQgaW5h YmlsaXR5IHRvIG1ha2UgYSBkZWNpc2lvbiBhYm91dCB0aGUgZGV2aWNlIHBhdGggbm9kZS4NCg0K SW4gc3VtbWFyeToNCg0KLSBCdWlsZCBicmVha2FnZXMgY2FuIG9ubHkgYmUgcHJldmVudGVkIGlm IHdlIGVpdGhlciBpbnRyb2R1Y2UgYSBidWlsZA0KICBmYXJtIHdpdGggKnVuaXZlcnNhbCogdG9v bGNoYWluIGNvdmVyYWdlLCBvciBpbmRpdmlkdWFsIGRldmVsb3BlcnMNCiAgb2ZmZXIgdGhlIGNv bnRyaWJ1dG9yIHRvIGZldGNoIGhpcy9oZXIgYnJhbmNoIGFuZCB0ZXN0LWJ1aWxkIGl0IGZvcg0K ICBoaW0vaGVyLg0KDQotIEV4cGVyaW1lbnRhbCBtYXRlcmlhbCBzaG91bGQgYmUgZmluZSB0byBh ZGQgdG8gdGhlIG1hc3RlciBicmFuY2gsIGFzDQogIGxvbmcgYXMgaXQgaXMgbm90IGRpc3J1cHRp dmUgdG8gY29yZSBmdW5jdGlvbmFsaXR5LiBJdCBzaG91bGQgYmUNCiAgY2xlYXJseSBwbGFjZWQg YXMgZXhwZXJpbWVudGFsIGludG8gdGhlIHByb2plY3QgdHJlZS4gQW5kLCBpdCBzaG91bGQNCiAg bm90IGJlIGRpZmZpY3VsdCB0byBhc3NpZ24gZGVkaWNhdGVkIFJldmlld2VycyAvIE1haW50YWlu ZXJzDQogICgib3duZXJzIikgdG8ganVzdCB0aGUgcmVsZXZhbnQgc3ViZGlyZWN0b3JpZXMuIEl0 J3MgZmluZSB0byBleGNsdWRlDQogIGV4cGVyaW1lbnRhbCBkcml2ZXJzIGZyb20gcGxhdGZvcm0g YnVpbGRzIGJ5IGRlZmF1bHQsIGJ1dCB0aGF0IGNob2ljZQ0KICByZWFsbHkgZGVwZW5kcyBvbiB0 aGUgcHJldmlvdXMgcG9pbnQgKGkuZS4sIHBlb3BsZSB0aGVuIHJlYWxseSBoYXZlIHRvDQogIGhl bHAgb3V0IHdpdGggdGVzdC1idWlsZGluZywgb3RoZXJ3aXNlIHRvb2xjaGFpbiBjb3ZlcmFnZSB3 aWxsDQogIHN1ZmZlci4pDQoNCi0gTGFyZ2UgY29kZSBkcm9wcyBhcmUgbm90IHVuY29tbW9uIGZy b20gc2Vhc29uZWQgZWRrMiBkZXZlbG9wZXJzDQogIGVpdGhlci4gV2Ugc2hvdWxkIGFsbCB0YWtl IGNhcmUgdG8gZXJlY3QgYnJhbmQgbmV3IGNvZGUgKGRyaXZlcnMsDQogIG1vZHVsZXMsIGFwcGxp Y2F0aW9ucykgaW4gc21hbGwgbG9naWNhbCBzdGVwcy4gVGhpcyByZXF1aXJlcyBhDQogIGRpZmZl cmVudCB0aGlua2luZyBmcm9tIGp1c3Qgd3JpdGluZyB0aGUgY29kZS4gSXQgcmVxdWlyZXMgdGhl DQogIHByb2dyYW1tZXIgdG8gYXNrIHRoZW1zZWx2ZXMsICJob3cgYW0gSSBnb2luZyB0byB3YWxr IG15IHBlZXJzIHRocm91Z2gNCiAgdGhpcyBuZXcgY29kZSIuIEl0IHRha2VzIGV4dHJhIHdvcmss IGluIGZhY3QgYSB3aG9sZSBzZXBhcmF0ZSB3b3JrDQogIHBoYXNlLCB0byByZS1zdHJ1Y3R1cmUg c29tZW9uZSdzIGNvZGUgLS0gYWZ0ZXIgaXQgaXMgZnVuY3Rpb25hbGx5DQogIGNvbXBsZXRlIC0t IGZvciBwdWJsaWMgcmV2aWV3Lg0KDQpPa2F5LCBJIHJhbnRlZCBlbm91Z2guIFRoYW5rcyBmb3Ig bGlzdGVuaW5nLCBhbmQgdGhhbmsgeW91IGV2ZXJ5b25lIGZvciB5b3VyIGRlZGljYXRpb24gdG8g Zml4aW5nIHRoZSBidWlsZCBpc3N1ZXMgdXJnZW50bHkhDQoNCkxhc3psbw0K