Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [udig-devel] SVG's

Ok i found it..

In my case when i create style programmatically, there is bug in
geotools version which is included
in uDIG 1.2M4 (i am not sure about revision, at least it is SNAPSHOT?),
I am not sure which geotools version is included earlier udig releses,
maby it works fine there..
but there is no bug at least stable geotools 2.5.5, i check it from source.

StyleFactoryImpl:
    public Graphic createGraphic(ExternalGraphic[] externalGraphics,
        Mark[] marks, Symbol[] symbols, Expression opacity, Expression size,
        Expression rotation) {
        Graphic graphic = new GraphicImpl();

        symbols = symbols != null ? symbols : new Symbol[0];
        graphic.setSymbols(symbols);

        externalGraphics = externalGraphics != null ? externalGraphics
: new ExternalGraphic[0];
        graphic.setExternalGraphics(externalGraphics);

        marks = marks != null ? marks : new Mark[0];
        graphic.setMarks(marks);
<snip>

GraphicImpl:
    @Deprecated
    public void setMarks(Mark[] marks) {
        graphics.clear();

        for(Mark g : marks){
            graphics.add(g);
        }
    }

    @Deprecated
    public void setExternalGraphics(ExternalGraphic[] externalGraphics) {
        graphics.clear();

        for(ExternalGraphic g : externalGraphics){
            graphics.add(g);
        }
    }

.. as you can see, when factory call setMarks, the external graphics is cleared.
In geotools 2.5.5 there was own collection for both external graphics
and marks so they didnt get cleared.

- Artsi



2009/6/2 Arto Pastinen <arto.pastinen@xxxxxxxxx>:
> I am using absolute paths, main difference is that i am creating
> featuretypes and features dynamically
> and attach them to temporary geo resource.
>
> The code is here: http://pastebin.com/m4932ab9f
>
> - Artsi
>
> 2009/6/2 Jayansh Shinde <jayansh.shinde@xxxxxxxxx>:
>> Hi,
>> I am using svg symbols and they are working fine on 1.2M3, I have not moved
>> to 1.2M4, but I will check and let you know. I used to put svg in sld file.
>> Thanks
>> Jayansh
>>
>> On Tue, Jun 2, 2009 at 12:00 PM, Jody Garnett <jody.garnett@xxxxxxxxx>
>> wrote:
>>>
>>> The developer last working on this (who did get it to work) is Jayansh
>>> (who is CCed on this reply). You may wish to use an absolute path when
>>> refering to your images; I am not sure what it considers the base path
>>> when evaulating external graphic references? A file URL will do for
>>> testing ...
>>>
>>> Jody
>>>
>>> On Tue, Jun 2, 2009 at 4:18 PM, Arto Pastinen <arto.pastinen@xxxxxxxxx>
>>> wrote:
>>> > I have now tried to change the batik libraries with different
>>> > versions, and it still doesnt
>>> > work.
>>> >
>>> > Actually, it seems that any external graphics defined in styles does
>>> > not work, it just draw gray boxes,
>>> > well known markers like starts etc. works fine.
>>> >
>>> > I cant say is this geotools or udig problem, but yestday i tried to
>>> > draw graphics with
>>> > geotools-2.5.5 and did work fine, i used that unmanaged JMapPane to
>>> > draw the graphics, i think it
>>> > and udig both uses GTRenderer..
>>> >
biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UwKFVua25vd24gU291cmNl
KQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25vd24gU291cmNlKQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0cmFjdEJ1bmRsZS5sb2Fk
QnVuZGxlQWN0aXZhdG9yKEFic3RyYWN0QnVuZGxlLmphdmE6MTQxKQoJYXQgb3JnLmVjbGlwc2Uu
b3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1wbC5zdGFydChCdW5k
bGVDb250ZXh0SW1wbC5qYXZhOjk4MCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmlu
dGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdvcmtlcihCdW5kbGVIb3N0LmphdmE6MzQ2KQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0cmFjdEJ1bmRs
ZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2NSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJh
bWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0KFNlY3VyZUFjdGlvbi5qYXZhOjQwMCkKCWF0
IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VMYXp5U3Rh
cnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBzZUxhenlTdGFydGVyLmphdmE6MTExKQoJYXQg
b3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5sb2FkZXIuQ2xhc3NwYXRoTWFuYWdlci5maW5k
TG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmphdmE6NDI3KQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIuZmluZExvY2FsQ2xhc3Mo
RGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdv
cmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZExvY2FsQ2xhc3MoQnVuZGxlTG9hZGVy
LmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5T
aW5nbGVTb3VyY2VQYWNrYWdlLmxvYWRDbGFzcyhTaW5nbGVTb3VyY2VQYWNrYWdlLmphdmE6MzMp
CglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRl
ci5maW5kQ2xhc3NJbnRlcm5hbChCdW5kbGVMb2FkZXIuamF2YTo0NDEpCglhdCBvcmcuZWNsaXBz
ZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVu
ZGxlTG9hZGVyLmphdmE6Mzk3KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM4NSkKCWF0
IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3IuRGVmYXVsdENsYXNzTG9hZGVy
LmxvYWRDbGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2YTo4NykKCWF0IGphdmEubGFuZy5DbGFz
c0xvYWRlci5sb2FkQ2xhc3MoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2Fk
ZXIubG9hZENsYXNzSW50ZXJuYWwoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3Mu
Z2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMwKE5hdGl2ZSBNZXRob2QpCglhdCBqYXZhLmxhbmcuQ2xh
c3MucHJpdmF0ZUdldERlY2xhcmVkQ29uc3RydWN0b3JzKFVua25vd24gU291cmNlKQoJYXQgamF2
YS5sYW5nLkNsYXNzLmdldENvbnN0cnVjdG9yMChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFu
Zy5DbGFzcy5uZXdJbnN0YW5jZTAoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3Mu
bmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29y
ay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLmxvYWRCdW5kbGVBY3RpdmF0b3IoQWJzdHJh
Y3RCdW5kbGUuamF2YToxNDEpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5h
bC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0KEJ1bmRsZUNvbnRleHRJbXBsLmphdmE6OTgw
KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVIb3N0
LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YTozNDYpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZy
YW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLnN0YXJ0KEFic3RyYWN0QnVuZGxl
LmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsudXRpbC5TZWN1cmVBY3Rp
b24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAwKQoJYXQgb3JnLmVjbGlwc2UuY29yZS5ydW50
aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxhenlTdGFydGVyLnBvc3RGaW5kTG9jYWxDbGFz
cyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmJhc2Vh
ZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2VyLmZpbmRMb2NhbENsYXNzKENsYXNzcGF0aE1h
bmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmludGVybmFsLmJhc2VhZGFwdG9y
LkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxDbGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2
YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRs
ZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVMb2FkZXIuamF2YTozNjgpCglhdCBvcmcuZWNs
aXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3NJ
bnRlcm5hbChCdW5kbGVMb2FkZXIuamF2YTo0NDQpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1l
d29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmph
dmE6Mzk3KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5k
bGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM4NSkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3IuRGVmYXVsdENsYXNzTG9hZGVyLmxvYWRDbGFzcyhE
ZWZhdWx0Q2xhc3NMb2FkZXIuamF2YTo4NykKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5sb2Fk
Q2xhc3MoVW5rbm93biBTb3VyY2UpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRl
cm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5sb2FkQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6MzEzKQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVIb3N0Lmxv
YWRDbGFzcyhCdW5kbGVIb3N0LmphdmE6MjI3KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdv
cmsuaW50ZXJuYWwuY29yZS5BYnN0cmFjdEJ1bmRsZS5sb2FkQ2xhc3MoQWJzdHJhY3RCdW5kbGUu
amF2YToxMjc0KQoJYXQgb3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5vc2dpLlJl
Z2lzdHJ5U3RyYXRlZ3lPU0dJLmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oUmVnaXN0cnlTdHJh
dGVneU9TR0kuamF2YToxNjApCglhdCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5
LkV4dGVuc2lvblJlZ2lzdHJ5LmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oRXh0ZW5zaW9uUmVn
aXN0cnkuamF2YTo4NjcpCglhdCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5LkNv
bmZpZ3VyYXRpb25FbGVtZW50LmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oQ29uZmlndXJhdGlv
bkVsZW1lbnQuamF2YToyNDMpCglhdCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5
LkNvbmZpZ3VyYXRpb25FbGVtZW50SGFuZGxlLmNyZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oQ29u
ZmlndXJhdGlvbkVsZW1lbnRIYW5kbGUuamF2YTo1MSkKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3gu
aW50ZXJuYWwuYXBwLkVjbGlwc2VBcHBIYW5kbGUucnVuKEVjbGlwc2VBcHBIYW5kbGUuamF2YTox
ODgpCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNl
QXBwTGF1bmNoZXIucnVuQXBwbGljYXRpb24oRWNsaXBzZUFwcExhdW5jaGVyLmphdmE6MTEwKQoJ
YXQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUFwcExh
dW5jaGVyLnN0YXJ0KEVjbGlwc2VBcHBMYXVuY2hlci5qYXZhOjc5KQoJYXQgb3JnLmVjbGlwc2Uu
Y29yZS5ydW50aW1lLmFkYXB0b3IuRWNsaXBzZVN0YXJ0ZXIucnVuKEVjbGlwc2VTdGFydGVyLmph
dmE6Mzg2KQoJYXQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmFkYXB0b3IuRWNsaXBzZVN0YXJ0
ZXIucnVuKEVjbGlwc2VTdGFydGVyLmphdmE6MTc5KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0
aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5h
dGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ucmVm
bGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShVbmtub3duIFNvdXJjZSkK
CWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UoVW5rbm93biBTb3VyY2UpCglhdCBv
cmcuZWNsaXBzZS5lcXVpbm94LmxhdW5jaGVyLk1haW4uaW52b2tlRnJhbWV3b3JrKE1haW4uamF2
YTo1NDkpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94LmxhdW5jaGVyLk1haW4uYmFzaWNSdW4oTWFp
bi5qYXZhOjUwNCkKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5ydW4oTWFp
bi5qYXZhOjEyMzYpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94LmxhdW5jaGVyLk1haW4ubWFpbihN
YWluLmphdmE6MTIxMikKQ2F1c2VkIGJ5OiBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5Tm90
Rm91bmRFeGNlcHRpb246IE5vIGZhY3Rvcnkgb2Yga2luZCAiTWF0aFRyYW5zZm9ybUZhY3Rvcnki
IGZvdW5kLgoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZp
Y2VQcm92aWRlcihGYWN0b3J5UmVnaXN0cnkuamF2YTozNzQpCglhdCBvcmcuZ2VvdG9vbHMuZmFj
dG9yeS5GYWN0b3J5Q3JlYXRvci5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeUNyZWF0b3IuamF2
YToxNDMpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNpbmdGYWN0b3J5Rmlu
ZGVyLmdldEZhY3RvcnkoUmVmZXJlbmNpbmdGYWN0b3J5RmluZGVyLmphdmE6MTkzKQoJYXQgb3Jn
Lmdlb3Rvb2xzLnJlZmVyZW5jaW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRNYXRoVHJh
bnNmb3JtRmFjdG9yeShSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuamF2YTo1MDMpCglhdCBvcmcu
Z2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIu
Z2V0TWF0aFRyYW5zZm9ybUZhY3RvcnkoUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6
MjczKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuUmVmZXJlbmNpbmdGYWN0
b3J5Q29udGFpbmVyLmluaXRpYWxpemUoUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6
MTgwKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuUmVmZXJlbmNpbmdGYWN0
b3J5Q29udGFpbmVyLmdldEltcGxlbWVudGF0aW9uSGludHMoUmVmZXJlbmNpbmdGYWN0b3J5Q29u
dGFpbmVyLmphdmE6MjA1KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5
LnVzZXNBY2NlcHRhYmxlSGludHMoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NTUxKQoJYXQgb3JnLmdl
b3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmlzQWNjZXB0YWJsZShGYWN0b3J5UmVnaXN0
cnkuamF2YTo1MDUpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0
U2VydmljZUltcGxlbWVudGF0aW9uKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjQzNikKCWF0IG9yZy5n
ZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9y
eVJlZ2lzdHJ5LmphdmE6MzY0KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeUNyZWF0
b3IuZ2V0U2VydmljZVByb3ZpZGVyKEZhY3RvcnlDcmVhdG9yLmphdmE6MTQzKQoJYXQgb3JnLmdl
b3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmlu
c3RhbmNlKFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjE3MCkKCWF0IG9yZy5nZW90
b29scy5yZWZlcmVuY2luZy5mYWN0b3J5LkRpcmVjdEF1dGhvcml0eUZhY3RvcnkuPGluaXQ+KERp
cmVjdEF1dGhvcml0eUZhY3RvcnkuamF2YTo5MCkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2lu
Zy5mYWN0b3J5Lndtcy5BdXRvQ1JTRmFjdG9yeS48aW5pdD4oQXV0b0NSU0ZhY3RvcnkuamF2YTo5
MikKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5mYWN0b3J5Lndtcy5BdXRvQ1JTRmFjdG9y
eS48aW5pdD4oQXV0b0NSU0ZhY3RvcnkuamF2YTo4NSkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZUNv
bnN0cnVjdG9yQWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3Vu
LnJlZmxlY3QuTmF0aXZlQ29uc3RydWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2UoVW5rbm93
biBTb3VyY2UpCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nQ29uc3RydWN0b3JBY2Nlc3Nvcklt
cGwubmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5Db25z
dHJ1Y3Rvci5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5u
ZXdJbnN0YW5jZTAoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFu
Y2UoVW5rbm93biBTb3VyY2UpCgkuLi4gOTEgbW9yZQpKdW4gMywgMjAwOSAxOjAwOjA3IFBNIG9y
Zy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeSBzY2FuRm9yUGx1Z2lucwpXQVJOSU5H
OiBDYW4ndCBsb2FkIGEgc2VydmljZSBmb3IgY2F0ZWdvcnkgIkNSU0F1dGhvcml0eUZhY3Rvcnki
LiBDYXVzZSBpcyAiU2VydmljZUNvbmZpZ3VyYXRpb25FcnJvcjogb3JnLm9wZW5naXMucmVmZXJl
bmNpbmcuY3JzLkNSU0F1dGhvcml0eUZhY3Rvcnk6IFByb3ZpZGVyIG9yZyAoLi4uKSBvcmcuZ2Vv
dG9vbHMuZmFjdG9yeS5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb246IE5vIGZhY3Rvcnkgb2Yga2lu
ZCAiTWF0aFRyYW5zZm9ybUZhY3RvcnkiIGZvdW5kLiIuCnN1bi5taXNjLlNlcnZpY2VDb25maWd1
cmF0aW9uRXJyb3I6IG9yZy5vcGVuZ2lzLnJlZmVyZW5jaW5nLmNycy5DUlNBdXRob3JpdHlGYWN0
b3J5OiBQcm92aWRlciBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS53bXMuV2ViQ1JT
RmFjdG9yeSBjb3VsZCBub3QgYmUgaW5zdGFudGlhdGVkOiBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5G
YWN0b3J5Tm90Rm91bmRFeGNlcHRpb246IE5vIGZhY3Rvcnkgb2Yga2luZCAiTWF0aFRyYW5zZm9y
bUZhY3RvcnkiIGZvdW5kLgoJYXQgc3VuLm1pc2MuU2VydmljZS5mYWlsKFVua25vd24gU291cmNl
KQoJYXQgc3VuLm1pc2MuU2VydmljZS5hY2Nlc3MkMjAwKFVua25vd24gU291cmNlKQoJYXQgc3Vu
Lm1pc2MuU2VydmljZSRMYXp5SXRlcmF0b3IubmV4dChVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5n
ZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihGYWN0b3J5UmVnaXN0cnku
amF2YTo4MjkpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuc2NhbkZv
clBsdWdpbnMoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NzczKQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3Rv
cnkuRmFjdG9yeVJlZ2lzdHJ5LnNjYW5Gb3JQbHVnaW5zSWZOZWVkZWQoRmFjdG9yeVJlZ2lzdHJ5
LmphdmE6ODA4KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNl
cnZpY2VQcm92aWRlcnMoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6MTk1KQoJYXQgb3JnLmdlb3Rvb2xz
LnJlZmVyZW5jaW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRGYWN0b3JpZXMoUmVmZXJl
bmNpbmdGYWN0b3J5RmluZGVyLmphdmE6MTc2KQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5n
LlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRDUlNBdXRob3JpdHlGYWN0b3JpZXMoUmVmZXJl
bmNpbmdGYWN0b3J5RmluZGVyLmphdmE6NDUxKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5n
LkRlZmF1bHRBdXRob3JpdHlGYWN0b3J5LmdldEJhY2tpbmdGYWN0b3J5KERlZmF1bHRBdXRob3Jp
dHlGYWN0b3J5LmphdmE6ODgpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuRGVmYXVsdEF1
dGhvcml0eUZhY3RvcnkuPGluaXQ+KERlZmF1bHRBdXRob3JpdHlGYWN0b3J5LmphdmE6NjkpCglh
dCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuQ1JTLmdldEF1dGhvcml0eUZhY3RvcnkoQ1JTLmph
dmE6MTgyKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLkNSUy5kZWNvZGUoQ1JTLmphdmE6
NDIwKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLkNSUy5kZWNvZGUoQ1JTLmphdmE6MzQ4
KQoJYXQgbmV0LnJlZnJhY3Rpb25zLnVkaWcubGlicy5pbnRlcm5hbC5BY3RpdmF0b3Iuc3RhcnQo
QWN0aXZhdG9yLmphdmE6NTkpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5h
bC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsJDIucnVuKEJ1bmRsZUNvbnRleHRJbXBsLmphdmE6MTAw
OSkKCWF0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZl
IE1ldGhvZCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVu
ZGxlQ29udGV4dEltcGwuc3RhcnRBY3RpdmF0b3IoQnVuZGxlQ29udGV4dEltcGwuamF2YToxMDAz
KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250
ZXh0SW1wbC5zdGFydChCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjk4NCkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdvcmtlcihCdW5k
bGVIb3N0LmphdmE6MzQ2KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwu
Y29yZS5BYnN0cmFjdEJ1bmRsZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2NSkKCWF0IG9y
Zy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0KFNlY3VyZUFj
dGlvbi5qYXZhOjQwMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFw
dG9yLkVjbGlwc2VMYXp5U3RhcnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBzZUxhenlTdGFy
dGVyLmphdmE6MTExKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5sb2FkZXIuQ2xh
c3NwYXRoTWFuYWdlci5maW5kTG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmphdmE6NDI3KQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2Fk
ZXIuZmluZExvY2FsQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJYXQgb3JnLmVj
bGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZExvY2Fs
Q2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdv
cmsuaW50ZXJuYWwuY29yZS5TaW5nbGVTb3VyY2VQYWNrYWdlLmxvYWRDbGFzcyhTaW5nbGVTb3Vy
Y2VQYWNrYWdlLmphdmE6MzMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5h
bC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3NJbnRlcm5hbChCdW5kbGVMb2FkZXIuamF2YTo0
NDEpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxv
YWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzk3KQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxv
YWRlci5qYXZhOjM4NSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3Iu
RGVmYXVsdENsYXNzTG9hZGVyLmxvYWRDbGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2YTo4NykK
CWF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5sb2FkQ2xhc3MoVW5rbm93biBTb3VyY2UpCglhdCBq
YXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzSW50ZXJuYWwoVW5rbm93biBTb3VyY2UpCglh
dCBqYXZhLmxhbmcuQ2xhc3MuZ2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMwKE5hdGl2ZSBNZXRob2Qp
CglhdCBqYXZhLmxhbmcuQ2xhc3MucHJpdmF0ZUdldERlY2xhcmVkQ29uc3RydWN0b3JzKFVua25v
d24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldENvbnN0cnVjdG9yMChVbmtub3duIFNv
dXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZTAoVW5rbm93biBTb3VyY2UpCglh
dCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglhdCBvcmcuZWNs
aXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLmxvYWRCdW5k
bGVBY3RpdmF0b3IoQWJzdHJhY3RCdW5kbGUuamF2YToxNDEpCglhdCBvcmcuZWNsaXBzZS5vc2dp
LmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0KEJ1bmRsZUNv
bnRleHRJbXBsLmphdmE6OTgwKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5CdW5kbGVIb3N0LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YTozNDYpCglhdCBv
cmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLnN0
YXJ0KEFic3RyYWN0QnVuZGxlLmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdv
cmsudXRpbC5TZWN1cmVBY3Rpb24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAwKQoJYXQgb3Jn
LmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxhenlTdGFydGVy
LnBvc3RGaW5kTG9jYWxDbGFzcyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEpCglhdCBvcmcu
ZWNsaXBzZS5vc2dpLmJhc2VhZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2VyLmZpbmRMb2Nh
bENsYXNzKENsYXNzcGF0aE1hbmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmlu
dGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxDbGFzcyhEZWZh
dWx0Q2xhc3NMb2FkZXIuamF2YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5p
bnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVMb2FkZXIuamF2
YTozNjgpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLlNpbmds
ZVNvdXJjZVBhY2thZ2UubG9hZENsYXNzKFNpbmdsZVNvdXJjZVBhY2thZ2UuamF2YTozMykKCWF0
IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZp
bmRDbGFzc0ludGVybmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0MSkKCWF0IG9yZy5lY2xpcHNlLm9z
Z2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5kbGVM
b2FkZXIuamF2YTozOTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5j
b3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIubG9h
ZENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNzTG9h
ZGVyLmxvYWRDbGFzcyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5s
b2FkQ2xhc3NJbnRlcm5hbChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5nZXRE
ZWNsYXJlZENvbnN0cnVjdG9yczAoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5DbGFzcy5w
cml2YXRlR2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxh
bmcuQ2xhc3MuZ2V0Q29uc3RydWN0b3IwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNs
YXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJ
bnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmlu
dGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUubG9hZEJ1bmRsZUFjdGl2YXRvcihBYnN0cmFjdEJ1
bmRsZS5qYXZhOjE0MSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNv
cmUuQnVuZGxlQ29udGV4dEltcGwuc3RhcnQoQnVuZGxlQ29udGV4dEltcGwuamF2YTo5ODApCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhvc3Quc3Rh
cnRXb3JrZXIoQnVuZGxlSG9zdC5qYXZhOjM0NikKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3
b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUuc3RhcnQoQWJzdHJhY3RCdW5kbGUuamF2
YToyNjUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay51dGlsLlNlY3VyZUFjdGlvbi5z
dGFydChTZWN1cmVBY3Rpb24uamF2YTo0MDApCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUu
aW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlTGF6eVN0YXJ0ZXIucG9zdEZpbmRMb2NhbENsYXNzKEVj
bGlwc2VMYXp5U3RhcnRlci5qYXZhOjExMSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuYmFzZWFkYXB0
b3IubG9hZGVyLkNsYXNzcGF0aE1hbmFnZXIuZmluZExvY2FsQ2xhc3MoQ2xhc3NwYXRoTWFuYWdl
ci5qYXZhOjQyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3IuRGVm
YXVsdENsYXNzTG9hZGVyLmZpbmRMb2NhbENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjE5
MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9h
ZGVyLmZpbmRMb2NhbENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM2OCkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzc0ludGVy
bmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0NCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3Jr
LmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5kbGVMb2FkZXIuamF2YToz
OTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxv
YWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIubG9hZENsYXNzKERlZmF1
bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRDbGFz
cyhVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFs
LmNvcmUuQnVuZGxlTG9hZGVyLmxvYWRDbGFzcyhCdW5kbGVMb2FkZXIuamF2YTozMTMpCglhdCBv
cmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhvc3QubG9hZENs
YXNzKEJ1bmRsZUhvc3QuamF2YToyMjcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5p
bnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLmxvYWRDbGFzcyhBYnN0cmFjdEJ1bmRsZS5qYXZh
OjEyNzQpCglhdCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5Lm9zZ2kuUmVnaXN0
cnlTdHJhdGVneU9TR0kuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihSZWdpc3RyeVN0cmF0ZWd5
T1NHSS5qYXZhOjE2MCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnkuRXh0
ZW5zaW9uUmVnaXN0cnkuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihFeHRlbnNpb25SZWdpc3Ry
eS5qYXZhOjg2NykKCWF0IG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnkuQ29uZmln
dXJhdGlvbkVsZW1lbnQuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihDb25maWd1cmF0aW9uRWxl
bWVudC5qYXZhOjI0MykKCWF0IG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnkuQ29u
ZmlndXJhdGlvbkVsZW1lbnRIYW5kbGUuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihDb25maWd1
cmF0aW9uRWxlbWVudEhhbmRsZS5qYXZhOjUxKQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5pbnRl
cm5hbC5hcHAuRWNsaXBzZUFwcEhhbmRsZS5ydW4oRWNsaXBzZUFwcEhhbmRsZS5qYXZhOjE4OCkK
CWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VBcHBM
YXVuY2hlci5ydW5BcHBsaWNhdGlvbihFY2xpcHNlQXBwTGF1bmNoZXIuamF2YToxMTApCglhdCBv
cmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlQXBwTGF1bmNo
ZXIuc3RhcnQoRWNsaXBzZUFwcExhdW5jaGVyLmphdmE6NzkpCglhdCBvcmcuZWNsaXBzZS5jb3Jl
LnJ1bnRpbWUuYWRhcHRvci5FY2xpcHNlU3RhcnRlci5ydW4oRWNsaXBzZVN0YXJ0ZXIuamF2YToz
ODYpCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYWRhcHRvci5FY2xpcHNlU3RhcnRlci5y
dW4oRWNsaXBzZVN0YXJ0ZXIuamF2YToxNzkpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RB
Y2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZl
TWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShVbmtub3duIFNvdXJjZSkKCWF0IHN1bi5yZWZsZWN0
LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKFVua25vd24gU291cmNlKQoJYXQg
amF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5l
Y2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5pbnZva2VGcmFtZXdvcmsoTWFpbi5qYXZhOjU0
OSkKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5iYXNpY1J1bihNYWluLmph
dmE6NTA0KQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5sYXVuY2hlci5NYWluLnJ1bihNYWluLmph
dmE6MTIzNikKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5tYWluKE1haW4u
amF2YToxMjEyKQpDYXVzZWQgYnk6IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlOb3RGb3Vu
ZEV4Y2VwdGlvbjogTm8gZmFjdG9yeSBvZiBraW5kICJNYXRoVHJhbnNmb3JtRmFjdG9yeSIgZm91
bmQuCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0U2VydmljZVBy
b3ZpZGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjM3NCkKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5
LkZhY3RvcnlDcmVhdG9yLmdldFNlcnZpY2VQcm92aWRlcihGYWN0b3J5Q3JlYXRvci5qYXZhOjE0
MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5SZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIu
Z2V0RmFjdG9yeShSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuamF2YToxOTMpCglhdCBvcmcuZ2Vv
dG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNpbmdGYWN0b3J5RmluZGVyLmdldE1hdGhUcmFuc2Zv
cm1GYWN0b3J5KFJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5qYXZhOjUwMykKCWF0IG9yZy5nZW90
b29scy5yZWZlcmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5nZXRN
YXRoVHJhbnNmb3JtRmFjdG9yeShSZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuamF2YToyNzMp
CglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3RvcnlD
b250YWluZXIuaW5pdGlhbGl6ZShSZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuamF2YToxODAp
CglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3RvcnlD
b250YWluZXIuZ2V0SW1wbGVtZW50YXRpb25IaW50cyhSZWZlcmVuY2luZ0ZhY3RvcnlDb250YWlu
ZXIuamF2YToyMDUpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkudXNl
c0FjY2VwdGFibGVIaW50cyhGYWN0b3J5UmVnaXN0cnkuamF2YTo1NTEpCglhdCBvcmcuZ2VvdG9v
bHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuaXNBY2NlcHRhYmxlKEZhY3RvcnlSZWdpc3RyeS5q
YXZhOjUwNSkKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRTZXJ2
aWNlSW1wbGVtZW50YXRpb24oRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NDM2KQoJYXQgb3JnLmdlb3Rv
b2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZpY2VQcm92aWRlcihGYWN0b3J5UmVn
aXN0cnkuamF2YTozNjQpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5Q3JlYXRvci5n
ZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeUNyZWF0b3IuamF2YToxNDMpCglhdCBvcmcuZ2VvdG9v
bHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuaW5zdGFu
Y2UoUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6MTcwKQoJYXQgb3JnLmdlb3Rvb2xz
LnJlZmVyZW5jaW5nLmZhY3RvcnkuRGlyZWN0QXV0aG9yaXR5RmFjdG9yeS48aW5pdD4oRGlyZWN0
QXV0aG9yaXR5RmFjdG9yeS5qYXZhOjkwKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZh
Y3Rvcnkud21zLldlYkNSU0ZhY3RvcnkuPGluaXQ+KFdlYkNSU0ZhY3RvcnkuamF2YTo5MSkKCWF0
IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5mYWN0b3J5Lndtcy5XZWJDUlNGYWN0b3J5Ljxpbml0
PihXZWJDUlNGYWN0b3J5LmphdmE6ODQpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVDb25zdHJ1Y3Rv
ckFjY2Vzc29ySW1wbC5uZXdJbnN0YW5jZTAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0
Lk5hdGl2ZUNvbnN0cnVjdG9yQWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlKFVua25vd24gU291cmNl
KQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ0NvbnN0cnVjdG9yQWNjZXNzb3JJbXBsLm5ld0lu
c3RhbmNlKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3Iu
bmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFu
Y2UwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25v
d24gU291cmNlKQoJLi4uIDkxIG1vcmUKSnVuIDMsIDIwMDkgMTowMDowNyBQTSBvcmcuZ2VvdG9v
bHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkgc2NhbkZvclBsdWdpbnMKV0FSTklORzogQ2FuJ3Qg
bG9hZCBhIHNlcnZpY2UgZm9yIGNhdGVnb3J5ICJDUlNBdXRob3JpdHlGYWN0b3J5Ii4gQ2F1c2Ug
aXMgIlNlcnZpY2VDb25maWd1cmF0aW9uRXJyb3I6IG9yZy5vcGVuZ2lzLnJlZmVyZW5jaW5nLmNy
cy5DUlNBdXRob3JpdHlGYWN0b3J5OiBQcm92aWRlciBvcmcgKC4uLikgb3JnLmdlb3Rvb2xzLmZh
Y3RvcnkuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOiBObyBmYWN0b3J5IG9mIGtpbmQgIk1hdGhU
cmFuc2Zvcm1GYWN0b3J5IiBmb3VuZC4iLgpzdW4ubWlzYy5TZXJ2aWNlQ29uZmlndXJhdGlvbkVy
cm9yOiBvcmcub3Blbmdpcy5yZWZlcmVuY2luZy5jcnMuQ1JTQXV0aG9yaXR5RmFjdG9yeTogUHJv
dmlkZXIgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuZXBzZy5UaHJlYWRlZEhzcWxF
cHNnRmFjdG9yeSBjb3VsZCBub3QgYmUgaW5zdGFudGlhdGVkOiBvcmcuZ2VvdG9vbHMuZmFjdG9y
eS5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb246IE5vIGZhY3Rvcnkgb2Yga2luZCAiTWF0aFRyYW5z
Zm9ybUZhY3RvcnkiIGZvdW5kLgoJYXQgc3VuLm1pc2MuU2VydmljZS5mYWlsKFVua25vd24gU291
cmNlKQoJYXQgc3VuLm1pc2MuU2VydmljZS5hY2Nlc3MkMjAwKFVua25vd24gU291cmNlKQoJYXQg
c3VuLm1pc2MuU2VydmljZSRMYXp5SXRlcmF0b3IubmV4dChVbmtub3duIFNvdXJjZSkKCWF0IG9y
Zy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihGYWN0b3J5UmVnaXN0
cnkuamF2YTo4MjkpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuc2Nh
bkZvclBsdWdpbnMoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NzczKQoJYXQgb3JnLmdlb3Rvb2xzLmZh
Y3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LnNjYW5Gb3JQbHVnaW5zSWZOZWVkZWQoRmFjdG9yeVJlZ2lz
dHJ5LmphdmE6ODA4KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5Lmdl
dFNlcnZpY2VQcm92aWRlcnMoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6MTk1KQoJYXQgb3JnLmdlb3Rv
b2xzLnJlZmVyZW5jaW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRGYWN0b3JpZXMoUmVm
ZXJlbmNpbmdGYWN0b3J5RmluZGVyLmphdmE6MTc2KQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5j
aW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRDUlNBdXRob3JpdHlGYWN0b3JpZXMoUmVm
ZXJlbmNpbmdGYWN0b3J5RmluZGVyLmphdmE6NDUxKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5j
aW5nLkRlZmF1bHRBdXRob3JpdHlGYWN0b3J5LmdldEJhY2tpbmdGYWN0b3J5KERlZmF1bHRBdXRo
b3JpdHlGYWN0b3J5LmphdmE6ODgpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuRGVmYXVs
dEF1dGhvcml0eUZhY3RvcnkuPGluaXQ+KERlZmF1bHRBdXRob3JpdHlGYWN0b3J5LmphdmE6Njkp
CglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuQ1JTLmdldEF1dGhvcml0eUZhY3RvcnkoQ1JT
LmphdmE6MTgyKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLkNSUy5kZWNvZGUoQ1JTLmph
dmE6NDIwKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLkNSUy5kZWNvZGUoQ1JTLmphdmE6
MzQ4KQoJYXQgbmV0LnJlZnJhY3Rpb25zLnVkaWcubGlicy5pbnRlcm5hbC5BY3RpdmF0b3Iuc3Rh
cnQoQWN0aXZhdG9yLmphdmE6NTkpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRl
cm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsJDIucnVuKEJ1bmRsZUNvbnRleHRJbXBsLmphdmE6
MTAwOSkKCWF0IGphdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0
aXZlIE1ldGhvZCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUu
QnVuZGxlQ29udGV4dEltcGwuc3RhcnRBY3RpdmF0b3IoQnVuZGxlQ29udGV4dEltcGwuamF2YTox
MDAzKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVD
b250ZXh0SW1wbC5zdGFydChCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjk4NCkKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdvcmtlcihC
dW5kbGVIb3N0LmphdmE6MzQ2KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5BYnN0cmFjdEJ1bmRsZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2NSkKCWF0
IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0KFNlY3Vy
ZUFjdGlvbi5qYXZhOjQwMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5h
ZGFwdG9yLkVjbGlwc2VMYXp5U3RhcnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBzZUxhenlT
dGFydGVyLmphdmE6MTExKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5sb2FkZXIu
Q2xhc3NwYXRoTWFuYWdlci5maW5kTG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmphdmE6NDI3
KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NM
b2FkZXIuZmluZExvY2FsQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZExv
Y2FsQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFt
ZXdvcmsuaW50ZXJuYWwuY29yZS5TaW5nbGVTb3VyY2VQYWNrYWdlLmxvYWRDbGFzcyhTaW5nbGVT
b3VyY2VQYWNrYWdlLmphdmE6MzMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRl
cm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3NJbnRlcm5hbChCdW5kbGVMb2FkZXIuamF2
YTo0NDEpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRs
ZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzk3KQoJYXQgb3JnLmVjbGlwc2Uu
b3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRs
ZUxvYWRlci5qYXZhOjM4NSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0
b3IuRGVmYXVsdENsYXNzTG9hZGVyLmxvYWRDbGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2YTo4
NykKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5sb2FkQ2xhc3MoVW5rbm93biBTb3VyY2UpCglh
dCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzSW50ZXJuYWwoVW5rbm93biBTb3VyY2Up
CglhdCBqYXZhLmxhbmcuQ2xhc3MuZ2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMwKE5hdGl2ZSBNZXRo
b2QpCglhdCBqYXZhLmxhbmcuQ2xhc3MucHJpdmF0ZUdldERlY2xhcmVkQ29uc3RydWN0b3JzKFVu
a25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldENvbnN0cnVjdG9yMChVbmtub3du
IFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZTAoVW5rbm93biBTb3VyY2Up
CglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglhdCBvcmcu
ZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLmxvYWRC
dW5kbGVBY3RpdmF0b3IoQWJzdHJhY3RCdW5kbGUuamF2YToxNDEpCglhdCBvcmcuZWNsaXBzZS5v
c2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0KEJ1bmRs
ZUNvbnRleHRJbXBsLmphdmE6OTgwKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50
ZXJuYWwuY29yZS5CdW5kbGVIb3N0LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YTozNDYpCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxl
LnN0YXJ0KEFic3RyYWN0QnVuZGxlLmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFt
ZXdvcmsudXRpbC5TZWN1cmVBY3Rpb24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAwKQoJYXQg
b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxhenlTdGFy
dGVyLnBvc3RGaW5kTG9jYWxDbGFzcyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEpCglhdCBv
cmcuZWNsaXBzZS5vc2dpLmJhc2VhZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2VyLmZpbmRM
b2NhbENsYXNzKENsYXNzcGF0aE1hbmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBzZS5vc2dp
LmludGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxDbGFzcyhE
ZWZhdWx0Q2xhc3NMb2FkZXIuamF2YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29y
ay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVMb2FkZXIu
amF2YTozNjgpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLlNp
bmdsZVNvdXJjZVBhY2thZ2UubG9hZENsYXNzKFNpbmdsZVNvdXJjZVBhY2thZ2UuamF2YTozMykK
CWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVy
LmZpbmRDbGFzc0ludGVybmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0MSkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5k
bGVMb2FkZXIuamF2YTozOTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5h
bC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJYXQg
b3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIu
bG9hZENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNz
TG9hZGVyLmxvYWRDbGFzcyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRl
ci5sb2FkQ2xhc3NJbnRlcm5hbChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5n
ZXREZWNsYXJlZENvbnN0cnVjdG9yczAoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5DbGFz
cy5wcml2YXRlR2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMoVW5rbm93biBTb3VyY2UpCglhdCBqYXZh
LmxhbmcuQ2xhc3MuZ2V0Q29uc3RydWN0b3IwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5n
LkNsYXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5u
ZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3Jr
LmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUubG9hZEJ1bmRsZUFjdGl2YXRvcihBYnN0cmFj
dEJ1bmRsZS5qYXZhOjE0MSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFs
LmNvcmUuQnVuZGxlQ29udGV4dEltcGwuc3RhcnQoQnVuZGxlQ29udGV4dEltcGwuamF2YTo5ODAp
CglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhvc3Qu
c3RhcnRXb3JrZXIoQnVuZGxlSG9zdC5qYXZhOjM0NikKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJh
bWV3b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUuc3RhcnQoQWJzdHJhY3RCdW5kbGUu
amF2YToyNjUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay51dGlsLlNlY3VyZUFjdGlv
bi5zdGFydChTZWN1cmVBY3Rpb24uamF2YTo0MDApCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRp
bWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlTGF6eVN0YXJ0ZXIucG9zdEZpbmRMb2NhbENsYXNz
KEVjbGlwc2VMYXp5U3RhcnRlci5qYXZhOjExMSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuYmFzZWFk
YXB0b3IubG9hZGVyLkNsYXNzcGF0aE1hbmFnZXIuZmluZExvY2FsQ2xhc3MoQ2xhc3NwYXRoTWFu
YWdlci5qYXZhOjQyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3Iu
RGVmYXVsdENsYXNzTG9hZGVyLmZpbmRMb2NhbENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZh
OjE5MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxl
TG9hZGVyLmZpbmRMb2NhbENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM2OCkKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzc0lu
dGVybmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0NCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3
b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5kbGVMb2FkZXIuamF2
YTozOTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRs
ZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJYXQgb3JnLmVjbGlwc2Uu
b3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIubG9hZENsYXNzKERl
ZmF1bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRD
bGFzcyhVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVy
bmFsLmNvcmUuQnVuZGxlTG9hZGVyLmxvYWRDbGFzcyhCdW5kbGVMb2FkZXIuamF2YTozMTMpCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhvc3QubG9h
ZENsYXNzKEJ1bmRsZUhvc3QuamF2YToyMjcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29y
ay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLmxvYWRDbGFzcyhBYnN0cmFjdEJ1bmRsZS5q
YXZhOjEyNzQpCglhdCBvcmcuZWNsaXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5Lm9zZ2kuUmVn
aXN0cnlTdHJhdGVneU9TR0kuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihSZWdpc3RyeVN0cmF0
ZWd5T1NHSS5qYXZhOjE2MCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnku
RXh0ZW5zaW9uUmVnaXN0cnkuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihFeHRlbnNpb25SZWdp
c3RyeS5qYXZhOjg2NykKCWF0IG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnkuQ29u
ZmlndXJhdGlvbkVsZW1lbnQuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihDb25maWd1cmF0aW9u
RWxlbWVudC5qYXZhOjI0MykKCWF0IG9yZy5lY2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnku
Q29uZmlndXJhdGlvbkVsZW1lbnRIYW5kbGUuY3JlYXRlRXhlY3V0YWJsZUV4dGVuc2lvbihDb25m
aWd1cmF0aW9uRWxlbWVudEhhbmRsZS5qYXZhOjUxKQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5p
bnRlcm5hbC5hcHAuRWNsaXBzZUFwcEhhbmRsZS5ydW4oRWNsaXBzZUFwcEhhbmRsZS5qYXZhOjE4
OCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VB
cHBMYXVuY2hlci5ydW5BcHBsaWNhdGlvbihFY2xpcHNlQXBwTGF1bmNoZXIuamF2YToxMTApCglh
dCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlQXBwTGF1
bmNoZXIuc3RhcnQoRWNsaXBzZUFwcExhdW5jaGVyLmphdmE6NzkpCglhdCBvcmcuZWNsaXBzZS5j
b3JlLnJ1bnRpbWUuYWRhcHRvci5FY2xpcHNlU3RhcnRlci5ydW4oRWNsaXBzZVN0YXJ0ZXIuamF2
YTozODYpCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuYWRhcHRvci5FY2xpcHNlU3RhcnRl
ci5ydW4oRWNsaXBzZVN0YXJ0ZXIuamF2YToxNzkpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRo
b2RBY2Nlc3NvckltcGwuaW52b2tlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLnJlZmxlY3QuTmF0
aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZShVbmtub3duIFNvdXJjZSkKCWF0IHN1bi5yZWZs
ZWN0LkRlbGVnYXRpbmdNZXRob2RBY2Nlc3NvckltcGwuaW52b2tlKFVua25vd24gU291cmNlKQoJ
YXQgamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZShVbmtub3duIFNvdXJjZSkKCWF0IG9y
Zy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5pbnZva2VGcmFtZXdvcmsoTWFpbi5qYXZh
OjU0OSkKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5iYXNpY1J1bihNYWlu
LmphdmE6NTA0KQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5sYXVuY2hlci5NYWluLnJ1bihNYWlu
LmphdmE6MTIzNikKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3gubGF1bmNoZXIuTWFpbi5tYWluKE1h
aW4uamF2YToxMjEyKQpDYXVzZWQgYnk6IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlOb3RG
b3VuZEV4Y2VwdGlvbjogTm8gZmFjdG9yeSBvZiBraW5kICJNYXRoVHJhbnNmb3JtRmFjdG9yeSIg
Zm91bmQuCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0U2Vydmlj
ZVByb3ZpZGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjM3NCkKCWF0IG9yZy5nZW90b29scy5mYWN0
b3J5LkZhY3RvcnlDcmVhdG9yLmdldFNlcnZpY2VQcm92aWRlcihGYWN0b3J5Q3JlYXRvci5qYXZh
OjE0MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5SZWZlcmVuY2luZ0ZhY3RvcnlGaW5k
ZXIuZ2V0RmFjdG9yeShSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuamF2YToxOTMpCglhdCBvcmcu
Z2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNpbmdGYWN0b3J5RmluZGVyLmdldE1hdGhUcmFu
c2Zvcm1GYWN0b3J5KFJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5qYXZhOjUwMykKCWF0IG9yZy5n
ZW90b29scy5yZWZlcmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5n
ZXRNYXRoVHJhbnNmb3JtRmFjdG9yeShSZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuamF2YToy
NzMpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3Rv
cnlDb250YWluZXIuaW5pdGlhbGl6ZShSZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuamF2YTox
ODApCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3Rv
cnlDb250YWluZXIuZ2V0SW1wbGVtZW50YXRpb25IaW50cyhSZWZlcmVuY2luZ0ZhY3RvcnlDb250
YWluZXIuamF2YToyMDUpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnku
dXNlc0FjY2VwdGFibGVIaW50cyhGYWN0b3J5UmVnaXN0cnkuamF2YTo1NTEpCglhdCBvcmcuZ2Vv
dG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuaXNBY2NlcHRhYmxlKEZhY3RvcnlSZWdpc3Ry
eS5qYXZhOjUwNSkKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRT
ZXJ2aWNlSW1wbGVtZW50YXRpb24oRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NDM2KQoJYXQgb3JnLmdl
b3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZpY2VQcm92aWRlcihGYWN0b3J5
UmVnaXN0cnkuamF2YTozNjQpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5Q3JlYXRv
ci5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeUNyZWF0b3IuamF2YToxNDMpCglhdCBvcmcuZ2Vv
dG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5SZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuaW5z
dGFuY2UoUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6MTcwKQoJYXQgb3JnLmdlb3Rv
b2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuZXBzZy5UaHJlYWRlZEVwc2dGYWN0b3J5Ljxpbml0PihU
aHJlYWRlZEVwc2dGYWN0b3J5LmphdmE6MTkzKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5n
LmZhY3RvcnkuZXBzZy5UaHJlYWRlZEhzcWxFcHNnRmFjdG9yeS48aW5pdD4oVGhyZWFkZWRIc3Fs
RXBzZ0ZhY3RvcnkuamF2YToxMzIpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9y
eS5lcHNnLlRocmVhZGVkSHNxbEVwc2dGYWN0b3J5Ljxpbml0PihUaHJlYWRlZEhzcWxFcHNnRmFj
dG9yeS5qYXZhOjExOCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZUNvbnN0cnVjdG9yQWNjZXNzb3JJ
bXBsLm5ld0luc3RhbmNlMChOYXRpdmUgTWV0aG9kKQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlQ29u
c3RydWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglhdCBzdW4u
cmVmbGVjdC5EZWxlZ2F0aW5nQ29uc3RydWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2UoVW5r
bm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5Db25zdHJ1Y3Rvci5uZXdJbnN0YW5j
ZShVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZTAoVW5rbm93
biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2Up
CgkuLi4gOTEgbW9yZQpKdW4gMywgMjAwOSAxOjAwOjA3IFBNIG9yZy5nZW90b29scy5mYWN0b3J5
LkZhY3RvcnlSZWdpc3RyeSBzY2FuRm9yUGx1Z2lucwpXQVJOSU5HOiBDYW4ndCBsb2FkIGEgc2Vy
dmljZSBmb3IgY2F0ZWdvcnkgIkNSU0F1dGhvcml0eUZhY3RvcnkiLiBDYXVzZSBpcyAiU2Vydmlj
ZUNvbmZpZ3VyYXRpb25FcnJvcjogb3JnLm9wZW5naXMucmVmZXJlbmNpbmcuY3JzLkNSU0F1dGhv
cml0eUZhY3Rvcnk6IFByb3ZpZGVyIG9yZyAoLi4uKSBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0
b3J5Tm90Rm91bmRFeGNlcHRpb246IE5vIGZhY3Rvcnkgb2Yga2luZCAiTWF0aFRyYW5zZm9ybUZh
Y3RvcnkiIGZvdW5kLiIuCnN1bi5taXNjLlNlcnZpY2VDb25maWd1cmF0aW9uRXJyb3I6IG9yZy5v
cGVuZ2lzLnJlZmVyZW5jaW5nLmNycy5DUlNBdXRob3JpdHlGYWN0b3J5OiBQcm92aWRlciBvcmcu
Z2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5lcHNnLkRlZmF1bHRGYWN0b3J5IGNvdWxkIG5v
dCBiZSBpbnN0YW50aWF0ZWQ6IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlOb3RGb3VuZEV4
Y2VwdGlvbjogTm8gZmFjdG9yeSBvZiBraW5kICJNYXRoVHJhbnNmb3JtRmFjdG9yeSIgZm91bmQu
CglhdCBzdW4ubWlzYy5TZXJ2aWNlLmZhaWwoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ubWlzYy5T
ZXJ2aWNlLmFjY2VzcyQyMDAoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ubWlzYy5TZXJ2aWNlJExh
enlJdGVyYXRvci5uZXh0KFVua25vd24gU291cmNlKQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3Rvcnku
RmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjgyOSkKCWF0IG9y
Zy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5zY2FuRm9yUGx1Z2lucyhGYWN0b3J5
UmVnaXN0cnkuamF2YTo3NzMpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0
cnkuc2NhbkZvclBsdWdpbnNJZk5lZWRlZChGYWN0b3J5UmVnaXN0cnkuamF2YTo4MDgpCglhdCBv
cmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0U2VydmljZVByb3ZpZGVycyhG
YWN0b3J5UmVnaXN0cnkuamF2YToxOTUpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVm
ZXJlbmNpbmdGYWN0b3J5RmluZGVyLmdldEZhY3RvcmllcyhSZWZlcmVuY2luZ0ZhY3RvcnlGaW5k
ZXIuamF2YToxNzYpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNpbmdGYWN0
b3J5RmluZGVyLmdldENSU0F1dGhvcml0eUZhY3RvcmllcyhSZWZlcmVuY2luZ0ZhY3RvcnlGaW5k
ZXIuamF2YTo0NTEpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuRGVmYXVsdEF1dGhvcml0
eUZhY3RvcnkuZ2V0QmFja2luZ0ZhY3RvcnkoRGVmYXVsdEF1dGhvcml0eUZhY3RvcnkuamF2YTo4
OCkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5EZWZhdWx0QXV0aG9yaXR5RmFjdG9yeS48
aW5pdD4oRGVmYXVsdEF1dGhvcml0eUZhY3RvcnkuamF2YTo2OSkKCWF0IG9yZy5nZW90b29scy5y
ZWZlcmVuY2luZy5DUlMuZ2V0QXV0aG9yaXR5RmFjdG9yeShDUlMuamF2YToxODIpCglhdCBvcmcu
Z2VvdG9vbHMucmVmZXJlbmNpbmcuQ1JTLmRlY29kZShDUlMuamF2YTo0MjApCglhdCBvcmcuZ2Vv
dG9vbHMucmVmZXJlbmNpbmcuQ1JTLmRlY29kZShDUlMuamF2YTozNDgpCglhdCBuZXQucmVmcmFj
dGlvbnMudWRpZy5saWJzLmludGVybmFsLkFjdGl2YXRvci5zdGFydChBY3RpdmF0b3IuamF2YTo1
OSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlQ29u
dGV4dEltcGwkMi5ydW4oQnVuZGxlQ29udGV4dEltcGwuamF2YToxMDA5KQoJYXQgamF2YS5zZWN1
cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1wbC5z
dGFydEFjdGl2YXRvcihCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjEwMDMpCglhdCBvcmcuZWNsaXBz
ZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0KEJ1
bmRsZUNvbnRleHRJbXBsLmphdmE6OTg0KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsu
aW50ZXJuYWwuY29yZS5CdW5kbGVIb3N0LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YTozNDYp
CglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVu
ZGxlLnN0YXJ0KEFic3RyYWN0QnVuZGxlLmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5m
cmFtZXdvcmsudXRpbC5TZWN1cmVBY3Rpb24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAwKQoJ
YXQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxhenlT
dGFydGVyLnBvc3RGaW5kTG9jYWxDbGFzcyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEpCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmJhc2VhZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2VyLmZp
bmRMb2NhbENsYXNzKENsYXNzcGF0aE1hbmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBzZS5v
c2dpLmludGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxDbGFz
cyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1l
d29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVMb2Fk
ZXIuamF2YTozNjgpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3Jl
LlNpbmdsZVNvdXJjZVBhY2thZ2UubG9hZENsYXNzKFNpbmdsZVNvdXJjZVBhY2thZ2UuamF2YToz
MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9h
ZGVyLmZpbmRDbGFzc0ludGVybmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0MSkKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhC
dW5kbGVMb2FkZXIuamF2YTozOTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRl
cm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2Fk
ZXIubG9hZENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNs
YXNzTG9hZGVyLmxvYWRDbGFzcyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzc0xv
YWRlci5sb2FkQ2xhc3NJbnRlcm5hbChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFz
cy5nZXREZWNsYXJlZENvbnN0cnVjdG9yczAoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5D
bGFzcy5wcml2YXRlR2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMoVW5rbm93biBTb3VyY2UpCglhdCBq
YXZhLmxhbmcuQ2xhc3MuZ2V0Q29uc3RydWN0b3IwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5s
YW5nLkNsYXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFz
cy5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3
b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUubG9hZEJ1bmRsZUFjdGl2YXRvcihBYnN0
cmFjdEJ1bmRsZS5qYXZhOjE0MSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVy
bmFsLmNvcmUuQnVuZGxlQ29udGV4dEltcGwuc3RhcnQoQnVuZGxlQ29udGV4dEltcGwuamF2YTo5
ODApCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhv
c3Quc3RhcnRXb3JrZXIoQnVuZGxlSG9zdC5qYXZhOjM0NikKCWF0IG9yZy5lY2xpcHNlLm9zZ2ku
ZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUuc3RhcnQoQWJzdHJhY3RCdW5k
bGUuamF2YToyNjUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay51dGlsLlNlY3VyZUFj
dGlvbi5zdGFydChTZWN1cmVBY3Rpb24uamF2YTo0MDApCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1
bnRpbWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlTGF6eVN0YXJ0ZXIucG9zdEZpbmRMb2NhbENs
YXNzKEVjbGlwc2VMYXp5U3RhcnRlci5qYXZhOjExMSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuYmFz
ZWFkYXB0b3IubG9hZGVyLkNsYXNzcGF0aE1hbmFnZXIuZmluZExvY2FsQ2xhc3MoQ2xhc3NwYXRo
TWFuYWdlci5qYXZhOjQyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0
b3IuRGVmYXVsdENsYXNzTG9hZGVyLmZpbmRMb2NhbENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5q
YXZhOjE5MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVu
ZGxlTG9hZGVyLmZpbmRMb2NhbENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM2OCkKCWF0IG9yZy5l
Y2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuU2luZ2xlU291cmNlUGFja2FnZS5s
b2FkQ2xhc3MoU2luZ2xlU291cmNlUGFja2FnZS5qYXZhOjMzKQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzSW50ZXJuYWwo
QnVuZGxlTG9hZGVyLmphdmE6NDQxKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50
ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM5NykK
CWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVy
LmZpbmRDbGFzcyhCdW5kbGVMb2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmlu
dGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xhc3MoRGVmYXVsdENs
YXNzTG9hZGVyLmphdmE6ODcpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKFVu
a25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRDbGFzc0ludGVybmFs
KFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldERlY2xhcmVkQ29uc3RydWN0
b3JzMChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLkNsYXNzLnByaXZhdGVHZXREZWNsYXJl
ZENvbnN0cnVjdG9ycyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5nZXRDb25z
dHJ1Y3RvcjAoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2Uw
KFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25vd24g
U291cmNlKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0
cmFjdEJ1bmRsZS5sb2FkQnVuZGxlQWN0aXZhdG9yKEFic3RyYWN0QnVuZGxlLmphdmE6MTQxKQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0
SW1wbC5zdGFydChCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjk4MCkKCWF0IG9yZy5lY2xpcHNlLm9z
Z2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdvcmtlcihCdW5kbGVI
b3N0LmphdmE6MzQ2KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29y
ZS5BYnN0cmFjdEJ1bmRsZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2NSkKCWF0IG9yZy5l
Y2xpcHNlLm9zZ2kuZnJhbWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0KFNlY3VyZUFjdGlv
bi5qYXZhOjQwMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9y
LkVjbGlwc2VMYXp5U3RhcnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBzZUxhenlTdGFydGVy
LmphdmE6MTExKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5sb2FkZXIuQ2xhc3Nw
YXRoTWFuYWdlci5maW5kTG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmphdmE6NDI3KQoJYXQg
b3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIu
ZmluZExvY2FsQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJYXQgb3JnLmVjbGlw
c2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZExvY2FsQ2xh
c3MoQnVuZGxlTG9hZGVyLmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsu
aW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzSW50ZXJuYWwoQnVuZGxlTG9hZGVy
LmphdmE6NDQ0KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5C
dW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM5NykKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhC
dW5kbGVMb2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmludGVybmFsLmJhc2Vh
ZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmph
dmE6ODcpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKFVua25vd24gU291cmNl
KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2Fk
ZXIubG9hZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjMxMykKCWF0IG9yZy5lY2xpcHNlLm9zZ2ku
ZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5sb2FkQ2xhc3MoQnVuZGxlSG9zdC5q
YXZhOjIyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQWJz
dHJhY3RCdW5kbGUubG9hZENsYXNzKEFic3RyYWN0QnVuZGxlLmphdmE6MTI3NCkKCWF0IG9yZy5l
Y2xpcHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnkub3NnaS5SZWdpc3RyeVN0cmF0ZWd5T1NHSS5j
cmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKFJlZ2lzdHJ5U3RyYXRlZ3lPU0dJLmphdmE6MTYwKQoJ
YXQgb3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5FeHRlbnNpb25SZWdpc3RyeS5j
cmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKEV4dGVuc2lvblJlZ2lzdHJ5LmphdmE6ODY3KQoJYXQg
b3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5Db25maWd1cmF0aW9uRWxlbWVudC5j
cmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKENvbmZpZ3VyYXRpb25FbGVtZW50LmphdmE6MjQzKQoJ
YXQgb3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5Db25maWd1cmF0aW9uRWxlbWVu
dEhhbmRsZS5jcmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKENvbmZpZ3VyYXRpb25FbGVtZW50SGFu
ZGxlLmphdmE6NTEpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94LmludGVybmFsLmFwcC5FY2xpcHNl
QXBwSGFuZGxlLnJ1bihFY2xpcHNlQXBwSGFuZGxlLmphdmE6MTg4KQoJYXQgb3JnLmVjbGlwc2Uu
Y29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUFwcExhdW5jaGVyLnJ1bkFwcGxp
Y2F0aW9uKEVjbGlwc2VBcHBMYXVuY2hlci5qYXZhOjExMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUu
cnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VBcHBMYXVuY2hlci5zdGFydChFY2xpcHNl
QXBwTGF1bmNoZXIuamF2YTo3OSkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5hZGFwdG9y
LkVjbGlwc2VTdGFydGVyLnJ1bihFY2xpcHNlU3RhcnRlci5qYXZhOjM4NikKCWF0IG9yZy5lY2xp
cHNlLmNvcmUucnVudGltZS5hZGFwdG9yLkVjbGlwc2VTdGFydGVyLnJ1bihFY2xpcHNlU3RhcnRl
ci5qYXZhOjE3OSkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZv
a2UwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3Nvcklt
cGwuaW52b2tlKFVua25vd24gU291cmNlKQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhv
ZEFjY2Vzc29ySW1wbC5pbnZva2UoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcucmVmbGVj
dC5NZXRob2QuaW52b2tlKFVua25vd24gU291cmNlKQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5s
YXVuY2hlci5NYWluLmludm9rZUZyYW1ld29yayhNYWluLmphdmE6NTQ5KQoJYXQgb3JnLmVjbGlw
c2UuZXF1aW5veC5sYXVuY2hlci5NYWluLmJhc2ljUnVuKE1haW4uamF2YTo1MDQpCglhdCBvcmcu
ZWNsaXBzZS5lcXVpbm94LmxhdW5jaGVyLk1haW4ucnVuKE1haW4uamF2YToxMjM2KQoJYXQgb3Jn
LmVjbGlwc2UuZXF1aW5veC5sYXVuY2hlci5NYWluLm1haW4oTWFpbi5qYXZhOjEyMTIpCkNhdXNl
ZCBieTogb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOiBObyBm
YWN0b3J5IG9mIGtpbmQgIk1hdGhUcmFuc2Zvcm1GYWN0b3J5IiBmb3VuZC4KCWF0IG9yZy5nZW90
b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeVJl
Z2lzdHJ5LmphdmE6Mzc0KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeUNyZWF0b3Iu
Z2V0U2VydmljZVByb3ZpZGVyKEZhY3RvcnlDcmVhdG9yLmphdmE6MTQzKQoJYXQgb3JnLmdlb3Rv
b2xzLnJlZmVyZW5jaW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRGYWN0b3J5KFJlZmVy
ZW5jaW5nRmFjdG9yeUZpbmRlci5qYXZhOjE5MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2lu
Zy5SZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuZ2V0TWF0aFRyYW5zZm9ybUZhY3RvcnkoUmVmZXJl
bmNpbmdGYWN0b3J5RmluZGVyLmphdmE6NTAzKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5n
LmZhY3RvcnkuUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmdldE1hdGhUcmFuc2Zvcm1GYWN0
b3J5KFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjI3MykKCWF0IG9yZy5nZW90b29s
cy5yZWZlcmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5pbml0aWFs
aXplKFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjE4MCkKCWF0IG9yZy5nZW90b29s
cy5yZWZlcmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5nZXRJbXBs
ZW1lbnRhdGlvbkhpbnRzKFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjIwNSkKCWF0
IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS51c2VzQWNjZXB0YWJsZUhpbnRz
KEZhY3RvcnlSZWdpc3RyeS5qYXZhOjU1MSkKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3Rv
cnlSZWdpc3RyeS5pc0FjY2VwdGFibGUoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NTA1KQoJYXQgb3Jn
Lmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZpY2VJbXBsZW1lbnRhdGlv
bihGYWN0b3J5UmVnaXN0cnkuamF2YTo0MzYpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0
b3J5UmVnaXN0cnkuZ2V0U2VydmljZVByb3ZpZGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjM2NCkK
CWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlDcmVhdG9yLmdldFNlcnZpY2VQcm92aWRl
cihGYWN0b3J5Q3JlYXRvci5qYXZhOjE0MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5m
YWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5pbnN0YW5jZShSZWZlcmVuY2luZ0Zh
Y3RvcnlDb250YWluZXIuamF2YToxNzApCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFj
dG9yeS5lcHNnLlRocmVhZGVkRXBzZ0ZhY3RvcnkuPGluaXQ+KFRocmVhZGVkRXBzZ0ZhY3Rvcnku
amF2YToxOTMpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5lcHNnLlRocmVh
ZGVkRXBzZ0ZhY3RvcnkuPGluaXQ+KFRocmVhZGVkRXBzZ0ZhY3RvcnkuamF2YToxNTUpCglhdCBv
cmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5lcHNnLlRocmVhZGVkRXBzZ0ZhY3Rvcnku
PGluaXQ+KFRocmVhZGVkRXBzZ0ZhY3RvcnkuamF2YToxNDgpCglhdCBvcmcuZ2VvdG9vbHMucmVm
ZXJlbmNpbmcuZmFjdG9yeS5lcHNnLkRlZmF1bHRGYWN0b3J5Ljxpbml0PihEZWZhdWx0RmFjdG9y
eS5qYXZhOjM3KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlQ29uc3RydWN0b3JBY2Nlc3NvckltcGwu
bmV3SW5zdGFuY2UwKE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVDb25zdHJ1
Y3RvckFjY2Vzc29ySW1wbC5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IHN1bi5yZWZs
ZWN0LkRlbGVnYXRpbmdDb25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5uZXdJbnN0YW5jZShVbmtub3du
IFNvdXJjZSkKCWF0IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yLm5ld0luc3RhbmNlKFVu
a25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNv
dXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCS4u
LiA5MSBtb3JlCkp1biAzLCAyMDA5IDE6MDA6MDcgUE0gb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFj
dG9yeVJlZ2lzdHJ5IHNjYW5Gb3JQbHVnaW5zCldBUk5JTkc6IENhbid0IGxvYWQgYSBzZXJ2aWNl
IGZvciBjYXRlZ29yeSAiQ1JTQXV0aG9yaXR5RmFjdG9yeSIuIENhdXNlIGlzICJTZXJ2aWNlQ29u
ZmlndXJhdGlvbkVycm9yOiBvcmcub3Blbmdpcy5yZWZlcmVuY2luZy5jcnMuQ1JTQXV0aG9yaXR5
RmFjdG9yeTogUHJvdmlkZXIgb3JnICguLi4pIG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlO
b3RGb3VuZEV4Y2VwdGlvbjogTm8gZmFjdG9yeSBvZiBraW5kICJNYXRoVHJhbnNmb3JtRmFjdG9y
eSIgZm91bmQuIi4Kc3VuLm1pc2MuU2VydmljZUNvbmZpZ3VyYXRpb25FcnJvcjogb3JnLm9wZW5n
aXMucmVmZXJlbmNpbmcuY3JzLkNSU0F1dGhvcml0eUZhY3Rvcnk6IFByb3ZpZGVyIG9yZy5nZW90
b29scy5yZWZlcmVuY2luZy5mYWN0b3J5LmVwc2cuRmFjdG9yeVVzaW5nV0tUIGNvdWxkIG5vdCBi
ZSBpbnN0YW50aWF0ZWQ6IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlOb3RGb3VuZEV4Y2Vw
dGlvbjogTm8gZmFjdG9yeSBvZiBraW5kICJNYXRoVHJhbnNmb3JtRmFjdG9yeSIgZm91bmQuCglh
dCBzdW4ubWlzYy5TZXJ2aWNlLmZhaWwoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ubWlzYy5TZXJ2
aWNlLmFjY2VzcyQyMDAoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ubWlzYy5TZXJ2aWNlJExhenlJ
dGVyYXRvci5uZXh0KFVua25vd24gU291cmNlKQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFj
dG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjgyOSkKCWF0IG9yZy5n
ZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5zY2FuRm9yUGx1Z2lucyhGYWN0b3J5UmVn
aXN0cnkuamF2YTo3NzMpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnku
c2NhbkZvclBsdWdpbnNJZk5lZWRlZChGYWN0b3J5UmVnaXN0cnkuamF2YTo4MDgpCglhdCBvcmcu
Z2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0U2VydmljZVByb3ZpZGVycyhGYWN0
b3J5UmVnaXN0cnkuamF2YToxOTUpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJl
bmNpbmdGYWN0b3J5RmluZGVyLmdldEZhY3RvcmllcyhSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIu
amF2YToxNzYpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNpbmdGYWN0b3J5
RmluZGVyLmdldENSU0F1dGhvcml0eUZhY3RvcmllcyhSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIu
amF2YTo0NTEpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuRGVmYXVsdEF1dGhvcml0eUZh
Y3RvcnkuZ2V0QmFja2luZ0ZhY3RvcnkoRGVmYXVsdEF1dGhvcml0eUZhY3RvcnkuamF2YTo4OCkK
CWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5EZWZhdWx0QXV0aG9yaXR5RmFjdG9yeS48aW5p
dD4oRGVmYXVsdEF1dGhvcml0eUZhY3RvcnkuamF2YTo2OSkKCWF0IG9yZy5nZW90b29scy5yZWZl
cmVuY2luZy5DUlMuZ2V0QXV0aG9yaXR5RmFjdG9yeShDUlMuamF2YToxODIpCglhdCBvcmcuZ2Vv
dG9vbHMucmVmZXJlbmNpbmcuQ1JTLmRlY29kZShDUlMuamF2YTo0MjApCglhdCBvcmcuZ2VvdG9v
bHMucmVmZXJlbmNpbmcuQ1JTLmRlY29kZShDUlMuamF2YTozNDgpCglhdCBuZXQucmVmcmFjdGlv
bnMudWRpZy5saWJzLmludGVybmFsLkFjdGl2YXRvci5zdGFydChBY3RpdmF0b3IuamF2YTo1OSkK
CWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlQ29udGV4
dEltcGwkMi5ydW4oQnVuZGxlQ29udGV4dEltcGwuamF2YToxMDA5KQoJYXQgamF2YS5zZWN1cml0
eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgb3JnLmVj
bGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1wbC5zdGFy
dEFjdGl2YXRvcihCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjEwMDMpCglhdCBvcmcuZWNsaXBzZS5v
c2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0KEJ1bmRs
ZUNvbnRleHRJbXBsLmphdmE6OTg0KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50
ZXJuYWwuY29yZS5CdW5kbGVIb3N0LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YTozNDYpCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxl
LnN0YXJ0KEFic3RyYWN0QnVuZGxlLmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFt
ZXdvcmsudXRpbC5TZWN1cmVBY3Rpb24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAwKQoJYXQg
b3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxhenlTdGFy
dGVyLnBvc3RGaW5kTG9jYWxDbGFzcyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEpCglhdCBv
cmcuZWNsaXBzZS5vc2dpLmJhc2VhZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2VyLmZpbmRM
b2NhbENsYXNzKENsYXNzcGF0aE1hbmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBzZS5vc2dp
LmludGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxDbGFzcyhE
ZWZhdWx0Q2xhc3NMb2FkZXIuamF2YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29y
ay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVMb2FkZXIu
amF2YTozNjgpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLlNp
bmdsZVNvdXJjZVBhY2thZ2UubG9hZENsYXNzKFNpbmdsZVNvdXJjZVBhY2thZ2UuamF2YTozMykK
CWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVy
LmZpbmRDbGFzc0ludGVybmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0MSkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5k
bGVMb2FkZXIuamF2YTozOTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5h
bC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJYXQg
b3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIu
bG9hZENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNz
TG9hZGVyLmxvYWRDbGFzcyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRl
ci5sb2FkQ2xhc3NJbnRlcm5hbChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5n
ZXREZWNsYXJlZENvbnN0cnVjdG9yczAoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5DbGFz
cy5wcml2YXRlR2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMoVW5rbm93biBTb3VyY2UpCglhdCBqYXZh
LmxhbmcuQ2xhc3MuZ2V0Q29uc3RydWN0b3IwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5n
LkNsYXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5u
ZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3Jr
LmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUubG9hZEJ1bmRsZUFjdGl2YXRvcihBYnN0cmFj
dEJ1bmRsZS5qYXZhOjE0MSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFs
LmNvcmUuQnVuZGxlQ29udGV4dEltcGwuc3RhcnQoQnVuZGxlQ29udGV4dEltcGwuamF2YTo5ODAp
CglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhvc3Qu
c3RhcnRXb3JrZXIoQnVuZGxlSG9zdC5qYXZhOjM0NikKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJh
bWV3b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUuc3RhcnQoQWJzdHJhY3RCdW5kbGUu
amF2YToyNjUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay51dGlsLlNlY3VyZUFjdGlv
bi5zdGFydChTZWN1cmVBY3Rpb24uamF2YTo0MDApCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRp
bWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlTGF6eVN0YXJ0ZXIucG9zdEZpbmRMb2NhbENsYXNz
KEVjbGlwc2VMYXp5U3RhcnRlci5qYXZhOjExMSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuYmFzZWFk
YXB0b3IubG9hZGVyLkNsYXNzcGF0aE1hbmFnZXIuZmluZExvY2FsQ2xhc3MoQ2xhc3NwYXRoTWFu
YWdlci5qYXZhOjQyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3Iu
RGVmYXVsdENsYXNzTG9hZGVyLmZpbmRMb2NhbENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZh
OjE5MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxl
TG9hZGVyLmZpbmRMb2NhbENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM2OCkKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuU2luZ2xlU291cmNlUGFja2FnZS5sb2Fk
Q2xhc3MoU2luZ2xlU291cmNlUGFja2FnZS5qYXZhOjMzKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5m
cmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzSW50ZXJuYWwoQnVu
ZGxlTG9hZGVyLmphdmE6NDQxKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM5NykKCWF0
IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZp
bmRDbGFzcyhCdW5kbGVMb2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmludGVy
bmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xhc3MoRGVmYXVsdENsYXNz
TG9hZGVyLmphdmE6ODcpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKFVua25v
d24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRDbGFzc0ludGVybmFsKFVu
a25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldERlY2xhcmVkQ29uc3RydWN0b3Jz
MChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLkNsYXNzLnByaXZhdGVHZXREZWNsYXJlZENv
bnN0cnVjdG9ycyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5nZXRDb25zdHJ1
Y3RvcjAoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UwKFVu
a25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25vd24gU291
cmNlKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0cmFj
dEJ1bmRsZS5sb2FkQnVuZGxlQWN0aXZhdG9yKEFic3RyYWN0QnVuZGxlLmphdmE6MTQxKQoJYXQg
b3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1w
bC5zdGFydChCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjk4MCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2ku
ZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdvcmtlcihCdW5kbGVIb3N0
LmphdmE6MzQ2KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5B
YnN0cmFjdEJ1bmRsZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2NSkKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuZnJhbWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0KFNlY3VyZUFjdGlvbi5q
YXZhOjQwMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVj
bGlwc2VMYXp5U3RhcnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBzZUxhenlTdGFydGVyLmph
dmE6MTExKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5sb2FkZXIuQ2xhc3NwYXRo
TWFuYWdlci5maW5kTG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmphdmE6NDI3KQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIuZmlu
ZExvY2FsQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJYXQgb3JnLmVjbGlwc2Uu
b3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZExvY2FsQ2xhc3Mo
QnVuZGxlTG9hZGVyLmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50
ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzSW50ZXJuYWwoQnVuZGxlTG9hZGVyLmph
dmE6NDQ0KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5k
bGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM5NykKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5k
bGVMb2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmludGVybmFsLmJhc2VhZGFw
dG9yLkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6
ODcpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKFVua25vd24gU291cmNlKQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIu
bG9hZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjMxMykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJh
bWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5sb2FkQ2xhc3MoQnVuZGxlSG9zdC5qYXZh
OjIyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQWJzdHJh
Y3RCdW5kbGUubG9hZENsYXNzKEFic3RyYWN0QnVuZGxlLmphdmE6MTI3NCkKCWF0IG9yZy5lY2xp
cHNlLmNvcmUuaW50ZXJuYWwucmVnaXN0cnkub3NnaS5SZWdpc3RyeVN0cmF0ZWd5T1NHSS5jcmVh
dGVFeGVjdXRhYmxlRXh0ZW5zaW9uKFJlZ2lzdHJ5U3RyYXRlZ3lPU0dJLmphdmE6MTYwKQoJYXQg
b3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5FeHRlbnNpb25SZWdpc3RyeS5jcmVh
dGVFeGVjdXRhYmxlRXh0ZW5zaW9uKEV4dGVuc2lvblJlZ2lzdHJ5LmphdmE6ODY3KQoJYXQgb3Jn
LmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5Db25maWd1cmF0aW9uRWxlbWVudC5jcmVh
dGVFeGVjdXRhYmxlRXh0ZW5zaW9uKENvbmZpZ3VyYXRpb25FbGVtZW50LmphdmE6MjQzKQoJYXQg
b3JnLmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5Db25maWd1cmF0aW9uRWxlbWVudEhh
bmRsZS5jcmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKENvbmZpZ3VyYXRpb25FbGVtZW50SGFuZGxl
LmphdmE6NTEpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94LmludGVybmFsLmFwcC5FY2xpcHNlQXBw
SGFuZGxlLnJ1bihFY2xpcHNlQXBwSGFuZGxlLmphdmE6MTg4KQoJYXQgb3JnLmVjbGlwc2UuY29y
ZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUFwcExhdW5jaGVyLnJ1bkFwcGxpY2F0
aW9uKEVjbGlwc2VBcHBMYXVuY2hlci5qYXZhOjExMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVu
dGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VBcHBMYXVuY2hlci5zdGFydChFY2xpcHNlQXBw
TGF1bmNoZXIuamF2YTo3OSkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5hZGFwdG9yLkVj
bGlwc2VTdGFydGVyLnJ1bihFY2xpcHNlU3RhcnRlci5qYXZhOjM4NikKCWF0IG9yZy5lY2xpcHNl
LmNvcmUucnVudGltZS5hZGFwdG9yLkVjbGlwc2VTdGFydGVyLnJ1bihFY2xpcHNlU3RhcnRlci5q
YXZhOjE3OSkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2Uw
KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwu
aW52b2tlKFVua25vd24gU291cmNlKQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFj
Y2Vzc29ySW1wbC5pbnZva2UoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5N
ZXRob2QuaW52b2tlKFVua25vd24gU291cmNlKQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5sYXVu
Y2hlci5NYWluLmludm9rZUZyYW1ld29yayhNYWluLmphdmE6NTQ5KQoJYXQgb3JnLmVjbGlwc2Uu
ZXF1aW5veC5sYXVuY2hlci5NYWluLmJhc2ljUnVuKE1haW4uamF2YTo1MDQpCglhdCBvcmcuZWNs
aXBzZS5lcXVpbm94LmxhdW5jaGVyLk1haW4ucnVuKE1haW4uamF2YToxMjM2KQoJYXQgb3JnLmVj
bGlwc2UuZXF1aW5veC5sYXVuY2hlci5NYWluLm1haW4oTWFpbi5qYXZhOjEyMTIpCkNhdXNlZCBi
eTogb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOiBObyBmYWN0
b3J5IG9mIGtpbmQgIk1hdGhUcmFuc2Zvcm1GYWN0b3J5IiBmb3VuZC4KCWF0IG9yZy5nZW90b29s
cy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeVJlZ2lz
dHJ5LmphdmE6Mzc0KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeUNyZWF0b3IuZ2V0
U2VydmljZVByb3ZpZGVyKEZhY3RvcnlDcmVhdG9yLmphdmE6MTQzKQoJYXQgb3JnLmdlb3Rvb2xz
LnJlZmVyZW5jaW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRGYWN0b3J5KFJlZmVyZW5j
aW5nRmFjdG9yeUZpbmRlci5qYXZhOjE5MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5S
ZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuZ2V0TWF0aFRyYW5zZm9ybUZhY3RvcnkoUmVmZXJlbmNp
bmdGYWN0b3J5RmluZGVyLmphdmE6NTAzKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZh
Y3RvcnkuUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmdldE1hdGhUcmFuc2Zvcm1GYWN0b3J5
KFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjI3MykKCWF0IG9yZy5nZW90b29scy5y
ZWZlcmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5pbml0aWFsaXpl
KFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjE4MCkKCWF0IG9yZy5nZW90b29scy5y
ZWZlcmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5nZXRJbXBsZW1l
bnRhdGlvbkhpbnRzKFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjIwNSkKCWF0IG9y
Zy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS51c2VzQWNjZXB0YWJsZUhpbnRzKEZh
Y3RvcnlSZWdpc3RyeS5qYXZhOjU1MSkKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlS
ZWdpc3RyeS5pc0FjY2VwdGFibGUoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NTA1KQoJYXQgb3JnLmdl
b3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZpY2VJbXBsZW1lbnRhdGlvbihG
YWN0b3J5UmVnaXN0cnkuamF2YTo0MzYpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5
UmVnaXN0cnkuZ2V0U2VydmljZVByb3ZpZGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjM2NCkKCWF0
IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlDcmVhdG9yLmdldFNlcnZpY2VQcm92aWRlcihG
YWN0b3J5Q3JlYXRvci5qYXZhOjE0MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5mYWN0
b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5pbnN0YW5jZShSZWZlcmVuY2luZ0ZhY3Rv
cnlDb250YWluZXIuamF2YToxNzApCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9y
eS5lcHNnLkZhY3RvcnlVc2luZ1dLVC48aW5pdD4oRmFjdG9yeVVzaW5nV0tULmphdmE6MTU2KQoJ
YXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuZXBzZy5GYWN0b3J5VXNpbmdXS1Qu
PGluaXQ+KEZhY3RvcnlVc2luZ1dLVC5qYXZhOjE0OCkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVu
Y2luZy5mYWN0b3J5LmVwc2cuRmFjdG9yeVVzaW5nV0tULjxpbml0PihGYWN0b3J5VXNpbmdXS1Qu
amF2YToxMzgpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVDb25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5u
ZXdJbnN0YW5jZTAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZUNvbnN0cnVj
dG9yQWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlKFVua25vd24gU291cmNlKQoJYXQgc3VuLnJlZmxl
Y3QuRGVsZWdhdGluZ0NvbnN0cnVjdG9yQWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlKFVua25vd24g
U291cmNlKQoJYXQgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3IubmV3SW5zdGFuY2UoVW5r
bm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UwKFVua25vd24gU291
cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25vd24gU291cmNlKQoJLi4u
IDkxIG1vcmUKSnVuIDMsIDIwMDkgMTowMDowNyBQTSBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0
b3J5UmVnaXN0cnkgc2NhbkZvclBsdWdpbnMKV0FSTklORzogQ2FuJ3QgbG9hZCBhIHNlcnZpY2Ug
Zm9yIGNhdGVnb3J5ICJDUlNBdXRob3JpdHlGYWN0b3J5Ii4gQ2F1c2UgaXMgIlNlcnZpY2VDb25m
aWd1cmF0aW9uRXJyb3I6IG9yZy5vcGVuZ2lzLnJlZmVyZW5jaW5nLmNycy5DUlNBdXRob3JpdHlG
YWN0b3J5OiBQcm92aWRlciBvcmcgKC4uLikgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeU5v
dEZvdW5kRXhjZXB0aW9uOiBObyBmYWN0b3J5IG9mIGtpbmQgIk1hdGhUcmFuc2Zvcm1GYWN0b3J5
IiBmb3VuZC4iLgpzdW4ubWlzYy5TZXJ2aWNlQ29uZmlndXJhdGlvbkVycm9yOiBvcmcub3Blbmdp
cy5yZWZlcmVuY2luZy5jcnMuQ1JTQXV0aG9yaXR5RmFjdG9yeTogUHJvdmlkZXIgb3JnLmdlb3Rv
b2xzLnJlZmVyZW5jaW5nLmZhY3Rvcnkud21zLkF1dG9DUlNGYWN0b3J5IGNvdWxkIG5vdCBiZSBp
bnN0YW50aWF0ZWQ6IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlOb3RGb3VuZEV4Y2VwdGlv
bjogTm8gZmFjdG9yeSBvZiBraW5kICJNYXRoVHJhbnNmb3JtRmFjdG9yeSIgZm91bmQuCglhdCBz
dW4ubWlzYy5TZXJ2aWNlLmZhaWwoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ubWlzYy5TZXJ2aWNl
LmFjY2VzcyQyMDAoVW5rbm93biBTb3VyY2UpCglhdCBzdW4ubWlzYy5TZXJ2aWNlJExhenlJdGVy
YXRvci5uZXh0KFVua25vd24gU291cmNlKQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9y
eVJlZ2lzdHJ5LnJlZ2lzdGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjgyOSkKCWF0IG9yZy5nZW90
b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5zY2FuRm9yUGx1Z2lucyhGYWN0b3J5UmVnaXN0
cnkuamF2YTo3NzMpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuc2Nh
bkZvclBsdWdpbnNJZk5lZWRlZChGYWN0b3J5UmVnaXN0cnkuamF2YTo4MDgpCglhdCBvcmcuZ2Vv
dG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0U2VydmljZVByb3ZpZGVycyhGYWN0b3J5
UmVnaXN0cnkuamF2YToxOTUpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNp
bmdGYWN0b3J5RmluZGVyLmdldEZhY3RvcmllcyhSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuamF2
YToxNzYpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuUmVmZXJlbmNpbmdGYWN0b3J5Rmlu
ZGVyLmdldENSU0F1dGhvcml0eUZhY3RvcmllcyhSZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIuamF2
YTo0NTEpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuRGVmYXVsdEF1dGhvcml0eUZhY3Rv
cnkuZ2V0QmFja2luZ0ZhY3RvcnkoRGVmYXVsdEF1dGhvcml0eUZhY3RvcnkuamF2YTo4OCkKCWF0
IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5EZWZhdWx0QXV0aG9yaXR5RmFjdG9yeS48aW5pdD4o
RGVmYXVsdEF1dGhvcml0eUZhY3RvcnkuamF2YTo2OSkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVu
Y2luZy5DUlMuZ2V0QXV0aG9yaXR5RmFjdG9yeShDUlMuamF2YToxODIpCglhdCBvcmcuZ2VvdG9v
bHMucmVmZXJlbmNpbmcuQ1JTLmRlY29kZShDUlMuamF2YTo0MjApCglhdCBvcmcuZ2VvdG9vbHMu
cmVmZXJlbmNpbmcuQ1JTLmRlY29kZShDUlMuamF2YTozNDgpCglhdCBuZXQucmVmcmFjdGlvbnMu
dWRpZy5saWJzLmludGVybmFsLkFjdGl2YXRvci5zdGFydChBY3RpdmF0b3IuamF2YTo1OSkKCWF0
IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlQ29udGV4dElt
cGwkMi5ydW4oQnVuZGxlQ29udGV4dEltcGwuamF2YToxMDA5KQoJYXQgamF2YS5zZWN1cml0eS5B
Y2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgb3JnLmVjbGlw
c2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1wbC5zdGFydEFj
dGl2YXRvcihCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjEwMDMpCglhdCBvcmcuZWNsaXBzZS5vc2dp
LmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0KEJ1bmRsZUNv
bnRleHRJbXBsLmphdmE6OTg0KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5CdW5kbGVIb3N0LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YTozNDYpCglhdCBv
cmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxlLnN0
YXJ0KEFic3RyYWN0QnVuZGxlLmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdv
cmsudXRpbC5TZWN1cmVBY3Rpb24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAwKQoJYXQgb3Jn
LmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxhenlTdGFydGVy
LnBvc3RGaW5kTG9jYWxDbGFzcyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEpCglhdCBvcmcu
ZWNsaXBzZS5vc2dpLmJhc2VhZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2VyLmZpbmRMb2Nh
bENsYXNzKENsYXNzcGF0aE1hbmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmlu
dGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxDbGFzcyhEZWZh
dWx0Q2xhc3NMb2FkZXIuamF2YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5p
bnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVMb2FkZXIuamF2
YTozNjgpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLlNpbmds
ZVNvdXJjZVBhY2thZ2UubG9hZENsYXNzKFNpbmdsZVNvdXJjZVBhY2thZ2UuamF2YTozMykKCWF0
IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZp
bmRDbGFzc0ludGVybmFsKEJ1bmRsZUxvYWRlci5qYXZhOjQ0MSkKCWF0IG9yZy5lY2xpcHNlLm9z
Z2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5kbGVM
b2FkZXIuamF2YTozOTcpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5j
b3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzg1KQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIubG9h
ZENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjg3KQoJYXQgamF2YS5sYW5nLkNsYXNzTG9h
ZGVyLmxvYWRDbGFzcyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5s
b2FkQ2xhc3NJbnRlcm5hbChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5nZXRE
ZWNsYXJlZENvbnN0cnVjdG9yczAoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEubGFuZy5DbGFzcy5w
cml2YXRlR2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxh
bmcuQ2xhc3MuZ2V0Q29uc3RydWN0b3IwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNs
YXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJ
bnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmlu
dGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUubG9hZEJ1bmRsZUFjdGl2YXRvcihBYnN0cmFjdEJ1
bmRsZS5qYXZhOjE0MSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNv
cmUuQnVuZGxlQ29udGV4dEltcGwuc3RhcnQoQnVuZGxlQ29udGV4dEltcGwuamF2YTo5ODApCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUhvc3Quc3Rh
cnRXb3JrZXIoQnVuZGxlSG9zdC5qYXZhOjM0NikKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3
b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUuc3RhcnQoQWJzdHJhY3RCdW5kbGUuamF2
YToyNjUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay51dGlsLlNlY3VyZUFjdGlvbi5z
dGFydChTZWN1cmVBY3Rpb24uamF2YTo0MDApCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUu
aW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlTGF6eVN0YXJ0ZXIucG9zdEZpbmRMb2NhbENsYXNzKEVj
bGlwc2VMYXp5U3RhcnRlci5qYXZhOjExMSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuYmFzZWFkYXB0
b3IubG9hZGVyLkNsYXNzcGF0aE1hbmFnZXIuZmluZExvY2FsQ2xhc3MoQ2xhc3NwYXRoTWFuYWdl
ci5qYXZhOjQyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3IuRGVm
YXVsdENsYXNzTG9hZGVyLmZpbmRMb2NhbENsYXNzKERlZmF1bHRDbGFzc0xvYWRlci5qYXZhOjE5
MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9h
ZGVyLmZpbmRMb2NhbENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM2OCkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuU2luZ2xlU291cmNlUGFja2FnZS5sb2FkQ2xh
c3MoU2luZ2xlU291cmNlUGFja2FnZS5qYXZhOjMzKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFt
ZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzSW50ZXJuYWwoQnVuZGxl
TG9hZGVyLmphdmE6NDQxKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwu
Y29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM5NykKCWF0IG9y
Zy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRD
bGFzcyhCdW5kbGVMb2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmludGVybmFs
LmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xhc3MoRGVmYXVsdENsYXNzTG9h
ZGVyLmphdmE6ODcpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKFVua25vd24g
U291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRDbGFzc0ludGVybmFsKFVua25v
d24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldERlY2xhcmVkQ29uc3RydWN0b3JzMChO
YXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLkNsYXNzLnByaXZhdGVHZXREZWNsYXJlZENvbnN0
cnVjdG9ycyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5nZXRDb25zdHJ1Y3Rv
cjAoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UwKFVua25v
d24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25vd24gU291cmNl
KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0cmFjdEJ1
bmRsZS5sb2FkQnVuZGxlQWN0aXZhdG9yKEFic3RyYWN0QnVuZGxlLmphdmE6MTQxKQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1wbC5z
dGFydChCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjk4MCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJh
bWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdvcmtlcihCdW5kbGVIb3N0Lmph
dmE6MzQ2KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0
cmFjdEJ1bmRsZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2NSkKCWF0IG9yZy5lY2xpcHNl
Lm9zZ2kuZnJhbWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0KFNlY3VyZUFjdGlvbi5qYXZh
OjQwMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlw
c2VMYXp5U3RhcnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBzZUxhenlTdGFydGVyLmphdmE6
MTExKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5sb2FkZXIuQ2xhc3NwYXRoTWFu
YWdlci5maW5kTG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmphdmE6NDI3KQoJYXQgb3JnLmVj
bGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0Q2xhc3NMb2FkZXIuZmluZExv
Y2FsQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZExvY2FsQ2xhc3MoQnVu
ZGxlTG9hZGVyLmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzSW50ZXJuYWwoQnVuZGxlTG9hZGVyLmphdmE6
NDQ0KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVM
b2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM5NykKCWF0IG9yZy5lY2xpcHNlLm9z
Z2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5kbGVM
b2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmludGVybmFsLmJhc2VhZGFwdG9y
LkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6ODcp
CglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzKFVua25vd24gU291cmNlKQoJYXQg
b3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIubG9h
ZENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjMxMykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3
b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5sb2FkQ2xhc3MoQnVuZGxlSG9zdC5qYXZhOjIy
NykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RC
dW5kbGUubG9hZENsYXNzKEFic3RyYWN0QnVuZGxlLmphdmE6MTI3NCkKCWF0IG9yZy5lY2xpcHNl
LmNvcmUuaW50ZXJuYWwucmVnaXN0cnkub3NnaS5SZWdpc3RyeVN0cmF0ZWd5T1NHSS5jcmVhdGVF
eGVjdXRhYmxlRXh0ZW5zaW9uKFJlZ2lzdHJ5U3RyYXRlZ3lPU0dJLmphdmE6MTYwKQoJYXQgb3Jn
LmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5FeHRlbnNpb25SZWdpc3RyeS5jcmVhdGVF
eGVjdXRhYmxlRXh0ZW5zaW9uKEV4dGVuc2lvblJlZ2lzdHJ5LmphdmE6ODY3KQoJYXQgb3JnLmVj
bGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5Db25maWd1cmF0aW9uRWxlbWVudC5jcmVhdGVF
eGVjdXRhYmxlRXh0ZW5zaW9uKENvbmZpZ3VyYXRpb25FbGVtZW50LmphdmE6MjQzKQoJYXQgb3Jn
LmVjbGlwc2UuY29yZS5pbnRlcm5hbC5yZWdpc3RyeS5Db25maWd1cmF0aW9uRWxlbWVudEhhbmRs
ZS5jcmVhdGVFeGVjdXRhYmxlRXh0ZW5zaW9uKENvbmZpZ3VyYXRpb25FbGVtZW50SGFuZGxlLmph
dmE6NTEpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94LmludGVybmFsLmFwcC5FY2xpcHNlQXBwSGFu
ZGxlLnJ1bihFY2xpcHNlQXBwSGFuZGxlLmphdmE6MTg4KQoJYXQgb3JnLmVjbGlwc2UuY29yZS5y
dW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUFwcExhdW5jaGVyLnJ1bkFwcGxpY2F0aW9u
KEVjbGlwc2VBcHBMYXVuY2hlci5qYXZhOjExMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGlt
ZS5pbnRlcm5hbC5hZGFwdG9yLkVjbGlwc2VBcHBMYXVuY2hlci5zdGFydChFY2xpcHNlQXBwTGF1
bmNoZXIuamF2YTo3OSkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5hZGFwdG9yLkVjbGlw
c2VTdGFydGVyLnJ1bihFY2xpcHNlU3RhcnRlci5qYXZhOjM4NikKCWF0IG9yZy5lY2xpcHNlLmNv
cmUucnVudGltZS5hZGFwdG9yLkVjbGlwc2VTdGFydGVyLnJ1bihFY2xpcHNlU3RhcnRlci5qYXZh
OjE3OSkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2UwKE5h
dGl2ZSBNZXRob2QpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVNZXRob2RBY2Nlc3NvckltcGwuaW52
b2tlKFVua25vd24gU291cmNlKQoJYXQgc3VuLnJlZmxlY3QuRGVsZWdhdGluZ01ldGhvZEFjY2Vz
c29ySW1wbC5pbnZva2UoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcucmVmbGVjdC5NZXRo
b2QuaW52b2tlKFVua25vd24gU291cmNlKQoJYXQgb3JnLmVjbGlwc2UuZXF1aW5veC5sYXVuY2hl
ci5NYWluLmludm9rZUZyYW1ld29yayhNYWluLmphdmE6NTQ5KQoJYXQgb3JnLmVjbGlwc2UuZXF1
aW5veC5sYXVuY2hlci5NYWluLmJhc2ljUnVuKE1haW4uamF2YTo1MDQpCglhdCBvcmcuZWNsaXBz
ZS5lcXVpbm94LmxhdW5jaGVyLk1haW4ucnVuKE1haW4uamF2YToxMjM2KQoJYXQgb3JnLmVjbGlw
c2UuZXF1aW5veC5sYXVuY2hlci5NYWluLm1haW4oTWFpbi5qYXZhOjEyMTIpCkNhdXNlZCBieTog
b3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOiBObyBmYWN0b3J5
IG9mIGtpbmQgIk1hdGhUcmFuc2Zvcm1GYWN0b3J5IiBmb3VuZC4KCWF0IG9yZy5nZW90b29scy5m
YWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeVJlZ2lzdHJ5
LmphdmE6Mzc0KQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeUNyZWF0b3IuZ2V0U2Vy
dmljZVByb3ZpZGVyKEZhY3RvcnlDcmVhdG9yLmphdmE6MTQzKQoJYXQgb3JnLmdlb3Rvb2xzLnJl
ZmVyZW5jaW5nLlJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5nZXRGYWN0b3J5KFJlZmVyZW5jaW5n
RmFjdG9yeUZpbmRlci5qYXZhOjE5MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5SZWZl
cmVuY2luZ0ZhY3RvcnlGaW5kZXIuZ2V0TWF0aFRyYW5zZm9ybUZhY3RvcnkoUmVmZXJlbmNpbmdG
YWN0b3J5RmluZGVyLmphdmE6NTAzKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3Rv
cnkuUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmdldE1hdGhUcmFuc2Zvcm1GYWN0b3J5KFJl
ZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjI3MykKCWF0IG9yZy5nZW90b29scy5yZWZl
cmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5pbml0aWFsaXplKFJl
ZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjE4MCkKCWF0IG9yZy5nZW90b29scy5yZWZl
cmVuY2luZy5mYWN0b3J5LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5nZXRJbXBsZW1lbnRh
dGlvbkhpbnRzKFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5qYXZhOjIwNSkKCWF0IG9yZy5n
ZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS51c2VzQWNjZXB0YWJsZUhpbnRzKEZhY3Rv
cnlSZWdpc3RyeS5qYXZhOjU1MSkKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdp
c3RyeS5pc0FjY2VwdGFibGUoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6NTA1KQoJYXQgb3JnLmdlb3Rv
b2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZpY2VJbXBsZW1lbnRhdGlvbihGYWN0
b3J5UmVnaXN0cnkuamF2YTo0MzYpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVn
aXN0cnkuZ2V0U2VydmljZVByb3ZpZGVyKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjM2NCkKCWF0IG9y
Zy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlDcmVhdG9yLmdldFNlcnZpY2VQcm92aWRlcihGYWN0
b3J5Q3JlYXRvci5qYXZhOjE0MykKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5mYWN0b3J5
LlJlZmVyZW5jaW5nRmFjdG9yeUNvbnRhaW5lci5pbnN0YW5jZShSZWZlcmVuY2luZ0ZhY3RvcnlD
b250YWluZXIuamF2YToxNzApCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5E
aXJlY3RBdXRob3JpdHlGYWN0b3J5Ljxpbml0PihEaXJlY3RBdXRob3JpdHlGYWN0b3J5LmphdmE6
OTApCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS53bXMuQXV0b0NSU0ZhY3Rv
cnkuPGluaXQ+KEF1dG9DUlNGYWN0b3J5LmphdmE6OTIpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJl
bmNpbmcuZmFjdG9yeS53bXMuQXV0b0NSU0ZhY3RvcnkuPGluaXQ+KEF1dG9DUlNGYWN0b3J5Lmph
dmE6ODUpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVDb25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5uZXdJ
bnN0YW5jZTAoTmF0aXZlIE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZUNvbnN0cnVjdG9y
QWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlKFVua25vd24gU291cmNlKQoJYXQgc3VuLnJlZmxlY3Qu
RGVsZWdhdGluZ0NvbnN0cnVjdG9yQWNjZXNzb3JJbXBsLm5ld0luc3RhbmNlKFVua25vd24gU291
cmNlKQoJYXQgamF2YS5sYW5nLnJlZmxlY3QuQ29uc3RydWN0b3IubmV3SW5zdGFuY2UoVW5rbm93
biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UwKFVua25vd24gU291cmNl
KQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlKFVua25vd24gU291cmNlKQoJLi4uIDkx
IG1vcmUKSnVuIDMsIDIwMDkgMTowMDowNyBQTSBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5
UmVnaXN0cnkgc2NhbkZvclBsdWdpbnMKV0FSTklORzogQ2FuJ3QgbG9hZCBhIHNlcnZpY2UgZm9y
IGNhdGVnb3J5ICJDUlNBdXRob3JpdHlGYWN0b3J5Ii4gQ2F1c2UgaXMgIlNlcnZpY2VDb25maWd1
cmF0aW9uRXJyb3I6IG9yZy5vcGVuZ2lzLnJlZmVyZW5jaW5nLmNycy5DUlNBdXRob3JpdHlGYWN0
b3J5OiBQcm92aWRlciBvcmcgKC4uLikgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeU5vdEZv
dW5kRXhjZXB0aW9uOiBObyBmYWN0b3J5IG9mIGtpbmQgIk1hdGhUcmFuc2Zvcm1GYWN0b3J5IiBm
b3VuZC4iLgpzdW4ubWlzYy5TZXJ2aWNlQ29uZmlndXJhdGlvbkVycm9yOiBvcmcub3Blbmdpcy5y
ZWZlcmVuY2luZy5jcnMuQ1JTQXV0aG9yaXR5RmFjdG9yeTogUHJvdmlkZXIgb3JnLmdlb3Rvb2xz
LnJlZmVyZW5jaW5nLmZhY3Rvcnkud21zLldlYkNSU0ZhY3RvcnkgY291bGQgbm90IGJlIGluc3Rh
bnRpYXRlZDogb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeU5vdEZvdW5kRXhjZXB0aW9uOiBO
byBmYWN0b3J5IG9mIGtpbmQgIk1hdGhUcmFuc2Zvcm1GYWN0b3J5IiBmb3VuZC4KCWF0IHN1bi5t
aXNjLlNlcnZpY2UuZmFpbChVbmtub3duIFNvdXJjZSkKCWF0IHN1bi5taXNjLlNlcnZpY2UuYWNj
ZXNzJDIwMChVbmtub3duIFNvdXJjZSkKCWF0IHN1bi5taXNjLlNlcnZpY2UkTGF6eUl0ZXJhdG9y
Lm5leHQoVW5rbm93biBTb3VyY2UpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5UmVn
aXN0cnkucmVnaXN0ZXIoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6ODI5KQoJYXQgb3JnLmdlb3Rvb2xz
LmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LnNjYW5Gb3JQbHVnaW5zKEZhY3RvcnlSZWdpc3RyeS5q
YXZhOjc3MykKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5zY2FuRm9y
UGx1Z2luc0lmTmVlZGVkKEZhY3RvcnlSZWdpc3RyeS5qYXZhOjgwOCkKCWF0IG9yZy5nZW90b29s
cy5mYWN0b3J5LkZhY3RvcnlSZWdpc3RyeS5nZXRTZXJ2aWNlUHJvdmlkZXJzKEZhY3RvcnlSZWdp
c3RyeS5qYXZhOjE5NSkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5SZWZlcmVuY2luZ0Zh
Y3RvcnlGaW5kZXIuZ2V0RmFjdG9yaWVzKFJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5qYXZhOjE3
NikKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5SZWZlcmVuY2luZ0ZhY3RvcnlGaW5kZXIu
Z2V0Q1JTQXV0aG9yaXR5RmFjdG9yaWVzKFJlZmVyZW5jaW5nRmFjdG9yeUZpbmRlci5qYXZhOjQ1
MSkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5EZWZhdWx0QXV0aG9yaXR5RmFjdG9yeS5n
ZXRCYWNraW5nRmFjdG9yeShEZWZhdWx0QXV0aG9yaXR5RmFjdG9yeS5qYXZhOjg4KQoJYXQgb3Jn
Lmdlb3Rvb2xzLnJlZmVyZW5jaW5nLkRlZmF1bHRBdXRob3JpdHlGYWN0b3J5Ljxpbml0PihEZWZh
dWx0QXV0aG9yaXR5RmFjdG9yeS5qYXZhOjY5KQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5n
LkNSUy5nZXRBdXRob3JpdHlGYWN0b3J5KENSUy5qYXZhOjE4MikKCWF0IG9yZy5nZW90b29scy5y
ZWZlcmVuY2luZy5DUlMuZGVjb2RlKENSUy5qYXZhOjQyMCkKCWF0IG9yZy5nZW90b29scy5yZWZl
cmVuY2luZy5DUlMuZGVjb2RlKENSUy5qYXZhOjM0OCkKCWF0IG5ldC5yZWZyYWN0aW9ucy51ZGln
LmxpYnMuaW50ZXJuYWwuQWN0aXZhdG9yLnN0YXJ0KEFjdGl2YXRvci5qYXZhOjU5KQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVDb250ZXh0SW1wbCQy
LnJ1bihCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjEwMDkpCglhdCBqYXZhLnNlY3VyaXR5LkFjY2Vz
c0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBNZXRob2QpCglhdCBvcmcuZWNsaXBzZS5v
c2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0QWN0aXZh
dG9yKEJ1bmRsZUNvbnRleHRJbXBsLmphdmE6MTAwMykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJh
bWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlQ29udGV4dEltcGwuc3RhcnQoQnVuZGxlQ29udGV4
dEltcGwuamF2YTo5ODQpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5j
b3JlLkJ1bmRsZUhvc3Quc3RhcnRXb3JrZXIoQnVuZGxlSG9zdC5qYXZhOjM0NikKCWF0IG9yZy5l
Y2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQWJzdHJhY3RCdW5kbGUuc3RhcnQo
QWJzdHJhY3RCdW5kbGUuamF2YToyNjUpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay51
dGlsLlNlY3VyZUFjdGlvbi5zdGFydChTZWN1cmVBY3Rpb24uamF2YTo0MDApCglhdCBvcmcuZWNs
aXBzZS5jb3JlLnJ1bnRpbWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlTGF6eVN0YXJ0ZXIucG9z
dEZpbmRMb2NhbENsYXNzKEVjbGlwc2VMYXp5U3RhcnRlci5qYXZhOjExMSkKCWF0IG9yZy5lY2xp
cHNlLm9zZ2kuYmFzZWFkYXB0b3IubG9hZGVyLkNsYXNzcGF0aE1hbmFnZXIuZmluZExvY2FsQ2xh
c3MoQ2xhc3NwYXRoTWFuYWdlci5qYXZhOjQyNykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJu
YWwuYmFzZWFkYXB0b3IuRGVmYXVsdENsYXNzTG9hZGVyLmZpbmRMb2NhbENsYXNzKERlZmF1bHRD
bGFzc0xvYWRlci5qYXZhOjE5MykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVy
bmFsLmNvcmUuQnVuZGxlTG9hZGVyLmZpbmRMb2NhbENsYXNzKEJ1bmRsZUxvYWRlci5qYXZhOjM2
OCkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuU2luZ2xlU291
cmNlUGFja2FnZS5sb2FkQ2xhc3MoU2luZ2xlU291cmNlUGFja2FnZS5qYXZhOjMzKQoJYXQgb3Jn
LmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENs
YXNzSW50ZXJuYWwoQnVuZGxlTG9hZGVyLmphdmE6NDQxKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5m
cmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRl
ci5qYXZhOjM5NykKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUu
QnVuZGxlTG9hZGVyLmZpbmRDbGFzcyhCdW5kbGVMb2FkZXIuamF2YTozODUpCglhdCBvcmcuZWNs
aXBzZS5vc2dpLmludGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5sb2FkQ2xh
c3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6ODcpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIu
bG9hZENsYXNzKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzTG9hZGVyLmxvYWRD
bGFzc0ludGVybmFsKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldERlY2xh
cmVkQ29uc3RydWN0b3JzMChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5sYW5nLkNsYXNzLnByaXZh
dGVHZXREZWNsYXJlZENvbnN0cnVjdG9ycyhVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5D
bGFzcy5nZXRDb25zdHJ1Y3RvcjAoVW5rbm93biBTb3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3Mu
bmV3SW5zdGFuY2UwKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3Rh
bmNlKFVua25vd24gU291cmNlKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJu
YWwuY29yZS5BYnN0cmFjdEJ1bmRsZS5sb2FkQnVuZGxlQWN0aXZhdG9yKEFic3RyYWN0QnVuZGxl
LmphdmE6MTQxKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5C
dW5kbGVDb250ZXh0SW1wbC5zdGFydChCdW5kbGVDb250ZXh0SW1wbC5qYXZhOjk4MCkKCWF0IG9y
Zy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLmludGVybmFsLmNvcmUuQnVuZGxlSG9zdC5zdGFydFdv
cmtlcihCdW5kbGVIb3N0LmphdmE6MzQ2KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsu
aW50ZXJuYWwuY29yZS5BYnN0cmFjdEJ1bmRsZS5zdGFydChBYnN0cmFjdEJ1bmRsZS5qYXZhOjI2
NSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuZnJhbWV3b3JrLnV0aWwuU2VjdXJlQWN0aW9uLnN0YXJ0
KFNlY3VyZUFjdGlvbi5qYXZhOjQwMCkKCWF0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5pbnRl
cm5hbC5hZGFwdG9yLkVjbGlwc2VMYXp5U3RhcnRlci5wb3N0RmluZExvY2FsQ2xhc3MoRWNsaXBz
ZUxhenlTdGFydGVyLmphdmE6MTExKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5iYXNlYWRhcHRvci5s
b2FkZXIuQ2xhc3NwYXRoTWFuYWdlci5maW5kTG9jYWxDbGFzcyhDbGFzc3BhdGhNYW5hZ2VyLmph
dmE6NDI3KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5pbnRlcm5hbC5iYXNlYWRhcHRvci5EZWZhdWx0
Q2xhc3NMb2FkZXIuZmluZExvY2FsQ2xhc3MoRGVmYXVsdENsYXNzTG9hZGVyLmphdmE6MTkzKQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIu
ZmluZExvY2FsQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6MzY4KQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5TaW5nbGVTb3VyY2VQYWNrYWdlLmxvYWRDbGFzcyhT
aW5nbGVTb3VyY2VQYWNrYWdlLmphdmE6MzMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29y
ay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3NJbnRlcm5hbChCdW5kbGVMb2Fk
ZXIuamF2YTo0NDEpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3Jl
LkJ1bmRsZUxvYWRlci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzk3KQoJYXQgb3JnLmVj
bGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNz
KEJ1bmRsZUxvYWRlci5qYXZhOjM4NSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFz
ZWFkYXB0b3IuRGVmYXVsdENsYXNzTG9hZGVyLmxvYWRDbGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIu
amF2YTo4NykKCWF0IGphdmEubGFuZy5DbGFzc0xvYWRlci5sb2FkQ2xhc3MoVW5rbm93biBTb3Vy
Y2UpCglhdCBqYXZhLmxhbmcuQ2xhc3NMb2FkZXIubG9hZENsYXNzSW50ZXJuYWwoVW5rbm93biBT
b3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MuZ2V0RGVjbGFyZWRDb25zdHJ1Y3RvcnMwKE5hdGl2
ZSBNZXRob2QpCglhdCBqYXZhLmxhbmcuQ2xhc3MucHJpdmF0ZUdldERlY2xhcmVkQ29uc3RydWN0
b3JzKFVua25vd24gU291cmNlKQoJYXQgamF2YS5sYW5nLkNsYXNzLmdldENvbnN0cnVjdG9yMChV
bmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZTAoVW5rbm93biBT
b3VyY2UpCglhdCBqYXZhLmxhbmcuQ2xhc3MubmV3SW5zdGFuY2UoVW5rbm93biBTb3VyY2UpCglh
dCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0QnVuZGxl
LmxvYWRCdW5kbGVBY3RpdmF0b3IoQWJzdHJhY3RCdW5kbGUuamF2YToxNDEpCglhdCBvcmcuZWNs
aXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUNvbnRleHRJbXBsLnN0YXJ0
KEJ1bmRsZUNvbnRleHRJbXBsLmphdmE6OTgwKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdv
cmsuaW50ZXJuYWwuY29yZS5CdW5kbGVIb3N0LnN0YXJ0V29ya2VyKEJ1bmRsZUhvc3QuamF2YToz
NDYpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkFic3RyYWN0
QnVuZGxlLnN0YXJ0KEFic3RyYWN0QnVuZGxlLmphdmE6MjY1KQoJYXQgb3JnLmVjbGlwc2Uub3Nn
aS5mcmFtZXdvcmsudXRpbC5TZWN1cmVBY3Rpb24uc3RhcnQoU2VjdXJlQWN0aW9uLmphdmE6NDAw
KQoJYXQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmludGVybmFsLmFkYXB0b3IuRWNsaXBzZUxh
enlTdGFydGVyLnBvc3RGaW5kTG9jYWxDbGFzcyhFY2xpcHNlTGF6eVN0YXJ0ZXIuamF2YToxMTEp
CglhdCBvcmcuZWNsaXBzZS5vc2dpLmJhc2VhZGFwdG9yLmxvYWRlci5DbGFzc3BhdGhNYW5hZ2Vy
LmZpbmRMb2NhbENsYXNzKENsYXNzcGF0aE1hbmFnZXIuamF2YTo0MjcpCglhdCBvcmcuZWNsaXBz
ZS5vc2dpLmludGVybmFsLmJhc2VhZGFwdG9yLkRlZmF1bHRDbGFzc0xvYWRlci5maW5kTG9jYWxD
bGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2YToxOTMpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZy
YW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5maW5kTG9jYWxDbGFzcyhCdW5kbGVM
b2FkZXIuamF2YTozNjgpCglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5j
b3JlLkJ1bmRsZUxvYWRlci5maW5kQ2xhc3NJbnRlcm5hbChCdW5kbGVMb2FkZXIuamF2YTo0NDQp
CglhdCBvcmcuZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRl
ci5maW5kQ2xhc3MoQnVuZGxlTG9hZGVyLmphdmE6Mzk3KQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5m
cmFtZXdvcmsuaW50ZXJuYWwuY29yZS5CdW5kbGVMb2FkZXIuZmluZENsYXNzKEJ1bmRsZUxvYWRl
ci5qYXZhOjM4NSkKCWF0IG9yZy5lY2xpcHNlLm9zZ2kuaW50ZXJuYWwuYmFzZWFkYXB0b3IuRGVm
YXVsdENsYXNzTG9hZGVyLmxvYWRDbGFzcyhEZWZhdWx0Q2xhc3NMb2FkZXIuamF2YTo4NykKCWF0
IGphdmEubGFuZy5DbGFzc0xvYWRlci5sb2FkQ2xhc3MoVW5rbm93biBTb3VyY2UpCglhdCBvcmcu
ZWNsaXBzZS5vc2dpLmZyYW1ld29yay5pbnRlcm5hbC5jb3JlLkJ1bmRsZUxvYWRlci5sb2FkQ2xh
c3MoQnVuZGxlTG9hZGVyLmphdmE6MzEzKQoJYXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsu
aW50ZXJuYWwuY29yZS5CdW5kbGVIb3N0LmxvYWRDbGFzcyhCdW5kbGVIb3N0LmphdmE6MjI3KQoJ
YXQgb3JnLmVjbGlwc2Uub3NnaS5mcmFtZXdvcmsuaW50ZXJuYWwuY29yZS5BYnN0cmFjdEJ1bmRs
ZS5sb2FkQ2xhc3MoQWJzdHJhY3RCdW5kbGUuamF2YToxMjc0KQoJYXQgb3JnLmVjbGlwc2UuY29y
ZS5pbnRlcm5hbC5yZWdpc3RyeS5vc2dpLlJlZ2lzdHJ5U3RyYXRlZ3lPU0dJLmNyZWF0ZUV4ZWN1
dGFibGVFeHRlbnNpb24oUmVnaXN0cnlTdHJhdGVneU9TR0kuamF2YToxNjApCglhdCBvcmcuZWNs
aXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5LkV4dGVuc2lvblJlZ2lzdHJ5LmNyZWF0ZUV4ZWN1
dGFibGVFeHRlbnNpb24oRXh0ZW5zaW9uUmVnaXN0cnkuamF2YTo4NjcpCglhdCBvcmcuZWNsaXBz
ZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5LkNvbmZpZ3VyYXRpb25FbGVtZW50LmNyZWF0ZUV4ZWN1
dGFibGVFeHRlbnNpb24oQ29uZmlndXJhdGlvbkVsZW1lbnQuamF2YToyNDMpCglhdCBvcmcuZWNs
aXBzZS5jb3JlLmludGVybmFsLnJlZ2lzdHJ5LkNvbmZpZ3VyYXRpb25FbGVtZW50SGFuZGxlLmNy
ZWF0ZUV4ZWN1dGFibGVFeHRlbnNpb24oQ29uZmlndXJhdGlvbkVsZW1lbnRIYW5kbGUuamF2YTo1
MSkKCWF0IG9yZy5lY2xpcHNlLmVxdWlub3guaW50ZXJuYWwuYXBwLkVjbGlwc2VBcHBIYW5kbGUu
cnVuKEVjbGlwc2VBcHBIYW5kbGUuamF2YToxODgpCglhdCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRp
bWUuaW50ZXJuYWwuYWRhcHRvci5FY2xpcHNlQXBwTGF1bmNoZXIucnVuQXBwbGljYXRpb24oRWNs
aXBzZUFwcExhdW5jaGVyLmphdmE6MTEwKQoJYXQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmlu
dGVybmFsLmFkYXB0b3IuRWNsaXBzZUFwcExhdW5jaGVyLnN0YXJ0KEVjbGlwc2VBcHBMYXVuY2hl
ci5qYXZhOjc5KQoJYXQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLmFkYXB0b3IuRWNsaXBzZVN0
YXJ0ZXIucnVuKEVjbGlwc2VTdGFydGVyLmphdmE6Mzg2KQoJYXQgb3JnLmVjbGlwc2UuY29yZS5y
dW50aW1lLmFkYXB0b3IuRWNsaXBzZVN0YXJ0ZXIucnVuKEVjbGlwc2VTdGFydGVyLmphdmE6MTc5
KQoJYXQgc3VuLnJlZmxlY3QuTmF0aXZlTWV0aG9kQWNjZXNzb3JJbXBsLmludm9rZTAoTmF0aXZl
IE1ldGhvZCkKCWF0IHN1bi5yZWZsZWN0Lk5hdGl2ZU1ldGhvZEFjY2Vzc29ySW1wbC5pbnZva2Uo
VW5rbm93biBTb3VyY2UpCglhdCBzdW4ucmVmbGVjdC5EZWxlZ2F0aW5nTWV0aG9kQWNjZXNzb3JJ
bXBsLmludm9rZShVbmtub3duIFNvdXJjZSkKCWF0IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5p
bnZva2UoVW5rbm93biBTb3VyY2UpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94LmxhdW5jaGVyLk1h
aW4uaW52b2tlRnJhbWV3b3JrKE1haW4uamF2YTo1NDkpCglhdCBvcmcuZWNsaXBzZS5lcXVpbm94
LmxhdW5jaGVyLk1haW4uYmFzaWNSdW4oTWFpbi5qYXZhOjUwNCkKCWF0IG9yZy5lY2xpcHNlLmVx
dWlub3gubGF1bmNoZXIuTWFpbi5ydW4oTWFpbi5qYXZhOjEyMzYpCglhdCBvcmcuZWNsaXBzZS5l
cXVpbm94LmxhdW5jaGVyLk1haW4ubWFpbihNYWluLmphdmE6MTIxMikKQ2F1c2VkIGJ5OiBvcmcu
Z2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5Tm90Rm91bmRFeGNlcHRpb246IE5vIGZhY3Rvcnkgb2Yg
a2luZCAiTWF0aFRyYW5zZm9ybUZhY3RvcnkiIGZvdW5kLgoJYXQgb3JnLmdlb3Rvb2xzLmZhY3Rv
cnkuRmFjdG9yeVJlZ2lzdHJ5LmdldFNlcnZpY2VQcm92aWRlcihGYWN0b3J5UmVnaXN0cnkuamF2
YTozNzQpCglhdCBvcmcuZ2VvdG9vbHMuZmFjdG9yeS5GYWN0b3J5Q3JlYXRvci5nZXRTZXJ2aWNl
UHJvdmlkZXIoRmFjdG9yeUNyZWF0b3IuamF2YToxNDMpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJl
bmNpbmcuUmVmZXJlbmNpbmdGYWN0b3J5RmluZGVyLmdldEZhY3RvcnkoUmVmZXJlbmNpbmdGYWN0
b3J5RmluZGVyLmphdmE6MTkzKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLlJlZmVyZW5j
aW5nRmFjdG9yeUZpbmRlci5nZXRNYXRoVHJhbnNmb3JtRmFjdG9yeShSZWZlcmVuY2luZ0ZhY3Rv
cnlGaW5kZXIuamF2YTo1MDMpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcuZmFjdG9yeS5S
ZWZlcmVuY2luZ0ZhY3RvcnlDb250YWluZXIuZ2V0TWF0aFRyYW5zZm9ybUZhY3RvcnkoUmVmZXJl
bmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6MjczKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5j
aW5nLmZhY3RvcnkuUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmluaXRpYWxpemUoUmVmZXJl
bmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6MTgwKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5j
aW5nLmZhY3RvcnkuUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmdldEltcGxlbWVudGF0aW9u
SGludHMoUmVmZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmphdmE6MjA1KQoJYXQgb3JnLmdlb3Rv
b2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5LnVzZXNBY2NlcHRhYmxlSGludHMoRmFjdG9yeVJl
Z2lzdHJ5LmphdmE6NTUxKQoJYXQgb3JnLmdlb3Rvb2xzLmZhY3RvcnkuRmFjdG9yeVJlZ2lzdHJ5
LmlzQWNjZXB0YWJsZShGYWN0b3J5UmVnaXN0cnkuamF2YTo1MDUpCglhdCBvcmcuZ2VvdG9vbHMu
ZmFjdG9yeS5GYWN0b3J5UmVnaXN0cnkuZ2V0U2VydmljZUltcGxlbWVudGF0aW9uKEZhY3RvcnlS
ZWdpc3RyeS5qYXZhOjQzNikKCWF0IG9yZy5nZW90b29scy5mYWN0b3J5LkZhY3RvcnlSZWdpc3Ry
eS5nZXRTZXJ2aWNlUHJvdmlkZXIoRmFjdG9yeVJlZ2lzdHJ5LmphdmE6MzY0KQoJYXQgb3JnLmdl
b3Rvb2xzLmZhY3RvcnkuRmFjdG9yeUNyZWF0b3IuZ2V0U2VydmljZVByb3ZpZGVyKEZhY3RvcnlD
cmVhdG9yLmphdmE6MTQzKQoJYXQgb3JnLmdlb3Rvb2xzLnJlZmVyZW5jaW5nLmZhY3RvcnkuUmVm
ZXJlbmNpbmdGYWN0b3J5Q29udGFpbmVyLmluc3RhbmNlKFJlZmVyZW5jaW5nRmFjdG9yeUNvbnRh
aW5lci5qYXZhOjE3MCkKCWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5mYWN0b3J5LkRpcmVj
dEF1dGhvcml0eUZhY3RvcnkuPGluaXQ+KERpcmVjdEF1dGhvcml0eUZhY3RvcnkuamF2YTo5MCkK
CWF0IG9yZy5nZW90b29scy5yZWZlcmVuY2luZy5mYWN0b3J5Lndtcy5XZWJDUlNGYWN0b3J5Ljxp
bml0PihXZWJDUlNGYWN0b3J5LmphdmE6OTEpCglhdCBvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcu
ZmFjdG9yeS53bXMuV2ViQ1JTRmFjdG9yeS48aW5pdD4oV2ViQ1JTRmFjdG9yeS5qYXZhOjg0KQoJ
YXQgc3VuLnJlZmxlY3QuTmF0aXZlQ29uc3RydWN0b3JBY2Nlc3NvckltcGwubmV3SW5zdGFuY2Uw
KE5hdGl2ZSBNZXRob2QpCglhdCBzdW4ucmVmbGVjdC5OYXRpdmVDb25zdHJ1Y3RvckFjY2Vzc29y
SW1wbC5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0IHN1bi5yZWZsZWN0LkRlbGVnYXRp
bmdDb25zdHJ1Y3RvckFjY2Vzc29ySW1wbC5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCWF0
IGphdmEubGFuZy5yZWZsZWN0LkNvbnN0cnVjdG9yLm5ld0luc3RhbmNlKFVua25vd24gU291cmNl
KQoJYXQgamF2YS5sYW5nLkNsYXNzLm5ld0luc3RhbmNlMChVbmtub3duIFNvdXJjZSkKCWF0IGph
dmEubGFuZy5DbGFzcy5uZXdJbnN0YW5jZShVbmtub3duIFNvdXJjZSkKCS4uLiA5MSBtb3JlCg==
--0016364272b9db5d2f046b6cbb7e--


Back to the top