RE: Suggestion needed for a case of Lucene Migration with TokenStream
"Saha, Rajib" <[email protected]> Tue, 27 May 2025 06:22:19 +0000
| Newsgroups | gmane.comp.jakarta.lucene.user |
|---|---|
| Message-ID | <DB9PR02MB83718CDADBDB4FEAF3917EC69064A@DB9PR02MB8371.eurprd02.prod.outlook.com> |
SGkgVXdlLA0KDQpUaGFua3MgZm9yIHlvdXIgc3VnZ2VzdGlvbnMgdGlsbCBub3cuIFdlIGhhdmUg YmVlbiBhYmxlIHRvIHByb2NlZWQgZ29vZC4NCldlIGFyZSBub3cgc3R1Y2sgdG8gYSBwb2ludCwg d2hlcmUgd2UgbmVlZCBzb21lIHlvdXIgZXhwZXJ0IHN1Z2dlc3Rpb24uDQoNCkFzIHBlciBvdXIg ZGVzaWduLCBvbiBmdWxsIGNvbnRlbnQgaW5kZXhpbmcsDQotIGluIGZpcnN0IHN0ZXAsIHRoZXJl IHdpbGwgc21hbGwgTHVjZW5lIGluZGV4IGZpbGVzIGdldHMgY3JlYXRlZCB3aXRoIDUtNiBkb2N1 bWVudHMuIFdlIGNhbGxlZCBpdCBkZWx0YSBpbmRleCBmaWxlcy4NCi0gaW4gc2Vjb25kIHN0ZXBz LCB3ZSB0cnkgdG8gbWVyZ2UgdGhlIGRlbHRhIGluZGV4IGZpbGVzIHRvIG1hc3RlciBJbmRleCBG aWxlLg0KQmVsb3cgaXMgc25pcHBldCBvZiB0aGUgY29kZToNCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCkluZGV4V3JpdGVyIG1hc3RlckluZGV4V3JpdGVyID0gbmV3IEluZGV4V3JpdGVy KGluZGV4RGlyLCBjb25maWcpOw0KRlNEaXJlY3RvcnlbXSBkZWx0YUluZGV4RGlycyA9IG5ldyBG U0RpcmVjdG9yeVtkZWx0YUluZGV4RGlyTGlzdC5zaXplKCldOw0KaW50IGogPSAwOw0KZm9yIChJ dGVyYXRvcjxGU0RpcmVjdG9yeT4gaSA9IGRlbHRhSW5kZXhEaXJMaXN0Lml0ZXJhdG9yKCk7IGku aGFzTmV4dCgpOyBqKyspIHsNCiAgICAgICAgZGVsdGFJbmRleERpcnNbal0gPSBpLm5leHQoKTsN Cn0NCm1hc3RlckluZGV4V3JpdGVyLmFkZEluZGV4ZXMoZGVsdGFJbmRleERpcnMpOw0KPT09PT09 PT09PT09PT09PT09PT09PT09PT09DQoNCkJ1dCBvbiBkb2luZyBpdCwgd2UgYXJlIGdldHRpbmcg dGhlIGJlbG93IGV4Y2VwdGlvbi4NCkkgdHJpZWQgc2V2ZXJhbCB0aGluZ3MuIEJ1dCwgY291bGQg bm90IGNvbWUgb3V0IG9mIHRoZSBwcm9ibGVtLg0KRG8geW91IHN1c3BlY3QgYW55dGhpbmcgaGVy ZT8gQ2FuIHlvdSBwbGVhc2Ugc3VnZ2VzdCBzb21ldGhpbmcgdG8gY29tZSBvdXQgb2YgdGhlIHBy b2JsZW0/DQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K Q2F1Z2h0RXhjZXB0aW9uIHdoaWxlIE1lcmdpbmcgaW4gTHVjZW5lSW5kZXhFbmdpbmUgY2Fubm90 IGNoYW5nZSBmaWVsZCAiYm9lLnNlYXJjaC53aWxkX2Rlc2NyaXB0aW9uIiBmcm9tIGluZGV4IG9w dGlvbnM9RE9DU19BTkRfRlJFUVNfQU5EX1BPU0lUSU9OU19BTkRfT0ZGU0VUUyB0byBpbmNvbnNp c3RlbnQgaW5kZXggb3B0aW9ucz1ET0NTX0FORF9GUkVRU19BTkRfUE9TSVRJT05TDQpqYXZhLmxh bmcuSWxsZWdhbEFyZ3VtZW50RXhjZXB0aW9uOiBjYW5ub3QgY2hhbmdlIGZpZWxkICJib2Uuc2Vh cmNoLndpbGRfZGVzY3JpcHRpb24iIGZyb20gaW5kZXggb3B0aW9ucz1ET0NTX0FORF9GUkVRU19B TkRfUE9TSVRJT05TX0FORF9PRkZTRVRTIHRvIGluY29uc2lzdGVudCBpbmRleCBvcHRpb25zPURP Q1NfQU5EX0ZSRVFTX0FORF9QT1NJVElPTlMNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5sdWNlbmUu aW5kZXguRmllbGRJbmZvcyRGaWVsZE51bWJlcnMuYWRkT3JHZXQoRmllbGRJbmZvcy5qYXZhOjMw OCkNCiAgICAgICAgYXQgb3JnLmFwYWNoZS5sdWNlbmUuaW5kZXguSW5kZXhXcml0ZXIuYWRkSW5k ZXhlcyhJbmRleFdyaXRlci5qYXZhOjI5ODQpDQogICAgICAgIGF0IGNvbS5zYXAuYnVzaW5lc3Nv YmplY3RzLnBsYXRmb3JtLnNlYXJjaC5sdWNlbmUuaW5kZXguZW5naW5lLkx1Y2VuZUluZGV4RW5n aW5lLm1lcmdlKEx1Y2VuZUluZGV4RW5naW5lLmphdmE6OTgxKQ0KPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNClJlZ2FyZHMNClJhamliDQoNCg0KLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCkZyb206IFV3ZSBTY2hpbmRsZXIgPHV3ZUB0aGV0YXBoaS5k ZT4NClNlbnQ6IDMwIEFwcmlsIDIwMjUgMDI6MDMNClRvOiBqYXZhLXVzZXJAbHVjZW5lLmFwYWNo ZS5vcmcNClN1YmplY3Q6IFJlOiBTdWdnZXN0aW9uIG5lZWRlZCBmb3IgYSBjYXNlIG9mIEx1Y2Vu ZSBNaWdyYXRpb24gd2l0aCBUb2tlblN0cmVhbQ0KDQpJZiB0aGlzIGlzIFdpbmRvd3MsIHRoZSBk ZWxldGlvbiBtYXkgbm90IHdvcmsgaWYgdGhlcmUgYXJlIHN0aWxsDQpJbmRleFJlYWRlcnMgb3Ig V3JpdGVycyBvcGVuIGJ5IHNhbWUgb3Igb3RoZXIgcHJvY2Vzc2VzLg0KDQpPbiBMaW51eCBJIGhh dmUgbm8gaWRlYSwgbmVlZCBhbiBleGNlcHRpb24gbWVzc2FnZS4gSXQgc2hvdWxkIGNsZWFybHkN CnNheSB3aHkgaXQgZmFpbHMuDQoNClV3ZQ0KDQpBbSAyOS4wNC4yMDI1IHVtIDEzOjQ0IHNjaHJp ZWIgU2FoYSwgUmFqaWI6DQo+IEhpIFV3ZSwNCj4NCj4gSW4gb3VyIHByb2R1Y3Qgd2UgaGF2ZSBk aWZmZXJlbnQgbGV2ZWwgb2YgaW5kZXhpbmcgbGlrZSBNZXRhRGF0YS9GdWxsQ29udGVudCBpbmZv cm1hdGlvbiBvZiB0aGUgUmVwb3J0cy4NCj4gU28sIFJlYnVpbGQgaW5kZXhpbmcgZGVsZXRlcyB0 aGUgZXhpc3RpbmcgTHVjZW5lIGluZGV4IGZpbGVzIGFuZCBkbyBhIGZyZXNoIGluZGV4aW5nIG9m IGFsbCB0aGUgZG9jdW1lbnRzLg0KPg0KPiBXaGVuIHdlIGRvIHBoeXNpY2FsbHkgZ29pbmcgdG8g ZGlyZWN0b3J5IGFuZCBkZWxldGUgdGhlIEx1Y2VuZSBJbmRleCBmaWxlcy4gVGhlIFJlYnVpbGQg aW5kZXhpbmcgaXMgd29ya2luZyBmaW5lLg0KPiBCdXQsIGZyb20gVUkgb2YgcHJvZHVjdCB3aGVu IHdlIGFyZSBzZWxlY3RpbmcgZm9yIFJlYnVpbGQgaW5kZXhpbmcsIEluZGV4aW5nIGlzIG5vdCBo YXBwZW5pbmcuDQo+DQo+IEkgYW0gZGVidWdnaW5nIG1vcmUgZm9yIGl0LiBJIHdpbGwgdXBkYXRl IHlvdSBmdXJ0aGVyIG9uIGdldHRpbmcgYmV0dGVyIHBpY3R1cmUuIEFzIG91ciBjb2RlIGZvciB0 aGUgQXJlYSBnb2VzIHdpdGggbXVsdGlwbGUgdGFza3MgYW5kIHRocmVhZC4gSXQgaXMgdGFraW5n IHRpbWUgdG8gZGVidWcuDQo+DQo+IEkgYW0gc3VzcGVjdGluZywgdGhlcmUgbWF5IGJlIHNvbWUg bG9jayBpcyB0aGVyZSBpbiBMdWNlbmUgSW5kZXggZmlsZXMsIGR1ZSB0byBvZiBpdCwgZGVsZXRl IG9mIEx1Y2VuZSBpbmRleCBmaWxlcyBhcmUgbm90IHdvcmtpbmcgd2l0aCBzdG9wcGluZyB0aGUg c2VydmljZS4gQnV0LCB0aGlzIGlzIGEgZ3Vlc3MuIEludmVzdGlnYXRpb24gaXMgb24gZm9yIGl0 Lg0KPiBEbyB5b3UgaGF2ZSBhbnkgc3VzcGVjdD8NCj4NCj4gUmVnYXJkcw0KPiBSYWppYg0KPg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBVd2UgU2NoaW5kbGVyIDx1d2VA dGhldGFwaGkuZGU+DQo+IFNlbnQ6IDI4IEFwcmlsIDIwMjUgMTc6NTkNCj4gVG86IGphdmEtdXNl ckBsdWNlbmUuYXBhY2hlLm9yZw0KPiBTdWJqZWN0OiBSZTogU3VnZ2VzdGlvbiBuZWVkZWQgZm9y IGEgY2FzZSBvZiBMdWNlbmUgTWlncmF0aW9uIHdpdGggVG9rZW5TdHJlYW0NCj4NCj4gSGksDQo+ DQo+IHdoYXQgZG8geW91IG1lYW4gd2l0aDogIkJ1dCBzYW1lIGNvbnRlbnQgb24gcmVidWlsZGlu ZyB0aGUgaW5kZXggaXMgbm90DQo+IHdvcmtpbmciPw0KPg0KPiBIb3cgZG8geW91IHJlYnVpbGQg dGhlIGluZGV4PyBJdCBpcyBub3QgZW5vdWdoIHRvIGp1c3QgcmVhZCBhbGwNCj4gZG9jdW1lbnRz IGFzIHN0b3JlZCBmaWVsZHMgYW5kIHJlaW5kZXggdGhlbS4gWW91IG5lZWQgdGhlIG9yaWdpbmFs DQo+IGRvY3VtZW50IGRhdGEgYW5kIGJhc2ljYWxseSBydW4gdGhlbSB0aG9ydWdoIHRoZSBzYW1l IHBpcGVsaW5lIHRoYXQgeW91DQo+IGFscmVhZHkgaGF2ZSAoc28gdGhlIGluZGV4aW5nIHNob3Vs ZCBiZSBkb25lIGJ5IHRoZSBzYW1lIGNvZGUgdGhhdA0KPiBpbmRleGVzIG5ldyBkb2N1bWVudHMp LiBTbyBJJ2Qgd3JpdGUgc29tZSBjb2RlIHRoYXQgcmVhZHMgdGhlIG9sZCBkYXRhDQo+IChpZiBw b3NzaWJsZSBmcm9tIHNvdXJjZSkgb3IgcmVhZHMgdGhlIG9sZCBpbmRleCAoaWYgYWxsIGluZm9y bWF0aW9uDQo+IHRoYXQgd2FzIGluZGV4ZWQgaXMgYXZhaWxhYmxlIGFzIHN0b3JlZCBmaWVsZHMs IHN5bnRoZXRpY2FsbHkgYnVpbGRzDQo+IGlucHV0IGRhdGEgZm9yIHRoZSBuZXcgaW5kZXhlciBh bmQgc2VuZHMgaXQgdG8gdGhlIEFQSSAob3Igd2hhdGV2ZXIgeW91DQo+IGhhdmUgZm9yIGluZGV4 aW5nIGluIHlvdXIgbmV3IHN5c3RlbSkuDQo+DQo+IElmIHlvdSBqdXN0IGhhdmUgaW5jb21wbGV0 ZSBMdWNlbmUgRG9jdW1lbnQgaW5zdGFuY2VzIGZyb20gdGhlIG9sZGVyDQo+IEx1Y2VuZSBpbmRl eCwgSSB0aGluayB5b3UncmUgbG9zdC4gV2hlbiB5b3UgY2Fubg0KPiBJbmRleFJlYWRlci9JbmRl eFNlYXJjaGVyLmRvY3VtZW50KCksIHlvdSBvbmx5IGdldCBzdG9yZWQgZmllbGRzLCAtLSBidXQN Cj4gdGhhdCdzIG5vdCBhbGwgaW5mb3JtYXRpb24gdGhhdCB3YXMgb3JpZ2luYmFsbHkgdXNlZCBm b3IgaW5kZXhpbmcuDQo+IFJlYWRpbmcgZG9jdW1lbnRzIGZyb20gSW5kZXhSZWFkZXIgYW5kIHBh c3NpbmcgaXQgdG8gSW5kZXhXcml0ZXIgZG9lcw0KPiBub3Qgd29yay4gSXQgd29ya3MgZnJvbSB0 aGUgQVBJIHBvaW50IG9mIHZpZXcsIGJ1dCB0aGUgZGF0YSBpcyBkaWZmZXJlbnQuDQo+DQo+IFV3 ZQ0KPg0KPiBBbSAyOC4wNC4yMDI1IHVtIDEyOjQzIHNjaHJpZWIgU2FoYSwgUmFqaWI6DQo+PiBI aSBVd2UsDQo+Pg0KPj4gVGhhbmsgeW91IGZvciB5b3VyIGRldGFpbGVkIGlucHV0IGFuZCB2YWx1 YWJsZSBhZHZpY2UuIEkgZnVsbHkgdW5kZXJzdGFuZCBhbmQgYWdyZWUgdGhhdCB1cGdyYWRpbmcg ZnJvbSBzdWNoIGFuIG9sZCB2ZXJzaW9uIG9mIEx1Y2VuZSBpbnZvbHZlcyBtdWNoIG1vcmUgdGhh biBqdXN0IHJlc29sdmluZyBjb21waWxhdGlvbiBpc3N1ZXMuDQo+PiBCYXNlZCBvbiB0aGUgbGF0 ZXN0IEx1Y2VuZSB2ZXJzaW9uLCB3ZSBoYXZlIHJlZGVzaWduZWQgb3VyIHBsYXRmb3JtIGFjY29y ZGluZ2x5IGdvaW5nIHRocm91Z2ggdGhlIEx1Y2VuZSBBUElzIHVzZWQgYW5kIHJlcGxhY2luZyBh Y2NvcmRpbmdseSB0byBsYXRlc3QuDQo+Pg0KPj4gV2l0aCB0aGVzZSBjaGFuZ2VzLCBGcmVzaCBj b250ZW50IGluZGV4aW5nIGlzIHdvcmtpbmcgZmluZS4gU2VhcmNoIHJlc3VsdHMgYXJlIGFsc28g Y29taW5nIGFzIGV4cGVjdGVkLg0KPj4gR3JlYXRseSBhcHByZWNpYXRlIHlvdXIgZXhwZXJ0IGd1 aWRhbmNlLCB0byBoZWxwIHRvIGJyaW5naW5nIHRpbGwgdGhpcyBwb2ludC4NCj4+DQo+PiBCdXQg c2FtZSBjb250ZW50IG9uIHJlYnVpbGRpbmcgdGhlIGluZGV4IGlzIG5vdCB3b3JraW5nLg0KPj4g SSBhbSBkZWJ1Z2dpbmcgdGhpcyBwYXJ0IG5vdy4NCj4+DQo+PiBEbyB5b3UgaGF2ZSBhbnkgc3Vn Z2VzdGlvbiBvbiB0aGUgcHJvYmxlbSA/DQo+Pg0KPj4gUmVnYXJkcw0KPj4gUmFqaWINCj4+DQo+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogVXdlIFNjaGluZGxlciA8dXdl QHRoZXRhcGhpLmRlPg0KPj4gU2VudDogMjUgQXByaWwgMjAyNSAxODoxOQ0KPj4gVG86IGphdmEt dXNlckBsdWNlbmUuYXBhY2hlLm9yZw0KPj4gU3ViamVjdDogUmU6IFN1Z2dlc3Rpb24gbmVlZGVk IGZvciBhIGNhc2Ugb2YgTHVjZW5lIE1pZ3JhdGlvbiB3aXRoIFRva2VuU3RyZWFtDQo+Pg0KPj4g SGksDQo+Pg0KPj4gSSdkIGxpa2UgdG8gbWVudGlvbiB0aGUgZm9sbG93aW5nOiBZb3UgYXJlIHRy eWluZyB0byB1cGdyYWRlIEx1Y2VuZSBmcm9tDQo+PiBhIHJlYWxseSBhbmNpZW50IHZlcnNpb24u IE9mIGNvdXJzZSwgYmFzaWMgY29uY2VwdHMgYXJlIHN0aWxsIHRoZSBzYW1lLA0KPj4gYnV0IHRo ZSBzZXJhY2ggZW5naW5lIGFuZCBpdHMgQVBJcyBoYXZlIGNoYW5nZWQgZHJhbWF0aWNhbGx5LCBz byBqdXN0DQo+PiB0cnlpbmcgdG8gImNvbXBpbGUgY29kZSBhbmQgZml4IHJhbmRvbSBzdHVmZiB1 bnRpbCBpdCBjb21waWxlcyIgd2lsbCBub3QNCj4+IGJyaW5nIHlvdSB0byBhIHdvcmtpbmcgcHJv ZHVjdC4gT24gdG9wLCBpdCBtYXkgbWFrZSB0aGUgcHJvZHVjdCB3b3JzZQ0KPj4gdGhhbiBiZWZv cmUgdGhlIHVwZGF0ZS4NCj4+DQo+PiBUbyBkbyB0aGUgdXBncmFkZSBjb3JyZWN0bHksIGl0IGlz IHJlY29tbWVuZGVkIHRvIGhhdmUgc29tZWJvZHkNCj4+IGF2YWlsYWJsZSAoaWRlYWxseSB0aGUg cGVyc29uIHdobyB3cm90ZSB0aGUgY29kZSBvcmlnaW5hbGx5KSBhbmQgdGhlbiBnbw0KPj4gdGhv dWdoIGl0IGxpbmUtYnkgbGluZSBhbmQgcmV3cml0ZSBpdC4gSSBhbSBleHBsaWNpdGVseSBtZW50 aW9uaW5nDQo+PiAicmV3cml0ZSIgYmVjYXVzZSB0aGF0J3Mgd2hhdCB5b3Ugc2hvdWxkIGRvISBJ ZiB5b3UgZG9uJ3QgaGF2ZSBhIHBlcnNvbg0KPj4gdGhhdCB1bmRlcnRzdGFuZHMgTHVjZW5lIGVu b3VnaCwgSSdkIHN1Z2dlc3QgdG8gZ2V0IGhlbHAgZnJvbSBvdXRzaWRlLg0KPj4gWW91IG5lZWQg dG8gdW5kZXJzdGFuZCBldmVyeSBsaW5lIG9mIGNvZGUgd2hlbiByZXdyaXRpbmcgaXQuIEluIGFk ZGl0aW9uDQo+PiB0aGVyZSBhcmUgbWFueSBuZXcgZmVhdHVyZXMgdGhhdCBtYWtlIGFsbCB0aGF0 IHNlcGNpYWwgY2FzZXMgbGlrZQ0KPj4gUGF5TG9hZHMgb24gVG9rZW5zdHJlYW1zIG9ic29sZXRl LiBJJ2Qgbm90IHJlY29tbWVuZCB0byB1c2Ugc29tZXRoaW5nDQo+PiBwYXlsb2FkcyBvbiB0ZXJt cyBub3dhZGF5cy4NCj4+DQo+PiBVd2UNCj4+DQo+PiBBbSAyNC4wNC4yMDI1IHVtIDEyOjI5IHNj aHJpZWIgTWlraGFpbCBLaGx1ZG5ldjoNCj4+PiBSaWdodC4gVGV4dEZpZWxkLlRZUEVfTk9UX1NU T1JFRCBzaG91bGQgYmUgdXNlZCB0aGVuLg0KPj4+DQo+Pj4gT24gVGh1LCBBcHIgMjQsIDIwMjUg YXQgMTA6MzfigK9BTSBTYWhhLCBSYWppYiA8cmFqaWIuc2FoYUBzYXAuY29tLmludmFsaWQ+DQo+ Pj4gd3JvdGU6DQo+Pj4NCj4+Pj4gVGhhbmtzIE1pa2hhaWwgZm9yIHRoZSBzdWdnZXN0aW9uLg0K Pj4+PiBOb3cgdGhlIHByZXZpb3VzIGV4Y2VwdGlvbiBoYXMgZ29uZS4gQnV0IGEgbmV3IGV4Y2Vw dGlvbiBoYXMgY29tZSBmcm9tDQo+Pj4+IEZpZWxkLmphdmEuDQo+Pj4+IEhlcmUgYmVsb3cgYXJl IHRoZSBleGNlcHRpb24gZGV0YWlscy4NCj4+Pj4gPT09PT09PT0NCj4+Pj4gamF2YS5sYW5nLkls bGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogVG9rZW5TdHJlYW0gZmllbGRzIGNhbm5vdCBiZSBzdG9y ZWQNCj4+Pj4gICAgICAgICAgICBhdCBvcmcuYXBhY2hlLmx1Y2VuZS5kb2N1bWVudC5GaWVsZC48 aW5pdD4oRmllbGQuamF2YToxNTUpDQo+Pj4+ID09PT09PT09PQ0KPj4+Pg0KPj4+PiBDYW4geW91 IHBsZWFzZSBzdWdnZXN0IGhlcmUgdG9vPw0KPj4+Pg0KPj4+PiBSZWdhcmRzDQo+Pj4+IFJhamli DQo+Pj4+DQo+Pj4+DQo+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+Pj4+IEZyb206 IE1pa2hhaWwgS2hsdWRuZXYgPG1raGxAYXBhY2hlLm9yZz4NCj4+Pj4gU2VudDogMjQgQXByaWwg MjAyNSAxMjoxMA0KPj4+PiBUbzogamF2YS11c2VyQGx1Y2VuZS5hcGFjaGUub3JnDQo+Pj4+IFN1 YmplY3Q6IFJlOiBTdWdnZXN0aW9uIG5lZWRlZCBmb3IgYSBjYXNlIG9mIEx1Y2VuZSBNaWdyYXRp b24gd2l0aA0KPj4+PiBUb2tlblN0cmVhbQ0KPj4+Pg0KPj4+PiBIaQ0KPj4+PiBVc2UgVGV4dEZp ZWxkLlRZUEVfU1RPUkVEIGFzIHRoZSB0aGlyZCBhcmd1bWVudCBpbiBuZXcgRmllbGQoKQ0KPj4+ PiBzZWUNCj4+Pj4NCj4+Pj4gaHR0cHM6Ly9naXRodWIuY29tL2FwYWNoZS9sdWNlbmUtc29sci9i bG9iL2UyN2Y0NGUzZDc4ZGZjZWMyMzBjOTdlMGExMjQwZTM3NTFkYWVmZjkvbHVjZW5lL2NvcmUv c3JjL2phdmEvb3JnL2FwYWNoZS9sdWNlbmUvZG9jdW1lbnQvVGV4dEZpZWxkLmphdmEjTDM1QzMz LUwzNUM0NA0KPj4+Pg0KPj4+Pg0KPj4+PiBPbiBUaHUsIEFwciAyNCwgMjAyNSBhdCA4OjM34oCv QU0gU2FoYSwgUmFqaWIgPHJhamliLnNhaGFAc2FwLmNvbS5pbnZhbGlkPg0KPj4+PiB3cm90ZToN Cj4+Pj4NCj4+Pj4+IEhpIEV4cGVydHMsDQo+Pj4+Pg0KPj4+Pj4gV2UgYXJlIG1pZ3JhdGluZyBM dWNlbmUgZnJvbSAyLjQuMSB0byA4LjExLjIuDQo+Pj4+Pg0KPj4+Pj4gRHVyaW5nIE1pZ3JhdGlv biBmb3IgYSBwYXJ0IG9mIGNvZGUsIHdlIGFyZSBnZXR0aW5nIGJlbG93IGV4Y2VwdGlvbiBpbg0K Pj4+Pj4gOC4xMS4yIGJhc2VkIGNoYW5nZXMgZnJvbSBSZWQgbGluZSBjb2xvcmVkLg0KPj4+Pj4g PT09PT09PT09PT09PQ0KPj4+Pj4gamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjog VG9rZW5TdHJlYW0gZmllbGRzIG11c3QgYmUgaW5kZXhlZA0KPj4+PiBhbmQNCj4+Pj4+IHRva2Vu aXplZA0KPj4+Pj4gYXQgb3JnLmFwYWNoZS5sdWNlbmUuZG9jdW1lbnQuRmllbGQuPGluaXQ+KEZp ZWxkLmphdmE6MTUyKQ0KPj4+Pj4NCj4+Pj4+IEkgdGllZCBmZXcgb3B0aW9ucy4gQnV0LCBjb3Vs ZCBub3QgYWJsZSB0byByZXNvbHZlIHRoZSBlcnJvci4gQmVpaXcNCj4+Pj4+IENhbiBzb21lYm9k eSBvZiB5b3UgcGxlYXNlIGhlbHAgbWUgdG8gaWRlbnRpZnksIHdoZXJlIGl0IGlzIGdvaW5nIGFz DQo+Pj4+IHdyb25nPw0KPj4+Pj4gV2UgaGFkIGNvZGUgYmFzZWQgb24gMi40LjEgYXMgbGlrZSBi ZWxvdzoNCj4+Pj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+Pj4+PiBJ bnQgY3VycmVudFZhbDwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9z P2RlZnM9Y3VycmVudFZhbCZwcm9qZWN0PTIwMjVfUlRNPiA9DQo+Pj4+PiAvL3NvbWUgdmFsdWUN Cj4+Pj4+IFBheWxvYWRUb2tlblN0cmVhbTwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2 LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9UGF5bG9hZFRva2VuU3RyZWFtJnByb2plY3Q9MjAyNV9S VE0NCj4+Pj4+IHRva2VuU3RyZWFtPA0KPj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAv c291cmNlL3M/cmVmcz10b2tlblN0cmVhbSZwcm9qZWN0PTIwMjVfUlRNPiA9DQo+Pj4+PiBuZXcg UGF5bG9hZFRva2VuU3RyZWFtPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgw ODAvc291cmNlL3M/ZGVmcz1QYXlsb2FkVG9rZW5TdHJlYW0mcHJvamVjdD0yMDI1X1JUTQ0KPj4+ Pj4+ICgpOw0KPj4+Pj4gdG9rZW5TdHJlYW08DQo+Pj4+Pg0KPj4+PiBodHRwOi8vMTAuMjM4LjIz Ni4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2gu amF2YS9mcmFtZXdvcmsvamF2YS9zZXJ2aWNlcGx1Z2lucy9zcmMvY29tL3NhcC9idXNpbmVzc29i amVjdHMvcGxhdGZvcm0vc2VhcmNoL2x1Y2VuZS9pbmRleC9lbmdpbmUvTHVjZW5lSW5kZXhFbmdp bmUuamF2YSN0b2tlblN0cmVhbQ0KPj4+Pj4+IC5zZXRQYXlsb2FkPA0KPj4+Pj4gaHR0cDovLzEw LjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1zZXRQYXlsb2FkJnByb2plY3Q9MjAyNV9S VE0NCj4+Pj4+PiAoY3VycmVudFZhbDwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS9zP2RlZnM9Y3VycmVudFZhbCZwcm9qZWN0PTIwMjVfUlRNPik7DQo+Pj4+PiBsdWNG aWVsZDwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVm LzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nl cnZpY2VwbHVnaW5zL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gv bHVjZW5lL2luZGV4L2VuZ2luZS9MdWNlbmVJbmRleEVuZ2luZS5qYXZhI2x1Y0ZpZWxkDQo+Pj4+ PiA9IG5ldyBGaWVsZDwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9z P2RlZnM9RmllbGQmcHJvamVjdD0yMDI1X1JUTT4oY29uZmlnPA0KPj4+Pj4gaHR0cDovLzEwLjIz OC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1jb25maWcmcHJvamVjdD0yMDI1X1JUTQ0KPj4+ Pj4+IC5wYXlsb2FkVWlkPA0KPj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNl L3M/ZGVmcz1wYXlsb2FkVWlkJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4+PiAoKS5uYW1lPGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9bmFtZSZwcm9qZWN0PTIwMjVfUlRN DQo+Pj4+PiAsDQo+Pj4+PiB0b2tlblN0cmVhbTwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzgu MjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJj aC5qYXZhL2ZyYW1ld29yay9qYXZhL3NlcnZpY2VwbHVnaW5zL3NyYy9jb20vc2FwL2J1c2luZXNz b2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvbHVjZW5lL2luZGV4L2VuZ2luZS9MdWNlbmVJbmRleEVu Z2luZS5qYXZhI3Rva2VuU3RyZWFtDQo+Pj4+Pj4gKTsNCj4+Pj4+IGRvYzxodHRwOi8vMTAuMjM4 LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWRvYyZwcm9qZWN0PTIwMjVfUlRNPi5hZGQ8DQo+ Pj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZzPWFkZCZwcm9qZWN0 PTIwMjVfUlRNPihsdWNGaWVsZDwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4 MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2Zy YW1ld29yay9qYXZhL3NlcnZpY2VwbHVnaW5zL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9w bGF0Zm9ybS9zZWFyY2gvbHVjZW5lL2luZGV4L2VuZ2luZS9MdWNlbmVJbmRleEVuZ2luZS5qYXZh I2x1Y0ZpZWxkDQo+Pj4+Pj4gKTsNCj4+Pj4+IC4uLi4uLg0KPj4+Pj4gcHVibGljIGNsYXNzIFBh eWxvYWRUb2tlblN0cmVhbTwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS9zP3JlZnM9UGF5bG9hZFRva2VuU3RyZWFtJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4+ IGV4dGVuZHMgVG9rZW5TdHJlYW08DQo+Pj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9z b3VyY2Uvcz9kZWZzPVRva2VuU3RyZWFtJnByb2plY3Q9MjAyNV9SVE0+ew0KPj4+Pj4gcHVibGlj IHN0YXRpYyBTdHJpbmc8DQo+Pj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uv cz9kZWZzPVN0cmluZyZwcm9qZWN0PTIwMjVfUlRNPg0KPj4+Pj4gVUlEX1BBWUxPQURfU1RBUlRf VkFMPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVm cz1VSURfUEFZTE9BRF9TVEFSVF9WQUwmcHJvamVjdD0yMDI1X1JUTQ0KPj4+Pj4gPSAiX1VJRF8i Ow0KPj4+Pj4gICAgICAgICAgICAgICAgICBwcml2YXRlIFRva2VuPA0KPj4+Pj4gaHR0cDovLzEw LjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ZGVmcz1Ub2tlbiZwcm9qZWN0PTIwMjVfUlRNPiB0 b2tlbjwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9dG9r ZW4mcHJvamVjdD0yMDI1X1JUTT4gPSBuZXcNCj4+Pj4+IFRva2VuPGh0dHA6Ly8xMC4yMzguMjM2 LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9VG9rZW4mcHJvamVjdD0yMDI1X1JUTQ0KPj4+Pj4+IChV SURfUEFZTE9BRF9TVEFSVF9WQUw8DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29y ay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nk ay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNVSURfUEFZTE9BRF9TVEFSVF9WQUwNCj4+ Pj4+PiAsMCwwKTsNCj4+Pj4+ICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBieXRlW10gYnVmZmVy PA0KPj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVmcz1idWZmZXIm cHJvamVjdD0yMDI1X1JUTT4gPSBuZXcNCj4+Pj4+IGJ5dGVbNF07DQo+Pj4+PiAgICAgICAgICAg ICAgICAgIHByaXZhdGUgYm9vbGVhbiByZXR1cm5Ub2tlbjwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzgu MjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9cmV0dXJuVG9rZW4mcHJvamVjdD0yMDI1X1JUTT4g PQ0KPj4+Pj4gZmFsc2U7DQo+Pj4+Pg0KPj4+Pj4gICAgICAgICAgICAgICAgICBwdWJsaWMgdm9p ZCBzZXRQYXlsb2FkPA0KPj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/ cmVmcz1zZXRQYXlsb2FkJnByb2plY3Q9MjAyNV9SVE0NCj4+Pj4+IChpbnQNCj4+Pj4+IHVpZDxo dHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPXVpZCZwcm9qZWN0PTIwMjVf UlRNPil7DQo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcjwNCj4+ Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRN L3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29t L3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9r ZW5TdHJlYW0uamF2YSNidWZmZXINCj4+Pj4+IFswXQ0KPj4+Pj4gPSAoYnl0ZSl1aWQ8DQo+Pj4+ Pg0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9w bGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9z YXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2Vu U3RyZWFtLmphdmEjdWlkDQo+Pj4+Pj4gOw0KPj4+Pj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBidWZmZXI8DQo+Pj4+Pg0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9z b3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdv cmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9z ZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEjYnVmZmVyDQo+Pj4+PiBbMV0NCj4+Pj4+ ID0gKGJ5dGUpKHVpZDwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29y ay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nk ay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4+Pj4+Pj4+IDgpOw0KPj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXI8DQo+Pj4+Pg0KPj4+PiBodHRw Oi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2 aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3Nv YmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEj YnVmZmVyDQo+Pj4+PiBbMl0NCj4+Pj4+ID0gKGJ5dGUpKHVpZDwNCj4+Pj4+DQo+Pj4+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZp Y2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29i amVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1 aWQNCj4+Pj4+Pj4+IDE2KTsNCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg YnVmZmVyPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hy ZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEv c2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4 L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI2J1ZmZlcg0KPj4+Pj4gWzNdDQo+Pj4+PiA9IChieXRl KSh1aWQ8DQo+Pj4+Pg0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJl Zi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9z ZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgv UGF5bG9hZFRva2VuU3RyZWFtLmphdmEjdWlkDQo+Pj4+Pj4+PiAyNCk7DQo+Pj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIz OC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2Vh cmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9w bGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI3Rva2VuDQo+ Pj4+Pj4gLnNldFBheWxvYWQ8DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJj ZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9q YXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9p bmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNzZXRQYXlsb2FkDQo+Pj4+PiAobmV3DQo+Pj4+ PiBQYXlsb2FkPA0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9kZWZz PVBheWxvYWQmcHJvamVjdD0yMDI1X1JUTQ0KPj4+Pj4+IChidWZmZXI8DQo+Pj4+IGh0dHA6Ly8x MC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2Vz LnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVj dHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNidWZm ZXINCj4+Pj4+PiApKTsNCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuVG9rZW4gPSB0cnVlOw0KPj4+Pj4gICAgICAgICAgICAgICAgICB9DQo+Pj4+PiAgICAgICAg ICAgICAgICAgIHB1YmxpYyBUb2tlbjwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS9zP2RlZnM9VG9rZW4mcHJvamVjdD0yMDI1X1JUTT4gbmV4dDwNCj4+Pj4+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP3JlZnM9bmV4dCZwcm9qZWN0PTIwMjVfUlRN PigpIHRocm93cw0KPj4+Pj4gSU9FeGNlcHRpb248DQo+Pj4+PiBodHRwOi8vMTAuMjM4LjIzNi4x MDE6ODA4MC9zb3VyY2Uvcz9kZWZzPUlPRXhjZXB0aW9uJnByb2plY3Q9MjAyNV9SVE0+ew0KPj4+ Pj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmV0dXJuVG9rZW48DQo+Pj4+ Pg0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9w bGF0Zm9ybS5zZXJ2aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9z YXAvYnVzaW5lc3NvYmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2Vu U3RyZWFtLmphdmEjcmV0dXJuVG9rZW4NCj4+Pj4+ICl7DQo+Pj4+PiByZXR1cm5Ub2tlbjwNCj4+ Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRN L3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29t L3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9r ZW5TdHJlYW0uamF2YSNyZXR1cm5Ub2tlbg0KPj4+Pj4gPSBmYWxzZTsgcmV0dXJuIHRva2VuPA0K Pj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9S VE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9j b20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRU b2tlblN0cmVhbS5qYXZhI3Rva2VuDQo+Pj4+PiA7DQo+Pj4+PiB9DQo+Pj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyByZXR1cm4gbnVsbDwNCj4+Pj4+IGh0dHA6Ly8x MC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS9zP2RlZnM9bnVsbCZwcm9qZWN0PTIwMjVfUlRNPjsg fQ0KPj4+Pj4NCj4+Pj4+ICAgICAgICAgICAgICAgICAgfQ0KPj4+Pj4gfQ0KPj4+Pj4NCj4+Pj4+ DQo+Pj4+PiBXZSBoYXZlIG1hZGUgY29kZSBiYXNlZCBvbiA4LjExLjIgYXMgbGlrZSBiZWxvdzoN Cj4+Pj4+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KPj4+Pj4g UGF5bG9hZFRva2VuU3RyZWFtIHRva2VuU3RyZWFtID0gbmV3IFBheWxvYWRUb2tlblN0cmVhbSgp Ow0KPj4+Pj4gdG9rZW5TdHJlYW0uc2V0UGF5bG9hZChjdXJyZW50VmFsKTsNCj4+Pj4+IEZpZWxk VHlwZSBmaWVsZFR5cGUgPSBuZXcgRmllbGRUeXBlKCk7DQo+Pj4+PiBsdWNGaWVsZCA9IG5ldyBG aWVsZChjb25maWcucGF5bG9hZFVpZCgpLm5hbWUsIHRva2VuU3RyZWFtLCBmaWVsZFR5cGUpOw0K Pj4+Pj4gZG9jLmFkZChsdWNGaWVsZCk7DQo+Pj4+PiAtLS0tDQo+Pj4+PiBwdWJsaWMgY2xhc3Mg UGF5bG9hZFRva2VuU3RyZWFtPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgw ODAvc291cmNlL3M/cmVmcz1QYXlsb2FkVG9rZW5TdHJlYW0mcHJvamVjdD0yMDI1X1JUTQ0KPj4+ Pj4gZXh0ZW5kcyBUb2tlblN0cmVhbTwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS9zP2RlZnM9VG9rZW5TdHJlYW0mcHJvamVjdD0yMDI1X1JUTT57DQo+Pj4+PiBwdWJs aWMgc3RhdGljIFN0cmluZzwNCj4+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJj ZS9zP2RlZnM9U3RyaW5nJnByb2plY3Q9MjAyNV9SVE0+DQo+Pj4+PiBVSURfUEFZTE9BRF9TVEFS VF9WQUw8DQo+Pj4+Pg0KPj4+PiBodHRwOi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9y ZWZzPVVJRF9QQVlMT0FEX1NUQVJUX1ZBTCZwcm9qZWN0PTIwMjVfUlRNDQo+Pj4+PiA9ICJfVUlE XyI7DQo+Pj4+PiBwcml2YXRlIGJ5dGVbXSBidWZmZXI8DQo+Pj4+PiBodHRwOi8vMTAuMjM4LjIz Ni4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPWJ1ZmZlciZwcm9qZWN0PTIwMjVfUlRNPiA9IG5ldw0K Pj4+Pj4gYnl0ZVs0XTsNCj4+Pj4+ICAgICAgICAgICAgICAgICAgcHJpdmF0ZSBib29sZWFuIHJl dHVyblRva2VuPA0KPj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3M/cmVm cz1yZXR1cm5Ub2tlbiZwcm9qZWN0PTIwMjVfUlRNPiA9DQo+Pj4+PiBmYWxzZTsNCj4+Pj4+DQo+ Pj4+PiAgICAgICAgICAgICAgICAgIHB1YmxpYyB2b2lkIHNldFBheWxvYWQ8DQo+Pj4+PiBodHRw Oi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2Uvcz9yZWZzPXNldFBheWxvYWQmcHJvamVjdD0y MDI1X1JUTQ0KPj4+Pj4gKGludA0KPj4+Pj4gdWlkPGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgw L3NvdXJjZS9zP3JlZnM9dWlkJnByb2plY3Q9MjAyNV9SVE0+KXsNCj4+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnVmZmVyPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4y MzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNo LmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0 Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI2J1ZmZlcg0KPj4+ Pj4gWzBdDQo+Pj4+PiA9IChieXRlKXVpZDwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2 LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5q YXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZv cm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1aWQNCj4+Pj4+PiA7 DQo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlcjwNCj4+Pj4+DQo+ Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRm b3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9i dXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJl YW0uamF2YSNidWZmZXINCj4+Pj4+IFsxXQ0KPj4+Pj4gPSAoYnl0ZSkodWlkPA0KPj4+Pj4NCj4+ Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZv cm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3JrL2phdmEvc2RrL3NyYy9jb20vc2FwL2J1 c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2RrL2luZGV4L1BheWxvYWRUb2tlblN0cmVh bS5qYXZhI3VpZA0KPj4+Pj4+Pj4gOCk7DQo+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGJ1ZmZlcjwNCj4+Pj4+DQo+Pj4+IGh0dHA6Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3Nv dXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZpY2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29y ay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29iamVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nk ay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSNidWZmZXINCj4+Pj4+IFsyXQ0KPj4+Pj4g PSAoYnl0ZSkodWlkPA0KPj4+Pj4NCj4+Pj4gaHR0cDovLzEwLjIzOC4yMzYuMTAxOjgwODAvc291 cmNlL3hyZWYvMjAyNV9SVE0vcGxhdGZvcm0uc2VydmljZXMuc2VhcmNoLmphdmEvZnJhbWV3b3Jr L2phdmEvc2RrL3NyYy9jb20vc2FwL2J1c2luZXNzb2JqZWN0cy9wbGF0Zm9ybS9zZWFyY2gvc2Rr L2luZGV4L1BheWxvYWRUb2tlblN0cmVhbS5qYXZhI3VpZA0KPj4+Pj4+Pj4gMTYpOw0KPj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZmZXI8DQo+Pj4+Pg0KPj4+PiBodHRw Oi8vMTAuMjM4LjIzNi4xMDE6ODA4MC9zb3VyY2UveHJlZi8yMDI1X1JUTS9wbGF0Zm9ybS5zZXJ2 aWNlcy5zZWFyY2guamF2YS9mcmFtZXdvcmsvamF2YS9zZGsvc3JjL2NvbS9zYXAvYnVzaW5lc3Nv YmplY3RzL3BsYXRmb3JtL3NlYXJjaC9zZGsvaW5kZXgvUGF5bG9hZFRva2VuU3RyZWFtLmphdmEj YnVmZmVyDQo+Pj4+PiBbM10NCj4+Pj4+ID0gKGJ5dGUpKHVpZDwNCj4+Pj4+DQo+Pj4+IGh0dHA6 Ly8xMC4yMzguMjM2LjEwMTo4MDgwL3NvdXJjZS94cmVmLzIwMjVfUlRNL3BsYXRmb3JtLnNlcnZp Y2VzLnNlYXJjaC5qYXZhL2ZyYW1ld29yay9qYXZhL3Nkay9zcmMvY29tL3NhcC9idXNpbmVzc29i amVjdHMvcGxhdGZvcm0vc2VhcmNoL3Nkay9pbmRleC9QYXlsb2FkVG9rZW5TdHJlYW0uamF2YSN1 aWQNCj4+Pj4+Pj4+IDI0KTsNCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UGF5bG9hZEF0dHJpYnV0ZUltcGwgYXR0cmlidXRlSW1wbCA9IG5ldw0KPj4+Pj4gUGF5bG9hZEF0 dHJpYnV0ZUltcGwobmV3IEJ5dGVzUmVmKGJ1ZmZlcikpOw0KPj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFkZEF0dHJpYnV0ZUltcGwoYXR0cmlidXRlSW1wbCk7DQo+Pj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVyblRva2VuID0gdHJ1ZTsNCj4+Pj4+ ICAgICAgICAgICAgICAgICAgfQ0KPj4+Pj4gICAgICAgICAgICAgICAgICBwdWJsaWMgYm9vbGVh biBpbmNyZW1lbnRUb2tlbigpIHRocm93cyBJT0V4Y2VwdGlvbiB7DQo+Pj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXR1cm5Ub2tlbil7DQo+Pj4+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuVG9rZW4gPSBmYWxzZTsN Cj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gdHJ1ZTsNCj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQ0KPj4+Pj4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsNCj4+Pj4+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQo+Pj4+PiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0NCj4+Pj4+ICAgICAgICAgICAgICAgICAg fQ0KPj4+Pj4gfQ0KPj4+Pj4NCj4+Pj4+IFJlZ2FyZHMNCj4+Pj4+IFJhamliDQo+Pj4+Pg0KPj4+ Pj4NCj4+Pj4gLS0NCj4+Pj4gU2luY2VyZWx5IHlvdXJzDQo+Pj4+IE1pa2hhaWwgS2hsdWRuZXYN Cj4+Pj4NCj4+IC0tDQo+PiBVd2UgU2NoaW5kbGVyDQo+PiBBY2h0ZXJkaWVrIDE5LCBELTI4MzU3 IEJyZW1lbg0KPj4gaHR0cHM6Ly93d3cudGhldGFwaGkuZGUvDQo+PiBlTWFpbDogdXdlQHRoZXRh cGhpLmRlDQo+Pg0KPj4NCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFp bDogamF2YS11c2VyLXVuc3Vic2NyaWJlQGx1Y2VuZS5hcGFjaGUub3JnDQo+PiBGb3IgYWRkaXRp b25hbCBjb21tYW5kcywgZS1tYWlsOiBqYXZhLXVzZXItaGVscEBsdWNlbmUuYXBhY2hlLm9yZw0K Pj4NCj4+DQo+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGphdmEt dXNlci11bnN1YnNjcmliZUBsdWNlbmUuYXBhY2hlLm9yZw0KPj4gRm9yIGFkZGl0aW9uYWwgY29t bWFuZHMsIGUtbWFpbDogamF2YS11c2VyLWhlbHBAbHVjZW5lLmFwYWNoZS5vcmcNCj4+DQo+IC0t DQo+IFV3ZSBTY2hpbmRsZXINCj4gQWNodGVyZGllayAxOSwgRC0yODM1NyBCcmVtZW4NCj4gaHR0 cHM6Ly93d3cudGhldGFwaGkuZGUvDQo+IGVNYWlsOiB1d2VAdGhldGFwaGkuZGUNCj4NCj4NCj4g LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tDQo+IFRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGphdmEtdXNlci11bnN1YnNj cmliZUBsdWNlbmUuYXBhY2hlLm9yZw0KPiBGb3IgYWRkaXRpb25hbCBjb21tYW5kcywgZS1tYWls OiBqYXZhLXVzZXItaGVscEBsdWNlbmUuYXBhY2hlLm9yZw0KPg0KPg0KPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogamF2YS11c2VyLXVuc3Vic2NyaWJlQGx1Y2VuZS5h cGFjaGUub3JnDQo+IEZvciBhZGRpdGlvbmFsIGNvbW1hbmRzLCBlLW1haWw6IGphdmEtdXNlci1o ZWxwQGx1Y2VuZS5hcGFjaGUub3JnDQo+DQotLQ0KVXdlIFNjaGluZGxlcg0KQWNodGVyZGllayAx OSwgRC0yODM1NyBCcmVtZW4NCmh0dHBzOi8vd3d3LnRoZXRhcGhpLmRlLw0KZU1haWw6IHV3ZUB0 aGV0YXBoaS5kZQ0KDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KVG8gdW5zdWJzY3JpYmUsIGUtbWFpbDogamF2 YS11c2VyLXVuc3Vic2NyaWJlQGx1Y2VuZS5hcGFjaGUub3JnDQpGb3IgYWRkaXRpb25hbCBjb21t YW5kcywgZS1tYWlsOiBqYXZhLXVzZXItaGVscEBsdWNlbmUuYXBhY2hlLm9yZw0KDQo= DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NClRvIHVuc3Vic2NyaWJlLCBlLW1haWw6IGphdmEtdXNlci11 bnN1YnNjcmliZUBsdWNlbmUuYXBhY2hlLm9yZw0KRm9yIGFkZGl0aW9uYWwgY29tbWFuZHMs IGUtbWFpbDogamF2YS11c2VyLWhlbHBAbHVjZW5lLmFwYWNoZS5vcmcNCg0K