From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (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 73FEF20945BCB for ; Tue, 17 Oct 2017 18:47:03 -0700 (PDT) Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Oct 2017 18:50:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,393,1503385200"; d="scan'208,217";a="139457505" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga004.jf.intel.com with ESMTP; 17 Oct 2017 18:50:38 -0700 Received: from fmsmsx158.amr.corp.intel.com (10.18.116.75) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 17 Oct 2017 18:50:38 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx158.amr.corp.intel.com (10.18.116.75) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 17 Oct 2017 18:50:36 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002; Wed, 18 Oct 2017 09:50:35 +0800 From: "Yao, Jiewen" To: Laszlo Ersek , "Duran, Leo" CC: "Ni, Ruiyu" , "Justen, Jordan L" , "edk2-devel@lists.01.org" , "Gao, Liming" , "Kinney, Michael D" , Paolo Bonzini Thread-Topic: [edk2] [PATCH v5 1/2] UefiCpuPkg/SmmCpuFeaturesLib: Use global variables to replace macros Thread-Index: AQHTQsmOAxHXukorkkOhZRIU0mJsxqLnmlKAgACOxCD//4CGAIABN0lw Date: Wed, 18 Oct 2017 01:50:34 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503A9F94AB@shsmsx102.ccr.corp.intel.com> References: <1507751131-32404-1-git-send-email-leo.duran@amd.com> <1507751131-32404-2-git-send-email-leo.duran@amd.com> <585e96dd-b15d-0710-9ad7-825e85f47b22@redhat.com> In-Reply-To: <585e96dd-b15d-0710-9ad7-825e85f47b22@redhat.com> Accept-Language: zh-CN, 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 X-Content-Filtered-By: Mailman/MimeDel 2.1.22 Subject: Re: [PATCH v5 1/2] UefiCpuPkg/SmmCpuFeaturesLib: Use global variables to replace macros 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: Wed, 18 Oct 2017 01:47:03 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhhbmtzLiBUaGVuIEkgdGhpbmsgUGFvbG/igJlzIHN1Z2dlc3Rpb24gbWFrZXMgbW9yZSBzZW5z ZS4NCg0KSWYgd2UgY2FuIHVzZSBzYW1lIG9mZiwgdGhhdCB3b3VsZCBiZSBncmVhdC4NCklmIG5v LCBqdXN0IGNoZWNrIEFNRCB2ZXJzaW9uIElEIGluIFNhdmVTdGF0ZS4NCg0KVGhhbmsgeW91DQpZ YW8gSmlld2VuDQoNCkZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNA bGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgT2YgTGFzemxvIEVyc2VrDQpTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDE3LCAyMDE3IDExOjE1IFBNDQpUbzogWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPjsgRHVyYW4sIExlbyA8bGVvLmR1cmFuQGFtZC5jb20+DQpDYzogTmksIFJ1aXl1IDxy dWl5dS5uaUBpbnRlbC5jb20+OyBKdXN0ZW4sIEpvcmRhbiBMIDxqb3JkYW4ubC5qdXN0ZW5AaW50 ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEdhbywgTGltaW5nIDxsaW1pbmcuZ2Fv QGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IFBhb2xvIEJvbnppbmkgPHBib256aW5pQHJlZGhhdC5jb20+DQpTdWJqZWN0OiBSZTogW2Vk azJdIFtQQVRDSCB2NSAxLzJdIFVlZmlDcHVQa2cvU21tQ3B1RmVhdHVyZXNMaWI6IFVzZSBnbG9i YWwgdmFyaWFibGVzIHRvIHJlcGxhY2UgbWFjcm9zDQoNCk9uIDEwLzE3LzE3IDE2OjUwLCBZYW8s IEppZXdlbiB3cm90ZToNCj4gSSB0aGluayBpdCBpcyB1bm5lY2Vzc2FyeS4gQWxsIGludGVsIENQ VSBpcyB1c2luZyBzYW1lIG9mZnNldC4gQWxsIGFtZCBDUFUgaXMgdXNpbmcgc2FtZSBvZmZzZXQu IEl0IGNhbiBiZSBpZGVudGlmaWVkIGVhc2lseSBieSBjb2RlLg0KPiBBZGRpbmcgYSBuZXcgQVBJ IG5vdyBpcyBhbHNvIGFuIGluY29tcGF0aWJsZSBjaGFuZ2UgYmVjYXVzZSB0aGF0IHJlcXVpcmVz IGFsbCBleGlzdGluZyBmZWF0dXJlbGliIGNoYW5nZSB0byBhZGQgYSBuZXcgQVBJLiBXZSBoYXZl IGxvdHMgb2YgY2xvc2Ugc291cmNlIHBsYXRmb3JtIHVzaW5nIGl0cyBvd24gZmVhdHVyZWxpYi4N Cj4NCj4gTWF5IEkga25vdyB3aGF0IHByb2JsZW0gd2UgYXJlIHRyeWluZyB0byByZXNvbHZlIGJ5 IGFkZGluZyBhIG5ldyBBUEk/DQoNClFFTVUgKGFuZCBoZW5jZSBPVk1GKSB1c2VzIHRoZSBBTUQg c2F2ZSBzdGF0ZSBtYXAgZXZlbiB3aGVuIGl0IGVtdWxhdGVzDQpJbnRlbCBDUFVzLg0KDQpUaGUg cmVhc29uIGlzIHRoYXQgdGhlIEludGVsIFNETSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBJbnRlbCBz YXZlIHN0YXRlDQptYXAgaW4gc3VmZmljaWVudCBkZXRhaWwgKGZvciBlbXVsYXRpb24gYnkgUUVN VSksIHdoaWxlIHRoZSBBTUQgc3BlYw0KZG9lcy4gU28sIGFzIGFuIGVtdWxhdGlvbiB0YXJnZXQs IG9ubHkgdGhlIEFNRCBvbmUgaXMgaW1wbGVtZW50YWJsZSBpbg0KUUVNVSAoYW5kIHN1cHBvcnRh YmxlIGluIE9WTUYpLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgUUVNVSByZXBvcnRzIHRoZQ0Kdmly dHVhbCBDUFUgbWFudWZhY3R1cmVyIGFzIEludGVsIHZzLiBBTUQuDQoNCklmIFBpU21tQ3B1RHhl U21tIHVzZWQgYSBDUFVJRCBjaGVjaywgc2F3ICJJbnRlbCIgYXMgbWFudWZhY3R1cmVyLCBhbmQN CnRoZW4gdXNlZCB0aGUgSW50ZWwgZGVmaW5pdGlvbiBvZiB0aGUgc2F2ZSBzdGF0ZSBtYXAsIHRo ZW4NClBpU21tQ3B1RHhlU21tIHdvdWxkIGJyZWFrIG9uIFFFTVUgLyBhcyBwYXJ0IG9mIE9WTUYu DQoNClRoYW5rcywNCkxhc3psbw0KDQo+DQo+DQo+IHRoYW5rIHlvdSENCj4gWWFvLCBKaWV3ZW4N Cj4NCj4NCj4+IOWcqCAyMDE35bm0MTDmnIgxN+aXpe+8jOS4i+WNiDEwOjIw77yMRHVyYW4sIExl byA8bGVvLmR1cmFuQGFtZC5jb208bWFpbHRvOmxlby5kdXJhbkBhbWQuY29tPj4g5YaZ6YGT77ya DQo+Pg0KPj4gWWFvLCBMYXpsbywgZXQgYWwsDQo+Pg0KPj4gRm9yIHRoZSBTUkFNX1NBVkVfU1RB VEVfTUFQX09GRlNFVDoNCj4+IEkgcHJvcG9zZSByZXR1cm5pbmcgdGhlIHZhbHVlIGJ5IGEgZnVu Y3Rpb24gaW4gU21tQ3B1RmVhdHVyZXNMaWIuLi4gSGVyZSdzIHRoZSByYXRpb25hbGU6DQo+PiAt IFRoZSB2YWx1ZSBpcyBmaXhlZCBwZXIgQ1BVIGFyY2hpdGVjdHVyZSwgc28gdGhpcyBxdWFsaWZp ZXMgYXMgYSBDUFUgZmVhdHVyZS4NCj4+IC0gVGhlIGxvZ2ljIGZvciBDUFUgYXJjaGl0ZWN0dXJl IGRldGVjdGlvbiB3b3VsZCBiZSBpbiBvbmUgcGxhY2UgKGUuZy4sIFBpU21tQ3B1RHhlU21tIHdv dWxkIGNhbGwgdGhlIGxpYnJhcnkgZnVuY3Rpb24pDQo+PiAtIFRoZSBPVk1GIGFuZCBRdWFyayBp bnN0YW5jZXMgb2YgdGhlIGxpYnJhcnkgY291bGQganVzdCByZXR1cm4gdGhlIGN1cnJlbnQgKGRl ZmF1bHQpIHZhbHVlLCBzbyBubyBjb21wYXRpYmlsaXR5IGlzc3Vlcy4NCj4+DQo+PiBpZiB5b3Ug YWdyZWUgd2l0aCB0aGlzIGlzIGFuIGFjY2VwdGFibGUgc29sdXRpb24sIEkgd2lsbCBzdWJtaXQg YSByZXZpc2VkIHBhdGNoLXNldCB0byBhZGRyZXNzIGp1c3QgdGhlIFNSQU1fU0FWRV9TVEFURV9N QVBfT0ZGU0VULg0KPj4gKEJUVywgSSdtIHJlLWV2YWx1YXRpbmcgdGhlIGNoYW5nZXMgc3VibWl0 dGVkIGZvciB0aGUgUFNEIG9mZnNldCwgd2l0aCB0aGUgZ29hbCBvZiBqdXN0IHVzaW5nIHRoZSBk ZWZhdWx0IHZhbHVlIGFuZCBkcm9wcGluZyB0aG9zZSBjaGFuZ2VzKQ0KPj4NCj4+IFRoYW5rcywN Cj4+IExlby4NCj4+DQo+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+PiBGcm9tOiBE dXJhbiwgTGVvDQo+Pj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDExLCAyMDE3IDI6NDYgUE0N Cj4+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxAbGlzdHMu MDEub3JnPg0KPj4+IENjOiBEdXJhbiwgTGVvIDxsZW8uZHVyYW5AYW1kLmNvbTxtYWlsdG86bGVv LmR1cmFuQGFtZC5jb20+PjsgSmlld2VuIFlhbw0KPj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbTxt YWlsdG86amlld2VuLnlhb0BpbnRlbC5jb20+PjsgUnVpeXUgTmkgPHJ1aXl1Lm5pQGludGVsLmNv bTxtYWlsdG86cnVpeXUubmlAaW50ZWwuY29tPj47IE1pY2hhZWwgRCBLaW5uZXkNCj4+PiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb208bWFpbHRvOm1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pj47IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb208bWFpbHRvOmpvcmRh bi5sLmp1c3RlbkBpbnRlbC5jb20+PjsNCj4+PiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVs LmNvbTxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+Pg0KPj4+IFN1YmplY3Q6IFtQQVRDSCB2 NSAxLzJdIFVlZmlDcHVQa2cvU21tQ3B1RmVhdHVyZXNMaWI6IFVzZSBnbG9iYWwNCj4+PiB2YXJp YWJsZXMgdG8gcmVwbGFjZSBtYWNyb3MNCj4+Pg0KPj4+IFNldCBnbG9iYWwgdmFyaWFibGVzIG9u IENvbnN0cnVjdG9yIGZ1bmN0aW9uIGJhc2VkIG9uIENQVUlEIGNoZWNrcy4NCj4+PiBUaGUgdmFy aWFibGVzIHJlcGxhY2UgSW50ZWwgbWFjcm9zIHRvIGFsbG93IHN1cHBvcnQgb24gQU1EIHg4NiBz eXN0ZW1zLg0KPj4+DQo+Pj4gU3BlY2lmaWNhbGx5LCB0aGUgcmVwbGFjZWQgbWFjcm9zIGFyZToN Cj4+PiAxKSBTUkFNX1NBVkVfU1RBVEVfTUFQX09GRlNFVA0KPj4+IDIpIFRYVF9TTU1fUFNEX09G RlNFVA0KPj4+DQo+Pj4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPG1haWx0 bzpqaWV3ZW4ueWFvQGludGVsLmNvbT4+DQo+Pj4gQ2M6IFJ1aXl1IE5pIDxydWl5dS5uaUBpbnRl bC5jb208bWFpbHRvOnJ1aXl1Lm5pQGludGVsLmNvbT4+DQo+Pj4gQ2M6IE1pY2hhZWwgRCBLaW5u ZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPG1haWx0bzptaWNoYWVsLmQua2lubmV5QGlu dGVsLmNvbT4+DQo+Pj4gQ2M6IEpvcmRhbiBKdXN0ZW4gPGpvcmRhbi5sLmp1c3RlbkBpbnRlbC5j b208bWFpbHRvOmpvcmRhbi5sLmp1c3RlbkBpbnRlbC5jb20+Pg0KPj4+IENjOiBMaW1pbmcgR2Fv IDxsaW1pbmcuZ2FvQGludGVsLmNvbTxtYWlsdG86bGltaW5nLmdhb0BpbnRlbC5jb20+Pg0KPj4+ IENvbnRyaWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjEN Cj4+PiBTaWduZWQtb2ZmLWJ5OiBMZW8gRHVyYW4gPGxlby5kdXJhbkBhbWQuY29tPG1haWx0bzps ZW8uZHVyYW5AYW1kLmNvbT4+DQo+Pj4gLS0tDQo+Pj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVhdHVy ZXNMaWIvSWEzMi9TbWlFbnRyeS5TICAgICAgfCAyOCArKysrKystLS0tDQo+Pj4gLi4uL0xpYnJh cnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5hc20gICAgfCAyOSArKysrKysrLS0t LQ0KPj4+IC4uLi9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkubmFzbSAg IHwgNDMgKysrKysrKysrKysrLS0tDQo+Pj4gLQ0KPj4+IFVlZmlDcHVQa2cvTGlicmFyeS9TbW1D cHVGZWF0dXJlc0xpYi9TbW1Db21tb24uaCAgIHwgNDgNCj4+PiArKysrKysrKysrKysrKysrKysN Cj4+PiAuLi4vTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYi5jICB8 IDU5DQo+Pj4gKysrKysrKysrKysrKysrKysrLS0tLQ0KPj4+IC4uLi9TbW1DcHVGZWF0dXJlc0xp Yi9TbW1DcHVGZWF0dXJlc0xpYi5pbmYgICAgICAgIHwgIDMgKysNCj4+PiAuLi4vU21tQ3B1RmVh dHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWJTdG0uaW5mICAgICB8ICAzICsrDQo+Pj4gVWVmaUNw dVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbVN0bS5jICAgICAgfCAzOQ0KPj4+ICsr KysrKysrKysrKy0tDQo+Pj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVu dHJ5LlMgICAgICAgfCAyOCArKysrKystLS0tDQo+Pj4gLi4uL0xpYnJhcnkvU21tQ3B1RmVhdHVy ZXNMaWIvWDY0L1NtaUVudHJ5LmFzbSAgICAgfCAzMCArKysrKysrLS0tLQ0KPj4+IC4uLi9MaWJy YXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5uYXNtICAgIHwgNDcgKysrKysrKysr KysrLS0tDQo+Pj4gLS0NCj4+PiAxMSBmaWxlcyBjaGFuZ2VkLCAyODIgaW5zZXJ0aW9ucygrKSwg NzUgZGVsZXRpb25zKC0pICBjcmVhdGUgbW9kZSAxMDA2NDQNCj4+PiBVZWZpQ3B1UGtnL0xpYnJh cnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ29tbW9uLmgNCj4+Pg0KPj4+IGRpZmYgLS1naXQgYS9V ZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TDQo+Pj4g Yi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TDQo+ Pj4gaW5kZXggNGMwZjhjOC4uYzdiNDlkNyAxMDA2NDQNCj4+PiAtLS0gYS9VZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5TDQo+Pj4gKysrIGIvVWVmaUNw dVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkuUw0KPj4+IEBAIC0x LDYgKzEsOCBAQA0KPj4+ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+PiAjDQo+Pj4gIyBDb3B5 cmlnaHQgKGMpIDIwMDkgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC48QlI+DQo+Pj4gKyMgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gIw0KPj4+ICMgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNj b21wYW55aW5nIG1hdGVyaWFscyAgIyBhcmUgbGljZW5zZWQgYW5kIG1hZGUNCj4+PiBhdmFpbGFi bGUgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAgIyB3 aGljaA0KPj4+IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4+PiBAQCAtMjgsNiArMzAsOSBAQCBBU01f R0xPQkFMICBBU01fUEZYKGdTdG1TbWJhc2UpICBBU01fR0xPQkFMDQo+Pj4gQVNNX1BGWChnU3Rt WGRTdXBwb3J0ZWQpICBBU01fR0xPQkFMICBBU01fUEZYKEZlYXR1cmVQY2RHZXQNCj4+PiAoUGNk Q3B1U21tU3RhY2tHdWFyZCkpICBBU01fR0xPQkFMICBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0 cikNCj4+PiArQVNNX0dMT0JBTCAgQVNNX1BGWChnU3RtUHNkT2Zmc2V0KQ0KPj4+ICtBU01fR0xP QkFMICBBU01fUEZYKGdTdG1HZHRTaXplKQ0KPj4+ICtBU01fR0xPQkFMICBBU01fUEZYKGdTdG1H ZHRQdHIpDQo+Pj4NCj4+PiAuZXF1ICAgICAgICAgICAgTVNSX0lBMzJfTUlTQ19FTkFCTEUsIDB4 MUEwDQo+Pj4gLmVxdSAgICAgICAgICAgIE1TUl9FRkVSLCAweGMwMDAwMDgwDQo+Pj4gQEAgLTM2 LDEyICs0MSwxMyBAQCBBU01fR0xPQkFMICBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikgICMg ICMNCj4+PiBDb25zdGFudHMgcmVsYXRpbmcgdG8gVFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRP UiAgIw0KPj4+IC0uZXF1ICAgICAgICAgICAgRFNDX09GRlNFVCwgMHhmYjAwDQo+Pj4gLS5lcXUg ICAgICAgICAgICBEU0NfR0RUUFRSLCAweDQ4DQo+Pj4gLS5lcXUgICAgICAgICAgICBEU0NfR0RU U0laLCAweDUwDQo+Pj4gLS5lcXUgICAgICAgICAgICBEU0NfQ1MsIDB4MTQNCj4+PiAtLmVxdSAg ICAgICAgICAgIERTQ19EUywgMHgxNg0KPj4+IC0uZXF1ICAgICAgICAgICAgRFNDX1NTLCAweDE4 DQo+Pj4gKyMgLmVxdSAgICAgICAgICBEU0NfT0ZGU0VULCAgIDB4ZmIwMA0KPj4+ICsjIC5lcXUg ICAgICAgICAgRFNDX0dEVFBUUiwgICAweDQ4DQo+Pj4gKyMgLmVxdSAgICAgICAgICBEU0NfR0RU U0laLCAgIDB4NTANCj4+PiArIw0KPj4+ICsuZXF1ICAgICAgICAgICAgRFNDX0NTLCAgICAgICAw eDE0DQo+Pj4gKy5lcXUgICAgICAgICAgICBEU0NfRFMsICAgICAgIDB4MTYNCj4+PiArLmVxdSAg ICAgICAgICAgIERTQ19TUywgICAgICAgMHgxOA0KPj4+IC5lcXUgICAgICAgICAgICBEU0NfT1RI RVJTRUcsIDB4MUENCj4+Pg0KPj4+IC5lcXUgICAgICAgICAgICBQUk9URUNUX01PREVfQ1MsIDB4 MDgNCj4+PiBAQCAtNTUsMTEgKzYxLDExIEBAIF9TdG1TbWlFbnRyeVBvaW50Og0KPj4+ICAgICAu Ynl0ZSAweGJiICAgICAgICAgICAgICAgICAgICAgICAgICAjIG1vdiBieCwgaW1tMTYNCj4+PiAg ICAgLndvcmQgX1N0bUdkdERlc2MgLSBfU3RtU21pRW50cnlQb2ludCArIDB4ODAwMA0KPj4+ICAg ICAuYnl0ZSAweDJlLDB4YTEgICAgICAgICAgICAgICAgICAgICAjIG1vdiBheCwgY3M6W29mZnNl dDE2XQ0KPj4+IC0gICAgLndvcmQgRFNDX09GRlNFVCArIERTQ19HRFRTSVoNCj4+PiArQVNNX1BG WChnU3RtR2R0U2l6ZSk6IC5zcGFjZSAyICAgICAgICAgICMgLndvcmQgRFNDX09GRlNFVCArIERT Q19HRFRTSVoNCj4+PiAgICAgZGVjbCAgICAlZWF4DQo+Pj4gICAgIG1vdmwgICAgJWVheCwgJWNz OiglZWRpKSAgICAgICAgICAgICMgbW92IGNzOltieF0sIGF4DQo+Pj4gICAgIC5ieXRlIDB4NjYs MHgyZSwweGExICAgICAgICAgICAgICAgICMgbW92IGVheCwgY3M6W29mZnNldDE2XQ0KPj4+IC0g ICAgLndvcmQgICBEU0NfT0ZGU0VUICsgRFNDX0dEVFBUUg0KPj4+ICtBU01fUEZYKGdTdG1HZHRQ dHIpOiAuc3BhY2UgMiAgICAgICAgICAgIyAud29yZCBEU0NfT0ZGU0VUICsgRFNDX0dEVFBUUg0K Pj4+ICAgICBtb3Z3ICAgICVheCwgJWNzOjIoJWVkaSkNCj4+PiAgICAgbW92dyAgICAlYXgsICVi cCAgICAgICAgICAgICAgICAgICAgIyBlYnAgPSBHRFQgYmFzZQ0KPj4+ICAgICAuYnl0ZSAweDY2 DQo+Pj4gQEAgLTE2Nyw3ICsxNzMsMTEgQEAgWGREb25lOg0KPj4+ICAgICBtb3ZsICAgICVjcjAs ICVlYngNCj4+PiAgICAgb3JsICAgICAkMHgwODAwMTAwMjMsICVlYnggICAgICAgICAgICAgIyBl bmFibGUgcGFnaW5nICsgV1AgKyBORSArIE1QICsgUEUNCj4+PiAgICAgbW92bCAgICAlZWJ4LCAl Y3IwDQo+Pj4gLSAgICBsZWFsICAgIERTQ19PRkZTRVQoJWVkaSksJWVieA0KPj4+ICsNCj4+PiAr ICAgIG1vdmwgICAgJEFTTV9QRlgoZ1N0bVBzZE9mZnNldCksICVlYnggICMgbGVhbCAgICBEU0Nf T0ZGU0VUKCVlZGkpLA0KPj4+ICVlYngNCj4+PiArICAgIG1vdnp4dyAgKCVlYngpLCAlZXNpDQo+ Pj4gKyAgICBsZWFsICAgICglZWRpLCAlZXNpKSwgJWVieA0KPj4+ICsNCj4+PiAgICAgbW92dyAg ICBEU0NfRFMoJWVieCksJWF4DQo+Pj4gICAgIG1vdmwgICAgJWVheCwgJWRzDQo+Pj4gICAgIG1v dncgICAgRFNDX09USEVSU0VHKCVlYngpLCVheA0KPj4+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtn L0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5hc20NCj4+PiBiL1VlZmlD cHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5LmFzbQ0KPj4+IGlu ZGV4IDkxZGMxZWIuLjRkYmUyNzYgMTAwNjQ0DQo+Pj4gLS0tIGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkuYXNtDQo+Pj4gKysrIGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkuYXNtDQo+Pj4gQEAgLTEs NSArMSw3IEBADQo+Pj4gOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA7ICA7DQo+Pj4gQ29weXJpZ2h0 IChjKSAyMDA5IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPg0KPj4+ICs7IENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJp Z2h0cyByZXNlcnZlZC48QlI+IDsNCj4+PiA7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFu eWluZyBtYXRlcmlhbHMgIDsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+Pj4gYXZhaWxhYmxlIHVu ZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgIDsgd2hpY2gN Cj4+PiBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhl IGxpY2Vuc2UgbWF5IGJlIGZvdW5kIGF0DQo+Pj4gQEAgLTI5LDEzICszMSwxNCBAQCBNU1JfRUZF Ul9YRCAgIEVRVSAgICAgMDgwMGgNCj4+PiA7DQo+Pj4gOyBDb25zdGFudHMgcmVsYXRpbmcgdG8g VFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRPUiAgOw0KPj4+IC1EU0NfT0ZGU0VUICAgIEVRVSAg ICAgMGZiMDBoDQo+Pj4gLURTQ19HRFRQVFIgICAgRVFVICAgICA0OGgNCj4+PiAtRFNDX0dEVFNJ WiAgICBFUVUgICAgIDUwaA0KPj4+IC1EU0NfQ1MgICAgICAgIEVRVSAgICAgMTRoDQo+Pj4gLURT Q19EUyAgICAgICAgRVFVICAgICAxNmgNCj4+PiAtRFNDX1NTICAgICAgICBFUVUgICAgIDE4aA0K Pj4+IC1EU0NfT1RIRVJTRUcgIEVRVSAgICAgMUFoDQo+Pj4gKzsgRFNDX09GRlNFVCBFUVUgICAg IDBmYjAwaA0KPj4+ICs7IERTQ19HRFRQVFIgRVFVICAgICA0OGgNCj4+PiArOyBEU0NfR0RUU0la IEVRVSAgICAgNTBoDQo+Pj4gKzsNCj4+PiArRFNDX0NTICAgICAgIEVRVSAgICAgMTRoDQo+Pj4g K0RTQ19EUyAgICAgICBFUVUgICAgIDE2aA0KPj4+ICtEU0NfU1MgICAgICAgRVFVICAgICAxOGgN Cj4+PiArRFNDX09USEVSU0VHIEVRVSAgICAgMUFoDQo+Pj4NCj4+PiBQUk9URUNUX01PREVfQ1Mg RVFVICAgMDhoDQo+Pj4gUFJPVEVDVF9NT0RFX0RTIEVRVSAgIDIwaA0KPj4+IEBAIC01NCw2ICs1 Nyw5IEBAIEVYVEVSTkRFRiAgIGdTdG1TbWJhc2U6RFdPUkQNCj4+PiBFWFRFUk5ERUYgICBnU3Rt WGRTdXBwb3J0ZWQ6QllURQ0KPj4+IEVYVEVSTkRFRiAgIEZlYXR1cmVQY2RHZXQgKFBjZENwdVNt bVN0YWNrR3VhcmQpOkJZVEUNCj4+PiBFWFRFUk5ERUYgICBnU3RtU21pSGFuZGxlcklkdHI6RldP UkQNCj4+PiArRVhURVJOREVGICAgZ1N0bVBzZE9mZnNldDpXT1JEDQo+Pj4gK0VYVEVSTkRFRiAg IGdTdG1HZHRTaXplOldPUkQNCj4+PiArRVhURVJOREVGICAgZ1N0bUdkdFB0cjpXT1JEDQo+Pj4N Cj4+PiAgICAgLmNvZGUNCj4+Pg0KPj4+IEBAIC02MywxMSArNjksMTEgQEAgX1N0bVNtaUVudHJ5 UG9pbnQ6DQo+Pj4gICAgIERCICAgICAgMGJiaCAgICAgICAgICAgICAgICAgICAgICAgIDsgbW92 IGJ4LCBpbW0xNg0KPj4+ICAgICBEVyAgICAgIG9mZnNldCBfU3RtR2R0RGVzYyAtIF9TdG1TbWlF bnRyeVBvaW50ICsgODAwMGgNCj4+PiAgICAgREIgICAgICAyZWgsIDBhMWggICAgICAgICAgICAg ICAgICAgOyBtb3YgYXgsIGNzOltvZmZzZXQxNl0NCj4+PiAtICAgIERXICAgICAgRFNDX09GRlNF VCArIERTQ19HRFRTSVoNCj4+PiArZ1N0bUdkdFNpemUgICBEVyAgICA/ICAgICAgICAgICAgICAg ICAgIDsgRFNDX09GRlNFVCArIERTQ19HRFRTSVoNCj4+PiAgICAgZGVjICAgICBlYXgNCj4+PiAg ICAgbW92ICAgICBjczpbZWRpXSwgZWF4ICAgICAgICAgICAgICAgOyBtb3YgY3M6W2J4XSwgYXgN Cj4+PiAgICAgREIgICAgICA2NmgsIDJlaCwgMGExaCAgICAgICAgICAgICAgOyBtb3YgZWF4LCBj czpbb2Zmc2V0MTZdDQo+Pj4gLSAgICBEVyAgICAgIERTQ19PRkZTRVQgKyBEU0NfR0RUUFRSDQo+ Pj4gK2dTdG1HZHRQdHIgICAgRFcgICAgPyAgICAgICAgICAgICAgICAgICA7IERTQ19PRkZTRVQg KyBEU0NfR0RUUFRSDQo+Pj4gICAgIG1vdiAgICAgY3M6W2VkaSArIDJdLCBheCAgICAgICAgICAg IDsgbW92IGNzOltieCArIDJdLCBlYXgNCj4+PiAgICAgbW92ICAgICBicCwgYXggICAgICAgICAg ICAgICAgICAgICAgOyBlYnAgPSBHRFQgYmFzZQ0KPj4+ICAgICBEQiAgICAgIDY2aA0KPj4+IEBA IC0xNzQsNyArMTgwLDEwIEBAIGdTdG1YZFN1cHBvcnRlZCAgICAgREIgICAgICAxDQo+Pj4gICAg IG1vdiAgICAgZWJ4LCBjcjANCj4+PiAgICAgb3IgICAgICBlYngsIDA4MDAxMDAyM2ggICAgICAg ICAgICAgOyBlbmFibGUgcGFnaW5nICsgV1AgKyBORSArIE1QICsgUEUNCj4+PiAgICAgbW92ICAg ICBjcjAsIGVieA0KPj4+IC0gICAgbGVhICAgICBlYngsIFtlZGkgKyBEU0NfT0ZGU0VUXQ0KPj4+ ICsNCj4+PiArICAgIG1vdnp4ICAgZXNpLCB3b3JkIHB0ciBbZ1N0bVBzZE9mZnNldF0gICA7IGxl YSAgICAgZWJ4LCBbZWRpICsgRFNDX09GRlNFVF0NCj4+PiArICAgIGxlYSAgICAgZWJ4LCBbZWRp ICsgZXNpXSAgICAgICAgICAgICAgICA7DQo+Pj4gKw0KPj4+ICAgICBtb3YgICAgIGF4LCBbZWJ4 ICsgRFNDX0RTXQ0KPj4+ICAgICBtb3YgICAgIGRzLCBlYXgNCj4+PiAgICAgbW92ICAgICBheCwg W2VieCArIERTQ19PVEhFUlNFR10NCj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5 L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkubmFzbQ0KPj4+IGIvVWVmaUNwdVBrZy9M aWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL0lhMzIvU21pRW50cnkubmFzbQ0KPj4+IGluZGV4IDAw YzBmMDY3Li4wMjM5MjNhIDEwMDY0NA0KPj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1D cHVGZWF0dXJlc0xpYi9JYTMyL1NtaUVudHJ5Lm5hc20NCj4+PiArKysgYi9VZWZpQ3B1UGtnL0xp YnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvSWEzMi9TbWlFbnRyeS5uYXNtDQo+Pj4gQEAgLTEsNSAr MSw3IEBADQo+Pj4gOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA7ICA7DQo+Pj4gQ29weXJpZ2h0IChj KSAyMDE2IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPj4+ICs7IENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+IDsNCj4+PiA7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWlu ZyBtYXRlcmlhbHMgIDsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+Pj4gYXZhaWxhYmxlIHVuZGVy IHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgIDsgd2hpY2gNCj4+ PiBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxp Y2Vuc2UgbWF5IGJlIGZvdW5kIGF0DQo+Pj4gQEAgLTI1LDE3ICsyNywxOCBAQCAgOyAgOyBDb25z dGFudHMgcmVsYXRpbmcgdG8NCj4+PiBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICA7IC0l ZGVmaW5lIERTQ19PRkZTRVQgMHhmYjAwIC0NCj4+PiAlZGVmaW5lIERTQ19HRFRQVFIgMHg0OCAt JWRlZmluZSBEU0NfR0RUU0laIDB4NTAgLSVkZWZpbmUgRFNDX0NTDQo+Pj4gMHgxNCAtJWRlZmlu ZSBEU0NfRFMgMHgxNiAtJWRlZmluZSBEU0NfU1MgMHgxOCAtJWRlZmluZSBEU0NfT1RIRVJTRUcN Cj4+PiAweDFhDQo+Pj4gKzsgJWRlZmluZSBEU0NfT0ZGU0VUICAgMHhmYjAwDQo+Pj4gKzsgJWRl ZmluZSBEU0NfR0RUUFRSICAgMHg0OA0KPj4+ICs7ICVkZWZpbmUgRFNDX0dEVFNJWiAgIDB4NTAN Cj4+PiArOw0KPj4+ICslZGVmaW5lICAgRFNDX0NTICAgICAgIDB4MTQNCj4+PiArJWRlZmluZSAg IERTQ19EUyAgICAgICAweDE2DQo+Pj4gKyVkZWZpbmUgICBEU0NfU1MgICAgICAgMHgxOA0KPj4+ ICslZGVmaW5lICAgRFNDX09USEVSU0VHIDB4MWENCj4+Pg0KPj4+ICVkZWZpbmUgUFJPVEVDVF9N T0RFX0NTIDB4OA0KPj4+ICVkZWZpbmUgUFJPVEVDVF9NT0RFX0RTIDB4MjANCj4+PiAtJWRlZmlu ZSBUU1NfU0VHTUVOVCAweDQwDQo+Pj4gKyVkZWZpbmUgVFNTX1NFR01FTlQgICAgIDB4NDANCj4+ Pg0KPj4+IGV4dGVybiBBU01fUEZYKFNtaVJlbmRlenZvdXMpDQo+Pj4gZXh0ZXJuIEFTTV9QRlgo RmVhdHVyZVBjZEdldCAoUGNkQ3B1U21tU3RhY2tHdWFyZCkpIEBAIC01MSw2DQo+Pj4gKzU0LDEw IEBAIGdsb2JhbCBBU01fUEZYKGdTdG1TbWJhc2UpICBnbG9iYWwNCj4+PiBBU01fUEZYKGdTdG1Y ZFN1cHBvcnRlZCkgIGV4dGVybiBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikNCj4+Pg0KPj4+ ICtleHRlcm4gQVNNX1BGWChnU3RtUHNkT2Zmc2V0KQ0KPj4+ICtnbG9iYWwgQVNNX1BGWChnU3Rt R2R0U2l6ZSkNCj4+PiArZ2xvYmFsIEFTTV9QRlgoZ1N0bUdkdFB0cikNCj4+PiArDQo+Pj4gQVNN X1BGWChnU3RtU21pQ3IzKSAgICAgIEVRVSBTdG1TbWlDcjNQYXRjaCAtIDQNCj4+PiBBU01fUEZY KGdTdG1TbWlTdGFjaykgICAgRVFVIFN0bVNtaVN0YWNrUGF0Y2ggLSA0DQo+Pj4gQVNNX1BGWChn U3RtU21iYXNlKSAgICAgIEVRVSBTdG1TbWJhc2VQYXRjaCAtIDQNCj4+PiBAQCAtNjIsMTAgKzY5 LDE4IEBAIEJJVFMgMTYNCj4+PiBBU01fUEZYKGdjU3RtU21pSGFuZGxlclRlbXBsYXRlKToNCj4+ PiBfU3RtU21pRW50cnlQb2ludDoNCj4+PiAgICAgbW92ICAgICBieCwgX1N0bUdkdERlc2MgLSBf U3RtU21pRW50cnlQb2ludCArIDB4ODAwMA0KPj4+IC0gICAgbW92ICAgICBheCxbY3M6RFNDX09G RlNFVCArIERTQ19HRFRTSVpdDQo+Pj4gKw0KPj4+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgo Z1N0bUdkdFNpemUpICAgICA7IG1vdiAgICAgYXgsIFtjczpEU0NfT0ZGU0VUICsNCj4+PiBEU0Nf R0RUU0laXQ0KPj4+ICsgICAgbW92ICAgICBzaSwgW2NzOmVheF0gICAgICAgICAgICAgICAgICA7 DQo+Pj4gKyAgICBtb3YgICAgIGF4LCBbY3M6c2ldICAgICAgICAgICAgICAgICAgIDsNCj4+PiAr DQo+Pj4gICAgIGRlYyAgICAgYXgNCj4+PiAgICAgbW92ICAgICBbY3M6YnhdLCBheA0KPj4+IC0g ICAgbW92ICAgICBlYXgsIFtjczpEU0NfT0ZGU0VUICsgRFNDX0dEVFBUUl0NCj4+PiArDQo+Pj4g KyAgICBtb3YgICAgIGVheCwgQVNNX1BGWChnU3RtR2R0UHRyKSAgICAgIDsgbW92ICAgICBlYXgs IFtjczpEU0NfT0ZGU0VUICsNCj4+PiBEU0NfR0RUUFRSXQ0KPj4+ICsgICAgbW92ICAgICBzaSwg W2NzOmVheF0gICAgICAgICAgICAgICAgICA7DQo+Pj4gKyAgICBtb3YgICAgIGVheCwgW2NzOnNp XSAgICAgICAgICAgICAgICAgIDsNCj4+PiArDQo+Pj4gICAgIG1vdiAgICAgW2NzOmJ4ICsgMl0s IGVheA0KPj4+ICAgICBtb3YgICAgIGVicCwgZWF4ICAgICAgICAgICAgICAgICAgICAgIDsgZWJw ID0gR0RUIGJhc2UNCj4+PiBvMzIgbGdkdCAgICBbY3M6YnhdICAgICAgICAgICAgICAgICAgICAg ICA7IGxnZHQgZndvcmQgcHRyIGNzOltieF0NCj4+PiBAQCAtMTY2LDcgKzE4MSwxMCBAQCBTdG1Y ZFN1cHBvcnRlZFBhdGNoOg0KPj4+ICAgICBtb3YgICAgIGVieCwgY3IwDQo+Pj4gICAgIG9yICAg ICAgZWJ4LCAweDgwMDEwMDIzICAgICAgICAgICAgIDsgZW5hYmxlIHBhZ2luZyArIFdQICsgTkUg KyBNUCArIFBFDQo+Pj4gICAgIG1vdiAgICAgY3IwLCBlYngNCj4+PiAtICAgIGxlYSAgICAgZWJ4 LCBbZWRpICsgRFNDX09GRlNFVF0NCj4+PiArDQo+Pj4gKyAgICBtb3Z6eCAgIGVzaSwgd29yZCBb QVNNX1BGWChnU3RtUHNkT2Zmc2V0KV0gIDsgbGVhICAgICBlYngsIFtlZGkgKw0KPj4+IERTQ19P RkZTRVRdDQo+Pj4gKyAgICBsZWEgICAgIGVieCwgW2VkaSArIGVzaV0gICAgICAgICAgICAgICAg ICAgIDsNCj4+PiArDQo+Pj4gICAgIG1vdiAgICAgYXgsIFtlYnggKyBEU0NfRFNdDQo+Pj4gICAg IG1vdiAgICAgZHMsIGVheA0KPj4+ICAgICBtb3YgICAgIGF4LCBbZWJ4ICsgRFNDX09USEVSU0VH XQ0KPj4+IEBAIC0yNzEsNSArMjg5LDggQEAgX1N0bVNtaUhhbmRsZXI6DQo+Pj4gICAgIDsgU1RN IGluaXQgZmluaXNoDQo+Pj4gICAgIGptcCAgICAgQ29tbW9uSGFuZGxlcg0KPj4+DQo+Pj4gK0FT TV9QRlgoZ1N0bUdkdFNpemUpICAgICAgICAgICA6IFJFU1cgICAgICAxDQo+Pj4gK0FTTV9QRlgo Z1N0bUdkdFB0cikgICAgICAgICAgICA6IFJFU1cgICAgICAxDQo+Pj4gKw0KPj4+IEFTTV9QRlgo Z2NTdG1TbWlIYW5kbGVyU2l6ZSkgICA6IERXICAgICAgICAkIC0gX1N0bVNtaUVudHJ5UG9pbnQN Cj4+PiBBU01fUEZYKGdjU3RtU21pSGFuZGxlck9mZnNldCkgOiBEVyAgICAgICAgX1N0bVNtaUhh bmRsZXIgLQ0KPj4+IF9TdG1TbWlFbnRyeVBvaW50DQo+Pj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQ a2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1Db21tb24uaA0KPj4+IGIvVWVmaUNwdVBr Zy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNvbW1vbi5oDQo+Pj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCj4+PiBpbmRleCAwMDAwMDAwLi43OGIzYTViDQo+Pj4gLS0tIC9kZXYvbnVsbA0K Pj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1Db21tb24u aA0KPj4+IEBAIC0wLDAgKzEsNDggQEANCj4+PiArLyoqIEBmaWxlDQo+Pj4gKyAgQ29tbW9uIGRl Y2xhcmF0aW9ucw0KPj4+ICsNCj4+PiArICBDb3B5cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBv cmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0KPj4+ICsNCj4+PiArICBUaGlzIHByb2dy YW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICBhcmUgbGljZW5zZWQgYW5kIG1hZGUN Cj4+PiArIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJT RCBMaWNlbnNlICB3aGljaA0KPj4+ICsgYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBU aGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZQ0KPj4+ICsgZm91bmQgYXQgIGh0dHA6 Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHAuDQo+Pj4gKw0KPj4+ICsg IFRIRSBQUk9HUkFNIElTIERJU1RSSUJVVEVEIFVOREVSIFRIRSBCU0QgTElDRU5TRSBPTiBBTiAi QVMgSVMiDQo+Pj4gQkFTSVMsDQo+Pj4gKyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5U QVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVINCj4+PiBFWFBSRVNTIE9SIElNUExJRUQuDQo+Pj4g Kw0KPj4+ICsqKi8NCj4+PiArDQo+Pj4gKyNpZm5kZWYgX1NNTV9DT01NT05fSF8NCj4+PiArI2Rl ZmluZSBfU01NX0NPTU1PTl9IXw0KPj4+ICsNCj4+PiArI2luY2x1ZGUgPFJlZ2lzdGVyL0FtZC9D cHVpZC5oPg0KPj4+ICsNCj4+PiArLy8NCj4+PiArLy8gRGVmaW5pdGlvbnMgZm9yIEFNRCBzeXN0 ZW1zIGFyZSBiYXNlZCBvbiBjb250ZW50cyBvZiB0aGUgLy8gQU1ENjQNCj4+PiArQXJjaGl0ZWN0 dXJlIFByb2dyYW1tZXIncyBNYW51YWwgLy8gVm9sdW1lIDI6IFN5c3RlbSBQcm9ncmFtbWluZywN Cj4+PiArU2VjdGlvbiAxMCBTeXN0ZW0tTWFuYWdlbWVudCBNb2RlIC8vICNkZWZpbmUNCj4+PiAr QU1EX1NNUkFNX1NBVkVfU1RBVEVfTUFQX09GRlNFVCAweGZlMDANCj4+PiArI2RlZmluZSAgICAg ICBBTURfU01NX1BTRF9PRkZTRVQgICAgICAgICAweGZjMDANCj4+PiArDQo+Pj4gKy8vDQo+Pj4g Ky8vIEV4dGVybmFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIFNNUkFNIG9mZnNldHMgLy8gZXh0ZXJu IFVJTlQxNg0KPj4+ICtnU21yYW1TdGF0ZU1hcE9mZnNldDsgZXh0ZXJuIFVJTlQxNiAgZ1NtbVBz ZE9mZnNldDsNCj4+PiArDQo+Pj4gKw0KPj4+ICsvKioNCj4+PiArICBEZXRlcm1pbmUgaWYgdGhl IHN0YW5kYXJkIENQVSBzaWduYXR1cmUgaXMgIkF1dGhlbnRpY0FNRCIuDQo+Pj4gKw0KPj4+ICsg IEByZXR2YWwgVFJVRSAgVGhlIENQVSBzaWduYXR1cmUgbWF0Y2hlcy4NCj4+PiArICBAcmV0dmFs IEZBTFNFIFRoZSBDUFUgc2lnbmF0dXJlIGRvZXMgbm90IG1hdGNoLg0KPj4+ICsNCj4+PiArKiov DQo+Pj4gK0JPT0xFQU4NCj4+PiArU21tU3RhbmRhcmRTaWduYXR1cmVJc0F1dGhlbnRpY0FNRCAo DQo+Pj4gKyAgVk9JRA0KPj4+ICsgICk7DQo+Pj4gKw0KPj4+ICsjZW5kaWYNCj4+PiBkaWZmIC0t Z2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVz TGliLmMNCj4+PiBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVG ZWF0dXJlc0xpYi5jDQo+Pj4gaW5kZXggMmQyYmM2ZC4uMWMxMjA5NSAxMDA2NDQNCj4+PiAtLS0g YS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWIu Yw0KPj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVG ZWF0dXJlc0xpYi5jDQo+Pj4gQEAgLTEsMTQgKzEsMTYgQEANCj4+PiAvKiogQGZpbGUNCj4+PiAt VGhlIENQVSBzcGVjaWZpYyBwcm9ncmFtbWluZyBmb3IgUGlTbW1DcHVEeGVTbW0gbW9kdWxlLg0K Pj4+ICsgIFRoZSBDUFUgc3BlY2lmaWMgcHJvZ3JhbW1pbmcgZm9yIFBpU21tQ3B1RHhlU21tIG1v ZHVsZS4NCj4+Pg0KPj4+IC1Db3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE2LCBJbnRlbCBDb3Jwb3Jh dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+IC1UaGlzDQo+Pj4gcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMgLWFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUN Cj4+PiB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlIC13 aGljaCBhY2NvbXBhbmllcyB0aGlzDQo+Pj4gZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQgLQ0KPj4+IGh0dHA6Ly9vcGVuc291cmNlLm9y Zy9saWNlbnNlcy9ic2QtbGljZW5zZS5waHANCj4+PiArICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAy MDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPj4+ICsgcmVzZXJ2ZWQuPEJSPiAg Q29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzDQo+Pj4gKyBy ZXNlcnZlZC48QlI+DQo+Pj4NCj4+PiAtVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQgVU5ERVIg VEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4+PiBCQVNJUywgLVdJVEhPVVQgV0FSUkFO VElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0KPj4+IEVYUFJFU1Mg T1IgSU1QTElFRC4NCj4+PiArICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0 ZXJpYWxzICBhcmUgbGljZW5zZWQgYW5kIG1hZGUNCj4+PiArIGF2YWlsYWJsZSB1bmRlciB0aGUg dGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlICB3aGljaA0KPj4+ICsgYWNj b21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNl IG1heSBiZQ0KPj4+ICsgZm91bmQgYXQgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9i c2QtbGljZW5zZS5waHANCj4+PiArDQo+Pj4gKyAgVEhFIFBST0dSQU0gSVMgRElTVFJJQlVURUQg VU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4+PiBCQVNJUywNCj4+PiArIFdJ VEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUg0K Pj4+IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4+Pg0KPj4+ICoqLw0KPj4+DQo+Pj4gQEAgLTIyLDYg KzI0LDggQEAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkNCj4+ PiBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPj4+ICNpbmNsdWRlIDxSZWdpc3Rl ci9DcHVpZC5oPg0KPj4+ICNpbmNsdWRlIDxSZWdpc3Rlci9TbXJhbVNhdmVTdGF0ZU1hcC5oPg0K Pj4+DQo+Pj4gKyNpbmNsdWRlICJTbW1Db21tb24uaCINCj4+PiArDQo+Pj4gLy8NCj4+PiAvLyBN YWNoaW5lIFNwZWNpZmljIFJlZ2lzdGVycyAoTVNScykNCj4+PiAvLw0KPj4+IEBAIC00MSw2ICs0 NSw3IEBAIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBSRVBSRVNFTlRBVElPTlMgT0YgQU5ZDQo+Pj4g S0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRC4NCj4+PiAjZGVmaW5lIFNNTV9GRUFUVVJF U19MSUJfSUEzMl9NQ0FfQ0FQICAgICAgICAgICAgICAweDE3RA0KPj4+ICNkZWZpbmUgICBTTU1f Q09ERV9BQ0NFU1NfQ0hLX0JJVCAgICAgICAgICAgICAgICAgIEJJVDU4DQo+Pj4NCj4+PiArDQo+ Pj4gLyoqDQo+Pj4gICBJbnRlcm5hbCB3b3JrZXIgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgdG8g Y29tcGxldGUgQ1BVIGluaXRpYWxpemF0aW9uIGF0IHRoZQ0KPj4+ICAgZW5kIG9mIFNtbUNwdUZl YXR1cmVzSW5pdGlhbGl6ZVByb2Nlc3NvcigpLg0KPj4+IEBAIC03Nyw2ICs4MiwxMyBAQCBCT09M RUFOICBtTmVlZENvbmZpZ3VyZU10cnJzID0gVFJVRTsgIC8vDQo+Pj4gQk9PTEVBTiAgKm1TbXJy RW5hYmxlZDsNCj4+Pg0KPj4+ICsvLw0KPj4+ICsvLyBTZXQgZGVmYXVsdCB2YWx1ZSBmb3IgU01S QU0gb2Zmc2V0DQo+Pj4gKy8vICBmcm9tIDxSZWdpc3Rlci9TbXJhbVNhdmVTdGF0ZU1hcC5oPiAv Lw0KPj4+ICtVSU5UMTYgIGdTbXJhbVN0YXRlTWFwT2Zmc2V0ID0gU01SQU1fU0FWRV9TVEFURV9N QVBfT0ZGU0VUOw0KPj4+ICsNCj4+PiArDQo+Pj4gLyoqDQo+Pj4gICBUaGUgY29uc3RydWN0b3Ig ZnVuY3Rpb24NCj4+Pg0KPj4+IEBAIC05OSw2ICsxMTEsMTMgQEAgU21tQ3B1RmVhdHVyZXNMaWJD b25zdHJ1Y3RvciAoDQo+Pj4gICBVSU5UTiAgIE1vZGVsSWQ7DQo+Pj4NCj4+PiAgIC8vDQo+Pj4g KyAgLy8gT3ZlcnJpZGUgU01SQU0gb2Zmc2V0IGZvciBBTUQNCj4+PiArICAvLw0KPj4+ICsgIGlm IChTbW1TdGFuZGFyZFNpZ25hdHVyZUlzQXV0aGVudGljQU1EICgpKSB7DQo+Pj4gKyAgICBnU21y YW1TdGF0ZU1hcE9mZnNldCA9IEFNRF9TTVJBTV9TQVZFX1NUQVRFX01BUF9PRkZTRVQ7ICB9DQo+ Pj4gKw0KPj4+ICsgIC8vDQo+Pj4gICAvLyBSZXRyaWV2ZSBDUFUgRmFtaWx5IGFuZCBNb2RlbA0K Pj4+ICAgLy8NCj4+PiAgIEFzbUNwdWlkIChDUFVJRF9WRVJTSU9OX0lORk8sICZSZWdFYXgsIE5V TEwsIE5VTEwsICZSZWdFZHgpOyBAQCAtDQo+Pj4gMjI0LDcgKzI0Myw3IEBAIFNtbUNwdUZlYXR1 cmVzSW5pdGlhbGl6ZVByb2Nlc3NvciAoDQo+Pj4gICAvLw0KPj4+ICAgLy8gQ29uZmlndXJlIFNN QkFTRS4NCj4+PiAgIC8vDQo+Pj4gLSAgQ3B1U3RhdGUgPSAoU01SQU1fU0FWRV9TVEFURV9NQVAN Cj4+PiAqKShVSU5UTikoU01NX0RFRkFVTFRfU01CQVNFICsNCj4+PiBTTVJBTV9TQVZFX1NUQVRF X01BUF9PRkZTRVQpOw0KPj4+ICsgIENwdVN0YXRlID0gKFNNUkFNX1NBVkVfU1RBVEVfTUFQDQo+ Pj4gKikoVUlOVE4pKFNNTV9ERUZBVUxUX1NNQkFTRSArDQo+Pj4gKyBnU21yYW1TdGF0ZU1hcE9m ZnNldCk7DQo+Pj4gICBDcHVTdGF0ZS0+eDg2LlNNQkFTRSA9IChVSU5UMzIpQ3B1SG90UGx1Z0Rh dGEtPlNtQmFzZVtDcHVJbmRleF07DQo+Pj4NCj4+PiAgIC8vDQo+Pj4gQEAgLTYzMCwzICs2NDks MjUgQEAgU21tQ3B1RmVhdHVyZXNBbGxvY2F0ZVBhZ2VUYWJsZU1lbW9yeSAoDQo+Pj4gICByZXR1 cm4gTlVMTDsNCj4+PiB9DQo+Pj4NCj4+PiArDQo+Pj4gKy8qKg0KPj4+ICsgIERldGVybWluZSBp ZiB0aGUgc3RhbmRhcmQgQ1BVIHNpZ25hdHVyZSBpcyAiQXV0aGVudGljQU1EIi4NCj4+PiArDQo+ Pj4gKyAgQHJldHZhbCBUUlVFICBUaGUgQ1BVIHNpZ25hdHVyZSBtYXRjaGVzLg0KPj4+ICsgIEBy ZXR2YWwgRkFMU0UgVGhlIENQVSBzaWduYXR1cmUgZG9lcyBub3QgbWF0Y2guDQo+Pj4gKw0KPj4+ ICsqKi8NCj4+PiArQk9PTEVBTg0KPj4+ICtTbW1TdGFuZGFyZFNpZ25hdHVyZUlzQXV0aGVudGlj QU1EICgNCj4+PiArICBWT0lEDQo+Pj4gKyAgKQ0KPj4+ICt7DQo+Pj4gKyAgVUlOVDMyICBSZWdF Yng7DQo+Pj4gKyAgVUlOVDMyICBSZWdFY3g7DQo+Pj4gKyAgVUlOVDMyICBSZWdFZHg7DQo+Pj4g Kw0KPj4+ICsgIEFzbUNwdWlkIChDUFVJRF9TSUdOQVRVUkUsIE5VTEwsICZSZWdFYngsICZSZWdF Y3gsICZSZWdFZHgpOw0KPj4+ICsgIHJldHVybiAoUmVnRWJ4ID09IENQVUlEX1NJR05BVFVSRV9B VVRIRU5USUNfQU1EX0VCWCAmJg0KPj4+ICsgICAgICAgICAgUmVnRWN4ID09IENQVUlEX1NJR05B VFVSRV9BVVRIRU5USUNfQU1EX0VDWCAmJg0KPj4+ICsgICAgICAgICAgUmVnRWR4ID09IENQVUlE X1NJR05BVFVSRV9BVVRIRU5USUNfQU1EX0VEWCk7DQo+Pj4gK30NCj4+PiBkaWZmIC0tZ2l0IGEv VWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliLmlu Zg0KPj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1 cmVzTGliLmluZg0KPj4+IGluZGV4IDc3OTA4YjAuLjZhMzlkNGIgMTAwNjQ0DQo+Pj4gLS0tIGEv VWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbUNwdUZlYXR1cmVzTGliLmlu Zg0KPj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVG ZWF0dXJlc0xpYi5pbmYNCj4+PiBAQCAtMiw2ICsyLDggQEANCj4+PiAjICBUaGUgQ1BVIHNwZWNp ZmljIHByb2dyYW1taW5nIGZvciBQaVNtbUNwdUR4ZVNtbSBtb2R1bGUuDQo+Pj4gIw0KPj4+ICMg IENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4NCj4+PiArIyAgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3Jh dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gIw0KPj4+ICMgIFRoaXMgcHJvZ3JhbSBhbmQg dGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgICMgIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPj4+ IGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNl bnNlICAjICB3aGljaA0KPj4+IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1 bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4+PiBAQCAtMjQsNiArMjYs NyBAQA0KPj4+DQo+Pj4gW1NvdXJjZXNdDQo+Pj4gICBTbW1DcHVGZWF0dXJlc0xpYi5jDQo+Pj4g KyAgU21tQ29tbW9uLmgNCj4+PiAgIFNtbUNwdUZlYXR1cmVzTGliTm9TdG0uYw0KPj4+DQo+Pj4g W1BhY2thZ2VzXQ0KPj4+IGRpZmYgLS1naXQNCj4+PiBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1D cHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYlN0bS5pbmYNCj4+PiBiL1VlZmlDcHVQa2cv TGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYlN0bS5pbmYNCj4+PiBp bmRleCBkYjhkY2RjLi5hNzZiZWQ2IDEwMDY0NA0KPj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFy eS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1DcHVGZWF0dXJlc0xpYlN0bS5pbmYNCj4+PiArKysgYi9V ZWZpQ3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tQ3B1RmVhdHVyZXNMaWJTdG0u aW5mDQo+Pj4gQEAgLTMsNiArMyw4IEBADQo+Pj4gIyAgaXMgaW5jbHVkZWQuDQo+Pj4gIw0KPj4+ ICMgIENvcHlyaWdodCAoYykgMjAwOSAtIDIwMTYsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln aHRzIHJlc2VydmVkLjxCUj4NCj4+PiArIyAgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jw b3JhdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4gIw0KPj4+ICMgIFRoaXMgcHJvZ3JhbSBh bmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgICMgIGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0K Pj4+IGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBM aWNlbnNlICAjICB3aGljaA0KPj4+IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhl IGZ1bGwgdGV4dCBvZiB0aGUgbGljZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4+PiBAQCAtMjUsNiAr MjcsNyBAQA0KPj4+DQo+Pj4gW1NvdXJjZXNdDQo+Pj4gICBTbW1DcHVGZWF0dXJlc0xpYi5jDQo+ Pj4gKyAgU21tQ29tbW9uLmgNCj4+PiAgIFNtbVN0bS5jDQo+Pj4gICBTbW1TdG0uaA0KPj4+DQo+ Pj4gZGlmZiAtLWdpdCBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9TbW1T dG0uYw0KPj4+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1NtbVN0bS5j DQo+Pj4gaW5kZXggNDUwMTViOC4uNWY3YzNkYiAxMDA2NDQNCj4+PiAtLS0gYS9VZWZpQ3B1UGtn L0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tU3RtLmMNCj4+PiArKysgYi9VZWZpQ3B1UGtn L0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvU21tU3RtLmMNCj4+PiBAQCAtMiw2ICsyLDggQEAN Cj4+PiAgIFNNTSBTVE0gc3VwcG9ydCBmdW5jdGlvbnMNCj4+Pg0KPj4+ICAgQ29weXJpZ2h0IChj KSAyMDE1IC0gMjAxNywgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS Pg0KPj4+ICsgIENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0 cyByZXNlcnZlZC48QlI+DQo+Pj4gKw0KPj4+ICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21w YW55aW5nIG1hdGVyaWFscw0KPj4+ICAgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlIGF2YWlsYWJsZSB1 bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRA0KPj4+IExpY2Vuc2UNCj4+ PiAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBv ZiB0aGUgbGljZW5zZSBtYXkgYmUNCj4+PiBmb3VuZCBhdCBAQCAtMjgsNiArMzAsOCBAQCAgI2lu Y2x1ZGUgPFByb3RvY29sL01wU2VydmljZS5oPg0KPj4+DQo+Pj4gI2luY2x1ZGUgIlNtbVN0bS5o Ig0KPj4+ICsjaW5jbHVkZSAiU21tQ29tbW9uLmgiDQo+Pj4gKw0KPj4+DQo+Pj4gI2RlZmluZSBU WFRfRVZUWVBFX0JBU0UgICAgICAgICAgICAgICAgICAweDQwMA0KPj4+ICNkZWZpbmUgVFhUX0VW VFlQRV9TVE1fSEFTSCAgICAgICAgICAgICAgKFRYVF9FVlRZUEVfQkFTRSArIDE0KQ0KPj4+IEBA IC05Nyw2ICsxMDEsMjAgQEAgZXh0ZXJuIHZvbGF0aWxlIFVJTlQ4DQo+Pj4gZ2NTdG1TbWlIYW5k bGVyVGVtcGxhdGVbXTsNCj4+PiBleHRlcm4gQ09OU1QgVUlOVDE2ICAgICAgICAgICAgICAgICAg ICAgICAgZ2NTdG1TbWlIYW5kbGVyU2l6ZTsNCj4+PiBleHRlcm4gVUlOVDE2ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2NTdG1TbWlIYW5kbGVyT2Zmc2V0Ow0KPj4+IGV4dGVybiBCT09M RUFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnU3RtWGRTdXBwb3J0ZWQ7DQo+Pj4gK2V4 dGVybiBVSU5UMTYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnU3RtR2R0U2l6ZTsNCj4+ PiArZXh0ZXJuIFVJTlQxNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdTdG1HZHRQdHI7 DQo+Pj4gKw0KPj4+ICsvLw0KPj4+ICsvLyBDb25zdGFudHMgcmVsYXRpbmcgdG8gVFhUX1BST0NF U1NPUl9TTU1fREVTQ1JJUFRPUiAvLw0KPj4+ICsjZGVmaW5lIFRYVF9QU0RfR0RUUFRSICAgMHg0 OA0KPj4+ICsjZGVmaW5lIFRYVF9QU0RfR0RUU0laRSAgMHg1MA0KPj4+ICsNCj4+PiArLy8NCj4+ PiArLy8gU2V0IGRlZmF1bHQgdmFsdWUgZm9yIFBTRCBvZmZzZXQgaW4gU01SQU0gLy8gIGZyb20N Cj4+PiArPFJlZ2lzdGVyL1N0bUFwaS5oPiAvLw0KPj4+ICtVSU5UMTYgIGdTdG1Qc2RPZmZzZXQg PSBUWFRfU01NX1BTRF9PRkZTRVQ7DQo+Pj4NCj4+PiAvLw0KPj4+IC8vIFZhcmlhYmxlcyB1c2Vk IGJ5IFNNSSBIYW5kbGVyDQo+Pj4gQEAgLTE0NSw2ICsxNjMsMTkgQEAgU21tQ3B1RmVhdHVyZXNM aWJTdG1Db25zdHJ1Y3RvciAoDQo+Pj4gICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOw0KPj4+ DQo+Pj4gICAvLw0KPj4+ICsgIC8vIE92ZXJyaWRlIFBTRCBvZmZzZXQgZm9yIEFNRA0KPj4+ICsg IC8vDQo+Pj4gKyAgaWYgKFNtbVN0YW5kYXJkU2lnbmF0dXJlSXNBdXRoZW50aWNBTUQgKCkpIHsN Cj4+PiArICAgIGdTdG1Qc2RPZmZzZXQgPSBBTURfU01NX1BTRF9PRkZTRVQ7ICB9DQo+Pj4gKw0K Pj4+ICsgIC8vDQo+Pj4gKyAgLy8gSW5pdGlhbGl6ZSBTVE0gZ2xvYmFsIHZhcmlhYmxlcyBhc3Nv Y2lhdGVkIHdpdGggU01JIEhhbmRsZXIgIC8vDQo+Pj4gKyBnU3RtR2R0U2l6ZSA9IGdTdG1Qc2RP ZmZzZXQgKyBUWFRfUFNEX0dEVFNJWkU7ICBnU3RtR2R0UHRyICA9DQo+Pj4gKyBnU3RtUHNkT2Zm c2V0ICsgVFhUX1BTRF9HRFRQVFI7DQo+Pj4gKw0KPj4+ICsgIC8vDQo+Pj4gICAvLyBMb29rdXAg dGhlIE1QIFNlcnZpY2VzIFByb3RvY29sDQo+Pj4gICAvLw0KPj4+ICAgU3RhdHVzID0gZ0JTLT5M b2NhdGVQcm90b2NvbCAoDQo+Pj4gQEAgLTI3Niw4ICszMDcsOCBAQCBTbW1DcHVGZWF0dXJlc0lu c3RhbGxTbWlIYW5kbGVyICgNCj4+PiAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgICBS ZWdFZHg7DQo+Pj4gICBFRklfUFJPQ0VTU09SX0lORk9STUFUSU9OICAgICAgUHJvY2Vzc29ySW5m bzsNCj4+Pg0KPj4+IC0gIENvcHlNZW0gKChWT0lEICopKChVSU5UTilTbUJhc2UgKyBUWFRfU01N X1BTRF9PRkZTRVQpLA0KPj4+ICZnY1N0bVBzZCwgc2l6ZW9mIChnY1N0bVBzZCkpOw0KPj4+IC0g IFBzZCA9IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICopKFZPSUQgKikoKFVJTlROKVNt QmFzZSArDQo+Pj4gVFhUX1NNTV9QU0RfT0ZGU0VUKTsNCj4+PiArICBDb3B5TWVtICgoVk9JRCAq KSgoVUlOVE4pU21CYXNlICsgZ1N0bVBzZE9mZnNldCksICZnY1N0bVBzZCwNCj4+PiBzaXplb2YN Cj4+PiArIChnY1N0bVBzZCkpOyAgUHNkID0gKFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBUT1Ig KikoVk9JRA0KPj4+ICsgKikoKFVJTlROKVNtQmFzZSArIGdTdG1Qc2RPZmZzZXQpOw0KPj4+ICAg UHNkLT5TbW1HZHRQdHIgPSBHZHRCYXNlOw0KPj4+ICAgUHNkLT5TbW1HZHRTaXplID0gKFVJTlQz MilHZHRTaXplOw0KPj4+DQo+Pj4gQEAgLTQxNiw3ICs0NDcsNyBAQCBTbW1FbmRPZkR4ZUV2ZW50 Tm90aWZ5ICgNCj4+PiAgIH0NCj4+Pg0KPj4+ICAgZm9yIChJbmRleCA9IDA7IEluZGV4IDwgZ1Nt c3QtPk51bWJlck9mQ3B1czsgSW5kZXgrKykgew0KPj4+IC0gICAgUHNkID0gKFRYVF9QUk9DRVNT T1JfU01NX0RFU0NSSVBUT1IgKikoKFVJTlROKWdTbXN0LQ0KPj4+PiBDcHVTYXZlU3RhdGVbSW5k ZXhdIC0gU01SQU1fU0FWRV9TVEFURV9NQVBfT0ZGU0VUICsNCj4+PiBUWFRfU01NX1BTRF9PRkZT RVQpOw0KPj4+ICsgICAgUHNkID0gKFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBUT1INCj4+PiAr ICopKChVSU5UTilnU21zdC0+Q3B1U2F2ZVN0YXRlW0luZGV4XSAtIGdTbXJhbVN0YXRlTWFwT2Zm c2V0ICsNCj4+PiArIGdTdG1Qc2RPZmZzZXQpOw0KPj4+ICAgICBERUJVRyAoKERFQlVHX0lORk8s ICJJbmRleD0lZCAgUHNkPSVwICBSc2RwPSVwXG4iLCBJbmRleCwgUHNkLA0KPj4+IFJzZHApKTsN Cj4+PiAgICAgUHNkLT5BY3BpUnNkcCA9IChVSU5UNjQpKFVJTlROKVJzZHA7DQo+Pj4gICB9DQo+ Pj4gQEAgLTEyNjYsNyArMTI5Nyw3IEBAIE5vdGlmeVN0bVJlc291cmNlQ2hhbmdlICgNCj4+PiAg IFRYVF9QUk9DRVNTT1JfU01NX0RFU0NSSVBUT1IgICpQc2Q7DQo+Pj4NCj4+PiAgIGZvciAoSW5k ZXggPSAwOyBJbmRleCA8IGdTbXN0LT5OdW1iZXJPZkNwdXM7IEluZGV4KyspIHsNCj4+PiAtICAg IFBzZCA9IChUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICopKChVSU5UTilnU21zdC0NCj4+ Pj4gQ3B1U2F2ZVN0YXRlW0luZGV4XSAtIFNNUkFNX1NBVkVfU1RBVEVfTUFQX09GRlNFVCArDQo+ Pj4gVFhUX1NNTV9QU0RfT0ZGU0VUKTsNCj4+PiArICAgIFBzZCA9IChUWFRfUFJPQ0VTU09SX1NN TV9ERVNDUklQVE9SDQo+Pj4gKyAqKSgoVUlOVE4pZ1Ntc3QtPkNwdVNhdmVTdGF0ZVtJbmRleF0g LSBnU21yYW1TdGF0ZU1hcE9mZnNldCArDQo+Pj4gKyBnU3RtUHNkT2Zmc2V0KTsNCj4+PiAgICAg UHNkLT5CaW9zSHdSZXNvdXJjZVJlcXVpcmVtZW50c1B0ciA9IChVSU5UNjQpKFVJTlROKVN0bVJl c291cmNlOw0KPj4+ICAgfQ0KPj4+ICAgcmV0dXJuIDsNCj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5TDQo+Pj4gYi9VZWZp Q3B1UGtnL0xpYnJhcnkvU21tQ3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5LlMNCj4+PiBpbmRl eCAxZjlmOTFjLi41ZjMzODZhIDEwMDY0NA0KPj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9T bW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUw0KPj4+ICsrKyBiL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuUw0KPj4+IEBAIC0xLDYgKzEsOCBA QA0KPj4+ICMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+PiAjDQo+Pj4gIyBDb3B5cmlnaHQgKGMp IDIwMDkgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+Pj4gKyMgQ29weXJpZ2h0IChjKSAyMDE3LCBBTUQgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRz IHJlc2VydmVkLjxCUj4gIw0KPj4+ICMgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5n IG1hdGVyaWFscyAgIyBhcmUgbGljZW5zZWQgYW5kIG1hZGUNCj4+PiBhdmFpbGFibGUgdW5kZXIg dGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBCU0QgTGljZW5zZSAgIyB3aGljaA0KPj4+ IGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLiAgVGhlIGZ1bGwgdGV4dCBvZiB0aGUgbGlj ZW5zZSBtYXkgYmUgZm91bmQgYXQNCj4+PiBAQCAtMjcsNiArMjksOSBAQCBBU01fR0xPQkFMICBB U01fUEZYKGdTdG1TbWlTdGFjaykgIEFTTV9HTE9CQUwNCj4+PiBBU01fUEZYKGdTdG1TbWJhc2Up ICBBU01fR0xPQkFMICBBU01fUEZYKGdTdG1YZFN1cHBvcnRlZCkNCj4+PiBBU01fR0xPQkFMICBB U01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikNCj4+PiArQVNNX0dMT0JBTCAgQVNNX1BGWChnU3Rt UHNkT2Zmc2V0KQ0KPj4+ICtBU01fR0xPQkFMICBBU01fUEZYKGdTdG1HZHRTaXplKQ0KPj4+ICtB U01fR0xPQkFMICBBU01fUEZYKGdTdG1HZHRQdHIpDQo+Pj4NCj4+PiAuZXF1ICAgICAgICAgICAg TVNSX0lBMzJfTUlTQ19FTkFCTEUsIDB4MUEwDQo+Pj4gLmVxdSAgICAgICAgICAgIE1TUl9FRkVS LCAweGMwMDAwMDgwDQo+Pj4gQEAgLTM1LDEyICs0MCwxMyBAQCBBU01fR0xPQkFMICBBU01fUEZY KGdTdG1TbWlIYW5kbGVySWR0cikgICMgICMNCj4+PiBDb25zdGFudHMgcmVsYXRpbmcgdG8gVFhU X1BST0NFU1NPUl9TTU1fREVTQ1JJUFRPUiAgIw0KPj4+IC0uZXF1ICAgICAgICAgICAgRFNDX09G RlNFVCwgMHhmYjAwDQo+Pj4gLS5lcXUgICAgICAgICAgICBEU0NfR0RUUFRSLCAweDQ4DQo+Pj4g LS5lcXUgICAgICAgICAgICBEU0NfR0RUU0laLCAweDUwDQo+Pj4gLS5lcXUgICAgICAgICAgICBE U0NfQ1MsIDB4MTQNCj4+PiAtLmVxdSAgICAgICAgICAgIERTQ19EUywgMHgxNg0KPj4+IC0uZXF1 ICAgICAgICAgICAgRFNDX1NTLCAweDE4DQo+Pj4gKyMgLmVxdSAgICAgICAgICBEU0NfT0ZGU0VU LCAgIDB4ZmIwMA0KPj4+ICsjIC5lcXUgICAgICAgICAgRFNDX0dEVFBUUiwgICAweDQ4DQo+Pj4g KyMgLmVxdSAgICAgICAgICBEU0NfR0RUU0laLCAgIDB4NTANCj4+PiArIw0KPj4+ICsuZXF1ICAg ICAgICAgICAgRFNDX0NTLCAgICAgICAweDE0DQo+Pj4gKy5lcXUgICAgICAgICAgICBEU0NfRFMs ICAgICAgIDB4MTYNCj4+PiArLmVxdSAgICAgICAgICAgIERTQ19TUywgICAgICAgMHgxOA0KPj4+ IC5lcXUgICAgICAgICAgICBEU0NfT1RIRVJTRUcsIDB4MWENCj4+PiAjDQo+Pj4gIyBDb25zdGFu dHMgcmVsYXRpbmcgdG8gQ1BVIFN0YXRlIFNhdmUgQXJlYSBAQCAtNzEsMTIgKzc3LDEyIEBADQo+ Pj4gX1N0bVNtaUVudHJ5UG9pbnQ6DQo+Pj4gICAgICMgZml4IEdEVCBkZXNjcmlwdG9yDQo+Pj4g ICAgICMNCj4+PiAgICAgLmJ5dGUgMHgyZSwweGExICAgICAgICAgICAgICAgICAgICAgIyBtb3Yg YXgsIGNzOltvZmZzZXQxNl0NCj4+PiAtICAgIC53b3JkICAgICAgRFNDX09GRlNFVCArIERTQ19H RFRTSVoNCj4+PiArQVNNX1BGWChnU3RtR2R0U2l6ZSk6IC5zcGFjZSAyICAgICAgICAgICMgLndv cmQgRFNDX09GRlNFVCArIERTQ19HRFRTSVoNCj4+PiAgICAgLmJ5dGUgMHg0OCAgICAgICAgICAg ICAgICAgICAgICAgICAgIyBkZWMgYXgNCj4+PiAgICAgLmJ5dGUgMHgyZQ0KPj4+ICAgICBtb3Zs ICAgICVlYXgsICglcmRpKSAgICAgICAgICAgICAgICAjIG1vdiBjczpbYnhdLCBheA0KPj4+ICAg ICAuYnl0ZSAweDY2LDB4MmUsMHhhMSAgICAgICAgICAgICAgICAjIG1vdiBlYXgsIGNzOltvZmZz ZXQxNl0NCj4+PiAtICAgIC53b3JkICAgICAgRFNDX09GRlNFVCArIERTQ19HRFRQVFINCj4+PiAr QVNNX1BGWChnU3RtR2R0UHRyKTogLnNwYWNlIDIgICAgICAgICAgICMgLndvcmQgRFNDX09GRlNF VCArIERTQ19HRFRQVFINCj4+PiAgICAgLmJ5dGUgMHgyZQ0KPj4+ICAgICBtb3Z3ICAgICVheCwg MiglcmRpKQ0KPj4+ICAgICAuYnl0ZSAweDY2LDB4MmUNCj4+PiBAQCAtMTgzLDcgKzE4OSwxMSBA QCBCYXNlOg0KPj4+IExvbmdNb2RlOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGxv bmcgbW9kZSAoNjQtYml0IGNvZGUpIHN0YXJ0cyBoZXJlDQo+Pj4gICAgIG1vdmFic3EgJEFTTV9Q RlgoZ1N0bVNtaUhhbmRsZXJJZHRyKSwgJXJheA0KPj4+ICAgICBsaWR0ICAgICglcmF4KQ0KPj4+ IC0gICAgbGVhICAgICAoRFNDX09GRlNFVCkoJXJkaSksICVlYngNCj4+PiArDQo+Pj4gKyAgICBt b3ZsICAgICRBU01fUEZYKGdTdG1Qc2RPZmZzZXQpLCAlZWJ4ICAjIGxlYSAgICAgKERTQ19PRkZT RVQpKCVyZGkpLA0KPj4+ICVlYngNCj4+PiArICAgIG1vdnp4dyAgKCVlYngpLCAlcnNpDQo+Pj4g KyAgICBsZWFsICAgICglcmRpLCAlcnNpKSwgJWVieA0KPj4+ICsNCj4+PiAgICAgbW92dyAgICBE U0NfRFMoJXJieCksICVheA0KPj4+ICAgICBtb3ZsICAgICVlYXgsJWRzDQo+Pj4gICAgIG1vdncg ICAgRFNDX09USEVSU0VHKCVyYngpLCAlYXgNCj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9M aWJyYXJ5L1NtbUNwdUZlYXR1cmVzTGliL1g2NC9TbWlFbnRyeS5hc20NCj4+PiBiL1VlZmlDcHVQ a2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtDQo+Pj4gaW5kZXgg YWQ1MWUwNy4uMTA5MTNkZiAxMDA2NDQNCj4+PiAtLS0gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvU21t Q3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5LmFzbQ0KPj4+ICsrKyBiL1VlZmlDcHVQa2cvTGli cmFyeS9TbW1DcHVGZWF0dXJlc0xpYi9YNjQvU21pRW50cnkuYXNtDQo+Pj4gQEAgLTEsNSArMSw3 IEBADQo+Pj4gOy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSA7ICA7DQo+Pj4gQ29weXJpZ2h0IChjKSAy MDA5IC0gMjAxNiwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPg0K Pj4+ICs7IENvcHlyaWdodCAoYykgMjAxNywgQU1EIEluY29ycG9yYXRlZC4gQWxsIHJpZ2h0cyBy ZXNlcnZlZC48QlI+IDsNCj4+PiA7IFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBt YXRlcmlhbHMgIDsgYXJlIGxpY2Vuc2VkIGFuZCBtYWRlDQo+Pj4gYXZhaWxhYmxlIHVuZGVyIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2UgIDsgd2hpY2gNCj4+PiBh Y2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRleHQgb2YgdGhlIGxpY2Vu c2UgbWF5IGJlIGZvdW5kIGF0DQo+Pj4gQEAgLTMyLDYgKzM0LDEwIEBAIEVYVEVSTkRFRiAgIGdT dG1TbWlTdGFjazpEV09SRA0KPj4+IEVYVEVSTkRFRiAgIGdTdG1TbWJhc2U6RFdPUkQNCj4+PiBF WFRFUk5ERUYgICBnU3RtWGRTdXBwb3J0ZWQ6QllURQ0KPj4+IEVYVEVSTkRFRiAgIGdTdG1TbWlI YW5kbGVySWR0cjpGV09SRA0KPj4+ICtFWFRFUk5ERUYgICBnU3RtUHNkT2Zmc2V0OldPUkQNCj4+ PiArRVhURVJOREVGICAgZ1N0bUdkdFNpemU6V09SRA0KPj4+ICtFWFRFUk5ERUYgICBnU3RtR2R0 UHRyOldPUkQNCj4+PiArDQo+Pj4NCj4+PiBNU1JfSUEzMl9NSVNDX0VOQUJMRSAgRVFVICAgICAx QTBoDQo+Pj4gTVNSX0VGRVIgICAgICBFUVUgICAgIDBjMDAwMDA4MGgNCj4+PiBAQCAtNDAsMTMg KzQ2LDE0IEBAIE1TUl9FRkVSX1hEICAgRVFVICAgICAwODAwaA0KPj4+IDsNCj4+PiA7IENvbnN0 YW50cyByZWxhdGluZyB0byBUWFRfUFJPQ0VTU09SX1NNTV9ERVNDUklQVE9SICA7DQo+Pj4gLURT Q19PRkZTRVQgICAgRVFVICAgICAwZmIwMGgNCj4+PiAtRFNDX0dEVFBUUiAgICBFUVUgICAgIDQ4 aA0KPj4+IC1EU0NfR0RUU0laICAgIEVRVSAgICAgNTBoDQo+Pj4gLURTQ19DUyAgICAgICAgRVFV ICAgICAxNGgNCj4+PiAtRFNDX0RTICAgICAgICBFUVUgICAgIDE2aA0KPj4+IC1EU0NfU1MgICAg ICAgIEVRVSAgICAgMThoDQo+Pj4gLURTQ19PVEhFUlNFRyAgRVFVICAgICAxYWgNCj4+PiArOyBE U0NfT0ZGU0VUIEVRVSAgICAgMGZiMDBoDQo+Pj4gKzsgRFNDX0dEVFBUUiBFUVUgICAgIDQ4aA0K Pj4+ICs7IERTQ19HRFRTSVogRVFVICAgICA1MGgNCj4+PiArOw0KPj4+ICtEU0NfQ1MgICAgICAg RVFVICAgICAxNGgNCj4+PiArRFNDX0RTICAgICAgIEVRVSAgICAgMTZoDQo+Pj4gK0RTQ19TUyAg ICAgICBFUVUgICAgIDE4aA0KPj4+ICtEU0NfT1RIRVJTRUcgRVFVICAgICAxYWgNCj4+PiA7DQo+ Pj4gOyBDb25zdGFudHMgcmVsYXRpbmcgdG8gQ1BVIFN0YXRlIFNhdmUgQXJlYSAgOyBAQCAtNzQs MTIgKzgxLDEyIEBADQo+Pj4gX1N0bVNtaUVudHJ5UG9pbnQ6DQo+Pj4gICAgIERXICAgICAgb2Zm c2V0IF9TdG1HZHREZXNjIC0gX1N0bVNtaUVudHJ5UG9pbnQgKyA4MDAwaCAgOyBieCA9IEdkdERl c2MNCj4+PiBvZmZzZXQNCj4+PiA7IGZpeCBHRFQgZGVzY3JpcHRvcg0KPj4+ICAgICBEQiAgICAg IDJlaCwgMGExaCAgICAgICAgICAgICAgICAgICA7IG1vdiBheCwgY3M6W29mZnNldDE2XQ0KPj4+ IC0gICAgRFcgICAgICBEU0NfT0ZGU0VUICsgRFNDX0dEVFNJWg0KPj4+ICtnU3RtR2R0U2l6ZSAg IERXICAgID8gICAgICAgICAgICAgICAgICAgOyBEU0NfT0ZGU0VUICsgRFNDX0dEVFNJWg0KPj4+ ICAgICBEQiAgICAgIDQ4aCAgICAgICAgICAgICAgICAgICAgICAgICA7IGRlYyBheA0KPj4+ICAg ICBEQiAgICAgIDJlaA0KPj4+ICAgICBtb3YgICAgIFtyZGldLCBlYXggICAgICAgICAgICAgICAg ICA7IG1vdiBjczpbYnhdLCBheA0KPj4+ICAgICBEQiAgICAgIDY2aCwgMmVoLCAwYTFoICAgICAg ICAgICAgICA7IG1vdiBlYXgsIGNzOltvZmZzZXQxNl0NCj4+PiAtICAgIERXICAgICAgRFNDX09G RlNFVCArIERTQ19HRFRQVFINCj4+PiArZ1N0bUdkdFB0ciAgICBEVyAgICA/ICAgICAgICAgICAg ICAgICAgIDsgRFNDX09GRlNFVCArIERTQ19HRFRQVFINCj4+PiAgICAgREIgICAgICAyZWgNCj4+ PiAgICAgbW92ICAgICBbcmRpICsgMl0sIGF4ICAgICAgICAgICAgICAgOyBtb3YgY3M6W2J4ICsg Ml0sIGVheA0KPj4+ICAgICBEQiAgICAgIDY2aCwgMmVoDQo+Pj4gQEAgLTE3OCw3ICsxODUsMTAg QEAgQmFzZToNCj4+PiBATG9uZ01vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBs b25nIG1vZGUgKDY0LWJpdCBjb2RlKSBzdGFydHMgaGVyZQ0KPj4+ICAgICBtb3YgICAgIHJheCwg b2Zmc2V0IGdTdG1TbWlIYW5kbGVySWR0cg0KPj4+ICAgICBsaWR0ICAgIGZ3b3JkIHB0ciBbcmF4 XQ0KPj4+IC0gICAgbGVhICAgICBlYngsIFtyZGkgKyBEU0NfT0ZGU0VUXQ0KPj4+ICsNCj4+PiAr ICAgIG1vdnp4ICAgcnNpLCB3b3JkIHB0ciBbZ1N0bVBzZE9mZnNldF0gICA7IGxlYSAgICAgZWJ4 LCBbcmRpICsgRFNDX09GRlNFVF0NCj4+PiArICAgIGxlYSAgICAgZWJ4LCBbcmRpICsgcnNpXSAg ICAgICAgICAgICAgICA7DQo+Pj4gKw0KPj4+ICAgICBtb3YgICAgIGF4LCBbcmJ4ICsgRFNDX0RT XQ0KPj4+ICAgICBtb3YgICAgIGRzLCBlYXgNCj4+PiAgICAgbW92ICAgICBheCwgW3JieCArIERT Q19PVEhFUlNFR10NCj4+PiBkaWZmIC0tZ2l0IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L1NtbUNwdUZl YXR1cmVzTGliL1g2NC9TbWlFbnRyeS5uYXNtDQo+Pj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvU21t Q3B1RmVhdHVyZXNMaWIvWDY0L1NtaUVudHJ5Lm5hc20NCj4+PiBpbmRleCBiY2FjNjQzLi5kZjRj NWEyIDEwMDY0NA0KPj4+IC0tLSBhL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVGZWF0dXJlc0xp Yi9YNjQvU21pRW50cnkubmFzbQ0KPj4+ICsrKyBiL1VlZmlDcHVQa2cvTGlicmFyeS9TbW1DcHVG ZWF0dXJlc0xpYi9YNjQvU21pRW50cnkubmFzbQ0KPj4+IEBAIC0xLDUgKzEsNyBAQA0KPj4+IDst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0gOyAgOw0KPj4+IENvcHlyaWdodCAoYykgMjAxNiAtIDIwMTcs IEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+PiArOyBDb3B5 cmlnaHQgKGMpIDIwMTcsIEFNRCBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJS PiA7DQo+Pj4gOyBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICA7 IGFyZSBsaWNlbnNlZCBhbmQgbWFkZQ0KPj4+IGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5k IGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNlICA7IHdoaWNoDQo+Pj4gYWNjb21wYW5pZXMg dGhpcyBkaXN0cmlidXRpb24uICBUaGUgZnVsbCB0ZXh0IG9mIHRoZSBsaWNlbnNlIG1heSBiZSBm b3VuZCBhdA0KPj4+IEBAIC0yOSwxMyArMzEsMTQgQEAgIDsgIDsgQ29uc3RhbnRzIHJlbGF0aW5n IHRvDQo+Pj4gVFhUX1BST0NFU1NPUl9TTU1fREVTQ1JJUFRPUiAgOyAtJWRlZmluZSBEU0NfT0ZG U0VUIDB4ZmIwMCAtDQo+Pj4gJWRlZmluZSBEU0NfR0RUUFRSIDB4NDggLSVkZWZpbmUgRFNDX0dE VFNJWiAweDUwIC0lZGVmaW5lIERTQ19DUw0KPj4+IDB4MTQgLSVkZWZpbmUgRFNDX0RTIDB4MTYg LSVkZWZpbmUgRFNDX1NTIDB4MTggLSVkZWZpbmUgRFNDX09USEVSU0VHDQo+Pj4gMHgxYQ0KPj4+ ICs7ICVkZWZpbmUgRFNDX09GRlNFVCAgIDB4ZmIwMA0KPj4+ICs7ICVkZWZpbmUgRFNDX0dEVFBU UiAgIDB4NDgNCj4+PiArOyAlZGVmaW5lIERTQ19HRFRTSVogICAweDUwDQo+Pj4gKzsNCj4+PiAr JWRlZmluZSAgIERTQ19DUyAgICAgICAweDE0DQo+Pj4gKyVkZWZpbmUgICBEU0NfRFMgICAgICAg MHgxNg0KPj4+ICslZGVmaW5lICAgRFNDX1NTICAgICAgIDB4MTgNCj4+PiArJWRlZmluZSAgIERT Q19PVEhFUlNFRyAweDFhDQo+Pj4gOw0KPj4+IDsgQ29uc3RhbnRzIHJlbGF0aW5nIHRvIENQVSBT dGF0ZSBTYXZlIEFyZWEgIDsgQEAgLTQ0LDkgKzQ3LDkgQEANCj4+Pg0KPj4+ICVkZWZpbmUgUFJP VEVDVF9NT0RFX0NTIDB4OA0KPj4+ICVkZWZpbmUgUFJPVEVDVF9NT0RFX0RTIDB4MjANCj4+PiAt JWRlZmluZSBMT05HX01PREVfQ1MgMHgzOA0KPj4+IC0lZGVmaW5lIFRTU19TRUdNRU5UIDB4NDAN Cj4+PiAtJWRlZmluZSBHRFRfU0laRSAweDUwDQo+Pj4gKyVkZWZpbmUgTE9OR19NT0RFX0NTICAg IDB4MzgNCj4+PiArJWRlZmluZSBUU1NfU0VHTUVOVCAgICAgMHg0MA0KPj4+ICslZGVmaW5lIEdE VF9TSVpFICAgICAgICAweDUwDQo+Pj4NCj4+PiBleHRlcm4gQVNNX1BGWChTbWlSZW5kZXp2b3Vz KQ0KPj4+IGV4dGVybiBBU01fUEZYKGdTdG1TbWlIYW5kbGVySWR0cikNCj4+PiBAQCAtNjEsNiAr NjQsMTAgQEAgZ2xvYmFsIEFTTV9QRlgoZ2NTdG1TbWlIYW5kbGVyVGVtcGxhdGUpICBnbG9iYWwN Cj4+PiBBU01fUEZYKGdjU3RtU21pSGFuZGxlclNpemUpICBnbG9iYWwgQVNNX1BGWChnY1N0bVNt aUhhbmRsZXJPZmZzZXQpDQo+Pj4NCj4+PiArZXh0ZXJuIEFTTV9QRlgoZ1N0bVBzZE9mZnNldCkN Cj4+PiArZ2xvYmFsIEFTTV9QRlgoZ1N0bUdkdFNpemUpDQo+Pj4gK2dsb2JhbCBBU01fUEZYKGdT dG1HZHRQdHIpDQo+Pj4gKw0KPj4+IEFTTV9QRlgoZ1N0bVNtYmFzZSkgICAgICBFUVUgU3RtU21i YXNlUGF0Y2ggLSA0DQo+Pj4gQVNNX1BGWChnU3RtU21pU3RhY2spICAgIEVRVSBTdG1TbWlTdGFj a1BhdGNoIC0gNA0KPj4+IEFTTV9QRlgoZ1N0bVNtaUNyMykgICAgICBFUVUgU3RtU21pQ3IzUGF0 Y2ggLSA0DQo+Pj4gQEAgLTczLDEwICs4MCwxOCBAQCBCSVRTIDE2DQo+Pj4gQVNNX1BGWChnY1N0 bVNtaUhhbmRsZXJUZW1wbGF0ZSk6DQo+Pj4gX1N0bVNtaUVudHJ5UG9pbnQ6DQo+Pj4gICAgIG1v diAgICAgYngsIF9TdG1HZHREZXNjIC0gX1N0bVNtaUVudHJ5UG9pbnQgKyAweDgwMDANCj4+PiAt ICAgIG1vdiAgICAgYXgsW2NzOkRTQ19PRkZTRVQgKyBEU0NfR0RUU0laXQ0KPj4+ICsNCj4+PiAr ICAgIG1vdiAgICAgZWF4LCBBU01fUEZYKGdTdG1HZHRTaXplKSAgICAgOyBtb3YgICAgIGF4LCBb Y3M6RFNDX09GRlNFVCArDQo+Pj4gRFNDX0dEVFNJWl0NCj4+PiArICAgIG1vdiAgICAgc2ksIFtj czplYXhdICAgICAgICAgICAgICAgICAgOw0KPj4+ICsgICAgbW92ICAgICBheCwgW2NzOnNpXSAg ICAgICAgICAgICAgICAgICA7DQo+Pj4gKw0KPj4+ICAgICBkZWMgICAgIGF4DQo+Pj4gICAgIG1v diAgICAgW2NzOmJ4XSwgYXgNCj4+PiAtICAgIG1vdiAgICAgZWF4LCBbY3M6RFNDX09GRlNFVCAr IERTQ19HRFRQVFJdDQo+Pj4gKw0KPj4+ICsgICAgbW92ICAgICBlYXgsIEFTTV9QRlgoZ1N0bUdk dFB0cikgICAgICA7IG1vdiAgICAgZWF4LCBbY3M6RFNDX09GRlNFVCArDQo+Pj4gRFNDX0dEVFBU Ul0NCj4+PiArICAgIG1vdiAgICAgc2ksIFtjczplYXhdICAgICAgICAgICAgICAgICAgOw0KPj4+ ICsgICAgbW92ICAgICBlYXgsIFtjczpzaV0gICAgICAgICAgICAgICAgICA7DQo+Pj4gKw0KPj4+ ICAgICBtb3YgICAgIFtjczpieCArIDJdLCBlYXgNCj4+PiBvMzIgbGdkdCAgICBbY3M6YnhdICAg ICAgICAgICAgICAgICAgICAgICA7IGxnZHQgZndvcmQgcHRyIGNzOltieF0NCj4+PiAgICAgbW92 ICAgICBheCwgUFJPVEVDVF9NT0RFX0NTDQo+Pj4gQEAgLTE2Niw3ICsxODEsMTAgQEAgQmFzZToN Cj4+PiBATG9uZ01vZGU6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOyBsb25nIG1vZGUg KDY0LWJpdCBjb2RlKSBzdGFydHMgaGVyZQ0KPj4+ICAgICBtb3YgICAgIHJheCwgQVNNX1BGWChn U3RtU21pSGFuZGxlcklkdHIpDQo+Pj4gICAgIGxpZHQgICAgW3JheF0NCj4+PiAtICAgIGxlYSAg ICAgZWJ4LCBbcmRpICsgRFNDX09GRlNFVF0NCj4+PiArDQo+Pj4gKyAgICBtb3Z6eCAgIHJzaSwg d29yZCBbQVNNX1BGWChnU3RtUHNkT2Zmc2V0KV0gIDsgbGVhICAgICBlYngsIFtyZGkgKw0KPj4+ IERTQ19PRkZTRVRdDQo+Pj4gKyAgICBsZWEgICAgIGVieCwgW3JkaSArIHJzaV0gICAgICAgICAg ICAgICAgICAgIDsNCj4+PiArDQo+Pj4gICAgIG1vdiAgICAgYXgsIFtyYnggKyBEU0NfRFNdDQo+ Pj4gICAgIG1vdiAgICAgZHMsIGVheA0KPj4+ICAgICBtb3YgICAgIGF4LCBbcmJ4ICsgRFNDX09U SEVSU0VHXQ0KPj4+IEBAIC0yNjIsNSArMjgwLDggQEAgX1N0bVNtaUhhbmRsZXI6DQo+Pj4gICAg IDsgU1RNIGluaXQgZmluaXNoDQo+Pj4gICAgIGptcCAgICAgQ29tbW9uSGFuZGxlcg0KPj4+DQo+ Pj4gK0FTTV9QRlgoZ1N0bUdkdFNpemUpICAgICAgICAgICA6IFJFU1cgICAgMQ0KPj4+ICtBU01f UEZYKGdTdG1HZHRQdHIpICAgICAgICAgICAgOiBSRVNXICAgIDENCj4+PiArDQo+Pj4gQVNNX1BG WChnY1N0bVNtaUhhbmRsZXJTaXplKSAgIDogRFcgICAgICAkIC0gX1N0bVNtaUVudHJ5UG9pbnQN Cj4+PiBBU01fUEZYKGdjU3RtU21pSGFuZGxlck9mZnNldCkgOiBEVyAgICAgIF9TdG1TbWlIYW5k bGVyIC0NCj4+PiBfU3RtU21pRW50cnlQb2ludA0KPj4+IC0tDQo+Pj4gMi43LjQNCj4+DQoNCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQplZGsyLWRldmVs IG1haWxpbmcgbGlzdA0KZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc8bWFpbHRvOmVkazItZGV2ZWxA bGlzdHMuMDEub3JnPg0KaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsy LWRldmVsDQo=