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