Re: TomEE does not launch on Java 24
Wolfgang Knauf <[email protected]> Sat, 12 Jul 2025 11:14:18 +0200
| Newsgroups | gmane.comp.java.openejb.user |
|---|---|
| Message-ID | <[email protected]> |
--------------94TnT81bAeMoOZw2JAMmWM2d Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable There might be a problem with snapshot=20 "apache-tomee-10.1.1-20250712.035301-33-webprofile.zip" (by the way: I cannot click the download links in a browser, had to use=20 "wget" to download it. Tried two different browsers and two OS) I tested it with an arquillian project, where the tomee container is=20 pulled from maven and managed by=20 "org.apache.tomee:arquillian-tomee-remote", so I had to replace the=20 10.1.0 version in my local maven repository with the snapshot (replaced=20 "C:\Users\MYUSERNAME\.m2\repository\org\apache\tomee\apache-tomee\10.1.0\a= pache-tomee-10.1.0-webprofile.zip"=20 with snapshot file and renamed directory=20 "apache-tomee-webprofile-10.1.1-SNAPSHOT" to=20 "apache-tomee-webprofile-10.1.0" in zip). Attached is the output of a maven run using Java 24. At some point, it=20 starts printing thousands of errors: java.util.concurrent.ExecutionException:=20 java.lang.IllegalArgumentException: can't parse argument number: at java.base/java.util.concurrent.FutureTask.report(FutureTask.java:124) at java.base/java.util.concurrent.FutureTask.get(FutureTask.java:193) at org.apache.openejb.util.Memoizer.compute(Memoizer.java:63) at org.apache.openejb.util.Logger.formatMessage(Logger.java:398) at org.apache.openejb.util.Logger.warning(Logger.java:643) at=20 org.apache.openejb.core.security.AbstractSecurityService.isCallerAuthorize= d(AbstractSecurityService.java:398) at=20 org.apache.openejb.core.singleton.SingletonContainer.invoke(SingletonConta= iner.java:192) at=20 org.apache.openejb.core.ivm.EjbHomeProxyHandler.create(EjbHomeProxyHandler= .java:343) at=20 org.apache.openejb.core.ivm.EjbHomeProxyHandler._invoke(EjbHomeProxyHandle= r.java:196) at=20 org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler= .java:349) at jdk.proxy3/jdk.proxy3.$Proxy30.create(Unknown Source) at=20 org.apache.openejb.core.ivm.naming.BusinessRemoteReference.getObject(Busin= essRemoteReference.java:36) at=20 org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:186) at=20 org.apache.openejb.server.ejbd.JndiRequestHandler.doLookup(JndiRequestHand= ler.java:261) at=20 org.apache.openejb.server.ejbd.JndiRequestHandler.processResponse(JndiRequ= estHandler.java:174) at=20 org.apache.openejb.server.ejbd.EjbDaemon.processJndiResponse(EjbDaemon.jav= a:380) at org.apache.openejb.server.ejbd.EjbDaemon.service(EjbDaemon.java:282) at org.apache.openejb.server.ejbd.EjbServer.service(EjbServer.java:104) at=20 org.apache.openejb.server.httpd.ServerServlet.service(ServerServlet.java:6= 0) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at=20 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applicati= onFilterChain.java:195) at=20 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilter= Chain.java:140) at=20 org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.= java:167) at=20 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.= java:90) at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) at=20 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:1= 16) at=20 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:9= 3) at=20 org.apache.tomee.catalina.OpenEJBSecurityListener$RequestCapturer.invoke(O= penEJBSecurityListener.java:97) at=20 org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLog= Valve.java:666) at=20 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.ja= va:74) at=20 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344= ) at=20 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:398) at=20 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.ja= va:63) at=20 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProto= col.java:903) at=20 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.j= ava:1769) at=20 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.jav= a:52) at=20 org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExec= utor.java:1189) at=20 org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExe= cutor.java:658) at=20 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.= java:63) at java.base/java.lang.Thread.run(Thread.java:1447) Caused by: java.lang.IllegalArgumentException: can't parse argument number= : at=20 java.base/java.text.MessageFormat.setFormatFromPattern(MessageFormat.java:= 1644) at=20 java.base/java.text.MessageFormat.applyPatternImpl(MessageFormat.java:660) at java.base/java.text.MessageFormat.<init>(MessageFormat.java:516) at org.apache.openejb.util.Memoizer$1.call(Memoizer.java:52) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) at org.apache.openejb.util.Memoizer.compute(Memoizer.java:59) ... 37 more Caused by: java.lang.NumberFormatException: For input string: "" at=20 java.base/java.lang.NumberFormatException.forInputString(NumberFormatExcep= tion.java:67) at java.base/java.lang.Integer.parseInt(Integer.java:541) at java.base/java.lang.Integer.parseInt(Integer.java:661) at=20 java.base/java.text.MessageFormat.setFormatFromPattern(MessageFormat.java:= 1642) ... 42 more Seems the server is not stopped or it takes too long to print all thoses= =20 errors, I killed it after a few seconds an 1GB of log file ;-) The project where the issue occured uses arquillian and=20 "org.apache.tomee:arquillian-tomee-remote". In the failed run, I still=20 used 10.1.0 of this plugin, without trying to replace it with a snapshot= =20 version. Is it maybe caused by this one? Best regards Wolfgang Am 11.07.25 um 22:14 schrieb Wolfgang Knauf: > Thanks, great work. >=20 > I will give it a try the next few days and report back if there are=20 > further problems. >=20 > Best regards >=20 > Wolfgang >=20 > Am 11.07.25 um 14:15 schrieb Richard Zowalla: >> Hi Wolfgang, >> >> we just pushed some changes, which should allow TomEE to run on Java=20 >> 24 (with some limitations regarding EJB method security, etc.) >> >> Nightlies should be available via https://repository.apache.org/=20 >> content/groups/snapshots/org/apache/tomee/apache-tomee/10.1.1-=20 >> SNAPSHOT/ soon. >> >> Gru=C3=9F >> Richard >> >> On 2025/04/04 08:28:20 Wolfgang Knauf wrote: >>> Hi all, >>> >>> (sorry if this is a duplicate one, I already sent it a few days ago,= =20 >>> but as it did not appear, I think it might be related to the fact=20 >>> that I did not subscribe to the list) >>> >>> TomEE 10.0.1 fails to launch with Java 24: >>> >>> 01-Apr-2025 13:10:36.888 SCHWERWIEGEND [main]=20 >>> org.apache.openejb.util.OpenEJBErrorHandler.handleUnknownError FATAL= =20 >>> ERROR: Unknown error in Assembler. Please send the following stack=20 >>> trace and this message to [email protected] : >>> org.apache.xbean.recipe.ConstructionException: Error invoking=20 >>> constructor: public org.apache.tomee.catalina.TomcatSecurityService() >>> =C2=A0=C2=A0 at=20 >>> org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(Refle= ctionUtil.java:981) >>> =C2=A0=C2=A0 at=20 >>> org.apache.xbean.recipe.ObjectRecipe.internalCreate(ObjectRecipe.java:= 279) >>> =C2=A0=C2=A0 at=20 >>> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:96) >>> =C2=A0=C2=A0 at=20 >>> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:61) >>> =C2=A0=C2=A0 at=20 >>> org.apache.xbean.recipe.AbstractRecipe.create(AbstractRecipe.java:49) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.assembler.classic.Assembler.createSecurityService(A= ssembler.java:3553) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(As= sembler.java:579) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:49= 7) >>> =C2=A0=C2=A0 at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.jav= a:150) >>> =C2=A0=C2=A0 at org.apache.openejb.OpenEJB.init(OpenEJB.java:307) >>> =C2=A0=C2=A0 at=20 >>> org.apache.tomee.catalina.TomcatLoader.initialize(TomcatLoader.java:24= 4) >>> =C2=A0=C2=A0 at=20 >>> org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener= .java:161) >>> =C2=A0=C2=A0 at=20 >>> org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBas= e.java:109) >>> =C2=A0=C2=A0 at=20 >>> org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.= java:389) >>> =C2=A0=C2=A0 at=20 >>> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:123) >>> =C2=A0=C2=A0 at org.apache.catalina.startup.Catalina.load(Catalina.jav= a:712) >>> =C2=A0=C2=A0 at org.apache.catalina.startup.Catalina.load(Catalina.jav= a:735) >>> =C2=A0=C2=A0 at java.base/=20 >>> jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHan= dleAccessor.java:104) >>> =C2=A0=C2=A0 at java.base/java.lang.reflect.Method.invoke(Method.java:= 565) >>> =C2=A0=C2=A0 at org.apache.catalina.startup.Bootstrap.load(Bootstrap.j= ava:302) >>> =C2=A0=C2=A0 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.j= ava:472) >>> Caused by: java.lang.IllegalStateException: Could not install JACC=20 >>> Policy Provider: org.apache.openejb.core.security.JaccProvider$Policy >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.core.security.AbstractSecurityService.installPolicy= (AbstractSecurityService.java:443) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.core.security.AbstractSecurityService.installJacc(A= bstractSecurityService.java:431) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.core.security.AbstractSecurityService.<init>(Abstra= ctSecurityService.java:94) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.core.security.AbstractSecurityService.<init>(Abstra= ctSecurityService.java:88) >>> =C2=A0=C2=A0 at=20 >>> org.apache.tomee.catalina.TomcatSecurityService.<init>(TomcatSecurityS= ervice.java:55) >>> =C2=A0=C2=A0 at java.base/=20 >>> jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(Direc= tConstructorHandleAccessor.java:62) >>> =C2=A0=C2=A0 at java.base/=20 >>> java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:4= 99) >>> =C2=A0=C2=A0 at java.base/=20 >>> java.lang.reflect.Constructor.newInstance(Constructor.java:483) >>> =C2=A0=C2=A0 at=20 >>> org.apache.xbean.recipe.ReflectionUtil$ConstructorFactory.create(Refle= ctionUtil.java:971) >>> ... 20 more >>> Caused by: java.lang.UnsupportedOperationException: Setting a system-= =20 >>> wide Policy object is not supported >>> =C2=A0=C2=A0 at java.base/java.security.Policy.setPolicy(Policy.java:1= 14) >>> =C2=A0=C2=A0 at=20 >>> org.apache.openejb.core.security.AbstractSecurityService.installPolicy= (AbstractSecurityService.java:441) >>> ... 28 more >>> >>> >>> >>> Is there something I should do about this (file a JIRA issue), or is= =20 >>> the Java 24 support already on your roadmap? >>> >>> Best regards >>> >>> Wolfgang >>> >=20 --------------94TnT81bAeMoOZw2JAMmWM2d Content-Type: text/plain; charset=UTF-8; name="log.txt" Content-Disposition: attachment; filename="log.txt" Content-Transfer-Encoding: base64 W0lORk9dIFNjYW5uaW5nIGZvciBwcm9qZWN0cy4uLg0KW0lORk9dIA0KW0lORk9dIC0tLS0t LTwgb3JnLmpib3NzLmFycXVpbGxpYW4uZXh0ZW5zaW9uOmFycXVpbGxpYW4td2FycC1qc2Yt ZnRlc3QgPi0tLS0tLQ0KW0lORk9dIEJ1aWxkaW5nIEFycXVpbGxpYW4gV2FycDogSlNGIEZ1 bmN0aW9uYWwgVGVzdHMgMi4xLjAuRmluYWwtU05BUFNIT1QNCltJTkZPXSAgIGZyb20gcG9t LnhtbA0KW0lORk9dIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tWyBqYXIgXS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KW0lORk9dIA0KW0lORk9dIC0tLSBj bGVhbjozLjQuMTpjbGVhbiAoZGVmYXVsdC1jbGVhbikgQCBhcnF1aWxsaWFuLXdhcnAtanNm LWZ0ZXN0IC0tLQ0KW0lORk9dIERlbGV0aW5nIEM6XFRlbXBcZ2l0aHViXGFycXVpbGxpYW4t ZXh0ZW5zaW9uLXdhcnBcZXh0ZW5zaW9uXGpzZi1mdGVzdFx0YXJnZXQNCltJTkZPXSANCltJ TkZPXSAtLS0gZW5mb3JjZXI6My41LjA6ZW5mb3JjZSAoZW5mb3JjZS1qYXZhLXZlcnNpb24p IEAgYXJxdWlsbGlhbi13YXJwLWpzZi1mdGVzdCAtLS0NCltJTkZPXSBSdWxlIDA6IG9yZy5h cGFjaGUubWF2ZW4uZW5mb3JjZXIucnVsZXMuQmFubmVkUmVwb3NpdG9yaWVzIHBhc3NlZA0K W0lORk9dIFJ1bGUgMTogb3JnLmFwYWNoZS5tYXZlbi5lbmZvcmNlci5ydWxlcy52ZXJzaW9u LlJlcXVpcmVKYXZhVmVyc2lvbiBwYXNzZWQNCltJTkZPXSANCltJTkZPXSAtLS0gZW5mb3Jj ZXI6My41LjA6ZW5mb3JjZSAoZW5mb3JjZS1tYXZlbi12ZXJzaW9uKSBAIGFycXVpbGxpYW4t d2FycC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gUnVsZSAwOiBvcmcuYXBhY2hlLm1hdmVuLmVu Zm9yY2VyLnJ1bGVzLnZlcnNpb24uUmVxdWlyZU1hdmVuVmVyc2lvbiBwYXNzZWQNCltJTkZP XSANCltJTkZPXSAtLS0gYnVpbGRudW1iZXI6My4yLjE6Y3JlYXRlIChnZXQtc2NtLXJldmlz aW9uKSBAIGFycXVpbGxpYW4td2FycC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gRXhlY3V0aW5n OiBjbWQuZXhlIC9YIC9DICJnaXQgbG9nIC0xIC0tbm8tbWVyZ2VzICItLWZvcm1hdD1mb3Jt YXQ6JUggJWFJICVhRSAlYU4iIg0KW0lORk9dIFdvcmtpbmcgZGlyZWN0b3J5OiBDOlxUZW1w XGdpdGh1YlxhcnF1aWxsaWFuLWV4dGVuc2lvbi13YXJwXGV4dGVuc2lvblxqc2YtZnRlc3QN CltJTkZPXSBTdG9yaW5nIGJ1aWxkTnVtYmVyOiAwYWVmYjlmZGRjYTU0ODk2ZmI0ZDdjMDMz MzFlMDNjZTliNmU2MWQ0IGF0IHRpbWVzdGFtcDogMTc1MjMxMDQwMTg0MA0KW0lORk9dIEV4 ZWN1dGluZzogY21kLmV4ZSAvWCAvQyAiZ2l0IHN5bWJvbGljLXJlZiBIRUFEIg0KW0lORk9d IFdvcmtpbmcgZGlyZWN0b3J5OiBDOlxUZW1wXGdpdGh1YlxhcnF1aWxsaWFuLWV4dGVuc2lv bi13YXJwXGV4dGVuc2lvblxqc2YtZnRlc3QNCltJTkZPXSBTdG9yaW5nIHNjbUJyYW5jaDog bWFpbg0KW0lORk9dIA0KW0lORk9dIC0tLSBqYWNvY286MC44LjEzOnByZXBhcmUtYWdlbnQg KHByZXBhcmUtYWdlbnQpIEAgYXJxdWlsbGlhbi13YXJwLWpzZi1mdGVzdCAtLS0NCltJTkZP XSBzdXJlZmlyZS5qYWNvY28uYXJncyBzZXQgdG8gLWphdmFhZ2VudDpDOlxcVXNlcnNcXGtu dWZmaVxcLm0yXFxyZXBvc2l0b3J5XFxvcmdcXGphY29jb1xcb3JnLmphY29jby5hZ2VudFxc MC44LjEzXFxvcmcuamFjb2NvLmFnZW50LTAuOC4xMy1ydW50aW1lLmphcj1kZXN0ZmlsZT1D OlxcVGVtcFxcZ2l0aHViXFxhcnF1aWxsaWFuLWV4dGVuc2lvbi13YXJwXFxleHRlbnNpb25c XGpzZi1mdGVzdFxcdGFyZ2V0XFxqYWNvY28uZXhlYyxleGNsdWRlcz1jb20vZ2FyZ295bGVz b2Z0d2FyZS9odG1sdW5pdC9jc3MvKio6Y29tL2dhcmdveWxlc29mdHdhcmUvY3NzL3BhcnNl ci9qYXZhY2MvKio6b3JnL2h0bWx1bml0L2Nzc3BhcnNlci9wYXJzZXIvamF2YWNjL0NTUzNQ YXJzZXJUb2tlbk1hbmFnZXINCltJTkZPXSANCltJTkZPXSAtLS0gZGVwZW5kZW5jeTozLjgu MTp1bnBhY2sgKHVucGFjay1hcnF1aWxsaWFuLXNldHRpbmdzKSBAIGFycXVpbGxpYW4td2Fy cC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gQ29uZmlndXJlZCBBcnRpZmFjdDogb3JnLmpib3Nz LmFycXVpbGxpYW4uZXh0ZW5zaW9uOmFycXVpbGxpYW4td2FycC1idWlsZC1yZXNvdXJjZXM6 Mi4xLjAuRmluYWwtU05BUFNIT1Q6amFyDQpbSU5GT10gDQpbSU5GT10gLS0tIHJlc291cmNl czozLjMuMTpyZXNvdXJjZXMgKGRlZmF1bHQtcmVzb3VyY2VzKSBAIGFycXVpbGxpYW4td2Fy cC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gc2tpcCBub24gZXhpc3RpbmcgcmVzb3VyY2VEaXJl Y3RvcnkgQzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24td2FycFxleHRlbnNp b25canNmLWZ0ZXN0XHNyY1xtYWluXHJlc291cmNlcw0KW0lORk9dIA0KW0lORk9dIC0tLSBj b21waWxlcjozLjE0LjA6Y29tcGlsZSAoZGVmYXVsdC1jb21waWxlKSBAIGFycXVpbGxpYW4t d2FycC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gUmVjb21waWxpbmcgdGhlIG1vZHVsZSBiZWNh dXNlIG9mIGNoYW5nZWQgc291cmNlIGNvZGUuDQpbSU5GT10gQ29tcGlsaW5nIDMgc291cmNl IGZpbGVzIHdpdGggamF2YWMgW2RlYnVnIGRlcHJlY2F0aW9uIHJlbGVhc2UgMTddIHRvIHRh cmdldFxjbGFzc2VzDQpbSU5GT10gDQpbSU5GT10gLS0tIHJlc291cmNlczozLjMuMTp0ZXN0 UmVzb3VyY2VzIChkZWZhdWx0LXRlc3RSZXNvdXJjZXMpIEAgYXJxdWlsbGlhbi13YXJwLWpz Zi1mdGVzdCAtLS0NCltJTkZPXSBDb3B5aW5nIDMgcmVzb3VyY2VzIGZyb20gc3JjXHRlc3Rc cmVzb3VyY2VzIHRvIHRhcmdldFx0ZXN0LWNsYXNzZXMNCltJTkZPXSBDb3B5aW5nIDEgcmVz b3VyY2UgZnJvbSBzcmNcdGVzdFxhcnF1aWxsaWFuLXNldHRpbmdzIHRvIHRhcmdldFx0ZXN0 LWNsYXNzZXMNCltJTkZPXSBUaGUgZW5jb2RpbmcgdXNlZCB0byBjb3B5IGZpbHRlcmVkIHBy b3BlcnRpZXMgZmlsZXMgaGF2ZSBub3QgYmVlbiBzZXQuIFRoaXMgbWVhbnMgdGhhdCB0aGUg c2FtZSBlbmNvZGluZyB3aWxsIGJlIHVzZWQgdG8gY29weSBmaWx0ZXJlZCBwcm9wZXJ0aWVz IGZpbGVzIGFzIHdoZW4gY29weWluZyBvdGhlciBmaWx0ZXJlZCByZXNvdXJjZXMuIFRoaXMg bWlnaHQgbm90IGJlIHdoYXQgeW91IHdhbnQhIFJ1biB5b3VyIGJ1aWxkIHdpdGggLS1kZWJ1 ZyB0byBzZWUgd2hpY2ggZmlsZXMgbWlnaHQgYmUgYWZmZWN0ZWQuIFJlYWQgbW9yZSBhdCBo dHRwczovL21hdmVuLmFwYWNoZS5vcmcvcGx1Z2lucy9tYXZlbi1yZXNvdXJjZXMtcGx1Z2lu L2V4YW1wbGVzL2ZpbHRlcmluZy1wcm9wZXJ0aWVzLWZpbGVzLmh0bWwNCltJTkZPXSANCltJ TkZPXSAtLS0gY29tcGlsZXI6My4xNC4wOnRlc3RDb21waWxlIChkZWZhdWx0LXRlc3RDb21w aWxlKSBAIGFycXVpbGxpYW4td2FycC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gUmVjb21waWxp bmcgdGhlIG1vZHVsZSBiZWNhdXNlIG9mIGNoYW5nZWQgZGVwZW5kZW5jeS4NCltJTkZPXSBD b21waWxpbmcgMTAgc291cmNlIGZpbGVzIHdpdGggamF2YWMgW2RlYnVnIGRlcHJlY2F0aW9u IHJlbGVhc2UgMTddIHRvIHRhcmdldFx0ZXN0LWNsYXNzZXMNCltJTkZPXSANCltJTkZPXSAt LS0gc3VyZWZpcmU6My41LjI6dGVzdCAoZGVmYXVsdC10ZXN0KSBAIGFycXVpbGxpYW4td2Fy cC1qc2YtZnRlc3QgLS0tDQpbSU5GT10gVXNpbmcgYXV0byBkZXRlY3RlZCBwcm92aWRlciBv cmcuYXBhY2hlLm1hdmVuLnN1cmVmaXJlLmp1bml0cGxhdGZvcm0uSlVuaXRQbGF0Zm9ybVBy b3ZpZGVyDQpbSU5GT10gDQpbSU5GT10gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KW0lORk9dICBUIEUgUyBUIFMNCltJTkZPXSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t DQpbSU5GT10gUnVubmluZyBvcmcuamJvc3MuYXJxdWlsbGlhbi53YXJwLmpzZi5mdGVzdC5C YXNpY0pzZlRlc3QNCkp1bGkgMTIsIDIwMjUgMTA6NTM6MjUgQU0gb3JnLmFycXVpbGxpYW4u d2FycC5mdGVzdC5pbnN0YWxsYXRpb24uQ29udGFpbmVySW5zdGFsbGVyIHVucGFja0NvbnRh aW5lckRpc3RyaWJ1dGlvbg0KSU5GT1JNQVRJT046IFRoZSBjb250YWluZXIgZGlzdHJpYnV0 aW9uIHdpbGwgYmUgcmVzb2x2ZWQgZnJvbSBNYXZlbiBhcnRpZmFjdCAnb3JnLmFwYWNoZS50 b21lZTphcGFjaGUtdG9tZWU6emlwOndlYnByb2ZpbGU6MTAuMS4wJw0KSnVsaSAxMiwgMjAy NSAxMDo1MzoyOCBBTSBvcmcuYXJxdWlsbGlhbi53YXJwLmZ0ZXN0Lmluc3RhbGxhdGlvbi5D b250YWluZXJJbnN0YWxsZXIgdW5wYWNrQ29udGFpbmVyRGlzdHJpYnV0aW9uDQpJTkZPUk1B VElPTjogVGhlIGNvbnRhaW5lciBkaXN0cmlidXRpb24gJ29yZy5hcGFjaGUudG9tZWU6YXBh Y2hlLXRvbWVlOnppcDp3ZWJwcm9maWxlOjEwLjEuMCcgd2FzIGluc3RhbGxlZCBpbnRvICdD OlxUZW1wXGdpdGh1YlxhcnF1aWxsaWFuLWV4dGVuc2lvbi13YXJwXGV4dGVuc2lvblxqc2Yt ZnRlc3RcdGFyZ2V0Jw0KSnVsaSAxMiwgMjAyNSAxMDo1MzoyOCBBTSBvcmcuamJvc3MuYXJx dWlsbGlhbi5kcm9uZS53ZWJkcml2ZXIuZmFjdG9yeS5yZW1vdGUucmV1c2FibGUuUmV1c2Vk U2Vzc2lvblBlcm1hbmVudEZpbGVTdG9yYWdlIHJlYWRTdG9yZQ0KSU5GT1JNQVRJT046IFJl dXNlZCBzZXNzaW9uIHN0b3JlIGlzIG5vdCBhdmFpbGFibGUgYXQgQzpcVXNlcnNca251ZmZp XC5kcm9uZS13ZWJkcml2ZXItc2Vzc2lvbi1zdG9yZSwgYSBuZXcgb25lIHdpbGwgYmUgY3Jl YXRlZC4NCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjUzNiBJTkZPUk1BVElPTiBbbWFpbl0gamF2 YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBTZXJ2ZXIgVmVyc2lvbjogICAgICAgIEFw YWNoZSBUb21jYXQgKFRvbUVFKS8xMC4xLjQzICgxMC4xLjEtU05BUFNIT1QpDQoxMi1KdWwt MjAyNSAxMDo1MzozNS41MzcgSU5GT1JNQVRJT04gW21haW5dIGphdmEubGFuZy5yZWZsZWN0 Lk1ldGhvZC5pbnZva2UgU2VydmVyIGJ1aWx0OiAgICAgICAgICBKdWwgMSAyMDI1IDIxOjMw OjIwIFVUQw0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTM3IElORk9STUFUSU9OIFttYWluXSBq YXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIFNlcnZlciB2ZXJzaW9uIG51bWJlcjog MTAuMS40My4wDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41MzcgSU5GT1JNQVRJT04gW21haW5d IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgT1MgTmFtZTogICAgICAgICAgICAg ICBXaW5kb3dzIDExDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41MzggSU5GT1JNQVRJT04gW21h aW5dIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgT1MgVmVyc2lvbjogICAgICAg ICAgICAxMC4wDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41MzggSU5GT1JNQVRJT04gW21haW5d IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgQXJjaGl0ZWt0dXI6ICAgICAgICAg ICBhbWQ2NA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTM4IElORk9STUFUSU9OIFttYWluXSBq YXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIEphdmEgSG9tZTogICAgICAgICAgICAg QzpcVGVtcFxqZGstMjQuMC4xDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41MzggSU5GT1JNQVRJ T04gW21haW5dIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgSlZNIFZlcnNpb246 ICAgICAgICAgICAyNC4wLjErOS0zMA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTM4IElORk9S TUFUSU9OIFttYWluXSBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIEpWTSBIZXJz dGVsbGVyOiAgICAgICAgT3JhY2xlIENvcnBvcmF0aW9uDQoxMi1KdWwtMjAyNSAxMDo1Mzoz NS41MzggSU5GT1JNQVRJT04gW21haW5dIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZv a2UgQ0FUQUxJTkFfQkFTRTogICAgICAgICBDOlxUZW1wXGdpdGh1YlxhcnF1aWxsaWFuLWV4 dGVuc2lvbi13YXJwXGV4dGVuc2lvblxqc2YtZnRlc3RcdGFyZ2V0XGFwYWNoZS10b21lZS13 ZWJwcm9maWxlLTEwLjEuMA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTM4IElORk9STUFUSU9O IFttYWluXSBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIENBVEFMSU5BX0hPTUU6 ICAgICAgICAgQzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24td2FycFxleHRl bnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUtdG9tZWUtd2VicHJvZmlsZS0xMC4xLjAN CjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NCBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5n LnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1YWDorSGVh cER1bXBPbk91dE9mTWVtb3J5RXJyb3INCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NCBJTkZP Uk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5k IGxpbmUgYXJndW1lbnQ6IC1EdG9tZWUuaHR0cFBvcnQ9ODA4MA0KMTItSnVsLTIwMjUgMTA6 NTM6MzUuNTQ0IElORk9STUFUSU9OIFttYWluXSBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2Qu aW52b2tlIENvbW1hbmQgbGluZSBhcmd1bWVudDogLVhteDc2OG0NCjEyLUp1bC0yMDI1IDEw OjUzOjM1LjU0NCBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9k Lmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1EYXJxdWlsbGlhbi5kZWJ1Zz1mYWxz ZQ0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTQ0IElORk9STUFUSU9OIFttYWluXSBqYXZhLmxh bmcucmVmbGVjdC5NZXRob2QuaW52b2tlIENvbW1hbmQgbGluZSBhcmd1bWVudDogLURvcmcu YXBhY2hlLmNhdGFsaW5hLlNUUklDVF9TRVJWTEVUX0NPTVBMSUFOQ0U9ZmFsc2UNCjEyLUp1 bC0yMDI1IDEwOjUzOjM1LjU0NSBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxl Y3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1Eb3JnLmFwYWNoZS5v cGVuZWpiLnNlcnZsZXQuZmlsdGVycz1vcmcuYXBhY2hlLm9wZW5lamIuYXJxdWlsbGlhbi5j b21tb24uQXJxdWlsbGlhbkZpbHRlclJ1bm5lcj0vQXJxdWlsbGlhblNlcnZsZXRSdW5uZXJF RTkNCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NSBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5s YW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1Eb3Bl bmVqYi5zeXN0ZW0uYXBwcz10cnVlDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41NDUgSU5GT1JN QVRJT04gW21haW5dIGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgQ29tbWFuZCBs aW5lIGFyZ3VtZW50OiAtRHRvbWVlLnJlbW90ZS5zdXBwb3J0PXRydWUNCldBUk5JTkc6IEEg cmVzdHJpY3RlZCBtZXRob2QgaW4gamF2YS5sYW5nLlN5c3RlbSBoYXMgYmVlbiBjYWxsZWQN CldBUk5JTkc6IGphdmEubGFuZy5TeXN0ZW06OmxvYWQgaGFzIGJlZW4gY2FsbGVkIGJ5IG9y Zy5hcGFjaGUudG9tY2F0LmpuaS5MaWJyYXJ5IGluIGFuIHVubmFtZWQgbW9kdWxlIChmaWxl Oi9DOi9UZW1wL2dpdGh1Yi9hcnF1aWxsaWFuLWV4dGVuc2lvbi13YXJwL2V4dGVuc2lvbi9q c2YtZnRlc3QvdGFyZ2V0L2FwYWNoZS10b21lZS13ZWJwcm9maWxlLTEwLjEuMC9saWIvdG9t Y2F0LWpuaS5qYXIpDQpXQVJOSU5HOiBVc2UgLS1lbmFibGUtbmF0aXZlLWFjY2Vzcz1BTEwt VU5OQU1FRCB0byBhdm9pZCBhIHdhcm5pbmcgZm9yIGNhbGxlcnMgaW4gdGhpcyBtb2R1bGUN CldBUk5JTkc6IFJlc3RyaWN0ZWQgbWV0aG9kcyB3aWxsIGJlIGJsb2NrZWQgaW4gYSBmdXR1 cmUgcmVsZWFzZSB1bmxlc3MgbmF0aXZlIGFjY2VzcyBpcyBlbmFibGVkDQoNCjEyLUp1bC0y MDI1IDEwOjUzOjM1LjU0NSBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3Qu TWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1EamF2YS51dGlsLmxvZ2dp bmcuY29uZmlnLmZpbGU9QzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24td2Fy cFxleHRlbnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUtdG9tZWUtd2VicHJvZmlsZS0x MC4xLjBcY29uZlxsb2dnaW5nLnByb3BlcnRpZXMNCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0 NSBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBD b21tYW5kIGxpbmUgYXJndW1lbnQ6IC1qYXZhYWdlbnQ6QzpcVGVtcFxnaXRodWJcYXJxdWls bGlhbi1leHRlbnNpb24td2FycFxleHRlbnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUt dG9tZWUtd2VicHJvZmlsZS0xMC4xLjBcbGliXG9wZW5lamItamF2YWFnZW50Lmphcg0KMTIt SnVsLTIwMjUgMTA6NTM6MzUuNTQ1IElORk9STUFUSU9OIFttYWluXSBqYXZhLmxhbmcucmVm bGVjdC5NZXRob2QuaW52b2tlIENvbW1hbmQgbGluZSBhcmd1bWVudDogLURqYXZhLnV0aWwu bG9nZ2luZy5tYW5hZ2VyPW9yZy5hcGFjaGUuanVsaS5DbGFzc0xvYWRlckxvZ01hbmFnZXIN CjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NSBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5n LnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1EamF2YS5p by50bXBkaXI9QzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24td2FycFxleHRl bnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUtdG9tZWUtd2VicHJvZmlsZS0xMC4xLjBc dGVtcA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTQ1IElORk9STUFUSU9OIFttYWluXSBqYXZh LmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIENvbW1hbmQgbGluZSBhcmd1bWVudDogLURj YXRhbGluYS5iYXNlPUM6XFRlbXBcZ2l0aHViXGFycXVpbGxpYW4tZXh0ZW5zaW9uLXdhcnBc ZXh0ZW5zaW9uXGpzZi1mdGVzdFx0YXJnZXRcYXBhY2hlLXRvbWVlLXdlYnByb2ZpbGUtMTAu MS4wDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41NDUgSU5GT1JNQVRJT04gW21haW5dIGphdmEu bGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgQ29tbWFuZCBsaW5lIGFyZ3VtZW50OiAtRGNh dGFsaW5hLmhvbWU9QzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24td2FycFxl eHRlbnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUtdG9tZWUtd2VicHJvZmlsZS0xMC4x LjANCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NSBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5s YW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC1EY2F0 YWxpbmEuZXh0LmRpcnM9QzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24td2Fy cFxleHRlbnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUtdG9tZWUtd2VicHJvZmlsZS0x MC4xLjBcbGliDQoxMi1KdWwtMjAyNSAxMDo1MzozNS41NDUgSU5GT1JNQVRJT04gW21haW5d IGphdmEubGFuZy5yZWZsZWN0Lk1ldGhvZC5pbnZva2UgQ29tbWFuZCBsaW5lIGFyZ3VtZW50 OiAtRG9yZy5hcGFjaGUudG9tY2F0LnV0aWwuaHR0cC5TZXJ2ZXJDb29raWUuQUxMT1dfSFRU UF9TRVBBUkFUT1JTX0lOX1YwPXRydWUNCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NSBJTkZP Uk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5k IGxpbmUgYXJndW1lbnQ6IC1lYQ0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTQ1IElORk9STUFU SU9OIFttYWluXSBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIENvbW1hbmQgbGlu ZSBhcmd1bWVudDogLS1hZGQtb3BlbnM9amF2YS5iYXNlL2phdmEubGFuZz1BTEwtVU5OQU1F RA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTQ2IElORk9STUFUSU9OIFttYWluXSBqYXZhLmxh bmcucmVmbGVjdC5NZXRob2QuaW52b2tlIENvbW1hbmQgbGluZSBhcmd1bWVudDogLS1hZGQt b3BlbnM9amF2YS5iYXNlL2phdmEuaW89QUxMLVVOTkFNRUQNCjEyLUp1bC0yMDI1IDEwOjUz OjM1LjU0NiBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmlu dm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZh LnV0aWw9QUxMLVVOTkFNRUQNCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NiBJTkZPUk1BVElP TiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUg YXJndW1lbnQ6IC0tYWRkLW9wZW5zPWphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudD1B TEwtVU5OQU1FRA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuNTQ2IElORk9STUFUSU9OIFttYWlu XSBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIENvbW1hbmQgbGluZSBhcmd1bWVu dDogLS1hZGQtb3BlbnM9amF2YS5ybWkvc3VuLnJtaS50cmFuc3BvcnQ9QUxMLVVOTkFNRUQN CjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU0NiBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5n LnJlZmxlY3QuTWV0aG9kLmludm9rZSBDb21tYW5kIGxpbmUgYXJndW1lbnQ6IC0tYWRkLW9w ZW5zPWphdmEuYmFzZS9qZGsuaW50ZXJuYWwubG9hZGVyPUFMTC1VTk5BTUVEDQoxMi1KdWwt MjAyNSAxMDo1MzozNS41NDYgSU5GT1JNQVRJT04gW21haW5dIGphdmEubGFuZy5yZWZsZWN0 Lk1ldGhvZC5pbnZva2UgQ29tbWFuZCBsaW5lIGFyZ3VtZW50OiAtLWFkZC1vcGVucz1qYXZh LmJhc2UvamF2YS5uZXQ9QUxMLVVOTkFNRUQNCjEyLUp1bC0yMDI1IDEwOjUzOjM1LjU1MiBJ TkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBUaGUg QXBhY2hlIFRvbWNhdCBOYXRpdmUgbGlicmFyeSB3aGljaCBhbGxvd3MgdXNpbmcgT3BlblNT TCB3YXMgbm90IGZvdW5kIG9uIHRoZSBqYXZhLmxpYnJhcnkucGF0aDogW0M6XFRlbXBcamRr LTI0LjAuMVxiaW47QzpcV0lORE9XU1xTdW5cSmF2YVxiaW47QzpcV0lORE9XU1xzeXN0ZW0z MjtDOlxXSU5ET1dTO0M6XFRlbXBcamRrLTI0LjAuMVxiaW47YzpcVGVtcFxQb3J0YWJsZUdp dFxiaW47YzpcVGVtcFxQb3J0YWJsZUdpdFx1c3JcYmluO0M6XFRlbXBcV2luTWVyZ2U7Qzpc VGVtcFxhcGFjaGUtbWF2ZW4tMy45LjlcYmluO0M6XFByb2dyYW0gRmlsZXNcQ29tbW9uIEZp bGVzXE9yYWNsZVxKYXZhXGphdmFwYXRoO0M6XFByb2dyYW0gRmlsZXMgKHg4NilcQ29tbW9u IEZpbGVzXE9yYWNsZVxKYXZhXGphdmE4cGF0aDtDOlxQcm9ncmFtIEZpbGVzICh4ODYpXENv bW1vbiBGaWxlc1xPcmFjbGVcSmF2YVxqYXZhcGF0aDtDOlxXaW5kb3dzXHN5c3RlbTMyO0M6 XFdpbmRvd3M7QzpcV2luZG93c1xTeXN0ZW0zMlxXYmVtO0M6XFdpbmRvd3NcU3lzdGVtMzJc V2luZG93c1Bvd2VyU2hlbGxcdjEuMFw7QzpcV2luZG93c1xTeXN0ZW0zMlxPcGVuU1NIXDtD OlxQcm9ncmFtIEZpbGVzICh4ODYpXE5WSURJQSBDb3Jwb3JhdGlvblxQaHlzWFxDb21tb247 QzpcV0lORE9XU1xzeXN0ZW0zMjtDOlxXSU5ET1dTO0M6XFdJTkRPV1NcU3lzdGVtMzJcV2Jl bTtDOlxXSU5ET1dTXFN5c3RlbTMyXFdpbmRvd3NQb3dlclNoZWxsXHYxLjBcO0M6XFdJTkRP V1NcU3lzdGVtMzJcT3BlblNTSFw7QzpcUHJvZ3JhbSBGaWxlc1xOaXRyb2tleVxOaXRyb3B5 XDtDOlxVc2Vyc1xrbnVmZmlcQXBwRGF0YVxMb2NhbFxNaWNyb3NvZnRcV2luZG93c0FwcHM7 QzpcVXNlcnNca251ZmZpXEFwcERhdGFcTG9jYWxcUHJvZ3JhbXNcTWlLVGVYXG1pa3RleFxi aW5ceDY0XDs7Ll0NCjEyLUp1bC0yMDI1IDEwOjUzOjM1Ljc0NCBJTkZPUk1BVElPTiBbbWFp bl0gamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBJbml0aWFsaXNpZXJlIFByb3Rv Y29sSGFuZGxlclsiaHR0cC1uaW8tODA4MCJdDQoxMi1KdWwtMjAyNSAxMDo1MzozNS45MTkg SU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi51dGlsLk9wdGlvbnNMb2cu aW5mbyBVc2luZyAndG9tZWUucmVtb3RlLnN1cHBvcnQ9dHJ1ZScNCjEyLUp1bC0yMDI1IDEw OjUzOjM1LjkyNyBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwu T3B0aW9uc0xvZy5pbmZvIFVzaW5nICdvcGVuZWpiLmpkYmMuZGF0YXNvdXJjZS1jcmVhdG9y PW9yZy5hcGFjaGUudG9tZWUuamRiYy5Ub21FRURhdGFTb3VyY2VDcmVhdG9yJw0KMTItSnVs LTIwMjUgMTA6NTM6MzUuOTc5IElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5l amIuT3BlbkVKQiRJbnN0YW5jZS48aW5pdD4gKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioN CjEyLUp1bC0yMDI1IDEwOjUzOjM1Ljk3OSBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNo ZS5vcGVuZWpiLk9wZW5FSkIkSW5zdGFuY2UuPGluaXQ+IE9wZW5FSkIgaHR0cDovL3RvbWVl LmFwYWNoZS5vcmcvDQoxMi1KdWwtMjAyNSAxMDo1MzozNS45NzkgSU5GT1JNQVRJT04gW21h aW5dIG9yZy5hcGFjaGUub3BlbmVqYi5PcGVuRUpCJEluc3RhbmNlLjxpbml0PiBTdGFydHVw OiBTYXQgSnVsIDEyIDEwOjUzOjM1IENFU1QgMjAyNQ0KMTItSnVsLTIwMjUgMTA6NTM6MzUu OTc5IElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5lamIuT3BlbkVKQiRJbnN0 YW5jZS48aW5pdD4gQ29weXJpZ2h0IDE5OTktMjAyNSAoQykgQXBhY2hlIFRvbUVFIFByb2pl Y3QsIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQoxMi1KdWwtMjAyNSAxMDo1MzozNS45NzkgSU5G T1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5PcGVuRUpCJEluc3RhbmNlLjxp bml0PiBWZXJzaW9uOiAxMC4xLjEtU05BUFNIT1QNCjEyLUp1bC0yMDI1IDEwOjUzOjM1Ljk3 OSBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLk9wZW5FSkIkSW5zdGFu Y2UuPGluaXQ+IEJ1aWxkIGRhdGU6IDIwMjUwNzEyDQoxMi1KdWwtMjAyNSAxMDo1MzozNS45 NzkgSU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5PcGVuRUpCJEluc3Rh bmNlLjxpbml0PiBCdWlsZCB0aW1lOiAwMzo1OQ0KMTItSnVsLTIwMjUgMTA6NTM6MzUuOTc5 IElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5lamIuT3BlbkVKQiRJbnN0YW5j ZS48aW5pdD4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCjEyLUp1bC0yMDI1IDEwOjUz OjM1Ljk4MCBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLk9wZW5FSkIk SW5zdGFuY2UuPGluaXQ+IG9wZW5lamIuaG9tZSA9IEM6XFRlbXBcZ2l0aHViXGFycXVpbGxp YW4tZXh0ZW5zaW9uLXdhcnBcZXh0ZW5zaW9uXGpzZi1mdGVzdFx0YXJnZXRcYXBhY2hlLXRv bWVlLXdlYnByb2ZpbGUtMTAuMS4wDQoxMi1KdWwtMjAyNSAxMDo1MzozNS45ODAgSU5GT1JN QVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5PcGVuRUpCJEluc3RhbmNlLjxpbml0 PiBvcGVuZWpiLmJhc2UgPSBDOlxUZW1wXGdpdGh1YlxhcnF1aWxsaWFuLWV4dGVuc2lvbi13 YXJwXGV4dGVuc2lvblxqc2YtZnRlc3RcdGFyZ2V0XGFwYWNoZS10b21lZS13ZWJwcm9maWxl LTEwLjEuMA0KMTItSnVsLTIwMjUgMTA6NTM6MzUuOTgwIElORk9STUFUSU9OIFttYWluXSBv cmcuYXBhY2hlLm9wZW5lamIuY2RpLkNkaUJ1aWxkZXIuaW5pdGlhbGl6ZU9XQiBDcmVhdGVk IG5ldyBzaW5nbGV0b25TZXJ2aWNlIG9yZy5hcGFjaGUub3BlbmVqYi5jZGkuVGhyZWFkU2lu Z2xldG9uU2VydmljZUltcGxANmUwMDVkYzkNCjEyLUp1bC0yMDI1IDEwOjUzOjM1Ljk4MiBJ TkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLmNkaS5DZGlCdWlsZGVyLmlu aXRpYWxpemVPV0IgU3VjY2VlZGVkIGluIGluc3RhbGxpbmcgc2luZ2xldG9uIHNlcnZpY2UN CjEyLUp1bC0yMDI1IDEwOjUzOjM1Ljk5OSBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNo ZS5vcGVuZWpiLmNvbmZpZy5Db25maWd1cmF0aW9uRmFjdG9yeS5pbml0IFRvbUVFIGNvbmZp Z3VyYXRpb24gZmlsZSBpcyAnQzpcVGVtcFxnaXRodWJcYXJxdWlsbGlhbi1leHRlbnNpb24t d2FycFxleHRlbnNpb25canNmLWZ0ZXN0XHRhcmdldFxhcGFjaGUtdG9tZWUtd2VicHJvZmls ZS0xMC4xLjBcY29uZlx0b21lZS54bWwnDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4wMjAgSU5G T1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5jb25maWcuQ29uZmlndXJhdGlv bkZhY3RvcnkuY29uZmlndXJlU2VydmljZSBDb25maWd1cmluZyBTZXJ2aWNlKGlkPVRvbWNh dCBTZWN1cml0eSBTZXJ2aWNlLCB0eXBlPVNlY3VyaXR5U2VydmljZSwgcHJvdmlkZXItaWQ9 VG9tY2F0IFNlY3VyaXR5IFNlcnZpY2UpDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4wMjIgSU5G T1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5jb25maWcuQ29uZmlndXJhdGlv bkZhY3RvcnkuY29uZmlndXJlU2VydmljZSBDb25maWd1cmluZyBTZXJ2aWNlKGlkPURlZmF1 bHQgVHJhbnNhY3Rpb24gTWFuYWdlciwgdHlwZT1UcmFuc2FjdGlvbk1hbmFnZXIsIHByb3Zp ZGVyLWlkPURlZmF1bHQgVHJhbnNhY3Rpb24gTWFuYWdlcikNCjEyLUp1bC0yMDI1IDEwOjUz OjM2LjAyMyBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuT3B0 aW9uc0xvZy5pbmZvIFVzaW5nICdvcGVuZWpiLnN5c3RlbS5hcHBzPXRydWUnDQoxMi1KdWwt MjAyNSAxMDo1MzozNi4wMjQgSU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVq Yi5jb25maWcuQ29uZmlndXJhdGlvbkZhY3RvcnkuY29uZmlndXJlU2VydmljZSBDb25maWd1 cmluZyBTZXJ2aWNlKGlkPURlZmF1bHQgU2luZ2xldG9uIENvbnRhaW5lciwgdHlwZT1Db250 YWluZXIsIHByb3ZpZGVyLWlkPURlZmF1bHQgU2luZ2xldG9uIENvbnRhaW5lcikNCjEyLUp1 bC0yMDI1IDEwOjUzOjM2LjAyNyBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVu ZWpiLmFzc2VtYmxlci5jbGFzc2ljLkFzc2VtYmxlci5jcmVhdGVSZWNpcGUgQ3JlYXRpbmcg VHJhbnNhY3Rpb25NYW5hZ2VyKGlkPURlZmF1bHQgVHJhbnNhY3Rpb24gTWFuYWdlcikNCjEy LUp1bC0yMDI1IDEwOjUzOjM2LjA2OSBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5v cGVuZWpiLmFzc2VtYmxlci5jbGFzc2ljLkFzc2VtYmxlci5jcmVhdGVSZWNpcGUgQ3JlYXRp bmcgU2VjdXJpdHlTZXJ2aWNlKGlkPVRvbWNhdCBTZWN1cml0eSBTZXJ2aWNlKQ0KMTItSnVs LTIwMjUgMTA6NTM6MzYuMDgxIElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5l amIuYXNzZW1ibGVyLmNsYXNzaWMuQXNzZW1ibGVyLmNyZWF0ZVJlY2lwZSBDcmVhdGluZyBD b250YWluZXIoaWQ9RGVmYXVsdCBTaW5nbGV0b24gQ29udGFpbmVyKQ0KMTItSnVsLTIwMjUg MTA6NTM6MzYuMDkwIElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5lamIuYXNz ZW1ibGVyLmNsYXNzaWMuQXNzZW1ibGVyLmNyZWF0ZUFwcGxpY2F0aW9uIEFzc2VtYmxpbmcg YXBwOiBvcGVuZWpiDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4xNTMgSU5GT1JNQVRJT04gW21h aW5dIG9yZy5hcGFjaGUub3BlbmVqYi51dGlsLk9wdGlvbnNMb2cuaW5mbyBVc2luZyAnb3Bl bmVqYi5qbmRpbmFtZS5mb3JtYXQ9e2RlcGxveW1lbnRJZH17aW50ZXJmYWNlVHlwZS5vcGVu ZWpiTGVnYWN5TmFtZX0nDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4xNjAgSU5GT1JNQVRJT04g W21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5hc3NlbWJsZXIuY2xhc3NpYy5KbmRpQnVpbGRl ci5iaW5kIEpuZGkobmFtZT1vcGVuZWpiL0RlcGxveWVyQnVzaW5lc3NSZW1vdGUpIC0tPiBF amIoZGVwbG95bWVudC1pZD1vcGVuZWpiL0RlcGxveWVyKQ0KMTItSnVsLTIwMjUgMTA6NTM6 MzYuMTYwIElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5lamIuYXNzZW1ibGVy LmNsYXNzaWMuSm5kaUJ1aWxkZXIuYmluZCBKbmRpKG5hbWU9Z2xvYmFsL29wZW5lamIvb3Bl bmVqYi9vcGVuZWpiL0RlcGxveWVyIW9yZy5hcGFjaGUub3BlbmVqYi5hc3NlbWJsZXIuRGVw bG95ZXIpIC0tPiBFamIoZGVwbG95bWVudC1pZD1vcGVuZWpiL0RlcGxveWVyKQ0KMTItSnVs LTIwMjUgMTA6NTM6MzYuMTYxIElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5l amIuYXNzZW1ibGVyLmNsYXNzaWMuSm5kaUJ1aWxkZXIuYmluZCBKbmRpKG5hbWU9Z2xvYmFs L29wZW5lamIvb3BlbmVqYi9vcGVuZWpiL0RlcGxveWVyKSAtLT4gRWpiKGRlcGxveW1lbnQt aWQ9b3BlbmVqYi9EZXBsb3llcikNCjEyLUp1bC0yMDI1IDEwOjUzOjM2LjE2MSBJTkZPUk1B VElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLmFzc2VtYmxlci5jbGFzc2ljLkpuZGlC dWlsZGVyLmJpbmQgSm5kaShuYW1lPW9wZW5lamIvQ29uZmlndXJhdGlvbkluZm9CdXNpbmVz c1JlbW90ZSkgLS0+IEVqYihkZXBsb3ltZW50LWlkPW9wZW5lamIvQ29uZmlndXJhdGlvbklu Zm8pDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4xNjEgSU5GT1JNQVRJT04gW21haW5dIG9yZy5h cGFjaGUub3BlbmVqYi5hc3NlbWJsZXIuY2xhc3NpYy5KbmRpQnVpbGRlci5iaW5kIEpuZGko bmFtZT1nbG9iYWwvb3BlbmVqYi9vcGVuZWpiL29wZW5lamIvRGVwbG95ZXIhb3JnLmFwYWNo ZS5vcGVuZWpiLmFzc2VtYmxlci5jbGFzc2ljLmNtZC5Db25maWd1cmF0aW9uSW5mbykgLS0+ IEVqYihkZXBsb3ltZW50LWlkPW9wZW5lamIvQ29uZmlndXJhdGlvbkluZm8pDQoxMi1KdWwt MjAyNSAxMDo1MzozNi4xNjcgSU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVq Yi5hc3NlbWJsZXIuY2xhc3NpYy5Bc3NlbWJsZXIuc3RhcnRFamJzIENyZWF0ZWQgRWpiKGRl cGxveW1lbnQtaWQ9b3BlbmVqYi9Db25maWd1cmF0aW9uSW5mbywgZWpiLW5hbWU9b3BlbmVq Yi9EZXBsb3llciwgY29udGFpbmVyPURlZmF1bHQgU2luZ2xldG9uIENvbnRhaW5lcikNCjEy LUp1bC0yMDI1IDEwOjUzOjM2LjE2OCBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5v cGVuZWpiLmFzc2VtYmxlci5jbGFzc2ljLkFzc2VtYmxlci5zdGFydEVqYnMgQ3JlYXRlZCBF amIoZGVwbG95bWVudC1pZD1vcGVuZWpiL0RlcGxveWVyLCBlamItbmFtZT1vcGVuZWpiL0Rl cGxveWVyLCBjb250YWluZXI9RGVmYXVsdCBTaW5nbGV0b24gQ29udGFpbmVyKQ0KMTItSnVs LTIwMjUgMTA6NTM6MzYuMTY4IElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5l amIuYXNzZW1ibGVyLmNsYXNzaWMuQXNzZW1ibGVyLnN0YXJ0RWpicyBTdGFydGVkIEVqYihk ZXBsb3ltZW50LWlkPW9wZW5lamIvQ29uZmlndXJhdGlvbkluZm8sIGVqYi1uYW1lPW9wZW5l amIvRGVwbG95ZXIsIGNvbnRhaW5lcj1EZWZhdWx0IFNpbmdsZXRvbiBDb250YWluZXIpDQox Mi1KdWwtMjAyNSAxMDo1MzozNi4xNjggSU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUu b3BlbmVqYi5hc3NlbWJsZXIuY2xhc3NpYy5Bc3NlbWJsZXIuc3RhcnRFamJzIFN0YXJ0ZWQg RWpiKGRlcGxveW1lbnQtaWQ9b3BlbmVqYi9EZXBsb3llciwgZWpiLW5hbWU9b3BlbmVqYi9E ZXBsb3llciwgY29udGFpbmVyPURlZmF1bHQgU2luZ2xldG9uIENvbnRhaW5lcikNCjEyLUp1 bC0yMDI1IDEwOjUzOjM2LjE3MSBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVu ZWpiLmFzc2VtYmxlci5jbGFzc2ljLkFzc2VtYmxlci5kZXBsb3lNQmVhbiBEZXBsb3llZCBN QmVhbihvcGVuZWpiLnVzZXIubWJlYW5zOmFwcGxpY2F0aW9uPW9wZW5lamIsZ3JvdXA9b3Jn LmFwYWNoZS5vcGVuZWpiLmFzc2VtYmxlci5tb25pdG9yaW5nLG5hbWU9Sk1YRGVwbG95ZXIp DQoxMi1KdWwtMjAyNSAxMDo1MzozNi4xNzIgSU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFj aGUub3BlbmVqYi5hc3NlbWJsZXIuY2xhc3NpYy5Bc3NlbWJsZXIuY3JlYXRlQXBwbGljYXRp b24gRGVwbG95ZWQgQXBwbGljYXRpb24ocGF0aD1vcGVuZWpiKQ0KMTItSnVsLTIwMjUgMTA6 NTM6MzYuMjAwIElORk9STUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVy LlNlcnZpY2VNYW5hZ2VyLmluaXRTZXJ2ZXIgQ3JlYXRpbmcgU2VydmVyU2VydmljZShpZD1j eGYpDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4zMDkgSU5GT1JNQVRJT04gW21haW5dIG9yZy5h cGFjaGUub3BlbmVqYi5zZXJ2ZXIuU2VydmljZU1hbmFnZXIuaW5pdFNlcnZlciBDcmVhdGlu ZyBTZXJ2ZXJTZXJ2aWNlKGlkPWN4Zi1ycykNCjEyLUp1bC0yMDI1IDEwOjUzOjM2LjM1MiBJ TkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5TaW1wbGVTZXJ2 aWNlTWFuYWdlci5zdGFydCAgICoqIEJvdW5kIFNlcnZpY2VzICoqDQoxMi1KdWwtMjAyNSAx MDo1MzozNi4zNTIgSU5GT1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2 ZXIuU2ltcGxlU2VydmljZU1hbmFnZXIucHJpbnRSb3cgICBOQU1FICAgICAgICAgICAgICAg ICBJUCAgICAgICAgICAgICAgUE9SVCAgDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4zNTIgSU5G T1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2ZXIuU2ltcGxlU2Vydmlj ZU1hbmFnZXIuc3RhcnQgLS0tLS0tLQ0KMTItSnVsLTIwMjUgMTA6NTM6MzYuMzUyIElORk9S TUFUSU9OIFttYWluXSBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLlNpbXBsZVNlcnZpY2VN YW5hZ2VyLnN0YXJ0IFJlYWR5IQ0KMTItSnVsLTIwMjUgMTA6NTM6MzYuMzUyIElORk9STUFU SU9OIFttYWluXSBqYXZhLmxhbmcucmVmbGVjdC5NZXRob2QuaW52b2tlIFNlcnZlciBpbml0 aWFsaXphdGlvbiBpbiBbOTYxXSBtaWxsaXNlY29uZHMNCjEyLUp1bC0yMDI1IDEwOjUzOjM2 LjM3MSBJTkZPUk1BVElPTiBbbWFpbl0gb3JnLmFwYWNoZS50b21lZS5jYXRhbGluYS5PcGVu RUpCTmFtaW5nQ29udGV4dExpc3RlbmVyLmJpbmRSZXNvdXJjZSBJbXBvcnRpbmcgYSBUb21j YXQgUmVzb3VyY2Ugd2l0aCBpZCAnVXNlckRhdGFiYXNlJyBvZiB0eXBlICdvcmcuYXBhY2hl LmNhdGFsaW5hLlVzZXJEYXRhYmFzZScuDQoxMi1KdWwtMjAyNSAxMDo1MzozNi4zNzMgSU5G T1JNQVRJT04gW21haW5dIG9yZy5hcGFjaGUub3BlbmVqYi5hc3NlbWJsZXIuY2xhc3NpYy5B c3NlbWJsZXIuY3JlYXRlUmVjaXBlIENyZWF0aW5nIFJlc291cmNlKGlkPVVzZXJEYXRhYmFz ZSkNCjEyLUp1bC0yMDI1IDEwOjUzOjM2LjM4NCBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5s YW5nLnJlZmxlY3QuTWV0aG9kLmludm9rZSBTdGFydGluZyBzZXJ2aWNlIFtDYXRhbGluYV0N CjEyLUp1bC0yMDI1IDEwOjUzOjM2LjM4NCBJTkZPUk1BVElPTiBbbWFpbl0gamF2YS5sYW5n LnJlZmxlY3QuTWV0aG9kLmludm9rZSBTdGFydGluZyBTZXJ2bGV0IGVuZ2luZTogW0FwYWNo ZSBUb21jYXQgKFRvbUVFKS8xMC4xLjQzICgxMC4xLjEtU05BUFNIT1QpXQ0KMTItSnVsLTIw MjUgMTA6NTM6MzYuNDM1IElORk9STUFUSU9OIFttYWluXSBqYXZhLmxhbmcucmVmbGVjdC5N ZXRob2QuaW52b2tlIFN0YXJ0aW5nIFByb3RvY29sSGFuZGxlciBbImh0dHAtbmlvLTgwODAi XQ0KMTItSnVsLTIwMjUgMTA6NTM6MzYuNDQ5IElORk9STUFUSU9OIFttYWluXSBqYXZhLmxh bmcucmVmbGVjdC5NZXRob2QuaW52b2tlIFNlcnZlciBzdGFydHVwIGluIFs5Nl0gbWlsbGlz ZWNvbmRzDQpqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRpb25FeGNlcHRpb246IGphdmEu bGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IGNhbid0IHBhcnNlIGFyZ3VtZW50IG51 bWJlcjogDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2su cmVwb3J0KEZ1dHVyZVRhc2suamF2YToxMjQpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5j b25jdXJyZW50LkZ1dHVyZVRhc2suZ2V0KEZ1dHVyZVRhc2suamF2YToxOTMpDQoJYXQgb3Jn LmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjYz KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi51dGlsLkxvZ2dlci5mb3JtYXRNZXNzYWdlKExv Z2dlci5qYXZhOjM5OCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIudXRpbC5Mb2dnZXIud2Fy bmluZyhMb2dnZXIuamF2YTo2NDMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuc2Vj dXJpdHkuQWJzdHJhY3RTZWN1cml0eVNlcnZpY2UuaXNDYWxsZXJBdXRob3JpemVkKEFic3Ry YWN0U2VjdXJpdHlTZXJ2aWNlLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5j b3JlLnNpbmdsZXRvbi5TaW5nbGV0b25Db250YWluZXIuaW52b2tlKFNpbmdsZXRvbkNvbnRh aW5lci5qYXZhOjE5MikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9t ZVByb3h5SGFuZGxlci5jcmVhdGUoRWpiSG9tZVByb3h5SGFuZGxlci5qYXZhOjM0MykNCglh dCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5faW52 b2tlKEVqYkhvbWVQcm94eUhhbmRsZXIuamF2YToxOTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVu ZWpiLmNvcmUuaXZtLkJhc2VFamJQcm94eUhhbmRsZXIuaW52b2tlKEJhc2VFamJQcm94eUhh bmRsZXIuamF2YTozNDkpDQoJYXQgamRrLnByb3h5My9qZGsucHJveHkzLiRQcm94eTMwLmNy ZWF0ZShVbmtub3duIFNvdXJjZSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0u bmFtaW5nLkJ1c2luZXNzUmVtb3RlUmVmZXJlbmNlLmdldE9iamVjdChCdXNpbmVzc1JlbW90 ZVJlZmVyZW5jZS5qYXZhOjM2KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLml2bS5u YW1pbmcuSXZtQ29udGV4dC5sb29rdXAoSXZtQ29udGV4dC5qYXZhOjE4NikNCglhdCBvcmcu YXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLmRvTG9va3Vw KEpuZGlSZXF1ZXN0SGFuZGxlci5qYXZhOjI2MSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIu c2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLnByb2Nlc3NSZXNwb25zZShKbmRpUmVx dWVzdEhhbmRsZXIuamF2YToxNzQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5l amJkLkVqYkRhZW1vbi5wcm9jZXNzSm5kaVJlc3BvbnNlKEVqYkRhZW1vbi5qYXZhOjM4MCkN CglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuRWpiRGFlbW9uLnNlcnZpY2Uo RWpiRGFlbW9uLmphdmE6MjgyKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2ZXIuZWpi ZC5FamJTZXJ2ZXIuc2VydmljZShFamJTZXJ2ZXIuamF2YToxMDQpDQoJYXQgb3JnLmFwYWNo ZS5vcGVuZWpiLnNlcnZlci5odHRwZC5TZXJ2ZXJTZXJ2bGV0LnNlcnZpY2UoU2VydmVyU2Vy dmxldC5qYXZhOjYwKQ0KCWF0IGpha2FydGEuc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNl cnZpY2UoSHR0cFNlcnZsZXQuamF2YTo2NTgpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5j b3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlv bkZpbHRlckNoYWluLmphdmE6MTk1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5B cHBsaWNhdGlvbkZpbHRlckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4u amF2YToxNDApDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkV3JhcHBl clZhbHZlLmludm9rZShTdGFuZGFyZFdyYXBwZXJWYWx2ZS5qYXZhOjE2NykNCglhdCBvcmcu YXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRDb250ZXh0VmFsdmUuaW52b2tlKFN0YW5k YXJkQ29udGV4dFZhbHZlLmphdmE6OTApDQoJYXQgb3JnLmFwYWNoZS50b21lZS5jYXRhbGlu YS5PcGVuRUpCVmFsdmUuaW52b2tlKE9wZW5FSkJWYWx2ZS5qYXZhOjQ1KQ0KCWF0IG9yZy5h cGFjaGUuY2F0YWxpbmEuY29yZS5TdGFuZGFyZEhvc3RWYWx2ZS5pbnZva2UoU3RhbmRhcmRI b3N0VmFsdmUuamF2YToxMTYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJy b3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJyb3JSZXBvcnRWYWx2ZS5qYXZhOjkzKQ0KCWF0IG9y Zy5hcGFjaGUudG9tZWUuY2F0YWxpbmEuT3BlbkVKQlNlY3VyaXR5TGlzdGVuZXIkUmVxdWVz dENhcHR1cmVyLmludm9rZShPcGVuRUpCU2VjdXJpdHlMaXN0ZW5lci5qYXZhOjk3KQ0KCWF0 IG9yZy5hcGFjaGUuY2F0YWxpbmEudmFsdmVzLkFic3RyYWN0QWNjZXNzTG9nVmFsdmUuaW52 b2tlKEFic3RyYWN0QWNjZXNzTG9nVmFsdmUuamF2YTo2NjYpDQoJYXQgb3JnLmFwYWNoZS5j YXRhbGluYS5jb3JlLlN0YW5kYXJkRW5naW5lVmFsdmUuaW52b2tlKFN0YW5kYXJkRW5naW5l VmFsdmUuamF2YTo3NCkNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rvci5Db3lv dGVBZGFwdGVyLnNlcnZpY2UoQ295b3RlQWRhcHRlci5qYXZhOjM0NCkNCglhdCBvcmcuYXBh Y2hlLmNveW90ZS5odHRwMTEuSHR0cDExUHJvY2Vzc29yLnNlcnZpY2UoSHR0cDExUHJvY2Vz c29yLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUuY295b3RlLkFic3RyYWN0UHJvY2Vzc29y TGlnaHQucHJvY2VzcyhBYnN0cmFjdFByb2Nlc3NvckxpZ2h0LmphdmE6NjMpDQoJYXQgb3Jn LmFwYWNoZS5jb3lvdGUuQWJzdHJhY3RQcm90b2NvbCRDb25uZWN0aW9uSGFuZGxlci5wcm9j ZXNzKEFic3RyYWN0UHJvdG9jb2wuamF2YTo5MDMpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQu dXRpbC5uZXQuTmlvRW5kcG9pbnQkU29ja2V0UHJvY2Vzc29yLmRvUnVuKE5pb0VuZHBvaW50 LmphdmE6MTc2OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLm5ldC5Tb2NrZXRQcm9j ZXNzb3JCYXNlLnJ1bihTb2NrZXRQcm9jZXNzb3JCYXNlLmphdmE6NTIpDQoJYXQgb3JnLmFw YWNoZS50b21jYXQudXRpbC50aHJlYWRzLlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIo VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE4OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51 dGlsLnRocmVhZHMuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4 ZWN1dG9yLmphdmE6NjU4KQ0KCWF0IG9yZy5hcGFjaGUudG9tY2F0LnV0aWwudGhyZWFkcy5U YXNrVGhyZWFkJFdyYXBwaW5nUnVubmFibGUucnVuKFRhc2tUaHJlYWQuamF2YTo2MykNCglh dCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6MTQ0NykNCkNh dXNlZCBieTogamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogY2FuJ3QgcGFy c2UgYXJndW1lbnQgbnVtYmVyOiANCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VG b3JtYXQuc2V0Rm9ybWF0RnJvbVBhdHRlcm4oTWVzc2FnZUZvcm1hdC5qYXZhOjE2NDQpDQoJ YXQgamF2YS5iYXNlL2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybkltcGwo TWVzc2FnZUZvcm1hdC5qYXZhOjY2MCkNCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3Nh Z2VGb3JtYXQuPGluaXQ+KE1lc3NhZ2VGb3JtYXQuamF2YTo1MTYpDQoJYXQgb3JnLmFwYWNo ZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIkMS5jYWxsKE1lbW9pemVyLmphdmE6NTIpDQoJYXQg amF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRh c2suamF2YTozMjgpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29t cHV0ZShNZW1vaXplci5qYXZhOjU5KQ0KCS4uLiAzNyBtb3JlDQpDYXVzZWQgYnk6IGphdmEu bGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb246IEZvciBpbnB1dCBzdHJpbmc6ICIiDQoJYXQg amF2YS5iYXNlL2phdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24uZm9ySW5wdXRTdHJp bmcoTnVtYmVyRm9ybWF0RXhjZXB0aW9uLmphdmE6NjcpDQoJYXQgamF2YS5iYXNlL2phdmEu bGFuZy5JbnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo1NDEpDQoJYXQgamF2YS5iYXNl L2phdmEubGFuZy5JbnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo2NjEpDQoJYXQgamF2 YS5iYXNlL2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdEZyb21QYXR0ZXJuKE1l c3NhZ2VGb3JtYXQuamF2YToxNjQyKQ0KCS4uLiA0MiBtb3JlDQpqYXZhLnV0aWwuY29uY3Vy cmVudC5FeGVjdXRpb25FeGNlcHRpb246IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNl cHRpb246IGNhbid0IHBhcnNlIGFyZ3VtZW50IG51bWJlcjogDQoJYXQgamF2YS5iYXNlL2ph dmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucmVwb3J0KEZ1dHVyZVRhc2suamF2YTox MjQpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2suZ2V0 KEZ1dHVyZVRhc2suamF2YToxOTMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVt b2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjYzKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVq Yi51dGlsLkxvZ2dlci5mb3JtYXRNZXNzYWdlKExvZ2dlci5qYXZhOjM5OCkNCglhdCBvcmcu YXBhY2hlLm9wZW5lamIudXRpbC5Mb2dnZXIud2FybmluZyhMb2dnZXIuamF2YTo2NDMpDQoJ YXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuc2VjdXJpdHkuQWJzdHJhY3RTZWN1cml0eVNl cnZpY2UuaXNDYWxsZXJBdXRob3JpemVkKEFic3RyYWN0U2VjdXJpdHlTZXJ2aWNlLmphdmE6 Mzk4KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLnNpbmdsZXRvbi5TaW5nbGV0b25D b250YWluZXIuaW52b2tlKFNpbmdsZXRvbkNvbnRhaW5lci5qYXZhOjE5MikNCglhdCBvcmcu YXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5jcmVhdGUoRWpi SG9tZVByb3h5SGFuZGxlci5qYXZhOjM0MykNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29y ZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5faW52b2tlKEVqYkhvbWVQcm94eUhhbmRsZXIu amF2YToxOTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuaXZtLkJhc2VFamJQcm94 eUhhbmRsZXIuaW52b2tlKEJhc2VFamJQcm94eUhhbmRsZXIuamF2YTozNDkpDQoJYXQgamRr LnByb3h5My9qZGsucHJveHkzLiRQcm94eTMwLmNyZWF0ZShVbmtub3duIFNvdXJjZSkNCglh dCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0ubmFtaW5nLkJ1c2luZXNzUmVtb3RlUmVm ZXJlbmNlLmdldE9iamVjdChCdXNpbmVzc1JlbW90ZVJlZmVyZW5jZS5qYXZhOjM2KQ0KCWF0 IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLml2bS5uYW1pbmcuSXZtQ29udGV4dC5sb29rdXAo SXZtQ29udGV4dC5qYXZhOjE4NikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVq YmQuSm5kaVJlcXVlc3RIYW5kbGVyLmRvTG9va3VwKEpuZGlSZXF1ZXN0SGFuZGxlci5qYXZh OjI2MSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RI YW5kbGVyLnByb2Nlc3NSZXNwb25zZShKbmRpUmVxdWVzdEhhbmRsZXIuamF2YToxNzQpDQoJ YXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5lamJkLkVqYkRhZW1vbi5wcm9jZXNzSm5k aVJlc3BvbnNlKEVqYkRhZW1vbi5qYXZhOjM4MCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIu c2VydmVyLmVqYmQuRWpiRGFlbW9uLnNlcnZpY2UoRWpiRGFlbW9uLmphdmE6MjgyKQ0KCWF0 IG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2ZXIuZWpiZC5FamJTZXJ2ZXIuc2VydmljZShFamJT ZXJ2ZXIuamF2YToxMDQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5odHRwZC5T ZXJ2ZXJTZXJ2bGV0LnNlcnZpY2UoU2VydmVyU2VydmxldC5qYXZhOjYwKQ0KCWF0IGpha2Fy dGEuc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo2 NTgpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hh aW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MTk1KQ0K CWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRlckNoYWluLmRv RmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToxNDApDQoJYXQgb3JnLmFwYWNo ZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkV3JhcHBlclZhbHZlLmludm9rZShTdGFuZGFyZFdy YXBwZXJWYWx2ZS5qYXZhOjE2NykNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3Rh bmRhcmRDb250ZXh0VmFsdmUuaW52b2tlKFN0YW5kYXJkQ29udGV4dFZhbHZlLmphdmE6OTAp DQoJYXQgb3JnLmFwYWNoZS50b21lZS5jYXRhbGluYS5PcGVuRUpCVmFsdmUuaW52b2tlKE9w ZW5FSkJWYWx2ZS5qYXZhOjQ1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5TdGFu ZGFyZEhvc3RWYWx2ZS5pbnZva2UoU3RhbmRhcmRIb3N0VmFsdmUuamF2YToxMTYpDQoJYXQg b3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJy b3JSZXBvcnRWYWx2ZS5qYXZhOjkzKQ0KCWF0IG9yZy5hcGFjaGUudG9tZWUuY2F0YWxpbmEu T3BlbkVKQlNlY3VyaXR5TGlzdGVuZXIkUmVxdWVzdENhcHR1cmVyLmludm9rZShPcGVuRUpC U2VjdXJpdHlMaXN0ZW5lci5qYXZhOjk3KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEudmFs dmVzLkFic3RyYWN0QWNjZXNzTG9nVmFsdmUuaW52b2tlKEFic3RyYWN0QWNjZXNzTG9nVmFs dmUuamF2YTo2NjYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkRW5n aW5lVmFsdmUuaW52b2tlKFN0YW5kYXJkRW5naW5lVmFsdmUuamF2YTo3NCkNCglhdCBvcmcu YXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rvci5Db3lvdGVBZGFwdGVyLnNlcnZpY2UoQ295b3Rl QWRhcHRlci5qYXZhOjM0NCkNCglhdCBvcmcuYXBhY2hlLmNveW90ZS5odHRwMTEuSHR0cDEx UHJvY2Vzc29yLnNlcnZpY2UoSHR0cDExUHJvY2Vzc29yLmphdmE6Mzk4KQ0KCWF0IG9yZy5h cGFjaGUuY295b3RlLkFic3RyYWN0UHJvY2Vzc29yTGlnaHQucHJvY2VzcyhBYnN0cmFjdFBy b2Nlc3NvckxpZ2h0LmphdmE6NjMpDQoJYXQgb3JnLmFwYWNoZS5jb3lvdGUuQWJzdHJhY3RQ cm90b2NvbCRDb25uZWN0aW9uSGFuZGxlci5wcm9jZXNzKEFic3RyYWN0UHJvdG9jb2wuamF2 YTo5MDMpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC5uZXQuTmlvRW5kcG9pbnQkU29j a2V0UHJvY2Vzc29yLmRvUnVuKE5pb0VuZHBvaW50LmphdmE6MTc2OSkNCglhdCBvcmcuYXBh Y2hlLnRvbWNhdC51dGlsLm5ldC5Tb2NrZXRQcm9jZXNzb3JCYXNlLnJ1bihTb2NrZXRQcm9j ZXNzb3JCYXNlLmphdmE6NTIpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC50aHJlYWRz LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6 MTE4OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLnRocmVhZHMuVGhyZWFkUG9vbEV4 ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjU4KQ0KCWF0IG9y Zy5hcGFjaGUudG9tY2F0LnV0aWwudGhyZWFkcy5UYXNrVGhyZWFkJFdyYXBwaW5nUnVubmFi bGUucnVuKFRhc2tUaHJlYWQuamF2YTo2MykNCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRo cmVhZC5ydW4oVGhyZWFkLmphdmE6MTQ0NykNCkNhdXNlZCBieTogamF2YS5sYW5nLklsbGVn YWxBcmd1bWVudEV4Y2VwdGlvbjogY2FuJ3QgcGFyc2UgYXJndW1lbnQgbnVtYmVyOiANCglh dCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0RnJvbVBhdHRl cm4oTWVzc2FnZUZvcm1hdC5qYXZhOjE2NDQpDQoJYXQgamF2YS5iYXNlL2phdmEudGV4dC5N ZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybkltcGwoTWVzc2FnZUZvcm1hdC5qYXZhOjY2MCkN CglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuPGluaXQ+KE1lc3NhZ2VG b3JtYXQuamF2YTo1MTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIk MS5jYWxsKE1lbW9pemVyLmphdmE6NTIpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25j dXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YTozMjgpDQoJYXQgb3JnLmFw YWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjU5KQ0K CS4uLiAzNyBtb3JlDQpDYXVzZWQgYnk6IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRp b246IEZvciBpbnB1dCBzdHJpbmc6ICIiDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5OdW1i ZXJGb3JtYXRFeGNlcHRpb24uZm9ySW5wdXRTdHJpbmcoTnVtYmVyRm9ybWF0RXhjZXB0aW9u LmphdmE6NjcpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5JbnRlZ2VyLnBhcnNlSW50KElu dGVnZXIuamF2YTo1NDEpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5JbnRlZ2VyLnBhcnNl SW50KEludGVnZXIuamF2YTo2NjEpDQoJYXQgamF2YS5iYXNlL2phdmEudGV4dC5NZXNzYWdl Rm9ybWF0LnNldEZvcm1hdEZyb21QYXR0ZXJuKE1lc3NhZ2VGb3JtYXQuamF2YToxNjQyKQ0K CS4uLiA0MiBtb3JlDQpqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRpb25FeGNlcHRpb246 IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IGNhbid0IHBhcnNlIGFyZ3Vt ZW50IG51bWJlcjogDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVy ZVRhc2sucmVwb3J0KEZ1dHVyZVRhc2suamF2YToxMjQpDQoJYXQgamF2YS5iYXNlL2phdmEu dXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2suZ2V0KEZ1dHVyZVRhc2suamF2YToxOTMpDQoJ YXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5q YXZhOjYzKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi51dGlsLkxvZ2dlci5mb3JtYXRNZXNz YWdlKExvZ2dlci5qYXZhOjM5OCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIudXRpbC5Mb2dn ZXIud2FybmluZyhMb2dnZXIuamF2YTo2NDMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNv cmUuc2VjdXJpdHkuQWJzdHJhY3RTZWN1cml0eVNlcnZpY2UuaXNDYWxsZXJBdXRob3JpemVk KEFic3RyYWN0U2VjdXJpdHlTZXJ2aWNlLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUub3Bl bmVqYi5jb3JlLnNpbmdsZXRvbi5TaW5nbGV0b25Db250YWluZXIuaW52b2tlKFNpbmdsZXRv bkNvbnRhaW5lci5qYXZhOjE5MikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0u RWpiSG9tZVByb3h5SGFuZGxlci5jcmVhdGUoRWpiSG9tZVByb3h5SGFuZGxlci5qYXZhOjM0 MykNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxl ci5faW52b2tlKEVqYkhvbWVQcm94eUhhbmRsZXIuamF2YToxOTYpDQoJYXQgb3JnLmFwYWNo ZS5vcGVuZWpiLmNvcmUuaXZtLkJhc2VFamJQcm94eUhhbmRsZXIuaW52b2tlKEJhc2VFamJQ cm94eUhhbmRsZXIuamF2YTozNDkpDQoJYXQgamRrLnByb3h5My9qZGsucHJveHkzLiRQcm94 eTMwLmNyZWF0ZShVbmtub3duIFNvdXJjZSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29y ZS5pdm0ubmFtaW5nLkJ1c2luZXNzUmVtb3RlUmVmZXJlbmNlLmdldE9iamVjdChCdXNpbmVz c1JlbW90ZVJlZmVyZW5jZS5qYXZhOjM2KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3Jl Lml2bS5uYW1pbmcuSXZtQ29udGV4dC5sb29rdXAoSXZtQ29udGV4dC5qYXZhOjE4NikNCglh dCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLmRv TG9va3VwKEpuZGlSZXF1ZXN0SGFuZGxlci5qYXZhOjI2MSkNCglhdCBvcmcuYXBhY2hlLm9w ZW5lamIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLnByb2Nlc3NSZXNwb25zZShK bmRpUmVxdWVzdEhhbmRsZXIuamF2YToxNzQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNl cnZlci5lamJkLkVqYkRhZW1vbi5wcm9jZXNzSm5kaVJlc3BvbnNlKEVqYkRhZW1vbi5qYXZh OjM4MCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuRWpiRGFlbW9uLnNl cnZpY2UoRWpiRGFlbW9uLmphdmE6MjgyKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2 ZXIuZWpiZC5FamJTZXJ2ZXIuc2VydmljZShFamJTZXJ2ZXIuamF2YToxMDQpDQoJYXQgb3Jn LmFwYWNoZS5vcGVuZWpiLnNlcnZlci5odHRwZC5TZXJ2ZXJTZXJ2bGV0LnNlcnZpY2UoU2Vy dmVyU2VydmxldC5qYXZhOjYwKQ0KCWF0IGpha2FydGEuc2VydmxldC5odHRwLkh0dHBTZXJ2 bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo2NTgpDQoJYXQgb3JnLmFwYWNoZS5jYXRh bGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBs aWNhdGlvbkZpbHRlckNoYWluLmphdmE6MTk1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEu Y29yZS5BcHBsaWNhdGlvbkZpbHRlckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVy Q2hhaW4uamF2YToxNDApDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJk V3JhcHBlclZhbHZlLmludm9rZShTdGFuZGFyZFdyYXBwZXJWYWx2ZS5qYXZhOjE2NykNCglh dCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRDb250ZXh0VmFsdmUuaW52b2tl KFN0YW5kYXJkQ29udGV4dFZhbHZlLmphdmE6OTApDQoJYXQgb3JnLmFwYWNoZS50b21lZS5j YXRhbGluYS5PcGVuRUpCVmFsdmUuaW52b2tlKE9wZW5FSkJWYWx2ZS5qYXZhOjQ1KQ0KCWF0 IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5TdGFuZGFyZEhvc3RWYWx2ZS5pbnZva2UoU3Rh bmRhcmRIb3N0VmFsdmUuamF2YToxMTYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2 ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJyb3JSZXBvcnRWYWx2ZS5qYXZhOjkzKQ0K CWF0IG9yZy5hcGFjaGUudG9tZWUuY2F0YWxpbmEuT3BlbkVKQlNlY3VyaXR5TGlzdGVuZXIk UmVxdWVzdENhcHR1cmVyLmludm9rZShPcGVuRUpCU2VjdXJpdHlMaXN0ZW5lci5qYXZhOjk3 KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEudmFsdmVzLkFic3RyYWN0QWNjZXNzTG9nVmFs dmUuaW52b2tlKEFic3RyYWN0QWNjZXNzTG9nVmFsdmUuamF2YTo2NjYpDQoJYXQgb3JnLmFw YWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkRW5naW5lVmFsdmUuaW52b2tlKFN0YW5kYXJk RW5naW5lVmFsdmUuamF2YTo3NCkNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rv ci5Db3lvdGVBZGFwdGVyLnNlcnZpY2UoQ295b3RlQWRhcHRlci5qYXZhOjM0NCkNCglhdCBv cmcuYXBhY2hlLmNveW90ZS5odHRwMTEuSHR0cDExUHJvY2Vzc29yLnNlcnZpY2UoSHR0cDEx UHJvY2Vzc29yLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUuY295b3RlLkFic3RyYWN0UHJv Y2Vzc29yTGlnaHQucHJvY2VzcyhBYnN0cmFjdFByb2Nlc3NvckxpZ2h0LmphdmE6NjMpDQoJ YXQgb3JnLmFwYWNoZS5jb3lvdGUuQWJzdHJhY3RQcm90b2NvbCRDb25uZWN0aW9uSGFuZGxl ci5wcm9jZXNzKEFic3RyYWN0UHJvdG9jb2wuamF2YTo5MDMpDQoJYXQgb3JnLmFwYWNoZS50 b21jYXQudXRpbC5uZXQuTmlvRW5kcG9pbnQkU29ja2V0UHJvY2Vzc29yLmRvUnVuKE5pb0Vu ZHBvaW50LmphdmE6MTc2OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLm5ldC5Tb2Nr ZXRQcm9jZXNzb3JCYXNlLnJ1bihTb2NrZXRQcm9jZXNzb3JCYXNlLmphdmE6NTIpDQoJYXQg b3JnLmFwYWNoZS50b21jYXQudXRpbC50aHJlYWRzLlRocmVhZFBvb2xFeGVjdXRvci5ydW5X b3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE4OSkNCglhdCBvcmcuYXBhY2hlLnRv bWNhdC51dGlsLnRocmVhZHMuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFk UG9vbEV4ZWN1dG9yLmphdmE6NjU4KQ0KCWF0IG9yZy5hcGFjaGUudG9tY2F0LnV0aWwudGhy ZWFkcy5UYXNrVGhyZWFkJFdyYXBwaW5nUnVubmFibGUucnVuKFRhc2tUaHJlYWQuamF2YTo2 MykNCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6MTQ0 NykNCkNhdXNlZCBieTogamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogY2Fu J3QgcGFyc2UgYXJndW1lbnQgbnVtYmVyOiANCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1l c3NhZ2VGb3JtYXQuc2V0Rm9ybWF0RnJvbVBhdHRlcm4oTWVzc2FnZUZvcm1hdC5qYXZhOjE2 NDQpDQoJYXQgamF2YS5iYXNlL2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVy bkltcGwoTWVzc2FnZUZvcm1hdC5qYXZhOjY2MCkNCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0 Lk1lc3NhZ2VGb3JtYXQuPGluaXQ+KE1lc3NhZ2VGb3JtYXQuamF2YTo1MTYpDQoJYXQgb3Jn LmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIkMS5jYWxsKE1lbW9pemVyLmphdmE6NTIp DQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1 dHVyZVRhc2suamF2YTozMjgpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6 ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjU5KQ0KCS4uLiAzNyBtb3JlDQpDYXVzZWQgYnk6 IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb246IEZvciBpbnB1dCBzdHJpbmc6ICIi DQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24uZm9ySW5w dXRTdHJpbmcoTnVtYmVyRm9ybWF0RXhjZXB0aW9uLmphdmE6NjcpDQoJYXQgamF2YS5iYXNl L2phdmEubGFuZy5JbnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo1NDEpDQoJYXQgamF2 YS5iYXNlL2phdmEubGFuZy5JbnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo2NjEpDQoJ YXQgamF2YS5iYXNlL2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdEZyb21QYXR0 ZXJuKE1lc3NhZ2VGb3JtYXQuamF2YToxNjQyKQ0KCS4uLiA0MiBtb3JlDQpqYXZhLnV0aWwu Y29uY3VycmVudC5FeGVjdXRpb25FeGNlcHRpb246IGphdmEubGFuZy5JbGxlZ2FsQXJndW1l bnRFeGNlcHRpb246IGNhbid0IHBhcnNlIGFyZ3VtZW50IG51bWJlcjogDQoJYXQgamF2YS5i YXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucmVwb3J0KEZ1dHVyZVRhc2su amF2YToxMjQpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRh c2suZ2V0KEZ1dHVyZVRhc2suamF2YToxOTMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0 aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjYzKQ0KCWF0IG9yZy5hcGFjaGUu b3BlbmVqYi51dGlsLkxvZ2dlci5mb3JtYXRNZXNzYWdlKExvZ2dlci5qYXZhOjM5OCkNCglh dCBvcmcuYXBhY2hlLm9wZW5lamIudXRpbC5Mb2dnZXIud2FybmluZyhMb2dnZXIuamF2YTo2 NDMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuc2VjdXJpdHkuQWJzdHJhY3RTZWN1 cml0eVNlcnZpY2UuaXNDYWxsZXJBdXRob3JpemVkKEFic3RyYWN0U2VjdXJpdHlTZXJ2aWNl LmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLnNpbmdsZXRvbi5TaW5n bGV0b25Db250YWluZXIuaW52b2tlKFNpbmdsZXRvbkNvbnRhaW5lci5qYXZhOjE5MikNCglh dCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5jcmVh dGUoRWpiSG9tZVByb3h5SGFuZGxlci5qYXZhOjM0MykNCglhdCBvcmcuYXBhY2hlLm9wZW5l amIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5faW52b2tlKEVqYkhvbWVQcm94eUhh bmRsZXIuamF2YToxOTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuaXZtLkJhc2VF amJQcm94eUhhbmRsZXIuaW52b2tlKEJhc2VFamJQcm94eUhhbmRsZXIuamF2YTozNDkpDQoJ YXQgamRrLnByb3h5My9qZGsucHJveHkzLiRQcm94eTMwLmNyZWF0ZShVbmtub3duIFNvdXJj ZSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0ubmFtaW5nLkJ1c2luZXNzUmVt b3RlUmVmZXJlbmNlLmdldE9iamVjdChCdXNpbmVzc1JlbW90ZVJlZmVyZW5jZS5qYXZhOjM2 KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLml2bS5uYW1pbmcuSXZtQ29udGV4dC5s b29rdXAoSXZtQ29udGV4dC5qYXZhOjE4NikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2Vy dmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLmRvTG9va3VwKEpuZGlSZXF1ZXN0SGFuZGxl ci5qYXZhOjI2MSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuSm5kaVJl cXVlc3RIYW5kbGVyLnByb2Nlc3NSZXNwb25zZShKbmRpUmVxdWVzdEhhbmRsZXIuamF2YTox NzQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5lamJkLkVqYkRhZW1vbi5wcm9j ZXNzSm5kaVJlc3BvbnNlKEVqYkRhZW1vbi5qYXZhOjM4MCkNCglhdCBvcmcuYXBhY2hlLm9w ZW5lamIuc2VydmVyLmVqYmQuRWpiRGFlbW9uLnNlcnZpY2UoRWpiRGFlbW9uLmphdmE6Mjgy KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2ZXIuZWpiZC5FamJTZXJ2ZXIuc2Vydmlj ZShFamJTZXJ2ZXIuamF2YToxMDQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5o dHRwZC5TZXJ2ZXJTZXJ2bGV0LnNlcnZpY2UoU2VydmVyU2VydmxldC5qYXZhOjYwKQ0KCWF0 IGpha2FydGEuc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQu amF2YTo2NTgpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmls dGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6 MTk1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRlckNo YWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToxNDApDQoJYXQgb3Jn LmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkV3JhcHBlclZhbHZlLmludm9rZShTdGFu ZGFyZFdyYXBwZXJWYWx2ZS5qYXZhOjE2NykNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNv cmUuU3RhbmRhcmRDb250ZXh0VmFsdmUuaW52b2tlKFN0YW5kYXJkQ29udGV4dFZhbHZlLmph dmE6OTApDQoJYXQgb3JnLmFwYWNoZS50b21lZS5jYXRhbGluYS5PcGVuRUpCVmFsdmUuaW52 b2tlKE9wZW5FSkJWYWx2ZS5qYXZhOjQ1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29y ZS5TdGFuZGFyZEhvc3RWYWx2ZS5pbnZva2UoU3RhbmRhcmRIb3N0VmFsdmUuamF2YToxMTYp DQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZv a2UoRXJyb3JSZXBvcnRWYWx2ZS5qYXZhOjkzKQ0KCWF0IG9yZy5hcGFjaGUudG9tZWUuY2F0 YWxpbmEuT3BlbkVKQlNlY3VyaXR5TGlzdGVuZXIkUmVxdWVzdENhcHR1cmVyLmludm9rZShP cGVuRUpCU2VjdXJpdHlMaXN0ZW5lci5qYXZhOjk3KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxp bmEudmFsdmVzLkFic3RyYWN0QWNjZXNzTG9nVmFsdmUuaW52b2tlKEFic3RyYWN0QWNjZXNz TG9nVmFsdmUuamF2YTo2NjYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5k YXJkRW5naW5lVmFsdmUuaW52b2tlKFN0YW5kYXJkRW5naW5lVmFsdmUuamF2YTo3NCkNCglh dCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rvci5Db3lvdGVBZGFwdGVyLnNlcnZpY2Uo Q295b3RlQWRhcHRlci5qYXZhOjM0NCkNCglhdCBvcmcuYXBhY2hlLmNveW90ZS5odHRwMTEu SHR0cDExUHJvY2Vzc29yLnNlcnZpY2UoSHR0cDExUHJvY2Vzc29yLmphdmE6Mzk4KQ0KCWF0 IG9yZy5hcGFjaGUuY295b3RlLkFic3RyYWN0UHJvY2Vzc29yTGlnaHQucHJvY2VzcyhBYnN0 cmFjdFByb2Nlc3NvckxpZ2h0LmphdmE6NjMpDQoJYXQgb3JnLmFwYWNoZS5jb3lvdGUuQWJz dHJhY3RQcm90b2NvbCRDb25uZWN0aW9uSGFuZGxlci5wcm9jZXNzKEFic3RyYWN0UHJvdG9j b2wuamF2YTo5MDMpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC5uZXQuTmlvRW5kcG9p bnQkU29ja2V0UHJvY2Vzc29yLmRvUnVuKE5pb0VuZHBvaW50LmphdmE6MTc2OSkNCglhdCBv cmcuYXBhY2hlLnRvbWNhdC51dGlsLm5ldC5Tb2NrZXRQcm9jZXNzb3JCYXNlLnJ1bihTb2Nr ZXRQcm9jZXNzb3JCYXNlLmphdmE6NTIpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC50 aHJlYWRzLlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9y LmphdmE6MTE4OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLnRocmVhZHMuVGhyZWFk UG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjU4KQ0K CWF0IG9yZy5hcGFjaGUudG9tY2F0LnV0aWwudGhyZWFkcy5UYXNrVGhyZWFkJFdyYXBwaW5n UnVubmFibGUucnVuKFRhc2tUaHJlYWQuamF2YTo2MykNCglhdCBqYXZhLmJhc2UvamF2YS5s YW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6MTQ0NykNCkNhdXNlZCBieTogamF2YS5sYW5n LklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogY2FuJ3QgcGFyc2UgYXJndW1lbnQgbnVtYmVy OiANCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0RnJv bVBhdHRlcm4oTWVzc2FnZUZvcm1hdC5qYXZhOjE2NDQpDQoJYXQgamF2YS5iYXNlL2phdmEu dGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybkltcGwoTWVzc2FnZUZvcm1hdC5qYXZh OjY2MCkNCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuPGluaXQ+KE1l c3NhZ2VGb3JtYXQuamF2YTo1MTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVt b2l6ZXIkMS5jYWxsKE1lbW9pemVyLmphdmE6NTIpDQoJYXQgamF2YS5iYXNlL2phdmEudXRp bC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YTozMjgpDQoJYXQg b3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZh OjU5KQ0KCS4uLiAzNyBtb3JlDQpDYXVzZWQgYnk6IGphdmEubGFuZy5OdW1iZXJGb3JtYXRF eGNlcHRpb246IEZvciBpbnB1dCBzdHJpbmc6ICIiDQoJYXQgamF2YS5iYXNlL2phdmEubGFu Zy5OdW1iZXJGb3JtYXRFeGNlcHRpb24uZm9ySW5wdXRTdHJpbmcoTnVtYmVyRm9ybWF0RXhj ZXB0aW9uLmphdmE6NjcpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5JbnRlZ2VyLnBhcnNl SW50KEludGVnZXIuamF2YTo1NDEpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5JbnRlZ2Vy LnBhcnNlSW50KEludGVnZXIuamF2YTo2NjEpDQoJYXQgamF2YS5iYXNlL2phdmEudGV4dC5N ZXNzYWdlRm9ybWF0LnNldEZvcm1hdEZyb21QYXR0ZXJuKE1lc3NhZ2VGb3JtYXQuamF2YTox NjQyKQ0KCS4uLiA0MiBtb3JlDQpqYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRpb25FeGNl cHRpb246IGphdmEubGFuZy5JbGxlZ2FsQXJndW1lbnRFeGNlcHRpb246IGNhbid0IHBhcnNl IGFyZ3VtZW50IG51bWJlcjogDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50 LkZ1dHVyZVRhc2sucmVwb3J0KEZ1dHVyZVRhc2suamF2YToxMjQpDQoJYXQgamF2YS5iYXNl L2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2suZ2V0KEZ1dHVyZVRhc2suamF2YTox OTMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1v aXplci5qYXZhOjYzKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi51dGlsLkxvZ2dlci5mb3Jt YXRNZXNzYWdlKExvZ2dlci5qYXZhOjM5OCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIudXRp bC5Mb2dnZXIud2FybmluZyhMb2dnZXIuamF2YTo2NDMpDQoJYXQgb3JnLmFwYWNoZS5vcGVu ZWpiLmNvcmUuc2VjdXJpdHkuQWJzdHJhY3RTZWN1cml0eVNlcnZpY2UuaXNDYWxsZXJBdXRo b3JpemVkKEFic3RyYWN0U2VjdXJpdHlTZXJ2aWNlLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFj aGUub3BlbmVqYi5jb3JlLnNpbmdsZXRvbi5TaW5nbGV0b25Db250YWluZXIuaW52b2tlKFNp bmdsZXRvbkNvbnRhaW5lci5qYXZhOjE5MikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29y ZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5jcmVhdGUoRWpiSG9tZVByb3h5SGFuZGxlci5q YXZhOjM0MykNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5 SGFuZGxlci5faW52b2tlKEVqYkhvbWVQcm94eUhhbmRsZXIuamF2YToxOTYpDQoJYXQgb3Jn LmFwYWNoZS5vcGVuZWpiLmNvcmUuaXZtLkJhc2VFamJQcm94eUhhbmRsZXIuaW52b2tlKEJh c2VFamJQcm94eUhhbmRsZXIuamF2YTozNDkpDQoJYXQgamRrLnByb3h5My9qZGsucHJveHkz LiRQcm94eTMwLmNyZWF0ZShVbmtub3duIFNvdXJjZSkNCglhdCBvcmcuYXBhY2hlLm9wZW5l amIuY29yZS5pdm0ubmFtaW5nLkJ1c2luZXNzUmVtb3RlUmVmZXJlbmNlLmdldE9iamVjdChC dXNpbmVzc1JlbW90ZVJlZmVyZW5jZS5qYXZhOjM2KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVq Yi5jb3JlLml2bS5uYW1pbmcuSXZtQ29udGV4dC5sb29rdXAoSXZtQ29udGV4dC5qYXZhOjE4 NikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5k bGVyLmRvTG9va3VwKEpuZGlSZXF1ZXN0SGFuZGxlci5qYXZhOjI2MSkNCglhdCBvcmcuYXBh Y2hlLm9wZW5lamIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLnByb2Nlc3NSZXNw b25zZShKbmRpUmVxdWVzdEhhbmRsZXIuamF2YToxNzQpDQoJYXQgb3JnLmFwYWNoZS5vcGVu ZWpiLnNlcnZlci5lamJkLkVqYkRhZW1vbi5wcm9jZXNzSm5kaVJlc3BvbnNlKEVqYkRhZW1v bi5qYXZhOjM4MCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQuRWpiRGFl bW9uLnNlcnZpY2UoRWpiRGFlbW9uLmphdmE6MjgyKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVq Yi5zZXJ2ZXIuZWpiZC5FamJTZXJ2ZXIuc2VydmljZShFamJTZXJ2ZXIuamF2YToxMDQpDQoJ YXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5odHRwZC5TZXJ2ZXJTZXJ2bGV0LnNlcnZp Y2UoU2VydmVyU2VydmxldC5qYXZhOjYwKQ0KCWF0IGpha2FydGEuc2VydmxldC5odHRwLkh0 dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNlcnZsZXQuamF2YTo2NTgpDQoJYXQgb3JnLmFwYWNo ZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRl cihBcHBsaWNhdGlvbkZpbHRlckNoYWluLmphdmE6MTk1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0 YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZpbHRlckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9u RmlsdGVyQ2hhaW4uamF2YToxNDApDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0 YW5kYXJkV3JhcHBlclZhbHZlLmludm9rZShTdGFuZGFyZFdyYXBwZXJWYWx2ZS5qYXZhOjE2 NykNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvcmUuU3RhbmRhcmRDb250ZXh0VmFsdmUu aW52b2tlKFN0YW5kYXJkQ29udGV4dFZhbHZlLmphdmE6OTApDQoJYXQgb3JnLmFwYWNoZS50 b21lZS5jYXRhbGluYS5PcGVuRUpCVmFsdmUuaW52b2tlKE9wZW5FSkJWYWx2ZS5qYXZhOjQ1 KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5TdGFuZGFyZEhvc3RWYWx2ZS5pbnZv a2UoU3RhbmRhcmRIb3N0VmFsdmUuamF2YToxMTYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGlu YS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2ZS5pbnZva2UoRXJyb3JSZXBvcnRWYWx2ZS5qYXZh OjkzKQ0KCWF0IG9yZy5hcGFjaGUudG9tZWUuY2F0YWxpbmEuT3BlbkVKQlNlY3VyaXR5TGlz dGVuZXIkUmVxdWVzdENhcHR1cmVyLmludm9rZShPcGVuRUpCU2VjdXJpdHlMaXN0ZW5lci5q YXZhOjk3KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEudmFsdmVzLkFic3RyYWN0QWNjZXNz TG9nVmFsdmUuaW52b2tlKEFic3RyYWN0QWNjZXNzTG9nVmFsdmUuamF2YTo2NjYpDQoJYXQg b3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkRW5naW5lVmFsdmUuaW52b2tlKFN0 YW5kYXJkRW5naW5lVmFsdmUuamF2YTo3NCkNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNv bm5lY3Rvci5Db3lvdGVBZGFwdGVyLnNlcnZpY2UoQ295b3RlQWRhcHRlci5qYXZhOjM0NCkN CglhdCBvcmcuYXBhY2hlLmNveW90ZS5odHRwMTEuSHR0cDExUHJvY2Vzc29yLnNlcnZpY2Uo SHR0cDExUHJvY2Vzc29yLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUuY295b3RlLkFic3Ry YWN0UHJvY2Vzc29yTGlnaHQucHJvY2VzcyhBYnN0cmFjdFByb2Nlc3NvckxpZ2h0LmphdmE6 NjMpDQoJYXQgb3JnLmFwYWNoZS5jb3lvdGUuQWJzdHJhY3RQcm90b2NvbCRDb25uZWN0aW9u SGFuZGxlci5wcm9jZXNzKEFic3RyYWN0UHJvdG9jb2wuamF2YTo5MDMpDQoJYXQgb3JnLmFw YWNoZS50b21jYXQudXRpbC5uZXQuTmlvRW5kcG9pbnQkU29ja2V0UHJvY2Vzc29yLmRvUnVu KE5pb0VuZHBvaW50LmphdmE6MTc2OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLm5l dC5Tb2NrZXRQcm9jZXNzb3JCYXNlLnJ1bihTb2NrZXRQcm9jZXNzb3JCYXNlLmphdmE6NTIp DQoJYXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC50aHJlYWRzLlRocmVhZFBvb2xFeGVjdXRv ci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTE4OSkNCglhdCBvcmcuYXBh Y2hlLnRvbWNhdC51dGlsLnRocmVhZHMuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4o VGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjU4KQ0KCWF0IG9yZy5hcGFjaGUudG9tY2F0LnV0 aWwudGhyZWFkcy5UYXNrVGhyZWFkJFdyYXBwaW5nUnVubmFibGUucnVuKFRhc2tUaHJlYWQu amF2YTo2MykNCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmph dmE6MTQ0NykNCkNhdXNlZCBieTogamF2YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlv bjogY2FuJ3QgcGFyc2UgYXJndW1lbnQgbnVtYmVyOiANCglhdCBqYXZhLmJhc2UvamF2YS50 ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9ybWF0RnJvbVBhdHRlcm4oTWVzc2FnZUZvcm1hdC5q YXZhOjE2NDQpDQoJYXQgamF2YS5iYXNlL2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5 UGF0dGVybkltcGwoTWVzc2FnZUZvcm1hdC5qYXZhOjY2MCkNCglhdCBqYXZhLmJhc2UvamF2 YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuPGluaXQ+KE1lc3NhZ2VGb3JtYXQuamF2YTo1MTYpDQoJ YXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIkMS5jYWxsKE1lbW9pemVyLmph dmE6NTIpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2su cnVuKEZ1dHVyZVRhc2suamF2YTozMjgpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwu TWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjU5KQ0KCS4uLiAzNyBtb3JlDQpDYXVz ZWQgYnk6IGphdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb246IEZvciBpbnB1dCBzdHJp bmc6ICIiDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24u Zm9ySW5wdXRTdHJpbmcoTnVtYmVyRm9ybWF0RXhjZXB0aW9uLmphdmE6NjcpDQoJYXQgamF2 YS5iYXNlL2phdmEubGFuZy5JbnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo1NDEpDQoJ YXQgamF2YS5iYXNlL2phdmEubGFuZy5JbnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo2 NjEpDQoJYXQgamF2YS5iYXNlL2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdEZy b21QYXR0ZXJuKE1lc3NhZ2VGb3JtYXQuamF2YToxNjQyKQ0KCS4uLiA0MiBtb3JlDQpqYXZh LnV0aWwuY29uY3VycmVudC5FeGVjdXRpb25FeGNlcHRpb246IGphdmEubGFuZy5JbGxlZ2Fs QXJndW1lbnRFeGNlcHRpb246IGNhbid0IHBhcnNlIGFyZ3VtZW50IG51bWJlcjogDQoJYXQg amF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucmVwb3J0KEZ1dHVy ZVRhc2suamF2YToxMjQpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkZ1 dHVyZVRhc2suZ2V0KEZ1dHVyZVRhc2suamF2YToxOTMpDQoJYXQgb3JnLmFwYWNoZS5vcGVu ZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXplci5qYXZhOjYzKQ0KCWF0IG9yZy5h cGFjaGUub3BlbmVqYi51dGlsLkxvZ2dlci5mb3JtYXRNZXNzYWdlKExvZ2dlci5qYXZhOjM5 OCkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIudXRpbC5Mb2dnZXIud2FybmluZyhMb2dnZXIu amF2YTo2NDMpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuc2VjdXJpdHkuQWJzdHJh Y3RTZWN1cml0eVNlcnZpY2UuaXNDYWxsZXJBdXRob3JpemVkKEFic3RyYWN0U2VjdXJpdHlT ZXJ2aWNlLmphdmE6Mzk4KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLnNpbmdsZXRv bi5TaW5nbGV0b25Db250YWluZXIuaW52b2tlKFNpbmdsZXRvbkNvbnRhaW5lci5qYXZhOjE5 MikNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxl ci5jcmVhdGUoRWpiSG9tZVByb3h5SGFuZGxlci5qYXZhOjM0MykNCglhdCBvcmcuYXBhY2hl Lm9wZW5lamIuY29yZS5pdm0uRWpiSG9tZVByb3h5SGFuZGxlci5faW52b2tlKEVqYkhvbWVQ cm94eUhhbmRsZXIuamF2YToxOTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLmNvcmUuaXZt LkJhc2VFamJQcm94eUhhbmRsZXIuaW52b2tlKEJhc2VFamJQcm94eUhhbmRsZXIuamF2YToz NDkpDQoJYXQgamRrLnByb3h5My9qZGsucHJveHkzLiRQcm94eTMwLmNyZWF0ZShVbmtub3du IFNvdXJjZSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuY29yZS5pdm0ubmFtaW5nLkJ1c2lu ZXNzUmVtb3RlUmVmZXJlbmNlLmdldE9iamVjdChCdXNpbmVzc1JlbW90ZVJlZmVyZW5jZS5q YXZhOjM2KQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5jb3JlLml2bS5uYW1pbmcuSXZtQ29u dGV4dC5sb29rdXAoSXZtQ29udGV4dC5qYXZhOjE4NikNCglhdCBvcmcuYXBhY2hlLm9wZW5l amIuc2VydmVyLmVqYmQuSm5kaVJlcXVlc3RIYW5kbGVyLmRvTG9va3VwKEpuZGlSZXF1ZXN0 SGFuZGxlci5qYXZhOjI2MSkNCglhdCBvcmcuYXBhY2hlLm9wZW5lamIuc2VydmVyLmVqYmQu Sm5kaVJlcXVlc3RIYW5kbGVyLnByb2Nlc3NSZXNwb25zZShKbmRpUmVxdWVzdEhhbmRsZXIu amF2YToxNzQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNlcnZlci5lamJkLkVqYkRhZW1v bi5wcm9jZXNzSm5kaVJlc3BvbnNlKEVqYkRhZW1vbi5qYXZhOjM4MCkNCglhdCBvcmcuYXBh Y2hlLm9wZW5lamIuc2VydmVyLmVqYmQuRWpiRGFlbW9uLnNlcnZpY2UoRWpiRGFlbW9uLmph dmE6MjgyKQ0KCWF0IG9yZy5hcGFjaGUub3BlbmVqYi5zZXJ2ZXIuZWpiZC5FamJTZXJ2ZXIu c2VydmljZShFamJTZXJ2ZXIuamF2YToxMDQpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnNl cnZlci5odHRwZC5TZXJ2ZXJTZXJ2bGV0LnNlcnZpY2UoU2VydmVyU2VydmxldC5qYXZhOjYw KQ0KCWF0IGpha2FydGEuc2VydmxldC5odHRwLkh0dHBTZXJ2bGV0LnNlcnZpY2UoSHR0cFNl cnZsZXQuamF2YTo2NTgpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLkFwcGxpY2F0 aW9uRmlsdGVyQ2hhaW4uaW50ZXJuYWxEb0ZpbHRlcihBcHBsaWNhdGlvbkZpbHRlckNoYWlu LmphdmE6MTk1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxpbmEuY29yZS5BcHBsaWNhdGlvbkZp bHRlckNoYWluLmRvRmlsdGVyKEFwcGxpY2F0aW9uRmlsdGVyQ2hhaW4uamF2YToxNDApDQoJ YXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3JlLlN0YW5kYXJkV3JhcHBlclZhbHZlLmludm9r ZShTdGFuZGFyZFdyYXBwZXJWYWx2ZS5qYXZhOjE2NykNCglhdCBvcmcuYXBhY2hlLmNhdGFs aW5hLmNvcmUuU3RhbmRhcmRDb250ZXh0VmFsdmUuaW52b2tlKFN0YW5kYXJkQ29udGV4dFZh bHZlLmphdmE6OTApDQoJYXQgb3JnLmFwYWNoZS50b21lZS5jYXRhbGluYS5PcGVuRUpCVmFs dmUuaW52b2tlKE9wZW5FSkJWYWx2ZS5qYXZhOjQ1KQ0KCWF0IG9yZy5hcGFjaGUuY2F0YWxp bmEuY29yZS5TdGFuZGFyZEhvc3RWYWx2ZS5pbnZva2UoU3RhbmRhcmRIb3N0VmFsdmUuamF2 YToxMTYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS52YWx2ZXMuRXJyb3JSZXBvcnRWYWx2 ZS5pbnZva2UoRXJyb3JSZXBvcnRWYWx2ZS5qYXZhOjkzKQ0KCWF0IG9yZy5hcGFjaGUudG9t ZWUuY2F0YWxpbmEuT3BlbkVKQlNlY3VyaXR5TGlzdGVuZXIkUmVxdWVzdENhcHR1cmVyLmlu dm9rZShPcGVuRUpCU2VjdXJpdHlMaXN0ZW5lci5qYXZhOjk3KQ0KCWF0IG9yZy5hcGFjaGUu Y2F0YWxpbmEudmFsdmVzLkFic3RyYWN0QWNjZXNzTG9nVmFsdmUuaW52b2tlKEFic3RyYWN0 QWNjZXNzTG9nVmFsdmUuamF2YTo2NjYpDQoJYXQgb3JnLmFwYWNoZS5jYXRhbGluYS5jb3Jl LlN0YW5kYXJkRW5naW5lVmFsdmUuaW52b2tlKFN0YW5kYXJkRW5naW5lVmFsdmUuamF2YTo3 NCkNCglhdCBvcmcuYXBhY2hlLmNhdGFsaW5hLmNvbm5lY3Rvci5Db3lvdGVBZGFwdGVyLnNl cnZpY2UoQ295b3RlQWRhcHRlci5qYXZhOjM0NCkNCglhdCBvcmcuYXBhY2hlLmNveW90ZS5o dHRwMTEuSHR0cDExUHJvY2Vzc29yLnNlcnZpY2UoSHR0cDExUHJvY2Vzc29yLmphdmE6Mzk4 KQ0KCWF0IG9yZy5hcGFjaGUuY295b3RlLkFic3RyYWN0UHJvY2Vzc29yTGlnaHQucHJvY2Vz cyhBYnN0cmFjdFByb2Nlc3NvckxpZ2h0LmphdmE6NjMpDQoJYXQgb3JnLmFwYWNoZS5jb3lv dGUuQWJzdHJhY3RQcm90b2NvbCRDb25uZWN0aW9uSGFuZGxlci5wcm9jZXNzKEFic3RyYWN0 UHJvdG9jb2wuamF2YTo5MDMpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQudXRpbC5uZXQuTmlv RW5kcG9pbnQkU29ja2V0UHJvY2Vzc29yLmRvUnVuKE5pb0VuZHBvaW50LmphdmE6MTc2OSkN CglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLm5ldC5Tb2NrZXRQcm9jZXNzb3JCYXNlLnJ1 bihTb2NrZXRQcm9jZXNzb3JCYXNlLmphdmE6NTIpDQoJYXQgb3JnLmFwYWNoZS50b21jYXQu dXRpbC50aHJlYWRzLlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4 ZWN1dG9yLmphdmE6MTE4OSkNCglhdCBvcmcuYXBhY2hlLnRvbWNhdC51dGlsLnRocmVhZHMu VGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6 NjU4KQ0KCWF0IG9yZy5hcGFjaGUudG9tY2F0LnV0aWwudGhyZWFkcy5UYXNrVGhyZWFkJFdy YXBwaW5nUnVubmFibGUucnVuKFRhc2tUaHJlYWQuamF2YTo2MykNCglhdCBqYXZhLmJhc2Uv amF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6MTQ0NykNCkNhdXNlZCBieTogamF2 YS5sYW5nLklsbGVnYWxBcmd1bWVudEV4Y2VwdGlvbjogY2FuJ3QgcGFyc2UgYXJndW1lbnQg bnVtYmVyOiANCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuc2V0Rm9y bWF0RnJvbVBhdHRlcm4oTWVzc2FnZUZvcm1hdC5qYXZhOjE2NDQpDQoJYXQgamF2YS5iYXNl L2phdmEudGV4dC5NZXNzYWdlRm9ybWF0LmFwcGx5UGF0dGVybkltcGwoTWVzc2FnZUZvcm1h dC5qYXZhOjY2MCkNCglhdCBqYXZhLmJhc2UvamF2YS50ZXh0Lk1lc3NhZ2VGb3JtYXQuPGlu aXQ+KE1lc3NhZ2VGb3JtYXQuamF2YTo1MTYpDQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0 aWwuTWVtb2l6ZXIkMS5jYWxsKE1lbW9pemVyLmphdmE6NTIpDQoJYXQgamF2YS5iYXNlL2ph dmEudXRpbC5jb25jdXJyZW50LkZ1dHVyZVRhc2sucnVuKEZ1dHVyZVRhc2suamF2YTozMjgp DQoJYXQgb3JnLmFwYWNoZS5vcGVuZWpiLnV0aWwuTWVtb2l6ZXIuY29tcHV0ZShNZW1vaXpl ci5qYXZhOjU5KQ0KCS4uLiAzNyBtb3JlDQpDYXVzZWQgYnk6IGphdmEubGFuZy5OdW1iZXJG b3JtYXRFeGNlcHRpb246IEZvciBpbnB1dCBzdHJpbmc6ICIiDQoJYXQgamF2YS5iYXNlL2ph dmEubGFuZy5OdW1iZXJGb3JtYXRFeGNlcHRpb24uZm9ySW5wdXRTdHJpbmcoTnVtYmVyRm9y bWF0RXhjZXB0aW9uLmphdmE6NjcpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5JbnRlZ2Vy LnBhcnNlSW50KEludGVnZXIuamF2YTo1NDEpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5J bnRlZ2VyLnBhcnNlSW50KEludGVnZXIuamF2YTo2NjEpDQoJYXQgamF2YS5iYXNlL2phdmEu dGV4dC5NZXNzYWdlRm9ybWF0LnNldEZvcm1hdEZyb21QYXR0ZXJuKE1lc3NhZ2VGb3JtYXQu amF2YToxNjQyKQ0KCS4uLiA0MiBtb3JlDQo= --------------94TnT81bAeMoOZw2JAMmWM2d--