From b944a425e4932c82ec67701edb67eab7bd20a296 Mon Sep 17 00:00:00 2001 From: Scott Shields Date: Tue, 10 Nov 2020 13:14:14 -0500 Subject: [PATCH] Initial release --- .github/workflows/ci.yml | 16 ++ .gitignore | 8 + CHANGELOG.md | 6 + CODE_OF_CONDUCT.md | 126 +++++++++++ CONTRIBUTING.md | 12 ++ LICENSE | 201 ++++++++++++++++++ MAINTAINERS.md | 3 + README.md | 84 ++++++++ SECURITY.md | 1 + build.gradle | 99 +++++++++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 58695 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 183 ++++++++++++++++ gradlew.bat | 100 +++++++++ images/plugin_configuration.png | Bin 0 -> 197529 bytes settings.gradle | 1 + .../datadog/DatadogResourceModelSource.java | 81 +++++++ .../DatadogResourceModelSourceFactory.java | 112 ++++++++++ .../resources/datadog/HostToNodeMapper.java | 164 ++++++++++++++ .../datadog/datadog/DatadogHost.java | 156 ++++++++++++++ .../datadog/datadog/DatadogHostRequest.java | 197 +++++++++++++++++ .../datadog/datadog/DatadogHosts.java | 40 ++++ .../datadog/datadog/DatadogHostsUrl.java | 26 +++ .../datadog/datadog/DatadogMetaData.java | 64 ++++++ src/main/resources/resources/icon.png | Bin 0 -> 74745 bytes .../datadog/HostToNodeMapperSpec.groovy | 121 +++++++++++ 26 files changed, 1806 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 LICENSE create mode 100644 MAINTAINERS.md create mode 100644 README.md create mode 100644 SECURITY.md create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 images/plugin_configuration.png create mode 100644 settings.gradle create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSource.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSourceFactory.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapper.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHost.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostRequest.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHosts.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostsUrl.java create mode 100644 src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogMetaData.java create mode 100644 src/main/resources/resources/icon.png create mode 100644 src/test/groovy/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapperSpec.groovy diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..1094e71 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,16 @@ +name: CI + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Build + run: ./gradlew build \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ee37ce3 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +.idea +.reviewboardrc +*.swp +*.iml +.gradle +build +out \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..fe48472 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,6 @@ +# Changelog +All notable changes to this project will be documented in this file. + +## [0.1.0] - 2020-10-10 + +Initial Release \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..87ddead --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,126 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, religion, or sexual identity +and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the + overall community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or + advances of any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email + address, without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement by contacting [a +project maintainer][maintainers]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series +of actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or +permanent ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within +the community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.0, available at +https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. + +Community Impact Guidelines were inspired by [Mozilla's code of conduct +enforcement ladder](https://github.com/mozilla/diversity). + +[maintainers]: MAINTAINERS.md +[homepage]: https://www.contributor-covenant.org \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..b6f420e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,12 @@ +# Contributing + +When contributing to this repository, please first discuss the change you wish to make via an issue. + +Please note we have a [code of conduct](CODE_OF_CONDUCT.md), please follow it in all your interactions with the project. + +## Pull Request Process + +1. Ensure the CI pipeline is passing. +2. Update documentation with details of changes. +3. Add an entry to the [change log](CHANGELOG.md). +4. Create the PR. \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..f49a4e1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. \ No newline at end of file diff --git a/MAINTAINERS.md b/MAINTAINERS.md new file mode 100644 index 0000000..3754178 --- /dev/null +++ b/MAINTAINERS.md @@ -0,0 +1,3 @@ +# Maintainers + +* Scott Shields - sshields [at] wayfair.com \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..b2367d2 --- /dev/null +++ b/README.md @@ -0,0 +1,84 @@ +# Rundeck Datadog Nodes Plugin +![](https://github.com/wayfair-incubator/rundeck-datadog-nodes-plugin/workflows/CI/badge.svg?branch=main) + +This is a [Resource Model Source](https://docs.rundeck.com/docs/administration/projects/resource-model-sources/) plugin +for Rundeck 3.0+ that provides Datadog hosts as nodes for use within Rundeck. + +This plugin utilizes the Datadog [hosts endpoint](https://docs.datadoghq.com/api/v1/hosts/#get-all-hosts-for-your-organization) +to retrieve hosts that match a configured filter string. Filter strings can be tested using +[Datadog's Infrastructure List](https://app.datadoghq.com/infrastructure) page. + +At this time, the hosts endpoint returns 1000 hosts max and takes a fairly long time when the host count is high +(tested on 30,000+ hosts). In order to work around this, the calls are parallelized if more than 1000 hosts are to be returned. + +Datadog tags can be configured as Rundeck node tags per project or at the framework level. All Datadog tags are not +included by default as it can lock up the Rundeck UI when there are hundreds of tags per node. + +## Installation +Download from the [releases page](https://github.com/wayfair-incubator/rundeck-datadog-nodes-plugin/releases). + +Alternatively, clone the repository, run `./gradlew build`, +and obtain the resulting JAR in `build/libs/rundeck-datadog-nodes-plugin-X.X.X.jar` + +Copy the plugin JAR to the Rundeck servers libext directory to complete the [installation](https://docs.rundeck.com/docs/administration/configuration/plugins/installing.html). + +## Configure +You can configure the plugin properties via the three following methods: +* Rundeck UI +* Project properties file + * `project.plugin.ResourceModelSource.datadog-nodes-plugin.=` +* Framework properties file + * `framework.plugin.ResourceModelSource.datadog-nodes-plugin.=` + +See the Rundeck [Node Source Configuration](https://docs.rundeck.com/docs/administration/configuration/plugins/configuring.html#resource-model-sources) for more information. + +### Configuration Properties +![](/images/plugin_configuration.png) +
+ +**Datadog Api Key** + +The api key for authenticating with Datadog - [Datadog Authentication](https://docs.datadoghq.com/account_management/api-app-keys/) + +**Datadog App Key** + +The app key for authenticating with Datadog - [Datadog Authentication](https://docs.datadoghq.com/account_management/api-app-keys/) + +**Filter** + +[Optional] A string used to filter hosts from Datadog. For example, `env:production host:test datacenter:mars` will return all production hosts +with test in their name in the mars datacenter. It's a good idea to check the filter string +on the [Datadog Infrastructure List](https://app.datadoghq.com/infrastructure) page to verify the host list you are targeting. +Datadog only supports "AND" filters at this time so only hosts with that exact combination of attributes will be returned. +If empty, all hosts will be returned. + +**Datadog Tag File Path** + +[Optional] A path to a file that contains a newline separated list of Datadog tags to add to Rundeck nodes. Nodes with hundreds of +tags can freeze the Rundeck UI so this allows users to map only the tags they need. + +**Datadog Tags** + +[Optional] A comma separated list of Datadog tags to map to nodes. These will be appended to the list of tags if a tag file path is given. +Otherwise, they will be used on their own. + +## Mapping Datadog Hosts to Rundeck Nodes +Rundeck nodes require certain attributes be set to ensure they can be utilized properly. Other attributes +are used to filter the nodes. + +The following attributes are set by this plugin: +* `nodename` - the unique node identifier +* `hostname` - the hostname used for connecting to the node +* `osName` - the operating system name (if available; if not the OS platform is used) +* `osFamily` - the operating system family (unix, windows). Used by the node executor +* `osVersion` - operating system version (if available) +* `tags` - Datadog tags +* `isMuted` - whether or not the node is muted in Datadog +* `sources` - the source of the node in Datadog (Ex. vSphere, Datadog Agent) + +## License +See license information [here](LICENSE) + +## Contributing +If you would like to contribute to this project, see the [Contributing](CONTRIBUTING.md) documentation for more information. Please ensure to follow our +[Code of Conduct](CODE_OF_CONDUCT.md) at all times. diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..414e761 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1 @@ +If you have discovered a security vulnerability, please email opensource@wayfair.com \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..22fb987 --- /dev/null +++ b/build.gradle @@ -0,0 +1,99 @@ +buildscript { + repositories { + mavenCentral() + } +} + +plugins { + id 'pl.allegro.tech.build.axion-release' version '1.12.0' +} + +apply plugin: 'java' +apply plugin: 'groovy' +apply plugin: 'idea' +apply plugin: 'pl.allegro.tech.build.axion-release' + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +scmVersion { + ignoreUncommittedChanges = false + tag { + prefix = 'v' + versionSeparator = '' + def origDeserialize = deserialize + //append .0 to satisfy semver if the tag version is only X.Y + deserialize = { config, position, tagName -> + def orig = origDeserialize(config, position, tagName) + if (orig.split('\\.').length < 3) { + orig += ".0" + } + orig + } + } +} +project.version = scmVersion.version + +defaultTasks 'clean', 'build' + +// produce a jar file for our source files +task sourceJar(type: Jar) { + classifier = 'sources' + from sourceSets.main.java +} + +configurations { + pluginCompile + compile { + extendsFrom pluginCompile + } +} + +repositories { + mavenCentral() +} + +dependencies { + compile( + 'org.rundeck:rundeck-core:3.0.+' + ) + + pluginCompile( + 'com.google.cloud:libraries-bom:3.3.0', + 'com.google.http-client:google-http-client:1.36.0', + 'com.google.code.gson:gson:2.3.1', + 'com.google.http-client:google-http-client-jackson2:1.34.0', + 'org.slf4j:slf4j-log4j12:1.7.30' + ) + + testCompile( + "org.codehaus.groovy:groovy-all:2.3.7", + "org.spockframework:spock-core:0.7-groovy-2.0", + "cglib:cglib-nodep:2.2.2" + ) +} + +def pluginLibs = configurations.runtime.files.collect { "$it.name" }.join(" ") + +jar { + manifest { + attributes 'Rundeck-Plugin-Name': 'DataDog Nodes Plugin', + 'Rundeck-Plugin-Description': 'Resource Model Source plugin that provides DataDog hosts as nodes.', + 'Rundeck-Plugin-Rundeck-Compatibility-Version': '3.0+', + 'Rundeck-Plugin-Tags': 'java,datadog,resource model', + 'Rundeck-Plugin-Author': 'Scott Shields', + 'Rundeck-Plugin-Version': '1.2', + 'Rundeck-Plugin-License': 'Apache 2.0', + 'Rundeck-Plugin-Source-Link': 'https://github.com/wayfair-incubator/rundeck-datadog-nodes-plugin', + 'Rundeck-Plugin-Archive': 'true', + 'Rundeck-Plugin-Libs-Load-First': 'false', + 'Rundeck-Plugin-Classnames': 'com.wayfair.rundeck.plugin.resources.datadog.DatadogResourceModelSourceFactory', + 'Rundeck-Plugin-Libs': pluginLibs, + 'Rundeck-Plugin-File-Version': project.version + } + from configurations.pluginCompile +} + +wrapper { + gradleVersion = '4.7' +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..f3d88b1c2faf2fc91d853cd5d4242b5547257070 GIT binary patch literal 58695 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 literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..be52383 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..2fe81a7 --- /dev/null +++ b/gradlew @@ -0,0 +1,183 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..24467a1 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,100 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/images/plugin_configuration.png b/images/plugin_configuration.png new file mode 100644 index 0000000000000000000000000000000000000000..5a617bca06a23649d383a41d311f27d4ad479c1e GIT binary patch literal 197529 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ɇ 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

0<7Hyc@2d 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 literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..497aedc --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'rundeck-datadog-nodes-plugin' \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSource.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSource.java new file mode 100644 index 0000000..57d2eb2 --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSource.java @@ -0,0 +1,81 @@ +package com.wayfair.rundeck.plugin.resources.datadog; + +import com.dtolabs.rundeck.core.common.INodeSet; +import com.dtolabs.rundeck.core.resources.ResourceModelSource; +import com.dtolabs.rundeck.core.resources.ResourceModelSourceException; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Properties; +import java.util.Scanner; +import java.util.Set; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * DatadogResourceModelSource is the entry point for Rundeck core to retrieve nodes from Datadog. + */ +public class DatadogResourceModelSource implements ResourceModelSource { + private static final Logger logger = LoggerFactory.getLogger(DatadogResourceModelSource.class); + private final HostToNodeMapper mapper; + + /** Constructor */ + DatadogResourceModelSource(final Properties configuration) { + String filterString = + configuration.getProperty(DatadogResourceModelSourceFactory.FILTER_STRING); + + logger.debug("The built filterString: " + filterString); + + String appKey = configuration.getProperty(DatadogResourceModelSourceFactory.DATADOG_APP_KEY); + String apiKey = configuration.getProperty(DatadogResourceModelSourceFactory.DATADOG_API_KEY); + + Set inputTagSet = new HashSet<>(); + + String tagFilePath = + configuration.getProperty(DatadogResourceModelSourceFactory.DATADOG_TAG_FILE_PATH); + + if (tagFilePath != null) { + try { + Scanner scanner = new Scanner(new FileReader(tagFilePath)); + while (scanner.hasNext()) { + inputTagSet.add(scanner.nextLine().trim()); + } + } catch (FileNotFoundException fnf) { + logger.error("Exception while attempting to read the tag file: " + fnf.toString()); + } + } + + String inputTagString = + configuration.getProperty(DatadogResourceModelSourceFactory.DATADOG_TAG_STRING); + + if (inputTagString != null && !"".equals(inputTagString)) { + inputTagSet.addAll(Arrays.asList(inputTagString.replaceAll("\\s", "").split(","))); + } + + logger.debug("Creating a HostToNodeMapper"); + mapper = new HostToNodeMapper(filterString, appKey, apiKey, inputTagSet); + } + + /** + * Gets the nodes to return to Rundeck application. + * + *

Will throw a ResourceModelSourceException for any exceptions so Rundeck will use a cached + * node set if there are any errors in retrieving hosts. + * + * @return a set of Rundeck nodes + * @throws ResourceModelSourceException for any issues with retrieving nodes + */ + @Override + public INodeSet getNodes() throws ResourceModelSourceException { + INodeSet nodes; + try { + nodes = mapper.performQuery(); + } catch (ResourceModelSourceException e) { + throw new ResourceModelSourceException( + "Exception while retrieving Datadog hosts: " + e.toString(), e); + } + + return nodes; + } +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSourceFactory.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSourceFactory.java new file mode 100644 index 0000000..9d9b23c --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/DatadogResourceModelSourceFactory.java @@ -0,0 +1,112 @@ +package com.wayfair.rundeck.plugin.resources.datadog; + +import com.dtolabs.rundeck.core.plugins.Plugin; +import com.dtolabs.rundeck.core.plugins.configuration.Describable; +import com.dtolabs.rundeck.core.plugins.configuration.Description; +import com.dtolabs.rundeck.core.plugins.configuration.PropertyUtil; +import com.dtolabs.rundeck.core.plugins.configuration.StringRenderingConstants; +import com.dtolabs.rundeck.core.plugins.configuration.ValidationException; +import com.dtolabs.rundeck.core.resources.ResourceModelSource; +import com.dtolabs.rundeck.core.resources.ResourceModelSourceFactory; +import com.dtolabs.rundeck.plugins.util.DescriptionBuilder; +import java.io.File; +import java.util.Collections; +import java.util.Properties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** Factory that creates a ResourceModelSource based on a UI configuration. */ +@Plugin(name = "datadog-nodes-plugin", service = "ResourceModelSource") +public class DatadogResourceModelSourceFactory implements ResourceModelSourceFactory, Describable { + private static final Logger logger = + LoggerFactory.getLogger(DatadogResourceModelSourceFactory.class); + private static final String PROVIDER_NAME = "datadog-nodes-plugin"; + static final String FILTER_STRING = "filter"; + static final String DATADOG_APP_KEY = "datadog_app_key"; + static final String DATADOG_API_KEY = "datadog_api_key"; + static final String DATADOG_TAG_FILE_PATH = "datadog_tag_file_path"; + static final String DATADOG_TAG_STRING = "datadog_tag_string"; + + private static final Description description = + DescriptionBuilder.builder() + .name(PROVIDER_NAME) + .title("Datadog Nodes Source") + .description("Produces Nodes from Datadog Hosts") + .property( + PropertyUtil.string( + DATADOG_API_KEY, + "Datadog Api Key", + "The Datadog Api Key", + true, + null, + null, + null, + Collections.singletonMap( + StringRenderingConstants.DISPLAY_TYPE_KEY, + StringRenderingConstants.DisplayType.PASSWORD))) + .property( + PropertyUtil.string( + DATADOG_APP_KEY, + "Datadog App Key", + "The Datadog App Key", + true, + null, + null, + null, + Collections.singletonMap( + StringRenderingConstants.DISPLAY_TYPE_KEY, + StringRenderingConstants.DisplayType.PASSWORD))) + .property( + PropertyUtil.string( + FILTER_STRING, + "Filter", + "A filter string used to filter hosts. Separate filter items with a" + + " space. Example: `env:prod host:test datacenter:blah`. Use" + + " `https://app.datadoghq.com/infrastructure` to test filters", + false, + null)) + .property( + PropertyUtil.string( + DATADOG_TAG_FILE_PATH, + "Datadog Tag File Path", + "Path to a file with a list of Datadog tags to map to node tags.", + false, + null, + file -> { + if (!new File(file).isFile()) { + throw new ValidationException("File does not exist: " + file); + } + return true; + })) + .property( + PropertyUtil.string( + DATADOG_TAG_STRING, + "Datadog Tags", + "A comma separated list of Datadog tags to map to nodes. These will be" + + " appended to the list of tags if a tag file path is given. Otherwise" + + " to the list of tags if a tag file path is given. Otherwise, they will" + + " be used on their own.", + false, + null)) + .build(); + + /** + * Creates a ResourceModelSource + * + * @param properties Properties passed in by Rundeck application + * @return a DatadogResourceModelSource + */ + public ResourceModelSource createResourceModelSource(final Properties properties) { + logger.debug("Attempting to create a new DatadogResourceModelSource..."); + return new DatadogResourceModelSource(properties); + } + + /** + * Returns a Description to be used to build the UI + * + * @return a Description + */ + public Description getDescription() { + return description; + } +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapper.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapper.java new file mode 100644 index 0000000..fb5786f --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapper.java @@ -0,0 +1,164 @@ +package com.wayfair.rundeck.plugin.resources.datadog; + +import static com.wayfair.rundeck.plugin.resources.datadog.datadog.DatadogHostRequest.getDatadogHosts; + +import com.dtolabs.rundeck.core.common.NodeEntryImpl; +import com.dtolabs.rundeck.core.common.NodeSetImpl; +import com.dtolabs.rundeck.core.resources.ResourceModelSourceException; +import com.google.common.annotations.VisibleForTesting; +import com.wayfair.rundeck.plugin.resources.datadog.datadog.DatadogHost; +import com.wayfair.rundeck.plugin.resources.datadog.datadog.DatadogMetaData; +import java.io.IOException; +import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeoutException; +import java.util.stream.Collectors; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** HostToNodeMapper maps Datadog hosts to Rundeck Nodes. */ +class HostToNodeMapper { + private static final Logger logger = LoggerFactory.getLogger(HostToNodeMapper.class); + private final String filterString; + private final String appKey; + private final String apiKey; + private final Set inputTagSet; + + /** + * Constructs a HostToNodeMapper. + * + * @param filterString the filter string for hosts + * @param appKey the Datadog APP key + * @param apiKey the Datadog API key + * @param inputTagSet the Datadog tags to map to nodes + */ + HostToNodeMapper(String filterString, String appKey, String apiKey, Set inputTagSet) { + this.filterString = filterString; + this.appKey = appKey; + this.apiKey = apiKey; + this.inputTagSet = inputTagSet; + } + + /** + * Maps host properties to Rundeck node attributes. + * + * @param hosts Datadog hosts + * @param inputTagSet Datadog tags + */ + @VisibleForTesting + static NodeSetImpl mapHosts(Set hosts, Set inputTagSet) { + final NodeSetImpl nodeSet = new NodeSetImpl(); + + for (DatadogHost host : hosts) { + final NodeEntryImpl node = new NodeEntryImpl(); + + if (inputTagSet.size() > 0) { + Set datadogTags = + host.getDatadogTags().stream() + .filter(tag -> inputTagSet.contains(tag.split(":")[0])) + .collect(Collectors.toSet()); + + node.setTags(datadogTags); + + logger.debug("[Datadog Node Source] Tags: " + datadogTags); + } + + // Set the node and host name to the fqdn format + String fqdn = host.getHostName(); + + node.setNodename(fqdn); + node.setHostname(fqdn); + + DatadogMetaData metaData = host.getMetaData(); + String osPlatform = ""; + + if (metaData != null && metaData.getOperatingSystemPlatform() != null) { + osPlatform = metaData.getOperatingSystemPlatform().toLowerCase().trim(); + } else { + // Check for any Datadog tags for operatingsystem if there is no platform metadata + // This can happen with certain nodes from integrations like vSphere. The Datadog agent + // will generally add this tag though. + for (String tag : host.getDatadogTags()) { + if (tag.toLowerCase().startsWith("operatingsystem:")) { + osPlatform = tag.toLowerCase().trim().split(":")[1]; + } + } + } + + // Rundeck needs this information so we need to discard the host if it's missing + if ("".equals(osPlatform)) { + logger.warn("Could not determine an OS for the following host: " + fqdn); + continue; + } + + // OS Family is important for Rundeck's selection of node executors + node.setOsFamily(osPlatform.contains("win") ? "windows" : "unix"); + + // Grab the metadata if available for more detailed OS information + if (metaData != null && !metaData.isEmpty()) { + if ((metaData.getUnixVersionList() != null && metaData.getUnixVersionList().size() >= 2) + && (metaData.getWindowsVersionList() != null + && metaData.getWindowsVersionList().size() >= 2)) { + String osVersion = + "windows".equals(node.getOsFamily()) + ? host.getMetaData().getWindowsVersionList().get(1) + : host.getMetaData().getUnixVersionList().get(1); + + if (!"".equals(osVersion)) { + node.setOsVersion(osVersion); + } + + String osName = + "windows".equals(node.getOsFamily()) + ? metaData.getWindowsVersionList().get(0) + : metaData.getUnixVersionList().get(0); + + if (!"".equals(osName)) { + node.setOsName(osName); + } + } + } + + if (node.getOsName() == null || "".equals(node.getOsName())) { + node.setOsName(osPlatform); + } + + node.setAttribute("isMuted", Boolean.toString(host.isMuted())); + node.setAttribute("sources", host.getSources().toString()); + + logger.debug("Adding node: " + node.getNodename()); + nodeSet.putNode(node); + } + + return nodeSet; + } + + /** + * Retrieves hosts from Datadog and maps them to Rundeck nodes. + * + * @return a set of Rundeck nodes + * @throws ResourceModelSourceException Rundeck resource model exception + */ + NodeSetImpl performQuery() throws ResourceModelSourceException { + Set hostSet; + + logger.info("[Datadog Node Source] Begin - Getting Datadog hosts"); + try { + hostSet = getDatadogHosts(filterString, appKey, apiKey); + } catch (IOException | ExecutionException | TimeoutException | InterruptedException ex) { + throw new ResourceModelSourceException( + "Exception while fetching Datadog hosts: " + ex.toString(), ex); + } + + if (hostSet.isEmpty()) { + logger.info("[Datadog Node Source] No hosts were returned from Datadog"); + } + + NodeSetImpl nodeSet = mapHosts(hostSet, inputTagSet); + + logger.info( + "[Datadog Node Source] End - Returning " + nodeSet.getNodes().size() + " Datadog hosts"); + + return nodeSet; + } +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHost.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHost.java new file mode 100644 index 0000000..578d52c --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHost.java @@ -0,0 +1,156 @@ +package com.wayfair.rundeck.plugin.resources.datadog.datadog; + +import com.google.api.client.json.GenericJson; +import com.google.api.client.util.Key; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +/** + * A representation of a Datadog Host. + * + *

See Hosts + * Endpoint for more information. + */ +public final class DatadogHost extends GenericJson { + + /** The host name. */ + @Key("host_name") + private String hostName; + + /** The host id. */ + @Key private long id; + + /** List of tags for each source (AWS, Datadog Agent, Chef..). */ + @Key("tags_by_source") + private Map> tags; + + /** If a host is muted or not. */ + @Key("is_muted") + private boolean isMuted; + + /** Metadata associated with the host. */ + @Key("meta") + private DatadogMetaData metaData; + + /** Source or cloud provider associated with the host. */ + @Key private List sources; + + /** + * Get the Datadog hostname. + * + * @return hostname + */ + public String getHostName() { + return hostName; + } + + /** + * Get the Datadog host id. + * + * @return the host id + */ + public long getId() { + return id; + } + + /** + * Get the Datadog host tags. + * + *

There can be a good amount of duplicate tags so get rid of those here. + * + * @return the tags + */ + public Set getDatadogTags() { + Set tagSet = new HashSet<>(); + + for (Map.Entry> item : tags.entrySet()) { + tagSet.addAll(item.getValue()); + } + + return tagSet; + } + + /** + * Get the mute status of the the host. + * + * @return true if the host is muted; false otherwise + */ + public boolean isMuted() { + return isMuted; + } + + /** + * Get the host's metadata. + * + * @return the host's metadata + */ + public DatadogMetaData getMetaData() { + return metaData; + } + + /** + * Get the host's sources. + * + * @return a list of sources + */ + public List getSources() { + return sources; + } + + /** + * Set the hostname. + * + * @param hostName the hostname + */ + public void setHostName(String hostName) { + this.hostName = hostName; + } + + /** + * Set the id. + * + * @param id the host id + */ + public void setId(long id) { + this.id = id; + } + + /** + * Set the host tags. + * + * @param tags the host tags + */ + public void setTags(Map> tags) { + this.tags = tags; + } + + /** + * Set mute status. + * + * @param muted mute status + */ + public void setMuted(boolean muted) { + isMuted = muted; + } + + /** + * set metadata. + * + * @param metaData host metadata + */ + public void setMetaData(DatadogMetaData metaData) { + this.metaData = metaData; + } + + /** + * Set the source list. + * + * @param sources the host's sources + */ + public void setSources(List sources) { + this.sources = sources; + } +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostRequest.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostRequest.java new file mode 100644 index 0000000..6bece7b --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostRequest.java @@ -0,0 +1,197 @@ +package com.wayfair.rundeck.plugin.resources.datadog.datadog; + +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpHeaders; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.http.HttpRequestFactory; +import com.google.api.client.http.HttpResponse; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.http.javanet.NetHttpTransport; +import com.google.api.client.json.JsonFactory; +import com.google.api.client.json.JsonObjectParser; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import java.io.IOException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Performs the request to the Datadog Hosts endpoint to retrieve all hosts for your organization. + * + *

Makes a request to Datadog Host + * Endpoint to retrieve all hosts. This endpoint retrieves a maximum of 1000 hosts per page and + * can be quite slow if your organization has many hosts. To work around this, we parallelize the + * calls to speed things up. + */ +public class DatadogHostRequest { + + private static final Logger logger = LoggerFactory.getLogger(DatadogHostRequest.class); + + private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); + + private static final JsonFactory JSON_FACTORY = new JacksonFactory(); + + // Datadog's 'hosts' endpoint returns at MAX 1000 hosts + private static final int HOST_COUNT_MAX = 1000; + + // Initial host result to start search at + private static final int INITIAL_START_VALUE = 0; + + // Result timeout value in seconds + private static final int RESULT_TIMEOUT_VALUE = 10; + + // Datadog's 'hosts' endpoint + private static final String HOSTS_URL = "https://api.datadoghq.com/api/v1/hosts"; + + // ExponentialBackOff constants + + // Initial retry interval in milliseconds + private static final int INITIAL_RETRY_INTERVAL = 500; + + // Maximum elapsed time in milliseconds + private static final int MAXIMUM_ELAPSED_TIME = 900000; + + // Maximum value of the back off period in milliseconds + private static final int MAXIMUM_INTERVAL = 900000; + + // Multiplier - Multiply the current interval with for each retry attempt + private static final double MULTIPLIER = 1.5; + + // Randomization Factor - Randomization factor to use for creating a range around the retry + // interval + private static final double RANDOMIZATION_FACTOR = 0.5; + + /** + * Retrieve hosts from Datadog. + * + *

To save time, retrieves the first page of hosts and use the `total_matching` response field + * to calculate the amount of threads to use to get the remaining hosts. Uses 1 thread per + * request for a max of 1000 hosts. Hosts that have been active within the last 2 hours are + * returned (documentation shows 3 hours is the default, but testing shows this to be 2). + * + * @param filter string to filter search results. + * @param appKey Datadog APP Key + * @param apiKey Datadog API Key + * @return a list of Datadog hosts + */ + public static Set getDatadogHosts(String filter, String appKey, String apiKey) + throws IOException, ExecutionException, InterruptedException, TimeoutException { + + Set allHosts = new HashSet<>(); + + /* + * Make one call to DD hosts endpoint to get the first HOST_COUNT_MAX group and to get + * a total matching host count that will be used to calculate the amount of threads + * necessary to retrieve the rest + */ + HttpRequest request = buildRequest(filter, INITIAL_START_VALUE, appKey, apiKey); + + DatadogHosts hostsResponse = request.execute().parseAs(DatadogHosts.class); + + if (hostsResponse.getHostList().size() == 0) { + return allHosts; + } + + allHosts.addAll(hostsResponse.getHostList()); + + double totalMatching = hostsResponse.getTotalMatchingHosts(); + + // Now that we have the first set of hosts, get the rest in parallel + if (totalMatching != 0 && totalMatching > HOST_COUNT_MAX) { + + int threads = (int) Math.floor(totalMatching / HOST_COUNT_MAX); + logger.debug("Attempting to run with " + threads + " threads."); + + ExecutorService executorService = Executors.newFixedThreadPool(threads); + + List> futureList = new ArrayList<>(); + + int startAt = HOST_COUNT_MAX; + + for (int i = 0; i < threads; i++) { + HttpRequest hostRequest = buildRequest(filter, startAt, appKey, apiKey); + startAt += HOST_COUNT_MAX; + + Future responseFuture = hostRequest.executeAsync(executorService); + + futureList.add(responseFuture); + } + + /* Get the results from the futures and check for cancellations. The get method will + * block and should allow time for all requests to complete + */ + logger.debug("Getting the results from the Futures"); + for (Future result : futureList) { + // Will throw an exception if the timeout is reached and fail the import + // Node cache will be used instead + DatadogHosts hosts = + result.get(RESULT_TIMEOUT_VALUE, TimeUnit.SECONDS).parseAs(DatadogHosts.class); + if (hosts != null) { + allHosts.addAll(hosts.getHostList()); + } + } + + executorService.shutdown(); + } + + return allHosts; + } + + /** + * Make the request to the hosts endpoint. + * + * @param filter Datadog filter string + * @param start the host index to start the request from + * @param appKey the Datadog application key + * @param apiKey the Datadog api key + * @return an HttpRequest + * @throws IOException if there is a problem building the GET request + */ + private static HttpRequest buildRequest(String filter, int start, String appKey, String apiKey) + throws IOException { + HttpRequestFactory requestFactory = + HTTP_TRANSPORT.createRequestFactory( + (HttpRequest request) -> { + request.setParser(new JsonObjectParser(JSON_FACTORY)); + }); + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType("application/json"); + headers.set("DD-APPLICATION-KEY", appKey); + headers.set("DD-API-KEY", apiKey); + + ExponentialBackOff backoff = + new ExponentialBackOff.Builder() + .setInitialIntervalMillis(INITIAL_RETRY_INTERVAL) + .setMaxElapsedTimeMillis(MAXIMUM_ELAPSED_TIME) + .setMaxIntervalMillis(MAXIMUM_INTERVAL) + .setMultiplier(MULTIPLIER) + .setRandomizationFactor(RANDOMIZATION_FACTOR) + .build(); + + HttpBackOffUnsuccessfulResponseHandler backOffHandler = + new HttpBackOffUnsuccessfulResponseHandler(backoff); + + DatadogHostsUrl hostsUrl = new DatadogHostsUrl(HOSTS_URL); + hostsUrl.filter = filter; + hostsUrl.count = HOST_COUNT_MAX; + hostsUrl.start = start; + + HttpRequest hostsRequest = requestFactory.buildGetRequest(hostsUrl); + hostsRequest.setHeaders(headers); + hostsRequest.setUnsuccessfulResponseHandler(backOffHandler); + + return hostsRequest; + } +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHosts.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHosts.java new file mode 100644 index 0000000..deef10d --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHosts.java @@ -0,0 +1,40 @@ +package com.wayfair.rundeck.plugin.resources.datadog.datadog; + +import com.google.api.client.util.Key; +import java.util.List; + +/** + * A representation of a Datadog `Hosts` endpoint response. + * + *

See Hosts + * Endpoint for more details. + */ +public class DatadogHosts { + + /** Number of host matching the query. */ + @Key("total_matching") + private double totalMatchingHosts; + + /** Array of hosts. */ + @Key("host_list") + private List hostList; + + /** + * Get the count of hosts that match the request query. + * + * @return the total count + */ + double getTotalMatchingHosts() { + return totalMatchingHosts; + } + + /** + * Get the host list. + * + * @return a list of Datadog hosts + */ + List getHostList() { + return hostList; + } +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostsUrl.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostsUrl.java new file mode 100644 index 0000000..4d718a8 --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogHostsUrl.java @@ -0,0 +1,26 @@ +package com.wayfair.rundeck.plugin.resources.datadog.datadog; + +import com.google.api.client.http.GenericUrl; +import com.google.api.client.util.Key; + +/** DatadogHostsUrl gives us a GenericUrl to map params to. */ +class DatadogHostsUrl extends GenericUrl { + + /** + * Constructs from an encoded URL. + * + * @param encodedUrl an encoded URL + */ + DatadogHostsUrl(String encodedUrl) { + super(encodedUrl); + } + + /** Number of hosts to return. Max 1000. */ + @Key public int count; + + /** Host result to start search from. */ + @Key public int start; + + /** String to filter search results. */ + @Key public String filter; +} \ No newline at end of file diff --git a/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogMetaData.java b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogMetaData.java new file mode 100644 index 0000000..a679a10 --- /dev/null +++ b/src/main/java/com/wayfair/rundeck/plugin/resources/datadog/datadog/DatadogMetaData.java @@ -0,0 +1,64 @@ +package com.wayfair.rundeck.plugin.resources.datadog.datadog; + +import com.google.api.client.json.GenericJson; +import com.google.api.client.util.Key; +import java.util.List; + +/** + * Datadog metadata associated with a host. + * + *

Unfortunately, there isn't any documentation around this data. Using this for an accurate OS + * type. + */ +public final class DatadogMetaData extends GenericJson { + /** The OS platform. */ + @Key("platform") + private String operatingSystemPlatform; + + /** Array of Windows Version information. */ + @Key("winV") + private List windowsVersionList; + + /** Array of Unix version information. */ + @Key("nixV") + private List unixVersionList; + + /** + * Get the host operating system. + * + * @return the operating system type + */ + public String getOperatingSystemPlatform() { + return operatingSystemPlatform; + } + + /** + * Get Windows version details. + * + * @return List of Windows version details + */ + public List getWindowsVersionList() { + return windowsVersionList; + } + + /** + * Get Unix version details. + * + * @return List of Unix version details + */ + public List getUnixVersionList() { + return unixVersionList; + } + + public void setOperatingSystemPlatform(String operatingSystemPlatform) { + this.operatingSystemPlatform = operatingSystemPlatform; + } + + public void setWindowsVersionList(List windowsVersionList) { + this.windowsVersionList = windowsVersionList; + } + + public void setUnixVersionList(List unixVersionList) { + this.unixVersionList = unixVersionList; + } +} \ No newline at end of file diff --git a/src/main/resources/resources/icon.png b/src/main/resources/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..598771157afa6786bccb3dfdca9982d2316daabd GIT binary patch literal 74745 zcmYg22Rzm7_s_l7wJ*ZWyrM-!${rWt7D~3PYZPUajBHm{wkAa(R5sZ&*`<)OMK;OG z-v8(7{lD+;{e1eo^}WycJm)$4oadZxnD!-gdKwNI008|3{COP!C~@#l0g4hn*{?g# z3I9iZ8*l6a04+1=52Evj-wps+aN)d?o=4*EA6hzGhTW7u_0-$b%>x#Zf=#TXFO5vclz{x*z(zf@e|$ zmuuD&mq+L4bK$1&zxap#(g_ED`zD$sY%cv|@i;5?;NM~K?QGksSAt^4_L97pE^iFq z8oj&Zs2^vMsC#F9VUY1)Q7z`PZN&BXuXHl^N;#{}>tk*5(8PmZR;(3FxEkJ1?b zIDtfy9%JpJy7jUsBTGpyc$X*Xp7;x>_VGE&2t_VYa|bCSxuZz*J3|zXw4SJU?y4?p z)Kk5yx(NS&@JaoSIkk7Yb^{&QsC%aC6I<_nKu%gaZI*hjD-$uswixiDx~#I&C^6+N;Pd{A zgopC~BOzvRy)ITBfg&N>ck};|B?cXwdyn)qK26O&Q=hD<__fuqA$>Q`nNyF1{>p0zGJ_8_pSybiDey05UN!p0kVu}=3~+|!LA<5m2p7wX(Q|W zje5iwe8WtfD#+n4boUNO+stqkdqIL7l&hl$OFfiHOS|>p(vzqKWA?T~(#%8>E`2wP zUV9lerkrC10)Hi0QwJ{1JXl)Z>+<^JlLPedI*=3ff($tsVDA{mfY%aK;kE}P1Jd1jfNH&nHPLzN zb!KZ`8-4ke13}$M7c=sKavIo(=sYx3Pl2^jKTxx0cK@O)Dt&-MJdp%CCxecSs>Ni3 ztL*bGHkS8bQ-S2K&wp96hC)o_rnje%7L?A#yLyhD-#Za3|j-xnQQ^1jr*ZtjV_7KcfAsq&i!RH&`tSq z#Q1=?q8H#&#w^lO&{7*wSt&bp7_Lnt3B^sVYxz>(l(%8m#6)MRsHGqd(gX7X@;X$X z3+g_|XFE7V^}n(Xrkh@lU35AS;G)-GpJy708JXG(0!%ar`h9?!kqL=&2l4D4 z0Q7c}j@8TnKr;WoWCbfT1DPW4rAEhC2xkp!EQWMwYT`n_J3^94kMn=A z-LfMC8BD}jR?>N6(@8q?mjb$nay>;7jqmW0Rv&{p{Et8Y!YGLdxH}LmkAbtD76n)= zt5#16pgy2_Dpbyz%yUmZi~=yg@(ejyUU2*QvKjo}|g zNh|=Ve@LQw82;_~zj99CsLA;CC(GpmgB~OijuIkapzmxK3~`USt#tzM(URc&mCC;Y z58m;^6A&Lj&+(6@fdrbK2XWCH(j?ngOC%{#@#`~CiHIfDcg}wdCW(~H_y4FIf(3k> zB(S{)y7>=>)wbJc$`2sW{4dgxiSTvess98L=%yos97qxppZFhjW5u6*wo!q+hjje+ zaDX`4_~XZmREU)wH0Sc!qaDv_0O()J&1}_Zewab>BDh=s;R}e}B)E23{~8BCkXuWn zy+iT|1Yse{2+1rdsF{H1io&(rBO!ME|E(DS03QvXV95@aNgph$;*uI3$3d)O%UGe% zG||J8!G#A(DthO?g+OBU6B9obqzMs`W2eVNlCvQ1tpH13Of5sBDF|vMP2)>BO#)bk6{4QlPvF9*dj_J#UY z-E%4=qX&o?EJRUHxFO*VG!wTBTrg`?(Cbf4=Fv6>oFsXG3&v0>?eq==5`Y~gc#6nR zP?WyhWPoN2Qn6r4>WmwNkSr+#!IB+-1zY^U@(+|}oDk39Q$yL4qEHN=Ymb7IF=`F( z*84K@R~FM6=~RzhhA^`^NXu?tp@Yi=rbz56qy#K$c>B!jEhIAza4-K#XuBSC6U2rb z%)elX%|YJk2-G9!6NpSE|BLM+jBx;+UE_a5b3Hj2Xf9KyNizR3?_QnL7yo%63&fP_ zJCyNf;BtqN2mc)oBMafe0D;K*KO`oe?7hqOjI_4T_&@T3T5`yu_{aaz7W}*{h>Jf9 z*IoGEb=mF5l#XcuWUXDcotFOD1DgvEO>jItKR?eU47{M9@hE&=58XPX*l=a0$Z77o zukq04S>zQzO z?*BcOD5Z?1s4)^v6o$uwl4}Y@4sKLyKKSE@G!>wa`72&<``SaM?5a!K;=`e{7DTxN z=Rfs41A0gsTh)INj}ISsb)wFy`x>20-TvNH81HGlf8VrIQSHH9eVPjqe+UY*00Jd? z@;~h%e9E=zWx5xAdVrieCTu?^ec#-Ho^y|@Df0$&a?c?h9;q4hWs&Kj_%IrRxFebn-6~hQ&@;qHsDS zcz}Gm5lXXa>R-QMG*`mpVVb=YP7Z_cdQ3>w-IoZpnX1fI{x>1e89)a9m6uX>0J2X9 z@z`45bnJRsCiY7zgzsuEGO}4;KMqD-y3n$|EdEb8-6g{=#<(?Z`ZX`bV95y{Nc1u2 z-k*8f9LUKR=wMu@l0Jq;*ptL%cRTSDcDV+n3_^|r z%W!gRY(8{d30+(;bON;=rjnChK5pg)_T+quxjRTuu@cpO;_J0T#|GH!HSMPk^T7z}DWRmcu&s2zMQ=|Gnhnvz+I0Efo>i^b60%Fx5 zo2s);*F?thP*kSK<;lWE<7~=;47y~_JT5~Lri_2Z?m$GJD_3Umiz`&H$1HvDDUpg) zx_=W*bf?C}bE$NE{KS87aFJx_z1(~=fBotG`pcrKR90MoJ6YdQ-;75pO*4!JeJuS- zb-~|Y9^g2g#L6o-nyP|QWXOc3*DfXy?$$kM z;Fdwp_UH((Jp0!Zl_o&Tig~_h-7s0GYNzf#y2nKD);FuUy%EohKvn;br51JXNtt+P zIW@+%Am2V{i*!&2b>C6AUgN)^#eoygpnbyY?L1FT4U@t*s#km#Oc4&h&Gh5q7&vt; zQ8Mi?@Vk1D`9Kr!X@0<*T9Fx2Z^@^m>@1cWz@+EnK@@}-yBGrLkoau#K|VAzRvOu~ z>!rYcz~wDOswL>3tPR@wN&?ho9?7spekY%8`DVeVQiaznG)@tVAyp3{@O6LBc;JEv z-n_^4Hkt0lXwy3<+Mm;K2xF~T*G)hmu)HD3F?xS(9gDq69cHD||*g zL|KusRHR_(Z@K^o&ugGQSpAxES1{SxBNSMm{@AjI(ys3Se`ccSQDX}1-+1ysDP!M! zq?h;q>{Ej3Vi;ER*fMJqR|YMpFpNPNrksJ%d1=ZA}`i0L`q=n#d z7_XiCea=93XYJ?6fYi3Yc4O|Q15>7@!YO$~Y~1fa=hyttK-%BH@>(Wb?;v<;XF)9p^^Q z3?|unY3@M@x{>(AN=ha+Yr790TV;-n{hI-qk*M5Jdiikax)Ce!P!xI`hthf3c=4IW zEE|Z;ePKd?l9U5eMh^^JXzgOwHR0E0driS4=tcEH+{=w`Q<)-+aXeqNe;YYl`jWML z_SBD4za*o(XhVVjAEA$ZE;?H`x|gJnjiJCUOcgfX(2r}@XtyCHSp`{*>1gtnmY0vd z=jcxI{7hG8(kY3S^q3OrL>#5AlR1K)1_6*;E{SEvuc6 zzzr5JacWXT2;wu7Mv><(o0QUwe}T5q%~^0@7w(aI=}O z$cX1% z54aN72R0q}ZhI-yDfxNr2mzwVL0y4BqhRRfIjK2s^G(9&Lq@>#WvHlWC&FVc`!Us` zzSu^PO$C2HSc!GJYEf*R;1371T)z+_?y6J$Mu@-IUOzj$g7Xg1sP5VH7MF z`=tTBfI}f8zY84?`RABNEmJl+4$poULEIONrKeURGI@`U$I7rCP;^|XE|}UcFi0u-0$HD@s>Q0cD}L4FaDh0S{T} z8;rSP#}7O+qKsv&PXj4VWI3a>h_!cpe(YlLT*TAfZ=Q;K zeG&V5M`(e=n9+uqjK$T85?Xz%twzkdoK%k&w^W!rLaXT|FV)$}u@QY(i9ldNVhH$_ z@7r3){vI86IlR9EZ8cYe=y>h?SwNsq8jU1tQUzy}M>yonZ_z4&pVXJ3R4*VSdmQ;) z%eclaeasYDuo&hg(}WUYNvFaP{2SDgk%Ft!@}Dq8#bZ4o@lPAkqW}FY@Z|0cY4Y9BF(86md zdk?4`y+3<1StyUoSO+FPn9|u^!Jk$a$(rZuW2F=YPI)B0r9lu+1!s2i*B7Yge6jBc zEaMAd3;uEi`t#4^n|Wh2uIGXBy90Jqua$ZK?14^Ux?VsfW~w1G)>;^YzzQu`4QQ%4 zD43i&&E+r!;{@NS3QnkR*TRQ6Maw!e|J2^Vs_uJ@pUVP>X~W*#jf@lFx9YSk_2b@1 z2lJ|C(}c0>Ez~u3bwYojyL@HiL1e;H^XUX5geFyH1zp11Hf|HJG4Kfpl&VS+5y8QG z3ox=^rS$jO-*xfuqEl8V@hGGRk*%Jl*+=OeOFz8g*Eb6hjBSrT-EpSNTfqJrU^aF| zPOBC6kJVyZx<+5&%UZT>Ou*eTWMU$U(p131r>VUL?8(BXxi9Ff>Vb#5A~wXQX3d!) z@?AW$)MQt(D(J{M-+yJJ1;<8Y+IEfzJDQjFs}2_2rZ+p(XgTOX0Z0XP*9AF-4Z1@4 zwo!U&PL$;phlq3za?r_I7em&g+~=LJjhI#$bV%=~w1a+S@ul)ZaxC~!78bF(Pc6(t zx8b0kO}S~1pa$@5Ig9)^Ec$(x*uHLE>6(Z$3Sa-W~v&c$u?*n8h4HK*a* z>d9241>p;ouTJ>guC=tUi&-i5onL#(lfvShJ9J!~-7a9=>7f8X^#0gIK1-RD4=Yq+ z`0*LRy&<&n_SYYMYwhKB1__4=g&n)%d&Kc)WUwOX-ytWTOo2o{Tv<47UIfU0-bkVU zcH_#SNiRBq!OzeOhSZ-0#wHM#kosVu42SpAh#5U<0B z?H@!dZ;SfKfT;N4^Wo5#OUuSoI;~3@WBKWq5?{)i#lBd^2qrp+Rh}eA=f&|jTA+sB z(+lJ0Evy}e<8&0)Tx3JTa>o`Dz11byhPN^Jo$B2WOH>jB2GmDbuNYTL$chYd;bOl| zoT&^?S^FyS#7CYIt=RZ;H?MKj$n&8x+Mh*HWuIk%#azUfqP#r%3GX~--&0^i&^LS8 zB&`Q#(ZtxqS`YlZN679-E-T;qkAKrUL`v`*0OZx!*crv5_K0#=YZ;x(g{B5nx;Msn&xkG*p z6uY^|`&m+)me&ZPo!y4(Nh$lDy_d3=yo94Cgm!#&uk=7}q^U=U#i0N|U6-)q>Fl1)jH0zB|%As_~Q>9usq(Z*JtjEbch+eAZ-y zN?w%8#>OhElJ|}x1JDelL1S5ytc#l;3Cj?)EDZ+?bMgt_mEYd(wQPM+LRr06^bt3W zIk6&dvnF9sndsy!*IuObQRglCro2bc@p!T`XPkNP>^VmQ8lVxBPq=d7V<7_X!2WJU z3ddMf{)#24bI*d?5|e((WWGpmw_px8{f(!-Ct+j#g=1l?0a>Nfgs*1J(UUj@sC&))$dX(e%@_q)vDV2 z^=^Vo&R)R;6QZD8aOAh{d^2K$$|V8+sRBl~W->9d`cJga1l40!vRs2k9Q3agq^An+ zSHHM^#C1^JcPc!F3c@-5Wh4bwTMv2xn%`^`@^28hQ#$1>O9#=a%5nr7! zmqw-8`~YdQwA@%l$*4^pr;5XxsG-Me^#rdMl4wc^CugmJZu{S_w#EcS%u7oMcJt~I zxmL+Vn>(#+c}1E7u43 zMk}R;7Kf|D^PJz%G;TULcivHLbTh4Ta(h!$&TCv2rYL(gQB3WYvUZN3Ph#Cv@$5Bh zCo&?NR)8S**7tK>uz4%NdY!1pWDgwh_R3TbC#{< zdMPCivE5W)Q)Rl?OD}o+u(RZrrKu>gf8F{1BEO8OmyPjT&AwYgJ9a5sW5;+3t3~P= zT@;Va?AcC1C&;$ytaXc_rKQnZc0njs5^>@Jw9`cytCrcCx`Scd{lnRX*uJdZVX0G; zd!x;aS6P%B0|Tf;6j%LRIH!&jai2+a@C@|eRJ>e?Nrb969~zuJBWfS@y_&8kZ1Q`g z$%apO&+^q~q^Os@KJmPvMhw^~$Fod&lR6Rt76YeX-8VmZeK>zWimt+EvXzR7J=*Wi znG{w@l~7*ins#fY1~(ty91%?OdMT`Xc=S8^EcDHu-0@&F`6B1;fLAYL+mkLCGrOQg^ZN<27c7ffNy zc}^YFm~Ab#)6@+6@ed?_M%7EWlB76hQ#-X z#n0TabbRqE=ELOmMq-m%h^uLH$5`Dx(Zke9e9f0Un4_)SV(qWBM1UY0hcjdiua1vT zNtBGEmgS>^c#Gaj_x@2aP3B53^WMe9SQ`!4)y2Fu-gO>Ym3z41w`SCub7cPKzSQF2 zDHp}2Ilr3zW)FHc_qrsMA|@>1rFoO?LTV&FTWz3djvuV3LCimCRo$=d(0v|lDrZ-H zM{bhyjZrbPQ-i;m7qi_~O3cU)&i)vSp;r5dC)O5*MQyYZ{clv-+rqne{M$y4vqG$l)>Jt{xVxiab@cE|0*C~gN%lc+F1E1W-V5r2VwI&Pt?co!KaUU>n3`Sta~(+ zUs~r0Ikvr2U==|zlz_QO{=QkYcC@CmsU7ITeDxBq-je&w>r4&#NtQE7!pekI7ietH zICJ;A%JiiXzJav%A3V6yc@yWvz6YPsR?l|)IsM(vNR~TWE;pwi$6l^uBx=&#reDd? zx_SeqycTK(zErMhnXT;6!Y6xeP%@(Q>-B~fjRDW=7(@Qtmi#?yWG3cSpffRenE|B; zruCS6LUsaOC~Mz3a1c-Y2yqSG~!q2FBkJ?T{E7qsy8j)QK?N%^>}FRc6}f{!&a9n4Y6A@GGw4l6Ajco=Uq zlf%lUnFN9aAZ|M~D=5)pj8onlFRp#JlDfP5^IQ##OQ=r1kmf@jX7U3z4$0dQ^_vcs z4}`@EwrlI%OKXel0#upxh_z?q7nDBnlzb4>c}{WXGD?{eZgPmMNWv?FM!;CTKo$Y$ zuBUAf`Uw16WS@zb>$nx_&&SJ0Sp;^#&mr`jTe0p%ZBvztPSz~>CFApb zAHPYcbnuo4BDSv8P(6ZG-#B%5=3}0Pu=M3@bjsWd*?DvaB;U9n_27b2^hk{TnC>iI z)OaZFLY)MxC804Pn>?C*nS!y58AH=ejaGap-P?AF-WtDsPswo<-S**OBl9Li*?uWyd-Lz|E)o~7c_Rg+IAyryW##50$rT1^X=r4 zgln2^Pfc{P*KWLME^z`KXTQ7cJwOX+rHp#R;KFO%ix(faYWXl3N#415#xGxP=bPaM zQ_ zqyN0b=Neby5&BaDH-bp;cLlGu*iTRu+dFnaL``$0jx z;lVD;TWjYiOGe((?l_p@&vCa%Wk7_78nW z*=yRL@JS*(<J#D6vkjEuTAacJXZeIujIeykCV|Yer3SFM6)sHeykBeHZe7%ZW1} zwA%ozSWbHfvmo#lb(B#a^gGt13ht^BpLUMJAIXY<9Ys^ zChA%j_2Vq52JbpEadxx%nYY!qU(%1uBNgcUKu2my54ri}r3%sGBQ@efp~xEpclR)| ztk_sd$6QQm>+ybN?&hiEM^BkTY^sl6B`T$Kk`b8>*N0?WFlWDhEU|un(ht^*yGv9$ z7=7_d@8;P%^t?nbI!iR&x?ELq>-A2dY?5%awF#B{gOfo#AhHXV27JU)d>_?_eEv{N zwi@u`M@YD9^8>Mg5{joZX#8cP^V=s&%4P1P)*9)%ZB9IM*FLThqlt$_rh>?gPmDLZ zm4k=W=W+n1K+H5tbE`s>rHwD`OOw3XtpU(bcQS44b-{hMOa=1zw4WJ`LyXIPR-Lk% z$~fb$Yt#0-_2QQ3Z+E!cH~r!9vwwBoHUv!$bhF4u??n{D zY2!$lH``Zyhb{uov`ul@Je6a-kazSW4Wj2wZ=JPbqKncw5Qb^3z_IlNv)r}%#+U|0 zmP^Vvvaf^{t2(I95P8|?gfF{$jQum^x|f`Go{6na?~Ul0uivU(?vp*4WR2&}T#j}W zL12}v593~baU0QVoK5~V7()hr^d1GysSIOxc8eHXiqMB@h>`8Py+6Ei$T zT3YWAtl}qF2CQbDBt~D?sAE~^0-8#L`DdO|*z04%A`~xEzEXkx1Cg+&vD20FF4F?F zLVW&|d-MC3Fbmg+xsEMqlnHk%$lYO%)DchaeuyS!aOkq)4Z1$)9-11yu}Oo=f;a9@ zuP-`VX^ZHx1y;}6)-;|Xi}fxL?he?*rZTtHGa_$-Gh(m1D>JEHfA9=i!Q5+mOO3>Jj<8196?jecAyWXKH zM?t{+j|Og0cD8RVdS!^My=S*}J!~o&saS4d+DE_mdn|aom`Rz|wR2%b#)t_61kR#q zZSyX39`6N{vYP!a=^&f<4-IcgO{fD~tI+4q?O*$O(x05yS&Zc!3_)sg3u5=93{+al z`CgPqMF_p|n+GjFd`dRt+kRpqV&+pj;az?m<(txSUMjpQtZ^ltYPuQ6W)v*J*-??; z@u6nw75Cn|OKzd&AB2L|AM|px=C8QJG6EA!hrv%q>nx-+bb#*sZ`xPoK~C>E;5^1S zhxVx*6XEflycO!?%G-l^y65Q7*Kqy$!q-VrM6F^}4(m*7uX0#W@T?)H2bLSk_wbBW zHtd4P?ogYc`amTId%a+nl4ONF%0&>?T^$Q*!k*BTruu)auVB7JR$JI4MK#+y8Gk{W z0y(qzvek|nN5GUuNeI4aL&(i8b6B_(t)PU0yR`})@|mXj6;(Q2km6ZT?uz_L240>k zp^2@VjK6VTA3Hlp1?pi>)m7N(U?{%Pp+?bN+7`7sE47k9-yqFLRUkO7JE_k%74_3P zGC~@N$}GLS9=WWf!rB5aQqt67DQHUY>4C#ZgOR;6onz}!?OR2S7hmpA z_;C@&+s3LcU|#qy{JB>r+O_FWup*T|Uf;>TE5+_7$`@xZQpX$P%5HVXs`x63x@|OS z$}+L|;T;U~y_jzppSMk9MEA(eej(FVu2b?C&nOemB?-4tRpn8>d^3SfEw+ax%4PEr z(d&x%;b-w~p;zAbER_2es2ZT?*T$-1dBb0oU79v23(GSWQU-R$+4-2+{#w%A9=MPc zK|jZ=_2ayk&e1A>WKQcm zB%h_2P3sLc?zG7q@g}2UCZZ9ZxP+=KVEn8|sO#nq@xx3Rb`+>#nES1Fj|b5^&wuTx z#O2kAu48`UL^qlKH6BRw>#bp5R~M zXo;XT7+QvaU$BeG?^n5g_mmL@`w(Mu6`Bm_imz!I9hYcH6Lwmu{In}oYji{Pi_zR! za(NvDvVQwxzRQ_{k5Q`+42qj!9G!9*(bJ@hz)G-WXA7x~rG`R?7)Z}#E!4L%#SqRJ7^_$w1XeuUwN;=)4D z&Qryk{%0>a-|bKuYnO;PT3Wz*ua5^Du3+pjqm5~Xt9s0M)%MQ3*FTq30?P?EhCpPe ztZ?69e(3*lJ9H*HoNUjymMeif4$~7-jqACE+sn&XG&K&HFdVN z&?IoM|A_HD7Fnl?M6}$f8p4`o;s}XrEOw#z5cgbga?iA=cUKYVFgmEkQyxw`u|M#0 zpp^EgQq)u9?WLq!*6mZevc3qr@T9{dg(Es9y_StGOa9bV-(kpcR$JDRZ->jd@?6W4 zwcn9CCWw}Wf}~>|^1{9?Lm`rKNm&(gre23Yd}P_8-}}P-hSfi}VZ;(=D=6KJE&4iG zm~zUDbPKe-eH6Mk{^bmK1^pDtdhyD=mG&TLK>doHCV#e@y`1&p%~AuzFdEuEm@U9t zt2j}9Y+F{E|H;9;sz^m40l^{mVJUx6!R<>_*53_)RS&uAtjh*gESquf-3?lSN^RH; zT9ES6h~j@=($fOm8)s?_l2yJ<4X02q8Fk3Rn^fC1Uxlde5>Wo9wI>n z{Sgv8I>bH#FWFh&zh76qvU5wpB#~O#tKdfQytaAPp-YB?0&i)^o9cb+)GomNbunD& z6RdJtoTtFgE6yT#lu{d~#j+B*GeQp;`?DD)9zAy|95CcRFTmYQl{e>MOQP`ix@C## z0zY}!9}vew0geeXsPAw5^ga~iY8T<2u2OjamaKs?K7z!WnRd(#^2vafdg59klAE45^#^yXYR2~HN(T{Ikg?0v3lfsuL4FX8JAaj;}b zmO%Sn(z09qrX-ap+rZ9z?++^QEPU<`gVpM);4o}|Ij2X4Qg&xqaMrmQsBahi8TNz>p6*nX;HsXvmd&v7OU8=-;Vn+ADrElBaXaJ+FGGWPh7@ltmHKer^+kdmOZXr>ctKK%BX>Iq zCjZK)KYKHI9O)e#j;Ec<_?Y+-BbAPd5;H|Cq~;@GbKP{)RPUcpTIdz)f#GxY9SEYo zk+sy8ie<`b4>UN^Ny2pgX2M-&o2OZF2_K(ze-llHzGq=W{FoyZcAy9wkU<^T#yH1( zZ|}D#VL1>H2WnNErM4<-B%6=B7 z=%K@|41rfDkf7+8feUZ87}stJI%o&RHL!~XwlfrNUi7@OrJiCSGkX1eeTStK60Md# z2hPJnyBn)_{T4TI#9`oN?V=7Kq#IrH%D+|`$Ox6}v>xMIsa=&{kXMP#X?A9m^-LIX zL8vizVY`N0#~&I>*y^$ArC#_RhzM&hO0 zG(P<>P{hLdh}T8#ZWuGMRul%g7qbxeH>qq!UFZ~Rq(($#DuW(omII`t=)-*<7MP$+cH8;#);3mx?|hK{uOVJ-o{1 zYw@I2pSzaG_~+U$@ncq;1>du9;YLahWMA$#&eJEkC^B@E(hbO-u`(maP970GYB=eO zy91j;&0#86pRNu`tlf3ZhBM?*;&*ol2`i44MB8l2<{GKV>eMT$>xPE6Fp%ijn6NZS)bV2$Up}8 zWkgz^h1DL#V9qCZmzpT>J-L#}nK(eqX;>?#a(+rMF~3|OY*4ju)B64n1{1E}1cT4G zOer-L3e?V=UvK#f+1RqO#e5BoV17qBKy-9Fbng(0W5l`ig`;$;r4OzL!GcH!C9T(l z-}A3_@<8l#zwqYs=XRKFL($z;RPm51 zQ%KrzlWI~Y`0ZOIE9WbepR^simyz*xo@0xj{Q6l4por-R1#ebGqRxBcWIhA8xvLLO zU@5>=CMrMw-*ya2Mz{ADU<0V82YzcNT70l+GAcaKIc%Lu_hu=j^;&12JSTg3Q+MA-jklUnyw;raDuk-HS#^`Doo~Xnw55yHL7j zh90nx()N@m{W2Uq&_vY>u)ndqot(smH{g_%I^A5O%M9=qRdJgo zZ$5>t7jW2QSGqD<8;Ps(!tO;a@A@mjWIw*m$6P_fM%@w0kxH}r7>pNJ@DFWh-7T&h z+NWoSjn;`GzGAWACGH+@Qi9mlc$k7pJ{Svo8#mn2B9?S-CH+aIm#DWZ&=OfJlZ;Uy zlZRcutRqc7lQUa$+?^Xb#-!-TBU74BJ4=4A9w^DYNZf1W=`jgzyQSe}mzT28JFc2`vCatumJEr0{ZnD5cY5@iYI<|KGxn!orXtqYQ9r;= zAApr3^E!&tV&tAICRX${SlGF_c6@N}S4!c=Zs%ziT(b4h04A^v8S9ZkX*M9Wb6;Fu zgePOgXu<#>A9Zxow~e%f1|tCrvykyNos#nO;_#+}*owUNrHJbz@fKH4{DwoW6;ngc zKDZepbf(|nn{#{U73+d+xNP>k6K9r8r@y*#+>#*%K{wH-!#fxEtjHPwwIhQuBpq&U z_x4d8ZhmT{B5XdvMj2%PnU>RWtMCRpH9=_T8^*MUR5q^osc?UHYPsin{MdAG!25_hR-K_b1@$gY9i;{$ym(<5R)BDTibYym#_Wg!7uv zDTXVE{0{JIEb(;wj5tXLIUWMtxe<21cUfbjL)YydMd2$C-bo`7`HKVO*bd=^DY{EQ zS#Xa=k>~T;hFg8W$U$$C{Opaa&EcV0_W{T(dGYW(@$# zall8>vxMBxuiDt|uXBi*!rZ3&*5wXkeBy@&^!NZEbM`UnZ+sj zLRmzMqVM#y)ber1d~hs#mL~S+^%*9kVRNqEJ+@X3>XMp9tu8p4g~Om0LwD#NxuUyv z3ZZ%N9j|P5*~b@sNgXLLtN(so+m{@hiR)GE>EdDZ4VPr7Eh;wtdrlg%5NwKa%9D|4 zwofltBG73pjzgTFwJJ~i1Ol}qJScENC`7Kv^N}@)C>&zseGzj(+ba@n6n*E&3$)kH z^5M5(_m5^gAm4M>=}M>NZBZGhtRe*sYWzbzTy*GrRbhNBB799BI{D=U$ZtFlL3c>I zh#%JDMck*jrgIzit7nK)cuo@-S~%x8VDsu>De_Htt5x#JOYqJA_X3zL-q9-N;lo#c z&I_KmJNzYi3xyMyNvoZAY>5$s6Ly`HbV}w;7h@fj(TJ9J->Pdp;I(y3vb#S7Ny5CQa_!Rd(0HpH#y7!IUL#7qJoaFsifv>x$tQih+a7T z!XV_kA+QRSw@zDSO{O6SEp7KzV&A;9mRE!gyqvodwm)bHub>CbO8Wc;0ek;&xs(h_ zJX!JQKs7gS5SFu00dT{MXR7GaDpwH7(N0jk+$IB}Cy7tpF=VB>sXd%#iWV;!rVES274lq>-M1;=;)SBzg(B;Wlg znN~;_mM&Xh#eh=j+@kTgXvkNcpaHPbWWm@K{vho8&$hJdEx4r5d{&}x3j0I(hpAd| zl9<||?`aOTTkc()r%F+xK)KFFjkRjS0)QK364~suAn=4a(?KGRC!%fsD8M!Z=pyUd z9N_StO$M<1b;;V_pQsLR4vJ5NCp5ntegFj$Ypfjmk+$;P`*^eCARyN>$?}9RCAOn9 z0nX%bxe>I?^aH9&vlsyW83buQCC4Rip2gX~_`}8GGuDe1_nANdS1k|;)9-Yyz%U~A zEMLp`4@PyxFN@x#Lfl(?z!D9|A2YMySW%)Gfy|6@6?XSxJ(Ximk){en#IpzrMqcF8 z_wpYot#A`fh2@byI<{zf;gv=Ta=aupbxrNPE+EhZVU0aZ4mHBO@PURX9KekiWyNZK zEq`iX`&2Ig067)Z!{83)S@^ry%$MMT&WX8B799H;mwrgcU0`+Pxx(8$P;!j{GLFLv z^{TagWfx;&rR6sA=k^R!GMtX4OhE=^P;bL9!mtt`l&lKg+ zR-cmi(U6xUHxz#e?jH4vkzg-h)DD|s!6Vqgy5Q`04{fuhtdVU2Gss3g%CzRg$8W(R zY{jb|T!Gq%y2lWQ{*G%xp^UoamgL|>5LViYmn!YDrF9JbV{mx-91x3t9$oH%=5o zngoAS`0sD&$B7Ck-1HAL0w0&7+7kDRFHmz83UjtM(|%^3 z2=6IRk|LVE1(r0qdj7yMOmbe5n^zm!apDCyk`jRy(BRYFI9Jlx&pV5Nvu3u=(bS@m zUuzUa%~W9iMC_1A&%zCmM6~xITEIR!W{;$Kq?MT`sanI(DpWwJI-RJR ze2s)lQj&LX2zyU)W>3c5@GVuO;cmBg@ip?0W&||Z|~8f7ozY-S z|I>Wc5&@)P;lZ!xy)@mRH}C!qbP>6ulxeM*B9i_05BcXZjPd5=5(dp>6jyTAfk1`9 zJv=Qr78h3+)f2hp3^t?UY_>=G0vo6BI z18MX-i)Z0G%x5Bb9rANJ_CD3|b!5QSj^@zuyZUA{uCVRB0gQLP#uFW?2Z}mr-NnA6 zU0ra!Pa2hz8GGb+xa&*-mNP}zeXxAE*$qx*=n0aA1abHWaAH<<@R`TA`eD*1Jl?_Z$L`k7*FLJ2rT|^7BuZ*r z(P=Anh{0vwptS>XKp})udf5-ofR@nfBbZH3%Ol$>nUWFmvqG+LQ~~tC6=f&FT@(@E z(fX&8uP>`mV%ZA%Le_5JhCd?^U|I>zl1XSFHHSFg#4FIloTTMCr=JtiT;HwFkm5ef zxq$y#2s=DU4s8I(>w2jLOj#M|hu1$b`aK^GL%29*^V0VNr4@WWbBm z8DT_?tUU{7TW_H%T2fWXU(DjR2ex4jO`=emPmd#gTl=SD$zYChlMlR!EGm z97^J1Aby0yQbTlXB&=w?YLS7E{q`{nO3+pk-)6Rsy*i;F%L8g9Lf}}8(^H;+<_r#G zNE$sGs1>c#Ua@cHA)HxDytsA775s6VVFDOZ1O_P4vUsjvG(Z%7^~MVh6BAcgjDtzv zxv{%1e8G$#0XQLZYrVE0Ovik>U@~C$_SYHH7++US@Nm8RWZG%CyOD}Rb;s22%v4hF zeFlEeW54jO;ss|@<6&ZwR+^KR>>&4Z7J~ANydLH^L5#oL;uIqcL!4a{r{hPuW@Y| zQPx!=du3+aC{#q*GOpP`l9BDosuWrxyNt-5DdR>)5mH7PRvAgiNHTuU+xzqV`NJRg zbzbM3*BQ_Gcs`#3q>5EL^>w)zbeJ1IJ6w5+l1RrJ)o3|cy}*M;cf>rz872kW1%aWB z{ASsX_91nh-^H^Wp-<+A5M59V#a-> z-%g%nfMeF_p`INp<9;qN>m)lH8S>kY-q)sEMll9brqO;!V@_sHAi7iLD@@-M@mce!KaARor~ zSf@jg0OjnDIxb&NL#l46>p58DQ2;wj{~hVIY)Yq}!Zg1>7fH)} z?(u>>aBT_`%p=3~gP1#BP8Eay_gJkO_wVr<6I!?g9D>=HNlG1J#|z-N^BVSZ@!&RV z&0*c@VRJ|lEWDVmYJ#?Rv$8S|NSAu~*RgBAs-6_+8psV_+IiDt?d80et=Dg_d1onaprOFL|ubJSax6lNh(h$ zCNV*C;7&kQhb5)RFY3#eePOqJ7A>?xNCe#m{}db+^_DopcqIF_on*>!Q2Ll1AMYak zJ2|UnMmxR?rdypNhpBzizYh(V`}NZU!GJhzSASCQIs*UX5p&ZtH*5cMMwp;|C|eN( z!8>xyc6coFn19xG3AIJ&GbThaydi-K9)KlGHrI9+Z?lOx!I8D&3DpQYWYf>(*!GcL z65pE|dfdnoWL*_U#olXYv%GX!bb6?wpYOOYMZ$snUUf+SOdBtGy86}e0xV{IHITwh zrQTIV=dbs`f-mbKoip&dzSrw|WetYuI}pc7PAPaW{z=$~Y!5&>>dVPE9X{wYbaw^T z#S7>t8ouPR4?}te?^({n1I^v%@#{QpLKx&rz1g_880z`$2C=Cdo;F-nY15^yr>_|E z;ik$)l>VW-$`=5yR9DLMyF`^%Dmjnmy~>K-DLwn|bXOha#`oSArq7n-p+nQK`Dft5 zpLQl+I6G%Z{o2cgL^9WpyMfX)z`~N?#wI71(-H0;PoS()C(2s^X8?Q{y~RW2&0(}e z6@F44CotFu3ET?JOp2LBq`g#mf_!|lZi=9?n^y8oYqwfkxQ)$|zr0Ln)gBSK)Z@o7 z74btVl#cAFu@Zzk&F79DVxvmZ#0zk4hCtI6ig^9`UnVR}shlnue!cCGGB_qQxcFtO zQ@@|9QauOA=9EIIaivsn)ACVNQ+}p@x_M-4eYW(Zj7Q4g#71*+WO&cq8x=X$y#aI2 zo;+wS*o8<(QwC$LlLXp&Csz6#rrTYUT&J>~s?T44B@}XFY48FpNEK{oll8G-CcVVwpieduPg8iz%0a6eoaQp>kQZG&$8JKvqE>FF@k`U|fbg+OuDy`LV&h(=C ztx`_X5B}*#esDNGl*8$8bv_$D%CZ-Uh(ugZwXBO+nREEFeOcQLYz0{2AB;9!se#7@V>3m zk;m89jDhxF3;8|Yg4TvuJ*40eP_EtpzXyF(;}5{AcXhaD%b*+}^h+kYZo7VH;w->3 z;6}Ikk1H8G?s`@6LokVO?EEM{C-(mKOlTU5LX0jo zz!sIsVDQDKFj(zVCCpva99SHdN=H=90uoJ*=u8WQD_)88{3(eciGY76VfA&rmVFQx zNz+-qfSOJ0r*7h12@aj$3GJBr(kBnbMLR2uk7pv1z)#n6{X@9K)Li|nV6k-;?CBuQ zhtW$KbO3f6R49#Q4g-ce6d#yWb^blZKtl-=`tf81a~Fk=X9v2<%4v7?va7uVi#(4A z^CM#yye1KhjaBD=07q3}X8!7#GFb3M1Sw`eU_n=lv)asZhie<8I%9UnhXGO<^?YaJvs8N)&J2d-HtGU5LnI=WJ>ZLbs87VTpowM-(Pq4DE2VQQ=L_8< zOQS`QFsTbRdh%I$uP6pzG!@OH`%W){^b3_J_{tdE~mXm&G+#iEn z$_!b~J~FiYiZ2q7!<5>IpyXPG(%%h}wd0|-oh5J+trEH=s~|DX$Afd(#!_+^SNnu# z8iPLEs4GJ)dTyp-c-sjWoyCXKi@Y9?E$`#(BWT6qtep-gj~w_;vOzPwy1DSdo*$mJ zvf$&N?h?T!u8CsW9>3Enr?~ijkjQ3n-d;!K`-?UsB@?WYX9XVOtaRI@8IE?CNf56* z&($aKe@STAWa+IdZ<2qf&5b5K+gCjMPsHkeqlK@8)s)QR`e*o=@V1|<7IQNg96D{t za1Mi%mrCL!5(~vk_!nrb;zE^eQp0ZR$c?c;B zvoyUr>$Pe!5|gei?+dMjlZtv8W4}NCyx7{e7ZJq(0`WXdDTm><;_9j;)oZXsVHFMU4e;m^P`7#6A$v`{{^4QrC_a!1h+;o?mOfoI` z&oh6|gMNK4nruP(S|%xA4Eni1%(;E>*yA{rSClow+=}LzT_{ ztoyEuo0DlS0~-%$m_JJrl;bEDXzo5-5(|`JvePZ7w)t;EOVTz|$u8*hJXLhfYtvv) zt`(0?%ZNjy#!r%$OZy$CC&@^obZ(bn&WsS}-;#SP3Q7kTT@uDxNS$b2%hZ^h|5Y*{NsuS&`75FV0RTEC!E ztd{@%@wa1%l0XQ20nxNPVV5$<0}`OMSMog`Pn}g@?l%mirbcca`o5X@n|`Q1L_oVD zHd55t=d)XymlU!f6=U;$A@1sf(vV0k?i+M{p3>88GRN=Mv_kHDz}ma*9{FEGnL{+zO0omZEY{M}t^JK2>!(Z#U7h8BJ%QBn$b5Bye554!~F+QLw z3GT(?@xGg%t7Bhm*i5cue~Uf(;QM^ZD4jC9PJ%*dg7fi|?dZV^W9@ohl8>Uz>n(L& z(!oMzeH^o~nZ3H{mIHC>^VE{CHD z;yNu6S}~dKUU}OA%m)G~U%FcL?D_YGd7JmRT6@u-Dx0t83* znS*}4;}|1g9D-9?NjxdGwEtb(C$;4(baJQ4Pj$Ls4b41!{C1oP#%n*jETA({C=R5f zXFPPN+Hc;>otv<#hB8FZ*pV(2;T_0hrclwA2(F^PdhBwafMP=)pX_7)wz=9;1}DwFKX=;i^*u2F2JV5%)Y0ZZdO}{9x$>e z$7{}wWQD_tZ1wl8BpA5928k-(T*#*HW_$5~rCb;c@oshYmfS9q((iH)&)5HLNI2ZE zk1ph}H^s$qeU74MvcFFZs?pw791CSIjFm`S^ciLO*B+w54SNm><(lQ_J zZ=e296nPDR-;*m5;Er4Q#G_a%|*I~E%c+_J;!QJhw{DHCdADg?M%#g1= zelY%WbdKlT->}YLC361{uX1i!HLqYD_5geSkgdwxD;F5FZ+qKJR&xf)Nnhz)EbGCP zJ!p`w0o35+ycUhT6r*7N3T}DAZ0%N*0KFW^2G(qBS?oRwd4~@rrWi1z2cq8ON#@Ht zTBi((DZ69`FJ7KY&ppu=f2dJTt)1>+!j;Gj)cf!#Jz+h$MenDvGvgt`^(MCYVtU^v zU9-AP?nj3um)50Lj*ttk;@%qDmN}Xmjb({Z&aYMuy?!rAyfT}s54ld+zZ$n39s4MC zW$9&7GubqVCsHqUbS8)gCr84%KJ+gXxepySc*^ZmST?f9ElJxM9kH@}-E#}|s9@My*% zAGug`_#j(AO0Bo*vjMKIFU^1k`MCJ_K@QL2aL4TICgh)ru{89=obl9JGycCX21V<51kwagtBCMETsdoA%cSOlt+2r*87Yr zb=MWWzC5M$7W3x0hqgM0S@R6*SOYLnhQ}Xc>-^scej~FG!wEK4)vk`U&&!DV z%5F7&z>lkeMTp{SX0-T01Kj$BlN{v7*of7JTn7Fjg#OD5aINL-8(PPT@t)Fm(<6Zm zIqoM`D`lir9O0rp{T0ka!K*&*Yy($=>1q_g(0rq=;p&oSuk!8q*6(bQJ=XVMyq1#( z`RR=H>I=WwR&(sgUW)Q+(e6}GOM2w_(_iffE6TAGu`}I#A?jaWOP&F1)=QIR`;Zf( z!8BxhJdx}dJvOae%d0uo{;1xfZ&$yN$4qbYi)AoRy6jg+x^Hu%j9{&e>SdSKyDs{+ z9a~!zDZS@=l-RBOCCC_a#}AT~kqBS3D|TS;Wd)bLWv=q@>m6BJl!8V&EA+BCj5MO4 zZujW0BRVJT>o>dhAo=&)K|C=hKJP#1A{8a%E^m0JBzb~zoZm__SyZ^=vcM;v4-+UL ztzo~i!hOcXu8Wq_>0{G3t}HlvUdTBI^5S#rq=xc}dNPnGIpGeK;tW0i4o)Sy>p5G(T34dgvf*)fjYTxhNvHyeCGe ziAj6ll3GORt#hYn4fp^Cca8H3>fIY`>~R=c?(3pu5WZ@}tj_Z!KCHISeQEd6Ss<`n z#6Aun3^<@X`h%Q^H%^U~kO@a&eW!Bs*8ZjSm#^PNE0j9i3k(%3jF(!_t7>}4RnJ>c{7E zRxPXA2)@agg>VO>?_0ZkeA~=5y2Guv;@SrqP+U|$Gfq6(w^Md!c-U6ihi6KutiFd< z=siu97!|?tZPd?2Z{vjNg$%~-siw3BdG$N>B&%LNyWLxPEjmzWUiwqqF!oO!z zGsTn3hd5>(Slti`{oCGUvGJO~&s*I43|!dy<@|zz+^4gnGVcr~YzhpBqHJ^T#ykGL z$V0^6Qx*RkXPuO;b@Fqt&~4jRi@{8usT9wT!%K(UzeGld2if70GeUnqD{{X;&EY3^ zVN7(Y$<;pmb%hj-aM&5^Q$z0YTIBNO)&=BdV+H?}VxY`i99 zY4=4)Bfz+7d27GLllk@pT&yHU&*-n&fO0!yVl5akotONxce~6?MjmK2{Wf($`E>3Z z8tR(Us+1=t^7`I5e}a^3$q||C)&ITx{8za!4fB*wt&~dwG9Vi^>~&B5$jqMq%2D0E z9W#^fJ&_s(Th8mn|M_e6@#kvKMsu{#QG9GQ%&6qS9<$gD#mi0K_ttYu-wk#4T>IJxBKq?_SVPv6MJu$DU_yHJ(M)APQvisgS~%}ho5)d z7NCEI>y`bzugKHlKP8kjY!)d(un3LfYt{A$@H@6bZ+G#S5PCSY$K9;b5OHKj(zvId zhK=9g5}j|{{nb{fV?)X;bR%uuW|?yCFnk*~TGrhsi>gTRRBoLdTRUbHo-){8GPT@V znBZeB)KE9Dbv+(3=aIt#Wa$@ZKI>Wy^5eiBL(5&Ap z@ZNu!@X?*cgkAQ9lBphY2fZq!{#JI)!m1qvA3(1fSSVs|_EiRKPWPn$5%T?4s^CUM zFy{bp;N;tx)vddmhJH#gM{Z;;II~ab=&0vJ3&1>?q{#UUM60-61j_qQwXM(I&U=Tz zJ-*S?GH>b-he;Rtn~pb z2grkT3UlNIFmvmd_fh1&E}XU3k?!6H~yaZZ`lgSg?WAw7SfU(t!=>(tghEs)!Y5K{b>K|6X*J!}D- zY{c`;Zd;kz53@l+u?)99yKCo}#~a3L@-Um*5#jr9)nO`s4?8&djd)(nMC#>53t z$C*Rqe*1Pc;ccF&C=p9;4oR&OPTMQLn-h*c?W{1Q<&+b1Bcme!+FvIj3%>*rH9pVe zyu@eBp7y4$A@O>`(SrsJPS*~tr93(g3PgX2(~3Ik^uI3{K|je)whg)iA&zFz8~j?Y z>l@>xE8y}Zw@w=JUkDRfOD@Xn+9ct}rcUs&s(%e+AyqR4^PvO|GIa%z@kcN>4=(Iz zNsKG7h=6b6h&1MaQUnhJT|x|`VsJ5@plKAY6DY1r3cj>RlQmNWENd)aZ@s6L(UQVDp`mi(p=@ciJX^$vQOzY9TW5s3RB(nCi!W3mS^pW9~cekdZ8QA zm(7E5l$fmxF96#ZC3NH7&GW-~>o}6;nE?h;?xs0gb3+|H0Zjgg@{~cFx7fsS_Is~_ zwkeubyE)H^S$hjA73sw%9J}T_Oftt9z3C{K!Bf5V0qTiU96KS+O@S2J#t(v#6OMsg zz#b;Y9j14#)9+I+j8I5KNr0fd0{~FULi4rt&@p<>Y}Xy0Z+iquIQauw6>g|Z3$|IV zXx8eFETeqf1PySIBIYUQey+bZ6uEunr)CC@Ohn7j zHldF|Cq(KKszQ*%4=cJ1AXX@5G5b8DG;^|qXIX&wTq&|AG$wFC+D}C{0kY~zkp7}y z+}pk;_M2+Zu77FwPvPacF5HppM{~+@a^=u>cgn=1J?3`nm+wf9?srS~O2e7&8_Y`_ z`4((hN?>q8qu%0FtSsVbXPFC~K}4W zzR=Dmdy99a>`EQ-n0Q3s&9VboqV*U%*^Gf0a2Ncc)7`mAmR-r2?lq2EJBaik#Vpl@ zRn(vb2>C?4jV3FL$NRZ#?B!1{p7}UxuAIG&%YxNOYpnq)DNmEGPc6yd|JgE>_t$a8 zsuxanmkYJQM>t&a;2kX*+1wjZ4OxzfLd}z3yfp&p3-F$0IzzP+*OzXX_6wl~2C;0f zdMzA7;5VnG=&!6nKGN3&@y z@-{fh@lpPk+pNWOG(SbU+LU`1`5AgE!EVfagr4jR(cZSGN<7VNOPp1$sjMPL>OvWB zOt*8`k_Lkuv+mo7yHqFtmC9ohn5$te6!j9%@x>c*Qxm%VT*G!R5}0ex&}6qxQ*iM8IwOgT_0tGqU?-PB zae&bmK1cewvNJ>Xr*F7;-u|t-;JBA9LxkVut!%mGZiG{Wo}+eJQG2$^K7T#6P@J`e z?4JMNj>sCBrM2c_hAe|tTMG@kahN$b+*=bFK>dtShV0_w$-mj@>^}}2Z}zMoxWYEn zUG8`MOLZoW?0tQ#Dtnq@JNK-j==Nd6apID!Ccf;$Qiruv{zg{#PpRm!-`jOU7i8AR zbD#?dhG!b|*m(#9j;e8y-cxZdZpTpbv2ClBQNw7{hSE)5Wc)N>!*nEQDgzvGyS@11 zHA)R_hKiV83>0MX+i<%@Y&af0Gpk@>8Jp01;+qfu6*dY@RPY0^CyqDt#Jkf`K5fpG zHf+gm{P2wnHw%YiE8nW1hUdK!%LIDJ2=-tvnyt6{9~Q{*+nr# zm*uX%82U7nlT>J5cS+-}4eix;v6M$Kg(&bu%3vu-w418$-NT#tuKhmLZvKhAf$d<| zJb72#SjpD7vEm?}e5lpGVe&G@)X!R}HR4J8!}k)zPlvI0I8`WNk2zk2G3yC#De|fQ zXt?=8uVz6h{7*h-S7OP+Ux&#R`pwq+)O=vJrzKI$PW!mm^;@kQGH7xS?2m2(x&4!c zQTgAFDN%P}k-FOL!$+qtY&`v~W^qQtO}=Z*V}jKxc5B=r#3uP$Hc+5P6DzxuA3rY? z7yP(HI7t;O9(<#Fud~vj$<0gYjUV@UYp-KD-dNoqIz6T-j-1a3;^mIGu~vvwqn9%- z2$J@`*;Zw9`KkNXiwB#ql-q-)Tx}hk)m?&mFwdIA{Atr`aERBch^%_`-VPrQodghh z|5~1XVx`ntzJMbaT$jEO?v05MzZP3Onwo=U-<-jqHsMCuR9$?9#PUK0C)paTR|mRF zu;io1ifJu&dR44I3U*#AJR{s0&9?1>6wtZ`AyY&2Z z-E4X!etk|r`{^2(B7sXFIv(A`@S8589iN+R6E=IdH8R3z$u8hH0w;Mc_@%!xADW^U z??&EBfIZal7BzV4SjT(T?ex%lwKzv+R3=r`{7fEFZWjPMSm?j$hj{Hh%Dvf78?THt z4o_s7oAN{Eu2JvF2*kPY`iRr5T?FI+aaMXx!Zb4#Z}iqKZ*$Q<5VABH^8x7?QiV1=(fq zt`Y`d#jp;H_jVg^7oYj;X1yxhS+UKt70UV&oEEIWv7OB(R~ngG8q9F)Dh&Xj+99d5 z#T|LW=u>UoFx+90RcU%;!~RiU@bqy~R2OC}mD;cg8ge{QZa!LK>>kpe{ieUEx(-Xe z&^q|R&ps8i4o(9QBoH#xNn_#|_S~p=_^r*3S!-+8M_aq6g{U{~k#yk!%(EQYog+EB z$&h#aB(T`F)CZlsAyIz>pUba3^|r%gX_vQt&E7{(y0LX@+MGcQJ0h#e2=#nkW=&A~ zvE;F6i+i9(mknZXyewgQp-CMNuw~%n5Gz;bq?XQWJgR`+a#C}bXZh(%PWoafB#?~Y zZ^5bj$hY!)G<2(Nw4?T~F;^?7MIFdHVS52*A?D6V;r*8?9c3A1a}N}A)5e^dtX3n0 z+`2^7KAwg@$5TS_FjxhzCKOpf?V$Ohe2dL{TjN4uF=Er3uni z#Pnbi7cV(fu<>6N1Vpq15L-;vJ9-BZKJv>`)bWw}DWz6(KuZ?M_9|lV4*#2iA}oyy z;LD;T1VOgrDWE6Vhd{3&bl5n4wmyT_?*@TS2nKHl=@i^=FV%6HCo#>`hTuAdzvZm+ z*G)gGk~4l-ou!s?f9c=o>?lj zS|_#X=`3&8w!h!c%3wSRyC+3f5bloziQx`$PfBv(T zQ%6$=zgnGz74kibZvVqnK{EMl?w!5dy1hF9t3{o>95W#Brf(y_d$QjPZ19qX-`2TL zJKEX!XStS2K`l;h0_CzjFMRmFS8FsSuTvXCGfLL~zS|tOi`ou;Ly-U>F_V-=6Vez}%cvzN9=QSLWq?XguOq(UTG9;1 z|9_x@dmCZYP~r5ypRm$p&|I$&jG=%6;^QET7@}YQ)dK}`c$i)}ht{H*hH#Q9;}eFe z{|$8phU(!UZ%q5o>>wxs+6&6)DY6R;kr@-C7>HqDT!k)4yHCLD17*&)`d~2tHy?0k zgZj21(c?_mcN@$CFQy{_{JQY>&bu&IZ6Qselr7_rWY=Bv6#(>v`u*QoU^%EJ^N@Hr zN2F{2{T|@T4X@;ZxLGOHDPt!y%J4iP{5ll-+yH|MjRcYU@CY}40gC!Oq#-bkFG!(( zr-u{n;SuUKC{pndNuMEJC#UV-F_}^Ge?!*iy^^sX(@_C>8X0O8K`)}B{;O-#&oCE_ zQN<5H7!v_n4?n;2EqYF0cEx|{8V6Yl90~O&!f2_j!JK@tY~_75PH^aSP?QLsm;|S# z0)Pv}aK0!a>42FbaFUC1urwWa_24JNI}+?9?pV8bBFH)qOM_=EqPBB^Ln?S_Na+xi z1JS}q2bt`ou8b#u9*@AOhYpP3aq54|n+#A(8p0De z*8iJX9)L_P_Bakw--Y?QxZ3kYK@BxIM|d5)*8lf&j5CbWbp=p?hyT~`-!Fy^MOd}V z;=+MmryR&!|9kRp%Ri`ki(|k`ZVkF3*je&aL}30JAeG+%YI~ov4}35U887if!F&~w zvitug*A?qH4aFJcAy5Opv-uSQPcK4lK+58zIxpBAr`97x8B}mON@lAh5PwOK@T&cP_Xg+q~H{SA6U$-&jj)9X4aaXr7o4_as}JX#uJbU!nrNMyAC z#oq~EhBEvYz5*hK?9!T4_dE4mTzDAo#UE_tWA>9Pn?j||a+h}K-j1V^x=kSt_QrXI zQizI^X`L5hC+Fy)Ur!hEMmHa2(w@pb0A-XpDowH%&yQt{Ze27B@bGeyytKU%HtP$f zxb|LFxIn47O`75PkeV$iG~?yQKeZv0#X@39y}ta9bN>|i>xSanRM_O?T!qs4$eW+J zg-SV}e-|puGq@n5molirVDC=o1Upmj++JY`qTr5o7n!@)!BM56M_upaS>Bn*E+AoiW1n zAsu0;PTcqYFC_ThhXRLl?+B9*O~WBzWh#EMQ#(&N!MSMl6ojUyPAHU?Zf>BiRM6A{ zUqh$`36(3od!aLwUHIs9us3n-ZCcYS+9~)-W9A@P+w}u@VunAMVDR5=fthGG^<;g% z=2^7LgJt7;*Af8MfWUq(@hXhgAOOq0zzv#}#|t22Q_=hSe0j63!|I}{kt3^9KbNJe z{YatIm9IaZeVt(^Ys@ttMFe#@YTFu4TtZ|tTfe}>>a(s{z%!iST(fWa(gO&s2)Oqm z;0!4f^dSPtF~TNTtH$3W_*|BOKs#AX2WPV!kQJeACgQO!pz~yXyoQ^&Sp>hR9MemJ zi$PC>dj>0n7(M_^4FBTs3bgRj?PQzKyN%Ob@;&g|f&#=xW@){zM~~BW{QagSJI?mJI{`LCX34lS7Lg}w9Q@{r-yR%S(wYvJ4sg7sa z7m#wg?hRH(!E#M;p^L@|25|6YJpyFSg6jQS@6=`z`HJLlt0&AkDI0JJ25LD^P=MaM zzJZ-*DlQJtlc0Yg!*Tu(?W@YBJFJ+FrHwr(j#Wbz_Rxdwj2 zi|oKAPK65o<-sq%=7;Huf`fK%Ha*|5+&vwKR1D&f$c}L1P|Uz6ExVNqRrtBX;T8lM zvc;sI>gez13z0_m0yY2s&4Lu|R15N{f(yqp7!%Kc%doC%Hh-HVk%PM4ynxHPTq$)h zzF&|or6ouP04mPKXi^tdWXwu+uI4R7V;kh?p}OeF>(V9h9^=gxG8;dM3jTKA;nWN` zv*OD-sFTxk&K{oFpB>1u?5-Vy^O?%xqt^VuV>*IL(h%B7l_e;nWC*GG{H4&3t|pX9-(Hov&PA|RM!v1`=UhxHVvZ~6Ib>}&i4RS1CTTkS&$smNo&#M3?DxtW9Mu=HF7ah*krp^~(I(9p;8IWTkj1>sZPFPJ| zmGluCIgXtK-!OX_O9`o!GT5U514#Gc$FheUuM00^kPRE*GkkqC1) zKf6IB62V{-SAh3eP*Vg^;#zAgo7vi?6<$06%U)j=tp%2bFuOEPUqm(Zk$J9}w+`FO zTZsRR9l~Lg86dE`ehu@aUS?_d8c^YyQK5kpVww6#+G5lZ!2Q|| zC{08(`m`}4!eCp5kGL4 zE@+_G7f!lIJwTQkKr@Wru3s;I4w{M2Lrd}gQTp2)YWFQ_PnKHLD2;|4W)q-bBG*MYy0 z;_O)Db4K>eD}~aK@K7IK{RBj2j~H1z%|lVS>%x>I{miag8)zEYhk(NNxp6h3Hf zY`;8!h2t@BgMp}=zwKyp{_p=`0rr-~1K#@JA!w@0Lj`{FhBXp-Y2-rTvv<+Zc|hhI z7?#^{t&YrU@V4ZMmIF3%?vv4C99__5k5?EJK*?5b`~LEt^(#U4E;!$9G=z_fG2B+| z5b9-r7=zaGK=@QP+m*eb82Gcf$b}700*Uh@z-O%PgD`^xE3#h?rL|pTB^>dxUHQX7 z_GnKvC)oiRKnsa#OgCw6JK{MMk|{A`W%8{8R%v9mC8BxqAC z)h~lI>kWRgY|mk^ z5!6{htjo|{>KWGf%B7{d;6qR3fKLG_&f`1;j)^fMv?gj1kxZ+T3FRvU(8!0i%VU-fgL~!y^k5~a!kfY== zKczvV@?u|P`*2`fN&w6NY2^&HwlFcgstHTY8YUj{^t(?l2Rs$gN52&An{JH*vEWS@ zIyWkIKPnyqyaR@R-pO>mO+8;oj$<*ZF_2JY1k+feAt;KVz?3-g@I`oZ11vi2)=8nh z=g!{x&W3Ko@tp3tS4{_34~!`cht6L6&PHD0y`rUyO}tOt!STv|n1LO{Ig?%lWbXz2 zi;Ah=40J7qkgLOBtM+>v4qoiaiymVY=NV&FFaypbZZR|j*-;~!vg}YMIz-6>%Spog zzEWvHK83$HQfTnN`LO@yc?r-tpu*`Sj@U{LEWdgIacp8Ju&%Qp9K$8>jL- zXC~S*FgyCqCj&j8KIqUnE=B(|SPTS?8eVj|{Ia4Vd@}5Gk$d|w z4C<{>omTf43aNPd>Ujy+(pHWjaxj&Xpya0)$D7VyZvil>0zvZ}U1qJ<(b?6mES8}7XtM`rb_;%LYD}k>IX|E7mQE?a1ZKQU}hXuSDVZuyKWCyB58@G z;jw;*kEw!WUu817yX%%51i+r?h%rGyX~25PkfdZ_<^2EHBPg6uC+W|15EN*!PA z+SO!zA!8T$8s~p6mke4kB62oJO(nZsepNMMr(=E!0OLIu%g9dhbhQr_rbVQSZjpu$ z1}ryCUa*~0X!6seAxPuBc8hHrq0nDCV2C=K%%Y%Xt6!&5iS8aQ~@juniD9`()PgdysL9M7dEx6N7lPC z-CGUzs|~E<_IpOeC>{*N;YYtk%VfkrgX66RS$5*@fN{zDvmr$f#sNBqrXxaAsjHz+ zU5)&!R3Xdc9GD8Tg=ZeI58oEZZ^Va6EZNLD84Sj|YYV~jK!6zlUF#hv-G(~6x9ydV zoSj%dbh_wJl#({1j}6Dh7tH7p8p7P79?ejc8Ub1zqgvCXJM=9}EQL2NPFI9W5DAWj z6cF6{1ikdgMpXL|>5|jwqDMnJXZyH+e3FH8)3X84tZqEf<{=mNP~sixXciuE++W^p zxo8=j(Q0#CW^U2s%Q2dYPhlrl%?6zqVeS>DYTkzS5F6;N)ge0>S@m7PVpuNCazOAl zTmc4*!E*>*njIEj8jcf3sFGchoB5cRzN&4YYOI&b`06PKL{_7A=0@#I%^W)G(mTr{ zK%dK`Q^Nyw+dOMx%_pmam56-x)Is4CdNlv*X)pc*6e`vLas?ud!E<1BqG=MaGc`2A zd^^H!#I>9!6MRKsQNXQ{8t`u5JP42MT1i@P#&N-rOz|#|V)tLTvG%p(L3}dq04JPt z5O{7@@!F&X-hmR}$>4N>_{_hAuYI(gS`6BHuNt^1kiN^tObKG7hTg}0B;5-XIPtDw zRa5|q)L%Vhpvt^l3T9o=VZqs2@RLOgJ$i3bttAH_6L&i;9PFd`H(KSzhm47!gBrh{ zpoXzgXn-q#_2{imaM3JH$!UCW7;x&pYdhf1yigd;00zGR+Hn?6Wl=<#qHaHomHc#I z?xl7rh_e)tR*9><11nM&h_S!xVioI~STQ}>tQ?OfU#fsbLjfm29G)^_F1wb_lOcEM zJY?0gW*8$rj=x%|qZ3y&;@0aaY!({w_<@rHU?s5ZqZw0?yG$^BT3#+>BY~IiF7Syj ztwRNyz3=jOB61yrbj5gf=EP9k=KjX;FR8t?yWP^#@LHlRF=Ev4wc#lima>9kY@&I; zkfZ2T;p?!GZ*_PtY3GlT#++{ySLiJ4h-q+;3XPG6oFu=yXdYlN27h7K@{}_^@9<>^%zUvsTF--F_5o@DWXHA+;w1+?(NU!%*!@5nR0^@5AVfMJ( z;ziBzquZ@-elAQ|8W(*W7k8U zMJ;T*%5K)WZ-ft|aF5?Sh$!1<=Iw7!JT0k?NV@RU_{$Dh~IP~HV z-z1te?V+iuICqf-t4AW7M?AbQWN#3|MFNk>JY0CJuhs2bjF0+8BVDO*GP-Liy+MWI z4`NKhpM4>@IlIv2hSC*=8~P?QGGo~Ip2>Z5r^r3yM@`Wh+SQ9q3obL z=c%ANYra+q&+7@xi}W24D_Qh3gqFIVm1s<4Pzly0)xjxj4CsIdgq|gWjCK)7)boIM zW^*q%x1W1nc>S3I!hlEH5@#Y4pA*=LnA`c;NtVXu5gtp&J?8n=&RpRIj-QsijrrQl zoJj2(jppISypSorKMUL2 zValoL+8fVdt}bBX`0A4Srt%03NM#KPu_|NFmoI*r(hIZxvv^)PHPrU64A|-gL6X_U z`G0MS^Zn1A>DNbne-2rzLgiiYC2ew%Rm&f!;73?GQVhandkb;_IBV!6S!2Vs0HW+s zBDW$N=9d`SH4xe@%gX!y3H`NA8BE8ITZD-tW81&`Bej3)LES7wQ1m~FQycbE^hknl zJVlHBG0}M;$0Tr3E^+9+%)tj4LHJ%qCWJb!L1j06Y$6mIcLby459dI|M)#HWA1QJZ zYCW4?GT<>m=oHT|ZIib!2I{)+f^rcgq0h_-Et+@!T8@pB-<*m;{`dCtxa-5N^gUe1 zb@co2osI)1`qhs|*>dCfMuxnG#=qN{R!>F{$C^uyBC?q^fo4DGm{#}Inp8<#?ap+B z(^VhW3kqxw=4E*dYSANdRKw*(vf+oK8qf*YYgIJwx;1@v%3oEUtLVObwv_hkBll~+ z=kw0@02G$6PuUx#D2|+sMlQsE%QoHeL~u(WHR-Y!=h=Ej;j7uxCN)A23LBQKVOL?R zOz+C>g3SbUZjyxy?alo|pK|gNH!vR#+Jz@OYP%xa(n#q6&He+@92@=7G0}@B=Z$Cb>t)*L`b-+Bh(VuJoTjT6~ zNiTvC@x}>T?kwb1Lx)WqgB5-`o~tk)8m<;rw#0{jmSi+*&l5` zpV+n5KwK}W4WRXUZX|5f zpHUJ@k4PFBClTXbv}-8jB-EL8`t^w=d?a^t%0EPR;6iPPw;kl3fSk}+{BoS~879wBT|CroBFVf5o z{f=eAkFeeAm{LBnN50C}srpz;7os|nS9P!^%>TTv{Y=6d$fyaV_amkVYM~qDlB1Ed zCpwOwja(^+<*DXREU{rGzg031=5RAB{$9w%W_!~E3?>}h+LyiI5`ep!pgb>TfF(NE@7$r%Nw`K)3~!3-s5Lm*35D*3Ehh~l%lbX!Qi;4pHOn=ntfgNbmFZ)54ZOI zD6F5EF>heRo$U#=KyoqaGlr1P_F408G@v7V1>H_+wuibm>+n^^&b>j$PKF=_PV$YtQjF;3r04!WnMMo8 z-(C@Qam(fS+SqP6!18DlPOf4<0WFJn<$ZK<+_)*Hb}Jc}{q^G9K~$D|QD{AG$$|!hH>tSL=Cnvdm;f`@%d@ZP zu?+#jy6}dk3BJ!faw8wEi2DeJ%o2UQInJ|tFyy2|iGWCu@O03`G0a`4c?1?=GOyn~ zUejm-mc8TsF}y-l=7U0W7A$2zXU+RhSMO50t>&d02S8c9&f_M`O??I27)5zOaskd5 z&R^U*iSzV95nkqzs4NmFc7}G9c{Sb}?>I<*A4ehhVmbnVx&1vnWa?t|4M z1nQ=~`gfrM(ti2wrx^U}c8g<@XzQW29C8nd7=bZi>&Y666E@NN^W9}9j56e2;&RGi zcgfpLLuL=N{dtmM;e%e=G7uGZH-7BGyFna+rFxKAnBf+I$3$6QVr@kq1tNhS2_TlTD%G8>s zdtq47i|%Kzl*$v$kv~eFp>I!_PMLi<6!eTer(oFHIP_EPTj`8V4x7dF|HsmG$5Z`( z|M#`GYj3WRghGW-Tq`$}y^@uXS(z#0$}E+uC>mB8uD#00Rw$t)du4Cg+wa`Z_xE2O zz3=<|8fTy9Ij5DY^v_#_g%7h=)_ov(&SCX;<*#<~g5sC5MI#D(m&!xR9uqFS-LmDo zXaZ_}IM=QXY2WEEyEU&AwBi}CDnb!<`Xcwe*7~WY&=!9#B@ z)zzn&JLEl$!8FPz8v5qfIr&mHtX^WsfWZShk<)4_hzJq^_(M;Z|g_ zKZ5!zXSgL-Oh^&z5~^jh&6({nW^ymrZbw+~4-EhhT;%ohpC5BwB$|SiQ=Mi-oZ-UZ z*_S^qZRY5c+Z&Ka30bI)JuR7wI)-81HT6q)2i;8Id*xYVx2?LrZxcm9WTyVFdV#(Ag441vKW`xkGE}*5Eh@-=cw*%Yt} zs4p*9zm%EHuny1skkuDkppI(ROE42?&pDMjp88g`;RC{BWns>DSqWMGteTBgUaFv; z+RiYSWTu@J4ARJ7%F-lwP5oPn$|Qg2QoHQJYv`m)|!)MMq#7 zJGAkFjQk#H1lNI`NXCM~PB?-))vmLg z(l^$Zqfei^9xd-jbCQ13?+}Ktr>TiX2yF`MA3c8gnL7WI{8?d|OrP{6ygOz(P`R=rJ>H;Q&9C}pM1 z1PqFwy#%Dh>Cdjn$8NK*S8G8-Ls8Mg)rVEJI1PN@S&i%jPgnSABuhhFTY39LNyH;c z=PZp-AhP#8bcCgYz18;8aE9!xzVKd;jnGS{YX2N;{~CDw&Mjd3%f?ucQ9mWk{a9HF zs|w~WjDH^4*{kD_g%0pE>|_a1&7;H=u$c**qY<9JkyY~;6tmZYJ+zi(>%A4ml;&#z zDr0Rxsb_3;UC4_lpF}?DcWqa!1cS$4uTnoV8s#8cZLz1fs0{Mnj_Xr4`@)eTD!W;H z{%1QFM~mtke~63axl^J!4X!e&SIicNDw^HpxQAY#$LB<<7nzt&XC2_$t!9qmJ%UZT z98~!k^pKMR6K=@v4Dob|Kuq-;3-W`?u=q&yxcxY)vT|Co`@m6^hER+S(U*U7;d@;K zs72oGCC{D+;^WWbvhCaU3plvI&caG&do=?_t(w7N%0JS3m1?s;m;{an@ox|lPDUh)at{DmzAvCK{mP>l~r#Sm{jCP_Y3!X zphW3Y*`fz`l_MDB?sBMxUxK%I%l>m&sxsGgrK!_V6q@`!;v@2oNX`l&QQY+=!*O@& z>7UsJD)YW+Pl+&u)w%kELH#+)dEw^yx*$TFKPy=lEq&h4ZQNnQDW=u7D5B75Q7u(f*xb0Kly>mM($VR1c9bOrF=dv(!cVw=W!dZt_QVG+bf6nn?`jx;XHyP;pgz-^SI# z8abK%&P`^)8=2M)Xt-1MYwB=Q(7?T0VbtN}aSSbj-Hz2Q`!E+@iN8HVi7mF$NCrR{}HWl>(^Vk{9AWRHZ#2=;WCC z@T+dMTS^9w$ZbjqM-!Q-PGLXY&)Ul_aiK;vN4y{|_)8ud&(k8)!@;+4m4YMc3trV9 znEyN`vx@m(v7g7FOD)bJDHVd7mmG+8OFThSZoBLCPGdQA+5UX=#z5wXGmm$~?ni4g zfrm%lAmgAg4$AybJCeZ)*S?}+TBZzB)EYHkg-sL6-?>%l5}0XgzO|=|G+sqyAD}S- zsjrvV)W#IkCC5dgiG-t3gzQNS$0l>1#bDof-EWQCd#Ma3B9MrG*GMn>v5yUY&!`nm zCRP!~b=M2Gc9S`}>Er!)aL~ed3PFsHO|NBUm;Nx3mLUfYTG7GG zq~JF+Rg10jZ@2Lit<)?L2;cYR;({9i-(|%pri!Uiq&-|RqyEB%&%E&8+AFhm)i{D# zkzb})hV>`Q5x01!ao2VwLI zncwj@a8_*v0<9|QG_t$AA^Z_aoG>xwj@Pr??E0#2>p@0`qskgG-hnc-SZ;$&`(D%B zQ%r;tW*Eb?JQpuZOzSO70fvI^54b8G3Mz_AfthOK;!%Z)S|X=rc(QeD)_hR_0L0_dpKPB*q2#>+TRo9aH3gTo$pEoMD^+Mf2zr~E_|2ben@0$ zzG6}uI&LVhWcPbGR{*lPVq`pw9Vm%Gkc+|QI~R~@(6DD$N2i$wBOee}OP7$J*NGor zTKm77;F#Bj%aD9yM0F_r_K7vUG&0@pYH5f}` zxVuv2PHt_~g(ApuVB(vv;hB))-kOpylsVXT+?@Kl{hq;G8lyh++OoMFej}etQicoO zR(28I?7El<)M|ohcdaNnEs2Q}JfAeXqv`JzYPkmgUYPzAYGqlo@0Gs(Jdan5;j$`Q zMD14Vs|X#N)KDH`kiC#TV|m1Ys0`p@vWTA-Agbx@!L7Xfs($L;+24%%hn`B(gSEaruZYYi z(~0EvSH5^8ZGkR4yrR;)1xz{XU!$~+SZ&+U->wyhziH_Y{k;ymkCJze1`<_q2}CB0 z>&33gqBPsa7m;*?+daJqA$6=klx@UH%18Z#hCIb^8?92OIr>1ai~2sWHTqM-GS6#y z4h&0+#5szQ>}(Kc-Y4)E<;`}LrQNCne*GDUluY(fi97~Ahs~EJgAke+Ai*?lp4`y` zpXv{kn1@H_cccPo#IcVL@`C9Lj?=$tuV79*+2?4K(4ny1dPk&YaR%nSTC|pz*J8Nk(y-+imxM7(fW*X%e%cfSg{BYi_ zw?dLapm&Lt3Zq6wD7!K@N=JCj23-_lz0$L?`Wn#pdj9Q~Ee>r%yfq-*uP6DL)HoP; z6TuOf1mUb%M50rjHvclh%Ej!CYzOu;O0J`6=S712`4!CWI&W?k4@Eq4P=g&GYo#qT zNxl}jyxK~oM3n~TA6i~g3)5yQ+~4zK^q_V2-DH{BPUwt3aA}$Ac)ughi%Z@ml^Hs4 zpAth*1TMhrj0FCoqVKU*oDyMBSM6qX7qu~KmKl6bL>s3Ka@>UzuRZbL!)cOzL%P$` z^G83$250q-vtQc<){Iq*ZS_q!_dGA1=mN;gMe`LAl^ox1yo0k>=vu}i&>?PcbNV6T8=_-9B- z$R8`9A(M?Mz=nPxmRaQ2m+uL;(pyCd`}?eZkR905T8;;SkK|N*yY{edv@gE(dKgDC z7%PKyHP1r?k&_z%%-?Idfti?M*E#K@Z?Uy4MYj7n+YS3f3$Mw>9rc8D-Znb#^C}i<01%DcPk9+)oNSCTCAm2oZDszK4#* zwiCXg=l&<)W9SHH{Hh{{6QC9M$wWWbW9aul2|cC@+LlQHsY*GUqjR4Oc``1Vi`N^j zI(7;E1c8L?X;b1NPR;rtVtA~PH3u5&7#Oze`N8?xd8A@fIGawnykLK$+CW19Mx*C#3>wuQT; z=)d{@P!lOBxlAP(O%~TO(8{&$ke)Aq7{~iPr$gZ)Dr{^nc0CK>MZ8_)kQiM{Ej62D z#;b*AF5Rf_-gTNQqE2u2_R^3O-W7FdQm1*8^aornz_bCqR&?G&Fz%cbc!?ie>)Ixz z)WQ^jOOi(%O9Fg!)&IT->}r-G<{1VC-&F#WlcX;B)Rh2 zwZ}bmeen;IP^?)6t8Exn{OA4rNEF5y6i+r)%O9KTRl7~PdSB<3hg}>${<)krl9Wrq zSG=5>AIX1VC#3pAyPg^?GJgC$%)kE6`4@+)pCes;)f-t~Zj3I3y=5aXix*c{oZtT4 z`>C5s?HQQ==b+Xi^z5n5*^y*{$dHtkBYOyvA&lIA4v6h-6?OA9!Ke+t3h7O=?lib%ULJ0AI zNXTM9ll9RPbOxozFQy=3wyawCy{g%7!8R@!d7?U=Ly>qH)$_Bd(O|&Dr^8qbak#Ro z{koHn2LB$=jZZRpDJ-Lez^Nn`Lab+;FM-5VEIvH&dEmXXzX>J?fHH2aVrU6!C>p}) zE{vh{C^fQ+tJ)D&?9IDKgZ&E)sWG9K&m%3?SybCY;(`+ORZxOx6Zs%6K6Qp@$HhJmmKH@G9(B+1oulaj-7}77d2mH^OYKqP@l-Q*Pp*H?tBfbd>Z&zbkAGzvgv@X16#2=6PO3j?=$_n$GXEmUoFO4dQr5mmNv|qk%+lTj%&R5VXq?@fY9TY_v1U4S`w_|&s{)RYhD>^At@aTQJ{4Dn`-DY zMdm%M+q!Q{j~5hD;z)}g`fRxWPdksijP0pY05Im>=YObg9fQ|tu$Zg$jA>{%-5vj; zx*D0T4LzmO`|Nnx`->OXhO(%ehm0OqDL{gyEAM04<)JNlMf@))lbklYet74_KdW_> zQ{K>+HINOJP>1p5ZWbN=>P8uD{syrNejzh^(SMq(R^gK3fPTURve%K!)B!1WnzdZ}?~ zJ|LZ&W@;hA;F;Phbg}E*j{d98rSAF5KJ?gM(84f{;j(?51$=33stGL6 zTdFAT7S$Rb54u;j{;1~RKaT+>95~TRj+~o`dYua5IFb!YCn35)b-hMv`PvkeS65m| zOJZ4N?V#Qnq5El?D~UGTrz^;x_{ev^s(e$$~{`7S@9`LS_#v_&9CWyUhDx(Uu zy$7X5=(VGtV9f;I=}1OHDh>=R$=*T@GN=0b_l8M|Zbfl<0S^M16?-V+(p<&8%Yf7y? zw3>-|DtO^i#IfKMh-Op0CYLQu$yT$6u(_7+{*{-+|c<&se|vK8$)% zFoMsHn5mc)+_B&L6kH>hVyjI*k(=V`o5EXVH~%3qjjqF?kHCT|H}7^Ijv4ke2p@4I zn7PoA4tC0LPSX%&T<|jSrlVEeEfu@pcRz8^jCxzpt`uhVJw->1ucYY?g)D@4c@hu| z=it|>n=)OWOsB3+!X0Km(jX(0TnWUIBXse9^JEkPN_oAcvz5PI8Gz`>YOjaC;AKVW zYz^Doef1>sO1Wxj;Xt2Mo9u>p#6!D&+ zx?8qsFJGR$%rzY>sMA_Mr!rSvq5evkMoHn!YZR?2f~&9X5<1o1@UwYR8Ge_sB!%S} zSgx}m+C>M{7}v@5o_(AY`QVvTth577@a_Pm=RGJv_ddHU{?;@#+NU1_+KW|C1BHJA z5%D{>J}F0wP6qN9-W6j|VzTSIR+wv${#Ub-0Wn_v$zk2Sf2lnu@`gggG$eij^J7Rw zU%i|dS@&Zwr*$-GLN-p+e{{g#PN<=kAWHr_ux`Jo^aY(1V*J~5p@qh*Alh9gNkakj z%M-$)c(1G>k_I;44V!b^%C?PXAG1fe-xRE__!2gTj^WQ@5~fISacEXWGCdy7#wEBQ zL#|JGg;2OVUT3vXc+D0v@1pH&)J5_&>aR$!k4up>i3D~HS|f*|JopfeV~9xB(%96E82SkP+6d%rP<}37Ap!d)cdJ%%dOoQ?|{{6TCPZpHuH8 zVjF`)UMy;UiF0E{ir5z|d@}=kJuhwgTG>|8PDi09+lg1&P z%|3g_of6&{-^xYvdbEnn*s_x8-7D8`QDSN9Cm$9nI`N;F%Bq7>fSFrQ84aUM13qJi zugZvS+B(TPga!MhRba32YA_?Z3jXUl-%RmZICwYErqdbU*Q2pLLLy9m9@k#IEFGWhuow@ceM-;ix`DoAv!3tj;4m^$s^D>ji_kPmsVs5Z#J>~bcgyHOo zh5-)59!%H4;6>`GYf|NAc$g6Tkktdf*IP<&_obSx|LRF2YXPF_?$Xt-CmEFJm_L>u z@()M0KUq9`h5jsJFKW_ufLjT?UH##P-{So^00a~=lT$)So^C;{l5%3v!DWFDoxWUr zXE#lEd|g+fh?nqLcbV5VvOA!X^>z=I3W51x>Vz*l#qd+X0^o$kp@Y@heV$|Vs5-?& z5xw-tKPNF(`|VjnPdB9!9iFEvSMM%;x`#uieB2)&FUM!J4S{WLaL>5Hcm0V>b9rz7zS}T z`5%%Wv9}WvJsY0&G5H5H$yiwk`QHo27rw4X-e^>%{;x8=<$lSIs1;b$q;JBB!W6P* zYp=@l@YNWDhj8MMu`2K<0J7-i8h})A8I!S>0i2)k-;dWMS_@;#cSO68@sI^v-;)$_ z5#&O@4cI3b$9rB|&xjHTGHp@PC3OFLF5@#KqQ#P*y!m3ts=#RYc}DmFNa2bZakH5u}cU zu?X{<#KT1hg3AMW;-%LO>JuMb_d#`QP+(j^9~0guP4U+z{C8U+#!35y3A6QgylPV23o;o1!CZul=H5Y6O|9S{Z>_5k{L5yo7WbLu%kP91ifJT*mdu3lvudKfBg{K$= z=Kf0=H+m-|Q0|aC1>OTl+2^y%t8Ymh@W;apFPk+GHH#$7+7>X%kP0IaK8R@3s|}s8 zSi|&6ilA_U($7%i(2w)8ef0-3(#1HdI^Rt3kbR()bo41d{Qp`4d2={Iq2R;yFYrz! ziO0@AGg{XnCQ>V@4j<(?Pm5gvqYuMOhVIdyHv_VeE#)Vw*+T)`Stvcg4MX?Dg2E5O zQs8Ch3P3Ga{J6qy!@eJkkeB75cSdHQ&EU)8Z9veb_^*ryaDM^2e(T{4Di~j1O#hxq zffGcp%5SKQ(faW0_VeCe1Mksun$*Xt#ZWk^lNZ@hx?{!s3jb|f@cGz$oS3zY6RB6@ z{5S;1tUDrq015m>F(UY%PT(gLW&bk3GEiW)m!rsV&o?XzA}Po;kL*BMgK*PqTr%VN zpSY7(0JL7a1`{u;UdFU1Q=f+Yf^Ja%+9jmGU3dzGQ(b#Zje82eeVH_@m`^gWYYV({ z4{%ogbEU%9^+*G!-o4!+_h(yg&@w3{!ku$#TP7S3{`D$!iwTmU#oxebK^KhXrze9E zbpEj0xN-mUD1?wgMpUc5PE`29cwWiNQth$|s}c$)4*X9^gS}%K ziUrjN6<4DrgyNhp(kg%htv$W?pL9^swO=L8Z@{ZZ5@Xn0l39*$K@WfxZ?hd*1lL?1 zOKAlgL}W|ycE-$vU6jgq=k!%J#JV5o!>Iwbr1s$I&>oDOL+oYKcitpySe)AI{)vWJ zb3Rz)*K#1J9vi9VKECH%(2*n2bYK1K&^!O*uol_sQ&aqRSk@=w3Z$5!1xQ)Dbk@!r zpAvsD#`B!|Fv^b$He6bo%=^gH7Itz1zqLKgtTpCDA%CxJP&0^5+W#BuV}U|gb(2yZ z+V(n(j5C~0Wi0CNsw?SqxVR&J2q8#9?L6~wXUBNcBaaa=HPWxg&T~YukJL61VTr%_c~Q6!;PpoBb!vw1lkkYQi^-rx3nfP10C^%53-Y)u;0;}P z>^b}Y&ZZ4kZ@T}F>v(}kyz$#gL=0pRV8AhgF2H=2LyiD5U;IsZY3Sn2QF~qB#Xu93 zet!1B86N?A_5hYt=StwIo(o`%6wENU4cR^6t*#PjVw`KaLXX0w07_neN#9KHq4=aE zI`{!p<0U@(HmvKmc`eU5{6jk1ot>{?_ ze!_!>k#{8;>(R)#YfFjk<@hn@^=p^+>98jObOWyK*MKE)j(733RdFQdxcK^os1BWm zCD%C=uKGU%L3CFFA9Z0+D`9yT!vB-yrBl1dp7kNV;x$Dq|uCj2qB)ivT1 zqXGXjltVfdh@qsE-59{J#xBOilshfuwE~$zuh3Dy@OCxjc68*2-Pw01F=&_{d;8;n zKJj?Hw@3Jq|9|H7^aSnCnEk4x*-P@!mFC?}xE6`j;WG_8kR;-2lhYENr6ZX7>!7gG z6|*e`5)7d03M0YNf3p4kz+%2#s+Sdi4Knz!+lHCTc7fdCF=B>~0L_Vf>|_i-$j$2e z4#wOo6>pG!g|l%Y<2~p84)(>4X09Z)ReGs%cll^#dQ;5@Dq+R+L=)D^Y0;;DtNflF zFEHNH=fsbLozWqan~(8&p2v)29+#%63H_@rovq%ghv5o&_C4O6ixw<#IOjFJIVpP! z{|!{FbDQ0k2>|E}K>4c2(CIySyW=P`wCe#vM-h_9p{lOIls`$HJ}rHsz)Pm^5S5od z4&LxaL?rJQRh5eCCUvB|7{c!M-x0AP(EeOsNr4T zzH5>@)J*VV?F9NHt&_(R3!uxIsUPgOHCO z=+;Ok+u6U7byNL@j2dfTuTWbMaf&?E*I_r6KD3CxKcv(BC$X3FuE-#`HW=OgDV;Z> zXS;VEW@;`qX zTUOYpNkha!@BAU3pVX34$Nlna44q*Q$b$Y_8{9$FSx)lJRvDFFTH-GHJH>8W9kC`O z>;*caJeIm4YIbu7a{(9zBe2V$I{cM+a0izpPxh2Xcz_UQ=bDjv?q7_wBC*NV^(fMk z3iizcMEOf!8sjWlU#fkz96{m5*3N7Nnb^F{9X1P>O*h#LuhNx6TFic@X2DmWmqE`J z#m%vv?R%NpRoj|E-pH0->i>58GwT4;T>9f95^;g_*g#>q5aHu?#^d1CXo2?#`;FSV zsh7r#^*yGcYcgNZr@Ggvz-qlj2C}hm3pA6A4P$eCaHEVymMWsn=dir3U>YvV*(D?k zC8s=BZ7GnLIuZVXncm_&w+7lA8zl&3rKF{=+c zws4*^-j_?0HIa}H;IV!1L9L$><5W=0V{fClwg>oYLUX_6#yCAJ=RbzG0+hYN>@v!xqA`QEq5|r$1s}Vgf^+Aeju3 zakMG^$p2#ju*kvp4xi>LWDS(e-H#FMI}xFv>SJ9Pk0W~nH9mi+p8pLlr6a`CV(HRq z&ehsgq)#+`=xM(`eZ9zury>z5j? zLp#qvy~DD4*9JI28|SgS{mwLeS-MLI3Lfgm;k@6fn6Xf6v-p$MMz9LNfjG&>Y*d^D z7vt>Dw%50#rV`-e-_i%^4T}J{r2PKZ-4Q3am&~m+Dx_aG5MEc&y=e`3a^dClo1;@u z2H)NSqs%E@xAd+vB+P=U=no^GxV1!%u(ezR+NhvhntSKwlXu(URLZ%gBe%!3!GQ24 zaiQ+7bbUFCnm#ClS=7y`UL>lA7%>{>-5exAj?X{)`!M~A6gK0vj|6h8$qC#oiMAgA zrt$Ahw*;=SCrf4`oixEa>tIA1TswD!)$_Y1c(6(pOFIT_T&3GOh97!{57XsokZW)8 z|BtPQ^lBy5DChWgRG|qYK8KyefkgF_T>e$=HLVKXp5YweOIYQBCyd>w z<_bZit{$Al-FnZ9oPFO2GRe|B`~!P)d)Bx27hI3?F@udHn|5Mvxq~u?QJ}ACqlSW>ZU497@x>?3H@9?xF5}FsecJtwY@yCcjlH^SW_#P zU+bnS=K}->&s9P1`8>x>-}z?r8VmSPxGtAbYC=)RNeaZ+e{y#Hygcqsg!wJpzjIIB zkrl5690di2@_rDPSgnGWb8+%Az}w9lT`nMG*dkJzt&4t5M;<2v|CHNO<0am_{S2YN z|Mneif(n49fqo%-HlTwi?9M`#nL>}<2wU6RE<(L|E{&EGCy-+Xt(6# z_zzyJyAKZ=wWbPi$|AT2byH7G7*C!nR{NXq_w%b){r1}0h_T=es0`aoUukgRDtOwg zrY4O+5g5YT-@yC<5#if+EXHG_eD1WOc&dA3Z>eUD@?#Me!=0M$Ve$BYGJ zb0yOzxCPz=W=+c|S3k(lJVDc9M&UT8@$Z?LYTyqBYMgy=4e9D8a*!0JZ` z)piW*LK98~)%JUCgnd91>$v4Q`GlNj!OJSeKE%SbklGQE!-p3N?c@+A*{!q8M0J1m zw&!Sq`n77N3`)+Y#q_K(kV50`d|k|lyoA%xBdUK4c+qE9c9R;~jtU-yPklLW?^e%j z@A0WHTi4VrW$cvbMRjZ(`NT_=a+ z&qL5s*5=`_5<)~$Zp{YQ(sg zC-(NX!Rxu5=9i_SY^?YMy*VCxeR$jre6wAIx+|#gLRA$q6s}xa zgUpd71d$_|a|W_ouhO>M2(ny9h=X$;`gp$h4r4i}a`wK!9VQpV36CX_wumgBhDkD# zRlHj0=A@j&hgih;#0^>d>mqy6}53eCz_iXU`* zz`LAy5XdD)s3u7Vfv{$+yN7Rv6%e+QTd&?Hm@@(;1}|of!QAr8@t?wwU*dbnRgP6A zDZnf}Y#Z@WD9NE}QNUa$Zdk5UvvtThQjigfzVuO%;kx7MnK4)8)a*fFb0^kKd1Pf% zZ38Uo1Wn7W5UaxQ;Zsk4w@;GtjAY-@z8Ptx>B#^b$_)~XNd^+$k_m6`)wYmZOMOLD zujhXi;69Ae&bN_=?#fWIMz;2rUajr*MT|EbX6=a2PP~bHjIP8x-_)7jxXEI5#8?4v zSow=w>uQlgSP_!!w2=HXqq)+BA*vOzUF?5*oTSTN&}pJ@Fh-?TwPJbfI@ma`wK0^d z+5$e5G2X$*d52{sa$GrY<2*Ar7-{klA|O4R_iR+Bjl2?nc2H}FD6NH(Jrmx}W9Z$5 z0Rx$%Y^l3i{hO&-(~$>;rvF<-tk=I~s8 zE^MJ>CE)%UT1I@nZfGiwC`H^Tgxk&1a``#_jR8$M)t*Lx<){KlK~DlQEQ~gG(Xi3W z7{JvnI59S4m;BeS*(xaI$%H$v~YO)eJ%YiOv()h{>%0(l+ZHi6_lv; zHLwyMfz22gZT4_M7{Lwez;lh`T^J~L_Fdo`Z#*YIjK)L6MbHO?$^oeRskk8UwsF|$ z$ir}V?Q8FHsFXNpSf4g4USF8AVF(3x19J1}yR!3OeW@UUWe?WOwEp1{tT}_~QS&zz z;U5kp&byt$l4i`pjm|>Cx4VrFK{6p<%{Hn`%U#T?wXVaHk)%>*0WmQBU`Yy0Bt#nE zS&+S)ioMQ7 z04YDU^@_b}NjVYX!vmYc=S;N%4H7_}z|J}f`}w|YKqMj#$V&Zc_2$1?s#;rE>Ma}G zza%tM-gE<7<0-W;LuaPdCsuHQjPj(C|J!_RH;vk zZL-x%f=-yYy?jto%L~;;z-tm;FLqzn-a;*F=WMF^OOO=+fgWoH>-vkmXo>nS);#^b zZ(ki(Hq(%Zo?UzL{VjG$HHs9(PW$d*Cn=$ge1shxnE^u%#7_+%WmcbR>C7HHWx*Ff zQ`D8UV6Kp|kBB=QF+|@ASi;*!_2ipn;!H^d@p5;jOkerw#0_^HiNx2Vgy(t0?ChPg zn>HvxzulfX+--YudlRbE28-`*gvE2WV1z-&NmtVR@gp101_grWV@A!d2**~hALiki}5;NpnBP)>zGmADVu`$)w-Lji4h(D(fL>uFN z!i0iTS(KP#rE|IvH^rP&9F+0SokKP_SEr_bLXhnNP#2QrM)WV5;zQA7i#`z^$$M!< z&Pwkj2Zm(P{@bwyxkLk=wAPOiAN*@E4m`WzYiKh$Vl-H=8VWFpZO35>`x}LeCBMc5 z@JDj!6DyLmlg(KsB3`~&Ww5)_R@;Vt(7?no8{77n)x>h1% z{}tnL14IH8G_vaoJNT%lQl#XLM5V2EBn}>tEhmxP-;>Bgk;&+Xzo`@<>Ji?K+UTUj zd}?!GZ-u4A3PnOU_y^^`z%s_B!<|VOx7lDJcEocZiGY@ZVXnRnZHFX(WdL>le=)9@ z_$e~{{@ah~5_6oE>7`@S;2LyRGOwzhxI&M=a7Fu0AB6bXn_^NR zP(H`dk^Ot|tURf%GIG6ln+v4<5wSQJE=8q@QL5(+m66 ztNt@Hc`hQt7D#Uhk)2666#OU+_Vz={%hTO3b`&oF{=rIs+ag=7>@i`oiFOQgvy@8z>UOh`*F(QoV`RTCo?0;C zyP`0^6{Eqku$Bd=!N}XE#|wYi+YUanp-F}`$Zhf4n`Zs^-D#BR0IsSVnbyd@W~}_Q-Db5hioO;H7c+9K zJip}yO5=1Mqht6Z5(x;}e?;#H2u0c5p%xy$ojW^k1gOuI)vfQB>ZnJXowi!5IUd#y zEs8Q)>&UQC+jCQ;l0Q5FL5BfaY)lj#Ove0#^Y?hyu&VK$*pQee+NAq9>nwxLv%2Ok z-LB@+RHL2;j9_Sd1?s+#`H{-O(Xkz<`^!tl6o0OI=B209=7O_KX1@B9Hd{Ngy9(^( zw&t-(GGqo7k4_^>knzMmAg$VJ(4)82diC+a=Of7IF-h#mt-+C5(T29}$mKEPWtO*2 z5-Sb!bEOsZ-Lv1HV<`^)Rw1<*_+io|NC#AiCg>scCi5QAeyJ5U*7b2mU(>5S`6q4~ zBb}{fP99IMHpVXf2hp-VfnQ7Jqp5x8)Au&6*GwC!e?uqn>7M64sWP~&ZwxS6 zg4084J3podm$=J#Ukv4UVaGo~uK8tdEINv&@ffsXLGHMKoF2D5>QC!EoN#7#9puxi zoX+z-^Fxssgy-&ac4S|6iyuQ5JzDh1y zW1oi?ed<>*k?Qt8ewtQgovER_?weYTF)O>ZQxyh=WUQYO~e#V}nZ#(};8r-M(2Ucee3F13@&sSus)AhQ?d`v>5rPcq$B- z-oM^FI)UXkrpI~*oSB?s!!Pr@iXPb^m7_-pofU7DEw?$|b%j>@Ss3nqqEEJG(V|A` zTx_~abuISlaYdnZVHC-kWvUhQ4t=IT9&z2WEaNoEX=yZb;WLO3(Gf-~NiNrY>Q_3{ z+w3y+wdxQQErABOGvjHWGo)EbtJXm@E`+?2abrHVCc@x&m>v8_7xQa@ zBFMVK>fofzwYQSvSNu3=V@e;rEDFZ^!dKDHe@z8`b^h%a|No`S1;0&mh0wao`yg}L zzf06Vt{qFnW@hpgPUH~c`W#uZ(Uu2-V|F*HKh#*Oz_?Y7yT1>8%#e)Lnk^hY*=VcI5wSm6U?vlANubASj@f&*LNg%D1=F~QwD18*yw~O4rAAN_iS#{pn>XS zejFe%ztl|b97x-n>|F0216)S!r?c0dg0eH34xxhH5WdwPDg^{Xm--5!x5-Pgyi47J zbDLiAnEA4339V`=eLiV?3{V5|j|IOB1G1E6IiE8}2sOUz?;ZS+0Z7$`d-a3>VVZJJ z;>NXwO4&!2!_X3+b?NvFk>K|g51(uuvOla@BNwA1aL@Fvy1U@QZUfrlD9^w@up!g zZ=d$-YiF@l)@QZ?OiC>rEGu|~^+%O|af;`IB_vxeo3nA$f(-flhAiSa4YoOQIb7N| z47+8uC|FX{UZ(x0GLc6(+I=|E;mc(dNCWhHpKeObovcBqrvUeMp7p8IO62MkyLO+u$sPZ|uQxy*8riq{sF^<*Mlb zjoQeq^m9-Q>9RWYu#XRlltWwro1k&NJn-Iqi2o-g!R@u^9zzNR`=Ms(<#LoLWj%9G z?MWJ19}REbq#?%WgE--tHB#H@l&fGUhR;?gvEPg`!=o8dG=T6=$~^OD$_lIa#L`k z$mriOGW6fHw`i7Ku(6`+nWuHQA|eFj${F=o% z{%1av9GBH~V<;0!?tL^LiG3Pa|K%Y~%Z>wKYAO(Ep!}9-PVlA(99j*wqfxtLW5V5? z;xJQQa~SPLfHJP!mN#ObQH}L{wG0&>nUB*9D{mrJotHjpfTg0#L34~Hq&AH49-%;V zth=>6z*6?0+D(OpkCsS>sDIS6|^_s47T9Oe$vgs3dZV4Rz z*th6B&6S+GTj0K`yf_jOjq@Xq!Nj>m&{gLx4AT}QKZTq6(!3Cov4&iGGV70`VSY;% z0bxUX@pOR>?<$(Qx=ZPf7t_MF)|2X`rTg~jOB6kFc z_`yowg#LH-O+V7YDQSGzLa=1d=Dti#+%c*TBFJKbopj`ep+&tj>u_rO$AgVea_DV~ z?v3<}C27;>vh(~TqG^2_wQh-`X)#3AzlsndBtZfF@X2b08zqf@Rg8m23U*)fz6y2u zsZ=7mBWD`z>v?#@Jo*)p$w42~Ov2IPz&n2&buh?iIzUtat}iCpMop`7GN{li|dy{ z;J3-pxKr)ryYl9>zQ|{m&;1#S^xg^ccXRUvrS?7zHO&$ZA31DNFRc$Wf%%i+ z)JazUgmK0hPhdC0=!4^&{J^uYo^j&v8t<#<$cch8ljmX{iS<_|`(W>MdTJ4dppU1_km2SrlvFnf41>F(I#Gh*kO+z16D|MV=``?u-jD=w|c(_X+oy5IQ(^% z@B_16T*iF~Mh;O+SbKTO>eH7mZ?26W_RF+q5*3dW*2*68`%;SV2gF&i}q?2;VF_^ZB^+&HZx?7CXvO7=KhZ zpb7Xp^kKbo+BrFH8 zO4bjhOBxE3XcDdRxTbhMHJ;?JQUzNQ%jy}tZt1`>5zL(l7j90KH3j#DBqbsg62_KW zXK7XHZEQcZrycoogQt2+mVXfcTQ|bt;C}V5ZWSGjXmUyQod=5H>a*Rj@5(*f^L{~j z%LAlSQ^89N_&^Pq&jH4rxLkd^l_+OQAsJqwZbI^Ei*gX#2@t z>&c|lD_;<$%|8|fg*=%D`Ec?7SJZb0Qr*4}e~!H=`$-%P36;ne2Mx+f_NF2;BYPcL zg*Z>8$d1f1vR6bhGLtQPl#!La-s_|1`+NWJhjZ?8kL$kneT^3Eng@ty^>ghGR`Af4 z8ckg5JoM$qw{JG17sd?<2h9%Ro)mI9=S-Q~XIR2-RwT>H%KC-}e6I#TwiSp5XL$y8{w_=RdnD=r`|mhrz0^;7^E7 zW24Lohf+(xjh;>t?5V4y6l!a-jv-<-@#C#O9OKFejNFR-fg6I4HaWLC%XV{6m@UFz zncOV-SU*XU@%0=Z4Z3m(s0^t*)(d=YTA7&sh$Tt<-G3eh)@OCa=MtpAuBD@Hi`?MT z4%tny*~v8;^o!``X0cEB1XMOVwJ!16Ap2)3$mthTp0LY?a@`zO7GnSF?19+od+yV| zM;d&(TLB+l2{hEH@s6cMnZ*+>hdw<-P7@nxa zUv!DLu#NTyVozb4Lg>O`Q_r_#-+w**lv<>$H-8poO)Cx9wVVYLZCB3X7zN@QE}uXjC0!`doY-Sg);|XqeJp)kmZ8;Ptd$MX^b} z+^iO923%NP{k1nYC~)|E=swH&&_96TQ4Jlved@encJZmICjsC6xM(ykc-kidC%u~! z%%U5d^qh$qJ2dsB!+EqL5ZeNQ6w;4+boycHgX_KPCKK2-dQv(KG0;owBz$_TE*{Vj zF_wo^;A* zgRwg72@kmygO7eZSRTC=TKJK#ZVo^IVP0!pG~}7!kih-6?z8pIlQ4o+Xr_G;XNe<^ z)Fm(!N>3K;^i85Hg%2_GvSx_)4Ie@|oMPx?te$6)t+>p09%|?d8#Q6h7~(j1>FHHz zQt}9mx`|fggKIMQS5!L`(xI8$;nqB3E8t1uKCbY zFO-ajA4N)EX@6(}^_hu!#HFHRn@X`8D1_Qk_MW@Hal;J;ZpCs)Xd z&#Q6$%QrbvKZXW;=i1pv-H%JGU@={pOUc?R1fbi&RwOj$rY;9d{BG7FFqyp zM7`V&Ob}LYK{urW!qAH&)px&2ZWge8iA411Ti{JiO^&yo%#>YJXJ~9udPChavii}+ z>zwqr7v{{5jW?9r%!L^}nf-cdv1_>iypYR2gO}5hC0z--Q(4KRJ#wNwaEo+W*tM0-^ESDK}{%VQ%!=@_v@bIb z#BQ9Zdv#L@^y!BF}7?Y3hSznoteG)_`AN$W;pE-({x@J?I{}da4vK`tgmI)AE{jw-C{wYk) zbgtN`rRdv2RPxV)8!P+Q?=g^%SCJvSF?yas;EFJWKplup)8tWHIX|30YN?PuqG!&fS+4k9zFjWSUMMUzR@Lo=l=>=3e55XY&_Dd4#DJ?Vp zl^OTXs2?3~zZrV%$Jwh@<;4d{Ys}Diom~XwHv%kQ!<>L!8L!}q%y+62g?#pMD~e?Y zC7QX7PP@C3VxdwJNSEw%sw!>S^tm`cuwUu?LP7C^wFdI#HUJX&&R1|_J1qX>6mSd} zjHU&6ES$lZ-Y+wbyXSppi|6G#59i01E%bw)x`XAZdi^M}Nr_viDojbfZ6+D>tf7+#*v@BRoT*i3M<);c*GA`&9tDo=sv*q@pJ4D7pVaL7 zao6*_Nd_5*R_F%KH8;OK{i54948mkl`0^%WhPm^qZUHTnUTLChEHwIz`G`p0ewX&O zjJd}v;KTLj<8>iaT>B^Xy$(9{Fi7cbRSZQWB=jg};l5dvT&Q_Gz8f+kB$KXh_7qGM zB@iV@l6cX(PZ2AIuw7+~o2hd^_J=Hpqb4MrA8S&-m^h=fygyUlcEmajz+ba5Rrn<1 zrAXf`(Ro0S=TwA;{cGe7NPdxN8?!4{MX}DgC26JMgVLN!D3(YE&u;z!V=My3!NUgK zU6{Su9qXBLb-duM=fMOf;!E`d1b@QHe+}NKzoZhKQmJP5rE_qQpughRRpiq)a_|m7 zm$e}qEUuknv%}E#F=tO28p(9ThO53%`FVJ_{pGhxfYScVf(&~txIdOkj&$Kjs(C)? zK*K;gq-E&c#>nd*9mePt7}T|6c%HA~{;)c#3#mOHzf3?vLS`u4`e&$ zGmVUJBL+FtvTvc7qu{?pWN!}cJFGu{+XqytaTdL|1c5NGpJ30cuqIrTgdjV%SUy4_ z#9*YkSYSP)fQ`wa9FS^tUIls;e6gTYl(a8AO&qN~^yIlS|5@VBM4ozNvKv5Zx=M}I zbWLd<@hfr;tRlgNw?6WcoF6BR{)8$C1XlLM9W}ByvihNzM&7A$r~juL(ym@OX8 zif0Flc*$ea=F7~!f}#2p=IDNl7Dgjd-DCaD`g17$uiTy^8m)fL$UR}tkPq<}`gK4f zSRLnfry5#1c4~0=<`Sh6<*#+eqOir?v$jItzs@-}@UJ=_M=V&fiF}(kB`X&PWYUkT zgC0+Hg;a42W%6uMJ2OO-xFl(@uWPk}p7={~AU0!{i}Lce9Uu&g57(TI;+MOz<-_wf zdOKdOZwrt>g;ED?%X^y=xD%*B+oBLCmWAVNnLo#K$O^h)@ikjGKLo^MxxcQB3v_NV z(BI4XUYA-*{B_(txxCmfQ=S?z_0F&7rS$kMas=-{F|F1z)5F1nKQ&dUzLjOO(-og$ zTRgwXn70eatf)#MKtfyN-=L`jk8oyy@u5OY)Oi4Z3Q`z^QVY- z^27{ZC~J&PzOo!M1$hbzr&CS?f3&_zCQ&hr(my(b|C~v5);QD|m#~(H`v(PgbokE9 zpJ*TTBpTrTLN zD{gVIhSIYOxjRuUt~)-BRn z%|I>o(D%8%?+({GmqL3*#3jIEMffQ~(u}5M31{I#UH%=V{+bzi5#4u7tFx+S!mjd3 zWK3P4QH{6z%)L2GLoK(Ac9S zSauZ9rmlL0HKFa#y`fTp!UsWF+HO(A<2Gq+GQ|5kp|SwMpF1OUol_C1<<2CE2`*&C z-XYcWkNeG$8B4{G@D6y< zUXGJ76r2+3DDt^qw3NTTiXa4h91%fZ^ja)jjwW6i7%^@d6%Pd$gnXGLN|yft13}S= z__5wOy+#QNXxymaxsrAsFf5hmE)f|ghUw%C1GlDs<)DOq?jVVY2TK5l%^^8xIF-8< zpWi%A#6YJ++Bh~)e9iTP(BN-t3OGM-Wr1;y$Myn%K?<38sK&2*+b2FaUf&EHm_KjU?&>T~ep#%ltw#dun_* zcS6pBEGkP03E`q{-QS7klw!-_b_b$_z18J;@GFysq$?k7c2eR~)@oQVN#YT8eG5-c&jb*pW+MKc zcbjTOac~bK+M5E05K87m=Ck7;(-77Qx&V-i+RYaixfwmz);~(!DlbSn=Wqz2j{szxRmEus@4jPF1-AFjoPXi-pO|(riLo1Y? zyNEtLF&15UOT8#I?fQdRs67^>-<$`PDjcKNuYR#ydpM(b8T2ZZ-t|R!-k;$J;(&-I zjlijy{?y3O%rGa>NwgC|p6gZ8MjG=N-?oDY43hQdh3ie>%uJR26iXE#0{+9s_hT?XfIz7^!LUl^m@v)D!K&_fGdR&1( zTFYt?mDSr_mkxehYV|wc8^&dRbDZNlTzhBocfWZK|78&IqaL+_ecq_0Jm2`& zBpbnRB;P*B7`M47fy&Nj50CWnT@b4Vl>d#9S2+inNvE0=L=kC)Qtrip{oXXIVM|X= z1?I-|_>`%e%W|`gRsDC{G=D&ko@r4s;_S^Gmut+&!+|cDr0){ftj1H~J}`3T4WC+9 znY$zHpR=GQw7)@x5Mr}c8uKZosWN8W!(SWEr6lG8W*Xiv=qRdUq(#~pT=`w>5)E&@ zC8w(E7&+G))~@GWGNDvN6iECH*u$u)eaQQ4bFGG~^{(TI%x)2@X8dRN7Eo<1^@3|8Jaz#dzePP zPkGH8gd;9?2TC@Owk=pv*P~@-)Nbl@)SQgs*OLWF!x%@sN+iSJr^mKTo$wN0A@vF( zl6`%xWy(JJtwGl%uEkx@?tWFUlN`@xbM0%4OMK1e2-q|y+7+Lb`Jsy;$=))C469-r zpmh`Z@BwFBxH_N){5L90jyn5h?6XjfuA!*w@1Fo&e7pB$uNi|qYnEr)yWT|G=bPlF z=lyC*GINh49M$EpX8!}Y9H@87P3o!t1{G7AVcuo1lGfY_{4pbI>HftSR0D7yFpUJC zozLnbE0jjX6=m5W=;>@6)-q>b%UY;tBDF7S>8A`Vy)~!t$oF%-Na_N8K@w|!qGmYq7De+yFfdJMx%YX2dkF~I_-`bOGb{G{daOK+UEG4a- zEm=H~94D)48 zxc&0KaA#9)i#~tZZ65el43$@>%Gf8XGssoyf=k1en?xhp-^lpud()pzp9FO05c9j>U;n*`VeUTTPD=Hcf& zC?xCL>0=2sEN#^MRQ06N20`dp@jCjGK z*UuU=`#w?P7~L{v*zlD<2lkEFra!JmeMs#g`@UC49LO#Li{UzR$Omzf(#rhPkq_N| z($elac<0vsz9PkhJPs=YOga(zARua-halKDNNB4FYCaY96(PKhmFvh4H4E|L%y@wW zX6mKNhCiorZ6jLpNff5V8B0IhP(5Ee_atB|!n`7r$w2jZy(_&fXrDK@+USwf|AV@g zM~C5ENZ7makm5e2_5I^SHEx0Nb}=QNnrHn*G}S*djGdxm9w9kiR;VmFAW<6(5{d9K zb}TMJw>$YO1x+B5_raz2mDKfhFeyU52jgGXz}vMbD#*-c?h_S1ifBDhwMuBXO^I6v zUngSWRwR;JXX<3i1s{g!&ruc7eWfTruDds~76@?lQ- ztq{WTxtnLQuP|Su8$<4BHnC+wiHojlmi-(c&WuMGg38ooE!>5!(c{J=_9s5&Y7FQ+ z9g{mfQS`W5cF{(b9?YH+gN5uIS{`yb@Xu>b7eSlTD>J}89>|+6zxaVSkZZUVOx!d> zn8@1=K#!I%Y0>_U&gN*1Cg-1b5Jy1Ay>;-jg)0z#XFFi}!=ilC?gbrM zC#2fk9rk(6=dwBY(~waHd-Fzkg3S|(=1}Z*ON4h9<@57Le+~>kk)?qyzhT|i>PVa~S-s%CZrYqe^K~Y(B zytnOA$W=A*gsiaF+np-&ng|iDuL}0^K&7kl{r=q=PIP<*DpRfQK-te`mh9J&FDR~M-SXunOm<*T`z{h5?^nS zHp<1%TGHZd?fw)nV*Ee`ol#iBG&Z&-=pDE4lmE1?>B6CR^9Qt1jPhh0knDs0MI}q7 zLq&U0LB_vt{ZP;x64AMBau-=~%Fq1yST1D7lh?3P_D3K`mgF@a#O!<#?PN?{CZ-hm z+z$0uc4PVU5Df=Lg$VS-pC;AwxUqxDo)Qjxx2`kv-QV!b9>FkE;r`NL%YS0#U)>(9M<%=)r!b(fETOS z;LyZDHv|52NXLj9`0pqBX?RR%^>s66@s9uwg-}PT-$A(Spz;B6Da3`xLTvZzO@{rR zm{GchsKVCo+f?|AMt1TMD#w6_s~4+FT)uDQ@-FKn`}O5L_X`*b=kg54rD>YBJ5;o| zDj8~AX~WlwYRzEK#QUC**D(IDFUlp3ujNX8P((VLDgAK`cP-Fup2kD(E@o>s{9Z5o=foiI1=M4g2*>= z7INqH$LZec;Nxsmp!f;OYS|tRmAR8mK2X!TzPZ-?_FN)DGP@*M=nHR%mN{a$B5fju z-|F)`Px`i-gOB0Me|#p~5xH-6Pf&sh?Cw`y13G0~0)tiU!bA+ylfifN6U&Qb#a_@R z>5nBJTz{2#IrLow5L(g=9WQ-d53*o+7du&7qat?ooU9a?4edf|T=er;f>qVybJ*eT zKW{LbT~1Y-Lq$~upNzQ$c=H;{fOky|`~`mhUCN+;G+k`vf$V4~af&ZvpZ}^7VK|;- z&C1DCT6fD3#|JNR$knoeK#tfNU|765z+*IBZOL8?ey{cUZMPXiwmJ= zyjO#0ZQI_8mf~2DjY}+5P@m(+OB>M)=ok%Fl1~lX?sl}b;0^)Lo4wBP5YNU9egV9- z-j&hw^(0uJqq}1$>ww$M=y-aU!HFY#*3{OqU}M-`0U(h^WyYDz-1Ez+N<4SDp7=Z8 z5QD3o-<(;%OHBYVQJtg=a#G?l{hdvG*vSN^h#~T8g>5L2-hv`kKeO;JiRJ`x(rSl6` z9Dr468I?$kw+8-U*URFyJHp|%_@ze&YA7HH3)X_!cbE-y*_G)?sfbg^xf{}=qGpJl zT=NYtsIL1Qz-tw}R#H^iDJ1*|LG%KDw+tb#fqV{)|fyr@FcosMLACMqVe zP?|xVQ8 z#o5y4s>O%gwQWsW9HHk)Fubuw3G>d+y4tS|b!K=nkB*!tJNNFqmJ2S1OzZfWfSS7U ze~K!E=fQ{lXx>wW)t2!Q$5bCN2R?*SO17f7x@?i>h>*j)C0oXK6&gwH02Xc0d^vw0 zy|fQ^gp&;C)Z8Hf=WOYBKf$wg@H9w)D=YkDJ~*80Pg&4M{(aP%(aDyGzTHYaA@7I_ zgA-cW|FKPsRCgqVu#HZiyPO+@Md~Y<@C4z4Nqp_lm-gxIw5Ny6JMx^1$T%uC8Cyt2p?b9-L!C*vtQEnboal(M||U7KEM;v7(^bj5@5-$+O}KL}H%5 zsJL2QflI$&hayQ}%%{r6E39Es6+A{Rtg*?H7k}nqFjP$0k`d%l$A7Dtg4^@iX{hCt zEqD4c0}1fd$gMEJ`&~1aYn~6$Jc{_*SKC~0o{2}>h2z1V=ai(vQRCk`JS5nb^FvIt zBXO0jrhnXA1u#tapjgD$;gI0KEq1bLhl}^kTz;`rHp3g(SGh(|5>^~47t!N}9(&@k z0!_c#a~2N3SKnqM%Z>z5P>XUIDU(IChF~_QdB~1u%Te=dIjKjhW2B%SA93^hTXNha z*wpcXkei~uPZsi2ZDfxiq5G89jz`P83%B%fb_MyYnd}pgX{E<9V+rxGFPo zL*L=gW!Q91HspirS;P!mf_mZ{5>cZ`%hqhFpOH!^V^*BKFyH9`brjViSGafgmctaXsl>4slP249vXguOFxs0&7WEqoD>K3NjeIG z8%xbvP1quQD-AEmeD^(pIGK}Q9;|(%U=j9&)uKr*|9^Pz0eD|GHVM59(ls#huWJ>G z>tCJNW!rh+E68yi%g;h!m;4|>8r|n0xRn+Z#Zmzdr0$C}01YH0?{HT)>^ z!``d=&nT|1dN;WEIY#|0m=ApI41-jg3*_xb~| zXE+}s&t`mHC&zzS{@gD?w_5QZ4b&>}Ua@tl`th-Oo0b51d1oC13=;%P=RpeoAA)64 zDcoxvHy;%*c+OoDV1=?{;8j7t27LRKB`Jz_a7hAZzQ(vkxvgwS{3-Bf7p^m62pKk*##H;G!zwY| z?fz6eZ1wd?LEUdbfq4mtl{w!>!|OLDM0}cR^+|B7C}8wwT31MdBMqhJ%s`$ovQ!S2 z3#62XZir=<=9OBpuAXjbw0=FEnCUx_@6=@}@?yqSFnvO(ZMNeY9aVmM)fr*LwEVCq852gm1=M-_~BEhzjeH~4m?);RhJS9V3}I5Ode!l`~FlPu()z; z3iC~61wC)!!_8Z#v*-kDWOX~&>0-}8!S*kZnLEsOo49Y9z;^$k&s_t|FcaK{XIElVi(XO^Y)JrV z-5d!_kZQQ)`N0_?j$$vLdj|x~{a0yH=%vQjc}nc&QsWe#QV}GfebcKB&#O?FKHE_A zgl!1NtBaG3c5a0`3Cn>t2l+2p6*|w8EgHNcdyX3IT)`Z%+Q4g(G}yP*0Jd8NewaJy z#&H20Y_4?E{8LxGDsGQ?*poX;o}YL}*Dk4!hhQfAq8!PUGD^aW>W3l>u5ZWzF=fUrOsM-C-0yV8x`bzfdeU*<=MGXL-UyCW~u zyv&%fnIjv!I;v7VKNN)g2QL>$!T~XVrP|4jvipe0&bk1+bTj?<62tI)!N)e_GzlhJ zu`i!v*y}bt_1`k9^S}LZ5nNQK?0$2zcXgX;H}DnbX;_hv0+3^yBU1Fye9FM|5s-wD`o% zCiUd;i=}XP{-#{H#G(8#^xV5ZJwjQ|LI`(*1+FZM4oO>C5WWswn{U7t5z!MZC#J@J zTrbnq-t2F!1%{%PG0U6wn%cTZ3xw5WV9x|_1ZS2zbbTg{#vy$RyV|-6xWS8-HIMAn6Ws9i9J?y8_xSG-v}kWa)vQW&sen#<&!>QX&Hhe#kIY--R)F%;JxSHBWuw z|AgXy#+1Ta9z+@sfw56AG%i(!{4v5@ zdomE4IFSTV4Q=PQe+4=37Z&Y3bzd>}3fFPc??I*WfY+>rlL41$KZ8CY|Te-JG> zTto2(;^2QP>BG3?8IYrCcAf6_Li)Ou|FQB)+W+JdB3>D`DP}8bXY@tI$8X4h8i&`1 zyHnI_mfCgBE-zCRM9PjA=TMELe3~Sb{C~0Zfv6_KKE(ga=*D#NMi(r{;`>;(Tt1vP z5StD0s=rf-2+!p8#g^0m^KDUaHGWUXikJ|$VL;qJ#+Le9?exCNAE=?i;Rkk)^2-Hc z5f46(-rcKj-fKA7j0oL3)_q92;7chv#Pxi@boXKvudH~!h)n%zDx9LWJHC+d88Icd zqT(}IsZWSkjGQ3-%;iG|`m(=@7WrMUMN{7QXrY~4MmviKZ;Qmz+MKncfr2kZlJruQ zU-;6Ad6nEB6jGY8j0yj;3mwt@>5|xKIqh8C{ujF$ROQl8NuYfXL^!hfabaC^giqW_ zUk$iIIlq*nIAN)y;OHZSKzPAVW&E2%saK&cbP#-MY!6G%;Fas)!0%0R4b_m+uI_}f zag!UdW*`b&Tn8N$FOWeG=pH26pqZY%fxXqF-;Fc(uh$X#zzaHI#%hruxBFT~bZPx^ z?d;=`!0$%oF;g|h^n7vxfrw!Gi){K2nFwV?H#mo_Zf89Zl$hi%961I?E@lcn@5n-? zE1$Tg$N{K)-}MLrBz&sXEB=!^ACA!Bo9#-{ z%Q*g<}ifmhEjpyqfghP3sYG;+K1 znC{tuVe<`d?I+s!zIfW9v)V4Ud{ThSCPQm87_76-pj~ER`i)meVCv~%>R6|sP zh4@fP-1KwXH5-aA-lFn9%yBX_5)r`N)RPWzgl-`ds;qL8>)2<-==Qx|2V;_v%NA)m zyXPY@MfEwQw174PSIWv+m?NnToPzrhJGPDu+>TO0qr!=3)0xbPd>CKe2cT`1NZxP1$pa%GAxY`kj{VG5l-o5ZK3oLnrUY`yS(bl;F0 z?y3Lz=Vp!}X%CBjyu9JXXN^U;S(|?<)`y8R{g7rzg7RGKLFDS)xrAJYM7ELZz}N)e zqU4t){?0@lQj^O{dp2GMMw1f>M#hG=d1ZCyo(TxC&d~2&AN&gyx=GiHbKPlnS+ji;vA1pUu=a_>Nu>bHW3lkf@Rk6`6fQURIAKGS4F+Rh{ z+sd!=&^7x?wuzc+1Qe_QPSA5<5uP)8(=K;Q5WIV|j zKaLW<+`W*O6^L}bt5=pqmyo6xUo^T4Fj2Z+L1Gg6ESbZg{`iH$kJrryb#*HZ@hPi} z+t1^379uwabHP@tQ2;vJ*8Y@ynK>26i$y*xIcLF0VA|8JjoCEnYl(Z(u^6`3Ek zh3OTw-Qpa z;}Oo7?L+;r2wQo-{mr+RnFUWF+-G_@UEP7&YF1OFCz6Y^DmBIYIOtu~YwrWh{(3+L zMeyb5fkeaVoMo0EFxP23;OWy=y2!6`ePh$)rW~#tV61eua`|3!e+fV!1GmuAZW~MH zq#Is?x2=?D!>=Opssi?q1K*e&$UM6A%qZ|(o|i>``Ee&R*zFt}M0eQuJ7W_U#)oC3ww zN_y|#|D*Ba6FbXyS%~Ro$dB82+MTtYF585Vg>69$KF zcm-Wj2XPe8q6P9kJea&lVAv|mLWZ<6j<5i4H0GyO_TJhV?nD3CjWQPwTm*XmLVm>f z^rLt}ibL0`YwDs`*N(HuyPq8!jQHl%k9VrpNh38)4w{mx6fce|$C-7YIGY>B_5?RMGL&qyGmea&WojxpW^|68Q9fd$n%cM@|cw zNOTx%Y+;bpL-@YV+PQi46V%8^)b?)VEUQZG+~R=mj62b@gZ_T7UIat`YDLms!~{N& zR#am8vXl~tDO2VJbD*5e+v4;WtYsykLr5gk% zUKW*vqG51(NNFrO*jPdnfB)-px~ALW$03Oo9I&~4b5O^Y_Nxsq*peamGoU*nni&AX z7y;42?(K9<*6N6AR*nBOJ=c9KuFQUehUMU7pQs-(LI?H@qMpt%U?MW$>HQqKxBWFP zQ$mpna_noR6xoNBuzX zZj{j%B+{)QS47KQ4c@dKxgxxA=z(Pxg*@t6()Rh{B1@#MV`g28EK5t_*EL*FodscT z%GitQIa#6k87V6JamekFB{nEQh%fhUoa}~3Ejh5?EGjN{mr#Mih2Sqjq%1P~W>4#5 z93xijFP(o~lh2?=I1ZOP3f|PEiK{%hJ>~~5JHA2yS^NZOl#l(^tmoWT#Sr|d!wDQ; zck*`+`c&ujZCWhqAYWVx4s`?sD~7I31vb(5ORa<9#+mg+d-EA&U!4Bx5J=J`^n1xk zp`DYZosv_kuVP5`YP>ZWc*0Oce6I$AYa^Bc&Kxu&6i}1viVVp(xA*C=9u^ zS{AwU)@8=JLkBWprQdDQi`3%)c8=s75?I<$aH3e2EN9D!3#SJM6Zl9ti8K&|^AM?{ zAsp*Y^Ts=D+iqaR)j)ux8gfM z5O0WnMfI=a+Vzu&$EAt|k9V;??=x%Lzd=atLs4k$aCnUzW!ip$$EOqB=$yEydu%HP zgbfXW&XFu0pdDV^bT=2P)b&kH;_F|86f4;jZmK>7iClj35@LU?Yu#AuX(*imE-!zlP6zoSgjMB@rNY7wX)aL+gl^ z+{ASqwe%0B9DfZVA_OmlBEX6ZJkW)OS04IXLiK(o5$@Ts`$U@lFXc|7Y9uhJ# zs)o+-*~PB`U2 zoAVW7gTb%^6hp}05COosK{XS2sJ_|X1_k{QaV!dCeR=hztUMbhgZmkPLAY8Ju1_F} zsnF{62B~pmJJ@Dl+aMtIzu`pVLy;PTSFHSCM>Uh^VBs)l**3u3Tcbs#@RkqZJ^am77`P{m#!}X$T4n4{V5C#1W0-WjB?j+9~Kn4lN!r}2K(IyAcN*tcX)|;If z`>>*^DhfIFzcKVCR5BYSko1Bef)HGZ)O?2b|C}Vr@l{}pADo$BI1k$UBwC$DRvV&F zcy}xP1|*2!W2p3rR@;BGG=XM4SN$D|5=u1g>e%%=>p)t_Sq2!xp?hzv0mNkK&>_ee zQB3DhzxTf}nTKN(d)L!dx^|6kZ63*z)jm9{DTKel?K~c9xDXX@&<)KHpf;PVA+Qxk z2;msM)VkBGI`;scsiErP6NChB39-}}ReWUH{@i*9tV1gHJ1?CSeH2$NzxP%(gw#Sd0*n?sDGUWY>(bfqhOTxG zSjD@atjcId1#^{H_`$b?6Uc>C|7rHNR2sq5%u+~{ORL#O?Y51KCAQIzag zU(4?uc{LYwi1DeQxR^f7Z|(kd`QV2boDs;WptO`mX?9>gAS?1XeB?cFc%e_wVt}6j zo3=324JD4Ek4d$j9UX{STffVxM8Nl=>l*2+a`MS}tX$1KIIBbflG}^kk ziA!#j^5Tzm;~%bnPW(Es3sF<>>V2_-qQVk0QIlR)ow6?4~}fA0l$B# zARDpdHvDD%s%5Z{GncST!jvE6MCg4PK~a|($U(5ovW2+pYwksg{G0Kz07;=@J4t4k z?g8MkQQC+Uj046SZ44%pS{(VxWu1!@ot)Vk%a(Ju<0ORF+jUgrv&-&uYr(ilXuwh< zFfJYJ$N6)SZXsVLn=13Vt+R{u#|GZo>O{r^R~Xb7kC5Q|QTEHU=RI02s~Hp+N^q{| z|N5uk;uG=AG4 zeZ8H|!>qjiFsoj@S$8%&OFEU8>hMc8g3KSb@8V@d(dT*SV$Ps@+r{xC#Z9TbIC_CCO4$!jCVLksl!rC zAhdBp5QtN;=cn}3p!{ia_$+~#P17Upvk6&@n%X9c82PaGQ>Q;M-2KTzcH-4VhFjb# z6#30(NRG#jnA}@!eFa5jVN@qND&1yh6&1V=_w2>Y8nI0I(YuRf=j-w&bc3#IK&~jP zs0J%O6QYtUwhKAY`&K9Pb8|$BT%TiV`AI9NR|wh)6obX;84a4ST%wUGY%h=a)cA@m z!n^4-$CFjmoJuR7cneVlP@fh-)S5VRzR)G$&G;<1e?|SP+>N(wvu<$88)TIm0dc4vo$ zCKoC=RYvQ9V?9REXsF2dsKF*ezu^W=I1vQidx&tNnvZHycI^P5P9vf)J1;vF+qjm00>1~abew~ z2Zz-g;!r~0gjN}dUKqC`+n?Q@s8soBXikLG94EO!&Siig#Ij0Pr%tveYmp$gJwEQcbz^U*`%WO?s-k0xPKm^ zdyE9_B1i;=SQBaSj;WeVexS3JHpP zg52=$72t=Tv6E5GwU7UPNDLp^g3P-e-I{ccrTx??{EK6zEpWTp&RW=g~d6~a)C+!&6KAlHE3RIml!kBrLg7`8tB2R_H|q9?eU z&v%N1`=Gi?s@RT=>XI8Qr%?)-8<d%$eTX;f9ky8TL1t6 literal 0 HcmV?d00001 diff --git a/src/test/groovy/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapperSpec.groovy b/src/test/groovy/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapperSpec.groovy new file mode 100644 index 0000000..8f258dd --- /dev/null +++ b/src/test/groovy/com/wayfair/rundeck/plugin/resources/datadog/HostToNodeMapperSpec.groovy @@ -0,0 +1,121 @@ +package com.wayfair.rundeck.plugin.resources.datadog + +import com.dtolabs.rundeck.core.common.NodeSetImpl +import com.wayfair.rundeck.plugin.resources.datadog.datadog.DatadogHost +import com.wayfair.rundeck.plugin.resources.datadog.datadog.DatadogMetaData +import spock.lang.Specification + +class HostToNodeMapperSpec extends Specification { + def "datadog windows hosts returned"() { + given: + + Set hostList = [mkDatadogHost(1), mkDatadogHost(3), mkDatadogHost(5)] + + NodeSetImpl nodeSet = HostToNodeMapper.mapHosts(hostList, new HashSet()) + + expect: + nodeSet.every { node -> + node.getNodename().contains('example.com') + node.getOsFamily() == 'windows' + node.getOsName() == 'Windows Server 2222 Datacenter' + node.getOsVersion() == '22.2 Build 99999' + } + } + + def "datadog linux hosts returned"() { + given: + Set hostList = [mkDatadogHost(0), mkDatadogHost(2), mkDatadogHost(4)] + + NodeSetImpl nodeSet = HostToNodeMapper.mapHosts(hostList, new HashSet()) + + expect: + nodeSet.every { node -> + node.getNodename().contains('example.com') && + node.getOsFamily() == 'unix' && + node.getOsName() == 'Centos' && + node.getOsVersion() == '22.22.2222' + } + } + + def "empty datadog host list returned"() { + given: + + Set hostList = [] + + NodeSetImpl nodeSet = HostToNodeMapper.mapHosts(hostList, new HashSet()) + + expect: + nodeSet.getNodes().size() == 0 + } + + def "user configured tag added to configuration"() { + given: + Set hostList = [mkDatadogHost(0)] + Set tags = new HashSet<>() + tags.add('operatingsystem') + + NodeSetImpl nodeSet = HostToNodeMapper.mapHosts(hostList, tags) + + expect: + nodeSet.getNode("host0.example.com").getTags().contains("operatingsystem:centos") + } + + def "datadog host returned without metadata"() { + given: + Set hostList = [mkDatadogHost(0, false), mkDatadogHost(1, false)] + + NodeSetImpl nodeSet = HostToNodeMapper.mapHosts(hostList, new HashSet()) + + expect: + nodeSet.every { node -> + node.getOsFamily() == 'unix' || node.getOsFamily() == 'windows' + } + } + + def "datadog node returned without OS infomation discarded"() { + given: + Set hostList = [mkDatadogHost(0, false)] + hostList[0].setTags(new HashMap>()) + + NodeSetImpl nodeSet = HostToNodeMapper.mapHosts(hostList, new HashSet()) + + expect: + nodeSet.getNodes().size() == 0 + } + + private static DatadogHost mkDatadogHost(id, withMetaData = true) { + DatadogHost datadogHost = new DatadogHost() + datadogHost.setHostName("host${id}.example.com") + datadogHost.setId(id) + datadogHost.setMuted(true) + datadogHost.setSources(new ArrayList()) + datadogHost.setTags(Collections.singletonMap( + 'Datadog Agent', + Collections.singletonList(id % 2 == 0 ? 'operatingsystem:centos' : 'operatingsystem:windows') + )) + + if (withMetaData) { + datadogHost.setMetaData(mkDataDogMetaData(id)) + } + + return datadogHost + } + + private static DatadogMetaData mkDataDogMetaData(id) { + DatadogMetaData datadogMetaData = new DatadogMetaData() + datadogMetaData.setOperatingSystemPlatform(id % 2 == 0 ? "linux" : "windows") + if (datadogMetaData.getOperatingSystemPlatform() == "windows") { + datadogMetaData.setWindowsVersionList( + new ArrayList<>( + Arrays.asList("Windows Server 2222 Datacenter", "22.2 Build 99999", "") + ) + ) + datadogMetaData.setUnixVersionList(new ArrayList<>(Arrays.asList("", "", ""))) + } else { + datadogMetaData.setUnixVersionList(new ArrayList<>(Arrays.asList("Centos", "22.22.2222", ""))) + datadogMetaData.setWindowsVersionList(new ArrayList<>(Arrays.asList("", "", ""))) + } + + return datadogMetaData + } +} \ No newline at end of file