julia-intellij
julia-intellij copied to clipboard
[auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.3
- App Version: 2022.1.2 Preview
- Last Action: Unknown
- title: [auto-generated:1387808935] null
Full StackTrace
com.intellij.diagnostic.PluginException: The default implementation of method 'getId' is deprecated, you need to override it in 'class org.ice1000.julia.lang.execution.JuliaRunConfigurationFactory'. The default implementation delegates to 'getName' which may be localized, but return value of this method must not depend on current localization. [Plugin: org.ice1000.julia]
at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:83)
at com.intellij.diagnostic.PluginException.reportDeprecatedDefault(PluginException.java:110)
at com.intellij.execution.configurations.ConfigurationFactory.getId(ConfigurationFactory.java:75)
at com.intellij.execution.impl.RunManagerImplKt.getFactoryKey(RunManagerImpl.kt:1398)
at com.intellij.execution.impl.RunManagerImplKt.access$getFactoryKey(RunManagerImpl.kt:1)
at com.intellij.execution.impl.RunManagerImpl.getConfigurationTemplate(RunManagerImpl.kt:341)
at com.intellij.execution.impl.RunManagerImpl.createConfiguration(RunManagerImpl.kt:269)
at com.intellij.execution.actions.RunConfigurationProducer.cloneTemplateConfigurationStatic(RunConfigurationProducer.java:257)
at com.intellij.execution.actions.RunConfigurationProducer.cloneTemplateConfiguration(RunConfigurationProducer.java:247)
at com.intellij.execution.actions.RunConfigurationProducer.createConfigurationFromContext(RunConfigurationProducer.java:96)
at com.intellij.execution.actions.RunConfigurationProducer.findOrCreateConfigurationFromContext(RunConfigurationProducer.java:197)
at com.intellij.execution.actions.PreferredProducerFind.doGetConfigurationsFromContext(PreferredProducerFind.java:118)
at com.intellij.execution.actions.PreferredProducerFind.getConfigurationsFromContext(PreferredProducerFind.java:100)
at com.intellij.execution.actions.PreferredProducerFind.createConfiguration(PreferredProducerFind.java:32)
at com.intellij.execution.actions.ConfigurationContext.createConfiguration(ConfigurationContext.java:203)
at com.intellij.execution.actions.ConfigurationContext.getConfiguration(ConfigurationContext.java:194)
at com.intellij.execution.actions.BaseRunConfigurationAction.fullUpdate(BaseRunConfigurationAction.java:218)
at com.intellij.execution.actions.BaseRunConfigurationAction.update(BaseRunConfigurationAction.java:180)
at com.intellij.openapi.actionSystem.ex.ActionUtil.lambda$performDumbAwareUpdate$0(ActionUtil.java:131)
at com.intellij.openapi.actionSystem.ex.ActionUtil.performDumbAwareUpdate(ActionUtil.java:145)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doUpdate(ActionUpdater.java:645)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$updateActionReal$4(ActionUpdater.java:126)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.callAction(ActionUpdater.java:176)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.updateActionReal(ActionUpdater.java:127)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$new$0(ActionUpdater.java:112)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.update(ActionUpdater.java:634)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:478)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:457)
at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1400)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:457)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:535)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:457)
at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1400)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:457)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:535)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:457)
at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1400)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:457)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:535)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:457)
at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1400)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:457)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:535)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:457)
at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1400)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:457)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandGroupChild(ActionUpdater.java:535)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$doExpandActionGroup$20(ActionUpdater.java:457)
at com.intellij.util.containers.ContainerUtil.concat(ContainerUtil.java:1400)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.doExpandActionGroup(ActionUpdater.java:457)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.expandActionGroup(ActionUpdater.java:260)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$12(ActionUpdater.java:321)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$13(ActionUpdater.java:339)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1152)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$tryRunReadActionAndCancelBeforeWrite$17(ActionUpdater.java:371)
at com.intellij.openapi.progress.util.ProgressIndicatorUtils.runActionAndCancelBeforeWrite(ProgressIndicatorUtils.java:158)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.tryRunReadActionAndCancelBeforeWrite(ActionUpdater.java:367)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$14(ActionUpdater.java:339)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:189)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$12(CoreProgressManager.java:608)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:683)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:639)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:607)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:176)
at com.intellij.openapi.progress.util.BackgroundTaskUtil.runUnderDisposeAwareIndicator(BackgroundTaskUtil.java:365)
at com.intellij.openapi.actionSystem.impl.ActionUpdater.lambda$expandActionGroupAsync$15(ActionUpdater.java:338)
at com.intellij.util.concurrency.BoundedTaskExecutor.doRun(BoundedTaskExecutor.java:241)
at com.intellij.util.concurrency.BoundedTaskExecutor.access$200(BoundedTaskExecutor.java:31)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.execute(BoundedTaskExecutor.java:214)
at com.intellij.util.ConcurrencyUtil.runUnderThreadName(ConcurrencyUtil.java:212)
at com.intellij.util.concurrency.BoundedTaskExecutor$1.run(BoundedTaskExecutor.java:203)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:668)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:665)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:665)
at java.base/java.lang.Thread.run(Thread.java:829)
- Julia Version: 1.7.3
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.7.3
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.7.3
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.7.3
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.7.3
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version: 1.4.2
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 11
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action:
- Attachment induced.txt: Rm9sbG93aW5nIGV4Y2VwdGlvbnMgaGFwcGVuZWQgc29vbiBhZnRlciB0aGlzIG9uZSwgbW9zdCBwcm9iYWJseSB0aGV5IGFyZSBpbmR1Y2VkLgoKCjIwMjItMDYtMDJUMTY6MzM6NDQuNjUwCmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0NCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjIzKQ0KCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQ0KCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQ0KCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpDQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTIpDQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozNDUpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjY5KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU3KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ3KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjk2KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5NykNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTgpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjEwMCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxMikNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTEpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjApDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMTUpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE4MCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjY0NSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDQoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3NikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTEyKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MzQpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0NzgpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6MjYwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTIoQWN0aW9uVXBkYXRlci5qYXZhOjMyMSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YTozMzkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYXBwbGljYXRpb24uaW1wbC5BcHBsaWNhdGlvbkltcGwudHJ5UnVuUmVhZEFjdGlvbihBcHBsaWNhdGlvbkltcGwuamF2YToxMTUyKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZSQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzcxKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudHJ5UnVuUmVhZEFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKEFjdGlvblVwZGF0ZXIuamF2YTozNjcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNChBY3Rpb25VcGRhdGVyLmphdmE6MzM5KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRleGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MkMTIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYwOCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY4MykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYzOSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MDcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLkJhY2tncm91bmRUYXNrVXRpbC5ydW5VbmRlckRpc3Bvc2VBd2FyZUluZGljYXRvcihCYWNrZ3JvdW5kVGFza1V0aWwuamF2YTozNjUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzM4KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0MSkNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmFjY2VzcyQyMDAoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjMxKQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTIpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLnJ1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjAzKQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY4KQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpDQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkNCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQ0KCgoKMjAyMi0wNi0wMlQxNjozMzo0NC42NTYKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQ0KCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuY3JlYXRlUGx1Z2luRXhjZXB0aW9uQnlDbGFzcyhQbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmphdmE6MjMpDQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpDQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmNvbmZpZ3VyYXRpb25zLkNvbmZpZ3VyYXRpb25GYWN0b3J5LmdldElkKENvbmZpZ3VyYXRpb25GYWN0b3J5LmphdmE6NzUpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwuZ2V0TmFtZShSdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmt0OjE1NCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MjEpDQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJCYXNlLnByb2Nlc3NQZW5kaW5nQ3VycmVudFNjaGVtZU5hbWUkaW50ZWxsaWpfcGxhdGZvcm1fY29uZmlndXJhdGlvblN0b3JlX2ltcGwoU2NoZW1lTWFuYWdlckJhc2Uua3Q6MjMpDQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDo3OCkNCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxMikNCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjM0NSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjkpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTcpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvbihSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNDcpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6OTYpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk3KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExOCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTAwKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDEyKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg0KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIxNSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTgwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjQ1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNChBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTc2KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMTIpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYzNCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ3OCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyNjApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMihBY3Rpb25VcGRhdGVyLmphdmE6MzIxKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjExNTIpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdHJ5UnVuUmVhZEFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlJDE3KEFjdGlvblVwZGF0ZXIuamF2YTozNzEpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci50cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoQWN0aW9uVXBkYXRlci5qYXZhOjM2NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE0KEFjdGlvblVwZGF0ZXIuamF2YTozMzkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA4KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5yZWdpc3RlckluZGljYXRvckFuZFJ1bihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjgzKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjM5KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYwNykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLlByb2dyZXNzTWFuYWdlckltcGwuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKFByb2dyZXNzTWFuYWdlckltcGwuamF2YTo2MCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc2KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjM2NSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMzgpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQxKQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzEpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLmV4ZWN1dGUoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIxNCkNCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMikNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMDMpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyOCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkNCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQ0KCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4MjkpDQoKCgoyMDIyLTA2LTAyVDE2OjMzOjQ0LjY2Mgpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdDQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToyMykNCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykNCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkNCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQ0KCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjEyKQ0KCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzQ1KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2OSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1NykNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0NykNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YTo5NikNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmZpbmRPckNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToxOTcpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5kb0dldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTE4KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMDApDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTIpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRQcmVmZXJyZWRDb25maWd1cmF0aW9uKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6MjkxKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kRXhpc3RpbmcoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyODQpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYwKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5mdWxsVXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MjE1KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxODApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLnBlcmZvcm1EdW1iQXdhcmVVcGRhdGUoQWN0aW9uVXRpbC5qYXZhOjE0NSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2NDUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ0KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5jYWxsQWN0aW9uKEFjdGlvblVwZGF0ZXIuamF2YToxNzYpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjExMikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjM0KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDc4KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjI2MCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEyKEFjdGlvblVwZGF0ZXIuamF2YTozMjEpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMyhBY3Rpb25VcGRhdGVyLmphdmE6MzM5KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFwcGxpY2F0aW9uLmltcGwuQXBwbGljYXRpb25JbXBsLnRyeVJ1blJlYWRBY3Rpb24oQXBwbGljYXRpb25JbXBsLmphdmE6MTE1MikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR0cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjM3MSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLlByb2dyZXNzSW5kaWNhdG9yVXRpbHMucnVuQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5qYXZhOjE1OCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShBY3Rpb25VcGRhdGVyLmphdmE6MzY3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTQoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJHJ1blByb2Nlc3MkMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTg5KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzJDEyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MDgpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2ODMpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmNvbXB1dGVVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MzkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjYwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5ydW5Qcm9jZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxNzYpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5CYWNrZ3JvdW5kVGFza1V0aWwucnVuVW5kZXJEaXNwb3NlQXdhcmVJbmRpY2F0b3IoQmFja2dyb3VuZFRhc2tVdGlsLmphdmE6MzY1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTUoQWN0aW9uVXBkYXRlci5qYXZhOjMzOCkNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmRvUnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyNDEpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5hY2Nlc3MkMjAwKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YTozMSkNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLkNvbmN1cnJlbmN5VXRpbC5ydW5VbmRlclRocmVhZE5hbWUoQ29uY3VycmVuY3lVdGlsLmphdmE6MjEyKQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5ydW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIwMykNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IkV29ya2VyLnJ1bihUaHJlYWRQb29sRXhlY3V0b3IuamF2YTo2MjgpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2OCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQ0KCWF0IGphdmEuYmFzZS9qYXZhLnNlY3VyaXR5LkFjY2Vzc0NvbnRyb2xsZXIuZG9Qcml2aWxlZ2VkKE5hdGl2ZSBNZXRob2QpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpDQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkNCgoKCjIwMjItMDYtMDJUMTY6MzM6NDQuNjc1CmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0NCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjIzKQ0KCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQ0KCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQ0KCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpDQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTIpDQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozNDUpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjY5KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU3KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ3KQ0KCWF0IGNvbS5qZXRicmFpbnMucHl0aG9uLnRlc3RpbmcuQWJzdHJhY3RQeXRob25UZXN0Q29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChBYnN0cmFjdFB5dGhvblRlc3RDb25maWd1cmF0aW9uUHJvZHVjZXIua3Q6MzQpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5maW5kT3JDcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MTk3KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExOCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTAwKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6NDEyKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg0KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5maW5kRXhpc3RpbmcoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YTo2MCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIxNSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTgwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5leC5BY3Rpb25VdGlsLmxhbWJkYSRwZXJmb3JtRHVtYkF3YXJlVXBkYXRlJDAoQWN0aW9uVXRpbC5qYXZhOjEzMSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjQ1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHVwZGF0ZUFjdGlvblJlYWwkNChBY3Rpb25VcGRhdGVyLmphdmE6MTI2KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTc2KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJG5ldyQwKEFjdGlvblVwZGF0ZXIuamF2YToxMTIpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYzNCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ3OCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyNjApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxMihBY3Rpb25VcGRhdGVyLmphdmE6MzIxKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjExNTIpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdHJ5UnVuUmVhZEFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlJDE3KEFjdGlvblVwZGF0ZXIuamF2YTozNzEpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci50cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoQWN0aW9uVXBkYXRlci5qYXZhOjM2NykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE0KEFjdGlvblVwZGF0ZXIuamF2YTozMzkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA4KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5yZWdpc3RlckluZGljYXRvckFuZFJ1bihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjgzKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjM5KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYwNykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLlByb2dyZXNzTWFuYWdlckltcGwuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKFByb2dyZXNzTWFuYWdlckltcGwuamF2YTo2MCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc2KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjM2NSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDE1KEFjdGlvblVwZGF0ZXIuamF2YTozMzgpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQxKQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzEpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLmV4ZWN1dGUoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIxNCkNCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMikNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMDMpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvci5ydW5Xb3JrZXIoVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6MTEyOCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkNCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQ0KCWF0IGphdmEuYmFzZS9qYXZhLmxhbmcuVGhyZWFkLnJ1bihUaHJlYWQuamF2YTo4MjkpDQoKCgoyMDIyLTA2LTAyVDE2OjMzOjQ0LjcxMQpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdDQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToyMykNCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykNCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkNCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQ0KCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjEyKQ0KCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzQ1KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2OSkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1NykNCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLlB5VGVzdHNDb25maWd1cmF0aW9uUHJvZHVjZXIuYWNjZXNzJGNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljJHMtMTM0NTY3NTAxMShQeVRlc3RzU2hhcmVkLmt0Ojc2MikNCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLlB5VGVzdHNDb25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUHlUZXN0c1NoYXJlZC5rdDo4NDMpDQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5BYnN0cmFjdFB5dGhvblRlc3RDb25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KEFic3RyYWN0UHl0aG9uVGVzdENvbmZpZ3VyYXRpb25Qcm9kdWNlci5rdDozNCkNCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLlB5VGVzdHNDb25maWd1cmF0aW9uUHJvZHVjZXIuY3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFB5VGVzdHNTaGFyZWQua3Q6ODQ5KQ0KCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5NykNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTgpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlByZWZlcnJlZFByb2R1Y2VyRmluZC5nZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjEwMCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxMikNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTEpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmZpbmRFeGlzdGluZyhDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI4NCkNCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjApDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMTUpDQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLnVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjE4MCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9VcGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjY0NSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDQoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3NikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnVwZGF0ZUFjdGlvblJlYWwoQWN0aW9uVXBkYXRlci5qYXZhOjEyNykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTEyKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MzQpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo0NzgpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6MjYwKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTIoQWN0aW9uVXBkYXRlci5qYXZhOjMyMSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YTozMzkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYXBwbGljYXRpb24uaW1wbC5BcHBsaWNhdGlvbkltcGwudHJ5UnVuUmVhZEFjdGlvbihBcHBsaWNhdGlvbkltcGwuamF2YToxMTUyKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZSQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzcxKQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudHJ5UnVuUmVhZEFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKEFjdGlvblVwZGF0ZXIuamF2YTozNjcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNChBY3Rpb25VcGRhdGVyLmphdmE6MzM5KQ0KCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODkpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRleGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MkMTIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYwOCkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY4MykNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYzOSkNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MDcpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjApDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NikNCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy51dGlsLkJhY2tncm91bmRUYXNrVXRpbC5ydW5VbmRlckRpc3Bvc2VBd2FyZUluZGljYXRvcihCYWNrZ3JvdW5kVGFza1V0aWwuamF2YTozNjUpDQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzM4KQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0MSkNCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yLmFjY2VzcyQyMDAoQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjMxKQ0KCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTIpDQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvciQxLnJ1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjAzKQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpDQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY4KQ0KCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpDQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkNCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2NSkNCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQ0K
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- Attachment induced.txt: Rm9sbG93aW5nIGV4Y2VwdGlvbnMgaGFwcGVuZWQgc29vbiBhZnRlciB0aGlzIG9uZSwgbW9zdCBwcm9iYWJseSB0aGV5IGFyZSBpbmR1Y2VkLgoKCjIwMjItMDYtMDFUMTU6NDg6NTcuMTQ1CmNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbjogVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgbWV0aG9kICdnZXRJZCcgaXMgZGVwcmVjYXRlZCwgeW91IG5lZWQgdG8gb3ZlcnJpZGUgaXQgaW4gJ2NsYXNzIG9yZy5pY2UxMDAwLmp1bGlhLmxhbmcuZXhlY3V0aW9uLkp1bGlhUnVuQ29uZmlndXJhdGlvbkZhY3RvcnknLiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBkZWxlZ2F0ZXMgdG8gJ2dldE5hbWUnIHdoaWNoIG1heSBiZSBsb2NhbGl6ZWQsIGJ1dCByZXR1cm4gdmFsdWUgb2YgdGhpcyBtZXRob2QgbXVzdCBub3QgZGVwZW5kIG9uIGN1cnJlbnQgbG9jYWxpemF0aW9uLiBbUGx1Z2luOiBvcmcuaWNlMTAwMC5qdWxpYV0KCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuY3JlYXRlUGx1Z2luRXhjZXB0aW9uQnlDbGFzcyhQbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmphdmE6MjMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24uY3JlYXRlQnlDbGFzcyhQbHVnaW5FeGNlcHRpb24uamF2YTo4MykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5yZXBvcnREZXByZWNhdGVkRGVmYXVsdChQbHVnaW5FeGNlcHRpb24uamF2YToxMTApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmNvbmZpZ3VyYXRpb25zLkNvbmZpZ3VyYXRpb25GYWN0b3J5LmdldElkKENvbmZpZ3VyYXRpb25GYWN0b3J5LmphdmE6NzUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5nZXROYW1lKFJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwua3Q6MTU0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDozNykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MjEpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTGlzdE1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZUxpc3RNYW5hZ2VyLmt0OjM1KQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo2MTIpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjQyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkub3B0aW9ucy5TY2hlbWVNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VyLmt0OjM4KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmdldENvbmZpZ3VyYXRpb25UZW1wbGF0ZShSdW5NYW5hZ2VySW1wbC5rdDozNDUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuY3JlYXRlQ29uZmlndXJhdGlvbihSdW5NYW5hZ2VySW1wbC5rdDoyNjkpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uU3RhdGljKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI1NykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjQ3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6OTYpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmZpbmRPckNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToxOTcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTAwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMTUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTgwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ0KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjExMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ3OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyNjApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEyKEFjdGlvblVwZGF0ZXIuamF2YTozMjEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YTozMzkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjExNTIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR0cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjM3MSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci50cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoQWN0aW9uVXBkYXRlci5qYXZhOjM2NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTQoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2ODMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYzOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYwNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjYwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjM2NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTUoQWN0aW9uVXBkYXRlci5qYXZhOjMzOCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0MSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzEpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMDMpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoKMjAyMi0wNi0wMVQxNTo0ODo1Ny4xNTYKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToyMykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxMikKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjM0NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvbihSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNDcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YTo5NikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5NykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMDApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxMikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kRXhpc3RpbmcoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyODQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIxNSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxODApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2NDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDQoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTc2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTEyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDc4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjI2MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTIoQWN0aW9uVXBkYXRlci5qYXZhOjMyMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFwcGxpY2F0aW9uLmltcGwuQXBwbGljYXRpb25JbXBsLnRyeVJ1blJlYWRBY3Rpb24oQXBwbGljYXRpb25JbXBsLmphdmE6MTE1MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZSQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzcxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShBY3Rpb25VcGRhdGVyLmphdmE6MzY3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNChBY3Rpb25VcGRhdGVyLmphdmE6MzM5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzJDEyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MDgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY4MykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjM5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5CYWNrZ3JvdW5kVGFza1V0aWwucnVuVW5kZXJEaXNwb3NlQXdhcmVJbmRpY2F0b3IoQmFja2dyb3VuZFRhc2tVdGlsLmphdmE6MzY1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzM4KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQxKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5hY2Nlc3MkMjAwKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YTozMSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5ydW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIwMykKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2OCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQoKCgoyMDIyLTA2LTAxVDE1OjQ4OjU3LjE2Mwpjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb246IFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIG9mIG1ldGhvZCAnZ2V0SWQnIGlzIGRlcHJlY2F0ZWQsIHlvdSBuZWVkIHRvIG92ZXJyaWRlIGl0IGluICdjbGFzcyBvcmcuaWNlMTAwMC5qdWxpYS5sYW5nLmV4ZWN1dGlvbi5KdWxpYVJ1bkNvbmZpZ3VyYXRpb25GYWN0b3J5Jy4gVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gZGVsZWdhdGVzIHRvICdnZXROYW1lJyB3aGljaCBtYXkgYmUgbG9jYWxpemVkLCBidXQgcmV0dXJuIHZhbHVlIG9mIHRoaXMgbWV0aG9kIG11c3Qgbm90IGRlcGVuZCBvbiBjdXJyZW50IGxvY2FsaXphdGlvbi4gW1BsdWdpbjogb3JnLmljZTEwMDAuanVsaWFdCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5Qcm9ibGVtUmVwb3J0ZXJJbXBsLmNyZWF0ZVBsdWdpbkV4Y2VwdGlvbkJ5Q2xhc3MoUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5qYXZhOjIzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLmNyZWF0ZUJ5Q2xhc3MoUGx1Z2luRXhjZXB0aW9uLmphdmE6ODMpCglhdCBjb20uaW50ZWxsaWouZGlhZ25vc3RpYy5QbHVnaW5FeGNlcHRpb24ucmVwb3J0RGVwcmVjYXRlZERlZmF1bHQoUGx1Z2luRXhjZXB0aW9uLmphdmE6MTEwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5jb25maWd1cmF0aW9ucy5Db25maWd1cmF0aW9uRmFjdG9yeS5nZXRJZChDb25maWd1cmF0aW9uRmFjdG9yeS5qYXZhOjc1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bm5lckFuZENvbmZpZ3VyYXRpb25TZXR0aW5nc0ltcGwuZ2V0TmFtZShSdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmt0OjE1NCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5nZXRTY2hlbWVLZXkoUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIua3Q6MzcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjIxKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZUxpc3RNYW5hZ2VyLmFkZFNjaGVtZShTY2hlbWVMaXN0TWFuYWdlci5rdDozNSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NjEyKQoJYXQgY29tLmludGVsbGlqLmNvbmZpZ3VyYXRpb25TdG9yZS5zY2hlbWVNYW5hZ2VyLlNjaGVtZU1hbmFnZXJJbXBsLmFkZFNjaGVtZShTY2hlbWVNYW5hZ2VySW1wbC5rdDo0MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLm9wdGlvbnMuU2NoZW1lTWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlci5rdDozOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5nZXRDb25maWd1cmF0aW9uVGVtcGxhdGUoUnVuTWFuYWdlckltcGwua3Q6MzQ1KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bk1hbmFnZXJJbXBsLmNyZWF0ZUNvbmZpZ3VyYXRpb24oUnVuTWFuYWdlckltcGwua3Q6MjY5KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLlJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5jbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyhSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToyNTcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmNsb25lVGVtcGxhdGVDb25maWd1cmF0aW9uKFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjI0NykKCWF0IGNvbS5qZXRicmFpbnMucHl0aG9uLnRlc3RpbmcuQWJzdHJhY3RQeXRob25UZXN0Q29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChBYnN0cmFjdFB5dGhvblRlc3RDb25maWd1cmF0aW9uUHJvZHVjZXIua3Q6MzQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmZpbmRPckNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChSdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuamF2YToxOTcpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmRvR2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMTgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuUHJlZmVycmVkUHJvZHVjZXJGaW5kLmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoUHJlZmVycmVkUHJvZHVjZXJGaW5kLmphdmE6MTAwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkNvbmZpZ3VyYXRpb25Db250ZXh0LmdldENvbmZpZ3VyYXRpb25zRnJvbUNvbnRleHQoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YTo0MTIpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZFByZWZlcnJlZENvbmZpZ3VyYXRpb24oQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyOTEpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZmluZEV4aXN0aW5nKENvbmZpZ3VyYXRpb25Db250ZXh0LmphdmE6Mjg0KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZpbmRFeGlzdGluZyhCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjYwKQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5hY3Rpb25zLkJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmZ1bGxVcGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToyMTUpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24udXBkYXRlKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6MTgwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwubGFtYmRhJHBlcmZvcm1EdW1iQXdhcmVVcGRhdGUkMChBY3Rpb25VdGlsLmphdmE6MTMxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmV4LkFjdGlvblV0aWwucGVyZm9ybUR1bWJBd2FyZVVwZGF0ZShBY3Rpb25VdGlsLmphdmE6MTQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb1VwZGF0ZShBY3Rpb25VcGRhdGVyLmphdmE6NjQ1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkdXBkYXRlQWN0aW9uUmVhbCQ0KEFjdGlvblVwZGF0ZXIuamF2YToxMjYpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmNhbGxBY3Rpb24oQWN0aW9uVXBkYXRlci5qYXZhOjE3NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlQWN0aW9uUmVhbChBY3Rpb25VcGRhdGVyLmphdmE6MTI3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkbmV3JDAoQWN0aW9uVXBkYXRlci5qYXZhOjExMikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIudXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2MzQpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjQ3OCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YToyNjApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEyKEFjdGlvblVwZGF0ZXIuamF2YTozMjEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRleHBhbmRBY3Rpb25Hcm91cEFzeW5jJDEzKEFjdGlvblVwZGF0ZXIuamF2YTozMzkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hcHBsaWNhdGlvbi5pbXBsLkFwcGxpY2F0aW9uSW1wbC50cnlSdW5SZWFkQWN0aW9uKEFwcGxpY2F0aW9uSW1wbC5qYXZhOjExNTIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR0cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUkMTcoQWN0aW9uVXBkYXRlci5qYXZhOjM3MSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuUHJvZ3Jlc3NJbmRpY2F0b3JVdGlscy5ydW5BY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShQcm9ncmVzc0luZGljYXRvclV0aWxzLmphdmE6MTU4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci50cnlSdW5SZWFkQWN0aW9uQW5kQ2FuY2VsQmVmb3JlV3JpdGUoQWN0aW9uVXBkYXRlci5qYXZhOjM2NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTQoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkcnVuUHJvY2VzcyQyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YToxODkpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIubGFtYmRhJGV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyQxMihDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJlZ2lzdGVySW5kaWNhdG9yQW5kUnVuKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2ODMpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIuY29tcHV0ZVVuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYzOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjYwNykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuUHJvZ3Jlc3NNYW5hZ2VySW1wbC5leGVjdXRlUHJvY2Vzc1VuZGVyUHJvZ3Jlc3MoUHJvZ3Jlc3NNYW5hZ2VySW1wbC5qYXZhOjYwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLnJ1blByb2Nlc3MoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE3NikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLnV0aWwuQmFja2dyb3VuZFRhc2tVdGlsLnJ1blVuZGVyRGlzcG9zZUF3YXJlSW5kaWNhdG9yKEJhY2tncm91bmRUYXNrVXRpbC5qYXZhOjM2NSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTUoQWN0aW9uVXBkYXRlci5qYXZhOjMzOCkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuZG9SdW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjI0MSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IuYWNjZXNzJDIwMChCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MzEpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEuZXhlY3V0ZShCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjE0KQoJYXQgY29tLmludGVsbGlqLnV0aWwuQ29uY3VycmVuY3lVdGlsLnJ1blVuZGVyVGhyZWFkTmFtZShDb25jdXJyZW5jeVV0aWwuamF2YToyMTIpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb25jdXJyZW5jeS5Cb3VuZGVkVGFza0V4ZWN1dG9yJDEucnVuKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMDMpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yLnJ1bldvcmtlcihUaHJlYWRQb29sRXhlY3V0b3IuamF2YToxMTI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LlRocmVhZFBvb2xFeGVjdXRvciRXb3JrZXIucnVuKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjYyOCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuRXhlY3V0b3JzJFByaXZpbGVnZWRUaHJlYWRGYWN0b3J5JDEkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEuc2VjdXJpdHkuQWNjZXNzQ29udHJvbGxlci5kb1ByaXZpbGVnZWQoTmF0aXZlIE1ldGhvZCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMS5ydW4oRXhlY3V0b3JzLmphdmE6NjY1KQoJYXQgamF2YS5iYXNlL2phdmEubGFuZy5UaHJlYWQucnVuKFRocmVhZC5qYXZhOjgyOSkKCgoKMjAyMi0wNi0wMVQxNTo0ODo1Ny4xOTMKY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uOiBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBtZXRob2QgJ2dldElkJyBpcyBkZXByZWNhdGVkLCB5b3UgbmVlZCB0byBvdmVycmlkZSBpdCBpbiAnY2xhc3Mgb3JnLmljZTEwMDAuanVsaWEubGFuZy5leGVjdXRpb24uSnVsaWFSdW5Db25maWd1cmF0aW9uRmFjdG9yeScuIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGRlbGVnYXRlcyB0byAnZ2V0TmFtZScgd2hpY2ggbWF5IGJlIGxvY2FsaXplZCwgYnV0IHJldHVybiB2YWx1ZSBvZiB0aGlzIG1ldGhvZCBtdXN0IG5vdCBkZXBlbmQgb24gY3VycmVudCBsb2NhbGl6YXRpb24uIFtQbHVnaW46IG9yZy5pY2UxMDAwLmp1bGlhXQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luUHJvYmxlbVJlcG9ydGVySW1wbC5jcmVhdGVQbHVnaW5FeGNlcHRpb25CeUNsYXNzKFBsdWdpblByb2JsZW1SZXBvcnRlckltcGwuamF2YToyMykKCWF0IGNvbS5pbnRlbGxpai5kaWFnbm9zdGljLlBsdWdpbkV4Y2VwdGlvbi5jcmVhdGVCeUNsYXNzKFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjgzKQoJYXQgY29tLmludGVsbGlqLmRpYWdub3N0aWMuUGx1Z2luRXhjZXB0aW9uLnJlcG9ydERlcHJlY2F0ZWREZWZhdWx0KFBsdWdpbkV4Y2VwdGlvbi5qYXZhOjExMCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uY29uZmlndXJhdGlvbnMuQ29uZmlndXJhdGlvbkZhY3RvcnkuZ2V0SWQoQ29uZmlndXJhdGlvbkZhY3RvcnkuamF2YTo3NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5uZXJBbmRDb25maWd1cmF0aW9uU2V0dGluZ3NJbXBsLmdldE5hbWUoUnVubmVyQW5kQ29uZmlndXJhdGlvblNldHRpbmdzSW1wbC5rdDoxNTQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuQ29uZmlndXJhdGlvblNjaGVtZU1hbmFnZXIuZ2V0U2NoZW1lS2V5KFJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmt0OjM3KQoJYXQgY29tLmludGVsbGlqLmV4ZWN1dGlvbi5pbXBsLlJ1bkNvbmZpZ3VyYXRpb25TY2hlbWVNYW5hZ2VyLmdldFNjaGVtZUtleShSdW5Db25maWd1cmF0aW9uU2NoZW1lTWFuYWdlci5rdDoyMSkKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVMaXN0TWFuYWdlci5hZGRTY2hlbWUoU2NoZW1lTGlzdE1hbmFnZXIua3Q6MzUpCglhdCBjb20uaW50ZWxsaWouY29uZmlndXJhdGlvblN0b3JlLnNjaGVtZU1hbmFnZXIuU2NoZW1lTWFuYWdlckltcGwuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXJJbXBsLmt0OjYxMikKCWF0IGNvbS5pbnRlbGxpai5jb25maWd1cmF0aW9uU3RvcmUuc2NoZW1lTWFuYWdlci5TY2hlbWVNYW5hZ2VySW1wbC5hZGRTY2hlbWUoU2NoZW1lTWFuYWdlckltcGwua3Q6NDIpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5vcHRpb25zLlNjaGVtZU1hbmFnZXIuYWRkU2NoZW1lKFNjaGVtZU1hbmFnZXIua3Q6MzgpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmltcGwuUnVuTWFuYWdlckltcGwuZ2V0Q29uZmlndXJhdGlvblRlbXBsYXRlKFJ1bk1hbmFnZXJJbXBsLmt0OjM0NSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uaW1wbC5SdW5NYW5hZ2VySW1wbC5jcmVhdGVDb25maWd1cmF0aW9uKFJ1bk1hbmFnZXJJbXBsLmt0OjI2OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb25TdGF0aWMoUnVuQ29uZmlndXJhdGlvblByb2R1Y2VyLmphdmE6MjU3KQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5QeVRlc3RzQ29uZmlndXJhdGlvblByb2R1Y2VyLmFjY2VzcyRjbG9uZVRlbXBsYXRlQ29uZmlndXJhdGlvblN0YXRpYyRzLTEzNDU2NzUwMTEoUHlUZXN0c1NoYXJlZC5rdDo3NjIpCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLlB5VGVzdHNDb25maWd1cmF0aW9uUHJvZHVjZXIuY2xvbmVUZW1wbGF0ZUNvbmZpZ3VyYXRpb24oUHlUZXN0c1NoYXJlZC5rdDo4NDMpCglhdCBjb20uamV0YnJhaW5zLnB5dGhvbi50ZXN0aW5nLkFic3RyYWN0UHl0aG9uVGVzdENvbmZpZ3VyYXRpb25Qcm9kdWNlci5jcmVhdGVDb25maWd1cmF0aW9uRnJvbUNvbnRleHQoQWJzdHJhY3RQeXRob25UZXN0Q29uZmlndXJhdGlvblByb2R1Y2VyLmt0OjM0KQoJYXQgY29tLmpldGJyYWlucy5weXRob24udGVzdGluZy5QeVRlc3RzQ29uZmlndXJhdGlvblByb2R1Y2VyLmNyZWF0ZUNvbmZpZ3VyYXRpb25Gcm9tQ29udGV4dChQeVRlc3RzU2hhcmVkLmt0Ojg0OSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5SdW5Db25maWd1cmF0aW9uUHJvZHVjZXIuZmluZE9yQ3JlYXRlQ29uZmlndXJhdGlvbkZyb21Db250ZXh0KFJ1bkNvbmZpZ3VyYXRpb25Qcm9kdWNlci5qYXZhOjE5NykKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZG9HZXRDb25maWd1cmF0aW9uc0Zyb21Db250ZXh0KFByZWZlcnJlZFByb2R1Y2VyRmluZC5qYXZhOjExOCkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5QcmVmZXJyZWRQcm9kdWNlckZpbmQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChQcmVmZXJyZWRQcm9kdWNlckZpbmQuamF2YToxMDApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQ29uZmlndXJhdGlvbkNvbnRleHQuZ2V0Q29uZmlndXJhdGlvbnNGcm9tQ29udGV4dChDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjQxMikKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kUHJlZmVycmVkQ29uZmlndXJhdGlvbihDb25maWd1cmF0aW9uQ29udGV4dC5qYXZhOjI5MSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5Db25maWd1cmF0aW9uQ29udGV4dC5maW5kRXhpc3RpbmcoQ29uZmlndXJhdGlvbkNvbnRleHQuamF2YToyODQpCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZmluZEV4aXN0aW5nKEJhc2VSdW5Db25maWd1cmF0aW9uQWN0aW9uLmphdmE6NjApCglhdCBjb20uaW50ZWxsaWouZXhlY3V0aW9uLmFjdGlvbnMuQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uZnVsbFVwZGF0ZShCYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi5qYXZhOjIxNSkKCWF0IGNvbS5pbnRlbGxpai5leGVjdXRpb24uYWN0aW9ucy5CYXNlUnVuQ29uZmlndXJhdGlvbkFjdGlvbi51cGRhdGUoQmFzZVJ1bkNvbmZpZ3VyYXRpb25BY3Rpb24uamF2YToxODApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5sYW1iZGEkcGVyZm9ybUR1bWJBd2FyZVVwZGF0ZSQwKEFjdGlvblV0aWwuamF2YToxMzEpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uZXguQWN0aW9uVXRpbC5wZXJmb3JtRHVtYkF3YXJlVXBkYXRlKEFjdGlvblV0aWwuamF2YToxNDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvVXBkYXRlKEFjdGlvblVwZGF0ZXIuamF2YTo2NDUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSR1cGRhdGVBY3Rpb25SZWFsJDQoQWN0aW9uVXBkYXRlci5qYXZhOjEyNikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuY2FsbEFjdGlvbihBY3Rpb25VcGRhdGVyLmphdmE6MTc2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGVBY3Rpb25SZWFsKEFjdGlvblVwZGF0ZXIuamF2YToxMjcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRuZXckMChBY3Rpb25VcGRhdGVyLmphdmE6MTEyKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci51cGRhdGUoQWN0aW9uVXBkYXRlci5qYXZhOjYzNCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NDc4KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kR3JvdXBDaGlsZChBY3Rpb25VcGRhdGVyLmphdmE6NTM1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZG9FeHBhbmRBY3Rpb25Hcm91cCQyMChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29udGFpbmVycy5Db250YWluZXJVdGlsLmNvbmNhdChDb250YWluZXJVdGlsLmphdmE6MTQwMCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZG9FeHBhbmRBY3Rpb25Hcm91cChBY3Rpb25VcGRhdGVyLmphdmE6NDU3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5leHBhbmRHcm91cENoaWxkKEFjdGlvblVwZGF0ZXIuamF2YTo1MzUpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmxhbWJkYSRkb0V4cGFuZEFjdGlvbkdyb3VwJDIwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoudXRpbC5jb250YWluZXJzLkNvbnRhaW5lclV0aWwuY29uY2F0KENvbnRhaW5lclV0aWwuamF2YToxNDAwKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5kb0V4cGFuZEFjdGlvbkdyb3VwKEFjdGlvblVwZGF0ZXIuamF2YTo0NTcpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmV4cGFuZEdyb3VwQ2hpbGQoQWN0aW9uVXBkYXRlci5qYXZhOjUzNSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGRvRXhwYW5kQWN0aW9uR3JvdXAkMjAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbnRhaW5lcnMuQ29udGFpbmVyVXRpbC5jb25jYXQoQ29udGFpbmVyVXRpbC5qYXZhOjE0MDApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLmRvRXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjQ1NykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIuZXhwYW5kQWN0aW9uR3JvdXAoQWN0aW9uVXBkYXRlci5qYXZhOjI2MCkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTIoQWN0aW9uVXBkYXRlci5qYXZhOjMyMSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJGV4cGFuZEFjdGlvbkdyb3VwQXN5bmMkMTMoQWN0aW9uVXBkYXRlci5qYXZhOjMzOSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFwcGxpY2F0aW9uLmltcGwuQXBwbGljYXRpb25JbXBsLnRyeVJ1blJlYWRBY3Rpb24oQXBwbGljYXRpb25JbXBsLmphdmE6MTE1MikKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLmFjdGlvblN5c3RlbS5pbXBsLkFjdGlvblVwZGF0ZXIubGFtYmRhJHRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZSQxNyhBY3Rpb25VcGRhdGVyLmphdmE6MzcxKQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5Qcm9ncmVzc0luZGljYXRvclV0aWxzLnJ1bkFjdGlvbkFuZENhbmNlbEJlZm9yZVdyaXRlKFByb2dyZXNzSW5kaWNhdG9yVXRpbHMuamF2YToxNTgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5hY3Rpb25TeXN0ZW0uaW1wbC5BY3Rpb25VcGRhdGVyLnRyeVJ1blJlYWRBY3Rpb25BbmRDYW5jZWxCZWZvcmVXcml0ZShBY3Rpb25VcGRhdGVyLmphdmE6MzY3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNChBY3Rpb25VcGRhdGVyLmphdmE6MzM5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmxhbWJkYSRydW5Qcm9jZXNzJDIoQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjE4OSkKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5sYW1iZGEkZXhlY3V0ZVByb2Nlc3NVbmRlclByb2dyZXNzJDEyKENvcmVQcm9ncmVzc01hbmFnZXIuamF2YTo2MDgpCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucmVnaXN0ZXJJbmRpY2F0b3JBbmRSdW4oQ29yZVByb2dyZXNzTWFuYWdlci5qYXZhOjY4MykKCWF0IGNvbS5pbnRlbGxpai5vcGVuYXBpLnByb2dyZXNzLmltcGwuQ29yZVByb2dyZXNzTWFuYWdlci5jb21wdXRlVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjM5KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Db3JlUHJvZ3Jlc3NNYW5hZ2VyLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6NjA3KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MuaW1wbC5Qcm9ncmVzc01hbmFnZXJJbXBsLmV4ZWN1dGVQcm9jZXNzVW5kZXJQcm9ncmVzcyhQcm9ncmVzc01hbmFnZXJJbXBsLmphdmE6NjApCglhdCBjb20uaW50ZWxsaWoub3BlbmFwaS5wcm9ncmVzcy5pbXBsLkNvcmVQcm9ncmVzc01hbmFnZXIucnVuUHJvY2VzcyhDb3JlUHJvZ3Jlc3NNYW5hZ2VyLmphdmE6MTc2KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkucHJvZ3Jlc3MudXRpbC5CYWNrZ3JvdW5kVGFza1V0aWwucnVuVW5kZXJEaXNwb3NlQXdhcmVJbmRpY2F0b3IoQmFja2dyb3VuZFRhc2tVdGlsLmphdmE6MzY1KQoJYXQgY29tLmludGVsbGlqLm9wZW5hcGkuYWN0aW9uU3lzdGVtLmltcGwuQWN0aW9uVXBkYXRlci5sYW1iZGEkZXhwYW5kQWN0aW9uR3JvdXBBc3luYyQxNShBY3Rpb25VcGRhdGVyLmphdmE6MzM4KQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5kb1J1bihCb3VuZGVkVGFza0V4ZWN1dG9yLmphdmE6MjQxKQoJYXQgY29tLmludGVsbGlqLnV0aWwuY29uY3VycmVuY3kuQm91bmRlZFRhc2tFeGVjdXRvci5hY2Nlc3MkMjAwKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YTozMSkKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5leGVjdXRlKEJvdW5kZWRUYXNrRXhlY3V0b3IuamF2YToyMTQpCglhdCBjb20uaW50ZWxsaWoudXRpbC5Db25jdXJyZW5jeVV0aWwucnVuVW5kZXJUaHJlYWROYW1lKENvbmN1cnJlbmN5VXRpbC5qYXZhOjIxMikKCWF0IGNvbS5pbnRlbGxpai51dGlsLmNvbmN1cnJlbmN5LkJvdW5kZWRUYXNrRXhlY3V0b3IkMS5ydW4oQm91bmRlZFRhc2tFeGVjdXRvci5qYXZhOjIwMykKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5UaHJlYWRQb29sRXhlY3V0b3IucnVuV29ya2VyKFRocmVhZFBvb2xFeGVjdXRvci5qYXZhOjExMjgpCglhdCBqYXZhLmJhc2UvamF2YS51dGlsLmNvbmN1cnJlbnQuVGhyZWFkUG9vbEV4ZWN1dG9yJFdvcmtlci5ydW4oVGhyZWFkUG9vbEV4ZWN1dG9yLmphdmE6NjI4KQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxJDEucnVuKEV4ZWN1dG9ycy5qYXZhOjY2OCkKCWF0IGphdmEuYmFzZS9qYXZhLnV0aWwuY29uY3VycmVudC5FeGVjdXRvcnMkUHJpdmlsZWdlZFRocmVhZEZhY3RvcnkkMSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5zZWN1cml0eS5BY2Nlc3NDb250cm9sbGVyLmRvUHJpdmlsZWdlZChOYXRpdmUgTWV0aG9kKQoJYXQgamF2YS5iYXNlL2phdmEudXRpbC5jb25jdXJyZW50LkV4ZWN1dG9ycyRQcml2aWxlZ2VkVGhyZWFkRmFjdG9yeSQxLnJ1bihFeGVjdXRvcnMuamF2YTo2NjUpCglhdCBqYXZhLmJhc2UvamF2YS5sYW5nLlRocmVhZC5ydW4oVGhyZWFkLmphdmE6ODI5KQo=
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PC-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Linux
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IU-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Mac OS X
- Java Version: 11.0.15
- App Name: PyCharm
- App Full Name: PyCharm
- App Version name: PyCharm
- Is EAP: false
- App Build: PY-221.5787.24
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null
- Julia Version:
- Plugin Name: Julia
- Plugin Version: 0.4.2
- OS Name: Windows 10
- Java Version: 11.0.15
- App Name: IDEA
- App Full Name: IntelliJ IDEA
- App Version name: IntelliJ IDEA
- Is EAP: false
- App Build: IC-221.5787.30
- App Version: 2022.1.2
- Last Action: Unknown
- title: [auto-generated:1387808935] null