From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web11.6070.1576204435547789335 for ; Thu, 12 Dec 2019 18:33:55 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: zhichao.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2019 18:33:54 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,308,1571727600"; d="scan'208";a="245970864" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by fmsmga002.fm.intel.com with ESMTP; 12 Dec 2019 18:33:54 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 12 Dec 2019 18:33:54 -0800 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Thu, 12 Dec 2019 18:33:53 -0800 Received: from shsmsx102.ccr.corp.intel.com (10.239.4.154) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Thu, 12 Dec 2019 18:33:53 -0800 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.19]) by shsmsx102.ccr.corp.intel.com ([169.254.2.109]) with mapi id 14.03.0439.000; Fri, 13 Dec 2019 10:33:51 +0800 From: "Gao, Zhichao" To: Philippe Mathieu-Daude , "devel@edk2.groups.io" CC: Antoine Coeur , "Ni, Ray" Subject: Re: [PATCH 68/79] ShellPkg/Application: Fix various typos Thread-Topic: [PATCH 68/79] ShellPkg/Application: Fix various typos Thread-Index: AQHVqfWVZbEZ7QhMLkmBPMe64EtIiae3Z2XQ Date: Fri, 13 Dec 2019 02:33:50 +0000 Message-ID: <3CE959C139B4C44DBEA1810E3AA6F9000B893AA3@SHSMSX101.ccr.corp.intel.com> References: <20191203161602.15969-1-philmd@redhat.com> <20191203161602.15969-69-philmd@redhat.com> In-Reply-To: <20191203161602.15969-69-philmd@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogUGhpbGlwcGUgTWF0aGlldS1EYXVkZSBb bWFpbHRvOnBoaWxtZEByZWRoYXQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIERlY2VtYmVyIDQs IDIwMTkgMTI6MTYgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+IENjOiBBbnRvaW5l IENvZXVyIDxjb2V1ckBnbXguZnI+OyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29tPjsgR2FvLA0K PiBaaGljaGFvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+OyBQaGlsaXBwZSBNYXRoaWV1LURhdWRl DQo+IDxwaGlsbWRAcmVkaGF0LmNvbT4NCj4gU3ViamVjdDogW1BBVENIIDY4Lzc5XSBTaGVsbFBr Zy9BcHBsaWNhdGlvbjogRml4IHZhcmlvdXMgdHlwb3MNCj4gDQo+IEZyb206IEFudG9pbmUgQ29l dXIgPGNvZXVyQGdteC5mcj4NCj4gDQo+IEZpeCB2YXJpb3VzIHR5cG9zIGluIGNvbW1lbnRzIGFu ZCBkb2N1bWVudGF0aW9uLg0KPiANCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4g Q2M6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IFJldmlld2VkLWJ5OiBQ aGlsaXBwZSBNYXRoaWV1LURhdWRlIDxwaGlsbWRAcmVkaGF0LmNvbT4NCj4gU2lnbmVkLW9mZi1i eTogUGhpbGlwcGUgTWF0aGlldS1EYXVkZSA8cGhpbG1kQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAg U2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvQ29uc29sZUxvZ2dlci5oICAgICAgICAgICB8ICA0 ICstLQ0KPiAgU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvRmlsZUhhbmRsZVdyYXBwZXJzLmgg ICAgICB8ICA2ICsrLS0NCj4gIFNoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsLmggICAg ICAgICAgICAgICAgICAgfCAgMiArLQ0KPiAgU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hl bGxFbnZWYXIuaCAgICAgICAgICAgICB8IDM2ICsrKysrKysrKystLS0tLS0tLS0tDQo+ICBTaGVs bFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbE1hblBhcnNlci5oICAgICAgICAgIHwgMTAgKysr LS0tDQo+ICBTaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbFBhcmFtZXRlcnNQcm90b2Nv bC5oIHwgMjAgKysrKystLS0tLS0NCj4gIFNoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxs UHJvdG9jb2wuaCAgICAgICAgICAgfCAxMiArKystLS0tDQo+ICBTaGVsbFBrZy9BcHBsaWNhdGlv bi9TaGVsbC9Db25zb2xlTG9nZ2VyLmMgICAgICAgICAgIHwgMTIgKysrLS0tLQ0KPiAgU2hlbGxQ a2cvQXBwbGljYXRpb24vU2hlbGwvQ29uc29sZVdyYXBwZXJzLmMgICAgICAgICB8ICAyICstDQo+ ICBTaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9GaWxlSGFuZGxlV3JhcHBlcnMuYyAgICAgIHwg IDggKystLS0NCj4gIFNoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsLmMgICAgICAgICAg ICAgICAgICAgfCAgOCArKy0tLQ0KPiAgU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxF bnZWYXIuYyAgICAgICAgICAgICB8ICA4ICsrLS0tDQo+ICBTaGVsbFBrZy9BcHBsaWNhdGlvbi9T aGVsbC9TaGVsbE1hblBhcnNlci5jICAgICAgICAgIHwgMjAgKysrKystLS0tLS0NCj4gIFNoZWxs UGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsUGFyYW1ldGVyc1Byb3RvY29sLmMgfCAyNiArKysr KysrLS0tLS0tLQ0KPiAgU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5j ICAgICAgICAgICB8IDM2ICsrKysrKysrKystLS0tLS0tLS0tDQo+ICBTaGVsbFBrZy9BcHBsaWNh dGlvbi9TaGVsbENUZXN0QXBwL1JFQURNRS50eHQgICAgICAgIHwgIDIgKy0NCj4gIDE2IGZpbGVz IGNoYW5nZWQsIDEwNiBpbnNlcnRpb25zKCspLCAxMDYgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZm IC0tZ2l0IGEvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvQ29uc29sZUxvZ2dlci5oDQo+IGIv U2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvQ29uc29sZUxvZ2dlci5oDQo+IGluZGV4IGMyZDVh OWRjZDRlMC4uMGEwMWJjMmNhMjAxIDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlv bi9TaGVsbC9Db25zb2xlTG9nZ2VyLmgNCj4gKysrIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hl bGwvQ29uc29sZUxvZ2dlci5oDQo+IEBAIC0xMTcsNyArMTE3LDcgQEAgVXBkYXRlRGlzcGxheUZy b21IaXN0b3J5KA0KPiAgICApOw0KPiANCj4gIC8qKg0KPiAtICBSZXNldCB0aGUgdGV4dCBvdXRw dXQgZGV2aWNlIGhhcmR3YXJlIGFuZCBvcHRpb25hbHkgcnVuIGRpYWdub3N0aWNzDQo+ICsgIFJl c2V0IHRoZSB0ZXh0IG91dHB1dCBkZXZpY2UgaGFyZHdhcmUgYW5kIG9wdGlvbmFsbHkgcnVuIGRp YWdub3N0aWNzDQo+IA0KPiAgICBAcGFyYW0gVGhpcyAgICAgICAgICAgICAgICAgUG9pbnRlciB0 byBFRklfU0lNUExFX1RFWFRfT1VUUFVUX1BST1RPQ09MDQo+ICAgIEBwYXJhbSBFeHRlbmRlZFZl cmlmaWNhdGlvbiBJbmRpY2F0ZXMgdGhhdCBhIG1vcmUgZXh0ZW5zaXZlIHRlc3QgbWF5IGJlDQo+ IHBlcmZvcm1lZCBAQCAtMzA1LDcgKzMwNSw3IEBAIENvbnNvbGVMb2dnZXJFbmFibGVDdXJzb3Ig KA0KPiANCj4gICAgQHBhcmFtW2luXSBDb25zb2xlSW5mbyAgVGhlIHBvaW50ZXIgdG8gdGhlIGlu c3RhbmNlIG9mIHRoZSBjb25zb2xlIGxvZ2dlcg0KPiBpbmZvcm1hdGlvbi4NCj4gDQo+IC0gIFRo aXMgd2lsbCBiZSB1c2VkIHdoZW4gYSBtb2RlIGhhcyBjaGFuZ2VkIG9yIGEgcmVzZXQgb2N1cnJl ZCB0byB2ZXJpZnkgYWxsDQo+ICsgIFRoaXMgd2lsbCBiZSB1c2VkIHdoZW4gYSBtb2RlIGhhcyBj aGFuZ2VkIG9yIGEgcmVzZXQgb2NjdXJyZWQgdG8NCj4gKyB2ZXJpZnkgYWxsDQo+ICAgIGhpc3Rv cnkgYnVmZmVycy4NCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiBkaWZmIC0tZ2l0IGEvU2hlbGxQ a2cvQXBwbGljYXRpb24vU2hlbGwvRmlsZUhhbmRsZVdyYXBwZXJzLmgNCj4gYi9TaGVsbFBrZy9B cHBsaWNhdGlvbi9TaGVsbC9GaWxlSGFuZGxlV3JhcHBlcnMuaA0KPiBpbmRleCAzMzk4Mjg1ZDUy ZjguLjVkNThiZmIyZjQ1YyAxMDA2NDQNCj4gLS0tIGEvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hl bGwvRmlsZUhhbmRsZVdyYXBwZXJzLmgNCj4gKysrIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hl bGwvRmlsZUhhbmRsZVdyYXBwZXJzLmgNCj4gQEAgLTIwLDE3ICsyMCwxNyBAQCB0eXBlZGVmIHN0 cnVjdCB7DQo+ICB9IFNIRUxMX0xJTkVfTE9HOw0KPiANCj4gIC8vLw0KPiAtLy8vIEZJTEUgc3l0 bGUgaW50ZXJmYWNlcyBmb3IgU3RkSW4uDQo+ICsvLy8gRklMRSBzdHl0ZSBpbnRlcmZhY2VzIGZv ciBTdGRJbi4NCj4gIC8vLw0KPiAgZXh0ZXJuIEVGSV9GSUxFX1BST1RPQ09MIEZpbGVJbnRlcmZh Y2VTdGRJbjsNCj4gDQo+ICAvLy8NCj4gLS8vLyBGSUxFIHN5dGxlIGludGVyZmFjZXMgZm9yIFN0 ZE91dC4NCj4gKy8vLyBGSUxFIHN0eXRlIGludGVyZmFjZXMgZm9yIFN0ZE91dC4NCj4gIC8vLw0K PiAgZXh0ZXJuIEVGSV9GSUxFX1BST1RPQ09MIEZpbGVJbnRlcmZhY2VTdGRPdXQ7DQo+IA0KPiAg Ly8vDQo+IC0vLy8gRklMRSBzeXRsZSBpbnRlcmZhY2VzIGZvciBTdGRFcnIuDQo+ICsvLy8gRklM RSBzdHl0ZSBpbnRlcmZhY2VzIGZvciBTdGRFcnIuDQo+ICAvLy8NCj4gIGV4dGVybiBFRklfRklM RV9QUk9UT0NPTCBGaWxlSW50ZXJmYWNlU3RkRXJyOw0KPiANCj4gZGlmZiAtLWdpdCBhL1NoZWxs UGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsLmgNCj4gYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9T aGVsbC9TaGVsbC5oDQo+IGluZGV4IDEyMjdhZGMxZWI2My4uZTZlYjE1MGY1N2E1IDEwMDY0NA0K PiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbC5oDQo+ICsrKyBiL1NoZWxs UGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsLmgNCj4gQEAgLTEzNSw3ICsxMzUsNyBAQCB0eXBl ZGVmIHN0cnVjdCB7DQo+ICBleHRlcm4gU0hFTExfSU5GTyBTaGVsbEluZm9PYmplY3Q7DQo+IA0K PiAgLyoqDQo+IC0gIENvbnZlcnRzIHRoZSBjb21tYW5kIGxpbmUgdG8gaXQncyBwb3N0LXByb2Nl c3NlZCBmb3JtLiAgdGhpcyByZXBsYWNlcw0KPiB2YXJpYWJsZXMgYW5kIGFsaWFzJyBwZXIgVUVG SSBTaGVsbCBzcGVjLg0KPiArICBDb252ZXJ0cyB0aGUgY29tbWFuZCBsaW5lIHRvIGl0cyBwb3N0 LXByb2Nlc3NlZCBmb3JtLiAgdGhpcyByZXBsYWNlcw0KPiB2YXJpYWJsZXMgYW5kIGFsaWFzJyBw ZXIgVUVGSSBTaGVsbCBzcGVjLg0KPiANCj4gICAgQHBhcmFtW2luLG91dF0gQ21kTGluZSAgICAg ICAgcG9pbnRlciB0byB0aGUgY29tbWFuZCBsaW5lIHRvIHVwZGF0ZQ0KPiANCj4gZGlmZiAtLWdp dCBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsRW52VmFyLmgNCj4gYi9TaGVsbFBr Zy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbEVudlZhci5oDQo+IGluZGV4IDg1NGE3MWFkOTcwOS4u NmM4NTUyZWU2NDM3IDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9T aGVsbEVudlZhci5oDQo+ICsrKyBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsRW52 VmFyLmgNCj4gQEAgLTQzLDE0ICs0MywxNCBAQCBJc1ZvbGF0aWxlRW52ICgNCj4gICAgKTsNCj4g DQo+ICAvKioNCj4gLSAgRGVsZXRlIGEgTm9uLVZpb2xhdGlsZSBlbnZpcm9ubWVudCB2YXJpYWJs ZS4NCj4gKyAgRGVsZXRlIGEgTm9uLVZvbGF0aWxlIGVudmlyb25tZW50IHZhcmlhYmxlLg0KPiAN Cj4gLSAgVGhpcyB3aWxsIHVzZSB0aGUgUnVudGltZSBTZXJ2aWNlcyBjYWxsIFNldFZhcmlhYmxl IHRvIHJlbW92ZSBhIG5vbi12aW9sYXRpbGUNCj4gdmFyaWFibGUuDQo+ICsgIFRoaXMgd2lsbCB1 c2UgdGhlIFJ1bnRpbWUgU2VydmljZXMgY2FsbCBTZXRWYXJpYWJsZSB0byByZW1vdmUgYSBub24t dm9sYXRpbGUNCj4gdmFyaWFibGUuDQo+IA0KPiAgICBAcGFyYW0gRW52VmFyTmFtZSAgICAgICAg ICAgICBUaGUgbmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgaW4NCj4gcXVlc3Rpb24N Cj4gDQo+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSB2YXJpYWJsZSB3YXMg ZGVsZXRlZCBzdWNlc3NmdWxseQ0KPiAtICBAcmV0dmFsIG90aGVyICAgICAgICAgICAgICAgICBB biBlcnJvciBvY3VycmVkDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSB2 YXJpYWJsZSB3YXMgZGVsZXRlZCBzdWNjZXNzZnVsbHkNCj4gKyAgQHJldHZhbCBvdGhlciAgICAg ICAgICAgICAgICAgQW4gZXJyb3Igb2NjdXJyZWQNCj4gICAgQHNhIFNldFZhcmlhYmxlDQo+ICAq Ki8NCj4gICNkZWZpbmUgU0hFTExfREVMRVRFX0VOVklST05NRU5UX1ZBUklBQkxFKEVudlZhck5h bWUpIFwgQEAgLQ0KPiA2MSwxNiArNjEsMTYgQEAgSXNWb2xhdGlsZUVudiAoDQo+ICAgIE5VTEwp KQ0KPiANCj4gIC8qKg0KPiAtICBTZXQgYSBOb24tVmlvbGF0aWxlIGVudmlyb25tZW50IHZhcmlh YmxlLg0KPiArICBTZXQgYSBOb24tVm9sYXRpbGUgZW52aXJvbm1lbnQgdmFyaWFibGUuDQo+IA0K PiAtICBUaGlzIHdpbGwgdXNlIHRoZSBSdW50aW1lIFNlcnZpY2VzIGNhbGwgU2V0VmFyaWFibGUg dG8gc2V0IGEgbm9uLXZpb2xhdGlsZQ0KPiB2YXJpYWJsZS4NCj4gKyAgVGhpcyB3aWxsIHVzZSB0 aGUgUnVudGltZSBTZXJ2aWNlcyBjYWxsIFNldFZhcmlhYmxlIHRvIHNldCBhIG5vbi12b2xhdGls ZQ0KPiB2YXJpYWJsZS4NCj4gDQo+ICAgIEBwYXJhbSBFbnZWYXJOYW1lICAgICAgICAgICAgIFRo ZSBuYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbg0KPiBxdWVzdGlvbg0KPiAgICBA cGFyYW0gQnVmZmVyU2l6ZSAgICAgICAgICAgICBVSU5UTiBzaXplIG9mIEJ1ZmZlcg0KPiAgICBA cGFyYW0gQnVmZmVyICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIHZhbHVlIHRvIHNldCB2YXJp YWJsZSB0bw0KPiANCj4gLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIHZhcmlh YmxlIHdhcyBjaGFuZ2VkIHN1Y2Vzc2Z1bGx5DQo+IC0gIEByZXR2YWwgb3RoZXIgICAgICAgICAg ICAgICAgIEFuIGVycm9yIG9jdXJyZWQNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAg ICAgVGhlIHZhcmlhYmxlIHdhcyBjaGFuZ2VkIHN1Y2Nlc3NmdWxseQ0KPiArICBAcmV0dmFsIG90 aGVyICAgICAgICAgICAgICAgICBBbiBlcnJvciBvY2N1cnJlZA0KPiAgICBAc2EgU2V0VmFyaWFi bGUNCj4gICoqLw0KPiAgI2RlZmluZQ0KPiBTSEVMTF9TRVRfRU5WSVJPTk1FTlRfVkFSSUFCTEVf TlYoRW52VmFyTmFtZSxCdWZmZXJTaXplLEJ1ZmZlcikNCj4gXCBAQCAtODksOCArODksOCBAQCBJ c1ZvbGF0aWxlRW52ICgNCj4gICAgQHBhcmFtIEJ1ZmZlclNpemUgICAgICAgICAgICAgUG9pbnRl ciB0byB0aGUgVUlOVE4gc2l6ZSBvZiBCdWZmZXINCj4gICAgQHBhcmFtIEJ1ZmZlciAgICAgICAg ICAgICAgICAgUG9pbnRlciBidWZmZXIgdG8gZ2V0IHZhcmlhYmxlIHZhbHVlIGludG8NCj4gDQo+ IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSB2YXJpYWJsZSdzIHZhbHVlIHdh cyByZXRyaWV2ZWQgc3VjZXNzZnVsbHkNCj4gLSAgQHJldHZhbCBvdGhlciAgICAgICAgICAgICAg ICAgQW4gZXJyb3Igb2N1cnJlZA0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBU aGUgdmFyaWFibGUncyB2YWx1ZSB3YXMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseQ0KPiArICBAcmV0 dmFsIG90aGVyICAgICAgICAgICAgICAgICBBbiBlcnJvciBvY2N1cnJlZA0KPiAgICBAc2EgU2V0 VmFyaWFibGUNCj4gICoqLw0KPiAgI2RlZmluZQ0KPiBTSEVMTF9HRVRfRU5WSVJPTk1FTlRfVkFS SUFCTEUoRW52VmFyTmFtZSxCdWZmZXJTaXplLEJ1ZmZlcikgICAgXA0KPiBAQCAtMTEwLDggKzEx MCw4IEBAIElzVm9sYXRpbGVFbnYgKA0KPiAgICBAcGFyYW0gQnVmZmVyU2l6ZSAgICAgICAgICAg ICBQb2ludGVyIHRvIHRoZSBVSU5UTiBzaXplIG9mIEJ1ZmZlcg0KPiAgICBAcGFyYW0gQnVmZmVy ICAgICAgICAgICAgICAgICBQb2ludGVyIGJ1ZmZlciB0byBnZXQgdmFyaWFibGUgdmFsdWUgaW50 bw0KPiANCj4gLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIHZhcmlhYmxlJ3Mg dmFsdWUgd2FzIHJldHJpZXZlZCBzdWNlc3NmdWxseQ0KPiAtICBAcmV0dmFsIG90aGVyICAgICAg ICAgICAgICAgICBBbiBlcnJvciBvY3VycmVkDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAg ICAgICAgIFRoZSB2YXJpYWJsZSdzIHZhbHVlIHdhcyByZXRyaWV2ZWQgc3VjY2Vzc2Z1bGx5DQo+ ICsgIEByZXR2YWwgb3RoZXIgICAgICAgICAgICAgICAgIEFuIGVycm9yIG9jY3VycmVkDQo+ICAg IEBzYSBTZXRWYXJpYWJsZQ0KPiAgKiovDQo+ICAjZGVmaW5lDQo+IFNIRUxMX0dFVF9FTlZJUk9O TUVOVF9WQVJJQUJMRV9BTkRfQVRUUklCVVRFUyhFbnZWYXJOYW1lLEF0dHMNCj4gLEJ1ZmZlclNp emUsQnVmZmVyKSAgICBcDQo+IEBAIC0xMjIsMTYgKzEyMiwxNiBAQCBJc1ZvbGF0aWxlRW52ICgN Cj4gICAgQnVmZmVyKSkNCj4gDQo+ICAvKioNCj4gLSAgU2V0IGEgVmlvbGF0aWxlIGVudmlyb25t ZW50IHZhcmlhYmxlLg0KPiArICBTZXQgYSBWb2xhdGlsZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4N Cj4gDQo+IC0gIFRoaXMgd2lsbCB1c2UgdGhlIFJ1bnRpbWUgU2VydmljZXMgY2FsbCBTZXRWYXJp YWJsZSB0byBzZXQgYSB2aW9sYXRpbGUgdmFyaWFibGUuDQo+ICsgIFRoaXMgd2lsbCB1c2UgdGhl IFJ1bnRpbWUgU2VydmljZXMgY2FsbCBTZXRWYXJpYWJsZSB0byBzZXQgYSB2b2xhdGlsZSB2YXJp YWJsZS4NCj4gDQo+ICAgIEBwYXJhbSBFbnZWYXJOYW1lICAgICAgICAgICAgIFRoZSBuYW1lIG9m IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBpbg0KPiBxdWVzdGlvbg0KPiAgICBAcGFyYW0gQnVm ZmVyU2l6ZSAgICAgICAgICAgICBVSU5UTiBzaXplIG9mIEJ1ZmZlcg0KPiAgICBAcGFyYW0gQnVm ZmVyICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIHZhbHVlIHRvIHNldCB2YXJpYWJsZSB0bw0K PiANCj4gLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIHZhcmlhYmxlIHdhcyBj aGFuZ2VkIHN1Y2Vzc2Z1bGx5DQo+IC0gIEByZXR2YWwgb3RoZXIgICAgICAgICAgICAgICAgIEFu IGVycm9yIG9jdXJyZWQNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIHZh cmlhYmxlIHdhcyBjaGFuZ2VkIHN1Y2Nlc3NmdWxseQ0KPiArICBAcmV0dmFsIG90aGVyICAgICAg ICAgICAgICAgICBBbiBlcnJvciBvY2N1cnJlZA0KPiAgICBAc2EgU2V0VmFyaWFibGUNCj4gICoq Lw0KPiAgI2RlZmluZQ0KPiBTSEVMTF9TRVRfRU5WSVJPTk1FTlRfVkFSSUFCTEVfVihFbnZWYXJO YW1lLEJ1ZmZlclNpemUsQnVmZmVyKSBcDQo+IEBAIC0xNDcsNyArMTQ3LDcgQEAgSXNWb2xhdGls ZUVudiAoDQo+ICAgIEBwYXJhbVtpbiwgb3V0XSBMaXN0ICAgICAgICAgICBUaGUgcG9pbnRlciB0 byBwb2ludGVyIHRvIExJU1RfRU5UUlkgb2JqZWN0IGZvcg0KPiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RvcmluZyB0aGlzIGxpc3QuDQo+IA0KPiAtICBAcmV0dmFsIEVGSV9T VUNDRVNTICAgICAgICAgICB0aGUgbGlzdCB3YXMgY3JlYXRlZCBzdWNlc3NmdWxseS4NCj4gKyAg QHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgdGhlIGxpc3Qgd2FzIGNyZWF0ZWQgc3VjY2Vz c2Z1bGx5Lg0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+ICBHZXRFbnZpcm9ubWVudFZhcmlhYmxl TGlzdCgNCj4gQEAgLTE2NCw3ICsxNjQsNyBAQCBHZXRFbnZpcm9ubWVudFZhcmlhYmxlTGlzdCgN Cj4gICAgQHBhcmFtW2luXSBMaXN0ICAgICAgICAgICAgICAgVGhlIHBvaW50ZXIgdG8gTElTVF9F TlRSWSBmcm9tDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdldFNoZWxsRW52 VmFyTGlzdCgpLg0KPiANCj4gLSAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIGxp c3Qgd2FzIFNldCBzdWNlc3NmdWxseS4NCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAg ICAgVGhlIGxpc3Qgd2FzIFNldCBzdWNjZXNzZnVsbHkuDQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMN Cj4gIFNldEVudmlyb25tZW50VmFyaWFibGVMaXN0KA0KPiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cv QXBwbGljYXRpb24vU2hlbGwvU2hlbGxNYW5QYXJzZXIuaA0KPiBiL1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLmgNCj4gaW5kZXggNmZiYWQzYWFhYWVjLi4wNDAzMWUw MDdmZTkgMTAwNjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsTWFu UGFyc2VyLmgNCj4gKysrIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxNYW5QYXJz ZXIuaA0KPiBAQCAtMTksNyArMTksNyBAQA0KPiAgICBpbmZvcm1hdGlvbiB3aWxsIGJlIHJldHVy bmVkLiBJZiBTZWN0aW9ucyBpcyBOVUxMLCB0aGVuIGFsbCBoZWxwIHRleHQNCj4gaW5mb3JtYXRp b24NCj4gICAgYXZhaWxhYmxlIHdpbGwgYmUgcmV0dXJuZWQuDQo+IA0KPiAtICBpZiBCcmllZkRl c2MgaXMgTlVMTCwgdGhlbiB0aGUgYnJlaWYgZGVzY3JpcHRpb24gd2lsbCBub3QgYmUgc2F2ZWRk IHNlcGVyYXRseSwNCj4gKyAgaWYgQnJpZWZEZXNjIGlzIE5VTEwsIHRoZW4gdGhlIGJyZWlmIGRl c2NyaXB0aW9uIHdpbGwgbm90IGJlIHNhdmVkZA0KPiArIHNlcGFyYXRlbHksDQo+ICAgIGJ1dCBw bGFjZWQgZmlyc3QgaW4gdGhlIG1haW4gSGVscFRleHQuDQo+IA0KPiAgICBAcGFyYW1baW5dIE1h bkZpbGVOYW1lICAgICAgICBQb2ludHMgdG8gdGhlIE5VTEwtdGVybWluYXRlZCBVRUZJIFNoZWxs DQo+IE1BTiBmaWxlIG5hbWUuDQo+IEBAIC00OSwxMSArNDksMTEgQEAgUHJvY2Vzc01hbkZpbGUo DQo+IA0KPiAgLyoqDQo+ICAgIHBhcnNlcyB0aHJvdWdoIHRoZSBNQU4gZmlsZSBzcGVjaWZpZWQg YnkgU0hFTExfRklMRV9IQU5ETEUgYW5kIHJldHVybnMNCj4gdGhlDQo+IC0gIGRldGFpbGVkIGhl bHAgZm9yIGFueSBzdWIgc2VjdGlvbiBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hIHNlcGVyYXRlZCBs aXN0IG9mDQo+ICsgIGRldGFpbGVkIGhlbHAgZm9yIGFueSBzdWIgc2VjdGlvbiBzcGVjaWZpZWQg aW4gdGhlIGNvbW1hIHNlcGFyYXRlZA0KPiArIGxpc3Qgb2YNCj4gICAgc2VjdGlvbnMgcHJvdmlk ZWQuICBJZiB0aGUgZW5kIG9mIHRoZSBmaWxlIG9yIGEgLlRIIHNlY3Rpb24gaXMgZm91bmQgdGhl bg0KPiAgICByZXR1cm4uDQo+IA0KPiAtICBVcG9uIGEgc3VjZXNzZnVsIHJldHVybiB0aGUgY2Fs bGVyIGlzIHJlc3BvbnNpYmxlIHRvIGZyZWUgdGhlIG1lbW9yeSBpbg0KPiAqSGVscFRleHQNCj4g KyAgVXBvbiBhIHN1Y2Nlc3NmdWwgcmV0dXJuIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgdG8g ZnJlZSB0aGUgbWVtb3J5DQo+ICsgaW4gKkhlbHBUZXh0DQo+IA0KPiAgICBAcGFyYW1baW5dIEhh bmRsZSAgICAgICAgICAgICBGaWxlSGFuZGxlIHRvIHJlYWQgZnJvbQ0KPiAgICBAcGFyYW1baW5d IFNlY3Rpb25zICAgICAgICAgICBuYW1lIG9mIGNvbW1hbmQncyBzdWIgc2VjdGlvbnMgdG8gZmlu ZA0KPiBAQCAtNjIsOCArNjIsOCBAQCBQcm9jZXNzTWFuRmlsZSgNCj4gICAgQHBhcmFtW2luXSBB c2NpaSAgICAgICAgICAgICAgVFJVRSBpZiB0aGUgZmlsZSBpcyBBU0NJSSwgRkFMU0Ugb3RoZXJ3 aXNlLg0KPiANCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgYSBtZW1vcnkgYWxs b2NhdGlvbiBmYWlsZWQuDQo+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIHRoZSBz ZWN0aW9uIHdhcyBmb3VuZCBhbmQgaXRzIGRlc2NyaXB0aW9uIHNvdHJlZA0KPiBpbg0KPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBhbGxvY2V0ZWQgYnVmZmVyLg0KPiArICBA cmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICB0aGUgc2VjdGlvbiB3YXMgZm91bmQgYW5kIGl0 cyBkZXNjcmlwdGlvbiBzdG9yZWQNCj4gaW4NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYW4gYWxsb2NhdGVkIGJ1ZmZlci4NCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiAgTWFu RmlsZUZpbmRTZWN0aW9ucygNCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1No ZWxsL1NoZWxsUGFyYW1ldGVyc1Byb3RvY29sLmgNCj4gYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9T aGVsbC9TaGVsbFBhcmFtZXRlcnNQcm90b2NvbC5oDQo+IGluZGV4IGRmMDMxNmEwMzA5MS4uMzk4 MTQ3YzhiZDRjIDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVs bFBhcmFtZXRlcnNQcm90b2NvbC5oDQo+ICsrKyBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxs L1NoZWxsUGFyYW1ldGVyc1Byb3RvY29sLmgNCj4gQEAgLTQzLDcgKzQzLDcgQEAgQ3JlYXRlUG9w dWxhdGVJbnN0YWxsU2hlbGxQYXJhbWV0ZXJzUHJvdG9jb2wgKA0KPiAgICApOw0KPiANCj4gIC8q Kg0KPiAtICBmcmVlcyBhbGwgbWVtb3J5IHVzZWQgYnkgY3JlYXRlaW9uIGFuZCBpbnN0YWxsYXRp b24gb2Ygc2hlbGwgcGFyYW1ldGVycw0KPiBwcm90b2NvbA0KPiArICBmcmVlcyBhbGwgbWVtb3J5 IHVzZWQgYnkgY3JlYXRpb24gYW5kIGluc3RhbGxhdGlvbiBvZiBzaGVsbA0KPiArIHBhcmFtZXRl cnMgcHJvdG9jb2wNCj4gICAgYW5kIGlmIHRoZXJlIHdhcyBhbiBvbGQgdmVyc2lvbiBpbnN0YWxs ZWQgaXQgd2lsbCByZXN0b3JlIHRoYXQgb25lLg0KPiANCj4gICAgQHBhcmFtIE5ld1NoZWxsUGFy YW1ldGVycyB0aGUgaW50ZXJmYWNlIG9mDQo+IEVGSV9TSEVMTF9QQVJBTUVURVJTX1BST1RPQ09M IHRoYXQgaXMgQEAgLTYwLDcgKzYwLDcgQEANCj4gQ2xlYW5VcFNoZWxsUGFyYW1ldGVyc1Byb3Rv Y29sICgNCj4gICAgKTsNCj4gDQo+ICAvKioNCj4gLSAgRnVuY2lvbiB3aWxsIHJlcGxhY2UgdGhl IGN1cnJlbnQgQXJnYyBhbmQgQXJndiBpbiB0aGUgU2hlbGxQYXJhbWV0ZXJzDQo+IHByb3RvY29s DQo+ICsgIEZ1bmN0aW9uIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCBBcmdjIGFuZCBBcmd2IGlu IHRoZQ0KPiArIFNoZWxsUGFyYW1ldGVycyBwcm90b2NvbA0KPiAgICBzdHJ1Y3R1cmUgYnkgcGFy c2luZyBOZXdDb21tYW5kTGluZS4gIFRoZSBjdXJyZW50IHZhbHVlcyBhcmUgcmV0dXJuZWQgdG8N Cj4gdGhlDQo+ICAgIHVzZXIuDQo+IA0KPiBAQCAtNzAsNyArNzAsNyBAQCBDbGVhblVwU2hlbGxQ YXJhbWV0ZXJzUHJvdG9jb2wgKA0KPiAgICBAcGFyYW1bb3V0XSBPbGRBcmd2ICAgICAgICAgICAg ICAgICAgIHBvaW50ZXIgdG8gb2xkIGxpc3Qgb2YgcGFyYW1ldGVycw0KPiAgICBAcGFyYW1bb3V0 XSBPbGRBcmdjICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgdG8gb2xkIG51bWJlciBvZiBpdGVt cyBpbiBBcmd2IGxpc3QNCj4gDQo+IC0gIEByZXR2YWwgICBFRklfU1VDQ0VTUyAgICAgICAgICAg ICAgICAgb3BlcmF0aW9uIHdhcyBzdWNlc3NmdWwsIEFyZ3YgYW5kIEFyZ2MgYXJlDQo+IHZhbGlk DQo+ICsgIEByZXR2YWwgICBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgICAgb3BlcmF0aW9uIHdh cyBzdWNjZXNzZnVsLCBBcmd2IGFuZCBBcmdjIGFyZQ0KPiB2YWxpZA0KPiAgICBAcmV0dmFsICAg RUZJX09VVF9PRl9SRVNPVVJDRVMgICAgICAgIGEgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0K PiAgKiovDQo+ICBFRklfU1RBVFVTDQo+IEBAIC04Myw3ICs4Myw3IEBAIFVwZGF0ZUFyZ2NBcmd2 KA0KPiAgICApOw0KPiANCj4gIC8qKg0KPiAtICBGdW5jaW9uIHdpbGwgcmVwbGFjZSB0aGUgY3Vy cmVudCBBcmdjIGFuZCBBcmd2IGluIHRoZSBTaGVsbFBhcmFtZXRlcnMNCj4gcHJvdG9jb2wNCj4g KyAgRnVuY3Rpb24gd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IEFyZ2MgYW5kIEFyZ3YgaW4gdGhl DQo+ICsgU2hlbGxQYXJhbWV0ZXJzIHByb3RvY29sDQo+ICAgIHN0cnVjdHVyZSB3aXRoIEFyZ3Yg YW5kIEFyZ2MuICBUaGUgY3VycmVudCB2YWx1ZXMgYXJlIGRlLWFsbG9jYXRlZCBhbmQgdGhlDQo+ ICAgIE9sZEFyZ3YgbXVzdCBub3QgYmUgZGVhbGxvY2F0ZWQgYnkgdGhlIGNhbGxlci4NCj4gDQo+ IEBAIC0xMDgsNyArMTA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgfSBTWVNURU1fVEFCTEVf SU5GTzsNCj4gDQo+ICAvKioNCj4gLSAgRnVuY2lvbiB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQg U3RkSW4gYW5kIFN0ZE91dCBpbiB0aGUgU2hlbGxQYXJhbWV0ZXJzDQo+IHByb3RvY29sDQo+ICsg IEZ1bmN0aW9uIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCBTdGRJbiBhbmQgU3RkT3V0IGluIHRo ZQ0KPiArIFNoZWxsUGFyYW1ldGVycyBwcm90b2NvbA0KPiAgICBzdHJ1Y3R1cmUgYnkgcGFyc2lu ZyBOZXdDb21tYW5kTGluZS4gIFRoZSBjdXJyZW50IHZhbHVlcyBhcmUgcmV0dXJuZWQgdG8NCj4g dGhlDQo+ICAgIHVzZXIuDQo+IA0KPiBAQCAtMTIxLDcgKzEyMSw3IEBAIHR5cGVkZWYgc3RydWN0 IHsNCj4gICAgQHBhcmFtW291dF0gT2xkU3RkRXJyICAgICAgICAgICAgICAgICAgUG9pbnRlciB0 byBvbGQgU3RkRXJyLg0KPiAgICBAcGFyYW1bb3V0XSBTeXN0ZW1UYWJsZUluZm8gICAgICAgICAg ICBQb2ludGVyIHRvIG9sZCBzeXN0ZW0gdGFibGUNCj4gaW5mb3JtYXRpb24uDQo+IA0KPiAtICBA cmV0dmFsICAgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICAgIE9wZXJhdGlvbiB3YXMgc3VjZXNz ZnVsLCBBcmd2IGFuZCBBcmdjIGFyZQ0KPiB2YWxpZC4NCj4gKyAgQHJldHZhbCAgIEVGSV9TVUND RVNTICAgICAgICAgICAgICAgICBPcGVyYXRpb24gd2FzIHN1Y2Nlc3NmdWwsIEFyZ3YgYW5kIEFy Z2MgYXJlDQo+IHZhbGlkLg0KPiAgICBAcmV0dmFsICAgRUZJX09VVF9PRl9SRVNPVVJDRVMgICAg ICAgIEEgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+ IEBAIC0xMzUsNyArMTM1LDcgQEAgVXBkYXRlU3RkSW5TdGRPdXRTdGRFcnIoDQo+ICAgICk7DQo+ IA0KPiAgLyoqDQo+IC0gIEZ1bmNpb24gd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IFN0ZEluIGFu ZCBTdGRPdXQgaW4gdGhlIFNoZWxsUGFyYW1ldGVycw0KPiBwcm90b2NvbA0KPiArICBGdW5jdGlv biB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgU3RkSW4gYW5kIFN0ZE91dCBpbiB0aGUNCj4gKyBT aGVsbFBhcmFtZXRlcnMgcHJvdG9jb2wNCj4gICAgc3RydWN0dXJlIHdpdGggU3RkSW4gYW5kIFN0 ZE91dC4gIFRoZSBjdXJyZW50IHZhbHVlcyBhcmUgZGUtYWxsb2NhdGVkLg0KPiANCj4gICAgQHBh cmFtW2luLCBvdXRdIFNoZWxsUGFyYW1ldGVycyAgICAgIFBvaW50ZXIgdG8gcGFyYW1ldGVyIHN0 cnVjdHVyZSB0bw0KPiBtb2RpZnkuDQo+IEBAIC0xNjYsNyArMTY2LDcgQEAgUmVzdG9yZVN0ZElu U3RkT3V0U3RkRXJyICgNCj4gICAgQHBhcmFtW2luLCBvdXRdIEFyZ3YgICAgICAgICAgICBwb2lu dGVyIHRvIGFycmF5IG9mIHN0cmluZ3M7IG9uZSBmb3IgZWFjaA0KPiBwYXJhbWV0ZXINCj4gICAg QHBhcmFtW2luLCBvdXRdIEFyZ2MgICAgICAgICAgICBwb2ludGVyIHRvIG51bWJlciBvZiBzdHJp bmdzIGluIEFyZ3YgYXJyYXkNCj4gDQo+IC0gIEByZXR1cm4gRUZJX1NVQ0NFU1MgICAgICAgICAg IHRoZSBvcGVyYXRpb24gd2FzIHN1Y2Vzc2Z1bA0KPiArICBAcmV0dXJuIEVGSV9TVUNDRVNTICAg ICAgICAgICB0aGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsDQo+ICAgIEByZXR1cm4gRUZJX09V VF9PRl9SRVNPVVJDRVMgIGEgbWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkLg0KPiAgKiovDQo+ICBF RklfU1RBVFVTDQo+IEBAIC0xODgsMTMgKzE4OCwxMyBAQCBQYXJzZUNvbW1hbmRMaW5lVG9Bcmdz KA0KPiAgICBmdW5jdGlvbi4NCj4gDQo+ICAgIEBwYXJhbVtpbiwgb3V0XSBXYWxrZXIgICAgICAg ICAgcG9pbnRlciB0byBzdHJpbmcgb2YgY29tbWFuZCBsaW5lLiAgQWRqdXN0ZWQNCj4gdG8NCj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1pbmFpbmcgY29tbWFuZCBsaW5l IG9uIHJldHVybg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbWFpbmlu ZyBjb21tYW5kIGxpbmUgb24gcmV0dXJuDQo+ICAgIEBwYXJhbVtpbiwgb3V0XSBUZW1wUGFyYW1l dGVyICAgcG9pbnRlciB0byBzdHJpbmcgb2YgY29tbWFuZCBsaW5lIGl0ZW0NCj4gZXh0cmFjdGVk Lg0KPiAgICBAcGFyYW1baW5dICAgICAgTGVuZ3RoICAgICAgICAgIExlbmd0aCBvZiAoKlRlbXBQ YXJhbWV0ZXIpIGluIGJ5dGVzDQo+ICAgIEBwYXJhbVtpbl0gICAgICBTdHJpcFF1b3RhdGlvbiAg aWYgVFJVRSB0aGVuIHN0cmlwIHRoZSBxdW90YXRpb24gbWFya3MNCj4gc3Vycm91bmRpbmcNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcGFyYW1ldGVycy4NCj4gDQo+ IC0gIEByZXR1cm4gICBFRklfSU5BTElEX1BBUkFNRVRFUiAgQSByZXF1aXJlZCBwYXJhbWV0ZXIg d2FzIE5VTEwgb3INCj4gcG9pbnRlZCB0byBhIE5VTEwgb3IgZW1wdHkgc3RyaW5nLg0KPiArICBA cmV0dXJuICAgRUZJX0lOVkFMSURfUEFSQU1FVEVSIEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBO VUxMIG9yDQo+IHBvaW50ZWQgdG8gYSBOVUxMIG9yIGVtcHR5IHN0cmluZy4NCj4gICAgQHJldHVy biAgIEVGSV9OT1RfRk9VTkQgICAgICAgICBBIGNsb3NpbmcgIiBjb3VsZCBub3QgYmUgZm91bmQg b24gdGhlDQo+IHNwZWNpZmllZCBzdHJpbmcNCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiBkaWZm IC0tZ2l0IGEvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5oDQo+IGIv U2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5oDQo+IGluZGV4IGRjZWYx NmU0Mzc0OC4uNDcyZDk4ZGJhMmU3IDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlv bi9TaGVsbC9TaGVsbFByb3RvY29sLmgNCj4gKysrIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hl bGwvU2hlbGxQcm90b2NvbC5oDQo+IEBAIC0yODMsOCArMjgzLDggQEAgRWZpU2hlbGxCYXRjaElz QWN0aXZlICgNCj4gICAgQHBhcmFtIEF0dHJpYnV0ZXMgICAgICAgICAgICAgICB0aGUgRmlsZSBB dHRyaWJ1dGVzIHRvIHVzZSB3aGVuIGNyZWF0aW5nIGEgbmV3DQo+IGZpbGUNCj4gDQo+ICAgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgdGhlIGZpbGUgaXMgb3BlbiBhbmQgRmlsZUhh bmRsZSBpcyB2YWxpZA0KPiAtICBAcmV0dmFsIEVGSV9VTlNVUFBPUlRFRCAgICAgICAgIHRoZSBk ZXZpY2UgcGF0aCBjb3RhaW5lZCBub24tcGF0aA0KPiBlbGVtZW50cw0KPiAtICBAcmV0dmFsIG90 aGVyICAgICAgICAgICAgICAgICAgIGFuIGVycm9yIG9jdXJyZWQuDQo+ICsgIEByZXR2YWwgRUZJ X1VOU1VQUE9SVEVEICAgICAgICAgdGhlIGRldmljZSBwYXRoIGNvbnRhaW5lZCBub24tcGF0aA0K PiBlbGVtZW50cw0KPiArICBAcmV0dmFsIG90aGVyICAgICAgICAgICAgICAgICAgIGFuIGVycm9y IG9jY3VycmVkLg0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+ICBJbnRlcm5hbE9wZW5GaWxlRGV2 aWNlUGF0aCgNCj4gQEAgLTMwOSw3ICszMDksNyBAQCBJbnRlcm5hbE9wZW5GaWxlRGV2aWNlUGF0 aCgNCj4gICAgYWxyZWFkeSBleGlzdHMgYW5kIGlzIG5vbi12b2xhdGlsZSB0aGVuIEVGSV9JTlZB TElEX1BBUkFNRVRFUiBpcw0KPiByZXR1cm5lZC4NCj4gDQo+ICAgIEBwYXJhbSBGaWxlTmFtZSAg ICAgICAgICAgUG9pbnRlciB0byBOVUxMLXRlcm1pbmF0ZWQgZmlsZSBwYXRoDQo+IC0gIEBwYXJh bSBGaWxlQXR0cmlicyAgICAgICAgVGhlIG5ldyBmaWxlJ3MgYXR0cmJpdXRlcy4gIHRoZSBkaWZm ZXJlbnQgYXR0cmlidXRlcw0KPiBhcmUNCj4gKyAgQHBhcmFtIEZpbGVBdHRyaWJzICAgICAgICBU aGUgbmV3IGZpbGUncyBhdHRyaWJ1dGVzLiAgdGhlIGRpZmZlcmVudCBhdHRyaWJ1dGVzDQo+IGFy ZQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlZCBpbiBFRklfRklMRV9Q Uk9UT0NPTC5PcGVuKCkuDQo+ICAgIEBwYXJhbSBGaWxlSGFuZGxlICAgICAgICAgT24gcmV0dXJu LCBwb2ludHMgdG8gdGhlIGNyZWF0ZWQgZmlsZSBoYW5kbGUgb3INCj4gZGlyZWN0b3J5J3MgaGFu ZGxlDQo+IA0KPiBAQCAtNzM0LDcgKzczNCw3IEBAIEVmaVNoZWxsR2V0Q3VyRGlyKA0KPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3RvcnkgaXMgY2hhbmdlZC4NCj4gICAg QHBhcmFtIERpciAgICAgICAgICAgICAgICAgICAgUG9pbnRzIHRvIHRoZSBOVUxMLXRlcm1pbmF0 ZWQgZGlyZWN0b3J5IG9uIHRoZQ0KPiBkZXZpY2Ugc3BlY2lmaWVkIGJ5IEZpbGVTeXN0ZW0uDQo+ IA0KPiAtICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdhcyBz dWNlc3NmdWwNCj4gKyAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICAgICAgVGhlIG9wZXJhdGlv biB3YXMgc3VjY2Vzc2Z1bA0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+ICBFRklBUEkNCj4gQEAg LTgxOCw3ICs4MTgsNyBAQCBFZmlTaGVsbElzUm9vdFNoZWxsKA0KPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBJZiBBbGlhcyBpcyBOVUxMLCBSZXR1cm5lZERhdGEgcG9pbnRzIHRv IGEgJzsnDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGltaXRlZCBsaXN0 IG9mIGFsaWFzIChlLmcuDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJldHVy bmVkRGF0YSA9ICJkaXI7ZGVsO2NvcHk7bWZwIikgdGhhdCBpcyBOVUxMLXRlcm1pbmF0ZWQuDQo+ IC0gIEByZXR2YWwgTlVMTCAgICAgICAgICAgICAgICAgIGFuIGVycm9yIG9jdXJyZWQNCj4gKyAg QHJldHZhbCBOVUxMICAgICAgICAgICAgICAgICAgYW4gZXJyb3Igb2NjdXJyZWQNCj4gICAgQHJl dHZhbCBOVUxMICAgICAgICAgICAgICAgICAgQWxpYXMgd2FzIG5vdCBhIHZhbGlkIEFsaWFzDQo+ ICAqKi8NCj4gIENPTlNUIENIQVIxNiAqDQo+IEBAIC05MTUsNyArOTE1LDcgQEAgSW50ZXJuYWxF ZmlTaGVsbFNldEVudigNCj4gICAgZmVhdHVyZSdzIGVuYWJsZWQgc3RhdGUgd2FzIG5vdCBrbm93 biB3aGVuIHRoZSBzaGVsbCBpbml0aWFsbHkgbGF1bmNoZWQuDQo+IA0KPiAgICBAcmV0dmFsIEVG SV9TVUNDRVNTICAgICAgICAgICBUaGUgZmVhdHVyZSBpcyBlbmFibGVkLg0KPiAtICBAcmV0dmFs IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICBUaGVyZSBpcyBub3QgZW5vdWdoIG1uZW1vcnkNCj4gYXZh aWxhYmxlLg0KPiArICBAcmV0dmFsIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICBUaGVyZSBpcyBub3Qg ZW5vdWdoIG1lbW9yeSBhdmFpbGFibGUuDQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMNCj4gIEluZXJu YWxFZmlTaGVsbFN0YXJ0TW9uaXRvcigNCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL0NvbnNvbGVMb2dnZXIuYw0KPiBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxs L0NvbnNvbGVMb2dnZXIuYw0KPiBpbmRleCA2YzRlMjYyNjU0MDcuLjM2YmEzYWMyMjU0YyAxMDA2 NDQNCj4gLS0tIGEvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGwvQ29uc29sZUxvZ2dlci5jDQo+ ICsrKyBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL0NvbnNvbGVMb2dnZXIuYw0KPiBAQCAt MzEwLDkgKzMxMCw5IEBAIFVwZGF0ZURpc3BsYXlGcm9tSGlzdG9yeSgNCj4gICAgICAgICAgU3Ry aW5nU2VnbWVudCA9ICZTY3JlZW5bQ29sdW1uXTsNCj4gDQo+ICAgICAgICAgIC8vDQo+IC0gICAg ICAgIC8vIEZpbmQgdGhlIGZpcnN0IGNoYXIgd2l0aCBhIGRpZmZlcmVudCBhcnJyaWJ1dGUgYW5k IG1ha2UgdGhhdCB0ZW1wb3JhcmlseQ0KPiBOVUxMDQo+ICsgICAgICAgIC8vIEZpbmQgdGhlIGZp cnN0IGNoYXIgd2l0aCBhIGRpZmZlcmVudCBhdHRyaWJ1dGUgYW5kIG1ha2UgdGhhdA0KPiArIHRl bXBvcmFyaWx5IE5VTEwNCj4gICAgICAgICAgLy8gc28gd2UgY2FuIGRvIGZld2VyIHByaW50b3V0 IHN0YXRlbWVudHMuICAobGF0ZXIpIHJlc3RvcmUgdGhhdCBvbmUgYW5kDQo+IHdlIHdpbGwNCj4g LSAgICAgICAgLy8gc3RhcnQgYXQgdGhhdCBjb2xsdW1uIG9uIHRoZSBuZXh0IGxvb3AuDQo+ICsg ICAgICAgIC8vIHN0YXJ0IGF0IHRoYXQgY29sdW1uIG9uIHRoZSBuZXh0IGxvb3AuDQo+ICAgICAg ICAgIC8vDQo+ICAgICAgICAgIFN0cmluZ1NlZ21lbnRFbmRDaGFyID0gQ0hBUl9OVUxMOw0KPiAg ICAgICAgICBmb3IgKCBTdHJpbmdTZWdtZW50RW5kID0gU3RyaW5nU2VnbWVudCBAQCAtMzk1LDcg KzM5NSw3IEBADQo+IFVwZGF0ZURpc3BsYXlGcm9tSGlzdG9yeSggIH0NCj4gDQo+ICAvKioNCj4g LSAgUmVzZXQgdGhlIHRleHQgb3V0cHV0IGRldmljZSBoYXJkd2FyZSBhbmQgb3B0aW9uYWx5IHJ1 biBkaWFnbm9zdGljcw0KPiArICBSZXNldCB0aGUgdGV4dCBvdXRwdXQgZGV2aWNlIGhhcmR3YXJl IGFuZCBvcHRpb25hbGx5IHJ1biBkaWFnbm9zdGljcw0KPiANCj4gICAgQHBhcmFtICBUaGlzICAg ICAgICAgICAgICAgIHBvaW50ZXIgdG8gRUZJX1NJTVBMRV9URVhUX09VVFBVVF9QUk9UT0NPTA0K PiAgICBAcGFyYW0gRXh0ZW5kZWRWZXJpZmljYXRpb24gSW5kaWNhdGVzIHRoYXQgYSBtb3JlIGV4 dGVuc2l2ZSB0ZXN0IG1heSBiZQ0KPiBwZXJmb3JtZWQgQEAgLTcyMyw3ICs3MjMsNyBAQCBDb25z b2xlTG9nZ2VyUHJpbnRXaXRoUGFnZUJyZWFrKA0KPiAgICAgICAgQ29uc29sZUxvZ2dlck91dHB1 dFN0cmluZ1NwbGl0IChMaW5lU3RhcnQsIENvbnNvbGVJbmZvKTsNCj4gDQo+ICAgICAgICAvLw0K PiAtICAgICAgLy8gcmVzdG9yZSB0aGUgdGVtcCBOVUxMIHRlcm1pbmF0b3IgdG8gaXQncyBvcmln aW5hbCBjaGFyYWN0ZXINCj4gKyAgICAgIC8vIHJlc3RvcmUgdGhlIHRlbXAgTlVMTCB0ZXJtaW5h dG9yIHRvIGl0cyBvcmlnaW5hbCBjaGFyYWN0ZXINCj4gICAgICAgIC8vDQo+ICAgICAgICAqKChD SEFSMTYqKShXYWxrZXIrMSkpID0gVGVtcENoYXI7DQo+IA0KPiBAQCAtNzcwLDcgKzc3MCw3IEBA IENvbnNvbGVMb2dnZXJQcmludFdpdGhQYWdlQnJlYWsoDQo+ICAgICAgICAgIENvbnNvbGVMb2dn ZXJPdXRwdXRTdHJpbmdTcGxpdCAoTGluZVN0YXJ0LCBDb25zb2xlSW5mbyk7DQo+IA0KPiAgICAg ICAgICAvLw0KPiAtICAgICAgICAvLyByZXN0b3JlIHRoZSB0ZW1wIE5VTEwgdGVybWluYXRvciB0 byBpdCdzIG9yaWdpbmFsIGNoYXJhY3Rlcg0KPiArICAgICAgICAvLyByZXN0b3JlIHRoZSB0ZW1w IE5VTEwgdGVybWluYXRvciB0byBpdHMgb3JpZ2luYWwgY2hhcmFjdGVyDQo+ICAgICAgICAgIC8v DQo+ICAgICAgICAgICooKENIQVIxNiopKFdhbGtlcisxKSkgPSBUZW1wQ2hhcjsNCj4gDQo+IEBA IC0xMTg5LDcgKzExODksNyBAQCBDb25zb2xlTG9nZ2VyRW5hYmxlQ3Vyc29yICgNCj4gDQo+ICAg IEBwYXJhbVtpbl0gQ29uc29sZUluZm8gIFRoZSBwb2ludGVyIHRvIHRoZSBpbnN0YW5jZSBvZiB0 aGUgY29uc29sZSBsb2dnZXINCj4gaW5mb3JtYXRpb24uDQo+IA0KPiAtICBUaGlzIHdpbGwgYmUg dXNlZCB3aGVuIGEgbW9kZSBoYXMgY2hhbmdlZCBvciBhIHJlc2V0IG9jdXJyZWQgdG8gdmVyaWZ5 IGFsbA0KPiArICBUaGlzIHdpbGwgYmUgdXNlZCB3aGVuIGEgbW9kZSBoYXMgY2hhbmdlZCBvciBh IHJlc2V0IG9jY3VycmVkIHRvDQo+ICsgdmVyaWZ5IGFsbA0KPiAgICBoaXN0b3J5IGJ1ZmZlcnMu DQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMNCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL0NvbnNvbGVXcmFwcGVycy5jDQo+IGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hl bGwvQ29uc29sZVdyYXBwZXJzLmMNCj4gaW5kZXggYjU3M2I1M2NmNGYzLi5lYzM0MGRlNGUxMjgg MTAwNjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL0NvbnNvbGVXcmFwcGVy cy5jDQo+ICsrKyBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL0NvbnNvbGVXcmFwcGVycy5j DQo+IEBAIC0yMjAsNyArMjIwLDcgQEAgQ2xvc2VTaW1wbGVUZXh0SW5PbkZpbGUoICB9DQo+IA0K PiAgLyoqDQo+IC0gIFJlc2V0IHRoZSB0ZXh0IG91dHB1dCBkZXZpY2UgaGFyZHdhcmUgYW5kIG9w dGlvbmFseSBydW4gZGlhZ25vc3RpY3MuDQo+ICsgIFJlc2V0IHRoZSB0ZXh0IG91dHB1dCBkZXZp Y2UgaGFyZHdhcmUgYW5kIG9wdGlvbmFsbHkgcnVuIGRpYWdub3N0aWNzLg0KPiANCj4gICAgQHBh cmFtICBUaGlzICAgICAgICAgICAgICAgIHBvaW50ZXIgdG8gRUZJX1NJTVBMRV9URVhUX09VVFBV VF9QUk9UT0NPTA0KPiAgICBAcGFyYW0gRXh0ZW5kZWRWZXJpZmljYXRpb24gSW5kaWNhdGVzIHRo YXQgYSBtb3JlIGV4dGVuc2l2ZSB0ZXN0IG1heSBiZQ0KPiBwZXJmb3JtZWQgZGlmZiAtLWdpdCBh L1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL0ZpbGVIYW5kbGVXcmFwcGVycy5jDQo+IGIvU2hl bGxQa2cvQXBwbGljYXRpb24vU2hlbGwvRmlsZUhhbmRsZVdyYXBwZXJzLmMNCj4gaW5kZXggMmQ3 YmQ3YmVjNjdlLi5hNjIyYTc2M2Y4NWUgMTAwNjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL0ZpbGVIYW5kbGVXcmFwcGVycy5jDQo+ICsrKyBiL1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL0ZpbGVIYW5kbGVXcmFwcGVycy5jDQo+IEBAIC01MTcsNyArNTE3LDcgQEAgRmls ZUludGVyZmFjZVN0ZEluUmVhZCgNCj4gICAgZ1NULT5Db25PdXQtPlF1ZXJ5TW9kZSAoZ1NULT5D b25PdXQsIGdTVC0+Q29uT3V0LT5Nb2RlLT5Nb2RlLA0KPiAmVG90YWxDb2x1bW4sICZUb3RhbFJv dyk7DQo+IA0KPiAgICAvLw0KPiAtICAvLyBMaW1pdCB0aGUgbGluZSBsZW5ndGggdG8gdGhlIGJ1 ZmZlciBzaXplIG9yIHRoZSBtaW5pbXVuIHNpemUgb2YgdGhlDQo+ICsgIC8vIExpbWl0IHRoZSBs aW5lIGxlbmd0aCB0byB0aGUgYnVmZmVyIHNpemUgb3IgdGhlIG1pbmltdW0gc2l6ZSBvZg0KPiAr IHRoZQ0KPiAgICAvLyBzY3JlZW4uIChUaGUgc21hbGxlciB0YWtlcyBlZmZlY3QpDQo+ICAgIC8v DQo+ICAgIE1heFN0ciA9IFRvdGFsQ29sdW1uICogKFRvdGFsUm93IC0gMSkgLSBTdGFydENvbHVt bjsgQEAgLTg2NSw3ICs4NjUsNw0KPiBAQCBGaWxlSW50ZXJmYWNlU3RkSW5SZWFkKA0KPiAgICAg ICAgLy8NCj4gICAgICAgIGlmIChLZXkuVW5pY29kZUNoYXIgIT0gQ0hBUl9CQUNLU1BBQ0UgJiYg IShLZXkuVW5pY29kZUNoYXIgPT0gMCAmJg0KPiBLZXkuU2NhbkNvZGUgPT0gU0NBTl9ERUxFVEUp KSB7DQo+ICAgICAgICAgIC8vDQo+IC0gICAgICAgIC8vIENhbHVsYXRlIHJvdyBhbmQgY29sdW1u IG9mIHRoZSB0YWlsIG9mIGN1cnJlbnQgc3RyaW5nDQo+ICsgICAgICAgIC8vIENhbGN1bGF0ZSBy b3cgYW5kIGNvbHVtbiBvZiB0aGUgdGFpbCBvZiBjdXJyZW50IHN0cmluZw0KPiAgICAgICAgICAv Lw0KPiAgICAgICAgICBUYWlsUm93ICAgICA9IFJvdyArIChTdHJpbmdMZW4gLSBTdHJpbmdDdXJQ b3MgKyBDb2x1bW4gKyBPdXRwdXRMZW5ndGgpIC8NCj4gVG90YWxDb2x1bW47DQo+ICAgICAgICAg IFRhaWxDb2x1bW4gID0gKFN0cmluZ0xlbiAtIFN0cmluZ0N1clBvcyArIENvbHVtbiArIE91dHB1 dExlbmd0aCkgJQ0KPiBUb3RhbENvbHVtbjsgQEAgLTkzMiw3ICs5MzIsNyBAQCBGaWxlSW50ZXJm YWNlU3RkSW5SZWFkKCAgfQ0KPiANCj4gIC8vDQo+IC0vLyBGSUxFIHN5dGxlIGludGVyZmFjZXMg Zm9yIFN0ZEluL1N0ZE91dC9TdGRFcnINCj4gKy8vIEZJTEUgc3R5bGUgaW50ZXJmYWNlcyBmb3Ig U3RkSW4vU3RkT3V0L1N0ZEVycg0KPiAgLy8NCj4gIEVGSV9GSUxFX1BST1RPQ09MIEZpbGVJbnRl cmZhY2VTdGRJbiA9IHsNCj4gICAgRUZJX0ZJTEVfUkVWSVNJT04sDQo+IEBAIC0xMDY5LDcgKzEw NjksNyBAQCBGaWxlSW50ZXJmYWNlRW52Q2xvc2UoDQo+ICAgICAgICAgICApIHsNCj4gICAgICAg ICAgKChDSEFSMTYqKU5ld0J1ZmZlcilbVG90YWxTaXplIC8gc2l6ZW9mIChDSEFSMTYpIC0gM10g PSBDSEFSX05VTEw7DQo+ICAgICAgICAgIC8vDQo+IC0gICAgICAgIC8vIElmIHRoZSBOZXdCdWZm ZXIgZW5kIHdpdGggXHJcblwwLCBXZSB3aWxsIHJlcGFjZSAnXHInIGJ5ICdcMCcgYW5kIHRoZW4N Cj4gdXBkYXRlIFRvdGFsU2l6ZS4NCj4gKyAgICAgICAgLy8gSWYgdGhlIE5ld0J1ZmZlciBlbmQg d2l0aCBcclxuXDAsIFdlIHdpbGwgcmVwbGFjZSAnXHInIGJ5ICdcMCcgYW5kIHRoZW4NCj4gdXBk YXRlIFRvdGFsU2l6ZS4NCj4gICAgICAgICAgLy8NCj4gICAgICAgICAgVG90YWxTaXplIC09IHNp emVvZihDSEFSMTYpICogMjsNCj4gICAgICAgIH0NCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0Fw cGxpY2F0aW9uL1NoZWxsL1NoZWxsLmMNCj4gYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9T aGVsbC5jDQo+IGluZGV4IGQxNmFkYWUwZWEzMC4uYTU1NjMwNzA5NzJlIDEwMDY0NA0KPiAtLS0g YS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbC5jDQo+ICsrKyBiL1NoZWxsUGtnL0Fw cGxpY2F0aW9uL1NoZWxsL1NoZWxsLmMNCj4gQEAgLTEwODEsNyArMTA4MSw3IEBAIFByb2Nlc3ND b21tYW5kTGluZSgNCj4gICAgICAgICAgICB9DQo+ICAgICAgICAgIH0NCj4gICAgICAgICAgLy8N Cj4gLSAgICAgICAgLy8gSWYgYW4gYXJndW1uZW50IGNvbnRhaW5zIGEgc3BhY2UsIHRoZW4gYWRk IGRvdWJsZSBxdW90ZXMgYmVmb3JlIHRoZQ0KPiBhcmd1bWVudA0KPiArICAgICAgICAvLyBJZiBh biBhcmd1bWVudCBjb250YWlucyBhIHNwYWNlLCB0aGVuIGFkZCBkb3VibGUgcXVvdGVzDQo+ICsg YmVmb3JlIHRoZSBhcmd1bWVudA0KPiAgICAgICAgICAvLw0KPiAgICAgICAgICBpZiAoU3RyU3Ry IChnRWZpU2hlbGxQYXJhbWV0ZXJzUHJvdG9jb2wtPkFyZ3ZbTG9vcFZhcl0sIEwiICIpICE9IE5V TEwpIHsNCj4gICAgICAgICAgICBTdHJuQ2F0R3JvdygmU2hlbGxJbmZvT2JqZWN0LlNoZWxsSW5p dFNldHRpbmdzLkZpbGVPcHRpb25zLA0KPiBAQCAtMTEwMiw3ICsxMTAyLDcgQEAgUHJvY2Vzc0Nv bW1hbmRMaW5lKA0KPiAgICAgICAgICAgIHJldHVybiAoRUZJX09VVF9PRl9SRVNPVVJDRVMpOw0K PiAgICAgICAgICB9DQo+ICAgICAgICAgIC8vDQo+IC0gICAgICAgIC8vIElmIGFuIGFyZ3VtbmVu dCBjb250YWlucyBhIHNwYWNlLCB0aGVuIGFkZCBkb3VibGUgcXVvdGVzIGFmdGVyIHRoZQ0KPiBh cmd1bWVudA0KPiArICAgICAgICAvLyBJZiBhbiBhcmd1bWVudCBjb250YWlucyBhIHNwYWNlLCB0 aGVuIGFkZCBkb3VibGUgcXVvdGVzDQo+ICsgYWZ0ZXIgdGhlIGFyZ3VtZW50DQo+ICAgICAgICAg IC8vDQo+ICAgICAgICAgIGlmIChTdHJTdHIgKGdFZmlTaGVsbFBhcmFtZXRlcnNQcm90b2NvbC0+ QXJndltMb29wVmFyXSwgTCIgIikgIT0gTlVMTCkgew0KPiAgICAgICAgICAgIFN0cm5DYXRHcm93 KCZTaGVsbEluZm9PYmplY3QuU2hlbGxJbml0U2V0dGluZ3MuRmlsZU9wdGlvbnMsDQo+IEBAIC0x MTc2LDcgKzExNzYsNyBAQCBMb2NhdGVTdGFydHVwU2NyaXB0ICgNCj4gICAgfQ0KPiANCj4gICAg Ly8NCj4gLSAgLy8gVHJ5IHRvIGZpbmQgJ1N0YXJ0dXAubnNoJyBpbiB0aGUgZXhlY3V0aW9uIHBh dGggZGVmaW5lZCBieSB0aGUNCj4gZW52cmlvbm1lbnQgdmFyaWFibGUgUEFUSC4NCj4gKyAgLy8g VHJ5IHRvIGZpbmQgJ1N0YXJ0dXAubnNoJyBpbiB0aGUgZXhlY3V0aW9uIHBhdGggZGVmaW5lZCBi eSB0aGUNCj4gZW52aXJvbm1lbnQgdmFyaWFibGUgUEFUSC4NCj4gICAgLy8NCj4gICAgaWYgKChT dGFydHVwU2NyaXB0UGF0aCA9PSBOVUxMKSB8fCBFRklfRVJST1IgKFNoZWxsSXNGaWxlDQo+IChT dGFydHVwU2NyaXB0UGF0aCkpKSB7DQo+ICAgICAgU0hFTExfRlJFRV9OT05fTlVMTCAoU3RhcnR1 cFNjcmlwdFBhdGgpOyBAQCAtMjI1MSw3ICsyMjUxLDcgQEANCj4gU2V0TGFzdEVycm9yKCAgfQ0K PiANCj4gIC8qKg0KPiAtICBDb252ZXJ0cyB0aGUgY29tbWFuZCBsaW5lIHRvIGl0J3MgcG9zdC1w cm9jZXNzZWQgZm9ybS4gIHRoaXMgcmVwbGFjZXMNCj4gdmFyaWFibGVzIGFuZCBhbGlhcycgcGVy IFVFRkkgU2hlbGwgc3BlYy4NCj4gKyAgQ29udmVydHMgdGhlIGNvbW1hbmQgbGluZSB0byBpdHMg cG9zdC1wcm9jZXNzZWQgZm9ybS4gIHRoaXMgcmVwbGFjZXMNCj4gdmFyaWFibGVzIGFuZCBhbGlh cycgcGVyIFVFRkkgU2hlbGwgc3BlYy4NCj4gDQo+ICAgIEBwYXJhbVtpbixvdXRdIENtZExpbmUg ICAgICAgIHBvaW50ZXIgdG8gdGhlIGNvbW1hbmQgbGluZSB0byB1cGRhdGUNCj4gDQo+IGRpZmYg LS1naXQgYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbEVudlZhci5jDQo+IGIvU2hl bGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxFbnZWYXIuYw0KPiBpbmRleCBkYmViODIxNjk4 NmEuLjA0ZmVkM2JmOTE0MSAxMDA2NDQNCj4gLS0tIGEvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hl bGwvU2hlbGxFbnZWYXIuYw0KPiArKysgYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVs bEVudlZhci5jDQo+IEBAIC0xMTgsNyArMTE4LDcgQEAgRnJlZUVudmlyb25tZW50VmFyaWFibGVM aXN0KA0KPiAgICBAcGFyYW1baW4sIG91dF0gTGlzdEhlYWQgICAgICAgVGhlIHBvaW50ZXIgdG8g cG9pbnRlciB0byBMSVNUIEVOVFJZIG9iamVjdCBmb3INCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0b3JpbmcgdGhpcyBsaXN0Lg0KPiANCj4gLSAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgdGhlIGxpc3Qgd2FzIGNyZWF0ZWQgc3VjZXNzZnVsbHkuDQo+ICsgIEBy ZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIHRoZSBsaXN0IHdhcyBjcmVhdGVkIHN1Y2Nlc3Nm dWxseS4NCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiAgR2V0RW52aXJvbm1lbnRWYXJpYWJsZUxp c3QoDQo+IEBAIC0yMzMsNyArMjMzLDcgQEAgR2V0RW52aXJvbm1lbnRWYXJpYWJsZUxpc3QoDQo+ ICAgIEBwYXJhbVtpbl0gTGlzdEhlYWQgICAgICAgICAgIFRoZSBwb2ludGVyIHRvIExJU1RfRU5U UlkgZnJvbQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHZXRTaGVsbEVudlZh ckxpc3QoKS4NCj4gDQo+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIHRoZSBsaXN0 IHdhcyBTZXQgc3VjZXNzZnVsbHkuDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAg IHRoZSBsaXN0IHdhcyBTZXQgc3VjY2Vzc2Z1bGx5Lg0KPiAgKiovDQo+ICBFRklfU1RBVFVTDQo+ ICBTZXRFbnZpcm9ubWVudFZhcmlhYmxlTGlzdCgNCj4gQEAgLTI2Niw3ICsyNjYsNyBAQCBTZXRF bnZpcm9ubWVudFZhcmlhYmxlTGlzdCgNCj4gICAgRnJlZUVudmlyb25tZW50VmFyaWFibGVMaXN0 KCZWYXJMaXN0LkxpbmspOw0KPiANCj4gICAgLy8NCj4gLSAgLy8gc2V0IGFsbCB0aGUgdmFyaWFi bGVzIGZyb24gdGhlIGxpc3QNCj4gKyAgLy8gc2V0IGFsbCB0aGUgdmFyaWFibGVzIGZyb20gdGhl IGxpc3QNCj4gICAgLy8NCj4gICAgZm9yICggTm9kZSA9IChFTlZfVkFSX0xJU1QqKUdldEZpcnN0 Tm9kZShMaXN0SGVhZCkNCj4gICAgICAgIDsgIUlzTnVsbChMaXN0SGVhZCwgJk5vZGUtPkxpbmsp DQo+IEBAIC00NzksNyArNDc5LDcgQEAgU2hlbGxBZGRFbnZWYXJUb0xpc3QgKA0KPiAgICB9DQo+ IA0KPiAgICAvLw0KPiAtICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFsYmUga2V5IGRvZXNu J3QgZXhpc3QgaW4gbGlzdCBqdXN0IGluc2VydA0KPiArICAvLyBJZiB0aGUgZW52aXJvbm1lbnQg dmFyaWFibGUga2V5IGRvZXNuJ3QgZXhpc3QgaW4gbGlzdCBqdXN0IGluc2VydA0KPiAgICAvLyBh IG5ldyBub2RlLg0KPiAgICAvLw0KPiAgICBMb2NhbEtleSA9IEFsbG9jYXRlQ29weVBvb2wgKFN0 clNpemUoS2V5KSwgS2V5KTsgZGlmZiAtLWdpdA0KPiBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1No ZWxsL1NoZWxsTWFuUGFyc2VyLmMNCj4gYi9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVs bE1hblBhcnNlci5jDQo+IGluZGV4IDRkNWE1NjY4YWExNS4uZDVhODVjYjhjYzNmIDEwMDY0NA0K PiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbC9TaGVsbE1hblBhcnNlci5jDQo+ICsr KyBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsTWFuUGFyc2VyLmMNCj4gQEAgLTE3 OSwxMiArMTc5LDEyIEBAIFNlYXJjaFBhdGhGb3JGaWxlKCAgfQ0KPiANCj4gIC8qKg0KPiAtICBw YXJzZXMgdGhyb3VnaCB0aGUgTUFOIGZpbGUgc3BlY2lmaWVkIGJ5IFNIRUxMX0ZJTEVfSEFORExF IGFuZCByZXR1cm5zDQo+IHRoZQ0KPiAtICBkZXRhaWxlZCBoZWxwIGZvciBhbnkgc3ViIHNlY3Rp b24gc3BlY2lmaWVkIGluIHRoZSBjb21tYSBzZXBlcmF0ZWQgbGlzdCBvZg0KPiArICBQYXJzZXMg dGhyb3VnaCB0aGUgTUFOIGZpbGUgc3BlY2lmaWVkIGJ5IFNIRUxMX0ZJTEVfSEFORExFIGFuZA0K PiArIHJldHVybnMgdGhlICBkZXRhaWxlZCBoZWxwIGZvciBhbnkgc3ViIHNlY3Rpb24gc3BlY2lm aWVkIGluIHRoZSBjb21tYQ0KPiArIHNlcGFyYXRlZCBsaXN0IG9mDQo+ICAgIHNlY3Rpb25zIHBy b3ZpZGVkLiAgSWYgdGhlIGVuZCBvZiB0aGUgZmlsZSBvciBhIC5USCBzZWN0aW9uIGlzIGZvdW5k IHRoZW4NCj4gICAgcmV0dXJuLg0KPiANCj4gLSAgVXBvbiBhIHN1Y2Vzc2Z1bCByZXR1cm4gdGhl IGNhbGxlciBpcyByZXNwb25zaWJsZSB0byBmcmVlIHRoZSBtZW1vcnkgaW4NCj4gKkhlbHBUZXh0 DQo+ICsgIFVwb24gYSBzdWNjZXNzZnVsIHJldHVybiB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxl IHRvIGZyZWUgdGhlIG1lbW9yeQ0KPiArIGluICpIZWxwVGV4dA0KPiANCj4gICAgQHBhcmFtW2lu XSBIYW5kbGUgICAgICAgICAgICAgRmlsZUhhbmRsZSB0byByZWFkIGZyb20NCj4gICAgQHBhcmFt W2luXSBTZWN0aW9ucyAgICAgICAgICAgbmFtZSBvZiBjb21tYW5kJ3Mgc3ViIHNlY3Rpb25zIHRv IGZpbmQNCj4gQEAgLTE5Myw4ICsxOTMsOCBAQCBTZWFyY2hQYXRoRm9yRmlsZSgNCj4gICAgQHBh cmFtW2luXSBBc2NpaSAgICAgICAgICAgICAgVFJVRSBpZiB0aGUgZmlsZSBpcyBBU0NJSSwgRkFM U0Ugb3RoZXJ3aXNlLg0KPiANCj4gICAgQHJldHZhbCBFRklfT1VUX09GX1JFU09VUkNFUyAgYSBt ZW1vcnkgYWxsb2NhdGlvbiBmYWlsZWQuDQo+IC0gIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAg ICAgIHRoZSBzZWN0aW9uIHdhcyBmb3VuZCBhbmQgaXRzIGRlc2NyaXB0aW9uIHNvdHJlZA0KPiBp bg0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbiBhbGxvY2V0ZWQgYnVmZmVy Lg0KPiArICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgICAgICAgICB0aGUgc2VjdGlvbiB3YXMgZm91 bmQgYW5kIGl0cyBkZXNjcmlwdGlvbiBzdG9yZWQNCj4gaW4NCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYW4gYWxsb2NhdGVkIGJ1ZmZlci4NCj4gICoqLw0KPiAgRUZJX1NUQVRV Uw0KPiAgTWFuRmlsZUZpbmRTZWN0aW9ucygNCj4gQEAgLTI5NiwxMSArMjk2LDExIEBAIE1hbkZp bGVGaW5kU2VjdGlvbnMoDQo+ICAvKioNCj4gICAgUGFyc2VzIGEgbGluZSBmcm9tIGEgTUFOIGZp bGUgdG8gc2VlIGlmIGl0IGlzIHRoZSBUaXRsZSBIZWFkZXIuIElmIGl0IGlzLCB0aGVuDQo+ICAg IGlmIHRoZSAiQnJpZWYgRGVzY3JpcHRpb24iIGlzIGRlc2lyZWQsIGFsbG9jYXRlIGEgYnVmZmVy IGZvciBpdCBhbmQgcmV0dXJuIGENCj4gLSAgY29weS4gVXBvbiBhIHN1Y2Vzc2Z1bCByZXR1cm4g dGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSB0byBmcmVlIHRoZSBtZW1vcnkNCj4gaW4NCj4gKyAg Y29weS4gVXBvbiBhIHN1Y2Nlc3NmdWwgcmV0dXJuIHRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUg dG8gZnJlZSB0aGUNCj4gKyBtZW1vcnkgaW4NCj4gICAgKkJyaWVmRGVzYw0KPiANCj4gICAgVXNl cyBhIHNpbXBsZSBzdGF0ZSBtYWNoaW5lIHRoYXQgYWxsb3dzICJ1bmxpbWl0ZWQiIHdoaXRlc3Bh Y2UgYmVmb3JlIGFuZA0KPiBhZnRlciB0aGUNCj4gLSAgIi5USCIsIGNvbXBhcmVzIENvbW1hbmQg YW5kIHRoZSBNQU4gZmlsZSBjb21tbmQgbmFtZSB3aXRob3V0DQo+IHJlc3BlY3QgdG8gY2FzZSwg YW5kDQo+ICsgICIuVEgiLCBjb21wYXJlcyBDb21tYW5kIGFuZCB0aGUgTUFOIGZpbGUgY29tbWFu ZCBuYW1lIHdpdGhvdXQNCj4gcmVzcGVjdA0KPiArIHRvIGNhc2UsIGFuZA0KPiAgICBhbGxvd3Mg InVubGltaXRlZCIgd2hpdGVzcGFjZSBhbmQgJzAnIGFuZCAnMScgY2hhcmFjdGVycyBiZWZvcmUg dGhlIFNob3J0DQo+IERlc2NyaXB0aW9uLg0KPiAgICBUaGUgUENSRSByZWdleCBkZXNjcmliaW5n IHRoaXMgZnVuY3Rpb25hbGl0eSBpczoNCj4gXlxzKlwuVEhccysoXFMpXHNbXHMwMV0qKC4qKSQN Cj4gICAgd2hlcmUgZ3JvdXAgMSBpcyB0aGUgQ29tbWFuZCBOYW1lIGFuZCBncm91cCAyIGlzIHRo ZSBTaG9ydCBEZXNjcmlwdGlvbi4NCj4gQEAgLTQyMSwxMSArNDIxLDExIEBAIElzVGl0bGVIZWFk ZXIoDQo+ICB9DQo+IA0KPiAgLyoqDQo+IC0gIHBhcnNlcyB0aHJvdWdoIHRoZSBNQU4gZmlsZSBz cGVjaWZpZWQgYnkgU0hFTExfRklMRV9IQU5ETEUgYW5kIHJldHVybnMNCj4gdGhlDQo+ICsgIFBh cnNlcyB0aHJvdWdoIHRoZSBNQU4gZmlsZSBzcGVjaWZpZWQgYnkgU0hFTExfRklMRV9IQU5ETEUg YW5kDQo+ICsgcmV0dXJucyB0aGUNCj4gICAgIkJyaWVmIERlc2NyaXB0aW9uIiBmb3IgdGhlIC5U SCBzZWN0aW9uIGFzIHNwZWNpZmllZCBieSBDb21tYW5kLiAgSWYgdGhlDQo+ICAgIGNvbW1hbmQg c2VjdGlvbiBpcyBub3QgZm91bmQgcmV0dXJuIEVGSV9OT1RfRk9VTkQuDQo+IA0KPiAtICBVcG9u IGEgc3VjZXNzZnVsIHJldHVybiB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIHRvIGZyZWUgdGhl IG1lbW9yeSBpbg0KPiAqQnJpZWZEZXNjDQo+ICsgIFVwb24gYSBzdWNjZXNzZnVsIHJldHVybiB0 aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIHRvIGZyZWUgdGhlIG1lbW9yeQ0KPiArIGluICpCcmll ZkRlc2MNCj4gDQo+ICAgIEBwYXJhbVtpbl0gSGFuZGxlICAgICAgICAgICAgICBGaWxlSGFuZGxl IHRvIHJlYWQgZnJvbQ0KPiAgICBAcGFyYW1baW5dIENvbW1hbmQgICAgICAgICAgICAgbmFtZSBv ZiBjb21tYW5kJ3Mgc2VjdGlvbiB0byBmaW5kIGFzIGVudGVyZWQNCj4gb24gdGhlDQo+IEBAIC01 MTIsNyArNTEyLDcgQEAgTWFuRmlsZUZpbmRUaXRsZVNlY3Rpb24oDQo+ICAgIGluZm9ybWF0aW9u IHdpbGwgYmUgcmV0dXJuZWQuIElmIFNlY3Rpb25zIGlzIE5VTEwsIHRoZW4gYWxsIGhlbHAgdGV4 dA0KPiBpbmZvcm1hdGlvbg0KPiAgICBhdmFpbGFibGUgd2lsbCBiZSByZXR1cm5lZC4NCj4gDQo+ IC0gIGlmIEJyaWVmRGVzYyBpcyBOVUxMLCB0aGVuIHRoZSBicmVpZiBkZXNjcmlwdGlvbiB3aWxs IG5vdCBiZSBzYXZlZGQgc2VwZXJhdGx5LA0KPiArICBpZiBCcmllZkRlc2MgaXMgTlVMTCwgdGhl biB0aGUgYnJlaWYgZGVzY3JpcHRpb24gd2lsbCBub3QgYmUgc2F2ZWQNCj4gKyBzZXBhcmF0ZWx5 LA0KPiAgICBidXQgcGxhY2VkIGZpcnN0IGluIHRoZSBtYWluIEhlbHBUZXh0Lg0KPiANCj4gICAg QHBhcmFtW2luXSBNYW5GaWxlTmFtZSAgICAgICAgUG9pbnRzIHRvIHRoZSBOVUxMLXRlcm1pbmF0 ZWQgVUVGSSBTaGVsbA0KPiBNQU4gZmlsZSBuYW1lLg0KPiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cv QXBwbGljYXRpb24vU2hlbGwvU2hlbGxQYXJhbWV0ZXJzUHJvdG9jb2wuYw0KPiBiL1NoZWxsUGtn L0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsUGFyYW1ldGVyc1Byb3RvY29sLmMNCj4gaW5kZXggYmNk OGYwYWUyMTEyLi5lZjM5NjZkM2IwOGYgMTAwNjQ0DQo+IC0tLSBhL1NoZWxsUGtnL0FwcGxpY2F0 aW9uL1NoZWxsL1NoZWxsUGFyYW1ldGVyc1Byb3RvY29sLmMNCj4gKysrIGIvU2hlbGxQa2cvQXBw bGljYXRpb24vU2hlbGwvU2hlbGxQYXJhbWV0ZXJzUHJvdG9jb2wuYw0KPiBAQCAtNjksMTMgKzY5 LDEzIEBAIEZpbmRFbmRPZlBhcmFtZXRlcigNCj4gICAgVGhpcyB3aWxsIGFsc28gcmVtb3ZlIGFs bCByZW1haW5pbmcgXiBjaGFyYWN0ZXJzIGFmdGVyIHByb2Nlc3NpbmcuDQo+IA0KPiAgICBAcGFy YW1baW4sIG91dF0gV2Fsa2VyICAgICAgICAgIHBvaW50ZXIgdG8gc3RyaW5nIG9mIGNvbW1hbmQg bGluZS4gIEFkanVzdGVkDQo+IHRvDQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmVtaW5haW5nIGNvbW1hbmQgbGluZSBvbiByZXR1cm4NCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZW1haW5pbmcgY29tbWFuZCBsaW5lIG9uIHJldHVybg0KPiAgICBA cGFyYW1baW4sIG91dF0gVGVtcFBhcmFtZXRlciAgIHBvaW50ZXIgdG8gc3RyaW5nIG9mIGNvbW1h bmQgbGluZSBpdGVtDQo+IGV4dHJhY3RlZC4NCj4gICAgQHBhcmFtW2luXSAgICAgIExlbmd0aCAg ICAgICAgICBidWZmZXIgc2l6ZSBvZiBUZW1wUGFyYW1ldGVyLg0KPiAgICBAcGFyYW1baW5dICAg ICAgU3RyaXBRdW90YXRpb24gIGlmIFRSVUUgdGhlbiBzdHJpcCB0aGUgcXVvdGF0aW9uIG1hcmtz DQo+IHN1cnJvdW5kaW5nDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl IHBhcmFtZXRlcnMuDQo+IA0KPiAtICBAcmV0dXJuICAgRUZJX0lOQUxJRF9QQVJBTUVURVIgIEEg cmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBOVUxMIG9yDQo+IHBvaW50ZWQgdG8gYSBOVUxMIG9yIGVt cHR5IHN0cmluZy4NCj4gKyAgQHJldHVybiAgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBBIHJlcXVp cmVkIHBhcmFtZXRlciB3YXMgTlVMTCBvcg0KPiBwb2ludGVkIHRvIGEgTlVMTCBvciBlbXB0eSBz dHJpbmcuDQo+ICAgIEByZXR1cm4gICBFRklfTk9UX0ZPVU5EICAgICAgICAgQSBjbG9zaW5nICIg Y291bGQgbm90IGJlIGZvdW5kIG9uIHRoZQ0KPiBzcGVjaWZpZWQgc3RyaW5nDQo+ICAqKi8NCj4g IEVGSV9TVEFUVVMNCj4gQEAgLTEyNiw3ICsxMjYsNyBAQCBERUJVR19DT0RFX0VORCgpOw0KPiAg ICBTdHJuQ3B5UygqVGVtcFBhcmFtZXRlciwgTGVuZ3RoIC8gc2l6ZW9mKENIQVIxNiksICgqV2Fs a2VyKSwNCj4gTmV4dERlbGltIC0gKldhbGtlcik7DQo+IA0KPiAgICAvLw0KPiAtICAvLyBBZGQg YSBDSEFSX05VTEwgaWYgd2UgZGlkbnQgZ2V0IG9uZSB2aWEgdGhlIGNvcHkNCj4gKyAgLy8gQWRk IGEgQ0hBUl9OVUxMIGlmIHdlIGRpZG4ndCBnZXQgb25lIHZpYSB0aGUgY29weQ0KPiAgICAvLw0K PiAgICBpZiAoKk5leHREZWxpbSAhPSBDSEFSX05VTEwpIHsNCj4gICAgICAoKlRlbXBQYXJhbWV0 ZXIpW05leHREZWxpbSAtICpXYWxrZXJdID0gQ0hBUl9OVUxMOyBAQCAtMTg0LDcNCj4gKzE4NCw3 IEBAIERFQlVHX0NPREVfRU5EKCk7DQo+ICAgIEBwYXJhbVtpbiwgb3V0XSBBcmd2ICAgICAgICAg ICAgcG9pbnRlciB0byBhcnJheSBvZiBzdHJpbmdzOyBvbmUgZm9yIGVhY2gNCj4gcGFyYW1ldGVy DQo+ICAgIEBwYXJhbVtpbiwgb3V0XSBBcmdjICAgICAgICAgICAgcG9pbnRlciB0byBudW1iZXIg b2Ygc3RyaW5ncyBpbiBBcmd2IGFycmF5DQo+IA0KPiAtICBAcmV0dXJuIEVGSV9TVUNDRVNTICAg ICAgICAgICB0aGUgb3BlcmF0aW9uIHdhcyBzdWNlc3NmdWwNCj4gKyAgQHJldHVybiBFRklfU1VD Q0VTUyAgICAgICAgICAgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bA0KPiAgICBAcmV0dXJu IEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICBhIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4NCj4gICoq Lw0KPiAgRUZJX1NUQVRVUw0KPiBAQCAtNDE2LDcgKzQxNiw3IEBAIENyZWF0ZVBvcHVsYXRlSW5z dGFsbFNoZWxsUGFyYW1ldGVyc1Byb3RvY29sICggIH0NCj4gDQo+ICAvKioNCj4gLSAgZnJlZXMg YWxsIG1lbW9yeSB1c2VkIGJ5IGNyZWF0ZWlvbiBhbmQgaW5zdGFsbGF0aW9uIG9mIHNoZWxsIHBh cmFtZXRlcnMNCj4gcHJvdG9jb2wNCj4gKyAgZnJlZXMgYWxsIG1lbW9yeSB1c2VkIGJ5IGNyZWF0 aW9uIGFuZCBpbnN0YWxsYXRpb24gb2Ygc2hlbGwNCj4gKyBwYXJhbWV0ZXJzIHByb3RvY29sDQo+ ICAgIGFuZCBpZiB0aGVyZSB3YXMgYW4gb2xkIHZlcnNpb24gaW5zdGFsbGVkIGl0IHdpbGwgcmVz dG9yZSB0aGF0IG9uZS4NCj4gDQo+ICAgIEBwYXJhbSBOZXdTaGVsbFBhcmFtZXRlcnMgdGhlIGlu dGVyZmFjZSBvZg0KPiBFRklfU0hFTExfUEFSQU1FVEVSU19QUk9UT0NPTCB0aGF0IGlzIEBAIC00 NjYsNyArNDY2LDcgQEANCj4gQ2xlYW5VcFNoZWxsUGFyYW1ldGVyc1Byb3RvY29sICggIH0NCj4g DQo+ICAvKioNCj4gLSAgRGV0ZXJtaW4gaWYgYSBmaWxlIG5hbWUgcmVwcmVzZW50cyBhIHVuaWNv ZGUgZmlsZS4NCj4gKyAgRGV0ZXJtaW5lIGlmIGEgZmlsZSBuYW1lIHJlcHJlc2VudHMgYSB1bmlj b2RlIGZpbGUuDQo+IA0KPiAgICBAcGFyYW1baW5dIEZpbGVOYW1lICAgICBQb2ludGVyIHRvIHRo ZSBmaWxlbmFtZSB0byBvcGVuLg0KPiANCj4gQEAgLTUyNiw3ICs1MjYsNyBAQCBTdHJpcFF1b3Rl cyAoDQo+ICB9DQo+IA0KPiAgLyoqDQo+IC0gIENhbGN1YWx0ZSB0aGUgMzItYml0IENSQyBpbiBh IEVGSSB0YWJsZSB1c2luZyB0aGUgc2VydmljZSBwcm92aWRlZCBieSB0aGUNCj4gKyAgQ2FsY3Vs YXRlIHRoZSAzMi1iaXQgQ1JDIGluIGEgRUZJIHRhYmxlIHVzaW5nIHRoZSBzZXJ2aWNlIHByb3Zp ZGVkIGJ5DQo+ICsgdGhlDQo+ICAgIGdSdW50aW1lIHNlcnZpY2UuDQo+IA0KPiAgICBAcGFyYW0g IEhkciAgICAgICAgICAgICAgICAgICAgUG9pbnRlciB0byBhbiBFRkkgc3RhbmRhcmQgaGVhZGVy DQo+IEBAIC02NTEsNyArNjUxLDcgQEAgV3JpdGVGaWxlVGFnICgNCj4gDQo+IA0KPiAgLyoqDQo+ IC0gIEZ1bmNpb24gd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IFN0ZEluIGFuZCBTdGRPdXQgaW4g dGhlIFNoZWxsUGFyYW1ldGVycw0KPiBwcm90b2NvbA0KPiArICBGdW5jdGlvbiB3aWxsIHJlcGxh Y2UgdGhlIGN1cnJlbnQgU3RkSW4gYW5kIFN0ZE91dCBpbiB0aGUNCj4gKyBTaGVsbFBhcmFtZXRl cnMgcHJvdG9jb2wNCj4gICAgc3RydWN0dXJlIGJ5IHBhcnNpbmcgTmV3Q29tbWFuZExpbmUuICBU aGUgY3VycmVudCB2YWx1ZXMgYXJlIHJldHVybmVkIHRvDQo+IHRoZQ0KPiAgICB1c2VyLg0KPiAN Cj4gQEAgLTY2NCw3ICs2NjQsNyBAQCBXcml0ZUZpbGVUYWcgKA0KPiAgICBAcGFyYW1bb3V0XSBP bGRTdGRFcnIgICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIG9sZCBTdGRFcnIuDQo+ICAgIEBw YXJhbVtvdXRdIFN5c3RlbVRhYmxlSW5mbyAgICAgICAgICAgIFBvaW50ZXIgdG8gb2xkIHN5c3Rl bSB0YWJsZQ0KPiBpbmZvcm1hdGlvbi4NCj4gDQo+IC0gIEByZXR2YWwgICBFRklfU1VDQ0VTUyAg ICAgICAgICAgICAgICAgT3BlcmF0aW9uIHdhcyBzdWNlc3NmdWwsIEFyZ3YgYW5kIEFyZ2MgYXJl DQo+IHZhbGlkLg0KPiArICBAcmV0dmFsICAgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgICAgIE9w ZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCwgQXJndiBhbmQgQXJnYyBhcmUNCj4gdmFsaWQuDQo+ICAg IEByZXR2YWwgICBFRklfT1VUX09GX1JFU09VUkNFUyAgICAgICAgQSBtZW1vcnkgYWxsb2NhdGlv biBmYWlsZWQuDQo+ICAqKi8NCj4gIEVGSV9TVEFUVVMNCj4gQEAgLTEyNTcsNyArMTI1Nyw3IEBA IFVwZGF0ZVN0ZEluU3RkT3V0U3RkRXJyKCAgfQ0KPiANCj4gIC8qKg0KPiAtICBGdW5jaW9uIHdp bGwgcmVwbGFjZSB0aGUgY3VycmVudCBTdGRJbiBhbmQgU3RkT3V0IGluIHRoZSBTaGVsbFBhcmFt ZXRlcnMNCj4gcHJvdG9jb2wNCj4gKyAgRnVuY3Rpb24gd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50 IFN0ZEluIGFuZCBTdGRPdXQgaW4gdGhlDQo+ICsgU2hlbGxQYXJhbWV0ZXJzIHByb3RvY29sDQo+ ICAgIHN0cnVjdHVyZSB3aXRoIFN0ZEluIGFuZCBTdGRPdXQuICBUaGUgY3VycmVudCB2YWx1ZXMg YXJlIGRlLWFsbG9jYXRlZC4NCj4gDQo+ICAgIEBwYXJhbVtpbiwgb3V0XSBTaGVsbFBhcmFtZXRl cnMgICAgICBQb2ludGVyIHRvIHBhcmFtZXRlciBzdHJ1Y3R1cmUgdG8NCj4gbW9kaWZ5Lg0KPiBA QCAtMTMyNyw3ICsxMzI3LDcgQEAgUmVzdG9yZVN0ZEluU3RkT3V0U3RkRXJyICgNCj4gICAgcmV0 dXJuIChFRklfU1VDQ0VTUyk7DQo+ICB9DQo+ICAvKioNCj4gLSAgRnVuY2lvbiB3aWxsIHJlcGxh Y2UgdGhlIGN1cnJlbnQgQXJnYyBhbmQgQXJndiBpbiB0aGUgU2hlbGxQYXJhbWV0ZXJzDQo+IHBy b3RvY29sDQo+ICsgIEZ1bmN0aW9uIHdpbGwgcmVwbGFjZSB0aGUgY3VycmVudCBBcmdjIGFuZCBB cmd2IGluIHRoZQ0KPiArIFNoZWxsUGFyYW1ldGVycyBwcm90b2NvbA0KPiAgICBzdHJ1Y3R1cmUg YnkgcGFyc2luZyBOZXdDb21tYW5kTGluZS4gIFRoZSBjdXJyZW50IHZhbHVlcyBhcmUgcmV0dXJu ZWQgdG8NCj4gdGhlDQo+ICAgIHVzZXIuDQo+IA0KPiBAQCAtMTMzOSw3ICsxMzM5LDcgQEAgUmVz dG9yZVN0ZEluU3RkT3V0U3RkRXJyICgNCj4gICAgQHBhcmFtW291dF0gT2xkQXJndiAgICAgICAg ICAgICAgICAgICAgUG9pbnRlciB0byBvbGQgbGlzdCBvZiBwYXJhbWV0ZXJzLg0KPiAgICBAcGFy YW1bb3V0XSBPbGRBcmdjICAgICAgICAgICAgICAgICAgICBQb2ludGVyIHRvIG9sZCBudW1iZXIg b2YgaXRlbXMgaW4gQXJndiBsaXN0Lg0KPiANCj4gLSAgQHJldHZhbCAgIEVGSV9TVUNDRVNTICAg ICAgICAgICAgICAgICBPcGVyYXRpb24gd2FzIHN1Y2Vzc2Z1bCwgQXJndiBhbmQgQXJnYyBhcmUN Cj4gdmFsaWQuDQo+ICsgIEByZXR2YWwgICBFRklfU1VDQ0VTUyAgICAgICAgICAgICAgICAgT3Bl cmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBBcmd2IGFuZCBBcmdjIGFyZQ0KPiB2YWxpZC4NCj4gICAg QHJldHZhbCAgIEVGSV9PVVRfT0ZfUkVTT1VSQ0VTICAgICAgICBBIG1lbW9yeSBhbGxvY2F0aW9u IGZhaWxlZC4NCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiBAQCAtMTM3NSw3ICsxMzc1LDcgQEAg VXBkYXRlQXJnY0FyZ3YoDQo+ICB9DQo+IA0KPiAgLyoqDQo+IC0gIEZ1bmNpb24gd2lsbCByZXBs YWNlIHRoZSBjdXJyZW50IEFyZ2MgYW5kIEFyZ3YgaW4gdGhlIFNoZWxsUGFyYW1ldGVycw0KPiBw cm90b2NvbA0KPiArICBGdW5jdGlvbiB3aWxsIHJlcGxhY2UgdGhlIGN1cnJlbnQgQXJnYyBhbmQg QXJndiBpbiB0aGUNCj4gKyBTaGVsbFBhcmFtZXRlcnMgcHJvdG9jb2wNCj4gICAgc3RydWN0dXJl IHdpdGggQXJndiBhbmQgQXJnYy4gIFRoZSBjdXJyZW50IHZhbHVlcyBhcmUgZGUtYWxsb2NhdGVk IGFuZCB0aGUNCj4gICAgT2xkQXJndiBtdXN0IG5vdCBiZSBkZWFsbG9jYXRlZCBieSB0aGUgY2Fs bGVyLg0KPiANCj4gZGlmZiAtLWdpdCBhL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxs UHJvdG9jb2wuYw0KPiBiL1NoZWxsUGtnL0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsUHJvdG9jb2wu Yw0KPiBpbmRleCA1ZTUyOWI2NTY4YTkuLjlhMjVlNzAzZjYyOCAxMDA2NDQNCj4gLS0tIGEvU2hl bGxQa2cvQXBwbGljYXRpb24vU2hlbGwvU2hlbGxQcm90b2NvbC5jDQo+ICsrKyBiL1NoZWxsUGtn L0FwcGxpY2F0aW9uL1NoZWxsL1NoZWxsUHJvdG9jb2wuYw0KPiBAQCAtOTYsNyArOTYsNyBAQCBJ bnRlcm5hbFNoZWxsUHJvdG9jb2xJc1NpbXBsZUZpbGVTeXN0ZW1QcmVzZW50KA0KPiAgLyoqDQo+ ICAgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG1hcHBpbmcgZm9yIGEgZGV2aWNlIHBhdGguDQo+ IA0KPiAtICBJZiBib3RoIERldmllY1BhdGggYW5kIE1hcHBpbmcgYXJlIE5VTEwsIHRoaXMgd2ls bCByZXNldCB0aGUgbWFwcGluZyB0bw0KPiBkZWZhdWx0IHZhbHVlcy4NCj4gKyAgSWYgYm90aCBE ZXZpY2VQYXRoIGFuZCBNYXBwaW5nIGFyZSBOVUxMLCB0aGlzIHdpbGwgcmVzZXQgdGhlIG1hcHBp bmcgdG8NCj4gZGVmYXVsdCB2YWx1ZXMuDQo+IA0KPiAgICBAcGFyYW0gRGV2aWNlUGF0aCAgICAg ICAgICAgICBQb2ludHMgdG8gdGhlIGRldmljZSBwYXRoLiBJZiB0aGlzIGlzIE5VTEwgYW5kDQo+ IE1hcHBpbmcgcG9pbnRzIHRvIGEgdmFsaWQgbWFwcGluZywNCj4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGhlbiB0aGUgbWFwcGluZyB3aWxsIGJlIGRlbGV0ZWQuDQo+IEBAIC0x NTIsNyArMTUyLDcgQEAgRWZpU2hlbGxTZXRNYXAoDQo+ICAgICAgfSAvLyBmb3IgbG9vcA0KPiAN Cj4gICAgICAvLw0KPiAtICAgIC8vIFdlIGRpZG50IGZpbmQgb25lIHRvIGRlbGV0ZQ0KPiArICAg IC8vIFdlIGRpZG4ndCBmaW5kIG9uZSB0byBkZWxldGUNCj4gICAgICAvLw0KPiAgICAgIHJldHVy biAoRUZJX05PVF9GT1VORCk7DQo+ICAgIH0NCj4gQEAgLTIzMiw3ICsyMzIsNyBAQCBFZmlTaGVs bEdldERldmljZVBhdGhGcm9tTWFwKA0KPiAgICBkZXZpY2UgcGF0aC4gSWYgdGhlcmUgaXMgYW4g ZXhhY3QgbWF0Y2gsIHRoZSBtYXBwaW5nIGlzIHJldHVybmVkIGFuZA0KPiAqRGV2aWNlUGF0aA0K PiAgICBwb2ludHMgdG8gdGhlIGVuZC1vZi1kZXZpY2UtcGF0aCBub2RlLg0KPiANCj4gLSAgSWYg dGhlcmUgYXJlIG11bHRpcGxlIG1hcCBuYW1lcyB0aGV5IHdpbGwgYmUgc2VtaS1jb2xvbiBzZXBl cmF0ZWQgaW4gdGhlDQo+ICsgIElmIHRoZXJlIGFyZSBtdWx0aXBsZSBtYXAgbmFtZXMgdGhleSB3 aWxsIGJlIHNlbWktY29sb24gc2VwYXJhdGVkIGluDQo+ICsgdGhlDQo+ICAgIE5VTEwtdGVybWlu YXRlZCBzdHJpbmcuDQo+IA0KPiAgICBAcGFyYW0gRGV2aWNlUGF0aCAgICAgICAgICAgICBPbiBl bnRyeSwgcG9pbnRzIHRvIGEgZGV2aWNlIHBhdGggcG9pbnRlci4gT24NCj4gQEAgLTkxMCw4ICs5 MTAsOCBAQCBFZmlTaGVsbEJhdGNoSXNBY3RpdmUgKA0KPiAgICBAcGFyYW0gQXR0cmlidXRlcyAg ICAgICAgICAgICAgIHRoZSBGaWxlIEF0dHJpYnV0ZXMgdG8gdXNlIHdoZW4gY3JlYXRpbmcgYSBu ZXcNCj4gZmlsZS4NCj4gDQo+ICAgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgICAgdGhl IGZpbGUgaXMgb3BlbiBhbmQgRmlsZUhhbmRsZSBpcyB2YWxpZA0KPiAtICBAcmV0dmFsIEVGSV9V TlNVUFBPUlRFRCAgICAgICAgIHRoZSBkZXZpY2UgcGF0aCBjb3RhaW5lZCBub24tcGF0aA0KPiBl bGVtZW50cw0KPiAtICBAcmV0dmFsIG90aGVyICAgICAgICAgICAgICAgICAgIGFuIGVycm9yIG9j dXJyZWQuDQo+ICsgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICAgdGhlIGRldmljZSBw YXRoIGNvbnRhaW5lZCBub24tcGF0aA0KPiBlbGVtZW50cw0KPiArICBAcmV0dmFsIG90aGVyICAg ICAgICAgICAgICAgICAgIGFuIGVycm9yIG9jY3VycmVkLg0KPiAgKiovDQo+ICBFRklfU1RBVFVT DQo+ICBJbnRlcm5hbE9wZW5GaWxlRGV2aWNlUGF0aCgNCj4gQEAgLTk0Niw3ICs5NDYsNyBAQCBJ bnRlcm5hbE9wZW5GaWxlRGV2aWNlUGF0aCgNCj4gICAgICBIYW5kbGUxID0gQ29udmVydFNoZWxs SGFuZGxlVG9FZmlGaWxlUHJvdG9jb2woU2hlbGxIYW5kbGUpOw0KPiAgICAgIGlmIChIYW5kbGUx ICE9IE5VTEwpIHsNCj4gICAgICAgIC8vDQo+IC0gICAgICAvLyBjaG9wIG9mZiB0aGUgYmVnaW5p bmcgcGFydCBiZWZvcmUgdGhlIGZpbGUgc3lzdGVtIHBhcnQuLi4NCj4gKyAgICAgIC8vIGNob3Ag b2ZmIHRoZSBiZWdpbm5pbmcgcGFydCBiZWZvcmUgdGhlIGZpbGUgc3lzdGVtIHBhcnQuLi4NCj4g ICAgICAgIC8vDQo+ICAgICAgICAvLy9AdG9kbyBCbG9ja0lvPw0KPiAgICAgICAgU3RhdHVzID0g Z0JTLT5Mb2NhdGVEZXZpY2VQYXRoKCZnRWZpU2ltcGxlRmlsZVN5c3RlbVByb3RvY29sR3VpZCwN Cj4gQEAgLTEwNjQsMTQgKzEwNjQsMTQgQEAgSW50ZXJuYWxPcGVuRmlsZURldmljZVBhdGgoDQo+ ICAgIGFscmVhZHkgZXhpc3RzIGFuZCBpcyBub24tdm9sYXRpbGUgdGhlbiBFRklfSU5WQUxJRF9Q QVJBTUVURVIgaXMNCj4gcmV0dXJuZWQuDQo+IA0KPiAgICBAcGFyYW0gRmlsZU5hbWUgICAgICAg ICAgIFBvaW50ZXIgdG8gTlVMTC10ZXJtaW5hdGVkIGZpbGUgcGF0aA0KPiAtICBAcGFyYW0gRmls ZUF0dHJpYnMgICAgICAgIFRoZSBuZXcgZmlsZSdzIGF0dHJiaXV0ZXMuICB0aGUgZGlmZmVyZW50 IGF0dHJpYnV0ZXMNCj4gYXJlDQo+ICsgIEBwYXJhbSBGaWxlQXR0cmlicyAgICAgICAgVGhlIG5l dyBmaWxlJ3MgYXR0cmlidXRlcy4gIHRoZSBkaWZmZXJlbnQgYXR0cmlidXRlcw0KPiBhcmUNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjcmliZWQgaW4gRUZJX0ZJTEVfUFJPVE9D T0wuT3BlbigpLg0KPiAgICBAcGFyYW0gRmlsZUhhbmRsZSAgICAgICAgIE9uIHJldHVybiwgcG9p bnRzIHRvIHRoZSBjcmVhdGVkIGZpbGUgaGFuZGxlIG9yDQo+IGRpcmVjdG9yeSdzIGhhbmRsZQ0K PiANCj4gICAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAgICBUaGUgZmlsZSB3YXMgb3BlbmVkLiAg RmlsZUhhbmRsZSBwb2ludHMgdG8gdGhlIG5ldw0KPiBmaWxlJ3MgaGFuZGxlLg0KPiAgICBAcmV0 dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBPbmUgb2YgdGhlIHBhcmFtZXRlcnMgaGFzIGFuIGlu dmFsaWQNCj4gdmFsdWUuDQo+ICAgIEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgY291bGQgbm90 IG9wZW4gdGhlIGZpbGUgcGF0aA0KPiAtICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgIHRoZSBz cGVjaWZpZWQgZmlsZSBjb3VsZCBub3QgYmUgZm91bmQgb24gdGhlDQo+IGRldmlkZSwgb3IgY291 bGQgbm90DQo+ICsgIEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgdGhlIHNwZWNpZmllZCBmaWxl IGNvdWxkIG5vdCBiZSBmb3VuZCBvbiB0aGUNCj4gZGV2aWNlLCBvciBjb3VsZCBub3QNCj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlIHRoZSBmaWxlIHN5c3RlbSBvbiB0aGUgZGV2 aWNlLg0KPiAgICBAcmV0dmFsIEVGSV9OT19NRURJQSAgICAgIHRoZSBkZXZpY2UgaGFzIG5vIG1l ZGl1bS4NCj4gICAgQHJldHZhbCBFRklfTUVESUFfQ0hBTkdFRCBUaGUgZGV2aWNlIGhhcyBhIGRp ZmZlcmVudCBtZWRpdW0gaW4gaXQgb3INCj4gdGhlIG1lZGl1bSBpcyBubyBAQCAtMTkwNSw3ICsx OTA1LDcgQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiAgICBAcGFyYW1baW5dIE5vZGUgICAgIFRoZSBu b2RlIHRvIGNvcHkgZnJvbS4NCj4gICAgQHBhcmFtW2luXSBTYXZlICAgICBUUlVFIHRvIHNldCBO b2RlLT5IYW5kbGUgdG8gTlVMTCwgRkFMU0Ugb3RoZXJ3aXNlLg0KPiANCj4gLSAgQHJldHZhbCBO VUxMICAgICAgICBhIG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yIG9jdXJyZWQNCj4gKyAgQHJldHZh bCBOVUxMICAgICAgICBhIG1lbW9yeSBhbGxvY2F0aW9uIGVycm9yIG9jY3VycmVkDQo+ICAgIEBy ZXR1cm4gIT0gTlVMTCAgICAgYSBwb2ludGVyIHRvIHRoZSBuZXcgbm9kZQ0KPiAgKiovDQo+ICBF RklfU0hFTExfRklMRV9JTkZPKg0KPiBAQCAtMTk1Nyw3ICsxOTU3LDcgQEAgSW50ZXJuYWxEdXBs aWNhdGVTaGVsbEZpbGVJbmZvKA0KPiAgICBAcGFyYW1baW5dIEhhbmRsZSAgICAgICAgICAgSGFu ZGxlIG1lbWJlciBpbml0aWFsIHZhbHVlLg0KPiAgICBAcGFyYW1baW5dIEluZm8gICAgICAgICAg ICAgSW5mbyBzdHJ1Y3QgdG8gY29weS4NCj4gDQo+IC0gIEByZXR2YWwgTlVMTCAgICAgICAgICAg ICAgICBBbiBlcnJvciBvY3VycmVkLg0KPiArICBAcmV0dmFsIE5VTEwgICAgICAgICAgICAgICAg QW4gZXJyb3Igb2NjdXJyZWQuDQo+ICAgIEByZXR1cm4gICAgICAgICAgICAgICAgICAgICBhIHBv aW50ZXIgdG8gdGhlIG5ld2x5IGFsbG9jYXRlZCBzdHJ1Y3R1cmUuDQo+ICAqKi8NCj4gIEVGSV9T SEVMTF9GSUxFX0lORk8gKg0KPiBAQCAtMjExNyw3ICsyMTE3LDcgQEAgRWZpU2hlbGxGaW5kRmls ZXNJbkRpcigNCj4gICAgICAvLw0KPiAgICAgIFNoZWxsRmlsZUxpc3RJdGVtID0gQ3JlYXRlQW5k UG9wdWxhdGVTaGVsbEZpbGVJbmZvKA0KPiAgICAgICAgQmFzZVBhdGgsDQo+IC0gICAgICBFRklf U1VDQ0VTUywgIC8vIHN1Y2Nlc3Mgc2luY2Ugd2UgZGlkbnQgZmFpbCB0byBvcGVuIGl0Li4uDQo+ ICsgICAgICBFRklfU1VDQ0VTUywgIC8vIHN1Y2Nlc3Mgc2luY2Ugd2UgZGlkbid0IGZhaWwgdG8g b3BlbiBpdC4uLg0KPiAgICAgICAgRmlsZUluZm8tPkZpbGVOYW1lLA0KPiAgICAgICAgTlVMTCwg ICAgICAgICAvLyBubyBoYW5kbGUgc2luY2Ugbm90IG9wZW4NCj4gICAgICAgIEZpbGVJbmZvKTsN Cj4gQEAgLTI3MDMsNyArMjcwMyw3IEBAIEVmaVNoZWxsR2V0RW52RXgoDQo+ICAgICAgICAgIFN0 YXR1cyA9DQo+IFNIRUxMX0dFVF9FTlZJUk9OTUVOVF9WQVJJQUJMRV9BTkRfQVRUUklCVVRFUyhO YW1lLA0KPiBBdHRyaWJ1dGVzLCAmU2l6ZSwgQnVmZmVyKTsNCj4gICAgICAgIH0NCj4gICAgICAg IC8vDQo+IC0gICAgICAvLyB3ZSBkaWRudCBnZXQgaXQgKG1pZ2h0IG5vdCBleGlzdCkNCj4gKyAg ICAgIC8vIHdlIGRpZG4ndCBnZXQgaXQgKG1pZ2h0IG5vdCBleGlzdCkNCj4gICAgICAgIC8vIGZy ZWUgdGhlIG1lbW9yeSBpZiB3ZSBhbGxvY2F0ZWQgYW55IGFuZCByZXR1cm4gTlVMTA0KPiAgICAg ICAgLy8NCj4gICAgICAgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiBAQCAtMjkyNCw3ICsy OTI0LDcgQEAgRWZpU2hlbGxHZXRDdXJEaXIoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRpcmVjdG9yeSBpcyBjaGFuZ2VkLg0KPiAgICBAcGFyYW0gRGlyICAgICAgICAgICAg ICAgICAgICBQb2ludHMgdG8gdGhlIE5VTEwtdGVybWluYXRlZCBkaXJlY3Rvcnkgb24gdGhlDQo+ IGRldmljZSBzcGVjaWZpZWQgYnkgRmlsZVN5c3RlbS4NCj4gDQo+IC0gIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgIFRoZSBvcGVyYXRpb24gd2FzIHN1Y2Vzc2Z1bA0KPiArICBAcmV0dmFs IEVGSV9TVUNDRVNTICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsDQo+ICAg IEByZXR2YWwgRUZJX05PVF9GT1VORCAgICAgICAgIFRoZSBmaWxlIHN5c3RlbSBjb3VsZCBub3Qg YmUgZm91bmQNCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiBAQCAtMzE3NiwxMiArMzE3NiwxMiBA QCBFZmlTaGVsbElzUm9vdFNoZWxsKCAgfQ0KPiANCj4gIC8qKg0KPiAtICBmdW5jdGlvbiB0byBy ZXR1cm4gYSBzZW1pLWNvbG9uIGRlbGltZXRlZCBsaXN0IG9mIGFsbCBhbGlhcycgaW4gdGhlIGN1 cnJlbnQgc2hlbGwNCj4gKyAgZnVuY3Rpb24gdG8gcmV0dXJuIGEgc2VtaS1jb2xvbiBkZWxpbWl0 ZWQgbGlzdCBvZiBhbGwgYWxpYXMnIGluIHRoZQ0KPiArIGN1cnJlbnQgc2hlbGwNCj4gDQo+ICAg IHVwIHRvIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkuDQo+IA0KPiAgICBAcmV0dmFsIE5VTEwg ICAgTm8gYWxpYXMnIHdlcmUgZm91bmQNCj4gLSAgQHJldHZhbCBOVUxMICAgIEFuIGVycm9yIG9j dXJyZWQgZ2V0dGluZyBhbGlhcycNCj4gKyAgQHJldHZhbCBOVUxMICAgIEFuIGVycm9yIG9jY3Vy cmVkIGdldHRpbmcgYWxpYXMnDQo+ICAgIEByZXR1cm4gIU5VTEwgICBhIGxpc3Qgb2YgYWxsIGFs aWFzJw0KPiAgKiovDQo+ICBDSEFSMTYgKg0KPiBAQCAtMzI4NCw3ICszMjg0LDcgQEAgVG9Mb3dl ciAoDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElmIEFsaWFzIGlzIE5VTEws IFJldHVybmVkRGF0YSBwb2ludHMgdG8gYSAnOycNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVsaW1pdGVkIGxpc3Qgb2YgYWxpYXMgKGUuZy4NCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmV0dXJuZWREYXRhID0gImRpcjtkZWw7Y29weTttZnAiKSB0aGF0 IGlzIE5VTEwtdGVybWluYXRlZC4NCj4gLSAgQHJldHZhbCBOVUxMICAgICAgICAgICAgICAgICAg YW4gZXJyb3Igb2N1cnJlZA0KPiArICBAcmV0dmFsIE5VTEwgICAgICAgICAgICAgICAgICBhbiBl cnJvciBvY2N1cnJlZA0KPiAgICBAcmV0dmFsIE5VTEwgICAgICAgICAgICAgICAgICBBbGlhcyB3 YXMgbm90IGEgdmFsaWQgQWxpYXMNCj4gICoqLw0KPiAgQ09OU1QgQ0hBUjE2ICoNCj4gQEAgLTM2 MDksNyArMzYwOSw3IEBAIENyZWF0ZVBvcHVsYXRlSW5zdGFsbFNoZWxsUHJvdG9jb2wgKA0KPiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChWT0lEKikoJm1TaGVsbFByb3RvY29sKSk7DQo+ ICAgICAgICAgIGlmICghRUZJX0VSUk9SKFN0YXR1cykpIHsNCj4gICAgICAgICAgICAvLw0KPiAt ICAgICAgICAgIC8vIHdlIHJlaW5zdGFsbGVkIHN1Y2Vzc2Z1bGx5LiAgbG9nIHRoaXMgc28gd2Ug Y2FuIHJldmVyc2UgaXQgbGF0ZXIuDQo+ICsgICAgICAgICAgLy8gd2UgcmVpbnN0YWxsZWQgc3Vj Y2Vzc2Z1bGx5LiAgbG9nIHRoaXMgc28gd2UgY2FuIHJldmVyc2UgaXQgbGF0ZXIuDQo+ICAgICAg ICAgICAgLy8NCj4gDQo+ICAgICAgICAgICAgLy8NCj4gQEAgLTM3NTYsNyArMzc1Niw3IEBAIE5v dGlmaWNhdGlvbkZ1bmN0aW9uKA0KPiAgICBmZWF0dXJlJ3MgZW5hYmxlZCBzdGF0ZSB3YXMgbm90 IGtub3duIHdoZW4gdGhlIHNoZWxsIGluaXRpYWxseSBsYXVuY2hlZC4NCj4gDQo+ICAgIEByZXR2 YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBmZWF0dXJlIGlzIGVuYWJsZWQuDQo+IC0gIEBy ZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgIFRoZXJlIGlzIG5vdCBlbm91Z2ggbW5lbW9yeQ0K PiBhdmFpbGFibGUuDQo+ICsgIEByZXR2YWwgRUZJX09VVF9PRl9SRVNPVVJDRVMgIFRoZXJlIGlz IG5vdCBlbm91Z2ggbWVtb3J5IGF2YWlsYWJsZS4NCj4gICoqLw0KPiAgRUZJX1NUQVRVUw0KPiAg SW5lcm5hbEVmaVNoZWxsU3RhcnRNb25pdG9yKA0KPiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cvQXBw bGljYXRpb24vU2hlbGxDVGVzdEFwcC9SRUFETUUudHh0DQo+IGIvU2hlbGxQa2cvQXBwbGljYXRp b24vU2hlbGxDVGVzdEFwcC9SRUFETUUudHh0DQo+IGluZGV4IDAyNTk0ZTBkMTIwOC4uZDc4OGQz ZWY2MmE5IDEwMDY0NA0KPiAtLS0gYS9TaGVsbFBrZy9BcHBsaWNhdGlvbi9TaGVsbENUZXN0QXBw L1JFQURNRS50eHQNCj4gKysrIGIvU2hlbGxQa2cvQXBwbGljYXRpb24vU2hlbGxDVGVzdEFwcC9S RUFETUUudHh0DQo+IEBAIC0xLDUgKzEsNSBAQA0KPiAgVGVzdEFyZ3YubnNoIGlzIGEgdmVyeSBz aW1wbGUgc2hlbGwgc2NyaXB0IHRvIHRlc3QgaG93IHRoZSBpbnRlcnByZXRlciBwYXJzZXMNCj4g dGhlIHBhcmFtZXRlcnMuIEl0IHVzZXMgU2hlbGxDVGVzdEFwcC5lZmkgdG8gZHVtcCB0aGUgcGFy YW1ldGVycyBwYXNzZWQNCj4gZnJvbSB0aGUgLWludGVwcmV0ZXIuDQo+ICtpbnRlcnByZXRlci4N Cj4gDQo+ICBUZXN0QXJndi5sb2cgaXMgdGhlIGRlc2lyZWQgb3V0cHV0IGNyZWF0ZWQgdXNpbmcg IlRlc3RBcmd2Lm5zaCA+DQo+IFRlc3RBcmd2LmxvZyIuDQo+IC0tDQo+IDIuMjEuMA0KDQo=