From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?R3VzdGF2IFdpa3N0csO2bQ==?= Subject: Re: [RFC] Link-type for attachments, more attach options Date: Sun, 30 Jun 2019 06:03:32 +0000 Message-ID: References: <87muqo8o68.fsf@nicolasgoaziou.fr> <877eh8vd52.fsf_-_@nicolasgoaziou.fr> <87y39euadx.fsf@nicolasgoaziou.fr> <87pnnfnfio.fsf@nicolasgoaziou.fr> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="_003_HE1PR02MB3033D6136EB140BC143776A7DAFE0HE1PR02MB3033eurp_" Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:39046) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hhSw9-0001oM-VZ for emacs-orgmode@gnu.org; Sun, 30 Jun 2019 02:03:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hhSw6-0004gi-RA for emacs-orgmode@gnu.org; Sun, 30 Jun 2019 02:03:41 -0400 Received: from mail-eopbgr150132.outbound.protection.outlook.com ([40.107.15.132]:14464 helo=EUR01-DB5-obe.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hhSw5-0004e2-IT for emacs-orgmode@gnu.org; Sun, 30 Jun 2019 02:03:38 -0400 In-Reply-To: <87pnnfnfio.fsf@nicolasgoaziou.fr> Content-Language: en-US List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Nicolas Goaziou Cc: "emacs-orgmode@gnu.org" --_003_HE1PR02MB3033D6136EB140BC143776A7DAFE0HE1PR02MB3033eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNClRoYW5rcyENCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBO aWNvbGFzIEdvYXppb3UgPG1haWxAbmljb2xhc2dvYXppb3UuZnI+DQo+IFNlbnQ6IGRlbiAxNSBq dW5pIDIwMTkgMTU6MjkNCj4gVG86IEd1c3RhdiBXaWtzdHLDtm0gPGd1c3RhdkB3aGlsLnNlPg0K PiBDYzogZW1hY3Mtb3JnbW9kZSA8ZW1hY3Mtb3JnbW9kZUBnbnUub3JnPjsgQmFzdGllbiBHdWVy cnkgPGJ6Z0BnbnUub3JnPg0KPiBTdWJqZWN0OiBSZTogW1JGQ10gTGluay10eXBlIGZvciBhdHRh Y2htZW50cywgbW9yZSBhdHRhY2ggb3B0aW9ucw0KDQoNCj4gPiAoU2lkZW5vdGUgMjsgVGhlIGZp cnN0IHBhdGNoIGlzIHNvbWUgbWlub3IgdW5yZWxhdGVkIGZpeHVwcyAtIGl0DQo+ID4gYnJlYWtz IHRlc3Qtb3JnLWV4cG9ydC9leHBhbmQtaW5jbHVkZSBhcyBhIHNpZGUtZWZmZWN0LiBCdXQgdGhh dCdzIHByb2JhYmx5DQo+ID4gYmVjYXVzZSB0aGUgdGVzdCBkb2Vzbid0IGRvIHdoYXQgaXQgc2hv dWxkISDwn5iyICkNCj4gDQo+IFByb2JhYmx5LiBZZXQsIHdlIHNob3VsZCBkbyBzb21ldGhpbmcg YWJvdXQgaXQuIElmIHlvdSBjYW5ub3QgZml4IGl0LCBhdA0KPiBsZWFzdCBwbGVhc2UgY29tbWVu dCBpdCBvdXQgc29tZWhvdy4NCg0KTG9va2VkIGF0IGl0IGEgZmV3IG1vcmUgbWludXRlcy4gVGhl IGVycm9yIGNvbWVzIGZyb20gdGhlIGZpeCBvZg0Kb3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQtaW4t ZmlsZSwgd2hlcmUgaXQgcHJldmlvdXNseSBkaWRuJ3Qgd29yayB3aXRoDQpwb2ludC4gSXQgZG9l cyBub3csIHdoaWNoIG1lYW5zIHRoZSB0ZXN0LXNwZWNpZmljYXRpb24gd2FzIHdyb25nLiBUaGUN CnRlc3Qgc2hvdWxkIGNvbXBhcmUgdG8gMiBpbnN0ZWFkIG9mIDEgc2luY2UgdGhlIGluc2VydGVk IG5vZGUgd2lsbA0KYmUgb25lIGxldmVsIGFib3ZlIHRoZSBjdXJyZW50IGhlYWRsaW5lLg0KDQo+ ID4gICAgKHNob3VsZA0KPiA+ICAgICAoZXF1YWwNCj4gPiAgICAgICIxIg0KPiA+IC0gICAgKG9y Zy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEhcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6XG4q KiA8cG9pbnQ+SDIiDQo+ID4gLSAgICAgIChvcmctZW50cnktZ2V0IChwb2ludCkgIkEiIHQpKSkp DQo+ID4gKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46 QTogMVxuOkVORDpcbioqIEgyIg0KPiA+ICsgICAgICAob3JnLWVudHJ5LWdldCAocG9pbnQtbWF4 KSAiQSIgdCkpKSkNCj4gDQo+IE5vdCB0aGF0IGl0IGlzIHdyb25nLCBidXQgSSBkb24ndCBzZWUg dGhlIGJlbmVmaXQgb2YgdGhpcyBjaGFuZ2UuDQoNCk5vIHJlYWwgYmVuZWZpdCBleGNlcHQgdGhh dCBpdCBub3cgbWF0Y2hlcyBvdGhlciB0ZXN0cyB0aGF0IHdhcyBhbHNvDQpkZWZpbmVkLiBJIHNw ZW50IGEgZmV3IG1pbnV0ZXMgd29uZGVyaW5nIHdoeSBzb21lIHdhcyBzcGVjaWZpZWQgaW4gb25l DQp3YXkgYW5kIHRoZSBvdGhlcnMgYW5vdGhlciB3YXkuIFJlYWxpemVkIHRoZXJlIHdhcyBubyBy ZWFzb24gYW5kDQp0aG91Z2h0IHRvIHNhdmUgdGhvc2UgbWludXRlcyBmb3IgdGhlIG5leHQgcGVy c29uIHdobyBtaWdodCB3b25kZXIgdGhlDQpzYW1lIHRoaW5nLg0KDQo+ID4gIChkZWZtYWNybyBv cmctdGVzdC13aXRoLXRlbXAtdGV4dC1pbi1maWxlICh0ZXh0ICZyZXN0IGJvZHkpDQo+ID4gLSAg IlJ1biBib2R5IGluIGEgdGVtcG9yYXJ5IGZpbGUgYnVmZmVyIHdpdGggT3JnIG1vZGUgYXMgdGhl IGFjdGl2ZSBtb2RlLiINCj4gPiArICAiUnVuIGJvZHkgaW4gYSB0ZW1wb3JhcnkgZmlsZSBidWZm ZXIgd2l0aCBPcmcgbW9kZSBhcyB0aGUgYWN0aXZlIG1vZGUuDQo+ID4gK0lmIHRoZSBzdHJpbmcg XCI8cG9pbnQ+XCIgYXBwZWFycyBpbiBURVhUIHRoZW4gcmVtb3ZlIGl0IGFuZA0KPiA+ICtwbGFj ZSB0aGUgcG9pbnQgdGhlcmUgYmVmb3JlIHJ1bm5pbmcgQk9EWSwgb3RoZXJ3aXNlIHBsYWNlIHRo ZQ0KPiA+ICtwb2ludCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBidWZmZXIuIg0KPiA+ICAgIChk ZWNsYXJlIChpbmRlbnQgMSkpDQo+ID4gICAgKGxldCAoKHJlc3VsdHMgKGNsLWdlbnN5bSkpKQ0K PiA+ICAgICAgYChsZXQgKChmaWxlIChtYWtlLXRlbXAtZmlsZSAib3JnLXRlc3QiKSkNCj4gPiBA QCAtMjA3LDYgKzIxMCw4IEBAIG90aGVyd2lzZSBwbGFjZSB0aGUgcG9pbnQgYXQgdGhlIGJlZ2lu bmluZyBvZiB0aGUgaW5zZXJ0ZWQgdGV4dC4iDQo+ID4gIAkgICAscmVzdWx0cykNCj4gPiAgICAg ICAgICh3aXRoLXRlbXAtZmlsZSBmaWxlIChpbnNlcnQgaW5zaWRlLXRleHQpKQ0KPiA+ICAgICAg ICAgKGZpbmQtZmlsZSBmaWxlKQ0KPiA+ICsgICAgICAgKHdoZW4gKHJlLXNlYXJjaC1mb3J3YXJk ICI8cG9pbnQ+IiBuaWwgdCkNCj4gPiArCSAocmVwbGFjZS1tYXRjaCAiIikpDQo+ID4gICAgICAg ICAob3JnLW1vZGUpDQo+ID4gICAgICAgICAoc2V0cSAscmVzdWx0cyAocHJvZ24gLEBib2R5KSkN Cj4gPiAgICAgICAgIChzYXZlLWJ1ZmZlcikgKGtpbGwtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikp DQo+IA0KPiBXaGlsZSB3ZSdyZSBhdCBmaXhpbmcgdGhpcyBtYWNybywgd2UgbWF5IGFsc28gd3Jh cCBzdHVmZiB3aXRoaW4NCj4gYHVud2luZC1wcm90ZWN0JyBzbyBhcyB0byBwcm9wZXJseSBkZWxl dGUgdGVtcG9yYXJ5IGZpbGVzIGluIGFueSBjYXNlcy4NCg0KT2ssIHRyaWVkIHRvIGRvIHRoYXQu IE1heWJlIGFkZGVkIGEgZmV3IHRvIG1hbnkgZ3VhcmRyYWlscyBidXQgaXQNCnNob3VsZCB3b3Jr IGFzIGludGVuZGVkLg0KDQo+ID4gRnJvbSAwMTgwYTkwMGY4OTBiMjA1M2Q4MTg0MTE2Yzk5YzYy Y2ZhMDgzMDU1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KPiA+IEZyb206ID0/VVRGLTg/cT9H dXN0YXY9MjBXaWtzdHI9QzM9QjZtPz0gPGd1c3RhdkB3aGlsLnNlPg0KPiA+IERhdGU6IFN1biwg MjUgTm92IDIwMTggMjE6Mzg6NDQgKzAxMDANCj4gPiBTdWJqZWN0OiBbUEFUQ0ggMi8yXSBvcmct YXR0YWNoKiwgb3JnLCBvcmctbWFudWFsLCBvcmctbmV3cywNCj4gPiAgdGVzdGluZy8qKi90ZXN0 LW9yZy1hdHRhY2gqDQo+ID4NCj4gPiAqIG9yZy1hdHRhY2guZWwNCj4gPg0KPiA+IENoYW5nZWQg dGhlIHdheSBhdHRhY2htZW50cyBkZWFsIHdpdGggcHJvcGVydHktaW5oZXJpdGFuY2UuICBJdCBu b3cNCj4gPiBhZGhlcmVzIHRvIHRoZSA9b3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZT0gc2V0 dGluZyBieSBkZWZhdWx0IGJ1dA0KPiA+IGl0IGNhbiBiZSBjdXN0b21pemVkIGlmIG5lZWRlZCAo SSByZWNvbW1lbmQgdG8gZW5hYmxlIGl0ISkuDQo+ID4gVGhlIHByb3BlcnR5IEFUVEFDSF9ESVIg aXMgZGVwcmljYXRlZCBpbiBmYXZvdXIgb2YgdGhlIHNob3J0ZXIgYW5kIHNpbXBsZXINCj4gPiBw cm9wZXJ0eSBESVIuDQo+IA0KPiBkZXByaWNhdGVkIC0+IGRlcHJlY2F0ZWQNCg0KV2hvcHMhIEZp eGVkDQoNCj4gPiAqIG9yZy1tYW51YWwub3JnDQo+ID4NCj4gPiBBdHRhY2htZW50cyBoYXZlIGJl ZW4gcHJvbW90ZWQgaW50byBpdHMgb3duIHRvcC1sZXZlbCBub2RlISAgVGhlcmUgYXJlDQo+ID4g YSBsb3Qgb2YgZ29vZGllcyB0byBtZW50aW9uIGhlcmUgdGhhdCBkaWRuJ3QgZml0IG5hdHVyYWxs eSB3aXRoDQo+ID4gImNhcHR1cmUiIGFuZCAiYXJjaGl2ZSIgYmVmb3JlLg0KPiANCj4gVGhpcyBp cyB0cnVlLCBidXQgdGhlcmUgaXMgbm90IGVub3VnaCBpbmZvcm1hdGlvbiB0byByZXF1aXJlIGEg dG9wLWxldmVsDQo+IG5vZGUuDQo+IA0KPiBIZXJlIGlzIGEgc3VnZ2VzdGlvbi4gU3BsaXQgIkNh cHR1cmUsIFJlZmlsZSwgQXJjaGl2ZSIgaW50byB0d28gcGFydHM6DQo+IA0KPiAxLiBSZWZpbGUs IENvcHkgYW5kIEFyY2hpdmluZyBpbiBvbmUgcGxhY2UsIGJlY2F1c2UgdGhleSBhbGwgcmVsYXRl IHRvDQo+ICAgIG1vdmluZyBleGlzdGluZyBkYXRhIGFyb3VuZA0KPiANCj4gMi4gQ2FwdHVyZSwg QXR0YWNobWVudHMsIFJTUyBGZWVkcywgUHJvdG9jb2xzIGluIGFub3RoZXIgcGxhY2UsIGJlY2F1 c2UNCj4gICAgdGhleSBhbGwgaW5zZXJ0IGV4dGVybmFsIGRhdGEgdG8gdGhlIHN5c3RlbS4NCj4g DQo+IFdEWVQ/DQoNCkZhaXIgZW5vdWdoLiBNb2RpZmllZCB0aGUgbWFudWFsIHRvIG1hdGNoIHRo YXQgc3VnZ2VzdGlvbi4NCg0KPiA+ICtGaWxlIGxpbmtzIGFuZCBhdHRhY2htZW50IGxpbmtzIGNh biBjb250YWluIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24gdG8NCj4gDQo+IFNpbmNlIGF0dGFjaG1l bnQgbGlua3MgYXJlIGZpbGUgbGlua3MsIGl0IHNlZW1zIHJlZHVuZGFudCB0byB0YWxrIGFib3V0 DQo+IGJvdGggZXZlcnl3aGVyZS4gSnVzdCBjbGFyaWZ5IGNsZWFybHkgb25jZSB0aGF0IGF0dGFj aG1lbnRzIGxpbmtzIGFyZQ0KPiBmaWxlIGxpbmtzIGZvciBhbGwgcHVycG9zZXMuDQoNCk1vZGlm aWVkIGl0IGEgYml0IHRvIG1ha2UgaXQgcmVhZCBiZXR0ZXIuIEkgZG8gdGhpbmsgaXQncyB3b3J0 aCBoYXZpbmcgc21hbGwgDQpub3RlcyB0aGF0IHNlYXJjaCBvcHRpb25zIGFwcGx5IGFsc28gZm9y IGF0dGFjaG1lbnQgbGlua3MuIEJ1dCBJIGFncmVlIHRoYXQgDQp3ZSBkb24ndCBuZWVkIHRvIG1l bnRpb24gaXQgZXZlcnl3aGVyZS4NCg0KPiA+ICtJdCBpcyBvZnRlbiB1c2VmdWwgdG8gYXNzb2Np YXRlIHJlZmVyZW5jZSBtYXRlcmlhbCB3aXRoIGFuIG91dGxpbmUNCj4gPiArbm9kZS90YXNrLg0K PiANCj4gSSB3b3VsZCB1c2UgIm5vZGUiIG9ubHk6IGl0IGlzIG1vcmUgZ2VuZXJpYy4NCg0KQWdy ZWVkLCBmaXhlZC4NCiANCj4gPiArVGhlIGF0dGFjaG1lbnQgc3lzdGVtIGhhcyBiZWVuIGNvbnRy aWJ1dGVkIHRvIE9yZyBieSBKb2huIFdpZWdsZXkuDQo+IA0KPiBJIHdvdWxkIGRyb3AgdGhpcyBy ZWZlcmVuY2UsIHNpbmNlIEpvaG4gV2llZ2xleSBpcyBhbHJlYWR5IG1lbnRpb25lZCBpbg0KPiB0 aGUgVGhhbmtzIGVudHJ5Lg0KDQpPaywgZml4ZWQuDQogDQo+ID4gKyoqIEF0dGFjaG1lbnQgZGVm YXVsdHMgYW5kIGRpc3BhdGNoZXINCj4gPiArQnkgZGVmYXVsdCwgb3JnLWF0dGFjaCB3aWxsIHVz ZSBJRCBwcm9wZXJ0aWVzIHdoZW4gYWRkaW5nIGF0dGFjaG1lbnRzDQo+ID4gK3RvIG91dGxpbmUg bm9kZXMuICBUaGlzIG1ha2VzIHdvcmtpbmcgd2l0aCBhdHRhY2htZW50cyBmdWxseQ0KPiA+ICth dXRvbWF0ZWQuICBUaGVyZSBpcyBubyBkZWNpc2lvbiBuZWVkZWQgZm9yIGZvbGRlci1uYW1lIG9y IGxvY2F0aW9uLg0KPiA+ICtJRC1iYXNlZCBkaXJlY3RvcmllcyBhcmUgYnkgZGVmYXVsdCBsb2Nh dGVkIGluIHRoZSA9ZGF0YS89IGRpcmVjdG9yeSwNCj4gPiArd2hpY2ggbGl2ZXMgaW4gdGhlIHNh bWUgZGlyZWN0b3J5IHdoZXJlIHlvdXIgT3JnIGZpbGUgbGl2ZXNbZm46ODddLg0KPiA+ICtGb3Ig bW9yZSBjb250cm9sIG92ZXIgdGhlIHNldHVwLCBzZWUgW1sqQXR0YWNobWVudCBvcHRpb25zXV0u DQo+ID4gKw0KPiA+ICtXaGVuIGF0dGFjaG1lbnRzIGFyZSBtYWRlIHVzaW5nIH5vcmctYXR0YWNo fiBhIGRlZmF1bHQgdGFnID1BVFRBQ0g9IGlzDQo+ID4gK2FkZGVkIHRvIHRoZSBub2RlIHRoYXQg Z2V0cyB0aGUgYXR0YWNobWVudHMuDQo+IA0KPiBOb3RlIG92ZXJseSBpbXBvcnRhbnQsIGJ1dCB3 ZSBwcmVmZXIgdGhlIGFjdGl2ZSB2b2ljZSB3aGVuZXZlciBwb3NzaWJsZS4NCg0KQ2FuJ3Qgc2F5 IEkgcmVhbGx5IHVuZGVyc3RhbmQgd2hhdCB3YXMgbWVhbnQgd2l0aCB0aGlzLg0KDQo+ID4gKyAg IytiZWdpbl9leGFtcGxlDQo+ID4gKyAgLCogQ2hhcHRlciBBIC4uLg0KPiA+ICsgICAgOlBST1BF UlRJRVM6DQo+ID4gKyAgICA6RElSOiBDaGFwdGVyIEEvDQo+ID4gKyAgICA6RU5EOg0KPiA+ICsg ICwqKiBJbnRyb2R1Y3Rpb24NCj4gPiArICBTb21lIHRleHQNCj4gPiArDQo+ID4gKyAgIytOQU1F OiBJbWFnZSAxDQo+ID4gKyAgW1tBdHRhY2htZW50OmltYWdlIDEuanBnXV0NCj4gPiArICAjK2Vu ZF9leGFtcGxlDQo+ID4gKw0KPiA+ICsgIFdpdGhvdXQgaW5oZXJpdGFuY2Ugb25lIHdvdWxkIG5v dCBiZSBhYmxlIHRvIHJlc29sdmUgdGhlIGxpbmsgdG8gaW1hZ2UNCj4gPiArICAxLmpwZywgc2lu Y2UgdGhlIGxpbmsgaXMgaW5zaWRlIGEgc3ViLWhlYWRpbmcgdG8gQ2hhcHRlciBBLg0KPiANCj4g PTEuanBnPSAgLi4uID1DaGFwdGVyIEE9DQoNCkZpeGVkLg0KIA0KPiA+ICsgIEluaGVyaXRhbmNl IHdvcmtzIHRoZSBzYW1lIHdheSBmb3IgYm90aCA9SUQ9IGFuZCA9RElSPSBwcm9wZXJ0eS4gIElm DQo+ID4gKyAgYm90aCBwcm9wZXJ0aWVzIGFyZSBkZWZpbmVkIG9uIHRoZSBzYW1lIGhlYWRsaW5l IHRoZW4gPURJUj0gdGFrZXMNCj4gPiArICBwcmVjZWRhbmNlLiAgVGhpcyBpcyBhbHNvIHRydWUg aWYgaW5oZXJpdGFuY2UgaXMgZW5hYmxlZC4gIElmID1ESVI9IGlzDQo+ID4gKyAgaW5oZXJpdGVk IGZyb20gYSBwYXJlbnQgbm9kZSBpbiB0aGUgb3V0bGluZSwgdGhhdCBwcm9wZXJ0eSBzdGlsbCB0 YWtlcw0KPiA+ICsgIHByZWNlZGVuY2Ugb3ZlciBhbiA9SUQ9IHByb3BlcnR5IGRlZmluZWQgb24g dGhlIG5vZGUgaXRzZWxmLg0KPiA+ICsNCj4gPiArLSB+b3JnLWF0dGFjaC1tZXRob2R+IDo6DQo+ ID4gKyAgIyt2aW5kZXg6IG9yZy1hdHRhY2gtbWV0aG9kDQo+ID4gKyAgV2hlbiBhdHRhY2hpbmcg ZmlsZXMgdXNpbmcgdGhlIGRpc3BhdGNoZXIge3t7a2JkKEMtYyBDLWEpfX19IGl0DQo+ID4gKyAg ZGVmYXVsdHMgdG8gY29weWluZyBmaWxlcy4gIFRoZSBiZWhhdmlvdXIgY2FuIGJlIGNoYW5nZWQg YnkNCj4gPiArICBjdXN0b21pemluZyB+b3JnLWF0dGFjaC1tZXRob2R+LiAgT3B0aW9ucyBhcmUg PUNvcHk9LCA9TW92ZS9SZW5hbWU9LA0KPiA+ICsgID1IYXJkIGxpbms9IG9yID1TeW1ib2xpYyBs aW5rPS4NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgPS4uLj0gYXJlIHdhcnJhbnRlZCBoZXJlLg0KDQpP aywgZml4ZWQuDQoNCj4gDQo+ID4gKy0gfm9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2R+ IDo6DQo+ID4gKyAgIyt2aW5kZXg6IG9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2QNCj4g PiArICBUaGlzIGN1c3RvbWl6YXRpb24gbGV0cyB5b3UgY2hvb3NlIHRoZSBkZWZhdWx0IHdheSB0 byBhdHRhY2ggdG8NCj4gPiArICBub2RlcyB3aXRob3V0IGV4aXN0aW5nIElEIGFuZCBESVIgcHJv cGVydHkuICBJdCBkZWZhdWx0cyB0byA9aWQ9IGJ1dA0KPiA+ICsgIGNhbiBhbHNvIGJlIHNldCB0 byA9ZGlyPSwgPWFzaz0gb3IgPW5pbD0uDQo+IA0KPiB+aWR+LCB+ZGlyfiB+YXNrfiBvciB+bmls fiwgc2luY2UgdGhvc2UgYXJlIHN5bWJvbHMuDQoNCkZpeGVkLg0KDQo+ID4gKyAgRG8gbm90IHNo b3cgdGhlIHNwbGFzaCBidWZmZXIgd2l0aCB0aGUgYXR0YWNoIGRpc3BhdGNoZXIgd2hlbg0KPiA+ ICsgIH5vcmctYXR0YWNoLWV4cGVydH4gaXMgc2V0IHRvIE5vbi1uaWwuDQo+IA0KPiBub24tfm5p bH4NCg0KRml4ZWQuDQoNCj4gPiArKiogQXR0YWNobWVudCBsaW5rcw0KPiA+ICtBdHRhY2hlZCBm aWxlcyBhbmQgZm9sZGVycyBjYW4gYmUgcmVmZXJlbmNlZCB1c2luZyBhdHRhY2htZW50LWxpbmtz Lg0KPiANCj4gV2h5IHRoZSBoeXBoZW4gaW4gImF0dGFjaG1lbnQtbGlua3MiPyBJIHRoaW5rICJh dHRhY2htZW50IGxpbmtzIiBpcw0KPiBwZXJmZWN0bHkgY2xlYXIuDQoNCkZpeGVkLg0KIA0KPiA+ ICtUaGlzIG1ha2VzIGl0IGVhc3kgdG8gcmVmZXIgdG8gdGhlIG1hdGVyaWFsIGFkZGVkIHRvIGFu IG91dGxpbmUgbm9kZS4NCj4gPiArRXNwZWNpYWxseSBpZiBpdCB3YXMgYXR0YWNoZWQgdXNpbmcg dGhlIHVuaXF1ZSBJRCBvZiB0aGUgZW50cnkhDQo+ID4gKw0KPiA+ICsjK2JlZ2luX2V4YW1wbGUN Cj4gPiArLCogVE9ETyBTb21lIHRhc2sNCj4gPiArICA6UFJPUEVSVElFUzoNCj4gPiArICA6SUQ6 ICAgICAgIDk1ZDUwMDA4LWMxMmUtNDc5Zi1hNGYyLWNjMDIzODIwNTMxOQ0KPiA+ICsgIDpFTkQ6 DQo+ID4gK1NlZSBhdHRhY2hlZCBkb2N1bWVudCBmb3IgbW9yZSBpbmZvcm1hdGlvbjogW1thdHRh Y2htZW50OmluZm8ub3JnXV0NCj4gPiArIytlbmRfZXhhbXBsZQ0KPiA+ICsNCj4gPiArU2VlIFtb KiBFeHRlcm5hbCBMaW5rc11dIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZXNlIGxpbmtz Lg0KPiANCj4gTm8gbmVlZCBmb3IgdGhlIHNwYWNlOiBbWypFeHRlcm5hbCBMaW5rc11dDQo+IA0K PiA+ICsqKiBBdXRvbWF0aWMgdmVyc2lvbi1jb250cm9sIHdpdGggZ2l0DQo+IA0KPiBTaG91bGRu J3QgaXQgYmUgIkdpdCI/DQoNCk1heWJlLi4uPyBDaGFuZ2VkIG5vdyBhbnl3YXlzLg0KIA0KPiA+ ICtJZiB0aGUgZGlyZWN0b3J5IGF0dGFjaGVkIHRvIGFuIG91dGxpbmUgbm9kZSBpcyBhIGdpdCBy ZXBvc2l0b3J5LCBPcmcNCj4gDQo+IERpdHRvLg0KDQpDaGFuZ2VkLg0KDQo+ID4gK2NhbiBiZSBj b25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgY29tbWl0IGNoYW5nZXMgdG8gdGhhdCByZXBvc2l0 b3J5DQo+ID4gK3doZW4gaXQgc2VlcyB0aGVtLg0KPiA+ICsNCj4gPiArVG8gbWFrZSBvcmctbW9k ZSB0YWtlIGNhcmUgb2YgdmVyc2lvbmluZyBvZiBhdHRhY2htZW50cyBmb3IgeW91LCBhZGQNCj4g DQo+IFRvIG1ha2UgT3JnIG1vZGUuLi4NCg0KRml4ZWQuDQogDQo+ID4gKyhkZWZjdXN0b20gb3Jn LWF0dGFjaC1kaXItcmVsYXRpdmUgbmlsDQo+ID4gKyAgIkNob29zZSB3aGV0aGVyIGRpcmVjdG9y aWVzIGluIERJUiBwcm9wZXJ0eSBzaG91bGQgYmUgYWRkZWQgYXMgcmVsYXRpdmUgbGlua3Mgb3Ig bm90Lg0KPiA+ICtEZWZhdWx0cyB0byBhYnNvbHV0ZSBsb2NhdGlvbi4iDQo+IA0KPiBGaXJzdCBs aW5lIGlzIHRvbyBsb25nLCBtYXliZToNCj4gDQo+ICAgICBOb24tbmlsIG1lYW5zIGRpcmVjdG9y aWVzIGluIERJUiBwcm9wZXJ0eSBhcmUgYWRkZWQgYXMgcmVsYXRpdmUgbGlua3MNCj4gDQoNCkZp eGVkLg0KDQo+ID4gLShkZWZjdXN0b20gb3JnLWF0dGFjaC1hbm5leC1hdXRvLWdldCAnYXNrDQo+ ID4gLSAgIkNvbmZpcm1hdGlvbiBwcmVmZXJlbmNlIGZvciBhdXRvbWF0aWNhbGx5IGdldHRpbmcg YW5uZXggZmlsZXMuDQo+ID4gLUlmIFxcPSdhc2ssIHByb21wdCB1c2luZyBgeS1vci1uLXAnLiAg SWYgdCwgYWx3YXlzIGdldC4gIElmIG5pbCwgbmV2ZXIgZ2V0LiINCj4gPiArKGRlZnVuIG9yZy1h dHRhY2gtaWQtZm9sZGVyLWZvcm1hdCAoaWQpDQo+ID4gKyAgKGZvcm1hdCAiJXMvJXMiDQo+ID4g KwkgIChzdWJzdHJpbmcgaWQgMCAyKQ0KPiA+ICsJICAoc3Vic3RyaW5nIGlkIDIpKQ0KPiA+ICsg ICkNCj4gDQo+IE5vIGRhbmdsaW5nIHBhcmVucywgcGxlYXNlLiBBbHNvLCB0aGlzIGZ1bmN0aW9u IG5lZWRzIGEgZG9jc3RyaW5nLg0KDQpBaCwgb2ZjLg0KDQo+ID4gKyhkZWZjdXN0b20gb3JnLWF0 dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uICMnb3JnLWF0dGFjaC1pZC1mb2xkZXItZm9ybWF0DQo+ ID4gKyAgIlRoZSBmdW5jdGlvbiBwYXJzaW5nIHRoZSBJRCBwYXJhbWV0ZXIgaW50byBhIGZvbGRl ci1wYXRoIg0KPiANCj4gTWlzc2luZyBmdWxsIHN0b3AuIEFsc286ICJGdW5jdGlvbiBwYXJzaW5n Li4uIg0KPiANCj4gPiAgICA6Z3JvdXAgJ29yZy1hdHRhY2gNCj4gPiAtICA6cGFja2FnZS12ZXJz aW9uICcoT3JnIC4gIjkuMCIpDQo+ID4gLSAgOnZlcnNpb24gIjI2LjEiDQo+ID4gLSAgOnR5cGUg JyhjaG9pY2UNCj4gPiAtCSAgKGNvbnN0IDp0YWcgImNvbmZpcm0gd2l0aCBgeS1vci1uLXAnIiBh c2spDQo+ID4gLQkgIChjb25zdCA6dGFnICJhbHdheXMgZ2V0IGZyb20gYW5uZXggaWYgbmVjZXNz YXJ5IiB0KQ0KPiA+IC0JICAoY29uc3QgOnRhZyAibmV2ZXIgZ2V0IGZyb20gYW5uZXgiIG5pbCkp KQ0KPiA+ICsgIDpwYWNrYWdlLXZlcnNpb24gJyhPcmcgLiAiOS4zIikNCj4gPiArICA6dHlwZSAn ZnVuY3Rpb24NCj4gPiArICApDQo+IA0KPiBTZWUgYWJvdmUuDQoNCkZpeGVkLg0KIA0KPiA+ICsg ICJSZXR1cm4gdGhlIGRpcmVjdG9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgb3V0bGlu ZSBub2RlLg0KPiA+ICtGaXJzdCBjaGVjayBmb3IgRElSIHByb3BlcnR5LCB0aGVuIElEIHByb3Bl cnR5Lg0KPiA+ICtgb3JnLWF0dGFjaC11c2UtaW5oZXJpdGFuY2UnIGRldGVybWluZXMgd2hldGhl ciBpbmhlcml0ZWQNCj4gPiArcHJvcGVydGllcyBhbHNvIHdpbGwgYmUgY29uc2lkZXJlZC4NCj4g PiArDQo+ID4gK0lmIGFuIElEIHByb3BlcnR5IGlzIGZvdW5kIHRoZSBkZWZhdWx0IG1lY2hhbmlz bSB1c2luZyB0aGF0IElEDQo+ID4gK3dpbGwgYmUgaW52b2tlZCB0byBhY2Nlc3MgdGhlIGRpcmVj dG9yeSBmb3IgdGhlIGN1cnJlbnQgZW50cnkuDQo+ID4gKw0KPiA+ICtJZiBDUkVBVEUtSUYtTk9U LUVYSVNULVAgaXMgbm9uLW5pbCwgYG9yZy1hdHRhY2gtZGlyLWdldC1jcmVhdGUnDQo+ID4gK2lz IHJ1bi4iDQo+ID4gKyAgKGlmIGNyZWF0ZS1pZi1ub3QtZXhpc3RzLXANCj4gPiArICAgICAgKG9y Zy1hdHRhY2gtZGlyLWdldC1jcmVhdGUpDQo+IA0KPiBDb3VsZCB5b3UgbWVyZ2UgdGhlIGBpZicg d2l0aGluIHRoZSBgY29uZCcgYmVsb3c/DQoNCkRvbmUuDQogDQo+ID4gKyAgICAobGV0IChhdHRh Y2gtZGlyIGlkKQ0KPiA+ICsgICAgICAoY29uZA0KPiA+ICsgICAgICAgKChzZXRxIGF0dGFjaC1k aXIgKG9yZy1lbnRyeS1nZXQgbmlsICJESVIiIG9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlKSkN Cj4gPiArCShvcmctYXR0YWNoLWNoZWNrLWFic29sdXRlLXBhdGggYXR0YWNoLWRpcikpDQo+ID4g KyAgICAgICA7OyBEZXByaWNhdGVkIGFuZCByZW1vdmVkIGZyb20gZG9jdW1lbnRhdGlvbiwgYnV0 IHN0aWxsDQo+IA0KPiBEZXByZWNhdGVkLiBBbHNvLCBwbGVhc2UgYWRkIGEgRklYTUUuDQoNCkZp eGVkIGFuZCBhZGRlZC4NCiANCj4gPiArICAgIChpZiBhdHRhY2gtZGlyDQo+ID4gKwkocHJvZ24g KGlmIChub3QgKGZpbGUtZGlyZWN0b3J5LXAgYXR0YWNoLWRpcikpDQo+ID4gKwkJICAgKG1ha2Ut ZGlyZWN0b3J5IGF0dGFjaC1kaXIgdCkpDQo+ID4gKwkgICAgICAgKGlmIChmaWxlLWV4aXN0cy1w IGF0dGFjaC1kaXIpDQo+ID4gKwkJICAgYXR0YWNoLWRpcg0KPiA+ICsJCSAoZXJyb3IgIlBhdGgg ZG9lcyBub3QgZXhpc3Q6ICVzLiIgYXR0YWNoLWRpcikpKQ0KPiA+ICsgICAgICAoZXJyb3IgIk5v IGF0dGFjaG1lbnQgZGlyZWN0b3J5IGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBub2Rl LiIpKSkpDQo+IA0KPiAgICAgKHVubGVzcyBhdHRhY2gtZGlyIChlcnJvciAiTm8gYXR0YWNobWVu dCAuLi4gY3VycmVudCBub2RlIikpDQo+ICAgICAodW5sZXNzIChmaWxlLWRpcmVjdG9yeS1wIGF0 dGFjaC1kaXIpIChtYWtlLWRpcmVjdG9yeSAuLi4pKQ0KPiAgICAgYXR0YWNoLWRpcg0KPiANCj4g Tm90ZSB0aGF0IGVycm9yIG1lc3NhZ2VzIG5ldmVyIGVuZCB3aXRoIGEgZnVsbCBzdG9wIGluIEVt YWNzLiBBbHNvLA0KPiBJIGRvbid0IHNlZSBob3cgdGhlIGlubmVyIGVycm9yIGNvdWxkIHRyaWdn ZXIgc2luY2UgeW91IGNyZWF0ZSB0aGUNCj4gZGlyZWN0b3J5IGp1c3QgYmVmb3JlLCBhbmQgaXQg d291bGQgYWxyZWFkeSBoYXZlIHJldHVybmVkIGFuIGVycm9yIGlmDQo+IHRoYXQgd2Fzbid0IHBv c3NpYmxlLg0KDQpPaywgZ290IGl0LiBGaXhlZC4gUmVtb3ZlZCBpbm5lciBlcnJvciBhcyB3ZWxs IGFzIEkgYWdyZWUgd2l0aCB5b3VyDQpjb25jbHVzaW9uLiBUcmllZCB0byB0aGluayBvZiB3aHkg aXQgd2FzIGFkZGVkIGJ1dCBjb3VsZG4ndCByZW1lbWJlcg0KYW55IHJlYXNvbi4NCg0KPiA+IC0g ICAgICAoc2hlbGwtY29tbWFuZCAoZm9ybWF0ICJybSAtZnIgJXMiIGF0dGFjaC1kaXIpKQ0KPiA+ ICsgICAgKHdoZW4gKGFuZCBhdHRhY2gtZGlyDQo+ID4gKwkgICAgICAgKG9yIGZvcmNlDQo+ID4g KwkJICAgKHktb3Itbi1wICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbA0KPiA+ IGF0dGFjaG1lbnRzIG9mIHRoaXMgZW50cnk/ICIpKSkNCj4gDQo+IE1heWJlIHRoZSBsZXNzIG1v dXRoZnVsOg0KPiANCj4gICAgIlJlYWxseSByZW1vdmUgYWxsIGF0dGFjaG1lbnRzIG9mIHRoaXMg ZW50cnk/ICINCj4gDQoNCkdvb2Qgc3VnZ2VzdGlvbiwgZml4ZWQuDQoNCj4gQWxzbywgd2hhdCBh Ym91dCB1c2luZyBgeWVzLW9yLW5vLXAnIHNpbmNlIHRoaXMgbG9va3MgYSBzZW5zaXRpdmUgb3Bl cmF0aW9uPw0KDQpBZ3JlZWQhIERpZG4ndCB0aGluayBvZiB0aGF0Lg0KIA0KPiA+ICsJKG9yZy1h dHRhY2gtdGFnIChub3QgZmlsZXMpKSkpDQo+ID4gKyAgICAod2hlbiAobm90IGF0dGFjaC1kaXIp DQo+ID4gKyAgICAgIChvcmctYXR0YWNoLXRhZyB0KSkpKQ0KPiANCj4gICAgICh1bmxlc3MgYXR0 YWNoLWRpciAob3JnLWF0dGFjaC10YWcgdCkpDQoNCkZpeGVkLg0KIA0KPiA+ICsgIChpbnRlcmFj dGl2ZSkNCj4gPiArICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXIpKSkNCj4gPiAr ICAgIChpZiBhdHRhY2gtZGlyDQo+ID4gKwkob3JnLW9wZW4tZmlsZSBhdHRhY2gtZGlyKQ0KPiA+ ICsgICAgICAoZXJyb3IgIk5vIGF0dGFjaG1lbnQgZGlyZWN0b3J5IGV4aXN0LiIpKSkpDQo+IA0K PiBTZWUgYWJvdmU6IG5vIGZ1bGwgc3RvcCBhdCB0aGUgZW5kIG9mIGVycm9yIG1lc3NhZ2VzLg0K DQpGaXhlZC4NCg0KPiA+ICsgIChsZXQgKChhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpcikpKQ0K PiA+ICsgICAgKGlmIGF0dGFjaC1kaXINCj4gPiArCShkaXJlZCBhdHRhY2gtZGlyKQ0KPiA+ICsg ICAgICAoZXJyb3IgIk5vIGF0dGFjaG1lbnQgZGlyZWN0b3J5IGV4aXN0LiIpKSkpDQo+IA0KPiBE aXR0by4NCg0KRml4ZWQNCiANCj4gPiArICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1k aXIpKSkNCj4gPiArICAgIChpZiBhdHRhY2gtZGlyDQo+ID4gKwkobGV0KiAoKGZpbGVzIChvcmct YXR0YWNoLWZpbGUtbGlzdCBhdHRhY2gtZGlyKSkNCj4gPiArCSAgICAgICAoZmlsZSAoaWYgKD0g KGxlbmd0aCBmaWxlcykgMSkNCj4gPiArCQkJIChjYXIgZmlsZXMpDQo+ID4gKwkJICAgICAgIChj b21wbGV0aW5nLXJlYWQgIk9wZW4gYXR0YWNobWVudDogIg0KPiA+ICsJCQkJCShtYXBjYXIgIyds aXN0IGZpbGVzKSBuaWwgdCkpKQ0KPiANCj4gSSB0aGluayBhIGBwY2FzZScgaXMgd2FycmFudGVk IGhlcmU6DQo+IA0KPiAgICAgKHBjYXNlIChvcmctYXR0YWNoLWZpbGUtbGlzdCBhdHRhY2gtZGly KQ0KPiAgICAgICAoYCgsZmlsZSkgZmlsZSkNCj4gICAgICAgKGZpbGVzIChjb21wbGV0aW5nLXJl YWQgLi4uKSkpDQo+IA0KDQpBbmQgc28gSSBsZWFybnQgc29tZXRoaW5nIG5ldy4gUGF0dGVybiBt YXRjaGluZyBpbiBlbWFjcywgZGlkbid0IHRoaW5rDQpvZiB0aGF0LiBDaGFuZ2VkLiBDYW4ndCBy ZWFsbHkgc2F5IHRoYXQgdGhlIGNvZGUgd2lsbCBiZSBlYXNpZXIgdG8NCnVuZGVyc3RhbmQgbm93 LiBCdXQgZm9yIHRob3NlIGZhbWlsaWFyIHdpdGggcGNhc2UgSSdtIHN1cmUgaXQgbG9va3MNCm5p Y2VyLg0KDQo+ID4gKwkgICAgICAgKHBhdGggKGV4cGFuZC1maWxlLW5hbWUgZmlsZSBhdHRhY2gt ZGlyKSkpDQo+ID4gKwkgIChydW4taG9vay13aXRoLWFyZ3MgJ29yZy1hdHRhY2gtb3Blbi1ob29r IHBhdGgpDQo+ID4gKwkgIChvcmctb3Blbi1maWxlIHBhdGggaW4tZW1hY3MpKQ0KPiA+ICsgICAg ICAoZXJyb3IgIk5vIGF0dGFjaG1lbnQgZGlyZWN0b3J5IGV4aXN0LiIpKSkpDQo+IA0KPiBBaGVt LiA6KQ0KDQpZZWFoLiBGaXhlZCB0aGUgZnVsbCBzdG9wLg0KDQo+IA0KPiA+IGRpZmYgLS1naXQg YS90ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmlsZUEgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmls ZUENCj4gDQo+IFdvdWxkIGl0IGJlIHBvc3NpYmxlIHRvIHVzZSBgb3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQtaW4gZmlsZSBpbnN0ZWFkIG9mDQo+IGNyZWF0aW5nIGZpbGVzPw0KDQpJIGNvdWxkbid0 IHRoaW5rIG9mIGEgZ29vZCB3YXkgc2luY2UgSSB3YW50ZWQgdG8gdGVzdCByZWxhdGlvbnMNCmJl dHdlZW4gYW4gb3JnLW1vZGUgZG9jdW1lbnQgYW5kIGl0J3MgYXR0YWNobWVudHMuIEkgd291bGQg bmVlZCB0bw0KZHluYW1pY2FsbHkgY3JlYXRlIGJvdGggb3JnLW1vZGUgZmlsZXMgYW5kIGl0J3Mg YXR0YWNobWVudCBhbmQgbGluaw0KdGhlbSBpbiB0aGUgZmlsZXN5c3RlbSBzb21laG93Li4uIFRo YXQgd2Fzbid0IGludHVpdGl2ZSBmb3IgbWUgc28gSQ0KY2hvc2UgdGhpcyBzb2x1dGlvbiBpbnN0 ZWFkLg0KIA0KPiA+ICsoZXJ0LWRlZnRlc3QgdGVzdC1vcmctYXR0YWNoL2RpciAoKQ0KPiA+ICsg ICJUZXN0IGBvcmctYXR0YWNoLWdldCcgc3BlY2lmaWNhdGlvbnMuIg0KPiA+ICsgIChvcmctdGVz dC1pbi1leGFtcGxlLWZpbGUgb3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQ0KPiA+ICsgICAgOzsg TGluayBpbnNpZGUgSDENCj4gPiArICAgIChvcmctbmV4dC1saW5rKQ0KPiA+ICsgICAgKHNhdmUt ZXhjdXJzaW9uDQo+ID4gKyAgICAgIChvcmctb3Blbi1hdC1wb2ludCkNCj4gPiArICAgICAgKHNo b3VsZCAoZXF1YWwgIlRleHQgaW4gZmlsZUFcbiIgKGJ1ZmZlci1zdHJpbmcpKSkpDQo+IA0KPiBQ bGVhc2UgbW92ZSBgc2hvdWxkJyBpbiB0aGUgb3V0ZXJtb3N0IHBhcnQgb2YgdGhlIHNleHAsIGlm IHBvc3NpYmxlLiBJdA0KPiBtYWtlcyBkZWJ1Z2dpbmcgZWFzaWVyIChpLmUuLCBldmFsdWF0aW5n IHRoZSBzZXhwIHdpdGhvdXQgZ2V0dGluZw0KPiBgc2hvdWxkJyBpbiB0aGUgd2F5KS4NCg0KT2ss IGRpZCB0aGF0LiBJIGFncmVlIC0gaXQgcmVhZHMgYmV0dGVyLiBUbyBnZXQgdGhpcyB0byB3b3Jr IGJldHRlciBJDQptYWRlIGEgc2xpZ2h0IGNoYW5nZSBpbiBvcmctdGVzdC1pbi1leGFtcGxlLWZp bGUgYXMgd2VsbC4gQWRkZWQgdG8NCnBhdGNoIDAwMDEgc2luY2UgdGhhdCBjaGFuZ2UgaXNuJ3Qg cmVhbGx5IHJlbGF0ZWQgdG8gYXR0YWNobWVudHMgYnV0DQpyYXRoZXIgYSBnZW5lcmFsIGltcHJv dmVtZW50Lg0KDQpPbmUgbWlnaHQgYWxzbyBhcmd1ZSB0aGF0IHRoaXMgcGFydGljdWxhciB0ZXN0 IHNob3VsZCBiZSBzcGxpdCB1cC4gSQ0KQWdyZWUgd2l0aCB0aGF0LCBidXQgd291bGQgbGlrZSB0 aGF0IHRvIG5vdCBiZSBhIHN0b3BwZXIgZm9yIHRoaXMgZmlyc3QgDQpwYXRjaC4NCiANCj4gSSBw cm9iYWJseSBtaXNzZWQgYSBmZXcgdGhpbmdzLCBidXQgaXQga2VlcHMgdGhlIGJhbGwgcm9sbGlu Zy4NCg0KSSd2ZSBhZGRlZCBhIGZldyBmaXhlcyB0byB0aGUgcGF0Y2ggbXlzZWxmLiBJIGhhdmVu J3Qga2VwdCB0cmFjayBvZg0KdGhlIGNoYW5nZXMgdGhvdWdoLCBzaW5jZSBJJ20gdHJ5aW5nIHRv IGtlZXAgdGhlIHBhdGNoIHRvZ2V0aGVyIGluIG9uZQ0KY29tbWl0ICh3ZWxsLi4uIHR3byBpbiB0 aGlzIGNhc2UpLg0KIA0KPiBUaGFuayB5b3UgYWdhaW4gZm9yIGFsbCB0aGUgaGFyZCB3b3JrLg0K DQpBbmQgdGhhbmsgeW91IGZvciB0aGUgcmV2aWV3LiBCYXN0aWVuIGdhdmUgbWUgYWNjZXNzIHRv IHRoZSBHaXQNCnJlcG9zaXRvcnkuIExldCBtZSBrbm93IGhvdyB5b3Ugd2FudCB0byBwcm9jZWVk IHdpdGggdGhpcyBwYXRjaC4NCg0KS2luZCByZWdhcmRzDQpHdXN0YXYgV2lrc3Ryw7ZtDQo= --_003_HE1PR02MB3033D6136EB140BC143776A7DAFE0HE1PR02MB3033eurp_ Content-Type: application/octet-stream; name="0002-org-attach-org-org-manual-org-news-testing-test-org-.patch" Content-Description: 0002-org-attach-org-org-manual-org-news-testing-test-org-.patch Content-Disposition: attachment; filename="0002-org-attach-org-org-manual-org-news-testing-test-org-.patch"; size=106611; creation-date="Sun, 30 Jun 2019 05:30:40 GMT"; modification-date="Sun, 30 Jun 2019 05:30:40 GMT" Content-Transfer-Encoding: base64 RnJvbSBjZTQwYjA4MmQxMDYyMzFhODMwNmU2MGU5NTA5YjhiZTc2YTAxODlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAd2hpbC5zZT4KRGF0ZTogU3VuLCAyNSBOb3YgMjAxOCAyMTozODo0NCArMDEwMApTdWJq ZWN0OiBbUEFUQ0ggMi8yXSBvcmctYXR0YWNoKiwgb3JnLCBvcmctbWFudWFsLCBvcmctbmV3cywK IHRlc3RpbmcvKiovdGVzdC1vcmctYXR0YWNoKgoKKiBvcmctYXR0YWNoLmVsCgpDaGFuZ2VkIHRo ZSB3YXkgYXR0YWNobWVudHMgZGVhbCB3aXRoIHByb3BlcnR5LWluaGVyaXRhbmNlLiAgSXQgbm93 CmFkaGVyZXMgdG8gdGhlID1vcmctdXNlLXByb3BlcnR5LWluaGVyaXRhbmNlPSBzZXR0aW5nIGJ5 IGRlZmF1bHQgYnV0Cml0IGNhbiBiZSBjdXN0b21pemVkIGlmIG5lZWRlZCAoSSByZWNvbW1lbmQg dG8gZW5hYmxlIGl0ISkuClRoZSBwcm9wZXJ0eSBBVFRBQ0hfRElSIGlzIGRlcHJlY2F0ZWQgaW4g ZmF2b3VyIG9mIHRoZSBzaG9ydGVyIGFuZCBzaW1wbGVyCnByb3BlcnR5IERJUi4KCkFkZGVkIGFu IGV4cGxpY2l0IG9wdGlvbiB0byA9b3JnLWF0dGFjaD0gZm9yIHVuc2V0dGluZwphdHRhY2htZW50 LWRpcmVjdG9yaWVzIChpLmUuIHJlbW92ZSBESVIgcHJvcGVydHkgYW5kIGRlYWwgd2l0aCB0aGUK YXR0YWNobWVudHMgYnkgaW50ZXJhY3Rpb24pLgoKQWRkZWQgYXR0YWNobWVudCBsaW5rIHR5cGUg d2l0aCB0aGUgcHJlZml4ICJhdHRhY2htZW50OiIuCgpBZGRlZCBjdXN0b21pemF0aW9uczoKLSBv cmctYXR0YWNoLWRpci1yZWxhdGl2ZQotIG9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2QK LSBvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5jZQotIG9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5j dGlvbgoKSG9va3MgYWRkZWQ6Ci0gb3JnLWF0dGFjaC1hZnRlci1jaGFuZ2UtaG9vawotIG9yZy1h dHRhY2gtb3Blbi1ob29rCgoqIEFkZCBuZXcgbGlua3R5cGUgImF0dGFjaG1lbnQiIGZvciBhdHRh Y2htZW50cwoKQSBuZXcgbGlua3R5cGUgImF0dGFjaG1lbnQiIGlzIGFkZGVkIGluIG9yZGVyIHRv IHJlZHVjZQpsaW5rLWR1cGxpY2F0aW9uIHdoZW4gd2FudGluZyB0byBsaW5rIHRvIGZpbGVzIGlu IGF0dGFjaGVkIGZvbGRlcnMgb2YKbm9kZXMuICBUaGlzIHdvcmtzIGZvciBib3RoIElEIGFuZCBE SVIgcHJvcGVydGllcy4gIFRoZSBnb2FsIGlzIHRvCm1ha2UgdGhlIGZ1bmN0aW9uYWxpdHkgZm9y IGF0dGFjaG1lbnQgbGlua3MgbWlycm9yIHRoZSBmdW5jdGlvbmFsaXR5CmZvciBmaWxlIGxpbmtz LgoKKiBvcmctYXR0YWNoLWdpdC5lbAoKTmV3IGZpbGUsIGV4aXN0aW5nIGZ1bmN0aW9uYWxpdHku ICBDb2RlIGhlcmUgaGFzIGJlZW4gZmFjdG9yZWQgb3V0CmZyb20gb3JnLWF0dGFjaC5lbCBhbmQg aWYgR0lULWZ1bmN0aW9uYWxpdHkgaXMgdG8gYmUgdXNlZCB0aGlzIG1vZHVsZQpuZWVkcyB0byBi ZSByZXF1aXJlZCBzZXBhdGF0ZWx5LiAgSXQgZXh0ZW5kcyBvcmctYXR0YWNoIGJ5IHVzZSBvZiBp dHMKaG9va3MuCgpBY3RpdmF0aW5nIGdpdCBmdW5jdGlvbmFsaXR5IGluIG9yZy1hdHRhY2ggaXMg ZG9uZSBieSBsb2FkaW5nCm9yZy1hdHRhY2gtZ2l0IGZyb20gbm93IG9uLCBpbnN0ZWFkIG9mIGN1 c3RvbWl6aW5nIGEgdmFyaWFibGUuCgpOYW1pbmcgb2YgYm90aCBmdW5jdGlvbnMgYW5kIHRlc3Rz IGhhcyBiZWVuIG1vZGlmaWVkIHRvIG1hdGNoIHRoZSBtb3ZlCm9mIGZ1bmN0aW9uYWxpdHkgaW50 byBpdHMgb3duIG1vZHVsZS4KCiogb3JnLmVsCgpJbmxpbmUgaW1hZ2VzIGFyZSBzaG93biBhbHNv IHVzaW5nIGF0dGFjaG1lbnQtbGlua3MsIGV4YWN0bHkgdGhlIHNhbWUKYXMgaXQgd29ya3MgZm9y IGZpbGUtbGlua3MgdG9kYXkuCgpNYWtlIG9yZy1vcGVuLWF0LXBvaW50IHJlc3BlY3QgQVJHIHdo ZW4gb3BlbmluZyBhdHRhY2htZW50LWRpci4KCiogb3JnLWNvbXBhdC5lbAoKb3JnLWF0dGFjaC1k aXJlY3RvcnkgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvdXIgZm9yCm9yZy1hdHRhY2gtaWQt ZGlyLiAgVGhlIG5ldyBuYW1lIG1hdGNoZXMgaXRzIHB1cnBvc2UgYmV0dGVyLgoKKiBvcmctbWFu dWFsLm9yZwoKVGhlIGNoYXB0ZXIgIlJlZmlsZSwgQ29weSwgQXJjaGl2ZSIgaGFzIGJlZW4gc3Bs aXQgaW50byB0d28gc2VwYXJhdGUKY2hhcHRlcnMuCi0gIlJlZmlsZSwgQ29weSBhbmQgQXJjaGl2 aW5nIiBmb3IgaW5mb3JtYXRpb24gcmVsYXRlZCB0byBtb3ZpbmcKICBleGlzdGluZyBkYXRhIGFy b3VuZC4KCi0gIkNhcHR1cmUsIEF0dGFjaG1lbnRzLCBSU1MgRmVlZHMgYW5kIFByb3RvY29scyIg Zm9yIGluZm9ybWF0aW9uCiAgcmVsYXRlZCB0byB3b3JraW5nIHdpdGggZXh0ZXJuYWwgZGF0YS4K ClRoZSBhdHRhY2htZW50LXBhcnQgaGFzIGJlZW4gcmV3cml0dGVuIGFuZCBleHRlbmRlZCB0byBt YXRjaCB0aGUKY2hhbmdlcyBpbiB0aGlzIHBhdGNoLgoKVGhlIG5ldyBhdHRhY2htZW50IGxpbmsg dHlwZSBpcyBtZW50aW9uZWQgYm90aCBpbnNpZGUgdGhlIGF0dGFjaG1lbnRzCmNoYXB0ZXIgYW5k IGluIHRoZSBjaGFwdGVyIGRlYWxpbmcgd2l0aCBsaW5rcy4KCkRvY3VtZW50YXRpb24gcmVsYXRl ZCB0byBleHRlcm5hbCBsaW5rcyBoYXMgYmVlbiBpbXByb3ZlZC4KCiogdGVzdGluZy9saXNwL3Rl c3Qtb3JnLWF0dGFjaC1hbm5leC5lbAoKUmVxdWlyZSBvcmctYXR0YWNoLWdpdCBpbnN0ZWFkIG9m IG9yZy1hdHRhY2gsIHNpbmNlIHRoaXMgZmlsZSB0ZXN0cwp0aGUgR0lULWZ1bmN0aW9uYWxpdHku CgoqIHRlc3Rpbmcvb3JnLXRlc3QuZWwKCkRlZmluZSBhIHN5bWJvbCBmb3IgYSBmaWxlIHRvIHRl c3QgYXR0YWNobWVudHMgd2l0aC4KCiogdGVzdGluZy9leGFtcGxlcy8qCgpBIGJ1bmNoIG9mIG5l dyBleGFtcGxlIGZpbGVzIGFuZCBmb2xkZXJzIGFyZSBjcmVhdGVkIGFuZCBhcmUgdXNlZCBpbgp0 ZXN0aW5nIG9mIG9yZy1hdHRhY2ggdG8gdmVyaWZ5IGl0cyBmdW5jdGlvbmFsaXR5LgotLS0KIGRv Yy9vcmctbWFudWFsLm9yZyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNzkgKysrKysr KysrKy0tLS0tLS0KIGV0Yy9PUkctTkVXUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgOTMgKysKIGxpc3Avb3JnLWF0dGFjaC1naXQuZWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAxMTggKysKIGxpc3Avb3JnLWF0dGFjaC5lbCAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICA1NjMgKysrKystLS0tCiBsaXNwL29yZy1jb21wYXQuZWwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAzICsKIGxpc3Avb3JnLmVsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMjMgKy0KIHRlc3RpbmcvZXhhbXBsZXMvYXR0MS9maWxlQSAgICAgICAgICAg ICAgICAgICB8ICAgIDEgKwogdGVzdGluZy9leGFtcGxlcy9hdHQxL2ZpbGVCICAgICAgICAgICAg ICAgICAgIHwgICAgMSArCiB0ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUMgICAgICAgICAgICAg ICAgICAgfCAgICAxICsKIHRlc3RpbmcvZXhhbXBsZXMvYXR0Mi9maWxlRCAgICAgICAgICAgICAg ICAgICB8ICAgIDEgKwogdGVzdGluZy9leGFtcGxlcy9hdHRhY2htZW50cy5vcmcgICAgICAgICAg ICAgIHwgICAzMiArCiB0ZXN0aW5nL2V4YW1wbGVzL2RhdGEvYWIvY2QxMjMvZmlsZUUgICAgICAg ICAgfCAgICAxICsKIC4uLmF0dGFjaC1hbm5leC5lbCA9PiB0ZXN0LW9yZy1hdHRhY2gtZ2l0LmVs fSB8ICAgMTIgKy0KIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy1hdHRhY2guZWwgICAgICAgICAgICAg ICB8ICAgNjkgKysKIHRlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDYgKy0KIHRlc3Rpbmcvb3JnLXRlc3QuZWwgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDMgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTMwNyBpbnNlcnRpb25zKCspLCA2OTkgZGVs ZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbGlzcC9vcmctYXR0YWNoLWdpdC5lbAogY3Jl YXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvZXhhbXBsZXMvYXR0MS9maWxlQQogY3JlYXRlIG1vZGUg MTAwNjQ0IHRlc3RpbmcvZXhhbXBsZXMvYXR0MS9maWxlQgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RpbmcvZXhhbXBsZXMvYXR0Mi9maWxlQwogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvZXhh bXBsZXMvYXR0Mi9maWxlRAogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvZXhhbXBsZXMvYXR0 YWNobWVudHMub3JnCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9leGFtcGxlcy9kYXRhL2Fi L2NkMTIzL2ZpbGVFCiByZW5hbWUgdGVzdGluZy9saXNwL3t0ZXN0LW9yZy1hdHRhY2gtYW5uZXgu ZWwgPT4gdGVzdC1vcmctYXR0YWNoLWdpdC5lbH0gKDkzJSkKCmRpZmYgLS1naXQgYS9kb2Mvb3Jn LW1hbnVhbC5vcmcgYi9kb2Mvb3JnLW1hbnVhbC5vcmcKaW5kZXggNDY5ZTE2NDAyLi44MDFjY2E2 MTcgMTAwNjQ0Ci0tLSBhL2RvYy9vcmctbWFudWFsLm9yZworKysgYi9kb2Mvb3JnLW1hbnVhbC5v cmcKQEAgLTMwNjgsNiArMzA2OCw3IEBAIHBvaW50IG9uIG9yIGF0IGEgdGFyZ2V0LgogIytjaW5k ZXg6IGlyYyBsaW5rcwogIytjaW5kZXg6IFVSTCBsaW5rcwogIytjaW5kZXg6IGZpbGUgbGlua3MK KyMrY2luZGV4OiBhdHRhY2htZW50IGxpbmtzCiAjK2NpbmRleDogUm1haWwgbGlua3MKICMrY2lu ZGV4OiBNSC1FIGxpbmtzCiAjK2NpbmRleDogVXNlbmV0IGxpbmtzCkBAIC0zMDc5LDM4ICszMDgw LDExNCBAQCBPcmcgc3VwcG9ydHMgbGlua3MgdG8gZmlsZXMsIHdlYnNpdGVzLCBVc2VuZXQgYW5k IGVtYWlsIG1lc3NhZ2VzLCBCQkRCCiBkYXRhYmFzZSBlbnRyaWVzIGFuZCBsaW5rcyB0byBib3Ro IElSQyBjb252ZXJzYXRpb25zIGFuZCB0aGVpciBsb2dzLgogRXh0ZXJuYWwgbGlua3MgYXJlIFVS TC1saWtlIGxvY2F0b3JzLiAgVGhleSBzdGFydCB3aXRoIGEgc2hvcnQKIGlkZW50aWZ5aW5nIHN0 cmluZyBmb2xsb3dlZCBieSBhIGNvbG9uLiAgVGhlcmUgY2FuIGJlIG5vIHNwYWNlIGFmdGVyCi10 aGUgY29sb24uICBUaGUgZm9sbG93aW5nIGxpc3Qgc2hvd3MgZXhhbXBsZXMgZm9yIGVhY2ggbGlu ayB0eXBlLgotCi18ID1odHRwOi8vd3d3LmFzdHJvLnV2YS5ubC89ZG9taW5paz0gICAgICAgIHwg b24gdGhlIHdlYiAgICAgICAgICAgICAgICAgICAgIHwKLXwgPWRvaToxMC4xMDAwLzE4Mj0gICAg ICAgICAgICAgICAgICAgICAgICAgfCBET0kgZm9yIGFuIGVsZWN0cm9uaWMgcmVzb3VyY2UgfAot fCA9ZmlsZTovaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVyLmpwZz0gICB8IGZpbGUsIGFic29s dXRlIHBhdGggICAgICAgICAgICB8Ci18ID0vaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVyLmpw Zz0gICAgICAgIHwgc2FtZSBhcyBhYm92ZSAgICAgICAgICAgICAgICAgIHwKLXwgPWZpbGU6cGFw ZXJzL2xhc3QucGRmPSAgICAgICAgICAgICAgICAgICAgfCBmaWxlLCByZWxhdGl2ZSBwYXRoICAg ICAgICAgICAgfAotfCA9Li9wYXBlcnMvbGFzdC5wZGY9ICAgICAgICAgICAgICAgICAgICAgICB8 IHNhbWUgYXMgYWJvdmUgICAgICAgICAgICAgICAgICB8Ci18ID1maWxlOi9zc2g6bWVAc29tZS53 aGVyZTpwYXBlcnMvbGFzdC5wZGY9IHwgZmlsZSwgcGF0aCBvbiByZW1vdGUgbWFjaGluZSAgIHwK LXwgPS9zc2g6bWVAc29tZS53aGVyZTpwYXBlcnMvbGFzdC5wZGY9ICAgICAgfCBzYW1lIGFzIGFi b3ZlICAgICAgICAgICAgICAgICAgfAotfCA9ZmlsZTpzb21ldGV4dGZpbGU6Ok5OTj0gICAgICAg ICAgICAgICAgICB8IGZpbGUsIGp1bXAgdG8gbGluZSBudW1iZXIgICAgICB8Ci18ID1maWxlOnBy b2plY3RzLm9yZz0gICAgICAgICAgICAgICAgICAgICAgIHwgYW5vdGhlciBPcmcgZmlsZSAgICAg ICAgICAgICAgIHwKLXwgPWZpbGU6cHJvamVjdHMub3JnOjpzb21lIHdvcmRzPSAgICAgICAgICAg fCB0ZXh0IHNlYXJjaCBpbiBPcmcgZmlsZVtmbjoyN10gfAotfCA9ZmlsZTpwcm9qZWN0cy5vcmc6 Oip0YXNrIHRpdGxlPSAgICAgICAgICB8IGhlYWRpbmcgc2VhcmNoIGluIE9yZyBmaWxlICAgICB8 Ci18ID1maWxlK3N5czovcGF0aC90by9maWxlPSAgICAgICAgICAgICAgICAgIHwgb3BlbiB2aWEg T1MsIGxpa2UgZG91YmxlLWNsaWNrIHwKLXwgPWZpbGUrZW1hY3M6L3BhdGgvdG8vZmlsZT0gICAg ICAgICAgICAgICAgfCBmb3JjZSBvcGVuaW5nIGJ5IEVtYWNzICAgICAgICAgfAotfCA9ZG9jdmll dzpwYXBlcnMvbGFzdC5wZGY6Ok5OTj0gICAgICAgICAgICB8IG9wZW4gaW4gZG9jLXZpZXcgbW9k ZSBhdCBwYWdlICB8Ci18ID1pZDpCNzQyM0Y0RC0yRThBLTQ3MUItODgxMC1DNDBGMDc0NzE3RTk9 IHwgbGluayB0byBoZWFkaW5nIGJ5IElEICAgICAgICAgIHwKLXwgPW5ld3M6Y29tcC5lbWFjcz0g ICAgICAgICAgICAgICAgICAgICAgICAgfCBVc2VuZXQgbGluayAgICAgICAgICAgICAgICAgICAg fAotfCA9bWFpbHRvOmFkZW50QGdhbGF4eS5uZXQ9ICAgICAgICAgICAgICAgICB8IG1haWwgbGlu ayAgICAgICAgICAgICAgICAgICAgICB8Ci18ID1taGU6Zm9sZGVyPSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgTUgtRSBmb2xkZXIgbGluayAgICAgICAgICAgICAgIHwKLXwgPW1oZTpm b2xkZXIjaWQ9ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBNSC1FIG1lc3NhZ2UgbGluayAg ICAgICAgICAgICAgfAotfCA9cm1haWw6Zm9sZGVyPSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IFJtYWlsIGZvbGRlciBsaW5rICAgICAgICAgICAgICB8Ci18ID1ybWFpbDpmb2xkZXIjaWQ9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgUm1haWwgbWVzc2FnZSBsaW5rICAgICAgICAgICAg IHwKLXwgPWdudXM6Z3JvdXA9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBHbnVzIGdy b3VwIGxpbmsgICAgICAgICAgICAgICAgfAotfCA9Z251czpncm91cCNpZD0gICAgICAgICAgICAg ICAgICAgICAgICAgICB8IEdudXMgYXJ0aWNsZSBsaW5rICAgICAgICAgICAgICB8Ci18ID1iYmRi OlIuKlN0YWxsbWFuPSAgICAgICAgICAgICAgICAgICAgICAgIHwgQkJEQiBsaW5rICh3aXRoIHJl Z2V4cCkgICAgICAgIHwKLXwgPWlyYzovaXJjLmNvbS8jZW1hY3MvYm9iPSAgICAgICAgICAgICAg ICAgfCBJUkMgbGluayAgICAgICAgICAgICAgICAgICAgICAgfAotfCA9aW5mbzpvcmcjRXh0ZXJu YWwgbGlua3M9ICAgICAgICAgICAgICAgICB8IEluZm8gbm9kZSBsaW5rICAgICAgICAgICAgICAg ICB8Ci18ID1zaGVsbDpscyAqLm9yZz0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2hlbGwg Y29tbWFuZCAgICAgICAgICAgICAgICAgIHwKLXwgPWVsaXNwOm9yZy1hZ2VuZGE9ICAgICAgICAg ICAgICAgICAgICAgICAgfCBpbnRlcmFjdGl2ZSBFbGlzcCBjb21tYW5kICAgICAgfAotfCA9ZWxp c3A6KGZpbmQtZmlsZSAiRWxpc3Aub3JnIik9ICAgICAgICAgICB8IEVsaXNwIGZvcm0gdG8gZXZh bHVhdGUgICAgICAgICB8Cit0aGUgY29sb24uCisKK0hlcmUgaXMgdGhlIGZ1bGwgc2V0IG9mIGJ1 aWx0LWluIGxpbmsgdHlwZXM6CisKKy0gPWZpbGU9IDo6CisKKyAgIEZpbGUgbGlua3MuICBGaWxl IG5hbWUgbWF5IGJlIHJlbW90ZSwgYWJzb2x1dGUsIG9yIHJlbGF0aXZlLgorCisgICBBZGRpdGlv bmFsbHksIHlvdSBjYW4gc3BlY2lmeSBhIGxpbmUgbnVtYmVyLCBvciBhIHRleHQgc2VhcmNoLgor ICAgSW4gT3JnIGZpbGVzLCB5b3UgbWF5IGxpbmsgdG8gYSBoZWFkbGluZSBuYW1lLCBhIGN1c3Rv bSBJRCwgb3IgYQorICAgY29kZSByZWZlcmVuY2UgaW5zdGVhZC4KKworICAgQXMgYSBzcGVjaWFs IGNhc2UsICJmaWxlIiBwcmVmaXggbWF5IGJlIG9taXR0ZWQgaWYgdGhlIGZpbGUgbmFtZQorICAg aXMgY29tcGxldGUsIGUuZy4sIGl0IHN0YXJ0cyB3aXRoID0uLz0sIG9yID0vPS4KKworLSA9YXR0 YWNobWVudD0gOjoKKworICBTYW1lIGFzIGZpbGUgbGlua3MgYnV0IGZvciBmaWxlcyBhbmQgZm9s ZGVycyBhdHRhY2hlZCB0byB0aGUgY3VycmVudAorICBub2RlIChzZWUgW1sqQXR0YWNobWVudHNd XSkuICBBdHRhY2htZW50IGxpbmtzIGFyZSBpbnRlbmRlZCB0byBiZWhhdmUKKyAgZXhhY3RseSBh cyBmaWxlIGxpbmtzIGJ1dCBmb3IgZmlsZXMgcmVsYXRpdmUgdG8gdGhlIGF0dGFjaG1lbnQKKyAg ZGlyZWN0b3J5LgorCistID1iYmRiPSA6OgorCisgIExpbmsgdG8gYSBCQkRCIHJlY29yZCwgd2l0 aCBwb3NzaWJsZSByZWdleHAgY29tcGxldGlvbi4KKworLSA9ZG9jdmlldz0gOjoKKworICBMaW5r IHRvIGEgZG9jdW1lbnQgb3BlbmVkIHdpdGggRG9jVmlldyBtb2RlLiAgWW91IG1heSBzcGVjaWZ5 IGEgcGFnZQorICBudW1iZXIuCisKKy0gPWRvaT0gOjoKKworICBMaW5rIHRvIGFuIGVsZWN0cm9u aWMgcmVzc291cmNlLCB0aHJvdWdoIGl0cyBoYW5kbGUuCisKKy0gPWVsaXNwPSA6OgorCisgIEV4 ZWN1dGUgYW4gRWxpc3AgY29tbWFuZCB1cG9uIGFjdGl2YXRpb24uCisKKy0gPWdudXM9LCA9cm1h aWw9LCA9bWhlPSA6OgorCisgIExpbmtzIHRvIG1lc3NhZ2VzIG9yIGZvbGRlcnMgZnJvbSBhIGdp dmVuIEVtYWNzJyBNVUEuCisKKy0gPWh0dHA9LCA9aHR0cHM9IDo6CisKKyAgV2ViIGxpbmtzLgor CistID1pZD0gOjoKKworICBMaW5rIHRvIGEgc3BlY2lmaWMgaGVhZGxpbmUgYnkgaXRzIElEIHBy b3BlcnR5LCBpbiBhbiBPcmcgZmlsZS4KKworLSA9aW5mbz0gOjoKKworICBMaW5rIHRvIGFuIElu Zm8gbWFudWFsLCBvciB0byBhIHNwZWNpZmljIG5vZGUuCisKKy0gPWlyYz0gOjoKKworICBMaW5r IHRvIGFuIElSQyBjaGFubmVsLgorCistID1tYWlsdG89IDo6CisKKyAgTGluayB0byBtZXNzYWdl IGNvbXBvc2l0aW9uLgorCistID1uZXdzPSA6OgorCisgIFVzZW5ldCBsaW5rcy4KKworLSA9c2hl bGw9IDo6CisKKyAgRXhlY3V0ZSBhIHNoZWxsIGNvbW1hbmQgdXBvbiBhY3RpdmF0aW9uLgorCitU aGUgZm9sbG93aW5nIHRhYmxlIGlsbHVzdHJhdGVzIHRoZSBsaW5rIHR5cGVzIGFib3ZlLCBhbG9u ZyB3aXRoIHRoZWlyCitvcHRpb25zOgorCit8IExpbmsgVHlwZSAgfCBFeGFtcGxlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8LS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS18Cit8IGh0dHAgICAgICAgfCA9aHR0cDovL3d3dy5hc3Ryby51dmEubmwvPWRvbWluaWs9ICAg ICAgICAgICAgICAgICAgICAgICB8Cit8IGh0dHBzICAgICAgfCA9aHR0cHM6Ly9vcmdtb2RlLm9y Zy89ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGRvaSAgICAgICAgfCA9 ZG9pOjEwLjEwMDAvMTgyPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 Cit8IGZpbGUgICAgICAgfCA9ZmlsZTovaG9tZS9kb21pbmlrL2ltYWdlcy9qdXBpdGVyLmpwZz0g ICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9L2hvbWUvZG9taW5pay9pbWFnZXMv anVwaXRlci5qcGc9IChzYW1lIGFzIGFib3ZlKSAgICAgICB8Cit8ICAgICAgICAgICAgfCA9Zmls ZTpwYXBlcnMvbGFzdC5wZGY9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8 ICAgICAgICAgICAgfCA9Li9wYXBlcnMvbGFzdC5wZGY9IChzYW1lIGFzIGFib3ZlKSAgICAgICAg ICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTovc3NoOm1lQHNvbWUud2hlcmU6 cGFwZXJzL2xhc3QucGRmPSAocmVtb3RlKSAgICAgICB8Cit8ICAgICAgICAgICAgfCA9L3NzaDpt ZUBzb21lLndoZXJlOnBhcGVycy9sYXN0LnBkZj0gKHNhbWUgYXMgYWJvdmUpICAgICB8Cit8ICAg ICAgICAgICAgfCA9ZmlsZTpzb21ldGV4dGZpbGU6Ok5OTj0gKGp1bXAgdG8gbGluZSBudW1iZXIp ICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTpwcm9qZWN0cy5vcmc9ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTpwcm9q ZWN0cy5vcmc6OnNvbWUgd29yZHM9ICh0ZXh0IHNlYXJjaCkgW2ZuOjI4XSAgICB8Cit8ICAgICAg ICAgICAgfCA9ZmlsZTpwcm9qZWN0cy5vcmc6Oip0YXNrIHRpdGxlPSAoaGVhZGxpbmUgc2VhcmNo KSAgICAgICB8Cit8ICAgICAgICAgICAgfCA9ZmlsZTpwcm9qZWN0cy5vcmc6OiNjdXN0b20taWQ9 IChoZWFkbGluZSBzZWFyY2gpICAgICAgICB8Cit8IGF0dGFjaG1lbnQgfCA9YXR0YWNobWVudDpw cm9qZWN0cy5vcmc9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAg ICAgfCA9YXR0YWNobWVudDpwcm9qZWN0cy5vcmc6OnNvbWUgd29yZHM9ICh0ZXh0IHNlYXJjaCkg ICAgICB8Cit8IGRvY3ZpZXcgICAgfCA9ZG9jdmlldzpwYXBlcnMvbGFzdC5wZGY6Ok5OTj0gICAg ICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGlkICAgICAgICAgfCA9aWQ6Qjc0MjNGNEQtMkU4 QS00NzFCLTg4MTAtQzQwRjA3NDcxN0U5PSAgICAgICAgICAgICAgICB8Cit8IG5ld3MgICAgICAg fCA9bmV3czpjb21wLmVtYWNzPSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8Cit8IG1haWx0byAgICAgfCA9bWFpbHRvOmFkZW50QGdhbGF4eS5uZXQ9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8Cit8IG1oZSAgICAgICAgfCA9bWhlOmZvbGRlcj0gKGZvbGRl ciBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9 bWhlOmZvbGRlciNpZD0gKG1lc3NhZ2UgbGluaykgICAgICAgICAgICAgICAgICAgICAgICAgICB8 Cit8IHJtYWlsICAgICAgfCA9cm1haWw6Zm9sZGVyPSAoZm9sZGVyIGxpbmspICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8Cit8ICAgICAgICAgICAgfCA9cm1haWw6Zm9sZGVyI2lkPSAobWVz c2FnZSBsaW5rKSAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGdudXMgICAgICAgfCA9Z251 czpncm91cD0gKGdyb3VwIGxpbmspICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8 ICAgICAgICAgICAgfCA9Z251czpncm91cCNpZD0gKGFydGljbGUgbGluaykgICAgICAgICAgICAg ICAgICAgICAgICAgICB8Cit8IGJiZGIgICAgICAgfCA9YmJkYjpSLipTdGFsbG1hbj0gKHJlY29y ZCB3aXRoIHJlZ2V4cCkgICAgICAgICAgICAgICAgICB8Cit8IGlyYyAgICAgICAgfCA9aXJjOi9p cmMuY29tLyNlbWFjcy9ib2I9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGlu Zm8gICAgICAgfCA9aW5mbzpvcmcjRXh0ZXJuYWwgbGlua3M9ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8Cit8IHNoZWxsICAgICAgfCA9c2hlbGw6bHMgKi5vcmc9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cit8IGVsaXNwICAgICAgfCA9ZWxpc3A6KGZp bmQtZmlsZSAiRWxpc3Aub3JnIik9IChFbGlzcCBmb3JtIHRvIGV2YWx1YXRlKSB8Cit8ICAgICAg ICAgICAgfCA9ZWxpc3A6b3JnLWFnZW5kYT0gKGludGVyYWN0aXZlIEVsaXNwIGNvbW1hbmQpICAg ICAgICAgICB8CiAKICMrY2luZGV4OiBWTSBsaW5rcwogIytjaW5kZXg6IFdhbmRlcmx1c3QgbGlu a3MKQEAgLTM0NjIsMTUgKzM1MzksMTkgQEAgdGhlIGxpbmsgY29tcGxldGlvbiBmdW5jdGlvbiBs aWtlIHRoaXM6CiA6RU5EOgogIytjaW5kZXg6IHNlYXJjaCBvcHRpb24gaW4gZmlsZSBsaW5rcwog IytjaW5kZXg6IGZpbGUgbGlua3MsIHNlYXJjaGluZworIytjaW5kZXg6IGF0dGFjaG1lbnQgbGlu a3MsIHNlYXJjaGluZwogCi1GaWxlIGxpbmtzIGNhbiBjb250YWluIGFkZGl0aW9uYWwgaW5mb3Jt YXRpb24gdG8gbWFrZSBFbWFjcyBqdW1wIHRvCi1hIHBhcnRpY3VsYXIgbG9jYXRpb24gaW4gdGhl IGZpbGUgd2hlbiBmb2xsb3dpbmcgYSBsaW5rLiAgVGhpcyBjYW4gYmUKLWEgbGluZSBudW1iZXIg b3IgYSBzZWFyY2ggb3B0aW9uIGFmdGVyIGEgZG91YmxlIGNvbG9uW2ZuOjM0XS4gIEZvcgorRmls ZSBsaW5rcyBjYW4gY29udGFpbiBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHRvIG1ha2UgRW1hY3Mg anVtcCB0byBhCitwYXJ0aWN1bGFyIGxvY2F0aW9uIGluIHRoZSBmaWxlIHdoZW4gZm9sbG93aW5n IGEgbGluay4gIFRoaXMgY2FuIGJlIGEKK2xpbmUgbnVtYmVyIG9yIGEgc2VhcmNoIG9wdGlvbiBh ZnRlciBhIGRvdWJsZSBjb2xvbltmbjozNF0uICBGb3IKIGV4YW1wbGUsIHdoZW4gdGhlIGNvbW1h bmQgfm9yZy1zdG9yZS1saW5rfiBjcmVhdGVzIGEgbGluayAoc2VlCiBbWypIYW5kbGluZyBMaW5r c11dKSB0byBhIGZpbGUsIGl0IGVuY29kZXMgdGhlIHdvcmRzIGluIHRoZSBjdXJyZW50IGxpbmUK IGFzIGEgc2VhcmNoIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbmQgdGhpcyBsaW5lIGJh Y2sgbGF0ZXIgd2hlbgogZm9sbG93aW5nIHRoZSBsaW5rIHdpdGgge3t7a2JkKEMtYyBDLW8pfX19 LgogCitOb3RlIHRoYXQgYWxsIHNlYXJjaCBvcHRpb25zIGFwcGx5IGZvciBBdHRhY2htZW50IGxp bmtzIGluIHRoZSBzYW1lCit3YXkgdGhhdCB0aGV5IGFwcGx5IGZvciBGaWxlIGxpbmtzLgorCiBI ZXJlIGlzIHRoZSBzeW50YXggb2YgdGhlIGRpZmZlcmVudCB3YXlzIHRvIGF0dGFjaCBhIHNlYXJj aCB0byBhIGZpbGUKIGxpbmssIHRvZ2V0aGVyIHdpdGggZXhwbGFuYXRpb25zIGZvciBlYWNoOgog CkBAIC0zNDgwLDYgKzM1NjEsNyBAQCBsaW5rLCB0b2dldGhlciB3aXRoIGV4cGxhbmF0aW9ucyBm b3IgZWFjaDoKIFtbZmlsZTp+L3h4Lm9yZzo6Kk15IFRhcmdldF1dCiBbW2ZpbGU6fi94eC5vcmc6 OiNteS1jdXN0b20taWRdXQogW1tmaWxlOn4veHgub3JnOjovcmVnZXhwL11dCitbW2F0dGFjaG1l bnQ6bWFpbi5jOjoyNTVdXQogIytlbmRfZXhhbXBsZQogCiAtID0yNTU9IDo6CkBAIC02ODkzLDE2 MyArNjk3NSw0MjAgQEAgc2FtZSBjb21tYW5kcy4KICAgY29udGludWUgdGhlIG9sZCBvbmUuICBU aGlzIGNvbW1hbmQgYWxzbyByZW1vdmVzIHRoZSB0aW1lciBmcm9tIHRoZQogICBtb2RlIGxpbmUu CiAKLSogQ2FwdHVyZSwgUmVmaWxlLCBBcmNoaXZlCi06UFJPUEVSVElFUzoKLTpERVNDUklQVElP TjogVGhlIGlucyBhbmQgb3V0cyBmb3IgcHJvamVjdHMuCi06RU5EOgotIytjaW5kZXg6IGNhcHR1 cmUKLQotQW4gaW1wb3J0YW50IHBhcnQgb2YgYW55IG9yZ2FuaXphdGlvbiBzeXN0ZW0gaXMgdGhl IGFiaWxpdHkgdG8gcXVpY2tseQotY2FwdHVyZSBuZXcgaWRlYXMgYW5kIHRhc2tzLCBhbmQgdG8g YXNzb2NpYXRlIHJlZmVyZW5jZSBtYXRlcmlhbCB3aXRoCi10aGVtLiAgT3JnIGRvZXMgdGhpcyB1 c2luZyBhIHByb2Nlc3MgY2FsbGVkIC9jYXB0dXJlLy4gIEl0IGFsc28gY2FuCi1zdG9yZSBmaWxl cyByZWxhdGVkIHRvIGEgdGFzayAoL2F0dGFjaG1lbnRzLykgaW4gYSBzcGVjaWFsIGRpcmVjdG9y eS4KLU9uY2UgaW4gdGhlIHN5c3RlbSwgdGFza3MgYW5kIHByb2plY3RzIG5lZWQgdG8gYmUgbW92 ZWQgYXJvdW5kLgotTW92aW5nIGNvbXBsZXRlZCBwcm9qZWN0IHRyZWVzIHRvIGFuIGFyY2hpdmUg ZmlsZSBrZWVwcyB0aGUgc3lzdGVtCi1jb21wYWN0IGFuZCBmYXN0LgotCi0qKiBDYXB0dXJlCisq IFJlZmlsZSwgQ29weSBhbmQgQXJjaGl2aW5nCiA6UFJPUEVSVElFUzoKLTpERVNDUklQVElPTjog Q2FwdHVyaW5nIG5ldyBzdHVmZi4KKzpERVNDUklQVElPTjogTW92aW5nIGFuZCBjb3B5aW5nIGlu Zm9ybWF0aW9uIHdpdGggZWFzZS4KIDpFTkQ6Ci0jK2NpbmRleDogY2FwdHVyZQorIytjaW5kZXg6 IHJlZmlsaW5nIG5vdGVzCisjK2NpbmRleDogY29weWluZyBub3RlcworIytjaW5kZXg6IGFyY2hp dmluZwogCi1DYXB0dXJlIGxldHMgeW91IHF1aWNrbHkgc3RvcmUgbm90ZXMgd2l0aCBsaXR0bGUg aW50ZXJydXB0aW9uIG9mIHlvdXIKLXdvcmsgZmxvdy4gIE9yZydzIG1ldGhvZCBmb3IgY2FwdHVy aW5nIG5ldyBpdGVtcyBpcyBoZWF2aWx5IGluc3BpcmVkCi1ieSBKb2huIFdpZWdsZXkncyBleGNl bGxlbnQgUmVtZW1iZXIgcGFja2FnZS4KK09uY2UgaW5mb3JtYXRpb24gaXMgaW4gdGhlIHN5c3Rl bSwgaXQgbWF5IG5lZWQgdG8gYmUgbW92ZWQgYXJvdW5kLgorT3JnIHByb3ZpZGVzIFJlZmlsZSwg Q29weSBhbmQgQXJjaGl2ZSBjb21tYW5kcyBmb3IgdGhpcy4gIFJlZmlsZSBhbmQKK0NvcHkgaGVs cHMgd2l0aCBtb3ZpbmcgYW5kIGNvcHlpbmcgb3V0bGluZXMuICBBcmNoaXZpbmcgaGVscHMgdG8g a2VlcAordGhlIHN5c3RlbSBjb21wYWN0IGFuZCBmYXN0LgogCi0qKiogU2V0dGluZyB1cCBjYXB0 dXJlCisqKiBSZWZpbGUgYW5kIENvcHkKIDpQUk9QRVJUSUVTOgotOkRFU0NSSVBUSU9OOiBXaGVy ZSBub3RlcyB3aWxsIGJlIHN0b3JlZC4KKzpERVNDUklQVElPTjogTW92aW5nL2NvcHlpbmcgYSB0 cmVlIGZyb20gb25lIHBsYWNlIHRvIGFub3RoZXIuCiA6RU5EOgorIytjaW5kZXg6IHJlZmlsaW5n IG5vdGVzCisjK2NpbmRleDogY29weWluZyBub3RlcwogCi1UaGUgZm9sbG93aW5nIGN1c3RvbWl6 YXRpb24gc2V0cyBhIGRlZmF1bHQgdGFyZ2V0IGZpbGUgZm9yIG5vdGVzLgorV2hlbiByZXZpZXdp bmcgdGhlIGNhcHR1cmVkIGRhdGEsIHlvdSBtYXkgd2FudCB0byByZWZpbGUgb3IgdG8gY29weQor c29tZSBvZiB0aGUgZW50cmllcyBpbnRvIGEgZGlmZmVyZW50IGxpc3QsIGZvciBleGFtcGxlIGlu dG8gYSBwcm9qZWN0LgorQ3V0dGluZywgZmluZGluZyB0aGUgcmlnaHQgbG9jYXRpb24sIGFuZCB0 aGVuIHBhc3RpbmcgdGhlIG5vdGUgaXMKK2N1bWJlcnNvbWUuICBUbyBzaW1wbGlmeSB0aGlzIHBy b2Nlc3MsIHlvdSBjYW4gdXNlIHRoZSBmb2xsb3dpbmcKK3NwZWNpYWwgY29tbWFuZDoKIAotIyt2 aW5kZXg6IG9yZy1kZWZhdWx0LW5vdGVzLWZpbGUKLSMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKLShz ZXRxIG9yZy1kZWZhdWx0LW5vdGVzLWZpbGUgKGNvbmNhdCBvcmctZGlyZWN0b3J5ICIvbm90ZXMu b3JnIikpCi0jK2VuZF9zcmMKKy0ge3t7a2JkKEMtYyBDLXcpfX19ICh+b3JnLXJlZmlsZX4pIDo6 CiAKLVlvdSBtYXkgYWxzbyBkZWZpbmUgYSBnbG9iYWwga2V5IGZvciBjYXB0dXJpbmcgbmV3IG1h dGVyaWFsIChzZWUKLVtbKkFjdGl2YXRpb25dXSkuCisgICMra2luZGV4OiBDLWMgQy13CisgICMr ZmluZGV4OiBvcmctcmVmaWxlCisgICMrdmluZGV4OiBvcmctcmV2ZXJzZS1ub3RlLW9yZGVyCisg ICMrdmluZGV4OiBvcmctcmVmaWxlLXRhcmdldHMKKyAgIyt2aW5kZXg6IG9yZy1yZWZpbGUtdXNl LW91dGxpbmUtcGF0aAorICAjK3ZpbmRleDogb3JnLW91dGxpbmUtcGF0aC1jb21wbGV0ZS1pbi1z dGVwcworICAjK3ZpbmRleDogb3JnLXJlZmlsZS1hbGxvdy1jcmVhdGluZy1wYXJlbnQtbm9kZXMK KyAgIyt2aW5kZXg6IG9yZy1sb2ctcmVmaWxlCisgIFJlZmlsZSB0aGUgZW50cnkgb3IgcmVnaW9u IGF0IHBvaW50LiAgVGhpcyBjb21tYW5kIG9mZmVycyBwb3NzaWJsZQorICBsb2NhdGlvbnMgZm9y IHJlZmlsaW5nIHRoZSBlbnRyeSBhbmQgbGV0cyB5b3Ugc2VsZWN0IG9uZSB3aXRoCisgIGNvbXBs ZXRpb24uICBUaGUgaXRlbSAob3IgYWxsIGl0ZW1zIGluIHRoZSByZWdpb24pIGlzIGZpbGVkIGJl bG93CisgIHRoZSB0YXJnZXQgaGVhZGluZyBhcyBhIHN1Yml0ZW0uICBEZXBlbmRpbmcgb24KKyAg fm9yZy1yZXZlcnNlLW5vdGUtb3JkZXJ+LCBpdCBpcyBlaXRoZXIgdGhlIGZpcnN0IG9yIGxhc3Qg c3ViaXRlbS4KIAotKioqIFVzaW5nIGNhcHR1cmUKLTpQUk9QRVJUSUVTOgotOkRFU0NSSVBUSU9O OiBDb21tYW5kcyB0byBpbnZva2UgYW5kIHRlcm1pbmF0ZSBjYXB0dXJlLgotOkVORDoKKyAgQnkg ZGVmYXVsdCwgYWxsIGxldmVsIDEgaGVhZGxpbmVzIGluIHRoZSBjdXJyZW50IGJ1ZmZlciBhcmUK KyAgY29uc2lkZXJlZCB0byBiZSB0YXJnZXRzLCBidXQgeW91IGNhbiBoYXZlIG1vcmUgY29tcGxl eCBkZWZpbml0aW9ucworICBhY3Jvc3MgYSBudW1iZXIgb2YgZmlsZXMuICBTZWUgdGhlIHZhcmlh YmxlIH5vcmctcmVmaWxlLXRhcmdldHN+IGZvcgorICBkZXRhaWxzLiAgSWYgeW91IHdvdWxkIGxp a2UgdG8gc2VsZWN0IGEgbG9jYXRpb24gdmlhCisgIGEgZmlsZS1wYXRoLWxpa2UgY29tcGxldGlv biBhbG9uZyB0aGUgb3V0bGluZSBwYXRoLCBzZWUgdGhlCisgIHZhcmlhYmxlcyB+b3JnLXJlZmls ZS11c2Utb3V0bGluZS1wYXRofiBhbmQKKyAgfm9yZy1vdXRsaW5lLXBhdGgtY29tcGxldGUtaW4t c3RlcHN+LiAgSWYgeW91IHdvdWxkIGxpa2UgdG8gYmUgYWJsZQorICB0byBjcmVhdGUgbmV3IG5v ZGVzIGFzIG5ldyBwYXJlbnRzIGZvciByZWZpbGluZyBvbiB0aGUgZmx5LCBjaGVjaworICB0aGUg dmFyaWFibGUgfm9yZy1yZWZpbGUtYWxsb3ctY3JlYXRpbmctcGFyZW50LW5vZGVzfi4gIFdoZW4g dGhlCisgIHZhcmlhYmxlIH5vcmctbG9nLXJlZmlsZX5bZm46ODhdIGlzIHNldCwgYSB0aW1lc3Rh bXAgb3IgYSBub3RlIGlzCisgIHJlY29yZGVkIHdoZW5ldmVyIGFuIGVudHJ5IGlzIHJlZmlsZWQu CiAKLS0ge3t7a2JkKE0teCBvcmctY2FwdHVyZSl9fX0gKH5vcmctY2FwdHVyZX4pIDo6CistIHt7 e2tiZChDLXUgQy1jIEMtdyl9fX0gOjoKIAotICAjK2ZpbmRleDogb3JnLWNhcHR1cmUKLSAgIytj aW5kZXg6IGRhdGUgdHJlZQotICBEaXNwbGF5IHRoZSBjYXB0dXJlIHRlbXBsYXRlcyBtZW51LiAg SWYgeW91IGhhdmUgdGVtcGxhdGVzIGRlZmluZWQKLSAgKHNlZSBbWypDYXB0dXJlIHRlbXBsYXRl c11dKSwgaXQgb2ZmZXJzIHRoZXNlIHRlbXBsYXRlcyBmb3Igc2VsZWN0aW9uIG9yCi0gIHVzZSBh IG5ldyBPcmcgb3V0bGluZSBub2RlIGFzIHRoZSBkZWZhdWx0IHRlbXBsYXRlLiAgSXQgaW5zZXJ0 cyB0aGUKLSAgdGVtcGxhdGUgaW50byB0aGUgdGFyZ2V0IGZpbGUgYW5kIHN3aXRjaCB0byBhbiBp bmRpcmVjdCBidWZmZXIKLSAgbmFycm93ZWQgdG8gdGhpcyBuZXcgbm9kZS4gIFlvdSBtYXkgdGhl biBpbnNlcnQgdGhlIGluZm9ybWF0aW9uIHlvdQotICB3YW50LgorICAjK2tpbmRleDogQy11IEMt YyBDLXcKKyAgVXNlIHRoZSByZWZpbGUgaW50ZXJmYWNlIHRvIGp1bXAgdG8gYSBoZWFkaW5nLgog Ci0tIHt7e2tiZChDLWMgQy1jKX19fSAofm9yZy1jYXB0dXJlLWZpbmFsaXplfikgOjoKKy0ge3t7 a2JkKEMtdSBDLXUgQy1jIEMtdyl9fX0gKH5vcmctcmVmaWxlLWdvdG8tbGFzdC1zdG9yZWR+KSA6 OgogCi0gICMra2luZGV4OiBDLWMgQy1jIEByeyhDYXB0dXJlIGJ1ZmZlcil9Ci0gICMrZmluZGV4 OiBvcmctY2FwdHVyZS1maW5hbGl6ZQotICBPbmNlIHlvdSBoYXZlIGZpbmlzaGVkIGVudGVyaW5n IGluZm9ybWF0aW9uIGludG8gdGhlIGNhcHR1cmUgYnVmZmVyLAotICB7e3trYmQoQy1jIEMtYyl9 fX0gcmV0dXJucyB5b3UgdG8gdGhlIHdpbmRvdyBjb25maWd1cmF0aW9uIGJlZm9yZQotICB0aGUg Y2FwdHVyZSBwcm9jZXNzLCBzbyB0aGF0IHlvdSBjYW4gcmVzdW1lIHlvdXIgd29yayB3aXRob3V0 Ci0gIGZ1cnRoZXIgZGlzdHJhY3Rpb24uICBXaGVuIGNhbGxlZCB3aXRoIGEgcHJlZml4IGFyZ3Vt ZW50LCBmaW5hbGl6ZQotICBhbmQgdGhlbiBqdW1wIHRvIHRoZSBjYXB0dXJlZCBpdGVtLgorICAj K2tpbmRleDogQy11IEMtdSBDLWMgQy13CisgICMrZmluZGV4OiBvcmctcmVmaWxlLWdvdG8tbGFz dC1zdG9yZWQKKyAgSnVtcCB0byB0aGUgbG9jYXRpb24gd2hlcmUgfm9yZy1yZWZpbGV+IGxhc3Qg bW92ZWQgYSB0cmVlIHRvLgogCi0tIHt7e2tiZChDLWMgQy13KX19fSAofm9yZy1jYXB0dXJlLXJl ZmlsZX4pIDo6CistIHt7e2tiZChDLTIgQy1jIEMtdyl9fX0gOjoKIAotICAjK2tpbmRleDogQy1j IEMtdyBAcnsoQ2FwdHVyZSBidWZmZXIpfQotICAjK2ZpbmRleDogb3JnLWNhcHR1cmUtcmVmaWxl Ci0gIEZpbmFsaXplIHRoZSBjYXB0dXJlIHByb2Nlc3MgYnkgcmVmaWxpbmcgdGhlIG5vdGUgdG8g YSBkaWZmZXJlbnQKLSAgcGxhY2UgKHNlZSBbWypSZWZpbGUgYW5kIENvcHldXSkuICBQbGVhc2Ug cmVhbGl6ZSB0aGF0IHRoaXMgaXMgYSBub3JtYWwKLSAgcmVmaWxpbmcgY29tbWFuZCB0aGF0IHdp bGwgYmUgZXhlY3V0ZWQtLS1zbyBwb2ludCBwb3NpdGlvbiBhdCB0aGUKLSAgbW9tZW50IHlvdSBy dW4gdGhpcyBjb21tYW5kIGlzIGltcG9ydGFudC4gIElmIHlvdSBoYXZlIGluc2VydGVkCi0gIGEg dHJlZSB3aXRoIGEgcGFyZW50IGFuZCBjaGlsZHJlbiwgZmlyc3QgbW92ZSBwb2ludCBiYWNrIHRv IHRoZQotICBwYXJlbnQuICBBbnkgcHJlZml4IGFyZ3VtZW50IGdpdmVuIHRvIHRoaXMgY29tbWFu ZCBpcyBwYXNzZWQgb24gdG8KLSAgdGhlIH5vcmctcmVmaWxlfiBjb21tYW5kLgorICAjK2tpbmRl eDogQy0yIEMtYyBDLXcKKyAgUmVmaWxlIGFzIHRoZSBjaGlsZCBvZiB0aGUgaXRlbSBjdXJyZW50 bHkgYmVpbmcgY2xvY2tlZC4KIAotLSB7e3trYmQoQy1jIEMtayl9fX0gKH5vcmctY2FwdHVyZS1r aWxsfikgOjoKKy0ge3t7a2JkKEMtMyBDLWMgQy13KX19fSA6OgogCi0gICMra2luZGV4OiBDLWMg Qy1rIEByeyhDYXB0dXJlIGJ1ZmZlcil9Ci0gICMrZmluZGV4OiBvcmctY2FwdHVyZS1raWxsCi0g IEFib3J0IHRoZSBjYXB0dXJlIHByb2Nlc3MgYW5kIHJldHVybiB0byB0aGUgcHJldmlvdXMgc3Rh dGUuCisgICMra2luZGV4OiBDLTMgQy1jIEMtdworICAjK3ZpbmRleDogb3JnLXJlZmlsZS1rZWVw CisgIFJlZmlsZSBhbmQga2VlcCB0aGUgZW50cnkgaW4gcGxhY2UuICBBbHNvIHNlZSB+b3JnLXJl ZmlsZS1rZWVwfiB0bworICBtYWtlIHRoaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IsIGFuZCBiZXdh cmUgdGhhdCB0aGlzIG1heSByZXN1bHQgaW4KKyAgZHVwbGljYXRlZCA9SUQ9IHByb3BlcnRpZXMu CiAKLSMra2luZGV4OiBrIGMgQHJ7KEFnZW5kYSl9Ci1Zb3UgY2FuIGFsc28gY2FsbCB+b3JnLWNh cHR1cmV+IGluIGEgc3BlY2lhbCB3YXkgZnJvbSB0aGUgYWdlbmRhLAotdXNpbmcgdGhlIHt7e2ti ZChrIGMpfX19IGtleSBjb21iaW5hdGlvbi4gIFdpdGggdGhpcyBhY2Nlc3MsIGFueQotdGltZXN0 YW1wcyBpbnNlcnRlZCBieSB0aGUgc2VsZWN0ZWQgY2FwdHVyZSB0ZW1wbGF0ZSBkZWZhdWx0cyB0 byB0aGUKLWRhdGUgYXQgcG9pbnQgaW4gdGhlIGFnZW5kYSwgcmF0aGVyIHRoYW4gdG8gdGhlIGN1 cnJlbnQgZGF0ZS4KKy0ge3t7a2JkKEMtMCBDLWMgQy13KX19fSBvciB7e3trYmQoQy11IEMtdSBD LXUgQy1jIEMtdyl9fX0gKH5vcmctcmVmaWxlLWNhY2hlLWNsZWFyfikgOjoKIAotVG8gZmluZCB0 aGUgbG9jYXRpb25zIG9mIHRoZSBsYXN0IHN0b3JlZCBjYXB0dXJlLCB1c2Ugfm9yZy1jYXB0dXJl fgotd2l0aCBwcmVmaXggY29tbWFuZHM6CisgICMra2luZGV4OiBDLXUgQy11IEMtdSBDLWMgQy13 CisgICMra2luZGV4OiBDLTAgQy1jIEMtdworICAjK2ZpbmRleDogb3JnLXJlZmlsZS1jYWNoZS1j bGVhcgorICAjK3ZpbmRleDogb3JnLXJlZmlsZS11c2UtY2FjaGUKKyAgQ2xlYXIgdGhlIHRhcmdl dCBjYWNoZS4gIENhY2hpbmcgb2YgcmVmaWxlIHRhcmdldHMgY2FuIGJlIHR1cm5lZCBvbgorICBi eSBzZXR0aW5nIH5vcmctcmVmaWxlLXVzZS1jYWNoZX4uICBUbyBtYWtlIHRoZSBjb21tYW5kIHNl ZSBuZXcKKyAgcG9zc2libGUgdGFyZ2V0cywgeW91IGhhdmUgdG8gY2xlYXIgdGhlIGNhY2hlIHdp dGggdGhpcyBjb21tYW5kLgogCi0tIHt7e2tiZChDLXUgTS14IG9yZy1jYXB0dXJlKX19fSA6Ogor LSB7e3trYmQoQy1jIE0tdyl9fX0gKH5vcmctY29weX4pIDo6CiAKLSAgVmlzaXQgdGhlIHRhcmdl dCBsb2NhdGlvbiBvZiBhIGNhcHR1cmUgdGVtcGxhdGUuICBZb3UgZ2V0IHRvIHNlbGVjdAotICB0 aGUgdGVtcGxhdGUgaW4gdGhlIHVzdWFsIHdheS4KKyAgIytraW5kZXg6IEMtYyBNLXcKKyAgIytm aW5kZXg6IG9yZy1jb3B5CisgIENvcHlpbmcgd29ya3MgbGlrZSByZWZpbGluZywgZXhjZXB0IHRo YXQgdGhlIG9yaWdpbmFsIG5vdGUgaXMgbm90CisgIGRlbGV0ZWQuCiAKLS0ge3t7a2JkKEMtdSBD LXUgTS14IG9yZy1jYXB0dXJlKX19fSA6OgorKiogQXJjaGl2aW5nCis6UFJPUEVSVElFUzoKKzpE RVNDUklQVElPTjogV2hhdCB0byBkbyB3aXRoIGZpbmlzaGVkIHByb2R1Y3RzLgorOkVORDoKKyMr Y2luZGV4OiBhcmNoaXZpbmcKIAotICBWaXNpdCB0aGUgbGFzdCBzdG9yZWQgY2FwdHVyZSBpdGVt IGluIGl0cyBidWZmZXIuCitXaGVuIGEgcHJvamVjdCByZXByZXNlbnRlZCBieSBhIChzdWIpdHJl ZSBpcyBmaW5pc2hlZCwgeW91IG1heSB3YW50IHRvCittb3ZlIHRoZSB0cmVlIG91dCBvZiB0aGUg d2F5IGFuZCB0byBzdG9wIGl0IGZyb20gY29udHJpYnV0aW5nIHRvIHRoZQorYWdlbmRhLiAgQXJj aGl2aW5nIGlzIGltcG9ydGFudCB0byBrZWVwIHlvdXIgd29ya2luZyBmaWxlcyBjb21wYWN0IGFu ZAorZ2xvYmFsIHNlYXJjaGVzIGxpa2UgdGhlIGNvbnN0cnVjdGlvbiBvZiBhZ2VuZGEgdmlld3Mg ZmFzdC4KIAotIyt2aW5kZXg6IG9yZy1jYXB0dXJlLWJvb2ttYXJrCi0jK3ZpbmRleDogb3JnLWNh cHR1cmUtbGFzdC1zdG9yZWQKLVlvdSBjYW4gYWxzbyBqdW1wIHRvIHRoZSBib29rbWFyayB+b3Jn LWNhcHR1cmUtbGFzdC1zdG9yZWR+LCB3aGljaCBpcwotYXV0b21hdGljYWxseSBjcmVhdGVkIHVu bGVzcyB5b3Ugc2V0IH5vcmctY2FwdHVyZS1ib29rbWFya34gdG8gfm5pbH4uCistIHt7e2tiZChD LWMgQy14IEMtYSl9fX0gKH5vcmctYXJjaGl2ZS1zdWJ0cmVlLWRlZmF1bHR+KSA6OgogCi1UbyBp bnNlcnQgdGhlIGNhcHR1cmUgYXQgcG9pbnQgaW4gYW4gT3JnIGJ1ZmZlciwgY2FsbCB+b3JnLWNh cHR1cmV+Ci13aXRoIGEge3t7a2JkKEMtMCl9fX0gcHJlZml4IGFyZ3VtZW50LgorICAjK2tpbmRl eDogQy1jIEMteCBDLWEKKyAgIytmaW5kZXg6IG9yZy1hcmNoaXZlLXN1YnRyZWUtZGVmYXVsdAor ICAjK3ZpbmRleDogb3JnLWFyY2hpdmUtZGVmYXVsdC1jb21tYW5kCisgIEFyY2hpdmUgdGhlIGN1 cnJlbnQgZW50cnkgdXNpbmcgdGhlIGNvbW1hbmQgc3BlY2lmaWVkIGluIHRoZQorICB2YXJpYWJs ZSB+b3JnLWFyY2hpdmUtZGVmYXVsdC1jb21tYW5kfi4KIAotKioqIENhcHR1cmUgdGVtcGxhdGVz CisqKiogTW92aW5nIGEgdHJlZSB0byBhbiBhcmNoaXZlIGZpbGUKIDpQUk9QRVJUSUVTOgotOkRF U0NSSVBUSU9OOiBEZWZpbmUgdGhlIG91dGxpbmUgb2YgZGlmZmVyZW50IG5vdGUgdHlwZXMuCis6 REVTQ1JJUFRJT046IE1vdmluZyBhIHRyZWUgdG8gYW4gYXJjaGl2ZSBmaWxlLgorOkFMVF9USVRM RTogTW92aW5nIHN1YnRyZWVzCiA6RU5EOgotIytjaW5kZXg6IHRlbXBsYXRlcywgZm9yIENhcHR1 cmUKLQotWW91IGNhbiB1c2UgdGVtcGxhdGVzIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgY2FwdHVy ZSBpdGVtcywgYW5kIGZvcgotZGlmZmVyZW50IHRhcmdldCBsb2NhdGlvbnMuICBUaGUgZWFzaWVz dCB3YXkgdG8gY3JlYXRlIHN1Y2ggdGVtcGxhdGVzCi1pcyB0aHJvdWdoIHRoZSBjdXN0b21pemUg aW50ZXJmYWNlLgorIytjaW5kZXg6IGV4dGVybmFsIGFyY2hpdmluZwogCi0tIHt7e2tiZChDKX19 fSA6OgorVGhlIG1vc3QgY29tbW9uIGFyY2hpdmluZyBhY3Rpb24gaXMgdG8gbW92ZSBhIHByb2pl Y3QgdHJlZSB0byBhbm90aGVyCitmaWxlLCB0aGUgYXJjaGl2ZSBmaWxlLgogCi0gICMra2luZGV4 OiBDIEByeyhDYXB0dXJlIG1lbnV9Ci0gICMrdmluZGV4OiBvcmctY2FwdHVyZS10ZW1wbGF0ZXMK LSAgQ3VzdG9taXplIHRoZSB2YXJpYWJsZSB+b3JnLWNhcHR1cmUtdGVtcGxhdGVzfi4KKy0ge3t7 a2JkKEMtYyBDLXggQy1zKX19fSBvciBzaG9ydCB7e3trYmQoQy1jICQpfX19ICh+b3JnLWFyY2hp dmUtc3VidHJlZX4pIDo6CiAKLUJlZm9yZSB3ZSBnaXZlIHRoZSBmb3JtYWwgZGVzY3JpcHRpb24g b2YgdGVtcGxhdGUgZGVmaW5pdGlvbnMsIGxldCdzCi1sb29rIGF0IGFuIGV4YW1wbGUuICBTYXkg eW91IHdvdWxkIGxpa2UgdG8gdXNlIG9uZSB0ZW1wbGF0ZSB0byBjcmVhdGUKLWdlbmVyYWwgVE9E TyBlbnRyaWVzLCBhbmQgeW91IHdhbnQgdG8gcHV0IHRoZXNlIGVudHJpZXMgdW5kZXIgdGhlCi1o ZWFkaW5nID1UYXNrcz0gaW4geW91ciBmaWxlID1+L29yZy9ndGQub3JnPS4gIEFsc28sIGEgZGF0 ZSB0cmVlIGluCi10aGUgZmlsZSA9am91cm5hbC5vcmc9IHNob3VsZCBjYXB0dXJlIGpvdXJuYWwg ZW50cmllcy4gIEEgcG9zc2libGUKLWNvbmZpZ3VyYXRpb24gd291bGQgbG9vayBsaWtlOgorICAj K2tpbmRleDogQy1jIEMteCBDLXMKKyAgIytraW5kZXg6IEMtYyAkCisgICMrZmluZGV4OiBvcmct YXJjaGl2ZS1zdWJ0cmVlCisgICMrdmluZGV4OiBvcmctYXJjaGl2ZS1sb2NhdGlvbgorICBBcmNo aXZlIHRoZSBzdWJ0cmVlIHN0YXJ0aW5nIGF0IHBvaW50IHBvc2l0aW9uIHRvIHRoZSBsb2NhdGlv biBnaXZlbgorICBieSB+b3JnLWFyY2hpdmUtbG9jYXRpb25+LgogCi0jK2JlZ2luX3NyYyBlbWFj cy1saXNwCi0oc2V0cSBvcmctY2FwdHVyZS10ZW1wbGF0ZXMKLSAgICAgICcoKCJ0IiAiVG9kbyIg ZW50cnkgKGZpbGUraGVhZGxpbmUgIn4vb3JnL2d0ZC5vcmciICJUYXNrcyIpCi0gICAgICAgICAi KiBUT0RPICU/XG4gICVpXG4gICVhIikKLSAgICAgICAgKCJqIiAiSm91cm5hbCIgZW50cnkgKGZp bGUrZGF0ZXRyZWUgIn4vb3JnL2pvdXJuYWwub3JnIikKLSAgICAgICAgICIqICU/XG5FbnRlcmVk IG9uICVVXG4gICVpXG4gICVhIikpKQotIytlbmRfc3JjCistIHt7e2tiZChDLXUgQy1jIEMteCBD LXMpfX19IDo6CiAKLUlmIHlvdSB0aGVuIHByZXNzIHt7e2tiZCh0KX19fSBmcm9tIHRoZSBjYXB0 dXJlIG1lbnUsIE9yZyB3aWxsIHByZXBhcmUKLXRoZSB0ZW1wbGF0ZSBmb3IgeW91IGxpa2UgdGhp czoKKyAgIytraW5kZXg6IEMtdSBDLWMgQy14IEMtcworICBDaGVjayBpZiBhbnkgZGlyZWN0IGNo aWxkcmVuIG9mIHRoZSBjdXJyZW50IGhlYWRsaW5lIGNvdWxkIGJlIG1vdmVkCisgIHRvIHRoZSBh cmNoaXZlLiAgVG8gZG8gdGhpcywgY2hlY2sgZWFjaCBzdWJ0cmVlIGZvciBvcGVuIFRPRE8KKyAg ZW50cmllcy4gIElmIG5vbmUgaXMgZm91bmQsIHRoZSBjb21tYW5kIG9mZmVycyB0byBtb3ZlIGl0 IHRvIHRoZQorICBhcmNoaXZlIGxvY2F0aW9uLiAgSWYgcG9pbnQgaXMgL25vdC8gb24gYSBoZWFk bGluZSB3aGVuIHRoaXMgY29tbWFuZAorICBpcyBpbnZva2VkLCBjaGVjayBsZXZlbCAxIHRyZWVz LgogCi0jK2JlZ2luX2V4YW1wbGUKLSwqIFRPRE8KLSAgW1tmaWxlOkxJTksgVE8gV0hFUkUgWU9V IElOSVRJQVRFRCBDQVBUVVJFXV0KLSMrZW5kX2V4YW1wbGUKKy0ge3t7a2JkKEMtdSBDLXUgQy1j IEMteCBDLXMpfX19IDo6CiAKLSMrdGV4aW5mbzogQG5vaW5kZW50Ci1EdXJpbmcgZXhwYW5zaW9u IG9mIHRoZSB0ZW1wbGF0ZSwgPSVhPSBoYXMgYmVlbiByZXBsYWNlZCBieSBhIGxpbmsgdG8KLXRo ZSBsb2NhdGlvbiBmcm9tIHdoZXJlIHlvdSBjYWxsZWQgdGhlIGNhcHR1cmUgY29tbWFuZC4gIFRo aXMgY2FuIGJlCi1leHRyZW1lbHkgdXNlZnVsIGZvciBkZXJpdmluZyB0YXNrcyBmcm9tIGVtYWls cywgZm9yIGV4YW1wbGUuICBZb3UKLWZpbGwgaW4gdGhlIHRhc2sgZGVmaW5pdGlvbiwgcHJlc3Mg e3t7a2JkKEMtYyBDLWMpfX19IGFuZCBPcmcgcmV0dXJucwoteW91IHRvIHRoZSBzYW1lIHBsYWNl IHdoZXJlIHlvdSBzdGFydGVkIHRoZSBjYXB0dXJlIHByb2Nlc3MuCisgICMra2luZGV4OiBDLXUg Qy11IEMtYyBDLXggQy1zCisgIEFzIGFib3ZlLCBidXQgY2hlY2sgc3VidHJlZSBmb3IgdGltZXN0 YW1wcyBpbnN0ZWFkIG9mIFRPRE8gZW50cmllcy4KKyAgVGhlIGNvbW1hbmQgb2ZmZXJzIHRvIGFy Y2hpdmUgdGhlIHN1YnRyZWUgaWYgaXQgL2RvZXMvIGNvbnRhaW4KKyAgYSB0aW1lc3RhbXAsIGFu ZCB0aGF0IHRpbWVzdGFtcCBpcyBpbiB0aGUgcGFzdC4KIAotVG8gZGVmaW5lIHNwZWNpYWwga2V5 cyB0byBjYXB0dXJlIHRvIGEgcGFydGljdWxhciB0ZW1wbGF0ZSB3aXRob3V0Ci1nb2luZyB0aHJv dWdoIHRoZSBpbnRlcmFjdGl2ZSB0ZW1wbGF0ZSBzZWxlY3Rpb24sIHlvdSBjYW4gY3JlYXRlIHlv dXIKKyMrY2luZGV4OiBhcmNoaXZlIGxvY2F0aW9ucworVGhlIGRlZmF1bHQgYXJjaGl2ZSBsb2Nh dGlvbiBpcyBhIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZQorY3VycmVudCBmaWxl LCB3aXRoIHRoZSBuYW1lIGRlcml2ZWQgYnkgYXBwZW5kaW5nID1fYXJjaGl2ZT0gdG8gdGhlCitj dXJyZW50IGZpbGUgbmFtZS4gIFlvdSBjYW4gYWxzbyBjaG9vc2Ugd2hhdCBoZWFkaW5nIHRvIGZp bGUgYXJjaGl2ZWQKK2l0ZW1zIHVuZGVyLCB3aXRoIHRoZSBwb3NzaWJpbGl0eSB0byBhZGQgdGhl bSB0byBhIGRhdGV0cmVlIGluIGEgZmlsZS4KK0ZvciBpbmZvcm1hdGlvbiBhbmQgZXhhbXBsZXMg b24gaG93IHRvIHNwZWNpZnkgdGhlIGZpbGUgYW5kIHRoZQoraGVhZGluZywgc2VlIHRoZSBkb2N1 bWVudGF0aW9uIHN0cmluZyBvZiB0aGUgdmFyaWFibGUKK35vcmctYXJjaGl2ZS1sb2NhdGlvbn4u CisKK1RoZXJlIGlzIGFsc28gYW4gaW4tYnVmZmVyIG9wdGlvbiBmb3Igc2V0dGluZyB0aGlzIHZh cmlhYmxlLCBmb3IKK2V4YW1wbGU6CisKKyMrY2luZGV4OiBAc2FtcHtBUkNISVZFfSwga2V5d29y ZAorOiAjK0FSQ0hJVkU6ICVzX2RvbmU6OgorCisjK2NpbmRleDogQVJDSElWRSwgcHJvcGVydHkK K0lmIHlvdSB3b3VsZCBsaWtlIHRvIGhhdmUgYSBzcGVjaWFsIGFyY2hpdmUgbG9jYXRpb24gZm9y IGEgc2luZ2xlCitlbnRyeSBvciBhIChzdWIpdHJlZSwgZ2l2ZSB0aGUgZW50cnkgYW4gPUFSQ0hJ VkU9IHByb3BlcnR5IHdpdGggdGhlCitsb2NhdGlvbiBhcyB0aGUgdmFsdWUgKHNlZSBbWypQcm9w ZXJ0aWVzIGFuZCBDb2x1bW5zXV0pLgorCisjK3ZpbmRleDogb3JnLWFyY2hpdmUtc2F2ZS1jb250 ZXh0LWluZm8KK1doZW4gYSBzdWJ0cmVlIGlzIG1vdmVkLCBpdCByZWNlaXZlcyBhIG51bWJlciBv ZiBzcGVjaWFsIHByb3BlcnRpZXMKK3RoYXQgcmVjb3JkIGNvbnRleHQgaW5mb3JtYXRpb24gbGlr ZSB0aGUgZmlsZSBmcm9tIHdoZXJlIHRoZSBlbnRyeQorY2FtZSwgaXRzIG91dGxpbmUgcGF0aCB0 aGUgYXJjaGl2aW5nIHRpbWUgZXRjLiAgQ29uZmlndXJlIHRoZSB2YXJpYWJsZQorfm9yZy1hcmNo aXZlLXNhdmUtY29udGV4dC1pbmZvfiB0byBhZGp1c3QgdGhlIGFtb3VudCBvZiBpbmZvcm1hdGlv bgorYWRkZWQuCisKKyoqKiBJbnRlcm5hbCBhcmNoaXZpbmcKKzpQUk9QRVJUSUVTOgorOkRFU0NS SVBUSU9OOiBTd2l0Y2ggb2ZmIGEgdHJlZSBidXQga2VlcCBpdCBpbiB0aGUgZmlsZS4KKzpFTkQ6 CisKKyMrY2luZGV4OiBAc2FtcHtBUkNISVZFfSwgdGFnCitJZiB5b3Ugd2FudCB0byBqdXN0IHN3 aXRjaCBvZmYtLS1mb3IgYWdlbmRhIHZpZXdzLS0tY2VydGFpbiBzdWJ0cmVlcword2l0aG91dCBt b3ZpbmcgdGhlbSB0byBhIGRpZmZlcmVudCBmaWxlLCB5b3UgY2FuIHVzZSB0aGUgPUFSQ0hJVkU9 Cit0YWcuCisKK0EgaGVhZGxpbmUgdGhhdCBpcyBtYXJrZWQgd2l0aCB0aGUgPUFSQ0hJVkU9IHRh ZyAoc2VlIFtbKlRhZ3NdXSkgc3RheXMgYXQKK2l0cyBsb2NhdGlvbiBpbiB0aGUgb3V0bGluZSB0 cmVlLCBidXQgYmVoYXZlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKKworLQorICAjK3ZpbmRleDog b3JnLWN5Y2xlLW9wZW4tYXJjaGl2ZWQtdHJlZXMKKyAgSXQgZG9lcyBub3Qgb3BlbiB3aGVuIHlv dSBhdHRlbXB0IHRvIGRvIHNvIHdpdGggYSB2aXNpYmlsaXR5IGN5Y2xpbmcKKyAgY29tbWFuZCAo c2VlIFtbKlZpc2liaWxpdHkgQ3ljbGluZ11dKS4gIFlvdSBjYW4gZm9yY2UgY3ljbGluZyBhcmNo aXZlZAorICBzdWJ0cmVlcyB3aXRoIHt7e2tiZChDLVRBQil9fX0sIG9yIGJ5IHNldHRpbmcgdGhl IG9wdGlvbgorICB+b3JnLWN5Y2xlLW9wZW4tYXJjaGl2ZWQtdHJlZXN+LiAgQWxzbyBub3JtYWwg b3V0bGluZSBjb21tYW5kcywgbGlrZQorICB+b3V0bGluZS1zaG93LWFsbH4sIG9wZW4gYXJjaGl2 ZWQgc3VidHJlZXMuCisKKy0KKyAgIyt2aW5kZXg6IG9yZy1zcGFyc2UtdHJlZS1vcGVuLWFyY2hp dmVkLXRyZWVzCisgIER1cmluZyBzcGFyc2UgdHJlZSBjb25zdHJ1Y3Rpb24gKHNlZSBbWypTcGFy c2UgVHJlZXNdXSksIG1hdGNoZXMgaW4KKyAgYXJjaGl2ZWQgc3VidHJlZXMgYXJlIG5vdCBleHBv c2VkLCB1bmxlc3MgeW91IGNvbmZpZ3VyZSB0aGUgb3B0aW9uCisgIH5vcmctc3BhcnNlLXRyZWUt b3Blbi1hcmNoaXZlZC10cmVlc34uCisKKy0KKyAgIyt2aW5kZXg6IG9yZy1hZ2VuZGEtc2tpcC1h cmNoaXZlZC10cmVlcworICBEdXJpbmcgYWdlbmRhIHZpZXcgY29uc3RydWN0aW9uIChzZWUgW1sq QWdlbmRhIFZpZXdzXV0pLCB0aGUgY29udGVudCBvZgorICBhcmNoaXZlZCB0cmVlcyBpcyBpZ25v cmVkIHVubGVzcyB5b3UgY29uZmlndXJlIHRoZSBvcHRpb24KKyAgfm9yZy1hZ2VuZGEtc2tpcC1h cmNoaXZlZC10cmVlc34sIGluIHdoaWNoIGNhc2UgdGhlc2UgdHJlZXMgYXJlCisgIGFsd2F5cyBp bmNsdWRlZC4gIEluIHRoZSBhZ2VuZGEgeW91IGNhbiBwcmVzcyB7e3trYmQodiBhKX19fSB0byBn ZXQKKyAgYXJjaGl2ZXMgdGVtcG9yYXJpbHkgaW5jbHVkZWQuCisKKy0KKyAgIyt2aW5kZXg6IG9y Zy1leHBvcnQtd2l0aC1hcmNoaXZlZC10cmVlcworICBBcmNoaXZlZCB0cmVlcyBhcmUgbm90IGV4 cG9ydGVkIChzZWUgW1sqRXhwb3J0aW5nXV0pLCBvbmx5IHRoZSBoZWFkbGluZQorICBpcy4gIENv bmZpZ3VyZSB0aGUgZGV0YWlscyB1c2luZyB0aGUgdmFyaWFibGUKKyAgfm9yZy1leHBvcnQtd2l0 aC1hcmNoaXZlZC10cmVlc34uCisKKy0KKyAgIyt2aW5kZXg6IG9yZy1jb2x1bW5zLXNraXAtYXJj aGl2ZWQtdHJlZXMKKyAgQXJjaGl2ZWQgdHJlZXMgYXJlIGV4Y2x1ZGVkIGZyb20gY29sdW1uIHZp ZXcgdW5sZXNzIHRoZSB2YXJpYWJsZQorICB+b3JnLWNvbHVtbnMtc2tpcC1hcmNoaXZlZC10cmVl c34gaXMgY29uZmlndXJlZCB0byB+bmlsfi4KKworVGhlIGZvbGxvd2luZyBjb21tYW5kcyBoZWxw IG1hbmFnZSB0aGUgPUFSQ0hJVkU9IHRhZzoKKworLSB7e3trYmQoQy1jIEMteCBhKX19fSAofm9y Zy10b2dnbGUtYXJjaGl2ZS10YWd+KSA6OgorCisgICMra2luZGV4OiBDLWMgQy14IGEKKyAgIytm aW5kZXg6IG9yZy10b2dnbGUtYXJjaGl2ZS10YWcKKyAgVG9nZ2xlIHRoZSBhcmNoaXZlIHRhZyBm b3IgdGhlIGN1cnJlbnQgaGVhZGxpbmUuICBXaGVuIHRoZSB0YWcgaXMKKyAgc2V0LCB0aGUgaGVh ZGxpbmUgY2hhbmdlcyB0byBhIHNoYWRvd2VkIGZhY2UsIGFuZCB0aGUgc3VidHJlZSBiZWxvdwor ICBpdCBpcyBoaWRkZW4uCisKKy0ge3t7a2JkKEMtdSBDLWMgQy14IGEpfX19IDo6CisKKyAgIytr aW5kZXg6IEMtdSBDLWMgQy14IGEKKyAgQ2hlY2sgaWYgYW55IGRpcmVjdCBjaGlsZHJlbiBvZiB0 aGUgY3VycmVudCBoZWFkbGluZSBzaG91bGQgYmUKKyAgYXJjaGl2ZWQuICBUbyBkbyB0aGlzLCBj aGVjayBlYWNoIHN1YnRyZWUgZm9yIG9wZW4gVE9ETyBlbnRyaWVzLiAgSWYKKyAgbm9uZSBpcyBm b3VuZCwgdGhlIGNvbW1hbmQgb2ZmZXJzIHRvIHNldCB0aGUgPUFSQ0hJVkU9IHRhZyBmb3IgdGhl CisgIGNoaWxkLiAgSWYgcG9pbnQgaXMgL25vdC8gb24gYSBoZWFkbGluZSB3aGVuIHRoaXMgY29t bWFuZCBpcworICBpbnZva2VkLCBjaGVjayB0aGUgbGV2ZWwgMSB0cmVlcy4KKworLSB7e3trYmQo Qy1UQUIpfX19ICh+b3JnLWZvcmNlLWN5Y2xlLWFyY2hpdmVkfikgOjoKKworICAjK2tpbmRleDog Qy1UQUIKKyAgQ3ljbGUgYSB0cmVlIGV2ZW4gaWYgaXQgaXMgdGFnZ2VkIHdpdGggPUFSQ0hJVkU9 LgorCistIHt7e2tiZChDLWMgQy14IEEpfX19ICh+b3JnLWFyY2hpdmUtdG8tYXJjaGl2ZS1zaWJs aW5nfikgOjoKKworICAjK2tpbmRleDogQy1jIEMteCBBCisgICMrZmluZGV4OiBvcmctYXJjaGl2 ZS10by1hcmNoaXZlLXNpYmxpbmcKKyAgTW92ZSB0aGUgY3VycmVudCBlbnRyeSB0byB0aGUgL0Fy Y2hpdmUgU2libGluZy8uICBUaGlzIGlzIGEgc2libGluZworICBvZiB0aGUgZW50cnkgd2l0aCB0 aGUgaGVhZGluZyA9QXJjaGl2ZT0gYW5kIHRoZSBhcmNoaXZlIHRhZy4gIFRoZQorICBlbnRyeSBi ZWNvbWVzIGEgY2hpbGQgb2YgdGhhdCBzaWJsaW5nIGFuZCBpbiB0aGlzIHdheSByZXRhaW5zIGEg bG90CisgIG9mIGl0cyBvcmlnaW5hbCBjb250ZXh0LCBpbmNsdWRpbmcgaW5oZXJpdGVkIHRhZ3Mg YW5kIGFwcHJveGltYXRlCisgIHBvc2l0aW9uIGluIHRoZSBvdXRsaW5lLgorCisqIENhcHR1cmUs IEF0dGFjaG1lbnRzLCBSU1MgRmVlZHMgYW5kIFByb3RvY29scworOlBST1BFUlRJRVM6Cis6REVT Q1JJUFRJT046IERlYWxpbmcgd2l0aCBleHRlcm5hbCBkYXRhLgorOkVORDoKKyMrY2luZGV4OiBj YXB0dXJlCisjK2NpbmRleDogYXR0YWNobWVudHMKKyMrY2luZGV4OiBSU1MgZmVlZHMKKyMrY2lu ZGV4OiBBdG9tIGZlZWRzCisjK2NpbmRleDogcHJvdG9jb2xzLCBmb3IgZXh0ZXJuYWwgYWNjZXNz CisKK0FuIGltcG9ydGFudCBwYXJ0IG9mIGFueSBvcmdhbml6YXRpb24gc3lzdGVtIGlzIHRoZSBh YmlsaXR5IHRvIHF1aWNrbHkKK2NhcHR1cmUgbmV3IGlkZWFzIGFuZCB0YXNrcywgYW5kIHRvIGFz c29jaWF0ZSByZWZlcmVuY2UgbWF0ZXJpYWwgd2l0aAordGhlbS4gIE9yZyBkb2VzIHRoaXMgdXNp bmcgYSBwcm9jZXNzIGNhbGxlZCAvY2FwdHVyZS8uICBJdCBhbHNvIGNhbgorc3RvcmUgZmlsZXMg cmVsYXRlZCB0byBhIHRhc2sgKC9hdHRhY2htZW50cy8pIGluIGEgc3BlY2lhbCBkaXJlY3Rvcnku CisKKyoqIENhcHR1cmUKKzpQUk9QRVJUSUVTOgorOkRFU0NSSVBUSU9OOiBDYXB0dXJpbmcgbmV3 IHN0dWZmLgorOkVORDoKKyMrY2luZGV4OiBjYXB0dXJlCisKK0NhcHR1cmUgbGV0cyB5b3UgcXVp Y2tseSBzdG9yZSBub3RlcyB3aXRoIGxpdHRsZSBpbnRlcnJ1cHRpb24gb2YgeW91cgord29yayBm bG93LiAgT3JnJ3MgbWV0aG9kIGZvciBjYXB0dXJpbmcgbmV3IGl0ZW1zIGlzIGhlYXZpbHkgaW5z cGlyZWQKK2J5IEpvaG4gV2llZ2xleSdzIGV4Y2VsbGVudCBSZW1lbWJlciBwYWNrYWdlLgorCisq KiogU2V0dGluZyB1cCBjYXB0dXJlCis6UFJPUEVSVElFUzoKKzpERVNDUklQVElPTjogV2hlcmUg bm90ZXMgd2lsbCBiZSBzdG9yZWQuCis6RU5EOgorCitUaGUgZm9sbG93aW5nIGN1c3RvbWl6YXRp b24gc2V0cyBhIGRlZmF1bHQgdGFyZ2V0IGZpbGUgZm9yIG5vdGVzLgorCisjK3ZpbmRleDogb3Jn LWRlZmF1bHQtbm90ZXMtZmlsZQorIytiZWdpbl9zcmMgZW1hY3MtbGlzcAorKHNldHEgb3JnLWRl ZmF1bHQtbm90ZXMtZmlsZSAoY29uY2F0IG9yZy1kaXJlY3RvcnkgIi9ub3Rlcy5vcmciKSkKKyMr ZW5kX3NyYworCitZb3UgbWF5IGFsc28gZGVmaW5lIGEgZ2xvYmFsIGtleSBmb3IgY2FwdHVyaW5n IG5ldyBtYXRlcmlhbCAoc2VlCitbWypBY3RpdmF0aW9uXV0pLgorCisqKiogVXNpbmcgY2FwdHVy ZQorOlBST1BFUlRJRVM6Cis6REVTQ1JJUFRJT046IENvbW1hbmRzIHRvIGludm9rZSBhbmQgdGVy bWluYXRlIGNhcHR1cmUuCis6RU5EOgorCistIHt7e2tiZChNLXggb3JnLWNhcHR1cmUpfX19ICh+ b3JnLWNhcHR1cmV+KSA6OgorCisgICMrZmluZGV4OiBvcmctY2FwdHVyZQorICAjK2NpbmRleDog ZGF0ZSB0cmVlCisgIERpc3BsYXkgdGhlIGNhcHR1cmUgdGVtcGxhdGVzIG1lbnUuICBJZiB5b3Ug aGF2ZSB0ZW1wbGF0ZXMgZGVmaW5lZAorICAoc2VlIFtbKkNhcHR1cmUgdGVtcGxhdGVzXV0pLCBp dCBvZmZlcnMgdGhlc2UgdGVtcGxhdGVzIGZvciBzZWxlY3Rpb24gb3IKKyAgdXNlIGEgbmV3IE9y ZyBvdXRsaW5lIG5vZGUgYXMgdGhlIGRlZmF1bHQgdGVtcGxhdGUuICBJdCBpbnNlcnRzIHRoZQor ICB0ZW1wbGF0ZSBpbnRvIHRoZSB0YXJnZXQgZmlsZSBhbmQgc3dpdGNoIHRvIGFuIGluZGlyZWN0 IGJ1ZmZlcgorICBuYXJyb3dlZCB0byB0aGlzIG5ldyBub2RlLiAgWW91IG1heSB0aGVuIGluc2Vy dCB0aGUgaW5mb3JtYXRpb24geW91CisgIHdhbnQuCisKKy0ge3t7a2JkKEMtYyBDLWMpfX19ICh+ b3JnLWNhcHR1cmUtZmluYWxpemV+KSA6OgorCisgICMra2luZGV4OiBDLWMgQy1jIEByeyhDYXB0 dXJlIGJ1ZmZlcil9CisgICMrZmluZGV4OiBvcmctY2FwdHVyZS1maW5hbGl6ZQorICBPbmNlIHlv dSBoYXZlIGZpbmlzaGVkIGVudGVyaW5nIGluZm9ybWF0aW9uIGludG8gdGhlIGNhcHR1cmUgYnVm ZmVyLAorICB7e3trYmQoQy1jIEMtYyl9fX0gcmV0dXJucyB5b3UgdG8gdGhlIHdpbmRvdyBjb25m aWd1cmF0aW9uIGJlZm9yZQorICB0aGUgY2FwdHVyZSBwcm9jZXNzLCBzbyB0aGF0IHlvdSBjYW4g cmVzdW1lIHlvdXIgd29yayB3aXRob3V0CisgIGZ1cnRoZXIgZGlzdHJhY3Rpb24uICBXaGVuIGNh bGxlZCB3aXRoIGEgcHJlZml4IGFyZ3VtZW50LCBmaW5hbGl6ZQorICBhbmQgdGhlbiBqdW1wIHRv IHRoZSBjYXB0dXJlZCBpdGVtLgorCistIHt7e2tiZChDLWMgQy13KX19fSAofm9yZy1jYXB0dXJl LXJlZmlsZX4pIDo6CisKKyAgIytraW5kZXg6IEMtYyBDLXcgQHJ7KENhcHR1cmUgYnVmZmVyKX0K KyAgIytmaW5kZXg6IG9yZy1jYXB0dXJlLXJlZmlsZQorICBGaW5hbGl6ZSB0aGUgY2FwdHVyZSBw cm9jZXNzIGJ5IHJlZmlsaW5nIHRoZSBub3RlIHRvIGEgZGlmZmVyZW50CisgIHBsYWNlIChzZWUg W1sqUmVmaWxlIGFuZCBDb3B5XV0pLiAgUGxlYXNlIHJlYWxpemUgdGhhdCB0aGlzIGlzIGEgbm9y bWFsCisgIHJlZmlsaW5nIGNvbW1hbmQgdGhhdCB3aWxsIGJlIGV4ZWN1dGVkLS0tc28gcG9pbnQg cG9zaXRpb24gYXQgdGhlCisgIG1vbWVudCB5b3UgcnVuIHRoaXMgY29tbWFuZCBpcyBpbXBvcnRh bnQuICBJZiB5b3UgaGF2ZSBpbnNlcnRlZAorICBhIHRyZWUgd2l0aCBhIHBhcmVudCBhbmQgY2hp bGRyZW4sIGZpcnN0IG1vdmUgcG9pbnQgYmFjayB0byB0aGUKKyAgcGFyZW50LiAgQW55IHByZWZp eCBhcmd1bWVudCBnaXZlbiB0byB0aGlzIGNvbW1hbmQgaXMgcGFzc2VkIG9uIHRvCisgIHRoZSB+ b3JnLXJlZmlsZX4gY29tbWFuZC4KKworLSB7e3trYmQoQy1jIEMtayl9fX0gKH5vcmctY2FwdHVy ZS1raWxsfikgOjoKKworICAjK2tpbmRleDogQy1jIEMtayBAcnsoQ2FwdHVyZSBidWZmZXIpfQor ICAjK2ZpbmRleDogb3JnLWNhcHR1cmUta2lsbAorICBBYm9ydCB0aGUgY2FwdHVyZSBwcm9jZXNz IGFuZCByZXR1cm4gdG8gdGhlIHByZXZpb3VzIHN0YXRlLgorCisjK2tpbmRleDogayBjIEByeyhB Z2VuZGEpfQorWW91IGNhbiBhbHNvIGNhbGwgfm9yZy1jYXB0dXJlfiBpbiBhIHNwZWNpYWwgd2F5 IGZyb20gdGhlIGFnZW5kYSwKK3VzaW5nIHRoZSB7e3trYmQoayBjKX19fSBrZXkgY29tYmluYXRp b24uICBXaXRoIHRoaXMgYWNjZXNzLCBhbnkKK3RpbWVzdGFtcHMgaW5zZXJ0ZWQgYnkgdGhlIHNl bGVjdGVkIGNhcHR1cmUgdGVtcGxhdGUgZGVmYXVsdHMgdG8gdGhlCitkYXRlIGF0IHBvaW50IGlu IHRoZSBhZ2VuZGEsIHJhdGhlciB0aGFuIHRvIHRoZSBjdXJyZW50IGRhdGUuCisKK1RvIGZpbmQg dGhlIGxvY2F0aW9ucyBvZiB0aGUgbGFzdCBzdG9yZWQgY2FwdHVyZSwgdXNlIH5vcmctY2FwdHVy ZX4KK3dpdGggcHJlZml4IGNvbW1hbmRzOgorCistIHt7e2tiZChDLXUgTS14IG9yZy1jYXB0dXJl KX19fSA6OgorCisgIFZpc2l0IHRoZSB0YXJnZXQgbG9jYXRpb24gb2YgYSBjYXB0dXJlIHRlbXBs YXRlLiAgWW91IGdldCB0byBzZWxlY3QKKyAgdGhlIHRlbXBsYXRlIGluIHRoZSB1c3VhbCB3YXku CisKKy0ge3t7a2JkKEMtdSBDLXUgTS14IG9yZy1jYXB0dXJlKX19fSA6OgorCisgIFZpc2l0IHRo ZSBsYXN0IHN0b3JlZCBjYXB0dXJlIGl0ZW0gaW4gaXRzIGJ1ZmZlci4KKworIyt2aW5kZXg6IG9y Zy1jYXB0dXJlLWJvb2ttYXJrCisjK3ZpbmRleDogb3JnLWNhcHR1cmUtbGFzdC1zdG9yZWQKK1lv dSBjYW4gYWxzbyBqdW1wIHRvIHRoZSBib29rbWFyayB+b3JnLWNhcHR1cmUtbGFzdC1zdG9yZWR+ LCB3aGljaCBpcworYXV0b21hdGljYWxseSBjcmVhdGVkIHVubGVzcyB5b3Ugc2V0IH5vcmctY2Fw dHVyZS1ib29rbWFya34gdG8gfm5pbH4uCisKK1RvIGluc2VydCB0aGUgY2FwdHVyZSBhdCBwb2lu dCBpbiBhbiBPcmcgYnVmZmVyLCBjYWxsIH5vcmctY2FwdHVyZX4KK3dpdGggYSB7e3trYmQoQy0w KX19fSBwcmVmaXggYXJndW1lbnQuCisKKyoqKiBDYXB0dXJlIHRlbXBsYXRlcworOlBST1BFUlRJ RVM6Cis6REVTQ1JJUFRJT046IERlZmluZSB0aGUgb3V0bGluZSBvZiBkaWZmZXJlbnQgbm90ZSB0 eXBlcy4KKzpFTkQ6CisjK2NpbmRleDogdGVtcGxhdGVzLCBmb3IgQ2FwdHVyZQorCitZb3UgY2Fu IHVzZSB0ZW1wbGF0ZXMgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBjYXB0dXJlIGl0ZW1zLCBhbmQg Zm9yCitkaWZmZXJlbnQgdGFyZ2V0IGxvY2F0aW9ucy4gIFRoZSBlYXNpZXN0IHdheSB0byBjcmVh dGUgc3VjaCB0ZW1wbGF0ZXMKK2lzIHRocm91Z2ggdGhlIGN1c3RvbWl6ZSBpbnRlcmZhY2UuCisK Ky0ge3t7a2JkKEMpfX19IDo6CisKKyAgIytraW5kZXg6IEMgQHJ7KENhcHR1cmUgbWVudX0KKyAg Iyt2aW5kZXg6IG9yZy1jYXB0dXJlLXRlbXBsYXRlcworICBDdXN0b21pemUgdGhlIHZhcmlhYmxl IH5vcmctY2FwdHVyZS10ZW1wbGF0ZXN+LgorCitCZWZvcmUgd2UgZ2l2ZSB0aGUgZm9ybWFsIGRl c2NyaXB0aW9uIG9mIHRlbXBsYXRlIGRlZmluaXRpb25zLCBsZXQncworbG9vayBhdCBhbiBleGFt cGxlLiAgU2F5IHlvdSB3b3VsZCBsaWtlIHRvIHVzZSBvbmUgdGVtcGxhdGUgdG8gY3JlYXRlCitn ZW5lcmFsIFRPRE8gZW50cmllcywgYW5kIHlvdSB3YW50IHRvIHB1dCB0aGVzZSBlbnRyaWVzIHVu ZGVyIHRoZQoraGVhZGluZyA9VGFza3M9IGluIHlvdXIgZmlsZSA9fi9vcmcvZ3RkLm9yZz0uICBB bHNvLCBhIGRhdGUgdHJlZSBpbgordGhlIGZpbGUgPWpvdXJuYWwub3JnPSBzaG91bGQgY2FwdHVy ZSBqb3VybmFsIGVudHJpZXMuICBBIHBvc3NpYmxlCitjb25maWd1cmF0aW9uIHdvdWxkIGxvb2sg bGlrZToKKworIytiZWdpbl9zcmMgZW1hY3MtbGlzcAorKHNldHEgb3JnLWNhcHR1cmUtdGVtcGxh dGVzCisgICAgICAnKCgidCIgIlRvZG8iIGVudHJ5IChmaWxlK2hlYWRsaW5lICJ+L29yZy9ndGQu b3JnIiAiVGFza3MiKQorICAgICAgICAgIiogVE9ETyAlP1xuICAlaVxuICAlYSIpCisgICAgICAg ICgiaiIgIkpvdXJuYWwiIGVudHJ5IChmaWxlK2RhdGV0cmVlICJ+L29yZy9qb3VybmFsLm9yZyIp CisgICAgICAgICAiKiAlP1xuRW50ZXJlZCBvbiAlVVxuICAlaVxuICAlYSIpKSkKKyMrZW5kX3Ny YworCitJZiB5b3UgdGhlbiBwcmVzcyB7e3trYmQodCl9fX0gZnJvbSB0aGUgY2FwdHVyZSBtZW51 LCBPcmcgd2lsbCBwcmVwYXJlCit0aGUgdGVtcGxhdGUgZm9yIHlvdSBsaWtlIHRoaXM6CisKKyMr YmVnaW5fZXhhbXBsZQorLCogVE9ETworICBbW2ZpbGU6TElOSyBUTyBXSEVSRSBZT1UgSU5JVElB VEVEIENBUFRVUkVdXQorIytlbmRfZXhhbXBsZQorCisjK3RleGluZm86IEBub2luZGVudAorRHVy aW5nIGV4cGFuc2lvbiBvZiB0aGUgdGVtcGxhdGUsID0lYT0gaGFzIGJlZW4gcmVwbGFjZWQgYnkg YSBsaW5rIHRvCit0aGUgbG9jYXRpb24gZnJvbSB3aGVyZSB5b3UgY2FsbGVkIHRoZSBjYXB0dXJl IGNvbW1hbmQuICBUaGlzIGNhbiBiZQorZXh0cmVtZWx5IHVzZWZ1bCBmb3IgZGVyaXZpbmcgdGFz a3MgZnJvbSBlbWFpbHMsIGZvciBleGFtcGxlLiAgWW91CitmaWxsIGluIHRoZSB0YXNrIGRlZmlu aXRpb24sIHByZXNzIHt7e2tiZChDLWMgQy1jKX19fSBhbmQgT3JnIHJldHVybnMKK3lvdSB0byB0 aGUgc2FtZSBwbGFjZSB3aGVyZSB5b3Ugc3RhcnRlZCB0aGUgY2FwdHVyZSBwcm9jZXNzLgorCitU byBkZWZpbmUgc3BlY2lhbCBrZXlzIHRvIGNhcHR1cmUgdG8gYSBwYXJ0aWN1bGFyIHRlbXBsYXRl IHdpdGhvdXQKK2dvaW5nIHRocm91Z2ggdGhlIGludGVyYWN0aXZlIHRlbXBsYXRlIHNlbGVjdGlv biwgeW91IGNhbiBjcmVhdGUgeW91cgoga2V5IGJpbmRpbmcgbGlrZSB0aGlzOgogCiAjK2JlZ2lu X3NyYyBlbWFjcy1saXNwCkBAIC03NDM0LDI4ICs3NzczLDMwIEBAIFNlZSB0aGUgZG9jc3RyaW5n IG9mIHRoZSB2YXJpYWJsZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KIAogKiogQXR0YWNobWVudHMK IDpQUk9QRVJUSUVTOgotOkRFU0NSSVBUSU9OOiBBZGQgZmlsZXMgdG8gdGFza3MuCis6REVTQ1JJ UFRJT046IEF0dGFjaCBmaWxlcyB0byBvdXRsaW5lcy4KIDpFTkQ6CiAjK2NpbmRleDogYXR0YWNo bWVudHMKLSMrdmluZGV4OiBvcmctYXR0YWNoLWRpcmVjdG9yeQogCiBJdCBpcyBvZnRlbiB1c2Vm dWwgdG8gYXNzb2NpYXRlIHJlZmVyZW5jZSBtYXRlcmlhbCB3aXRoIGFuIG91dGxpbmUKLW5vZGUv dGFzay4gIFNtYWxsIGNodW5rcyBvZiBwbGFpbiB0ZXh0IGNhbiBzaW1wbHkgYmUgc3RvcmVkIGlu IHRoZQotc3VidHJlZSBvZiBhIHByb2plY3QuICBIeXBlcmxpbmtzIChzZWUgW1sqSHlwZXJsaW5r c11dKSBjYW4gZXN0YWJsaXNoCi1hc3NvY2lhdGlvbnMgd2l0aCBmaWxlcyB0aGF0IGxpdmUgZWxz ZXdoZXJlIG9uIHlvdXIgY29tcHV0ZXIgb3IgaW4gdGhlCi1jbG91ZCwgbGlrZSBlbWFpbHMgb3Ig c291cmNlIGNvZGUgZmlsZXMgYmVsb25naW5nIHRvIGEgcHJvamVjdC4KLUFub3RoZXIgbWV0aG9k IGlzIC9hdHRhY2htZW50cy8sIHdoaWNoIGFyZSBmaWxlcyBsb2NhdGVkIGluCi1hIGRpcmVjdG9y eSBiZWxvbmdpbmcgdG8gYW4gb3V0bGluZSBub2RlLiAgT3JnIHVzZXMgZGlyZWN0b3JpZXMgbmFt ZWQKLWJ5IHRoZSB1bmlxdWUgSUQgb2YgZWFjaCBlbnRyeS4gIFRoZXNlIGRpcmVjdG9yaWVzIGFy ZSBsb2NhdGVkIGluIHRoZQotPWRhdGEvPSBkaXJlY3Rvcnkgd2hpY2ggbGl2ZXMgaW4gdGhlIHNh bWUgZGlyZWN0b3J5IHdoZXJlIHlvdXIgT3JnCi1maWxlIGxpdmVzW2ZuOjg3XS4gIElmIHlvdSBp bml0aWFsaXplIHRoaXMgZGlyZWN0b3J5IHdpdGggPWdpdCBpbml0PSwKLU9yZyBhdXRvbWF0aWNh bGx5IGNvbW1pdHMgY2hhbmdlcyB3aGVuIGl0IHNlZXMgdGhlbS4gIFRoZSBhdHRhY2htZW50Ci1z eXN0ZW0gaGFzIGJlZW4gY29udHJpYnV0ZWQgdG8gT3JnIGJ5IEpvaG4gV2llZ2xleS4KLQotSW4g Y2FzZXMgd2hlcmUgaXQgc2VlbXMgYmV0dGVyIHRvIGRvIHNvLCB5b3UgY2FuIGF0dGFjaCBhIGRp cmVjdG9yeSBvZgoteW91ciBjaG9pY2UgdG8gYW4gZW50cnkuICBZb3UgY2FuIGFsc28gbWFrZSBj aGlsZHJlbiBpbmhlcml0IHRoZQotYXR0YWNobWVudCBkaXJlY3RvcnkgZnJvbSBhIHBhcmVudCwg c28gdGhhdCBhbiBlbnRpcmUgc3VidHJlZSB1c2VzIHRoZQotc2FtZSBhdHRhY2hlZCBkaXJlY3Rv cnkuCitub2RlLiAgU21hbGwgY2h1bmtzIG9mIHBsYWluIHRleHQgY2FuIHNpbXBseSBiZSBzdG9y ZWQgaW4gdGhlIHN1YnRyZWUKK29mIGEgcHJvamVjdC4gIEh5cGVybGlua3MgKHNlZSBbWypIeXBl cmxpbmtzXV0pIGNhbiBlc3RhYmxpc2ggYXNzb2NpYXRpb25zCit3aXRoIGZpbGVzIHRoYXQgbGl2 ZSBlbHNld2hlcmUgb24geW91ciBjb21wdXRlciBvciBpbiB0aGUgY2xvdWQsIGxpa2UKK2VtYWls cyBvciBzb3VyY2UgY29kZSBmaWxlcyBiZWxvbmdpbmcgdG8gYSBwcm9qZWN0LgorCitBbm90aGVy IG1ldGhvZCBpcyAvYXR0YWNobWVudHMvLCB3aGljaCBhcmUgZmlsZXMgbG9jYXRlZCBpbiBhCitk aXJlY3RvcnkgYmVsb25naW5nIHRvIGFuIG91dGxpbmUgbm9kZS4gIE9yZyB1c2VzIGRpcmVjdG9y aWVzIGVpdGhlcgorbmFtZWQgYnkgYSB1bmlxdWUgSUQgb2YgZWFjaCBlbnRyeSwgb3IgYnkgYSA9 RElSPSBwcm9wZXJ0eS4KKworKioqIEF0dGFjaG1lbnQgZGVmYXVsdHMgYW5kIGRpc3BhdGNoZXIK K0J5IGRlZmF1bHQsIG9yZy1hdHRhY2ggd2lsbCB1c2UgSUQgcHJvcGVydGllcyB3aGVuIGFkZGlu ZyBhdHRhY2htZW50cwordG8gb3V0bGluZSBub2Rlcy4gIFRoaXMgbWFrZXMgd29ya2luZyB3aXRo IGF0dGFjaG1lbnRzIGZ1bGx5CithdXRvbWF0ZWQuICBUaGVyZSBpcyBubyBkZWNpc2lvbiBuZWVk ZWQgZm9yIGZvbGRlci1uYW1lIG9yIGxvY2F0aW9uLgorSUQtYmFzZWQgZGlyZWN0b3JpZXMgYXJl IGJ5IGRlZmF1bHQgbG9jYXRlZCBpbiB0aGUgPWRhdGEvPSBkaXJlY3RvcnksCit3aGljaCBsaXZl cyBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkgd2hlcmUgeW91ciBPcmcgZmlsZSBsaXZlc1tmbjo4N10u CitGb3IgbW9yZSBjb250cm9sIG92ZXIgdGhlIHNldHVwLCBzZWUgW1sqQXR0YWNobWVudCBvcHRp b25zXV0uCisKK1doZW4gYXR0YWNobWVudHMgYXJlIG1hZGUgdXNpbmcgfm9yZy1hdHRhY2h+IGEg ZGVmYXVsdCB0YWcgPUFUVEFDSD0gaXMKK2FkZGVkIHRvIHRoZSBub2RlIHRoYXQgZ2V0cyB0aGUg YXR0YWNobWVudHMuCiAKIFRoZSBmb2xsb3dpbmcgY29tbWFuZHMgZGVhbCB3aXRoIGF0dGFjaG1l bnRzOgogCkBAIC03NTQwLDI1ICs3ODgxLDE0NCBAQCBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGRl YWwgd2l0aCBhdHRhY2htZW50czoKIAogICAtIHt7e2tiZChEKX19fSAofm9yZy1hdHRhY2gtZGVs ZXRlLWFsbH4pIDo6CiAKLSAgICAjK2tpbmRleDogQy1jIEMtYSBECi0gICAgRGVsZXRlIGFsbCBv ZiBhIHRhc2sncyBhdHRhY2htZW50cy4gIEEgc2FmZXIgd2F5IGlzIHRvIG9wZW4gdGhlCi0gICAg ZGlyZWN0b3J5IGluIERpcmVkIGFuZCBkZWxldGUgZnJvbSB0aGVyZS4KKyAgICAjK2tpbmRleDog Qy1jIEMtYSBECisgICAgRGVsZXRlIGFsbCBvZiBhIHRhc2sncyBhdHRhY2htZW50cy4gIEEgc2Fm ZXIgd2F5IGlzIHRvIG9wZW4gdGhlCisgICAgZGlyZWN0b3J5IGluIERpcmVkIGFuZCBkZWxldGUg ZnJvbSB0aGVyZS4KKworICAtIHt7e2tiZChzKX19fSAofm9yZy1hdHRhY2gtc2V0LWRpcmVjdG9y eX4pIDo6CisKKyAgICAjK2tpbmRleDogQy1jIEMtYSBzCisgICAgIytjaW5kZXg6IEBzYW1we0RJ Un0sIHByb3BlcnR5CisgICAgU2V0IGEgc3BlY2lmaWMgZGlyZWN0b3J5IGFzIHRoZSBlbnRyeSdz IGF0dGFjaG1lbnQgZGlyZWN0b3J5LgorICAgIFRoaXMgd29ya3MgYnkgcHV0dGluZyB0aGUgZGly ZWN0b3J5IHBhdGggaW50byB0aGUgPURJUj0KKyAgICBwcm9wZXJ0eS4KKworICAtIHt7e2tiZChT KX19fSAofm9yZy1hdHRhY2gtdW5zZXQtZGlyZWN0b3J5fikgOjoKKworICAgICMra2luZGV4OiBD LWMgQy1hIFMKKyAgICAjK2NpbmRleDogQHNhbXB7RElSfSwgcHJvcGVydHkKKyAgICBSZW1vdmUg dGhlIGF0dGFjaG1lbnQgZGlyZWN0b3J5LiAgVGhpcyBjb21tYW5kIHJlbW92ZXMgdGhlID1ESVI9 CisgICAgcHJvcGVydHkgYW5kIGFza3MgdGhlIHVzZXIgdG8gZWl0aGVyIG1vdmUgY29udGVudCBp bnNpZGUgdGhhdAorICAgIGZvbGRlciwgaWYgYW4gPUlEPSBwcm9wZXJ0eSBpcyBzZXQsIGRlbGV0 ZSB0aGUgY29udGVudCwgb3IgdG8KKyAgICBsZWF2ZSB0aGUgYXR0YWNobWVudCBkaXJlY3Rvcnkg YXMgaXMgYnV0IG5vIGxvbmdlciBhdHRhY2hlZCB0byB0aGUKKyAgICBvdXRsaW5lIG5vZGUuCisK KyoqKiBBdHRhY2htZW50IG9wdGlvbnMKK1RoZXJlIGFyZSBhIGNvdXBsZSBvZiBvcHRpb25zIGZv ciBhdHRhY2htZW50cyB0aGF0IGFyZSB3b3J0aAorbWVudGlvbmluZy4KKworLSB+b3JnLWF0dGFj aC1pZC1kaXJ+IDo6CisgICMrdmluZGV4OiBvcmctYXR0YWNoLWlkLWRpcgorICBUaGUgZGlyZWN0 b3J5IHdoZXJlIGF0dGFjaG1lbnRzIGFyZSBzdG9yZWQgd2hlbiA9SUQ9IGlzIHVzZWQgYXMKKyAg bWV0aG9kLgorCistIH5vcmctYXR0YWNoLWRpci1yZWxhdGl2ZX4gOjoKKyAgIyt2aW5kZXg6IG9y Zy1hdHRhY2gtZGlyLXJlbGF0aXZlCisgIFdoZW4gc2V0dGluZyB0aGUgPURJUj0gcHJvcGVydHkg b24gYSBub2RlIHVzaW5nIHt7e2tiZChDLWMgQy1hIHMpfX19CisgICh+b3JnLWF0dGFjaC1zZXQt ZGlyZWN0b3J5fiksIGFic29sdXRlIGxpbmtzIGFyZSBlbnRlcmVkIGJ5IGRlZmF1bHQuCisgIFRo aXMgb3B0aW9uIGNoYW5nZXMgdGhhdCB0byByZWxhdGl2ZSBsaW5rcy4KKworLSB+b3JnLWF0dGFj aC11c2UtaW5oZXJpdGFuY2V+IDo6CisgICMrdmluZGV4OiBvcmctYXR0YWNoLXVzZS1pbmhlcml0 YW5jZQorICBCeSBkZWZhdWx0IGZvbGRlcnMgYXR0YWNoZWQgdG8gYW4gb3V0bGluZSBub2RlIGFy ZSBpbmhlcml0ZWQgZnJvbQorICBwYXJlbnRzIGFjY29yZGluZyB0byB+b3JnLXVzZS1wcm9wZXJ0 eS1pbmhlcml0YW5jZX4uICBJZiBvbmUgaW5zdGVhZAorICB3YW50IHRvIHNldCBpbmhlcml0YW5j ZSBzcGVjaWZpY2FsbHkgZm9yIG9yZy1hdHRhY2ggdGhhdCBjYW4gYmUgZG9uZQorICB1c2luZyB+ b3JnLWF0dGFjaC11c2UtaW5oZXJpdGFuY2V+LiAgSW5oZXJpdGluZyBkb2N1bWVudHMgdGhyb3Vn aAorICB0aGUgbm9kZSBoaWVyYXJjaHkgbWFrZXMgYSBsb3Qgb2Ygc2Vuc2UgaW4gbW9zdCBjYXNl cy4gRXNwZWNpYWxseQorICBzaW5jZSB0aGUgaW50cm9kdWN0aW9uIG9mIFtbKiBBdHRhY2htZW50 IGxpbmtzXV0uICBUaGUgZm9sbG93aW5nIGV4YW1wbGUKKyAgc2hvd3Mgb25lIHVzZSBjYXNlIGZv ciBhdHRhY2htZW50IGluaGVyaXRhbmNlOgorCisgICMrYmVnaW5fZXhhbXBsZQorICAsKiBDaGFw dGVyIEEgLi4uCisgICAgOlBST1BFUlRJRVM6CisgICAgOkRJUjogQ2hhcHRlciBBLworICAgIDpF TkQ6CisgICwqKiBJbnRyb2R1Y3Rpb24KKyAgU29tZSB0ZXh0CisKKyAgIytOQU1FOiBJbWFnZSAx CisgIFtbQXR0YWNobWVudDppbWFnZSAxLmpwZ11dCisgICMrZW5kX2V4YW1wbGUKKworICBXaXRo b3V0IGluaGVyaXRhbmNlIG9uZSB3b3VsZCBub3QgYmUgYWJsZSB0byByZXNvbHZlIHRoZSBsaW5r IHRvCisgIGltYWdlID0xLmpwZz0sIHNpbmNlIHRoZSBsaW5rIGlzIGluc2lkZSBhIHN1Yi1oZWFk aW5nIHRvID1DaGFwdGVyCisgIEE9LgorCisgIEluaGVyaXRhbmNlIHdvcmtzIHRoZSBzYW1lIHdh eSBmb3IgYm90aCA9SUQ9IGFuZCA9RElSPSBwcm9wZXJ0eS4gIElmCisgIGJvdGggcHJvcGVydGll cyBhcmUgZGVmaW5lZCBvbiB0aGUgc2FtZSBoZWFkbGluZSB0aGVuID1ESVI9IHRha2VzCisgIHBy ZWNlZGFuY2UuICBUaGlzIGlzIGFsc28gdHJ1ZSBpZiBpbmhlcml0YW5jZSBpcyBlbmFibGVkLiAg SWYgPURJUj0KKyAgaXMgaW5oZXJpdGVkIGZyb20gYSBwYXJlbnQgbm9kZSBpbiB0aGUgb3V0bGlu ZSwgdGhhdCBwcm9wZXJ0eSBzdGlsbAorICB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgYW4gPUlEPSBw cm9wZXJ0eSBkZWZpbmVkIG9uIHRoZSBub2RlIGl0c2VsZi4KKworLSB+b3JnLWF0dGFjaC1tZXRo b2R+IDo6CisgICMrdmluZGV4OiBvcmctYXR0YWNoLW1ldGhvZAorICBXaGVuIGF0dGFjaGluZyBm aWxlcyB1c2luZyB0aGUgZGlzcGF0Y2hlciB7e3trYmQoQy1jIEMtYSl9fX0gaXQKKyAgZGVmYXVs dHMgdG8gY29weWluZyBmaWxlcy4gIFRoZSBiZWhhdmlvdXIgY2FuIGJlIGNoYW5nZWQgYnkKKyAg Y3VzdG9taXppbmcgfm9yZy1hdHRhY2gtbWV0aG9kfi4gIE9wdGlvbnMgYXJlIENvcHksIE1vdmUv UmVuYW1lLAorICBIYXJkIGxpbmsgb3IgU3ltYm9saWMgbGluay4KKworLSB+b3JnLWF0dGFjaC1w cmVmZXJyZWQtbmV3LW1ldGhvZH4gOjoKKyAgIyt2aW5kZXg6IG9yZy1hdHRhY2gtcHJlZmVycmVk LW5ldy1tZXRob2QKKyAgVGhpcyBjdXN0b21pemF0aW9uIGxldHMgeW91IGNob29zZSB0aGUgZGVm YXVsdCB3YXkgdG8gYXR0YWNoIHRvCisgIG5vZGVzIHdpdGhvdXQgZXhpc3RpbmcgPUlEPSBhbmQg PURJUj0gcHJvcGVydHkuICBJdCBkZWZhdWx0cyB0byB+aWR+CisgIGJ1dCBjYW4gYWxzbyBiZSBz ZXQgdG8gfmRpcn4sIH5hc2t+IG9yIH5uaWx+LgorCistIH5vcmctYXR0YWNoLWFyY2hpdmUtZGVs ZXRlfiA6OgorICAjK3ZpbmRleDogb3JnLWF0dGFjaC1hcmNoaXZlLWRlbGV0ZQorICBDb25maWd1 cmUgdGhpcyB0byBkZXRlcm1pbmUgaWYgYXR0YWNobWVudHMgc2hvdWxkIGJlIGRlbGV0ZWQgb3Ig bm90CisgIHdoZW4gYSBzdWJ0cmVlIHRoYXQgaGFzIGF0dGFjaG1lbnRzIGlzIGFyY2hpdmVkLgor CistIH5vcmctYXR0YWNoLWF1dG8tdGFnfiA6OgorICAjK3ZpbmRleDogb3JnLWF0dGFjaC1hdXRv LXRhZworICBXaGVuIGF0dGFjaGluZyBmaWxlcyB0byBhIGhlYWRpbmcgaXQgd2lsbCBiZSBhc3Np Z25lZCBhIHRhZworICBhY2NvcmRpbmcgdG8gd2hhdCBpcyBzZXQgaGVyZS4KKworLSB+b3JnLWF0 dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9ufiA6OgorICAjK3ZpbmRleDogb3JnLWF0dGFjaC1pZC10 by1wYXRoLWZ1bmN0aW9uCisgIFdoZW4gPUlEPSBpcyB1c2VkIGZvciBhdHRhY2htZW50cywgdGhl IElEIGlzIHBhcnNlZCBpbnRvIGEgcGFydCBvZiBhCisgIGRpcmVjdG9yeS1wYXRoLiAgU2VlIH5v cmctYXR0YWNoLWlkLWZvbGRlci1mb3JtYXR+IGZvciB0aGUgZGVmYXVsdAorICBmdW5jdGlvbi4g IERlZmluZSBhIG5ldyBvbmUgYW5kIGFkZCBpdCB0bworICB+b3JnLWF0dGFjaC1pZC10by1wYXRo LWZ1bmN0aW9ufiBpZiB5b3Ugd2FudCB0aGUgZm9sZGVyIHN0cnVjdHVyZQorICBhbnkgb3RoZXIg d2F5LiAgTm90ZSB0aGF0IG1vZGlmeWluZyB0aGlzIG1ha2VzIG9yZy1hdHRhY2ggZGVwZW5kZW50 CisgIG9uIHlvdXIgZnVuY3Rpb24gYWxzbyBmb3Igb3BlbmluZyBhdHRhY2htZW50cywgbm90IG9u bHkgc2V0dGluZworICB0aGVtIQorCistIH5vcmctYXR0YWNoLWV4cGVydH4gOjoKKyAgIyt2aW5k ZXg6IG9yZy1hdHRhY2gtZXhwZXJ0CisgIERvIG5vdCBzaG93IHRoZSBzcGxhc2ggYnVmZmVyIHdp dGggdGhlIGF0dGFjaCBkaXNwYXRjaGVyIHdoZW4KKyAgfm9yZy1hdHRhY2gtZXhwZXJ0fiBpcyBz ZXQgdG8gbm9uLX5uaWx+LgorCitTZWUgY3VzdG9taXphdGlvbiBncm91cCA9T3JnIEF0dGFjaD0g aWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZQorZGVmYXVsdCBzZXR0aW5ncy4KKworKioqIEF0dGFj aG1lbnQgbGlua3MKK0F0dGFjaGVkIGZpbGVzIGFuZCBmb2xkZXJzIGNhbiBiZSByZWZlcmVuY2Vk IHVzaW5nIGF0dGFjaG1lbnQgbGlua3MuCitUaGlzIG1ha2VzIGl0IGVhc3kgdG8gcmVmZXIgdG8g dGhlIG1hdGVyaWFsIGFkZGVkIHRvIGFuIG91dGxpbmUgbm9kZS4KK0VzcGVjaWFsbHkgaWYgaXQg d2FzIGF0dGFjaGVkIHVzaW5nIHRoZSB1bmlxdWUgSUQgb2YgdGhlIGVudHJ5IQorCisjK2JlZ2lu X2V4YW1wbGUKKywqIFRPRE8gU29tZSB0YXNrCisgIDpQUk9QRVJUSUVTOgorICA6SUQ6ICAgICAg IDk1ZDUwMDA4LWMxMmUtNDc5Zi1hNGYyLWNjMDIzODIwNTMxOQorICA6RU5EOgorU2VlIGF0dGFj aGVkIGRvY3VtZW50IGZvciBtb3JlIGluZm9ybWF0aW9uOiBbW2F0dGFjaG1lbnQ6aW5mby5vcmdd XQorIytlbmRfZXhhbXBsZQogCi0gIC0ge3t7a2JkKHMpfX19ICh+b3JnLWF0dGFjaC1zZXQtZGly ZWN0b3J5fikgOjoKK1NlZSBbWypFeHRlcm5hbCBMaW5rc11dIGZvciBtb3JlIGluZm9ybWF0aW9u IGFib3V0IHRoZXNlIGxpbmtzLgogCi0gICAgIytraW5kZXg6IEMtYyBDLWEgcwotICAgICMrY2lu ZGV4OiBAc2FtcHtBVFRBQ0hfRElSfSwgcHJvcGVydHkKLSAgICBTZXQgYSBzcGVjaWZpYyBkaXJl Y3RvcnkgYXMgdGhlIGVudHJ5J3MgYXR0YWNobWVudCBkaXJlY3RvcnkuCi0gICAgVGhpcyB3b3Jr cyBieSBwdXR0aW5nIHRoZSBkaXJlY3RvcnkgcGF0aCBpbnRvIHRoZSA9QVRUQUNIX0RJUj0KLSAg ICBwcm9wZXJ0eS4KKyoqKiBBdXRvbWF0aWMgdmVyc2lvbi1jb250cm9sIHdpdGggR2l0CitJZiB0 aGUgZGlyZWN0b3J5IGF0dGFjaGVkIHRvIGFuIG91dGxpbmUgbm9kZSBpcyBhIEdpdCByZXBvc2l0 b3J5LCBPcmcKK2NhbiBiZSBjb25maWd1cmVkIHRvIGF1dG9tYXRpY2FsbHkgY29tbWl0IGNoYW5n ZXMgdG8gdGhhdCByZXBvc2l0b3J5Cit3aGVuIGl0IHNlZXMgdGhlbS4KIAotICAtIHt7e2tiZChp KX19fSAofm9yZy1hdHRhY2gtc2V0LWluaGVyaXR+KSA6OgorVG8gbWFrZSBPcmcgbW9kZSB0YWtl IGNhcmUgb2YgdmVyc2lvbmluZyBvZiBhdHRhY2htZW50cyBmb3IgeW91LCBhZGQKK3RoZSBmb2xs b3dpbmcgdG8geW91ciBFbWFjcyBjb25maWc6CiAKLSAgICAjK2tpbmRleDogQy1jIEMtYSBpCi0g ICAgIytjaW5kZXg6IEBzYW1we0FUVEFDSF9ESVJfSU5IRVJJVH0sIHByb3BlcnR5Ci0gICAgU2V0 IHRoZSA9QVRUQUNIX0RJUl9JTkhFUklUPSBwcm9wZXJ0eSwgc28gdGhhdCBjaGlsZHJlbiB1c2Ug dGhlCi0gICAgc2FtZSBkaXJlY3RvcnkgZm9yIGF0dGFjaG1lbnRzIGFzIHRoZSBwYXJlbnQgZG9l cy4KKyMrYmVnaW5fc3JjIGVtYWNzLWxpc3AKKyAgKHJlcXVpcmUgJ29yZy1hdHRhY2gtZ2l0KQor IytlbmRfc3JjCiAKKyoqKiBBdHRhY2ggZnJvbSBEaXJlZAogIytjaW5kZXg6IGF0dGFjaCBmcm9t IERpcmVkCiAjK2ZpbmRleDogb3JnLWF0dGFjaC1kaXJlZC10by1zdWJ0cmVlCiBJdCBpcyBwb3Nz aWJsZSB0byBhdHRhY2ggZmlsZXMgdG8gYSBzdWJ0cmVlIGZyb20gYSBEaXJlZCBidWZmZXIuICBU bwpAQCAtNzgyOSwyNDkgKzgyODksNiBAQCB2YWxpZCBjb250ZW50czogfm9yZy1wcm90b2NvbC1j cmVhdGV+IGFuZAogfm9yZy1wcm90b2NvbC1jcmVhdGUtZm9yLW9yZ34uICBUaGUgbGF0dGVyIGlz IG9mIHVzZSBpZiB5b3UncmUgZWRpdGluZwogYW4gT3JnIGZpbGUgdGhhdCBpcyBwYXJ0IG9mIGEg cHVibGlzaGluZyBwcm9qZWN0LgogCi0qKiBSZWZpbGUgYW5kIENvcHkKLTpQUk9QRVJUSUVTOgot OkRFU0NSSVBUSU9OOiBNb3ZpbmcvY29weWluZyBhIHRyZWUgZnJvbSBvbmUgcGxhY2UgdG8gYW5v dGhlci4KLTpFTkQ6Ci0jK2NpbmRleDogcmVmaWxpbmcgbm90ZXMKLSMrY2luZGV4OiBjb3B5aW5n IG5vdGVzCi0KLVdoZW4gcmV2aWV3aW5nIHRoZSBjYXB0dXJlZCBkYXRhLCB5b3UgbWF5IHdhbnQg dG8gcmVmaWxlIG9yIHRvIGNvcHkKLXNvbWUgb2YgdGhlIGVudHJpZXMgaW50byBhIGRpZmZlcmVu dCBsaXN0LCBmb3IgZXhhbXBsZSBpbnRvIGEgcHJvamVjdC4KLUN1dHRpbmcsIGZpbmRpbmcgdGhl IHJpZ2h0IGxvY2F0aW9uLCBhbmQgdGhlbiBwYXN0aW5nIHRoZSBub3RlIGlzCi1jdW1iZXJzb21l LiAgVG8gc2ltcGxpZnkgdGhpcyBwcm9jZXNzLCB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nCi1z cGVjaWFsIGNvbW1hbmQ6Ci0KLS0ge3t7a2JkKEMtYyBDLXcpfX19ICh+b3JnLXJlZmlsZX4pIDo6 Ci0KLSAgIytraW5kZXg6IEMtYyBDLXcKLSAgIytmaW5kZXg6IG9yZy1yZWZpbGUKLSAgIyt2aW5k ZXg6IG9yZy1yZXZlcnNlLW5vdGUtb3JkZXIKLSAgIyt2aW5kZXg6IG9yZy1yZWZpbGUtdGFyZ2V0 cwotICAjK3ZpbmRleDogb3JnLXJlZmlsZS11c2Utb3V0bGluZS1wYXRoCi0gICMrdmluZGV4OiBv cmctb3V0bGluZS1wYXRoLWNvbXBsZXRlLWluLXN0ZXBzCi0gICMrdmluZGV4OiBvcmctcmVmaWxl LWFsbG93LWNyZWF0aW5nLXBhcmVudC1ub2RlcwotICAjK3ZpbmRleDogb3JnLWxvZy1yZWZpbGUK LSAgUmVmaWxlIHRoZSBlbnRyeSBvciByZWdpb24gYXQgcG9pbnQuICBUaGlzIGNvbW1hbmQgb2Zm ZXJzIHBvc3NpYmxlCi0gIGxvY2F0aW9ucyBmb3IgcmVmaWxpbmcgdGhlIGVudHJ5IGFuZCBsZXRz IHlvdSBzZWxlY3Qgb25lIHdpdGgKLSAgY29tcGxldGlvbi4gIFRoZSBpdGVtIChvciBhbGwgaXRl bXMgaW4gdGhlIHJlZ2lvbikgaXMgZmlsZWQgYmVsb3cKLSAgdGhlIHRhcmdldCBoZWFkaW5nIGFz IGEgc3ViaXRlbS4gIERlcGVuZGluZyBvbgotICB+b3JnLXJldmVyc2Utbm90ZS1vcmRlcn4sIGl0 IGlzIGVpdGhlciB0aGUgZmlyc3Qgb3IgbGFzdCBzdWJpdGVtLgotCi0gIEJ5IGRlZmF1bHQsIGFs bCBsZXZlbCAxIGhlYWRsaW5lcyBpbiB0aGUgY3VycmVudCBidWZmZXIgYXJlCi0gIGNvbnNpZGVy ZWQgdG8gYmUgdGFyZ2V0cywgYnV0IHlvdSBjYW4gaGF2ZSBtb3JlIGNvbXBsZXggZGVmaW5pdGlv bnMKLSAgYWNyb3NzIGEgbnVtYmVyIG9mIGZpbGVzLiAgU2VlIHRoZSB2YXJpYWJsZSB+b3JnLXJl ZmlsZS10YXJnZXRzfiBmb3IKLSAgZGV0YWlscy4gIElmIHlvdSB3b3VsZCBsaWtlIHRvIHNlbGVj dCBhIGxvY2F0aW9uIHZpYQotICBhIGZpbGUtcGF0aC1saWtlIGNvbXBsZXRpb24gYWxvbmcgdGhl IG91dGxpbmUgcGF0aCwgc2VlIHRoZQotICB2YXJpYWJsZXMgfm9yZy1yZWZpbGUtdXNlLW91dGxp bmUtcGF0aH4gYW5kCi0gIH5vcmctb3V0bGluZS1wYXRoLWNvbXBsZXRlLWluLXN0ZXBzfi4gIElm IHlvdSB3b3VsZCBsaWtlIHRvIGJlIGFibGUKLSAgdG8gY3JlYXRlIG5ldyBub2RlcyBhcyBuZXcg cGFyZW50cyBmb3IgcmVmaWxpbmcgb24gdGhlIGZseSwgY2hlY2sKLSAgdGhlIHZhcmlhYmxlIH5v cmctcmVmaWxlLWFsbG93LWNyZWF0aW5nLXBhcmVudC1ub2Rlc34uICBXaGVuIHRoZQotICB2YXJp YWJsZSB+b3JnLWxvZy1yZWZpbGV+W2ZuOjg4XSBpcyBzZXQsIGEgdGltZXN0YW1wIG9yIGEgbm90 ZSBpcwotICByZWNvcmRlZCB3aGVuZXZlciBhbiBlbnRyeSBpcyByZWZpbGVkLgotCi0tIHt7e2ti ZChDLXUgQy1jIEMtdyl9fX0gOjoKLQotICAjK2tpbmRleDogQy11IEMtYyBDLXcKLSAgVXNlIHRo ZSByZWZpbGUgaW50ZXJmYWNlIHRvIGp1bXAgdG8gYSBoZWFkaW5nLgotCi0tIHt7e2tiZChDLXUg Qy11IEMtYyBDLXcpfX19ICh+b3JnLXJlZmlsZS1nb3RvLWxhc3Qtc3RvcmVkfikgOjoKLQotICAj K2tpbmRleDogQy11IEMtdSBDLWMgQy13Ci0gICMrZmluZGV4OiBvcmctcmVmaWxlLWdvdG8tbGFz dC1zdG9yZWQKLSAgSnVtcCB0byB0aGUgbG9jYXRpb24gd2hlcmUgfm9yZy1yZWZpbGV+IGxhc3Qg bW92ZWQgYSB0cmVlIHRvLgotCi0tIHt7e2tiZChDLTIgQy1jIEMtdyl9fX0gOjoKLQotICAjK2tp bmRleDogQy0yIEMtYyBDLXcKLSAgUmVmaWxlIGFzIHRoZSBjaGlsZCBvZiB0aGUgaXRlbSBjdXJy ZW50bHkgYmVpbmcgY2xvY2tlZC4KLQotLSB7e3trYmQoQy0zIEMtYyBDLXcpfX19IDo6Ci0KLSAg IytraW5kZXg6IEMtMyBDLWMgQy13Ci0gICMrdmluZGV4OiBvcmctcmVmaWxlLWtlZXAKLSAgUmVm aWxlIGFuZCBrZWVwIHRoZSBlbnRyeSBpbiBwbGFjZS4gIEFsc28gc2VlIH5vcmctcmVmaWxlLWtl ZXB+IHRvCi0gIG1ha2UgdGhpcyB0aGUgZGVmYXVsdCBiZWhhdmlvciwgYW5kIGJld2FyZSB0aGF0 IHRoaXMgbWF5IHJlc3VsdCBpbgotICBkdXBsaWNhdGVkID1JRD0gcHJvcGVydGllcy4KLQotLSB7 e3trYmQoQy0wIEMtYyBDLXcpfX19IG9yIHt7e2tiZChDLXUgQy11IEMtdSBDLWMgQy13KX19fSAo fm9yZy1yZWZpbGUtY2FjaGUtY2xlYXJ+KSA6OgotCi0gICMra2luZGV4OiBDLXUgQy11IEMtdSBD LWMgQy13Ci0gICMra2luZGV4OiBDLTAgQy1jIEMtdwotICAjK2ZpbmRleDogb3JnLXJlZmlsZS1j YWNoZS1jbGVhcgotICAjK3ZpbmRleDogb3JnLXJlZmlsZS11c2UtY2FjaGUKLSAgQ2xlYXIgdGhl IHRhcmdldCBjYWNoZS4gIENhY2hpbmcgb2YgcmVmaWxlIHRhcmdldHMgY2FuIGJlIHR1cm5lZCBv bgotICBieSBzZXR0aW5nIH5vcmctcmVmaWxlLXVzZS1jYWNoZX4uICBUbyBtYWtlIHRoZSBjb21t YW5kIHNlZSBuZXcKLSAgcG9zc2libGUgdGFyZ2V0cywgeW91IGhhdmUgdG8gY2xlYXIgdGhlIGNh Y2hlIHdpdGggdGhpcyBjb21tYW5kLgotCi0tIHt7e2tiZChDLWMgTS13KX19fSAofm9yZy1jb3B5 fikgOjoKLQotICAjK2tpbmRleDogQy1jIE0tdwotICAjK2ZpbmRleDogb3JnLWNvcHkKLSAgQ29w eWluZyB3b3JrcyBsaWtlIHJlZmlsaW5nLCBleGNlcHQgdGhhdCB0aGUgb3JpZ2luYWwgbm90ZSBp cyBub3QKLSAgZGVsZXRlZC4KLQotKiogQXJjaGl2aW5nCi06UFJPUEVSVElFUzoKLTpERVNDUklQ VElPTjogV2hhdCB0byBkbyB3aXRoIGZpbmlzaGVkIHByb2R1Y3RzLgotOkVORDoKLSMrY2luZGV4 OiBhcmNoaXZpbmcKLQotV2hlbiBhIHByb2plY3QgcmVwcmVzZW50ZWQgYnkgYSAoc3ViKXRyZWUg aXMgZmluaXNoZWQsIHlvdSBtYXkgd2FudCB0bwotbW92ZSB0aGUgdHJlZSBvdXQgb2YgdGhlIHdh eSBhbmQgdG8gc3RvcCBpdCBmcm9tIGNvbnRyaWJ1dGluZyB0byB0aGUKLWFnZW5kYS4gIEFyY2hp dmluZyBpcyBpbXBvcnRhbnQgdG8ga2VlcCB5b3VyIHdvcmtpbmcgZmlsZXMgY29tcGFjdCBhbmQK LWdsb2JhbCBzZWFyY2hlcyBsaWtlIHRoZSBjb25zdHJ1Y3Rpb24gb2YgYWdlbmRhIHZpZXdzIGZh c3QuCi0KLS0ge3t7a2JkKEMtYyBDLXggQy1hKX19fSAofm9yZy1hcmNoaXZlLXN1YnRyZWUtZGVm YXVsdH4pIDo6Ci0KLSAgIytraW5kZXg6IEMtYyBDLXggQy1hCi0gICMrZmluZGV4OiBvcmctYXJj aGl2ZS1zdWJ0cmVlLWRlZmF1bHQKLSAgIyt2aW5kZXg6IG9yZy1hcmNoaXZlLWRlZmF1bHQtY29t bWFuZAotICBBcmNoaXZlIHRoZSBjdXJyZW50IGVudHJ5IHVzaW5nIHRoZSBjb21tYW5kIHNwZWNp ZmllZCBpbiB0aGUKLSAgdmFyaWFibGUgfm9yZy1hcmNoaXZlLWRlZmF1bHQtY29tbWFuZH4uCi0K LSoqKiBNb3ZpbmcgYSB0cmVlIHRvIGFuIGFyY2hpdmUgZmlsZQotOlBST1BFUlRJRVM6Ci06REVT Q1JJUFRJT046IE1vdmluZyBhIHRyZWUgdG8gYW4gYXJjaGl2ZSBmaWxlLgotOkFMVF9USVRMRTog TW92aW5nIHN1YnRyZWVzCi06RU5EOgotIytjaW5kZXg6IGV4dGVybmFsIGFyY2hpdmluZwotCi1U aGUgbW9zdCBjb21tb24gYXJjaGl2aW5nIGFjdGlvbiBpcyB0byBtb3ZlIGEgcHJvamVjdCB0cmVl IHRvIGFub3RoZXIKLWZpbGUsIHRoZSBhcmNoaXZlIGZpbGUuCi0KLS0ge3t7a2JkKEMtYyBDLXgg Qy1zKX19fSBvciBzaG9ydCB7e3trYmQoQy1jICQpfX19ICh+b3JnLWFyY2hpdmUtc3VidHJlZX4p IDo6Ci0KLSAgIytraW5kZXg6IEMtYyBDLXggQy1zCi0gICMra2luZGV4OiBDLWMgJAotICAjK2Zp bmRleDogb3JnLWFyY2hpdmUtc3VidHJlZQotICAjK3ZpbmRleDogb3JnLWFyY2hpdmUtbG9jYXRp b24KLSAgQXJjaGl2ZSB0aGUgc3VidHJlZSBzdGFydGluZyBhdCBwb2ludCBwb3NpdGlvbiB0byB0 aGUgbG9jYXRpb24gZ2l2ZW4KLSAgYnkgfm9yZy1hcmNoaXZlLWxvY2F0aW9ufi4KLQotLSB7e3tr YmQoQy11IEMtYyBDLXggQy1zKX19fSA6OgotCi0gICMra2luZGV4OiBDLXUgQy1jIEMteCBDLXMK LSAgQ2hlY2sgaWYgYW55IGRpcmVjdCBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBoZWFkbGluZSBj b3VsZCBiZSBtb3ZlZAotICB0byB0aGUgYXJjaGl2ZS4gIFRvIGRvIHRoaXMsIGNoZWNrIGVhY2gg c3VidHJlZSBmb3Igb3BlbiBUT0RPCi0gIGVudHJpZXMuICBJZiBub25lIGlzIGZvdW5kLCB0aGUg Y29tbWFuZCBvZmZlcnMgdG8gbW92ZSBpdCB0byB0aGUKLSAgYXJjaGl2ZSBsb2NhdGlvbi4gIElm IHBvaW50IGlzIC9ub3QvIG9uIGEgaGVhZGxpbmUgd2hlbiB0aGlzIGNvbW1hbmQKLSAgaXMgaW52 b2tlZCwgY2hlY2sgbGV2ZWwgMSB0cmVlcy4KLQotLSB7e3trYmQoQy11IEMtdSBDLWMgQy14IEMt cyl9fX0gOjoKLQotICAjK2tpbmRleDogQy11IEMtdSBDLWMgQy14IEMtcwotICBBcyBhYm92ZSwg YnV0IGNoZWNrIHN1YnRyZWUgZm9yIHRpbWVzdGFtcHMgaW5zdGVhZCBvZiBUT0RPIGVudHJpZXMu Ci0gIFRoZSBjb21tYW5kIG9mZmVycyB0byBhcmNoaXZlIHRoZSBzdWJ0cmVlIGlmIGl0IC9kb2Vz LyBjb250YWluCi0gIGEgdGltZXN0YW1wLCBhbmQgdGhhdCB0aW1lc3RhbXAgaXMgaW4gdGhlIHBh c3QuCi0KLSMrY2luZGV4OiBhcmNoaXZlIGxvY2F0aW9ucwotVGhlIGRlZmF1bHQgYXJjaGl2ZSBs b2NhdGlvbiBpcyBhIGZpbGUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZQotY3VycmVudCBm aWxlLCB3aXRoIHRoZSBuYW1lIGRlcml2ZWQgYnkgYXBwZW5kaW5nID1fYXJjaGl2ZT0gdG8gdGhl Ci1jdXJyZW50IGZpbGUgbmFtZS4gIFlvdSBjYW4gYWxzbyBjaG9vc2Ugd2hhdCBoZWFkaW5nIHRv IGZpbGUgYXJjaGl2ZWQKLWl0ZW1zIHVuZGVyLCB3aXRoIHRoZSBwb3NzaWJpbGl0eSB0byBhZGQg dGhlbSB0byBhIGRhdGV0cmVlIGluIGEgZmlsZS4KLUZvciBpbmZvcm1hdGlvbiBhbmQgZXhhbXBs ZXMgb24gaG93IHRvIHNwZWNpZnkgdGhlIGZpbGUgYW5kIHRoZQotaGVhZGluZywgc2VlIHRoZSBk b2N1bWVudGF0aW9uIHN0cmluZyBvZiB0aGUgdmFyaWFibGUKLX5vcmctYXJjaGl2ZS1sb2NhdGlv bn4uCi0KLVRoZXJlIGlzIGFsc28gYW4gaW4tYnVmZmVyIG9wdGlvbiBmb3Igc2V0dGluZyB0aGlz IHZhcmlhYmxlLCBmb3IKLWV4YW1wbGU6Ci0KLSMrY2luZGV4OiBAc2FtcHtBUkNISVZFfSwga2V5 d29yZAotOiAjK0FSQ0hJVkU6ICVzX2RvbmU6OgotCi0jK2NpbmRleDogQVJDSElWRSwgcHJvcGVy dHkKLUlmIHlvdSB3b3VsZCBsaWtlIHRvIGhhdmUgYSBzcGVjaWFsIGFyY2hpdmUgbG9jYXRpb24g Zm9yIGEgc2luZ2xlCi1lbnRyeSBvciBhIChzdWIpdHJlZSwgZ2l2ZSB0aGUgZW50cnkgYW4gPUFS Q0hJVkU9IHByb3BlcnR5IHdpdGggdGhlCi1sb2NhdGlvbiBhcyB0aGUgdmFsdWUgKHNlZSBbWypQ cm9wZXJ0aWVzIGFuZCBDb2x1bW5zXV0pLgotCi0jK3ZpbmRleDogb3JnLWFyY2hpdmUtc2F2ZS1j b250ZXh0LWluZm8KLVdoZW4gYSBzdWJ0cmVlIGlzIG1vdmVkLCBpdCByZWNlaXZlcyBhIG51bWJl ciBvZiBzcGVjaWFsIHByb3BlcnRpZXMKLXRoYXQgcmVjb3JkIGNvbnRleHQgaW5mb3JtYXRpb24g bGlrZSB0aGUgZmlsZSBmcm9tIHdoZXJlIHRoZSBlbnRyeQotY2FtZSwgaXRzIG91dGxpbmUgcGF0 aCB0aGUgYXJjaGl2aW5nIHRpbWUgZXRjLiAgQ29uZmlndXJlIHRoZSB2YXJpYWJsZQotfm9yZy1h cmNoaXZlLXNhdmUtY29udGV4dC1pbmZvfiB0byBhZGp1c3QgdGhlIGFtb3VudCBvZiBpbmZvcm1h dGlvbgotYWRkZWQuCi0KLSoqKiBJbnRlcm5hbCBhcmNoaXZpbmcKLTpQUk9QRVJUSUVTOgotOkRF U0NSSVBUSU9OOiBTd2l0Y2ggb2ZmIGEgdHJlZSBidXQga2VlcCBpdCBpbiB0aGUgZmlsZS4KLTpF TkQ6Ci0KLSMrY2luZGV4OiBAc2FtcHtBUkNISVZFfSwgdGFnCi1JZiB5b3Ugd2FudCB0byBqdXN0 IHN3aXRjaCBvZmYtLS1mb3IgYWdlbmRhIHZpZXdzLS0tY2VydGFpbiBzdWJ0cmVlcwotd2l0aG91 dCBtb3ZpbmcgdGhlbSB0byBhIGRpZmZlcmVudCBmaWxlLCB5b3UgY2FuIHVzZSB0aGUgPUFSQ0hJ VkU9Ci10YWcuCi0KLUEgaGVhZGxpbmUgdGhhdCBpcyBtYXJrZWQgd2l0aCB0aGUgPUFSQ0hJVkU9 IHRhZyAoc2VlIFtbKlRhZ3NdXSkgc3RheXMgYXQKLWl0cyBsb2NhdGlvbiBpbiB0aGUgb3V0bGlu ZSB0cmVlLCBidXQgYmVoYXZlcyBpbiB0aGUgZm9sbG93aW5nIHdheToKLQotLQotICAjK3ZpbmRl eDogb3JnLWN5Y2xlLW9wZW4tYXJjaGl2ZWQtdHJlZXMKLSAgSXQgZG9lcyBub3Qgb3BlbiB3aGVu IHlvdSBhdHRlbXB0IHRvIGRvIHNvIHdpdGggYSB2aXNpYmlsaXR5IGN5Y2xpbmcKLSAgY29tbWFu ZCAoc2VlIFtbKlZpc2liaWxpdHkgQ3ljbGluZ11dKS4gIFlvdSBjYW4gZm9yY2UgY3ljbGluZyBh cmNoaXZlZAotICBzdWJ0cmVlcyB3aXRoIHt7e2tiZChDLVRBQil9fX0sIG9yIGJ5IHNldHRpbmcg dGhlIG9wdGlvbgotICB+b3JnLWN5Y2xlLW9wZW4tYXJjaGl2ZWQtdHJlZXN+LiAgQWxzbyBub3Jt YWwgb3V0bGluZSBjb21tYW5kcywgbGlrZQotICB+b3V0bGluZS1zaG93LWFsbH4sIG9wZW4gYXJj aGl2ZWQgc3VidHJlZXMuCi0KLS0KLSAgIyt2aW5kZXg6IG9yZy1zcGFyc2UtdHJlZS1vcGVuLWFy Y2hpdmVkLXRyZWVzCi0gIER1cmluZyBzcGFyc2UgdHJlZSBjb25zdHJ1Y3Rpb24gKHNlZSBbWypT cGFyc2UgVHJlZXNdXSksIG1hdGNoZXMgaW4KLSAgYXJjaGl2ZWQgc3VidHJlZXMgYXJlIG5vdCBl eHBvc2VkLCB1bmxlc3MgeW91IGNvbmZpZ3VyZSB0aGUgb3B0aW9uCi0gIH5vcmctc3BhcnNlLXRy ZWUtb3Blbi1hcmNoaXZlZC10cmVlc34uCi0KLS0KLSAgIyt2aW5kZXg6IG9yZy1hZ2VuZGEtc2tp cC1hcmNoaXZlZC10cmVlcwotICBEdXJpbmcgYWdlbmRhIHZpZXcgY29uc3RydWN0aW9uIChzZWUg W1sqQWdlbmRhIFZpZXdzXV0pLCB0aGUgY29udGVudCBvZgotICBhcmNoaXZlZCB0cmVlcyBpcyBp Z25vcmVkIHVubGVzcyB5b3UgY29uZmlndXJlIHRoZSBvcHRpb24KLSAgfm9yZy1hZ2VuZGEtc2tp cC1hcmNoaXZlZC10cmVlc34sIGluIHdoaWNoIGNhc2UgdGhlc2UgdHJlZXMgYXJlCi0gIGFsd2F5 cyBpbmNsdWRlZC4gIEluIHRoZSBhZ2VuZGEgeW91IGNhbiBwcmVzcyB7e3trYmQodiBhKX19fSB0 byBnZXQKLSAgYXJjaGl2ZXMgdGVtcG9yYXJpbHkgaW5jbHVkZWQuCi0KLS0KLSAgIyt2aW5kZXg6 IG9yZy1leHBvcnQtd2l0aC1hcmNoaXZlZC10cmVlcwotICBBcmNoaXZlZCB0cmVlcyBhcmUgbm90 IGV4cG9ydGVkIChzZWUgW1sqRXhwb3J0aW5nXV0pLCBvbmx5IHRoZSBoZWFkbGluZQotICBpcy4g IENvbmZpZ3VyZSB0aGUgZGV0YWlscyB1c2luZyB0aGUgdmFyaWFibGUKLSAgfm9yZy1leHBvcnQt d2l0aC1hcmNoaXZlZC10cmVlc34uCi0KLS0KLSAgIyt2aW5kZXg6IG9yZy1jb2x1bW5zLXNraXAt YXJjaGl2ZWQtdHJlZXMKLSAgQXJjaGl2ZWQgdHJlZXMgYXJlIGV4Y2x1ZGVkIGZyb20gY29sdW1u IHZpZXcgdW5sZXNzIHRoZSB2YXJpYWJsZQotICB+b3JnLWNvbHVtbnMtc2tpcC1hcmNoaXZlZC10 cmVlc34gaXMgY29uZmlndXJlZCB0byB+bmlsfi4KLQotVGhlIGZvbGxvd2luZyBjb21tYW5kcyBo ZWxwIG1hbmFnZSB0aGUgPUFSQ0hJVkU9IHRhZzoKLQotLSB7e3trYmQoQy1jIEMteCBhKX19fSAo fm9yZy10b2dnbGUtYXJjaGl2ZS10YWd+KSA6OgotCi0gICMra2luZGV4OiBDLWMgQy14IGEKLSAg IytmaW5kZXg6IG9yZy10b2dnbGUtYXJjaGl2ZS10YWcKLSAgVG9nZ2xlIHRoZSBhcmNoaXZlIHRh ZyBmb3IgdGhlIGN1cnJlbnQgaGVhZGxpbmUuICBXaGVuIHRoZSB0YWcgaXMKLSAgc2V0LCB0aGUg aGVhZGxpbmUgY2hhbmdlcyB0byBhIHNoYWRvd2VkIGZhY2UsIGFuZCB0aGUgc3VidHJlZSBiZWxv dwotICBpdCBpcyBoaWRkZW4uCi0KLS0ge3t7a2JkKEMtdSBDLWMgQy14IGEpfX19IDo6Ci0KLSAg IytraW5kZXg6IEMtdSBDLWMgQy14IGEKLSAgQ2hlY2sgaWYgYW55IGRpcmVjdCBjaGlsZHJlbiBv ZiB0aGUgY3VycmVudCBoZWFkbGluZSBzaG91bGQgYmUKLSAgYXJjaGl2ZWQuICBUbyBkbyB0aGlz LCBjaGVjayBlYWNoIHN1YnRyZWUgZm9yIG9wZW4gVE9ETyBlbnRyaWVzLiAgSWYKLSAgbm9uZSBp cyBmb3VuZCwgdGhlIGNvbW1hbmQgb2ZmZXJzIHRvIHNldCB0aGUgPUFSQ0hJVkU9IHRhZyBmb3Ig dGhlCi0gIGNoaWxkLiAgSWYgcG9pbnQgaXMgL25vdC8gb24gYSBoZWFkbGluZSB3aGVuIHRoaXMg Y29tbWFuZCBpcwotICBpbnZva2VkLCBjaGVjayB0aGUgbGV2ZWwgMSB0cmVlcy4KLQotLSB7e3tr YmQoQy1UQUIpfX19ICh+b3JnLWZvcmNlLWN5Y2xlLWFyY2hpdmVkfikgOjoKLQotICAjK2tpbmRl eDogQy1UQUIKLSAgQ3ljbGUgYSB0cmVlIGV2ZW4gaWYgaXQgaXMgdGFnZ2VkIHdpdGggPUFSQ0hJ VkU9LgotCi0tIHt7e2tiZChDLWMgQy14IEEpfX19ICh+b3JnLWFyY2hpdmUtdG8tYXJjaGl2ZS1z aWJsaW5nfikgOjoKLQotICAjK2tpbmRleDogQy1jIEMteCBBCi0gICMrZmluZGV4OiBvcmctYXJj aGl2ZS10by1hcmNoaXZlLXNpYmxpbmcKLSAgTW92ZSB0aGUgY3VycmVudCBlbnRyeSB0byB0aGUg L0FyY2hpdmUgU2libGluZy8uICBUaGlzIGlzIGEgc2libGluZwotICBvZiB0aGUgZW50cnkgd2l0 aCB0aGUgaGVhZGluZyA9QXJjaGl2ZT0gYW5kIHRoZSBhcmNoaXZlIHRhZy4gIFRoZQotICBlbnRy eSBiZWNvbWVzIGEgY2hpbGQgb2YgdGhhdCBzaWJsaW5nIGFuZCBpbiB0aGlzIHdheSByZXRhaW5z IGEgbG90Ci0gIG9mIGl0cyBvcmlnaW5hbCBjb250ZXh0LCBpbmNsdWRpbmcgaW5oZXJpdGVkIHRh Z3MgYW5kIGFwcHJveGltYXRlCi0gIHBvc2l0aW9uIGluIHRoZSBvdXRsaW5lLgotCiAqIEFnZW5k YSBWaWV3cwogOlBST1BFUlRJRVM6CiA6REVTQ1JJUFRJT046IENvbGxlY3RpbmcgaW5mb3JtYXRp b24gaW50byB2aWV3cy4KQEAgLTIxMjQxLDcgKzIxNDU4LDcgQEAgYWNjZXNzZWQgaW4gY2FwdHVy ZSB0ZW1wbGF0ZXMgaW4gYSBzaW1pbGFyIHdheS4KIH5vcmctbGluay1mcm9tLXVzZXItcmVnZXhw fi4KIAogW2ZuOjg3XSBJZiB5b3UgbW92ZSBlbnRyaWVzIG9yIE9yZyBmaWxlcyBmcm9tIG9uZSBk aXJlY3RvcnkgdG8KLWFub3RoZXIsIHlvdSBtYXkgd2FudCB0byBjb25maWd1cmUgfm9yZy1hdHRh Y2gtZGlyZWN0b3J5fiB0byBjb250YWluCithbm90aGVyLCB5b3UgbWF5IHdhbnQgdG8gY29uZmln dXJlIH5vcmctYXR0YWNoLWlkLWRpcn4gdG8gY29udGFpbgogYW4gYWJzb2x1dGUgcGF0aC4KIAog W2ZuOjg4XSBOb3RlIHRoZSBjb3JyZXNwb25kaW5nID1TVEFSVFVQPSBvcHRpb25zID1sb2dyZWZp bGU9LApkaWZmIC0tZ2l0IGEvZXRjL09SRy1ORVdTIGIvZXRjL09SRy1ORVdTCmluZGV4IDk1MzU4 Y2E3Yi4uNGQ1YzExYzNjIDEwMDY0NAotLS0gYS9ldGMvT1JHLU5FV1MKKysrIGIvZXRjL09SRy1O RVdTCkBAIC0xMTEsNyArMTExLDk2IEBAIGV2ZXJ5IG90aGVyIGJhY2tlbmQgd2FzIGFscmVhZHkg dXNpbmcgeGNvbG9yIHRvIHNldCBmZyBhbmQgYmcsIHRoZSBDTEkKIGFsdGVybmF0aXZlIHdhcyBy ZW1vdmVkIGFuZCB0aGVyZSBpcyBubyBtb3JlIGEgOnVzZS14Y29sb3Igb3B0aW9ucwogc2luY2Ug bm93IGl0J3MgaW1wbGljaXRseSBhbHdheXMgdHJ1ZS4KIAorKioqIE9yZy1BdHRhY2ggR2l0IGNv bW1pdAorW1sqT3JnLUF0dGFjaCBoYXMgYmVlbiByZWZhY3RvcmVkIGFuZCBleHRlbmRlZF1bUmVm YWN0b3Jpbmcgb2YgT3JnLUF0dGFjaF1dIGFmZmVjdGVkIHRoZSBHaXQgY29tbWl0IGZ1bmN0aW9u YWxpdHkuICBOb3QKK211Y2gsIGJ1dCB0aGUgZm9sbG93aW5nIGNoYW5nZXMgYXJlIHJlcXVpcmVk IGlmIHlvdSBzdGlsbCBuZWVkIHRvCithdXRvLWNvbW1pdCBhdHRhY2htZW50cyB0byBnaXQ6CisK Ky0gQ3VzdG9taXphdGlvbiBvZiB+b3JnLWF0dGFjaC1hbm5leC1hdXRvLWdldH4gbmVlZHMgdG8g YmUgcmVuYW1lZCB0bworICB+b3JnLWF0dGFjaC1naXQtYW5uZXgtYXV0by1nZXR+LgorCistIEN1 c3RvbWl6YXRpb24gb2Ygfm9yZy1hdHRhY2gtY29tbWl0fiBpcyBubyBsb25nZXIgbmVlZGVkLiAg SW5zdGVhZAorICBvbmUgbmVlZCB0byByZXF1aXJlIHRoZSA9b3JnLWF0dGFjaC1naXQ9IG1vZHVs ZSBpbiB0aGUgc3RhcnR1cC4KKwogKiogTmV3IGZlYXR1cmVzCisqKiogT3JnLUF0dGFjaCBoYXMg YmVlbiByZWZhY3RvcmVkIGFuZCBleHRlbmRlZAorT3JnIGF0dGFjaCBoYXMgYmVlbiByZWZhY3Rv cmVkIGFuZCB0aGUgZnVuY3Rpb25hbGl0eSBleHRlbmRlZC4gIEl0CitzaG91bGQgbm93IGJlIGVh c2llciB0byB1bmRlcnN0YW5kIGhvdyBpdCB3b3Jrcy4gIEEgZmV3IGltcHJvdmVtZW50cworYW5k IGV4dHJhIG9wdGlvbnMgaGF2ZSBiZWVuIGFkZGVkIGFzIHdlbGwuCisKK0Zyb20gdGhlIGluaXRp YWwgY29tbWVudCBpbiBvcmctYXR0YWNoIHNvdXJjZS1jb2RlOgorCistIEF0dGFjaG1lbnRzIGFy ZSBtYW5hZ2VkIGVpdGhlciBieSB1c2luZyBhIGN1c3RvbSBwcm9wZXJ0eSBESVIgb3IgYnkKKyAg dXNpbmcgcHJvcGVydHkgSUQgZnJvbSBvcmctaWQuICBXaGVuIERJUiBpcyBkZWZpbmVkLCBhIGxv Y2F0aW9uIGluCisgIHRoZSBmaWxlc3lzdGVtIGlzIGRpcmVjdGx5IGF0dGFjaGVkIHRvIHRoZSBv dXRsaW5lIG5vZGUuICBXaGVuCisgIG9yZy1pZCBpcyB1c2VkLCBhdHRhY2htZW50cyBhcmUgc3Rv cmVkIGluIGEgZm9sZGVyIG5hbWVkIGFmdGVyIHRoZQorICBJRCwgaW4gYSBsb2NhdGlvbiBkZWZp bmVkIGJ5IH5vcmctYXR0YWNoLWlkLWRpcn4uICBESVIgaGFzCisgIHByZWNlZGVuY2Ugb3ZlciBJ RCB3aGVuIGJvdGggcGFyYW1ldGVycyBhcmUgZGVmaW5lZCBmb3IgdGhlIGN1cnJlbnQKKyAgb3V0 bGluZSBub2RlIChhbHNvIHdoZW4gaW5oZXJpdGVkIHBhcmFtZXRlcnMgYXJlIHRha2VuIGludG8K KyAgYWNjb3VudCkuCisKK0Zyb20gbm93IG9uIGluaGVyaXRhbmNlIHJlcXVpcmVzIG5vIGV4dHJh IHByb3BlcnR5IGFuZCB3aWxsIGFkaGVyZSB0bworfm9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNl fiBieSBkZWZhdWx0LiAgSW5oZXJpdGFuY2UgY2FuIGJlCitjdXN0b21pemVkIHRvIGFsd2F5cyBi ZSBhY3RpdmF0ZWQgb3IgbmV2ZXIgYmUgYWN0aXZhdGVkIGluCit+b3JnLWF0dGFjaC11c2UtaW5o ZXJpdGFuY2V+LgorCitUaGUgQVRUQUNIX0RJUiBwcm9wZXJ0eSBpcyBkZXByZWNhdGVkIGluIGZh dm91ciBvZiB0aGUgc2hvcnRlcgorcHJvcGVydHkgRElSLiAgTGlua3MgdG8gZm9sZGVycyBpbnNp ZGUgdGhlIERJUiBwcm9wZXJ0eSBjYW4gbm93IGJlCitkZWNsYXJlZCBhcyByZWxhdGl2ZSBsaW5r cy4gIFRoaXMgaXMgbm90IGVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0IGNhbgorYmUgc2V0IGluIH5v cmctYXR0YWNoLWRpci1yZWxhdGl2ZX4uCisKK1doZW4gYWRkaW5nIG5ldyBhdHRhY2htZW50IHRv IHRoZSBvdXRsaW5lIG5vZGUgdGhlIHByZWZlcnJlZCB3YXkgb2YKK2RvaW5nIHNvIGNhbiBiZSBj dXN0b21pemVkLiAgVGFrZSBhIGxvb2sgYXQKK35vcmctYXR0YWNoLXByZWZlcnJlZC1uZXctbWV0 aG9kfi4gIEl0IGRlZmF1bHRzIHRvIHVzaW5nIElEIHNpbmNlIHRoYXQKK3dhcyB0aGUgYmVoYXZp b3VyIGJlZm9yZSB0aGlzIGNoYW5nZS4KKworSWYgYm90aCBESVIgYW5kIElEIHByb3BlcnRpZXMg YXJlIHNldCBvbiB0aGUgc2FtZSBub2RlLCBESVIgaGFzCitwcmVjZWRlbmNlIGFuZCB3aWxsIGJl IHVzZWQuCisKK09uZSBjYW4gbm93IGFsc28gY2hvb3NlIHRvIGJ1aWxkIGF0dGFjaG1lbnQtZGly ZWN0b3J5LXBhdGhzIGluIGEKK2N1c3RvbWl6ZWQgd2F5LiAgVGhpcyBpcyBhbiBhZHZhbmNlZCB0 b3BpYywgYnV0IGluIHNvbWUgY2FzZSBpdCBtYWtlcworc2Vuc2UgdG8gcGFyc2UgYW4gSUQgaW4g YSBkaWZmZXJlbnQgd2F5IHRoYW4gdGhlIGRlZmF1bHQgb25lLiAgQ3JlYXRlCit5b3VyIG93biBm dW5jdGlvbiBhbmQgdXNlIGl0IGlzIH5vcmctYXR0YWNoLWlkLXRvLXBhdGgtZnVuY3Rpb25+IGlm Cit5b3Ugd2FudCB0byBjdXN0b21pemUgdGhlIElELWJhc2VkIGZvbGRlciBzdHJ1Y3R1cmUuCisK K0lmIHlvdSd2ZSB1c2VkIEFUVEFDSF9ESVIgcHJvcGVydGllcyB0byBtYW5hZ2UgYXR0YWNobWVu dHMsIHVzZSB0aGUKK2ZvbGxvd2luZyBjb2RlIHRvIHJlbmFtZSB0aGF0IHByb3BlcnR5IHRvIERJ UiB3aGljaCBzdXBwb3J0cyB0aGUgc2FtZQorZnVuY3Rpb25hbGl0eS4gIEFUVEFDSF9ESVJfSU5I RVJJVCBpcyBubyBsb25nZXIgc3VwcG9ydGVkIGFuZCBpcworcmVtb3ZlZC4KKworIytiZWdpbl9z cmMgZW1hY3MtbGlzcAorICAoZGVmdW4gb3JnLXVwZGF0ZS1hdHRhY2gtcHJvcGVydGllcyAoKQor ICAgICAgIkNoYW5nZSBwcm9wZXJ0aWVzIGZvciBPcmctQXR0YWNoLiIKKyAgICAgIChpbnRlcmFj dGl2ZSkKKyAgICAgIChvcmctd2l0aC1wb2ludC1hdCAxCisJKHdoaWxlIChvdXRsaW5lLW5leHQt aGVhZGluZykKKwkgIChsZXQgKChESVIgKG9yZy0tcHJvcGVydHktbG9jYWwtdmFsdWVzICJBVFRB Q0hfRElSIiBuaWwpKSkKKwkgICAgKHdoZW4gRElSCisJICAgICAgKG9yZy1zZXQtcHJvcGVydHkg IkRJUiIgKGNhciBESVIpKQorCSAgICAgIChvcmctZGVsZXRlLXByb3BlcnR5ICJBVFRBQ0hfRElS IikpKSkKKwkob3JnLWRlbGV0ZS1wcm9wZXJ0eS1nbG9iYWxseSAiQVRUQUNIX0RJUl9JTkhFUklU IikpKQorIytlbmRfc3JjCisKK0ZvciB0aG9zZSB3aG8gaGF0ZSBicmVha2luZyBjaGFuZ2VzLCBl dmVuIHRob3VnaCB0aGUgY2hhbmdlcyBhcmUgbWFkZQordG8gY2xlYW4gdGhpbmdzIHVwOyBmZWFy IG5vdC4gIEFUVEFDSF9ESVIgd2lsbCBzdGlsbCBjb250aW51ZSB0byB3b3JrLgorSXQncyBqdXN0 IG5vdCBkb2N1bWVudGVkIGFueSBsb25nZXIuICBXaGVuIHlvdSBnZXQgdGhlIGNoYW5jZSwgcnVu IHRoZQorY29kZSBhYm92ZSB0byBjbGVhbiB0aGluZ3MgdXAgYW55d2F5cyEKKworKioqKiBOZXcg aG9va3MKK1R3byBob29rcyBhcmUgYWRkZWQgdG8gb3JnLWF0dGFjaDoKKy0gb3JnLWF0dGFjaC1h ZnRlci1jaGFuZ2UtaG9vaworLSBvcmctYXR0YWNoLW9wZW4taG9vaworCitUaGV5IGFyZSBhZGRl ZCBtb3N0bHkgZm9yIGludGVybmFsIHJlc3RydWN0dXJpbmcgcHVycG9zZXMsIGJ1dCBjYW4KK29m Yy4gYmUgdXNlZCBmb3Igb3RoZXIgdGhpbmdzIGFzIHdlbGwuCisKKyoqKiBOZXcgbGluay10eXBl OiBBdHRhY2htZW50CitBdHRhY2htZW50LWxpbmtzIGFyZSBub3cgZmlyc3QtY2xhc3MgY2l0aXpl bnMuICBUaGV5IG1pbWljayBmaWxlLWxpbmtzCitpbiBldmVyeXRoaW5nIHRoZXkgZG8gYnV0IHVz ZSB0aGUgZXhpc3RpbmcgYXR0YWNobWVudC1mb2xkZXIgYXMgYSBiYXNlCit3aGVuIGV4cGFuZGlu ZyB0aGUgbGlua3MuIEJvdGggPURJUj0gYW5kID1JRD0gcHJvcGVydGllcyBhcmUgdXNlZCB0bwor dHJ5IHRvIHJlc29sdmUgdGhlIGxpbmtzLCBpbiBleGFjdGx5IHRoZSBzYW1lIHdheSBhcyBPcmct QXR0YWNoIHVzZXMKK3Rob3NlIHByb3BlcnRpZXMuCisKICoqKiBIYW5kbGUgb3ZlcmxheSBzcGVj aWZpY2F0aW9uIGZvciBub3RlcyBpbiBCZWFtZXIgZXhwb3J0CiAKIFRoaXMgYWxpZ25zIEJlYW1l ciBub3RlcyB3aXRoIHNsaWRlIG92ZXJsYXlzLgpAQCAtMjQ0LDYgKzMzMywxMCBAQCBkeW5hbWlj IGJsb2NrIGluIH5vcmctZHluYW1pYy1ibG9jay1hbGlzdH4uCiAqKiogfm9yZy1iYWJlbC1zZXQt Y3VycmVudC1yZXN1bHQtaGFzaH4KIAogSXQgd2FzIHVudXNlZCB0aHJvdWdob3V0IHRoZSBjb2Rl IGJhc2UuCisqKiogfm9yZy1hdHRhY2gtZGlyZWN0b3J5fgorCitJdCBoYXMgYmVlbiBkZXByZWNh dGVkIGluIGZhdm91ciBvZiB+b3JnLWF0dGFjaC1pZC1kaXJ+IHdoaWNoIGlzIGxlc3MKK2FtYmln b3VzIGdpdmVuIHRoZSByZXN0cnVjdHVyZWQgb3JnLWF0dGFjaC4KIAogKiogTWlzY2VsbGFuZW91 cwogKioqIExhVGVYIHByZXZpZXcgaXMgc2ltcGxpZmllZApkaWZmIC0tZ2l0IGEvbGlzcC9vcmct YXR0YWNoLWdpdC5lbCBiL2xpc3Avb3JnLWF0dGFjaC1naXQuZWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi45MjRkMDQxNTcKLS0tIC9kZXYvbnVsbAorKysgYi9saXNwL29y Zy1hdHRhY2gtZ2l0LmVsCkBAIC0wLDAgKzEsMTE4IEBACis7Ozsgb3JnLWF0dGFjaC1naXQuZWwg LS0tIEF1dG9tYXRpYyBnaXQgY29tbWl0IGV4dGVudGlvbiB0byBvcmctYXR0YWNoIC0qLSBsZXhp Y2FsLWJpbmRpbmc6IHQ7IC0qLQorCis7OyBDb3B5cmlnaHQgKEMpIDIwMTkgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisKKzs7IE9yaWdpbmFsIEF1dGhvcjogSm9obiBXaWVnbGV5IDxq b2hud0BuZXdhcnRpc2Fucy5jb20+Cis7OyBSZXN0cnVjdHVyZXI6IEd1c3RhdiBXaWtzdHLDtm0g PGd1c3RhdkB3aGlsLnNlPgorOzsgS2V5d29yZHM6IG9yZyBkYXRhIGdpdAorCis7OyBUaGlzIGZp bGUgaXMgcGFydCBvZiBHTlUgRW1hY3MuCis7OworOzsgR05VIEVtYWNzIGlzIGZyZWUgc29mdHdh cmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKzs7IGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Cis7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRo ZSBMaWNlbnNlLCBvcgorOzsgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKwor OzsgR05VIEVtYWNzIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1 c2VmdWwsCis7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w bGllZCB3YXJyYW50eSBvZgorOzsgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKworOzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7IGFsb25nIHdpdGggR05VIEVtYWNz LiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworOzs7IENv bW1lbnRhcnk6CisKKzs7IEFuIGV4dGVudGlvbiB0byBvcmctYXR0YWNoLiAgSWYgdGhlIGF0dGFj aG1lbnQtZGlyZWN0b3J5IHRvIGFuCis7OyBvdXRsaW5lIG5vZGUgKHVzaW5nIGVpdGhlciBESVIg b3IgSUQpIGlzIGluaXRpYWxpemVkIGFzIGEgR2l0Cis7OyByZXBvc2l0b3J5LCB0aGVuIG9yZy1h dHRhY2gtZ2l0IHdpbGwgYXV0b21hdGljYWxseSBjb21taXQgY2hhbmdlcworOzsgd2hlbiBpdCBz ZWVzIHRoZW0uCisKKzs7OyBDb2RlOgorCisocmVxdWlyZSAnb3JnLWF0dGFjaCkKKyhyZXF1aXJl ICd2Yy1naXQpCisKKyhkZWZjdXN0b20gb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2ZmICgqIDMy IDEwMjQpCisgICJJZiBub24tbmlsLCBmaWxlcyBsYXJnZXIgdGhhbiB0aGlzIHdpbGwgYmUgYW5u ZXhlZCBpbnN0ZWFkIG9mIHN0b3JlZC4iCisgIDpncm91cCAnb3JnLWF0dGFjaAorICA6dmVyc2lv biAiMjQuNCIKKyAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI4LjAiKQorICA6dHlwZSAnKGNo b2ljZQorCSAgKGNvbnN0IDp0YWcgIk5vbmUiIG5pbCkKKwkgIChpbnRlZ2VyIDp0YWcgIkJ5dGVz IikpKQorCisoZGVmY3VzdG9tIG9yZy1hdHRhY2gtZ2l0LWFubmV4LWF1dG8tZ2V0ICdhc2sKKyAg IkNvbmZpcm1hdGlvbiBwcmVmZXJlbmNlIGZvciBhdXRvbWF0aWNhbGx5IGdldHRpbmcgYW5uZXgg ZmlsZXMuCitJZiBcXD0nYXNrLCBwcm9tcHQgdXNpbmcgYHktb3Itbi1wJy4gIElmIHQsIGFsd2F5 cyBnZXQuICBJZiBuaWwsIG5ldmVyIGdldC4iCisgIDpncm91cCAnb3JnLWF0dGFjaAorICA6cGFj a2FnZS12ZXJzaW9uICcoT3JnIC4gIjkuMCIpCisgIDp2ZXJzaW9uICIyNi4xIgorICA6dHlwZSAn KGNob2ljZQorCSAgKGNvbnN0IDp0YWcgImNvbmZpcm0gd2l0aCBgeS1vci1uLXAnIiBhc2spCisJ ICAoY29uc3QgOnRhZyAiYWx3YXlzIGdldCBmcm9tIGFubmV4IGlmIG5lY2Vzc2FyeSIgdCkKKwkg IChjb25zdCA6dGFnICJuZXZlciBnZXQgZnJvbSBhbm5leCIgbmlsKSkpCisKKyhkZWZ1biBvcmct YXR0YWNoLWdpdC11c2UtYW5uZXggKCkKKyAgIlJldHVybiBub24tbmlsIGlmIGdpdCBhbm5leCBj YW4gYmUgdXNlZC4iCisgIChsZXQgKChnaXQtZGlyICh2Yy1naXQtcm9vdCAoZXhwYW5kLWZpbGUt bmFtZSBvcmctYXR0YWNoLWlkLWRpcikpKSkKKyAgICAoYW5kIG9yZy1hdHRhY2gtZ2l0LWFubmV4 LWN1dG9mZgorICAgICAgICAgKG9yIChmaWxlLWV4aXN0cy1wIChleHBhbmQtZmlsZS1uYW1lICJh bm5leCIgZ2l0LWRpcikpCisgICAgICAgICAgICAgKGZpbGUtZXhpc3RzLXAgKGV4cGFuZC1maWxl LW5hbWUgIi5naXQvYW5uZXgiIGdpdC1kaXIpKSkpKSkKKworKGRlZnVuIG9yZy1hdHRhY2gtZ2l0 LWFubmV4LWdldC1tYXliZSAocGF0aCkKKyAgIkNhbGwgZ2l0IGFubmV4IGdldCBQQVRIICh2aWEg c2hlbGwpIGlmIHVzaW5nIGdpdCBhbm5leC4KK1NpZ25hbHMgYW4gZXJyb3IgaWYgdGhlIGZpbGUg Y29udGVudCBpcyBub3QgYXZhaWxhYmxlIGFuZCBpdCB3YXMgbm90IHJldHJpZXZlZC4iCisgIChs ZXQqICgoZGVmYXVsdC1kaXJlY3RvcnkgKGV4cGFuZC1maWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1k aXIpKQorCSAocGF0aC1yZWxhdGl2ZSAoZmlsZS1yZWxhdGl2ZS1uYW1lIHBhdGgpKSkKKyAgICAo d2hlbiAoYW5kIChvcmctYXR0YWNoLWdpdC11c2UtYW5uZXgpCisJICAgICAgIChub3QKKwkJKHN0 cmluZy1lcXVhbAorCQkgImZvdW5kIgorCQkgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nCisJCSAg KGZvcm1hdCAiZ2l0IGFubmV4IGZpbmQgLS1mb3JtYXQ9Zm91bmQgLS1pbj1oZXJlICVzIgorCQkJ ICAoc2hlbGwtcXVvdGUtYXJndW1lbnQgcGF0aC1yZWxhdGl2ZSkpKSkpKQorICAgICAgKGxldCAo KHNob3VsZC1nZXQKKwkgICAgIChpZiAoZXEgb3JnLWF0dGFjaC1naXQtYW5uZXgtYXV0by1nZXQg J2FzaykKKwkJICh5LW9yLW4tcCAoZm9ybWF0ICJSdW4gZ2l0IGFubmV4IGdldCAlcz8gIiBwYXRo LXJlbGF0aXZlKSkKKwkgICAgICAgb3JnLWF0dGFjaC1naXQtYW5uZXgtYXV0by1nZXQpKSkKKwko aWYgc2hvdWxkLWdldAorCSAgICAocHJvZ24gKG1lc3NhZ2UgIlJ1bm5pbmcgZ2l0IGFubmV4IGdl dCBcIiVzXCIuIiBwYXRoLXJlbGF0aXZlKQorCQkgICAoY2FsbC1wcm9jZXNzICJnaXQiIG5pbCBu aWwgbmlsICJhbm5leCIgImdldCIgcGF0aC1yZWxhdGl2ZSkpCisJICAoZXJyb3IgIkZpbGUgJXMg c3RvcmVkIGluIGdpdCBhbm5leCBidXQgaXQgaXMgbm90IGF2YWlsYWJsZSwgYW5kIHdhcyBub3Qg cmV0cmlldmVkIgorCQkgcGF0aCkpKSkpKQorCisoZGVmdW4gb3JnLWF0dGFjaC1naXQtY29tbWl0 ICgpCisgICJDb21taXQgY2hhbmdlcyB0byBnaXQgaWYgYG9yZy1hdHRhY2gtaWQtZGlyJyBpcyBw cm9wZXJseSBpbml0aWFsaXplZC4KK1RoaXMgY2hlY2tzIGZvciB0aGUgZXhpc3RlbmNlIG9mIGEg XCIuZ2l0XCIgZGlyZWN0b3J5IGluIHRoYXQgZGlyZWN0b3J5LiIKKyAgKGxldCogKChkaXIgKGV4 cGFuZC1maWxlLW5hbWUgb3JnLWF0dGFjaC1pZC1kaXIpKQorCSAoZ2l0LWRpciAodmMtZ2l0LXJv b3QgZGlyKSkKKwkgKHVzZS1hbm5leCAob3JnLWF0dGFjaC1naXQtdXNlLWFubmV4KSkKKwkgKGNo YW5nZXMgMCkpCisgICAgKHdoZW4gKGFuZCBnaXQtZGlyIChleGVjdXRhYmxlLWZpbmQgImdpdCIp KQorICAgICAgKHdpdGgtdGVtcC1idWZmZXIKKwkoY2QgZGlyKQorICAgICAgICAoZG9saXN0IChu ZXctb3ItbW9kaWZpZWQKKyAgICAgICAgICAgICAgICAgKHNwbGl0LXN0cmluZworICAgICAgICAg ICAgICAgICAgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nCisgICAgICAgICAgICAgICAgICAgImdp dCBscy1maWxlcyAtem1vIC0tZXhjbHVkZS1zdGFuZGFyZCIpICJcMCIgdCkpCisgICAgICAgICAg KGlmIChhbmQgdXNlLWFubmV4CisgICAgICAgICAgICAgICAgICAgKD49IChmaWxlLWF0dHJpYnV0 ZS1zaXplIChmaWxlLWF0dHJpYnV0ZXMgbmV3LW9yLW1vZGlmaWVkKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2ZmKSkKKyAgICAgICAgICAgICAgKGNh bGwtcHJvY2VzcyAiZ2l0IiBuaWwgbmlsIG5pbCAiYW5uZXgiICJhZGQiIG5ldy1vci1tb2RpZmll ZCkKKyAgICAgICAgICAgIChjYWxsLXByb2Nlc3MgImdpdCIgbmlsIG5pbCBuaWwgImFkZCIgbmV3 LW9yLW1vZGlmaWVkKSkKKwkgICAgKGNsLWluY2YgY2hhbmdlcykpCisJKGRvbGlzdCAoZGVsZXRl ZAorCQkgKHNwbGl0LXN0cmluZworCQkgIChzaGVsbC1jb21tYW5kLXRvLXN0cmluZyAiZ2l0IGxz LWZpbGVzIC16IC0tZGVsZXRlZCIpICJcMCIgdCkpCisJICAoY2FsbC1wcm9jZXNzICJnaXQiIG5p bCBuaWwgbmlsICJybSIgZGVsZXRlZCkKKwkgIChjbC1pbmNmIGNoYW5nZXMpKQorCSh3aGVuICg+ IGNoYW5nZXMgMCkKKwkgIChzaGVsbC1jb21tYW5kICJnaXQgY29tbWl0IC1tICdTeW5jaHJvbml6 ZWQgYXR0YWNobWVudHMnIikpKSkpKQorCisoYWRkLWhvb2sgJ29yZy1hdHRhY2gtYWZ0ZXItY2hh bmdlLWhvb2sgJ29yZy1hdHRhY2gtZ2l0LWNvbW1pdCkKKyhhZGQtaG9vayAnb3JnLWF0dGFjaC1v cGVuLWhvb2sgJ29yZy1hdHRhY2gtZ2l0LWFubmV4LWdldC1tYXliZSkKKworKHByb3ZpZGUgJ29y Zy1hdHRhY2gtZ2l0KQorCis7Ozsgb3JnLWF0dGFjaC1naXQuZWwgZW5kcyBoZXJlCmRpZmYgLS1n aXQgYS9saXNwL29yZy1hdHRhY2guZWwgYi9saXNwL29yZy1hdHRhY2guZWwKaW5kZXggZGU4YjJm Yzk2Li5jNGNkYjE2MWMgMTAwNjQ0Ci0tLSBhL2xpc3Avb3JnLWF0dGFjaC5lbAorKysgYi9saXNw L29yZy1hdHRhY2guZWwKQEAgLTEsOSArMSw5IEBACi07Ozsgb3JnLWF0dGFjaC5lbCAtLS0gTWFu YWdlIGZpbGUgYXR0YWNobWVudHMgdG8gT3JnIHRhc2tzIC0qLSBsZXhpY2FsLWJpbmRpbmc6IHQ7 IC0qLQorOzs7IG9yZy1hdHRhY2guZWwgLS0tIE1hbmFnZSBmaWxlIGF0dGFjaG1lbnRzIHRvIE9y ZyBvdXRsaW5lcyAtKi0gbGV4aWNhbC1iaW5kaW5nOiB0OyAtKi0KIAogOzsgQ29weXJpZ2h0IChD KSAyMDA4LTIwMTkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKIDs7IEF1dGhvcjog Sm9obiBXaWVnbGV5IDxqb2hud0BuZXdhcnRpc2Fucy5jb20+Ci07OyBLZXl3b3Jkczogb3JnIGRh dGEgdGFzaworOzsgS2V5d29yZHM6IG9yZyBkYXRhIGF0dGFjaG1lbnQKIAogOzsgVGhpcyBmaWxl IGlzIHBhcnQgb2YgR05VIEVtYWNzLgogOzsKQEAgLTI0LDMyICsyNCwzMCBAQAogCiA7OyBTZWUg dGhlIE9yZyBtYW51YWwgZm9yIGluZm9ybWF0aW9uIG9uIGhvdyB0byB1c2UgaXQuCiA7OwotOzsg QXR0YWNobWVudHMgYXJlIG1hbmFnZWQgaW4gYSBzcGVjaWFsIGRpcmVjdG9yeSBjYWxsZWQgImRh dGEiLCB3aGljaAotOzsgbGl2ZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5IGFzIHRoZSBvcmcgZmls ZSBpdHNlbGYuICBJZiB0aGlzIGRhdGEKLTs7IGRpcmVjdG9yeSBpcyBpbml0aWFsaXplZCBhcyBh IEdpdCByZXBvc2l0b3J5LCB0aGVuIG9yZy1hdHRhY2ggd2lsbAotOzsgYXV0b21hdGljYWxseSBj b21taXQgY2hhbmdlcyB3aGVuIGl0IHNlZXMgdGhlbS4KLTs7Ci07OyBBdHRhY2htZW50IGRpcmVj dG9yaWVzIGFyZSBpZGVudGlmaWVkIHVzaW5nIGEgVVVJRCBnZW5lcmF0ZWQgZm9yIHRoZQotOzsg dGFzayB3aGljaCBoYXMgdGhlIGF0dGFjaG1lbnRzLiAgVGhlc2UgYXJlIGFkZGVkIGFzIHByb3Bl cnR5IHRvIHRoZQotOzsgdGFzayB3aGVuIG5lY2Vzc2FyeSwgYW5kIHNob3VsZCBub3QgYmUgZGVs ZXRlZCBvciBjaGFuZ2VkIGJ5IHRoZQotOzsgdXNlciwgZXZlci4gIFVVSURzIGFyZSBnZW5lcmF0 ZWQgYnkgYSBtZWNoYW5pc20gZGVmaW5lZCBpbiB0aGUgdmFyaWFibGUKLTs7IGBvcmctaWQtbWV0 aG9kJy4KKzs7IEF0dGFjaG1lbnRzIGFyZSBtYW5hZ2VkIGVpdGhlciBieSB1c2luZyBhIGN1c3Rv bSBwcm9wZXJ0eSBESVIgb3IgYnkKKzs7IHVzaW5nIHByb3BlcnR5IElEIGZyb20gb3JnLWlkLiAg V2hlbiBESVIgaXMgZGVmaW5lZCwgYSBsb2NhdGlvbiBpbgorOzsgdGhlIGZpbGVzeXN0ZW0gaXMg ZGlyZWN0bHkgYXR0YWNoZWQgdG8gdGhlIG91dGxpbmUgbm9kZS4gIFdoZW4KKzs7IG9yZy1pZCBp cyB1c2VkLCBhdHRhY2htZW50cyBhcmUgc3RvcmVkIGluIGEgZm9sZGVyIG5hbWVkIGFmdGVyIHRo ZQorOzsgSUQsIGluIGEgbG9jYXRpb24gZGVmaW5lZCBieSBgb3JnLWF0dGFjaC1pZC1kaXInLiAg RElSIGhhcworOzsgcHJlY2VkZW5jZSBvdmVyIElEIHdoZW4gYm90aCBwYXJhbWV0ZXJzIGFyZSBk ZWZpbmVkIGZvciB0aGUgY3VycmVudAorOzsgb3V0bGluZSBub2RlIChhbHNvIHdoZW4gaW5oZXJp dGVkIHBhcmFtZXRlcnMgYXJlIHRha2VuIGludG8KKzs7IGFjY291bnQpLgogCiA7OzsgQ29kZToK IAogKHJlcXVpcmUgJ2NsLWxpYikKIChyZXF1aXJlICdvcmcpCisocmVxdWlyZSAnb2wpCiAocmVx dWlyZSAnb3JnLWlkKQotKHJlcXVpcmUgJ3ZjLWdpdCkKIAogKGRlY2xhcmUtZnVuY3Rpb24gZGly ZWQtZHdpbS10YXJnZXQtZGlyZWN0b3J5ICJkaXJlZC1hdXgiKQogCiAoZGVmZ3JvdXAgb3JnLWF0 dGFjaCBuaWwKLSAgIk9wdGlvbnMgY29uY2VybmluZyBlbnRyeSBhdHRhY2htZW50cyBpbiBPcmcg bW9kZS4iCisgICJPcHRpb25zIGNvbmNlcm5pbmcgYXR0YWNobWVudHMgaW4gT3JnIG1vZGUuIgog ICA6dGFnICJPcmcgQXR0YWNoIgogICA6Z3JvdXAgJ29yZykKIAotKGRlZmN1c3RvbSBvcmctYXR0 YWNoLWRpcmVjdG9yeSAiZGF0YS8iCisoZGVmY3VzdG9tIG9yZy1hdHRhY2gtaWQtZGlyICJkYXRh LyIKICAgIlRoZSBkaXJlY3Rvcnkgd2hlcmUgYXR0YWNobWVudHMgYXJlIHN0b3JlZC4KIElmIHRo aXMgaXMgYSByZWxhdGl2ZSBwYXRoLCBpdCB3aWxsIGJlIGludGVycHJldGVkIHJlbGF0aXZlIHRv IHRoZSBkaXJlY3RvcnkKIHdoZXJlIHRoZSBPcmcgZmlsZSBsaXZlcy4iCkBAIC01NywyMiArNTUs MTMgQEAgd2hlcmUgdGhlIE9yZyBmaWxlIGxpdmVzLiIKICAgOnR5cGUgJ2RpcmVjdG9yeQogICA6 c2FmZSAjJ3N0cmluZ3ApCiAKLShkZWZjdXN0b20gb3JnLWF0dGFjaC1jb21taXQgdAotICAiSWYg bm9uLW5pbCBjb21taXQgYXR0YWNobWVudHMgd2l0aCBnaXQuCi1UaGlzIGlzIG9ubHkgZG9uZSBp ZiB0aGUgT3JnIGZpbGUgaXMgaW4gYSBnaXQgcmVwb3NpdG9yeS4iCisoZGVmY3VzdG9tIG9yZy1h dHRhY2gtZGlyLXJlbGF0aXZlIG5pbAorICAiTm9uLW5pbCBtZWFucyBkaXJlY3RvcmllcyBpbiBE SVIgcHJvcGVydHkgYXJlIGFkZGVkIGFzIHJlbGF0aXZlIGxpbmtzLgorRGVmYXVsdHMgdG8gYWJz b2x1dGUgbG9jYXRpb24uIgogICA6Z3JvdXAgJ29yZy1hdHRhY2gKICAgOnR5cGUgJ2Jvb2xlYW4K LSAgOnZlcnNpb24gIjI2LjEiCi0gIDpwYWNrYWdlLXZlcnNpb24gJyhPcmcgLiAiOS4wIikpCi0K LShkZWZjdXN0b20gb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2ZmICgqIDMyIDEwMjQpCi0gICJJ ZiBub24tbmlsLCBmaWxlcyBsYXJnZXIgdGhhbiB0aGlzIHdpbGwgYmUgYW5uZXhlZCBpbnN0ZWFk IG9mIHN0b3JlZC4iCi0gIDpncm91cCAnb3JnLWF0dGFjaAotICA6dmVyc2lvbiAiMjQuNCIKLSAg OnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI4LjAiKQotICA6dHlwZSAnKGNob2ljZQotCSAgKGNv bnN0IDp0YWcgIk5vbmUiIG5pbCkKLQkgIChpbnRlZ2VyIDp0YWcgIkJ5dGVzIikpKQorICA6cGFj a2FnZS12ZXJzaW9uICcoT3JnIC4gIjkuMyIpCisgIDpzYWZlICMnYm9vbGVhbnApCiAKIChkZWZj dXN0b20gb3JnLWF0dGFjaC1hdXRvLXRhZyAiQVRUQUNIIgogICAiVGFnIHRoYXQgd2lsbCBiZSB0 cmlnZ2VyZWQgYXV0b21hdGljYWxseSB3aGVuIGFuIGVudHJ5IGhhcyBhbiBhdHRhY2htZW50LiIK QEAgLTgxLDE1ICs3MCwyNyBAQCBUaGlzIGlzIG9ubHkgZG9uZSBpZiB0aGUgT3JnIGZpbGUgaXMg aW4gYSBnaXQgcmVwb3NpdG9yeS4iCiAJICAoY29uc3QgOnRhZyAiTm9uZSIgbmlsKQogCSAgKHN0 cmluZyA6dGFnICJUYWciKSkpCiAKLShkZWZjdXN0b20gb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJv cGVydHkgIkF0dGFjaG1lbnRzIgotICAiVGhlIHByb3BlcnR5IHVzZWQgdG8ga2VlcCBhIGxpc3Qg b2YgYXR0YWNobWVudCBiZWxvbmdpbmcgdG8gdGhpcyBlbnRyeS4KLVRoaXMgaXMgbm90IHJlYWxs eSBuZWVkZWQsIHNvIHlvdSBtYXkgc2V0IHRoaXMgdG8gbmlsIGlmIHlvdSBkb24ndCB3YW50IGl0 LgotQWxzbywgZm9yIGVudHJpZXMgd2hlcmUgY2hpbGRyZW4gaW5oZXJpdCB0aGUgZGlyZWN0b3J5 LCB0aGUgbGlzdCBvZgotYXR0YWNobWVudHMgaXMgbm90IGtlcHQgaW4gdGhpcyBwcm9wZXJ0eS4i CisoZGVmY3VzdG9tIG9yZy1hdHRhY2gtcHJlZmVycmVkLW5ldy1tZXRob2QgJ2lkCisgICJQcmVm ZXJyZWQgd2F5IHRvIGF0dGFjaCB0byBub2RlcyB3aXRob3V0IGV4aXN0aW5nIElEIGFuZCBESVIg cHJvcGVydHkuCitUaGlzIGNob2ljZSBpcyB1c2VkIHdoZW4gYWRkaW5nIGF0dGFjaG1lbnRzIHRv IG5vZGVzIHdpdGhvdXQgSUQKK2FuZCBESVIgcHJvcGVydGllcy4KKworQWxsb3dlZCB2YWx1ZXMg YXJlOgorCitpZCAgICAgICAgIENyZWF0ZSBhbmQgdXNlIGFuIElEIHBhcmFtZXRlcgorZGlyICAg ICAgICBDcmVhdGUgYW5kIHVzZSBhIERJUiBwYXJhbWV0ZXIKK2FzayAgICAgICAgQXNrIHRoZSB1 c2VyIGZvciBpbnB1dCBvZiB3aGljaCBtZXRob2QgdG8gY2hvb3NlCituaWwgICAgICAgIFByZWZl ciB0byBub3QgY3JlYXRlIGEgbmV3IHBhcmFtZXRlcgorCisgICAgICAgICAgIG5pbCBtZWFucyB0 aGF0IElEIG9yIERJUiBoYXMgdG8gYmUgY3JlYXRlZCBleHBsaWNpdGx5CisgICAgICAgICAgIGJl Zm9yZSBhdHRhY2hpbmcgZmlsZXMuIgogICA6Z3JvdXAgJ29yZy1hdHRhY2gKKyAgOnBhY2thZ2Ut dmVyc2lvbiAnKG9yZyAuICI5LjMiKQogICA6dHlwZSAnKGNob2ljZQotCSAgKGNvbnN0IDp0YWcg Ik5vbmUiIG5pbCkKLQkgIChzdHJpbmcgOnRhZyAiVGFnIikpKQorCSAgKGNvbnN0IDp0YWcgIklE IHBhcmFtZXRlciIgaWQpCisJICAoY29uc3QgOnRhZyAiRElSIHBhcmFtZXRlciIgZGlyKQorCSAg KGNvbnN0IDp0YWcgIkFzayB1c2VyIiBhc2spCisJICAoY29uc3QgOnRhZyAiRG9uJ3QgY3JlYXRl IiBuaWwpKSkKIAogKGRlZmN1c3RvbSBvcmctYXR0YWNoLW1ldGhvZCAnY3AKICAgIlRoZSBwcmVm ZXJyZWQgbWV0aG9kIHRvIGF0dGFjaCBhIGZpbGUuCkBAIC0xMTMsMTQgKzExNCwyNSBAQCBsbnMg ICBjcmVhdGUgYSBzeW1ib2wgbGluay4gIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQK ICAgOmdyb3VwICdvcmctYXR0YWNoCiAgIDp0eXBlICdib29sZWFuKQogCi0oZGVmY3VzdG9tIG9y Zy1hdHRhY2gtYWxsb3ctaW5oZXJpdGFuY2UgdAotICAiTm9uLW5pbCBtZWFucyBhbGxvdyBhdHRh Y2htZW50IGRpcmVjdG9yaWVzIGJlIGluaGVyaXRlZC4iCisoZGVmY3VzdG9tIG9yZy1hdHRhY2gt dXNlLWluaGVyaXRhbmNlICdzZWxlY3RpdmUKKyAgIkF0dGFjaG1lbnQgaW5oZXJpdGFuY2UgZm9y IHRoZSBvdXRsaW5lLgorCitFbmFibGluZyBpbmhlcml0YW5jZSBmb3Igb3JnLWF0dGFjaCBpbXBs aWVzIHR3byB0aGluZ3MuICBGaXJzdCwKK3RoYXQgYXR0YWNobWVudCBsaW5rcyB3aWxsIGxvb2sg dGhyb3VnaCBhbGwgcGFyZW50IGhlYWRpbmdzIHVudGlsCitpdCBmaW5kcyB0aGUgbGlua2VkIGF0 dGFjaG1lbnQuICBTZWNvbmQsIHRoYXQgcnVubmluZyBvcmctYXR0YWNoCitpbnNpZGUgYSBub2Rl IHdpdGhvdXQgYXR0YWNobWVudHMgd2lsbCBtYWtlIG9yZy1hdHRhY2ggb3BlcmF0ZSBvbgordGhl IGZpcnN0IHBhcmVudCBoZWFkaW5nIGl0IGZpbmRzIHdpdGggYW4gYXR0YWNobWVudC4KKworU2Vs ZWN0aXZlIG1lYW5zIHRvIHJlc3BlY3QgdGhlIGluaGVyaXRhbmNlIHNldHRpbmcgaW4KK2Bvcmct dXNlLXByb3BlcnR5LWluaGVyaXRhbmNlJy4iCiAgIDpncm91cCAnb3JnLWF0dGFjaAorICA6dHlw ZSAnKGNob2ljZQorCSAgKGNvbnN0IDp0YWcgIkRvbid0IHVzZSBpbmhlcml0YW5jZSIgbmlsKQor CSAgKGNvbnN0IDp0YWcgIkluaGVyaXQgcGFyZW50IG5vZGUgYXR0YWNobWVudHMiIHQpCisJICAo Y29uc3QgOnRhZyAiUmVzcGVjdCBvcmctdXNlLXByb3BlcnR5LWluaGVyaXRhbmNlIiBzZWxlY3Rp dmUpCisJICApCiAgIDp0eXBlICdib29sZWFuKQogCi0oZGVmdmFyIG9yZy1hdHRhY2gtaW5oZXJp dGVkIG5pbAotICAiSW5kaWNhdGVzIGlmIHRoZSBsYXN0IGFjY2VzcyB0byB0aGUgYXR0YWNobWVu dCBkaXJlY3Rvcnkgd2FzIGluaGVyaXRlZC4iKQotCiAoZGVmY3VzdG9tIG9yZy1hdHRhY2gtc3Rv cmUtbGluay1wIG5pbAogICAiTm9uLW5pbCBtZWFucyBzdG9yZSBhIGxpbmsgdG8gYSBmaWxlIHdo ZW4gYXR0YWNoaW5nIGl0LiIKICAgOmdyb3VwICdvcmctYXR0YWNoCkBAIC0xNDEsMTYgKzE1Mywy OCBAQCBXaGVuIHNldCB0byBgcXVlcnknLCBhc2sgdGhlIHVzZXIgaW5zdGVhZC4iCiAJICAoY29u c3QgOnRhZyAiQWx3YXlzIGRlbGV0ZSBhdHRhY2htZW50cyIgdCkKIAkgIChjb25zdCA6dGFnICJR dWVyeSB0aGUgdXNlciIgcXVlcnkpKSkKIAotKGRlZmN1c3RvbSBvcmctYXR0YWNoLWFubmV4LWF1 dG8tZ2V0ICdhc2sKLSAgIkNvbmZpcm1hdGlvbiBwcmVmZXJlbmNlIGZvciBhdXRvbWF0aWNhbGx5 IGdldHRpbmcgYW5uZXggZmlsZXMuCi1JZiBcXD0nYXNrLCBwcm9tcHQgdXNpbmcgYHktb3Itbi1w Jy4gIElmIHQsIGFsd2F5cyBnZXQuICBJZiBuaWwsIG5ldmVyIGdldC4iCisoZGVmdW4gb3JnLWF0 dGFjaC1pZC1mb2xkZXItZm9ybWF0IChpZCkKKyAgIlRyYW5zbGF0ZSBhbiBJRCBpbnRvIGEgZm9s ZGVyLXBhdGguCitEZWZhdWx0IGZvcm1hdCBmb3IgaG93IE9yZyB0cmFuc2xhdGVzIElEIHByb3Bl cnRpZXMgdG8gYSBwYXRoIGZvcgorYXR0YWNobWVudHMuIgorICAoZm9ybWF0ICIlcy8lcyIKKwkg IChzdWJzdHJpbmcgaWQgMCAyKQorCSAgKHN1YnN0cmluZyBpZCAyKSkpCisKKyhkZWZjdXN0b20g b3JnLWF0dGFjaC1pZC10by1wYXRoLWZ1bmN0aW9uICMnb3JnLWF0dGFjaC1pZC1mb2xkZXItZm9y bWF0CisgICJGdW5jdGlvbiBwYXJzaW5nIHRoZSBJRCBwYXJhbWV0ZXIgaW50byBhIGZvbGRlci1w YXRoLiIKICAgOmdyb3VwICdvcmctYXR0YWNoCi0gIDpwYWNrYWdlLXZlcnNpb24gJyhPcmcgLiAi OS4wIikKLSAgOnZlcnNpb24gIjI2LjEiCi0gIDp0eXBlICcoY2hvaWNlCi0JICAoY29uc3QgOnRh ZyAiY29uZmlybSB3aXRoIGB5LW9yLW4tcCciIGFzaykKLQkgIChjb25zdCA6dGFnICJhbHdheXMg Z2V0IGZyb20gYW5uZXggaWYgbmVjZXNzYXJ5IiB0KQotCSAgKGNvbnN0IDp0YWcgIm5ldmVyIGdl dCBmcm9tIGFubmV4IiBuaWwpKSkKKyAgOnBhY2thZ2UtdmVyc2lvbiAnKE9yZyAuICI5LjMiKQor ICA6dHlwZSAnZnVuY3Rpb24pCisKKyhkZWZ2YXIgb3JnLWF0dGFjaC1hZnRlci1jaGFuZ2UtaG9v ayBuaWwKKyAgIkhvb2sgdG8gYmUgY2FsbGVkIHdoZW4gZmlsZXMgaGF2ZSBiZWVuIGFkZGVkIG9y IHJlbW92ZWQgdG8gdGhlIGF0dGFjaG1lbnQgZm9sZGVyLiIpCisKKyhkZWZ2YXIgb3JnLWF0dGFj aC1vcGVuLWhvb2sgbmlsCisgICJIb29rIHRoYXQgaXMgaW52b2tlZCBieSBgb3JnLWF0dGFjaC1v cGVuJy4KKworQ3JlYXRlZCBtb3N0bHkgdG8gYmUgY29tcGF0aWJsZSB3aXRoIG9yZy1hdHRhY2gt Z2l0IGFmdGVyIHJlbW92aW5nCitnaXQtZnVudGlvbmFsaXR5IGZyb20gdGhpcyBmaWxlLiIpCiAK IChkZWZjdXN0b20gb3JnLWF0dGFjaC1jb21tYW5kcwogICAnKCgoP2EgP1xDLWEpIG9yZy1hdHRh Y2gtYXR0YWNoCkBAIC0xODYsOSArMjEwLDkgQEAgeW91IGFkZGVkIGF0dGFjaG1lbnRzIHlvdXJz ZWxmLlxuIikKICAgICAgIkRlbGV0ZSBhbGwgb2YgYSB0YXNrJ3MgYXR0YWNobWVudHMuICBBIHNh ZmVyIHdheSBpc1xuIHRvIG9wZW4gdGhlIFwKIGRpcmVjdG9yeSBpbiBkaXJlZCBhbmQgZGVsZXRl IGZyb20gdGhlcmUuXG4iKQogICAgICgoP3MgP1xDLXMpIG9yZy1hdHRhY2gtc2V0LWRpcmVjdG9y eQotICAgICAiU2V0IGEgc3BlY2lmaWMgYXR0YWNobWVudCBkaXJlY3RvcnkgZm9yIHRoaXMgZW50 cnkgb3IgcmVzZXQgdG8gZGVmYXVsdC4iKQotICAgICgoP2kgP1xDLWkpIG9yZy1hdHRhY2gtc2V0 LWluaGVyaXQKLSAgICAgIk1ha2UgY2hpbGRyZW4gb2YgdGhlIGN1cnJlbnQgZW50cnkgaW5oZXJp dCBpdHMgYXR0YWNobWVudCBkaXJlY3RvcnkuXG4iKQorICAgICAiU2V0IGEgc3BlY2lmaWMgYXR0 YWNobWVudCBkaXJlY3RvcnkgZm9yIHRoaXMgZW50cnkuIFNldHMgRElSIHByb3BlcnR5LiIpCisg ICAgKCg/UyA/XEMtUykgb3JnLWF0dGFjaC11bnNldC1kaXJlY3RvcnkKKyAgICAgIlVuc2V0IHRo ZSBhdHRhY2htZW50IGRpcmVjdG9yeSBmb3IgdGhpcyBlbnRyeS4gIFJlbW92ZXMgRElSIHByb3Bl cnR5LiIpCiAgICAgKCg/cSkgKGxhbWJkYSAoKSAoaW50ZXJhY3RpdmUpIChtZXNzYWdlICJBYm9y dCIpKSAiQWJvcnQuIikpCiAgICJUaGUgbGlzdCBvZiBjb21tYW5kcyBmb3IgdGhlIGF0dGFjaG1l bnQgZGlzcGF0Y2hlci4KIEVhY2ggZW50cnkgaW4gdGhpcyBsaXN0IGlzIGEgbGlzdCBvZiB0aHJl ZSBlbGVtZW50czoKQEAgLTIxMCwzOSArMjM0LDQyIEBAIEVhY2ggZW50cnkgaW4gdGhpcyBsaXN0 IGlzIGEgbGlzdCBvZiB0aHJlZSBlbGVtZW50czoKICAgIlRoZSBkaXNwYXRjaGVyIGZvciBhdHRh Y2htZW50IGNvbW1hbmRzLgogU2hvd3MgYSBsaXN0IG9mIGNvbW1hbmRzIGFuZCBwcm9tcHRzIGZv ciBhbm90aGVyIGtleSB0byBleGVjdXRlIGEgY29tbWFuZC4iCiAgIChpbnRlcmFjdGl2ZSkKLSAg KGxldCAoYyBtYXJrZXIpCisgIChsZXQgKGMgbWFya2VyIGF0dGFjaG1lbnQpCiAgICAgKHdoZW4g KGVxIG1ham9yLW1vZGUgJ29yZy1hZ2VuZGEtbW9kZSkKICAgICAgIChzZXRxIG1hcmtlciAob3Ig KGdldC10ZXh0LXByb3BlcnR5IChwb2ludCkgJ29yZy1oZC1tYXJrZXIpCiAJCSAgICAgICAoZ2V0 LXRleHQtcHJvcGVydHkgKHBvaW50KSAnb3JnLW1hcmtlcikpKQogICAgICAgKHVubGVzcyBtYXJr ZXIKLQkoZXJyb3IgIk5vIHRhc2sgaW4gY3VycmVudCBsaW5lIikpKQorCShlcnJvciAiTm8gaXRl bSBpbiBjdXJyZW50IGxpbmUiKSkpCiAgICAgKHNhdmUtZXhjdXJzaW9uCiAgICAgICAod2hlbiBt YXJrZXIKIAkoc2V0LWJ1ZmZlciAobWFya2VyLWJ1ZmZlciBtYXJrZXIpKQogCShnb3RvLWNoYXIg bWFya2VyKSkKICAgICAgIChvcmctYmFjay10by1oZWFkaW5nIHQpCisgICAgICAoc2V0cSBhdHRh Y2htZW50IChvciAob3JnLWF0dGFjaC1kaXIpCisJCQkgICAocXVvdGUgICJDYW4ndCBmaW5kIGFu IGV4aXN0aW5nIGF0dGFjaG1lbnQtZm9sZGVyIikpKQogICAgICAgKHNhdmUtZXhjdXJzaW9uCiAJ KHNhdmUtd2luZG93LWV4Y3Vyc2lvbgogCSAgKHVubGVzcyBvcmctYXR0YWNoLWV4cGVydAogCSAg ICAod2l0aC1vdXRwdXQtdG8tdGVtcC1idWZmZXIgIipPcmcgQXR0YWNoKiIKLQkgICAgICAocHJp bmMKLQkgICAgICAgKGZvcm1hdCAiU2VsZWN0IGFuIEF0dGFjaG1lbnQgQ29tbWFuZDpcblxuJXMi Ci0JCSAgICAgICAobWFwY29uY2F0Ci0JCQkobGFtYmRhIChlbnRyeSkKLQkJCSAgKHBjYXNlIGVu dHJ5Ci0JCQkgICAgKGAoKCxrZXkgLiAsXykgLF8gLGRvY3N0cmluZykKLQkJCSAgICAgKGZvcm1h dCAiJWMgICAgICAgJXMiCi0JCQkJICAgICBrZXkKLQkJCQkgICAgIChyZXBsYWNlLXJlZ2V4cC1p bi1zdHJpbmcgIlxuXFwoW1x0IF0qXFwpIgotCQkJCQkJCSAgICAgICAiICAgICAgICAiCi0JCQkJ CQkJICAgICAgIGRvY3N0cmluZwotCQkJCQkJCSAgICAgICBuaWwgbmlsIDEpKSkKLQkJCSAgICAo XwotCQkJICAgICAodXNlci1lcnJvcgotCQkJICAgICAgIkludmFsaWQgYG9yZy1hdHRhY2gtY29t bWFuZHMnIGl0ZW06ICVTIgotCQkJICAgICAgZW50cnkpKSkpCi0JCQlvcmctYXR0YWNoLWNvbW1h bmRzCi0JCQkiXG4iKSkpKSkKKyAgICAgICAgICAgICAgKHByaW5jCisgICAgICAgICAgICAgICAo Y29uY2F0ICJBdHRhY2htZW50IGZvbGRlcjpcbiIgYXR0YWNobWVudCAiXG5cbiIKKwkgICAgICAg ICAgICAgICAoZm9ybWF0ICJTZWxlY3QgYW4gQXR0YWNobWVudCBDb21tYW5kOlxuXG4lcyIKKwkJ ICAgICAgICAgICAgICAgKG1hcGNvbmNhdAorCQkgICAgICAgICAgICAgICAgKGxhbWJkYSAoZW50 cnkpCisJCSAgICAgICAgICAgICAgICAgIChwY2FzZSBlbnRyeQorCQkgICAgICAgICAgICAgICAg ICAgIChgKCgsa2V5IC4gLF8pICxfICxkb2NzdHJpbmcpCisJCSAgICAgICAgICAgICAgICAgICAg IChmb3JtYXQgIiVjICAgICAgICVzIgorCQkJICAgICAgICAgICAgICAgICAgICAga2V5CisJCQkg ICAgICAgICAgICAgICAgICAgICAocmVwbGFjZS1yZWdleHAtaW4tc3RyaW5nICJcblxcKFtcdCBd KlxcKSIKKwkJCQkJCQkgICAgICAgICAgICAgICAiICAgICAgICAiCisJCQkJCQkJICAgICAgICAg ICAgICAgZG9jc3RyaW5nCisJCQkJCQkJICAgICAgICAgICAgICAgbmlsIG5pbCAxKSkpCisJCSAg ICAgICAgICAgICAgICAgICAgKF8KKwkJICAgICAgICAgICAgICAgICAgICAgKHVzZXItZXJyb3IK KwkJCSAgICAgICAgICAgICAgIkludmFsaWQgYG9yZy1hdHRhY2gtY29tbWFuZHMnIGl0ZW06ICVT IgorCQkJICAgICAgICAgICAgICBlbnRyeSkpKSkKKwkJICAgICAgICAgICAgICAgIG9yZy1hdHRh Y2gtY29tbWFuZHMKKwkJICAgICAgICAgICAgICAgICJcbiIpKSkpKSkKIAkgIChvcmctZml0LXdp bmRvdy10by1idWZmZXIgKGdldC1idWZmZXItd2luZG93ICIqT3JnIEF0dGFjaCoiKSkKIAkgICht ZXNzYWdlICJTZWxlY3QgY29tbWFuZDogWyVzXSIKIAkJICAgKGNvbmNhdCAobWFwY2FyICMnY2Fh ciBvcmctYXR0YWNoLWNvbW1hbmRzKSkpCkBAIC0yNTYsMTQ4ICsyODMsMTI2IEBAIFNob3dzIGEg bGlzdCBvZiBjb21tYW5kcyBhbmQgcHJvbXB0cyBmb3IgYW5vdGhlciBrZXkgdG8gZXhlY3V0ZSBh IGNvbW1hbmQuIgogCSAgKGVycm9yICJObyBzdWNoIGF0dGFjaG1lbnQgY29tbWFuZDogJWMiIGMp KSkpKSkKIAogKGRlZnVuIG9yZy1hdHRhY2gtZGlyICgmb3B0aW9uYWwgY3JlYXRlLWlmLW5vdC1l eGlzdHMtcCkKLSAgIlJldHVybiB0aGUgZGlyZWN0b3J5IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3Vy cmVudCBlbnRyeS4KLVRoaXMgZmlyc3QgY2hlY2tzIGZvciBhIGxvY2FsIHByb3BlcnR5IEFUVEFD SF9ESVIsIGFuZCB0aGVuIGZvciBhbiBpbmhlcml0ZWQKLXByb3BlcnR5IEFUVEFDSF9ESVJfSU5I RVJJVC4gIElmIG5laXRoZXIgZXhpc3RzLCB0aGUgZGVmYXVsdCBtZWNoYW5pc20KLXVzaW5nIHRo ZSBlbnRyeSBJRCB3aWxsIGJlIGludm9rZWQgdG8gYWNjZXNzIHRoZSB1bmlxdWUgZGlyZWN0b3J5 IGZvciB0aGUKLWN1cnJlbnQgZW50cnkuCi1JZiB0aGUgZGlyZWN0b3J5IGRvZXMgbm90IGV4aXN0 IGFuZCBDUkVBVEUtSUYtTk9ULUVYSVNUUy1QIGlzIG5vbi1uaWwsCi10aGUgZGlyZWN0b3J5IGFu ZCAoaWYgbmVjZXNzYXJ5KSB0aGUgY29ycmVzcG9uZGluZyBJRCB3aWxsIGJlIGNyZWF0ZWQuIgot ICAobGV0IChhdHRhY2gtZGlyIHV1aWQpCi0gICAgKHNldHEgb3JnLWF0dGFjaC1pbmhlcml0ZWQg KG9yZy1lbnRyeS1nZXQgbmlsICJBVFRBQ0hfRElSX0lOSEVSSVQiKSkKKyAgIlJldHVybiB0aGUg ZGlyZWN0b3J5IGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBvdXRsaW5lIG5vZGUuCitGaXJz dCBjaGVjayBmb3IgRElSIHByb3BlcnR5LCB0aGVuIElEIHByb3BlcnR5LgorYG9yZy1hdHRhY2gt dXNlLWluaGVyaXRhbmNlJyBkZXRlcm1pbmVzIHdoZXRoZXIgaW5oZXJpdGVkCitwcm9wZXJ0aWVz IGFsc28gd2lsbCBiZSBjb25zaWRlcmVkLgorCitJZiBhbiBJRCBwcm9wZXJ0eSBpcyBmb3VuZCB0 aGUgZGVmYXVsdCBtZWNoYW5pc20gdXNpbmcgdGhhdCBJRAord2lsbCBiZSBpbnZva2VkIHRvIGFj Y2VzcyB0aGUgZGlyZWN0b3J5IGZvciB0aGUgY3VycmVudCBlbnRyeS4KKworSWYgQ1JFQVRFLUlG LU5PVC1FWElTVC1QIGlzIG5vbi1uaWwsIGBvcmctYXR0YWNoLWRpci1nZXQtY3JlYXRlJworaXMg cnVuLiIKKyAgKGxldCAoYXR0YWNoLWRpciBpZCkKICAgICAoY29uZAotICAgICAoKHNldHEgYXR0 YWNoLWRpciAob3JnLWVudHJ5LWdldCBuaWwgIkFUVEFDSF9ESVIiKSkKKyAgICAgKGNyZWF0ZS1p Zi1ub3QtZXhpc3RzLXAKKyAgICAgIChzZXRxIGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyLWdl dC1jcmVhdGUpKSkKKyAgICAgKChzZXRxIGF0dGFjaC1kaXIgKG9yZy1lbnRyeS1nZXQgbmlsICJE SVIiIG9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNlKSkKICAgICAgIChvcmctYXR0YWNoLWNoZWNr LWFic29sdXRlLXBhdGggYXR0YWNoLWRpcikpCi0gICAgICgoYW5kIG9yZy1hdHRhY2gtYWxsb3ct aW5oZXJpdGFuY2UKLQkgICAob3JnLWVudHJ5LWdldCBuaWwgIkFUVEFDSF9ESVJfSU5IRVJJVCIg dCkpCi0gICAgICAoc2V0cSBhdHRhY2gtZGlyCi0JICAgIChvcmctd2l0aC13aWRlLWJ1ZmZlcgot CSAgICAgKGlmIChtYXJrZXItcG9zaXRpb24gb3JnLWVudHJ5LXByb3BlcnR5LWluaGVyaXRlZC1m cm9tKQotCQkgKGdvdG8tY2hhciBvcmctZW50cnktcHJvcGVydHktaW5oZXJpdGVkLWZyb20pCi0J ICAgICAgIChvcmctYmFjay10by1oZWFkaW5nIHQpKQotCSAgICAgKGxldCAob3JnLWF0dGFjaC1h bGxvdy1pbmhlcml0YW5jZSkKLQkgICAgICAgKG9yZy1hdHRhY2gtZGlyIGNyZWF0ZS1pZi1ub3Qt ZXhpc3RzLXApKSkpCi0gICAgICAob3JnLWF0dGFjaC1jaGVjay1hYnNvbHV0ZS1wYXRoIGF0dGFj aC1kaXIpCi0gICAgICAoc2V0cSBvcmctYXR0YWNoLWluaGVyaXRlZCB0KSkKLSAgICAgKHQJCQkJ CTsgdXNlIHRoZSBJRAorICAgICA7OyBEZXByZWNhdGVkIGFuZCByZW1vdmVkIGZyb20gZG9jdW1l bnRhdGlvbiwgYnV0IHN0aWxsCisgICAgIDs7IHdvcmtzLiBGSVhNRTogUmVtb3ZlIGFmdGVyIG1h am9yIG5yIGNoYW5nZS4KKyAgICAgKChzZXRxIGF0dGFjaC1kaXIgKG9yZy1lbnRyeS1nZXQgbmls ICJBVFRBQ0hfRElSIiBvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5jZSkpCisgICAgICAob3JnLWF0 dGFjaC1jaGVjay1hYnNvbHV0ZS1wYXRoIGF0dGFjaC1kaXIpKQorICAgICAoKHNldHEgaWQgKG9y Zy1lbnRyeS1nZXQgbmlsICJJRCIgb3JnLWF0dGFjaC11c2UtaW5oZXJpdGFuY2UpKQogICAgICAg KG9yZy1hdHRhY2gtY2hlY2stYWJzb2x1dGUtcGF0aCBuaWwpCi0gICAgICAoc2V0cSB1dWlkIChv cmctaWQtZ2V0IChwb2ludCkgY3JlYXRlLWlmLW5vdC1leGlzdHMtcCkpCi0gICAgICAod2hlbiAo b3IgdXVpZCBjcmVhdGUtaWYtbm90LWV4aXN0cy1wKQotCSh1bmxlc3MgdXVpZCAoZXJyb3IgIklE IHJldHJpZXZhbC9jcmVhdGlvbiBmYWlsZWQiKSkKLQkoc2V0cSBhdHRhY2gtZGlyIChleHBhbmQt ZmlsZS1uYW1lCi0JCQkgIChmb3JtYXQgIiVzLyVzIgotCQkJCSAgKHN1YnN0cmluZyB1dWlkIDAg MikKLQkJCQkgIChzdWJzdHJpbmcgdXVpZCAyKSkKLQkJCSAgKGV4cGFuZC1maWxlLW5hbWUgb3Jn LWF0dGFjaC1kaXJlY3RvcnkpKSkpKSkKLSAgICAod2hlbiBhdHRhY2gtZGlyCi0gICAgICAoaWYg KGFuZCBjcmVhdGUtaWYtbm90LWV4aXN0cy1wCi0JICAgICAgIChub3QgKGZpbGUtZGlyZWN0b3J5 LXAgYXR0YWNoLWRpcikpKQotCSAgKG1ha2UtZGlyZWN0b3J5IGF0dGFjaC1kaXIgdCkpCi0gICAg ICAoYW5kIChmaWxlLWV4aXN0cy1wIGF0dGFjaC1kaXIpCi0JICAgYXR0YWNoLWRpcikpKSkKKyAg ICAgIChzZXRxIGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyLWZyb20taWQgaWQpKSkpCisgICAg YXR0YWNoLWRpcikpCisKKyhkZWZ1biBvcmctYXR0YWNoLWRpci1nZXQtY3JlYXRlICgpCisgICJS ZXR1cm4gZXhpc3Rpbmcgb3IgbmV3IGRpcmVjdG9yeSBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJl bnQgb3V0bGluZSBub2RlLgorCitgb3JnLWF0dGFjaC1wcmVmZXJyZWQtbmV3LW1ldGhvZCcgZGVj aWRlcyBob3cgdG8gYXR0YWNoCituZXcgZGlyZWN0b3J5LiIKKyAgKGludGVyYWN0aXZlKQorICAo bGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXIpKSkKKyAgICAodW5sZXNzIGF0dGFjaC1k aXIKKyAgICAgIChsZXQgKGFuc3dlcikKKwkod2hlbiAoZXEgb3JnLWF0dGFjaC1wcmVmZXJyZWQt bmV3LW1ldGhvZCAnYXNrKQorCSAgKG1lc3NhZ2UgIkNyZWF0ZSBuZXcgSUQgWzFdIHByb3BlcnR5 IG9yIERJUiBbMl0gcHJvcGVydHkgZm9yIGF0dGFjaG1lbnRzPyIpCisJICAoc2V0cSBhbnN3ZXIg KHJlYWQtY2hhci1leGNsdXNpdmUpKSkKKwkoY29uZAorCSAoKG9yIChlcSBvcmctYXR0YWNoLXBy ZWZlcnJlZC1uZXctbWV0aG9kICdpZCkgKGVxIGFuc3dlciA/MSkpCisJICAoc2V0cSBhdHRhY2gt ZGlyIChvcmctYXR0YWNoLWRpci1mcm9tLWlkIChvcmctaWQtZ2V0IG5pbCB0KSkpKQorCSAoKG9y IChlcSBvcmctYXR0YWNoLXByZWZlcnJlZC1uZXctbWV0aG9kICdkaXIpIChlcSBhbnN3ZXIgPzIp KQorCSAgKHNldHEgYXR0YWNoLWRpciAob3JnLWF0dGFjaC1zZXQtZGlyZWN0b3J5KSkpCisJICgo ZXEgb3JnLWF0dGFjaC1wcmVmZXJyZWQtbmV3LW1ldGhvZCAnbmlsKQorCSAgKGVycm9yICJObyBl eGlzdGluZyBkaXJlY3RvcnkuIERJUiBvciBJRCBwcm9wZXJ0eSBoYXMgdG8gYmUgZXhwbGljaXRs eSBjcmVhdGVkIikpKSkpCisgICAgKGlmIGF0dGFjaC1kaXIKKwkocHJvZ24gKGlmIChub3QgKGZp bGUtZGlyZWN0b3J5LXAgYXR0YWNoLWRpcikpCisJCSAgIChtYWtlLWRpcmVjdG9yeSBhdHRhY2gt ZGlyIHQpKQorCSAgICAgICBhdHRhY2gtZGlyKQorICAgICAgKGVycm9yICJObyBhdHRhY2htZW50 IGRpcmVjdG9yeSBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgbm9kZSIpKSkpCisKKyhk ZWZ1biBvcmctYXR0YWNoLWRpci1mcm9tLWlkIChpZCkKKyAgIkNyZWF0ZXMgYSBwYXRoIGJhc2Vk IG9uIGBvcmctYXR0YWNoLWlkLWRpcicgYW5kIElELiIKKyAgKGV4cGFuZC1maWxlLW5hbWUKKyAg IChmdW5jYWxsIG9yZy1hdHRhY2gtaWQtdG8tcGF0aC1mdW5jdGlvbiBpZCkKKyAgIChleHBhbmQt ZmlsZS1uYW1lIG9yZy1hdHRhY2gtaWQtZGlyKSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLWNoZWNr LWFic29sdXRlLXBhdGggKGRpcikKICAgIkNoZWNrIGlmIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0 aW9uIHRvIHJvb3QgdGhlIGF0dGFjaG1lbnQgZGlyZWN0b3J5LgogV2hlbiBESVIgaXMgZ2l2ZW4s IGNoZWNrIGFsc28gaWYgaXQgaXMgYWxyZWFkeSBhYnNvbHV0ZS4gIE90aGVyd2lzZSwKLWFzc3Vt ZSB0aGF0IGl0IHdpbGwgYmUgcmVsYXRpdmUsIGFuZCBjaGVjayBpZiBgb3JnLWF0dGFjaC1kaXJl Y3RvcnknIGlzCithc3N1bWUgdGhhdCBpdCB3aWxsIGJlIHJlbGF0aXZlLCBhbmQgY2hlY2sgaWYg YG9yZy1hdHRhY2gtaWQtZGlyJyBpcwogYWJzb2x1dGUsIG9yIGlmIGF0IGxlYXN0IHRoZSBjdXJy ZW50IGJ1ZmZlciBoYXMgYSBmaWxlIG5hbWUuCiBUaHJvdyBhbiBlcnJvciBpZiB3ZSBjYW5ub3Qg cm9vdCB0aGUgZGlyZWN0b3J5LiIKICAgKG9yIChhbmQgZGlyIChmaWxlLW5hbWUtYWJzb2x1dGUt cCBkaXIpKQotICAgICAgKGZpbGUtbmFtZS1hYnNvbHV0ZS1wIG9yZy1hdHRhY2gtZGlyZWN0b3J5 KQorICAgICAgKGZpbGUtbmFtZS1hYnNvbHV0ZS1wIG9yZy1hdHRhY2gtaWQtZGlyKQogICAgICAg KGJ1ZmZlci1maWxlLW5hbWUgKGJ1ZmZlci1iYXNlLWJ1ZmZlcikpCi0gICAgICAoZXJyb3IgIk5l ZWQgYWJzb2x1dGUgYG9yZy1hdHRhY2gtZGlyZWN0b3J5JyB0byBhdHRhY2ggaW4gYnVmZmVycyB3 aXRob3V0IGZpbGVuYW1lIikpKQorICAgICAgKGVycm9yICJOZWVkIGFic29sdXRlIGBvcmctYXR0 YWNoLWlkLWRpcicgdG8gYXR0YWNoIGluIGJ1ZmZlcnMgd2l0aG91dCBmaWxlbmFtZSIpKSkKIAot KGRlZnVuIG9yZy1hdHRhY2gtc2V0LWRpcmVjdG9yeSAoJm9wdGlvbmFsIGFyZykKLSAgIlNldCB0 aGUgQVRUQUNIX0RJUiBub2RlIHByb3BlcnR5IGFuZCBhc2sgdG8gbW92ZSBmaWxlcyB0aGVyZS4K KyhkZWZ1biBvcmctYXR0YWNoLXNldC1kaXJlY3RvcnkgKCkKKyAgIlNldCB0aGUgRElSIG5vZGUg cHJvcGVydHkgYW5kIGFzayB0byBtb3ZlIGZpbGVzIHRoZXJlLgogVGhlIHByb3BlcnR5IGRlZmlu ZXMgdGhlIGRpcmVjdG9yeSB0aGF0IGlzIHVzZWQgZm9yIGF0dGFjaG1lbnRzCi1vZiB0aGUgZW50 cnkuICBXaGVuIGNhbGxlZCB3aXRoIGBcXFt1bml2ZXJzYWwtYXJndW1lbnRdJywgcmVzZXQgXAot dGhlIGRpcmVjdG9yeSB0bwotdGhlIGRlZmF1bHQgSUQgYmFzZWQgb25lLiIKLSAgKGludGVyYWN0 aXZlICJQIikKK29mIHRoZSBlbnRyeS4gIENyZWF0ZXMgcmVsYXRpdmUgbGlua3MgaWYgYG9yZy1h dHRhY2gtZGlyLXJlbGF0aXZlJworaXMgdC4KKworUmV0dXJuIHRoZSBkaXJlY3RvcnkuIgorICAo aW50ZXJhY3RpdmUpCiAgIChsZXQgKChvbGQgKG9yZy1hdHRhY2gtZGlyKSkKLSAgICAgICAgKG5l dwotICAgICAgICAgKHByb2duCi0gICAgICAgICAgIChpZiBhcmcgKG9yZy1lbnRyeS1kZWxldGUg bmlsICJBVFRBQ0hfRElSIikKLSAgICAgICAgICAgICAobGV0ICgoZGlyIChyZWFkLWRpcmVjdG9y eS1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgIkF0dGFjaG1lbnQgZGlyZWN0b3J5OiAi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKG9yZy1lbnRyeS1nZXQgbmlsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFUVEFDSF9ESVIiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFuZCBvcmctYXR0YWNoLWFsbG93LWluaGVyaXRh bmNlIHQpKSkpKQotICAgICAgICAgICAgICAgKG9yZy1lbnRyeS1wdXQgbmlsICJBVFRBQ0hfRElS IiBkaXIpKSkKLSAgICAgICAgICAgKG9yZy1hdHRhY2gtZGlyIHQpKSkpCisJKG5ldworCSAobGV0 KiAoKGF0dGFjaC1kaXIgKHJlYWQtZGlyZWN0b3J5LW5hbWUKKwkJCSAgICAgIkF0dGFjaG1lbnQg ZGlyZWN0b3J5OiAiCisJCQkgICAgIChvcmctZW50cnktZ2V0IG5pbCAiRElSIikpKQorCQkoY3Vy cmVudC1kaXIgKGZpbGUtbmFtZS1kaXJlY3RvcnkgKG9yIGRlZmF1bHQtZGlyZWN0b3J5CisJCQkJ CQkgICAgICBidWZmZXItZmlsZS1uYW1lKSkpCisJCShhdHRhY2gtZGlyLXJlbGF0aXZlIChmaWxl LXJlbGF0aXZlLW5hbWUgYXR0YWNoLWRpciBjdXJyZW50LWRpcikpKQorCSAgIChvcmctZW50cnkt cHV0IG5pbCAiRElSIiAoaWYgb3JnLWF0dGFjaC1kaXItcmVsYXRpdmUKKwkJCQkJYXR0YWNoLWRp ci1yZWxhdGl2ZQorCQkJCSAgICAgIGF0dGFjaC1kaXIpKQorICAgICAgICAgICBhdHRhY2gtZGly KSkpCiAgICAgKHVubGVzcyAob3IgKHN0cmluZz0gb2xkIG5ldykKICAgICAgICAgICAgICAgICAo bm90IG9sZCkpCiAgICAgICAod2hlbiAoeWVzLW9yLW5vLXAgIkNvcHkgb3ZlciBhdHRhY2htZW50 cyBmcm9tIG9sZCBkaXJlY3Rvcnk/ICIpCisgICAgICAgIChjb3B5LWRpcmVjdG9yeSBvbGQgbmV3 IHQgdCB0KSkKKyAgICAgICh3aGVuICh5ZXMtb3Itbm8tcCAoY29uY2F0ICJEZWxldGUgIiBvbGQp KQorICAgICAgICAoZGVsZXRlLWRpcmVjdG9yeSBvbGQgdCkpKQorICAgIG5ldykpCisKKyhkZWZ1 biBvcmctYXR0YWNoLXVuc2V0LWRpcmVjdG9yeSAoKQorICAiUmVtb3ZlcyBESVIgbm9kZSBwcm9w ZXJ0eS4KK0lmIGF0dGFjaG1lbnQgZm9sZGVyIGlzIGNoYW5nZWQgZHVlIHRvIHJlbW92YWwgb2Yg RElSLXByb3BlcnR5Cithc2sgdG8gbW92ZSBhdHRhY2htZW50cyB0byBuZXcgbG9jYXRpb24gYW5k IGFzayB0byBkZWxldGUgb2xkCithdHRhY2htZW50LWZvbGRlci4KKworQ2hhbmdlIG9mIGF0dGFj aG1lbnQtZm9sZGVyIGR1ZSB0byB1bnNldCBtaWdodCBiZSBpZiBhbiBJRAorcHJvcGVydHkgaXMg c2V0IG9uIHRoZSBub2RlLCBvciBpZiBhIHNlcGFyYXRlIGluaGVyaXRlZAorRElSLXByb3BlcnR5 IGV4aXN0cyAodGhhdCBpcyBkaWZmZXJlbnQgdGhhbiB0aGUgdW5zZXQgb25lKS4iCisgIChpbnRl cmFjdGl2ZSkKKyAgKGxldCAoKG9sZCAob3JnLWF0dGFjaC1kaXIpKQorCShuZXcKKyAgICAgICAg IChwcm9nbgorCSAgIChvcmctZW50cnktZGVsZXRlIG5pbCAiRElSIikKKwkgICA7OyBBVFRBQ0gt RElSIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQgZnJvbSBkb2N1bWVudGF0aW9uLAorCSAgIDs7 IGJ1dCBzdGlsbCB3b3Jrcy4gUmVtb3ZlIGNvZGUgZm9yIGl0IGFmdGVyIG1ham9yIG5yIGNoYW5n ZS4KKwkgICAob3JnLWVudHJ5LWRlbGV0ZSBuaWwgIkFUVEFDSF9ESVIiKQorCSAgIChvcmctYXR0 YWNoLWRpcikpKSkKKyAgICAodW5sZXNzIChvciAoc3RyaW5nPSBvbGQgbmV3KQorICAgICAgICAg ICAgICAgIChub3Qgb2xkKSkKKyAgICAgICh3aGVuIChhbmQgbmV3ICh5ZXMtb3Itbm8tcCAiQ29w eSBvdmVyIGF0dGFjaG1lbnRzIGZyb20gb2xkIGRpcmVjdG9yeT8gIikpCiAgICAgICAgIChjb3B5 LWRpcmVjdG9yeSBvbGQgbmV3IHQgbmlsIHQpKQogICAgICAgKHdoZW4gKHllcy1vci1uby1wIChj b25jYXQgIkRlbGV0ZSAiIG9sZCkpCiAgICAgICAgIChkZWxldGUtZGlyZWN0b3J5IG9sZCB0KSkp KSkKIAotKGRlZnVuIG9yZy1hdHRhY2gtc2V0LWluaGVyaXQgKCkKLSAgIlNldCB0aGUgQVRUQUNI X0RJUl9JTkhFUklUIHByb3BlcnR5IG9mIHRoZSBjdXJyZW50IGVudHJ5LgotVGhlIHByb3BlcnR5 IGRlZmluZXMgdGhlIGRpcmVjdG9yeSB0aGF0IGlzIHVzZWQgZm9yIGF0dGFjaG1lbnRzCi1vZiB0 aGUgZW50cnkgYW5kIGFueSBjaGlsZHJlbiB0aGF0IGRvIG5vdCBleHBsaWNpdGx5IGRlZmluZSAo Ynkgc2V0dGluZwotdGhlIEFUVEFDSF9ESVIgcHJvcGVydHkpIHRoZWlyIG93biBhdHRhY2htZW50 IGRpcmVjdG9yeS4iCi0gIChpbnRlcmFjdGl2ZSkKLSAgKG9yZy1lbnRyeS1wdXQgbmlsICJBVFRB Q0hfRElSX0lOSEVSSVQiICJ0IikKLSAgKG1lc3NhZ2UgIkNoaWxkcmVuIHdpbGwgaW5oZXJpdCBh dHRhY2htZW50IGRpcmVjdG9yeSIpKQotCi0oZGVmdW4gb3JnLWF0dGFjaC11c2UtYW5uZXggKCkK LSAgIlJldHVybiBub24tbmlsIGlmIGdpdCBhbm5leCBjYW4gYmUgdXNlZC4iCi0gIChsZXQgKChn aXQtZGlyICh2Yy1naXQtcm9vdCAoZXhwYW5kLWZpbGUtbmFtZSBvcmctYXR0YWNoLWRpcmVjdG9y eSkpKSkKLSAgICAoYW5kIG9yZy1hdHRhY2gtZ2l0LWFubmV4LWN1dG9mZgotICAgICAgICAgKG9y IChmaWxlLWV4aXN0cy1wIChleHBhbmQtZmlsZS1uYW1lICJhbm5leCIgZ2l0LWRpcikpCi0gICAg ICAgICAgICAgKGZpbGUtZXhpc3RzLXAgKGV4cGFuZC1maWxlLW5hbWUgIi5naXQvYW5uZXgiIGdp dC1kaXIpKSkpKSkKLQotKGRlZnVuIG9yZy1hdHRhY2gtYW5uZXgtZ2V0LW1heWJlIChwYXRoKQot ICAiQ2FsbCBnaXQgYW5uZXggZ2V0IFBBVEggKHZpYSBzaGVsbCkgaWYgdXNpbmcgZ2l0IGFubmV4 LgotU2lnbmFscyBhbiBlcnJvciBpZiB0aGUgZmlsZSBjb250ZW50IGlzIG5vdCBhdmFpbGFibGUg YW5kIGl0IHdhcyBub3QgcmV0cmlldmVkLiIKLSAgKGxldCogKChkZWZhdWx0LWRpcmVjdG9yeSAo ZXhwYW5kLWZpbGUtbmFtZSBvcmctYXR0YWNoLWRpcmVjdG9yeSkpCi0JIChwYXRoLXJlbGF0aXZl IChmaWxlLXJlbGF0aXZlLW5hbWUgcGF0aCkpKQotICAgICh3aGVuIChhbmQgKG9yZy1hdHRhY2gt dXNlLWFubmV4KQotCSAgICAgICAobm90Ci0JCShzdHJpbmctZXF1YWwKLQkJICJmb3VuZCIKLQkJ IChzaGVsbC1jb21tYW5kLXRvLXN0cmluZwotCQkgIChmb3JtYXQgImdpdCBhbm5leCBmaW5kIC0t Zm9ybWF0PWZvdW5kIC0taW49aGVyZSAlcyIKLQkJCSAgKHNoZWxsLXF1b3RlLWFyZ3VtZW50IHBh dGgtcmVsYXRpdmUpKSkpKSkKLSAgICAgIChsZXQgKChzaG91bGQtZ2V0Ci0JICAgICAoaWYgKGVx IG9yZy1hdHRhY2gtYW5uZXgtYXV0by1nZXQgJ2FzaykKLQkJICh5LW9yLW4tcCAoZm9ybWF0ICJS dW4gZ2l0IGFubmV4IGdldCAlcz8gIiBwYXRoLXJlbGF0aXZlKSkKLQkgICAgICAgb3JnLWF0dGFj aC1hbm5leC1hdXRvLWdldCkpKQotCShpZiBzaG91bGQtZ2V0Ci0JICAgIChwcm9nbiAobWVzc2Fn ZSAiUnVubmluZyBnaXQgYW5uZXggZ2V0IFwiJXNcIi4iIHBhdGgtcmVsYXRpdmUpCi0JCSAgIChj YWxsLXByb2Nlc3MgImdpdCIgbmlsIG5pbCBuaWwgImFubmV4IiAiZ2V0IiBwYXRoLXJlbGF0aXZl KSkKLQkgIChlcnJvciAiRmlsZSAlcyBzdG9yZWQgaW4gZ2l0IGFubmV4IGJ1dCBpdCBpcyBub3Qg YXZhaWxhYmxlLCBhbmQgd2FzIG5vdCByZXRyaWV2ZWQiCi0JCSBwYXRoKSkpKSkpCi0KLShkZWZ1 biBvcmctYXR0YWNoLWNvbW1pdCAoKQotICAiQ29tbWl0IGNoYW5nZXMgdG8gZ2l0IGlmIGBvcmct YXR0YWNoLWRpcmVjdG9yeScgaXMgcHJvcGVybHkgaW5pdGlhbGl6ZWQuCi1UaGlzIGNoZWNrcyBm b3IgdGhlIGV4aXN0ZW5jZSBvZiBhIFwiLmdpdFwiIGRpcmVjdG9yeSBpbiB0aGF0IGRpcmVjdG9y eS4iCi0gIChsZXQqICgoZGlyIChleHBhbmQtZmlsZS1uYW1lIG9yZy1hdHRhY2gtZGlyZWN0b3J5 KSkKLQkgKGdpdC1kaXIgKHZjLWdpdC1yb290IGRpcikpCi0JICh1c2UtYW5uZXggKG9yZy1hdHRh Y2gtdXNlLWFubmV4KSkKLQkgKGNoYW5nZXMgMCkpCi0gICAgKHdoZW4gKGFuZCBnaXQtZGlyIChl eGVjdXRhYmxlLWZpbmQgImdpdCIpKQotICAgICAgKHdpdGgtdGVtcC1idWZmZXIKLQkoY2QgZGly KQotICAgICAgICAoZG9saXN0IChuZXctb3ItbW9kaWZpZWQKLSAgICAgICAgICAgICAgICAgKHNw bGl0LXN0cmluZwotICAgICAgICAgICAgICAgICAgKHNoZWxsLWNvbW1hbmQtdG8tc3RyaW5nCi0g ICAgICAgICAgICAgICAgICAgImdpdCBscy1maWxlcyAtem1vIC0tZXhjbHVkZS1zdGFuZGFyZCIp ICJcMCIgdCkpCi0gICAgICAgICAgKGlmIChhbmQgdXNlLWFubmV4Ci0gICAgICAgICAgICAgICAg ICAgKD49IChmaWxlLWF0dHJpYnV0ZS1zaXplIChmaWxlLWF0dHJpYnV0ZXMgbmV3LW9yLW1vZGlm aWVkKSkKLSAgICAgICAgICAgICAgICAgICAgICAgb3JnLWF0dGFjaC1naXQtYW5uZXgtY3V0b2Zm KSkKLSAgICAgICAgICAgICAgKGNhbGwtcHJvY2VzcyAiZ2l0IiBuaWwgbmlsIG5pbCAiYW5uZXgi ICJhZGQiIG5ldy1vci1tb2RpZmllZCkKLSAgICAgICAgICAgIChjYWxsLXByb2Nlc3MgImdpdCIg bmlsIG5pbCBuaWwgImFkZCIgbmV3LW9yLW1vZGlmaWVkKSkKLQkgICAgKGNsLWluY2YgY2hhbmdl cykpCi0JKGRvbGlzdCAoZGVsZXRlZAotCQkgKHNwbGl0LXN0cmluZwotCQkgIChzaGVsbC1jb21t YW5kLXRvLXN0cmluZyAiZ2l0IGxzLWZpbGVzIC16IC0tZGVsZXRlZCIpICJcMCIgdCkpCi0JICAo Y2FsbC1wcm9jZXNzICJnaXQiIG5pbCBuaWwgbmlsICJybSIgZGVsZXRlZCkKLQkgIChjbC1pbmNm IGNoYW5nZXMpKQotCSh3aGVuICg+IGNoYW5nZXMgMCkKLQkgIChzaGVsbC1jb21tYW5kICJnaXQg Y29tbWl0IC1tICdTeW5jaHJvbml6ZWQgYXR0YWNobWVudHMnIikpKSkpKQotCiAoZGVmdW4gb3Jn LWF0dGFjaC10YWcgKCZvcHRpb25hbCBvZmYpCiAgICJUdXJuIHRoZSBhdXRvdGFnIG9uIG9yIChp ZiBPRkYgaXMgc2V0KSBvZmYuIgogICAod2hlbiBvcmctYXR0YWNoLWF1dG8tdGFnCkBAIC00MjIs MjIgKzQyNywyMSBAQCBPbmx5IGRvIHRoaXMgd2hlbiBgb3JnLWF0dGFjaC1zdG9yZS1saW5rLXAn IGlzIG5vbi1uaWwuIgogICAob3JnLWF0dGFjaC1hdHRhY2ggdXJsKSkKIAogKGRlZnVuIG9yZy1h dHRhY2gtYnVmZmVyIChidWZmZXItbmFtZSkKLSAgIkF0dGFjaCBCVUZGRVItTkFNRSdzIGNvbnRl bnRzIHRvIGN1cnJlbnQgdGFzay4KKyAgIkF0dGFjaCBCVUZGRVItTkFNRSdzIGNvbnRlbnRzIHRv IGN1cnJlbnQgb3V0bGluZSBub2RlLgogQlVGRkVSLU5BTUUgaXMgYSBzdHJpbmcuICBTaWduYWxz IGEgYGZpbGUtYWxyZWFkeS1leGlzdHMnIGVycm9yCiBpZiBpdCB3b3VsZCBvdmVyd3JpdGUgYW4g ZXhpc3RpbmcgZmlsZW5hbWUuIgogICAoaW50ZXJhY3RpdmUgImJCdWZmZXIgd2hvc2UgY29udGVu dHMgc2hvdWxkIGJlIGF0dGFjaGVkOiAiKQotICAobGV0ICgob3V0cHV0IChleHBhbmQtZmlsZS1u YW1lIGJ1ZmZlci1uYW1lIChvcmctYXR0YWNoLWRpciB0KSkpKQorICAobGV0KiAoKGF0dGFjaC1k aXIgKG9yZy1hdHRhY2gtZGlyICdnZXQtY3JlYXRlKSkKKwkgKG91dHB1dCAoZXhwYW5kLWZpbGUt bmFtZSBidWZmZXItbmFtZSBhdHRhY2gtZGlyKSkpCiAgICAgKHdoZW4gKGZpbGUtZXhpc3RzLXAg b3V0cHV0KQogICAgICAgKHNpZ25hbCAnZmlsZS1hbHJlYWR5LWV4aXN0cyAobGlzdCAiRmlsZSBl eGlzdHMiIG91dHB1dCkpKQotICAgICh3aGVuIChhbmQgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJv cGVydHkgKG5vdCBvcmctYXR0YWNoLWluaGVyaXRlZCkpCi0gICAgICAob3JnLWVudHJ5LWFkZC10 by1tdWx0aXZhbHVlZC1wcm9wZXJ0eQotICAgICAgIChwb2ludCkgb3JnLWF0dGFjaC1maWxlLWxp c3QtcHJvcGVydHkgYnVmZmVyLW5hbWUpKQorICAgIChydW4taG9vay13aXRoLWFyZ3MgJ29yZy1h dHRhY2gtYWZ0ZXItY2hhbmdlLWhvb2sgYXR0YWNoLWRpcikKICAgICAob3JnLWF0dGFjaC10YWcp CiAgICAgKHdpdGgtdGVtcC1maWxlIG91dHB1dAogICAgICAgKGluc2VydC1idWZmZXItc3Vic3Ry aW5nIGJ1ZmZlci1uYW1lKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFjaC1hdHRhY2ggKGZpbGUgJm9w dGlvbmFsIHZpc2l0LWRpciBtZXRob2QpCi0gICJNb3ZlL2NvcHkvbGluayBGSUxFIGludG8gdGhl IGF0dGFjaG1lbnQgZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IHRhc2suCisgICJNb3ZlL2NvcHkv bGluayBGSUxFIGludG8gdGhlIGF0dGFjaG1lbnQgZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IG91 dGxpbmUgbm9kZS4KIElmIFZJU0lULURJUiBpcyBub24tbmlsLCB2aXNpdCB0aGUgZGlyZWN0b3J5 IHdpdGggZGlyZWQuCiBNRVRIT0QgbWF5IGJlIGBjcCcsIGBtdicsIGBsbicsIGBsbnMnIG9yIGB1 cmwnIGRlZmF1bHQgdGFrZW4gZnJvbQogYG9yZy1hdHRhY2gtbWV0aG9kJy4iCkBAIC00NTIsMTAg KzQ1Niw3IEBAIE1FVEhPRCBtYXkgYmUgYGNwJywgYG12JywgYGxuJywgYGxucycgb3IgYHVybCcg ZGVmYXVsdCB0YWtlbiBmcm9tCiAgICAgbmlsKSkKICAgKHNldHEgbWV0aG9kIChvciBtZXRob2Qg b3JnLWF0dGFjaC1tZXRob2QpKQogICAobGV0ICgoYmFzZW5hbWUgKGZpbGUtbmFtZS1ub25kaXJl Y3RvcnkgZmlsZSkpKQotICAgICh3aGVuIChhbmQgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVy dHkgKG5vdCBvcmctYXR0YWNoLWluaGVyaXRlZCkpCi0gICAgICAob3JnLWVudHJ5LWFkZC10by1t dWx0aXZhbHVlZC1wcm9wZXJ0eQotICAgICAgIChwb2ludCkgb3JnLWF0dGFjaC1maWxlLWxpc3Qt cHJvcGVydHkgYmFzZW5hbWUpKQotICAgIChsZXQqICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1k aXIgdCkpCisgICAgKGxldCogKChhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpciAnZ2V0LWNyZWF0 ZSkpCiAgICAgICAgICAgIChmbmFtZSAoZXhwYW5kLWZpbGUtbmFtZSBiYXNlbmFtZSBhdHRhY2gt ZGlyKSkpCiAgICAgICAoY29uZAogICAgICAgICgoZXEgbWV0aG9kICdtdikgKHJlbmFtZS1maWxl IGZpbGUgZm5hbWUpKQpAQCAtNDYzLDggKzQ2NCw3IEBAIE1FVEhPRCBtYXkgYmUgYGNwJywgYG12 JywgYGxuJywgYGxucycgb3IgYHVybCcgZGVmYXVsdCB0YWtlbiBmcm9tCiAgICAgICAgKChlcSBt ZXRob2QgJ2xuKSAoYWRkLW5hbWUtdG8tZmlsZSBmaWxlIGZuYW1lKSkKICAgICAgICAoKGVxIG1l dGhvZCAnbG5zKSAobWFrZS1zeW1ib2xpYy1saW5rIGZpbGUgZm5hbWUpKQogICAgICAgICgoZXEg bWV0aG9kICd1cmwpICh1cmwtY29weS1maWxlIGZpbGUgZm5hbWUpKSkKLSAgICAgICh3aGVuIG9y Zy1hdHRhY2gtY29tbWl0Ci0gICAgICAgIChvcmctYXR0YWNoLWNvbW1pdCkpCisgICAgICAocnVu LWhvb2std2l0aC1hcmdzICdvcmctYXR0YWNoLWFmdGVyLWNoYW5nZS1ob29rIGF0dGFjaC1kaXIp CiAgICAgICAob3JnLWF0dGFjaC10YWcpCiAgICAgICAoY29uZCAoKGVxIG9yZy1hdHRhY2gtc3Rv cmUtbGluay1wICdhdHRhY2hlZCkKICAgICAgICAgICAgICAob3JnLWF0dGFjaC1zdG9yZS1saW5r IGZuYW1lKSkKQEAgLTQ3Miw3ICs0NzIsNyBAQCBNRVRIT0QgbWF5IGJlIGBjcCcsIGBtdicsIGBs bicsIGBsbnMnIG9yIGB1cmwnIGRlZmF1bHQgdGFrZW4gZnJvbQogICAgICAgICAgICAgIChvcmct YXR0YWNoLXN0b3JlLWxpbmsgZmlsZSkpKQogICAgICAgKGlmIHZpc2l0LWRpcgogICAgICAgICAg IChkaXJlZCBhdHRhY2gtZGlyKQotICAgICAgICAobWVzc2FnZSAiRmlsZSAlUyBpcyBub3cgYSB0 YXNrIGF0dGFjaG1lbnQuIiBiYXNlbmFtZSkpKSkpCisgICAgICAgIChtZXNzYWdlICJGaWxlICVT IGlzIG5vdyBhbiBhdHRhY2htZW50LiIgYmFzZW5hbWUpKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFj aC1hdHRhY2gtY3AgKCkKICAgIkF0dGFjaCBhIGZpbGUgYnkgY29weWluZyBpdC4iCkBAIC00OTcs MTMgKzQ5NywxMCBAQCBPbiBzb21lIHN5c3RlbXMsIHRoaXMgYXBwYXJlbnRseSBkb2VzIGNvcHkg dGhlIGZpbGUgaW5zdGVhZC4iCiAgIChsZXQgKChvcmctYXR0YWNoLW1ldGhvZCAnbG5zKSkgKGNh bGwtaW50ZXJhY3RpdmVseSAnb3JnLWF0dGFjaC1hdHRhY2gpKSkKIAogKGRlZnVuIG9yZy1hdHRh Y2gtbmV3IChmaWxlKQotICAiQ3JlYXRlIGEgbmV3IGF0dGFjaG1lbnQgRklMRSBmb3IgdGhlIGN1 cnJlbnQgdGFzay4KKyAgIkNyZWF0ZSBhIG5ldyBhdHRhY2htZW50IEZJTEUgZm9yIHRoZSBjdXJy ZW50IG91dGxpbmUgbm9kZS4KIFRoZSBhdHRhY2htZW50IGlzIGNyZWF0ZWQgYXMgYW4gRW1hY3Mg YnVmZmVyLiIKICAgKGludGVyYWN0aXZlICJzQ3JlYXRlIGF0dGFjaG1lbnQgbmFtZWQ6ICIpCi0g ICh3aGVuIChhbmQgb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkgKG5vdCBvcmctYXR0YWNo LWluaGVyaXRlZCkpCi0gICAgKG9yZy1lbnRyeS1hZGQtdG8tbXVsdGl2YWx1ZWQtcHJvcGVydHkK LSAgICAgKHBvaW50KSBvcmctYXR0YWNoLWZpbGUtbGlzdC1wcm9wZXJ0eSBmaWxlKSkKLSAgKGxl dCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyIHQpKSkKKyAgKGxldCAoKGF0dGFjaC1kaXIg KG9yZy1hdHRhY2gtZGlyICdnZXQtY3JlYXRlKSkpCiAgICAgKG9yZy1hdHRhY2gtdGFnKQogICAg IChmaW5kLWZpbGUgKGV4cGFuZC1maWxlLW5hbWUgZmlsZSBhdHRhY2gtZGlyKSkKICAgICAobWVz c2FnZSAiTmV3IGF0dGFjaG1lbnQgJXMiIGZpbGUpKSkKQEAgLTUxMSw3ICs1MDgsNyBAQCBUaGUg YXR0YWNobWVudCBpcyBjcmVhdGVkIGFzIGFuIEVtYWNzIGJ1ZmZlci4iCiAoZGVmdW4gb3JnLWF0 dGFjaC1kZWxldGUtb25lICgmb3B0aW9uYWwgZmlsZSkKICAgIkRlbGV0ZSBhIHNpbmdsZSBhdHRh Y2htZW50LiIKICAgKGludGVyYWN0aXZlKQotICAobGV0KiAoKGF0dGFjaC1kaXIgKG9yZy1hdHRh Y2gtZGlyIHQpKQorICAobGV0KiAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkKIAkgKGZp bGVzIChvcmctYXR0YWNoLWZpbGUtbGlzdCBhdHRhY2gtZGlyKSkKIAkgKGZpbGUgKG9yIGZpbGUK IAkJICAgKGNvbXBsZXRpbmctcmVhZApAQCAtNTIzLDQ0ICs1MjAsMzIgQEAgVGhlIGF0dGFjaG1l bnQgaXMgY3JlYXRlZCBhcyBhbiBFbWFjcyBidWZmZXIuIgogICAgICh1bmxlc3MgKGZpbGUtZXhp c3RzLXAgZmlsZSkKICAgICAgIChlcnJvciAiTm8gc3VjaCBhdHRhY2htZW50OiAlcyIgZmlsZSkp CiAgICAgKGRlbGV0ZS1maWxlIGZpbGUpCi0gICAgKHdoZW4gb3JnLWF0dGFjaC1jb21taXQKLSAg ICAgIChvcmctYXR0YWNoLWNvbW1pdCkpKSkKKyAgICAocnVuLWhvb2std2l0aC1hcmdzICdvcmct YXR0YWNoLWFmdGVyLWNoYW5nZS1ob29rIGF0dGFjaC1kaXIpKSkKIAogKGRlZnVuIG9yZy1hdHRh Y2gtZGVsZXRlLWFsbCAoJm9wdGlvbmFsIGZvcmNlKQotICAiRGVsZXRlIGFsbCBhdHRhY2htZW50 cyBmcm9tIHRoZSBjdXJyZW50IHRhc2suCisgICJEZWxldGUgYWxsIGF0dGFjaG1lbnRzIGZyb20g dGhlIGN1cnJlbnQgb3V0bGluZSBub2RlLgogVGhpcyBhY3R1YWxseSBkZWxldGVzIHRoZSBlbnRp cmUgYXR0YWNobWVudCBkaXJlY3RvcnkuCiBBIHNhZmVyIHdheSBpcyB0byBvcGVuIHRoZSBkaXJl Y3RvcnkgaW4gZGlyZWQgYW5kIGRlbGV0ZSBmcm9tIHRoZXJlLiIKICAgKGludGVyYWN0aXZlICJQ IikKLSAgKHdoZW4gKGFuZCBvcmctYXR0YWNoLWZpbGUtbGlzdC1wcm9wZXJ0eSAobm90IG9yZy1h dHRhY2gtaW5oZXJpdGVkKSkKLSAgICAob3JnLWVudHJ5LWRlbGV0ZSAocG9pbnQpIG9yZy1hdHRh Y2gtZmlsZS1saXN0LXByb3BlcnR5KSkKICAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gt ZGlyKSkpCi0gICAgKHdoZW4KLQkoYW5kIGF0dGFjaC1kaXIKLQkgICAgIChvciBmb3JjZQotCQkg KHktb3Itbi1wICJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBhdHRhY2htZW50 cyBvZiB0aGlzIGVudHJ5PyAiKSkpCi0gICAgICAoc2hlbGwtY29tbWFuZCAoZm9ybWF0ICJybSAt ZnIgJXMiIGF0dGFjaC1kaXIpKQorICAgICh3aGVuIChhbmQgYXR0YWNoLWRpcgorCSAgICAgICAo b3IgZm9yY2UKKwkJICAgKHllcy1vci1uby1wICJSZWFsbHkgcmVtb3ZlIGFsbCBhdHRhY2htZW50 cyBvZiB0aGlzIGVudHJ5PyAiKSkpCisgICAgICAoZGVsZXRlLWRpcmVjdG9yeSBhdHRhY2gtZGly ICh5ZXMtb3Itbm8tcCAiUmVjdXJzaXZlPyIpIHQpCiAgICAgICAobWVzc2FnZSAiQXR0YWNobWVu dCBkaXJlY3RvcnkgcmVtb3ZlZCIpCi0gICAgICAod2hlbiBvcmctYXR0YWNoLWNvbW1pdAotICAg ICAgICAob3JnLWF0dGFjaC1jb21taXQpKQorICAgICAgKHJ1bi1ob29rLXdpdGgtYXJncyAnb3Jn LWF0dGFjaC1hZnRlci1jaGFuZ2UtaG9vayBhdHRhY2gtZGlyKQogICAgICAgKG9yZy1hdHRhY2gt dW50YWcpKSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLXN5bmMgKCkKLSAgIlN5bmNocm9uaXplIHRo ZSBjdXJyZW50IHRhc2tzIHdpdGggaXRzIGF0dGFjaG1lbnRzLgorICAiU3luY2hyb25pemUgdGhl IGN1cnJlbnQgb3V0bGluZSBub2RlIHdpdGggaXRzIGF0dGFjaG1lbnRzLgogVGhpcyBjYW4gYmUg dXNlZCBhZnRlciBmaWxlcyBoYXZlIGJlZW4gYWRkZWQgZXh0ZXJuYWxseS4iCiAgIChpbnRlcmFj dGl2ZSkKLSAgKHdoZW4gb3JnLWF0dGFjaC1jb21taXQKLSAgICAob3JnLWF0dGFjaC1jb21taXQp KQotICAod2hlbiAoYW5kIG9yZy1hdHRhY2gtZmlsZS1saXN0LXByb3BlcnR5IChub3Qgb3JnLWF0 dGFjaC1pbmhlcml0ZWQpKQotICAgIChvcmctZW50cnktZGVsZXRlIChwb2ludCkgb3JnLWF0dGFj aC1maWxlLWxpc3QtcHJvcGVydHkpKQogICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1k aXIpKSkKICAgICAod2hlbiBhdHRhY2gtZGlyCisgICAgICAocnVuLWhvb2std2l0aC1hcmdzICdv cmctYXR0YWNoLWFmdGVyLWNoYW5nZS1ob29rIGF0dGFjaC1kaXIpCiAgICAgICAobGV0ICgoZmls ZXMgKG9yZy1hdHRhY2gtZmlsZS1saXN0IGF0dGFjaC1kaXIpKSkKLQkob3JnLWF0dGFjaC10YWcg KG5vdCBmaWxlcykpCi0JKHdoZW4gb3JnLWF0dGFjaC1maWxlLWxpc3QtcHJvcGVydHkKLQkgIChk b2xpc3QgKGZpbGUgZmlsZXMpCi0JICAgICh1bmxlc3MgKHN0cmluZy1tYXRjaCAiXlxcLlxcLj9c XCciIGZpbGUpCi0JICAgICAgKG9yZy1lbnRyeS1hZGQtdG8tbXVsdGl2YWx1ZWQtcHJvcGVydHkK LQkgICAgICAgKHBvaW50KSBvcmctYXR0YWNoLWZpbGUtbGlzdC1wcm9wZXJ0eSBmaWxlKSkpKSkp KSkKKwkob3JnLWF0dGFjaC10YWcgKG5vdCBmaWxlcykpKSkKKyAgICAodW5sZXNzIGF0dGFjaC1k aXIgKG9yZy1hdHRhY2gtdGFnIHQpKSkpCiAKIChkZWZ1biBvcmctYXR0YWNoLWZpbGUtbGlzdCAo ZGlyKQogICAiUmV0dXJuIGEgbGlzdCBvZiBmaWxlcyBpbiB0aGUgYXR0YWNobWVudCBkaXJlY3Rv cnkuCkBAIC01NjksMzUgKzU1NCw0MCBAQCBUaGlzIGlnbm9yZXMgZmlsZXMgZW5kaW5nIGluIFwi flwiLiIKIAkobWFwY2FyIChsYW1iZGEgKHgpIChpZiAoc3RyaW5nLW1hdGNoICJeXFwuXFwuP1xc JyIgeCkgbmlsIHgpKQogCQkoZGlyZWN0b3J5LWZpbGVzIGRpciBuaWwgIltefl1cXCciKSkpKQog Ci0oZGVmdW4gb3JnLWF0dGFjaC1yZXZlYWwgKCZvcHRpb25hbCBpZi1leGlzdHMpCi0gICJTaG93 IHRoZSBhdHRhY2htZW50IGRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCB0YXNrLgorKGRlZnVuIG9y Zy1hdHRhY2gtcmV2ZWFsICgpCisgICJTaG93IHRoZSBhdHRhY2htZW50IGRpcmVjdG9yeSBvZiB0 aGUgY3VycmVudCBvdXRsaW5lIG5vZGUuCiBUaGlzIHdpbGwgYXR0ZW1wdCB0byB1c2UgYW4gZXh0 ZXJuYWwgcHJvZ3JhbSB0byBzaG93IHRoZSBkaXJlY3RvcnkuIgotICAoaW50ZXJhY3RpdmUgIlAi KQotICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0dGFjaC1kaXIgKG5vdCBpZi1leGlzdHMpKSkp Ci0gICAgKGFuZCBhdHRhY2gtZGlyIChvcmctb3Blbi1maWxlIGF0dGFjaC1kaXIpKSkpCisgIChp bnRlcmFjdGl2ZSkKKyAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkpCisgICAg KGlmIGF0dGFjaC1kaXIKKwkob3JnLW9wZW4tZmlsZSBhdHRhY2gtZGlyKQorICAgICAgKGVycm9y ICJObyBhdHRhY2htZW50IGRpcmVjdG9yeSBleGlzdCIpKSkpCiAKIChkZWZ1biBvcmctYXR0YWNo LXJldmVhbC1pbi1lbWFjcyAoKQotICAiU2hvdyB0aGUgYXR0YWNobWVudCBkaXJlY3Rvcnkgb2Yg dGhlIGN1cnJlbnQgdGFzayBpbiBkaXJlZC4iCisgICJTaG93IHRoZSBhdHRhY2htZW50IGRpcmVj dG9yeSBvZiB0aGUgY3VycmVudCBvdXRsaW5lIG5vZGUgaW4gZGlyZWQuIgogICAoaW50ZXJhY3Rp dmUpCi0gIChsZXQgKChhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpciB0KSkpCi0gICAgKGRpcmVk IGF0dGFjaC1kaXIpKSkKKyAgKGxldCAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyKSkpCisg ICAgKGlmIGF0dGFjaC1kaXIKKwkoZGlyZWQgYXR0YWNoLWRpcikKKyAgICAgIChlcnJvciAiTm8g YXR0YWNobWVudCBkaXJlY3RvcnkgZXhpc3QiKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFjaC1vcGVu ICgmb3B0aW9uYWwgaW4tZW1hY3MpCi0gICJPcGVuIGFuIGF0dGFjaG1lbnQgb2YgdGhlIGN1cnJl bnQgdGFzay4KKyAgIk9wZW4gYW4gYXR0YWNobWVudCBvZiB0aGUgY3VycmVudCBvdXRsaW5lIG5v ZGUuCiBJZiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSBhdHRhY2htZW50LCB5b3Ugd2lsbCBiZSBw cm9tcHRlZCBmb3IgdGhlIGZpbGUgbmFtZS4KIFRoaXMgY29tbWFuZCB3aWxsIG9wZW4gdGhlIGZp bGUgdXNpbmcgdGhlIHNldHRpbmdzIGluIGBvcmctZmlsZS1hcHBzJwogYW5kIGluIHRoZSBzeXN0 ZW0tc3BlY2lmaWMgdmFyaWFudHMgb2YgdGhpcyB2YXJpYWJsZS4KIElmIElOLUVNQUNTIGlzIG5v bi1uaWwsIGZvcmNlIG9wZW5pbmcgaW4gRW1hY3MuIgogICAoaW50ZXJhY3RpdmUgIlAiKQotICAo bGV0KiAoKGF0dGFjaC1kaXIgKG9yZy1hdHRhY2gtZGlyIHQpKQotCSAoZmlsZXMgKG9yZy1hdHRh Y2gtZmlsZS1saXN0IGF0dGFjaC1kaXIpKQotCSAoZmlsZSAoaWYgKD0gKGxlbmd0aCBmaWxlcykg MSkKLQkJICAgKGNhciBmaWxlcykKLQkJIChjb21wbGV0aW5nLXJlYWQgIk9wZW4gYXR0YWNobWVu dDogIgotCQkJCSAgKG1hcGNhciAjJ2xpc3QgZmlsZXMpIG5pbCB0KSkpCi0gICAgICAgICAocGF0 aCAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlIGF0dGFjaC1kaXIpKSkKLSAgICAob3JnLWF0dGFjaC1h bm5leC1nZXQtbWF5YmUgcGF0aCkKLSAgICAob3JnLW9wZW4tZmlsZSBwYXRoIGluLWVtYWNzKSkp CisgIChsZXQgKChhdHRhY2gtZGlyIChvcmctYXR0YWNoLWRpcikpKQorICAgIChpZiBhdHRhY2gt ZGlyCisJKGxldCogKChmaWxlIChwY2FzZSAob3JnLWF0dGFjaC1maWxlLWxpc3QgYXR0YWNoLWRp cikKKwkJICAgICAgIChgKCxmaWxlKSBmaWxlKQorCQkgICAgICAgKGZpbGVzIChjb21wbGV0aW5n LXJlYWQgIk9wZW4gYXR0YWNobWVudDogIgorCQkJCQkgICAgICAgKG1hcGNhciAjJ2xpc3QgZmls ZXMpIG5pbCB0KSkpKQorCSAgICAgICAocGF0aCAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlIGF0dGFj aC1kaXIpKSkKKwkgIChydW4taG9vay13aXRoLWFyZ3MgJ29yZy1hdHRhY2gtb3Blbi1ob29rIHBh dGgpCisJICAob3JnLW9wZW4tZmlsZSBwYXRoIGluLWVtYWNzKSkKKyAgICAgIChlcnJvciAiTm8g YXR0YWNobWVudCBkaXJlY3RvcnkgZXhpc3QiKSkpKQogCiAoZGVmdW4gb3JnLWF0dGFjaC1vcGVu LWluLWVtYWNzICgpCiAgICJPcGVuIGF0dGFjaG1lbnQsIGZvcmNlIG9wZW5pbmcgaW4gRW1hY3Mu CkBAIC02MTYsNiArNjA2LDY5IEBAIEJhc2ljYWxseSwgdGhpcyBhZGRzIHRoZSBwYXRoIHRvIHRo ZSBhdHRhY2htZW50IGRpcmVjdG9yeSwgYW5kIGEgXCJmaWxlOlwiCiBwcmVmaXguIgogICAoY29u Y2F0ICJmaWxlOiIgKG9yZy1hdHRhY2gtZXhwYW5kIGZpbGUpKSkKIAorKG9yZy1saW5rLXNldC1w YXJhbWV0ZXJzICJhdHRhY2htZW50IgorICAgICAgICAgICAgICAgICAgICAgICAgIDpmb2xsb3cg IydvcmctYXR0YWNoLW9wZW4tbGluaworICAgICAgICAgICAgICAgICAgICAgICAgIDpleHBvcnQg IydvcmctYXR0YWNoLWV4cG9ydC1saW5rCisgICAgICAgICAgICAgICAgICAgICAgICAgOmNvbXBs ZXRlICMnb3JnLWF0dGFjaC1jb21wbGV0ZS1saW5rKQorCisoZGVmdW4gb3JnLWF0dGFjaC1vcGVu LWxpbmsgKGxpbmsgJm9wdGlvbmFsIGluLWVtYWNzKQorICAiQXR0YWNobWVudCBsaW5rIHR5cGUg TElOSyBpcyBleHBhbmRlZCB3aXRoIHRoZSBhdHRhY2hlZCBkaXJlY3RvcnkgYW5kIG9wZW5lZC4K KworV2l0aCBvcHRpb25hbCBwcmVmaXggYXJndW1lbnQgSU4tRU1BQ1MsIEVtYWNzIHdpbGwgdmlz aXQgdGhlIGZpbGUuCitXaXRoIGEgZG91YmxlIFxcW3VuaXZlcnNhbC1hcmd1bWVudF0gXFxbdW5p dmVyc2FsLWFyZ3VtZW50XSBcCitwcmVmaXggYXJnLCBPcmcgdHJpZXMgdG8gYXZvaWQgb3Blbmlu ZyBpbiBFbWFjcworYW5kIHRvIHVzZSBhbiBleHRlcm5hbCBhcHBsaWNhdGlvbiB0byB2aXNpdCB0 aGUgZmlsZS4iCisgIChpbnRlcmFjdGl2ZSAiUCIpCisgIChsZXQgKGxpbmUgc2VhcmNoKQorICAg IChjb25kCisgICAgICgoc3RyaW5nLW1hdGNoICI6OlxcKFswLTldK1xcKVxcJyIgbGluaykKKyAg ICAgIChzZXRxIGxpbmUgKHN0cmluZy10by1udW1iZXIgKG1hdGNoLXN0cmluZyAxIGxpbmspKQor CSAgICBsaW5rIChzdWJzdHJpbmcgbGluayAwIChtYXRjaC1iZWdpbm5pbmcgMCkpKSkKKyAgICAg KChzdHJpbmctbWF0Y2ggIjo6XFwoLitcXClcXCciIGxpbmspCisgICAgICAoc2V0cSBzZWFyY2gg KG1hdGNoLXN0cmluZyAxIGxpbmspCisgICAgICAgICAgICBsaW5rIChzdWJzdHJpbmcgbGluayAw IChtYXRjaC1iZWdpbm5pbmcgMCkpKSkpCisgICAgKGlmIChzdHJpbmctbWF0Y2ggIlsqP3tdIiAo ZmlsZS1uYW1lLW5vbmRpcmVjdG9yeSBsaW5rKSkKKyAgICAgICAgKGRpcmVkIChvcmctYXR0YWNo LWV4cGFuZCBsaW5rKSkKKyAgICAgIChvcmctb3Blbi1maWxlIChvcmctYXR0YWNoLWV4cGFuZCBs aW5rKSBpbi1lbWFjcyBsaW5lIHNlYXJjaCkpKSkKKworKGRlZnVuIG9yZy1hdHRhY2gtY29tcGxl dGUtbGluayAoKQorICAiQWR2aXNlIHRoZSB1c2VyIHdpdGggdGhlIGF2YWlsYWJsZSBmaWxlcyBp biB0aGUgYXR0YWNobWVudCBkaXJlY3RvcnkuIgorICAobGV0ICgoYXR0YWNoLWRpciAob3JnLWF0 dGFjaC1kaXIpKSkKKyAgICAoaWYgYXR0YWNoLWRpcgorCShsZXQqICgoYXR0YWNoZWQtZGlyIChl eHBhbmQtZmlsZS1uYW1lIGF0dGFjaC1kaXIpKQorCSAgICAgICAoZmlsZSAocmVhZC1maWxlLW5h bWUgIkZpbGU6ICIgYXR0YWNoZWQtZGlyKSkKKwkgICAgICAgKHB3ZCAoZmlsZS1uYW1lLWFzLWRp cmVjdG9yeSBhdHRhY2hlZC1kaXIpKQorICAgICAgICAgICAgICAgKHB3ZC1yZWxhdGl2ZSAoZmls ZS1uYW1lLWFzLWRpcmVjdG9yeQorCQkJICAgICAgKGFiYnJldmlhdGUtZmlsZS1uYW1lIGF0dGFj aGVkLWRpcikpKSkKKwkgIChjb25kCisJICAgKChzdHJpbmctbWF0Y2ggKGNvbmNhdCAiXiIgKHJl Z2V4cC1xdW90ZSBwd2QtcmVsYXRpdmUpICJcXCguK1xcKSIpIGZpbGUpCisJICAgIChjb25jYXQg ImF0dGFjaG1lbnQ6IiAobWF0Y2gtc3RyaW5nIDEgZmlsZSkpKQorCSAgICgoc3RyaW5nLW1hdGNo IChjb25jYXQgIl4iIChyZWdleHAtcXVvdGUgcHdkKSAiXFwoLitcXCkiKQorCQkJICAoZXhwYW5k LWZpbGUtbmFtZSBmaWxlKSkKKwkgICAgKGNvbmNhdCAiYXR0YWNobWVudDoiIChtYXRjaC1zdHJp bmcgMSAoZXhwYW5kLWZpbGUtbmFtZSBmaWxlKSkpKQorCSAgICh0IChjb25jYXQgImF0dGFjaG1l bnQ6IiBmaWxlKSkpKQorICAgICAgKGVycm9yICJObyBhdHRhY2htZW50IGRpcmVjdG9yeSBleGlz dCIpKSkpCisKKyhkZWZ1biBvcmctYXR0YWNoLWV4cG9ydC1saW5rIChsaW5rIGRlc2NyaXB0aW9u IGZvcm1hdCkKKyAgIlRyYW5zbGF0ZSBhdHRhY2htZW50IExJTksgZnJvbSBPcmcgbW9kZSBmb3Jt YXQgdG8gZXhwb3J0ZWQgRk9STUFULgorQWxzbyBpbmNsdWRlcyB0aGUgREVTQ1JJUFRJT04gb2Yg dGhlIGxpbmsgaW4gdGhlIGV4cG9ydC4iCisgIChzYXZlLWV4Y3Vyc2lvbgorICAgIChsZXQgKHBh dGggZGVzYykKKyAgICAgIChjb25kCisgICAgICAgKChzdHJpbmctbWF0Y2ggIjo6XFwoWzAtOV0r XFwpXFwnIiBsaW5rKQorICAgICAgICAoc2V0cSBsaW5rIChzdWJzdHJpbmcgbGluayAwIChtYXRj aC1iZWdpbm5pbmcgMCkpKSkKKyAgICAgICAoKHN0cmluZy1tYXRjaCAiOjpcXCguK1xcKVxcJyIg bGluaykKKyAgICAgICAgKHNldHEgbGluayAoc3Vic3RyaW5nIGxpbmsgMCAobWF0Y2gtYmVnaW5u aW5nIDApKSkpKQorICAgICAgKHNldHEgcGF0aCAoZmlsZS1yZWxhdGl2ZS1uYW1lIChvcmctYXR0 YWNoLWV4cGFuZCBsaW5rKSkKKyAgICAgICAgICAgIGRlc2MgKG9yIGRlc2NyaXB0aW9uIGxpbmsp KQorICAgICAgKHBjYXNlIGZvcm1hdAorICAgICAgICAoYGh0bWwgKGZvcm1hdCAiPGEgdGFyZ2V0 PVwiX2JsYW5rXCIgaHJlZj1cIiVzXCI+JXM8L2E+IiBwYXRoIGRlc2MpKQorICAgICAgICAoYGxh dGV4IChmb3JtYXQgIlxcaHJlZnslc317JXN9IiBwYXRoIGRlc2MpKQorICAgICAgICAoYHRleGlu Zm8gKGZvcm1hdCAiQHVyZWZ7JXMsJXN9IiBwYXRoIGRlc2MpKQorICAgICAgICAoYGFzY2lpIChm b3JtYXQgIiVzICglcykiIGRlc2MgcGF0aCkpCisgICAgICAgIChgbWQgKGZvcm1hdCAiWyVzXSgl cykiIGRlc2MgcGF0aCkpCisgICAgICAgIChfIHBhdGgpKSkpKQorCiAoZGVmdW4gb3JnLWF0dGFj aC1hcmNoaXZlLWRlbGV0ZS1tYXliZSAoKQogICAiTWF5YmUgZGVsZXRlIHN1YnRyZWUgYXR0YWNo bWVudHMgd2hlbiBhcmNoaXZpbmcuCiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBieSBgb3JnLWFy Y2hpdmUtaG9vaycuICBUaGUgb3B0aW9uCkBAIC02NDMsNyArNjk2LDcgQEAgSWRlYSB0YWtlbiBm cm9tIGBnbnVzLWRpcmVkLWF0dGFjaCcuIgogICAoaW50ZXJhY3RpdmUKICAgIChsaXN0IChkaXJl ZC1nZXQtbWFya2VkLWZpbGVzKSkpCiAgICh1bmxlc3MgKGVxIG1ham9yLW1vZGUgJ2RpcmVkLW1v ZGUpCi0gICAgKHVzZXItZXJyb3IgIlRoaXMgY29tbWFuZCBtdXN0IGJlIHRyaWdnZXJlZCBpbiBh IGRpcmVkIGJ1ZmZlci4iKSkKKyAgICAodXNlci1lcnJvciAiVGhpcyBjb21tYW5kIG11c3QgYmUg dHJpZ2dlcmVkIGluIGEgZGlyZWQgYnVmZmVyIikpCiAgIChsZXQgKChzdGFydC13aW4gKHNlbGVj dGVkLXdpbmRvdykpCiAgICAgICAgIChvdGhlci13aW4KICAgICAgICAgIChnZXQtd2luZG93LXdp dGgtcHJlZGljYXRlCmRpZmYgLS1naXQgYS9saXNwL29yZy1jb21wYXQuZWwgYi9saXNwL29yZy1j b21wYXQuZWwKaW5kZXggOWNiMzk2ZmU5Li40MmZlNjQzNzkgMTAwNjQ0Ci0tLSBhL2xpc3Avb3Jn LWNvbXBhdC5lbAorKysgYi9saXNwL29yZy1jb21wYXQuZWwKQEAgLTI2Myw2ICsyNjMsOSBAQCBD b3VudGluZyBzdGFydHMgYXQgMS4iCiAoZGVmaW5lLW9ic29sZXRlLWZ1bmN0aW9uLWFsaWFzICdv cmctcmVtb3ZlLWxhdGV4LWZyYWdtZW50LWltYWdlLW92ZXJsYXlzCiAgICdvcmctY2xlYXItbGF0 ZXgtcHJldmlldyAiT3JnIDkuMyIpCiAKKyhkZWZpbmUtb2Jzb2xldGUtdmFyaWFibGUtYWxpYXMg J29yZy1hdHRhY2gtZGlyZWN0b3J5CisgICdvcmctYXR0YWNoLWlkLWRpciAiT3JnIDkuMyIpCisK IChkZWZ1biBvcmctaW4tZml4ZWQtd2lkdGgtcmVnaW9uLXAgKCkKICAgIk5vbi1uaWwgaWYgcG9p bnQgaW4gYSBmaXhlZC13aWR0aCByZWdpb24uIgogICAoc2F2ZS1tYXRjaC1kYXRhCmRpZmYgLS1n aXQgYS9saXNwL29yZy5lbCBiL2xpc3Avb3JnLmVsCmluZGV4IGIxOWEzMGYzOC4uMjU1Yjk0ZThk IDEwMDY0NAotLS0gYS9saXNwL29yZy5lbAorKysgYi9saXNwL29yZy5lbApAQCAtMzg0OSw3ICsz ODQ5LDkgQEAgVGhpcyBpcyBuZWVkZWQgZm9yIGZvbnQtbG9jayBzZXR1cC4iKQogCQkgIChiZWcg ZW5kKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1hZ2VuZGEtc2V0LXJlc3RyaWN0aW9uLWxvY2sg Im9yZy1hZ2VuZGEiICgmb3B0aW9uYWwgdHlwZSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctYWdl bmRhLXNraXAgIm9yZy1hZ2VuZGEiICgpKQotKGRlY2xhcmUtZnVuY3Rpb24gb3JnLWF0dGFjaC1y ZXZlYWwgIm9yZy1hdHRhY2giICgmb3B0aW9uYWwgaWYtZXhpc3RzKSkKKyhkZWNsYXJlLWZ1bmN0 aW9uIG9yZy1hdHRhY2gtZXhwYW5kICJvcmctYXR0YWNoIiAoZmlsZSkpCisoZGVjbGFyZS1mdW5j dGlvbiBvcmctYXR0YWNoLXJldmVhbCAib3JnLWF0dGFjaCIgKCkpCisoZGVjbGFyZS1mdW5jdGlv biBvcmctYXR0YWNoLXJldmVhbC1pbi1lbWFjcyAib3JnLWF0dGFjaCIgKCkpCiAoZGVjbGFyZS1m dW5jdGlvbiBvcmctZ251cy1mb2xsb3ctbGluayAib3JnLWdudXMiICgmb3B0aW9uYWwgZ3JvdXAg YXJ0aWNsZSkpCiAoZGVjbGFyZS1mdW5jdGlvbiBvcmctaW5kZW50LW1vZGUgIm9yZy1pbmRlbnQi ICgmb3B0aW9uYWwgYXJnKSkKIChkZWNsYXJlLWZ1bmN0aW9uIG9yZy1pbmxpbmV0YXNrLWdvdG8t YmVnaW5uaW5nICJvcmctaW5saW5ldGFzayIgKCkpCkBAIC04NjQ3LDEyICs4NjQ5LDE1IEBAIGEg bGluay4iCiAJICAocGNhc2UgKG9yZy1vZmZlci1saW5rcy1pbi1lbnRyeSAoY3VycmVudC1idWZm ZXIpIChwb2ludCkgYXJnKQogCSAgICAoYChuaWwgLiAsXykKIAkgICAgIChyZXF1aXJlICdvcmct YXR0YWNoKQotCSAgICAgKG9yZy1hdHRhY2gtcmV2ZWFsICdpZi1leGlzdHMpKQorCSAgICAgKG1l c3NhZ2UgIk9wZW5pbmcgYXR0YWNobWVudC1kaXIiKQorCSAgICAgKGlmIChlcXVhbCBhcmcgJyg0 KSkKKwkJIChvcmctYXR0YWNoLXJldmVhbC1pbi1lbWFjcykKKwkgICAgICAgKG9yZy1hdHRhY2gt cmV2ZWFsKSkpCiAJICAgIChgKCxsaW5rcyAuICxsaW5rcy1lbmQpCiAJICAgICAoZG9saXN0IChs aW5rIChpZiAoc3RyaW5ncCBsaW5rcykgKGxpc3QgbGlua3MpIGxpbmtzKSkKIAkgICAgICAgKHNl YXJjaC1mb3J3YXJkIGxpbmsgbmlsIGxpbmtzLWVuZCkKIAkgICAgICAgKGdvdG8tY2hhciAobWF0 Y2gtYmVnaW5uaW5nIDApKQotCSAgICAgICAob3JnLW9wZW4tYXQtcG9pbnQpKSkpKSkKKwkgICAg ICAgKG9yZy1vcGVuLWF0LXBvaW50IGFyZykpKSkpKQogICAgICAgIDs7IE9uIGEgZm9vdG5vdGUg cmVmZXJlbmNlIG9yIGF0IGRlZmluaXRpb24ncyBsYWJlbC4KICAgICAgICAoKG9yIChlcSB0eXBl ICdmb290bm90ZS1yZWZlcmVuY2UpCiAJICAgIChhbmQgKGVxIHR5cGUgJ2Zvb3Rub3RlLWRlZmlu aXRpb24pCkBAIC0xNjYzMiwxMyArMTY2MzcsMTQgQEAgYm91bmRhcmllcy4iCiAJICAgICA7OyAi ZmlsZToiIGxpbmtzLiAgQWxzbyBjaGVjayBsaW5rIGFiYnJldmlhdGlvbnMgc2luY2UKIAkgICAg IDs7IHNvbWUgbWlnaHQgZXhwYW5kIHRvICJmaWxlIiBsaW5rcy4KIAkgICAgIChmaWxlLXR5cGVz LXJlCi0JICAgICAgKGZvcm1hdCAiXFxbXFxbXFwoPzpmaWxlJXM6XFx8Wy4vfl1cXClcXHxcXF1c XFtcXCg8P2ZpbGU6XFwpIgorCSAgICAgIChmb3JtYXQgIlxcW1xcW1xcKD86ZmlsZSVzOlxcfGF0 dGFjaG1lbnQ6XFx8Wy4vfl1cXClcXHxcXF1cXFtcXCg8P2ZpbGU6XFwpIgogCQkgICAgICAoaWYg KG5vdCBsaW5rLWFiYnJldnMpICIiCiAJCQkoY29uY2F0ICJcXHwiIChyZWdleHAtb3B0IGxpbmst YWJicmV2cykpKSkpKQogCSh3aGlsZSAocmUtc2VhcmNoLWZvcndhcmQgZmlsZS10eXBlcy1yZSBl bmQgdCkKIAkgIChsZXQqICgobGluayAob3JnLWVsZW1lbnQtbGluZWFnZQogCQkJKHNhdmUtbWF0 Y2gtZGF0YSAob3JnLWVsZW1lbnQtY29udGV4dCkpCiAJCQknKGxpbmspIHQpKQorICAgICAgICAg ICAgICAgICAobGlua3R5cGUgKG9yZy1lbGVtZW50LXByb3BlcnR5IDp0eXBlIGxpbmspKQogCQkg KGlubmVyLXN0YXJ0IChtYXRjaC1iZWdpbm5pbmcgMSkpCiAJCSAocGF0aAogCQkgIChjb25kCkBA IC0xNjY1Miw3ICsxNjY1OCw4IEBAIGJvdW5kYXJpZXMuIgogCQkgICA7OyBJTkNMVURFLUxJTktF RCBpcyBub24tbmlsLgogCQkgICAoKG9yIChub3QgKG9yZy1lbGVtZW50LXByb3BlcnR5IDpjb250 ZW50cy1iZWdpbiBsaW5rKSkKIAkJCWluY2x1ZGUtbGlua2VkKQotCQkgICAgKGFuZCAoZXF1YWwg ImZpbGUiIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6dHlwZSBsaW5rKSkKKwkJICAgIChhbmQgKG9y IChlcXVhbCAiZmlsZSIgbGlua3R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChl cXVhbCAiYXR0YWNobWVudCIgbGlua3R5cGUpKQogCQkJIChvcmctZWxlbWVudC1wcm9wZXJ0eSA6 cGF0aCBsaW5rKSkpCiAJCSAgIDs7IExpbmsgd2l0aCBhIGRlc2NyaXB0aW9uLiAgQ2hlY2sgaWYg ZGVzY3JpcHRpb24KIAkJICAgOzsgaXMgYSBmaWxlbmFtZS4gIEV2ZW4gaWYgT3JnIGRvZXNuJ3Qg aGF2ZSBzeW50YXgKQEAgLTE2NjcxLDcgKzE2Njc4LDExIEBAIGJvdW5kYXJpZXMuIgogCQkJICAg ICAgKG1hdGNoLWVuZCAwKSkKIAkJCSAgIChtYXRjaC1zdHJpbmcgMikpKSkpKSkKIAkgICAgKHdo ZW4gKGFuZCBwYXRoIChzdHJpbmctbWF0Y2gtcCBmaWxlLWV4dGVuc2lvbi1yZSBwYXRoKSkKLQkg ICAgICAobGV0ICgoZmlsZSAoZXhwYW5kLWZpbGUtbmFtZSBwYXRoKSkpCisJICAgICAgKGxldCAo KGZpbGUgKGlmIChlcXVhbCAiYXR0YWNobWVudCIgbGlua3R5cGUpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocHJvZ24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJl cXVpcmUgJ29yZy1hdHRhY2gpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvcmct YXR0YWNoLWV4cGFuZCBwYXRoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwYW5k LWZpbGUtbmFtZSBwYXRoKSkpKQogCQkod2hlbiAoZmlsZS1leGlzdHMtcCBmaWxlKQogCQkgIChs ZXQgKCh3aWR0aAogCQkJIDs7IEFwcGx5IGBvcmctaW1hZ2UtYWN0dWFsLXdpZHRoJyBzcGVjaWZp Y2F0aW9ucy4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZXhhbXBsZXMvYXR0MS9maWxlQSBiL3Rlc3Rp bmcvZXhhbXBsZXMvYXR0MS9maWxlQQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAuLjlhMDQwNmMwZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RpbmcvZXhhbXBsZXMvYXR0MS9m aWxlQQpAQCAtMCwwICsxIEBACitUZXh0IGluIGZpbGVBCmRpZmYgLS1naXQgYS90ZXN0aW5nL2V4 YW1wbGVzL2F0dDEvZmlsZUIgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmlsZUIKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kZDIzMzE4MjQKLS0tIC9kZXYvbnVsbAorKysg Yi90ZXN0aW5nL2V4YW1wbGVzL2F0dDEvZmlsZUIKQEAgLTAsMCArMSBAQAorVGV4dCBpbiBmaWxl QgpkaWZmIC0tZ2l0IGEvdGVzdGluZy9leGFtcGxlcy9hdHQyL2ZpbGVDIGIvdGVzdGluZy9leGFt cGxlcy9hdHQyL2ZpbGVDCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uMmM5 YTkyYmZlCi0tLSAvZGV2L251bGwKKysrIGIvdGVzdGluZy9leGFtcGxlcy9hdHQyL2ZpbGVDCkBA IC0wLDAgKzEgQEAKK1RleHQgaW4gZmlsZUMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS90ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUQgYi90ZXN0aW5nL2V4YW1wbGVz L2F0dDIvZmlsZUQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5jNzA2NTU2 YzUKLS0tIC9kZXYvbnVsbAorKysgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dDIvZmlsZUQKQEAgLTAs MCArMSBAQAordGV4dCBpbiBmaWxlRApkaWZmIC0tZ2l0IGEvdGVzdGluZy9leGFtcGxlcy9hdHRh Y2htZW50cy5vcmcgYi90ZXN0aW5nL2V4YW1wbGVzL2F0dGFjaG1lbnRzLm9yZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmFiNGE0ZTU0OAotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3RpbmcvZXhhbXBsZXMvYXR0YWNobWVudHMub3JnCkBAIC0wLDAgKzEsMzIgQEAKKyMrVElU TEU6IE9yZyBhdHRhY2ggdGVzdGZpbGUKK1VzZWQgdG8gdGVzdCBhbmQgdmVyaWZ5IHRoZSBmdW5j dGlvbmFsaXR5IG9mIG9yZy1hdHRhY2guCisKKyogSDEKKyA6UFJPUEVSVElFUzoKKyA6RElSOiAg ICAgIGF0dDEKKyA6RU5EOgorQSBsaW5rIHRvIG9uZSBhdHRhY2htZW50OiBbW2F0dGFjaG1lbnQ6 ZmlsZUFdXQorCisqKiBIMS4xCitBIGxpbmsgdG8gYW5vdGhlciBhdHRhY2htZW50OiBbW2F0dGFj aG1lbnQ6ZmlsZUJdXQorCisqKiBIMS4yCisgIDpQUk9QRVJUSUVTOgorICA6RElSOiAgICAgIGF0 dDIKKyAgOkVORDoKKworKiBIMgorIDpQUk9QRVJUSUVTOgorIDpJRDogICAgICAgYWJjZDEyMwor IDpFTkQ6CisKKyogSDMKKyA6UFJPUEVSVElFUzoKKyA6RElSOiAgICAgIGF0dDEKKyA6SUQ6ICAg ICAgIGFiY2QxMjM0CisgOkVORDoKKworKiogSDMuMQorICA6UFJPUEVSVElFUzoKKyAgOklEOiAg ICAgICBhYmNkMTIzNDUKKyAgOkVORDoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvZXhhbXBsZXMvZGF0 YS9hYi9jZDEyMy9maWxlRSBiL3Rlc3RpbmcvZXhhbXBsZXMvZGF0YS9hYi9jZDEyMy9maWxlRQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjgwZDMzNzc3MgotLS0gL2Rldi9u dWxsCisrKyBiL3Rlc3RpbmcvZXhhbXBsZXMvZGF0YS9hYi9jZDEyMy9maWxlRQpAQCAtMCwwICsx IEBACitwZWVrLWEtYm9vCmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1vcmctYXR0YWNo LWFubmV4LmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1naXQuZWwKc2ltaWxhcml0 eSBpbmRleCA5MyUKcmVuYW1lIGZyb20gdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1hbm5l eC5lbApyZW5hbWUgdG8gdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1naXQuZWwKaW5kZXgg N2YyNzkyNjk2Li44YjgyNmI3MmYgMTAwNjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1h dHRhY2gtYW5uZXguZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC1naXQuZWwK QEAgLTIwLDE5ICsyMCwxOSBAQAogCiA7OzsgQ29kZToKIChvcmctdGVzdC1mb3ItZXhlY3V0YWJs ZSAiZ2l0LWFubmV4IikKLShyZXF1aXJlICdvcmctYXR0YWNoKQorKHJlcXVpcmUgJ29yZy1hdHRh Y2gtZ2l0KQogKHJlcXVpcmUgJ2NsLWxpYikKIAotKGRlZm1hY3JvIHRlc3Qtb3JnLWF0dGFjaC1h bm5leC93aXRoLWFubmV4ICgmcmVzdCBib2R5KQorKGRlZm1hY3JvIHRlc3Qtb3JnLWF0dGFjaC1n aXQvd2l0aC1hbm5leCAoJnJlc3QgYm9keSkKICAgYChsZXQgKCh0bXBkaXIgKG1ha2UtdGVtcC1m aWxlICJvcmctYW5uZXgtdGVzdCIgdCAiLyIpKSkKICAgICAgKHVud2luZC1wcm90ZWN0CiAJIChs ZXQgKChkZWZhdWx0LWRpcmVjdG9yeSB0bXBkaXIpCi0JICAgICAgIChvcmctYXR0YWNoLWRpcmVj dG9yeSB0bXBkaXIpKQorCSAgICAgICAob3JnLWF0dGFjaC1pZC1kaXIgdG1wZGlyKSkKIAkgICAo c2hlbGwtY29tbWFuZCAiZ2l0IGluaXQiKQogCSAgIChzaGVsbC1jb21tYW5kICJnaXQgYW5uZXgg aW5pdCIpCiAJICAgLEBib2R5KSkpKQogCi0oZXJ0LWRlZnRlc3QgdGVzdC1vcmctYXR0YWNoL3Vz ZS1hbm5leCAoKQorKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnLWF0dGFjaC1naXQvdXNlLWFubmV4ICgp CiAgICh0ZXN0LW9yZy1hdHRhY2gtYW5uZXgvd2l0aC1hbm5leAogICAgKGxldCAoKG9yZy1hdHRh Y2gtZ2l0LWFubmV4LWN1dG9mZiAxKSkKICAgICAgKHNob3VsZCAob3JnLWF0dGFjaC11c2UtYW5u ZXgpKSkKQEAgLTQ0LDEyICs0NCwxMiBAQAogICAobGV0ICgodG1wZGlyIChtYWtlLXRlbXAtZmls ZSAib3JnLWFubmV4LXRlc3QiIHQgIi8iKSkpCiAgICAgICh1bndpbmQtcHJvdGVjdAogCSAobGV0 ICgoZGVmYXVsdC1kaXJlY3RvcnkgdG1wZGlyKQotCSAgICAgICAob3JnLWF0dGFjaC1kaXJlY3Rv cnkgdG1wZGlyKSkKKwkgICAgICAgKG9yZy1hdHRhY2gtaWQtZGlyIHRtcGRpcikpCiAJICAgKHNo ZWxsLWNvbW1hbmQgImdpdCBpbml0IikKIAkgICAoc2hvdWxkLW5vdCAob3JnLWF0dGFjaC11c2Ut YW5uZXgpKSkKICAgICAgICAoZGVsZXRlLWRpcmVjdG9yeSB0bXBkaXIgJ3JlY3Vyc2l2ZSkpKSkK IAotKGVydC1kZWZ0ZXN0IHRlc3Qtb3JnLWF0dGFjaC9nZXQtbWF5YmUgKCkKKyhlcnQtZGVmdGVz dCB0ZXN0LW9yZy1hdHRhY2gtZ2l0L2dldC1tYXliZSAoKQogICAodGVzdC1vcmctYXR0YWNoLWFu bmV4L3dpdGgtYW5uZXgKICAgIChsZXQgKChwYXRoIChleHBhbmQtZmlsZS1uYW1lICJ0ZXN0LWZp bGUiKSkKIAkgKGFubmV4LWR1cCAobWFrZS10ZW1wLWZpbGUgIm9yZy1hbm5leC10ZXN0IiB0ICIv IikpKQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWF0dGFjaC5lbCBiL3Rlc3Rp bmcvbGlzcC90ZXN0LW9yZy1hdHRhY2guZWwKaW5kZXggYzJmMmJlMzU2Li41YmNmZTg2ZmQgMTAw NjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1hdHRhY2guZWwKKysrIGIvdGVzdGluZy9s aXNwL3Rlc3Qtb3JnLWF0dGFjaC5lbApAQCAtMjgsNiArMjgsNzUgQEAKIChyZXF1aXJlICdvcmct YXR0YWNoKQogKGV2YWwtYW5kLWNvbXBpbGUgKHJlcXVpcmUgJ2NsLWxpYikpCiAKKyhlcnQtZGVm dGVzdCB0ZXN0LW9yZy1hdHRhY2gvZGlyICgpCisgICJUZXN0IGBvcmctYXR0YWNoLWdldCcgc3Bl Y2lmaWNhdGlvbnMuIgorICAoc2hvdWxkIChlcXVhbCAiVGV4dCBpbiBmaWxlQVxuIgorCQkgKG9y Zy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1maWxlCisJCSAgIChn b3RvLWNoYXIgMTU3KSA7OyBGaXJzdCBhdHRhY2htZW50IGxpbmsKKwkJICAgKG9yZy1vcGVuLWF0 LXBvaW50KQorCQkgICAoYnVmZmVyLXN0cmluZykpKSkKKyAgKHNob3VsZC1ub3QgKGVxdWFsICJU ZXh0IGluIGZpbGVCXG4iCisJCSAgICAgKG9yZy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVz dC1hdHRhY2htZW50cy1maWxlCisJCSAgICAgICAoZ290by1jaGFyIDIxOSkgOzsgU2Vjb25kIGF0 dGFjaG1lbnQgbGluaworCQkgICAgICAgKGxldCAoKG9yZy1hdHRhY2gtdXNlLWluaGVyaXRhbmNl IG5pbCkpCisJCQkgKG9yZy1vcGVuLWF0LXBvaW50KQorCQkJIChidWZmZXItc3RyaW5nKSkpKSkK KyAgKHNob3VsZCAoZXF1YWwgIlRleHQgaW4gZmlsZUJcbiIKKwkJIChvcmctdGVzdC1pbi1leGFt cGxlLWZpbGUgb3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAoZ290by1jaGFyIDIxOSkg OzsgU2Vjb25kIGF0dGFjaG1lbnQgbGluaworCQkgICAobGV0ICgob3JnLWF0dGFjaC11c2UtaW5o ZXJpdGFuY2UgdCkpCisJCSAgICAgKG9yZy1vcGVuLWF0LXBvaW50KQorCQkgICAgIChidWZmZXIt c3RyaW5nKSkpKSkKKyAgKHNob3VsZC1ub3QgKGVxdWFsICJhdHQxIgorCQkgICAgIChvcmctdGVz dC1pbi1leGFtcGxlLWZpbGUgb3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAgICAgKGdv dG8tY2hhciAxNzkpIDs7IEgxLjEKKwkJICAgICAgIChsZXQgKChvcmctYXR0YWNoLXVzZS1pbmhl cml0YW5jZSBuaWwpKQorCQkJIChvcmctYXR0YWNoLWRpcikpKSkpCisgIChzaG91bGQgKGVxdWFs ICJhdHQxIgorCQkgKG9yZy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50 cy1maWxlCisJCSAgIChnb3RvLWNoYXIgMTc5KSA7OyBIMS4xCisJCSAgIChsZXQgKChvcmctYXR0 YWNoLXVzZS1pbmhlcml0YW5jZSB0KSkKKwkJICAgICAob3JnLWF0dGFjaC1kaXIpKSkpKQorICAo c2hvdWxkIChlcXVhbCAnKCJmaWxlQyIgImZpbGVEIikKKwkJIChvcmctdGVzdC1pbi1leGFtcGxl LWZpbGUgb3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAoZ290by1jaGFyIDIzOSkgOzsg SDEuMgorCQkgICAob3JnLWF0dGFjaC1maWxlLWxpc3QgKG9yZy1hdHRhY2gtZGlyKSkpKSkKKyAg KHNob3VsZCAoZXF1YWwgJygiZmlsZUMiICJmaWxlRCIpCisJCSAob3JnLXRlc3QtaW4tZXhhbXBs ZS1maWxlIG9yZy10ZXN0LWF0dGFjaG1lbnRzLWZpbGUKKwkJICAgKGdvdG8tY2hhciAyMzkpIDs7 IEgxLjIKKwkJICAgKG9yZy1hdHRhY2gtZmlsZS1saXN0IChvcmctYXR0YWNoLWRpcikpKSkpCisg IChzaG91bGQgKGVxdWFsICcoImZpbGVFIikKKwkJIChvcmctdGVzdC1pbi1leGFtcGxlLWZpbGUg b3JnLXRlc3QtYXR0YWNobWVudHMtZmlsZQorCQkgICAoZ290by1jaGFyIDI4OSkgOzsgSDIKKwkJ ICAgKGxldCAoKG9yZy1hdHRhY2gtaWQtZGlyICJkYXRhLyIpKQorCQkgICAgIChvcmctYXR0YWNo LWZpbGUtbGlzdCAob3JnLWF0dGFjaC1kaXIpKSkpKSkKKyAgKHNob3VsZCAoZXF1YWwgInBlZWst YS1ib29cbiIKKwkJIChvcmctdGVzdC1pbi1leGFtcGxlLWZpbGUgb3JnLXRlc3QtYXR0YWNobWVu dHMtZmlsZQorCQkgICAoZ290by1jaGFyIDI4OSkgOzsgSDIKKwkJICAgKGxldCAoKG9yZy1hdHRh Y2gtaWQtZGlyICJkYXRhLyIpKQorCQkgICAgIChvcmctYXR0YWNoLW9wZW4taW4tZW1hY3MpCisJ CSAgICAgKGJ1ZmZlci1zdHJpbmcpKSkpKQorICAoc2hvdWxkIChlcXVhbCAgJygiZmlsZUEiICJm aWxlQiIpCisJCSAgKG9yZy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50 cy1maWxlCisJCSAgICAoZ290by1jaGFyIDMzNikgOzsgSDMKKwkJICAgIChvcmctYXR0YWNoLWZp bGUtbGlzdCAob3JnLWF0dGFjaC1kaXIpKSkpKQorICAoc2hvdWxkIChlcXVhbCAiZGF0YS9hYi9j ZDEyMzQ1IgorCQkgKG9yZy10ZXN0LWluLWV4YW1wbGUtZmlsZSBvcmctdGVzdC1hdHRhY2htZW50 cy1maWxlCisJCSAgIChnb3RvLWNoYXIgNDAxKSA7OyBIMy4xCisJCSAgIChsZXQgKChvcmctYXR0 YWNoLXVzZS1pbmhlcml0YW5jZSBuaWwpCisJCQkgKG9yZy1hdHRhY2gtaWQtZGlyICJkYXRhLyIp KQorCQkgICAgIChmaWxlLXJlbGF0aXZlLW5hbWUgKG9yZy1hdHRhY2gtZGlyKSkpKSkpCisgIChz aG91bGQgKGVxdWFsICcoImZpbGVBIiAiZmlsZUIiKQorCQkgKG9yZy10ZXN0LWluLWV4YW1wbGUt ZmlsZSBvcmctdGVzdC1hdHRhY2htZW50cy1maWxlCisJCSAgIChnb3RvLWNoYXIgNDAxKSA7OyBI My4xCisJCSAgIChsZXQgKChvcmctYXR0YWNoLXVzZS1pbmhlcml0YW5jZSB0KSkKKwkJICAgICA7 OyBUaGlzIGlzIHdoZXJlIGl0IGdldCdzIGEgYml0IHNrZXRjaHkuLi4hIERJUiBhbHdheXMgaGFz CisJCSAgICAgOzsgcHJpb3JpdHkgb3ZlciBJRCwgZXZlbiBpZiBJRCBpcyBkZWNsYXJlZCAiaGln aGVyIHVwIiBpbiB0aGUKKwkJICAgICA7OyB0cmVlLiAgVGhpcyBjYW4gcG90ZW50aWFsbHkgYmUg cmV2aXNlZC4gIEJ1dCBpdCBpcyBhbHNvCisJCSAgICAgOzsgcHJldHR5IGNsZWFuLiAgRElSIGlz IGFsd2F5cyBoaWdoZXIgaW4gcHJpb3JpdHkgdGhhbiBJRCByaWdodAorCQkgICAgIDs7IG5vdywg bm8gbWF0dGVyIHRoZSBkZXB0aCBpbiB0aGUgdHJlZS4KKwkJICAgICAob3JnLWF0dGFjaC1maWxl LWxpc3QgKG9yZy1hdHRhY2gtZGlyKSkpKSkpKQorCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmctYXR0 YWNoL2RpcmVkLWF0dGFjaC10by1uZXh0LWJlc3Qtc3VidHJlZS8xICgpCiAgICJBdHRhY2ggZmls ZSBhdCBwb2ludCBpbiBkaXJlZCB0byBzdWJ0cmVlLiIKICAgKHNob3VsZApkaWZmIC0tZ2l0IGEv dGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCmluZGV4 IGQ2NzFiNWM3OC4uYTYxOGRhNDc5IDEwMDY0NAotLS0gYS90ZXN0aW5nL2xpc3AvdGVzdC1vcmcu ZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCkBAIC0yNTE0LDcgKzI1MTQsMTEgQEAg Rm9vIEJhcgogICAgICAoY2F0Y2ggOnJlc3VsdAogICAgICAgIChjbC1sZXRmICgoKHN5bWJvbC1m dW5jdGlvbiAnb3JnLXRhZ3MtdmlldykKIAkJICAobGFtYmRhICgmcmVzdCBhcmdzKSAodGhyb3cg OnJlc3VsdCB0KSkpKQotCSAob3JnLW9wZW4tYXQtcG9pbnQpCisJIDs7IFdoZW4gcG9pbnQgaXNu J3Qgb24gYSB0YWcgaXQncyBnb2luZyB0byB0cnkgb3RoZXIgdGhpbmdzLAorCSA7OyBwb3NzaWJs eSB0cnlpbmcgdG8gb3BlbiBhdHRhY2htZW50cyB3aGljaCB3aWxsIHJldHVybiBhbgorCSA7OyBl cnJvciBpZiB0aGVyZSBpc24ndCBhbiBhdHRhY2htZW50LiBTdXByZXNzIHRoYXQgZXJyb3IuCisJ IChpZ25vcmUtZXJyb3JzCisJICAgICAob3JnLW9wZW4tYXQtcG9pbnQpKQogCSBuaWwpKSkpKQog CiAMCmRpZmYgLS1naXQgYS90ZXN0aW5nL29yZy10ZXN0LmVsIGIvdGVzdGluZy9vcmctdGVzdC5l bAppbmRleCAyOTVkZjE5MTkuLmMzZTIxZWIzMCAxMDA2NDQKLS0tIGEvdGVzdGluZy9vcmctdGVz dC5lbAorKysgYi90ZXN0aW5nL29yZy10ZXN0LmVsCkBAIC04Nyw2ICs4Nyw5IEBAIG9yZy10ZXN0 IHNlYXJjaGVzIHRoaXMgZGlyZWN0b3J5IHVwIHRoZSBkaXJlY3RvcnkgdHJlZS4iKQogKGRlZmNv bnN0IG9yZy10ZXN0LW5vLWhlYWRpbmctZmlsZQogICAoZXhwYW5kLWZpbGUtbmFtZSAibm8taGVh ZGluZy5vcmciIG9yZy10ZXN0LWV4YW1wbGUtZGlyKSkKIAorKGRlZmNvbnN0IG9yZy10ZXN0LWF0 dGFjaG1lbnRzLWZpbGUKKyAgKGV4cGFuZC1maWxlLW5hbWUgImF0dGFjaG1lbnRzLm9yZyIgb3Jn LXRlc3QtZXhhbXBsZS1kaXIpKQorCiAoZGVmY29uc3Qgb3JnLXRlc3QtbGluay1pbi1oZWFkaW5n LWZpbGUKICAgKGV4cGFuZC1maWxlLW5hbWUgImxpbmstaW4taGVhZGluZy5vcmciIG9yZy10ZXN0 LWRpcikpCiAKLS0gCjIuMTcuMQoK --_003_HE1PR02MB3033D6136EB140BC143776A7DAFE0HE1PR02MB3033eurp_ Content-Type: application/octet-stream; name="0001-org-test-test-org-element-test-org-test-ox-test-prop.patch" Content-Description: 0001-org-test-test-org-element-test-org-test-ox-test-prop.patch Content-Disposition: attachment; filename="0001-org-test-test-org-element-test-org-test-ox-test-prop.patch"; size=8578; creation-date="Sun, 30 Jun 2019 05:30:40 GMT"; modification-date="Sun, 30 Jun 2019 05:30:40 GMT" Content-Transfer-Encoding: base64 RnJvbSA4YmRmMGM0ZDllMDMwOGQzMmJlZTE4NjEzZTUzMGEyYzQ5N2E0NjExIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/R3VzdGF2PTIwV2lrc3RyPUMzPUI2bT89IDxn dXN0YXZAd2hpbC5zZT4KRGF0ZTogU3VuLCAyNiBNYXkgMjAxOSAwMzozNDozNCArMDIwMApTdWJq ZWN0OiBbUEFUQ0ggMS8yXSBvcmctdGVzdCwgdGVzdC1vcmctZWxlbWVudCwgdGVzdC1vcmcsIHRl c3Qtb3gsCiB0ZXN0LXByb3BlcnR5LWluaGVyaXRhbmNlCgoqIG9yZy10ZXN0LmVsOgoKRml4IG9y Zy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUuICBNYWtlIGl0IHdvcmsgd2l0aCA8cG9pbnQ+ LCBhcwpzb21lIHRlc3RzIGFscmVhZHkgZXhwZWN0IGl0IHRvIGRvISAgQWxzbyBtYWtlIGl0IGZh aWwgbW9yZSBncmFjZWZ1bGx5CmJ5IHN0aWxsIHJlbW92aW5nIHRlbXBvcmFyeSBidWZmZXJzIGFu ZCBmaWxlcy4KCkltcHJvdmUgb3JnLXRlc3QtaW4tZXhhbXBsZS1maWxlLiAgTWFrZSBpdCBiZWhh dmUgc2ltaWxhciB0bwpvcmctdGVzdC13aXRoLXRlbXAtdGV4dCBhbmQgb3JnLXRlc3Qtd2l0aC10 ZW1wLXRleHQtaW4tZmlsZSwgaW4gdGhhdAppdCB3aWxsIHJldHVybiB0aGUgbGFzdCBldmFsdWF0 ZWQgZXhwcmVzc2lvbi4KCiogdGVzdGluZy9saXNwL3Rlc3Qtb3JnLWVsZW1lbnQuZWwKCkZpeCBh IHRlbXAtdGV4dCBzdHJpbmdzIHNvIHRoYXQgaXQgZG9lc24ndCBoYXZlIGFuIGluaXRpYWwgbmV3 bGluZS4KCiogdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCgpNaW5vciBjbGVhbnVwIHRvIGFsaWdu IGNvZGUtc3RydWN0dXJlIHdpdGggb3RoZXIgdGVzdHMuICBOb3RoaW5nCmNoYW5nZXMgaW4gdGhl IHRlc3QgZXhlY3B0IHN0eWxlLgoKKiB0ZXN0aW5nL2xpc3AvdGVzdC1veC5lbAoKRml4IGEgY291 cGxlIG9mIHRlbXAtdGV4dCBzdHJpbmdzIHNvIHRoYXQgdGhleSBkb24ndCBoYXZlIGluaXRpYWwK bmV3bGluZXMuCgoqKiB0ZXN0LW9yZy1leHBvcnQvZXhwYW5kLWluY2x1ZGUKClRlc3Qgc3BlY2lm aWNhdGlvbiB3YXMgd3JvbmcsIGR1ZSB0byBvcmctdGVzdC13aXRoLXRlbXAtdGV4dC1pbi1maWxl Cm5vdCBwcmV2aW91c2x5IHdvcmtpbmcgd2l0aCA8cG9pbnQ+LiAgU2luY2UgdGhhdCBpcyBmaXhl ZCBpbiB0aGlzCnBhdGNoIHRoZSB0ZXN0IG5lZWRlZCB0byBiZSB1cGRhdGVkIHRvIG1hdGNoIHRo ZSBleHBlY3RlZCBvdXRjb21lLgoKKiB0ZXN0aW5nL2xpc3AvdGVzdC1wcm9wZXJ0eS1pbmhlcml0 YW5jZS5lbAoKRml4IHdyb25nIGZpbGUtaGVhZGVyIGFuZCBmaWxlLWVuZGluZy4KLS0tCiB0ZXN0 aW5nL2xpc3AvdGVzdC1vcmctZWxlbWVudC5lbCAgICAgICAgICB8ICA0ICstLQogdGVzdGluZy9s aXNwL3Rlc3Qtb3JnLmVsICAgICAgICAgICAgICAgICAgfCAxMiArKystLS0tCiB0ZXN0aW5nL2xp c3AvdGVzdC1veC5lbCAgICAgICAgICAgICAgICAgICB8IDMwICsrKysrKysrLS0tLS0tLS0KIHRl c3RpbmcvbGlzcC90ZXN0LXByb3BlcnR5LWluaGVyaXRhbmNlLmVsIHwgIDQgKy0tCiB0ZXN0aW5n L29yZy10ZXN0LmVsICAgICAgICAgICAgICAgICAgICAgICB8IDQ0ICsrKysrKysrKysrKysrLS0t LS0tLS0tCiA1IGZpbGVzIGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDQxIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsIGIvdGVzdGlu Zy9saXNwL3Rlc3Qtb3JnLWVsZW1lbnQuZWwKaW5kZXggOGI0MDgxZWUyLi40YzFlNGQxODEgMTAw NjQ0Ci0tLSBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCisrKyBiL3Rlc3Rpbmcv bGlzcC90ZXN0LW9yZy1lbGVtZW50LmVsCkBAIC0zMjUwLDggKzMyNTAsOCBAQCBERUFETElORTog PDIwMTItMDMtMjkgdGh1Lj4gU0NIRURVTEVEOiA8MjAxMi0wMy0yOSB0aHUuPiBDTE9TRUQ6IFsy MDEyLTAzLTI5IHRodQogCiAoZXJ0LWRlZnRlc3QgdGVzdC1vcmctZWxlbWVudC9ncmFudWxhcml0 eSAoKQogICAiVGVzdCBncmFudWxhcml0eSBpbXBhY3Qgb24gYnVmZmVyIHBhcnNpbmcuIgotICAo b3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIgotKiBIZWFkIDEKKyAgKG9yZy10ZXN0LXdpdGgtdGVt cC10ZXh0CisgICAgICAiKiBIZWFkIDEKICoqIEhlYWQgMgogIytCRUdJTl9DRU5URVIKIENlbnRl cmVkIHBhcmFncmFwaC4KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbGlzcC90ZXN0LW9yZy5lbCBiL3Rl c3RpbmcvbGlzcC90ZXN0LW9yZy5lbAppbmRleCBhYmMwMDQ2ODkuLmQ2NzFiNWM3OCAxMDA2NDQK LS0tIGEvdGVzdGluZy9saXNwL3Rlc3Qtb3JnLmVsCisrKyBiL3Rlc3RpbmcvbGlzcC90ZXN0LW9y Zy5lbApAQCAtNTA2MCwxOCArNTA2MCwxOCBAQCBQYXJhZ3JhcGg8cG9pbnQ+IgogICAoc2hvdWxk CiAgICAoZXF1YWwKICAgICAiMSIKLSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxu OlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIDxwb2ludD5IMiIKLSAgICAgIChvcmctZW50 cnktZ2V0IChwb2ludCkgIkEiIHQpKSkpCisgICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIq IEhcbjpQUk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6XG4qKiBIMiIKKyAgICAgIChvcmctZW50cnkt Z2V0IChwb2ludC1tYXgpICJBIiB0KSkpKQogICAoc2hvdWxkCiAgICAoZXF1YWwKICAgICAiMSIK LSAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxu OkVORDpcbioqIDxwb2ludD5IMiIKKyAgICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQgIiogSFxu OlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyIgogICAgICAgKGxldCAoKG9yZy11c2Ut cHJvcGVydHktaW5oZXJpdGFuY2UgdCkpCi0JKG9yZy1lbnRyeS1nZXQgKHBvaW50KSAiQSIgJ3Nl bGVjdGl2ZSkpKSkpCisJKG9yZy1lbnRyeS1nZXQgKHBvaW50LW1heCkgIkEiICdzZWxlY3RpdmUp KSkpKQogICAoc2hvdWxkLW5vdAotICAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIqIEhcbjpQ Uk9QRVJUSUVTOlxuOkE6IDFcbjpFTkQ6XG4qKiA8cG9pbnQ+SDIiCisgICAob3JnLXRlc3Qtd2l0 aC10ZW1wLXRleHQgIiogSFxuOlBST1BFUlRJRVM6XG46QTogMVxuOkVORDpcbioqIEgyIgogICAg ICAobGV0ICgob3JnLXVzZS1wcm9wZXJ0eS1pbmhlcml0YW5jZSBuaWwpKQotICAgICAgIChvcmct ZW50cnktZ2V0IChwb2ludCkgIkEiICdzZWxlY3RpdmUpKSkpCisgICAgICAgKG9yZy1lbnRyeS1n ZXQgKHBvaW50LW1heCkgIkEiICdzZWxlY3RpdmUpKSkpCiAgIChzaG91bGQKICAgIChlcXVhbAog ICAgICIxIDIiCmRpZmYgLS1naXQgYS90ZXN0aW5nL2xpc3AvdGVzdC1veC5lbCBiL3Rlc3Rpbmcv bGlzcC90ZXN0LW94LmVsCmluZGV4IDJjMjc3OGY4Mi4uYjhjNTA3ZTBiIDEwMDY0NAotLS0gYS90 ZXN0aW5nL2xpc3AvdGVzdC1veC5lbAorKysgYi90ZXN0aW5nL2xpc3AvdGVzdC1veC5lbApAQCAt MTM1Miw3ICsxMzUyLDcgQEAgRm9vdG5vdGVzW2ZuOjJdLCBmb290W2ZuOnRlc3RdIGFuZCBbZm46 aW5saW5lOmlubGluZSBmb290bm90ZV0KIAkgICAgICAgb3JnLXRlc3QtZGlyKQogICAgICAobmFy cm93LXRvLXJlZ2lvbiAocG9pbnQpIChwb2ludC1tYXgpKQogICAgICAob3JnLWV4cG9ydC1leHBh bmQtaW5jbHVkZS1rZXl3b3JkKQotICAgICAoZXEgMSAob3JnLWN1cnJlbnQtbGV2ZWwpKSkpCisg ICAgIChlcSAyIChvcmctY3VycmVudC1sZXZlbCkpKSkKICAgOzsgSWYgOm1pbmxldmVsIGlzIHBy ZXNlbnQgZG8gbm90IGFsdGVyIGl0LgogICAoc2hvdWxkCiAgICAob3JnLXRlc3Qtd2l0aC10ZW1w LXRleHQKQEAgLTIwMDMsOCArMjAwMyw4IEBAIEluIHBhcnRpY3VsYXIsIHN0cnVjdHVyZSBvZiB0 aGUgZG9jdW1lbnQgbXVzdG4ndCBiZSBhbHRlcmVkIGFmdGVyCiBjb21tZW50cyByZW1vdmFsLiIK ICAgKHNob3VsZAogICAgKGVxdWFsICJQYXJhMVxuXG5QYXJhMlxuIgotCSAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0ICIKLVBhcmExCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAg ICAiUGFyYTEKICMgQ29tbWVudAogCiAjIENvbW1lbnQKQEAgLTIwMTIsMTUgKzIwMTIsMTUgQEAg UGFyYTIiCiAJICAgIChvcmctZXhwb3J0LWFzIChvcmctdGVzdC1kZWZhdWx0LWJhY2tlbmQpKSkp KQogICAoc2hvdWxkCiAgICAoZXF1YWwgIlBhcmExXG5cblBhcmEyXG4iCi0JICAob3JnLXRlc3Qt d2l0aC10ZW1wLXRleHQgIgotUGFyYTEKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dAorCSAg ICAgICJQYXJhMQogIyBDb21tZW50CiBQYXJhMiIKIAkgICAgKG9yZy1leHBvcnQtYXMgKG9yZy10 ZXN0LWRlZmF1bHQtYmFja2VuZCkpKSkpCiAgIChzaG91bGQKICAgIChlcXVhbCAiW2ZuOjFdIFBh cmExXG5cblxuUGFyYTJcbiIKLQkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiCi1cW2ZuOjFd IFBhcmExCisJICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiW2ZuOjFdIFBhcmEx CiAjIEluc2lkZSBkZWZpbml0aW9uCiAKIApAQCAtMjAyOSw4ICsyMDI5LDggQEAgUGFyYTIiCiAJ ICAgIChvcmctZXhwb3J0LWFzIChvcmctdGVzdC1kZWZhdWx0LWJhY2tlbmQpKSkpKQogICAoc2hv dWxkCiAgICAoZXF1YWwgIltmbjoxXSBQYXJhMVxuXG5QYXJhMlxuIgotCSAgKG9yZy10ZXN0LXdp dGgtdGVtcC10ZXh0ICIKLVxbZm46MV0gUGFyYTEKKwkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4 dAorCSAgICAgICJbZm46MV0gUGFyYTEKIAogIyBJbnNpZGUgZGVmaW5pdGlvbgogCkBAIC0yMDQw LDI0ICsyMDQwLDI0IEBAIFBhcmEyIgogCSAgICAob3JnLWV4cG9ydC1hcyAob3JnLXRlc3QtZGVm YXVsdC1iYWNrZW5kKSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsICJbZm46MV0gUGFyYTFcblxu UGFyYTJcbiIKLQkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiCi1cW2ZuOjFdIFBhcmExCisJ ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiW2ZuOjFdIFBhcmExCiAjIEluc2lk ZSBkZWZpbml0aW9uCiAKIFBhcmEyIgogCSAgICAob3JnLWV4cG9ydC1hcyAob3JnLXRlc3QtZGVm YXVsdC1iYWNrZW5kKSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsICJbZm46MV0gUGFyYTFcblxu UGFyYTJcbiIKLQkgIChvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAiCi1cW2ZuOjFdIFBhcmExCisJ ICAob3JnLXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiW2ZuOjFdIFBhcmExCiAKICMgSW5z aWRlIGRlZmluaXRpb24KIFBhcmEyIgogCSAgICAob3JnLWV4cG9ydC1hcyAob3JnLXRlc3QtZGVm YXVsdC1iYWNrZW5kKSkpKSkKICAgKHNob3VsZAogICAgKGVxdWFsICItIGl0ZW0gMVxuXG4tIGl0 ZW0gMlxuIgotCSAgKG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0ICIKLS0gaXRlbSAxCisJICAob3Jn LXRlc3Qtd2l0aC10ZW1wLXRleHQKKwkgICAgICAiLSBpdGVtIDEKIAogICAjIENvbW1lbnQKIApk aWZmIC0tZ2l0IGEvdGVzdGluZy9saXNwL3Rlc3QtcHJvcGVydHktaW5oZXJpdGFuY2UuZWwgYi90 ZXN0aW5nL2xpc3AvdGVzdC1wcm9wZXJ0eS1pbmhlcml0YW5jZS5lbAppbmRleCAwZjgwM2U1Zjcu LjFkMGRjZmJlMSAxMDA2NDQKLS0tIGEvdGVzdGluZy9saXNwL3Rlc3QtcHJvcGVydHktaW5oZXJp dGFuY2UuZWwKKysrIGIvdGVzdGluZy9saXNwL3Rlc3QtcHJvcGVydHktaW5oZXJpdGFuY2UuZWwK QEAgLTEsNCArMSw0IEBACi07OzsgdGVzdC1vYi1SLmVsIC0tLSB0ZXN0cyBmb3Igb2ItUi5lbAor Ozs7IHRlc3QtcHJvcGVydHktaW5oZXJpdGFuY2UuZWwgLS0tIHRlc3RzIGZvciBwcm9wZXJ0eS1p bmhlcml0YW5jZS5lbAogCiA7OyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNCwgMjAxOSBFcmljIFNj aHVsdGUKIDs7IEF1dGhvcnM6IEVyaWMgU2NodWx0ZQpAQCAtNDcsNCArNDcsNCBAQAogCiAocHJv dmlkZSAndGVzdC1vYi1SKQogCi07OzsgdGVzdC1vYi1SLmVsIGVuZHMgaGVyZQorOzs7IHRlc3Qt cHJvcGVydHktaW5oZXJpdGFuY2UuZWwgZW5kcyBoZXJlCmRpZmYgLS1naXQgYS90ZXN0aW5nL29y Zy10ZXN0LmVsIGIvdGVzdGluZy9vcmctdGVzdC5lbAppbmRleCAzOWMzNDY0MTAuLjI5NWRmMTkx OSAxMDA2NDQKLS0tIGEvdGVzdGluZy9vcmctdGVzdC5lbAorKysgYi90ZXN0aW5nL29yZy10ZXN0 LmVsCkBAIC0xNDYsNyArMTQ2LDggQEAgY3VycmVudGx5IGV4ZWN1dGVkLiIpCiAgIChkZWNsYXJl IChpbmRlbnQgMSkpCiAgIGAobGV0KiAoKG15LWZpbGUgKG9yICxmaWxlIG9yZy10ZXN0LWZpbGUp KQogCSAgKHZpc2l0ZWQtcCAoZ2V0LWZpbGUtYnVmZmVyIG15LWZpbGUpKQotCSAgdG8tYmUtcmVt b3ZlZCkKKwkgIHRvLWJlLXJlbW92ZWQKKwkgIHJlc3VsdHMpCiAgICAgIChzYXZlLXdpbmRvdy1l eGN1cnNpb24KICAgICAgICAoc2F2ZS1tYXRjaC1kYXRhCiAJIChmaW5kLWZpbGUgbXktZmlsZSkK QEAgLTE2MCw5ICsxNjEsMTAgQEAgY3VycmVudGx5IGV4ZWN1dGVkLiIpCiAJICAgICAgIChvcmct c2hvdy1zdWJ0cmVlKQogCSAgICAgICAob3JnLXNob3ctYWxsICcoYmxvY2tzKSkpCiAJICAgKGVy cm9yIG5pbCkpCi0JIChzYXZlLXJlc3RyaWN0aW9uICxAYm9keSkpKQorCSAoc2V0cSByZXN1bHRz IChzYXZlLXJlc3RyaWN0aW9uICxAYm9keSkpKSkKICAgICAgKHVubGVzcyB2aXNpdGVkLXAKLSAg ICAgICAoa2lsbC1idWZmZXIgdG8tYmUtcmVtb3ZlZCkpKSkKKyAgICAgICAoa2lsbC1idWZmZXIg dG8tYmUtcmVtb3ZlZCkpCisgICAgIHJlc3VsdHMpKQogKGRlZi1lZGVidWctc3BlYyBvcmctdGVz dC1pbi1leGFtcGxlLWZpbGUgKGZvcm0gYm9keSkpCiAKIChkZWZtYWNybyBvcmctdGVzdC1hdC1t YXJrZXIgKGZpbGUgbWFya2VyICZyZXN0IGJvZHkpCkBAIC0xOTgsMjAgKzIwMCwzMCBAQCBvdGhl cndpc2UgcGxhY2UgdGhlIHBvaW50IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGluc2VydGVkIHRl eHQuIgogKGRlZi1lZGVidWctc3BlYyBvcmctdGVzdC13aXRoLXRlbXAtdGV4dCAoZm9ybSBib2R5 KSkKIAogKGRlZm1hY3JvIG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUgKHRleHQgJnJl c3QgYm9keSkKLSAgIlJ1biBib2R5IGluIGEgdGVtcG9yYXJ5IGZpbGUgYnVmZmVyIHdpdGggT3Jn IG1vZGUgYXMgdGhlIGFjdGl2ZSBtb2RlLiIKKyAgIlJ1biBib2R5IGluIGEgdGVtcG9yYXJ5IGZp bGUgYnVmZmVyIHdpdGggT3JnIG1vZGUgYXMgdGhlIGFjdGl2ZSBtb2RlLgorSWYgdGhlIHN0cmlu ZyBcIjxwb2ludD5cIiBhcHBlYXJzIGluIFRFWFQgdGhlbiByZW1vdmUgaXQgYW5kCitwbGFjZSB0 aGUgcG9pbnQgdGhlcmUgYmVmb3JlIHJ1bm5pbmcgQk9EWSwgb3RoZXJ3aXNlIHBsYWNlIHRoZQor cG9pbnQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgYnVmZmVyLiIKICAgKGRlY2xhcmUgKGluZGVu dCAxKSkKLSAgKGxldCAoKHJlc3VsdHMgKGNsLWdlbnN5bSkpKQotICAgIGAobGV0ICgoZmlsZSAo bWFrZS10ZW1wLWZpbGUgIm9yZy10ZXN0IikpCi0JICAgKGtpbGwtYnVmZmVyLXF1ZXJ5LWZ1bmN0 aW9ucyBuaWwpCi0JICAgKGluc2lkZS10ZXh0IChpZiAoc3RyaW5ncCAsdGV4dCkgLHRleHQgKGV2 YWwgLHRleHQpKSkKLQkgICAscmVzdWx0cykKLSAgICAgICAod2l0aC10ZW1wLWZpbGUgZmlsZSAo aW5zZXJ0IGluc2lkZS10ZXh0KSkKLSAgICAgICAoZmluZC1maWxlIGZpbGUpCi0gICAgICAgKG9y Zy1tb2RlKQotICAgICAgIChzZXRxICxyZXN1bHRzIChwcm9nbiAsQGJvZHkpKQotICAgICAgIChz YXZlLWJ1ZmZlcikgKGtpbGwtYnVmZmVyIChjdXJyZW50LWJ1ZmZlcikpCi0gICAgICAgKGRlbGV0 ZS1maWxlIGZpbGUpCi0gICAgICAgLHJlc3VsdHMpKSkKKyAgYChsZXQgKChmaWxlIChtYWtlLXRl bXAtZmlsZSAib3JnLXRlc3QiKSkKKwkgKGluc2lkZS10ZXh0IChpZiAoc3RyaW5ncCAsdGV4dCkg LHRleHQgKGV2YWwgLHRleHQpKSkKKwkgYnVmZmVyKQorICAgICAod2l0aC10ZW1wLWZpbGUgZmls ZSAoaW5zZXJ0IGluc2lkZS10ZXh0KSkKKyAgICAgKHVud2luZC1wcm90ZWN0CisJIChwcm9nbgor CSAgIChzZXRxIGJ1ZmZlciAoZmluZC1maWxlIGZpbGUpKQorCSAgICh3aGVuIChyZS1zZWFyY2gt Zm9yd2FyZCAiPHBvaW50PiIgbmlsIHQpCisJICAgICAocmVwbGFjZS1tYXRjaCAiIikpCisJICAg KG9yZy1tb2RlKQorCSAgIChwcm9nbiAsQGJvZHkpKQorICAgICAgIChsZXQgKChraWxsLWJ1ZmZl ci1xdWVyeS1mdW5jdGlvbnMgbmlsKSkKKwkgKHdoZW4gYnVmZmVyCisJICAgKHNldC1idWZmZXIg YnVmZmVyKQorCSAgIDs7IElnbm9yZSBjaGFuZ2VzLCB3ZSdyZSBkZWxldGluZyB0aGUgZmlsZSBp biB0aGUgbmV4dCBzdGVwCisJICAgOzsgYW55d2F5cy4KKwkgICAoc2V0LWJ1ZmZlci1tb2RpZmll ZC1wIG5pbCkKKwkgICAoa2lsbC1idWZmZXIpKQorCSAoZGVsZXRlLWZpbGUgZmlsZSkpKSkpCiAo ZGVmLWVkZWJ1Zy1zcGVjIG9yZy10ZXN0LXdpdGgtdGVtcC10ZXh0LWluLWZpbGUgKGZvcm0gYm9k eSkpCiAKIChkZWZ1biBvcmctdGVzdC10YWJsZS10YXJnZXQtZXhwZWN0ICh0YXJnZXQgJm9wdGlv bmFsIGV4cGVjdCBsYXBzCi0tIAoyLjE3LjEKCg== --_003_HE1PR02MB3033D6136EB140BC143776A7DAFE0HE1PR02MB3033eurp_--