From e380d6fd3dee24c73a9b5d3405deae3a4b5f7b15 Mon Sep 17 00:00:00 2001 From: Slavek Licehammer Date: Fri, 24 May 2024 14:53:05 +0200 Subject: [PATCH] Rework of the containers Aligned with vanilla midPoint container. Upgrade to midPoint version 4.8.3. Most of the configuration is dynamic, limiting the need of building custom containers. --- .dockerignore | 3 - Dockerfile | 91 - Jenkinsfile | 122 -- README.md | 24 +- build.sh | 48 - common.bash | 3 - container_files/httpd/conf/midpoint.conf | 6 - .../httpd/conf/midpoint.conf.auth.internal | 6 - container_files/httpd/conf/ssl-enable.conf | 30 - container_files/mp-dir/active-spring-profiles | 13 - container_files/mp-dir/repository-url | 52 - container_files/opt-tier/setenv.sh | 7 - container_files/supervisor/supervisord.conf | 32 - container_files/usr-local-bin/healthcheck.sh | 3 - container_files/usr-local-bin/setup-cron.sh | 10 - .../usr-local-bin/setup-timezone.sh | 13 - container_files/usr-local-bin/start-httpd.sh | 12 - .../usr-local-bin/start-midpoint.sh | 35 - container_files/usr-local-bin/startup.sh | 37 - demo/grouper/.env | 4 - demo/grouper/README.md | 9 - demo/grouper/add-ref-groups.gsh | 21 - demo/grouper/add-ref-groups.sh | 4 - demo/grouper/after-installation.sh | 15 - demo/grouper/beacon/Dockerfile | 15 + .../beacon/container_files}/sendtierbeacon.sh | 6 +- .../beacon/container_files/setup-cron.sh | 24 + .../application/grouper-loader.properties | 51 + .../application/grouper.hibernate.properties | 9 +- .../grouper/application/grouper.properties | 6 + .../application/grouper.text.en.us.properties | 3 + .../grouper/application/rabbitmq_password.txt | 2 +- .../grouper/application/subject.properties | 4 +- .../classes/grouper-loader.properties} | 0 .../WEB-INF/classes/grouper.client.properties | 0 .../classes/grouper.hibernate.properties | 0 .../WEB-INF/classes/grouper.properties | 0 .../grouperText/grouper.text.en.us.properties | 0 .../WEB-INF/classes/subject.properties | 0 .../grouper/httpd/host-cert.pem | 20 - .../grouper/httpd/host-key.pem | 28 - .../grouper/httpd/shib.conf | 54 + .../grouper/shibboleth/idp-metadata.xml | 207 -- .../grouper/shibboleth/shibboleth2.xml | 110 +- .../grouper/shibboleth/sp-cert.pem | 20 - .../grouper/shibboleth/sp-key.pem | 28 - .../midpoint/httpd/host-cert.pem | 22 - .../midpoint/httpd/host-key.pem | 28 - .../shibboleth/shibboleth_sp_keys.jks | Bin 5886 -> 0 bytes demo/grouper/create-ref-loaders.gsh | 31 - demo/grouper/create-ref-loaders.sh | 5 - demo/grouper/directory/Dockerfile | 67 +- .../container_files/gen_config_update | 241 +++ .../container_files/seed-data/data.ldif | 51 - .../container_files/seed-data/ds-setup.inf | 28 - .../directory/container_files/slapd.sh | 56 + .../directory/container_files/update_schema | 103 + demo/grouper/docker-compose.yml | 702 +++++-- demo/grouper/get-import-sis-persons-status.sh | 5 - demo/grouper/grouper_daemon/Dockerfile | 9 - .../shibboleth/shibboleth.repo | 9 - .../container_files/tmp/initialize.gsh | 33 - .../container_files/usr-local-bin/startup.sh | 12 - demo/grouper/grouper_data/Dockerfile | 41 - .../container_files/mysql/max_connections.cnf | 2 - .../shibboleth/shibboleth.repo | 9 - .../bootstrap/initialize.gsh | 98 + .../grouper_data_init/bootstrap/set-prov.gsh | 52 + .../conf/grouper.hibernate.properties | 9 +- .../conf/grouper.properties | 0 .../sql/010_createSQLuser.sql | 6 + .../sql/015_createDBforMP.sql | 3 + .../sql/020_createDBforMP.sh | 97 + demo/grouper/grouper_ui/Dockerfile | 10 - .../shibboleth/shibboleth.repo | 9 - .../container_files/shibboleth/shibd.logger | 69 - demo/grouper/grouper_ws/Dockerfile | 12 - .../shibboleth/shibboleth.repo | 9 - .../grouper_ws/container_files/web.xml | 128 -- .../{container_files => }/server.xml | 2 +- .../{container_files => }/tomcat-users.xml | 0 demo/grouper/grouper_ws/web.xml | 42 + demo/grouper/idp/Dockerfile | 5 - .../credentials/idp-backchannel.crt | 19 - .../credentials/idp-backchannel.p12 | Bin 2500 -> 0 bytes .../credentials/idp-browser.p12 | Bin 2470 -> 0 bytes .../credentials/idp-encryption.crt | 19 - .../credentials/idp-encryption.key | 27 - .../credentials/idp-signing.crt | 19 - .../credentials/idp-signing.key | 27 - .../idp/shibboleth-idp/credentials/sealer.jks | Bin 500 -> 0 bytes .../shibboleth-idp/credentials/sealer.kver | 2 - .../shibboleth-idp/metadata/idp-metadata.xml | 207 -- .../metadata/midpoint-sp-new.xml | 37 - .../tasks/task-recomputation-users.xml | 32 - demo/grouper/midpoint_server/Dockerfile | 11 - .../container_files/httpd/host-cert.pem | 22 - .../container_files/httpd/host-key.pem | 28 - .../container_files/mp-home/config.xml | 60 - .../100-function-library-grouper.xml | 197 -- .../objectTemplates/100-template-user.xml | 92 - .../resources/100-grouper.xml | 201 -- .../010-system-configuration.xml | 1839 ----------------- .../tasks/995-task-group-scavenger.xml | 92 - .../mp-home => }/cs-portal.csv | 0 .../mp-home => }/faculty-portal.csv | 0 .../connector-grouper-1.1.1.0.jar | Bin 0 -> 1379347 bytes .../connector-grouper-rest-0.7.jar | Bin ....bundles.db.scriptedsql-2.2.6-SNAPSHOT.jar | Bin .../lib/mariadb-java-client-3.0.6.jar | Bin .../lib/mysql-connector-java-8.0.30.jar | Bin .../mp-home => }/mailing-lists.csv | 0 .../archetypes/300-archetype-affiliation.xml | 0 .../archetypes/300-archetype-course.xml | 0 .../archetypes/300-archetype-department.xml | 0 .../300-archetype-external-person.xml | 0 .../300-archetype-generic-grouper-group.xml | 0 .../archetypes/300-archetype-mailing-list.xml | 0 .../300-archetype-midpoint-group.xml | 0 .../archetypes/300-archetype-sis-person.xml | 0 .../bulkActions/900-test-all-resources.xml | 1 + .../910-recompute-grouper-objects.xml | 0 .../post-initial-objects/ordering.txt | 0 .../orgs/100-org-affiliations.xml | 0 .../orgs/100-org-courses.xml | 0 .../orgs/100-org-departments.xml | 0 .../orgs/100-org-generic-groups.xml | 0 .../orgs/100-org-mailing-lists.xml | 0 .../orgs/100-org-midpoint-groups.xml | 0 .../orgs/400-org-grouper-sysadmin.xml | 0 .../resources/100-grouper-new.xml | 379 ++++ .../resources/100-ldap-main.xml | 4 +- .../resources/100-source-sis-persons.xml | 0 .../resources/100-target-cs-portal.xml | 0 .../resources/100-target-faculty-portal.xml | 0 .../resources/100-target-mailing-lists.xml | 0 .../200-metarole-grouper-provided-group.xml | 40 +- .../roles/200-metarole-ldap-group.xml | 0 .../roles/200-role-ldap-basic.xml | 0 .../securityPolicy/000-security-policy.xml | 45 +- .../systemConfigurations/000-public-url.xml | 44 + .../tasks/980_import-sis-persons.xml} | 0 .../tasks/990_task-liveSync-grouper.xml} | 29 +- .../990_task-reconciliation-grouper.xml} | 48 +- .../users/600-user-banderson.xml | 2 + .../res/sis-persons/SchemaScript.groovy | 0 .../res/sis-persons/SearchScript.groovy | 0 .../res/sis-persons/TestScript.groovy | 0 .../mp-home => }/schema/internet2.xsd | 1 + .../mp-home => }/source-external.csv | 0 .../mp-home => }/staff-portal.csv | 0 demo/grouper/purge-queue.sh | 1 - demo/grouper/recompute.sh | 6 - .../shibboleth-idp/conf/attribute-filter.xml | 0 .../conf/attribute-resolver.xml | 0 .../shibboleth-idp/conf/idp.properties | 0 .../shibboleth-idp/conf/ldap.properties | 0 .../conf/metadata-providers.xml | 0 .../shibboleth-idp/metadata/grouper-sp.xml | 108 + .../metadata}/idp-metadata.xml | 4 +- .../shibboleth-idp/metadata/midpoint-sp.xml | 8 +- demo/grouper/show-queue-size.sh | 1 - demo/grouper/ssh-tunnel-redir-fix.sh | 29 - demo/grouper/test-resources.sh | 11 - demo/grouper/tests/main.bats | 304 --- ...ign-role-grouper-sysadmin-to-banderson.xml | 22 - ...ign-role-grouper-sysadmin-to-test-user.xml | 22 - .../recompute-role-grouper-sysadmin.xml | 16 - .../tests/resources/grouper/old-t410.gsh | 11 - demo/grouper/tests/resources/grouper/t300.gsh | 15 - demo/grouper/tests/resources/grouper/t350.gsh | 12 - demo/grouper/tests/resources/grouper/t410.gsh | 9 - .../resources/rabbitmq/check-samplequeue.sh | 8 - .../tasks/task-livesync-grouper-single.xml | 29 - .../resources/users/user-grouper-admin.xml | 20 - demo/grouper/update-bgasper-in-grouper.gsh | 13 - demo/grouper/update-bgasper-in-grouper.sh | 5 - demo/grouper/upload-async-update-task.sh | 5 - demo/grouper/upload-import-sis-persons.sh | 5 - demo/grouper/upload-objects.sh | 17 - demo/grouper/upload-recompute-users.sh | 5 - .../upload-reconcile-grouper-groups.sh | 5 - .../apache/httpd/conf.d/midpoint.conf | 18 +- .../apache/httpd/conf.d/ssl-enable.conf | 18 + .../apache}/shibboleth/attribute-map.xml | 0 .../apache}/shibboleth/shibboleth2.xml | 0 demo/shibboleth-apache-sp/beacon/Dockerfile | 14 + .../beacon/container_files/sendtierbeacon.sh | 39 + .../beacon/container_files/setup-cron.sh | 24 + .../shibboleth-apache-sp/directory/Dockerfile | 35 + .../container_files/gen_config_update | 203 ++ .../directory/container_files/slapd.sh | 56 + demo/shibboleth-apache-sp/docker-compose.yml | 328 +++ .../post-initial-objects/SecurityPolicy.xml | 88 + .../shibboleth-idp/conf/attribute-filter.xml | 0 .../conf/attribute-resolver.xml | 0 .../shibboleth-idp/conf/idp.properties | 4 +- .../shibboleth-idp/conf/ldap.properties | 0 .../conf/metadata-providers.xml | 81 + .../shibboleth-idp/metadata}/idp-metadata.xml | 6 +- .../metadata/midpoint-shib-sp.xml | 94 +- demo/shibboleth-midpoint-sp/beacon/Dockerfile | 15 + .../beacon/container_files/sendtierbeacon.sh | 39 + .../beacon/container_files/setup-cron.sh | 24 + .../directory/Dockerfile | 35 + .../container_files/gen_config_update | 203 ++ .../directory/container_files/slapd.sh | 56 + .../shibboleth-midpoint-sp/docker-compose.yml | 356 ++++ .../post-initial-objects}/SecurityPolicy.xml | 28 +- .../post-initial-objects/public-url.xml | 44 + .../shibboleth/attribute-map.xml | 168 ++ .../shibboleth/shibboleth2.xml | 112 + .../shibboleth-idp/conf/attribute-filter.xml | 38 + .../conf/attribute-resolver.xml | 293 +++ .../shibboleth-idp/conf/idp.properties | 195 ++ .../shibboleth-idp/conf/ldap.properties | 58 + .../conf/metadata-providers.xml | 2 - .../shibboleth-idp/metadata}/idp-metadata.xml | 4 + .../shibboleth-idp/metadata/midpoint-sp.xml} | 59 +- .../metadata/midpoint-sp.xml.bck} | 0 demo/shibboleth/.env | 6 - .../midpoint/httpd/00-shib.conf | 1 - .../midpoint/httpd/host-cert.pem | 22 - .../midpoint/httpd/host-key.pem | 28 - .../midpoint/httpd/midpoint-shib.conf | 14 - .../midpoint/httpd/vhosts.conf | 1 - .../shibboleth/shibboleth_sp_keys.jks | Bin 5886 -> 0 bytes .../shibboleth/shibboleth2.xml | 139 -- .../shibboleth/sp-encrypt-cert.pem | 24 - .../shibboleth/sp-encrypt-key.pem | 40 - .../shibboleth/sp-signing-cert.pem | 24 - .../shibboleth/sp-signing-key.pem | 40 - demo/shibboleth/directory/Dockerfile | 30 - .../container_files/seed-data/ds-setup.inf | 28 - .../container_files/seed-data/users.ldif | 24 - demo/shibboleth/docker-compose-tests.yml | 162 -- demo/shibboleth/docker-compose.yml | 159 -- demo/shibboleth/idp/Dockerfile | 5 - .../credentials/idp-backchannel.crt | 19 - .../credentials/idp-backchannel.p12 | Bin 2500 -> 0 bytes .../credentials/idp-browser.p12 | Bin 2470 -> 0 bytes .../credentials/idp-encryption.crt | 19 - .../credentials/idp-encryption.key | 27 - .../credentials/idp-signing.crt | 19 - .../credentials/idp-signing.key | 27 - .../idp/shibboleth-idp/credentials/sealer.jks | Bin 500 -> 0 bytes .../shibboleth-idp/credentials/sealer.kver | 2 - .../shibboleth-idp/metadata/idp-metadata.xml | 207 -- demo/shibboleth/midpoint_server/Dockerfile | 11 - .../container_files/httpd/host-cert.pem | 22 - .../container_files/httpd/host-key.pem | 28 - .../container_files/mp-home/config.xml | 60 - demo/shibboleth/tests/main.bats | 70 - demo/simple/.env | 6 - .../midpoint/httpd/host-cert.pem | 22 - .../midpoint/httpd/host-key.pem | 28 - demo/simple/docker-compose.yml | 123 +- demo/simple/tests/main.bats | 57 - download-midpoint.sh | 36 - library.bash | 596 ------ tests/main.bats | 34 - 261 files changed, 4736 insertions(+), 7568 deletions(-) delete mode 100644 .dockerignore delete mode 100644 Dockerfile delete mode 100644 Jenkinsfile delete mode 100755 build.sh delete mode 100644 common.bash delete mode 100644 container_files/httpd/conf/midpoint.conf delete mode 100644 container_files/httpd/conf/midpoint.conf.auth.internal delete mode 100644 container_files/httpd/conf/ssl-enable.conf delete mode 100755 container_files/mp-dir/active-spring-profiles delete mode 100755 container_files/mp-dir/repository-url delete mode 100755 container_files/opt-tier/setenv.sh delete mode 100644 container_files/supervisor/supervisord.conf delete mode 100755 container_files/usr-local-bin/healthcheck.sh delete mode 100755 container_files/usr-local-bin/setup-cron.sh delete mode 100755 container_files/usr-local-bin/setup-timezone.sh delete mode 100755 container_files/usr-local-bin/start-httpd.sh delete mode 100755 container_files/usr-local-bin/start-midpoint.sh delete mode 100755 container_files/usr-local-bin/startup.sh delete mode 100644 demo/grouper/.env delete mode 100644 demo/grouper/README.md delete mode 100644 demo/grouper/add-ref-groups.gsh delete mode 100755 demo/grouper/add-ref-groups.sh delete mode 100755 demo/grouper/after-installation.sh create mode 100644 demo/grouper/beacon/Dockerfile rename {container_files/usr-local-bin => demo/grouper/beacon/container_files}/sendtierbeacon.sh (85%) create mode 100755 demo/grouper/beacon/container_files/setup-cron.sh mode change 100644 => 100755 demo/grouper/configs-and-secrets/grouper/application/grouper-loader.properties mode change 100644 => 100755 demo/grouper/configs-and-secrets/grouper/application/grouper.hibernate.properties mode change 100644 => 100755 demo/grouper/configs-and-secrets/grouper/application/grouper.properties create mode 100644 demo/grouper/configs-and-secrets/grouper/application/grouper.text.en.us.properties mode change 100644 => 100755 demo/grouper/configs-and-secrets/grouper/application/subject.properties rename demo/grouper/configs-and-secrets/grouper/{httpd/cachain-cer.pem => grouperWebapp/WEB-INF/classes/grouper-loader.properties} (100%) mode change 100644 => 100755 create mode 100755 demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.client.properties create mode 100755 demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties create mode 100755 demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.properties create mode 100755 demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties create mode 100755 demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/subject.properties delete mode 100644 demo/grouper/configs-and-secrets/grouper/httpd/host-cert.pem delete mode 100644 demo/grouper/configs-and-secrets/grouper/httpd/host-key.pem create mode 100755 demo/grouper/configs-and-secrets/grouper/httpd/shib.conf delete mode 100644 demo/grouper/configs-and-secrets/grouper/shibboleth/idp-metadata.xml mode change 100644 => 100755 demo/grouper/configs-and-secrets/grouper/shibboleth/shibboleth2.xml delete mode 100644 demo/grouper/configs-and-secrets/grouper/shibboleth/sp-cert.pem delete mode 100644 demo/grouper/configs-and-secrets/grouper/shibboleth/sp-key.pem delete mode 100644 demo/grouper/configs-and-secrets/midpoint/httpd/host-cert.pem delete mode 100644 demo/grouper/configs-and-secrets/midpoint/httpd/host-key.pem delete mode 100644 demo/grouper/configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks delete mode 100644 demo/grouper/create-ref-loaders.gsh delete mode 100755 demo/grouper/create-ref-loaders.sh create mode 100755 demo/grouper/directory/container_files/gen_config_update delete mode 100644 demo/grouper/directory/container_files/seed-data/data.ldif delete mode 100644 demo/grouper/directory/container_files/seed-data/ds-setup.inf create mode 100755 demo/grouper/directory/container_files/slapd.sh create mode 100755 demo/grouper/directory/container_files/update_schema delete mode 100755 demo/grouper/get-import-sis-persons-status.sh delete mode 100644 demo/grouper/grouper_daemon/Dockerfile delete mode 100644 demo/grouper/grouper_daemon/container_files/shibboleth/shibboleth.repo delete mode 100644 demo/grouper/grouper_daemon/container_files/tmp/initialize.gsh delete mode 100755 demo/grouper/grouper_daemon/container_files/usr-local-bin/startup.sh delete mode 100644 demo/grouper/grouper_data/Dockerfile delete mode 100644 demo/grouper/grouper_data/container_files/mysql/max_connections.cnf delete mode 100644 demo/grouper/grouper_data/container_files/shibboleth/shibboleth.repo create mode 100644 demo/grouper/grouper_data_init/bootstrap/initialize.gsh create mode 100644 demo/grouper/grouper_data_init/bootstrap/set-prov.gsh rename demo/grouper/{grouper_data/container_files => grouper_data_init}/conf/grouper.hibernate.properties (85%) rename demo/grouper/{grouper_data/container_files => grouper_data_init}/conf/grouper.properties (100%) create mode 100644 demo/grouper/grouper_data_init/sql/010_createSQLuser.sql create mode 100644 demo/grouper/grouper_data_init/sql/015_createDBforMP.sql create mode 100644 demo/grouper/grouper_data_init/sql/020_createDBforMP.sh delete mode 100644 demo/grouper/grouper_ui/Dockerfile delete mode 100644 demo/grouper/grouper_ui/container_files/shibboleth/shibboleth.repo delete mode 100644 demo/grouper/grouper_ui/container_files/shibboleth/shibd.logger delete mode 100644 demo/grouper/grouper_ws/Dockerfile delete mode 100644 demo/grouper/grouper_ws/container_files/shibboleth/shibboleth.repo delete mode 100644 demo/grouper/grouper_ws/container_files/web.xml rename demo/grouper/grouper_ws/{container_files => }/server.xml (97%) rename demo/grouper/grouper_ws/{container_files => }/tomcat-users.xml (100%) create mode 100644 demo/grouper/grouper_ws/web.xml delete mode 100644 demo/grouper/idp/Dockerfile delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.crt delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.p12 delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-browser.p12 delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-encryption.crt delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-encryption.key delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-signing.crt delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/idp-signing.key delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/sealer.jks delete mode 100644 demo/grouper/idp/shibboleth-idp/credentials/sealer.kver delete mode 100644 demo/grouper/idp/shibboleth-idp/metadata/idp-metadata.xml delete mode 100644 demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp-new.xml delete mode 100644 demo/grouper/midpoint-objects-manual/tasks/task-recomputation-users.xml delete mode 100644 demo/grouper/midpoint_server/Dockerfile delete mode 100644 demo/grouper/midpoint_server/container_files/httpd/host-cert.pem delete mode 100644 demo/grouper/midpoint_server/container_files/httpd/host-key.pem delete mode 100644 demo/grouper/midpoint_server/container_files/mp-home/config.xml delete mode 100644 demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/100-function-library-grouper.xml delete mode 100644 demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/objectTemplates/100-template-user.xml delete mode 100644 demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-grouper.xml delete mode 100644 demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/010-system-configuration.xml delete mode 100644 demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/tasks/995-task-group-scavenger.xml rename demo/grouper/midpoint_server/{container_files/mp-home => }/cs-portal.csv (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/faculty-portal.csv (100%) create mode 100644 demo/grouper/midpoint_server/icf-connectors/connector-grouper-1.1.1.0.jar rename demo/grouper/midpoint_server/{container_files/mp-home => }/icf-connectors/connector-grouper-rest-0.7.jar (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/icf-connectors/net.tirasa.connid.bundles.db.scriptedsql-2.2.6-SNAPSHOT.jar (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/lib/mariadb-java-client-3.0.6.jar (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/lib/mysql-connector-java-8.0.30.jar (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/mailing-lists.csv (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-affiliation.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-course.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-department.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-external-person.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-generic-grouper-group.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-mailing-list.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-midpoint-group.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/archetypes/300-archetype-sis-person.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/bulkActions/900-test-all-resources.xml (93%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/bulkActions/910-recompute-grouper-objects.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/ordering.txt (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/100-org-affiliations.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/100-org-courses.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/100-org-departments.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/100-org-generic-groups.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/100-org-mailing-lists.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/100-org-midpoint-groups.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/orgs/400-org-grouper-sysadmin.xml (100%) create mode 100644 demo/grouper/midpoint_server/post-initial-objects/resources/100-grouper-new.xml rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/resources/100-ldap-main.xml (99%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/resources/100-source-sis-persons.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/resources/100-target-cs-portal.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/resources/100-target-faculty-portal.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/resources/100-target-mailing-lists.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/roles/200-metarole-grouper-provided-group.xml (79%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/roles/200-metarole-ldap-group.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/roles/200-role-ldap-basic.xml (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/securityPolicy/000-security-policy.xml (70%) create mode 100644 demo/grouper/midpoint_server/post-initial-objects/systemConfigurations/000-public-url.xml rename demo/grouper/{midpoint-objects-manual/tasks/task-import-sis-persons.xml => midpoint_server/post-initial-objects/tasks/980_import-sis-persons.xml} (100%) rename demo/grouper/{midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml => midpoint_server/post-initial-objects/tasks/990_task-liveSync-grouper.xml} (66%) rename demo/grouper/{midpoint-objects-manual/tasks/task-async-update-grouper.xml => midpoint_server/post-initial-objects/tasks/990_task-reconciliation-grouper.xml} (50%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/post-initial-objects/users/600-user-banderson.xml (98%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/res/sis-persons/SchemaScript.groovy (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/res/sis-persons/SearchScript.groovy (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/res/sis-persons/TestScript.groovy (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/schema/internet2.xsd (95%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/source-external.csv (100%) rename demo/grouper/midpoint_server/{container_files/mp-home => }/staff-portal.csv (100%) delete mode 100755 demo/grouper/purge-queue.sh delete mode 100755 demo/grouper/recompute.sh rename demo/grouper/{idp => }/shibboleth-idp/conf/attribute-filter.xml (100%) rename demo/{shibboleth/idp => grouper}/shibboleth-idp/conf/attribute-resolver.xml (100%) rename demo/grouper/{idp => }/shibboleth-idp/conf/idp.properties (100%) rename demo/{shibboleth/idp => grouper}/shibboleth-idp/conf/ldap.properties (100%) rename demo/grouper/{idp => }/shibboleth-idp/conf/metadata-providers.xml (100%) create mode 100644 demo/grouper/shibboleth-idp/metadata/grouper-sp.xml rename demo/grouper/{configs-and-secrets/midpoint/shibboleth => shibboleth-idp/metadata}/idp-metadata.xml (98%) rename demo/grouper/{idp => }/shibboleth-idp/metadata/midpoint-sp.xml (92%) delete mode 100755 demo/grouper/show-queue-size.sh delete mode 100755 demo/grouper/ssh-tunnel-redir-fix.sh delete mode 100755 demo/grouper/test-resources.sh delete mode 100644 demo/grouper/tests/main.bats delete mode 100644 demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-banderson.xml delete mode 100644 demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml delete mode 100644 demo/grouper/tests/resources/bulk-action/recompute-role-grouper-sysadmin.xml delete mode 100644 demo/grouper/tests/resources/grouper/old-t410.gsh delete mode 100644 demo/grouper/tests/resources/grouper/t300.gsh delete mode 100644 demo/grouper/tests/resources/grouper/t350.gsh delete mode 100644 demo/grouper/tests/resources/grouper/t410.gsh delete mode 100755 demo/grouper/tests/resources/rabbitmq/check-samplequeue.sh delete mode 100644 demo/grouper/tests/resources/tasks/task-livesync-grouper-single.xml delete mode 100644 demo/grouper/tests/resources/users/user-grouper-admin.xml delete mode 100644 demo/grouper/update-bgasper-in-grouper.gsh delete mode 100755 demo/grouper/update-bgasper-in-grouper.sh delete mode 100755 demo/grouper/upload-async-update-task.sh delete mode 100755 demo/grouper/upload-import-sis-persons.sh delete mode 100755 demo/grouper/upload-objects.sh delete mode 100755 demo/grouper/upload-recompute-users.sh delete mode 100755 demo/grouper/upload-reconcile-grouper-groups.sh rename container_files/httpd/conf/midpoint.conf.auth.shibboleth => demo/shibboleth-apache-sp/apache/httpd/conf.d/midpoint.conf (52%) create mode 100644 demo/shibboleth-apache-sp/apache/httpd/conf.d/ssl-enable.conf rename demo/{shibboleth/configs-and-secrets/midpoint => shibboleth-apache-sp/apache}/shibboleth/attribute-map.xml (100%) rename demo/{shibboleth/configs-and-secrets/midpoint => shibboleth-apache-sp/apache}/shibboleth/shibboleth2.xml (100%) create mode 100644 demo/shibboleth-apache-sp/beacon/Dockerfile create mode 100755 demo/shibboleth-apache-sp/beacon/container_files/sendtierbeacon.sh create mode 100755 demo/shibboleth-apache-sp/beacon/container_files/setup-cron.sh create mode 100644 demo/shibboleth-apache-sp/directory/Dockerfile create mode 100755 demo/shibboleth-apache-sp/directory/container_files/gen_config_update create mode 100755 demo/shibboleth-apache-sp/directory/container_files/slapd.sh create mode 100644 demo/shibboleth-apache-sp/docker-compose.yml create mode 100644 demo/shibboleth-apache-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml rename demo/{shibboleth/idp => shibboleth-apache-sp}/shibboleth-idp/conf/attribute-filter.xml (100%) rename demo/{grouper/idp => shibboleth-apache-sp}/shibboleth-idp/conf/attribute-resolver.xml (100%) rename demo/{shibboleth/idp => shibboleth-apache-sp}/shibboleth-idp/conf/idp.properties (99%) rename demo/{grouper/idp => shibboleth-apache-sp}/shibboleth-idp/conf/ldap.properties (100%) create mode 100644 demo/shibboleth-apache-sp/shibboleth-idp/conf/metadata-providers.xml rename demo/{shibboleth/configs-and-secrets/midpoint/shibboleth => shibboleth-apache-sp/shibboleth-idp/metadata}/idp-metadata.xml (97%) rename demo/{shibboleth/idp => shibboleth-apache-sp}/shibboleth-idp/metadata/midpoint-shib-sp.xml (61%) create mode 100644 demo/shibboleth-midpoint-sp/beacon/Dockerfile create mode 100755 demo/shibboleth-midpoint-sp/beacon/container_files/sendtierbeacon.sh create mode 100755 demo/shibboleth-midpoint-sp/beacon/container_files/setup-cron.sh create mode 100644 demo/shibboleth-midpoint-sp/directory/Dockerfile create mode 100755 demo/shibboleth-midpoint-sp/directory/container_files/gen_config_update create mode 100755 demo/shibboleth-midpoint-sp/directory/container_files/slapd.sh create mode 100644 demo/shibboleth-midpoint-sp/docker-compose.yml rename demo/{shibboleth/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy => shibboleth-midpoint-sp/midpoint_server/post-initial-objects}/SecurityPolicy.xml (82%) create mode 100644 demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/public-url.xml create mode 100644 demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/attribute-map.xml create mode 100644 demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/shibboleth2.xml create mode 100644 demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-filter.xml create mode 100644 demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-resolver.xml create mode 100644 demo/shibboleth-midpoint-sp/shibboleth-idp/conf/idp.properties create mode 100644 demo/shibboleth-midpoint-sp/shibboleth-idp/conf/ldap.properties rename demo/{shibboleth/idp => shibboleth-midpoint-sp}/shibboleth-idp/conf/metadata-providers.xml (97%) rename demo/{shibboleth/configs-and-secrets/shibboleth => shibboleth-midpoint-sp/shibboleth-idp/metadata}/idp-metadata.xml (95%) rename demo/{grouper/idp/shibboleth-idp/metadata/grouper-sp.xml => shibboleth-midpoint-sp/shibboleth-idp/metadata/midpoint-sp.xml} (52%) rename demo/{shibboleth/idp/shibboleth-idp/metadata/midpoint-sp.xml => shibboleth-midpoint-sp/shibboleth-idp/metadata/midpoint-sp.xml.bck} (100%) delete mode 100644 demo/shibboleth/.env delete mode 100644 demo/shibboleth/configs-and-secrets/midpoint/httpd/00-shib.conf delete mode 100644 demo/shibboleth/configs-and-secrets/midpoint/httpd/host-cert.pem delete mode 100644 demo/shibboleth/configs-and-secrets/midpoint/httpd/host-key.pem delete mode 100644 demo/shibboleth/configs-and-secrets/midpoint/httpd/midpoint-shib.conf delete mode 100644 demo/shibboleth/configs-and-secrets/midpoint/httpd/vhosts.conf delete mode 100644 demo/shibboleth/configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks delete mode 100644 demo/shibboleth/configs-and-secrets/shibboleth/shibboleth2.xml delete mode 100644 demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-cert.pem delete mode 100644 demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-key.pem delete mode 100644 demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-cert.pem delete mode 100644 demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-key.pem delete mode 100644 demo/shibboleth/directory/Dockerfile delete mode 100644 demo/shibboleth/directory/container_files/seed-data/ds-setup.inf delete mode 100644 demo/shibboleth/directory/container_files/seed-data/users.ldif delete mode 100644 demo/shibboleth/docker-compose-tests.yml delete mode 100644 demo/shibboleth/docker-compose.yml delete mode 100644 demo/shibboleth/idp/Dockerfile delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.crt delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.p12 delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-browser.p12 delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-encryption.crt delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-encryption.key delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-signing.crt delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/idp-signing.key delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/sealer.jks delete mode 100644 demo/shibboleth/idp/shibboleth-idp/credentials/sealer.kver delete mode 100644 demo/shibboleth/idp/shibboleth-idp/metadata/idp-metadata.xml delete mode 100644 demo/shibboleth/midpoint_server/Dockerfile delete mode 100644 demo/shibboleth/midpoint_server/container_files/httpd/host-cert.pem delete mode 100644 demo/shibboleth/midpoint_server/container_files/httpd/host-key.pem delete mode 100644 demo/shibboleth/midpoint_server/container_files/mp-home/config.xml delete mode 100755 demo/shibboleth/tests/main.bats delete mode 100644 demo/simple/.env delete mode 100644 demo/simple/configs-and-secrets/midpoint/httpd/host-cert.pem delete mode 100644 demo/simple/configs-and-secrets/midpoint/httpd/host-key.pem delete mode 100755 demo/simple/tests/main.bats delete mode 100755 download-midpoint.sh delete mode 100644 library.bash delete mode 100755 tests/main.bats diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 3cf5f0e..0000000 --- a/.dockerignore +++ /dev/null @@ -1,3 +0,0 @@ -demo -.git -tests diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 1de18f0..0000000 --- a/Dockerfile +++ /dev/null @@ -1,91 +0,0 @@ -# -# Building assumes midpoint-dist.tar.gz is present in the current directory. -# - -FROM i2incommon/shibboleth_sp:3.4.1_06122023_rocky8_multiarch - -MAINTAINER info@evolveum.com - -RUN rpm --import https://yum.corretto.aws/corretto.key -RUN curl -L -o /etc/yum.repos.d/corretto.repo https://yum.corretto.aws/corretto.repo -RUN yum -y update -RUN yum -y install \ - java-17-amazon-corretto-devel \ - cronie \ - supervisor \ - libcurl-minimal \ - && yum clean -y all - -RUN cd /etc/httpd/conf.d/ \ - && rm -f autoindex.conf ssl.conf userdir.conf welcome.conf - -COPY container_files/supervisor/supervisord.conf /etc/supervisor/supervisord.conf -COPY container_files/httpd/conf/* /etc/httpd/conf.d/ -COPY container_files/usr-local-bin/* /usr/local/bin/ -COPY container_files/opt-tier/* /opt/tier/ - -RUN chmod 755 /opt/tier/setenv.sh \ - && chmod 755 /usr/local/bin/sendtierbeacon.sh \ - && chmod 755 /usr/local/bin/setup-cron.sh \ - && chmod 755 /usr/local/bin/setup-timezone.sh \ - && chmod 755 /usr/local/bin/start-midpoint.sh \ - && chmod 755 /usr/local/bin/start-httpd.sh \ - && chmod 755 /usr/local/bin/startup.sh \ - && chmod 755 /usr/local/bin/healthcheck.sh - -RUN cp /dev/null /etc/httpd/conf.d/ssl.conf \ - && mkdir /etc/httpd/conf.d/vhosts \ - && rm /etc/httpd/conf.d/shib.conf \ - && sed -i 's/LogFormat "/LogFormat "httpd;access_log;%{ENV}e;%{USERTOKEN}e;/g' /etc/httpd/conf/httpd.conf \ - && echo -e "\nErrorLogFormat \"httpd;error_log;%{ENV}e;%{USERTOKEN}e;[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i\"" >> /etc/httpd/conf/httpd.conf \ - && sed -i 's/CustomLog "logs\/access_log"/CustomLog "\/tmp\/loghttpd"/g' /etc/httpd/conf/httpd.conf \ - && sed -i 's/ErrorLog "logs\/error_log"/ErrorLog "\/tmp\/loghttpd"/g' /etc/httpd/conf/httpd.conf \ - && echo -e "\nPassEnv ENV" >> /etc/httpd/conf/httpd.conf \ - && echo -e "\nPassEnv USERTOKEN" >> /etc/httpd/conf/httpd.conf - -# Build arguments - -ARG MP_DIST_FILE=midpoint-dist.tar.gz - -ENV MP_DIR /opt/midpoint - -RUN mkdir -p ${MP_DIR}/var - -COPY ${MP_DIST_FILE} ${MP_DIR} -COPY container_files/mp-dir/ ${MP_DIR}/ - -RUN echo 'Extracting midPoint archive...' \ - && tar xzf ${MP_DIR}/${MP_DIST_FILE} -C ${MP_DIR} --strip-components=1 - -# Disabled because of wider compatibility issues (e.g. AWS) -# TODO: consider all the consequences -#VOLUME ${MP_DIR}/var - -# Logging parameters - -ENV ENV demo -ENV USERTOKEN "" - -# Other parameters - -ENV MP_MEM_MAX 2048m -ENV MP_MEM_INIT 1024m -ENV TIMEZONE UTC -ENV TIER_RELEASE not-released-yet -ENV TIER_MAINTAINER tier - -# TIER Beacon Opt-out -# Completely uncomment the following ENV line to prevent the containers from sending analytics information to Internet2. -# With the default/release configuration, it will only send product (Shibb/Grouper/COmanage/midPoint) and version (4.0, etc) -# once daily between midnight and 4am. There is no configuration or private information collected or sent. -# This data helps with the scaling and funding of TIER. Please do not disable it if you find the TIER tools useful. -# To keep it commented, keep multiple comments on the following line (to prevent other scripts from processing it). -##### ENV TIER_BEACON_OPT_OUT true - -# requires MP_VERSION and TIER_xyz variables so we have to execute it here - -RUN /opt/tier/setenv.sh - -HEALTHCHECK --interval=1m --timeout=30s --start-period=2m CMD /usr/local/bin/healthcheck.sh - -CMD ["/usr/local/bin/startup.sh"] diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index 9d5e4bf..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,122 +0,0 @@ -pipeline { - agent any - environment { - maintainer = "t" - imagename = 'm' - tag = 'l' - } - stages { - stage ('Setting build context') { - steps { - script { - maintainer = maintain() - imagename = imagename() - tag = tag() - if (!imagename) { - echo "You must define imagename in common.bash" - currentBuild.result = 'FAILURE' - } - sh 'mkdir -p bin' - sh 'mkdir -p tmp' - dir ('tmp') { - git([ url: "https://github.internet2.edu/docker/util.git", credentialsId: "jenkins-github-access-token" ]) - sh 'ls -l' - sh 'ls -lR ../bin' - sh 'rm -r ../bin/windows || true' - sh 'mv bin/* ../bin/.' - } - // Build and test scripts expect that 'tag' is present in common.bash. This is necessary for both Jenkins and standalone testing. - // We don't care if there are more 'tag' assignments there. The latest one wins. - sh "echo >> common.bash ; echo \"tag=\\\"${tag}\\\"\" >> common.bash ; echo common.bash ; cat common.bash" - } - } - } - stage ('Build') { - steps { - script { - try { - // using custom ./build.sh instead of bin/rebuild.sh because the bin/ version does not support building specific tag yet - sh './build.sh -r 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0' - } catch (error) { - def error_details = readFile('./debug') - def message = "BUILD ERROR: There was a problem building ${imagename}:${tag}. \n\n ${error_details}" - sh "rm -f ./debug" - handleError(message) - } - } - } - } - stage ('Test') { - steps { - script { - try { - sh 'echo Docker containers before root tests ; docker ps -a' // temporary - sh 'bin/test.sh 2>&1 | tee debug ; test ${PIPESTATUS[0]} -eq 0' - sh 'echo Docker containers before compositions tests ; docker ps -a' // temporary - - sh '(cd demo/simple ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0' - sh '(cd demo/shibboleth ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0' - sh '(cd demo/grouper ; bats tests ) 2>&1 | tee -a debug ; test ${PIPESTATUS[0]} -eq 0' - } catch (error) { - def error_details = readFile('./debug') - def message = "BUILD ERROR: There was a problem testing ${imagename}:${tag}. \n\n ${error_details}" - sh "rm -f ./debug" - handleError(message) - } - } - } - } - stage ('Push') { - steps { - script { - docker.withRegistry('https://registry.hub.docker.com/', "dockerhub-tier") { - def baseImg = docker.image("$maintainer/$imagename:$tag") - baseImg.push("$tag") - - if (env.BRANCH_NAME == "master") { - baseImg.push("latest") - } - } - } - } - } - stage ('Notify') { - steps { - echo "$maintainer" - slackSend color: 'good', message: "$maintainer/$imagename:$tag pushed to DockerHub" - } - } - } - post { - always { - echo 'Done Building.' - } - failure { - // slackSend color: 'good', message: "Build failed" - handleError("BUILD ERROR: There was a problem building ${maintainer}/${imagename}:${tag}.") - } - } -} - - -def maintain() { - def matcher = readFile('common.bash') =~ 'maintainer="(.+)"' - matcher ? matcher[0][1] : 'tier' -} - -def imagename() { - def matcher = readFile('common.bash') =~ 'imagename="(.+)"' - matcher ? matcher[0][1] : null -} - -def tag() { - def matcher = readFile('common.bash') =~ 'tag="(.+)"' - matcher ? matcher[0][1] : latest -} - -def handleError(String message) { - echo "${message}" - currentBuild.setResult("FAILED") - slackSend color: 'danger', message: "${message}" - sh 'exit 1' -} diff --git a/README.md b/README.md index 144ec64..657fa3c 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,5 @@ -[![Build Status](https://jenkins.testbed.tier.internet2.edu/buildStatus/icon?job=docker/midPoint_container/3.9)](https://jenkins.testbed.tier.internet2.edu/buildStatus/icon?job=docker/midPoint_container/3.9) +This repository contains demos for midPoint in InCommon Trusted Access Platform. -This repository contains sources for TIER-supported [midPoint](http://midpoint.evolveum.com) image. - -The image contains the midPoint application along with some TIER-specific components: Apache reverse proxy with optional Shibboleth filter and TIER Beacon. - -# Supported tags -- latest -- midPoint version-specific branches, e.g. 3.9, 3.9.1, 4.0, etc. - -# Content -- the root directory contains build instructions for the `midpoint` image -- `demo` directory contains a couple of demonstration scenarios: - - `simple` to show simple composition of midPoint with the repository, - - `shibboleth` to show integration with Shibboleth IdP, - - `postgresql` to show how to use alternative dockerized repository, - - `extrepo` to show how to use external repository, - - `grouper` to demonstrate more complex deployment of midPoint in a sample university environment, featuring midPoint along with Grouper, LDAP directory, RabbitMQ, Shibboleth IdP, source and target systems. - -# Build instructions -``` -$ ./build.sh -``` -You can then continue with one of demo compositions. # Documentation Please see the [Getting Started with midPoint](https://spaces.at.internet2.edu/x/fBbtBw) wiki page. diff --git a/build.sh b/build.sh deleted file mode 100755 index d7951c6..0000000 --- a/build.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -cd "$(dirname "$0")" -source common.bash - -SKIP_DOWNLOAD=0 -REFRESH="" -while getopts "nhr?" opt; do - case $opt in - n) - SKIP_DOWNLOAD=1 - ;; - r) - result=$(docker ps -a | grep $maintainer/$imagename:$tag) - if [ ! -z "$result" ]; then - echo "Cleaning up $maintainer/$imagename:$tag..." - docker rm -f $(docker ps -a | grep $maintainer/$imagename:$tag | awk '{print $1}') - docker rmi -f $maintainer/$imagename:$tag - echo "Done" - fi - REFRESH="--no-cache --pull" - echo "Using 'refresh' mode: $REFRESH" - ;; - h | ?) - echo "Options: -n skip download" - echo " -r refresh mode: uses --no-cache --pull and removes container and image before build" - exit 0 - ;; - *) - echo "Unknown option: $opt" - exit 1 - ;; - esac -done -if [ "$SKIP_DOWNLOAD" = "0" ]; then ./download-midpoint.sh || exit 1; fi -docker build $REFRESH --tag $maintainer/$imagename:$tag --build-arg maintainer=$maintainer --build-arg imagename=$imagename . || exit 1 -echo "---------------------------------------------------------------------------------------" -echo "The midPoint containers were successfully built. To start them, execute the following:" -echo "" -echo "(for simple demo)" -echo "" -echo "$ cd" $(pwd)/demo/simple -echo "$ docker-compose up" -echo "" -echo "(for Grouper integration demo)" -echo "" -echo "$ cd" $(pwd)/demo/grouper -echo "$ docker-compose up --build" diff --git a/common.bash b/common.bash deleted file mode 100644 index 08d7cd7..0000000 --- a/common.bash +++ /dev/null @@ -1,3 +0,0 @@ -maintainer="i2incommon" -imagename="midpoint" -tag="4.8.2" diff --git a/container_files/httpd/conf/midpoint.conf b/container_files/httpd/conf/midpoint.conf deleted file mode 100644 index 656489c..0000000 --- a/container_files/httpd/conf/midpoint.conf +++ /dev/null @@ -1,6 +0,0 @@ - -Timeout 2400 -ProxyTimeout 2400 -ProxyBadHeader Ignore - -ProxyPass /midpoint ajp://localhost:9090/midpoint secret=s3cr3t timeout=2400 retry=0 diff --git a/container_files/httpd/conf/midpoint.conf.auth.internal b/container_files/httpd/conf/midpoint.conf.auth.internal deleted file mode 100644 index 57a9992..0000000 --- a/container_files/httpd/conf/midpoint.conf.auth.internal +++ /dev/null @@ -1,6 +0,0 @@ - -Timeout 2400 -ProxyTimeout 2400 -ProxyBadHeader Ignore - -ProxyPass /midpoint ajp://localhost:9090/midpoint secret=s3cr3t timeout=2400 retry=0 diff --git a/container_files/httpd/conf/ssl-enable.conf b/container_files/httpd/conf/ssl-enable.conf deleted file mode 100644 index a756e78..0000000 --- a/container_files/httpd/conf/ssl-enable.conf +++ /dev/null @@ -1,30 +0,0 @@ -# modern configuration, tweak to your needs -SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256 -SSLHonorCipherOrder on -SSLCompression off - -# OCSP Stapling, only in httpd 2.3.3 and later -SSLUseStapling on -SSLStaplingResponderTimeout 5 -SSLStaplingReturnResponderErrors off -SSLStaplingCache shmcb:/var/run/ocsp(128000) - -Listen 443 https - - RewriteEngine on - RewriteRule "^/$" "/midpoint/" [R] - - - SSLEngine on - SSLCertificateChainFile /etc/pki/tls/certs/cachain.pem - - SSLCertificateFile /etc/pki/tls/certs/host-cert.pem - - SSLCertificateKeyFile /etc/pki/tls/private/host-key.pem - - # HSTS (mod_headers is required) (15768000 seconds = 6 months) - Header always set Strict-Transport-Security "max-age=15768000" - - IncludeOptional conf.d/vhosts/*.conf - diff --git a/container_files/mp-dir/active-spring-profiles b/container_files/mp-dir/active-spring-profiles deleted file mode 100755 index 40058e6..0000000 --- a/container_files/mp-dir/active-spring-profiles +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -case $AUTHENTICATION in - shibboleth) - echo "default,sso" - ;; - internal) - echo "default" - ;; - *) - echo "default" -esac - diff --git a/container_files/mp-dir/repository-url b/container_files/mp-dir/repository-url deleted file mode 100755 index 6977cbf..0000000 --- a/container_files/mp-dir/repository-url +++ /dev/null @@ -1,52 +0,0 @@ -#!/bin/bash - -function resolvePort() { - if [[ $REPO_PORT == "default" ]]; then - case $REPO_DATABASE_TYPE in - mariadb) - echo 3306 - ;; - mysql) - echo 3306 - ;; - oracle) - echo 1521 - ;; - postgresql) - echo 5432 - ;; - sqlserver) - echo 1433 - ;; - *) - echo "~~~~~ please supply JDBC port for your repository ~~~~~" - esac - else - echo $REPO_PORT - fi -} - -if [[ $REPO_JDBC_URL == "default" ]]; then - REPO_PORT=$( resolvePort ) - case $REPO_DATABASE_TYPE in - mariadb) - echo "jdbc:mariadb://$REPO_HOST:$REPO_PORT/$REPO_DATABASE?characterEncoding=utf8" - ;; - mysql) - echo "jdbc:mysql://$REPO_HOST:$REPO_PORT/$REPO_DATABASE?characterEncoding=utf8" - ;; - oracle) - echo "jdbc:oracle:thin:@$REPO_HOST:$REPO_PORT/xe" - ;; - postgresql) - echo "jdbc:postgresql://$REPO_HOST:$REPO_PORT/$REPO_DATABASE" - ;; - sqlserver) - echo "jdbc:sqlserver://$REPO_HOST:$REPO_PORT;database=$REPO_DATABASE" - ;; - *) - echo "~~~~~ please supply JDBC URL for your repository ~~~~~" - esac -else - echo $REPO_JDBC_URL -fi diff --git a/container_files/opt-tier/setenv.sh b/container_files/opt-tier/setenv.sh deleted file mode 100755 index f876f7a..0000000 --- a/container_files/opt-tier/setenv.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash -printenv | sed 's/^\(.*\)$/\1/g' | grep -E "^MP_VERSION" > /opt/tier/env.bash -printenv | sed 's/^\(.*\)$/\1/g' | grep -E "^TIER_RELEASE" >> /opt/tier/env.bash -printenv | sed 's/^\(.*\)$/\1/g' | grep -E "^TIER_MAINTAINER" >> /opt/tier/env.bash - -echo "/opt/tier/env.bash is:" -cat /opt/tier/env.bash diff --git a/container_files/supervisor/supervisord.conf b/container_files/supervisor/supervisord.conf deleted file mode 100644 index a1dc9bf..0000000 --- a/container_files/supervisor/supervisord.conf +++ /dev/null @@ -1,32 +0,0 @@ -[supervisord] -logfile=/tmp/logsuperd -logfile_maxbytes=0 -loglevel=error -nodaemon=true -user=root - -[program:httpd] -command=/bin/bash -c "/usr/local/bin/start-httpd.sh" -stdout_logfile=/tmp/loghttpd -stdout_logfile_maxbytes=0 -redirect_stderr=true - -[program:midpoint] -command=/bin/bash -c "/usr/local/bin/start-midpoint.sh" -stdout_logfile=/dev/fd/2 -stdout_logfile_maxbytes=0 -redirect_stderr=true -autorestart=false - -[program:shibboleth] -command=/usr/sbin/shibd -f -stdout_logfile=/dev/fd/2 -stdout_logfile_maxbytes=0 -redirect_stderr=true -autorestart=false - -[program:crond] -command=/usr/sbin/crond -n -i -m off -stdout_logfile=/tmp/logcrond -stdout_logfile_maxbytes=0 -redirect_stderr=true diff --git a/container_files/usr-local-bin/healthcheck.sh b/container_files/usr-local-bin/healthcheck.sh deleted file mode 100755 index 99f8963..0000000 --- a/container_files/usr-local-bin/healthcheck.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -(set -o pipefail ; curl -k -f https://localhost:443/midpoint/actuator/health | tr -d '[:space:]' | grep -q "\"status\":\"UP\"") || exit 1 diff --git a/container_files/usr-local-bin/setup-cron.sh b/container_files/usr-local-bin/setup-cron.sh deleted file mode 100755 index 9ec9705..0000000 --- a/container_files/usr-local-bin/setup-cron.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -CRONFILE=/opt/tier/tier-cron - -echo "#send daily \"beacon\" to central" > ${CRONFILE} -echo $(expr $RANDOM % 60) $(expr $RANDOM % 4) "* * * /usr/local/bin/sendtierbeacon.sh >> /tmp/logcrond 2>&1" >> ${CRONFILE} -#echo "* * * * * /usr/local/bin/sendtierbeacon.sh >> /tmp/logcrond 2>&1" >> ${CRONFILE} # for testing - -chmod 644 ${CRONFILE} -crontab ${CRONFILE} diff --git a/container_files/usr-local-bin/setup-timezone.sh b/container_files/usr-local-bin/setup-timezone.sh deleted file mode 100755 index b01eb8e..0000000 --- a/container_files/usr-local-bin/setup-timezone.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -if [[ -n $TIMEZONE ]]; then - echo "*** Setting timezone to '$TIMEZONE'" - if [[ -e /usr/share/zoneinfo/$TIMEZONE ]]; then - unlink /etc/localtime - ln -s /usr/share/zoneinfo/$TIMEZONE /etc/localtime - echo "date (UTC) is: $(date -u)" - echo "date (current timezone) is $(date)" - else - echo "Error: time zone '$TIMEZONE' is unknown; not setting it." - fi -fi diff --git a/container_files/usr-local-bin/start-httpd.sh b/container_files/usr-local-bin/start-httpd.sh deleted file mode 100755 index 787d293..0000000 --- a/container_files/usr-local-bin/start-httpd.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -echo "Linking secrets" -for filepath in /run/secrets/*; do - label_file=`basename $filepath` - if [ "$label_file" == "mp_host-key.pem" ]; then - ln -sf /run/secrets/mp_host-key.pem /etc/pki/tls/private/host-key.pem - fi -done - -rm -f /etc/httpd/logs/httpd.pid /run/httpd/httpd.pid -httpd -DFOREGROUND diff --git a/container_files/usr-local-bin/start-midpoint.sh b/container_files/usr-local-bin/start-midpoint.sh deleted file mode 100755 index abccd4b..0000000 --- a/container_files/usr-local-bin/start-midpoint.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -function check () { - local VARNAME=$1 - if [ -z ${!VARNAME} ]; then - echo "*** Couldn't start midPoint: $VARNAME variable is undefined. Please check your Docker composition." - exit 1 - fi -} - -echo "Linking secrets" -for filepath in /run/secrets/*; do - label_file=`basename $filepath` - if [ "$label_file" == "mp_shibboleth_sp_keys.jks" ]; then - if [ ! -d "/etc/pki/mp" ]; then - mkdir /etc/pki/mp - fi - ln -sf /run/secrets/mp_shibboleth_sp_keys.jks /etc/pki/mp/sp-shibboleth-keys.jks - fi -done - -# These variables have reasonable defaults in Dockerfile. So we will _not_ supply defaults here. -# The composer or user has to make sure they are well defined. - -check MP_MEM_MAX -check MP_MEM_INIT -check MP_DIR - - -export MP_SET_midpoint_logging_alt_enabled=true -export MP_SET_midpoint_logging_alt_filename=/tmp/logmidpoint -export MP_SET_spring_profiles_active="`$MP_DIR/active-spring-profiles`" -export MP_SET_logging_path=/tmp/logtomcat - -/opt/midpoint/bin/midpoint.sh 'container' &>/tmp/logmidpoint-console \ No newline at end of file diff --git a/container_files/usr-local-bin/startup.sh b/container_files/usr-local-bin/startup.sh deleted file mode 100755 index 9f11831..0000000 --- a/container_files/usr-local-bin/startup.sh +++ /dev/null @@ -1,37 +0,0 @@ -#!/bin/bash - -# normalizing logging variables as required by TIER -export ENV=${ENV//[; ]/_} -export USERTOKEN=${USERTOKEN//[; ]/_} - -/usr/local/bin/setup-timezone.sh - -# this is to be executed at run time, not at build time -- to ensure sufficient variability of execution times -/usr/local/bin/setup-cron.sh - -# generic console logging pipe for anyone -mkfifo -m 666 /tmp/logpipe -cat <> /tmp/logpipe 1>&2 & - -mkfifo -m 666 /tmp/loghttpd -(cat <> /tmp/loghttpd | awk '{printf "%s\n", $0; fflush()}' 1>/tmp/logpipe) & - -mkfifo -m 666 /tmp/logshib -(cat <> /tmp/logshib | awk '{printf "%s\n", $0; fflush()}' 1>/tmp/logpipe) & - -mkfifo -m 666 /tmp/logcrond -(cat <> /tmp/logcrond | awk -v ENV="$ENV" -v USERTOKEN="$USERTOKEN" '{line=sprintf ("crond;console;%s;%s;%s:%s", ENV, USERTOKEN, strftime("%F %T%z", systime(), 1), $0); print line >> "/tmp/logpipe"; print line >> "/var/log/cron.log"; fflush()}') & - -mkfifo -m 666 /tmp/logsuperd -(cat <> /tmp/logsuperd | awk -v ENV="$ENV" -v USERTOKEN="$USERTOKEN" '{printf "supervisord;console;%s;%s;%s\n", ENV, USERTOKEN, $0; fflush()}' 1>/tmp/logpipe) & - -mkfifo -m 666 /tmp/logtomcat -(cat <> /tmp/logtomcat | awk -v ENV="$ENV" -v USERTOKEN="$USERTOKEN" '{printf "tomcat;console;%s;%s;%s\n", ENV, USERTOKEN, $0; fflush()}' 1>/tmp/logpipe) & - -mkfifo -m 666 /tmp/logmidpoint -(cat <> /tmp/logmidpoint | awk -v ENV="$ENV" -v USERTOKEN="$USERTOKEN" '{printf "midpoint;midpoint.log;%s;%s;%s\n", ENV, USERTOKEN, $0; fflush()}' 1>/tmp/logpipe) & - -mkfifo -m 666 /tmp/logmidpoint-console -(cat <> /tmp/logmidpoint-console | awk -v ENV="$ENV" -v USERTOKEN="$USERTOKEN" '{printf "midpoint;console;%s;%s;%s\n", ENV, USERTOKEN, $0; fflush()}' 1>/tmp/logpipe) & - -/usr/bin/supervisord -c /etc/supervisor/supervisord.conf diff --git a/demo/grouper/.env b/demo/grouper/.env deleted file mode 100644 index e927f1c..0000000 --- a/demo/grouper/.env +++ /dev/null @@ -1,4 +0,0 @@ -ENV=demo -MP_MEM_MAX=2048m -MP_MEM_INIT=1024m -TIMEZONE=UTC diff --git a/demo/grouper/README.md b/demo/grouper/README.md deleted file mode 100644 index a0e5d88..0000000 --- a/demo/grouper/README.md +++ /dev/null @@ -1,9 +0,0 @@ -This is a demonstration of using midPoint dockerization for TIER environment in a broader context. It is a work in progress. - -# Building and execution -``` -$ ../../build.sh -$ docker-compose up --build -``` - -Please see a detailed description [here](https://spaces.at.internet2.edu/x/VhLtBw). diff --git a/demo/grouper/add-ref-groups.gsh b/demo/grouper/add-ref-groups.gsh deleted file mode 100644 index b4561f9..0000000 --- a/demo/grouper/add-ref-groups.gsh +++ /dev/null @@ -1,21 +0,0 @@ - -def addGroups(gs,stem,owner,regexp) { - for (group in stem.childGroups) { - if (!group.name.endsWith('_includes') && - !group.name.endsWith('_excludes') && - !group.name.endsWith('_systemOfRecord') && - !group.name.endsWith('_systemOfRecordAndIncludes') && - (regexp == null || group.extension ==~ regexp)) { - println 'Adding: ' + group - def s = SubjectFinder.findById(group.getId(), 'group', 'g:gsa') - owner.addMember(s, false) - } else { - println 'Ignoring: ' + group - } - } -} - -gs = GrouperSession.startRootSession() -def cs = GroupFinder.findByName(gs, "app:cs", true) - -addGroups(gs, StemFinder.findByName(gs, 'ref:course'), cs, /CS.*/) diff --git a/demo/grouper/add-ref-groups.sh b/demo/grouper/add-ref-groups.sh deleted file mode 100755 index bfb93cf..0000000 --- a/demo/grouper/add-ref-groups.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -source ../../library.bash - -execute_gsh grouper_grouper_daemon_1 add-ref-groups.gsh diff --git a/demo/grouper/after-installation.sh b/demo/grouper/after-installation.sh deleted file mode 100755 index aefe3b1..0000000 --- a/demo/grouper/after-installation.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -B='\033[1;33m' -N='\033[0m' - -echo -e "${B} * Uploading objects...${N}" -$(dirname "$0")/upload-objects.sh - -echo -e "${B} * Testing resources...${N}" -$(dirname "$0")/test-resources.sh - -echo -e "${B} * Recomputing Grouper admin group and user object...${N}" -$(dirname "$0")/recompute.sh - -echo -e "${B} * Done${N}" diff --git a/demo/grouper/beacon/Dockerfile b/demo/grouper/beacon/Dockerfile new file mode 100644 index 0000000..256352c --- /dev/null +++ b/demo/grouper/beacon/Dockerfile @@ -0,0 +1,15 @@ +FROM rockylinux:9.3 + +COPY container_files/* /opt/tier/ + +RUN dnf update -y --disablerepo=\* --enablerepo=baseos && \ + dnf install -y cronie-anacron crontabs cronie --disablerepo=\* --enablerepo=baseos && \ + dnf clean all -y ; \ + rm -rf /var/cache/dnf ; \ + /opt/tier/setup-cron.sh ; + +ENV TIER_RELEASE=not-released-yet \ + TIER_MAINTAINER=tier \ + MP_VERSION=4.8 + +CMD [ "/usr/sbin/crond", "-n", "-i", "-m", "off" ] diff --git a/container_files/usr-local-bin/sendtierbeacon.sh b/demo/grouper/beacon/container_files/sendtierbeacon.sh similarity index 85% rename from container_files/usr-local-bin/sendtierbeacon.sh rename to demo/grouper/beacon/container_files/sendtierbeacon.sh index 2f263bb..8f066f7 100755 --- a/container_files/usr-local-bin/sendtierbeacon.sh +++ b/demo/grouper/beacon/container_files/sendtierbeacon.sh @@ -25,13 +25,15 @@ EOF # echo "going to send TIER beacon to ${LOGHOST}:${LOGPORT}:" # cat $messagefile - curl -s -XPOST "${LOGHOST}:${LOGPORT}/" -H 'Content-Type: application/json' -T $messagefile 1>/dev/null 2>&1 + curl -s -XPOST "${LOGHOST}:${LOGPORT}/" -H 'Content-Type: application/json' -T $messagefile >/dev/null 2>&1 if [ $? -eq 0 ]; then - echo "TIER beacon sent" + echo "TIER beacon sent" else echo "Failed to send TIER beacon" fi rm -f $messagefile 1>/dev/null 2>&1 +else + echo "TIER beacon skipped - scheduled but Opted out" fi diff --git a/demo/grouper/beacon/container_files/setup-cron.sh b/demo/grouper/beacon/container_files/setup-cron.sh new file mode 100755 index 0000000..2d33d3a --- /dev/null +++ b/demo/grouper/beacon/container_files/setup-cron.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +CRONFILE=/opt/tier/tier-cron + +echo "#send daily \"beacon\" to central" > ${CRONFILE} +echo "" >> ${CRONFILE} +echo "# ┌───────────── minute (0–59)" >> ${CRONFILE} +echo "# │ ┌───────────── hour (0–23)" >> ${CRONFILE} +echo "# │ │ ┌───────────── day of the month (1–31)" >> ${CRONFILE} +echo "# │ │ │ ┌───────────── month (1–12)" >> ${CRONFILE} +echo "# │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday;" >> ${CRONFILE} +echo "# │ │ │ │ │ 7 is also Sunday on some systems)" >> ${CRONFILE} +echo "# │ │ │ │ │" >> ${CRONFILE} +echo "# │ │ │ │ │" >> ${CRONFILE} +echo "# * * * * * " >> ${CRONFILE} +echo "" >> ${CRONFILE} +echo "$(expr $RANDOM % 60) $(expr $RANDOM % 4) * * * /opt/tier/sendtierbeacon.sh 2>&1 | tee /proc/1/fd/1 >> /tmp/logcrond" >> ${CRONFILE} +echo "" >> ${CRONFILE} +echo "# List the current setting of the crontab to the log (when is the beacon scheduled)" >> ${CRONFILE} +echo "@reboot crontab -l >/proc/1/fd/1" >> ${CRONFILE} +echo "" >> ${CRONFILE} + +chmod 644 ${CRONFILE} +crontab ${CRONFILE} diff --git a/demo/grouper/configs-and-secrets/grouper/application/grouper-loader.properties b/demo/grouper/configs-and-secrets/grouper/application/grouper-loader.properties old mode 100644 new mode 100755 index 62ef5f0..fe0865b --- a/demo/grouper/configs-and-secrets/grouper/application/grouper-loader.properties +++ b/demo/grouper/configs-and-secrets/grouper/application/grouper-loader.properties @@ -51,6 +51,57 @@ db.sis.pass = 49321420423 db.sis.url = jdbc:mysql://sources:3306/sis db.sis.driver = com.mysql.jdbc.Driver +# midpoint External System +db.midPoint.driver = org.postgresql.Driver +#db.midPoint.pass = ${java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD_FILE') != null ? org.apache.commons.io.FileUtils.readFileToString(java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD_FILE'), "utf-8") : java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD') } +db.midPoint.pass = password +db.midPoint.url = jdbc:postgresql://grouper_data:5432/grouper_to_midpoint?CharSet=utf8 +db.midPoint.user = grouper + +# provisioner midpoint +provisioner.midPoint.class = edu.internet2.middleware.grouper.app.midpointProvisioning.MidPointProvisioner +provisioner.midPoint.configureMetadata = true +provisioner.midPoint.customizeEntityCrud = true +provisioner.midPoint.customizeGroupCrud = true +provisioner.midPoint.customizeMembershipCrud = true +provisioner.midPoint.dbExternalSystemConfigId = midPoint +provisioner.midPoint.deleteEntities = true +provisioner.midPoint.deleteEntitiesIfNotExistInGrouper = false +provisioner.midPoint.deleteEntitiesIfGrouperDeleted = true +provisioner.midPoint.deleteGroups = true +provisioner.midPoint.deleteGroupsIfNotExistInGrouper = true +provisioner.midPoint.deleteMemberships = true +provisioner.midPoint.deleteMembershipsIfNotExistInGrouper = false +provisioner.midPoint.deleteMembershipsIfGrouperDeleted = true +provisioner.midPoint.makeChangesToEntities = true +provisioner.midPoint.metadata.0.name = md_grouper_emailListName +provisioner.midPoint.metadata.0.showForGroup = true +provisioner.midPoint.midPointDeletedColumnName = deleted +provisioner.midPoint.midPointLastModifiedColumnName = last_modified +provisioner.midPoint.midPointLastModifiedColumnType = long +provisioner.midPoint.midPointTablesPrefix = gr +provisioner.midPoint.numberOfGroupAttributes = 1 +provisioner.midPoint.numberOfMetadata = 1 +provisioner.midPoint.operateOnGrouperEntities = true +provisioner.midPoint.operateOnGrouperGroups = true +provisioner.midPoint.operateOnGrouperMemberships = true +provisioner.midPoint.provisioningType = membershipObjects +provisioner.midPoint.selectAllEntities = true +provisioner.midPoint.startWith = this is start with read only +provisioner.midPoint.subjectSourcesToProvision = ldap +provisioner.midPoint.targetGroupAttribute.0.name = emailListName +provisioner.midPoint.targetGroupAttribute.0.translateExpression = \u0024{grouperProvisioningGroup.retrieveAttributeValueString('md_grouper_emailListName')} +provisioner.midPoint.targetGroupAttribute.0.translateExpressionType = translationScript + +# changeLog/FullSync midPoint +changeLog.consumer.midPoint.class = edu.internet2.middleware.grouper.changeLog.esb.consumer.EsbConsumer +changeLog.consumer.midPoint.provisionerConfigId = midPoint +changeLog.consumer.midPoint.publisher.class = edu.internet2.middleware.grouper.app.provisioning.ProvisioningConsumer +changeLog.consumer.midPoint.quartzCron = 0/10 * * * * ? +otherJob.midPoint_FullSync.class = edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningFullSyncJob +otherJob.midPoint_FullSync.provisionerConfigId = midPoint +otherJob.midPoint_FullSync.quartzCron = 0 0 4 * * ? + ##################################### ## Messaging integration with change log diff --git a/demo/grouper/configs-and-secrets/grouper/application/grouper.hibernate.properties b/demo/grouper/configs-and-secrets/grouper/application/grouper.hibernate.properties old mode 100644 new mode 100755 index deb0d75..a334fda --- a/demo/grouper/configs-and-secrets/grouper/application/grouper.hibernate.properties +++ b/demo/grouper/configs-and-secrets/grouper/application/grouper.hibernate.properties @@ -20,10 +20,13 @@ # e.g. hsqldb (b): jdbc:hsqldb:hsql://localhost:9001/grouper # e.g. postgres: jdbc:postgresql://localhost:5432/database # e.g. mssql: jdbc:sqlserver://localhost:3280;databaseName=grouper -hibernate.connection.url = jdbc:mysql://grouper_data:3306/grouper?CharSet=utf8&useUnicode=true&characterEncoding=utf8 +hibernate.connection.url = jdbc:postgresql://grouper-data:5432/grouper -hibernate.connection.username = root +hibernate.connection.username = grouper # If you are using an empty password, depending upon your version of # Java and Ant you may need to specify a password of "". # Note: you can keep passwords external and encrypted: https://bugs.internet2.edu/jira/browse/GRP-122 -hibernate.connection.password.elConfig = ${java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD_FILE') != null ? org.apache.commons.io.FileUtils.readFileToString(java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD_FILE'), "utf-8") : java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD') } +# hibernate.connection.password.elConfig = ${java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD_FILE') != null ? org.apache.commons.io.FileUtils.readFileToString(java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD_FILE'), "utf-8") : java.lang.System.getenv().get('GROUPER_DATABASE_PASSWORD') } +hibernate.connection.password = password +hibernate.c3p0.max_size = 200 + diff --git a/demo/grouper/configs-and-secrets/grouper/application/grouper.properties b/demo/grouper/configs-and-secrets/grouper/application/grouper.properties old mode 100644 new mode 100755 index c931287..086d9a6 --- a/demo/grouper/configs-and-secrets/grouper/application/grouper.properties +++ b/demo/grouper/configs-and-secrets/grouper/application/grouper.properties @@ -23,3 +23,9 @@ groups.wheel.group = etc:sysadmingroup # Used to allow Include Exclude groups grouperIncludeExclude.use = true grouperIncludeExclude.requireGroups.use = true + +# to allow periods in id paths, changed with grouper 2.5.49 +stem.validateExtensionByDefault = false +group.validateExtensionByDefault = false +attributeDef.validateExtensionByDefault = false +attributeDefName.validateExtensionByDefault = false diff --git a/demo/grouper/configs-and-secrets/grouper/application/grouper.text.en.us.properties b/demo/grouper/configs-and-secrets/grouper/application/grouper.text.en.us.properties new file mode 100644 index 0000000..148ca04 --- /dev/null +++ b/demo/grouper/configs-and-secrets/grouper/application/grouper.text.en.us.properties @@ -0,0 +1,3 @@ +md_grouper_emailListName_midPoint_description = Enter the email list description +md_grouper_emailListName_midPoint_label = Email list name + diff --git a/demo/grouper/configs-and-secrets/grouper/application/rabbitmq_password.txt b/demo/grouper/configs-and-secrets/grouper/application/rabbitmq_password.txt index 158f675..f3097ab 100644 --- a/demo/grouper/configs-and-secrets/grouper/application/rabbitmq_password.txt +++ b/demo/grouper/configs-and-secrets/grouper/application/rabbitmq_password.txt @@ -1 +1 @@ -guest \ No newline at end of file +password diff --git a/demo/grouper/configs-and-secrets/grouper/application/subject.properties b/demo/grouper/configs-and-secrets/grouper/application/subject.properties old mode 100644 new mode 100755 index 577db03..5bd2388 --- a/demo/grouper/configs-and-secrets/grouper/application/subject.properties +++ b/demo/grouper/configs-and-secrets/grouper/application/subject.properties @@ -56,7 +56,7 @@ subjectApi.source.ldap.param.searchAttribute0.value = searchAttribute0 #searchSubject: find a subject by ID. ID is generally an opaque and permanent identifier, e.g. 12345678. # Each subject has one and only on ID. Returns one result when searching for one ID. -subjectApi.source.ldap.search.searchSubject.param.filter.value = (&(uid=%TERM%)(objectclass=person)) +subjectApi.source.ldap.search.searchSubject.param.filter.value = (&(uid=%TERM%)(objectClass=person)) subjectApi.source.ldap.search.searchSubject.param.scope.value = SUBTREE_SCOPE subjectApi.source.ldap.search.searchSubject.param.base.value = ou=people @@ -64,7 +64,7 @@ subjectApi.source.ldap.search.searchSubject.param.base.value = ou=people # identifies the user, e.g. jsmith or jsmith@institution.edu. # Subjects can have multiple identifiers. Note: it is nice to have if identifiers are unique # even across sources. Returns one result when searching for one identifier. -subjectApi.source.ldap.search.searchSubjectByIdentifier.param.filter.value = (&(|(uid=%TERM%)(employeeNumber=%TERM%))(objectclass=person)) +subjectApi.source.ldap.search.searchSubjectByIdentifier.param.filter.value = (&(|(uid=%TERM%)(employeeNumber=%TERM%)(incwbPersonEmployeeID=%TERM%)(incwbPersonStudentID=%TERM%)(incwbPersonGuestID=%TERM%))(objectClass=person)) subjectApi.source.ldap.search.searchSubjectByIdentifier.param.scope.value = SUBTREE_SCOPE subjectApi.source.ldap.search.searchSubjectByIdentifier.param.base.value = ou=people diff --git a/demo/grouper/configs-and-secrets/grouper/httpd/cachain-cer.pem b/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper-loader.properties old mode 100644 new mode 100755 similarity index 100% rename from demo/grouper/configs-and-secrets/grouper/httpd/cachain-cer.pem rename to demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper-loader.properties diff --git a/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.client.properties b/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.client.properties new file mode 100755 index 0000000..e69de29 diff --git a/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties b/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties new file mode 100755 index 0000000..e69de29 diff --git a/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.properties b/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouper.properties new file mode 100755 index 0000000..e69de29 diff --git a/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties b/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties new file mode 100755 index 0000000..e69de29 diff --git a/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/subject.properties b/demo/grouper/configs-and-secrets/grouper/grouperWebapp/WEB-INF/classes/subject.properties new file mode 100755 index 0000000..e69de29 diff --git a/demo/grouper/configs-and-secrets/grouper/httpd/host-cert.pem b/demo/grouper/configs-and-secrets/grouper/httpd/host-cert.pem deleted file mode 100644 index 9cc228a..0000000 --- a/demo/grouper/configs-and-secrets/grouper/httpd/host-cert.pem +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDPDCCAiQCCQDNZe8r0hVtuTANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxFzAVBgNVBAMMDnNwLmV4YW1wbGUub3JnMB4XDTE3MDkyMjE5 -NTAzNVoXDTI3MDkyMDE5NTAzNVowYDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1J -MRIwEAYDVQQHDAlBbm4gQXJib3IxFzAVBgNVBAoMDkludGVybmV0Mi9USUVSMRcw -FQYDVQQDDA5zcC5leGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAMTNJmsNpTpR4NrDJwOgK/o3UYlNdi1c6xBflt+liLAsQc160QReV4dS -SGK8LZvN58a/BTIsH8dLhQlUQ8qQUY2AfolVrNxb7Waumeh/POzYUTRylnoGpU3W -bGMEPxE/AdgP5U/adYvyu4XI5epv7wjZJOTqcVag15SalY+aso+ZC/5l+UzRxmWB -ZxKTsSL1y7PFehY4/Zl3Y3oGVsVl/zspt5lteoZQeeVxUX29S3Af11yHY4xpEp+7 -rvAzY/nlsTiHAsUoCFK/NFQ2evvSRx52B9Fk1cWP1MDVDm2QjQqD9xBGYSnX6bhQ -ejVx7JUJHlblu2Q5p5XdW0BihgFluoECAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -n/qhYnIviPs4tglCdrw+M7gbqKNWadDC3F9HDYzlJMFeS/ae2turhEUgQPbYPDQQ -eO3oOILtvCXNFUPM58jf8V5YFRrOqrTgx44kexQDaHO5YYNft5tF5TdvBYE2gOVr -GdYrH2iSP8WX+Yy7JH5uqkfwWzEntWHJdey39rCWKAUCCB35+/2b4N53Qmlv2+ug -CpNJYFtXInd4YMmM5HjXLyoWXtjnKiwDqYUCeYPSwAajnCqRqRXUX0gYTFDRiwRP -HbmO9We0nqoc/71nikmGGoSRMO/zWVMFjwmAx1fGiWdU61sjGX8sHifzmVyJVEBI -Z75p+JrWYZJYrx/vpWxL8g== ------END CERTIFICATE----- diff --git a/demo/grouper/configs-and-secrets/grouper/httpd/host-key.pem b/demo/grouper/configs-and-secrets/grouper/httpd/host-key.pem deleted file mode 100644 index 1b0b579..0000000 --- a/demo/grouper/configs-and-secrets/grouper/httpd/host-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEzSZrDaU6UeDa -wycDoCv6N1GJTXYtXOsQX5bfpYiwLEHNetEEXleHUkhivC2bzefGvwUyLB/HS4UJ -VEPKkFGNgH6JVazcW+1mrpnofzzs2FE0cpZ6BqVN1mxjBD8RPwHYD+VP2nWL8ruF -yOXqb+8I2STk6nFWoNeUmpWPmrKPmQv+ZflM0cZlgWcSk7Ei9cuzxXoWOP2Zd2N6 -BlbFZf87KbeZbXqGUHnlcVF9vUtwH9dch2OMaRKfu67wM2P55bE4hwLFKAhSvzRU -Nnr70kcedgfRZNXFj9TA1Q5tkI0Kg/cQRmEp1+m4UHo1ceyVCR5W5btkOaeV3VtA -YoYBZbqBAgMBAAECggEAA/5t0ypZug9DUu0283niqpdIzlKGHXGPS6vE8hD37ytW -wobFiyMm/5YJ5gcPnePV2lCyGEyQ8Ih10LSnE4tOPGLpLnxQn8A11ymf8fnzEJNr -Qnc42o0b+bJqTLAfX4g5z1qzOqWiUQ7CA3sKP3G6FiHh/8tKNYnaFif09Q8cpJFb -YDDkvm48NJgsrIoCgmaFIQIn+yDzGQKWwTNMIks+RByWpc67j1x1kiyQM1RfrEev -Yyq/ZkP66IYZzmZKpFCWGs5qbRZdxyXNpq85DjwA99lAH7vxtMJHQM4z1h1eDH4L -Ma5hEnmmHu4D5lF2GDQYflvuFdDGH5tThO6MV0IrSQKBgQD+kvEtNxJCMxLOVFyV -NWF3pk/i2nkD+53t/VPXjMPtW7IesouEGzU82I/fT2wUTkNwFdkVpv37qoLypKZm -npJFxr6abQNjiDh2Fsh8/iuJfvdZUFJbCEY6NS58qgjix8XCQKRD06EugK7uekIZ -zJnttF3qVBBD8Z8Uwxz8i+jF1wKBgQDF51y/5XB6Bz47cdxw7P8NsfnTz2V3H0HU -OnlEBANbhmBadjU8dqbM54Nxbn7VOdooXPuSnAKJ9vPDg1n5Y/GO+lgldNzfyK6g -HnbldSu0zBvAaGvmAjLjetEtOkBqYkrHJlT6JAems/Kc/YX5uooAz9/jNJFXP9++ -KbjH3CzHZwKBgQC6ppxEDZPKi83nD/2NvMTIyFzcNFj0LaEepFW7vc7NkiSn0zrt -0lEXWqUqEv5oaPWTEcHH2VdxFRTLuSL0LKGMnWqUqQcKDA9xrcSzuFvNhRTwHC81 -5XwwI1wBNV4sgFKj2WdW/6y2/szDt0oNxnC50zvkmlwOpPKBc4kmNaKmowKBgBmC -uXIDIXyZcmw3QTNNWZNqXcnv8iRo4xN4dilOWyBxMfp3QmWI5feD4G2+0Jqr2nNZ -iRRdB/bA3qtVQ0PinkDQBIzPg6lVNS1uv+TUNc4YgXtL+pyrq+Om8U/jMmqEQR9q -0YltG49houSZyatnYGK6aSHgpNuaYD0jI66fsyYBAoGAMefyD0I/ncArjuf58hVQ -zSjxfcvlja9okrC8ZgqsVluezcm4rQNcSjBnESGTCjJC7O29AofGLHkvnsBQDiGk -hE38IRisd+okXdApr41ifWDhmtASud5q6wlhOpMmQxg+OALf1rTvFYhbnFEXV/KY -e5A4iXLRIbxbmXZDa35Rebw= ------END PRIVATE KEY----- diff --git a/demo/grouper/configs-and-secrets/grouper/httpd/shib.conf b/demo/grouper/configs-and-secrets/grouper/httpd/shib.conf new file mode 100755 index 0000000..9c33671 --- /dev/null +++ b/demo/grouper/configs-and-secrets/grouper/httpd/shib.conf @@ -0,0 +1,54 @@ +# https://wiki.shibboleth.net/confluence/display/SHIB2/NativeSPApacheConfig + +# RPM installations on platforms with a conf.d directory will +# result in this file being copied into that directory for you +# and preserved across upgrades. + +# For non-RPM installs, you should copy the relevant contents of +# this file to a configuration location you control. + +# +# Load the Shibboleth module. +# +LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so + +# +# Turn this on to support "require valid-user" rules from other +# mod_authn_* modules, and use "require shib-session" for anonymous +# session-based authorization in mod_shib. +# +ShibCompatValidUser Off + +# +# Ensures handler will be accessible. +# + + AuthType None + Require all granted + SetHandler shib + + +# +# Used for example style sheet in error templates. +# + + + AuthType None + Require all granted + + Alias /shibboleth-sp/main.css /usr/share/shibboleth/main.css + + +# +# Configure the module for content. +# +# You MUST enable AuthType shibboleth for the module to process +# any requests, and there MUST be a require command as well. To +# enable Shibboleth but not specify any session/access requirements +# use "require shibboleth". +# + + AuthType shibboleth + ShibRequestSetting requireSession 1 + require shib-session + diff --git a/demo/grouper/configs-and-secrets/grouper/shibboleth/idp-metadata.xml b/demo/grouper/configs-and-secrets/grouper/shibboleth/idp-metadata.xml deleted file mode 100644 index 4fa67a7..0000000 --- a/demo/grouper/configs-and-secrets/grouper/shibboleth/idp-metadata.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - example.org - - - - - - - -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= - - - - - - - - - -MIIDFDCCAfygAwIBAgIVAN3vv+b7KN5Se9m1RZsCllp/B/hdMA0GCSqGSIb3DQEB -CwUAMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwHhcNMTUxMjExMDIyMDE0WhcNMzUx -MjExMDIyMDE0WjAVMRMwEQYDVQQDDAppZHB0ZXN0YmVkMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAh91caeY0Q85uhaUyqFwP2bMjwMFxMzRlAoqBHd7g -u6eo4duaeLz1BaoR2XTBpNNvFR5oHH+TkKahVDGeH5+kcnIpxI8JPdsZml1srvf2 -Z6dzJsulJZUdpqnngycTkGtZgEoC1vmYVky2BSAIIifmdh6s0epbHnMGLsHzMKfJ -Cb/Q6dYzRWTCPtzE2VMuQqqWgeyMr7u14x/Vqr9RPEFsgY8GIu5jzB6AyUIwrLg+ -MNkv6aIdcHwxYTGL7ijfy6rSWrgBflQoYRYNEnseK0ZHgJahz4ovCag6wZAoPpBs -uYlY7lEr89Ucb6NHx3uqGMsXlDFdE4QwfDLLhCYHPvJ0uwIDAQABo1swWTAdBgNV -HQ4EFgQUAkOgED3iYdmvQEOMm6u/JmD/UTQwOAYDVR0RBDEwL4IKaWRwdGVzdGJl -ZIYhaHR0cHM6Ly9pZHB0ZXN0YmVkL2lkcC9zaGliYm9sZXRoMA0GCSqGSIb3DQEB -CwUAA4IBAQBIdd4YWlnvJjql8+zKKgmWgIY7U8DA8e6QcbAf8f8cdE33RSnjI63X -sv/y9GfmbAVAD6RIAXPFFeRYJ08GOxGI9axfNaKdlsklJ9bk4ducHqgCSWYVer3s -RQBjxyOfSTvk9YCJvdJVQRJLcCvxwKakFCsOSnV3t9OvN86Ak+fKPVB5j2fM/0fZ -Kqjn3iqgdNPTLXPsuJLJO5lITRiBa4onmVelAiCstI9PQiaEck+oAHnMTnC9JE/B -DHv3e4rwq3LznlqPw0GSd7xqNTdMDwNOWjkuOr3sGpWS8ms/ZHHXV1Vd22uPe70i -s00xrv14zLifcc8oj5DYzOhYRifRXgHX - - - - - - - - - -MIIDEzCCAfugAwIBAgIUG6Nn1rlERS1vsi88tcdzSYX0oqAwDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMTRaFw0zNTEy -MTEwMjIwMTRaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCBXv0o3fmT8iluyLjJ4lBAVCW+ZRVyEXPYQuRi7vfD -cO4a6d1kxiJLsaK0W88VNxjFQRr8PgDkWr28vwoH1rgk4pLsszLD48DBzD942peJ -l/S6FnsIJjmaHcBh4pbNhU4yowu63iKkvttrcZAEbpEro6Z8CziWEx8sywoaYEQG -ifPkr9ORV6Cn3txq+9gMBePG41GrtZrUGIu+xrndL0Shh4Pq0eq/9MAsVlIIXEa8 -9WfH8J2kFcTOfoWtIc70b7TLZQsx4YnNcnrGLSUEcstFyPLX+Xtv5SNZF89OOIxX -VNjNvgE5DbJb9hMM4UAFqI+1bo9QqtxwThjc/sOvIxzNAgMBAAGjWzBZMB0GA1Ud -DgQWBBStTyogRPuAVG6q7yPyav1uvE+7pTA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAFMfoOv+oISGjvamq7+Y4G7ep5vxlAPeK3RATYPYvAmyH946qZXh98ni -QXyuqZW5P5eEt86toY45IwDU5r09SKwHughEe99iiEkxh0mb2qo84qX9/qcg+kyN -jeLd/OSyolpUCEFNwOFcog7pj7Eer+6AHbwTn1Mjb5TBsKwtDMJsaxPvdj0u7M5r -xL/wHkFhn1rCo2QiojzjSlV3yLTh49iTyhE3cG+RxaNKDCxhp0jSSLX1BW/ZoPA8 -+PMJEA+Q0QbyRD8aJOHN5O8jGxCa/ZzcOnYVL6AsEXoDiY3vAUYh1FUonOWw0m9H -p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - - - - - - urn:mace:shibboleth:1.0:nameIdentifier - urn:oasis:names:tc:SAML:2.0:nameid-format:transient - - - - - - - - - - - - - localhost - - - - - - -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= - - - - - - - - - -MIIDFDCCAfygAwIBAgIVAN3vv+b7KN5Se9m1RZsCllp/B/hdMA0GCSqGSIb3DQEB -CwUAMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwHhcNMTUxMjExMDIyMDE0WhcNMzUx -MjExMDIyMDE0WjAVMRMwEQYDVQQDDAppZHB0ZXN0YmVkMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAh91caeY0Q85uhaUyqFwP2bMjwMFxMzRlAoqBHd7g -u6eo4duaeLz1BaoR2XTBpNNvFR5oHH+TkKahVDGeH5+kcnIpxI8JPdsZml1srvf2 -Z6dzJsulJZUdpqnngycTkGtZgEoC1vmYVky2BSAIIifmdh6s0epbHnMGLsHzMKfJ -Cb/Q6dYzRWTCPtzE2VMuQqqWgeyMr7u14x/Vqr9RPEFsgY8GIu5jzB6AyUIwrLg+ -MNkv6aIdcHwxYTGL7ijfy6rSWrgBflQoYRYNEnseK0ZHgJahz4ovCag6wZAoPpBs -uYlY7lEr89Ucb6NHx3uqGMsXlDFdE4QwfDLLhCYHPvJ0uwIDAQABo1swWTAdBgNV -HQ4EFgQUAkOgED3iYdmvQEOMm6u/JmD/UTQwOAYDVR0RBDEwL4IKaWRwdGVzdGJl -ZIYhaHR0cHM6Ly9pZHB0ZXN0YmVkL2lkcC9zaGliYm9sZXRoMA0GCSqGSIb3DQEB -CwUAA4IBAQBIdd4YWlnvJjql8+zKKgmWgIY7U8DA8e6QcbAf8f8cdE33RSnjI63X -sv/y9GfmbAVAD6RIAXPFFeRYJ08GOxGI9axfNaKdlsklJ9bk4ducHqgCSWYVer3s -RQBjxyOfSTvk9YCJvdJVQRJLcCvxwKakFCsOSnV3t9OvN86Ak+fKPVB5j2fM/0fZ -Kqjn3iqgdNPTLXPsuJLJO5lITRiBa4onmVelAiCstI9PQiaEck+oAHnMTnC9JE/B -DHv3e4rwq3LznlqPw0GSd7xqNTdMDwNOWjkuOr3sGpWS8ms/ZHHXV1Vd22uPe70i -s00xrv14zLifcc8oj5DYzOhYRifRXgHX - - - - - - - - - -MIIDEzCCAfugAwIBAgIUG6Nn1rlERS1vsi88tcdzSYX0oqAwDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMTRaFw0zNTEy -MTEwMjIwMTRaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCBXv0o3fmT8iluyLjJ4lBAVCW+ZRVyEXPYQuRi7vfD -cO4a6d1kxiJLsaK0W88VNxjFQRr8PgDkWr28vwoH1rgk4pLsszLD48DBzD942peJ -l/S6FnsIJjmaHcBh4pbNhU4yowu63iKkvttrcZAEbpEro6Z8CziWEx8sywoaYEQG -ifPkr9ORV6Cn3txq+9gMBePG41GrtZrUGIu+xrndL0Shh4Pq0eq/9MAsVlIIXEa8 -9WfH8J2kFcTOfoWtIc70b7TLZQsx4YnNcnrGLSUEcstFyPLX+Xtv5SNZF89OOIxX -VNjNvgE5DbJb9hMM4UAFqI+1bo9QqtxwThjc/sOvIxzNAgMBAAGjWzBZMB0GA1Ud -DgQWBBStTyogRPuAVG6q7yPyav1uvE+7pTA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAFMfoOv+oISGjvamq7+Y4G7ep5vxlAPeK3RATYPYvAmyH946qZXh98ni -QXyuqZW5P5eEt86toY45IwDU5r09SKwHughEe99iiEkxh0mb2qo84qX9/qcg+kyN -jeLd/OSyolpUCEFNwOFcog7pj7Eer+6AHbwTn1Mjb5TBsKwtDMJsaxPvdj0u7M5r -xL/wHkFhn1rCo2QiojzjSlV3yLTh49iTyhE3cG+RxaNKDCxhp0jSSLX1BW/ZoPA8 -+PMJEA+Q0QbyRD8aJOHN5O8jGxCa/ZzcOnYVL6AsEXoDiY3vAUYh1FUonOWw0m9H -p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - - - - - - - - - - - - - diff --git a/demo/grouper/configs-and-secrets/grouper/shibboleth/shibboleth2.xml b/demo/grouper/configs-and-secrets/grouper/shibboleth/shibboleth2.xml old mode 100644 new mode 100755 index 0c38f82..e2d12ab --- a/demo/grouper/configs-and-secrets/grouper/shibboleth/shibboleth2.xml +++ b/demo/grouper/configs-and-secrets/grouper/shibboleth/shibboleth2.xml @@ -1,60 +1,53 @@ - + + - - + REMOTE_USER="uid" + cipherSuites="DEFAULT:!EXP:!LOW:!aNULL:!eNULL:!DES:!IDEA:!SEED:!RC4:!3DES:!kRSA:!SSLv2:!SSLv3:!TLSv1:!TLSv1.1"> - + - - SAML2 - + --> + + SAML2 + SAML2 Local - + + + + - + @@ -65,19 +58,25 @@ - + + + + - - + + + - - - - - - - + + - Example of a second application (for a second vhost) that has a different entityID. - Resources on the vhost would map to an applicationId of "admin": - --> - diff --git a/demo/grouper/configs-and-secrets/grouper/shibboleth/sp-cert.pem b/demo/grouper/configs-and-secrets/grouper/shibboleth/sp-cert.pem deleted file mode 100644 index 9cc228a..0000000 --- a/demo/grouper/configs-and-secrets/grouper/shibboleth/sp-cert.pem +++ /dev/null @@ -1,20 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDPDCCAiQCCQDNZe8r0hVtuTANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxFzAVBgNVBAMMDnNwLmV4YW1wbGUub3JnMB4XDTE3MDkyMjE5 -NTAzNVoXDTI3MDkyMDE5NTAzNVowYDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1J -MRIwEAYDVQQHDAlBbm4gQXJib3IxFzAVBgNVBAoMDkludGVybmV0Mi9USUVSMRcw -FQYDVQQDDA5zcC5leGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAMTNJmsNpTpR4NrDJwOgK/o3UYlNdi1c6xBflt+liLAsQc160QReV4dS -SGK8LZvN58a/BTIsH8dLhQlUQ8qQUY2AfolVrNxb7Waumeh/POzYUTRylnoGpU3W -bGMEPxE/AdgP5U/adYvyu4XI5epv7wjZJOTqcVag15SalY+aso+ZC/5l+UzRxmWB -ZxKTsSL1y7PFehY4/Zl3Y3oGVsVl/zspt5lteoZQeeVxUX29S3Af11yHY4xpEp+7 -rvAzY/nlsTiHAsUoCFK/NFQ2evvSRx52B9Fk1cWP1MDVDm2QjQqD9xBGYSnX6bhQ -ejVx7JUJHlblu2Q5p5XdW0BihgFluoECAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -n/qhYnIviPs4tglCdrw+M7gbqKNWadDC3F9HDYzlJMFeS/ae2turhEUgQPbYPDQQ -eO3oOILtvCXNFUPM58jf8V5YFRrOqrTgx44kexQDaHO5YYNft5tF5TdvBYE2gOVr -GdYrH2iSP8WX+Yy7JH5uqkfwWzEntWHJdey39rCWKAUCCB35+/2b4N53Qmlv2+ug -CpNJYFtXInd4YMmM5HjXLyoWXtjnKiwDqYUCeYPSwAajnCqRqRXUX0gYTFDRiwRP -HbmO9We0nqoc/71nikmGGoSRMO/zWVMFjwmAx1fGiWdU61sjGX8sHifzmVyJVEBI -Z75p+JrWYZJYrx/vpWxL8g== ------END CERTIFICATE----- diff --git a/demo/grouper/configs-and-secrets/grouper/shibboleth/sp-key.pem b/demo/grouper/configs-and-secrets/grouper/shibboleth/sp-key.pem deleted file mode 100644 index 1b0b579..0000000 --- a/demo/grouper/configs-and-secrets/grouper/shibboleth/sp-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDEzSZrDaU6UeDa -wycDoCv6N1GJTXYtXOsQX5bfpYiwLEHNetEEXleHUkhivC2bzefGvwUyLB/HS4UJ -VEPKkFGNgH6JVazcW+1mrpnofzzs2FE0cpZ6BqVN1mxjBD8RPwHYD+VP2nWL8ruF -yOXqb+8I2STk6nFWoNeUmpWPmrKPmQv+ZflM0cZlgWcSk7Ei9cuzxXoWOP2Zd2N6 -BlbFZf87KbeZbXqGUHnlcVF9vUtwH9dch2OMaRKfu67wM2P55bE4hwLFKAhSvzRU -Nnr70kcedgfRZNXFj9TA1Q5tkI0Kg/cQRmEp1+m4UHo1ceyVCR5W5btkOaeV3VtA -YoYBZbqBAgMBAAECggEAA/5t0ypZug9DUu0283niqpdIzlKGHXGPS6vE8hD37ytW -wobFiyMm/5YJ5gcPnePV2lCyGEyQ8Ih10LSnE4tOPGLpLnxQn8A11ymf8fnzEJNr -Qnc42o0b+bJqTLAfX4g5z1qzOqWiUQ7CA3sKP3G6FiHh/8tKNYnaFif09Q8cpJFb -YDDkvm48NJgsrIoCgmaFIQIn+yDzGQKWwTNMIks+RByWpc67j1x1kiyQM1RfrEev -Yyq/ZkP66IYZzmZKpFCWGs5qbRZdxyXNpq85DjwA99lAH7vxtMJHQM4z1h1eDH4L -Ma5hEnmmHu4D5lF2GDQYflvuFdDGH5tThO6MV0IrSQKBgQD+kvEtNxJCMxLOVFyV -NWF3pk/i2nkD+53t/VPXjMPtW7IesouEGzU82I/fT2wUTkNwFdkVpv37qoLypKZm -npJFxr6abQNjiDh2Fsh8/iuJfvdZUFJbCEY6NS58qgjix8XCQKRD06EugK7uekIZ -zJnttF3qVBBD8Z8Uwxz8i+jF1wKBgQDF51y/5XB6Bz47cdxw7P8NsfnTz2V3H0HU -OnlEBANbhmBadjU8dqbM54Nxbn7VOdooXPuSnAKJ9vPDg1n5Y/GO+lgldNzfyK6g -HnbldSu0zBvAaGvmAjLjetEtOkBqYkrHJlT6JAems/Kc/YX5uooAz9/jNJFXP9++ -KbjH3CzHZwKBgQC6ppxEDZPKi83nD/2NvMTIyFzcNFj0LaEepFW7vc7NkiSn0zrt -0lEXWqUqEv5oaPWTEcHH2VdxFRTLuSL0LKGMnWqUqQcKDA9xrcSzuFvNhRTwHC81 -5XwwI1wBNV4sgFKj2WdW/6y2/szDt0oNxnC50zvkmlwOpPKBc4kmNaKmowKBgBmC -uXIDIXyZcmw3QTNNWZNqXcnv8iRo4xN4dilOWyBxMfp3QmWI5feD4G2+0Jqr2nNZ -iRRdB/bA3qtVQ0PinkDQBIzPg6lVNS1uv+TUNc4YgXtL+pyrq+Om8U/jMmqEQR9q -0YltG49houSZyatnYGK6aSHgpNuaYD0jI66fsyYBAoGAMefyD0I/ncArjuf58hVQ -zSjxfcvlja9okrC8ZgqsVluezcm4rQNcSjBnESGTCjJC7O29AofGLHkvnsBQDiGk -hE38IRisd+okXdApr41ifWDhmtASud5q6wlhOpMmQxg+OALf1rTvFYhbnFEXV/KY -e5A4iXLRIbxbmXZDa35Rebw= ------END PRIVATE KEY----- diff --git a/demo/grouper/configs-and-secrets/midpoint/httpd/host-cert.pem b/demo/grouper/configs-and-secrets/midpoint/httpd/host-cert.pem deleted file mode 100644 index 9b1021b..0000000 --- a/demo/grouper/configs-and-secrets/midpoint/httpd/host-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAMOSkn4oS2aAMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRcwFQYDVQQK -DA5JbnRlcm5ldDIvVElFUjEgMB4GA1UEAwwXbWlkcG9pbnQuc3AuZXhhbXBsZS5v -cmcwHhcNMTgwOTE0MDU1OTQ1WhcNMTkwOTE0MDU1OTQ1WjBpMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxIDAeBgNVBAMMF21pZHBvaW50LnNwLmV4YW1wbGUub3JnMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApj/b7MEUSfu3oXMfNgRwTse7 -a5UV7Jswf1M/ZN/ZZkAkIxNBevZgozjesvLPWrmsTgONi7XigJUJvCjdjmlW9eDM -lri/rkD8HuOR1DQCVKL9nvoS2c3D7sq5Emda3V8Tlj82VqfEmePd3sajx7mcTfbH -8jwAL9NhkC+WMib5IpjLGpG0FEAC0ha7Lxb+7jIiqHVJaqLXJGCyGN4mh6c1Q9S1 -f8RVTiW2a8x22G+9wnZYbkiA2Kxls177imHlhSz8EdvV4IpGw1amrEWhhuDEum7B -vZ1xQDLatgRqh4qAKLIVYeRnJ8H1FelMa90qB4G08MIPifmTsQwqJyBYaEdgWQID -AQABo1MwUTAdBgNVHQ4EFgQUqb9BteODF6wv5R57aEON/wGXMiowHwYDVR0jBBgw -FoAUqb9BteODF6wv5R57aEON/wGXMiowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG -9w0BAQsFAAOCAQEAAcKhxI+tSItrXmqC0PSmgWyAYpqbkz6W/cefTutXqhIgY09f -h0LSv7ogTahoGpyiZk9vy6u3OE9bYwxapEfa4KBjO6HxBMIVBBb3RegVjoPzjElN -BDwAx0VGFcZTXwMxDWycWdG8ql7rCZBvS50w04uTaIgnGmqXAdWWmBgfJ9cRbxW+ -JwO/mOl1QM1lR/5142NpvuUVWlmZSKEGydE5A1qPz2wpDbBR1ym1BQNS4NEqw6Kp -GSB8jKyCS1Ve0v2wVze2038Wukz02dq9uKPTIO3T+B+ibZmxn6Op/kFCc1/kK5NS -Q6JdO1B6KquGAYdGmKAcQ19mv+jqGktqWEEf0g== ------END CERTIFICATE----- diff --git a/demo/grouper/configs-and-secrets/midpoint/httpd/host-key.pem b/demo/grouper/configs-and-secrets/midpoint/httpd/host-key.pem deleted file mode 100644 index 5746e59..0000000 --- a/demo/grouper/configs-and-secrets/midpoint/httpd/host-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmP9vswRRJ+7eh -cx82BHBOx7trlRXsmzB/Uz9k39lmQCQjE0F69mCjON6y8s9auaxOA42LteKAlQm8 -KN2OaVb14MyWuL+uQPwe45HUNAJUov2e+hLZzcPuyrkSZ1rdXxOWPzZWp8SZ493e -xqPHuZxN9sfyPAAv02GQL5YyJvkimMsakbQUQALSFrsvFv7uMiKodUlqotckYLIY -3iaHpzVD1LV/xFVOJbZrzHbYb73CdlhuSIDYrGWzXvuKYeWFLPwR29XgikbDVqas -RaGG4MS6bsG9nXFAMtq2BGqHioAoshVh5GcnwfUV6Uxr3SoHgbTwwg+J+ZOxDCon -IFhoR2BZAgMBAAECggEAEIRBpjjceiku6jRUwnoYaks/nIWYQwR8AfpUTwJKR/VR -Yca097Fokm7A+UhUP3A45RtHQb0VPq8P44iv0kk24YCu8r5yFK7SHYOAZnOwU5ZJ -2jSAEPF3aM7tKh3okhuzB3dKP7u1NZDE5zAW723KUJiW7sL1RcsbY0bHBj6G+9/H -NplmsjuGt684vRBB0qOBfKF7EiG7mT69tHuNj4gRza9SMY31UtKbZdt2fNY6mp5V -HscMba7egZP+Ke0pVX4+go9j7K8GG8hYaQDLjrzlPqrxZ2c5X9cC+CRDI/CHuL/s -V/2yGZJ6n6UabwZoH83RdFrbQ94rU8Hkli6EvxXvMQKBgQDRpheNW5jDG5TfeJKh -yfKTDQqH2Tk3BsBYYBN7Hf3m7vbkzlxnAKJAoSLmtRMuoeXvI5MrhzaHGsNIUS76 -LDIZnvB7DLUxhFUZsCPkpAA1QHuTWY96oR3PHnPjpk8lSUvtbOPwDLdzVApeFJgZ -VqMNArZ7AHsK3Kkyi+f4WVQjbQKBgQDLAWiGb5dx6fAM2W6B6HjNmzjBWOuVEXa2 -76to9jzupBZmETfZgxtWUaWUDuNS+f7dtVUTE+p6v/w8clrHEhEZYkqunIOLo/UA -LFPiuoTfEsWb1rh+nsCjCgy4uimixj/bSkf7NC6NyKTvCygA1mGnVVJUEPegYlDy -LXCkaKWxHQKBgQCmyHSKL2lrJkEcOwakEU2acNCE3Gno/cT9SYmV83kvQ8JEqmrW -QqnRsp9aXIljGscapPmKsmnNt5vNp1AxFAHTYh88NRLczsMIyZj0ZwgHVUI6KhC7 -5Psa78YQQBlMt2/g9TSsnuE+rYgF6mpKFiNm0Vasqeg47uzn2mdzqlUGTQKBgE04 -JutkTUY+h1pL5vYxWKpVDfy19z7H2tFxT1FowPrBneeLSyRI88Ac5I/yLdRlVeY9 -0LOmEr5Igwj3MsKgg7KVKfVLgdo/LrW3Jt2Kt3onKNXDkoBPoNUjwH0QC0Boiue+ -VK0gR0kVdm+bXccbxR+im+NwZNE0NLg6Qqu3RredAoGBALuVoqbPPmTCZXYG328H -bzOs2aiR7BzPSVByV+qG6jW7w03RAnFPJZp7HMU+ViI5VY0wabUscMSvz5163+gM -4KwY3v9ZjZzZGukIfLuudkdqtaiVOx/KeAC0n+nG21YU+wpZww8gkfHh1/sa2CME -CWYCgOnmiTHcj83UaTqEXtmv ------END PRIVATE KEY----- diff --git a/demo/grouper/configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks b/demo/grouper/configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks deleted file mode 100644 index af2e8f4419d077e8ae227c37281051c1c19e226f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5886 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 VdZCw`awABr^XhLh;y>pK{sTX1z~2A> diff --git a/demo/grouper/create-ref-loaders.gsh b/demo/grouper/create-ref-loaders.gsh deleted file mode 100644 index 0cfdcdf..0000000 --- a/demo/grouper/create-ref-loaders.gsh +++ /dev/null @@ -1,31 +0,0 @@ -gs = GrouperSession.startRootSession() - -group = new GroupSave(gs).assignName("etc:affiliationLoader").assignCreateParentStemsIfNotExist(true).save() -group.addType(GroupTypeFinder.find("grouperLoader")) -group.setAttribute("grouperLoaderDbName", "sis") -group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") -group.setAttribute("grouperLoaderScheduleType", "CRON") -group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") -group.setAttribute("grouperLoaderDbName", "sis") -group.setAttribute("grouperLoaderGroupTypes", "addIncludeExclude") -group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:affiliation:',affiliation,'_systemOfRecord') as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_AFFILIATIONS") - -group = new GroupSave(gs).assignName("etc:deptLoader").assignCreateParentStemsIfNotExist(true).save() -group.addType(GroupTypeFinder.find("grouperLoader")) -group.setAttribute("grouperLoaderDbName", "sis") -group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") -group.setAttribute("grouperLoaderScheduleType", "CRON") -group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") -group.setAttribute("grouperLoaderDbName", "sis") -group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:dept:',department) as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_PERSONS where department is not null") - -group = new GroupSave(gs).assignName("etc:coursesLoader").assignCreateParentStemsIfNotExist(true).save() -group.addType(GroupTypeFinder.find("grouperLoader")) -group.setAttribute("grouperLoaderDbName", "sis") -group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") -group.setAttribute("grouperLoaderScheduleType", "CRON") -group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") -group.setAttribute("grouperLoaderDbName", "sis") -group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:course:',courseId) as GROUP_NAME, uid as SUBJECT_ID, 'ldap' as SUBJECT_SOURCE_ID from SIS_COURSES") - -edu.internet2.middleware.grouper.app.loader.GrouperLoaderType.scheduleLoads() diff --git a/demo/grouper/create-ref-loaders.sh b/demo/grouper/create-ref-loaders.sh deleted file mode 100755 index c9cd9cc..0000000 --- a/demo/grouper/create-ref-loaders.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -execute_gsh grouper_grouper_daemon_1 create-ref-loaders.gsh diff --git a/demo/grouper/directory/Dockerfile b/demo/grouper/directory/Dockerfile index 6e34ead..9a0948d 100644 --- a/demo/grouper/directory/Dockerfile +++ b/demo/grouper/directory/Dockerfile @@ -1,28 +1,39 @@ -FROM centos:centos7 - -LABEL author="tier-packaging@internet2.edu " - -RUN yum install -y epel-release \ - && yum update -y \ - && yum install -y 389-ds-base \ - && yum clean all \ - && rm -rf /var/cache/yum - -COPY container_files/seed-data/ /seed-data/ - -RUN useradd ldapadmin \ - && rm -fr /var/lock /usr/lib/systemd/system \ - # The 389-ds setup will fail because the hostname can't reliable be determined, so we'll bypass it and then install. \ - && sed -i 's/checkHostname {/checkHostname {\nreturn();/g' /usr/lib64/dirsrv/perl/DSUtil.pm \ - # Not doing SELinux \ - && sed -i 's/updateSelinuxPolicy($inf);//g' /usr/lib64/dirsrv/perl/* \ - # Do not restart at the end \ - && sed -i '/if (@errs = startServer($inf))/,/}/d' /usr/lib64/dirsrv/perl/* \ - && setup-ds.pl --silent --file /seed-data/ds-setup.inf \ - && /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-dir \ - && while ! curl -s ldap://localhost:389 > /dev/null; do echo waiting for ldap to start; sleep 1; done; \ - ldapadd -H ldap:/// -f /seed-data/data.ldif -x -D "cn=Directory Manager" -w password - -EXPOSE 389 - -CMD rm -rf /var/lock/dirsrv/slapd-dir/server/* && /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-dir && sleep infinity +FROM rockylinux:9.3 as baseinst + +RUN dnf update -y && \ + dnf install -y --enablerepo=devel openldap openldap-clients openldap-servers && \ + dnf clean all && \ + rm -rf /var/cache/dnf + +EXPOSE 389/tcp + +VOLUME /var/lib/ldap + +FROM baseinst + +#LABEL author="tier-packaging@internet2.edu " + +ARG ldapDomain="dc=internet2,dc=edu" +ARG ldapPw="password" + +ADD https://raw.githubusercontent.com/REFEDS/eduperson/master/schema/openldap/eduperson.ldif /etc/openldap/schema + +COPY container_files/* /opt + +RUN cd /opt ; \ + /opt/update_schema /etc/openldap/slapd.d/cn\=config/cn\=schema/cn\=\{0\}core.ldif groupOfUniqueNames uniqueMember cn ; \ + /opt/update_schema /etc/openldap/slapd.d/cn\=config/cn\=schema/cn\=\{0\}core.ldif groupOfNames member cn ; \ + /opt/slapd.sh -init ; \ + /opt/gen_config_update "${ldapDomain}" "${ldapPw}" "0" "0" ;\ + cat 999_schema-list | while read line ; do \ + ldapadd -H ldapi:/// -f /etc/openldap/schema/${line}.ldif ; \ + done ; \ + for s in 0 1 2 3 4 5 6 7 8 9 ; do \ + find -type f -name "${s}[0-4]?_*.ldif" -exec ldapmodify -H ldapi:/// -f /opt/\{\} \; ; \ + find -type f -name "${s}[5-9]?_*.ldif" -exec ldapadd -H ldapi:/// -f /opt/\{\} \; ; \ + done ; \ + rm /opt/[0-9]* && \ + /opt/slapd.sh -stop ; + +CMD [ "/opt/slapd.sh", "-limit", "1024", "-debug", "256" ] + diff --git a/demo/grouper/directory/container_files/gen_config_update b/demo/grouper/directory/container_files/gen_config_update new file mode 100755 index 0000000..a2d5647 --- /dev/null +++ b/demo/grouper/directory/container_files/gen_config_update @@ -0,0 +1,241 @@ +#!/bin/bash +domain="${1:-dc=example,dc=com}" +if [ $(echo -n ${domain} | wc -c ) -eq $(echo -n ${domain} | tr -d "," | wc -c) ] +then + subDomain="${domain:4}" +else + subDomain="$(echo -n ${domain:4} | cut -d , -f 1)" +fi +userpw="${2:-change_me}" +cleartext="${3:-0}" +locDebug="${4:-0}" + +function genPass() { + retVal="userPassword:" + if [ "${cleartext}" != "1" ] + then + secPw="$(slappasswd -s ${userpw})" + secPw2="$(echo -n ${secPw} | base64 )" + [ "${locDebug}" != "0" ] && echo "${userpw} => ${secPw} => ${secPw2}" >&2 + retVal="${retVal}: ${secPw2}" + else + [ "${locDebug}" != "0" ] && echo "${userpw}" >&2 + retVal="${retVal} ${userpw}" + fi + while [ ${#retVal} -gt 78 ] + do + echo "${retVal:0:78}" + retVal=" ${retVal:78}" + done + if [ ${#retVal} -gt 2 ] + then + echo "${retVal}" + fi +} + +cat >999_schema-list <001_monitor-diff.ldif <101_mdb-diff.ldif <251_mod_config.ldif <151_default_structure.ldif <252_default_policy.ldif <851_default_structure.ldif <959_default_structure.ldif <&2 + ulimit -n ${localLimit} + exec /usr/sbin/slapd -4 -h "ldapi:///" -u ldap -g ldap + exit 0 + ;; + stop) + while read line + do + kill ${line} + count=0 + while [ -e /proc/${line} ] + do + [ ${count} -gt 10 ] && kill -9 ${line} + echo "Waiting to terminate the process" + count=$(( ${count} + 1 )) + sleep 1 + done + echo "Terminated..." + ${0} -stop + done < <( grep "^slapd$" /proc/*/comm | head -1 | cut -d / -f 3 ) + exit 0 + ;; + esac +done + +ulimit -n ${localLimit} + + +if [ -z ${LDAP_INIT+x} ] +then + [ ! -z ${LDAP_INFO+x} ] && echo "uLimit : ${localLimit} / debug level : ${debugLevel}" >&2 + exec /usr/sbin/slapd -h "ldap://0.0.0.0:389 ldapi:///" -u ldap -g ldap -d ${debugLevel} +else + [ ! -z ${LDAP_INFO+x} ] && echo "uLimit : ${localLimit}" >&2 + exec /usr/sbin/slapd -4 -h "ldapi:///" -u ldap -g ldap +fi + diff --git a/demo/grouper/directory/container_files/update_schema b/demo/grouper/directory/container_files/update_schema new file mode 100755 index 0000000..9fccca9 --- /dev/null +++ b/demo/grouper/directory/container_files/update_schema @@ -0,0 +1,103 @@ +#!/bin/bash +[ "${1}" == "" ] && exit 1 + +function getLines { + nLine=1 + grep -n ^olc "${1}" | \ + grep -A 1 "${2}" | \ + cut -d : -f 1 | \ + while read line + do + if [ ${nLine} -eq 1 ] + then + echo -n "${line}," + else + echo "$(( ${line} - 1))" + fi + nLine=$(( ${nLine} + 1 )) + done +} + +function getCurrent { + sed -n "${2}p" "${1}" | sed "s/^ //g" | tr -d "\n" + echo +} + +function convertToOptional { + if [ "${2}" != "" ] + then + original="${1} \$ ${2}" + else + original="${1}" + fi + read line + if [ $( echo "${line}" | grep -c "MUST ( ${original} )" ) -gt 0 ] + then + echo "${line}" | sed "s/MUST ( ${original} )/MUST ( ${2:-} )/; s/MAY (/MAY ( ${1} \$/" + else + echo "${line}" + fi +} + +function wrapLine() { + lineToWrap="${1:-}" + while [ ${#lineToWrap} -gt 0 ] + do + if [ ${#lineToWrap} -ge 78 ] + then + echo "${lineToWrap:0:78}" + lineToWrap=" ${lineToWrap:78}" + else + echo "${lineToWrap}" + lineToWrap="" + fi + done +} + +function replaceLine { + newline=$( echo -n ${2} | cut -d , -f 1) + sed -i "${2}d" "${1}" + firstLine=1 + while read line + do + if [ ${firstLine} -eq 1 ] + then + sed -i "${newline} i ${line}" "${1}" + firstLine=0 + else + sed -i "${newline} i\ ${line}" "${1}" + fi + newline=$(( ${newline} + 1 )) + done +} + +function updateModifyTimestamp { + sed -i "s/^modifyTimestamp:.*/modifyTimestamp: $(date -u +%Y%m%d%H%M%SZ)/" "${1}" +} + + +function calculateCRC { + tail -n +3 "${1}" | \ + gzip -1 -c | \ + tail -c8 | \ + hexdump -n4 | \ + head -1 | \ + sed "s/[^[:space:]]*[[:space:]]\([^[:space:]]*\)[[:space:]]\([^[:space:]]*\)/# CRC32 \2\1/" +} + +function updateCRC { + sed -i "s/# CRC32.*/$(calculateCRC "${1}")/" "${1}" +} + +lines="$(getLines "${1}" "${2}")" +origLine="$(getCurrent "${1}" "${lines}")" +newLine="$(echo ${origLine} | convertToOptional "${3}" "${4}")" +if [ "${origLine}" != "${newLine}" ] +then + echo "updating... / ${1} : ${2} ( ${3} : MUST => MAY) " + wrapLine "${newLine}" | replaceLine "${1}" "${lines}" + updateModifyTimestamp "${1}" + updateCRC "${1}" +else + echo "nothing to update... / ${1} : ${2} ( ${3} : MUST => MAY) " +fi diff --git a/demo/grouper/docker-compose.yml b/demo/grouper/docker-compose.yml index a80751a..b96f1d7 100644 --- a/demo/grouper/docker-compose.yml +++ b/demo/grouper/docker-compose.yml @@ -1,164 +1,326 @@ version: "3.3" services: + prereq: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + command: > + bash -c " + echo ' - - - - - - -' ; + cd /mnt/security ; + if [ ! -e key.pem ] ; + then + echo 'Certificate has not been found. Generating of the new one...' ; + if [ -e /mnt/grouper-http/host-cert.pem -a -e /mnt/grouper-http/host-key.pem ] ; + then + echo 'Taking existing http certs... '; + cp /mnt/grouper-http/host-cert.pem cert.pem ; + cp /mnt/grouper-http/host-key.pem key.pem ; + else + echo 'Generating existing http certs... '; + openssl req -newkey rsa:2048 -keyout key.pem -nodes -subj '/C=US/ST=MI/L=Ann Arbor/O=Internet2\\/TIER/CN=midpoint.sp.example.org' -addext 'subjectAltName = DNS:midpoint.sp.example.org, DNS:midpoint_server, DNS:directory, DNS:idp, DNS: localhost, DNS: localhost.localdomain, IP:127.0.0.1, IP:::1' -out cert.pem -days 1825 -x509 -addext "basicConstraints=CA:FALSE"; + fi ; + openssl req -newkey rsa:2048 -keyout sp-key.pem -nodes -subj '/C=US/ST=MI/L=Ann Arbor/O=Internet2\\/TIER/CN=sp.example.org' -out sp-cert.pem -days 3650 -x509 ; + openssl req -newkey rsa:3072 -keyout sp-signing-key.pem -nodes -subj '/CN=sptest.example.edu' -addext 'subjectAltName = DNS:sptest.example.edu' -out sp-signing-cert.pem -days 3650 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-backchannel.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-backchannel.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-encryption.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-encryption.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-signing.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-signing.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-browser.key -nodes -subj '/CN=idp.ccc.local' -addext 'authorityKeyIdentifier = keyid:always,issuer:always' -out idp-browser.crt -days 10585 -x509 ; + openssl x509 -noout -fingerprint -sha256 -in cert.pem ; + openssl pkcs12 -export -in sp-signing-cert.pem -inkey sp-signing-key.pem -out signing-key.p12 -passout pass:password -name signing-key ; + openssl pkcs12 -export -in cert.pem -inkey key.pem -out keystore.p12 -passout pass:password -name selfsigned ; + keytool -importkeystore -srckeystore signing-key.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias signing-key -destkeystore shibboleth_sp_keys.jks -deststoretype jks -deststorepass changeit -noprompt -destalias signing-key ; + keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias selfsigned -destkeystore keystore.jks -deststoretype jks -deststorepass password -noprompt -destalias selfsigned ; + keytool -list -keystore shibboleth_sp_keys.jks -storetype jceks -storepass changeit ; + keytool -list -keystore keystore.jks -storetype jceks -storepass password ; + openssl pkcs12 -export -in idp-backchannel.crt -inkey idp-backchannel.key -out idp-backchannel.p12 -passout pass:password -name idptestbed ; + openssl pkcs12 -export -in idp-browser.crt -inkey idp-browser.key -out idp-browser.p12 -passout pass:password -name myAlias ; + for s in *ert.pem *.crt ; do echo ' - - - - - ' ; echo $${s} ; openssl x509 -noout -fingerprint -sha256 -in $${s} ; echo ; openssl x509 -noout -subject -subject_hash -dates -in $${s} ; done ; + echo ' - - - - - ' ; + mkdir /mnt/midpoint/var/shibboleth ; + cp shibboleth_sp_keys.jks /mnt/midpoint/var/shibboleth ; + cp cert.pem /mnt/midpoint/var ; + cp key.pem /mnt/midpoint/var ; + cp cert.pem /mnt/nginx-cert ; + cp key.pem /mnt/nginx-cert ; + echo ' server {' >> /mnt/nginx-conf/default.conf ; + echo ' listen 80 default_server;' >> /mnt/nginx-conf/default.conf ; + echo ' server_name localhost;' >> /mnt/nginx-conf/default.conf ; + echo '' >> /mnt/nginx-conf/default.conf ; + echo ' return 301 https://$server_name$request_uri;' >> /mnt/nginx-conf/default.conf ; + echo '}' >> /mnt/nginx-conf/default.conf ; + echo ' server {' >> /mnt/nginx-conf/midpoint.conf ; + echo ' listen 443 ssl default_server;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' server_name localhost;' >> /mnt/nginx-conf/midpoint.conf ; + echo '' >> /mnt/nginx-conf/midpoint.conf ; + echo ' ssl_certificate /etc/nginx/certs/cert.pem;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' ssl_certificate_key /etc/nginx/certs/key.pem;' >> /mnt/nginx-conf/midpoint.conf ; + echo '' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' location / {' >> /mnt/nginx-conf/midpoint.conf ; + echo ' rewrite ^/$ /midpoint/ last;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' rewrite ^/midpoint$ /midpoint/ last;' >> /mnt/nginx-conf/midpoint.conf ; + echo '' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_set_header X-Real-IP $$remote_addr;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_set_header X-Forwarded-Host: $$host;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_set_header X-Forwarded-Proto: $$scheme;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_pass http://midpoint-container:8080/;' >> /mnt/nginx-conf/midpoint.conf ; + echo '' >> /mnt/nginx-conf/midpoint.conf ; + echo ' }' >> /mnt/nginx-conf/midpoint.conf ; + echo '' >> /mnt/nginx-conf/midpoint.conf ; + echo ' location /idp {' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_set_header Host localhost;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' proxy_pass https://idp:443/idp ;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' }' >> /mnt/nginx-conf/midpoint.conf ; + echo '' >> /mnt/nginx-conf/midpoint.conf ; + echo ' location /grouper {' >> /mnt/nginx-conf/midpoint.conf ; + echo ' rewrite ^/(.*)$ https://localhost:4443/$1 ;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' }' >> /mnt/nginx-conf/midpoint.conf ; + echo ' location /grouperSSO {' >> /mnt/nginx-conf/midpoint.conf ; + echo ' rewrite ^/(.*)$ https://localhost:4443/$1 ;' >> /mnt/nginx-conf/midpoint.conf ; + echo ' }' >> /mnt/nginx-conf/midpoint.conf ; + echo ' }' >> /mnt/nginx-conf/midpoint.conf ; + cp idp-backchannel.crt /mnt/shibboleth-idp/credentials ; + cp idp-backchannel.p12 /mnt/shibboleth-idp/credentials ; + cp idp-browser.p12 /mnt/shibboleth-idp/credentials ; + cp idp-encryption.crt /mnt/shibboleth-idp/credentials ; + cp idp-encryption.key /mnt/shibboleth-idp/credentials ; + cp idp-signing.crt /mnt/shibboleth-idp/credentials ; + cp idp-signing.key /mnt/shibboleth-idp/credentials ; + cp sp-signing-cert.pem /mnt/shibboleth-idp/credentials ; + cp sp-cert.pem /mnt/shibboleth-idp/credentials ; + cp keystore.jks /mnt/shibboleth/certs ; + cp cert.pem /mnt/grouper-http/host-cert.pem ; + cp key.pem /mnt/grouper-http/host-key.pem ; + chmod -R 744 /mnt/grouper-http ; + chown -R --reference=/mnt/grouper-http /mnt/grouper-http ; + cp sp-cert.pem /mnt/grouper-shibboleth/sp-cert.pem ; + cp sp-key.pem /mnt/grouper-shibboleth/sp-key.pem ; + chmod -R 744 /mnt/grouper-shibboleth ; + chown -R --reference=/mnt/grouper-shibboleth /mnt/grouper-shibboleth ; + echo ' - - - - - ' ; + find -type f ; + echo ' - - - - - - -' ; + find /mnt/shibboleth-idp/ -type f ; + echo ' - - - - - - -' ; + find /mnt/shibboleth -type f ; + echo ' - - - - - - -' ; + find /mnt/midpoint/ -type f ; + echo ' - - - - - - -' ; + find /mnt/grouper*/ -type f ; + echo ' - - - - - - -' ; + else echo 'certificate already exists... (skip new cert generation)' ; + fi ; + if [ ! -e /mnt/shared_pw/db_pass ] ; then + echo 'Generating password for DB connection...'; + dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d -c [0-9a-z] | cut -c 1-32 | tr -d [[:space:]] > /mnt/shared_pw/db_pass ; + fi ; + " + networks: + - net + volumes: + - security_object:/mnt/security + - shared_pw:/mnt/shared_pw + - idp_credentials:/mnt/shibboleth-idp/credentials + - idp_certs:/mnt/shibboleth/certs + - proxy_conf:/mnt/nginx-conf + - proxy_cert:/mnt/nginx-cert + - midpoint_home:/mnt/midpoint/var + - ./configs-and-secrets/grouper/httpd:/mnt/grouper-http + - ./configs-and-secrets/grouper/shibboleth:/mnt/grouper-shibboleth + grouper_daemon: - build: ./grouper_daemon/ - command: bash -c "while ! curl -s grouper_data:3306 > /dev/null; do echo waiting for mysql on grouper_data to start; sleep 3; done; while ! curl -s ldap://directory:389 > /dev/null; do echo waiting for ldap on directory to start; sleep 3; done; /usr/local/bin/startup.sh" + image: i2incommon/grouper:4.12.0 + command: [ "daemon" ] depends_on: - - grouper_data - - directory + grouper_data: + condition: service_healthy + grouper_data_init: + condition: service_completed_successfully + directory: + condition: service_healthy + sources: + condition: service_started environment: - ENV - USERTOKEN - GROUPER_CLIENT_WEBSERVICE_PASSWORD_FILE=password - GROUPER_DATABASE_PASSWORD_FILE=/run/secrets/g_database_password.txt - - RABBITMQ_PASSWORD_FILE=/run/secrets/rabbitmq_password.txt + - RABBITMQ_PASSWORD=password - SUBJECT_SOURCE_LDAP_PASSWORD=password + ulimits: + nofile: + soft: 1024 + hard: 2048 networks: net: aliases: - grouper-daemon healthcheck: - test: curl -s grouper_data:3306 + test: gsh interval: 30s timeout: 30s retries: 3 secrets: - g_database_password.txt - - rabbitmq_password.txt - - source: grouper.hibernate.properties - target: grouper_grouper.hibernate.properties - - source: grouper-loader.properties - target: grouper_grouper-loader.properties - - source: subject.properties - target: grouper_subject.properties volumes: - - type: bind - source: ./configs-and-secrets/grouper/application/grouper.properties - target: /opt/grouper/conf/grouper.properties - - type: bind - source: ./configs-and-secrets/grouper/application/grouper.client.properties - target: /opt/grouper/conf/grouper.client.properties + - ./configs-and-secrets/grouper/application/grouper.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.properties + - ./configs-and-secrets/grouper/application/grouper.client.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.client.properties + - ./configs-and-secrets/grouper/application/grouper.hibernate.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties + - ./configs-and-secrets/grouper/application/grouper-loader.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-loader.properties + - ./configs-and-secrets/grouper/application/subject.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/subject.properties + - ./configs-and-secrets/grouper/application/grouper.text.en.us.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties grouper_ui: - build: ./grouper_ui/ - command: bash -c "while ! curl -s grouper_data:3306 > /dev/null; do echo waiting for mysql on grouper_data to start; sleep 3; done; while ! curl -s ldap://directory:389 > /dev/null; do echo waiting for ldap on directory to start; sleep 3; done; exec ui" + image: i2incommon/grouper:4.12.0 + command: [ "ui" ] depends_on: - - grouper_data - - directory + grouper_data: + condition: service_healthy + grouper_data_init: + condition: service_completed_successfully + directory: + condition: service_healthy environment: - ENV - USERTOKEN - GROUPER_DATABASE_PASSWORD_FILE=/run/secrets/g_database_password.txt - SUBJECT_SOURCE_LDAP_PASSWORD=password + ulimits: + nofile: + soft: 1024 + hard: 2048 networks: net: aliases: - grouper-ui ports: - 4443:443 + healthcheck: + test: curl -k -f https://127.0.0.1/grouper/grouperUi/ || exit 1 + interval: 30s + timeout: 30s + retries: 3 secrets: - g_database_password.txt - - source: grouper.hibernate.properties - target: grouper_grouper.hibernate.properties - - source: grouper-loader.properties - target: grouper_grouper-loader.properties - - source: subject.properties - target: grouper_subject.properties - - source: g_sp-key.pem - target: shib_sp-key.pem - - source: g_host-key.pem - target: host-key.pem volumes: - - type: bind - source: ./configs-and-secrets/grouper/application/grouper.properties - target: /opt/grouper/conf/grouper.properties - - type: bind - source: ./configs-and-secrets/grouper/application/grouper.client.properties - target: /opt/grouper/conf/grouper.client.properties - - type: bind - source: ./configs-and-secrets/grouper/shibboleth/sp-cert.pem - target: /etc/shibboleth/sp-cert.pem - - type: bind - source: ./configs-and-secrets/grouper/shibboleth/shibboleth2.xml - target: /etc/shibboleth/shibboleth2.xml - - type: bind - source: ./configs-and-secrets/grouper/shibboleth/idp-metadata.xml - target: /etc/shibboleth/idp-metadata.xml - - type: bind - source: ./configs-and-secrets/grouper/httpd/host-cert.pem - target: /etc/pki/tls/certs/host-cert.pem - - type: bind - source: ./configs-and-secrets/grouper/httpd/host-cert.pem - target: /etc/pki/tls/certs/cachain.pem + - ./configs-and-secrets/grouper/application/grouper.properties:/opt/grouper/conf/grouper.properties + - ./configs-and-secrets/grouper/application/grouper.client.properties:/opt/grouper/conf/grouper.client.properties + - ./configs-and-secrets/grouper/application/grouper.hibernate.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties + - ./configs-and-secrets/grouper/application/grouper-loader.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-loader.properties + - ./configs-and-secrets/grouper/application/subject.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/subject.properties + - ./configs-and-secrets/grouper/application/grouper.text.en.us.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties + - ./configs-and-secrets/grouper/shibboleth/idp-metadata.xml:/etc/shibboleth/idp-metadata.xml + - ./configs-and-secrets/grouper/shibboleth/sp-cert.pem:/etc/shibboleth/sp-cert.pem + - ./configs-and-secrets/grouper/shibboleth/sp-key.pem:/etc/shibboleth/sp-key.pem + - ./configs-and-secrets/grouper/shibboleth/shibboleth2.xml:/etc/shibboleth/shibboleth2.xml +# Note: due to a bug in https://github.internet2.edu/docker/grouper/blob/2.5.57/container_files/usr-local-bin/librarySetupFilesForProcess.sh#L72 +# This file had to be mounted as shib2.conf, instead of shib.conf (bind mounts don't want to be moved) + - ./configs-and-secrets/grouper/httpd/shib.conf:/etc/httpd/conf.d/shib2.conf + - ./configs-and-secrets/grouper/httpd/host-cert.pem:/etc/pki/tls/certs/host-cert.pem + - ./configs-and-secrets/grouper/httpd/host-cert.pem:/etc/pki/tls/certs/cachain.pem + - ./configs-and-secrets/grouper/httpd/host-key.pem:/etc/pki/tls/private/host-key.pem grouper_ws: - build: ./grouper_ws/ - command: bash -c "while ! curl -s grouper_data:3306 > /dev/null; do echo waiting for mysql to start; sleep 3; done; while ! curl -s ldap://directory:389 > /dev/null; do echo waiting for ldap to start; sleep 3; done; exec ws" + image: i2incommon/grouper:4.12.0 + command: [ "ws" ] depends_on: - - grouper_data - - directory + grouper_data: + condition: service_healthy + directory: + condition: service_healthy + prereq: + condition: service_completed_successfully + idp_vol_init: + condition: service_completed_successfully + grouper_data_init: + condition: service_completed_successfully environment: - ENV - GROUPER_DATABASE_PASSWORD_FILE=/run/secrets/g_database_password.txt - SUBJECT_SOURCE_LDAP_PASSWORD=password - USERTOKEN + ulimits: + nofile: + soft: 1024 + hard: 2048 networks: net: aliases: - grouper-ws ports: - 9443:443 + healthcheck: + test: curl -k -f https://127.0.0.1/grouper-ws/status?diagnosticType=trivial || exit 1 + interval: 30s + timeout: 30s + retries: 3 secrets: - g_database_password.txt - - source: grouper.hibernate.properties - target: grouper_grouper.hibernate.properties - - source: grouper-loader.properties - target: grouper_grouper-loader.properties - - source: subject.properties - target: grouper_subject.properties - - source: g_sp-key.pem - target: shib_sp-key.pem - - source: g_host-key.pem - target: host-key.pem +# - source: g_sp-key.pem +# target: shib_sp-key.pem +# - source: g_host-key.pem +# target: host-key.pem + volumes: + - ./configs-and-secrets/grouper/application/grouper.properties:/opt/grouper/conf/grouper.properties + - ./configs-and-secrets/grouper/application/grouper.client.properties:/opt/grouper/conf/grouper.client.properties + - ./configs-and-secrets/grouper/application/grouper.hibernate.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties + - ./configs-and-secrets/grouper/application/grouper-loader.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper-loader.properties + - ./configs-and-secrets/grouper/application/subject.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/subject.properties + - ./configs-and-secrets/grouper/application/grouper.text.en.us.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouperText/grouper.text.en.us.properties + - ./grouper_ws/web.xml:/opt/grouper/grouperWebapp/WEB-INF/web.xml + - ./grouper_ws/tomcat-users.xml:/opt/tomee/conf/tomcat-users.xml + - ./grouper_ws/server.xml:/opt/tomee/conf/server.xml + - ./configs-and-secrets/grouper/shibboleth/sp-cert.pem:/etc/shibboleth/sp-cert.pem + - ./configs-and-secrets/grouper/shibboleth/sp-key.pem:/etc/shibboleth/sp-key.pem + - ./configs-and-secrets/grouper/httpd/host-cert.pem:/etc/pki/tls/certs/host-cert.pem + - ./configs-and-secrets/grouper/httpd/host-cert.pem:/etc/pki/tls/certs/cachain.pem + - ./configs-and-secrets/grouper/httpd/host-key.pem:/etc/pki/tls/private/host-key.pem + + grouper_data_init: + image: i2incommon/grouper:4.12.0 + command: > + bash -c " + if [ ! -e /var/lib/postgresql/data/initialized ] ; then + echo 'processing init...' ; + echo ' - - - - - -'; + /opt/grouper/grouperWebapp/WEB-INF/bin/gsh.sh -registry -check -runscript -noprompt && + /opt/grouper/grouperWebapp/WEB-INF/bin/gsh.sh /tmp-bin/initialize.gsh && + /opt/grouper/grouperWebapp/WEB-INF/bin/gsh.sh /tmp-bin/set-prov.gsh && + touch /var/lib/postgresql/data/initialized ; + else echo 'init skipped....' ; + fi + " + depends_on: + grouper_data: + condition: service_healthy + networks: + - net volumes: - - type: bind - source: ./configs-and-secrets/grouper/application/grouper.properties - target: /opt/grouper/conf/grouper.properties - - type: bind - source: ./configs-and-secrets/grouper/application/grouper.client.properties - target: /opt/grouper/conf/grouper.client.properties - - type: bind - source: ./configs-and-secrets/grouper/httpd/host-cert.pem - target: /etc/pki/tls/certs/host-cert.pem - - type: bind - source: ./configs-and-secrets/grouper/httpd/host-cert.pem - target: /etc/pki/tls/certs/cachain.pem + - ./grouper_data_init/bootstrap:/tmp-bin + - ./grouper_data_init/conf/grouper.hibernate.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.hibernate.properties + - ./grouper_data_init/conf/grouper.properties:/opt/grouper/grouperWebapp/WEB-INF/classes/grouper.properties + - grouper_data:/var/lib/postgresql/data grouper_data: - build: ./grouper_data/ + image: postgres:16-alpine networks: net: aliases: - grouper-data - ports: - - 3306:3306 + environment: + - POSTGRES_HOST_AUTH_METHOD=trust + - POSTGRES_USER=postgres + - POSTGRES_PASSWORD=password + - PGDATA=/var/lib/postgresql/data/pgdata healthcheck: - test: curl -s grouper_data:3306 - interval: 30s - timeout: 30s - retries: 3 + test: [ "CMD-SHELL", "pg_isready -d grouper -U grouper" ] + interval: 1s + timeout: 5s + retries: 10 volumes: - - grouper_data:/var/lib/mysql - - directory: - build: ./directory/ - ports: - - 389:389 - networks: - - net - volumes: - - ldap:/var/lib/dirsrv + - grouper_data:/var/lib/postgresql/data + - ./grouper_data_init/sql:/docker-entrypoint-initdb.d sources: build: ./sources/ @@ -172,126 +334,267 @@ services: environment: - CREATE_NEW_DATABASE=if_needed - data_init: - image: i2incommon/midpoint:${tag:-4.8.2} - command: > - bash -c " - chmod 777 /opt/mp-pw/ ; - touch /opt/mp-pw/db_init_in_progress ; - echo -e '#!/bin/sh\ntouch /opt/mp-pw/db_init' >/opt/db-init/000-start.sh ; - echo -e '#!/bin/sh\necho DB structure init process has finished...\nrm -f /opt/mp-pw/db_init_in_progress /opt/mp-pw/db_init' > /opt/db-init/999-finish.sh ; - /opt/midpoint/bin/midpoint.sh init-native - " - environment: - - MP_INIT_DB_CONCAT=/opt/db-init/init.sql - - MP_DB_PW=/opt/mp-pw/dbpassword - - MP_PW_DEF=/opt/mp-pw/keystorepw - volumes: - - db_init:/opt/db-init - - mp_pw:/opt/mp-pw - midpoint_data: - image: postgres:13-alpine - command: > - bash -c " - rm -f /var/lib/postgresql/data/postmaster.pid ; - while [ ! -s /opt/mp-pw/dbpassword -o -e /opt/mp-pw/init_in_progress ] ; do - echo 'Waiting to the end of the init process...'; - sleep 1; - done ; - { - sleep 2 ; - if [ ! -e /opt/mp-pw/db_init -a -e /opt/mp-pw/db_init_in_progress ] ; - then echo 'DB init did not start...' ; - rm -f /opt/mp-pw/db_ini*; - echo 'The lock files has been removed...'; - fi ; - } & - docker-entrypoint.sh postgres - " - user: "70:70" + image: postgres:16-alpine depends_on: - - data_init + prereq: + condition: service_completed_successfully environment: - - POSTGRES_PASSWORD_FILE=/opt/mp-pw/dbpassword + - POSTGRES_PASSWORD_FILE=/mnt/shared_pw/db_pass - POSTGRES_USER=midpoint - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 - ports: - - 5432:5432 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -d midpoint -U midpoint" ] + interval: 1s + timeout: 5s + retries: 10 networks: - net volumes: - midpoint_data:/var/lib/postgresql/data - - db_init:/docker-entrypoint-initdb.d/ - - mp_pw:/opt/mp-pw + - shared_pw:/mnt/shared_pw + + data_init: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + depends_on: + prereq: + condition: service_completed_successfully + midpoint_data: + condition: service_healthy + command: > + bash -c " + cd /opt/midpoint ; + bin/midpoint.sh init-native ; + echo ' - - - - - - ' ; + bin/ninja.sh -B info >/dev/null 2>/tmp/ninja.log ; + grep -q \"ERROR\" /tmp/ninja.log && ( + bin/ninja.sh run-sql --create --mode REPOSITORY ; + bin/ninja.sh run-sql --create --mode AUDIT ; + tar -cC /opt/midpoint-init . | tar -xvC /opt/midpoint/var ; + ) || + echo -e '\\n Repository init is not needed...' ; + if [ $$(keytool -list -keystore /opt/midpoint/var/keystore.jceks -storetype jceks -storepass:file /opt/midpoint/var/keystorepw | grep -c 'local_gen_cert') -eq 0 ] ; + then + keytool -importcert -keystore /opt/midpoint/var/keystore.jceks -storetype jceks -storepass:file /opt/midpoint/var/keystorepw -trustcacerts -alias 'local_gen_cert' -file /opt/midpoint/var/cert.pem -noprompt ; + else + echo 'Certificate exists in the cert store' ; + fi ; + " + environment: + - MP_SET_midpoint_repository_jdbcUsername=midpoint + - MP_SET_midpoint_repository_jdbcPassword_FILE=/mnt/shared_pw/db_pass + - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint + - MP_SET_midpoint_repository_database=postgresql + - MP_INIT_CFG=/opt/midpoint/var + - MP_PW_DEF=/opt/midpoint/var/keystorepw + - MP_KEYSTORE=/opt/midpoint/var/keystore.jceks + networks: + - net + volumes: + - midpoint_home:/opt/midpoint/var + - shared_pw:/mnt/shared_pw + - ./midpoint_server:/opt/midpoint-init:ro midpoint_server: - build: - context: ./midpoint_server/ - args: - tag: ${tag:-4.8.2} + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + container_name: midpoint_server + hostname: midpoint-container depends_on: - - data_init - - midpoint_data + data_init: + condition: service_completed_successfully + idp_vol_init: + condition: service_completed_successfully + midpoint_data: + condition: service_healthy + command: [ "/opt/midpoint/bin/midpoint.sh", "container" ] ports: - - 8443:443 + - 8080:8080 environment: - - ENV - - USERTOKEN - - MP_SET_midpoint_administrator_initialPassword=Password1 - MP_SET_midpoint_repository_jdbcUsername=midpoint - - MP_SET_midpoint_repository_jdbcPassword_FILE=/opt/mp-pw/dbpassword + - MP_SET_midpoint_repository_jdbcPassword_FILE=/mnt/shared_pw/db_pass - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint - - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/mp-pw/keystorepw - - MP_SET_server_tomcat_ajp_enabled=true - - MP_SET_server_tomcat_ajp_port=9090 - - MP_SET_server_tomcat_ajp_secret=s3cr3t - - MP_SET_logging_path=/tmp/logtomcat + - MP_SET_midpoint_repository_database=postgresql + - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/midpoint/var/keystorepw + - MP_SET_midpoint_administrator_initialPassword=Test5ecr3t - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1 - MP_NO_ENV_COMPAT=1 - - MP_MEM_MAX - - MP_MEM_INIT - - MP_JAVA_OPTS - - TIER_BEACON_OPT_OUT - - TIMEZONE networks: net: aliases: - midpoint-server - secrets: - - mp_host-key.pem - - mp_shibboleth_sp_keys.jks volumes: - midpoint_home:/opt/midpoint/var - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/idp-metadata.xml - target: /etc/shibboleth/idp-metadata.xml - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/host-cert.pem - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/cachain.pem - - mp_pw:/opt/mp-pw + - shared_pw:/mnt/shared_pw + + directory: + build: ./directory/ + ports: + - 389:389 + networks: + - net + healthcheck: + test: [ "CMD-SHELL", "cat > /dev/tcp/localhost/389" ] + interval: 30s + timeout: 5s + retries: 10 + volumes: + - ldap:/var/lib/ldap + + idp_vol_init: + image: tier/shib-idp:3.4.6_20191002 + depends_on: + prereq: + condition: service_completed_successfully + ulimits: + nofile: + soft: 1024 + hard: 2048 + command: > + bash -c " + echo 'Updating configuration...' ; + if [ -e /mnt/shibboleth-diff/conf ] ; + then + cp -vu /mnt/shibboleth-diff/conf/* /opt/shibboleth-idp/conf ; + fi ; + if [ -e /mnt/shibboleth-diff/credentials ] ; + then + cp -vu /mnt/shibboleth-diff/credentials/* /opt/shibboleth-idp/credentials ; + fi ; + if [ -e /mnt/shibboleth-diff/metadata ] ; + then + cp -vu /mnt/shibboleth-diff/metadata/* /opt/shibboleth-idp/metadata ; + fi ; + echo ' - - - - - - -' ; + echo 'Updating idp-metadata.xml file...' ; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/idp-metadata.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/idp-metadata.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - idp-backchannel.crt - idp-signing.crt - idp-encryption.crt - idp-backchannel.crt - idp-signing.crt - idp-encryption.crt - ) ; + rm /opt/shibboleth-idp/metadata/idp-metadata.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/idp-metadata.xml >> /opt/shibboleth-idp/metadata/idp-metadata.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/idp-metadata.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + cp -v /opt/shibboleth-idp/metadata/idp-metadata.xml /opt/midpoint/var/shibboleth/idp-metadata.xml ; + cp -v /opt/shibboleth-idp/metadata/idp-metadata.xml /opt/grouper/idp-metadata.xml ; + chown --reference=/opt/grouper /opt/grouper/idp-metadata.xml ; + echo ' - - - - - - -' ; + echo 'Updating midpoint-sp.xml...'; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/midpoint-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/midpoint-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - sp-signing-cert.pem - ) ; + rm /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/midpoint-sp.xml >> /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + sed -i \"s/\\([[:space:]]\\).*$$/\\1/g;s/^[[:space:]]\\(\\).*$$/\\1/g\" /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + echo ' - - - - - - -' ; + echo 'Updating grouper-sp.xml...'; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/grouper-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/grouper-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - sp-cert.pem - sp-cert.pem - ) ; + rm /opt/shibboleth-idp/metadata/grouper-sp.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/grouper-sp.xml >> /opt/shibboleth-idp/metadata/grouper-sp.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/grouper-sp.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + sed -i \"s/\\([[:space:]]\\).*$$/\\1/g;s/^[[:space:]]\\(\\).*$$/\\1/g\" /opt/shibboleth-idp/metadata/grouper-sp.xml ; + echo ' - - - - - - -' ; + echo 'Generating sealer key...' ; + rm /opt/shibboleth-idp/credentials/sealer.* ; + /opt/shibboleth-idp/bin/rotateSealerKey.sh ; + echo ' - - - - - - -' ; + echo 'DONE.' ; + " + volumes: + - idp_conf:/opt/shibboleth-idp/conf + - idp_credentials:/opt/shibboleth-idp/credentials + - idp_metadata:/opt/shibboleth-idp/metadata + - ./shibboleth-idp:/mnt/shibboleth-diff:ro + - midpoint_home:/opt/midpoint/var + - ./configs-and-secrets/grouper/shibboleth:/opt/grouper - idp: - build: ./idp/ + idp: + image: tier/shib-idp:3.4.6_20191002 depends_on: - - directory + directory: + condition: service_started + idp_vol_init: + condition: service_completed_successfully + ulimits: + nofile: + soft: 1024 + hard: 2048 environment: - JETTY_MAX_HEAP=64m - JETTY_BROWSER_SSL_KEYSTORE_PASSWORD=password - JETTY_BACKCHANNEL_SSL_KEYSTORE_PASSWORD=password networks: - net + volumes: + - idp_conf:/opt/shibboleth-idp/conf + - idp_credentials:/opt/shibboleth-idp/credentials + - idp_metadata:/opt/shibboleth-idp/metadata + - idp_certs:/opt/certs + + beacon: + build: ./beacon/ + networks: + - net + environment: + - TIER_RELEASE=not-released-yet + - TIER_MAINTAINER=tier + - MP_VERSION=4.8 + - TIER_BEACON_OPT_OUT=true + + proxy: + image: nginx:stable + depends_on: + prereq: + condition: service_completed_successfully + midpoint_server: + condition: service_started + idp: + condition: service_started ports: + - 8180:80 - 443:443 + networks: + - net + volumes: + - proxy_conf:/etc/nginx/conf.d + - proxy_cert:/etc/nginx/certs mq: build: ./mq/ environment: - RABBITMQ_NODENAME=docker-rabbit hostname: rabbitmq + ulimits: + nofile: + soft: 1024 + hard: 2048 networks: - net ports: @@ -300,39 +603,36 @@ services: - mq:/var/lib/rabbitmq networks: - net: + net: driver: bridge secrets: # grouper - g_host-key.pem: - file: ./configs-and-secrets/grouper/httpd/host-key.pem - g_sp-key.pem: - file: ./configs-and-secrets/grouper/shibboleth/sp-key.pem +# g_host-key.pem: +# file: ./configs-and-secrets/grouper/httpd/host-key.pem +# g_sp-key.pem: +# file: ./configs-and-secrets/grouper/shibboleth/sp-key.pem g_database_password.txt: file: ./configs-and-secrets/grouper/application/database_password.txt - rabbitmq_password.txt: - file: ./configs-and-secrets/grouper/application/rabbitmq_password.txt - grouper.hibernate.properties: - file: ./configs-and-secrets/grouper/application/grouper.hibernate.properties - grouper-loader.properties: - file: ./configs-and-secrets/grouper/application/grouper-loader.properties - subject.properties: - file: ./configs-and-secrets/grouper/application/subject.properties -# midPoint - mp_host-key.pem: - file: ./configs-and-secrets/midpoint/httpd/host-key.pem - mp_shibboleth_sp_keys.jks: - file: ./configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks - +# rabbitmq_password.txt: +# file: ./configs-and-secrets/grouper/application/rabbitmq_password.txt + volumes: + security_object: + midpoint_data: + midpoint_home: + idp_conf: + idp_credentials: + idp_metadata: + idp_certs: + proxy_conf: + proxy_cert: + ldap: + shared_pw: grouper_data: source_data: source_mysql: target_data: - ldap: - db_init: - mp_pw: - midpoint_data: - midpoint_home: mq: + grouper-external_data: + diff --git a/demo/grouper/get-import-sis-persons-status.sh b/demo/grouper/get-import-sis-persons-status.sh deleted file mode 100755 index 26d3fcd..0000000 --- a/demo/grouper/get-import-sis-persons-status.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -get_task_execution_status "Import from SIS persons" diff --git a/demo/grouper/grouper_daemon/Dockerfile b/demo/grouper/grouper_daemon/Dockerfile deleted file mode 100644 index b1ade52..0000000 --- a/demo/grouper/grouper_daemon/Dockerfile +++ /dev/null @@ -1,9 +0,0 @@ -FROM tier/grouper:2.4.0-a47-u25-w5-p6-20190611 - -LABEL author="tier-packaging@internet2.edu " - -# Update this Shib yum repo -COPY container_files/shibboleth/shibboleth.repo /etc/yum.repos.d/ - -COPY container_files/tmp/* /tmp/ -COPY container_files/usr-local-bin/* /usr/local/bin/ diff --git a/demo/grouper/grouper_daemon/container_files/shibboleth/shibboleth.repo b/demo/grouper/grouper_daemon/container_files/shibboleth/shibboleth.repo deleted file mode 100644 index dabe005..0000000 --- a/demo/grouper/grouper_daemon/container_files/shibboleth/shibboleth.repo +++ /dev/null @@ -1,9 +0,0 @@ -[shibboleth] -name=Shibboleth (CentOS_7) -# Please report any problems to https://shibboleth.atlassian.net/jira -type=rpm-md -mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7 -gpgcheck=1 -gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key - https://shibboleth.net/downloads/service-provider/RPMS/cantor.repomd.xml.key -enabled=1 diff --git a/demo/grouper/grouper_daemon/container_files/tmp/initialize.gsh b/demo/grouper/grouper_daemon/container_files/tmp/initialize.gsh deleted file mode 100644 index 67ebc1a..0000000 --- a/demo/grouper/grouper_daemon/container_files/tmp/initialize.gsh +++ /dev/null @@ -1,33 +0,0 @@ -System.out.println("************** initialize.gsh starting...") - -gs = GrouperSession.startRootSession() - -addStem("", "app", "app") -addStem("", "basis", "basis") -addStem("", "bundle", "bundle") -addStem("", "org", "org") -addStem("", "test", "test") - -addRootStem("ref", "ref") -addStem("ref", "course", "course") -addStem("ref", "affiliation", "affiliation") - -group = GroupFinder.findByName(gs, "etc:sysadmingroup", true) -group.getAttributeDelegate().assignAttribute(LoaderLdapUtils.grouperLoaderLdapAttributeDefName()).getAttributeAssign() -attributeAssign = group.getAttributeDelegate().retrieveAssignment(null, LoaderLdapUtils.grouperLoaderLdapAttributeDefName(), false, true) -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapQuartzCronName(), "0 * * * * ?") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapTypeName(), "LDAP_SIMPLE") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapFilterName(), "(cn=sysadmingroup)") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSearchDnName(), "ou=midpoint,ou=Groups") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapServerIdName(), "demo") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSourceIdName(), "ldap") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectExpressionName(), '${loaderLdapElUtils.convertDnToSpecificValue(subjectId)}') -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectAttributeName(), "uniqueMember") -attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectIdTypeName(), "subjectId") - -chess = new GroupSave(gs).assignName("app:mailinglist:chess").assignCreateParentStemsIfNotExist(true).save() -idmfans = new GroupSave(gs).assignName("app:mailinglist:idm-fans").assignCreateParentStemsIfNotExist(true).save() -cs = new GroupSave(gs).assignName("app:cs").assignCreateParentStemsIfNotExist(true).save() -volunteers = new GroupSave(gs).assignName("test:volunteers").assignCreateParentStemsIfNotExist(true).save() - -System.out.println("************** initialize.gsh done.") diff --git a/demo/grouper/grouper_daemon/container_files/usr-local-bin/startup.sh b/demo/grouper/grouper_daemon/container_files/usr-local-bin/startup.sh deleted file mode 100755 index 5f2a302..0000000 --- a/demo/grouper/grouper_daemon/container_files/usr-local-bin/startup.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash - -if [[ -e /tmp/initialize.gsh ]] -then - echo Executing /tmp/initialize.gsh on the first start - /opt/grouper/grouper.apiBinary/bin/gsh /tmp/initialize.gsh - rm /tmp/initialize.gsh -else - echo Skipping execution of /tmp/initialize.gsh as it is not present -fi - -daemon diff --git a/demo/grouper/grouper_data/Dockerfile b/demo/grouper/grouper_data/Dockerfile deleted file mode 100644 index 9026486..0000000 --- a/demo/grouper/grouper_data/Dockerfile +++ /dev/null @@ -1,41 +0,0 @@ -FROM tier/grouper:2.4.0-a47-u25-w5-p6-20190611 - -LABEL author="tier-packaging@internet2.edu " - -# Update this Shib yum repo -COPY container_files/shibboleth/shibboleth.repo /etc/yum.repos.d/ - -RUN yum-config-manager --save --setopt=security_shibboleth.skip_if_unavailable=true \ - && yum install -y epel-release \ - && yum update -y \ - && yum install -y mariadb-server mariadb \ - && yum clean all \ - && rm -rf /var/cache/yum - -COPY container_files/conf/ /opt/grouper/grouper.apiBinary/conf/ -COPY container_files/mysql/max_connections.cnf /etc/my.cnf.d/max_connections.cnf - -RUN ln -s /usr/bin/resolveip /usr/libexec/resolveip - -RUN mysql_install_db \ - && chown -R mysql:mysql /var/lib/mysql/ \ - && sed -i 's/^\(bind-address\s.*\)/# \1/' /etc/my.cnf \ - && sed -i 's/^\(log_error\s.*\)/# \1/' /etc/my.cnf \ - && sed -i 's/\[mysqld\]/\[mysqld\]\ncharacter_set_server = utf8/' /etc/my.cnf \ - && sed -i 's/\[mysqld\]/\[mysqld\]\ncollation_server = utf8_general_ci/' /etc/my.cnf \ - && sed -i 's/\[mysqld\]/\[mysqld\]\nport = 3306/' /etc/my.cnf \ - && cat /etc/my.cnf \ - && echo "/usr/bin/mysqld_safe &" > /tmp/config \ - && echo "mysqladmin --silent --wait=30 ping || exit 1" >> /tmp/config \ - && echo "mysql -e 'GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"%\" WITH GRANT OPTION;'" >> /tmp/config \ - && echo "mysql -e 'CREATE DATABASE grouper CHARACTER SET utf8 COLLATE utf8_bin;'" >> /tmp/config \ - && bash /tmp/config \ - && rm -f /tmp/config - -RUN (mysqld_safe & ) \ - && while ! curl -s localhost:3306 > /dev/null; do echo waiting for mysqld to start; sleep 1; done; \ - bin/gsh -registry -check -runscript -noprompt - -EXPOSE 3306 - -CMD mysqld_safe diff --git a/demo/grouper/grouper_data/container_files/mysql/max_connections.cnf b/demo/grouper/grouper_data/container_files/mysql/max_connections.cnf deleted file mode 100644 index 41002ed..0000000 --- a/demo/grouper/grouper_data/container_files/mysql/max_connections.cnf +++ /dev/null @@ -1,2 +0,0 @@ -[mysqld] -max_connections=5000 diff --git a/demo/grouper/grouper_data/container_files/shibboleth/shibboleth.repo b/demo/grouper/grouper_data/container_files/shibboleth/shibboleth.repo deleted file mode 100644 index dabe005..0000000 --- a/demo/grouper/grouper_data/container_files/shibboleth/shibboleth.repo +++ /dev/null @@ -1,9 +0,0 @@ -[shibboleth] -name=Shibboleth (CentOS_7) -# Please report any problems to https://shibboleth.atlassian.net/jira -type=rpm-md -mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7 -gpgcheck=1 -gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key - https://shibboleth.net/downloads/service-provider/RPMS/cantor.repomd.xml.key -enabled=1 diff --git a/demo/grouper/grouper_data_init/bootstrap/initialize.gsh b/demo/grouper/grouper_data_init/bootstrap/initialize.gsh new file mode 100644 index 0000000..eacf873 --- /dev/null +++ b/demo/grouper/grouper_data_init/bootstrap/initialize.gsh @@ -0,0 +1,98 @@ +System.out.println("************** initialize.gsh starting...") + +gs = GrouperSession.startRootSession() + +addStem("", "app", "app") +addStem("", "basis", "basis") +addStem("", "bundle", "bundle") +addStem("", "org", "org") +addStem("", "test", "test") + +addRootStem("ref", "ref") +addStem("ref", "course", "Course") +addStem("ref", "dept", "Department") +addStem("ref", "affiliation", "Affiliation") + +new GroupSave().assignName("ref:affiliation:alum").assignDisplayName("Alumni").assignCreateParentStemsIfNotExist(true).save(); +new GroupSave().assignName("ref:affiliation:community").assignDisplayName("Community").assignCreateParentStemsIfNotExist(true).save(); +new GroupSave().assignName("ref:affiliation:faculty").assignDisplayName("Faculty").assignCreateParentStemsIfNotExist(true).save(); +new GroupSave().assignName("ref:affiliation:member").assignDisplayName("Member").assignCreateParentStemsIfNotExist(true).save(); +new GroupSave().assignName("ref:affiliation:staff").assignDisplayName("Staff").assignCreateParentStemsIfNotExist(true).save(); +new GroupSave().assignName("ref:affiliation:student").assignDisplayName("Student").assignCreateParentStemsIfNotExist(true).save(); + +group = GroupFinder.findByName(gs, "etc:sysadmingroup", true) +group.getAttributeDelegate().assignAttribute(LoaderLdapUtils.grouperLoaderLdapAttributeDefName()).getAttributeAssign() +attributeAssign = group.getAttributeDelegate().retrieveAssignment(null, LoaderLdapUtils.grouperLoaderLdapAttributeDefName(), false, true) +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapQuartzCronName(), "0 * * * * ?") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapTypeName(), "LDAP_SIMPLE") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapFilterName(), "(cn=sysadmingroup)") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSearchDnName(), "ou=midpoint,ou=Groups") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapServerIdName(), "demo") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSourceIdName(), "ldap") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectExpressionName(), '${loaderLdapElUtils.convertDnToSpecificValue(subjectId)}') +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectAttributeName(), "uniqueMember") +attributeAssign.getAttributeValueDelegate().assignValue(LoaderLdapUtils.grouperLoaderLdapSubjectIdTypeName(), "subjectId") + +admins = new GroupSave(gs).assignName("app:wordpress:admins").assignCreateParentStemsIfNotExist(true).save() +editors = new GroupSave(gs).assignName("app:wordpress:editors").assignCreateParentStemsIfNotExist(true).save() +chess = new GroupSave(gs).assignName("app:mailinglist:chess").assignCreateParentStemsIfNotExist(true).save() +idmfans = new GroupSave(gs).assignName("app:mailinglist:idm-fans").assignCreateParentStemsIfNotExist(true).save() +cs = new GroupSave(gs).assignName("app:cs").assignCreateParentStemsIfNotExist(true).save() +volunteers = new GroupSave(gs).assignName("test:volunteers").assignCreateParentStemsIfNotExist(true).save() + + +group = new GroupSave(gs).assignName("etc:affiliationLoader").assignCreateParentStemsIfNotExist(true).save() +group.addType(GroupTypeFinder.find("grouperLoader")) +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") +group.setAttribute("grouperLoaderScheduleType", "CRON") +group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderGroupTypes", "addIncludeExclude") +group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:affiliation:',affiliation,'_systemOfRecord') as GROUP_NAME, uid as SUBJECT_IDENTIFIER, 'ldap' as SUBJECT_SOURCE_ID from SIS_AFFILIATIONS") + +group = new GroupSave(gs).assignName("etc:deptLoader").assignCreateParentStemsIfNotExist(true).save() +group.addType(GroupTypeFinder.find("grouperLoader")) +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") +group.setAttribute("grouperLoaderScheduleType", "CRON") +group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:dept:',department) as GROUP_NAME, uid as SUBJECT_IDENTIFIER, 'ldap' as SUBJECT_SOURCE_ID from SIS_PERSONS where department is not null") + +group = new GroupSave(gs).assignName("etc:coursesLoader").assignCreateParentStemsIfNotExist(true).save() +group.addType(GroupTypeFinder.find("grouperLoader")) +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderType", "SQL_GROUP_LIST") +group.setAttribute("grouperLoaderScheduleType", "CRON") +group.setAttribute("grouperLoaderQuartzCron", "0 * * * * ?") +group.setAttribute("grouperLoaderDbName", "sis") +group.setAttribute("grouperLoaderQuery", "SELECT concat('ref:course:',courseId) as GROUP_NAME, uid as SUBJECT_IDENTIFIER, 'ldap' as SUBJECT_SOURCE_ID from SIS_COURSES") + +edu.internet2.middleware.grouper.app.loader.GrouperLoaderType.scheduleLoads() + + + +def addGroups(gs,stem,owner,regexp) { + for (group in stem.childGroups) { + if (!group.name.endsWith('_includes') && + !group.name.endsWith('_excludes') && + !group.name.endsWith('_systemOfRecord') && + !group.name.endsWith('_systemOfRecordAndIncludes') && + (regexp == null || group.extension ==~ regexp)) { + println 'Adding: ' + group + def s = SubjectFinder.findById(group.getId(), 'group', 'g:gsa') + owner.addMember(s, false) + } else { + println 'Ignoring: ' + group + } + } +} + +def cs = GroupFinder.findByName(gs, "app:cs", true) + +gs = GrouperSession.startRootSession() +addGroups(gs, StemFinder.findByName(gs, 'ref:course'), cs, /CS.*/) + +System.out.println("************** initialize.gsh done.") + diff --git a/demo/grouper/grouper_data_init/bootstrap/set-prov.gsh b/demo/grouper/grouper_data_init/bootstrap/set-prov.gsh new file mode 100644 index 0000000..e142afe --- /dev/null +++ b/demo/grouper/grouper_data_init/bootstrap/set-prov.gsh @@ -0,0 +1,52 @@ + +provisioner_name="midPoint"; +GrouperSession grouperSession = GrouperSession.startRootSession(); + +def setProvOnStem(grouperSession,provisioner_name,folder_name) { + AttributeAssign attributeAssignMarker = null; + attributeAssignMarker = new AttributeAssignSave(grouperSession).assignOwnerStemName(folder_name).assignNameOfAttributeDefName("etc:provisioning:provisioningMarker").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningDirectAssign").addValue("true").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningDoProvision").addValue(provisioner_name).save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningStemScope").addValue("sub").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningTarget").addValue(provisioner_name).save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningMetadataJson").addValue("{\"destination\":\"midpoint\",\"actor\":\"initial load\"}").save(); + +} + +def setProvOnGroup(grouperSession,provisioner_name,group_name) { + AttributeAssign attributeAssignMarker = null; + attributeAssignMarker = new AttributeAssignSave(grouperSession).assignOwnerGroupName(group_name).assignNameOfAttributeDefName("etc:provisioning:provisioningMarker").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningDirectAssign").addValue("true").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningDoProvision").addValue(provisioner_name).save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningStemScope").addValue("sub").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningTarget").addValue(provisioner_name).save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningMetadataJson").addValue("{\"destination\":\"midpoint\",\"actor\":\"initial load\"}").save(); + +} + +def setProvOnGroupWithMailListAttr(grouperSession,provisioner_name,group_name,email_list_name) { + AttributeAssign attributeAssignMarker = null; + attributeAssignMarker = new AttributeAssignSave(grouperSession).assignOwnerGroupName(group_name).assignNameOfAttributeDefName("etc:provisioning:provisioningMarker").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningDirectAssign").addValue("true").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningDoProvision").addValue(provisioner_name).save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningStemScope").addValue("sub").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningTarget").addValue(provisioner_name).save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningMetadataJson").addValue("{\"destination\":\"midpoint\",\"actor\":\"initial load\"}").save(); + new AttributeAssignSave(grouperSession).assignOwnerAttributeAssign(attributeAssignMarker).assignNameOfAttributeDefName("etc:provisioning:provisioningMetadataJson").addValue("{\"md_grouper_emailListName\":\"" + email_list_name + "\"}").save(); + +} + + +setProvOnStem(grouperSession,provisioner_name,"app") +setProvOnGroupWithMailListAttr(grouperSession,provisioner_name,"app:mailinglist:chess","chessclub@example.edu") +setProvOnGroupWithMailListAttr(grouperSession,provisioner_name,"app:mailinglist:idm-fans","idmfans@example.edu") +setProvOnStem(grouperSession,provisioner_name,"test") +setProvOnStem(grouperSession,provisioner_name,"ref:dept") +setProvOnStem(grouperSession,provisioner_name,"ref:course") +setProvOnGroup(grouperSession,provisioner_name,"ref:affiliation:alum") +setProvOnGroup(grouperSession,provisioner_name,"ref:affiliation:community") +setProvOnGroup(grouperSession,provisioner_name,"ref:affiliation:faculty") +setProvOnGroup(grouperSession,provisioner_name,"ref:affiliation:member") +setProvOnGroup(grouperSession,provisioner_name,"ref:affiliation:staff") +setProvOnGroup(grouperSession,provisioner_name,"ref:affiliation:student") + diff --git a/demo/grouper/grouper_data/container_files/conf/grouper.hibernate.properties b/demo/grouper/grouper_data_init/conf/grouper.hibernate.properties similarity index 85% rename from demo/grouper/grouper_data/container_files/conf/grouper.hibernate.properties rename to demo/grouper/grouper_data_init/conf/grouper.hibernate.properties index 154b8eb..bfac95a 100644 --- a/demo/grouper/grouper_data/container_files/conf/grouper.hibernate.properties +++ b/demo/grouper/grouper_data_init/conf/grouper.hibernate.properties @@ -20,10 +20,13 @@ # e.g. hsqldb (b): jdbc:hsqldb:hsql://localhost:9001/grouper # e.g. postgres: jdbc:postgresql://localhost:5432/database # e.g. mssql: jdbc:sqlserver://localhost:3280;databaseName=grouper -hibernate.connection.url = jdbc:mysql://localhost:3306/grouper?CharSet=utf8&useUnicode=true&characterEncoding=utf8 +hibernate.connection.url = jdbc:postgresql://grouper_data:5432/grouper -hibernate.connection.username = root +hibernate.connection.username = grouper # If you are using an empty password, depending upon your version of # Java and Ant you may need to specify a password of "". # Note: you can keep passwords external and encrypted: https://bugs.internet2.edu/jira/browse/GRP-122 -hibernate.connection.password = +hibernate.connection.password = password +registry.auto.ddl.upToVersion = 4.*.* +hibernate.c3p0.max_size = 200 + diff --git a/demo/grouper/grouper_data/container_files/conf/grouper.properties b/demo/grouper/grouper_data_init/conf/grouper.properties similarity index 100% rename from demo/grouper/grouper_data/container_files/conf/grouper.properties rename to demo/grouper/grouper_data_init/conf/grouper.properties diff --git a/demo/grouper/grouper_data_init/sql/010_createSQLuser.sql b/demo/grouper/grouper_data_init/sql/010_createSQLuser.sql new file mode 100644 index 0000000..9e6bd40 --- /dev/null +++ b/demo/grouper/grouper_data_init/sql/010_createSQLuser.sql @@ -0,0 +1,6 @@ +ALTER system SET max_connections=250; +ALTER system SET shared_buffers='180MB'; +CREATE USER grouper PASSWORD 'password'; +CREATE DATABASE grouper; +GRANT ALL PRIVILEGES ON DATABASE grouper TO grouper; +ALTER DATABASE grouper OWNER TO grouper; diff --git a/demo/grouper/grouper_data_init/sql/015_createDBforMP.sql b/demo/grouper/grouper_data_init/sql/015_createDBforMP.sql new file mode 100644 index 0000000..471d523 --- /dev/null +++ b/demo/grouper/grouper_data_init/sql/015_createDBforMP.sql @@ -0,0 +1,3 @@ +CREATE DATABASE grouper_to_midpoint; +GRANT ALL PRIVILEGES ON DATABASE grouper_to_midpoint TO grouper; +ALTER DATABASE grouper_to_midpoint OWNER TO grouper; diff --git a/demo/grouper/grouper_data_init/sql/020_createDBforMP.sh b/demo/grouper/grouper_data_init/sql/020_createDBforMP.sh new file mode 100644 index 0000000..db8403b --- /dev/null +++ b/demo/grouper/grouper_data_init/sql/020_createDBforMP.sh @@ -0,0 +1,97 @@ +#!/bin/bash +set -e + +psql -v ON_ERROR_STOP=1 --username "grouper" --dbname "grouper_to_midpoint" <<-EOSQL +CREATE TABLE gr_mp_groups ( + group_name varchar(1024) NULL, -- Name of group mapped in some way + id_index int8 NOT NULL, -- This is the integer identifier for a group and foreign key to group attributes and memberships + display_name varchar(1024) NULL, -- Display name of group mapped in some way + description varchar(1024) NULL, -- Description of group mapped in some way + last_modified int8 NOT NULL, -- Millis since 1970, will be sequential and unique + deleted varchar(1) NOT NULL, -- T or F. Deleted rows will be removed after they have had time to be processed + CONSTRAINT gr_mp_groups_pkey PRIMARY KEY (id_index) +); +CREATE INDEX gr_mp_groups_ddx ON gr_mp_groups(display_name); +CREATE INDEX gr_mp_groups_gdx ON gr_mp_groups(group_name); +CREATE UNIQUE INDEX gr_mp_groups_idx ON gr_mp_groups(id_index); +CREATE UNIQUE INDEX gr_mp_groups_ldx ON gr_mp_groups(last_modified); +COMMENT ON TABLE gr_mp_groups IS 'This table holds groups'; + +COMMENT ON COLUMN gr_mp_groups.group_name IS 'Name of group mapped in some way'; +COMMENT ON COLUMN gr_mp_groups.id_index IS 'This is the integer identifier for a group and foreign key to group attributes and memberships'; +COMMENT ON COLUMN gr_mp_groups.display_name IS 'Display name of group mapped in some way'; +COMMENT ON COLUMN gr_mp_groups.description IS 'Description of group mapped in some way'; +COMMENT ON COLUMN gr_mp_groups.last_modified IS 'Millis since 1970, will be sequential and unique'; +COMMENT ON COLUMN gr_mp_groups.deleted IS 'T or F. Deleted rows will be removed after they have had time to be processed'; + +CREATE TABLE gr_mp_subjects ( + subject_id_index int8 NOT NULL, -- This is the integer identifier for a subject and foreign key to subject attributes and memberships + subject_id varchar(1024) NULL, -- Subject ID mapped in some way + last_modified int8 NOT NULL, -- Millis since 1970, will be sequential and unique + deleted varchar(1) NOT NULL, -- T or F. Deleted rows will be removed after they have had time to be processed + CONSTRAINT gr_mp_subjects_pkey PRIMARY KEY (subject_id_index) +); +CREATE UNIQUE INDEX gr_mp_subjects_idx ON gr_mp_subjects(subject_id_index); +CREATE UNIQUE INDEX gr_mp_subjects_ldx ON gr_mp_subjects(last_modified); +CREATE INDEX gr_mp_subjects_sdx ON gr_mp_subjects(subject_id); +COMMENT ON TABLE gr_mp_subjects IS 'This table holds subjects'; + +COMMENT ON COLUMN gr_mp_subjects.subject_id_index IS 'This is the integer identifier for a subject and foreign key to subject attributes and memberships'; +COMMENT ON COLUMN gr_mp_subjects.subject_id IS 'Subject ID mapped in some way'; +COMMENT ON COLUMN gr_mp_subjects.last_modified IS 'Millis since 1970, will be sequential and unique'; +COMMENT ON COLUMN gr_mp_subjects.deleted IS 'T or F. Deleted rows will be removed after they have had time to be processed'; + +CREATE TABLE gr_mp_group_attributes ( + group_id_index int8 NOT NULL, -- This is the integer identifier for a group and foreign key to groups and memberships + attribute_name varchar(1000) NOT NULL, -- Attribute name for attributes not in the main group table + attribute_value varchar(4000) NULL, -- Attribute value could be null + last_modified int8 NOT NULL, -- Millis since 1970, will be sequential and unique + deleted varchar(1) NOT NULL, -- T or F. Deleted rows will be removed after they have had time to be processed + CONSTRAINT gr_mp_group_attributes_fk FOREIGN KEY (group_id_index) REFERENCES gr_mp_groups(id_index) ON DELETE CASCADE + ); +CREATE UNIQUE INDEX gr_mp_group_attributes_idx ON gr_mp_group_attributes(group_id_index, attribute_name, attribute_value); +CREATE UNIQUE INDEX gr_mp_group_attributes_ldx ON gr_mp_group_attributes(last_modified); +COMMENT ON TABLE gr_mp_group_attributes IS 'This table holds group attributes which are one to one or one to many to the groups table'; + +COMMENT ON COLUMN gr_mp_group_attributes.group_id_index IS 'This is the integer identifier for a group and foreign key to groups and memberships'; +COMMENT ON COLUMN gr_mp_group_attributes.attribute_name IS 'Attribute name for attributes not in the main group table'; +COMMENT ON COLUMN gr_mp_group_attributes.attribute_value IS 'Attribute value could be null'; +COMMENT ON COLUMN gr_mp_group_attributes.last_modified IS 'Millis since 1970, will be sequential and unique'; +COMMENT ON COLUMN gr_mp_group_attributes.deleted IS 'T or F. Deleted rows will be removed after they have had time to be processed'; + +CREATE TABLE gr_mp_memberships ( + group_id_index int8 NOT NULL, -- This is the foreign key to groups + subject_id_index int8 NOT NULL, -- This is the foreign key to subjects + last_modified int8 NOT NULL, -- Millis since 1970, will be sequential and unique + deleted varchar(1) NOT NULL, -- T or F. Deleted rows will be removed after they have had time to be processed + CONSTRAINT gr_mp_memberships_gfk FOREIGN KEY (group_id_index) REFERENCES gr_mp_groups(id_index) ON DELETE CASCADE, + CONSTRAINT gr_mp_memberships_sfk FOREIGN KEY (subject_id_index) REFERENCES gr_mp_subjects(subject_id_index) ON DELETE CASCADE + ); +CREATE UNIQUE INDEX gr_mp_memberships_idx ON gr_mp_memberships(group_id_index, subject_id_index); +CREATE UNIQUE INDEX gr_mp_memberships_ldx ON gr_mp_memberships(last_modified); +COMMENT ON TABLE gr_mp_memberships IS 'This table holds memberships. The primary key is group_id_index and subject_id_index'; + +COMMENT ON COLUMN gr_mp_memberships.group_id_index IS 'This is the foreign key to groups'; +COMMENT ON COLUMN gr_mp_memberships.subject_id_index IS 'This is the foreign key to subjects'; +COMMENT ON COLUMN gr_mp_memberships.last_modified IS 'Millis since 1970, will be sequential and unique'; +COMMENT ON COLUMN gr_mp_memberships.deleted IS 'T or F. Deleted rows will be removed after they have had time to be processed'; + +CREATE TABLE gr_mp_subject_attributes ( + subject_id_index int8 NOT NULL, -- This is the integer identifier and foreign key to subjects + attribute_name varchar(1000) NOT NULL, -- Attribute name for attributes not in the main subject table + attribute_value varchar(4000) NULL, -- Attribute value could be null + last_modified int8 NOT NULL, -- Millis since 1970, will be sequential and unique + deleted varchar(1) NOT NULL, -- T or F. Deleted rows will be removed after they have had time to be processed + CONSTRAINT gr_mp_subject_attributes_fk FOREIGN KEY (subject_id_index) REFERENCES gr_mp_subjects(subject_id_index) ON DELETE CASCADE + ); +CREATE UNIQUE INDEX gr_mp_subject_attributes_idx ON gr_mp_subject_attributes(subject_id_index, attribute_name, attribute_value); +CREATE UNIQUE INDEX gr_mp_subject_attributes_ldx ON gr_mp_subject_attributes(last_modified); +COMMENT ON TABLE gr_mp_subject_attributes IS 'This table holds subject attributes which are one to one or one to many to the subjects table'; + +COMMENT ON COLUMN gr_mp_subject_attributes.subject_id_index IS 'This is the integer identifier and foreign key to subjects'; +COMMENT ON COLUMN gr_mp_subject_attributes.attribute_name IS 'Attribute name for attributes not in the main subject table'; +COMMENT ON COLUMN gr_mp_subject_attributes.attribute_value IS 'Attribute value could be null'; +COMMENT ON COLUMN gr_mp_subject_attributes.last_modified IS 'Millis since 1970, will be sequential and unique'; +COMMENT ON COLUMN gr_mp_subject_attributes.deleted IS 'T or F. Deleted rows will be removed after they have had time to be processed'; + +EOSQL diff --git a/demo/grouper/grouper_ui/Dockerfile b/demo/grouper/grouper_ui/Dockerfile deleted file mode 100644 index fd4675c..0000000 --- a/demo/grouper/grouper_ui/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM tier/grouper:2.4.0-a47-u25-w5-p6-20190611 - -LABEL author="tier-packaging@internet2.edu " - -# Update this Shib yum repo -COPY container_files/shibboleth/shibboleth.repo /etc/yum.repos.d/ - -#COPY in custom css, images, etc - -CMD ["ui"] diff --git a/demo/grouper/grouper_ui/container_files/shibboleth/shibboleth.repo b/demo/grouper/grouper_ui/container_files/shibboleth/shibboleth.repo deleted file mode 100644 index dabe005..0000000 --- a/demo/grouper/grouper_ui/container_files/shibboleth/shibboleth.repo +++ /dev/null @@ -1,9 +0,0 @@ -[shibboleth] -name=Shibboleth (CentOS_7) -# Please report any problems to https://shibboleth.atlassian.net/jira -type=rpm-md -mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7 -gpgcheck=1 -gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key - https://shibboleth.net/downloads/service-provider/RPMS/cantor.repomd.xml.key -enabled=1 diff --git a/demo/grouper/grouper_ui/container_files/shibboleth/shibd.logger b/demo/grouper/grouper_ui/container_files/shibboleth/shibd.logger deleted file mode 100644 index 2589b43..0000000 --- a/demo/grouper/grouper_ui/container_files/shibboleth/shibd.logger +++ /dev/null @@ -1,69 +0,0 @@ -# set overall behavior -log4j.rootCategory=DEBUG, shibd_log, warn_log - -# fairly verbose for DEBUG, so generally leave at DEBUG -log4j.category.XMLTooling.XMLObject=DEBUG -log4j.category.XMLTooling.KeyInfoResolver=DEBUG -log4j.category.Shibboleth.IPRange=DEBUG -log4j.category.Shibboleth.PropertySet=DEBUG - -# raise for low-level tracing of SOAP client HTTP/SSL behavior -log4j.category.XMLTooling.libcurl=DEBUG - -# useful categories to tune independently: -# -# tracing of SAML messages and security policies -#log4j.category.OpenSAML.MessageDecoder=DEBUG -#log4j.category.OpenSAML.MessageEncoder=DEBUG -#log4j.category.OpenSAML.SecurityPolicyRule=DEBUG -#log4j.category.XMLTooling.SOAPClient=DEBUG -# interprocess message remoting -#log4j.category.Shibboleth.Listener=DEBUG -# mapping of requests to applicationId -#log4j.category.Shibboleth.RequestMapper=DEBUG -# high level session cache operations -#log4j.category.Shibboleth.SessionCache=DEBUG -# persistent storage and caching -#log4j.category.XMLTooling.StorageService=DEBUG - -# logs XML being signed or verified if set to DEBUG -log4j.category.XMLTooling.Signature.Debugger=DEBUG, sig_log -log4j.additivity.XMLTooling.Signature.Debugger=false - -# the tran log blocks the "default" appender(s) at runtime -# Level should be left at DEBUG for this category -log4j.category.Shibboleth-TRANSACTION=DEBUG, tran_log -log4j.additivity.Shibboleth-TRANSACTION=false -# uncomment to suppress particular event types -#log4j.category.Shibboleth-TRANSACTION.AuthnRequest=WARN -#log4j.category.Shibboleth-TRANSACTION.Login=WARN -#log4j.category.Shibboleth-TRANSACTION.Logout=WARN - -# define the appenders - -log4j.appender.shibd_log=org.apache.log4j.RollingFileAppender -log4j.appender.shibd_log.fileName=/var/log/shibboleth/shibd.log -log4j.appender.shibd_log.maxFileSize=1000000 -log4j.appender.shibd_log.maxBackupIndex=10 -log4j.appender.shibd_log.layout=org.apache.log4j.PatternLayout -log4j.appender.shibd_log.layout.ConversionPattern=%d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n - -log4j.appender.warn_log=org.apache.log4j.RollingFileAppender -log4j.appender.warn_log.fileName=/var/log/shibboleth/shibd_warn.log -log4j.appender.warn_log.maxFileSize=1000000 -log4j.appender.warn_log.maxBackupIndex=10 -log4j.appender.warn_log.layout=org.apache.log4j.PatternLayout -log4j.appender.warn_log.layout.ConversionPattern=%d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n -log4j.appender.warn_log.threshold=WARN - -log4j.appender.tran_log=org.apache.log4j.RollingFileAppender -log4j.appender.tran_log.fileName=/var/log/shibboleth/transaction.log -log4j.appender.tran_log.maxFileSize=1000000 -log4j.appender.tran_log.maxBackupIndex=20 -log4j.appender.tran_log.layout=org.apache.log4j.PatternLayout -log4j.appender.tran_log.layout.ConversionPattern=%d{%Y-%m-%d %H:%M:%S} %p %c %x: %m%n - -log4j.appender.sig_log=org.apache.log4j.FileAppender -log4j.appender.sig_log.fileName=/var/log/shibboleth/signature.log -log4j.appender.sig_log.layout=org.apache.log4j.PatternLayout -log4j.appender.sig_log.layout.ConversionPattern=%m diff --git a/demo/grouper/grouper_ws/Dockerfile b/demo/grouper/grouper_ws/Dockerfile deleted file mode 100644 index d52b7ac..0000000 --- a/demo/grouper/grouper_ws/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM tier/grouper:2.4.0-a47-u25-w5-p6-20190611 - -LABEL author="tier-packaging@internet2.edu " - -# Update this Shib yum repo -COPY container_files/shibboleth/shibboleth.repo /etc/yum.repos.d/ - -COPY container_files/web.xml /opt/grouper/grouper.ws/WEB-INF/ -COPY container_files/tomcat-users.xml /opt/tomcat/conf/ -COPY container_files/server.xml /opt/tomcat/conf/ - -CMD ["ws"] diff --git a/demo/grouper/grouper_ws/container_files/shibboleth/shibboleth.repo b/demo/grouper/grouper_ws/container_files/shibboleth/shibboleth.repo deleted file mode 100644 index dabe005..0000000 --- a/demo/grouper/grouper_ws/container_files/shibboleth/shibboleth.repo +++ /dev/null @@ -1,9 +0,0 @@ -[shibboleth] -name=Shibboleth (CentOS_7) -# Please report any problems to https://shibboleth.atlassian.net/jira -type=rpm-md -mirrorlist=https://shibboleth.net/cgi-bin/mirrorlist.cgi/CentOS_7 -gpgcheck=1 -gpgkey=https://shibboleth.net/downloads/service-provider/RPMS/repomd.xml.key - https://shibboleth.net/downloads/service-provider/RPMS/cantor.repomd.xml.key -enabled=1 diff --git a/demo/grouper/grouper_ws/container_files/web.xml b/demo/grouper/grouper_ws/container_files/web.xml deleted file mode 100644 index 03d3deb..0000000 --- a/demo/grouper/grouper_ws/container_files/web.xml +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - Grouper service filter - edu.internet2.middleware.grouper.ws.GrouperServiceJ2ee - - - - - Grouper logging filter - edu.internet2.middleware.grouper.ws.j2ee.ServletFilterLogger - - - - - - Grouper service filter - /services/* - - - Grouper service filter - /servicesRest/* - - - AxisServlet - Apache-Axis Servlet - edu.internet2.middleware.grouper.ws.GrouperServiceAxisServlet - 1 - - - - - RestServlet - WS REST Servlet - edu.internet2.middleware.grouper.ws.rest.GrouperRestServlet - 1 - - - StatusServlet - Status Servlet - edu.internet2.middleware.grouper.j2ee.status.GrouperStatusServlet - 1 - - - StatusServlet - /status - - - AxisServlet - /services/* - - - RestServlet - /servicesRest/* - - - - - Web services - /services/* - - - * - - - - - - Web services - /servicesRest/* - - - - * - - - - - - BASIC - Grouper Application - - - - - - The role that is required to log in to web service - - * - - - - 1 - - - diff --git a/demo/grouper/grouper_ws/container_files/server.xml b/demo/grouper/grouper_ws/server.xml similarity index 97% rename from demo/grouper/grouper_ws/container_files/server.xml rename to demo/grouper/grouper_ws/server.xml index 112e7d0..17769bf 100644 --- a/demo/grouper/grouper_ws/container_files/server.xml +++ b/demo/grouper/grouper_ws/server.xml @@ -113,7 +113,7 @@ --> - + + grouper_user + + + + + + BASIC + Grouper Application + + + + + + The role that is required to log in to web service + + grouper_user + + + \ No newline at end of file diff --git a/demo/grouper/idp/Dockerfile b/demo/grouper/idp/Dockerfile deleted file mode 100644 index 4968448..0000000 --- a/demo/grouper/idp/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM tier/shib-idp:3.4.6_20191002 - -LABEL author="tier-packaging@internet2.edu " - -COPY shibboleth-idp/ /opt/shibboleth-idp/ diff --git a/demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.crt b/demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.crt deleted file mode 100644 index c1f8fab..0000000 --- a/demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= ------END CERTIFICATE----- diff --git a/demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.p12 b/demo/grouper/idp/shibboleth-idp/credentials/idp-backchannel.p12 deleted file mode 100644 index 112540ac0718da62464ec2f31d7916a923e3c531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2500 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 diff --git a/demo/grouper/idp/shibboleth-idp/credentials/sealer.kver b/demo/grouper/idp/shibboleth-idp/credentials/sealer.kver deleted file mode 100644 index d64b0e4..0000000 --- a/demo/grouper/idp/shibboleth-idp/credentials/sealer.kver +++ /dev/null @@ -1,2 +0,0 @@ -#Fri Dec 11 02:20:32 UTC 2015 -CurrentVersion=1 diff --git a/demo/grouper/idp/shibboleth-idp/metadata/idp-metadata.xml b/demo/grouper/idp/shibboleth-idp/metadata/idp-metadata.xml deleted file mode 100644 index 65db47e..0000000 --- a/demo/grouper/idp/shibboleth-idp/metadata/idp-metadata.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - example.org - - - - - - - -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= - - - - - - - - - -MIIDFDCCAfygAwIBAgIVAN3vv+b7KN5Se9m1RZsCllp/B/hdMA0GCSqGSIb3DQEB -CwUAMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwHhcNMTUxMjExMDIyMDE0WhcNMzUx -MjExMDIyMDE0WjAVMRMwEQYDVQQDDAppZHB0ZXN0YmVkMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAh91caeY0Q85uhaUyqFwP2bMjwMFxMzRlAoqBHd7g -u6eo4duaeLz1BaoR2XTBpNNvFR5oHH+TkKahVDGeH5+kcnIpxI8JPdsZml1srvf2 -Z6dzJsulJZUdpqnngycTkGtZgEoC1vmYVky2BSAIIifmdh6s0epbHnMGLsHzMKfJ -Cb/Q6dYzRWTCPtzE2VMuQqqWgeyMr7u14x/Vqr9RPEFsgY8GIu5jzB6AyUIwrLg+ -MNkv6aIdcHwxYTGL7ijfy6rSWrgBflQoYRYNEnseK0ZHgJahz4ovCag6wZAoPpBs -uYlY7lEr89Ucb6NHx3uqGMsXlDFdE4QwfDLLhCYHPvJ0uwIDAQABo1swWTAdBgNV -HQ4EFgQUAkOgED3iYdmvQEOMm6u/JmD/UTQwOAYDVR0RBDEwL4IKaWRwdGVzdGJl -ZIYhaHR0cHM6Ly9pZHB0ZXN0YmVkL2lkcC9zaGliYm9sZXRoMA0GCSqGSIb3DQEB -CwUAA4IBAQBIdd4YWlnvJjql8+zKKgmWgIY7U8DA8e6QcbAf8f8cdE33RSnjI63X -sv/y9GfmbAVAD6RIAXPFFeRYJ08GOxGI9axfNaKdlsklJ9bk4ducHqgCSWYVer3s -RQBjxyOfSTvk9YCJvdJVQRJLcCvxwKakFCsOSnV3t9OvN86Ak+fKPVB5j2fM/0fZ -Kqjn3iqgdNPTLXPsuJLJO5lITRiBa4onmVelAiCstI9PQiaEck+oAHnMTnC9JE/B -DHv3e4rwq3LznlqPw0GSd7xqNTdMDwNOWjkuOr3sGpWS8ms/ZHHXV1Vd22uPe70i -s00xrv14zLifcc8oj5DYzOhYRifRXgHX - - - - - - - - - -MIIDEzCCAfugAwIBAgIUG6Nn1rlERS1vsi88tcdzSYX0oqAwDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMTRaFw0zNTEy -MTEwMjIwMTRaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCBXv0o3fmT8iluyLjJ4lBAVCW+ZRVyEXPYQuRi7vfD -cO4a6d1kxiJLsaK0W88VNxjFQRr8PgDkWr28vwoH1rgk4pLsszLD48DBzD942peJ -l/S6FnsIJjmaHcBh4pbNhU4yowu63iKkvttrcZAEbpEro6Z8CziWEx8sywoaYEQG -ifPkr9ORV6Cn3txq+9gMBePG41GrtZrUGIu+xrndL0Shh4Pq0eq/9MAsVlIIXEa8 -9WfH8J2kFcTOfoWtIc70b7TLZQsx4YnNcnrGLSUEcstFyPLX+Xtv5SNZF89OOIxX -VNjNvgE5DbJb9hMM4UAFqI+1bo9QqtxwThjc/sOvIxzNAgMBAAGjWzBZMB0GA1Ud -DgQWBBStTyogRPuAVG6q7yPyav1uvE+7pTA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAFMfoOv+oISGjvamq7+Y4G7ep5vxlAPeK3RATYPYvAmyH946qZXh98ni -QXyuqZW5P5eEt86toY45IwDU5r09SKwHughEe99iiEkxh0mb2qo84qX9/qcg+kyN -jeLd/OSyolpUCEFNwOFcog7pj7Eer+6AHbwTn1Mjb5TBsKwtDMJsaxPvdj0u7M5r -xL/wHkFhn1rCo2QiojzjSlV3yLTh49iTyhE3cG+RxaNKDCxhp0jSSLX1BW/ZoPA8 -+PMJEA+Q0QbyRD8aJOHN5O8jGxCa/ZzcOnYVL6AsEXoDiY3vAUYh1FUonOWw0m9H -p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - - - - - - urn:mace:shibboleth:1.0:nameIdentifier - urn:oasis:names:tc:SAML:2.0:nameid-format:transient - - - - - - - - - - - - - localhost - - - - - - -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= - - - - - - - - - -MIIDFDCCAfygAwIBAgIVAN3vv+b7KN5Se9m1RZsCllp/B/hdMA0GCSqGSIb3DQEB -CwUAMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwHhcNMTUxMjExMDIyMDE0WhcNMzUx -MjExMDIyMDE0WjAVMRMwEQYDVQQDDAppZHB0ZXN0YmVkMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAh91caeY0Q85uhaUyqFwP2bMjwMFxMzRlAoqBHd7g -u6eo4duaeLz1BaoR2XTBpNNvFR5oHH+TkKahVDGeH5+kcnIpxI8JPdsZml1srvf2 -Z6dzJsulJZUdpqnngycTkGtZgEoC1vmYVky2BSAIIifmdh6s0epbHnMGLsHzMKfJ -Cb/Q6dYzRWTCPtzE2VMuQqqWgeyMr7u14x/Vqr9RPEFsgY8GIu5jzB6AyUIwrLg+ -MNkv6aIdcHwxYTGL7ijfy6rSWrgBflQoYRYNEnseK0ZHgJahz4ovCag6wZAoPpBs -uYlY7lEr89Ucb6NHx3uqGMsXlDFdE4QwfDLLhCYHPvJ0uwIDAQABo1swWTAdBgNV -HQ4EFgQUAkOgED3iYdmvQEOMm6u/JmD/UTQwOAYDVR0RBDEwL4IKaWRwdGVzdGJl -ZIYhaHR0cHM6Ly9pZHB0ZXN0YmVkL2lkcC9zaGliYm9sZXRoMA0GCSqGSIb3DQEB -CwUAA4IBAQBIdd4YWlnvJjql8+zKKgmWgIY7U8DA8e6QcbAf8f8cdE33RSnjI63X -sv/y9GfmbAVAD6RIAXPFFeRYJ08GOxGI9axfNaKdlsklJ9bk4ducHqgCSWYVer3s -RQBjxyOfSTvk9YCJvdJVQRJLcCvxwKakFCsOSnV3t9OvN86Ak+fKPVB5j2fM/0fZ -Kqjn3iqgdNPTLXPsuJLJO5lITRiBa4onmVelAiCstI9PQiaEck+oAHnMTnC9JE/B -DHv3e4rwq3LznlqPw0GSd7xqNTdMDwNOWjkuOr3sGpWS8ms/ZHHXV1Vd22uPe70i -s00xrv14zLifcc8oj5DYzOhYRifRXgHX - - - - - - - - - -MIIDEzCCAfugAwIBAgIUG6Nn1rlERS1vsi88tcdzSYX0oqAwDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMTRaFw0zNTEy -MTEwMjIwMTRaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCBXv0o3fmT8iluyLjJ4lBAVCW+ZRVyEXPYQuRi7vfD -cO4a6d1kxiJLsaK0W88VNxjFQRr8PgDkWr28vwoH1rgk4pLsszLD48DBzD942peJ -l/S6FnsIJjmaHcBh4pbNhU4yowu63iKkvttrcZAEbpEro6Z8CziWEx8sywoaYEQG -ifPkr9ORV6Cn3txq+9gMBePG41GrtZrUGIu+xrndL0Shh4Pq0eq/9MAsVlIIXEa8 -9WfH8J2kFcTOfoWtIc70b7TLZQsx4YnNcnrGLSUEcstFyPLX+Xtv5SNZF89OOIxX -VNjNvgE5DbJb9hMM4UAFqI+1bo9QqtxwThjc/sOvIxzNAgMBAAGjWzBZMB0GA1Ud -DgQWBBStTyogRPuAVG6q7yPyav1uvE+7pTA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAFMfoOv+oISGjvamq7+Y4G7ep5vxlAPeK3RATYPYvAmyH946qZXh98ni -QXyuqZW5P5eEt86toY45IwDU5r09SKwHughEe99iiEkxh0mb2qo84qX9/qcg+kyN -jeLd/OSyolpUCEFNwOFcog7pj7Eer+6AHbwTn1Mjb5TBsKwtDMJsaxPvdj0u7M5r -xL/wHkFhn1rCo2QiojzjSlV3yLTh49iTyhE3cG+RxaNKDCxhp0jSSLX1BW/ZoPA8 -+PMJEA+Q0QbyRD8aJOHN5O8jGxCa/ZzcOnYVL6AsEXoDiY3vAUYh1FUonOWw0m9H -p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - - - - - - - - - - - - - diff --git a/demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp-new.xml b/demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp-new.xml deleted file mode 100644 index a819f4b..0000000 --- a/demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp-new.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - midpointdemo - - - - - -MIIDHDCCAgSgAwIBAgIJAPEnL5jgbeVoMA0GCSqGSIb3DQEBCwUAMBoxGDAWBgNV -BAMMD2lkcC5leGFtcGxlLmVkdTAeFw0xODEwMTAyMDM1NDBaFw0yMzEwMDkyMDM1 -NDBaMBoxGDAWBgNVBAMMD2lkcC5leGFtcGxlLmVkdTCCASIwDQYJKoZIhvcNAQEB -BQADggEPADCCAQoCggEBAKwTrvQhmFX3SUNgJAhQ/YV0UX56Rt53mwbiKuH+Ez83 -7z6XRynBVsfzHfbWe0IpNKx5mIr84dfbGhQKQBEKzQuek7ihW3J6PIVZN1A3icZZ -B9i7gow902bT0ZfRG8QW49gl7pk3ASutPcO9Dq5Xc/AqWr3OSO/Pei0yBtTdzG3b -rm0u0gbj3P2tjt7BN77wIB+yjJsND3ITtP0MFXIJxLTlty8thwqQOAOAYcF+rhC5 -znnBLsRNo0E57PtzZs8i/BpEX2uPTxpEyvlU1vtyxcKUiHtK5ZjOsDEkS2rEualr -+FILYg/Oxw1gi0+mNO1a94Ft+UoLiREztq6MQt8OK98CAwEAAaNlMGMwQgYDVR0R -BDswOYIPaWRwLmV4YW1wbGUuZWR1hiZodHRwczovL2lkcC5leGFtcGxlLmVkdS9p -ZHAvc2hpYmJvbGV0aDAdBgNVHQ4EFgQU3ZJ8oHkmlgPtZuZAxnzONccPsb8wDQYJ -KoZIhvcNAQELBQADggEBAIJ4oZKSMGpF8J3qdfjLZGkc3iVbu/eiE1MD77no0oCz -nelY0CNUBuFJk1Xv+Bv0fW0cVugtMPz4xi7zv0zkpS2IVxpPZWBosuVabUD9k+V4 -iN5woJdO7e2KRGvhlWmbkmoZUvhygDe0u0vblNfLzDwFQvxHXiWG//P7SanoQrjP -dE8U21tYz+EFm6s5TvHxVhr9id8c+UacAFCpAtzUB+J8K1abx05XlKsySflkOQV9 -JbM4zOy5gXSI5dY9dGUF77g0muyC+jAhIhLSt/7v3vJgvBurrxPoeBFXOU3D+siT -VZlKtYzYjJhVqXx1vKrWEE1hkpqm+iYgZe4MvgcdswY= - - - - - - - - - - - diff --git a/demo/grouper/midpoint-objects-manual/tasks/task-recomputation-users.xml b/demo/grouper/midpoint-objects-manual/tasks/task-recomputation-users.xml deleted file mode 100644 index 03fe35f..0000000 --- a/demo/grouper/midpoint-objects-manual/tasks/task-recomputation-users.xml +++ /dev/null @@ -1,32 +0,0 @@ - - User recomputation - - - - - - - - 1571729899646-0-1 - - - - http://midpoint.evolveum.com/xml/ns/public/provisioning/channels-3#recompute - runnable - - single - - tight - - - - - c:UserType - - - - - diff --git a/demo/grouper/midpoint_server/Dockerfile b/demo/grouper/midpoint_server/Dockerfile deleted file mode 100644 index 11ab497..0000000 --- a/demo/grouper/midpoint_server/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -ARG tag=4.8.2 - -FROM i2incommon/midpoint:${tag} - -MAINTAINER info@evolveum.com - -ENV MP_DIR /opt/midpoint - -VOLUME ${MP_DIR}/var - -COPY container_files/mp-home/ ${MP_DIR}/var/ diff --git a/demo/grouper/midpoint_server/container_files/httpd/host-cert.pem b/demo/grouper/midpoint_server/container_files/httpd/host-cert.pem deleted file mode 100644 index 9b1021b..0000000 --- a/demo/grouper/midpoint_server/container_files/httpd/host-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAMOSkn4oS2aAMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRcwFQYDVQQK -DA5JbnRlcm5ldDIvVElFUjEgMB4GA1UEAwwXbWlkcG9pbnQuc3AuZXhhbXBsZS5v -cmcwHhcNMTgwOTE0MDU1OTQ1WhcNMTkwOTE0MDU1OTQ1WjBpMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxIDAeBgNVBAMMF21pZHBvaW50LnNwLmV4YW1wbGUub3JnMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApj/b7MEUSfu3oXMfNgRwTse7 -a5UV7Jswf1M/ZN/ZZkAkIxNBevZgozjesvLPWrmsTgONi7XigJUJvCjdjmlW9eDM -lri/rkD8HuOR1DQCVKL9nvoS2c3D7sq5Emda3V8Tlj82VqfEmePd3sajx7mcTfbH -8jwAL9NhkC+WMib5IpjLGpG0FEAC0ha7Lxb+7jIiqHVJaqLXJGCyGN4mh6c1Q9S1 -f8RVTiW2a8x22G+9wnZYbkiA2Kxls177imHlhSz8EdvV4IpGw1amrEWhhuDEum7B -vZ1xQDLatgRqh4qAKLIVYeRnJ8H1FelMa90qB4G08MIPifmTsQwqJyBYaEdgWQID -AQABo1MwUTAdBgNVHQ4EFgQUqb9BteODF6wv5R57aEON/wGXMiowHwYDVR0jBBgw -FoAUqb9BteODF6wv5R57aEON/wGXMiowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG -9w0BAQsFAAOCAQEAAcKhxI+tSItrXmqC0PSmgWyAYpqbkz6W/cefTutXqhIgY09f -h0LSv7ogTahoGpyiZk9vy6u3OE9bYwxapEfa4KBjO6HxBMIVBBb3RegVjoPzjElN -BDwAx0VGFcZTXwMxDWycWdG8ql7rCZBvS50w04uTaIgnGmqXAdWWmBgfJ9cRbxW+ -JwO/mOl1QM1lR/5142NpvuUVWlmZSKEGydE5A1qPz2wpDbBR1ym1BQNS4NEqw6Kp -GSB8jKyCS1Ve0v2wVze2038Wukz02dq9uKPTIO3T+B+ibZmxn6Op/kFCc1/kK5NS -Q6JdO1B6KquGAYdGmKAcQ19mv+jqGktqWEEf0g== ------END CERTIFICATE----- diff --git a/demo/grouper/midpoint_server/container_files/httpd/host-key.pem b/demo/grouper/midpoint_server/container_files/httpd/host-key.pem deleted file mode 100644 index 5746e59..0000000 --- a/demo/grouper/midpoint_server/container_files/httpd/host-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmP9vswRRJ+7eh -cx82BHBOx7trlRXsmzB/Uz9k39lmQCQjE0F69mCjON6y8s9auaxOA42LteKAlQm8 -KN2OaVb14MyWuL+uQPwe45HUNAJUov2e+hLZzcPuyrkSZ1rdXxOWPzZWp8SZ493e -xqPHuZxN9sfyPAAv02GQL5YyJvkimMsakbQUQALSFrsvFv7uMiKodUlqotckYLIY -3iaHpzVD1LV/xFVOJbZrzHbYb73CdlhuSIDYrGWzXvuKYeWFLPwR29XgikbDVqas -RaGG4MS6bsG9nXFAMtq2BGqHioAoshVh5GcnwfUV6Uxr3SoHgbTwwg+J+ZOxDCon -IFhoR2BZAgMBAAECggEAEIRBpjjceiku6jRUwnoYaks/nIWYQwR8AfpUTwJKR/VR -Yca097Fokm7A+UhUP3A45RtHQb0VPq8P44iv0kk24YCu8r5yFK7SHYOAZnOwU5ZJ -2jSAEPF3aM7tKh3okhuzB3dKP7u1NZDE5zAW723KUJiW7sL1RcsbY0bHBj6G+9/H -NplmsjuGt684vRBB0qOBfKF7EiG7mT69tHuNj4gRza9SMY31UtKbZdt2fNY6mp5V -HscMba7egZP+Ke0pVX4+go9j7K8GG8hYaQDLjrzlPqrxZ2c5X9cC+CRDI/CHuL/s -V/2yGZJ6n6UabwZoH83RdFrbQ94rU8Hkli6EvxXvMQKBgQDRpheNW5jDG5TfeJKh -yfKTDQqH2Tk3BsBYYBN7Hf3m7vbkzlxnAKJAoSLmtRMuoeXvI5MrhzaHGsNIUS76 -LDIZnvB7DLUxhFUZsCPkpAA1QHuTWY96oR3PHnPjpk8lSUvtbOPwDLdzVApeFJgZ -VqMNArZ7AHsK3Kkyi+f4WVQjbQKBgQDLAWiGb5dx6fAM2W6B6HjNmzjBWOuVEXa2 -76to9jzupBZmETfZgxtWUaWUDuNS+f7dtVUTE+p6v/w8clrHEhEZYkqunIOLo/UA -LFPiuoTfEsWb1rh+nsCjCgy4uimixj/bSkf7NC6NyKTvCygA1mGnVVJUEPegYlDy -LXCkaKWxHQKBgQCmyHSKL2lrJkEcOwakEU2acNCE3Gno/cT9SYmV83kvQ8JEqmrW -QqnRsp9aXIljGscapPmKsmnNt5vNp1AxFAHTYh88NRLczsMIyZj0ZwgHVUI6KhC7 -5Psa78YQQBlMt2/g9TSsnuE+rYgF6mpKFiNm0Vasqeg47uzn2mdzqlUGTQKBgE04 -JutkTUY+h1pL5vYxWKpVDfy19z7H2tFxT1FowPrBneeLSyRI88Ac5I/yLdRlVeY9 -0LOmEr5Igwj3MsKgg7KVKfVLgdo/LrW3Jt2Kt3onKNXDkoBPoNUjwH0QC0Boiue+ -VK0gR0kVdm+bXccbxR+im+NwZNE0NLg6Qqu3RredAoGBALuVoqbPPmTCZXYG328H -bzOs2aiR7BzPSVByV+qG6jW7w03RAnFPJZp7HMU+ViI5VY0wabUscMSvz5163+gM -4KwY3v9ZjZzZGukIfLuudkdqtaiVOx/KeAC0n+nG21YU+wpZww8gkfHh1/sa2CME -CWYCgOnmiTHcj83UaTqEXtmv ------END PRIVATE KEY----- diff --git a/demo/grouper/midpoint_server/container_files/mp-home/config.xml b/demo/grouper/midpoint_server/container_files/mp-home/config.xml deleted file mode 100644 index c45e612..0000000 --- a/demo/grouper/midpoint_server/container_files/mp-home/config.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - ${midpoint.home}/import - - - native - jdbc:postgresql://localhost:5432/midpoint - - - - com.evolveum.midpoint.audit.impl.LoggerAuditServiceFactory - - - com.evolveum.midpoint.repo.sqale.audit.SqaleAuditServiceFactory - - - - true - ${midpoint.home}/icf-connectors - - - ${midpoint.home}/keystore.jceks - changeit - default - - - - - diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/100-function-library-grouper.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/100-function-library-grouper.xml deleted file mode 100644 index 2fc89e0..0000000 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/functionLibraries/100-function-library-grouper.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - grouper - Functions for Grouper AMQP connector - - - - - - createUcfChange - - message - c:AsyncUpdateMessageType - - - groupIncludePattern - xsd:anyType - - - groupExcludePattern - xsd:anyType - - - relevantSourceId - xsd:string - - - c:UcfChangeType - - diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/objectTemplates/100-template-user.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/objectTemplates/100-template-user.xml deleted file mode 100644 index 4873611..0000000 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/objectTemplates/100-template-user.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - template-user - - strong - - name - - - - - - assignment - - - - - - - - diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-grouper.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-grouper.xml deleted file mode 100644 index af60e56..0000000 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-grouper.xml +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - Grouper Resource - - - - connectorType - com.evolveum.polygon.connector.grouper.rest.GrouperConnector - - - - - - https://grouper-ws:443 - banderson - password - : - - : - app:.* - test:.* - ref:.* - .*_(includes|excludes|systemOfRecord|systemOfRecordAndIncludes) - ldap - true - - - false - true - false - - - - AMQP async update connector - - - - connectorType - AsyncUpdateConnector - - - - - - - amqp://mq:5672 - guest - guest - sampleQueue - - - - - - - - - - entitlement - group - ri:Group - true - - ri:name - - strong - - extension/grouperName - - - - strong - - - - - assignment - - all - - - - - - ri:member - explicit - indexOnly - - - - - - true - entitlement - group - ri:Group - OrgType - - - extension/grouperName - - $projection/attributes/name - - - - - linked - http://midpoint.evolveum.com/xml/ns/public/provisioning/channels-3#asyncUpdate - - - - false - - - linked - true - - - deleted - - - true - - - unlinked - - http://midpoint.evolveum.com/xml/ns/public/model/action-3#link - - - - unmatched - - http://midpoint.evolveum.com/xml/ns/public/model/action-3#addFocus - - - - - - passive - - diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/010-system-configuration.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/010-system-configuration.xml deleted file mode 100644 index 52c86d3..0000000 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/systemConfigurations/010-system-configuration.xml +++ /dev/null @@ -1,1839 +0,0 @@ - - - - SystemConfiguration - true - - - - - - - ERROR - ro.isdc.wro.extensions.processor.css.Less4jProcessor - - - - OFF - org.springframework.security.web.DefaultSecurityFilterChain - - - - OFF - org.hibernate.engine.jdbc.spi.SqlExceptionHelper - - - - OFF - org.hibernate.engine.jdbc.batch.internal.BatchingBatch - - - - WARN - org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl - - - - OFF - org.hibernate.internal.ExceptionMapperStandardImpl - - - - WARN - org.apache.wicket.resource.PropertiesFactory - - - - ERROR - org.springframework.context.support.ResourceBundleMessageSource - - - - INFO - com.evolveum.midpoint.model.impl.lens.projector.Projector - - - - INFO - com.evolveum.midpoint.model.impl.lens.Clockwork - - - DEBUG - com.evolveum.polygon.connector.grouper - - - - %date [%X{subsystem}] [%thread] %level \(%logger\): %msg%n - MIDPOINT_LOG - ${midpoint.home}/log/midpoint.log - ${midpoint.home}/log/midpoint-%d{yyyy-MM-dd}.%i.log - 10 - 100MB - true - - - - %date %level: %msg%n - MIDPOINT_PROFILE_LOG - ${midpoint.home}/log/midpoint-profile.log - ${midpoint.home}/log/midpoint-profile-%d{yyyy-MM-dd}.%i.log - 10 - 100MB - true - - MIDPOINT_LOG - INFO - - false -
false
-
-
- - UserType - - - - OrgType - - - retired - - - - - - - P3M - - - P1M - - - - true - - true - - - true - true - - - true - true - - - true - - - - true - - - perCacheAndObjectType - - - - 60 - - SystemConfigurationType - ArchetypeType - ObjectTemplateType - SecurityPolicyType - ValuePolicyType - ResourceType - RoleType - OrgType - ServiceType - ShadowType - - - perCacheAndObjectType - - - - - - - perOperationAndObjectType - - - - - performance - Performance tracing - true - true - performance-trace %{timestamp} %{focusName} %{milliseconds} - true - true - - - functional - Functional tracing - true - functional-trace %{timestamp} %{focusName} - true - true - true - - normal - - - - functional-model-logging - Functional tracing (with model logging) - true - functional-trace %{timestamp} %{focusName} - true - true - true - - - com.evolveum.midpoint.model - TRACE - - - - normal - - - - functional-sql-logging - Functional tracing (with SQL logging) - true - functional-trace %{timestamp} %{focusName} - true - true - true - - - org.hibernate.SQL - TRACE - - - - normal - - - - - - demo/grouper - - - - UserType - - search - - - myAccesses - - - col-12 col-xxl-6 - - fe fe-assignment - - - 10 - - viewAll - - - - fa fa-search - - - - /self/profile/user - allAssignments - - - - requestAccess - - - - fas fa-plus-circle - - - - /self/requestAccess - - - allAssignments - 5 - - - myRequests - - - col-12 col-xxl-6 - - fe fe-case - - - 20 - - viewAll - - - - fa fa-search - - - - /admin/casesAll - my-cases - - - myRequests - 5 - - - myWorkItems - - - col-12 col-xxl-6 - - fa fa-inbox - - - 40 - - viewAll - - - - fa fa-search - - - - /admin/myWorkItems - - - myWorkItems - 5 - - - myAccounts - - - col-12 col-xxl-6 - - fa fa-male - - - 30 - - viewAll - - - - fa fa-search - - - - /self/profile/user - projections - - - projections - 5 - - - profileWidget - - - PageSelfDashboard.profile.description - col-md-3 - - bg-green fa fa-user - - - linkWidget - - profile-widget-action - - /self/profile/user - - - - - credentialsWidget - - - PageSelfDashboard.credentials.description - col-md-3 - - bg-blue fa fa-shield-alt - - - linkWidget - - credentials-widget-action - - /self/credentials - - - - - listResourcesWidget - - - col-md-3 - - bg-purple fa fa-database - - - linkWidget - - list-resources-widget-action - - /admin/resources - - - - - listUsersWidget - - - col-md-3 - - bg-red fa fa-user - - - linkWidget - - list-resources-widget-action - - /admin/users - - - - - - - my-cases - - - - - My cases - - MyCases.title - - - My case - - fe fe-case-object - - - 1000 - CaseType - - - - - - - manual-case-view - - - - - All manual cases - - AllManualCases.title - - - Manual case - Manual provisioning cases - - 1010 - CaseType - - - - - - - operation-request-case-view - - - - - All requests - - AllRequests.title - - - Request - Operation requests - - 1020 - CaseType - - - - - - - approval-case-view - - - - - All approvals - - AllApprovals.title - - - Approval - Approval cases - - 1030 - CaseType - - - - - - - correlation-case-view - - - - - All correlations - - AllCorrelations.title - - - Correlation - Correlation cases - - 1040 - CaseType - - - - - - reconciliation-tasks-view - 30 - TaskType - - - - - - recomputation-tasks-view - 30 - TaskType - - - - - - import-tasks-view - 30 - TaskType - - - - - - live-sync-tasks-view - 30 - TaskType - - - - - - async-update-tasks-view - 30 - TaskType - - - - - - cleanup-tasks-view - 30 - TaskType - - - - - - report-tasks-view - - - - Report tasks - report tasks - - ReportTasks.title - - - - fa fa-chart-pie - green - - - 30 - TaskType - - - - - - non-iterative-bulk-tasks-view - 30 - TaskType - - - - - - iterative-bulk-tasks-view - 30 - TaskType - - - - - - report-import-task-view - 30 - add - TaskType - - - - - - export-report-tasks-view - add - 30 - TaskType - - - - - - - - export-report-distributed-tasks-view - add - 30 - TaskType - - - - - - - - shadow-integrity-check-task-view - 30 - add - TaskType - - - - - - shadows-refresh-task-view - 30 - add - TaskType - - - - - - objects-delete-task-view - 30 - add - TaskType - - - - - - shadows-delete-long-time-not-updated-task-view - 30 - add - TaskType - - - - - - execute-change-task-view - 30 - add - TaskType - - - - - - execute-deltas-task-view - 30 - add - TaskType - - - - - - reindex-repository-task-view - 30 - add - TaskType - - - - - - object-integrity-check-task-view - 30 - add - TaskType - - - - - - validity-task-view - 30 - add - TaskType - - - - - - trigger-task-view - 30 - add - TaskType - - - - - - propagation-task-view - 30 - add - TaskType - - - - - - multi-propagation-task-view - 30 - add - TaskType - - - - - - certification-tasks-view - 30 - TaskType - - - - - - approval-tasks-view - 30 - TaskType - - - - - - utility-tasks-view - 30 - TaskType - - - - - - system-tasks-view - 30 - TaskType - - - - - - dashboard-reports-view - ReportType - - - - - - collection-reports-view - ReportType - - - - - - application-role - add - RoleType - - - - - - business-role - add - RoleType - - - - - - application - - - - ServiceType - - - - - - event-mark - c:MarkType - - - - - - - - object-mark - c:MarkType - - - - - - - - Persons - This view displays all users with archetype "Person" - person-view - 10 - UserType - - - - - - - - - Allow searching for users having account on specific resource. Intent is not considered. The search item is not displayed by default - (visibleByDefault=false). - - true - - - linkRef/@ matches ( - . type ShadowType - and resourceRef/@/name = `resourceParameter?.getName()?.getOrig()` - and kind = "account" ) - - - - - - - resourceParameter - c:ObjectReferenceType - ResourceType - - - - Allow searching for users not having account on specific resource. Intent is not considered. The search item is not displayed by default - (visibleByDefault=false). - - true - - - linkRef/@ not matches ( - . type ShadowType - and resourceRef/@/name = `resourceParameter?.getName()?.getOrig()` - and kind = "account" ) - - - - - - - resourceParameter - c:ObjectReferenceType - ResourceType - - - - - - - resource-templates - - - - All resource templates - - ResourceType.template.all.title - - - Resource template - - fa fa-file-alt - - - ResourceType - - - - - - - - - c:TaskType - - advanced-options-panel - - - - formPanel - - advanced-options - 150 - - - - - cleanupAfterCompletion - - - threadStopAction - - - binding - - - dependent - - - - - operational-attributes-panel - - - - formPanel - - operational-attributes - 900 - - - - - executionState - - - schedulingState - - - node - - - nodeAsObserved - - - resultStatus - - - result - - - nextRunStartTimestamp - - - nextRetryTimestamp - - - unpauseAction - - - taskIdentifier - - - parent - - - waitingReason - - - stateBeforeSuspend - - - schedulingStateBeforeSuspend - - - otherHandlersUriStack - - - channel - - - subtaskRef - - - dependentTaskRef - - - lastRunStartTimestamp - - - lastRunFinishTimestamp - - - completionTimestamp - - - - 910 - hidden - operation-attributes-progress - - - - - progress - - - expectedTotal - - - stalledSince - - - - - - c:UserType - - applications - - - - modify - roleMemberships - - applications - c:ServiceType - - - - - - hidden - ServiceType - ServiceType - - - - - - - - rw-type-basic - - basic - - - - - schemaHandling/objectType/displayName - visible - - - schemaHandling/objectType/description - visible - - - schemaHandling/objectType/kind - visible - - - schemaHandling/objectType/intent - visible - - - schemaHandling/objectType/securityPolicyRef - visible - - - schemaHandling/objectType/default - visible - - - - hidden - schemaHandling/objectType - - rw-type-basic - - - rw-type-delineation - - delineation - - - - - schemaHandling/objectType/delineation/objectClass - visible - - - schemaHandling/objectType/delineation/auxiliaryObjectClass - visible - - - schemaHandling/objectType/delineation/searchHierarchyScope - visible - - - schemaHandling/objectType/delineation/filter - visible - - - schemaHandling/objectType/delineation/classificationCondition - visible - - - - hidden - schemaHandling/objectType/delineation - - rw-type-delineation - - - rw-attribute-limitations - - limitationsMapping - - - - - schemaHandling/objectType/attribute/limitations/access/read - visible - - - schemaHandling/objectType/attribute/limitations/access/add - visible - - - schemaHandling/objectType/attribute/limitations/access/modify - visible - - - schemaHandling/objectType/attribute/limitations/minOccurs - visible - - - schemaHandling/objectType/attribute/limitations/maxOccurs - visible - - - schemaHandling/objectType/attribute/limitations/processing - visible - - - - hidden - schemaHandling/objectType/attribute/limitations - - rw-attribute-limitations - - - rw-synchronization-reaction-main - - reactionMainSetting - - - - - schemaHandling/objectType/synchronization/reaction/name - visible - - - schemaHandling/objectType/synchronization/reaction/description - visible - - - schemaHandling/objectType/synchronization/reaction/situation - visible - - - - hidden - schemaHandling/objectType/synchronization/reaction - - rw-synchronization-reaction-main - - - rw-synchronization-reaction-optional - - reactionOptionalSetting - - - - - schemaHandling/objectType/synchronization/reaction/condition - visible - - - schemaHandling/objectType/synchronization/reaction/channel - visible - - - schemaHandling/objectType/synchronization/reaction/order - visible - - - - hidden - schemaHandling/objectType/synchronization/reaction - - rw-synchronization-reaction-optional - - - rw-attribute - - mainConfigurationAttribute - - - - - schemaHandling/objectType/attribute/ref - visible - - - schemaHandling/objectType/attribute/displayName - visible - - - schemaHandling/objectType/attribute/help - visible - - - schemaHandling/objectType/attribute/description - visible - - - schemaHandling/objectType/attribute/tolerant - visible - - - schemaHandling/objectType/attribute/exclusiveStrong - visible - - - schemaHandling/objectType/attribute/readReplaceMode - visible - - - schemaHandling/objectType/attribute/fetchStrategy - visible - - - schemaHandling/objectType/attribute/matchingRule - visible - - - - hidden - schemaHandling/objectType/attribute - - rw-attribute - - - rw-association - - association - - - - - schemaHandling/objectType/association/ref - visible - - - schemaHandling/objectType/association/displayName - visible - - - schemaHandling/objectType/association/description - visible - - - schemaHandling/objectType/association/auxiliaryObjectClass - visible - - - schemaHandling/objectType/association/kind - visible - - - schemaHandling/objectType/association/intent - visible - - - schemaHandling/objectType/association/direction - visible - - - schemaHandling/objectType/association/associationAttribute - visible - - - schemaHandling/objectType/association/shortcutAssociationAttribute - visible - - - schemaHandling/objectType/association/valueAttribute - visible - - - schemaHandling/objectType/association/shortcutValueAttribute - visible - - - schemaHandling/objectType/association/explicitReferentialIntegrity - visible - - - - hidden - schemaHandling/objectType/association - - rw-association - - - - - rw-connectorConfiguration-partial - - required - - - - - connectorConfiguration/configurationProperties/jdbcUrlTemplate - - - connectorConfiguration/configurationProperties/jdbcDriver - - - connectorConfiguration/configurationProperties/password - - - connectorConfiguration/configurationProperties/user - - - connectorConfiguration/configurationProperties/port - - - connectorConfiguration/configurationProperties/host - - - connectorConfiguration/configurationProperties/database - - - - hidden - connectorConfiguration/configurationProperties - - rw-connectorConfiguration-partial - - - run - - - - connectorType - org.identityconnectors.databasetable.DatabaseTableConnector - - - available - true - - - - - - - - rw-connectorConfiguration-partial - - required - - - - - connectorConfiguration/configurationProperties/host - - - connectorConfiguration/configurationProperties/port - - - connectorConfiguration/configurationProperties/connectionSecurity - - - connectorConfiguration/configurationProperties/bindDn - visible - - - connectorConfiguration/configurationProperties/bindPassword - visible - - - - hidden - connectorConfiguration/configurationProperties - - rw-connectorConfiguration-partial - - - run - - - - connectorType - com.evolveum.polygon.connector.ldap.LdapConnector - - - available - true - - - - - - - - rw-connectorConfiguration-partial - - required - - - - - connectorConfiguration/configurationProperties/host - - - connectorConfiguration/configurationProperties/port - - - connectorConfiguration/configurationProperties/connectionSecurity - - - connectorConfiguration/configurationProperties/bindDn - visible - - - connectorConfiguration/configurationProperties/bindPassword - visible - - - - hidden - connectorConfiguration/configurationProperties - - rw-connectorConfiguration-partial - - - run - - - - connectorType - com.evolveum.polygon.connector.ldap.ad.AdLdapConnector - - - available - true - - - - - - - true - - admin-dashboard - - - - - - allRoles - true - allRoles - - - allOrgs - allOrgs - - - allServices - allServices - - - - - - never - never - - - - - safe - - "Safe" expression profile. It is supposed to contain only operations that are "safe", - i.e. operations that have very little risk to harm the system, circumvent midPoint security - and so on. Use of those operations should be reasonably safe in all expressions. - However, there are limitations. This profile may incomplete or it may even be not completely secure. - Proper security testing of this profile was not yet conducted. It is provided here "AS IS", - without any guarantees. Use at your own risk. - - deny - - asIs - allow - - - path - allow - - - value - allow - - - const - allow - - - script - deny - - - - - script-safe - deny - - com.evolveum.midpoint.xml.ns._public.common.common_3 - MidPoint common schema - generated bean classes - allow - - - com.evolveum.prism.xml.ns._public.types_3 - Prism schema - bean classes - allow - - - java.lang.Integer - allow - - - java.lang.Object - Basic Java operations. - deny - - equals - allow - - - hashCode - allow - - - - java.lang.String - String operations are generally safe. But Groovy is adding execute() method which is very dangerous. - allow - - execute - deny - - - - java.lang.CharSequence - allow - - - java.lang.Enum - allow - - - java.util.List - List operations are generally safe. But Groovy is adding execute() method which is very dangerous. - allow - - execute - deny - - - - java.util.ArrayList - List operations are generally safe. But Groovy is adding execute() method which is very dangerous. - allow - - execute - deny - - - - java.util.Map - allow - - - java.util.HashMap - allow - - - java.util.Date - allow - - - javax.xml.namespace.QName - allow - - - javax.xml.datatype.XMLGregorianCalendar - allow - - - java.lang.System - Just a few methods of System are safe enough. - deny - - currentTimeMillis - allow - - - - java.lang.IllegalStateException - Basic Java exception. Also used in test. - allow - - - java.lang.IllegalArgumentException - Basic Java exception. - allow - - - com.evolveum.midpoint.model.common.expression.functions.BasicExpressionFunctions - MidPoint basic functions library - allow - - - com.evolveum.midpoint.model.common.expression.functions.LogExpressionFunctions - MidPoint logging functions library - allow - - - com.evolveum.midpoint.report.impl.ReportFunctions - MidPoint report functions library - allow - - - org.apache.commons.lang3.StringUtils - Apache Commons: Strings - allow - - - - - - - -
diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/tasks/995-task-group-scavenger.xml b/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/tasks/995-task-group-scavenger.xml deleted file mode 100644 index 11a3005..0000000 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/tasks/995-task-group-scavenger.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - Group Scavenger - - - - - - runnable - - recurring - 60 - - - - - - OrgType - - - - lifecycleState - retired - - - - - - - execute-script - - script - - import com.evolveum.midpoint.xml.ns._public.common.common_3.* - - result = midpoint.currentResult - log.info('Processing dead group: {}', input) - query = prismContext.queryFor(UserType.class) - .item(UserType.F_ROLE_MEMBERSHIP_REF).ref(input.oid) - .build() - members = midpoint.repositoryService.searchObjects(UserType.class, query, null, result) - log.info('Found {} members: {}', members.size(), members) - - for (member in members) { - log.info('Going to recompute {}', member) - try { - midpoint.recompute(UserType.class, member.oid) - } catch (Throwable t) { - log.error('Couldn\'t recompute {}: {}', member, t.message, t) - } - } - log.info('Members recomputed; checking if the org is still in "retired" state') - orgAfter = midpoint.repositoryService.getObject(OrgType.class, input.oid, null, result) - currentState = orgAfter.asObjectable().lifecycleState - log.info('Current state = {}', currentState) - if (currentState == 'retired') { - log.info('Deleting the org: {}', orgAfter) - midpoint.deleteObject(OrgType.class, orgAfter.oid, null) - } else { - log.info('State has changed, not deleting the org: {}', orgAfter) - } - log.info('Dead group processing done: {}', input) - - - - - - - - - diff --git a/demo/grouper/midpoint_server/container_files/mp-home/cs-portal.csv b/demo/grouper/midpoint_server/cs-portal.csv similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/cs-portal.csv rename to demo/grouper/midpoint_server/cs-portal.csv diff --git a/demo/grouper/midpoint_server/container_files/mp-home/faculty-portal.csv b/demo/grouper/midpoint_server/faculty-portal.csv similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/faculty-portal.csv rename to demo/grouper/midpoint_server/faculty-portal.csv diff --git a/demo/grouper/midpoint_server/icf-connectors/connector-grouper-1.1.1.0.jar b/demo/grouper/midpoint_server/icf-connectors/connector-grouper-1.1.1.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..55d7a58806d8373e5e36230fd18615dd9446605c GIT binary patch literal 1379347 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

`Y8 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

  • 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%0D?18K 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

    C6*;O1Y%$)`X(I296Nzb$GUL{Cz1%D)Y$vNHq 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 z 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�sxjtZDhUhacA-i}vwZ06)t|3~W zp1T4^Bz27H!48{^E0F}Tc%O&z324pMK7fYPC>#sOqg2MXEjS8}CKHc=?kKmICT{vS zjq52GqCLE&J;7+(AUBAuw2bc>H~NhmjGO$BNoxS(heXLVwx@8pv8S^$u3xog6Sp9i=65 zC1{8fCpkmL^+O6oxgQvmNMQUB{WiHFW?&pVArat^ZR<=%4tvCaIG1uOR@B8Wc~RS$ z#skWidN97k98*io790b|5`w!eC{s_5B%Rps_!S1z=%Zvg`NA^x@H_lQzcG+1?<3z(`mxxyPKTD#@22ZN|Ol^E6tr`}u zP`85woa~Xn#>9IfFFBC*(G6pNe22{iBR=UcEX~~L22Js6QeSkyq$z%fe(DkGcsZKK z8kv-2yo7q#R#$Y|dmVCXBMO{z3qR$j&~`|vohH?RF%9DAkqxcno1El$ThsWJ-*}au z5>EhE%I|ele#WZ?#-IMC@|9H$_0@IFs36}Y>$}0uD2*iskakQly`TAqJZYP#id~b+ z9bM@4lC;#Q_*G)0{oDxtKH2Mbb)MO^!A0?G`x0zd(TK*X8gzZDlHh$n8yYHjlR?Fw z;4z}hN0#w|jL?j~SbV?UPEUWu_(zY?)88%rvc8R;{z+%@JeGJ5u@qf#i0Jch4#guj z#;1e>&W9Wlj-{baO5P2%p#vB5KC-^{P>9WN?o*fYwjmBOunA#Gi;?29enIO&a)YwE zvki50j1EXu)77Nk`M+gMrXK^f*VK)#{Cbb^wVktgX1kNZdBh+IFNr$yEfY+ZsU2zZ z^j!Cpx~8egeOreRNKI5O=&H&!7t1to%9^@qqDQtR*x4ORB73>Yi8V7|Wrp5kVxY{s zV)2BV!`OQuCotw3Ti{S5Q@iC(BB=8Gi3`Vkvl|8Ml0`_WZ2ktSS#yNFPoE6hGDm7U zz0RW(0r7WAVNe1|d0ViHGO%T)gJq79`7mZazKo^4ERgrco8#n3V%HlrrnH}~pcSe# zLJsyb7Z!9tCmJ_%Qu-#xAZ<+Z$n-O^RM$@4@N6;#U6bm%rsndxiYgCxW9a5c>}h6U zhB?)oPQPkVwY0oqbqhkHA1ao@X#*7ZtVv2flm z@I$Y;(BkzNG^2dcHh*idyKsU-qI;|H@v6nL&_eG$s2uKC_B0pRs@HYkJb= z$Pm9GhRj)NF7rdFS)F`u__i2o57RtR&DgZgYSE_}qyt)QH_dw57jnL*T#%9;JElQE z#7;6%D>j%IrTf>*ANdJ(hcN^U9?sUxkf0Ai8|-?8xzZ2C<|?1@gQV*LS4P69%`sNg zmg_t>orM#J>oF7!Jiprs7?TVrU0 z?3bgGTVPM|R*4&paQ-ACl!S~`je17WfsCEMN#1I-B-|c?N$7jfC5{G^!dUu65&-<1 z4Re5*?fA@LE`G;=SC-GSKQSo6_Z|4`1C|SLoGdN#C>=q+g&{u|!Xo*3Je(ju%VDwn ztbj_{PZccjXuTAc$`{%nAgIzsXuc=%GC(F;( z_U9T|K7y_=cSd>&{ySB^=kyC2^0P(O~awJe*jB@Eg698MH<|9CES3j=fJfT zT={eZ(tsy=ko3s_Hi{_%T}VGeWRD{VI?#UAaM|Iw@%h>S+^nbd`M&J)C{@+zbGXyz zaM+G=!{yTsd=m1B@X%Z%1^Q_s96NPfkwU=RIXvWa>X)xR!p}bsLc}|8Dlz>3op6^8 za3yv^wZ;;_f&sXP!)~~DH~eJ8{RMmA;XW8hz|WEh{te;(9rEEHu0F;(eT;=i5hnGq z7k;X!Wt3uzOaSq%qJG#{v=^RS-49Ro!q1Da&!6|fv%T;w|+uyBU{{OfPzbnfy-h6={9UUsPPOhmGomO9&Fn?_=Y)!x32d$UZi02aHjrxokR- zW`LnfiPR`6%4IW!CLUwieQZ`Qn?nUhxeDg(X2+HEv4z`JCnq4h3i{s5s<5}}GOY+d zYI<26qEa`&ni+C_c)q5-oy=j?Ubbd+zShr9Ez=W^M!ue-mF;2c2H1M6Lm1^71MCbA z@=+gP9g1#JHXU-f+qH|yJTTM`+h&$*~@-J#Qcdv%tzR+UbdUc9!W0i+sy`uq4Ru2MR~qH z_E=d)QGP}*+gDW5&wjR>?N@zvyMZ#BZ-scRxp3|5D-dYX<%7?Oyf{ za_M)9OMk$}_vIr>;coUPl!fh3o}ZD+{+yF}8FC;;TZMmf*~dAVmrI8H!vK2yNe+CQ zUYl>p*PrIVwei>3bJps9_E|6c96|n9f;@6JJ0Pj-&-XtAzFhWonI94RJeNbhzmIFH ziuQ72wb;!wXrz1i@QmGj1U+6llIMo$-yS|%^z*U3d|c6PK9OMUx9Qr;Ct=ZKD(dA^ zi}rAuX)hx5cl!8@UOtPav}Q)}@8ghj5EZFr;#6gp$+AqA4KR1s0hnd7hOgj4{EPn` zfB?Q2k*^(uk>GPzR`2D1*{F?y``G{Rzk_632Cb(#_1IU?!A$nb|6tnzn1=7Z1Zx|< zrS|^8+EW931)PyuVsoVb@E=rU=b-jH7gf;pFa_?0B6twJpFY&T{iwhP&{x?D73^Q= zUHlh)hX0{I@DjSYtn*a-Lsn#s@DC^*RS zna&E>Fg6~aCa@{&2sVpNX7gDQt7auQol98@o5?m|>A7q+yOzyiJK1q;7b|1ESnCP4 zfIZ6=vRBz6_8WEr`SUo?QHSlWI$Q#*8zLu@xK~xFr*&5!(*7Eb% zseA`Jjo-^!_%0UYkFs_AE!N7vVC#io8^kcSQH)|?QNYd+0oE=`SwtMey2N63rZ|~( zi%o2^*vz(wE7(@4y1O7#jDpd8Hd-S;spq&77vJJ@aQsX@%|+ji%crBTo?tq^gddF_ zmd0lB)qEa4>1;l);lMQ7ePL|7{;>dBv@tx->z zIoh4-$;uIbR!_rn#NX6YR*v|GdK#W1zEDruIhv-Pa&p91>S;ud_*y;X=7|5Or;$10 z6ZMpr!%tREqjLCK^)y=P%BDSh6`C*di{xBI?|3XeUWo+03i8<1FrHllQ`om*2D=uH zVb?)9`wpDQu7?%u254d5g)qAjV(cb3mwgW|XE(!l*mk&u?SOmPE$|?_6$aRCI8Sef zU$8si*X&OC1G@`8W_RO!y;6D1{3P(x4q}pD1E>lKq1-% zBiKVQitWZay->*dpoI0~7zd;<6)7y_>>@9GHa|nUO(S5MoLw9WA%}0G87F6r<-D7l z@KM>-_83pbF)nw;*lPQTdAoUp#!yp?GiDF(-c^jlApF&YK-d2OWXBO7K?t$^i1;&L zv1cKhJ@4}G@*G5mNu*dB3hgNF>-h#7g%|K04RBFWAK$!P^-h%T=UZy_@@=b&a{1Z) z{Jh$dK7QeL$j6UM>WY!d-y)02uSP=eJosU8g4V-8WPSy?r2hG~aT4LFIMsl?1Sb0> zWTHLDWxs-n>{Xb`UV~!xIvmH|fCcQ=4z-IRi(f#TxUVa0P@4L0d1N>$Nb)^IRHirKF6nwag!4s^d zOe@LP`uM$j_>cPd{i{l{aoD?Xpl{;m!?#0r34Lm9eY|fcWR~ReJ+f9Ge>6b{G@W0; zaFgF)@*Q77QLgDC#cz;z@4%7lU6{pwi-Pt$C}Y3J3H1l4V}FE|>;s1sN5V*c4c{v{ zwAS(5*V?4;K@=r8J0O{3gY(JYfIpoI@xLyJJ{$RLSP1*=_AYeb`IN>S($PT__VZ_K zW*!YfzRN7i5g(&+?Bi)53>OGHv~pQ2Mj3)OuoLXi$|@?3L;Gbav`p6|ON&aA;J(aX z8656wsc^Fo8}94;4V#h2*p$n_N&7ZZ@7)AY8Cmi?w0@&p!_P<^zAYcWMzFu(?|3le zl2km$dNSl){#(28QFdd$^w;_CS!#^UC%7Q^9SDEm@7WO6+1hYS(IfnQROa+i+{gdC z6D6#;m%smzqY#m*BeaAvjYqM3g8!>b%h!stvj_O+0_N#?`VJVIuMP13GT?Vm zNIAd{FnqD|;GgK-7#X4QuLVYE6r2f0!5P*PIs=R^js3{@e4|g8RF;VfPz>86a-R@+ z36qgS>Swgc|HTUO51=~cAId=$k^6{lUnV+yqtUIJ#uva`emoq@Pk>rp1uOXy)F4YC z$d}83FH-|?1|C%drzdnsPnKkfiqZHaaEfgZV?;g^ z*rbZsq`IM~PfS2U)v~&h;_Ok9P}^-nh=4Z)kl^Yr9@Axo}tR}^?eT^`b#igsYes*$B3lW z{@jG<_Q2V29)53y4*6Zt9DVbzpcrXxvS&wN^z*EL8U9&{{|=&@8m8^c(rci9jH>7d zN$S-*oS+FN)uWkifKj{=t=q}Sq}9lzHE0h{fmVFC2|usrr#gmWE=CAMXbm;(m7*Bg zK&-jJVcZRA5({(%(jnL&X8iw@4fhYhhWnG)a5}Ofh-_#@HiVH4XCNCkAsaf74W}a; zI*<*WhtCFdI8RDe9AajCHlS%_vc67gJ!P?wW5~nLb!j8r0ji5xsoF@)X2rIxi0fs8 zfU;CWaT!9r+@+U|G(%ypJ&#n85)*R}GEXxX@24ux?|QfsZUpB#V3G}on3rxiZcjHH zNwAI)$J(&g$})g)$}ozuXJB~IUa??xQNK98SCmmvLP??rG1_HC?m=37A64VMs2X>= zx*X@xtTbIeAk)7e zO6a3_K-6(~LNuruY0ue4XU?vmIm^m4*UDpoy{afy>2fWw7$e-0rarL--NStd?{p4j zdcM9NmgMW=G11T`+6Y{qIO7R%iZp3`q5~)JgnaEu5!nu-^0g;KgbY-v7!WamQ+iUq zR?;Un??imWDXaU%mUuH&p0Dkq9`@1tDWQ9|W+Ng|J}+PI7Z>hBIb8)$!OxHg^!cn< zZoAksz?^jerkdiE1F+l_4Ze{yiFI4g;(uZrzQc(D7gd^Kxg`5K^a+4JkN(07IH_NR z0{#-r;;-VwejScS|7sO~8z=UAu#x`}&gJjJ#ry-fmVXF0@jt;G{3E!V{~3P5{|=Av zf54-tQ=j0U!q50;@HGD%p5_06=lK_sjq6cRN5NQek+=jIcoSrZOT}d<&aH5|xE#xL zcp8NGmben1o`(W)mAG2QCLcJn`U7!|ZE8Od6a#VjbgkHmGBg)@A z#=cY!S0Ejd=WsS~dw*mUxA&armnUuCYZ=z0c+0<6+_1WMT)(&}brOE<+LiG;So+2H z#La4A$~7d8g1TMoNOvgNz7&9hdpVTi7JiQ1_;x!oolT4X;`Ur|N}ss9Puz=ARkv5{ zTx~~jxq@Oe^b_yL_^Y&E+=nJZ?bwV!Nl~*7MWPWUV7%;o6cJkZV7SP{DjDcK`C*o@ z937qu<9RKzg9bX=8R%?>9ka##k{ygL7q*q`oAzSGDy0N)`k(=OP$29G%K5|F;RLj- z{kz3u_rg4Tc0Ivi(fHe88f_3P*$#P7qoH4C(#u9s-9lY6~9(bZ{>>LsHb;x#qZS9 zA9BSX)zb&L;!o=7&$;4b_4Kz~^vK1%s4YINMQVOQA$li1{EtHPY+CL)wKP|J)u&;3 zQ)zZapC-z*;?h3N+@ob+4bm(qH)Y07m|A8^1*2suO_#5us>|1;n$fcIO;R)H!sHtX zAv<_2iP4SdBHbZgu!%n(^aIdhihm!3<84PG3%}Xg2K_f?iWd&R5vYp}(n5$+BQE%- zp=%6cGR~SQFj7o~31S))ib9wpro#eJ1WQCQG>8&dBW6I0mixIoN-E5uy5 zQ5*xeiiL>Mv2d3-4*EnHJSC2Ym(d!%Di%w2pMt^Ot*Bdwp$6OqleFPlHnQmoSf=G5 zyEPotd~F0i>8MS!?0Qi+P0O{{TwZeo-Y^r*zDil_lo)Pql)1j9rVj1nh9zGz0ZxB{k#l{mv!JI>QsRDrcxK+WcK zORG)NbQ|RmqD&;2Xb0Mt6szqmxrba^@(9~CpiOlL@^d1~Q9EF*x1{!*NDrQc)?! z%=C$~VLyyVFFUWePb=IBBhcl}*QI}LQVCk$y3*RxePu>!J+ma=bk#HVAsNb{3YJOd z`#4x*f3_fYVRXK`@cSAF%I}Inr-1)!m}bJ0=v-s)nMu1*(lW-@Ts zQc2Z0>U*)G{vo*}W1uN89ZDqG$HM~qvm6mP5$d54zb}9a`CXB}9DE0%B$cebB`(?~ zxZ$EK@dEuNZihh1#B?K#dyvLkkj7hKyx4}isvFAjvrU}kOe!Co;!rY_KB?Fu+82_O z>Ro%?<%|TyW-{2V9euCuwra;X3ZRVK)&i{b<{e}z;f?JOz>m*%YYTq>qlyZ)Q`o@f zAg%CYUY~Y+Q9&=fsqzhSwQ^Ttgd$8nXoYQZ*HWl`$#~GmU7F-PoWAFy?Y;mN^o6LP zFU7%L2F>DIuo@koa7UQc@VEEoP1Opi`IZ-nLTgh&HyU7P$*=(*C)mN!7jfw(@<>fKij>oxogf*Nv_|M#tSQZHdF37i{jVwGn-z z;7(H2_^<yRnlfPi=#W{TgyG2&epgN{vOkVd~QXybLVjn{aj>?Q}N z4hN?$!YR=?#^~c*#{Bo_SNs9SiT7RojrW+GXFC0T*Y0m=8XaOo(IJcI(1&zDTOOY> zJ$>+A0yA_*0{NMVeQ@y+(&aBmmyeMy|3JF@6UxM==tlnAh3ireTuZc4&t-eUB{fd_ z!fV-H+syB=NBgzC-M?NgFx3?0YFqoXv(RPN&LNjQvqT%v&gW2r1s5d=O_Y9+7{1*Aut;o1S;?5KmyNP?4bz%wwSxKoD0 ztqAKbxdZN+fOOfkO^ol^3!94zek>szPa-6JD^kX^PN2%>+n@1&b5T5YA^Y*)mH6-K zT`aMZW`aIT;Qta@LYobAl?8%mu5Q?4d38$b}A@n7#Ntfj@fq&?D0`4`Is)Qkvb5~pL zwZ@|T2ods{{ggPFGW)eA&)NTDoc#*IxwgA7Q6>w-q2y{0^z-v-iu?E_d$fn{t3ii^ z02IJD?LNo!vr|m%zQkgvb}Ee2PQw~4FkVYUP9wpm?dI2E`|-drYr$BFL4wsC5- z_cU`AxA!n8xXa5&%W?Z?T8~S%avj;q)du9eL-=fp4L^~ljlRR<4EnSuQf1&Q7cf_b zF>2)}2^ig)?YR=K?N6763p`fh?eqZc=aL=IXwTYfVrSX0a{#UG^BBqea#yX=Y_B+q z@3j)Sz^hb2h7;W*v}z3Q6E;}84BuW3e(ef}1%4Q%y^hL@%kS|~1++Jkr=OhR!-0k+A4V=r$y zvowXY*heaxZuFdJVaI7rf$)cP2)7NrO`^T$I4CEi>!A;rD?MF}_ioff_n@SI{}8(9 zL+wvC+*x*1VifT{?Judq^TVO`nIxQ#Y&dPUOEFgBhwgB}fc7`FAUdG^gF$Uc0=Ci} z_am+kAb)nj80{gK;dZ6FYyXt9XAJu8pJ@L|G2EXzTEwkS%~TRU<)u&IfMfN~u~pE_ zf?MNe{@-zFw{xrudbR(=ZS{Z2x+j@y^gZ)kDri3r>lsu*FQB1*5smaOT%tGA8QM(k zOKHvA1NxuWfVBUl4(MgC0WpCCit8^mAPlv8nHk6XD;M5wiFpm}-|LX4z2QQ0l!N9d z?Q5mKw1ZyO3tmn|?k!K`e9nmoH*)Z@jhxQBPeW+$B67b)M9fA?aAK1|Q@-UZdOl$c*GtdHk zmOdN1)95aByOU#+(L9Q!9=g)ULx%2^iN@)g_4Ld}_D-LEZ0b-ad1N*+{W!hMZhsmM zm3DKpQ2OV~E$={|enRT#rlMMy2E+71SCp0Ij4n$r*VX1+mR_M(%JpWSUZpRgsX#ZW z+kMST#~!^X@lytdQ(k z`Z18B&+~Sy^!n6Z^alN;^duBME*0$s9!V%l@#3u2oAhRzhI8#?(u}?OO43-XQUR5x zF9xDF`XImD2C&CI*0@wGC@AXFPre&QVmz;(vPWOH12QgQZ0Eth6f7JUe>G0M+K#Wd zd^PS)(8Ya41^6PgN8gwT4TjMYA7^6@py3;1B-W@=47k1wbwD*vgBlpG*TO91#yq6U zd>q_DeTB;jTB?U-5;cb^{S2x4#zT?5Np08Dl`%FgPoec#{LCgLzE|&DjR=kJ*UwA| zP<2%H`YA4<&31T|Ewcidd>U=%2WIP0+Idb+z13rOpBpKVCoZc#dsY_}j~kz-_3K+x zdtHaUwz`gKx+KIora8jNN*rNlC6fG5|5{T2FYDX9`#;<1|D4qR&%pjS{lDp7KUY6* z5W{(aGMpEY7+%_|UqD5J8BYC7L@5fHNX*fC&mj!wWsX}Dv=wn~5vtuQ;yU=sV#g6p z%uI~o^s{jU=XeLCX?{-bpni@iNr!rygnD}_ z)XNVW>K*!>HdL1?x|?L+o>ZV$4ZTOCe_y}XrPZm{a1}-AKg!jAvPXYtUy58`hy8!Y z1$4Lv(B1mOg9GjL0D2Pw{oWyf_UZkD10C=HdMg6G?GQj8btsv<%hRX-G<8B_e5>Dc z2x>m2KW>9N$&N`~I6mQl;|~$&k6gm*I!rFpFC^ajlloK10VrM7Y;XHlqKT%3(QE9E z_Sco7xAYu`d0J_nHlV-ADTiF!0pnzVslVh-n$usAxw(`Tkf*Ue{ncG1d-PvZP98OV zo5OZE(n&?im-8=A%QuQj==E6(Fc{{+oQ(GhUAR00|*xij^T^grV)tbuac82FsLD3mW>IlTpPrihufO2pqv>F0I@p=|hsk`DeT_&Y+A*r7I{hccEmDv~ z1H!VfXi34X_FBLGuavcZd#OO~R-s=Y7NQvZdr`rqBlXY2BlR!#=m)Ntr{!teVbpl^ zA@a2GcY~!ZEMj?Dp8@CyP1+6F=$Yaj>0lu8J6xVlMN=h z8;mUTV*|fz;FD$f8T$y0YzC{edHOg+zKD%Sob&Yi$}$sQ^E3C=?KX1zj8Ub1Mt*!# z$hK5QfxV)F?RE8Qd+Nv z$tbNa%WF#{Vntg--hG$-$I@KJ7~~<53BU|;57Y@(5Al+5&Z+$ zj5BPT{t;Y?GwCY*FK`{sqwP3{?$G}ZPh2$et=c#Upq;#Z7{-^XasPUUIk_HN){a{-7Ql^4EP*pzABpq ze={aYkLh^$t#Jg+a5e#^#&@IHlKA{%ON=9>6Hv?wjLCEY6d|ZUC;FYL%FS7F+M}u!EmKGI|Y_aT3_5_R~i%H8Y3UBHO9it zMge@^7)LkN!_z1ruOR#XjI8|>nfjSAjTuHEv+#4cG2O{)%z;Tp6}p^syrRfhDn+9M zgPE&14ij#MQu$VgYhj+T4Bu)fD7PBbDzA|_VG7HZDZETR$=qruk6QL%EQv$ICnt~E zn3iTrj44hgtcBf@6?;xe+sU;yo9l}Ej2d~)lw`v`X*!jj=%^_iS*DkgMy!`ft&TYC zJorYkV3wAUT-q>ewZ~Yt5|g^p$LDE+&Xnb8cSA{Oo<66{D9SgA^9|N#H1!!Pc0#tw z=QB92!msLkX;l`3mY`x2}#XfcJvs}6N17&B13jz;mCiQ+X2 zvW?j=+n57Y##~rt90jKs$3UBLEL?1q!F9$$L}@Hany;tNQ5SEpJt{kkQmF5EY&c^ zSndiaCOJq>Qqnwl-lDPI*kF6H^>%nMekc@DyRXOY8?gJ6hR%R7HX31jq^s=(rG&F= zwA;?IYYE+0fq+-K#^iFAjSg{1QfP@KMrV3xX`F!_M?4p?|B$i@Ypn5Fg*CdwLpIi{ zY^;Y7*2RQ&pLqDb6r5WS=hIy{4|8xHW<*nPrjm<2a6S{ejXA`+){e)Ia(9cq5I!24 zckP9XoTCoLR(aIHI9nxt^c&|8MYZ_SKwe^L0OeLQ)+5n2K%NnHp?j2r?onyzV#%N+ zJ~w`#jK7a?GLdjfgwV^ZVYS7%#`y!rMI7o_nN}(@e|A7UL*=#~j+Ez-N@e!XPRPSp zM2nyDQ-#IoHkP2*SZw>JBg>4EcnwvSukR{VSw#O2A(8<`oviOGGd*DX5T?%!GvC~& z@^v%Pq5Dg0FESsfvBy5pKf2A%)|5TSpCG{^UH+JkHt2rmFTy>KCU|;IXgeR;!8Q=1~E8}~F zx=BbCJD#sPpebd0F=|^dI#9MdA=8MUPU=E~eI`scy3s=Pz!~`5VZ>lFe&2!Le~Qoh zu->!y{S$2SxzXdqbb0WO%-|A`!A6Q=L!JjHE%{8XD)T&3 z>qx%qOs$f9nNQvdVQ81avlcF}Kd+Fn#LaLEe!l>zaD^j0@=WbG#h68d9&J{98|r9t z8Cn!Dwjuw{LjIkN`so}PXPgI9jPqfJaRD4>TnLMei_nR@7}gq>!Ub6G3jBP~xXf8^ zo&xjatrr@)Vn2|4BfYlE(QCVmt3Ax2>$V@J&oQpC?cojf3cyU{TNbI>T;p0&t19-^ z9@=eu2YL0qy^y)OsNcA`witvu?WU3A~6Up)hDs$sH9M|hLcy>0?XJ9 zxyHlDo=0G!u?LPY`rt^TA4-fzUB>_|;|aO=bR=Z(T38~*tkfA-sqrKnEq9SWby8us z*(aQ)IC(Y3Qw;7?$C`|vC+J^n=RIlYK4iJ`p6cRxPs)m814JSVyBcmhJ%fE9#L!A~UOM-rt$C14iV&jqya{HvYzdX({u=Xz9JFFlu*wL*Ex zW;EbxTit$k0sk9W88 zFk73C^QF)Jk3Pouz5^`IHq8t9n#Gg_PCp#Q8BTp^g_&*Zu8t0iN3xrB+{*`jkLn$d z>XxF}7gt1@w+@w23U4~cH?{I>m2z|0L{3}q8rVlZz_Y-TpFiO39rh0{QGfl&m*#qN z*od%qST$w~XT4)FM%gNOc28u$?3!=#vLnH#*5{(giMA`ny@bE|4cPl&aFQ6ePLPZ7}{8~wo-njQ0?$lwcP)Wp{hZIAL@v`h8W|RO*3EIeK zT88e$^i2W`Sg>P{7z4o=(}o;#9c6TL_!k_#yA6Ih1eGFLJw%0$Wyy1Q2r;`Ya8U)0 z%7fBl<&bJ1_Z=Wc#_%b&!fTNHAPhlg`!K7RzG<71)X6|9JK>(!xp|zBtEsxCQd;sW z+S} ztg*-t0&d$_vub!*Ug4r2bS4a2`{(3Ag7IjxOp+S|~%%k?%tYdUFsdpMI!dY*aWDm}D7V zQ+Z+@uocco%Y($D*`t(cQ$KU4Y$BoIlqkX~Y(Q$AWWY|^NVrSDp@=<{Ci7e{N;dDk z_|4}eW;}^Y|E~|s(II;MRmI8qjawz0k~USQCANGPOWp(ThQgrD5=tNl@8&u*ou3cv z?gIFO7Y>6sZ$O>Se}aebfk_B0lNV@_?S{uV&3cTh<%w!m>%ME!ZK_11gylvIXs2YL`?|zP;h&wo!mXVF#)|UH*7C=7f@F<62xdW@+x7bS3S9Jt zCL>;JJZnXY<`5g;JM_93s#G>+Npz(N=0?Fm zGZz~iCj3fqmLXUGJ&^rFBBs$WB_h{4iN{w?R?V>l%IJSDHb24D78k2BFZXKR8>t{( z$J91SS-ihaP{HQ3Mcr|sNd{JiN^ z{CeREV0%$8q=%8sa8fEy71eG(FtfwZ%${0SVZ8A@Rom*D^;~$;>t!$3gbL|#kZgNI9nSh~io3|onocq|X1kZVWJw2WLCmkpxe$dfZqE)6$I;IvInZJUZ z$?U7IHe}y{)P}XnC%aG1w{cfW{WM;7TS*n&0D(hieq*W*>lg4IPD1w)vv$@fZloNX z75&@Ng%x6*g@@Do$FrwOjn&<%C5^^G-T!(nCli54w}&YQ$N}T5uLR1Pf8b!vZ#`$a zaJ1P0Z6|u`gn|Ff1Yg!kKFN0QZS~SOWNi12U>LMC;%=t@AzPBlfIk!viG<%W7n{qy z?l3eUyIN{qt93Hy$07T}*>$-ZCfn|Ga0asPTZc>oFus;4!wSX70KOD48(r!Gvo??% z43bWLgJKVDsfUgP-Vz~8%4lc+?4j~xL`U0plZe0uI~wa3;_C3mCPEf*}F$Kn9&`{0mv7sXs7WI~{0Ad+P9%s|M52Any#>W7gkZ(gGn&j*98ghjq#7ngw)bDdsp*-K(DgbJRUkA zX9P6NTkh6$I{Yh`dZ0DHp`N&)FN|a?W$Ar^HGpAvudz=}_s3C?syS=#`uewo8?-LR)?-QYzo|?m(2KF?J{ruf&oZw)y z#%GkCk2+H;kUcUzaEtB z1H!B%#=WSIlBP~*4OJ>4Dw3}ZZiogKWp}g$a(`*2dwW1{QAVNrsa^0D3hp_2wC5|5~dG{0%kPqqXB~caev3 zw8y&cGgZz4+kepyY5#{}@9xyW>WriR8&_90paGMqvVFu^sXwUFL z2lbmJ6U#Z<46g7?WY(msKF%5PNX^`(%hv-Um<*4bxhw8osKC9;#5B)@0Lwol-wkTr zpEhPDRuJcUllEr}0=B$Ujv}@?u1U->y4>5Z%6QF_5%5&UoO68hN8Yg7S8uf2Qf$@) zR)-1UC!E1^=DC&CT_G5S=~cEcG;93RX<46Kl*n5jyj6a76I_=}q;K}3uG55F;x@TTp1zt4~ z17kg-mP(|mnF>-FVq&b!YsJs^A}(uqJnj-46p15^5FcUs0SA!lzr?|=9dm}oyW@7v zQND=c0H$z09VMB00;8KDaw31^)YF69<*??+r*%z@od8aeP^D!aiRL9RKY?QBzl+@( z11naAIktpdyW-9ktB=|O8NofD*LNalM3hR|bH(Jm*%juV&_$*leKC(8J75>{dt)q9 z&9^B6_^oZ?ppGrgQ_cU}!q#vuYh|bzDFTv9kH>*~SSo~Xg|Lx?ujpC*bMHgYe%qOESD?uPf(3o!7^kE$fi3DR~*Ms_+RL*{^>qj^2uf7R&fi=v6r2|nkspUA^d*=FmM)GQQXUG4WR-bcN(ZR|?$H6Oy zrUwzduY0G}iM%$@v>QEZsx+9A(YP@T^MeTazWWZ;)YADZwgP$`AQM zK|i3d2c*kKnalFw#So&%`xAOdfuyqJYGf8UhFVr8x3lPsJTfWR5={IWEE0h7Bm}*2 z6)S6ssDFYUBYbxpN}Yiq?aUS?-7K9qufYbJJx|(wc7$N>&khq=vRIb29_?~BRrF`j zoC9(aLVh&{#v;P40*@w=kFv{!@1BYs1`SlT3}x+p@i#sLq~xG(Cjb=rUY&V`D*LLl#muh^fjZT|*w0Caa@`*t+;^eJdr-W?Xfejmgb1HNCBW&}V?Vx2_ zn1>k<94)yUzKO`NK7Es?18m@7#383DUYa&RGU5}+dymMqK!yD&3WSk;xTGWk^z6fq z4<74d_sbI}kmI_FW3COop_@WDWvuqGP%5yvh8@zF!?S&zM^9Xm9I-9Uk-SO0!EpG% zi1WaW9YNgOFqvXU&*@P_K1eTsOom9QA|w?cMB$IiKT#({MzhJ~R8ot6VDQ9x@)xag z&l?a+M|Kl;#AmuVyO3thXU$|A`TVkScU6}9`wST z3;AX3|Ic0o4HLLoqqFo+590>;-|B__e_b#ClkYBkJ$-c5A79$9w_3?FnzT0*EGLzy zrPohoXc8C`C@o>-lM;)I)nJmQ$O$s1LNcT`>S&^(B08ye!vZwWQC?;8CrI-G%F5bq zFt9k4Q7|0-7O1`P9dG|l)n34f>Ycs*JBpm?`MhLZ-dfRAB?&W`t!zrB zj<~PyM>)cUUj4YhxElL(Udf`hk3A)ZVoa5}gE19{k;P9N3r%{C?5LPw=4VDKV@qRW z7j_ic(lmW$6db+vPX!#=zoFmHJ-?<7&$^+e@8G4|E+eR9894}A z(80p|D6yAY_-masoRRWX6F**h#&5OGElf!X2Fp%!v~$FSf0~U}jbCd-;=Hq*-}poQ z$@C!2)gCnzF}Y>rurdS#McfINl8Ysc)KxqZ!00{5K_|yRkQ*D8NclMWyoVzw^!!?lx}|j zF=K7@EdFCYb>7COk@Ir)F^084Nwm9we-z9O`PMufP-evCGz@w!K>$Zx3%CYETssSU zrrapF1MU>bHwJ{b@zd74GKRG>JF~iCArVu&339P{Ey`5fXe#4;DGPT~7g9`Ig%Z)v ze0Xsxz)Zadulzw`uAE7$n3a~OvM~~86WJY{dQbgqP%J`|TvR^|q(eg?Tbc-u#oaNS zFm$#uQt2Qilym7>AvQ8R=RwuQwUv-HJgTbqhOoDyqC0YMp|do1C-%x5qRvDf{ETT` zgD_t-dRkINEB<;OQ}pS?KIZNco1=oukCfYyxRSVU*^nES#Iw1^t24rxdP2B3>#kl- z=$((4rjxOuFcB4kh%*e~&W6N%@sfS4iXnFhyf)hGwe~-0+rusTgQ!ulQwRPOvze?; zbchBxkgJ|nvDcEU+Vh-uI_UHA-$Phw{7f~a9F;VQ6kWtsO&A#9sb}w8JOJfuQRn~Z z4A_&Xm8X{;Da=o;;bbzhh4|o%7#m6i0L8rmKmvxynqCh=F;!yBs3Kzp6t@8CMz&P3 zW6L7PL+g@@P{f0=NjP~&mKqvdO~7K+*vUz%niDlcWbUx^5krh|(! zDuf9wLgvkz7iBaSl4^i(RW=(&TMqI_Zd4`Y>YFb40h5F@mg4ge>HO8uiRm}S&}Q@x z4O2#PTyfiRHA+kY0l}a_)f|GgjLqPWi8$-=-J8+`Vk_r^4Kyh>wmOVB{JtIusxa0i zVw(|6={asm8xO2A{8yaT5fw|4cx!6gZm-KsY`mCa@EgLlLONx=yhAmg)(g6o(?F!0 z`Ia6Iax`0yUqvFXXQEu1HChc;^otz#JnufaqEfxA7KV$*7!^VmZ22Y|S7443 z2eV9pA8G8v9_3HnItVgC-!(dN!+P~#qi{8$H=|76AJWhNE5AcRF8 zQHqY(Gx@F)k;DT6te}i4nJdzVu{g%e?vkNM%ZEWrCI#>HlgqTjP*Sk*4F;E`iJ$V| z5W*oV@0?I!4olKTg-RUY$n`4#3RsS%BQ0-JVd>cU6iH+T#OhzlUixogkuPHmCvUhY z{GcR4+fa>$oam22?-Hfp2^_4)qEa4B#fw2bqon$#{5g@x#og|3``;6Kmm-z%gTRI; zjqD_fZ4Sy6%{oJ83Txe|vx zoODAMKr9Gw-e5%I>;swDL%Ty-HpIA8nOVZbu+KcZct{v%7-l(Xs}A2EOTcXGNn?}D zYz)a$va#J4N67%rXB45%gTCWKqYVZNIP;uTlz6+}phAO=%!OZ53esE_JgI#Ykc=3L zAVbAvPs95P9YbBBS_1J;-cN4TY^W9JQ5Go&=hG*{3+hSUqT|ISPI+YLr5-mtOK5(G zwXk#Js)`g5AmoYf^Q*o9pyW;qS-?0!afpUo?nVyy^XTF$JaWBblVwU?Qt!mxQRRKy zi6W~ku0!Yuk_R9VKxIY(UpSnSC8CUIT^fuWBT70Br8a_+3V^37g*q=igx#N@Xm58Y zA(cE#3WL1CxN2pC{?i#DgY}bvGK&SDOjDdU1~GP*c{qWQYLLaKwj5eyWbWj9KdNGZ zs&uJC{@j_X}5`|C9FOfTuazN^be10mI$mzlU@1#(4g~&2Fau#$|FnXCnA}nII zdK9pLRj&CMyhKFMVi36W`&!PXc*f!jQ#tm)tF+B!4YQ2@8yku%i?a02uZS2W zVhTUUgor^j1!ajS!nlzz78RKiWpW(3$m@ZwNapEo6ZLX-rcmX`21+c#5vzLdWW2-S z;BvR))HG3+aB?v!xkO3!?gkA8NZe2$&_WVJ682$9=+Ia) zo5)@^(I|gObAyKbVdpC zh~KV5Oaq;XS9{1@GN+cL2q`E)PWr>dA_M_8Ujjk5JCA}xxMA%}L5_!C5Eln^3vfAa zU6rSY%EuB3q4~|oBD)AdaIt902mCbuqM1Bi6SKl#JsD{--z-P2}@J}r5mXJ)nRL^P@fV> zkiMG3wLVo|R4EmWaJJY|JOZ)&?5!4n8-Y2U@;*D4TvL@L8w2(+LLB-Xw-K-0;tc=;$|?B^8!xuVV+#1#Bq-(JJ(}m=f#ZL(A?}&zf`0)3 z`Gdz}AR*HYTP}RjA~%*Q@){L#c%UM|N6Le`bF{nSFpH_5LBtlJ)P!8;Mg(ZNYP4>N zYa|M4+CO2ze=-%t6=#p-hEj1fCIr6^8dzGAA=^j_7*eIx9_n2fB3QVs=Vo>Gic=NY z7qdJREi5pQrj1vL+f6c|yO=6m{NOV4>f^9m^#XJ$n&ysGIzS}vO&q5!oj}RLwP^kPiyCg;mP^o%J z(L)uf02P>+9E_vOYaE6~I)r@>PB6^9DVPf#n}H5d+3lfO3)<&Q!YBH%ucVBo4Kc8d z2CQ%R<+}&wwfpUF!2(1sViJb@VQ`~pLT9C^cYYHBoaz+p__{;MzP(RKGSs6>`Lbu) zsuEL_@oma(VI4Y|U_Sa#Mzdhq2iQt%h?M59+)_Jo(PRHCz@y4HpnoKd($!?j;4gFzx8|?2m znh(`tZahK(DnT4V{;E_s8JWdwjFhH4FHRh>e=eYgF?S3%V#onbaxmCbx$yQ!(iPY^ z^e|v(C$i~Al^AlUsJ{wk0&gNZP^cM_!b4%P#7>@33gdbNlu%>-RG--?+z*Ju+R`RU)JXN=6QtC_zv$ zaxiCUc$oLbTt6lRJSPm4)+2Dlr1toJx&6IBqG~mRpIRx|viAHOS-b2RO0PcXise|M`=!;n2h7WI_%qP^Gtm3Rn0K|LDOlvNBV_m1?H%7lhF;h{^DMZ?}nS_BS@riH)|hzXwB z$2Zor2iBfR;u%n@oKprqdN6U6UNp6*yjMTPdh~rZZC#I>LO)q%7j6xf)^xBHXKLz* z`Kc#bW?bv2YxF6)go5O$scB)Q8a}cK(uf+ zMRr351=ap-p<*LQ{jEdqm^JIAF5Qxx(B_4v#PF%7ZPf_n9z%*0&zav$^j(rH$#`a$ zjfY+yfU=1eeVItozZxpDtCca4Fl1oKv%lGH2)<05pA0*#m|POX`OXzAqc|P`DCFdi zRK_vbSa1p~)1;0^g}4;OWizy|-}~)^Qh`q=bnF#0M>5=A!tt*$2DauFLr|uY(<(Zug=fA za3YcOI9P1JF<4TX8P+7}sBOzAD3=c^rPWc5@}1h=8W}yCmW-YJTP$5uh{c2`c98u8 z(O$nvLp5fbVl4jpab%)w5X_aRN=?@ob!#R_OJ(V6gDR;}Q~U|1%e}&F>Ah7j{-p@}kfL6eik-LDHw z+$qC`PeDA(vE6)?)|Dyc;s!lSTT3ukqkLPYS+gJwzz$27T`p^*(Z7pbn$sW>0Rc?e z#+M!%r6R}qTT+=dYD>bfR|+qJl9V6&u-#UW^3HFpDzA|X32CLG5LM-KC0cu?*>4_x z$9B}x`7QfB3~MZT=k5SrU8C&uN^Y|NpS#{7>*f$k?hNY>tPB?xi?OJ^R7o~^s}d7~ zlw>y|=BHy8HUNz}l+#qQfFn{@07LQTtbu==+n&Jl?^D?eDLKfOsmKW3v$(g{ut8); z(oRoDDDLqOSQa&P?Q4di>Mh<5WsBCRlnj?>Eo&iAAaD(E@K z@X5peOq%EW1n%<~c<83aYAR~gm1vC3>?WLw~~xLDNxy0QIvP*KqFHxI>4qyMl( z5Be zuOH<#qY zfcEF7msx}Pw-gp~$E9w~Hg?GH5o^8k6f@vVaS#}%mOGmZjpbbUKoDY{{a?)QyAb}j z!}(!>P+l>Uz9HTD+YFc01bDnaaoc=RJ`7)PROeQ@L}X%iLO9nJ`xE$_`K|esq$~TM z>`Pl1R_Kp4v5eA4x$%J|<63Q7vr<~}4fR)z2Wix9LLxM_ z*6qI{^)P4cBL$pqU@zF|J$+6q{TwZE3&BOKLn3vFMdb7B+EepPke`+~6BHnfeWcnv z$}Mvt*bU(|P@qn>H3BpINq)(&()oHc7lOAwYh{0VZEbJSfK!n}724swzV0o0-g=y5 z%UBHeZDBH^T88vE&08`%=Z?`GsSe)4x_v}Rq#4~$TIYwcnJl@O9oofZn?YvVeDi1I z1(4*JaL_^FD%RmX~gyki5;P#-mcM|wanu3>SAZJm~{J6{0Btcnm2ZGbMr%U+3)9l zx=^*J=e_e(LR0W=f-ODHzu$0ab1wDp{wlPtg)4DCwzRky*Tfsvl@?bY&}Zqzj=-=K zq&_C!IO2;A``frN1Usp_>imVu@&)gV8~Ghj`=pp(r=fi5OORD>{c&#lgtNp2RJ1?E zIk6i)0V@UjH9RHdPoT$;1EJI5&G!aCvmZiodqDEAeZf~hI5y$j7)}2-VB#wsxS9gx ztI?BT;ta`>bBHpX)@^DrpaNjlzAL~Fi?gKZg4_+pC(nA~;=ByW!x@H@D1P%#tz2)C zw`;!Fy^oq9RH$0BMKNr}+__2i3*-cOXzECObwvwrxE>+l-!>pc2K{+FRBR;K>sGf+dn-pz3MjqoR zLGlaTlfC2}fr{*M@5emY(@tHQvHw*}LV)B){VG#kzp+R;9^{~-xEd2}18<+-u%F(H z-*~R5oJ7HVwmI+2aU;Y9&XWyfXNthFo32vUbZ*)p4fduH9R)60d)>lL{SI1?fy3Kw ziT1_tCgN9ID<1qudC&*w0|)0k?j1<~)Ud(M@@4ac#XAuAf?U@tg2wTAt!40(+_d&Z zoVEsv#*F?zgSDA6uO&H7+E@U;*tyV7oUApGSz4K+HDb|OykW7k#y?Mu#?*oRYB49( zLbeFsq&2hTe2soivo-^^^S25Ujv}eKTc)|H_S2jmY7xwV11T1oI1x*)_nd%043+Lp zLj^~$YN!@Xi)CQ7ZuLfk^2o}dUsMiDDDim~Hc_nhIz2$-AdcW1vf8R~vN_KU9Tk2= z3pa|zExVc^7Lm5;?)bjYdNg^EY~5$-S5x!B4XD2P0OYbC8PlgFOtzT%p(0kOHOl#? znu6Cfk6~eeI~6yhZ;b~%F|wq&IAq`KA^2uBp*p88Pv`b?3{?&9dnYPM5rk!Xl8i zNwxWr`kD=Z-jtV!dm1M>Y^k!)!g&xQ1{eiJj>8l%gYxBiq9N328~HWNCb59HWm5}h z2`PMh{7YcCJdH)pewojtWF_7x0_?2ZwF?<)vQ{C+As7)U1j{@W&ie8uyMJjA$?{iHx7`f-WyKJW_totC)=s1K@T?->u|mFVgo6#i z^+?tuP|pez0w~BDC*BZ-5_i4&0G;FX2sCYoG%1^No!zaqzKs`h!C75=RG$A_=bTI& zxk>Bu%PW4E6s_*YX5fX`5)$fdXc?yDIiA7O=XR%;leVUIY^EjUcx0qe>Jb4gF3(L5 zHnY{XT^4a3en_n>tdjPAaobO9e>XaT@O#^nhj~K1vW$ttln(>k)0g>Ht_rO!O%D&S zg{9pL$vMN9X^VI`-Nk{N*W?Yd=06?(o}Zg3P^temy-3)QXxiCaHKKA8b64~p9jVFw z6U#H6H9vKJYH@nOjfYpT`^NldKHz#QXLP}zqq&oAY3@f8 zajmBJaadsP6C(9VCy=j$6De;wGX-oBinGPN`MK!_>Q0%#l%sw(*l4Q1jcQo-<6iceUoM0vP9XvhWB5WOz zh~@cYh|ib(N)3Z^7A|6+fHkwm`ff-$MGNsyF_8%KtRY;?8JG!IzbhfP6C7n$1`9#W z!{Mbrw0kn}o6I8($s)}Vo-+HsK-BUq24Tbk>~_`1SD=-gq?^l!^v>soU4HyjEoEenyp%cjlO=z??daMa_%DkY0&KYbOjo}(3hE(gUI}UM z_192RgE4c>U5>Y1KB}Rj00pkZF?*}^`uFS-nr|v*q5T!|VzCr~$de`T+(xx{v?Y-d zPlIvLJR4M1zRCTtR}bo01KqFZ9agw+-a4H72)37&_9&mamnIf`hYB*M+DkPc%8JG+ zc}CHnS~izxiB4+9!he&wi)ws{yGjp z2eJM<^cMQ$%ig+#pilkNtg!kcpg;V6vx0FD35&H=y=c>!7Q5-(kOB)ze<5$SadwNAYGi~g4A>KbwoP55?KrA3^EtWwM zZs1408i6;UXlE;!Z07B^LTdx(MJxX(i|jeE103j3e7zq`p%F!+?=Z(zk1iop(lkQn zHG3K;Um}zR^2Ac&_i4+PD%(Sn0!>es*aG$=mB=!MjG9~rEIdNy^I!^>=g8GI=?&J= z1-W#*331fWP!l_-!sY&@w;VDy3^FIvKk#KkubAw2JZT3d-k_46K|7mEMd}PSLLF~d z4h9wxn@bF}@iFCIKGrCk+uDI)irEb|?ulBVdBFmG*W{?|^Yxu(|Kvf=OaFwO5wwhy zmVa5WbsmRK$6J0R*T(v5#0_CYGCM?!)hM)@>|JDxe0wBtJ6-K|P57(c z6;C|k7vCzcXOXY!`U-?r&ZLs9Z|1|p^TI7#b6^Wup62N?2C!K_cz1}jiZ>8@?%ebr z(yetBQ?ZbgUAog9{7o){9UkNMXwt@))2XZ9V`Synu-08tg_J)YY%n)esm{x0XXRLy z<)70ak!84IVh!wr+gAj#Y9)SD@Rc&Hnk(^IC8n~P38BuQ-w)75IFjn(y77i;Gye3X zuVWA<76Yt$V5V)QXeJP^=N;R@B#K;2B?Xcs<|?49XAdRt2o|)U9~??r5ev17cHI=y zB%5r&tkqO5Mah{a-VPq%5U0H~-<-U#8vbmy&1^ck^g~qjh(>Vm71k6$-=8i>7XK=*wP$>OenO!6+8$J)V z2aN*+;0$0(%RiX$~bkFXUp}JPTQV%t?l1v0?Ggi;0wp6QaOr`VkyQcALw!)v<=6NNWpc&YRff3sfwMV*{#qfjGriiQn~@n+{q zgu}_5cb%e~gmIx!Au5R;X%;!p@Huk*rnu#L%5w$pG55RtoN01M9d%~d5}neV7(ApL zk|NMaX2?Q4G_Lf4g3HUWvtfgdiACT}gY2B~d&1lPdNn(0gUD*u;+N`6fp!pC@k;8# zRgZe2TO3yCCP&mgZjkku<%+17-k)TJq$F|D(vf=4kExe&t|8_4bOTJ&H2XLz-Y#T} zUYl4OISVuSu~5MvUiqFobSJH>Y6JPiOo>`WMjVZ@{GzR_^dNYIN7rv>30*(fHaeMT?9(rRj=YM=a38hZRRdM<^9xm_2mnZN4-! zh&ckQn;$ztOD7fB^UYU#0e(zHFptkhcPcu)MB%=&UvD#U8anoJYJKQym`HK0>vku9lww5*q#dsyLbuO>wKX&sT@7GJQ5v5uM1h8 z3yG(a=sL7~eg{vrhAIkr9Kne=O8zrCmnNuf~s&Qd3 zo<75uC#rJ$o1RK6hrggYM(NrPqT7EmuV7o#JA|QeFFl>L~l!!bPpYTMHfVZ>tKWz6T5T$t}h7gGB=ZtDt9+;)ji6H*#Zkc z7;_5N2oNyVHHPL}xQ23=4inNH?AD71`Oan(en(G-v)-0X(}AKR`drrOQbiB4HDx<} zqpKu!^=d-nOqnFcc2cr0v2&+`VS5lK)hcddV>A{~>*2b}eg6vE|IOH&Q`$5*N|k3^ z;*tS}spq=b!!!Xx0pH#_-nhQ(bEzQ5)snL_5s;75Q_N7xrEAkO{dgX9j?)`?T&(VK z5PI@XBtNL^t$_Q51){KwI7d`G!Dou&`K11dvIJ}MQM`v9QD3;Wg3&9BnQEA>G}Wqo z#ow|I2v77gPdIzD|$j zg@RI>qe3iQzU6f);)B0@HL_W|asH8$tfvx<0N^m$%b>FKjMFi4kH-PTz@`WEe>x{I zg=&BnddPt_eWteI^vWx;}*5=1#_t$xhv0 z+k$xmN&e&_FaGcSRm_RT^Ud8_XYS4!#5Gr>pTFBl zDrfdCc)3h}^W@4MI}o)0V$9GA@*hMyP;ST1=r*y<@KP*$#yAtG*w*}WF`$#%_%Y+@ z-eQ}(yHPHIw_GQ%;Dn!`li#q89vk~9WR=upsGgzhXr-WaNd#EhFSvUKtq&yrsXsC2N5A|!d8}D zLK83aCNLoryV4~tp4FwT6Uijmp(DaW=})0*m4fiREbKHvXlKtPM~ z=G5XoalvUYV`yiGhOQu$r<#g}y;MQ3eXjZrpfcj7+9R(8tSn#%4by>g>N1mmYC=Et z!~b;(^R=O-ANl>q8mH<3?hT0jw45{Cmz`J|Rj4Q0Zt04QTnW?O2@(Ip^myQ83d|JqcL>1NApUE zRJq)mTR~Bqi}ktuaXxgxv?0+TW5o>qj>%ckh$dK@z75Ec*%HMTSCh8@chvM=NS(&^ z!b%h8FZ0ricJyVZRG~9|sM?oadvXbhvsqQYKV|6hynn?c1;v4vuP&$TE>r89w!bQx z2B}hEb2K?vtyK!KbJw*T(v%aeq7xt*V0rrU4w6y4OHRWS?I+D7>@rgE7$a=~ICW;6 zL@muypXH48&Z|7Vzh$`efV%i41$n$9;on=~|0Lhvw|7v5C{)}5AglgJH{pb;M3gMg z6rUfE%>;`1fdv~L;K-OwNf#$M@$1c~@{8#RCAyGnw$po(5eyu4z7oo8)3xH+#9b6m zc6A95zKc56Bp3`CO3=FX1MvC8tPxzC!#DX+cGK!KCY)$cv9=Ub;vRWhVWD3(OxMkt zxItIL8JN*fFMOtlN2?J>lc^*l+Y~}KseRy@bwVlD_b=Yq^t7+4KKq-b{`Ne{x0Tt~ zSFltLmG3Li48MWz9|)Pa&iq4u@%3GN(p5~+@&)g~NAD2tVlLMB4E79Z8$zhYr*qi+ ze5o=EC8}Aa}>?s*bY9dQ&l9=Yvj^|)}?b3XgptJuS zg_QE3to96;LgtipxNT1SgQ|ntf{vk!je!-7c2xh)!xT_rCqgLp(*Vu~C~b4)BLD1= zsv4O56{mnM1W~=EXZzW)EY4g_0I@}2Yc#5u;1a*#lDBJdzD+8-`YzG_WuqS8ub?t@ ztb7Xh>L3%BHGQTA{RJLesJ^d6PNG0jhEUC*r}DP(9vzcmzZ!o3>wc(h``1?lT1nlY zC4%E_a)H3NqI*(}L{Eif9ei;*?}62KjS=(LO}dQwTiwwptRv@g4^S?0$bLiVub9a! zpEcOEZ`sn`Xa5FFo))Z}sQBS<@Pp{b{+XF~y6K#~vHdww zBudKR-@4ZXB2p!%{QHz2Cdn=dLah)OkQjuhTzo7%og1B9yMLL{Yld&G<=Je~W#kx~Tf|)<{RzDh;%$+5OAe|?I7)KLp+ik{p zbo-tQSJ6$P|6RVrT8EY-jj;K2g-Rn>gUafE12BNQfI&BvjkMyZtGQxJkny;$3ha@rMJ?vpKsN>t(HAh0Hk2l;+5-*A z-UyBA2J2NrR)Oa!ptz_utV&arnZyU6On6J~yF_kF#kUs^+DP-zwz;M5lHcm$N1SIop10LA3}0doAHPYybo87Q zMYj`VepzfqrAEzF(g3$xGO@NudR$U41XTUP%f8{KsC-M7q4`#AJ`lPXRvb38eVthb zKY)efF6#}ta!oux{g*xD?+6P&TY4Tqm0x_kC2j3WnnbrQaVR_n{WteoR6y!>quDEW zw4&OPP?Fv(QnK!h^ISZjtXms*X^-(*0|v<(FMeoh_*i@7@adEEt2Xmj_P>p&Ya#vv z;MT;XaH(9K4P5ihQjJT$*Rm&@vU8d8W7gf;JC0{~c^6|TA7ksC=g5n5(_~xbR~Tda zS>22MJgt~z)azTKi>g$>7h$aP)D1Xrv?(YX2Bb&3UYy=LZBUfuJi~o4&GW8!bOZCn zRxdj*mDM}7OA(oO^zutMp->`{uzk7A^}NdJw|UNnRieWXHVweL82-e3xL1jxlK!F% z1=^Dzj+gSdCMKwSq0r>McP`L=Vh{i2k3U&8cg6(a1j*D}yeO=)oCiidgP{kFarn8C z81|xN_nm0%2>1sQ2+W zoeYr}zcVRoMN7GS8WG&hs1jM@Oy=UW#ThQ$IJ7&l7jqjvo6`cs4*`AdO%BUh%TE*Pzg z?(-PrXhk>H^c>fjtzRubyDxhRyHJnWjwm@m&Hn+cKvTaC7)KkSa^S`>a^H7W@x~_G zI2I*Yj{ip9%VZe~=p;{)+{p5qjl|x&8}q6-?4mDnpbatl=3lHUndz1Nr4?!Q0W54^ zgV9)S9B(xF?k1O4gu9=Y=%?=`&`s#QlZi}ZFN5Rg?2)|ccS9sTO4n%8=XTRAqoe+h z0?ZVsiDS!Yw6~<_yD%AXuQwO|Vq*zXz~+{-=#aB*EW^QXYv0h)-`O{?wWYHk(^sIl zCVi==L)a*`u@dR2Wt={F<9<28HdZk>wQpxkevdvmEIvLI@iK+nFZ_gveB&2lXG9+F zdp}ET<78sU>1`?c_D5<1ZBVVt$248GJTotP&BApeWqMA$WvmtV?6-)I+K|I;1M+*Zi*GK!J z@s~FGAsY=Cr^CI}&Nh%dI1_5I;?4_(-<*QIP-bPyT zwKv(u#FuIPV`KaTy*AOFzc35;~Zr34h3XMwVHA9-6F~VoKGWE zP*&0ad+A2I8Xxhyn`#68fwqky}n%y))X@w`SKluh3V^r1~Q67B#LwlA&S) zn_JH4?itwH-b0r}2aGGBzRY-!@m?R`tOlt<9bNuH@0W!>AXm^)vk^L)@)qOU~}$C-t3dP$GA5DX2;VtLIv*X zvyG24DC_EWZYVUaWzbNl25&=zTZ3(U0>y6L^=-ECsoYkMzv)(fCbwDRhiTSlQ9Yn* z*lgoQ2EAFub{DGAZ?l!yp3mjBXZK;+vkwPQxRh+;=3Lao-!y8zl-rc}VVd&goDoya z`buuII^J}%zM9*tj>9yI?$CCw>a&eIaQ0*s?Zqs2;-HE>-V~FY)+8W0no>h3H^;3_u6ega?ZC3n0)U2Q9($I5&D8ZjUoxFJC4PtcUiN*ew(&wPlsu`F z3+2TrN=#kvpKxa7U-oJnFXck&Emrp{QvC*xOR9sx^CnGCS0~^}4IWn%^%Uur?-6NS@f-dWpxdI&tvrEFr~wROY8}*z=M3?jO*emH?n5Fj2=~w@ z!{8`jCPu(n7^hL`g?GZdh58*3qM!K-7u^BJeU(a>41Z@}tpH1~1*@P8PJ(H$6zf`M zY9dXPhXrsv0mM)PrXj-Udu&*qzEL(C-w49U!mq*n>)_m)#hn;BZa3p#Iyo;#uczJ-hV0ob7dws7%Xa9;Q>7}^I_ z&D?nj^82WUTLco$fPSp9AGV37ZtD135BlqHss-CDIMIUD{T9Stg@EYe27$$9uwV_8 z!#c#~sR*P6=D>RFTPrMrHaHR5F}4FiZ-Or9gdW(8z&F7T3=d#<5V{3U7Gi(P5x2uM zP6%lWjKEIOs4j@Z`9Mt>kr*>MhG}FM;qNXNW78GJqS&9%b+El=>@XOcDR7m{#Z}D( z2OvYp3LOSnAs&_JYR6Ur{`H8b4_&9Y=-TQ-*E%FZfL=sbzvyZWY)2qF5M6J0T5LD-7nvoU-Q4Exa3>!N9si>3}2P0>6wF_?h05={`MFHI1c@>^VD zHAT$%qK1G>EdXP82`~~xVC;dt3dRZr!6J+AtaX5ocHGf`AmLuF#Lf6ML(2V^rnJEKa3nIr)br} zTuk0vu;@n$6g6{;-deEeM@tyKyNV3o)g{1qpa_hQl>p=WMPPiq1QYWDz&vv%{<7n^njy!O$#-ec8N|r*77Oj5y4i5wg2sLOz^wUt=fXvI!8gAN+wOqRFS<>1`y7qH{!8`pB1J**!tWZU2p7J)0+kihFoRGUJm z^N~)WVXOLuPCgE@o9b`}}LZ@EDFm4+Rxd8qRn z@W}Q%;X8}=!}n``fIs`;@yJ^Z@_80jJ~UM~U0 z#YJEoDgnkj4-W&Q9U;6#!Qiz_%aOv`2YgU?0VsMQC`K-nYl=WI3qi4Sp?tOol(G`A z^0^{dDKFHLKyFKJF4B_95?XS5k(Nv=0me6qz?fbFjBgczQB?wrBBnE|E&)an-GtSY zzyqEv0;9GB7)A6DR#yUyB6sWljMYV899KeLHWq=gpadAbMPMB7ELk0FPcvs~A-KHvjm6acfRgr*D?X-c?YQYVBA&&#@f;l`?Vs7 zT~|U=imYI_dT7zrTi9wM7aXNL0iT=ueAPsSf)P?EA*fEywWROPvc6~MxMs37PXhqt0GHc zY(ojO|EnS}HkJURm_B`a2`~KYV{1 zKF<_SN?Np^^<_owhsSSoN6H3v5N2EOh-k|^u&_!4Y;Hmgw_r9egZaE1N4Ek_;sKwZ zc#S)HYgoV7Gh*X7Ze`mb%TLVCV%xDMBBD+#N84!buVp*r3fb-KT(N96TlFN!v3<4d zJh`^f%)<{sQ+Picx(?=N=ZN9&LQENPaxTW4iwot9Q_jV{oDx~1d6g!d4B64+Zn^y| zO^bM^Xy75Q0{B5_vS3?NQ%K-%2}U8C27}K<{LO zGU9SK!jKW~awAL`afKUU$%ref>gBsF->-7st5k{iyCterkq=hQR1vDohuw%W8SzmU zNV$yom>W?cBd&2H0y5${ubN63^GPpenvD6hThDYEalIQ+B_nQdBdTS@O>RVujQG3< zwN}P_LB-UvFE-l+=-4hu$94fawhPj+ot=D}6RqEEHgH7 z|820MmVNC2y9;9j6#lvlS5hels*Ju{0|EVB{H3UGI#F2Fe)eGVG>ZK80rnjYu2?ml zUcM`GG*?mh`zoQDUVb1FUuBkA!C91LmOsnP zVBG=s4+g7(ta&!&eO2Z?DtOdGFf(|R%KI<;hv~ELT@|cl2ZL4n*`e#8sa9huIImXI zRj{^JGeq!O_+fC?!|+|2Q@1zI3C_`3Z*UF|2JqJiR^qQo$gR~Z#2UU?^k(0sRmfMd z>qv~5HoboO0j&-Z<)l@aIf*lI0Az|ql~mc{w@mz&i{A>$ZFmp@BDR`hbuYFiSVoW9 z;I!VL^$jh!Jvir1ZH`2_zG_bWociDm>>}Btxxu;Aqq(9-b48EpAHtEED;gK9ub;Dm zpzebODoT-2trkLJsh`8o+pirfX{ML2nirf&2%m|iYPAIdeP!0FdHZ06FM%DD2?iwu zDWOi4Xb=gejd11)MApx9dNunYs0z-e)@Tb?9lZ~W)YZ>9pe@mGTz@Izf^)NweY8UM zaw1HvY`?a`0W~)p@ke`zpDPeQS0H|_K>S>R__;ZVpDPeQS0bKp;3Wv$&-LSeu8aH2 z=dgXRUtX)N%p)?^gjCHu+^!wUgEKpX1DY9I@aWIrHZQ=gFB5zX&4nHmg~A zv>e({FhoNe55@8`f!a^>>_8mF~d#J5t5S%MEEAM-41~NMlQ7$4#bbnJjHE0H{16r#t6G##%mOg` z-!R`|uUPDlZs2uTh7kURp=GbZ!v{e_b!?TT%{%5G9K~kU8#qh@NrZ>mILP}Km}h3b$k^p;3vTS~d;?p>H?ocVbhe#$uwA^9 zjq@$+B7P>jj`y<9@jmt~zLougpT(Z$XR{ah4)!);V> zD<9Mb`H+_6G3_!wtX;)Nw5$0}?NdCi-Nr|?|KelXeLSIkizl@o^OW{8p4Oh_8SQs` zLi-2bs~zGO>KeaDpT;lNYxyPme156kz~8QK=I_wY;+N|K{GED~ze_)#zgr*YSLm1W z_vr89SL*NM@71s2SLrwN_vsJv_v_!`AJBimKdAqde@OoY|FHfW{t^8}{!#rEel=(O zW8CH+=hOMMJj6f67xGW@<@_^z6~CUZ;h*K}`Hg%dzlopCKhH1bH}kjhFY*ubFY#;m zE%^Io{#AY}{}%rWf0*CSpWt`!U-JF@1%4O*7ypJ~@OzA-_}#{Qey_2H-)F4n-!x9= z_ZwaO0i%yUXq>~pWkmV6jq~|K#wGk=<8uCp@m~I@@k#zE;|BhiaS#82@g#rTc#i+r z_%r{B@hbnRY4D$!0se$p&Hvk+$$xInYi%N3_!^&I~9hA>&ELwGPyu=NQkyYuXvG6XqI!hL^QXa6ZgKO8N<7 z?5hw!dU{0b#84$t)YaN%3{6A2xF)~9WSI;6Qp+BWtw)Fb5`t(~Q9M+N<7+}6&J*G2u!Qxo0`${>(O|(GCe09hr-7o+{yFb73=mT9Irhsu;05iM8M-oKw3s$5%^2+# z?BR5b+EAEKao)zbu!dyiDt8a8ZNVq=cwUEkUs?1Wamja zX)3ze4)W%*VA;K^%Jo$h^%eEyH^7EqS$)Nd=D_V*CKx!N?M4j+Dw`{Vl@Fl~RY`J6 zL~TPA+pg92lKwqS0Kbqd_{%HUzC#E6wUQa|xX5sEPVF+;bnF9R#!8#uo7$!OwYQTn zM_%}nEqDZ9X+Oei(E2JE|AKkKI^If$ zpwMDA_`jjtXo7lUA*?jQu+CTv{l+pl+gJfH;{>?eI1%1stb*%}li+6KWO&dx1s*q= z;R$0kJa4Rle`4Gr<5V`!XkjajR$)b7jsom?oN4bsdY%T4LxXlX%)+<_VU_kSj0?cc zFrmGhZ6i+>+u+P2w!xW47*g|yZP2ce^9V!l!5PYNHmuRE#5e=ahCgcW#gGXGYtgR4 zki}L)jhshfrjQRu)UUl0D&H`jzfXI=^7Aam77*5~g^caja?b=9pY}P7tbC^v0{VcQ zFz_S-qLf{=+DE!@sx-){5>gbhSkTSY*)yffohY-ivVB}7XGLD?ltJQJoZ})X1MMJ$ zktpVQ4kqJsz>S+>y75H_8@IqJt+oliOgp8Q3VEfw z^d!@UKoi}p0Y;lSF&pT4{1m%x~=WgdndsS2SCMB;;$hKvPhdwTp#bZhMA| ziA?Hy3Q^(3*_t=Z1?>>DfJH2XG}Bw8qDnmDRaoWu(u{|YOFRrg<2x|VcodE|zKi7Y zJ?J*Rj~wGM7&LwWDSY2+$i1}du)qB>Q7prF?AK0p+E#l#5OKhL=Sa((ZAyNFSSapBqu`xYV48iX4}k zmk<%YFdudvz#0Nt1oU(Gb(l&Yw<9$z(mADm3?LO1G16t#fdhBB(W zDnK!{j-MnToG9c!mF}$R%J1PzpDBH+qL1VZdJvlY7TMCx%Wp#L!i{8Ko1myjCxhHP=wM zLWXN8T&WOTS3ezle?6oqa=JwHOs7|M^_2&7taVj={Y>q8n3WZe>d>kg`!KDp+Pvv{ zSm-6rRE4r)RCcR=COz6*#JN>u#faSX(~Zx-?D`qkL3U!05)rw=lT|-M4TZ>ERzKam z9%||c-l zFWm=bt-f64s1cxQ#c!SXt*@`U4wc<~aFpN6SLb&DB9P{pM2OQILc9*_V9i5dBVh8- zSIrO=&vY`+3f8K`S(qq@BREU6z!d64h3Dowcp}bb;nge4^6FVZGh4UNz6DLMvqzcG zC~i3jIx3%QXB?0JzXqo@9UJ~PEOfkidtiFL&x=aAt}#oS$C$8qYN`*yboOsJUuHaN z!6AsjtP+c}tW07Jc*!AD%V!>0c`W`<(EbglF*avf)p64fp{aAkpma*HU@2Wnal}Bl z0>TbK;y=+8?aem@Uk{;*^Wyu#jQ{DpnU_$#~7_#3;! zIK&<>#Q{0?m}#)*O`HA2EYkvJg?6ktO=p5`DF~RNrAP*Hh*R`bFkS{axmX`UlNb`p3nf6;8w|6#7zUpHHMnc2px&2~P=+`x}DPv<9?n|Q0) z$$QPs{5-RZ51U(f%Ix89H+%W}%s&2Uv!CB=ZslJ$xADi#v-s2I4*o~;9R8{~U>Ii1 zs5Ik7&^+H*WTuSeX4=?bW{fU#!Z^>|ZA_SZjY;!D<6`q7zGmKts`^b|TSn~^3qj|Hn*!-fk z!o0;g&Ain*)BK9nXWnM*Fu!UIn*SwSqFZ4;dl=bPKuj?m~Bb2AKr}UFCRL%dW#q?9i5z1fHw(HFpsx=I)Q(uiG>WufZ z2UWe-v#-i}&DUV7z6SHnv>KsFUyGqxWJ0;F&a~_5OuMemwBw?|kaBfeNqwDgbyix# z!kjaq&KeLVp2Z$BKBusDk^ZW1aF*%s(*GnJoaLUGElLi7=`;HXEl_cUZcF`C$27FB z!uA{uptn`oWDR=OVbI7m3yoZ}(8x6lja;+PkT#y);zmdlPj7W2lwGK|doileMit{M zE$SVlbo=yn)DAZ71EYp4i&}lNQn{@H=7J@1bmy20RsnNC<~%dUT(An70y1xJt|?$; zr}sP2jwxUV?Vu%1filt>$P{2-2$s3~AIdST6nwM|${h8+Ie=k(n}5qfCBb$#uM<~pGe)zMyydW2KwdWvTRXB^Pu3=ZgH3{bH`B{)S(ybn+)!!S<; zZGt$U@1Z>nw>AeUd?6Dq<=MgD0sSH-c0Q==z4aRu4m-wddEZ6A^5uVBl+a1bSMEz(JFM9=zp%Q+MC0g0p*7;?)c6BEcB`aV3}WsD)VkQ#=Hks znD;`fc^~wd--MWXKkPOifGf-g;X3mnxYc|Z9yNaiKQ$kRznMRQL*`G}Jo5>*$oy}% z$$XLxn!jYb%wMtH=C9e?%%|8@=F{vN^BH!N`7GOSK8KprZ`t?E-?N{aFQ6v%2lkTr zB74>RlU8Z|S*tN$(!%D;+DYasTD$odEpGl*n=t>TU1t7WL;V0Xs{hgMF<;dlF#oAN zV*X2e%zRDziFr_a&iuFbviZ99KjtCbut1+-F+FH$`W*8meZIx@1(u4+gbD+DY)d{%-bFsMp%z3H=I$H$w}<%Q`KP)Um7B$MpANYB{@x zU8!G%p$c{ryHtN4Ev&NrY*c?g=Bs26u=Df}kUqh_$F}Oj2xYof$?EkFVhgHBPCD{m zZ*$~7hM1K9dYk?sDgX60CI2mbt&sHwROu^~{C`xtP)L1??P5O{Qr~8~*<(WLmkFuA z4i#;I75!4gis-lgcI>z8?K`ozqL2D}P{NCL>f)LbQG=r=+zw@J>=3mtiV{Dz16W!g zM$Lf=ppv9B{2$z9P^u2qq?}mlIu1}C45}X0iR`@CIGB|ahfT+3`(to8{mZd5&@ivC z9+SU))Ky?U?Cjq~9%`b(1KO9WEK*>&qrezJo~yv{Tm^>bDlpv4(O0;Yqpxr~M_u8L z0^_JFwfaY!%>p`zS;dD{K-_Lamq#+OAqrMvJyD zJ1T~qqe@gzj8Y{63xk1R1?dTu!ODE~U|Mh*sRz@Vrw6CsyQ)fGRb5|QUv&d33r?@E zUeR15?sN3MutKs1Qm$m`P!!9?T*Yg4BZ`=?S9P zhbW}fgW18^`ih6a4pxwAfMHZ4D#&N!Qy6BW!Z3%Z#J_d0Ol%!QwL$F~JW6hcvwS|E zxpuJD-Fg?CBjSvl{c-ya?b>%}`Q_E9C;VgI>+eAP3q8Tg(i3>l$l2-jNtpIJ-02F2 zCZDWNLQVEUb|KkQSX|F|;|22t_3SqXBv(WqqeS#UsK#F@tatn;TB;o>o{XFgc7>($ zqp$**%rxXP$X~5$>_-i(uxg>zs)IhO9%9xE*lo>(E3Bj7ebzB>jWr(!bOAhI9S_f- z<@hSClUs{ezzVY&)?zl_TEdoCOWA4GGS+D=XIrfmY?pNc8@E=nE3FgR)z&I@qjeH{ z*gBd0*gAzhWi_+ctuX=hpO+PT&SZPePR zU1FWCz0K;--eIlO-eYajuCh9{k64?v>nwTi=s{%1RWPQbDhWrSp1MuQ+d0}|*dn(t zvDe|P`o~e)&1OG_FY9kZi8Yfw1)tTgAqyDo`~yPX&R|!=pM|`wWjDgpLf+P~E8(9) z-qx`BY(#8YDq~C74*f$y@}9;zgp{pdooua;{Qogk!aCCb8iLds4fX6{H??Msf7 z#gMYHwJ#|v+tO|lvXw)X_6Z?d4S1h6PsmmiYyYBKu>e%&NmT3*suB6Qu_CC;mXp+sTzN{3 zgqeQXNkfCf;>k`NG&_IdZF^Yr$A_o4%H> zs|u~+bLm*d!u|TEZ-B0a^~Qev23mKontwgatmjp4`3zLexehG854gT|9~^^8;p<^G z#?4r?a4zNlyyTJf20w3Iy}62CZm@lazJiGalt1 zf&y~MB@&gO0VEs>;sGispn}Va2eONx0*ayna(q=?-JPDvgpB@l*FQdfVY<5e_3P@o z-cj$61CvxZ0sNHg`(L5?Nx3+yM(ryb5sd4>G`h)WyF-T26UrLB<*MEXDj0p?QllT# zHTuKV#*NU{xJlw1AeV!iVX$!v43+ms7=vM)F$AU=Lt&wDJFGH>!CS^~*eOv!Y8Cfp*m`c#qwi0Bp5Ng>IBmj>% zW8?CYS)D-|M7C}_qqy6OFaOMIKY6r&3Q}3&tV`Z4y^$)d_ zKi7haDg&s#9VyVh_M88QonsUEzmD&E_0pe(gT8b4ZSRHeV~?nk@7{5FJU>D<=kPq} z7a{McWA_NzqK+LSw*avRfS`zE9LK z93h{oqioL4b9k20WjKtPh>EwN>?>q%kJaSM93gK-#agmo&Lqi1Q4J>fv0ya#Hk|J= z*g1cKsAxPS>HEWSVvmDb#v^cHcNx=R zsxbp*88cy?F&j-V=Ay~Q(`bsZK+^ApXr}QDdfHfw78py=vqm0z&UhXzGhRRiMm}0) zEJJIIm(Y5n0Btl@piRa~^p3F_y>F~RJB)Q`mlQa5OCI$zV*}c2Y()Ew*U>@aO?24U zj7}QwptHui*fh4_i19wY$k;AMmue9DPZSqR*d!=1o=`*ji-zy!4LAnI<&}yeH zC!rTPDCxhz7s2J^Yq_WeaT~cjeItoe3JgR0?WNI#KIn|S3>s>ovX@4%OW&%<^(;QB#!5i+`z6(P-YspC|yH-%{%+=C@r#+D+{b_Q#q+>pOKSCam|VwKM5Dw)9Vst+h^y z*J#f5GSyE|qAx@!E7^jo*p^7F851>pI*176$rv>urgieMMon>6MJYZbr%;ilOGq2W zq{duPhB4uc6x%Q+9Ag+0(uOhNsIUz_Gm6YosNX0`*yi;aDc;=}f3RSYKbT|b6!rj3 z+rlIeWB;T~oYV#HWk$S7$eCXfn}if|^pfHUJp*rglILlt?@Irpl$ebDgf335Rh#=r z3$jyU_w9?p>Ro%uQcK3hI3Xq3lalJ4f=b3|$-bU}Yb0^)EP1FKO$2{8F+6Azm}Ux? zWoE!)vkbgxM&Y1Y0gjp#;goqH3Ye8pig^*bz^sfi&5KdCSp~H;tD>IfCFo|e8oJB8 z6pc4C(R4El%`ugINo0Gi#%d%sS{lW?gjHtcQ-7mtkgJj!p9loN8v{GG={y zNyvvZlmf@~p0A`~-|9VIlnHz6{oNFlE!kPM`x}xh(|UW~HWl@RrS`sUSj|IEdaUM2 zkJVfqEw1M3XmK@a$tS2?5|W9Q!Vs?HxTA#SsIc8pnzqUiZ8DT7j>1?GfXaF_OB7+ zbg4CLfq2{Y7$q7llGDt_V3=1!*t`ZRnN6Xtc`aOHHj@Lpxg6NJa$vWR1G}Xh*sWoX z*%cO;*TIYC^|03L23yVU@Gr9md~WuHf1ADFYqK}}VD^C%W?y8PH+ghQc8BMmQO@(v zDCZ6=RL&V#20G7GOCaH>CFa0bdq4+@28?~rRV_HS+!9Pr*5n3E#EW84*NI|L5TO|* zN2n;a+?N=kB4*_;9)Nt*|{Zly%glMNEWwD=JX-%LVhE|^_pnQfa=$PZ3r zVL@xeJZeX8nO$Uku3>7qFnRGv>m+({+|%_+eERaztWIclywypRDO(bjz?Ov8w{1yS z5+*7%r5{KO_+1F7+5#ErLfrCL+^d}YjfX^l&3R4C(H zm3KqP`~@yFPeBdyG+b+*g`S+lE!={C@F2|Osqich!)rVpKIR$lC6@z-pN~>_6xHPA zP<>t=b>kJ$0Dd8Qh*w4v_{C@uuZq_4>h_@RtOu00DsQ6KIIHp|+SFNYyuenXM znJo^gQgd4zRHa;7-nbAg(Oa@{L%Ie8&SgqfhUx=zSL7D%l40k)Qn*B>WYe;0)GVZ} z;(X`E|vQLU z>)iX=CyI7+?`xMR+QU899#OQHd#?SVXdmx|+8v7C;3CxCP_(~$o*LsWmF2oZEpX4% zVw|!f^rj-O%&LChj2IV9db8hyQ_7AsO0`p__I{4gThxYepvXr-FUS!(NR=H=k!q@} zT@+9!RknPhSdQ?;1j%tlPPK*oIvqRP@ESU@klrKD{LFBM3oI!m&QCb<_g>1Lb5^TWye>hFa<@5Ezg)q|CO*Mp8@0Qy}IyFLNR3*dkF@>>79m;VY~8=i&S-`2@CAw#*)NfNTFA;6nJ zh&P3b{935Vn?Xa~9NO|+=*?TeZM-Fn=B;27Zw+&K8_4Hv;Z@!a-sA1zGu{CX^Nw(u zcap46XHezLAf^ckuD}9zFq&;g8~Rd=h?!PsT6s$MD!@2yvXXU44uRvUc6fJ>01bm2X zQI3^mgI^IGYf7GTg9By6sf(eT3wRRBorMmumdg^2S60+%OrqzZD03g*3Mu?OxQKrW zjro6|72gko_(2%YzmbdIx9|)<0;~CP*k`4~0V@KBtPD76l|iO;K8jdTRL?4p?y~Bj z8CE?s$GQxyu&zY!T3SjNCZ&|duvi=Tzya85M?W#(5NxK~w2Bs9r`zoi>-LaIj$F8h?jVJ>T)2mRpwz(VE*PNSk%YYSp%um)<1?$#UEX(QJF%FHMLxE=`o74Qu`R(D zeVhcg?nz_&XA;=@B#mu%acuE%k*)qoWBXSU*lsQXTZ>}YK1l-Gtx4ByPZHRMB#rIU zB(M!n`b$4c0^7)>>-Kr+al5U1&K)nCenIy-)0&-#s~6P zO&&j#$8zdl0TFnej`(;>#WJ$X`5H(2#SH+qc7VTHaaC?b}Q6J^(RzpQwl@|j(lHDy)xUtxf zYSsLrV{CjiS1A$Kg3R=gD5}dmji)vyycJTFj23G>Ob@7EDOX53stl7)Lc6ojIW8EP zA4vYu1KI#F6N!^x9tS4O(@;wiRPzLc&-)c}?ZG)ub%Aw1FzX=*S>vFrH6Ajp39>aO zK{IPIbhaLczgbgYs5KSFTTj9~>nX^yWeh>>j#YrNtre(|^)hN>twvp}b*Q)XDjH&KM8mDu(F4|-k|1wF z`PODhl;4&_c?;TWZM7%OB1syv;R?o?B}s2HsKx{fN)EI$L~U+7DBG(&Zoxvz6cOs# z6EujbLvxlYOB~gKMl38#if29Kk?lhs**@e2K|93K9I|}~KSIBflarwXHnC=siT<3W zOMW{5WzjAcK`LZi9%|0cQ{mM-9$eQXMPB)hUb8HNl_{28L5{6Bji$BZoY@s98V+?G zH1(ZWYPJbP8ab3kzAI$Wczip3_(H|kC3XQT=dEp6uU>pv9F9_Q60jt4Nm-@jBw!U- zMF+%7GceUU3)2O_VnMtOgualggTtv7@`A{{=*Zn|;TA1- zd$Ukqi3=Skkt7Tq$8uN$XH%hr!({U;HMR=bHJa=7I#d`wo`8Ei0cTBFGszP$ud~&a zYyDh;w)&H=tY&9#fBFSwb|4GKiVOs^X@qsnVM^4L zH1m3o#6?(lMJhF+>*A~Z21eIj3@`?#3fK))Q0Aw4)hjRz%3#h#)H+m^D8tD`nfeqobl2c@`0dXlZ*uXd|LpJEoNs-}#{HZB2iqc(#;?rHE7E5;# z{;Q|E*!}u*RGr`=Tw;QYC;n;)F3kUKf{WPUSxGloC4YmRGr>ib z-<05D;9oVt#lzTIfvTb{WQ%stLbQkOq5}*P z9pP@#2_}lpFh_KOe9;xwi|b&UxE{U`-QcL`j#V(dEK4#^_KUrn5n^hP8VhzM6tf|<; zT8YnCPw^7#C%$C&ihXRR*v}STZXd-?NTNNP5c_TL!1hX z5@!OBinD>of)JP?S~Q^ju}*5yj&^X8T6Cw)oTL{0X#*#z#TZ(_Now&ZO>>f3EFveJq!urd zBTiC_t>gop)BN`vg9STScl!D7Aw7^ z7B4tSEgG^1oTL`{EZs?Jv5Ijgsl`TmCN8Ok{vMsw;)UW#EwW;hTBwflC$&)B@Vk>* zu)(h20e$4RvLZ#!ZN(Ki!4#kQaAF%mS3DAKa6DPMA%XdD=@lDNx>6{ZUW!6zXc9Qe zl!D{-(iKa=3rfK;ED0Q?WISiXllYdZrQrCx&tMcg2BUUok4VtjS*03`dY!HHw8=}m zBTK5sT?y(@y5VZvpi90Ucb7EyM~&f+qP}nwz;uwZ)|5{8ynlUZQFTc=l1SjSNH9vrmK2tzIRXcbU!~& z*xDh|Y?Ul@PqC2cv89`z3}im40rL(@TlbLZWlH9~2jf1>*M3ZLAVWORo*~3a{&)D$eS$H-yXTNUT)?k4Sa*t_dwCQNgAa_4QzXOgT1=E2( zv#{<&{qIPj`+DPnfBF&q>40BnnfFG&_C`^E=fwaE9z%L4sOiD^ynvXA*iaL+fEPN z84t^cT)Va;!41nb9-KEG$EUOK$Zxg<+n}RjU*-f_O-5i$^d%atOHw_Q~Y~Hfx3oFn*>on4#E*w`JLx zAQ&X99|ah2fD@Xl0;He8`mdyuCQ1|UZF$;Lrit9vRg0Okq&Moci+QuI=?%}x(sDG6 zGP>bWKVbaV4DOa-QW-G05Z?0=8r-S+K*PGPuzw)`8$z1sYPLq}3Iqhh4g3#E3JQh> z1O)~44>>CQ&;D=G|8pIjEf^ggTwE=j&0L&p8Ldr?O&FCdl#HB>?95!vod1{F`yUEv ztj4A;swUD;4w4><29lUqA5KLYnN}gjh748I)<1Ba$PkE*eiAud$iHY0Y-i)p@@(Ma zbz#z58!xctkKW|JEbtP4vC3_c1|&VlXF9vi&HC^$ot?4%`LS!L2<&=b5q21s5oZcN zsgPCaMvAH}H%(4@cVzSm){+B8-rm&3E#3kB#Ayuh=j;?sC zEkvDMR2A9-e=Dp%kIgmb(=u$vk<6fv+$!DrsLQzG%d46ycy&$%BiMptq^?SGk-amG z7>#b!lLI5uxEw01)O4&IFc__at$z2mC!7N(Sovnp7`O(D6Bq*1eUn0P(9Br9;pG(| zQU6zYBbg5ic9;{D(<&=7_vHPpN!}m^aYwFFdq#NxIBXGwqdlJ@P0b~@Q;&VB1YTHd zQT1YaEH+yNo0D#OMMLdglQs@K7)vvs2r7fbZdh1Q{0T*LGunlWxKByGfXv=(IbFbk z2`ot53MmX1M;Y7BvmGbgDWu@ZD-$J-dF<#DB$Ppgj5MOu8c#B!fMv3sm8oN`!)~0- zxr6>DR^i!}ADdaF64hcKI{cr`0|%8CWYy6VY@F8C&?>QYtl@M*QY^|pD#hWbC=}&icFFs4b#3+Ld3mmyvJxO^ zpXp%J!NI)8<_j9O>I1xRA0|bret@;UWmX;>4j355-KJfP>37sdO+xrR6Gk6lw}EJ=k>Zxm)=uhm=HpP0et0(?n6d!;*HAfx zt#k1*F!=T%lvc-0?oM@OFAqeWA&==m3Hb1szllXO2#owvH4qq}4|YDl@pvOlOkpLd zXO(FVq^?svJ_dYUy_F)CrM2|UPJ$E7lcU)WjhnASp28sG=ROc;(07D5i6vTzT8@!7 zWr&`y6Plt1gk};qdm576d-PgGkKEgATfcbQs_9&DDO*X+I!k(?jtu~g0CYo=zZERC zYlA-#9aP<-u;{!ORtdV6tDHTzDaV*X9?;3}Kl|N-G>O%Aqg5WOpr}6FUPtD=02?nAk zJ-;`v`i?Nldb(5zQ;p`{5Z`W&Q2cZu{L$8B7X+el8MgE}FB9S04DpV(f+;O?{ezaz z-M0P)IKUIO)b6Y5tlYiv^!QR_@1QPe<^0klh0x2CSO>W{>+Bk5NwUDEHXbK8{PW9d z;hVBP`TKtokC?Wr55YfLJR`#YN5B4m5|6W)qmi?jsj91ytC^jdz3YDxPqQDSubTSv zUHkDgS+X=Ek_ZtSH1(r7l?W7hdXV%P4Z?T`92qM!xTF5$2Ca=gIPS_B4NQ455lvx@ z+jUK+yS|>J}whP>;)v--9{D1Blbl2Vl|bI(6~J>ZL0U)8F^V2`Jqb3@ZkqsTy|` z$MRNd^~6rF*=y@Ptoi9M^{?*2iQQ9^7p^rgAN~$TZSNp-Ouy2{2y!e~u<#{6F8|?K z{WK9oa3Dufe2DVf)@wGf>cUmJr+*B9Hm}@wipFs`2&)1C zSw6d542SU6>YRS4%{Yx{7(*XOcX|6e4sXYA9>Zu4^}buP1myzD-SvGN0?dwR__FeS z$A9&MofZikQ`LMs(X$b*01KDK-OU|=n0L)j%22bLoj7=35;7{V50Z+t9!OXdCDN;M~ zk~(e1+-I4zaS)&Jn46BHaL6^5&z;R%z1cpqdtf^)D4e@?9raq4)rgzcJ=;8c%CgJi zyY?zmjL2p~pus8*A+Pto_D;d0R3jcA@R8;a9{z0Cei6Y7!Q!oMPc{I})|el~`=zIv+;M5E&u_g~|LO-w~JK#n6x zFz~VZM_OwXG-)mbt_$D_o9ZXI<&>|~vTOo0g z!tE2g$Ce5=jmQ>c{-8DTl0TxZqGC1RpT#Qk(OC2G2nt;2&1!aD$4M|`+vWZ<^9cBW zIf$Htzk}h3u)hbx=Tm(+eJ*)!nyL~V&GvG%!pRX7B)JU@RP~!3<=xH?-X1Pima6qwcHu27M9{RuVL8k$iV#3mqD z+&z6QEhV1&cMT2=;nLdnNZQa=+oW%fd*VvLr*qw|$^4E@G}`x_*F+XxWFbb?!0$KE zqOQHNy6goLZ+ubQEb!wmb^ z**@JYWiPTouMJ8(l+RiRI6$r;t}tW`DYrtNXBOv#8sdqXeQ@VaW6+SJPpkvCK{oXr z5w@bx?yDb)p!;?x24r<{6SmL#*PykyGsy1qD?z;Nw>RKDkX`XQ9HmKA-fMJ{?As)> zf(%LbPSDVETijOoBJeAJT(8ibHm|$|ukvdUiQcAa{Q8<@VuO33VLH6T+8{XjiVM8c z`wOu)2@kg(2a9QTe_^^V=JOxdbcQ0h#7o=4U_7=!TC+WGOHK1sQ6PGhQ zQ?gqS+^SMLzCgdFx4%RGO&4t+nC7-DUL>$zTUJDRhyedW}=`2B z#p09|0fn3v3n-*Y*U{a8rUEmh4nvRtMYDThvO)4?cEMT_NRsL+{+p2!Vm)pkWt(evfStwUT&;*S!7;`@JmoH83uEp7Kq7k0xB}_>VIl?Zf zoA3MGx-)YoHUB!q3P%@v6};{KP=DkSkZ`awE)od5ZFb*Em^z(!WhxJQJ|0mvBu5U} zI2t`(6j&6bDAsD9X$YlfncFtz)HUx^6A$;t=^tT5h3fZxgPs~(b5*7QR-U;rHZVNmYy8&Ve-TFvf z%1h8Hf*u^ux;f_NkOC>c!0b5FMZ#K#Fm=5b)!DJVI|OfXX13Y3>bC!W5a?C56y1Oe z_qrF{NaAI^r?#1aU*qWNLhdQzFEF$**2uyxcNtbs`3)j#%sm_f9rl1>6gZEQwCW5) zRaN~%b4+T@K>fcgHiGOU*NcpVeGJ2WY5F6-?vh&iBn&}EP>`{X*u8zHcOby5VK08U zavu2le}%9p_$}l;l6py9AFa;UOU$dddUrP!e~{v&ggtosGwc8Uq1;LLOl!nL9<5QD5JC^*QlxY86NAOGIvv(*waUe<8=OOvAMZ9uP*=h_4$XVR?3PXp zSas`}@*mkHn*7ezlwg~gAPFl%lak< zGV3Yl4*r#EUuZYa%@swoK{jWZ8l2q0=zOesLVAs6=LRj5(~(lmj^;YoA8+p5V z@o@g=6Pm_n=WN-iZspoVWs1(ZWnR>9lxqIJq0yn}6k?GZDylG{lJk^CQWmE{$A)@^Gm!A}RP_t51 z>gXy<-Ubl3MQ2S#{29^W_`;p%{09Xb>tEKxx#Vwm{Mup&RX+qthHa@#v~_KeF6uYI zm#-A(u>%&*7yb2`+xs9+UiK-(&9X@TuB8zR8ceskT6tw8`z=cbrf> zPE3xR+fY0;E21ys&A;+~Nb-H)eo%@?b6?5i<*6JiS4Y&gn1o971Lb^WeTBci$GW?x zx~ni{B9ohkggI08nCvE}eh{OHq<1RP($HpKC7c6S$)by^KUx=saZLe-@6l-xhCIVO zdFqv`HR0ct2YymP64mjvz~@&K`R52_HK*f_cWyY|-co ze@(S5w^&qXQ36b@^F%fkD!b!eY_k~MAJ}pgrdhY>GD_yOQ`r--``4fK_D(>(IGPEM z%(-oua^NL;m0#e%OVrqk;U7Q@q)5>+zBw-FT%X_T*2eS%QsYH^#+c>gVw~4exvuRWEWXyKxa*L(qB6L(TIsfs1VaCk z3rF@vn6|OE(^hy^$?nOqG|D50vkz}dAEhQadT_gMk-HTS&wh`%@@Q(jJ%N2AxzHrA z!L~bbx<8yZb_H_q7_ZXn3euEh2{L!SN2NNbpp3BA?;43K@7QM1 zEzAU<$MtK@VPRpJhh(X7a%2K0C)dW^U3>GhK`JdcHi&3SI{$!oSaWd-hWbElH`nVn zmx{NRUmd}BHv$!a{}#gEYw8|a6*u1??Rckhd{B;tXXwebYbh!>)AQ47& zD5+NvmoJk36_&yJPcHgwZhm^x3lg~q^;*&4BD{YyWF`XM$GhJHr~idDX7A*mS^z^L z&iF$*Lv-(s?3;E}22;#}!d?jL!Ru^uGDq$D;*P?NO0l^zC-MmEo3`b}+qyD0}V19>-6jvdZR1ho+(MoNKahCeR6dnfxEANyJkagJQ9`f)qjshNQ(Q&^b{M9N=hheIe$Lqv5<^w$1 zy>1qtixash$SeE8>9S)KODp)-Zh!RQ_BYlxA*Gu<@*`I;%U$+mb9)P)QyqBQo2hp4 z`nH)F#@ehZ)MFUQ0+5& z+Z(Q02+AyT`UG>R=%_op!N!-^yH~`b{WpeffqT*4C9chz0Tv>l^^KRU zztjF3Eg+NZ*>8Gmcx?-0eOgcr!15Cz>|eau4Wt=hk=05wXS7TgQiT33NfWYma*%hY zI31K7nyE5v&1v8uRpj$Y`OOXgZ2>o#A#7pDgk@#{?B@^n^=aOYTfa2^W6aY=p&NgL zp4qzfY4fd#`4jac4?B<)`am+#VY@}mTiEd?$aT#M2pH}V=eW-K6fAD~GocoeUzl0p zzTVoy1XV@P`I8!u*4Mkg8}1D7uI5@jNLfZR9iGpq0OQm7DtROb4eVnN*$`%D^1_fOnMY8$o{e|ns7Mn?UtWhDfP7O16LMyNa zK2xA=yw&$~Gbb?DG|X zS@cvU_Junc6JPMK|Fsh%z-gVLpBOgA#HD3|lC@Nl9|S#Ilu;H3HBmdBQ#>4kE&wXm zB)UOs_L~v`uGYFhaWmGw?I}1At`7>Th3T{~|50BGa9i48E0N1NAiHR9t33i*ieO)Q zK(khN57DrxQ0G60t!dWvT)*<{lE|UeoUW~KkEZY&w78)OiDa9l=ZG**8$(Som^I{A z493mhXKEOSQPe^`dra0*EpZ0XhdM26M~7XZ(+@I|4fSJ1yF-}AX51K-Xml0!u|zFw z$t&`H3@u!vQy@)eYH~MfYo9w0tr+GaqG^(T<3=B32;t%Mg#YfQbC`O`5f)jP_`BZb{cM z0%BV*skjHp3+L9nz*vpE)ITt-Uxp6|?p3YAO-M|Mb9>)tR%Nu8 zz@MB&$Flkypre0$!|k@Set>gJ9Km8P3mO~|%7WJ)IiVl6(5Oogq;N>CEsDhP=4|Eo zxbVYItm)avw-LW#yJ+Z$0E~`A>Z;G|oek?gzgao?fTTq5J_@vJE15jGM0f5@f>ELC z>yUcsOkEI$0ZU{yYopD78;q2H`K_5&+ZUEaS>FF9aHbS^ZYITcRam2I5o297&Rt0t<6WOpW!Vuwi<=UjgY3sX^)^h4#)m6fb=Y}|$kO_8JG zxWI7&MC2E;0W8O4Bsd+TM)i#e-}1bNBBFHa4PSg0rc;%3yed3##G!;8qb-6ew(h1edTLZ6OA|2+1pHhC&pY`9fC zx_eGMjwIMo+nl|@Ro<@co?Z&?FUSEPSe94qx0#|*hi{?gIfr%K(cQXtrd3H1`l zc2KngR7dw0=q+ke%0_QvbSm!BvAh=bjpZK`(JlUw8qcZgxSUF&6i zvxx*y0*0E+(FIyIjmIwp2dGWLY8At0zHi_AqdmF%i4vJ>NSBT9`KnP=NGPRP@={QmLYg2H$x zf=N?&645Wo9X#Zs)y1GKQP!T6aO3Jx>=G3nVOr%}$H6kt?#I2G9VgHZ>1cf{G+0#Vqoy3|AIvB=UgS;9 zww;0SoX6F;kpjw1eGXIvaX7%nHxo|nY(%r9uFDq;0&~lZD6=Gd7SO!nVw1Tob2q!_ z3GxiV_0>emU^%(Gke~$uz!VC(|9#Q>lh~*WHmNepb}>@?YD14GG)v_tciL;ti9IQd zpeiRCrIh;|qbt)rnPi6kq|yE@NJ20!?HV0HBI|~hu~aIfGq9;uG~gy~-W;uOiE~V* zSx9=8f{HYTk+=I-hQVV}+POhiAw^XL`YYnQB&Wxm#x!ZsbtSZ^o^OS`Y%*zXY~@pd zJ6YtE#hYi7+(J1rDHtt+P@7Y2m1Y>oQsK90I<0KQDc>h?t<7(B$YRM>ncqhsmEu>n z#X)+zvuEgBkKv6Ucv$m~Hs{P7)*g%{oZCuUI(%8QQ{FjEYa5Lbeuq-lj4qQ-&U~4o zUO_t;(dVfc{jQB!x+@bMU_JT_*G11m-ihiAl9{S+p}IAuo%+t9dgvQVcZZ&p`Qw`f zBtCpR$B}JnbC-Wrz;R7J{N+bVSw-9$^bV6K$5lmYAD@$K7b8>KEGdpRC;fMeZ0fBX z$Gy+RON2>SWNV_4^5@P3)QHFoE{`ET3qt#t@Cq)vmhLu_Ps*VzcUddJ<2a%@9imLz z)Jr3cqzJ)-)#l5RWYsnHWn)_twX_MWesI(eO~2T7Pj9IP4%4|JiPg;+Yf_uvI8dCi z^vR8u#BMRDTx4r2)kaSi_EN1@7~p}D-r!)-BYHQKj3C#RdS4INFZ=JfQ1vd3l&2E>el_XL)0 z(RO^K0n#RV!nLp@h**E#mQ~+`!nPx*c>Qiuc#dn?x=q=hJ;Z zDnUNHZVJ6R)WRlht-uYtA?k47q+C1GBzhRx8YuLq#>}Ukg^$J(vu>V6Z;J~&3WTAx z2x7W2=C*5-q-`5Tor%9@IjwRI~kzkP{X9@N1P2M82@R2YR zex9-IVp|C-(0~EybEED~`6c9ggk{;X-RgRA1#I0@k|2`ns-RN=rr97D7j)=SvCAkT zjKJ<-Am&nH+=6QNUV*XZ=Jn0=bI9e0Y(3lneb#}6x0RW+5>S-R@2rQX!v zy}#tAw<<#)w(kim1q{Czr>)hvGe29+jm5UxOKrgXF`Rnmw|G=^ZJ%;dcWCsjk;%K& z&8tIG4ctm3mCDv$lu{lwGIULYrv~78<8bp0xSq;$p5d~>*2Iv?igu)nzOW{aal@j` zun{&G>6rItqV zSjzUIn6<35&fMBOF8h395xF;Y#4-nFPE^RBi~dKb{lt@v{!l7APtd{q}jAb7P#+Y-b|;^92+U=Pq@RiY>hZ>q;6Tn z2x+{2nhI`oD_d!spuOKRt#ggo9bpgZ5ykorb&oIh00C&Cze8d-sq#a-LzT-_Ihy4k zSNz(_>-zo$Jw`URsMvb8C9cZhb9M!ZBToKzDVL3m+BseDWt<1Ra(#a0` zs5}PC{*2CBc2oO#oqJ#=40fX*JX1FhkMhPqp}Xf)d05(XP)+J2%6=4`_vifc{-$|} zrm(T%U<%ydeRLsKIjy88{EJE`6Xi@akpOiyj(p?ycJpO1K@OtS_E_=}Xt8dbCN&w= z)QfmRNAKCp>e1xpvJGE~0Sw2ev+k_aU!y}pSq?d~w^j(ZG)0?0={C4;P@zbb9284@94GTNENGsD)^NyC9 z@Mh%@K822q56vGd993)=dK>zxW;~BipAsY{9 z)lyi58?g^@2l5)#p;EBEL+01zLfL=vW7i9UGr#mHX+?7_4|-buw%QAQt3#kkOr;be zjoTm902a@|i47IUj~B;BloP&jbi*i&8!e2JRE5lw10~Gmb}WUiBbd!bMw2aw$0nAH zbcuGN!{J1gUcd`k*{%aHM96L~flF+he9+Os?^(HI42&0Sv{G|zcho{t1~2Yel!~eC z>4BMrk(|$hC#fag(UBN2R;-1LPFr`;ZI2G{ijIRs|IRt#+B|yp?K&NzyoUM!7jF9- zq>d3mq*o6QQLbIvVBW34%mB5ji7o)zEc0}<6!Xv4-L&_7@*r2PAFVV+@~3leu{2gUCKEk3j_qct=7#@I*hLmV|h4mDn) z6gPSZ_(o}4BC*G_{k^%*H{9Ybe?oPz1MKmQ3D*S@ulbx6=#hVC1#x0xQ>Ig61i_OS zIGL#KarpBxBf!$>eER`?g%d_}Ov_<5SbyTgq0j@RTs?AWViec0azzu~Hn_$&MgAY7MNr-3c~rkY?^iciyoGvkFf6%6jl zPjJpguG13!J!|Tdz;ev%w4lG{$Qd(y=-HJE(n+e-Fl0OqgPW>{peyHmJ?sN`JyJ;4 z`|}ruoEyt3_rOJkJeyw?+pXbm6Mj+Y5-iZXF>j=+-n}{MwCfT)qM$1qL?FL=`W{Ac9cF{5GyRH27I*H zv{5lnndF5Ib0t{PT`Ml}Rez%-5#;khr9U3_GnhBc2l5Ri@<>?$_^fXIws}_%aIHh| zE|tVdK`Sz(CauH*OxvOku*bkZDR;3NAZbEl7ENvZz@X8i0Sn@|bPZ*tHTc=^ZdhPC z1L5@I&y3Uh7g#E=-dHWW@fE%CSGwg#$-_XiKzAwZu80mbMJ+QP_H(v%)&#Ku(K2CA zGtHx7E9B&!uqGe;>(eacIQfp);+`n_Wx4}CV;F@`$fRz(NN?)Vd)nLI#w98{b3LYU z?&Q^@^909xKG2LU&;elt0=}=je1?&uw}AAZQNp|Q(9vK|z2H&N6M*D{CszC-y4CMy zY8jv`p$XV{a2RDjGA;dyv_Ypoq>#2D3r&3xpxiI-8+LJNB941b>;$v`PZEO5JI^G6 ziDPepQ=1cj+rw*^moIAk7}@FV)ZwP5m{#`fz7r_H?&=|zV7>{BZN@hEX$f54E~_dF zz{5ob;=85fUJ_78{6{b>JWOpA-;;}4y>#CwLj%UaF7#C`L%{~$VMhKBxhGY@12r}E zD=z~%dcbHg+`uk!MI0f3DLvPk5`dVx5TMB&S*+;%()R%}P{;z-&@l4Z7c$5M2l*|V z8+@9?a3n0XY7fx21Of7oSM$d`2H;}>-}b9{V#Xef{)H1Tir!Oo=lhIQ??1f)dj(7VLu_ci4Y6PI=)A z#FU5+L?9msgcv4gS=*xOFKfKpifIn`-^SRL^^%o!^_6wEm38@*_3M>&{*`rw%d7o4 z?CPqyq|ru1>F)Bz_`8_K-NKYgcV(LglULFmVt7a7og#I9q4m)0eqH9$w;1EhSyh#w zJN5MDqThrPe?&A8i#SS{L^TpJASv;nE}Hzn>Z-B?-)(D*u@J;o(O?Ao>^TZ6Fz=WeV-740W-skkQC)MBT&34bOZ^#77%0s* zl@ArR#etK=X9@b#r^O)(Z1DTROo&CszDvX?J9K~xHq@yNLr+pHa3}2+H53>Jyetw# zmIMt#ET3slifT#%Elw2egb2n3IaEc=h@g;(P+99vRf!0g9|dN-+>ae*vmW{yN3KC> zOo<9kCenv3?h`q2b&v(dxq)0j$#Tz)gFQ;Z#1#zZIAX+D?9el19%f8@+7GVgZr&DJ z&XiKi(p0!oBp8ZoT*M?PbcF0^D4(<_F<3&h$SHa}GLo20$%2*-!crsV%E)UBrlaZ~ ztwyNx($e(A}!++D>m**DKzpBAyisN88OR1 z{BIvFOkkls2P@2DSDkFUIn^KbBCO^Jm8e2j>kz2+HM->2BKibLU7~o21dGw% z*&thB+|e0vxZN1PM0%FgHpg}BFwtEby@WXg{~|Oa+z4g5i=g}?)1i>!4f!`9xZG7+7TCVT*X8^H&+CBxKEl zGYqk{X3@j2f)p*#h2sdyw%b_jTUvv)8p;FNlX71zxNvy{pF`*Y5DMXqNH){Mvq$@G7f@r`XX-7Q8 zC6uM!8q{Qos9VzAA+_j@PgZwHdNgJyyx)@VNQzb!-}SB_M#*40X*QOMSx>}U@)E*X zNZ)&Y)`EvF5wJ3&qej*8!10{x!8_w)BY2{}TI-dSKI^}8vh%PL_^`7c@1^_Rtn_u{ zTPfC0$n01k)=%1&D_bF(i4hG4J+@2+r-Z-#1|!KIZD)=%UP+ z?>wMYG&JX8P<}d|FC!wB35XQj@fZ!$NO;+fC(7vq5Tm0QSZt0RFA^u8Ck zy-Do=!E@MwAuX8@yXheagIJt=c<7ak-Vnr8kcvAyFTUG89#@>cXeYcQ0o(}FvF7U| z2iP}{dv`;1yjEAh(7_k!*hjUDCjUT71}{#09j;Qqxc}IGESe4#x1Nc0b;9+Syv1hc zx?Q&&q=Y4wI9YuwDVri;%ODu7cJMN6IxtaT;P^qGy#~{^KUw-sQ{Xvh$T?}q`Qc9h z)3#Z^YpsHAAKfB`_QaQ^jU?^-7XOt!v~nqpnPo`J51i8*p8Rqi@(3uEe}J&ZJ1y4i zHz?~mC-Uob!(EoyKIi0s!;0eYEdlKt>o(gS!ymhTEiQ@UfcTNKaH#0(DCq~s_tfwT zi;F4#VR~`lXQe;)F#l%62%fRRD_B(RgZncrKiKA@YzD_e3cqZBG|KY@GE}^NxkTmu z`jCyWH9_>rbSGrR-y{-8=1{#T7A*zMkzbHjs1N6-1p1PvbT==AWy%%CGAOQkGlDSv z%?F06j9VwlG(P^^cuO=|Qb(^&ojv%AXaPH0nB$Zwk@uHCSo`P$SNS2JE~&F`5;Z@O zQiN48D3%X<=78D}K{0gFtD_m$i%-tHS3KvJ5I!2s30FS$!uq6T3Uz1qu<dBt7*=!ZC+l(iqrp0IY06@nN*!?h{qOT6M$U@d8UL~~0bUPWxFxk8Ke_i( zZcU$S@s7n#{;MJsX#<}c5@QmS`f$G_n*}8roRL7T2!S`poKU{7E11emGy$M<4y2Jg zy!0u^LA_kqV_zt>yMnqHMAfE@7@!$(r+{_WoitrnE&F*R?uC8UV$kbOYX{q4a-YYm zMXJfwzY%v5boz0_mO704v8Chi?a4Pmc#t)F3`?wJ#Cfy6|2vhcV5RIwB~6MP??#gt>2nu|3~$DC2+Afu1|JM(;75>S(NAiGky za-Ydr{;!ez^EuAs&gkYc=AiRg3mSziL~zkdxdhMTs48$LLP+FNppP$IDbz~OlH!F!gH4GLbMl+f}y>WKbqi zgZS!YQ>q@8h(0@Ir&LZegaz_t<&;jjg>yH_B`O|_gary^O%J_Ful9?AedW@mloX>> z&2Zl6Kl6Log8wpnV}hN3Rwopof1zG|^812}P<~DuT<0=u%u;6LKS&D;ltkYS=q|R1 ztQZJbk?&+<9FcGPYDCV53ZMD=>y-nXw!505^E8o;U|~Amj0af8(o(S6_~6;&5Or5W zbXLK<^f3+1;q_4oys6>!gA`N4aTsq;sybe=y4;MqJG^u;J2|~8V+$%AvuW#|PLwXE zw?7{l+$Cz)byFk`EzamcyI!J+dh^{&4p8pF|)8QxS=IGXxLuWg}zDiiR#f;r#UzcDdmD$62Hdur6I{vWl)ScL{LZeG+!(!DnCAZ)?u{J;L9&@sD2I z`v0U@?;*POinowH zi+8g4DmrLN0Jp)WyGpgnNxb}%1*1t%=evh|C8MVe{3fR$N0d^SRN#f8RuF*3hu~Yq zWcM`U*H%7G!t?l-p7kHspXw`?Bx=7JrfD zA%K5sr4Px@)l3+P{ z#lgK~+n;V3Q--M(pXl5vy)zu`ed zO9w2!u>!K;;<`9Ye*vc0>h5)lH&IPX?`(VH0`IP*aTUiYC`u9CGJ0+?HahxD%#9KR zHMJk%$S~B)7i$K87`Ck1c>#Th#zf<@@-dDu-!XNBzdgUf$?h15a{|!!(M)v|ged}Y zdm|dL&hWo5X4~$~9tr6AefqthK?GEL;C|r0dxJTx%i{FIPf`z_b(Q103GT~eO#uYo zypIvF2XZEeKcL~&Ogvqu0hHb_+`|)03x_XcrZ^K>yxfax5O3hc;vH|0L<6b0PxS?HRWLYX1gNg$7lzv{*&$k1JKXUod79Sp7 zH-k;biK_FN&GJX6z<2O`Rg zu^d$%B2j6K)+?39Js4&1FhJJwSgR(1)EpHb#c;!^B+JZ`kc9^`i|taY5NQ_+r%Htr zlb}i%N%3mHg;0~=o$935ng_xP+z63j8h+V zl2YVh5b|Dd0F~>?R7P&e%|3jibm}!LwL=0j{jZ?=Fd^ZgDfGCeKvSK^j)d zP;B)Xx5K7B7-Hpp6-Sjh6IXhE1(nH>!DgqzMz1nzoL&}ZR;PxaCLGKoF~>%264z94 z&R1-Oz2FMG;7YvEglE-(6(tTXhw(>=qH^D}9xOEyhf8`XNRuv{q8_cp4ciujmM-(1 z#L_zuULNxPij?7J;iJg1WAFRyH~{d)Eapb4jCyk`ug0#BUS9GdiR`A#ri}Tem@3#x zd?78hl$=;zMx@Lywd74^4a)E%q4$01`1axWRy%sU8#CDpp7v8AH3tM^L(A~f;?MX) z?0beBsRIx~Q%>VUl3$V~h#6zz8+5ZHJUq~^EVMU&5yd$Ua7Ybv zgl_hQh9|ck{Lvud9|)#T^sxQwJrbrnoB9|5;oBnY!mxaleN!jb=#Vhn^SW)UkICg8 z{q*YEabjEwA?c(N%&*4kLd2gCk3$RoJPQl+vtaK;)1G9-&H1~N%A$1*4XsQQ<66vI zQ)i36h$?E`g326~8j;zYnHf<9aX_f7Ty|ngT25|ijAqz{nThh)=a*6GJ27O2H@Tw| z`cQP0QGOdlSd@)X(@2Hvs!QpL3rB57xv=>&28xy^&Ulj+ywB*x(^Nc2w={9PZ6b_t9 zap4^P^{SD1@c^kl*Km7Q%?(d_6eltSUiJ!9IhNaEvj)~Kp&1QWvA0#|gm5+I!*tiF zz=8`Zk#=bh73?HQWeX_siXl;|d&FQ}SJ95MK)ia)`ymr1IX?TyhdL-H0z%rEM`?MN zL7y<__Qw1KVxeyQwlb0^rku9i5h}zb>Y0Kh3-&pwWH5NB%n72(G2QGk&`%J!YuM?z zPN>88yI1R5QND00KE(Ee_A$I-_E{ts0v_HxE#ngL_CL-;q4<>qbDi{nrp2K81MzN@ zp9Ay=)LMxv;UQfDx2|L5(ZN+7v_U1y0KwK7#9xj@LJ7%FCosLEQ{EKlN5vDzDOty> zmno-vV<{F5f9|givP@8dwsea_q_=}Wg`K1^YpGQx#J5r0QkD-#_p3$Jm@YJol=Ni& zi?MSGt~6@;eI~YT+n(6ov8^53m?RS$JGN~b6Wg{Y_QaXY$y?vKJ@5Id`tGTEZn~>i z_gdY*|GMZzNI%?f170#(=AsWWrBT_&sV+taT4t^Fd~r#+w$rY`U{i!+wDl7&PrK9W zwfq+K?|JFfk%(IEB2QeVja7DDSvcCw{ zRtxXR`4cSv;b)cYMxZ(n{L{TFJ^K!!zDhDccR*o1@{8NItUER?o6y2Jw zYU6WBzfj7T4B?si?iep({$YoFr&p@NUdO`p=$M3%A@yAbd&X=MUAJzj3;8Yn_k_9> zylz8_do>_-pZ4$D3v=c^ym-&a0y3n*3${WUDn=QK5I3aUj85p;LOYj$Uc0cb#72GR8AlGN!`cp{_K#0*W6L#=+V8*U+BSvpm0c=$ZzLV(DM{Z z1s8haDjmai5HC(m%z&nMNSP!qRfe$`?{GK}-ZTulScC zIGOU@_D7mP6 zm-51=8YJeJXPFKU`V@=S$ph8#WEOC!*PKe_O}>WFYi$KXLkw^c92otrSV#T04lh3c z=QI4AGw7fTUApxUZzE^Mqg*V;z$dFh3r`9>f|LH&PY63NUfvYF1XV54lG+e;Z>-vp znuOTJlSzVn?VX6m79#rN8kvgC1l6`dd~X=easGaqn?U4>U2gr5wPjPQ_nwz;*6r|# z8p}*j3t#)J7ZTLgev5EMNiBhPyz|u^W8o7*w#*9eO9_KJqGnAo3v2 z((jG2jMB;@X+ywKD4>h%4;y#^e60g~?11TMRAD<^F`OabShF>pvT$gp?r@qI!_kYX zSk6sWLPP?^aLD&CMw@0K0-ZrWn3>SiYLm;gUa=lVT$D(^e3M?@vCqP=YXlvt)z}E8 zv3HeHlAo9z7{}f?N8{V9x)@>8Ca10+#Mg?QdAD6Jo3$$3vj7_nJ140dU-G^m-`bYA3QdAc~qBp zmj+WjvLf;rp&o0I9bz&(R&_c5MksvqPoLe*g!cR9cPZW*Wcq650Z+_;>D(VlGbo^ed9D41x8SHBltJEpqNEYRpVl=(tQ~Z*~s)0}lA)+MF2> z#&!=jm1smt))zu`Z>vrH4}S7^x4N>6w>&X=$=?Ydy;GlAvo4A-+{L@I@$1?6&Suc* zJ9@N@9i8`rDO!)D=9nCmZ*+B(KLcEPb*j8V{K2Y)w3f)#z9 zUnY!~0!lSTU51O@I3ENz7{f@*3jGVxjC3AyB3871Xe=-(MxdN0OtgrNa3dD&mcxuP z+dd`;A!gpGLIqYY=12PgE`)&;+m>UDhQLk`W4UzSXuQ5#5fUC1gj|4;$+_d3;tWJ8 zq=2#PFNo7wN(OglqAqlx=r7jdG498nEO6f4r6Y_z1+}C!k+O>M$$8!82{jcX7SX;+ zB==5)GaZUeAPgm;;E@#nl65VLk6_A2jq`A2j5BLw+#>+I(qJsrLa@F--aFRt2E`0D z7u67LM56eKvY8V+@y>OIt@=sy3n`z>VpmUrH8SbiX5A!))t}CR*?Gz^ik})$Nk!* z1o)mwwW1~Nz?L-Ws-zlfCs9>Kcort@bTf>ML29A;{7g*2RX0nsH=iub-zpr-VQT15 zM8&KMfi;R5NzKGE%VLmR%F?JXE+!1=Kb@I!o{;Yi-)g@tLyLJGOAl>F#3oalaHdli zsa1)LsStD5K;np{a_V*lS2vEQk^zNWH6z3Q@7;2b%kVE33g8EMC>2FL_RgQ zAUDLS%b*MjX&W{eCRp3**|l6dA_7Hm?kgJ}AfF@JelGcQYC$Vbe9 z$p{T$JcgB$|B}=jnarD*%zM8)VJn_Yp^xl49d=?s2-&(l%(y)4_$2H&gLLST=&N!7 zne{Zx}M~=kf#rYLXig z${3+7YYTRqj5?`&*QcY2fkKDZEJK3Kk#Mw;DInl75i_{5E%3+{H&W_#;u3767=JNI zeLNe;WYpY{ny1sCoZQl^;1$#|nEvZ|a@VGc-soJbfhO?25l*hAa0X5El|5+eFZl5( z*qGK))l=@^1vl8o@{Vf+B-r7!zZdd7;DYMTaIqK2aU~qjT~mF!8ojUZNj$j6+Cjnl zFK)VdmpFEdo>c8{Y;{h8)UM7^Q|yh*IOlVMRBlfG$~m)o zq&E>$3WgQ?ejO7*_GG3Gx%58N%@QcCgjD3UBUl>g^Tz)MZ&clM0p_Zlo< zC43dny{LEyx;e_+@pl@+D z=||;~8d@+9gz^;K>Ffwi|1pLJLksE^OY*IA_q5N&Hyil@7Os|^Tijwas=sf#)}k}@ zw8_;sF;>Gp=xn;NxH%EHIU%??;NOu^&f8ni8rio7%-ci9oiLIJIb63%sy@Vx2Jjsz zC}aQahG6ZVifd!o?XBJRp=)}iSDqF24rrL)Pmgz!_FBb*hJKm?D+646Yjyx0i=N@e z@=K+3VH4M{Rv{>2?4Ki&xD}e_zbneuH z>nHv{l#ckHdLqaDsHvMY!0GqFQ-0#-Bo+#pXkc=(`)Er!%Ms=xDU%%2mva9>PV_n3 zz%B2T=yMY!BfmI#!F$6h6VE(6p-r{?MLU|oy5fwj;FKNv`K?!VSIxnnuJbWCysxY~yZ_WaRh3n~WIuahByMx)aWd5EBKB$aur}0rdrbG_hY} zoN-#kFrRXdsDCv!*w@wSqvSoi?9d~6&2Hc%-ak$`N_|=!1MNnaPjd|r%m`P>=;|bu ze)FZDw+j_60evpRiC)Bd$Eq7T<~|tDyx_HhrO-5f9pWM2A9_~ec#{N`-DL~y-f~h! z!w27!LzO~l3UpGa8~o3tuWYVYCHzFp4L5dj`#>3-m}4KM#mFvn&C-dc6A)i5sq=O( zUnMDuJt=79Ao1w(DBt;qY*cz?W=3X)8$k^Hlw013)QFbww-PGrb?e!m{QOk>_VFr{ z``zj*?k_oZI3DP;OtXq(iUkyLc}uLz1+8xWItf>Wl_i%U;lpbC8$~`cys+ZgrX(LS z;W)TeCgGq1*=9l7rwab_yv{XgejYrS{(k=u^&h`ORJlKVS&;{gTlURX2e&|dkX(qo z#E^q`sBitE$z8;>P6Eh>gzv_Uhj8hKUg(vC?*%J&nAL6qNM*eK5En$VzbfJ^_fO(Z z_QXaJoFWe;+ehxuxAwg799+BMpLutF8pQDwjNb8kE!<&upT7ux%-q4efYk}RcOwKi zcfktjVDTMir$IxH^ua8VbkCZGk0E92^KhSW;67T=JqzzQYJK}wr)2{K5rWxcP ziL_BF$9}@6nJ0#=4hfG@{?w-!k{QWhC}T*21%OHpih4 zL5TGckQa%{wd9;rOnE#n&i#j#ZPXU9Zu1X*15no}UWn*VtTGvDFsB|?*YF+xC4Gb0 zp&4wLL!B!1=OkxbHTgm?p1xgUGfM4JfHfa{AO6>HZ#SfkJd<`6`}&p> zVx*quD1J*zKm7C2dqNK}QCYfOy zym9OpB#}#Y2F-5DYsG}*tys4!Tawv%<>j>7Ab^V4bu4$m;$>+(jd4RKdSE{NM^@QR zmdS$Td3lnZat@=VFL+1QeuKi0?_h{3?6kZV!^U zBtA_#O9)~@Dn)53LT#C+x?6FSAmpq)<6SKBd_X~@TW+d8>|pB$Cy(!PTENT=R2h#a zb-iqQSuPJ!;xM)eI^Mul1@j}qe?0TD@82x>4Gatt{J(kT`~Si-;_fc4jxPV>DH#(7 zb335R|M;p#!(NL(64M_VybF#FsiL?95`jwtcA&7thCsp^p2>|&M3q*xX3_!{A#2;s zs92Er@Ad3F#Zr;9@LT`x(VdqikFw#4)a>2lOiqSx-pP*T_0;Fx>TKV)^pFv!MGqUf zL64ry!EMXZM!oHYl;aJ0PrpS5R~D^5M5`VHuMpFfnOmS=xDMHHOZMRmWn0%a%xQBo z34DP(y;Xja&8xa|a;N6)nElgpXIHom4nZa|_TN-VPv{2OyRE~voaApnEtCf`L-Sz> zh*yKAJE75VLkXr4aJpf7HO7UIMG~s~fq2Yy8}E?7TzR@Vr{R;C=mCqPo$UT;8&NEL z`d-WQD4TXevIQ=4_@sgb+}`)R(^7H+2LHjM(6fLH`SQZv!AHSsJAU1qo6VV>`5@ER zQfuc`jojDF3dVVbO>#FrNE&5kcg;Y`+I$vdIIXj>$DiT*J{S6lW2PcsJ1eNW9+y7( z(Bl7Wi^;?63lNS$emQo9YN518JWqL)#Um(LC045!=E;K74{*o#POxS+ngBZAIFn^~ z1O%~}0uHBd^Df?!IexVdVU}yDAts$}@r<9{{qFHvFpsFdb4b5#5d8)3rrTo#tly)G znp@;&(071i5^P&_GPssj4>FgVXyf*kmJRR}Cq0SjzkK0nz4A=<^5D_%=gip06ATTR zG~|X8-`wnbi)Yk-%gd{;>xe4BppU}5u*T`VM3}IXFJkZS%RA8oqRpMTg_dz#@D@(i za_>v5$qonS$Ft?+pB!PFL$!HFojqJap7B&ls5kpfni(T3#fBZbj518`^853b6P1fX za*I1smW8|{M&duOaE+3i&vQ_eE!a9FkUnUmRtOe@)#wT$x3d$Tu|(+%sRq@`MZR$i zNDj!MyY9Q{SR_2fqxw>OJNqK|(_6Ne<6|4$U+8UBMCdVNHo8yiFA|DRWkqK!Mzi2c z6WlebG|A|OUj}L{%$7fJ4RU1~a-;&2?kSP20|MjJcJ-FF&rnKQ+J?YGmQ3bq7qE(*+={-F~3M3?z<^WJ2mSj#FPU*nQ#bW z)hP%E;_?f@gUcT)I*|pn;@*wLS_Tr&i=c`o7OFhp`09e|2p#5jEE2q-m8@cdfn)ED zv_y`FITjuK2^EZ_S^uCY2+ro$>Tox$NSOYGWC`y*$tw^YENX#AFb8)B`F9XfW}*~N z5z}N2BVI$(nX3%-kj^t&jH8pQNzcoT;YWRqTZm~$2S}$WTl_(tr1YY~JaK)SFb*h` z9$RfXAf;9;vxF?H{txhWuj1j##Bx)*n1Jr z&tC}slcq3DU`<6J!NA1f{#%-2{a>UhMRz+pB~u%q+5crw#wHlpVzOa|?YfQr#T`8h zugPP=W@_(Z`YlyQAB0IipenERTZlh)(XL50%N+AxiebcFsPHcms$7Ltl*>?PbeEln z-`~4mpZ-p2fyFoUvo_ZrSgwRm$OhED{_#@1A3T?N(+zJx)PreRsiRiY2}8ymd^7sw zqn$=ETI(npuKzQ7A+2_&$-4DEnt;54cy=R;cvUu0ej8&_BOHZT8(Q(g%L}aB7VV!q zM~Old)CYh_&144NImYW<)^o^4O;HfEqiQjZ@jRsd<@ux)=#4AG8ejyp2)7Fa?#n_j zDw%uJZxhg1+~>HL2}3zVSQI~hbYo{qx29Xk-Xse8Dl83y*zfam0mZ&V{A}S&q0Av_ z4Y|<-(k*Z{)Ck8K>U4LmW_GBeI^qqDX(KXiWuecB6K;04S`&UHRNQm{LG9R9&j~^M z)Z0%LadLbgF}8zOO4^@mUJmmaMUta_l&=tf?wPizuSP-%7}|H{7G64r3iJB$AIV+I zDk2AjK1^GR5{2z>*Cjn?+QqvNTJhIadN!5uw)u)Z8+OXI{J%igFtD%ep;QH5r&RNQ zJ*ECP?pJoPwl{I{mIr$O-$Fvwz!6;(QxKy0S0^)O>w&bbo@A)KyWj1hsF^7~AfmWt z_|~eCk%FjmYGK`g>7QIuVI;~YSU~dK4EClJV9i|Uy2o;+!_^|-^X(Jj7lj=gZvlS$ zA!`&&l(cjp|K;-!PsjS%BFYGUf!Z57w)>?cq`aek+zIiUq7&#`!uGBnvgbpA#^fHS zgFq?P>S?kWGf+RTrKL7%<7_;hb~G7H51M6p^XxHS1G>vsP_PN1s{ADzl=6)WgZ|R* z9%8}G<^El$_pg$xi<)_mo;;W;%ualiN*(FQIE!{*E`@=bxqqpvYN_Ko&crr%1Inyo zdf?}%0gKG(j7QP>=cc(BW7+rVCGSmt_sa)oMzM@hK-g$SYQV3*;AllO@pwk7?edE`%GYxt%6Oh}+IgH%;<37+OM)_{Ymfm-(lQ zNa+6bms#SSM`Hkz^nxPrjMZPR!93AcpZb`w97PY6in_bat0)&d{w+On%X`srZMX($aJG-Q_m3d;Te))1VQ&#eI>=Bez#k@u1UIY|#}Wmu$a0E8(ywsv znXXyc1Mz~ZJqR9QO#@(9H43x|CuacinFh=6<5(gVDn>Q^(2>-Rlv|z4KC?4~G}sYp z7D#cSqJ5>twyea}@f6sbK_Gb+qI!sCPFmjW59ak^}?vRb3Dsq!*!8x`+67(JigB}BsxbF{yoS(c0Dj>cB8hSKk zPPb-?ztdQ}m>6iI+-Tp|r0iWeW>7sajc}qO)t>{$s1rhXUl z$h)TlanbxFZS$e}$oD6l7;ym}9r;Ba8I&Pf%0YxPKUYK;dl|9qDrHI^;W(i-4hsOH zpfHX_+9SkZv|3a-sf0$@f-#4fW{>93$b5!DKtI#iu8ge)ohno`Kpt>r2&o=+*q>^w zZpw~dg**ZQ4D=!m6}0nLI5O4Q!MEPp18+-rtwueI;D)ZMpJGIZYAK=8u$_>@pIA+1 zsbDfNr^uACLQjQnHf<6ecTd#?*;TPY6D<>U>jdYngGaE&W!KluZ{yuVNvS|-$-Zm1w!SLhMP|Ba(O6N&DftP8jy7y|XjBMB}VxWR<@AvjJ+ z5a5MLJQ)_eyB>0Pf0ah9klpmA`=Rz>Av~B1;=q>gGri zE<+-J=p{>uO^&5hir=b@Wo=EiXlw-@YPzAzh6QJyI3+323)43nRJMl_VVkDf59rq< z+L6X(ptqg4P$@X-;F21yuR+!R#$%?I05uoiG|l!WxcfXq3FJh$&y zzQqm7QrV1=TOE;zYA_z4xvfAE3hU#*-CE9fdx4ojDP>DHnxks&xl@XW{$hi_?YX|- z*jN<;nrp_8=$*u9(9v202DK=Qds90hV2plN3(Wj<1W7MiH8VzGgeLfh3t+_!F>EH7 zN6gD~EMc2BUk&WhL7PFHU&mS1Q=`}2SUJW^G~^U#m<)(=HthM1$iz~WL3|$txD;dL z*Wp=LtE*p#t*B=zm=UY{D)8(Ry|DN^z>`pza2>=TRD@A~4j2pUn<_DvUn)9V&cFn( z3lHg4BRE`&?9ystz$KXvpJ$S?V#tNuTKq+#HDTpLf)-_ja|%@`rFKshKNVlxu!-xB z2~t4qk|=LV7TG|6&e$vpIqAr~jeJ27E_%aXVx(Q-5v_ZYGP zQHbAkYvPydsnFGcAmoM^5x@cGN`sG0BN;G7A$5M;#k7yzGK*cB)2BJU#+ZTW55hpv z0-e}Wp>$G>#i%mNsGNBcLSZt#Aoh?}M^LLn>n;=qau2U+A5l-^-~`Z%`?x@}4%)x4E41E3279u)C7 z$S5YcN!4vtT?YtH`}$q-aJjKQw*H=~Qy^n|qzXl5*;K|*%gh|gEu<{&@PfIe*dVFrXGqR(v(2?L87Ly60_xzLNO7cL?2v)LQ_ZBm z>g+e`2Cxt&fQw6gb#K^$@fm5ih6mh@9tiC(7gHaS?UBR_N(c~`RMk<((#8#H1&exO{jJQ~8r0&YtJ}~2H&~x@b z070f9F**SoH`f&*(+dI}q1zw{R9wTN_foCLpbH*qZOBaVK_%@I%M1 zDGm)yo|8@#6)Pw%zU`+r!hrs)3?D=g1q)IhdwRFCEl~b^qL_2=Qb_()%fC*1?&J6y zzgz#LrmS?nR+67uQSFJfMof~zKFA)AFb;Cb4@a>n89PDY3HH4s{>m~waXyfVidCS| zR?Jo1KU+{VB~OCe2A#R9ZoVP6XlP}lwQ6$9G|+0wkO`0jrOSo7p@Si$pjG7)IXvY* zfLq}hBXy+973_R1g&?}Vg}-j6b7R$Ka-}0Y^otHE@O}172s)}*Ddr!Tn zr6ak+;aDh#frYdCGx~%@sZmqgk4vpf9>g$rF0uWp^UF5g$P}(g`AYi9m1O3ss=69I zwO!=}~UrEYY8s!8zg(Vi$3SD8r4$++miY;gb%VhL! zRRL)Ww>F|qkU^yw05j!CN=UdicMXi()M{8XCeJjjHlC0c=%%d)K6SD)gopfu=(Mz; zIcQI@N^#`7k?-id;rY1i8Y&P~k;z0*hW*FY^>8Af@j>NibH@2KdIyM-%G@x;bBdXP z4*8AUFt!hjIu}qQ->U7%7h!=}Ys*U!yh5TqzCkd;*)v&PNB;%qdRs&va(V zg~Tel=OWe>2y*gWlGYU>XZu3Hs6sX^zcL0*gHtlX(c_j zdD}Kh*~Q6t-$hMlf1s*+I@vP9!Z#gq zDj1dJ;Bp(M9tG3xJ5@!yYSHk&Z%iYOV7GruBX2B@FJe@s_nQy{I#0A?aJiLC;AI+n zRx)sj)ff71lr!GZwM?iU{gtvtp6}BraVBHQ+&Nr+l?n?fDdtJUhiaO1RV9&_oS1Ik znkMD&LM*@&+zyZ zYKjpeWQO+>`<=jh5+R9BSL_|zMcPY)=ud0f)X9i+O8{^fQy_^;337QY?n0zQyP=)9 z_~=Vud80ejcy?M!bu~>^(PrVAN_gXV)lkaxKuI}rOY6cDrgTRjyGxZz5XysMGMpG@ z&ZS!61f8O8lA-r(vjvh});$LPnzi|oX;eWr*>COEdy3y{HcyPlWlM~F6+$-LY^X|8 z?ECK%%tMUP73p)s>ecusQaGh9y)NI}oygeq8Q{XA;V|SQ9~D6i5L|&ylos@9g9OQ5 zP}C#U5*^)*Tk5r{wWZxxa9Rd#%tyj<3AV%MR_`ktzxfF1O$S9#N>v$M=~fwdUXm}8 z2>`898Hzo-N0f+#t_B^$Wm}buT*(#%I)t{QO#y_O7!bzMb9SR-Ptl_Z#jVM0()g>gaYPCnWZi7^IA>0Qc-29+iSb+*KFjGq}C3udP5>Xo~K(+0j%%=Bspw#rC7v2kK$C+jyhAApi6MOOwF z#`sziD?W5y5d!ZEj3b*rssFH+{%I9b{gkrzv(xEz(WVPUJXY)AwJkd!bZ4VSGfRP# zjiIiqnm4}5V=z*_`KPe9nL&C!ktRmZ$JgfR!IAkc_qtK`q4zohZ>2yGQ$Xm1C{Z|R zPr9;132mwreIY`Luc3^GETNHDKk+pBXu(&_-Cn6ekgISy%vmm_I&I+~^klx!G(w`W zIWT-lqQzm73F<`MHv^9U6z^{{-4APJ#Uotz!)aDM>8$g#i+}8lr^eVUZbCSj$-LP4 zEXQe42 zs2R>R%ec2z0D7tAb1fa=puSxxTi@4*7EqX~*3a`T$wayzQc<~6EgvHtyW8IS>U30a z!+L({Hg8|RwqEbz!ty}tIY)Rj|4>9%LApTI)m2zsPLU}BwcLSKl9ux3*HUE{u+IT`4@Kc2d(u#szEF~xzl+@B-+rd!?qWMcScSR_r5|B+^K0uY? zW6Q76`z$AA7d2jd=`O^U@`3zBm(gacyY&JsI z4F`l&f%y_(`R3S-wWG95Cl}$i2j}wQ(xTrb-y>pj zS%?qhkn$}1`s+EWslD5Y_t#vInqZnK^?T)sNl-vsKyHEI&*sCgEPu=*rfHQ1gGb2j z@A8~U^>7qiVOVG=SNP2C7T(ERR;7h%jb_3EH}{D7XrUPk%AZ|6~N6vZx&;@LcoLBFHS9uc67lo&zKvzrCG;+$JKzx?iZ&fExP zffgERJfZDd&$iUPOcL>qM#p9|ZODnauh^__#YI$)AAlNJ-dNh(UE6P@v#1=M6p`C; zz{0wu2;J-4Xc*J`e2~ur*|xIS5%!HvzSlHZ*H3#p9E9l`5;XAp!pQc}~l^SLD*Sr`U z%RX$B6Xhv3!$TC}Bi7d;zXJ*!i|E?eEwuNj7ftO(Q+~256Qm?FMD+cm+~wl1uRxboDSNUWK6F- z_i)=&Vm9>U{s(Hpn!=J*!8uad&v+RTLFK`K161um1n=pYA+Yt|5Zko#7V`boQvBoC zcbO@OW-*Ujv62P{>Im%JFdG5e_ql+g&&G2?H=iLFUY)W>WVqF=}@fz9)G^& z#OIXxD=`de9TLD4%&Tx_>Wh*UUmwuxd|T75IIK=Y2^GmeRVZg`ye(P~E1pU;MG=OU z@scx*El@T!bC4OpN0g-22m|2*p&J+PLte$dw~YUU$OY!H7t=x|J&S6K?)&8&Co!FM z3-g^Zf=NdBGTB9t+rIC`;WQ_q0%_({LM^!TbPjZ^_$iirstbH z3VtCo%$anbLJ{c$ydcH3 zJcz|~kId@s;1IR7Pen3e;e*dyQY~cNwP@z@LxP?2+SHH*xG8HH#Ifm`JU)N#mMB@PcjUBFjoMpVf09>GuUmg=%`CLi^&n(YsD{ViiYM zU?rcYRHS_2z|MX}AaaZh4JWS|<=)DTjAjW?QZ4(Cm`!#Z-4F%AAQa;jGI|)}wmEpqnzvV2ADQWdYX6<8tq6 zGWdVHSqc3;B@&*uw&*&_%Z?DtXG@df8*om_i%Mk`4s}e54rHI8C?Ev*m!6a_~cN<0R3^6uM8Sqh+Z|{7ak?z7Lep7#zd!XU*>_E(<2ge{9}k z9}G=1v|zBPfg5wRyC;+wFTBzqB4S9uf-4^{?uQLmO0!dUYiP#r+s(6W-j5GrXxkdO z#vheQu{-`|KU3qy$Vu672e!&5(M6WFb=r`Z%!Hp+^w}1wd+p$eFr^Cpe!{l*cK65M z2vf{@4Hw??O|0b@duPEvK-QxWC@ctx! z(sP^?>F5WMdk;H^W*)V8puSNt=wxjMFWOFQgI5ZTg$i1~My}pd4M{n+n(_Q<$Xwfj|O~eN&nVQ&uY-89qoXCF9y?i%}-B>BMVsODZ_C zikh?h#Zt#~HwsiU?9d@APAlQ~APCYk3rkIL@s5dzKs)hm5fZ9lfg8PyB?9qIJZo2z zdACFo?2OdRC~&lVZh(RF>2)?MCL&f#QVgunSPfZ0s0iA2@Sa>pG4{mO5|M`k&su={ zb0cy2`c_rvSZa^;5EcaBy1Cp#Wk@S?^OMeaCACPC;3$3Y|K{c^(e`1_@CR-Pqt-E? zL2K?2&|>?%l9zb+x>Hob67OBZlS!iau@b=|1d`Oyd>=X~kG3{8XJS#6^x_1Y!xaEN zobp(4D=s&jcPbQbxlJtwbQ-=EIMcz7GW&{Jv5FR1q0=hBh~k(so}F4}@LLG+a-1=1 z4fO#^YnZN>8yJ}i*s^DMy0VJ;9M5O0TvVza&jx6KU5RuhN&{ushTPd(VKE{kvs%U* zBWHn1dR;elJ~bAw{s{ZEsk1U$N>sJbEcHIR;PHkVlUz;j)x=IHK1)*~Vhy&*+2U>5 zCz+MkSj=$3QfiAZrjshot56e@^LtUQ#U&Zxs~Dbl5T|UK-nnLB=4lDtC}eaG(;WXA zzV~6muMu%^gLtIX>6A-n9Zz+--QWA&-2be!`^x$1#s};G=*fj44{Pd`QON^p3~lqX zf#&yV9$i!gH6qap{Cq&3=_dtu`xLC4hVQsclHWy$l2u_wtw!IPmp7bwYf5;}rrlJf z6tcn&IEag`rbeXxP^>^7W(D`(s%Ac=6SyOAZulY`_#-`I80xYj5HDq7Olr8C=^b%P za6=9jV8CvJ-MByLJ%Qy>YC96xAo8!6ct1kUG zr8+J_ItG3{&79j@C|n6O0P41PALdsfPj4fiz`os)&ajOyRqiBEZzEB%RMxNfnf~kW zOENUflD0F4JcAZq>Md>6vKz2|H@`&M5Grjo>fuI!wvOK;dE`^$2k_@`&Y7uNu^@(7 zpOCLfSR_^ml40{U(*U0EByr}d2T`u!yi@^rD z!$1@|Tww`WF;kC{l-eQEdT>!e;EJZfhM(rqVNJ)$JY!nHc0Dg&&I5-;C9 z?^)AqMe@Zp{jbd4TO4ID3uQA;9qf2u(A4+^^8KX6Uy0|JFe#ycK0k+!6;aG?>m=M% z%?7&B7-akE5S+M# zWd?hMITOxpj)a+$dN)wKy>6 zxh9BVWB&(UK%u`8V?CGQ4%ZIK|F&r$|2q|1C%tZXMvKc115LF1VL?DAFe(=>b{YL* z(=*mnK%*arNJE=dYz9lHVy0(2S*<%gMKTJs0>>=(RA_^2F`Z%ZO!Q2m+LP(L5i*eJ znL_s>Z1WsJS6=)xNqlH2Ni;rPN&=TJY9FU_GJ4rD2Fx7eF^i2&N_=K%BRE!URD?ll_B);M9Y3y^o4z4NnJx5|7XYL!QlI zIm5Fh!8k;xF5R3UyP1*b1}XR?&&kxyDcUxRm9$eW<`S2YhFc7eJVPf*-*uSS%vqkF z5&&nLunJZag`AsUO&=kQHY*V9a1fhdYcXZ5wUOKwBDaKI0$aq3x{3Z~wFjf2NK>pH zU0LMJa7SAW>gG^OSVSgR!TQLLse9(O0q=GieQ}qk(cu%%c4C@q667TISY6O}9o_j$ zdGGY07r}nI&%)ZNW zH+6as>0MFL@Z2ZPSSEIjUAx7KyF3q2x9Ac0rG&Nd;L`O&Dckx|Eb5+4WZBk)bTvJD zl_fsU9?w3KAd9;}@qR+_Beao5yTQ(hn^fRltIG-VJnDIjM)5eEe?_rd9SH}w_IzVc z!fNq6>3NE(Kb;V)HY9FK`CUWttmipu=6M+nBJbKt_aYNlZFyewyhJnhGSYUFQ!%5& z!)f`Y=M_TYt908%tR_%H@~v##D%112=M5iQ;d#?@>Q|DTOwUyw+P3$gsjXs3!}D7@ z@JP(0A{43H^j7cIKBhQ%V4%Go*(|!qw{>jHW%B`33RIHg{>P*CX=?b!$U~Xqv&j^d*lWCc4>6+=u z_YB1;)OFLd!gDmed3(GY!irq!p_H}D>b7;&#Y}f|GA(TqP0!~ZieAwBnV#?E+W=GN z@-0Uia4YQl$W!iJO}UZ0kBBc!mh=UhnyjznVS%(-$=JZu3|$|BbV$dvgIf}voBB{a z&!^|>!>rq29hW#sMIcudT&Bh^Zhq;-{*L?AW@?^30-aTTq=<2&weKE(oxpMXDqX@9 zYzbHwuug4A-rPW|(8BN|x60n8bBpxX$BK2WvT_QUDO*!oTeYmZ#?;3NOHePQ9Tee} zC4+8~*RfA5=sm0-D+JU#wHm0vdma@Yk4?sZ*J%-M9dm(D$#z4sjo!4K|fkw zMS(>fYo(WK>c@y!L;YBsVA?jyqKmES6YBO*_ZD=?#U;y?gzG>nLWO8vN9*^8>LKgO8j;-`>H5;ULLU-3$QVM}ITB|_#J*3FINamR zr@$>|)PUU479GT8zvzpIb)>~*3rhV{CLZoDSyJh*7spdVjpDkwB5X{azdLf`G~pGu zQMgu9FdhiC#!vvB>Y4YUG~@WZ`Dn{QlsBPB(a$gd^+8@k#zk~uowW&T{uFtlcERHE z(gv~jU0EaVeKYlQr1U&j&`OfAt(*MkIs~Y4h_(WPT6^hX5+Nb%T!gxn?$CF+lh1El&B z2tzoy*|OIMCGTcS(JJ~e`qL!Ko)Md+QA@m-uofB#70;W{B;Q^%AqdU%_Ob~r^6i%> zSt%Z#!YfBO#CK~e8V;=`(UuO{#c<%|^^~=5x|mhh-|Y5sG`k>Oh^hbDr~gWS3sq`j zotbjPLM&3;+o?a5Br4IuNgznUpFM*|*J&3lmiH3r?@~|ip`U}+pgi-NlcJ}^Ci?Q^ zslZ*A$FFD7=kBOxEK0JC)CqHj}&ssL^q| zj_bW*X?F-3`NmM6GRGJug2Bc5LuFWA1!fw<>F%;QhTnN{mbgaJ7~xD3*B~0BeA++h zUa!8X^QjwS6WFpG$)l^QbYom%1)q>#8K$75COW>Z8{<*pPBM%MbX^1~_u6LDn1qUt zZ8IiIg}Y#@bS=BNMJTOR9Oo3{2%k}8Om#?BDqu-gV_L%7O}*MiH)fd1XUaba&&8QV z#63C2Y*YDOIY>q3n#!M)59n>asq9i{Rnk~sD(@)t`w9kH_x(e$l2|O%5*9%_ND9O~ znFPMdG%AdRL_~||US(31mWh!3AvG((XteK%9A4EeInNUA3eK?z{nujH)jDy@fsBY4 z?678DCdSe5D(JmJ?QhvCne`-Pj_7xL%_b0py>quTrB5q(v%D044zGKzRv`j9) zOkuH=|557j~?3BURq-)q3TWkAkq=q$6ifUn5w|{!go{*4e-!x7#P9|_pcL0!# zye9w#X8<5G5rVV2>&Dp%b#o?lbB^oDLvc#)&@TEZ^3#qB_I7^nP75rS-JM6>U1VJ# zXFDkcc&UOU=ImMA?^JWldBxb-7CxlWF^3WL!9atp;F%MkTXn8u^xYINf%8OK(Wai(~T#Yw5@E*(6JQpKgD)zkB)@r=0V+jtS} zjf7N4@2tQ*BbB;jgTFA1m&NHJ;}tuuzq@)^_O!py_$U5k=Gn0&qz2k)aO>qSkh^8wWn-24|CA&yjy$-T0(zuCy|t|C_XgsO0y(%Z-9HNAc5K0^0XEs1um z;{9oK1H@W|wKpR63&ajjj8<;kFIh|df!DrvWw}S?&4m+u>`?C@GzVrkwpzbHt3;aR zPc?LLSE}jF^A7PDGrjpFs$B!*+3nt8KF@UTq3CPF{XQ5-C+c$34(TS#j_~p4y(3kM zGV;O4%4(GYkEp`pE-DoG*c|UTzD5)qm|CPUUX5PA?ky6_n_J>#=*dy+M8&uY(>u{S z$>*Kmoy^}8RXtQ-S-a^yLZ(mkl>S~W#>;4nGO96ya%Os-vT~@fNScEhiQ}y78lrD2(PulJShY`m zJkYqII?!%q4oaISH!GgQ;80|ndE$MzcRtV$%(5H+zeqXEDm4N|+NDNilp1Z78Utg+vjCqgqtrMk z%t+0qUnLdK3F4{HZ`X<^vU*18f%Nmr;&}v270)AKns`o!87@7dOmJyqmgr$1{W2=; z%+T+r+GCrWR+`f<=!)lj>sbN|GTP+y>$)zf$%vfbre*& zjHw!GY-npUa+knT7aZ3?JwAufrQ@R1a+moTLJ_3mxzc*Bg4N=AjP-r2^*qjcuCboS zThD;?Tnmlj*z*FwzBXch~U4Cd!S<%!RcLq ze?21qVs9z2rz{JbU^9TXOkjz@2K=|hZgB-DqSWBRPB;l$JLNgZD#Z6~yWtf2q?T20 zIsL`4i!QRU8Gy_2?-h^*S3(Y4?dWcBMt1;F_z7_8P8osCn3(c%;T|}nP~8n@(Vw#m z*={(O-p;2#7Zzq;yc;g1#LMZ=m4yS;k9Nb=h01QYh7zu$Qa8|_9rSrKz1>>4A8uc{ z2X^j;JM;K+&}To~y)ygWJ+SMs35l=$^i?>1H~hS?XdgVm;Bk0rHzKiUH#}1~VK;0n z%;US^xxzecH@r}o>)8!273S)@;TMIu#%_3}FxR^qUMtMaqTcfOKKK=b-SE}}G*W@0 z5uhA|Rxou?ba+sQhjiGj!yX;>G4UTjAA!Mhu_V9^h@Um!MS|#y#E^r8Fc^to7!trp zocaPJfC;c38Fv#h=2n;sry$#$isXM967^X~q!%EG?Z8?$VVAc+JKPERg z!Xc8i%iLC%SsIq@b0gm@#-p@=sU z9;$fz4MNDp8!??G-bhS%#2X0;UA(=GZ-#jLExvih+wbtrC*Fv0v%D2HmJ3gScctMn5-;#7ShlMhI;rq5@|evleZ_G0LN4rsJa|~3VvuacM#V^`BEZZ66anJ}M!>u)p3Wb?7kPJq)f7|Ap0KQImPsUWkn0XZytFB`m~Fu#)xy<1df zClc48z3?^R5TD;*nirqn;xikc2k_a5&+n|~_tx_uJ{OA-$S1~G_uiqS>Y~98Q>Yb1BO!4#F`1uf_K8B+*yR}qSvY7?{u7M@iJ>Kn~yJ8 zy;Ru&y0R1c(7WE0!^%$Kd)OjTs%kG=DqfcDWvj%?apLb<@wXZOvQD;Me6)$b8^zxa z@pr5Eds5AW9Ck`4J7YU|WdrzqmiV4b-{)*csY-K}&zm~gg?rg0kF&|0?2285qO|zl z*2%7>YS)NrOB@-+d_TKxWe&Sx54*8g%hU4sUUu6GBJVt{lii6guMANCzK`9@q1cn> zc^s5H9NaGPwuk*J&$BCs?Vcc-oo+$nPX|UY3){zFFMDj4qwl@!Da5TU`IkWcxA4w@ z1CXb)$=`s%G{ZOueL&UeSD)FTB<&P-5V^um5ig7zhNfvA{HGm&T%Bzj)9+hYKC!Q0 zh$qov0eA{k$kWKk&%p=qJba2G=__~@zK7SC0k5+G@D?iEw^<(i7aIZZvGK^+6XAVU zhR;Rt0b2?mvQ_XgJ03n|&F~p(h0j?GzGPeBD|RY;!_I^Q>^wNgE@2A0mZ|I}=3#du zfInjfd!G5&Z&+XUN7kSHon^CcS&pKz;fj~}l_BgfWfY^|{Ti!GV&jyVtWYUo;;b*(6Ze-(fy`2AP?&Z(%BXmOTfWG6Zt5w->;}E`fL1 zi<6{pv75qpsGlK-n&%`klLti!v^4M&Y zgYz6pepI@W7jR}H5WmEluh_88!MFF>NGTq142n=2OAGg~5Av@;uIXeSs`ns(&k0>R zH~%^qls_zf6ZnSZA3tX&cfZt<};SkXJeuu^r z)3OfYD7YX)gjkGgF+vEe6vwp)iMSF>6kB~+H4H{N8p`Tm1gnQ}Y#B^Iu{8-r)>L*Z z%wlU`9@19{Yk~?EgvCf_wQQZh#atALW5k>n;mBs#Z#Y6*v@fM&wTPh-=x^l?hMDXi z_@+87GWzL9ONpG0WvGp@ge4m{v-58NqcER_ZJ9l6fUtd%^M@Md035=^P)7*q+=fGq z;1Js(n{C9bI1aM|4r7~O4BPC`L}M**`{GppBURlYXn(drYqyNW(Kcx8Ukt86z?AL) zL&C}xP#r3C$B78l$%u|qkS%@!L)d9BoShD%*clE28=YyivM<>e794FB93xUtbUkQD z8EO}lfk0$CfH)h0I2VC94^eX=qUIvVXBUH?UFra0gbNU1_HT>HGL-$sG-c1O>O$Fn zm8$F$p2a}R!=ay^v<6DX71=0#_p<}S-p?=E!w#nRbFJvdFH73}^u=z4R6zphhq6gY zF)zMWST}trJiU(_d+q~ArKI61B25@HMY-Vo8A6p;7ok){-HpBra`hC{^K&f?fz2i#K+18<=WQrmZ%5qjM6SLIIr?s#%X?rfyHCJf zD0{czo}rimZVyb6xIwP;i?OI_G7U#hGA(V682#3!MF+DiI?xOAl}=?qI^rI55P@z3 zpu3ut8A6@<$?k&Ql!578b@tAVxdQ2iYXkKb@VrB^1AMSXUD`Dt**1|F{XH-#oSYXt!`MSXgrw4)!Z! zRw7#!?olRWVqu#D3$G#;Uc>%gM=bo#frY^~EQ4(}??;l= zBxQ0YSxrfh)e-64yx(iGilX(>3$i-0d$Rfv5&Bmg#z%7pAP*;_PIl?d0o`n8fChiE7Z=q@Y(OSye=_Z9JGPtGppK?($Y(=?>7l44J;Hh>rJfWBC^JkK+sQ#ooEC9S#ILuZwSg3elh2n*v zk_B<451g*_g9}jVU!@GR?fxM2Q<{|)MA-=FP}bp0a+nAqp-D8D3XMt#y&PH=x!a!c zyR8|gxAn>fvDSQ>n0vKLb-)rl)u^;u^Yk`$O6w@Eb~jJAb~8`2tV#LYIbZGR^EFS- zSFxU_iyp*eO*gFE-2F;)?c1nH`NYI|j;>u~4fNz#3&dv?xW;s!V{eG6`pIGMua&0T&@>U8~H1yOd&hNSO(b zD)ZnOWxkm4W<+=kwjyV|1I8%lqTDcW?ys}w{$hLX&$Z|NReSDVwdej-d+uM9a}Uoz zmU13>jy+RB3tMNc4b4D6vM}imS1QPueMuH<3@ro*_Bk(?cd`p5LF}+*ebo*qvgTLk zJAtdybU`(Spc0%~xp{wvsmA+)UG4~QZ5k;AMI2w-J@Jq zY+x%``^rw`nml8dMTAwN6Wwm0zp+=@VRfqK8KOaN7Y+LIe0g50LEkP*3JtRh-z*B> z+Ns=zg;(r^F-UX27^g9N?=hA2ys5bKe^8(^NY z42gR=9H*>+Cgo_@qO62%%4)b$ITr3yj)T3*8rZKK4^JrpctKeUZ!3-P7bOS>m1gEu zT9~P-CT5N)Wg6s`~S-D3r%6+I{@5MI*UVu`OtHaxHgmNE}y#ar*%6Z|SRnCVFceZjr z=6cu(FjBUH&RL=rr1k_uu{#nBg>M!^v70T18p1BL*m4XzO|m6B4i*b0^K_$TGZ;>x z2wY3-Zb#sWr(bhg1ITA{iOq%yF5{N)JtCJ|OvMFLnHG=i-bD#WMr~HYz6X{4oyrrt z(#jt}*(sXt8CnQ@PUYaE434;HvgWzq-90G=< z%L!WerpvF2t^eAT`HU1Q-@oc2V^N z^EKN@ddYIv`oj}qZdIhZPBFLXVl!zhDHJwsS)vDU`l#*o-Atc_#f~2g}8hGarqG9ayQ~~58`q!j92!d!r70;$YZcv zc><1C9v8TpDo0^sXuXZ0CL2SmYz)=*h@n3zAN)WJt;)pEUo$cENmm&9`wzp=vxuSR z5JS%+hF(Gpy^I+8C1U6m#L%mVq1O>ZzeWuG1~K&3{|JUYQ~qIzfWs{eUDC4%C?HG~ zCt3eryDZclnLt^m@~ucKPV#+TCKjnw7l{1M4Uzppb09LOpIm;Mi=qvX6+Ftjh|2d6 zm48H3zK^K<08#m8MCD%)l^-JW{uLG}pTN<|r)V2}j&{*Mk$Jyxp!E_Pt(VwnJJhEqD+evY`_e*dQxAlP*2ZC}gr}-W!s}G^E-K>SRRzYY=q0Ecl&D@Xofe?=}BF z)T`RJOE3EBG%s2mj)t(mdoP-fkXVZbtJ4Re4wR-}auB242f^$?sJS9`CAmS4De9n< zVTlcLocbnwx_(Qq^ez@xIV);lNnNASXe%!(t{gAQM z$3kn@rC%aeAV(dY5-cF8pcrv5+tFD+yR&|B?A>%W#wNB4tHl}{*@er*z!KH!MT;S61{$=bq7Cjo1ouY;k9%)SmmHyy-^k{ROdF!s+#;8z9#n3w`ep z87nafD;&R@a?~keDJ8N`oyGuPZk@1Covp$&EmuRIM$gqm_DkF0uw1?!22gXkTr_qo z^rZ)-G&$Osupb7jEZn2c%cZni_o<~C6z1~X@K)LwRBN?npSn;5vA-#Y#dkQcE=BgC z;Op}p4AEf^%Q^r)9rg|W4kj~}=ld3xS~GD1mIC#sSnq6{iF0r!&~;NUz*)Emg~i1v zEG~m7>g8zRY=@cZH84lL4(6#h!gBQ{I9k0In$%seUVQ+zs1L%a>O*iQLUfM07cN%! z!7b{3xKDi?o>iZKm(-`>HT79|PkkOfQD1=1)t7BI4`w9% zh`=%x&G)O-MZ$$Y6;4+v;#0F#imW*|jXoCJbiB(_!G|X{i8IMU?ik|~XY3hEbb5h( z2g3=Q0&`<1giU=7G50!Tt8YM_`X&rhe+9$U-yr7R#<}?|Oj6%*sK&#sQD(z%Ym|8? zu*E3tamc*%aU5lj<8~{UW3e?3q;na`p;o6xauD_Mrt4r}B2LoUh*yb{Da#tAV^bVe zygyHjZ6Ylrs(-+-y^mD!C*;cyVVwF`n5cdPN2q^;8S2MStbPh*>SwS>{f9%cEOrso zHHnxH*nw$;iJ85E{`mak=M25h4h$LEsV+$Zt0S-nAloUSzeISyLU_MMc)v$@55fc# zf`@YkM{w0K4>N5wJri+FCdxSIFCsHicC6K<%GDO!cTjiutRm@>f0w8`8hiW@|9vFr zmbeZ7?SwHjw4E?q4y&FEw}T=Ng}J6jgjqF36FSumJ7J3a9$zz|dctGH97_$uQn@lUyI3pA z(?mI)Qu6p?51^nfMFVTGx(e08EOeLTla4Hepbgsbdldx4w?xlu@O=k`I^3?StNPdA zAEN^Ql;OXF+fn1)C2px{3;fHB_1kB>2 zU=`-C!RKjww2fc`PEcE+UJ&-_E`;5dKrjkVPWvzHF$aS8sO>2Tj;0~FQ;pksn=a^s?$HIqIphY%#Z@l&5Lf#+A=OhlnXuf3k<&hzXZ=s%PTk za(v{dKgGYr9(9_Yi@NM)n3?Cvg5Vh>^641Pu{NC-JBx^tZDvFhcrqiNrO_6-a; zfS%nqP;d}cf|{gXmQLH=WFGz3C4Gw>0bYRgJr3!6Jkoa&()VPf@55m>pMrv88dUS? za5SF*Yx!(w=W}2yp9>fA1#mqth1+=<+{?>hKd*pa@I~+zuY`~JV)z$73clx6jDDWB z4`0HD^Ey_*8`u=SjMd(T?5>kgMTo1n$hh;dbx!2UY#nzd@Iuks|9u92$~ zZw=1lIqENoxAL?c^;LS=Nelit>g$5x4CIu(Sc$@cDS;Im2*=HGU$59JIFVx>->3dc zg<=D{e|w+$4npGN)3Wk>77TfLMy~imI3x>ZVZ-m|8Il39ne(^9kUZmY_1#YO57Vfd)lpW;5^Ew7J|U6c)b^1S=he-Inz zdC4+Sd#hmjrt@&WqP%_%9`1`gtixBVmBn$o<7|_7-okdWy96&^%O19#=*+Vh*e}?t z$kPwACs=Z+<1HBY9ULhc?*R1E)m;M*!VCvDVhXY|{a<~S;zb{@R}d;`NrA4DSdbyrkyyZ0cB?^a6mOO+DPy{veU4odO0C@UIKRy08#52B&b z3`g>HP|QP6&ex+Zj6#gZ;8flL=OXW1%(tMN*a~;@6X5}V53d<}z3Vl2Ij3BsM;bho`-|Jzc z_?G6`9LPeiQWBu49{pqNvuV%=(XIVrEX)VfFi-NQkpBOn!FIfeV#c@%xO@zFh8 zoXkT#N>=EzV4yDI9Igfx-F3d;%sD29J~}6RB_wViIwS$W9i`M)iqyr9d{N zT1I`i1 zCx7lz+n>9XYv@%ndtE@5AD(L9aF4w%Fx6U5^^jkurY)xO-=jbI2ZxvL$z&3)_p+@I zu&qD$(3a85wm!nP{?M7V#BxhJ^7PPyitBM`U$ap7typLPUf_ zGO*Z_r&&~Dh_nax^PH7M5AwV{d}y&}*dto8w7>H7Tw_?S(bUODO!MY?l^x*O34_q` z@*Y3Uz%23Y*?I6ch57s0wv~ChnrrOgqdWPyoiL=>Bg{cQ-ZBSSo@WoA_!xn+%n8mS z2RO5>w5fDhs~A%sEB3j-pM@2&9PsD)kj%YE1*2drQshiH7cSr?+y_5{PW(0@7hV+U zw~8lyzadsRZWYh>;7{-uOn(u6CBCK1ITNxEQVfhBcRqkQ1Wy)+?_r?Mb98>FI8E{m z^ivK(j!R)~4q8ezheuh4TMvl>gsA4L<Ip9?0X zg98U_COwciss#u5k?3P7;%$1`!GZZ;pI3d?v86@7_-(}y6r;^RQMQd1Vb`!?PN8ai zHj2C@L>Pl62$Cp6TH%(KnIV%7rzjwlliFh_6Q70Qj?y{BI+oU@n4~16GZK?SQ0^Rt z6Ojc2V5;?;gWWHJDyYTpsVExf*z{3NI_WT>cW|!eI?1ELp6mgjr{>#bgv3;>OlzKp zkPg=RLzXrG258wZ72oIJbFG$R3rGV^5W+Yu*frW1Z?rMqh!~%jv8(Hb=lQk(xd#VN z@sZk(79hhOF~qV+QJyDPAC{}5$S5Tdkq{XuNRFpP6I*1wO%lRLmkEYOcPQS7VleSwB>gcwGkK!wNp9B=M$5k`k1(VU#3$;1PH%AvuI3 zxmP^t`yC-k?iJ4u;S=}_)89Z$zhhI%Mi|(QB>4_WgiS^1eGP|Xhz(zc z*yvtrtVenRZ7`Tx9`x6SpwuXa8CpKf)DDHY+Hfe*MnJ7L5|(MB;Am|utkK3nP%DIW zS`lo}CP7%60PWgDI8!?u&eNvA71}hoR+|pDYct?pZ0ikd`yH*Aac!0@L24}tVxUDK zWrP9OLN>1vQH*mTA`XCh5V5U7mgtD=Zxa%PX?Db-mY`>*B_s&G^;Uw^@+Fo8nQlpt z<`fAsbT2FXpAsU&P$rBL!ebyzx1RGIhV69poaWo4v5v>?0h%v$0nyBcrhaQDAaycsQnhB z_NzkeSN%h@U)u4Yu4Ke=zQWRe=gHFn@aca;`)TRgZ&ml&&oY=jsL(PD=41YQ2J??l zb2G^gL^ZbqZi724wf2ZezfwHu`x&9;t`yJL;MedrrauDDiEl{~KS?o|SGuSQL>~quOggwYLG)-ZE5sD^cyCPS=h>wRbG4z2i{r z1yJoZA`dsA+G|F&*8(SL>)}*w9sEQK!IfC|5p3%je14*}3Nkzf5tmeRb78J9k4dG? zvQ*kn9Om(#Z1eb2n_NG&$@No|2geHY_|sl1x8wMl|8oLDxwU%%VduLE2<6rk0nv^E zVj~KOC<=&n6cAAq5V0R*9v|N;0TJM9Ej-V~l6198n^Qm(<`?W`s}R>els|PB{xq8`o`UOEh<{?HYMgx3|KK3hWRmYUO-Asw`= zq+s_Xq~w#)mN*4%iIdQlI0faL?DT?~V?OJJ0C zDU@ScH9p(5%WP~9g1)?sj>cl0b@tNvMjP)Nd%UELht>ak&Ij=BZ41aCW`}J7spNbW z%8aYgw%Crg#Z_oqY)9MTnjd6aL|n<)HY&or-9m5;HbXLFeX7hr3`hS51;$WIDw~iE zGpuKcz-S#T!|xd>+ipvwRJKT!v#w-@kygOXK*!t^RNsJ-<3`BVcA#;70~+N!Af(-7 z9}x1w@wVh}oKCY*yW}sR88W>LTX4k;r%pmja zz#kCtD}2iyc4JjxCqJRO=y85h4X5K*Mf>hvc_8hD&r^Q@_qaa1t@;y z49<2Qd~19TKTF1!WrUfn=qgCf4iPJMhK3dE&re&j+Iv# zsjz}#=WeFm{uE$u=;Sw1^Ec<|R&0$|ya`8FVMXXo{{iRy5A1zHHL(pM-QX_#4Rn9;Q)z8k_zN9TOa{vu)qOU|qcu-PbV(U?kQUU*=2 zZCFZ%s0e!Rgb7IRw*l8~NAa=~{My}6s@;Ry@_uwgAAkn!L0GB%3|h2@piSEi9oil^ z4ZqLU_Q9>%e)yU82s)vU!n4}r@TT?zysJG4f7YIcziZFHzcKwg?RlnZFR)zgMK(_R zB`eZiW%IN*Sf%zRYs6bFet#5Zc2akJtGc?nyShsGH+f6>oV=%e zK|WT#B%k8(Fdn~B%;m>9;Kc!NNO+RS@D?O<| z@A(m{%?=`u%1@9z*e=f@56i1z2)5Z$a=%iO_`QJJblD5IEluGQX8|AQ=wli3 z7Smay*i%RXSeFXdm$CKUhN`A8;0epyQ40yj+knSXO^GT=3CnWrU1$99!ju*Yq&Zw? z{HV-yn1L|wIlA?kf==AY}3gL@aPE3crPN*J#7FFPL`u{n<60bF@u*o?MdWDada z9;A)Q)3hmBOPiCew2(YcgJdrakvC}(`H;3GU*P#s+J^j0+e#UzhG-;OHTmAI33qrl%g@L1%~F4| zOKl8lOt-NMjpiDbv0nSXIypl7fSdM(Oxh1R;(2#GUO>-2sb#Ev)sNeo%FX`QjU-V8 zRlkfiySinp*)aeQM1TiD8XXMn@Vo?%6X=kW8A&Dy8<=dCdcXYo|2mwd={2kdOs{S= zV0sMB=OE6*5$6$z^Ers~2*i2hNsZVK)C%V}vZi1T@f z^Jv8RJj8kI$>1zau6}033+pUj+CuycpXeLsnCLS@8pys=J+D^}yNZUwM#>QA@?%#l z`%LHu0|dI=#BUSbejMF~VnQQUStQKtCF+Xk++Mt@7!Nv~02y>5LOUM1;_-Ys$=;T! z!bp2AZ=4P7xP)8?-0S6U7J}U@5uNN5Q2}9YSbpnI5!3pJOA{fUSz=;|ANfR5e;5qI z5+;^}m^QJ7-LtFh(;W8`#gyNS!E!Q+=|zx5FNRKdeg+;dq?b6vbgV6=lWi;~+rdO8 z$2-3WZP$p+2BJC>QN8MIL!#wL$fx|I4Uei>O|Qs9uk#UW=$+kEq^oQW_v`ySqGD z{@6mbx3$hUHD=CUz}g@zfAS~J+c!Y0nv41RY_VO2A32OeU<8!9_;#7I#BT?<%_HDe zyVU2npSak^Z^nQ-3p{i-WYe3mo0IYJ)q~26t-wa-VPj__Rim zZ5)>W`Ii&fYJC74_mhfjj2{43L#Wpy z)a3~EI)u6$p?>zHpiZ19i-GzL`McUcee5p?b+z+kF;Ap`I(Dusj8In~)RhQz7@@92 zsJEO9)HThOY4U$9s7o#LZd#&w7s?CEKmLjKT>&(O7Q(Kp10~jxugna!q9l|+AMx9S zd<2KQg*`VGw+k-bnJD&=SSwGC-j6|jI~sZ~KpnaRO7Q$lJWi!AIvk2Funj#sryxwT zQJ-dSRGpU86F&z3?zP4L=l_rJ-;Mb1LHu7q{C6Y%uOR+={~Y{B$j57k|B1gW{-rhJ zUs?nHrLp+Gj`$xy{NF(QUq}4kK>QD$1pck9ohY@yf2#beh5xyh7h{s)<)7@ycyhzb z5$5pHo|>=TmofH{6-=hj5(vE{-$bbHHEYIMecHoLaL#<5c;# z+Vr&3|9U-b^}f0>PbBYYWBqmMN7&PTj6Ln&v8VkAd)mKaPy5M988y}V>w;Vr3D_ZD z1dK=Hkxq{!5KD6%jbw{eNP=tFyv0`3+^9#8;^Lk|6$w62N(NsJbG5Y+^dS4?wwB|kf;8?> za?zjb8oA40p_P$lm^^Y^*+y$8<}86;{AZioycMA5 zE#qeVjjQpDElN-V?sT>oIs_PV zmgz1GxGR*F9Xwf{We}Jnk>EBkN(-|*{Bj#JOj=phKwjy#BG_;Z6)5EObz^$KV0sm*7`HC6dROw)bH|4At z7AqD!(u*RR#%S<0Qd`%pf(e#)RRtkTsUMjdpkfB#1hl}TzrcGO&Xlgg$Evu5rg~iL z9QXwWnhC$Ygko$WpMy-l0E2!B0s0j*qDP^Segh%;J#?f0g&y=r=u3Zs(e!6HkDh=@ z^jElw{sz}D0yi=j+`}|@i0QDDd0-jy!V2bx^(+mxv2=KmWx%^E8$Mt;@NX7?A6Q+Y zuzEyixg>+-k!+SvIuetTE}qnvgSDGt!r}Aj4URjABLP64sJTXKl#UtSz~Y zoks3r9mu_`6M2YrCR9EBU$H*q7(1K%%=$}SHb6>e1Eo4_s8pW~lZx5M zNF+3J2>?hyx4$$J&D%|;Lp>3?)&oDlLrO>P_C$t5C#4hA1Dza$MoMQ9=>%J}r5YY0 zPYUNG0?Wus;p`;A3bI@&7O5!KlY5meN**eTZDfw(=lf{jMRJqUmHVo~yJWIRUd`YG zGD#`HYpU(FYJRsd5TRZgfYco?;^#yU!u1UQji2HgtwC&%AEjF)!W0aO3B6yhLOFv+ z%U#8zYIE0r@BLmz%N zfCt}3#Z+&x2)<^<=9WWSlzuJ|=6f*|)LR01_Diu34RAp;s;`^prY&T!cV!^{dj{nMgS?h`y%yl{9M({Us|(@N>%ZWOk{Gphii*cUXVRt#^Q{n~OXB7lxIgkHNyi zEIF)<-~rE{;nkbMO9sA?hxb`LE*5r`=EK}~HV+?{$Keb9hAY57M<$^x)W)SF%b;go zBwT#AGU$-E7`*na=0Q0WCQl8ERGH2rIhi1DwXs3b7F(Rr9qc?G|00On2w&^ z!Bd5ZDO_!E{jt=H)EFX-v8}nhX?^ih6{pzo0O7swQi4|ZaZsY^tymdK*^`jXo`M|q zG&E+Js>|DBwLip5)9a;TwEH;P%f=d zE*pqkc6CtF@5LSz75?2>@)GEmr7VHoMPcRg#n258Gm2@3G864v<(kD+pBC~fn_*Fg za-DGZ#*2_1xmcK?+^`uI${pmgs)}gqXbiFlNxy+Rnh2u^HV8&sOiUlMU!b=V&D6>E zA|qeL_Wl~av>(#h>rkH^fCBaga^oO0XKz9gdmFm3L(q%8gU#t(7|Gs)N$h=?!ajf* z>?63AnHEzY69cPZDKHb8Q77P$*Dq3T@vP{$}YDYLLC7C@;o8}XL0z9W>Ixj3P9 zJ=ArlP==Cni*l=Jp}O+Sd_`nI(TmD$i=lbZ4&}D6a!0Wo%nitUfRQp0_kUVI-lE(k zL0Gw`j7%un19~u*;E!hubFq1lT;7&Q7v55Y%w8Id)qLh4e) zlOrmNqxZKa+@Bs+mPYR{Nw_~KtSpb-zpf0fHtD+q1tXY?m1&Lti+f}3pOwlJLYa~+ z1Ydh9tUMzgDB%HgxvjC*wl(Z$gw3Ip^UaVgU$6+RR5nIReioZWYch}wQRZ4wcRlz` zoxt1qe6eRvm=kzjh0P}Jx=Wms)~E~gU*Oy-90ADDC#>7BGdfx_uglhT{DhvLpD*Q% zW6IoSY0>Db>|ZGH{{}z%46UBeQI#Bq*6a)Dz`lfz>oq*kV+{=!`>v-)T`xV~8QPBsg1bce%V>dcWhVSgIK=T-MhlcM4n2~M@+3NJI<5qOwa&F{us~6xWDDKOLhS7K*Y7h$45S*qKL07dU^j2FzAGHniSKGn>wH*vs zJHUBrC%9Pc4Aa#vaD&uoaIx@wi*Y-pDS!k(n$b#%_PxPUv)w1y5GQ z7DYo15AX1_KyBAJOZG?2cy%_Gd^5P!Tfnb64b`l~K%mN@l*yysiL-lE9CN7m)sQ^u zRXcZ(A3@-%ENFes84|ww1SO8x%%AcxLI2=x$S)KrgxXjsgv|RQ_0LMkEwryBCS`Fx zZY3EiDRkx-3W^*<-SVX6pycseuPui9xr@Qii^{dK3waA8*@dDn2P4Uaco%8q7OEf{ z3v+pTA)Z2r7rYyXT)cd9FQCs^xib8!NVhO9F=dquuy#l zR;X)WwYmy(C+G zmE@@VNIi8wX`;SCTBrx@nX(>eFY#PL1Qx2JlvBfI-{o^LQLKTLwyg@@R*Co`s(`* ziOo-_iLAV1*W@}YUs#YcXb%?tV5RFQKj#TH_U`5hr(o|EQ_*x9&ywt5gUm-YuD%yewL432664kn}KfDM1Izs zhWnJj2IceBP#|`bD_>NQs*O=VU#A>+FN;$^8iJw8)hi$}nvAgwpVQ3bW$Fbm(gqMkgd?ZCo%Xg7V!4IMt|$`d)7=lE6t$LinVzb`7s z7DKSe%>K?(smnW*W6o^v-$k;Bg_WPmGstEUbRC4SK|*r^=Rn3S0oI?}xrUWQ$=$KvHI&`&@^k#4m;BlXdER;r+>6^DVeHZSop zxpWp&j#VMEQr?1uTQ2h!AIxX}40;s~5#3tAy@N21I-H!wKQm_ zr9+990ll?M=%>|zAzBWM&;oF-Ru9H%_2EJ-AEsyx;BKuEEY%vr6IxR!*IK|I|<4ZXef!aHMyN=Lm%5+?#I^7l3aMn z${D*A8dIIRV=SN4Da*myrbZf)My9Nh5`2jpP!Gq*8ucc~nrjVDx9j&8MiTC>fOer` z8AWRQ3TW=XG9bH7TLErMATwn1x6k@*<)X8G)hi6ypUI%U3Yt+#Mpe?BHIBr_Tv+)f zN6*3{(h=fZ^SQbsGa*0P;eWBss=^}{ySH&|FVh3Qs)-i1JET|V@w26gAQKw6LHT2UA8LDut7 z9BM4y4U*t(fmI;V97h4mr1*cM4BE7U7T$i}nrNFV3ezG!1sO7*sGx1|cCpAdJ=P4f zzX)3@ZO6~Uw7tlP$T9A+rdZh~cjG~XXji@{8K&KfS%7VzJ;JmP-+aG;_Ty(-mij2D zS=v%)WH#yk=5hnpg|9ZqV*E`9aeFAh!gSagE3{)Z&$-qhoTYFfOs4hGJeUs)@OU@; z6aIxqlkXQqv_g|A9w0xa%~Bp&F&DLeZ#?Dcll16qK7B;%bJtGVi;tf2tGHT?zb`&= z914UKO-F8nb|Fg9WR#+dP>L=_DVhR>+GWsEyBzvxSHe(jCX{Md!({CmxLCUZF4t~? znc6J4L7NS8w3}g`HWwCX^H2}m0gJUeVTHB;p4RSyP1-%MUAq@P*6xRYX^Y@9?EykH zGs@0&D7`JAt|eWI;cU5;d^$?g3h0GnsB_U^cp8f7IU@4nCTLBEi?P;c(14DB(fHim zaE-DF&-jd!Y7f9wTY`^R5brnbOg!oy0JI0;UW+L82JYr(Z2s6tEJ8Y{Jy zgyh`*tQDYzT$Oa(8XPannRI+6otQx{SilGr9Kl5;$N#rD&o|cGI%vIxC}aLPeOO?DL7Mm2ARAT zCTi>860IDr(a^NfHrXnpB?K*Ib%q8)jdSI3tF1h4wV|JEK|c|h6|bn{0VnNAT}v(Z zu>ik07Vs&l0dJECcpVGy%PqjK$fPqe=v5r>1iaHZ-uwZMcNFexIoucHVE(F}Yg7zx5seN#jwjUvX!vS}p z4R^i`_surkH`{PuV8J~B@@woDW1#OuI$O}6X+b|L7W(TGpx4$~(6>&6KGTAJ)>;$# z*_rf~3_2H~UmK5n8b_YrN95Pqz~8YJ>wFQ+fGbl1@2^6Fs{{TJ0{;#I|1JXm9s>U% z0{;;L|1kppcLe?u1pXf|Qu{ZI*FJ-bw8LZFiV}IlG8f4v)umHD?!IY=T#8EL(3IlWa&#l6Mp~m79(2-kp{w2iPS*?I zOuZot(i_2fdSkd)Zvs>FrZ7!!4m0#1T%(6zwq6AD^;U4V-UgQGZQ&XHG+3{9fK7Tw z*rFH1D|#2$rQ(Z`-cZ&|F4rJ1Mpq>Z^+?C!d4;N9S57;tsfZj)1iBZl0x{z;t z5@+{Id4jz==^`mlNY+a0dsx2pz0=`d`T!5b0n4BbeUNAIibxSQ0*O9EtywO_&-8!W zW{ZleMC%ci6)Ja7lE?~=Ar>PmEKA|C(kGau%u!HQ)GXDM6_v|MJ|0k3GPBqc@CCPL zDU(XX1n++Sasii>9tHdbl$0K2RTWt@Mo@U7J}xLMON|H$K0pg*_9)1$q>q%_V$l{1 zjdxk5msV>cb897DLh7J|q(ub89Od2w`6wR!P(02?@fZkheGqu{p^&8ygB<-FsHYEy z=K2T->7~$09|djo(a>2R110)6=&p~4v-AltSf2=E^+|AvegRyrUx?x{8LrYVhU@ex zC?c1^9r{#QpkEG4^(){heLAewXTk>kD%h->@o+Ck=GU`CLxCJiG$;&)&O$V}m)160 zG`3ly;f8YI?j?a2)(L@dK`S)<%&)YCJFKsChwFtvFj$KEoC}2N5C}s0qG2MGHXN~r zF=Jwt_M-_(+r7?G+MxucohChJY3-HkxYo{~kK@SX-gTBnE?Z}F%nz=JCT`3dvpbsm zNuLGT`fSM6Z-xf?EznS(3x)bTY@)Xz_P4_s`W=Y-d>E$RZ9B=egeJCRI;`0(}t2^7Cc{B@QjXy=cxpEjP({g!6fiJZ^5&6y$R2HglD~l&c^jA(a{~~ zEJAc1Ky)5NbRI%dPQXTIw2jVa8=ccn3LVKS z`Aq8;Z8I|sbwMmTn{9M*T@|Fy4!K)&nqN%o=uaUvPdhS67udBbuwy_Jn35i6_Bj^< zdZWo>dXf1aKG%a|H*6I52256OP9-ZeA@!Gf%6DZ`P$M=dUen@;3t5S}?xNw*s%Ag;Z z4g&Uv_@lfu;CSzX-L|1q%tw5N5TMq43AIknaWMEek5>H5UBRp=A(CVq7#+sx<-qi3 zvCrH9hQ1jY6^1;$0$S*m*iUXjCAby)$>(6C{ya?5x5H)n3#b5JgjxDdn5VxC59qs4 z>AeEW^?mTPz8{s|0oba)0Xy}Buv`Bd_K%0)fc_4AtiKEY*59}L$w}a$AL8JRK_@s% zOy*D=*9PcE^kY2BgInm|g_7H9J;&$yzP82YYg=r-wiG0u(NDOG2Y&H0A>c9&273w{ zOTk{ZzL6u`>UU)N_nVsN9w{Qs7S$$%;ai^s@^3B|a14 z2U`c|5gnifqA3XVFOUsiV(b43TmKPk{YSC&e~bOo_h_~pLzCqPM_U?TgEGKw;caSc z;YsGY&L`t6nul9!V|lSOAF*jBVd=5>Hhu!@{HtRDEYGf2UP55uTGVDDnN)pk{^P98 zeQ~vMOOWk$ox0jgrbnx<&9{!)kW1ogqhf8eQ&t=L9sS;_O&Rx_z+*{lZT_1=I;|q&=ajQ0f?8 z!g;@|giiFfR3&s-8&|@F-&I0i`b4S{`mc*CVe;=PVJLkzRSCn_$CWVU_mm)c(FQeJ zM_WE&FoD!s7C4c4QWkh$e1SKgf&wQqZ>j>F=73q?ygyzb{f-$aSjhbG<<0-& zETq4sE-yX4y!-xmc}z}SUS@oG51xYZvRJlNUc8gS(s*m`5s=+Wt8-GQwxBw;??+e5 z8$}ldke6QLmhN7GC9MR_{g|UPJ<-F3<*fcDmhKk5(@TS4R=*6? z!k|@xX)&M~n=VIP%G^%?bFYSU_mfb^{j>wn92?La=n1_zI4qx(S;{dcPc?~0YAx1( zU3Gb?i%%92uNt z3Xf~=L(y}CX3FL|;Z`Ry&PY;TALGb8KN(v4zz+>X0uc#*$7gv8KEMvk)t?8f9b#aPT%) zd1>Kx<)RAKYCz$3c~ZB$N1$tAUfVEhTP)XG3|XOooF|V%Y23n2bHT_m$iXWcSm!Y7 z>byS3RaI8CI~3hulf?xojX@5QR=~*Y^IKRi0-ITP^Hv>x?F!L6*;xcCSzqf` za0@$|JAxk>5ZVoDD9i?~5tmJHoHsMY^^l2F+=D}^f6x_`5)UZ#>YjjX21lAV7eJoL zy$IdkqDuP?<>Y&)=l(CY!XL2Z9fw}-Ul7a_Fu+{}<2?WucnDnKk>Dzi0(W{S-0fko z#G}G;kJ}+vD{Z-2X~|VDIFEe8h9YdS(nQ!WQrA+)-L2;3am)zC+1Q>eM+5WNrFh6| zqRkVDkug?7I*0Fc<_g=Pvj!A~D(J2_#p`JZ9#11j?bGe=ri-?~g}`*psb<2JzJ%j9 zQz*a^iW`GM;ReIXP~|aDg5^P1SQ$~0>n~cxf93j{uYiV;d=_j(*flp;$wtdzHr7mI z(Z3A3E74bjQC;lD%4;XUOBx#{zl*WM1P?X_ zPjjH25Ez~!@O#=owx>PhdOARTPiJWCDTbb&F3{K06^43BV1lO`T<~%X zC_BS0J41d!a7aTXE3|#>ChBDphoO4QGU!y+MPlRFcuQzsLV@Jn zSqYjUmn@Drwz8=N24Ig<&@Gg=ggMTDwy+rzbWnm>$o#8<0Th&LW4v(H=uD~S z9AKW|pn66^y60S|<0*xvo>9=+Ga5R0#z0rkd5#X%Ig`VQ;d|GD>^gQm*02sV6>BCg z{B9j~gV3w3!D~)Jrx?OXuBm9tnN&W5eH^!NMv6Wz%x+p@Il!~o2@ddg?t$Dw(Y+vd zw%?Y?Zk~2`2D`O_&D{)l^7|QVp5;d$ajB0n+ZyCM02q%lKM~xXNhs?VKm*Su(9AOh zx_hR=*`8@I!gIO9{2H0mP)$Q}4&YzkXpm+=-VETbj@R0hohu$SCp`D;iBNTWgeo?l zQx(IXT!(ngME+cbP4F5=HS&^HBOMJYL^V~wknb&3+QYImy=FZuM@hR}1tfQO z;!vwMIZE_eoR{T`rH8FHG6zHk5a>`(UI`wtJhXik6q@ASZ93xBGvfn@d;B!IF(if| zM$_n~5YMgHnC2kG^C0M%3++93IMjOwTLL?n4Xd_IJ7}**?6TG)tT+=qQI^G$d*cL6 zBtOIlu>FV0-KYWf*pUsEg`&E&DYzO`p>1zx+a^{R0sDdo8xXZmJP)AAJ%}Rr5Q^Nx zC~}WL6VFm?bB{uaXPHBdoNiNlx}`>1gHNn%$Ey(|DuT%OGm@LFGP#X3vU@_aU(K@n zRd&C;BAHNR#0bSx4rXN8)yuM&Q4I?;Iyo{iN5-P$aD6hXa5r!3wB6Z-mF&Sa{kd;w zVFm3vAQYzE2NrE$4|8Ww8Bdn*6D3RLUZKiT-b2QCdtS(8%;D@=6lTlT45;BDBvV2N zyv<8*^X!DNo|oZ9&t7|fa1Qhq9+?uh@$SMSlk3xt!Xs10 zYPA#|nF@@Be6}1=-(bb33Xe?QN@s~qH-2>J*psHwt0RMoFkxNwOqiRKzP1KCj1wf z@B=d8M`XfJ$b{p_gkO*ezabNqiUa|isG``(esU1yVU@iia+f6! zt+7!SMH=OE>*6GVJ{~6t?sfR>NGq}{&Rb8uqvAotz6dmLORRJ&@OfK9OK&?{7JLp_ zXkD`mm)mPBN$dQ=`uIApkE^q>zBYC4gmo^)I(NZ3cf~rFV4ctSeRY<|5qtWU2fE-d zbtx=#CW+)bT+NN}WWJe)^kACnn-!2&$c-^Ge<`1h0 z8sAOEhh88(2Yhl7r00Q;BZ02M<9R{8OXarp{BXH>n02Q(th`Gc)~*j$(*0q2aJ^{A z(z%haYtk5O$wi_iOXG#ojL@zD>q_yDV*2hD@=ajgo1m+AHuUt~0{y&mVTkuOl&m|j z&z%n!dhdcOy?4V6-n$$)Y zfk(hyM_+&sz^5^aFTfD3I(j7;;?R8p-_GtF_Xf8AVf+L?Iq(pEBFB9X|HQJyPvp2O z$tdS1xc8zr;N2m2<6GH`fMHo`K7J-lHGh_mn`-{Vt!&&13wWJd*}P%8m6zN&8MCnh zQEq3e1;YPd%~lpIgC>bJ%~mT(cgMH0)#&bk8DMnPb?rB=! zw*`Bz+&z)@MDB^SC%m>$c&76+zI}o3uDeIHF-At?S43&i))q5|CdAMbalslG?aI0lovKfo04 zk8r*BCz$I!ZfmP45MT#Iy6YIdWoz|$#Fr!rX<`mSnJlzd^&Yjl%K|i~-yKi}bxoU< zy&sKkQp9(bhss3}3aIQ&do4xk!`PdAHHEz$?J{vhq!=zx4FZ}WLB65b3sDNV$XxaT zih_nOeaJpaaPfXw7~}bfmv}D4bSfv{ev5#!xH*BxjBV`gQlU13eii?%V4uXTPa3+z zx^PTflb5-irYH*7r|ch=8F#*AC1u43S8xmaTmnl7>~$5RHDnrXlFuQ*yF50ey~t)> z>4sO#MYez95c4qm!lJLQwUXm548!pZ_Eja3UWlWsT?&t%h+Mek_UuS)a#LclUnej2 zXp&+()#zxHtXOCKVfGFCHhFp9Cn>LMEyz4pD>A=f|4m-(k4cK{UJEi4i;W@kC-!sl z@_tEDUawk^d7@Ti{=|MwUTjs8V*AvB%*0}yWU8PNyFAmJWg?yF^tkv-Mt`8j07rSu zE|1w{GP%7f)rL$g)@2ntAl5rB6jqh^q6dR+45^vaBt<((bp=#v&a!KtVfV-o!~k{~ z#x}ULG(&Y)sGb+ZNUB>XL+-X3I^`+LLCvEp(2D2#H!{O&TDj1(YKCdbg!pikdy_a8 z4ni4Z_G;*yCocyr&+oBbCSz;+a?1#HES`SKnZ2ZJVtTt zz9zr28hYlb=4Y55_Zj)M+I=Sd$ZF`5$2b_)r%1=RPr)~}rLSZ)^vd)9VtuDeN5^-v zk+SZ!{0{9^?RV6i+SX^F_ztta)4!ABJ9V%=Lu&h-k%Dhj@GXMU@Xn5}<>1#w)$(i7 zs@2dg&p$dMJripC-gNQan8z~WOYwGe z-&TdxB`lp$sn+NFqylnS8X8s$LII_g-&Y&0hBNTXZ!HI3p8q$2@h=e?udVGzns6G^ z*xRwM&#dL^%CXhZ7inAp4P%K5ZBvew3Ysd^rnRk0^VQHE>+)u#7FX2v#X|GN_aZO0 ztL2OA?bYTRu3Y{Gekrt?M<=pEqFB+8GSrq~wM_>l#OLnS0NT~=fb8Py^t&t7_WVUF zl8M?eYH0?jFf}vO&Snu6Y8R`BlE{VA%?r|xkqc*77xqLh^t3KKAGy$*U&v5y!|tH( zVi;z*_qF76Y#Ah-8*ya5x$^1o>LUR~c=Z)y%>(vTK_#(ngpgIWfeeU}t+Y~FtD5E3 zwFP?n&}t@HgEXx{`UxCC9S5z!38*KIzUYNqIqoR&BY(riPqOj946Q-N3Ggy$&~eCZ z5YYIA6Hr(D_BW`5|M^cqCXP>ebS5)Y3tHwP*C{`%0v2~w!ZSQMld0OzkmKinx}Jb6 z9LF37F|{tG!yN2L&jHyO4nAWfWEtl|u2Bk2jZx6r7z0C$^Wj`$985IE!)3-qxZAi8 z9xx`uO5-AU(zqDb8<)Vd#uV6QOob1PE8w5TbU19xfTPBh@PjcEelo5ml5s6*WZXbn z7&nsBjGIWYF^imG%qBgJTgU)o4w-7)MrInflk1H;$Sua5OXKTtqO^hd`GmR&u z0mf5OsqwTl&Ui+eY^;$kHr7cqjB;s_u~B-&*d(nqHcQVK71BOqtMsO^O?uCGPWq>@ z-6b0@y4=P~t{h{RtD&*S)zf&@)z5g%HPU$9HP$%bnrOV?y1@9G>k8vd*Y(C*u3L;l zuE&k{Tu&P~&@w)7?J+)b9X3939W_36oiP3(Q{!K9Gvjl)rEyqpXM7=dF}{?$8(+yi zjIZTk#!>l7<2(6!<9qoQ6>S;}3$ zY-N$Jj`qde)WtCaidDZ6~R%DcWin_2-LOfu7EVP zzjP@mau>*vF67sgwor$TPzL~26zHW6%>pF8s=19MCDsyWmm>bAMOm zTVUoHx6>j99}ProO+0&59m*G|s4U!gT+y+axHlxm7!;#4m8JBURU=!(M<QG3~yo=_JY8n`m!>(VNDU4+-_$zMNU=vp z>Zrugk*}RShmmqnW@X)RtE1I1CO_5lxYXA?g2Aect$kHGC$CCWWNKZN*i=C3`Boi< zi8b(I?HgI+5*Y6Zf$+E<`w@(QE|p}KMFcy)qRa;ddtH#Tg6Iw`V~K-A~LnEHre zrSB}r_Br<@CWI}h(bFDlF*${&y?SxnOqQ?z@AI@*FHtW|IwPQ7mIUL$HBUsSQ)@Ls zzeJsua)f?G+z8!w4(Pt&wHTo%79GRX>2@sR_SWVZi_|NVkb16T&D5P3NK~C^$0a>U z-$LJ*MBl=gFJC1$OU{vNl2mhCO&n3LO|q<)j3ZY?(jh0|$o26YnS>mfuzCv{d5QZK5J)Y>k zy;_ladrDI8j3@O{@t|)*^=f`_zTicOHvkI*$jFbRM&@^SJqs zbsqPr52fln7RPrUbAMmw!M;(KBDML*wp%aT|CiGBCDVJ!}^=FA#JUZ z*?eoiK&x2&RqohEJJyOYvQ6DkDx%6)sGAdGrp%5m2K&~cZd(VrzV*<+R}Kw*8yz)n zW!Jcs9Y-WXECHWnJfb#gI8_9OcJbP;;&+4SD#jURKeAx!n_gqbjTj~~dYpuHU z3Uymbk$677=oe5VcGTGVlNBA)rERyj5vJ(UcEogPFD2>Hb|Twf{$pL*cDgfFm-ccz zQ(yU=Ox-0lte(<6F_i92Lg_xFbpIctbeB|+iqhBODLwc*DcvWJOg_4PJ&8s;REy!g ztKpNr{2^-ek80HD?V}pKhD^umzEm3hZ%OF?wC0g- zEiLkW)oAp$;)(tooA2S8N4_;#O@|8!uRaYUuwkp8hIu`{5KCFIapEQU5rRe!qOGj2A36wWxm*N3>rD z-S7Ux#*5rN)sW;LNl5jd`XLEcpqe4czv8K`gRIUug+mf7KE;savn2HAo~j`U7MprV zayXvohREthe|ShDYpGcMWfD@G{|T(ts$=z$c&b|=t6QH+R%@wP{huWC*XR*gYgTL3 zu=<;LqKlE$UH&ku)o<0atTH31sx_WC?s!=3YtFPr3GL=Ehcvr1P5oXS8slNfuN;dp zkjz!H@36T4sy{#^{ETS?wvH6HSd`2c`Qg&iNVp00XC7`Mte!BVO>k!~h(v600ZEJQ z$ME++Dd-7l{@#viwzjL;I-#2U%8(@0{1GInlhoPT-+r5gN^72ADy&v5MoGjo64s=0 zks@}JCgXX3e&l}4!LW43W=(cP#n3>?5MBZ$(alf(zR10Pkm2tS`ThaW)IShf`UfYe zcs`_QigYPfPm+2_J*`SDx565fV5w{mv@6^uomFb*$J?Um1S0;`+cZz~PKAa;vh>Xw zimVk95qsM`Ah1T85TsRrX3t zg>Y;CivGdvC9ZCHxsO3cFt4ph<)hV^<055M|0#@C$P3bMeDlC&LVkkG=pIA=B*^q% z00BJa`=bE_GjW*ABS#3|YO4mSmSbm%HceoF$~3k?mMgW~jncMlv{$KrR;89-p*7e@ zdx)R2BR~6XgUr$jtzaXa&u^s7s;bl)^E>Qe@q0EzelOv_Gqfg^T2t|RmHE3_Iy$_ap7s3@6aWYa2mk;8K>z>%0000000000001oj003`tXD@JXb985NWpiY;;p)bWLS+VMJkcVJ>5AVRLi6S_^zsSDF8RnVHh89>TUV`Hbys&?b=N*<+5b8B&dp?Iz*P6QzjkKs{mwbx`+35P?|%6?0Q2QuK}|f- z+c*$Urg{@*a(A?GXZMb9EDAwE9v16wh zP8o0sCTXZTT;P;PFg=IFhSdf38G?xg$Tle4f*FOlToo~+-D+buH(tEX+;6}qnDz&^ z8t@BT+%NEjM3yOObvZSE;s)7eJE$$nw_qE1) z;;YP5xX#z2qDLvhv4tYwN3CML2(tuUQqqfpDLili!TqSm zY;|gmAaLGo1{wvWy_Ph}@bshF!lDoJ52C*W^L&_#_X)~E*`oMysnTT`7SNDktrc38 z>hSbfj8|RICA|F(Cl`%?53R};`a`D~OGZ+WJ!XC|74R7Y@3-Xc+CN|_{}TlB<<@-7(a9?OglnnbQ zLOPK!V`0Wy2~lrYtq#(Il#PcHN@pq&iS?3^c62DyZlK$QL&-ibHV#WX);m+Ra7=_3%x0lZx8j8g^GOon&I|zG-`3LJeTJ6 z#%zcm*I;tJ^i-PJjvBvdO}nbgr3u2_DOS+$)+iPaGy zYkMr#_6p#Il^ll6YrbQkQ%q--I`5-?&fdi$u33t#4$?Oa@Gfx=>1iBhhX%Vc;+5QJpK>RUlG(Wd(*7hK`%a?lY;EPv>fC!J{-ow z`HhLrp`B)8kD1tPCXzaFKSDp+bIIHS@51z{lj)C z1sBAX!J_iyqj*dy_;Ep(RzReiwJws{ADl*^Ym^=adbfvZvuM1xfsZuhc5~lAqPDvs z)V(7Tn;ldS)Muo7Rv%`wgrSu8ClkfUi$|BUZa#h#)sCAn?!ESxh z(Zeu$+IQ6wLm{)kN1KgWF9w;6f}7e~iK4l!jS4#*mOg-Uj|rJhxmI?d7; zZ0-yydA&FzC{i)<6&4f)wTOE0*Mfz!g0xL?n0gdIKPqN3EN0*thQ0V3_D1Zq7$uzUjkDn5bHXxFw?>f2&IDVSJmF zA)kbSzhmEH?lZ%*_Z4X~!RlFiem5UBDv`bK;qOcFUHn5fZfD)V%WOlGAM4he(fWP- zpcJp*pJ*J0KwCW4YxOB>{dg5WR7?M2by^wTe~bzw#5V7IrPm*z#y7ylYKd75m?^K!v06Bn#1m+CtV* z-2FHH$A{nH_rv!LIheKQO||DO!Pp_Dy806Fy;fIo_B?$@rpy_5mpPKcH%Hm$RoHa& z7P_P&!9hcOI44D9Ic0UHCHmKD!+goCp3JpNO}8~8EcM*aRgO~Ujcqm=eW7G$Je>&J z6NNjO>ZhT`719SIK9L-@Hl$Ck^|J`&+B+gz$!8Hx9B~u&k@k z3|iAlFcRxF_XQ)#U_6})#(RPZdb8OSyl(FGZ1mFoJIsWFTAP!EUvhneS5{C?)X;lMnhwS9AQTkDGL8=5yZuV2}5~@Os)~r#bE~q6;8J~-Q5D{0CVCQd#J%yvt_+|tW|yBv zHPts}X7I&o7T%!3X@)hG*_TnOX|sYu#n@W1sX>0ZMpe63;UHA5m~SAH4b6!}Xuns& zv}ZcDD;D1y^NML-D>NwS8Z7C&(mM=l*~2RlMn^*DFk&D=D+>L}msMMvV9=@IJWE@e z89i=J$OA8_vj$O>F*JZhW7uGC9rnwB?DoMe#62o!(GYSnI+AQoCL_HurKeSic)wrv zNX#c`;SBGI^sq&BvhZ-~boV@R6fqs!OL^2aS-vFsUMjd`Nmo-od|AH0U0rJS=C^gJ z!}RnKHWXy^2Gvxt(;CwfigBU}S{wvZ@t{|3vKkyKO@5617x&-d!wfY{jW0}s=v(65 zlzLQKBxbhjaPP8GNkva%L-sz}ttG)}T^ev09R3**$)Ex_L~ zsNipry0+!-G;p}YcozTL`L=^_m)cc#9D%y}XHZo)`x#8Gb3KEp$J8nL1i#0_!|z$d zUWXFYqa3q|ZH^ouG-#dY?=(O^DZ1iNF5>faTtrNY-dw(^wc@&`G5NX29SX%7I#*-# zTRSX_atEK?gv{WFRmR41tCp42$#-2{)gT(y&mP45_Bk)0e9qIj>>v#H5x8B7f=fQh z?=lpu;Vky6u!H4&g@yj&>brxzzq#zbz5y|_gh$bv1=}{DI2~WC) zvA4`&?RdyAP4i&T*gJBJJi#(@OSX~s z@Ov+r+DFsv&oXkg!%($ja=@jNIdBV>{2OlamXO zCgLg5sewdNL-;KxzAwv(iyhp>1)MnTV0^&#of?PjeTPt7aqUs%OBpZnR$Obj(e+0i zH>yzHJeqEF7Gsnr(XTZtlSmLC4x%o@gUoY>ndLrB^F5U1Q#B5IHIC@hY@Z4+cjo)l zhaHwLv!mEWE^{>SNR|d%4hdJD28z_JriD(XQ|Df;nC_)2;kM6tZh_miz*Fg|bU%#M zb1FUanu-I()Wi!YK7zURr%<|8z3)?Bw;spsC-KQ5Jdd&_BVbThuBAud3ls;8LEL?_ zM~<93QMdJJOs&3w<)T{oom=a#2A*>iwAetAft$p@%|Z#z>c~8c8C2<;D1HMTE!{jO zeBkrs`wOVTqbwDVGtobRIXH^tIEK}Dl4LI;j#EXayzDK?Vo}9+*zxgz+Az?e z7IM83snVIE#<}bvu66WR?uN3jWDTEv&1XuJ+r`|v26}uP!Lzbm4)g_$e!UQxD?n|5 zj!7S_StjWnO@G}BZ^!y>s)BIHU4EZ1dhQUhU12{jG;tHx;r>=atldt?vG1~hFgD=N z3#mTM0PM$yr>*rJ)Ta28w^ZNdwBIx2W|8OaP6_}XGdj#$h)O67itZ*)cx^d=LlN~x zEmi$3?m!@OA{j{?Lj&ibr}Qp>LXm(HcgVgKk81_fA+HbDS$_AD1PjPI;rSzmTLtrG zj$Q|k1d=y+pIbbshu(cm2)&dr>R zL~pbeRFBOrIygg)2_n5~>xSUo0r`c0eK_Z61ntZgcs0w7e1_X=-kesT#hGatcJ6Ew zgkNaJUX{yd9SdHM(C7!b_6=S2@TAM9#%bk_gn(ZFXjc@PU&O_Y$)+SN^bO9{kbCP^-#;L78x*S#%|_nXWhAhacvVVTo1lHfBH?K9;B8D&D9gtv05zzA|Qjt#VZL zg2IJ2Ec(i=PacOZE0hspC^Ukcn37>uos?nU5IuhQA^tD5RP0n95~G|mCi>^+_#)C) zG;*2FNW!ypOyaGUD@iZ?JM$&TJbF1Uv)^HCpzM?le8`b(<+iuUufS))R_eUJs)-0+ zD5h0ETH%=4$`mJtN$k)U_13)WubNS`+ESNu#4eWSJ0JZMUCZL~Y2w95{=$jUJ5{sG z`m#8WKx%OtKQ3`%rLAMhG@nD6snahU(-xBt_SB1O=eFI(@j&aA7}ZsJaY7gAr~(&mnH^&O%67ut(FxPR`gGMJIP;xCxaGteibjQ)8Gn$nNgaVggzmO{Ykvs$lxbp>G?x@Bnmlv z(}ZlQ?XDoqD{b&!6o^CTbXo~UH3GAEzA&;ou~r2I#u?qW5?W3UytPfRepKwlwahiR!*v`J~WhdFUJ>*8EDGR^xsh zzazrPVIe!*(n}s?i5v&`Nmn)w0ZVDlyUAurJeEpdr}HZ54QkUrM~_AtoLF$5-h_-a zzR|Mo4xBcyP1n^iO=HaKbjb)kQ+?;HViH)iY-e0ov$IA^gM7L`vIvh)06B=EtyCmW zs2vicj^p28|3Pvk_Fj&hKS4m&X+ZuDBuD(eA~_W$Sxq_F|K@Ph+MYhTYTe&oiBbUO z48R$;i;;9zqHJPmb4jukmE1xzT4ORf9YV?C*&%z58?%ZzIUVF$R8)kbXo4D~?%Plq zn%&QQYrWhO;;T1R-P|{JbPYuUVYX}UnQj(mi}8U$fm}cClWk|eljrxGoi{!X-sfiv zek8+=E)7NsjBA@!Oc~Pmee?ZH$-&(1oPw}eU%j+8J3D)pUqR#ELGQr`35Lye1qA`OMD4~$!=9mI?ax`Uk8;b7NH$&JBpVIOrS-u_d8+ML*66l|GW)?x3UBRyq78{c+UM24LT zlA^Nxj104Z3Q7n=?16L_m%XZjkr*6zU_|Yi`HMc5614E^=#m4H?9YB_W_HiL;eu_{ zXfQMnbmBWyVzL#~JEVnx3$&ujsp<2zZ-arTh8=eh1;wwtMk_UY{&NeUJf3%$#CMKGBr&VLw_O>s2 z4S;5Zm=nK=FAsB!?qW}kR=yYdE#WA=v~MkQ?8BkUDY1)7lMGMmQUrJ6p%`}OMD0}z z4NxsF!$IOr&(F2yOAi@8uhlX0lO|gaD`z1rD=p)}uU#W`xZrM(Kl%f`CEY}9iy_NY6dBmw zL8L;=+diPZb$*zNVjO^ODzC3MR@fe;7B1Z;F4CYc&O6An6UNQ1jMlufv|3=iPxsow z6TQ$UpE;sx&pI7*4tCa3vlgtM4hX4_-Y(x>wmn)0aI})prsoa%|H3w}wt!}teBX5K zcNqHnNM_R0u4OOvz|`kcDb7F-{>kW0Dz7(gm}rDnw6((S%5iDA)m-76R9RL8$Vaag z>cV^PyK5@wn;%)_H&*my+7*X**K!|V%Cz&+31l>SP+hR1`xER~8jY<0sZ&C-%AV1$ zuQy9!K8xi+6D{L*sZg^i=^46N{Mfk`oAob?1Wx9D=3=bQQ=voLFIw18YB*WXu9&4( z)%mY^UQ+#}L3e3utG%-!tXGSz4+ZR6vLJAZ9Q=9;3~^ZrzDveod29ipD@%w&dR8W3 ztAtpmzuuK(lq#P*$M68PsonPDZ0%8ES|aD)ryV=J9fLcL4~He2h&~D zopujn^%cA?7(JIG9JlyS)zkCc^Q(d7aolgTJFmi(?T|hz3>^jVJ4NKU+^wuFcA9@o zOn{}OPs>-!ay*^h?5$omb?WYKLL(FQ`8-!alc#q-eMAcvcksQY7 znrShrKe7Mu@NFfWwj%Rmm`G`0)gQszmOZ`m0SNa$?4#2=E_Yt{W3aP+84OOJj6l}&t+_sf zO%JgxjZ)*xPT#I`5SX=)x&{Z*5fFm2Xj82HoloE=K5NW7xMx3DUq2L8wZCUUdYvaU}#Ai5kZ@*;&Mi$)&zHw zcmNI69aRy>2-=#eIKmHp3%oMPw9os>A6Y>2#NLv55}+BBcfizP_YHy_+t8$JA^qLdytZsI=TRWFN-HPNkGIwNN}Aj$_hV&rBu|l|tL}#{|CcoRx9MeZx{PBgN5jxP*jIWX)8Q%Y}3~d;x^ipr6S^BRV{6mIg)WOda9)3>?gY< z&h@rxvn^Q+$ltqab>AJj8;zne!fuZJV0K9-rAOT@z`9=Q{QO~`xd*T zv|Ob)(X@4s51nSO0(+lL7! zzT~x8>~!p>Vj=|>`}jT}71f;xEj6;Rm9Y|O{b(mzn|NtE?Zmbh2PwMbo@_TA>QK}r z76b?}rMPC!m?bLEbm_$|GsY1rHmcTUzMN&{#;FitC=n0-ER}HELyG!orUZr zVtdt)kNcYj{a9|B4JF} zGlHn<9zxSD;!x6`X-=eX`P2te3i&qRRO&a$*t1z)}Pfpx9 z1!@2JO`px8c0FmpFh(1<1}NZS{1SC~+G765QAJ^bKur6>X$)QpesQBU!>WM~p3LIxLJYx4d~eAKWb=(#vl%XSn@Sua ztsq5ZgVM!G8$|JAmDGiX$yr%ma$M9sn_k#aYbkC^V8Gdz$xYq>1RHN`!0u^T!!adh z)DivT4`R=fZBe^a`pk-~-#dkBx0-mgYKM$@YLqp*z2s1-ZbehYi^{dSVxUXGnmgo| zewavCm^ejGXv<4E1B>fIx?T{m_^yw^r<_40%ieYpzTThX0nw_?Qfyn9HSo!co-(XC z1?F9~NeYD!&Zq5=@NgUmZBqmq$^e#SBk-LxqWqm26Se}|^uuAOD0o$DUCgiKnuA&G zFWk~cX=a-WSNB^+g+YpSOgV4!X0*t&F&L7^-5f~mBXiH`~C52(`|zO8KxFrHf^sMVD`E4Yfw|w!7BY}>d9Oq zd@!RVgDjk*1qqy+O?a_3O@X{hEANd5$yIJ&_;+lC;tpx;Ub>(_-afBf1P%r8k$603 zW&c;+#Es@UFz$q0ymDKvX+g;WzqXBJm*`3j#oCIzHH`UFVV!D3V z%_Pt5+KaF9Il}G2i|^{B0kG>sSopT(bV2XowB;2Htg%4Xop8VK(Cti4fprPb%9JgR zq#2)$#&y-yA8SBqQ(O^od7@jq`_;mGD7mz;fXK^R3T{8Vv8#;e(k)9ysixnGzeVJbuwU9=AY|J2BY&?M>Kce&xRd^iV{m3^Z=w+V~+~U}LXBGV@w)xqdw8!%AzXHkNRV#YJg zpkz&Bv}O%uO1;dq;N9!?WY-IB$E^E4wLGZIqW5~=R>9FOP5*Td+0RGWvpRU1Yhmg0L4L!>3OlEJC(∈^ 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�#yyD2a?+$sB`3YqSw8?G`v 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 z zuXo6r!bhEqc|Hxzg3>u}Y$M#D^Dh*x-5zJ~eB3P&7IXM`jZ%;gbF@{cVNcZ)Z&;jI zua)ee3Edyh)CFx!S{RxmK9FO$s+&PySZ*o8Ghx4pu2vv}9ZDFc3P0O@2mfSs-<2Xy z!I`N6Q4GRZwt&|h+|_GW*BrQ4(k=ad$#k}lA{1A%XLIkq8Xm19r&`hlbmws#;$;a# zJ;g69b{#5J2)I~FRI_&??i58a2zIYg-dTtEUmVcX2p+}l5f~^k|4?lveYy0N8tTc6 z_l5DB3MAyyFv4iPkgT2N?M;xVcCqcw5UQpqjqQ}4&+KW1XGNQ($Wmo^z6C;L5<;%~ zk~!a-97ZZ2Mkma*5<+H?YOq5uOS)D}S|3-e49q`3aYHRDm*I(pplL2G0VsYF(K2MA zo7!m@ONw)50236LL&|Q=)Itu^GIf}zVkUs3QBP=~a#4U)c{8(e5zGB>V`6oOayl$r z-dbTry|C4lRcelwJ#asNu(S}wIRbA5&3l8Mw*%M)TKgTfpe*e3Mdznm7Gk);b@co` z(J{LW@g(<}GWFv(bwIoj&>b)IY^)1a66i;DSMq43k?$H!JuNsgtAf6xM+ITgfA;b{ z+M!DB=r+}4GlPo{;xm6F-hc9#)5T2zJ``rXG#}hdkb-$0W$!eRHn(=e(F61<93uke zn)v|J$D4rZpZl;{u}rAfQ?Xnl?SiLN@xeOng^mzgvx6?fiQ!GdAlRLAgfE^pS9Gl4 z2rd`J_MFBLTTLl0P^Cj)?QOjcQ9NMnO})ldN3&-eWTwg-O*2fcuJRpsdD58>2l7EE zXGclckVi2bXKT-4R{P(#T~M`h*YcE>Ut8u|0i~=if6_UId5dJ%{^a|tipnX!25*1M z1Sk>c2!XW^GNSS!%i+!cl4()Kj^@O?<_gx}u;!HMv{LRSTY1`rwCPqkcB1{gr?xMV zr*I7Bg?4E*FYJt41_B!rw39qJXoZA5A46ErxSf2!$-i5&M6)loFALOk*vh>vA$vz! z?1mdkyT~fPNVPq~!gDPF6cex5eFEG3kU+D&DQ6AAZh3z26(4Iv{tR<^!y9FIDDZWa z%YOZ#r(`NO6;PvjnGJyd2uKX+67avchCwEdS~UfSmR24N4Xu@gN0I5D1F{G0%C91C zuDBz-B06qr`hew>$Q`Nb#SFYzRid;*%H$4j6(M0z721S6}c*)al^3M*>GgJ%Hw_}YRw@if_S!b_j{V7 zc}M+-^AWeXW4Q<7m-^a2I!5G2So88LzPV~i|LS&l5rw~z`q`-`7U-U|bo1L2sB02% z>vPxf4t})@c+vOH(A(j^*?OLOr|KHpy44Fx_!4(K>Y{q{iD}LMbLy}7tgY@v79PH| zFz0SGg?uPfasDUATN3=M=@#B)xrW~##Af(T+Z`m|W_Kh2_(9n_B1im_FII9~VPDG~ zb*3eDD|qO76orx(+n*}UVTX!#%AexSaf}XH*^as-Vt9wYl)0ge@fojT_s3AOd719E z(#uplwXS&6X%a*3*?7|2?h7`J9E*_{;aw;gm5Tr9STuFI+*it2!0g6*RpgpD{6cUU zHZyP|Ub)=&(!zsCu616-0qBai+*iePbK!QM?!a>?%Nf)fgV>}5aKbMHtZ^(G>}*3` zW@Fo(g1p+nTn|B5LTIpotLd9=go0uJqoEvj$4xuh88hBtMXWi&g3J@NpKOO@-c6KZ z<(4D6Ux}$JQ=Gc_g#9u$kN3HHkp!YtWMSr+xvbjU{fiVe-h0Yc)&y71Ad`qfUF zbD-WY@nMXYRc(>^Dk{_^GwZ}=xNC>;(B4rL(Bqg{iMJbq zC1a8i4}fsZy~zBWt+$6o_dED$JErb|s)>Gf6k2_tT!8Q?@NI)FNInByfWT7{T>D!F zA<|3^<*%Rk4sVFa%Syd`3(JL6T51o9=b` z;19zF@#|cN!4F2$JPk6>Fe64|pJMYH9?O*vQnmqJ3L^S zZpF{C?^IBa-10U>EsZF7-OVo+H}Xem@6IO%jCVf93G3}hy3~Z@ec#1rblXS7@Q{{c z_$=sE=jgRMGTT1x07lBx@i_&bG8&7Q^J5@e=FU8h`OvTg>%yo^vGTmh0HKay4X%Wd z0lYnJv8blzg;8y4 z*>yX#6^pIr0P>rBDPW==0j9bhA*rf~%(J8P8Zl4Y)#;RT8a9)MpUxKjAQ?~RvV~G~ zHzVPs_}G#45sB z5(SA%E>kuo98-sC*D*w0_$i{HUalfPr9bT+!w&sJI8%5l!eNDK(zL7DS85s_ee6ZV z&M(VBR?LdZhKa)r??UluEYp#{a>;Io!PQ1BDbC$BILl$O$zk#(4GCCmj#En-al=vi zI1UL#q=}?IPzn)+UR1gnmTAYnKahZci5z#0o*c9yK!1qp`^NmT&wJKqN|+Jn%eRpE z_%_k2uXd*5lvFMab{4}lk~XD@jo%lP4fE$5ybU$c%%YE_q>H8#vm>sW7CZt=9h>zY zGK(&14@9c)Z*}vXoN4cm2=LEJ&shog0$I!o+z9ZFvNr-*ig%kYKMRw41$hRhZeh5( zyu=SWSd=}u`2T1^`RM)g{H^ed!zXmmHn}%M>C9WBF8>z&74NIzg)+i@h%z9)!aYG; zZ~g?)Kl7{Rr}$nam#KUCBm5aPDFkVie_ty${26vZ_ggHmUI6MdS3$Q{Ebx{9%a4d$ zULDKAhFx+lwROpq(6wWVUFTLE%lxd}l>6A`1YOj%6S-aMf}W>ojNPSk#3y?-I|8*( zymsyLeRMm1JyPeJg+Fj7*Z7-6`1>8ZMBXCjdri}wBvrdl1AGTqssii@t~B3;l1EFo z)J{o@65I;b8L}53uaXp_dg@`!+{ZF33Wo>vf_QQ-v8deV1V#K=(1xXN9v{qzoU0S zyBo>W$jdxxob)Qj+Zn*^U;98XsBoaV4woOBj;w4Pk;N)_U56;W3A?BD&9x%R@Af$hWQoZbsHyTEus?vpi2y z044p;tW#nst6N>m?v|W(LVX<07z;M7aq;0RVEhwih*?6?g^Y78-;pzzj(Mk`8CLOz z-{=24KY&7|T%`Bu>Mcuxh19(3M}zENfV&*pVv7-MxjtMFJ=wa3I0S4u0#ftz*pz?3 zxnjLOK(}v|&&#yScJzC&LSLBOke9_a#nyGmIQ)pn*CF|oK8om?9@y1s6?>1e26o`Lc=kr`@p{v&^vq z8`wFSDi$jy0i>I*G8x3!V}OxTL1R|!W!M(4!1KB)#6TeI)#TY_zJnmo>@yX*pJHCe z6WZ`CbF?30Snn&$*49@Ry)@;0aCJWhjiQ7B0xZ;bb~}){o}N@%`0uC%dfz};Yei?@ zItq-rF+cXk8GWQr*p^Uy(=8;D;-){d{!44jLW#`Yu$1;K^oQ&_IIFJQ-|EI@wJo-R zzrvF~P*#4{G}D~{kE9#)^A{7X9V$&ZX_e&=BM5-~_%k2hN9TG3kH(|d#v^pgsR7~5 z$IV?6d+arjwlkRiVF!DMspU&~MmIXIdQcmNlZ7^!%=!)&YS%Uk%UV?V6q~p?D7WK7 z!|ENOOr?xevL^b@0L#u|-tAS8-~fE)_50A7FnoahiA26{HdE`YgBaj7eG`vHS&qv-c31SLR0 zsAZIW3HcZe+gLg4?-a8|`k4xyKN@X{f1Sfj4(=amaUG&hTkUny^-m>wqDZ^A;-0h$ z$a@c*|E{IAx0**1r7$I%VD6PJrv7w@8mS*n6^e*bqO??=qs|XbkHSJ_Gg0U*DQp=;S@kR+} zlY)bFzUpLDdH@a^1i%8`dLDPZgtJ+J=18nE6NgP4fGy9TAw!S6HJemKelYfSGHAX% zWzaesI;|omHHx&t_Sjiniy%L^($=AP<*YbrEvI;v(S}>-!YO%WpSZa}+0mwu-l`C- zOhkP;Sg5!JeY!Z!v1gh7%kpQQb-c_5X-2C;vU4wUU~6R;n*^SXtQ}<+8y>V?72fDx z`Y8l6?&wF6u!3uRaoYnu{%o6Tzau42k0WJS67yQM@ne1R%ABT&Tn6)A?SFkaNT=Pj zkgK_Zv+@AMIg_f^9NH|W-~@uBFIuu1pFWe;9l}1Bnk!DAcb}HEpD+{Ez(1dLp7$;< z)Y-*GM6(}8^-ZBr|K?l<*Hz;n)nV07O>KHx{RiD2nWaD-!tk5 zkl?KPcQ#`i<4Pw=DV?T)3~dqvQRp zEk1>#b&N1LaqqIH>N>b~%(4gn+WQRVWxOt-htu^ZV9=R7KWZ$JmuKG9R~)NrhiQ;6 z+kj^9;gvO*!=6{ByY<(gBV8U~YpRYlWMw zjToU+&spgfE0i;xg~q{%!D%LNv2new5X`SE-B*eoH+*cE1U&>kLP&cK;aFeNwU2>T z7f@@fa()cVN`J8NBHnNDH`6Fm2phB0Z-9P;<&QnH50tMJ5}eE;eD)SzYKGPKm(O~S zJ)F++%|z;sf|g>FKf{%ViWi@5ox*#|T^u)c*ii~ifCJF-^^ZkR>wcEPmw36^jT&_zvyek!d(whwlHKLPC9fLOWT&-j zGZ|omPi?k_X##3?69Yt9&aIWiwq*?C!?-nwIB!@JbJMMxi1x#fTUW`5DicR+9VcB} zWL2qt${MaY_M<%tube#V8m48y}Tsqc8_+I65`YPQsoaNnk2ub2{5s||yt z!}@SNs$p{v_3|mjBMnEtmx?`VA@dN%ajU-wN3D-&zF3B37RPlp#R4ezpV;h8VP1H` zGRxz-8eCtaRC4+hE4BCLPxtDr7MQ-wi3>oTb0Mv0?CAD|7=Q7Z5q)}e! zL0&<-0(vy*<7h2KUe`*(7%Bd`l`jSH>~(QQB>d zI1hC`V#^o7Kb$s-Bo@i|Z|=60<$pTnPWx{-Z7M1fB7*kz`fh>_4(8t&T5HGuVzosn z>ewI)qVj?iN~u}IX_lbzTm07Pc1GC?2riNklpz!$Fw02gJEo1~Fj}c>6aEGk^EJ%$ z|HB#F%-T=}X1g)I+~7XSBd* zl!F_b2aEQU2s9W=aO+^*wvMxWm6>;}z&26i6xGY(k({khIWcxA8V(!rHk)wjOJt=Y zYd>r-(hn>h4ECTA46AzdrM-w%2ahl?voFn9p_w$PHzbo1LIf0kxA1Waq_aN1P#a&R z%5ED$bQD>*=5rAqca7TD>a=RsQ1o(x8`{CSCx6CDF3IY3r41?x3cgrEbW(~jZ%e9d zek9-98b*A{XjI|MZT(pl20W^47b?3^EQ`a6HEZ&VZd7|`X0w6{LkI1rjeOT)>I>Di zIFqmb+g3&S;2Edop54BFNRKU<#u2@+ezwE~>j$5Vdm#z$jWdtEh;2WfnuuA~&;|T0DO-&eTWk!(@zcH%$m!s;*SkW-0Nf}1-O;kLpg(Lmx zE_3#5S_BYk3e_xjtx!p5dq(VBQ123!g?D(mY)Kn-Lh&lKHN};WuVA$AECTB0(&$M{ z%5q84-3q1d_GZO-dUEApq6quw<(^+B!%m(x`zXFb@?wk?SxiR(=7zCFiYqfsM_yqB z)3ziR2n^cBVfG-7&o|%~0y2$|-x>3p47m0mIhSbvbHp(-fc&eG@3%j`+xXY#-&2FB zzTex}n=;tiI5?Wx8#~xpGFTWH7&0^bPcds1BPRvIggCHu@ADfiPre4A#X|j!ns{G8s$mrEXHTKO>06SiUh%q%H(jr{nrDV z+mTVk!N8q751+ekLH_c{EPky9d3t2}_@|*2%bbl1lUwQ)hq>dZxxM^f0JhZ;b+^u< zl;otTg?aS_;`!pTT#Mb9_8#w{XY4MtULCa*(t5)F`p<`W zcSNb*=NZbsD>W3#lYZk2t`07i-T3L(AuE7&);rBPjSEoiJim?}I3@w4U~>$*lc}v# zjE69i5#BV@uR#e_Fpf;c^*O0P{3BcDEm&^um8YzvZ;pl?k@0sp(?*xVU z1DyLW1S+l=VFN9yGLm|JfX_9Dyut1@y;bUmp8w&(DuPKW$5Wuzl{04apTURSBkB`@ z1+elIp=h^EbdSPHpuNzb3fIa<8=Kb3f=>97c6JIHNYBi+>7gF?{+bLm2@4c?4R0)4%R<-ys4``XgL@KN~&T4ftqBP#MjZj zqnUZiVr3EMFS9v>k4u1REuts6$7UVjfZc&2+od&#?UwG9@> zdycAQ_|D+J_D1w^QD#WMko#W!Hbb3|mFOg{VskeH8V9&Mf(?KP)^=xSj`ZVMkdY8F z`?UIZEW!VZB=^saaZwP%PT!&2WfV_;-*1GxGN+nWY{$e^aQ3gMjA{tnCh*%7B*6Yt zh~xh|PxvOIncGrc>i{eY;CtZzQCvh3*q1@Gkpj>1SadQg1M3%#m3^E8Er+Sg4SHb_0+1%PxMBh;L*C6kdH)M2>rvo~vUMx17YcJ299uT(Sbl}#O zJv4is`h_0UFSK%hQLL$}Bfs-XY$a+P=|GI9qQ z*2Hw%EKD2DX;a*)DcqU?8T3GdbXvmtG*4AaqrKprk{Ofnl zIC{d-ig^=)h(mj2gwCt^?d%-+ys9jL)593l!|qOTL|L%7oteil`UnGbr%=9E2gxxe zIsxcaJp%Dp7NPBTh-VIdjh)GX1GtVr^VKQ6^-`z+aXEH9sh*5 zCFomBgZ-cVu$o@2>ZI9dwk=KE+&v|BQO~z&d;o7g9fUi@Rp{pXbkDTma=36L4?H@! ze5xn6)3jS|WAC~`|5NJ2!XWvb0I~c} zrW6(3^N%SFY&AJoF1DP2&g3_7_T%0cLDuCFiUvzwnd6vg67Q+*n+9%cQ=2nDZf-N45cX?= z5}bi<@kt6}4t~*H^uEVUg5_aIky)3!QIA4oqg&6#I1NSwrqn%_8`oEOli}QLgxC0} zQPCU`$BA*>D^gjxeZ=$tX;$fZ4eO{aofJ7#+z5C)haV5X(K%*;Pt-+Z&rKqC2WR|1 z(1KeSbVgayn*sW-G1574c#ZtsUG@L5%l=K?^xta#TSt8P@EH|FCPu2FK#WwJVN@WugCvEdChW@EnltR=Eda9s;Y4hn!on~mBh5p^F-0khK`jCdz}p0 zcLd&!@pf?N=mNUE7RICP%je#z8{3K8RNMeUQ|7T%EXc~Hy9(~_H*YBD1D_u}- zgogS*`?ZX{c`1t2V-@nVzYy@2YB>9K)Rs?L9qJzhT;9X42jK8vGr=$Hee>o%fxFYc z;~Ix1=HOe=?Tw z5|_JtgT_2-p~}-mtr4n-su>DVdV(8$nukzD%6A!DN*316bsp6pBv8N%8`8>L!VvnK z#LUgUJHFmlp47ez^YOZ}>0x@w&+?V|HU9E-)8zd%KlfuX?E8FY!HgatQM&LAj<^*EXI(u}lkesgh(X>F z)XA-|vhR^!-ByRUhb4<*o%plk*bK=0lSa}P)N(jcD?;0$u-!OXKJ>BWUgiwBOjGXc z%7kN#&mn&)%G54elh+%8d}o!7@pl}MgHd?6Cgh%kA6f`%vGxg?*wV4<%}dAqND)=i zUG>#fiQ0QBcA#w}5VKy1;{`5wROe#KeTtms%9B^D==8?C1HE?V`46mVmka zPq}*XU}kf!ybuVmGH3xCPMVZ7*21m_*Mv+{-Z-rIZ1haC)e?Uk1cQLgwKexcI@S>I3;3a3_xT*zSBTy)GwmlF^z~2fOAV)E z*{^SCe0MdD*zB*NQ(>3y`V?;=wcodifp%__L8e8sY+7 zMroodxv1ZE{3kj11Lzz)+u+>7>;fV*TT^3Pj#N?kIjV<{EyAX5VABqw9M?&s#uW?; zBX{o&Ea#JHyn{_&M}eEE%UE{Ry4~Ku#3VGM?fiokA8H!O&Kx1 zbfJ^bleN@19Qa6Vnd`@RII{}aW&{L}E5as4LMRf>{qBc-*1@xspX9+`r%XlnOxi=g zGnV*(Pom#>=QFQApoSkF`fDQfRW>Ee5fJQ>5O(_PlVaoriackpnSzr@irq4KS=3zI z>|jX-ToDN{)B%43UX4WF`}9f3RjAI+DZsV|h3C)A{gic`f*bGhc90ffYv*OD-R*rw zBjiRv?fq2gvtns)54N9rPQ+{mKER!6e9l_gyS7=rDMWrcUY5#`)f$V6`5 zfh%;rtBD$Oa8DnP2t?U%=QtfuvOlxSL|Rryyw>GKHqqEm8Jeyp2rZobRPSYgA^Q@r zmwyufOW$&1d?(F%Uq?7n@K9yz-W~CGc8Vh#N!?^}N{LHn0%e4?jU}uEM-Q#}KyGF? zt>F1gG5kxm$SY#JDE9jdE;sF9DlccDl`5B#elk>@ewNkTxS9YWnQuJS6f`ZHQ|J~6 z2(wM`2?2`QawvQHMPl$B?B%1?gva7h_==~;STxTIe5Y36(KW9hTM)|Uc)$dq&sKoV z9++RtN>7u?>#L)1j0xT+QMvy}>4fg@^B5jiq%VPvtXGvj{`hKb-c@ud`D$<4{8wUc zA$kUvy<*fEyRS%}xYIk9KUD|`usiki#Wd18i~iw{HqR{;zjc$! z0j}3|v|6}!Y!Xc6`T_C3WU160mfbZ@CTwV6`@oY_4{$_XxG;^v%XBglz|Auk;fkss zY|b;$ZeP1@a84d<$bb+EqHIak(mZbX74xm0^;%JuP(G0PRXZwmwR_KyE5{Pcl#2j` zhX(RAS}-Jc9@5j9I75w(wp`5Jx?P}yIm57zr()hatQGLYW9^;GKuUm#z2eEDGM(kN zL;36MhWDoEFYAIjXq*Kf`;A2r%@npoTX~uJz$~xPHqRs4d^p`5MoKm$ z_&S$d+a!cjF!YZ64zc&*qq83!%W)>xHvw(s9fxM%(9B>j7z@h`guNJ$Rc?4}AoqXzWtsJuxY-k(4 z2gDA%A_j-UwjxG{)37p#wd`I7!q%`?0?p+aZ8wj9r0lFv%ziPe#ey6X75Pih93M%LsuJ82s3R2kKP-`2<-sVpS7h`k=m&mlj1YBoJ z7WdUH=cGP;lg}9?J46;=$P{Prp+W_qP4(}X1YxFW0KKMOhN%wzyjdmHZyDzoZBy~u zf<4m4Oc8O7l)Ew8`(=T$t!FvJu8W(~__dyG{Ojk7wDv2`Q36M@-(c6v z^e2GPCf%!`bgi?@NOD%Ois&CL3qv;UnM9@zuT4GgZ)<_Ux^!`3J<5>P}mY~*VdB7Ti+b9eo7`q!kH5B%n-zy zl0EeV8{A?^h4A8yD{rZt&K)czb2MPl$=!U2?X8z#xHbl=-um_`(QXLqv+0Z+GGy!H zF=38-LTFV*0TO*181*Y|AQ~b4yo8L~f|Si7rabPcDQ8gpcXmI8r7QRt48liwd2llC zxPDC3uT8AT$H+Y!$OY3ezNs9hOtYyo7mLsb zuKcT?X$K|(C=J?$D~Y|E?qV~ho)G`W`~uA}deaq?Y0T-JdxlultDt`v^ z9(aUt6>X3a;tkT8~8*l*(CY!d&Jy`lP9P+ zBT+IWQSykDCfA{L*}a+>NM7C!KsBIZst-Z^>=Bv6C)*iqn=WUILLzcbWc{Ge{ERez zvx(bZoTfowsEccC@C2DT=SV<8GM=_7J+&fTSldkUm(ufMU z34D)-)eVh7-q2IJGl^UK3j2!p#E7mKypb6Nz(`LTK|9J`RB?f{Z>g`U4X_zWII#XA zUp!?nxa9C&nzMrsQU2YzAX&BuT#lw%DXL0CigG)UOY*BYRhy`=N@OSyl1nCx3gdBw zzK}mcHi8&BXA0}oZZt@Um%c@)L_9$$#C_dfmP(#)sDKbnSi1*_Wryl|sRY<4at)IL zQ?BmOJ^YU?IAB)_^vyh(&NOW;+fO#WGi8e8xfR%%1kefxfI=7=>$hi3!H*8NOmbHC zv)apfD*v%;{^ILDXNMNru9${aKv|dtTDzrq;QTf?fE*@{1Wk*NQuq)JJ#?;vV0d6K zq+{|G{zLBo!!*d@u_|PHhvd1&bDkT1ZGcje!ym6oVZ5r;HZrU(tIlKB4*D}p!t$`! zNfbXwK}eaQpRCzZ6k}(C2C`EkWr~G@Pdv4=5BjWa++!<0n=gjkGe`Rki0vta7Rp;> zgKz5nRS~|dp#<@Odgyg}SO+6c3cp=N8IiEG{)6-R6-~K4;#W*6%^}sZD@Ft6qrT>t zrnQJ8=xC6fL?K`s7bSvA%r2*6Q$K}po>H9{4L)p&q-;NFjlR-FrJ2;x2@M{l?Hqu@ zS1H7@GbjCA@4loTvb~iKUHr14lE+ILg6oXjiR7SYe%5fPJ|Cw>!XP|jtQ>2m#vziZ zHz;I>bw^s2BJT|)`+0cKtJXY~BlH;}4CXzEz0aoFis6d&3^w)2paJ_4&hd#|$y45h z6mua$>c53txy2NrYeeK6hIQ^_GCDRMSIs0PJN(5o5YSs?P!kbqV+xCYS8CUYUK?mb zA5De4RMr_33dOHxZ-3!2px8M=Z9M_WQrKEQc7=X5A5f{P=_SpZ-+g_}}*l?#Y6xtCg^IcmTrwsgd*D1PNGsb_0jZxN<{4bkBx82SD6rtY3Yw4-Qs$hJlD>+o z@j~!xA6;o0=4zTyB|iKY884eI9ar9aDU-Z!z`hOk)!U=4284{raz)_CVzHnrJP2BxB4dk!dpsRD^4DhX>UVvMMVlHvD0P z&^5TwqQDGp{QM|Kgtepk!3E7{Rm+75*g=!>%%OIa{ZmCWF!31opzdIFd>(g2wFS6ppMq{veLV08;4!uu)YRIium|Db70EB8vg)d!HY-} zW5#MGs~iHx^PKZA90Yf&l0=xQ(XMIcw-Cc+Ys4Ap6mcX)i^{lnpTJe@Q1_EUeJJ!V zi(3&VaeV#34S{kKAXyTelon;iGrhRt`8!8nVpg7{S=~I&u*e#lA#3>ASwSq#vfNc6 z#J%vRuYCTj^o_ zil%m9YULPvFKbrtgMV+QI*++4lCq!+oO0;CVbPAJU>bf{;QvS2HwJ0iY+H7hZL`a^ zUDajVwr%?@+qP{RZf5`n&f|#Kg>*6LBJ*-}&Q-%-p%xURWR@iEb!HR@{a; zV)_GtK9tok60EvPt&vEP7OhB9S`aa?Ilnwddvhes89L0uT2unIF-JZ7WOI3Cac=Qg zI0eu>5vA&;X80LIqf&^C>`#3~*xb00=g|Fo$NddG%2S8<)*$(|h_?|Gs19OV9PPb<2*n$AA zQ)_5yt7{`OQ+xd<+`cIbjS~WNjRUS7!vNNmL4?7gEyo|%Kc;O2(ku_#RX^?F+?5>6 z-OoR3r*Ed0ua0lv3qH7%x;^@)4nbugnHA}u_U*D>ayKJcQ)RGOcYUMjjJOF1QLD4N zaE>rK5%+}&HscVha+AUlyl;`oC;|lXFDx28JwzOhC)UqL2=|0q?iGb%Tz^m;C5lBS zOc!6s4~Kn_#KL4eykP|=Wnv$f-#NM=Td#;ye#zg|Cw@6*a+^yJkt9oxW1Ej1F4@Fm z`UAwJZ_8f5a8EX2a2EcW=A1>8SDIm)e(|CfYqGDW#*PwKlKYGY1M9;rJ36uA?p6Lk zEf6#7)}3&)3<0!a4_G1>^kE{E9laN#`jpiC;rypMOvC~-A%4SM?-%Y#UM-M!t-`6& zL?O5U4=OI_z-BPzqdgr(8eX+|$uv^Lt9gzwiPRyU&V~cqhAaKZ15qvXVm$ z%oZ3AsDc*Eim}YWwEglD1=L5r8Y^G)_imYA4OV``oV9N#P61@l?=Y&8J-MEu$=*)2 zy;59>&0&-%HY&N6*u=_d@>jSMPjx+DD`cG2G#KzJ)jH3tAW;g@VLG|Wnr{ncd1nrR7$<=)0t4qM-NPTO=4um; zsertueS~wHwsY&_Blf&L|G+QW5&zvZ7xmts?3ZR;`5zp?EGe^7CNk!>>Fb-==9=}O zJ5l--7>@!T!Q!7g;4cbfBKQY`n%t}-#!OXbjAlE9wi>#sZyIVz;yYA2mG21CUN`L1 z6(APDTo%id;z@OH^-NIm^tIV?V(_ev-u05M2>Q7Ll1tidm~&t>7oMSSzQJc|@rA0` z3|_?ZCVdoaRC^t6mo{sCerF(AG1t3_8A`XQ;o{>S#xwpo=~=61&`Ns=Mw z-w`TKh~_U`wKLv5jWVguFvtQGwREY{i|IyU(b_z3CqFFj$4#9&{#x28KB2=hggO~F zEGl9?*-K}t3(7G}W;VHm4oD$gz)+*pys|ZUylhc(pOUY_$_c}^#lUbwxQ9U#+ zuX1z(sAWWs1?$kAqo1+C7}J~KqK%4KjmO5%7n#k|WSRI@ppBcE3HJ8q(swti?%67j z@Z=h#J&d~rVHMyRmlS9$nw|^tT4_OQrPUNihA=L1O!AZHH=2{hHIKQ<5Om}k4Ni4s zb!GL;+v#qGVAdTkx8uOA0t%78;+ZfWfTx~)83b2sC~o(*H*wtfzA;{g1yO`1;%z*b z1?r97(wOEz%g6P};1VvXN>b-8uox`Pm<}dL&?7Yuzr>ba2 zx15}FZG+oo8#&a3V#gr-raGtn_^4sK?W7sW4r6Gfmq3{27M z2f!|hqw=d(#zpGrp0SXq$H>D%qjv<`=lD1~)|B(ao^e03XeghBl6DSyz zyW)YT-o}wDls4lF5rs=p?})b%9LnET=K!)X+OQ2#LsZTvv0Gt)+>mB&s1D9%WR1~U zD%e}7d;sOLh(DA#M9CG2e?Z9{c^-UKWbxcV!vmWa)>W3zzj;9J=I#M78Jro`0O|eOi@l%$Y!=&n#n!uw=Y@ckxTH2?f?w)jRxVkJ-a2?l)&;m z8kQkKI3TAn8^8JSbYS+!rL?TBABQ59fV?Jh7@Y$7cY%M*698Hyt~qZw-Ydp6J7i7R zea9&T&M;J=&UlzuA`GB+9uP%^ak{(59Wggje>tiYLU**{BoD3&BKZiPJ401W)fyzp z7#XbQP@4|(g5G*}=f~eg)s*_?%3E4eTa{2+MylzF7Dj&4JFB?K7U;c!OMWW|Nm8BL za2tl|af)1BPGd07S-!Ui@i)$}K@rD|J;*?~%ixVRMfhm4%kl%6(LU6v7&y7Jthbd4evE|! z;rB)>D+AZ0Dp>WKQ=2%MK0R_KbZqSv*-R5j0ozbVcjybAf}5YRH$LB3wdK0}7K0#` zY?k38KyqQ0sSlLue9;oYN`b^O6`m}?Di}Hqix7^U;b8)VIpFd~Y}|rf^*e|3{wjZG zz8alq596rtcEos=WVB(Mws^A7Utsvb|)2!^#g33|gI! ziBhHQo~!j|n}$=SXC-#xMW$s??bK6Zp~)dxHsbl4gU?O2>rYf_RFhFR{AmvWT8sqP z&xuz(?>?(o4$`k7IHxdqG-OrjLeJeiyl)>9taTA5H_@$+7M(w#$%_BszIDENfKu%y zP>8jye(CCuQ|6l+WK|dX`yR>ZK12tX*8V0XC!UU;HwY3(P9kYHr1_?lh=-iaBo8&v zAT*NjcXc9eWc6w#eNHkT9D}}Od)cgdL6A%ktj{`j^$mL70E+9fdz`VNLqXkY+id0W z2*#v(xk4nG)LzKLDy670CCst5!?3ztsF!F_osH7=5J!jS45yJAlDJGA&UZ3an!hsJ66*Wc;l1z&P(T@6S|&@6nMxoCjy7FHCAVpfHQ8R+VR}pMkwfErAY?ixOsyLD$=Uku`o0zM zhtvwrxvu+TSK;!P_@yI$<4d~Vic`lfJy(6q-*ZZ=kx0;}A6uCLNjs5TsuW?ry<+TJD4 zzhO8>PIQw(=3JYFYO0@oLq<^9CW?LtOCGr+_u#3Yn3^5}@;p9)WxP|jhfz?Dm&59( zjcJ@#J}I*M=U4`TJ@7jwdtVq=#>jqXb-T(Q=y3;KoPg_w)OXm5Uik~cM&2)|ozXaG zPx!h6iWhXhNRAtpivF3AIQ?H%wbnP%no-V9xGTcl1lz$JheGdK`~Z$4$8IutC*R1n zJ>y}|sB=w5HOE**pG;)0SVfOaWVh)@(mI36C7*2kYb@$w`Iw$$6R8k+^u;|(rfS6( zS0AxIuPW1GY}BC4zbgFdcn5f?PePb~gdKg$<2_BKFb(f2f$ESVBOhwMCSM6pM^R4- zKNm4`+DpQj0i)4H91AD4cw4GP)CSe~zTAG5MtTixCni8i73>Ool35{XF4jezine9D zLqXqE%AlmyNq)Fny!pwxzGV87RvtsMi)L;8s&UkR``iNp(Z{K6=?TVC{tf5mdhsaF zGW429zHik26Y(F$jC29@0vGbPZ=uBh4xT~#7x0XeDaU`r-N63;tl@0v{GU-~S^nKZ z%EnHHwnDBh7N&MCmd1uI_D-Zs|HGM8{vVb(EbIg^IucTRq#7MveLfUUbcC&7){UXk z5Ul(V^O{}L78MIQpJWe~7aS?84{R$9`iN-uzT7PE3F(x(e}e!rK}X}Q@0_oIywD%P2c=Na!Ei%j z41(yMPKuag5ef)@uuHE1)fy-OC&Y3D2y8R9fzn-0fTtEM-x#SQ6vjqf%}3M>h$@Qz{$F3RS>1pqExtQfY+CAW)@a=UOCQ4u90 z4(@y;mpP7F99?@tI2yhHF^-qFzr3ZC_mF$p81VqhEn$RKcp1jz#+!($I-y_4JO8N~ z3*$-xt{CNWWyZA#%-)ucfH}G>jU>_U(%{Ye$2xgpL@+p@<4p;lmm(rHqM&cJ;sRW+ zlX6#8{b$QSh2omg)E^AR#$M)NbKjQXaD{SL#0h*L3|Y$%0{hVWM{<>|+ceu$iTm29$u%34P7geW8ac8ey@DEJ9%^-P-ng;M5IeSV>&6okB)fiOWtm zw?gnjq@iE=ObTPs#l(qggE8P($Guc-zUrdL9}gAnF|(S%5`s~YTHmO#*(Kul{2iH@ zR3GCrNsOQH!8cJ*S+BW%lSsxuigZY&iGAijcT|0%@D{C#uTH-yO6wG8&1>sTFj-dA zZ1fh$fBEtwo+wZL}{~OzMT6G}6#2c8Q|l+E-BzxiriEs=j$X4YCNwrXMp>FlR6uNO5jS&sYrwYz~Ow}{bjbo0wgyuqT zC9aD=HXnix)GOGjdug_}5A5m@GgeP~DBOWcD$!xz?eZ2mqCgMDb6PPL7Z$LRY1dEV zNpvN@XaShLh7=fPQal&yt35ZTe+2SqZvLFsnt&T?d_;4Y839o{)xwAw$P({Wp=fR{ zc-!D+w9yN^Pr=xJYul25<=?J(z)Ickl|E`gd=_{$LXkx0_V`urrdt^-`?HyXi8gh{ z?h%U&Gwvn?i9EQ85%72pEm2$%TM^X}3pdjByPe?yavRa2Y*vvU(Mw0Vi+{(30jq+2 z%?%4?3$C51wW#A`7BM+tZ&y%6Sk%N$UABcmiy3J(pP3`v{M)jYSPbFCK7$ky31Rpe4$`xhNT^?Z7v;4X_5D?MD>Hv|iYTV%3UiIJa~kOKX2D5!`qUQYBZ*Hhik#~%le@cmSP5SA0% z4i_T!+@Yd`oD*kk6~@M8Jvw^z+dx~JmdI(s=*{;MGahpW!4Si;++@~qb|<%;hFB2m zkeFq zc=YqUf6Aod8ot@_-@m2%Z`qFjik|pSnf$L3_y1O=|31+zf5#VSC$3)tmL&jNz77e?iTXC9ipcPz8EpZ7>V{8^f+maMo)xo(V4vaUUL-afB;zPxuFKDz4kKx3A1tOFH6zRse*>WXtgy%X3>@NZ;C<)!F5Zb;uH1c6;iW|ZaF|R zh--vYUVbIq5TB)*uGF;b&ZTBwZ$u1iqqIJ)%2gLwpDTfN>&Al2f+~!246`h&nF)9e z$~X{(;V!Gytut*do8r`sMyMBLB&j>lMUgSr;g!3w653b<{~HDY2A=s$47F3+fA~v+ z85yTQ_mPMsxrLq2I&4FA#Zq$|bDIUaXh*6Pa1_KWUZ3CHWq!Uq%|8%i7bZPV#X=BC z5eBdrSK!D4wCL?hZ=7kUZW;TaN@`{gHbg3JwZ>7@q+200Y|KiUN_WC8#*ovIEOss7 zpEP1WVMPW#hA!CefF-;3HF0y>h{WM6{}6{eb7tK@mMT8D1)Cx8qOAc68}|MVJAhaL zzv!k!YnBs*wr4AuiohTPv$Nl42Hg_en}>sYH&eQfN41L zVG|`t_pF@%0y-a=CfV@`eD<&v0xP?ymZ4*_ekeR~K-PQMPWdJa4rmIF%UL~(ySA2N z{vrVq2SlDX)BH1Lw_tX~c_EJGoh~>kw)MU94F7Ky z%A_&C+hA19cSr;a1Z%Lqv0M`NoJp*I)8}O~(!zJ>^II%2KWH$PBAO|dxb9bxvI}_p za5>5?7WUYNatwq)*GI)Sf_|;g4JM(f^qW?jcTX_i!MLO|M*hF4fl#|>VoLydC^bOR zfP}dIM(nNx#)(%KQ8_TS;;|JOmVh6-*ci+fh=u<0eW2Uu#{P2UCO9Y&O;ulgSQa7@ zuLsLaAe!*@AnZnOU>{eLD{)>~2KBn^h}&y$Z#wp~Huq+rcRFnCY?D?)>onj%-6@H1 z1d`_V``;me@??>H@22Z+*#~F1xyPq4u1GQ6yl;J5T~k|4 zoot3?{Xy$vZ;WjD2dqZ}3gHM4%zZudAn3%7@K)RYnclEBQ|k+je-HTc{h?htwW|Oi z-?%DGhEI>WxPl4WL+tzA2S%XCVs8PiIxxbpV9#`5s}=d=5RaM0&}VYZ>XH zhJo0K`{Wrxo=qTZ=B)ut-vFc~M#W2|zQ7MBk?Qv3MpPhmPdZ3dH^SI!Ga5WejWMTw zp{Pib=BP2ht1+JL5+)lqp8!5GM1SwHRU*d#) znuLKA+5*f9Pc|J>HxAp!(n^|C_D7E7a^^{OhpD(cpfzoAaFJ`u%JQeqJ&YW9b?~JJCOz3RL zx_P2H2P|Hcm#GxDT-BC<^4O2A}*~GH{5~&wDVv@v#3m4PLj8d-@h~>`hWrryhSH1c{11{-jW|NX{>O~kT(o3>H^dIJJ~qK%%Sgs zZ-QOg#_wT--`~x@AsXf6_1^9bj}l-aP{T-Yq4MyNNke$pX9yt6+qb*v6!2~DYm;M^ ziY?P@p&p^H?kKz3tKa_72obGLhPr}owX?W}i|xavMs+8B&6GH?q2YJRnb2*;6&=u+ zuMdtep|;4*=TVp7I=|Q5yWGp=+Y3(kZ2g=LP~m*cRk{1MHs13qA;z7nH_DGwn=l?5 zC7)pe|6$&y)v@aQSct7AyVsBc^LNK{^4 z2HPszXw!}yRc?>ucs(SRqD$&>A`iBB(B6@4jgaet9-S@>&6m;|Evc^x!+NeNA|U3} z82chConMvbtUZG|;Y^sGsu8CTBbV1U1hEXyvHu-%D*J$sRAUdNP8|xda&OmSc@x#6 z-IjPGRJM%lXSRwKbyjlr1XE8$RmY^WwCT;g=+@k&c`e_0R{| z&uwqzxDsR0Qi{6tA*HjTg(NRnf89LH&(~g+IjKAs0mW$?=gQdj=}eU;rjB8_jpk^L ztEP0RM9aUK>8%1kK%M#--j0wz%ezF#=#I9Vz-Xe(B5*(TMFbHdYEdQ)2ljhew;YF8 zZP&@0?7zkoi|7Vk9PZ2eR}!KXpEbA42BFHt5pdP|ywj@AkPA1ooG> zD}0^K;r}V;;Iw~-xjKXg>-^iNI0Yz}oW_wZs4cDz&hEOlf$@Js*T}D}vr(<6YnW~t z^JX_D%Og9Z21`h1(XI?sm1C%*74^zE>edtR7R~-#V>{y^dt;q8;F@5yxS0~8`U082 zWiS}Jn1kb15!Uvg45pK<^aMvt6J%qC%2VDqjqkfx7~Mglu25qeVJM|`ZI=hE;<|tr zLiPkKtVi&NFGS|&p#avN8qE2=E(h(Xt5hPq9VRWiLwaIp=#Bi17ew(aYLyYe$bg-lbpH<#ovR8O8VYY7rxOGE%yxa z-6YURBpbxN8TGvM*mu=D0PZ0}YIVo# zxK}@xn%BVS4E=Q&Dfi~%4-_cvMv>}X(Ipb+Bx9H+uJ5-vxD9D6=du=X@ja@rID!)65=l_K28% z7WF|(y9MbDY>K@^P&o5C`)fQ*a+gK$Lg}o&Mj+SiF z{I2nZjwvj!h`y^bv7OH43QL7_#^5_jSjd3J*gDiw!MUSd=btOo)*B_E?^2m)1@Zoq z%-0l*_~yh8XKrFX$Cbcj&BmlyCn3G{!vyGpU^je{Dg?{~g$c`~LzBHik~-ruIfwf2|GvBN+K#h&TVw zrGDDj8%f$ZxVk92IGGyS{&$NVqh@W7YL4MIN&t*-57>kPL&1^CALAUA25sgvA)*R_ zcg_Auubs~togeAxzLll*q;%=0>8jn3qE=O6+V?}X!b>s9M!Vu8HAU+Yv8J+g z#?ySi6xu4de#d#*d)wJ_dgS$PLtX&V0foVmQP-Zm=QQ<0bB2D0sx&Hj->LA!S3^ha)ly43lw+Gp;Vr{@&on2oo0X<^f)H@?>@ zZ7Wi}zG)FzHwp%)c>>4kE+qqd!#JA*!ZYD7n9MeOXL{1cE($A!M#BvoEC10XH+Jh^ zK-6)N-ATdraG~Md?maKaqJ_QhK4cJ=JE+pdd8IFED* z^AZc@g10<-tK2^7NE#@I$F2}2f**s&G7BYKP7f;k-4v%>NT-|tw5wjb`~c!9U#~n5 z_eC@Rxi}CY=$44ZSY?SmcXRxS+w*cB)N{&XM-^MfcA<)ivc8&fQCbBT#bN!X*;=r+ z)T7J^mo3^SIG{whv6jU-y`Z|{@EjuqTE>*#|1Eb;;k>IlN;&f=e6}yL(IUlcAuu_Y z-iR`gU&jbRcjG#k8IHmM;$o%Tya|@X)a|(Uf`rA)9|$AbW`m2Bat6Q4_1kFTz~waB z&Iwfb$mG5Cq?eWi4anKGG4+$!oOX2Z&g0$0Up=^1-d;INWzkA5s(JrXak zaxSbK!34e^uiWgI&R5DZrIm{ZZ{dJm#x};m`4f*K7a1G=uXeW8Qq&}5aSbUqrob(U z`~0O4+xxXg!tR^mwt^Kou1mGiSD4fzLLchcK5fj?5Xlk>Wg$9bF;;QVj}aYd3;HN5 z_`8}68|%>lRo>R6ZP8v_r6+EXsmdM^3wcUtzCzlzu+*KBR#u@=osolM^V9Cu$f604 z!D?->w!gud5}9MB#WJ?omMopos7_1Pt#k*;p6P8n;!fG$KuEy61qQf<7|I-xxWrf^ zi#!m>Yk$O4y{qCKl*d$A$f{<_u&w{|Vbv&rI3~|8ctoO%)@;Ebcg(cUm`=qdRCl=( z!jpQ1c04l-6H6D*Tdxisgv93w2sUMqx>|u_R<7ABKodq5w|y?D|EZDzz3LsD;VHL1 zaBTalrmXOjj*dT*)fg_ZwLE0W?pSUL(y!fLV?gVKyoE@U$7MX-s1YCKuZ4wnLkoN@e83cwM$N$0jVsjnN5_`{&soLb9LAm;D&$56b5sA z%aeSAgZtvz>le(~_t&w};^dXND&9A#Jhq-c==P%?gz257IzV3T#1lYR+wsj^3m&H{ zDZF_3CLNEaop>w3EBsG2X&zkCS3JW(wXQUq_A%R7HeAXgQKJt3`zPqhWt@snOr`%I z|2ww$P1>2m1?*6A=_%aMCf=rMX%-VC`3olme&sA9I!ZX>vTB+Lmg^Gf8N zy|uDqhxAi9h2^@JAJ?$ux@Dcy@0ttKoai2Mq<|OKh&(6fEa8z0w>WuqYtkfq*!4TLCZ>n8R*rKm)d(a z>8Eh6NI-KeRpV)SBIj_pTI=WP2y}*j{-v313`n~8%z`<=!x&V)`{283G$p6JMC;4_#o_ZHn9f3hs|O{B-#n$s*r&41Z+Xm&K-Hfo%jyEevjQFiJb%L zm`=dm^ualX-gl1Y^BYo1!yTc%gXXD)*#-1b%@1+YWh;Y{oBqk7PD*~N5r25(joeGT zQZzltTuQ5)Xcd!OPKG3Dhqo0uM67bqsVi?8<4WZEAas+=z>!uWLH1DqkJf@8zp!gj z?K26`cl`3}8S|MS`B_cr-f;b2$p7JHmd`1~w{KT)|E?ha3#9u0uA=g;F8_BKP1cpi z6-NW?+(JS$`D6$h^+S_Er?b_Qg)|Eeng=A}Abp>k-*mCXXsY*!=|Qk8R{MbMxfETJ zQthxU22s*3!A#Mr=qnH)vwE9eZ5J$rqPoq^;BuaR%XS9zeZIbu1$1ekNwmL4Cpg3E zk=vs`;SVw0V^7FlYFN&syKOEy%}t>9s501RcoRVd((oKBFVyQEyhrHg9~FKDxS-!~ z)e7>yriw^fGSGO-7-)2qw$(h;rtFMoc`pZM?eJ|eHi`nrv_gX#^jYzZBWPHTG`dgZ z(c985$C?EhRqOM#L5zfc#2cvvR=&9{KaEQISW@+zgZQRB>7DAXD8!92`dAog*>9Mw zf41rNX)r<~GlW_~lLV;2t3oX??y|wR%oZ<|7C;zUx>}UeT>ea8+6AAFu0rya zo!`fri!Vj=v7jGdRlMnG49!`xS&r4U@L95$q`D?ecDESqjN?gfS7xMJaA6L}ubj|e zXn!po;znp%C7?hl4hB_fI80Dsw6aBy&%ZH}o5o0JBCevjMG-LBStoP4+{%%G_oLMH{l)OC*dtYBtPqqY#YAwSd_LOTZj|1pNdo2@wWA8V9Ob zk0DRBgHTo_s{yQO!#0ZI@^;)lz|UtqRy-{6vV34(io zjMqirB%6e)&^&+X4bU4C&?RIUKFvI;_$FsN$SRNNCTH8C9~7IrUr*Pwt3dk;EKusM z=0|t}Ka`i`iKn_{gt_(ySi8S0{ex*}fWP-ZxzO|;ery3@999Fur+Rp3yaw!EYiY5& zGUH7^EUHP~FdGIl09!BXU?dD{kXHT}9U!MEoa`MJj$+XW!YXMXTY{@>!S7R!L(RE^ zVp|;j#PMuWK~B1EA=u~}9PbzXhObY8BHjItp~V{i7F=R76{_=hT{JW~aT8}97 zntQGH3K#lGCnni}Pl>ngS)k3lW0V$i_~0>mSelzhYt;AY+uz^ZQg|p@a7`P3SgYWS zG_99Wulw)vRrG{O6^#uOo+kGg`J1^6P~4JFvH9rDMIM{Id>+kXCVrtHVII?qgTFPy zgxs&@5iMbkmJ!gC5f2HWH_6vPBnb9iwBcMo8B4$>i&~Zy5 zFGc)&saRx*W_1Sp4mR>tiEKrRXq;*$m8xRf|3=`SR;07H3+bPkdkNIPyZQcw6Y2kX z^U3_vmdO8CTk_w%Ly5YzhRzbYZdk@1!VnTFF;-$ck}NUYZvIbJQZXVVeA4^?kz$;% zF>rEhGY10l;uZ$&7Wt~0W%sJqQ7fewi11SWb*uUHXW^ucxZ82{cE<^ZvGHA7=!E)+cZ;&~ED7FT6jELaNh$>CW&mP7=% z@pkPvc*@Wc?;(z`4q|?k>aL`jNPAPN-=FB%KHNBfB30k3BH?xn4LpOd@2 zcU}-oM>r^p^G4n81b4Rk?d>JyR<)Qt^to*win67Orf#xQsW{F<%zc z0S|JFsH_T=n^GB0jEns&ktyF$vhF~(DApD>oVe09Di<{dJRfljCb`h7(C;pqo=Q~g>f8oCSD z;$+LOyQ6D<)q~wtrBhc5xaNO@taz+2OyX$TUK*e=Umf`A&9*CrH3>3( zEkKlwhf%sv56m{Bq|tmx%(&6yvq;R845eL9Y@ikR=3aiK4v2D9L%%vw(W9o(`DJGu zIq~F_i5H<=SaRi+aYjr}aa^sobN0cU&`Zf{LM*?8R|-pe`urqP@Wsix-%H#gTH6w( zN@6w>fu${0xZ16r!jsQLHnW*YrESTHc=9Z<(ExWexY+{J z@+BI9YvAhzFwR&kC%i@-K-~8Vb@e1?{%t|)p=y_NQQCUBLTwwQStn(2u1aOQ4a?p& z{u=#Qid`271!`yg+j?zldtqU#sGdD(ItCBPr4?fU}7KZdz_vq?=LXv+mOhMm$O#GIUL8Im_hZar z9W4_=yQ!mB-D@4wReoWoyM1T09Fvz4mVkJGYGJbs8eyz~2qkD z#?(!@i1u<;ddsGBeG%2@49S$g$z8b!Q~&+|*+(+mL#s1~ic~r{B>_{vj1N1ahuB)p z4S%XswR7le$(85bg8(RkmV{#TkpCNqtV8Dz%i@f@%?6_cNk-|nzIY03I!%gWc)dmU zQ5CC;k8)u~O)C{`fD${Oin3=~&ftj1AHG#B^w2eo;OD;(8|G1QovI!_n3k3>2m~B! z*zR`0xJL1_R;&2WgmK*XhN3%3O~(}Y-Llsde@R4trdx%JYRp60q)17RS z>83kKdAyX(?|F0z;7!CIjOWVm;^VWt6;)93DD4cluc5?ItS+s>Pzpc0`EJk{=0#m> zU=v&?^@;*>=Gxa%uyL7_mSrr>iBV!7!;%y|+sJ+0)FmZ_TW3f@BX#Nod$1n=9&~FOE584jzUS-&@>Ocp@Y2Rdqy#)`=4V(Qn*waL>@J@W~xz4J{lB z+MP9n=|9g&*JJ0~VXrNK;9o!SVc^lQICpB`bjk%8`wrX8Am9l)>~yBT)tzj>!+COi z-;pRc%nl~9+ZqDF9}vYl!l#OqyBKL%4Ri0fhrvPtTW=8l6mTE~qvk__fqjsWa5+yv zI-DaRDv4*GDK&4nBgkJ+EBS4#G_I@p8Pb9TpTKsp|8q?bue^rZnP!ExmbWq@O~Yq> z11t}ctu^3D)5e&lwE=x&HImMzY1?xMC^xaiPMrK`o+~&YxQn&m9KFT`ShsW$uzs7W z?GSx?FkjK;&rz!zTv}T!3VbtBEzsyXaLCQ+!gGV6$ zk>3O9<=DrzITmu{>Ur4Z^76<95fJ+>Zv+RlwX7~k`QQ{}XLpVZS8&{7rc+E1^NA(B zn>LU%9^9v+JZf*E4-4kjO{}uv=2zedMZ^aJ^+zt7Dyf#vd}7S>${^%Xrm5g-sI8aP zY?0hgF^-5VzH7!qo}yyphjsjvGWN}Pg2}UTQ*W0aIN;XV^Xs@{!t$}Ha_F*BS0@1K zri9sMdTM?_red{kl?m0%9lbk$_Kv}IivqUEXRhm2c1#O;%f7RlZLNM=Ik4L-eQY7f z!wmK!&DU*Kj$pX4whP<}_NJSKq{RTeZpQr<{u|30{t;I` zkcUSKVH5rRZ-zGR@sC>qUW>hsjWY)L&auQHJQ4IO+Tx{@1&>t_)xBKUr94eve#BLdO@3~q*jxHxbycqZ- zR;NP00_R&6JQ9uJTjwF(RQNkIn@uTIjwqGQ4Rf>ty;K9ItV%#_n_^lsETq}i&0^Fn zY_pS=&0sG}bVw{2L8^3=IkVl{%VS)8Yu!|Hb>EIFKtZCy2mQ7mCx%lq9x;5fv<_;DUc;he^4$Qo4^qPT|JfntM z@s--h>4UJ^p!A5ZNqc0P)ao;0W!56Pa{B7|8lm+nuK7B;zson#TW5|u6z@Be+e%Qi z9OSNd>JRXbvw?S?ccy{FUjC|pn!uKa&$CVv&+WQ`XFsnU(d(7@xBl*JY1``(PvWmq zx~$N*)eFlT+oy)*_t*lNeQff3650X9R0Ee>es*W9$t9rPK?P@UnL=97D2uuKEPB~( zc6A=Ce5MEUurtf;1w}6C{XUiJ?%2@@TCefmTJecTWnMonXrQSyRTkl)ZvJ9TY*wUy zY|}HEpM|FN9>RbkvvJJ8JL%454gz%AYJl{OGW@FLi#hL2Bj61?yj`DcB~O_WKD$33 z{8?7d!$fVC-5^JoL++qXZM|L)QJ zFUYF@pGUK-p`D@m|K!)hrtVY=1^JYYA*r`Um(2dGi4#}eiL)|K02R0-zJyAR{^+4@HxHWD-|2KIS3#-Z%1Ktwq-1njpUI?L z=~-<3i{JsOy$DbXYeT&hgJW4^ot8QGhfDrFq(HgL>&wH#NkK3~w;ZJ1$EV)DAG{53 zWxSze_h$^+;)TR1v~!uDwFB9Wtulx;op{OUaPP0(vGUYJWr9umU6@wcS4Z6CKNhvy zhzwTNl7)e>^oUmjKrp)q>*K<6U+H1HaCr1a|a5Zlf5BQttfB zXm^&tyU7v@z%pi8L_M;*M2IX%4Ehr9Dseqgl59zIb4Eru!JOHWj7FY{dE$D2n+6~; z)}&ex?|~$|mAjdk^yXpMz@*+^Nz%1+9#A`Nby*=tf~=feaNB@PhMpIT!e=?m!&NM% zBH5BAaa1TH6=M}yOZi5Kg-56Z(sbC<8M?~Boqw9+MNUTHrJW|IRa23Vc?qJ8@q5+e za8Q&y^)>rD19#M&*Psl=Lp$U~`bx>X?wSZQx%3`A;guL4i?nPBE8nOVjF?o4_xiZV zlb78vU%UEGpP%8fQD7;0C2W>5xL`J_(Jm33nXJs2NxU@`rNO*a6sUig!Xiw>7O2Os zFWu6aT1*;)RweU7jE?5R7N8d*`ZA`^HoI|U=fW|cp*>_tFvSAd2JUv5EBRK5iq*H2MiGr=Lg#`c&!^OG(vDpN%}optXqSZ>Qr&(^ zdpU&TdrlU7WMh{m`N(ycB)!9^^z;Yo&e zfuO;0TEzfJ4H*&|?J8jw4F{xD%|YKw1bx4zz8vM?$2l5|=9;+BI!M-TmPjrfE73hv z(!2%H4&G}N&JWV0uVgR~$S;}Cq)o=6SPve8RF6IYI;QgzkZL-a_$N;c(dg6HQ(H|= zlTR}B=$m0rT;;o%ypSVt2Muu;Dx&byLHh@`0_Zw9{szocBQF$B-N<^5rEf>4s8-kX zR$D%3H{2dTd;VnKqm^Gmfur$!#@J!ZMQN|9=Vl(S_L7=|SI(GArj-skDl8AV{xzbP z!0+mH%bGL@?e|;^slO*XX;QLtGTVqCDs}CG0Er3u1=o8#q<-tF$4u>MSkeu-V}gl= zpLKPf2PY3Nr_9gCwavjzlm`?8*ODU9?9MIi4Lz~CrJaU#;X%?f^Sp9;!Y7>G>*@xp zwprnQ$rUWVaMSRE#zm+*gz#h(-+$xp4j{Zqjpqri#zmd^#zDh(0gUpHG`oxQtUo#? zF-{$IkTYJ5Q@^QP^pM?+Jqmv;@icwav@0=vb0wtTg*Rf@M(%#$%3x#z4uXR4#b(rl z(C{U$lIf%Zr_tAq;nvn$t8M6@hntJZh4;+TcKJ5)oO7}{8D@h&yyu7OBzVHEfq2J9sqX;Q>5u93N;|oVv1*s{oin|Kd-R6R zv|;epncYEsf^&ZI?c@$RAfs{;W&%5Bm)qvB);j|*0^1q_gQq}XSE+A!tw8Zf>I%qb z*_`0r3Dd>h-|+acSEu8+F7T+7bk)mmE6Cu^048eMc(^==8 z7MMejQYx)uJ1tAWG(LK-r)Ixv-tOpI&Lz|F*6;b$FB$`k{rJAda=ma!l9HKp2dkpf zTuH{B#X#xc1etRfZh(hdH{+2;;9zWBN?e;R<5`FNJ^@H-adX)e$g8*)2+V9fy$(9dJt3$h`1xq0s-%tVkF3)-1ag&LGKst%199Yw^-7_fvvtIKu^=zuUlb7jeZ%UUs zATM(k23qC%^y*dT5ZYakdO{}p?XzV%r|v;xg*&TBr?|>54*|cQj&4s;JK&)fW0AZi1{rNvEZzP&OYdlcAGZb& zx7MtI$$T{{d{ZkBOAT6I*B9;e3)h`t&|sM+c6S1yEw-dtrgXKaVobZ%u*e9V;rQy;$yBwF3#I%k*k8x?$sNT_-ygR{he7t)fbBFzM;@WdoipuTe0k#mf z0Z0SmP6OkDseA(*dyZ=Q_~N$i^5Cu3L*WpTF*&*2k|LRjQ{3PI`J6^-+uM*|{OY|i zl*L3uz7VK^eJVAR_Xgr(aqVJ({d}+{aXc04efyF7VG33A-18e;aq+|*zkafj5~zO% zuKr@U&eqY?{6Ff7p#0wr7Jqz0PE^3z#>mQ;|5HH1<@Yq)pA8Ypt17E1@atgEh$4xD zzTb<0NnwDoEQo;>{2^c#r}f1A$(fFoN5Kf`;^U&pJtdxJ@kS*VEr84yei`CD%WG#5 zLP$}y_Xju^>Q9YtFggbNyuaPh0uU~l967GV>)3P2JG8Z^F5uJ{9Z%&*sh%06$)@$M zumG}lc?=jFz2Cqr*}Sho+;d@S3$-iEp&2{IruQSQ>4(a@@A z+rj9wvkdUPXZnJipKFrnvImUQL+ikE#HA74md3EOw6+bbWAZQ^xio1tw;djPC>K=H z&ZX4JAM7o1=`Saz8ku2>)tFCDql!Z3&|idIws)*`wR>uW)< zY*DPuEu9k@j6QN^x#hL{08w>_BN*^C)2+k^Xd!xaHrwQaA@iC*h>+KCZt52=%!n9C zBe9>rlZh}>nl6K#f~kxa7jk~&3MwK$zVX{OtPa62V&Uf#Oib&bDfE4vS#er3CfH8t z1|YgMm*>*JAMfdlf4J@zy@$A2C4Z)5Ac|Jr>W%~8_=K2Zwjl@VAgMSFz znA#q}=nPv-bk4%fm)0nr9&kQ>T%%aYrZog|xXdq!LfP?@>TK(JKR?-NzEB@9W@l7i zK}MQeHDjsFjf&QkPAUlPX?||`I8Etuo~{_9T4?R)5J4EF!HH8OxB;%-Re2mN3Q_}? zMIuG#TcJE8s({_?LMD(m=16{}^DjfBBE2xsEhD)B;a)vhApCH>Pr^u>@mh&AQf zt3aFiRVX!=IB5}`Chz!aaJ&qS$d&Qdq2-cIr|M-Z{VV&H$)+>HYTT8Vum#DHR=9YuZU@!T52mQU#qRt;w&jQPv>(shpA`#IMmgI-atS@4W#GS-JgB zwLh>~%ckk4(PwM;RkE`|-)t@Uu(6!V^>FwoyO6sb_-)hAn zfwT%P7sK@7R_uYY#GcIK`Ag}dJWm99izuHEjuzq(H3sl6(qdgL2^=FkPU=`AqHH|_ z1Qfu?=1p=9`15GfIQaQ}SB*{xg?Ni(k-}MA&@WZ<7sO1@xr23ax8G;w447u#P~kRr z#_sY4l?+JS(j>X!Xw&)zRWItqMqj5nD+e#ZRDgztUpd+S9|gKcG?deBh2S#LO1K8B6mI|m-1F+{jZv1*K2y`OVI zw0~h(7%G*7BzkB5cn(dc7msrDEQaYSng2#;tylZXF8}_=E;xLIi7m&^7aCrOzl(?b z|1y^Sw?c@BzTsyub0<>#6l$?DR(3R&bFj5Dc5pH`cKq|%Mqx(gx2DuwGOA>r96Y~J z1%X_+m6Q-(ISFunA2Jc@ubbLv<0Gfy@kxV6O0T#bfvR^u#EMzw!_Ix z$Aj~?`?ni30Jyq7ImTubC+R&66(Lg!I(bP@Fj|+^T^OWQIj+Mz#(RS@d}qn90x@j0 zIg|x)g#BK06PYJ=I0I5;x>Rw-ahSa2%MJ{ccX{Rzs)1X0^Wg7dYTuO=m&7o=8aoDh zb)s`0Vrx#3%8ERO>3THqOzKq3846V?Cjf`##|Z<(Ip(9*lNF$g`UE{XHE&)dQYQ(6 zFoGjF26Zc5Vd$+$a0ieO znuEMd-9z1x6Z8d*wDAFGmnQRLWbM{<48nr)5?_z7P-uTwK?Y2}ri}y_sdZ>NgfcG35 zYE@Li8A$=i&H^a>Wozd|jdK}68bdrr$7v{eVc1?&TVS91)Pnl7c}IS)BJ1LVqzw3n z5&LdN$hkL&dwL4FgnlHCT!IvQy+B2*L5x(Twn6zbN`d81+1BT{SSA&7D*w0Kv$9Md zZvCKch5B~cT~HAOx%V#%;Av;_GoIAPYY^l5*@2y5AV1vu1k>lj^zIN@A3E2vSWoZ} z9h3GVr)&r!M9H@7`!&zA(6_oGhz%yncAQ%CI_atD`J#vSUZkfwoE~b#*vzPpaUZ5cWGI^&mnZ1e zUNFKqr_#?>N}3tzED@BSYofqgCaUo58-c^aV_}?~lG1^e80TuOOgaQ1LmIZM(2rKN zg512w3)pQH{zHnq)6k6Luta(TEI}0#OSNe8C5l%_mgMDJCI4)faU~xEcAHt#)n1A^7mB6K(ZZNCq`Bmo zg4N;pVE^m|16Fa)_)#for zhAO2(ea;P1>{Geg1~Nm4A5xsbNehZ`OHLF?ELH}V2un_@VaBrpYRHxdnq^{wlq-Ns zLHGVH&T*ySDK4)LnH5KRgiFDU21Vhe>QYHnbzm)^@O?TUUuNEdQRYgZdGG7G%rGB> zFl}6!dHE)+h8+y%6nBI7M{po5Qn*CF4+iR&>Fqu?v>Rh3QXz4dZws=)^Pzpd_+VYH z)yr!Z0P3)Q6Pnfm(TGorViZKv>+y$SIvzu^VA~UT1)nIf{&G$OQm*GqiwU~6&L1}3 zj5nz!&UC3KX@H^5!JfM9{KLpKDoQ)6vCcA^)qR-zvnnvG7)7P_Wjk7q6I5;%!e znA_dUlAbWv_vV(1Y4}*`uXo%X9)s{=zaEXj7|k_ux*H={Gb|s;*wct?YeBs#AdW6@ zfqpXOeK<31rxnVS8YnVTnw?If3)j}K6b*EtbxNUFeSMZ7B2t^Qe?-4Fli)Mo<^EGS zyk5z{ms?SFGW|N-sI9E&v=u*-sv%F>>*@P|w}e{oIl5P}yTYxe<_QC#MQ?^|HHEbD z+ByqkJ%2#oDShEp!TO^BBq{hWO@^hMiaR?+2A=CO$U>9x^Xiz$IPO-?b}) zjx03?6m4p}{GSpd9L>~*NX6p^gwDwnJHS+Mxi?Z@n0SzSOD-e*tHz3uT*cDE4zyc zMfu7SI#pLz5-73e8F+KT6?Zc(tnF?~l4YWN6f*SQp6cH42r9du$kSkS&2R`W4SJUb zcxT)8Yg46`=QzkEWY1MAq8qR-_#zyEHR8g&bmRbl;u0u2cb36!n)K$Vy{VOoRWb+m zm-hAUff9?do%4~}vTB`Q_#$8{QR z&^6=Yc}3xyz;=Rm%l1e#P-p0*M+f%0t~~eL6}{QE{Jayw_NGo7+&9ijulT+#Aj4-v z=#oyyQ;Qkmh~I<1Fj}{wh3b288HZL+65Y<1+NAAplWL8G6XWhI5%l%ijn zu<{aVBpRu8k?SB2R&m94kYtbpt*RO0J=X2VAo70Pv`-x7JfUv;1br+vP8sf6YAJ2e zdR8a(pFL9Mq*wS#mnOV$#e2@Gi5J8>Y<**EHHKZC)Hf8XcF_?z!gQJ1e%s!%-Waxa z$HIdKdl-v)j@8;{q1l~ezYPii+uvx9)jG=*WWwe;4TF`Gr^3d*77|oIhMU^npmdYt zw|YP!Le3P#LPLVA=3l*lVt%gHQ|LTJtsrkp9|%+Zc!(BT3+cI1hw?ETNY*#$)u zot&o4$}|1cNiMu-6PsVb+h=L6OkkY=tE{3p#^eHz73E= zfVGy9DP*p}OrtlgZY!a?;xbBE;nwMuA-gM(c6@h;70u4Y3RkyXEJ7m9fjAL0ZSNb6 zpS%)d7OKuW@Yc7*Ca?xUf5q!urBJ{4fNR@t@a7m$sm8H2u)+Si3Bne!5n4%x`YqF& z&>*_%YhFc04+3P5<*S_fZP(upU(U9txxCSJeth-);X0FV;9?mdRTx0-yC}(fQP5N= zi8P!h7e8ThN#hgA%sKg->K6Mj2CTp^<8``6qLDcgbJP@3k+L8D-R(P8+umE_E4_Dr z;f;Cg(F~mgr@nfFuVmqNNq~DO<#j0!zbxuvv(WVEirb7ur>}}jh(eQcV74Mz@9+zmP^?41iF)!K3fwgT z4c9X6F`i3QgPsf8is_$z9guq;>kuP{R_48f)FsE3pO1M=-Ed-Z@ToBGFVZaGku`cX zvYbIf&U)@2R1RK?91BFRR&l5UP1^4V*(w*35FQ@Cqps3Gt*!T;$Bzk83EsZe?OMG+ z`h|Xt)_!{yReZQuwP;9Py6$03t2YX!(}C28UacxK)Ypt-`MDsFL6GH6kBm7f|47Bb zaCB15b3q(gK~N0q-afWeE%I0xeI`LkQDWqV4%Uy^h+Y@tbhQEe1*ab zytTn?!=@x+9A<&~JdiAR353upw-I<%%isF#k6znpI`2{O&y5f%pUCiEYvO*AKmT7P zJv%FBQ*)dDh~fE*xtBk`@=x22ev5?u@##O|r3|<103E!Ss(_*bA2by-v{kP!S}KQf zs0>OVY8_qMf!KPx4CbomD>JA!059aWQm-$1>$cOyx!2mu$O)FOq7_o~SUbG(v8Q~4 zCZ>FvoEhbFpX~Cts=~#h3Dq%Vp{2C%qU4c{L9OZIYEQ_&w{kp^!X!;oFCEUdmDG2W zX5zqpB(Uum>mAzaP@LneXCc9Qm-#P>?CqXx4>jzR#}yt4y(D#{*QYza$&G=0-nIvU zCA~=F!$AfyLK?z&qycV$d&6DumjZY^^~)+3j_eH5=Y?b)@AU?I42vNk>sDzqe1645 z_!Tk2bCE>fTE7W4XTA=;1-e=k52$~v?r>yXv-$FQNPeHc|N4;rLKgHd&8uK+?`-Vo zq~vb*rz~ieqP6Ut96GnF?Rxt)3jzoNh&+qjFQ=mrgnou%`ZR-9$M(m*M0H7V^E^v& zsaJUhM0!k^oHzO5!wqT^C^LqYJs$3^L-vO?$5q{)o;P5*UPI9J8)~mjOORySW>{>m zO$h4MpOX5uhV6dqOn|G7E#m>xRv=9=FU5eva@FUUA)k1ux=3}+&bEmoSHiw(lx~eS z|LZW_%~Y~+pUG%qMbfNF)phaxxpCOdVumIb^poGBX(-QrCcj5_-7F#UF0qcW+`&oF zuL{TsUN?^~$Afv>@J3`tjsXvr({zafzy*-O=sVIQj?%$bR@J0;6KC2D81N5>!^%c> zX;Nd#th{te_1sdpkIj}Sj%Z6G5;Zc*^cqz=?)`5gV%eW5P#9Y=vBdH;?qPhHMZ)~2 z%b8x3{tkA>l!G%zzEyR#J}7J83RM{hCreSfmNiE`GlXzarU^5dSok1nyqLL|bFTqn zIcO8mIdR-V?78m?k@EdULS0<>SvqZhm-So?#%grqFJ_n$o5$wf^%Qa&&1!@|9`1@Y zsJG&$L6`A6uCSqF+3*@!NGO1xN-gE<>8Q?564(^d5#ErHIJVw2L}vPj7&CK5xp?@)J=U{AS^?MoGXL$IJV$NTP6aVw4q-;M|@_$|j8$)9mXKRE1 zdi76I(R5T)Mt*lWhsld7qNZ-tQeu+!_5C5NQDKb&6Pyo|tRlxIEjtHPau~P=EG&#u z+-#KmoQn-nf31Mq&hEjv#8Wrmul69Bz&( z+W6H0Q{xoaCW8mns9Os}+s%}bMk=Ek*A~f&7)wNJ6vAGiY%X%RtECS>(vii;5E4I%}kU50s5GIjGugCtn0=^_&%( z0qc0WKaoQa^mBq6y!sF844I*fIgW&RZ*2I}0LWFRLc_MFxRY%5+0?8gZ?3{vI;+(p z;7V0jleldQ-gr-NI8uA`n9E>`fHn_u>^tcZaDHLxnb?VDOauB?`Am3S3e1|+>>L=3 z_-8}(_=FL~BcYT;n^d=XtA5+O`#TIuq7$m#Od5cUO1^EYmVSnn1O>qw5)?>it)b1z z@r>w_n4P|0;9@K)-NRrEM%jY%8!7ZV1-XIfaZnT@BH}Brjv`}Ll}mOm+OTM(G(P>ygUE z8^8p-T^UfgeF?e`d6n4dRTYTxs69Ocm13YfrSo5?;5Lf`0u0jQbqFHs7%me1j%Z_z zUe-Ek_-YJyWgR^XSSr& zkO6Q}2`4mgL|sA>nTYq&Thq9XyiS@EVP1NOV#S_HXC6Jj-B2Sq?O1)}S5u&EjjaJRgKqB6$?G0qNE`SxnD$BcdPSpPjN7UeIC+qS+ zyL1oaitjm^Q}tYkg%DK-#M*YUgV8mUN57wu8y_Z>1aPA-5~@083od=u9&mn<^3~Ak z%e_Tu;`;{TG@>sq9-sC05Ot&Wc=3(&Del@6$_}r=#l!ODB*}f&Mve^aS64@}4n_y^ z)lVg$tk7E_&yyK5jyhjLQUmU~Zj$JnlQ3tIH|Dj$uPG$iY^WFEw0c5jL056ICwPtI z(pO|Zzrf0MaFyW*VBH+=Y<}&q17^?0?X!n=n2g>5&K?37Zp-M8l`+SL$eU;&Z5yT! zD=DQjg@klVZ-$o-zKT@g799t)Mj$Y;4{s)mJ0~=W^DKTu(0@#UmO)xqWswC&piY0o zSnbv<_@zjx6a@;RaBbqhHDw-U$6X9UaR6KpHrtkoO0qaOXn1W{>c#NPnXkCL0n(|I z9)A119>B0Il+z7=ltSc^rQdbOePy@~i&z@}L>Eae^z$!L;T)bUkI?LOj@?fpk!+3t z*p^;~gC=LfE5K~e<(#&$zT44=`GGlqd$o-hfrGm7;l}X(1<0a!F^@3yR0ATK+k-FzJ<}rhdz9o`W=PPO(a(_w2axM*-i3*>_SSJTVQZF< znj`zS(MP$!1kYIyn@*3L`}B4tmH8s)GMXDnXLbzarU%wmMOQiN8fN<__nsfbUIk%` z8Lf5qAj_0=9w~I}et_c?Z+j3Xfy$Gr5r99cfo!qb^t$edcknIH)fec3?N09bxO@P# z_PLq8Z7b0M(un&Qkf|V&a1YKds9=0!c>(Gb>PR*;DaBXIzibH-U-F#s^y1>kXhP*2 z%PzeH$k?)X2OQ>@jnnb`wA}e)WMlg}W|H)CSdHp$ht>W<9Oj?XkesN(f9JRV7N-6O z1WuA0`>oo}-4YeGpeo#c1GEwawDaSfN;%Ls#`lH3ZJ2ylDpP9E)^Qu`QGTZoMDg+q zEc9Xa3)`W?Ca=yW0Jb3?TYWWrQI+R*>$ll{`!Z#cu6hxztj$I%i>U3&Favmfx|Ase zGjm9LcUHI{bnX5=TEY-%R()Gx?z`xH!fhianfIk_okgq8R30&7HeJ}P1&PB`l0bdb z)T(aRf zhAJ4<6je%AQnxvl-A22FWVB{5H~FE7_dH0O-$jYBy0lGLFjIZL?lJi`|Nip)$yRF( zpbq%&GGABEU1Qwn>B%N)tXr0Ef zk#H8G6T{fcw8$HRB}V5d`w#)?!p03Lh3evUaE^5F#(w>~yypACEgLqMUz&p0fJ9nG zvEvIGb9X*)!P}xBjIC6=h}Cpjr^{&65v)#@Lzayh$nJQy;rOd)nJf86N}9F~Kc~;s zb=SAc*PE$+UMbP64aOm4r6$LTBztRk0XyIF?tYT%2d?&f64s)wWs0a1c%UCU#eR z18HL*KRpLM=tat9lqvxuIC`&11+}^goiOnExRv*QNxEkC@`^)U5{+VKid>;)$fmC* z6G7PuC2V#+b9oEjq&@W{y;;{9_=22nrWE!plpSJ@A)?WxAd91H)=mH^leM*r`SvMv z>KNj|%ufrBBiPdHG==OS$}S?edkC|BHtOISdXyelA+yT(*lupGl?z1%TF%>rU{5#$ zLSyvoWxh^io^^|`vOmrvV|?&FI0zL_;3jrLE@YlXAmkq_t|TTAyucPE{`C>DGBTUd z2*ZH}K6<7ao1iW02?*(h?V)q*8w1-5lb)hL2Q1bAX(8SY+vfJ8XRP6~STwB|9t4{X zf@q|R^*P?CqerS&c%5Kj3+dr~oCmoW+$HmX$UXdG%R?QVyCIyUQA=aU1#B&DAKWq! zGDbE(d5~^f3hn3sQ`A1im56-N9kxLM;Rk+1X<%reBw`jl1l$gPp{jrSlw23BB8p<* z1UyH?>S&xcs_+V)9?z%{%&#hE%Zix>gvYVGKn7#wliLfxu1&C?vG0G>3Axlf7qLK} zv;^4SRlH39o0j;OH~*iPX(TB~DR0IH{s#?T>I$*z#Cp~y5_5-u7TUE^Kf#$So7`v`QQZ(U@62Jv}1UolYVj$bzRCn zA}YSM4y5GCAm)|zo2bL@%>#hOnQDacWmox%>9@m)zpkk zW$I2*-JzrZNp7OZ;Ug9JP)MS%AW<8pD{et`VKv6B#ci9NcOdZ(sPPE=09Kn9KYRX;XBCyg9)IYSMUn@cpOKfjdLTEZD00Qg%!cvkGP6y8GL;J*K@g2wViZ~? zwE#GJwNf8)ErM8EU+8JcBTgwg^UXk(IC=&1M^AWv#cYfBH=%k^^8}efENZU#9y0k< z2#%9j75#{KL3!3u>;zc;Bl0J3f=Fh6M*UxZOH2Jf&i|iss-l&xllcE-5R(+o{_(PI zGqz|^=cytj1i!LxNIx?uBq$&zC6z8fR@Rf^Oa?S&wVd_y5&QXT`cmrS0N7<-q-!y? zSO@;4>EU>m$7Ckw!+B0mk2jE;A58EBoke>UoytV$2$~<(mC9F7*)X|wFx6Jvz+YKh zupzzZ!?Im5*;sD%$LBa%4!SV-V{{qu-DQjz!G3Nr%RUtW= ziOo7)S+rSIAg^-61S(qPZ*pS7&g(>SFd5F?adyWy8V=rrgz>e8$4xs4*;6UO7ddtx zk)k6ALp(t<>a<%wh`@xrdJ3tANKn0t%%$LZv`pBq|t@r4e{Gmy#p$&x!%&`j4=gby@*V(pkjhlvbDTGdvFG{I*8GuVyL#e0qEEN^~z{tA*fuTkGwh0rxFhF$u zq={h1Rf5)X)H9J+iX~iHx@x3i5wBh*tVf1~3z`9No_6$>XqHU?5}9BUxG8}7O{6k?yi>4nN06zN~RA2r8b0_ zW#h_3?)rs}%r?`kFv}ErcB28*{2`ft#eR~FBxFwA(0%0>o2gT`nC{tXk@CrYCSK~Z zi#d(0e>J_nD`Gnd`m(kJ{?u)PZc%(nSwFu+Sx#qygbw~{+LvoB-nL|c^Lv~62f&Il zg_}2p3tRjq8@4u|-)sn4yUT0fr-!3_;>Ul@>-`07`p;4BpS=9PDZM1c3)@*aWbPQi zw>rpB$9DFtNp|v8v*dAE_g4*tj~{h|7*QrUZv~MLNy7YS zgf-tgF7C5D&fO22HhnzbLG{2m1lc3Cy6|8PSRFtwJh>g7yG=Fg&_JIfHctv3yhMQw zOR+{4!irv0wtji^)v7YS=j3YCFzgkd2p3`;d;qAh1@kj$Oxeo9O5`? zkykglMx}U=3@lVEi`A1R^E!b-e-r;4zYX$d#~|Mm8mBk1;)TZMFcQzWtp3UEa++GZ zD6b^f3lpEtWYwi_mPit7g6;07`O`%4!ze!gSTlhCj$-n7>?=E~y(B+q3&yP9Pr~J) zp0Ux4bTl{nEd6cBq8E(}ell}wl(E*aWtC8B?~}L`g^BwF1&DkB)T&Z=eESAm@mS^2 z-9jOdiA(0DDJ-2WY-kT{QjYp|ZvwJL>KpSIR;yU-vSu88$Mw_$bQJv?0iXyt^#(9 zS*T!&3BsP{e=POnFIV&=%QQTLJ`ulW%OcV^pfv6WKQSTY_BYAK_jx|CYZD5T60wUz zyo%`nFD0UXLHg}?Bf5;pn4f;f{I@I|!QW?B6RS_!>_1z4#s6=8k>9}4$>Fm(O7L_0 zm6P%B$SvS(ZuNgRc2_BD{)X%C3o3R5LeifaDb2q9MR60tTC4GadI@aiWU_B~UKbv#Oiz%3wD_PrALc*ZhS`UbtrBBKD)!* zOJZyTwx?mr_Cj?G5hRDIt7<*;&A5URBlsrqwJ0j-9>P~?d{!b5o|yfE=7FeLx=5k; z)+q(tcFV@yle}CBwv8KovLd&7pF(0>u~9 zgCVNQ>smhN==muxyS23Oqm{y&)ZEQub`s6jUl!2R%^(_}83&$wksKsPi(|!6Rf<@a z+8xri$ET~8QKS{7cKgvST1V}k&!koS$LQ9#HFps1Ojys(1q^FLTz|1>-h~BGwthoT zv5(r;_^4eE7d8;Bt55Krz1Qm(^??UP#`h%5ikzfzv^H7)j z9~cbZ;uz-|S~Tg>y)n|fMW29p#(d}9_T+w7zoLzN4GvOmeUqJ-PKl+YuZ=&}cOfYg zFyPBI9!E?P?5EknrZKsGMzm<_?C9Xqn16$g&i3yUMs}zO1zYBL{^NC58da70H(ba2 z+r1Us|IzjT2Vno7S6}Hu1xpzD0|o*DVl_D#GFc-}g-*`sXY)dQs5Fq79Ym7$B_Yii zd~w!k|2Y*mkMH3vu_xG&BG(Aqr*_28-K_OQK`V{HR5(sooAa)o%{3pNuGd{z0M{#= zfw!+#=`Z|+>G(0Qg&5afk9>Hqd2$+edylRY&SOx z%Lo=8)t65))Mib9J%mz2_CKKZK~BOvj?!oEG7eVmkHMj4d8L1c+W z>sMMz957)H9PP|HI1e~9Tb2B>TGG4=ZfNXQZ$ekgA`||hY_Ify0tctvhDopWRk;)w zEN&VZ{b1wXh0<*0)mQ9WCqhfJyVw+Vs8KGaO$4JBdy+T-=_|>b4=u#enf(PhoU0&% zCu*RqF1ZwM^6a6!5$<3$6PA->3o&VrmhhthHJy>fTm~r3t^~pxI*S}%oi9(Pp&nh5 z2!_d&AV-WPbif^GQBilR@iGk1qJ5q(eWz*fv;y9S>1a7OKZM33+Qf7dLCy14pAQUQ z_j2f%c5q11akfT0!Cgvm7~IdJG&v6!Q7pPwx$=^th@{wJv_~E6V2(mU4bOlda_1O6 z*H)pQLpd#&`}7lfl?&7rHncw%Fe6w79x?1;)`qRVFg~W@%Yue*DM7bLP?}z;)9dXd z5V(6=Y@zZ{Dd?`vc;P!W9J&P5?kg0IokeD66ZANB)Bj@ca-D=qCE_F`B(NlcV@un) zn>{gHW9*r+;SUS&i)bwbiw5<|-T8h$ez^LRSx(yWp%m}9M$Cmm4MpMC_IR?2Q(E#> z6U`j!JkLp8%}E0}0l&xKlYNe=7q1+I;+Y(j%TZJcRepML|ICZXMRl*^elZrLmo23z zM-p=7n`j@ZbdCubQJWc<{n3>%zWY5%S0UaYp1KBUV_B%Z%0<~;;d*@Ltx>%?zB_;w zIywQlDCUa&?OU?VrXse;;pO;6D~DrX9GY87G!`x0J7pPT?U6^E%-cl#?$@^J*$J_A zIzPB0DL>CoS2J;26#SroM;!6Z^%trBfMu;PXgX#|^kI1QP%QeHbw|!tGxG#25 zdLxLvVe>^Wr9~b_2?E~H>h<1HLRg(b?Jtk{Fz3@{glMKVbA%oG(MVlkz>Y*sTzymq z*$iVc_$ZvQxUtod60C(a?fBA&v-4Q7vnyQ?$CBko0|^u|#BF(qIC(B85hJC%A25XN zzEu2U#0bHow0DzR_71SGFuzg8Pf+>O^3R|^^tY|jBL7xU5H!;_w=p&nw6(UjwfR@T zAnuR8kYL%isIL?{(_nUtHkpI12H^DhM4t`QjP~XV+jPjLD|Jqto#{|`y&(+Q7@hEj zOM0wlPapRmGOH~QDXIW$!P=mt5@0fw#U#^gU2r&2_GF-I;KW(-skuxt9^*lS`kKOV z@zzmmxo8xQ>7jO^D}cjW#mB6e>&6A?-51SkDz5!_tw;_SY;UU&u#scA_nHm4y?Q?O z8~Wcu`S0XY?I|AI0->wV*nLeKWBoj8oi65gH+1`)h(TA)!FWXKX0>=9cA1j<(%xv7 z^0@<+Fu0_zXgY9KQp`@tcZuosVPL0nKvUzW)ePlAA91*cXLfL_y%)%D1)`DTe%%zd zElGnK%K|e9GM0L3DpGJI9er^T3MB?*Cllbfz70dI1mH$cW+zkB_EXk4lhgj{^)^=) z-|&T5p*xdW!BhwL*Rt00AB`bL$6dw}pB4D>-&WuP|M}_tMO-h6?~oawLk^D7G&3Vl zanUytfP});vnYpE5-3MT5$f*`%)nJpjb7()ac2d^^$ihVBQJ;FAwZT)e$yQJ_;|X0 zzJCP-K$|9>R^=#yO3F|&>_%4F6}Sw3iQu&7?=$M+JJp-z;D(Etsx z_M9`W&7ERyrxCVXhvQ}XD_S5|vlz?7iYFfQE*t_7?%hn=76y$;o}o?y4WEAMQpQ0s z>uB#HG`{AhuVf$pZU4HCl>Cp*>JRY!PqpR$!r@WT^wIr%(84|V@M@URUnXP(MMVcyzQSkffs;Vj zGw3s@o7af+ePKf;kPlrlC>n~oJNwA->d>tQAVG&eSRkfoXp_Z0G?kBLq_4XlF8=iu zq(nzp)LLOfG`i_j=$D;>dU;r&FY6LxA-?xXb%j&laAhW@~Csq+QCifN#0Rm%Ipg zG7q>n2L+A_c8)*fMvY8Dw-RzpASB0^AXJl zQ`0s#YBe+}%l|7RWVW94aBIEEt_h(VGZfrb-XO4a9yrIuB`)6P_?dSbAbPGaIwn^5 z5)n;fCU#RTw&lKLi4;*Y$Np&8cbW3gfTjj2xLu`V-zqSI#)oU7pk#Tn3^VQQm>=vXbu)a1v#fjkdQcaVcmU+@xZY2Vgb_0Zg!PsoN`cJ)XFam7a zeGy1%X?&9#;={ZUmhD@(tNd+vP>>L*)z}~L5Cb!8PgxWGip8z?TBH-GPmG6@E>LJ? zvj;2v=u{1>L-)y@qA|X;{_Hrr^HH|u>Q}#0#_A|AS zIi64CsW9J&?LI|5NT%yc>g zj|kpTU=5m}Fj)`~)&+esz?Ncg`t>8JPd)!}!&@R~u|G|p@VDj{`nPWQKV9m7kx7#h zv~3ajKeuE8Em^lv3YRxhcp_c}d$~XPWE_<+KFGfFD`e zqhGH#UuBxAkmI`Ct`(;aN{I zw+fWLjrFUnWyzg}$u&#E+xa9T;JTPV-$o^QpJe_b*Ebghp;#g2DyLPLK0>^{6Il#^ zniBq^%1vcx48mTC068NT6lmH|D0xn?>d=UBT~E?k$%@)*e0`kkGHZw1*2H#75FUVa z^-|Mbsuxhph3f^a*zf|Cmi4Q|M%VO;t7D4RuOoJMt2x5rv}u|JNL=m2Zc{bkf!lmD zJo`YZ&9JqevNC*^>KHdQ>}-s?h}gn&5abeUz?GfH@jd98>(FcKibm9Iy-;K z)6;*}G}@tc#4xU@mzgB7%>n0uy}Zz3GTF}vRWYo_S!*hFRUEGOCHRN_4U|O5((7$R zdt#+E5fklCW2S!TwdV}^33OKzjGt|h8um6{5QAp@5mZo!4ANZ+ZPO?R zia79m2g##QWkd<(pqKuBI{jxh#4!?%?TsG1fqw8l4uXNfhKT)*wv_w8!?6{F7hO9j zh$VEw%<%h8x`uw$b)a*5BB;oQgC`v&qP3}epvKmWUN)H+0{~O-0ChrA`-NfnNrYf% zb%DAV@HAx-PVDqTM4gBJyAflT#a@?zNd4^^@@4lW;UJ8{-Fl|xq>=q7*6PSSDlMX= zerMxRcJ=K_rI(J0%`9ykF;nfp`a-Xq3_tExcpAf%VX|s?6WQh#I>FS+u~NccGP#6j z7S&Upu3p3FK6D4Y4Xr%EmZR{f-<;~{WW@q;xYPJh6%EyT2_C|1j00=0bP*-d%^PDD zUiw<)B-=?KzB9CJ798*^gUSjk*O}y3vd>q8a}nZ^pSgUYyBQ?ebdpmbfF_Rk4zsDu zar^q59C_~)RYlp3(R%GyLS*tO*U`HUCQ&4{dl};ByGf)_>FlO#v}|^&^$tYhfEVYD zwpw{Ps>3yDkTmi=8D;9w&&_x`GzThmhdbad@{m7!uI(Z9F|Z;emC%ZMA1)57ca^0Q zM{t6^*Atq1&cQ;kByI!|D8>+&wRU`gRoyb$K8)IS2prk)>pNU(mpqXjX|$f#AJ2l_ z$qatK+Xuh?En)uu)2;uMsr+TCUb+iY$5^^ks42kRV#CgNi#yQDmx6c#g7VJ3!YSL!o3I%vZ zH?&SiGVN-$VZ^k2_TB867;R(ro6=7K-SDdY=v|h=9Bn$j!1-b~LMl}^Y0Iu|^0R5a z$je8!H5W@xy(G(@0^1=!was-K>+ROtYjrWu38b)v4P{11*FGMEpa&tYxH-nTSrwn4 zp7)dOxR#eBx6qCh07*o^OZt~r927XBL-)z8 z$HS|9C|chE-`Ah;vYs#0TZjqN_X|E2HYlgOJIcGNCsdQcHsO1Uj&(>hECP*lUxmW0 z(smGl6GePSnQ~Fya+_erXjTfSvMk?Sz0TW}kh-pg_7{aulsG=#mOTR46fab>yqZHC z(=a@M!i$^q5jgNNQrt`Ga_b6m*BNP7>C6GkCyf&E)b3^LnNy>6i@D1F?!))YSbe?) zs&Cy~8}JISai=!{UOozNgK%rKSO%8G|D^$%E1V51$M6JX;TIE4-ToQ49|5$G5Ad4} zI>cHO0Xpv=)zwk2+6ea#{_C_B0aD{U^IY>pi`VyQk z*o^N4zY9fVrY0bu70cETnBuzbOquM`oHb)x6lM}e^x0aUcy+7K#u=Jbx!m=zmVMK4 z__{im)6@L{a0#ply;}TJ`MLPaiCVvB5k>OWS$aR(1oMZc*H>s!_czmuV>SPra~P&B zLMn(ze4l<^JK;kSRrjAf2<3$Mlb5%f^WS1DgO373#e;W@53O58=}%vMhKr~n$|?|8 zh)1E@SXzYFnV>0Bwa_J^;1!vv^G@IP?;`b0L>ZY(Q}mm#iF0QSLQ^QKs2oPe#J0Yn zs%uFS24g`(l$0zhNvARivnR$^MknDPo20xt1qV0~1G3uTagPVv2FEN#!M2Bf-KH71 zf#@qHpG&cm7XcLx9w4if7m*Ipl!;wH@0oP&n)vDZj5l22oqfE*N2pWFR~dtnZ0=-GS$WB&Or?UpvF3g{|4!+Y zFe|Y%1E-H}^(zb?pTxo&?xpnbFIQq0`o55pi1{m zELL+6Tjz+<$m-QrB)XQkLX=qEf&MEDhLJ%XOoOKzcK6|qk6uC(uT9@kvrnl_(;znU zlpC{9iPQ$3@83)0hBSKRJ70Z`?kErX`)&;T#JTR{L-Rxo{SKI3bxBfLyE$nvEmg8F4ntrx;|7S|tvj5SS|E$kGyS{(_qkn;ZtKy|4fcW8qbcb^2 z<@*F%L$N$|ZG;BD@S}_A!G6sWUp}5b#^wC^4Yy{yAIOcYE{aA74dSTy9kr(W+x*Gu z4U{h=Ur6%zKe25=Wb&%0=5ph3b9-gjd?_8yI93BPv>n{u$Xpz}3L99s|@RV(gkP zY;Q|h2)I?_BI4~thAEMEfvelBCzxRi8P|Jww4}FKmYvDSX>?`+;ncdCBWdj+IPl@G zNQqfThOrg6_p0_#U=^JYuzwt(AOgnerx{s3kMUm@!2ce5@LxyxKMnmCVW>*+A46Qi zcEBi?ewHb%bz$~k_W1mU3=l`Bkzr+mI1(Ilb#wAQL%R0A`x=KC;8BP}jbA&ICASGq;lOINXriDka-vdgl|=fxfqnndrgR}@6tlurf`C?XEK9E z%3`^zap3()U3M z>ZR$q24B9*CFI7U7sK@Nd)Y1owU?mf%!H0SR~vVScyu|oydB-Rskzij$a%vTUx*uX zs7G&=zZ(N2^9%9sIusw^rL$$dTiM@kBR}V)4IL|!tfs(g#o!c*h^_pjI9LJCrjl#8 zrRS$qy%mC|Pq46o%9d!Fk`3Ium*1BI@H6Z&>*JXvkYHJ`qsW5!$;e@OyK{H^u!-z*e$ zZ3k^}>^HS!9}`UqG0TiL6q;t)UF*b5g^P``7Zn589)A@v*HtY&?v)fN<}c%Wv&RD?bWxxpT9lp zcfH=-=e#{DMzTm6lWY|ZK`)sMyW3=vXoqm&MKQJVH1DKq;9SD9jigG*DGpp3_2G_0)`P4F_gTl42=&y}B<2!Kq ziS;B;?{F1xx9VvDz=v_|4s8dvfV+n*wTHeX-I7x~Y%RQ*sy|Da&S=#f^<}Yp&#$bZ zmzLIxYAV9B`Fwq2Z_gv9`GI||(z=s{ZgFzrPZRa*;1AR3A-L5we=9kgNWLD$TWFQ` zRyqCrqkCy3RTST|%!Gb#n!++whjvn` z*~*Js^3gEBcNLfrLJG#4BgdY>Q?^|K5-1TTow{B(0mHvS5>DTAXRm`PhJy{+hTW@} zoz!1O$q5SiEl#uwU3n;hM0!U1s+wAq*2(H~47$}|LWgED-%0Ql#`#4bTecY=rVZRD zNA$iy?t+0QMKI*1j%WHP#;pV?TyAf9WsmY~!vTay_iihcnml7f(SV7(b1%zPrQV`? zEr>E=IAJ5=AkV3efXYG^|0)u80D=v;KbWw#31(xGI782Aw`3x$rcBLzcOBP|coF#^zb_x>Ux*o(_C2%gS$$E}h>MUL% zc~7ibC38#EFu&Jm>5sOXD?fEQyms8fVvFS_Osvn}9HY#W54;b70r?^N=3rAn3< z@UZPVO_gepBj+~rzoY8->{_7sRScrElh5WGYRIlBPd!5{#3QVZ4@b)-N_M9ASG{%I z5!mfu+7JC5k5ct4ql9TM^U7i}73*A#q-FO`%ajvC5tZZfeJj8`gC7r+`{7p!zwkpE zQBDnKr<>LeUBq(Z9MBN1-UalGE?x0>3%mqvD#+seI@Wth>})?SpNhT*Ya}4FJ-#fj zE6KGEt5m>&VyHZ{td_i+a|t@BN5t;{|8OJco~|KbV|uW@LFfp-*R`rM`I?MSRZG@j zBw4au*!^6a;XHRBJ)<8j4guvCoISVY8U(f3mkoc|7SUNB_cjV>8%SGnbtyF)pA(KQ zMP}Gl{8U3iFZL2QeYd$&yUfwZ#(83n{`0E=nImezQ0DE7X~)!!yANJ|jYHrK zeU0~?(Z7a@xcP`YJ+N;8d9dr%YYl9M7!-CsG97Phtti?UCXoE(e zxyy%?kXCes7Q<91e#JvD$fDFTp|v+TG?jz*7Q**7alB2)^`+YB0c+6S*$1352w8q% zi$xBGp=Y36;hg{#4RH%1te?jLN%6p1CO($q1$DFk9*`yZ0=hYf40Dm=T$xjTewIx( z=f4DEQvrJ0?NzZb{UHrJTGqQ9TAJ8sv|vzCuTIz#!JX^I?()0(^_S3>`BBcO zfzh>T!`_~R_3dv@4-gLD(0jW>b&>>%_#AXJF(yQus`&(Im(Y}%@%VLCHs=bqSRAkm*v)PcH> zY>>OZd3(=l&L{M^w4G9+&7kFY6D``AeCBA2Ce%idE@KKiJTHRM4*0=@u z3=?C=|1U7)|AAuvgg^fRzBZ~aJE4nX@SoWV;#_cO zGf5kTbr_&BnK9Qg51{nd*`NR%h)n33fA!>Jdzu9iKi`3Sj$!SQBTK3>eOD>`o%wmF zxZ~0BT*SGu0pJ0H2MFiuRj2JWgN%{6Q?fN{1NiDOH zOWDB~25oM;XT?#;*)YuLgA2*cUt;@C6Aj5Nf!24lL zV8f#lO89i`G|tCCWn#;lOPS0WnCkY4+o%3xp&?KqrRhO=x#5O&P}>$u{WYJ5`lp0< z<9bl;=mymju(*{%8JuQLA45*$agrM?3e>QR+`pd`FjbmqfRNr4 zMShH<7$byBAUZzpV;__HUh`;869|#=xUl7$avo3hPhnz|hVT=gVxj}5`ukoH5Z@vs zOIsV9U6aZazVq49v-XkrvZL_{=U2c3ODmZVs*=d4V!sTmvp^cz{r2)Xc8rk5w&0S& zvsQybv}dZgD5zr8&)|(w95lp(&&L{+{IK1plsttc1(v=fGGTX_E?GwOu%EFN?nT{v z*V-;sJ!fcVb6s~-hX+^WHP__0?>N+o38Oe1*J$8cKKmUpgg@WH1I0wO=MtFfyMCi? zGO>?0iJ_yPL@**AU#%FS#1}V8r?hTeob%GQVZzeDO2V_zOO3i@sb!Tc4noh;VI*(Z zf>k;(D0Bv9Q4X=_5c9>`1Z9YhzUh2ONHEt`r`rPNz){gf@Vp%9GH6=|Wc@f!X=u4W zlh?LKj@nAIuI3H8%9pD!j1YUrcV#;w<_vyb`n(MAsf~yty(L3 zEGXAG=(w%*A~ykEer(a)wmgEp=FXa%!d)_~#*8mQb9TvUBFmJBiLj+Wo( z>Z3~?!6bIf0Gtky3;wt6h|Q7-v>_>5vA(U;^oK2x!A$2{{3}>C+&UZa5p`{`_x&Bv zk4R0WbGx9B2o>!CqNv&t+Zv)q}9!Fkd4(9T&4#pcOA-~5Bfz~<_Ju% zE$|yWO@XZ0NXX37vn6DA?^CHsCX`t+MK$u680Dl93B*pFatG12S!hiVCq2ZVcf`~- zGn#oM4Fi@=*~hZAj^X1Yxvs4CEkz#c-*R^}zs9dPlbS!9g-m8-Qy1|K|At+4^AYy7 zFKQ@KGmolZ*~ns>4j=sAlDii=Ws=MQ5eDtpvx5~Z)qaG0jS<4 zBFafG{00?=`pfA1xeU?myF#CJJZUGI@T9*gAZjXhDx-!^*!_xr?H&EfD}eJv0d`s) z3{?#!XSzB-Os`l!$ZW4CFG7qo08zCUA*q{c2f8|=7Y9(sRpCF? zWnn`b8>0`Ontw8^(Fz~b#ut=|fndzb?*7l0AXo=G(WIcpb+AKzJxth~k>e9AtUosQ zdyu#CVOUeCV8f>*KbI-19^Kfz-y&|ox(8ty!z_l_6{SK5x z<)Cw7teo`geu?FXAA>L5P)5mZPSmE>Pzz3FNY;A9;0y|dpBXG6Vbd)@6?j^{RnKad zJJDEoxXc+neH4lFF8^gE(egQ)u=UZJ<4xtsB55ai>M@w%>zYl)OhUYCCUph2nYECnIVAdpz<+^aQHwwz|aKk#SuoXq+^L@fX4 z`TlzjPxgP6!hZpS3gcuygj*k~mc-<#-;0RQ2GF>4#BQY;3e$EZibJq6Rv)S@d_3qL z%@$aAr0!gl1f>82MVeZipPqLa_IrN_?#vI-2PO{kTvUfT%g&=O%h-4lzVOnX%T(H+ z{5mb&Nk#>x&8f*!N@qb;n>Z?3v#JV!p=Kwv`h4$|$cQXoZ5dyInR+Ij$g73^xPado+DjmPN6fVSk$j+=7O`+_&?} z(h)E#vpI!X4cbVlfLT{LPzzb1hER#zj2@sP2N7mh?n)kkm$K z^Q06$^QR?bQNh=OL zkJ`G-UT|2V>_{3J371UChyO7^KSe}2f+~GEJ1)sj5~~|<4nQ{zk! zO6m9jEvlLHbPzP#)_xmTW^D0FsE%%6%Jl$q1w&=3!Fu2{3wzZtq|m0UX6no-Y^zI* z4J(`CbCyT^$gY}%h9_eEYKVpBz+)(k{cRpE5iw*UcjL)~PzYyHMH3j!!l)6FJ zuVN_5K9LkLln<+6(bUXPr{0xw;j)8^W&1m4W9dl3ZKAiVWlt z;Scp|CT^ysSVjAxBSp529e5gYud_MUY0DfOObiR=<&cPr$d!?ZqUwiPVDl5Zjzk1~ za8ls>YEO+#O7i~7bADgy*Bgv-yBcyGA*u*1OnOr0c8_4I#XGpijI$$Kgv+ z5QuSQzJEfUllxxbhaeC_bYez)pU{N6ghso~OUg{^y2{vdzTt??(fpYu!k2zwK6Gq&M)8t%D1&CF-qLzVputExVI;fgGS9wl_uHeb?L1#d;%iYNdrzkUWEO(x6w%1!cdy@b_* z(W31thV}{${Kd24i0=0i1!9+<(A~VNp1xW5XwUYJ|6EsPSJVwF)c>p@Nh}mI&f5uv z{s2Na!*1mWPPn~GhrMfZKoWQ9D!`{scTSX;vkx3eL8jFPejHf~(8Qc28BOLi>fu~& zg4i_ke*Rp6#PitBUkjDB*wB>HB{%+<(-n|AdGCD^C^u1+JF~L*zi+c0P&o z66!6Q6J=fP27BYT%%vAT-J9Z zM_LgY+CcGjYV_r-s@!Te`%T09!N=#{117Qmv$Fj!kWyum ztumV8hwK9D3x=AgsPy>Q$Fa(bK0|QMN=k#U;RV~Tf$B>-ZjSD?FLIqFX#_=jH=s`n zvIh+CG)xpojOU$eq1U_zFBh$+e@vWf4DbM@fpkNrz&dz}<{0+nJyY3n+9s>R-??hr zZS*OT#h>UcomO7sYGtbuIcUq=x@A8DjJNmRnQ^&CIg&bjd%VuzLR{a&^YV^gewYHT zZaoGS&c0d&z1FkZkK{G)Ae1kv^dmC@ZTcI~ zBZ__{zMum2c(u%eY~e51@u*iii;l}=T{B`_67j}aTtxFUVSNEG-J#!uhzj&PnEJLF zBg^`0JhOURG_?BaTHJ;%dC<-@I$0j@ma#uE78kis{L(Z1eihcjqnSD0A#3M5=6q21 z3Mi)HEvY4J2FR_pHAxewuX;+ggs*;)F^VA8*m4tNJxx^FK`=xcj}uhB0V^~t^9nH0 zbmZHM92l+|EK3MYZ$&e6&`+EP4>3dy zQJ_zgEJT#XoMxfZ@e7sA|Gqs~pqyPyQ<&-eI!`tI*SK1V5ev|Iy>gz zl*btN1hgX%pY;AF;D>3VH3W?fJ|gjzs#2M;Bd3f~Ds|&**QyVjw01P-mHOjmSvIF!fof~78&O(Q)R@Wu zv#5x)gVnMDX4!1txtBx8N7Rd)uJ{|@{P!TgV|B|W*=GVA@LEDZ)VLq;5-Z*FGV#gJ zMe#Ef<3Ko5fH@m(WwscA^y{^>0yTeJ*=S~d9IVu-bJqM>g$y@BY1;`4VEzg)9`p+? z+K3VG9I?G5zjpNlmDw2y)dh93)YH;5aE0x>jcFMXC|(m9oqEU}HQC=+diymvz*|lS zm8U;lAr?pRnqEPrE=Do`YNi-!x6o{Nigw1Sb@+ido6QTU@$$4Meb#+Dm=)^n4@I*x z!=oJHN2?nDFQ)-Nzd#6ANs6R+JMj7tQ7}1Ya6L_p1mI zB~vmiECp;+>Ck-JA*feL8AsU)Lm5f-jezlZ)W-E6mZHoAFp)~d6*SSZjck}Kt1mH9n=4IsjJ$RK79E(=ixDhq*m+qZqU?Ey{*<^FYb02&&G%;3YVX`jzrXx zT0@>iCXpyaLCA2h^exqbi@8&`F{9ZT;B24&NGYh7jQ!ll8_Vl2H-Z1c%hlP!(8Sc_ zZ}}?X{D0q!e?~F3xBXj@i2pK@y`8y}sq^0o_%Fmp|LLp!8PM6#*~Y=i)ZuSM{ueG@ ze-T;v;}!}ZxA@a#O6|m5WghcA%f!qsbxlGB;NYP$^;J>^01vQ6qc$W0U<C(0yjBWg^pR~WIzZW=Q%;|Us{d(r1ZjiCNuPi!veORe3zRUbsIP7YThj@l15l8C3j9pGv?wQ>wzHem3Y!~_8iVv2 z*y0f5Iy+c0@&@Aj@AoD0KYGf?AkVEP$9Or9+l#U;co%9_D5h|Rq`E8%p>))PBls+68346D)M+GS&33$s{Ls+lnqyr|uTn^W4=KBYSAh;?a*(pg#5a3PjpE zu6;WLv;HJ*;Xd5pG*a)qd#LDW%j648>e{7wr#XjIBq$p?+B|UhxwB3?Ri{#&oAZT6 z!ag+(3nB}_ZRa}L1EgJI7^$y(g*SOXWYDev(=K+$@Hteqz!jkkeKpV*>?w#Yh8u{K zFg7 zWI)blatkA->M}4i;x6>d2$@E+e3vPP>NH=b+Tn!AeO?iwoe=1lq!+77y;_9Mw4ux6 zDy8@a7AM~p9~_@a*@)67OAs2hOEv&YK(LncNh77zl97lH+8C0J$y9wwwXnNur9x$2 zJerjpIDzAvV`QV51JAUp5imPeovwp`#(cKab)vyjaapnCw!n~3?aV|OH2p4uXw%0& zDYeP9$Bes%(u2O(`1nOALzn}-&o!b- zaxaWr);o%L`l=u0wL$RM?69E$e|1di1oa#F33d}Brr03s_KG>=d5Na01N_Y981bs?B&Zgsb3w=hveKaj|Y*1;!z-U>EY!Ol@1`yq4VzdLkA+g@nm<;@O z7hPgI9z8{eUNQ%6mSY7@V3iB{4mD|7e~KL;T7M`}cB&uvVTs)#eDYugqH$soG;syz zKc5@^F2qms@QO)J9TRBWa7|

    >5TA662Q#-ZCDDT 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 literal 0 HcmV?d00001 diff --git a/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.7.jar b/demo/grouper/midpoint_server/icf-connectors/connector-grouper-rest-0.7.jar similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/connector-grouper-rest-0.7.jar rename to demo/grouper/midpoint_server/icf-connectors/connector-grouper-rest-0.7.jar diff --git a/demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/net.tirasa.connid.bundles.db.scriptedsql-2.2.6-SNAPSHOT.jar b/demo/grouper/midpoint_server/icf-connectors/net.tirasa.connid.bundles.db.scriptedsql-2.2.6-SNAPSHOT.jar similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/icf-connectors/net.tirasa.connid.bundles.db.scriptedsql-2.2.6-SNAPSHOT.jar rename to demo/grouper/midpoint_server/icf-connectors/net.tirasa.connid.bundles.db.scriptedsql-2.2.6-SNAPSHOT.jar diff --git a/demo/grouper/midpoint_server/container_files/mp-home/lib/mariadb-java-client-3.0.6.jar b/demo/grouper/midpoint_server/lib/mariadb-java-client-3.0.6.jar similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/lib/mariadb-java-client-3.0.6.jar rename to demo/grouper/midpoint_server/lib/mariadb-java-client-3.0.6.jar diff --git a/demo/grouper/midpoint_server/container_files/mp-home/lib/mysql-connector-java-8.0.30.jar b/demo/grouper/midpoint_server/lib/mysql-connector-java-8.0.30.jar similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/lib/mysql-connector-java-8.0.30.jar rename to demo/grouper/midpoint_server/lib/mysql-connector-java-8.0.30.jar diff --git a/demo/grouper/midpoint_server/container_files/mp-home/mailing-lists.csv b/demo/grouper/midpoint_server/mailing-lists.csv similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/mailing-lists.csv rename to demo/grouper/midpoint_server/mailing-lists.csv diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-affiliation.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-affiliation.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-affiliation.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-affiliation.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-course.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-course.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-course.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-course.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-department.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-department.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-department.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-department.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-external-person.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-external-person.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-external-person.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-external-person.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-generic-grouper-group.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-generic-grouper-group.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-generic-grouper-group.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-generic-grouper-group.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-mailing-list.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-mailing-list.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-mailing-list.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-mailing-list.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-midpoint-group.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-midpoint-group.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-midpoint-group.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-midpoint-group.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-sis-person.xml b/demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-sis-person.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/archetypes/300-archetype-sis-person.xml rename to demo/grouper/midpoint_server/post-initial-objects/archetypes/300-archetype-sis-person.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/bulkActions/900-test-all-resources.xml b/demo/grouper/midpoint_server/post-initial-objects/bulkActions/900-test-all-resources.xml similarity index 93% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/bulkActions/900-test-all-resources.xml rename to demo/grouper/midpoint_server/post-initial-objects/bulkActions/900-test-all-resources.xml index 5b22670..380bcf5 100644 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/bulkActions/900-test-all-resources.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/bulkActions/900-test-all-resources.xml @@ -6,6 +6,7 @@ c:ResourceType + fb0bbf07-e33f-4ddd-85a1-16a7edc237f2 0a37121f-d515-4a23-9b6d-554c5ef61272 4d70a0da-02dd-41cf-b0a1-00e75d3eaa15 a343fc2e-3954-4034-ba1a-2b72c21e577a diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/bulkActions/910-recompute-grouper-objects.xml b/demo/grouper/midpoint_server/post-initial-objects/bulkActions/910-recompute-grouper-objects.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/bulkActions/910-recompute-grouper-objects.xml rename to demo/grouper/midpoint_server/post-initial-objects/bulkActions/910-recompute-grouper-objects.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/ordering.txt b/demo/grouper/midpoint_server/post-initial-objects/ordering.txt similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/ordering.txt rename to demo/grouper/midpoint_server/post-initial-objects/ordering.txt diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-affiliations.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-affiliations.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-affiliations.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-affiliations.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-courses.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-courses.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-courses.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-courses.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-departments.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-departments.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-departments.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-departments.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-generic-groups.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-generic-groups.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-generic-groups.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-generic-groups.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-mailing-lists.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-mailing-lists.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-mailing-lists.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-mailing-lists.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-midpoint-groups.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-midpoint-groups.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/100-org-midpoint-groups.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/100-org-midpoint-groups.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/400-org-grouper-sysadmin.xml b/demo/grouper/midpoint_server/post-initial-objects/orgs/400-org-grouper-sysadmin.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/orgs/400-org-grouper-sysadmin.xml rename to demo/grouper/midpoint_server/post-initial-objects/orgs/400-org-grouper-sysadmin.xml diff --git a/demo/grouper/midpoint_server/post-initial-objects/resources/100-grouper-new.xml b/demo/grouper/midpoint_server/post-initial-objects/resources/100-grouper-new.xml new file mode 100644 index 0000000..c01db8a --- /dev/null +++ b/demo/grouper/midpoint_server/post-initial-objects/resources/100-grouper-new.xml @@ -0,0 +1,379 @@ + + + + + Source: Groups + + + + + + + + c:connectorType + com.evolveum.polygon.connector.grouper.GrouperConnector + + + connectorVersion + 1.1.1.0 + + + + + + + grouper_data + 5432 + grouper + password + gr + grouper_to_midpoint + members + member_of + emailListName + + + false + false + false + + + + + + account + default + Default Account + true + ri:subject + + + c:UserType + + + + ri:subject_id + + + $user/name + + + + + + + + ri:member_of + explicit + + + ri:group + + strong + + + c:OrgType + + + name + + + + + + + + + grouper-group + + + subtype + + + + + + + assignment + + + + + + + + entitlement + group + objectToSubject + ri:members + icfs:uid + ri:member_of + icfs:uid + false + + + + + + unique_index + + name + + + + + + + + unmatched + + + true + + + + + unlinked + + + true + + + + + linked + + + + + + deleted + + + + + + + + + + entitlement + group + Group + true + ri:group + + + c:OrgType + + + + ri:emailListName + explicit + + strong + + emailAddress + + + + + + icfs:uid + + + $focus/name + + + + + + ri:group_name + + strong + + extension/grouperName + + + + strong + + + + + assignment + + all + + + + + + ri:display_name + + + extension/grouperDisplayName + + + + + $focus/displayName + + + + + ri:description + + + $focus/description + + + + + + ri:members + explicit + + + + + + unique_index + + name + + + + + + + + unmatched + + + + true + + + + + unlinked + + + true + + + + + linked + + + + + + deleted + + + true + + + + + + + + + + + 2023-05-24T13:23:53.145+02:00 + d991389de17be20e-55b20a5934dbcc31 + + + + + false + + + + + connector + + + + + + + diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-ldap-main.xml b/demo/grouper/midpoint_server/post-initial-objects/resources/100-ldap-main.xml similarity index 99% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-ldap-main.xml rename to demo/grouper/midpoint_server/post-initial-objects/resources/100-ldap-main.xml index 57bedbe..ffb88a2 100644 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-ldap-main.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/resources/100-ldap-main.xml @@ -36,11 +36,11 @@ directory dc=internet2,dc=edu - cn=Directory Manager + cn=admin,dc=internet2,dc=edu password - nsUniqueId + entryUUID spr memberOf diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-source-sis-persons.xml b/demo/grouper/midpoint_server/post-initial-objects/resources/100-source-sis-persons.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-source-sis-persons.xml rename to demo/grouper/midpoint_server/post-initial-objects/resources/100-source-sis-persons.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-target-cs-portal.xml b/demo/grouper/midpoint_server/post-initial-objects/resources/100-target-cs-portal.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-target-cs-portal.xml rename to demo/grouper/midpoint_server/post-initial-objects/resources/100-target-cs-portal.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-target-faculty-portal.xml b/demo/grouper/midpoint_server/post-initial-objects/resources/100-target-faculty-portal.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-target-faculty-portal.xml rename to demo/grouper/midpoint_server/post-initial-objects/resources/100-target-faculty-portal.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-target-mailing-lists.xml b/demo/grouper/midpoint_server/post-initial-objects/resources/100-target-mailing-lists.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/resources/100-target-mailing-lists.xml rename to demo/grouper/midpoint_server/post-initial-objects/resources/100-target-mailing-lists.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-metarole-grouper-provided-group.xml b/demo/grouper/midpoint_server/post-initial-objects/roles/200-metarole-grouper-provided-group.xml similarity index 79% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-metarole-grouper-provided-group.xml rename to demo/grouper/midpoint_server/post-initial-objects/roles/200-metarole-grouper-provided-group.xml index a57bb9f..291410f 100644 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-metarole-grouper-provided-group.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/roles/200-metarole-grouper-provided-group.xml @@ -90,6 +90,7 @@ + displayName @@ -149,46 +151,8 @@ - - lifecycle state - This mapping sets org lifecycle state to be either "active" or "retired", depending on - whether Grouper group for this org still exists. Orgs in the latter state are on the way to deletion: - their members are unassigned and after no members are there, the org is automatically deleted. - strong - - - - - lifecycleState - - - 2 diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-metarole-ldap-group.xml b/demo/grouper/midpoint_server/post-initial-objects/roles/200-metarole-ldap-group.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-metarole-ldap-group.xml rename to demo/grouper/midpoint_server/post-initial-objects/roles/200-metarole-ldap-group.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-role-ldap-basic.xml b/demo/grouper/midpoint_server/post-initial-objects/roles/200-role-ldap-basic.xml similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/roles/200-role-ldap-basic.xml rename to demo/grouper/midpoint_server/post-initial-objects/roles/200-role-ldap-basic.xml diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy/000-security-policy.xml b/demo/grouper/midpoint_server/post-initial-objects/securityPolicy/000-security-policy.xml similarity index 70% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy/000-security-policy.xml rename to demo/grouper/midpoint_server/post-initial-objects/securityPolicy/000-security-policy.xml index b58d2fe..65c6fa7 100644 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy/000-security-policy.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/securityPolicy/000-security-policy.xml @@ -1,5 +1,4 @@ - - + Default Security Policy @@ -16,21 +15,21 @@ midpointdemo-shibboleth true - - /etc/pki/mp/sp-shibboleth-keys.jks - - changeit - - signing-key - - password - - + + /opt/midpoint/var/shibboleth/shibboleth_sp_keys.jks + + changeit + + signing-key + + password + + - https://idptestbed/idp/shibboleth + https://idptestbed/idp/shibboleth - /etc/shibboleth/idp-metadata.xml + /opt/midpoint/var/shibboleth/idp-metadata.xml Shibboleth urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST @@ -40,16 +39,18 @@ - admin-gui-default - Default gui sequence + admin-gui-saml-internal + + Internal SAML2 GUI authentication sequence. + - true http://midpoint.evolveum.com/xml/ns/public/common/channels-3#user - gui-default + true + saml-internal - loginForm - 1 + mySamlSso + 30 sufficient @@ -74,8 +75,8 @@ rest-default - true http://midpoint.evolveum.com/xml/ns/public/common/channels-3#rest + true rest-default @@ -87,8 +88,8 @@ actuator-default - true http://midpoint.evolveum.com/xml/ns/public/common/channels-3#actuator + true actuator-default diff --git a/demo/grouper/midpoint_server/post-initial-objects/systemConfigurations/000-public-url.xml b/demo/grouper/midpoint_server/post-initial-objects/systemConfigurations/000-public-url.xml new file mode 100644 index 0000000..d353b5e --- /dev/null +++ b/demo/grouper/midpoint_server/post-initial-objects/systemConfigurations/000-public-url.xml @@ -0,0 +1,44 @@ + + + + + + + c:SystemConfigurationType + + modify + + delta + + + add + infrastructure + + https://localhost/midpoint + + + + + + diff --git a/demo/grouper/midpoint-objects-manual/tasks/task-import-sis-persons.xml b/demo/grouper/midpoint_server/post-initial-objects/tasks/980_import-sis-persons.xml similarity index 100% rename from demo/grouper/midpoint-objects-manual/tasks/task-import-sis-persons.xml rename to demo/grouper/midpoint_server/post-initial-objects/tasks/980_import-sis-persons.xml diff --git a/demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml b/demo/grouper/midpoint_server/post-initial-objects/tasks/990_task-liveSync-grouper.xml similarity index 66% rename from demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml rename to demo/grouper/midpoint_server/post-initial-objects/tasks/990_task-liveSync-grouper.xml index 421c1a0..88a504a 100644 --- a/demo/grouper/midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/tasks/990_task-liveSync-grouper.xml @@ -1,5 +1,5 @@ + + - 605a0127-a313-442a-9d5e-151eac8b0745 + bf9f49a0-04c3-464f-98cf-55b3553d9574 runnable - - - - - single - loose restart + + recurring + 5 + - + - - ri:Group + - + diff --git a/demo/grouper/midpoint-objects-manual/tasks/task-async-update-grouper.xml b/demo/grouper/midpoint_server/post-initial-objects/tasks/990_task-reconciliation-grouper.xml similarity index 50% rename from demo/grouper/midpoint-objects-manual/tasks/task-async-update-grouper.xml rename to demo/grouper/midpoint_server/post-initial-objects/tasks/990_task-reconciliation-grouper.xml index 08f3c1a..5b9c491 100644 --- a/demo/grouper/midpoint-objects-manual/tasks/task-async-update-grouper.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/tasks/990_task-reconciliation-grouper.xml @@ -17,18 +17,19 @@ - Grouper async updates + xmlns:ri="http://midpoint.evolveum.com/xml/ns/public/resource/instance-3" + oid="605a0127-a313-442a-9d5e-151eac8b0745"> + Grouper reconciliation - - + + - 1552664339630-0-2 + 605a0127-a313-442a-9d5e-151eac8b0745 runnable - + @@ -37,15 +38,30 @@ loose restart - - - - - - - - - 1 - + + + 1 + + + + + ri:group + + + + + + 2 + + + + + ri:subject + + + + + + diff --git a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/users/600-user-banderson.xml b/demo/grouper/midpoint_server/post-initial-objects/users/600-user-banderson.xml similarity index 98% rename from demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/users/600-user-banderson.xml rename to demo/grouper/midpoint_server/post-initial-objects/users/600-user-banderson.xml index eb6dd26..3c0352a 100644 --- a/demo/grouper/midpoint_server/container_files/mp-home/post-initial-objects/users/600-user-banderson.xml +++ b/demo/grouper/midpoint_server/post-initial-objects/users/600-user-banderson.xml @@ -23,10 +23,12 @@ Bob Anderson Bob Anderson + diff --git a/demo/grouper/midpoint_server/container_files/mp-home/res/sis-persons/SchemaScript.groovy b/demo/grouper/midpoint_server/res/sis-persons/SchemaScript.groovy similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/res/sis-persons/SchemaScript.groovy rename to demo/grouper/midpoint_server/res/sis-persons/SchemaScript.groovy diff --git a/demo/grouper/midpoint_server/container_files/mp-home/res/sis-persons/SearchScript.groovy b/demo/grouper/midpoint_server/res/sis-persons/SearchScript.groovy similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/res/sis-persons/SearchScript.groovy rename to demo/grouper/midpoint_server/res/sis-persons/SearchScript.groovy diff --git a/demo/grouper/midpoint_server/container_files/mp-home/res/sis-persons/TestScript.groovy b/demo/grouper/midpoint_server/res/sis-persons/TestScript.groovy similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/res/sis-persons/TestScript.groovy rename to demo/grouper/midpoint_server/res/sis-persons/TestScript.groovy diff --git a/demo/grouper/midpoint_server/container_files/mp-home/schema/internet2.xsd b/demo/grouper/midpoint_server/schema/internet2.xsd similarity index 95% rename from demo/grouper/midpoint_server/container_files/mp-home/schema/internet2.xsd rename to demo/grouper/midpoint_server/schema/internet2.xsd index c482436..2433d8b 100644 --- a/demo/grouper/midpoint_server/container_files/mp-home/schema/internet2.xsd +++ b/demo/grouper/midpoint_server/schema/internet2.xsd @@ -26,6 +26,7 @@ + diff --git a/demo/grouper/midpoint_server/container_files/mp-home/source-external.csv b/demo/grouper/midpoint_server/source-external.csv similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/source-external.csv rename to demo/grouper/midpoint_server/source-external.csv diff --git a/demo/grouper/midpoint_server/container_files/mp-home/staff-portal.csv b/demo/grouper/midpoint_server/staff-portal.csv similarity index 100% rename from demo/grouper/midpoint_server/container_files/mp-home/staff-portal.csv rename to demo/grouper/midpoint_server/staff-portal.csv diff --git a/demo/grouper/purge-queue.sh b/demo/grouper/purge-queue.sh deleted file mode 100755 index 2633e4d..0000000 --- a/demo/grouper/purge-queue.sh +++ /dev/null @@ -1 +0,0 @@ -docker exec grouper_mq_1 rabbitmqctl purge_queue sampleQueue diff --git a/demo/grouper/recompute.sh b/demo/grouper/recompute.sh deleted file mode 100755 index 0d9633e..0000000 --- a/demo/grouper/recompute.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash - -source $(dirname "$0")/../../library.bash - -recompute orgs d48ec05b-fffd-4262-acd3-d9ff63365b62 -recompute users e897468f-20bd-419c-8fc5-1fe60e2600de diff --git a/demo/grouper/idp/shibboleth-idp/conf/attribute-filter.xml b/demo/grouper/shibboleth-idp/conf/attribute-filter.xml similarity index 100% rename from demo/grouper/idp/shibboleth-idp/conf/attribute-filter.xml rename to demo/grouper/shibboleth-idp/conf/attribute-filter.xml diff --git a/demo/shibboleth/idp/shibboleth-idp/conf/attribute-resolver.xml b/demo/grouper/shibboleth-idp/conf/attribute-resolver.xml similarity index 100% rename from demo/shibboleth/idp/shibboleth-idp/conf/attribute-resolver.xml rename to demo/grouper/shibboleth-idp/conf/attribute-resolver.xml diff --git a/demo/grouper/idp/shibboleth-idp/conf/idp.properties b/demo/grouper/shibboleth-idp/conf/idp.properties similarity index 100% rename from demo/grouper/idp/shibboleth-idp/conf/idp.properties rename to demo/grouper/shibboleth-idp/conf/idp.properties diff --git a/demo/shibboleth/idp/shibboleth-idp/conf/ldap.properties b/demo/grouper/shibboleth-idp/conf/ldap.properties similarity index 100% rename from demo/shibboleth/idp/shibboleth-idp/conf/ldap.properties rename to demo/grouper/shibboleth-idp/conf/ldap.properties diff --git a/demo/grouper/idp/shibboleth-idp/conf/metadata-providers.xml b/demo/grouper/shibboleth-idp/conf/metadata-providers.xml similarity index 100% rename from demo/grouper/idp/shibboleth-idp/conf/metadata-providers.xml rename to demo/grouper/shibboleth-idp/conf/metadata-providers.xml diff --git a/demo/grouper/shibboleth-idp/metadata/grouper-sp.xml b/demo/grouper/shibboleth-idp/metadata/grouper-sp.xml new file mode 100644 index 0000000..59ce891 --- /dev/null +++ b/demo/grouper/shibboleth-idp/metadata/grouper-sp.xml @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sp.example.org + + CN=sp.example.org,O=Internet2/TIER,L=Ann Arbor,ST=MI,C=US + MIIDoTCCAomgAwIBAgIUXUq8nQrtKzyfKVa4vWPMNypvj3YwDQYJKoZIhvcNAQEL +BQAwYDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1JMRIwEAYDVQQHDAlBbm4gQXJi +b3IxFzAVBgNVBAoMDkludGVybmV0Mi9USUVSMRcwFQYDVQQDDA5zcC5leGFtcGxl +Lm9yZzAeFw0yNDA1MTcxMDI3NTRaFw0zNDA1MTUxMDI3NTRaMGAxCzAJBgNVBAYT +AlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRcwFQYDVQQKDA5J +bnRlcm5ldDIvVElFUjEXMBUGA1UEAwwOc3AuZXhhbXBsZS5vcmcwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdEGX6TqmgRmMsCDNvMyPbjtmpchAsqGDa +Cfuai7lhc2daXOpIzbQKEdMVZBcANAGKUZyAsX0kOnr2m2QL6Qyo2vCUX6J1kNGA +eUxymaXAGC5dwqmWxWwcWX0zGRgr/Vf3fckMALTsoJfJRVAYFMmVULA2s+vCzfSK +lz9S2DGBXL0w32HK5MZtVoE2VTDw4upoMA/qnSId6kD594bfMPJc0UtlrjW854GW +Nza5zUymXIpFzDNNJWj9Ua02ZmXsz8XVZ8OV3MnFu6+IOyyrJo28OO+HbRznBrJB +YNVm7Xp9CcjQqHobfLtIdxA6Fx+hj1A8GUJDVywIP+HwgWK3k7TTAgMBAAGjUzBR +MB0GA1UdDgQWBBRHic4T+LwfBK06uaGCJFcOwmqwETAfBgNVHSMEGDAWgBRHic4T ++LwfBK06uaGCJFcOwmqwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA +A4IBAQAAEYXtBlrKj5ma7DeikxBewrVGR71MUUKNWJJAf+bcZqtVh7+O3NB5uJjh +4zGphzYJOOzFQAqzSwVfVtVD+vD7Kiz6AlA1vMRZYLszaDQfjY/r9NKce2rey/Av +Atj2CY2jYr/39N0LFvRYMJ48sEIkBGcuupRMej2K8BGFhvTpu5n5wWuUhVQWeJKT +OVCaU2N8LbRtGtxpZK/O1Da1Wt6eSKbRXvzVWHAElOygc0/GI8d7JY9lBvw45E/+ +nEoKp74+Ny08HQgDVEG+j2mguWprCtnR3zaI/m/6pQSBo8Sw4t4Df3kL+7wU1Tgx +4ZcnodN4uwnkgzNwTVmH4Eg41CJA + + + + + + + sp.example.org + + CN=sp.example.org,O=Internet2/TIER,L=Ann Arbor,ST=MI,C=US + MIIDoTCCAomgAwIBAgIUXUq8nQrtKzyfKVa4vWPMNypvj3YwDQYJKoZIhvcNAQEL +BQAwYDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1JMRIwEAYDVQQHDAlBbm4gQXJi +b3IxFzAVBgNVBAoMDkludGVybmV0Mi9USUVSMRcwFQYDVQQDDA5zcC5leGFtcGxl +Lm9yZzAeFw0yNDA1MTcxMDI3NTRaFw0zNDA1MTUxMDI3NTRaMGAxCzAJBgNVBAYT +AlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRcwFQYDVQQKDA5J +bnRlcm5ldDIvVElFUjEXMBUGA1UEAwwOc3AuZXhhbXBsZS5vcmcwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCdEGX6TqmgRmMsCDNvMyPbjtmpchAsqGDa +Cfuai7lhc2daXOpIzbQKEdMVZBcANAGKUZyAsX0kOnr2m2QL6Qyo2vCUX6J1kNGA +eUxymaXAGC5dwqmWxWwcWX0zGRgr/Vf3fckMALTsoJfJRVAYFMmVULA2s+vCzfSK +lz9S2DGBXL0w32HK5MZtVoE2VTDw4upoMA/qnSId6kD594bfMPJc0UtlrjW854GW +Nza5zUymXIpFzDNNJWj9Ua02ZmXsz8XVZ8OV3MnFu6+IOyyrJo28OO+HbRznBrJB +YNVm7Xp9CcjQqHobfLtIdxA6Fx+hj1A8GUJDVywIP+HwgWK3k7TTAgMBAAGjUzBR +MB0GA1UdDgQWBBRHic4T+LwfBK06uaGCJFcOwmqwETAfBgNVHSMEGDAWgBRHic4T ++LwfBK06uaGCJFcOwmqwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA +A4IBAQAAEYXtBlrKj5ma7DeikxBewrVGR71MUUKNWJJAf+bcZqtVh7+O3NB5uJjh +4zGphzYJOOzFQAqzSwVfVtVD+vD7Kiz6AlA1vMRZYLszaDQfjY/r9NKce2rey/Av +Atj2CY2jYr/39N0LFvRYMJ48sEIkBGcuupRMej2K8BGFhvTpu5n5wWuUhVQWeJKT +OVCaU2N8LbRtGtxpZK/O1Da1Wt6eSKbRXvzVWHAElOygc0/GI8d7JY9lBvw45E/+ +nEoKp74+Ny08HQgDVEG+j2mguWprCtnR3zaI/m/6pQSBo8Sw4t4Df3kL+7wU1Tgx +4ZcnodN4uwnkgzNwTVmH4Eg41CJA + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/grouper/configs-and-secrets/midpoint/shibboleth/idp-metadata.xml b/demo/grouper/shibboleth-idp/metadata/idp-metadata.xml similarity index 98% rename from demo/grouper/configs-and-secrets/midpoint/shibboleth/idp-metadata.xml rename to demo/grouper/shibboleth-idp/metadata/idp-metadata.xml index 28ae7d1..b273997 100644 --- a/demo/grouper/configs-and-secrets/midpoint/shibboleth/idp-metadata.xml +++ b/demo/grouper/shibboleth-idp/metadata/idp-metadata.xml @@ -202,8 +202,8 @@ p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - + + diff --git a/demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp.xml b/demo/grouper/shibboleth-idp/metadata/midpoint-sp.xml similarity index 92% rename from demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp.xml rename to demo/grouper/shibboleth-idp/metadata/midpoint-sp.xml index 5789ed8..fa0b437 100644 --- a/demo/grouper/idp/shibboleth-idp/metadata/midpoint-sp.xml +++ b/demo/grouper/shibboleth-idp/metadata/midpoint-sp.xml @@ -25,8 +25,8 @@ and do *NOT* provide it in real time to your partners. - - + + @@ -64,8 +64,8 @@ AIW0+dXJ2IyzM+0sv2g4DOsXsnSvinGqjr82A54mXGSr7edhPdlQhILFkJfhTwLq+mjnyQSNe3s2 - - + + diff --git a/demo/grouper/show-queue-size.sh b/demo/grouper/show-queue-size.sh deleted file mode 100755 index 0af6d80..0000000 --- a/demo/grouper/show-queue-size.sh +++ /dev/null @@ -1 +0,0 @@ -docker exec grouper_mq_1 rabbitmqctl list_queues diff --git a/demo/grouper/ssh-tunnel-redir-fix.sh b/demo/grouper/ssh-tunnel-redir-fix.sh deleted file mode 100755 index 42409a9..0000000 --- a/demo/grouper/ssh-tunnel-redir-fix.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# This file is used for trainings with SSH tunnels. -# It will change the hard-coded ports for Shibboleth, but will keep localhost. - -declare -a fileList=( -"configs-and-secrets/midpoint/shibboleth/idp-metadata.xml" -"configs-and-secrets/grouper/shibboleth/idp-metadata.xml" -"idp/shibboleth-idp/metadata/idp-metadata.xml" -"idp/shibboleth-idp/metadata/grouper-sp.xml" -"idp/shibboleth-idp/metadata/midpoint-sp.xml" -"idp/shibboleth-idp/metadata/midpoint-sp-new.xml" -) - -if [ $# -eq 0 ] -then - echo 'Please specify a directory as the first argument (e.g. ".")' - exit -fi - -echo "Working in directory: $1"; -for f in "${fileList[@]}" -do - echo "Replacing in: $1/$f..." - # We cannot SSH tunnel port 443 without root, so using 10443 - sed -i 's#https://localhost/#https://localhost:10443/#g' $f -# sed -i 's#https://localhost:4443/#https://localhost:14443/#g' $f -done - -exit diff --git a/demo/grouper/test-resources.sh b/demo/grouper/test-resources.sh deleted file mode 100755 index 5551e55..0000000 --- a/demo/grouper/test-resources.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -source $(dirname "$0")/../../library.bash - -test_resource 0a37121f-d515-4a23-9b6d-554c5ef61272 -test_resource 4d70a0da-02dd-41cf-b0a1-00e75d3eaa15 -test_resource a343fc2e-3954-4034-ba1a-2b72c21e577a -test_resource e417225d-8a08-46f3-9b5d-624990b52386 -test_resource fe805d13-481b-43ec-97d8-9d2df72cd38e -test_resource 1eff65de-5bb6-483d-9edf-8cc2c2ee0233 - diff --git a/demo/grouper/tests/main.bats b/demo/grouper/tests/main.bats deleted file mode 100644 index 2d9e6b7..0000000 --- a/demo/grouper/tests/main.bats +++ /dev/null @@ -1,304 +0,0 @@ -#!/usr/bin/env bats - -load ../../../common -load ../../../library - -@test "000 Cleanup before running the tests" { - (cd ../simple ; docker-compose down -v) - (cd ../shibboleth ; docker-compose down -v) - docker-compose down -v -} - -@test "010 Initialize and start the composition" { - # We want to fail cleanly if there's any interference - docker ps - ! (docker ps | grep -E "shibboleth_(idp|directory)_1|(grouper|simple|shibboleth|postgresql)_(midpoint_server|midpoint_data)_1") - docker-compose build --pull grouper_daemon grouper_ui grouper_data directory sources midpoint_data idp mq - # Sometimes the tier/midpoint:xyz is not yet in the repository, causing issues with --pull - docker-compose build midpoint_server - docker-compose up -d -} - -@test "020 Wait until components are started" { - touch $BATS_TMPDIR/not-started - wait_for_midpoint_start grouper_midpoint_server_1 grouper_midpoint_data_1 - wait_for_shibboleth_idp_start grouper_idp_1 - wait_for_grouper_ui_start grouper_grouper_ui_1 - rm $BATS_TMPDIR/not-started -} - -@test "040 Check midPoint health" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - check_health -} - -@test "050 Check Shibboleth IDP health" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - check_health_shibboleth_idp -} - -#@test "060 Check Grouper health" { -# if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi -# skip TODO -#} - -@test "100 Get 'administrator'" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - check_health - get_and_check_object users 00000000-0000-0000-0000-000000000002 administrator -} - -@test "110 And and get 'test110'" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - check_health - echo "test110" >/tmp/test110.xml - add_object users /tmp/test110.xml - rm /tmp/test110.xml - search_and_check_object users test110 - delete_object_by_name users test110 -} - -@test "200 Upload objects" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - # reduce data in SIS database so imports will take reasonable time - docker exec grouper_sources_1 mysql sis -u root -p123321 -e "delete from SIS_COURSES where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')" - docker exec grouper_sources_1 mysql sis -u root -p123321 -e "delete from SIS_AFFILIATIONS where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')" - docker exec grouper_sources_1 mysql sis -u root -p123321 -e "delete from SIS_PERSONS where uid not in ('amorrison', 'banderson', 'cmorrison', 'danderson', 'ddavis', 'jsmith', 'kwhite', 'mroberts', 'whenderson', 'wprice')" - - check_health - ./upload-objects.sh - - search_and_check_object objectTemplates template-user - - search_and_check_object archetypes affiliation - search_and_check_object archetypes course - search_and_check_object archetypes department - - search_and_check_object orgs affiliations - search_and_check_object orgs courses - search_and_check_object orgs departments - - search_and_check_object resources "LDAP (directory)" - search_and_check_object resources "Grouper Resource" - search_and_check_object resources "SQL SIS persons (sources)" - - search_and_check_object roles metarole-grouper-provided-group - search_and_check_object roles metarole-ldap-group - search_and_check_object roles role-ldap-basic -} - -@test "210 Test resources" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - test_resource 0a37121f-d515-4a23-9b6d-554c5ef61272 - test_resource 4d70a0da-02dd-41cf-b0a1-00e75d3eaa15 - test_resource a343fc2e-3954-4034-ba1a-2b72c21e577a - test_resource e417225d-8a08-46f3-9b5d-624990b52386 - test_resource fe805d13-481b-43ec-97d8-9d2df72cd38e - test_resource 1eff65de-5bb6-483d-9edf-8cc2c2ee0233 -} - -@test "215 Recompute banderson and sysadmingroup" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - ./recompute.sh -} - -@test "220 Import SIS_PERSONS" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - add_object tasks midpoint-objects-manual/tasks/task-import-sis-persons.xml - search_and_check_object tasks "Import from SIS persons" - wait_for_task_completion 22c2a3d0-0961-4255-9eec-c550a79aeaaa 6 10 - assert_task_success 22c2a3d0-0961-4255-9eec-c550a79aeaaa - - search_and_check_object users jsmith - search_and_check_object users banderson - search_and_check_object users kwhite - search_and_check_object users whenderson - search_and_check_object users ddavis - search_and_check_object users cmorrison - search_and_check_object users danderson - search_and_check_object users amorrison - search_and_check_object users wprice - search_and_check_object users mroberts - - check_ldap_account_by_user_name jsmith grouper_directory_1 - check_ldap_account_by_user_name banderson grouper_directory_1 - check_ldap_account_by_user_name kwhite grouper_directory_1 - check_ldap_account_by_user_name whenderson grouper_directory_1 - check_ldap_account_by_user_name ddavis grouper_directory_1 - check_ldap_account_by_user_name cmorrison grouper_directory_1 - check_ldap_account_by_user_name danderson grouper_directory_1 - check_ldap_account_by_user_name amorrison grouper_directory_1 - check_ldap_account_by_user_name wprice grouper_directory_1 - check_ldap_account_by_user_name mroberts grouper_directory_1 -} - -@test "230 Create ref loaders" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - ./create-ref-loaders.sh -} - -@test "235 Wait for loaders to run" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - sleep 120 -} - -@test "240 Create additional ref groups" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - ./add-ref-groups.sh -} - -#@test "250 Check 'TestUser250' in midPoint and LDAP" { -# if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi -# -# check_health -# echo "TestUser250Test User250TestUser250password" >/tmp/testuser250.xml -# add_object users /tmp/testuser250.xml -# rm /tmp/testuser250.xml -# search_and_check_object users TestUser250 -# -# # probably will not work -# execute_bulk_action tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml grouper_midpoint_server_1 -# -# check_ldap_account_by_user_name TestUser250 grouper_directory_1 -# check_of_ldap_membership TestUser250 "ou=groups,dc=internet2,dc=edu" "sysadmingroup" grouper_directory_1 -# -# delete_object_by_name users TestUser250 -#} - -@test "310 Import Grouper-to-midPoint async update task" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - check_health - add_object tasks midpoint-objects-manual/tasks/task-async-update-grouper.xml - search_and_check_object tasks "Grouper async updates" -} - -@test "320 Wait for the queue to become empty" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - ATTEMPT=0 - MAX_ATTEMPTS=20 - DELAY=10 - - get_messages sampleQueue - echo "Messages: $MESSAGES" - - until [[ $ATTEMPT = $MAX_ATTEMPTS ]]; do - ATTEMPT=$((ATTEMPT+1)) - get_messages sampleQueue - echo "Messages: $MESSAGES" - if [ "$MESSAGES" = "0" ]; then return 0; fi - echo "Waiting $DELAY seconds for the queue to become empty (attempt $ATTEMPT) ..." - sleep $DELAY - done - return 1 -} - -@test "330 Check groups in midPoint and LDAP" { - #skip 'Temporarily disabled because it caused problem in I2 buid system' - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - search_and_check_object orgs course_ACCT101 - search_and_check_object orgs course_ACCT201 - search_and_check_object orgs course_CS251 - search_and_check_object orgs course_CS252 - search_and_check_object orgs course_MATH100 - search_and_check_object orgs course_MATH101 - search_and_check_object orgs course_SCI123 - search_and_check_object orgs course_SCI404 - - check_ldap_courses_by_name course_ACCT101 grouper_directory_1 - check_ldap_courses_by_name course_ACCT201 grouper_directory_1 - check_ldap_courses_by_name course_CS251 grouper_directory_1 - check_ldap_courses_by_name course_CS252 grouper_directory_1 - check_ldap_courses_by_name course_MATH100 grouper_directory_1 - check_ldap_courses_by_name course_MATH101 grouper_directory_1 - check_ldap_courses_by_name course_SCI123 grouper_directory_1 - check_ldap_courses_by_name course_SCI404 grouper_directory_1 -} - -@test "340 Execute triggers and check group membership in LDAP" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - sleep 60 - run_task_now "00000000-0000-0000-0000-000000000007" grouper_midpoint_server_1 - sleep 30 - -# memberships will be there only after triggers are executed - - check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1 - check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1 - check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1 - check_of_ldap_membership whenderson "ou=courses,ou=groups,dc=internet2,dc=edu" "ACCT101" grouper_directory_1 - - check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1 - check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1 - check_of_ldap_membership ddavis "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1 - check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "CS251" grouper_directory_1 - - check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "CS252" grouper_directory_1 - - check_of_ldap_membership danderson "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1 - check_of_ldap_membership ddavis "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1 - check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1 - check_of_ldap_membership wprice "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH100" grouper_directory_1 - - check_of_ldap_membership amorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" grouper_directory_1 - check_of_ldap_membership cmorrison "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" grouper_directory_1 - check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "MATH101" grouper_directory_1 - - check_of_ldap_membership danderson "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI123" grouper_directory_1 - check_of_ldap_membership mroberts "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI123" grouper_directory_1 - - check_of_ldap_membership kwhite "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI404" grouper_directory_1 - check_of_ldap_membership wprice "ou=courses,ou=groups,dc=internet2,dc=edu" "SCI404" grouper_directory_1 -} - -@test "400 Suspend async update task" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - suspend_task 47fc57bd-8c34-4555-9b9f-7087ff179860 grouper_midpoint_server_1 - wait_for_task_completion 47fc57bd-8c34-4555-9b9f-7087ff179860 5 10 -} - -@test "410 Add wprice to 'ref:affiliation:alum_includes' groups" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - docker cp tests/resources/grouper/t410.gsh grouper_grouper_daemon_1:/tmp/ - docker exec grouper_grouper_daemon_1 bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/t410.gsh" -} - -@test "420 Reconcile Grouper" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - add_object tasks midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml - search_and_check_object tasks "Grouper reconciliation (groups)" - wait_for_task_completion 605a0127-a313-442a-9d5e-151eac8b0745 6 10 - assert_task_success 605a0127-a313-442a-9d5e-151eac8b0745 -} - -@test "430 Recompute users" { - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - add_object tasks midpoint-objects-manual/tasks/task-recomputation-users.xml - search_and_check_object tasks "User recomputation" - wait_for_task_completion 83a737ea-5eb7-4e78-b431-331cccf02354 6 10 - assert_task_success 83a737ea-5eb7-4e78-b431-331cccf02354 -} - -@test "440 Check wprice group membership in LDAP" { - #skip 'Temporarily disabled because it caused problem in I2 buid system' - if [ -e $BATS_TMPDIR/not-started ]; then skip 'not started'; fi - - check_of_ldap_membership wprice "ou=Affiliations,ou=Groups,dc=internet2,dc=edu" "alum" grouper_directory_1 -} - -@test "999 Clean up" { - docker-compose down -v -} diff --git a/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-banderson.xml b/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-banderson.xml deleted file mode 100644 index 9ec69a2..0000000 --- a/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-banderson.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - c:UserType - - - c:name - banderson - - - - assign - - role - d48ec05b-fffd-4262-acd3-d9ff63365b62 - - - - diff --git a/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml b/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml deleted file mode 100644 index f8c84b3..0000000 --- a/demo/grouper/tests/resources/bulk-action/assign-role-grouper-sysadmin-to-test-user.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - c:UserType - - - c:name - TestUser250 - - - - assign - - role - d48ec05b-fffd-4262-acd3-d9ff63365b62 - - - - diff --git a/demo/grouper/tests/resources/bulk-action/recompute-role-grouper-sysadmin.xml b/demo/grouper/tests/resources/bulk-action/recompute-role-grouper-sysadmin.xml deleted file mode 100644 index 1356484..0000000 --- a/demo/grouper/tests/resources/bulk-action/recompute-role-grouper-sysadmin.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - c:RoleType - - - name - role-grouper-sysadmin - - - - recompute - - - diff --git a/demo/grouper/tests/resources/grouper/old-t410.gsh b/demo/grouper/tests/resources/grouper/old-t410.gsh deleted file mode 100644 index 69e4b18..0000000 --- a/demo/grouper/tests/resources/grouper/old-t410.gsh +++ /dev/null @@ -1,11 +0,0 @@ -System.out.println("************** t410.gsh starting **************"); - -gs = GrouperSession.startRootSession() - -testGroup = GroupFinder.findByName(gs, 'midpoint:test') -kwhite = SubjectFinder.findById('kwhite', 'person', 'ldap') -wprice = SubjectFinder.findById('wprice', 'person', 'ldap') -testGroup.deleteMember(kwhite, false) -testGroup.deleteMember(wprice, false) - -System.out.println("************** t410.gsh done **************"); diff --git a/demo/grouper/tests/resources/grouper/t300.gsh b/demo/grouper/tests/resources/grouper/t300.gsh deleted file mode 100644 index d2b63e3..0000000 --- a/demo/grouper/tests/resources/grouper/t300.gsh +++ /dev/null @@ -1,15 +0,0 @@ -System.out.println("************** t300.gsh starting **************"); - -gs = GrouperSession.startRootSession() - -exportedGroups = GroupFinder.findByName(gs, 'etc:exportedGroups') -alumSubject = SubjectFinder.findByIdentifier('ref:affiliation:alum', 'group', 'g:gsa') -exportedGroups.addMember(alumSubject, false) - -alumIncludes = GroupFinder.findByName(gs, 'ref:affiliation:alum_includes') -testGroup = GroupFinder.findByName(gs, 'etc:testGroup') -wprice = SubjectFinder.findById('wprice', 'person', 'ldap') -alumIncludes.addMember(wprice, false) -testGroup.addMember(wprice, false) - -System.out.println("************** t300.gsh done **************"); diff --git a/demo/grouper/tests/resources/grouper/t350.gsh b/demo/grouper/tests/resources/grouper/t350.gsh deleted file mode 100644 index d0d2d3e..0000000 --- a/demo/grouper/tests/resources/grouper/t350.gsh +++ /dev/null @@ -1,12 +0,0 @@ -System.out.println("************** t350.gsh starting **************"); - -gs = GrouperSession.startRootSession() - -alumIncludes = GroupFinder.findByName(gs, 'ref:affiliation:alum_includes') -testGroup = GroupFinder.findByName(gs, 'midpoint:test') -kwhite = SubjectFinder.findById('kwhite', 'person', 'ldap') -wprice = SubjectFinder.findById('wprice', 'person', 'ldap') -testGroup.addMember(kwhite, false) -alumIncludes.deleteMember(wprice, false) - -System.out.println("************** t350.gsh done **************"); diff --git a/demo/grouper/tests/resources/grouper/t410.gsh b/demo/grouper/tests/resources/grouper/t410.gsh deleted file mode 100644 index 5c803bd..0000000 --- a/demo/grouper/tests/resources/grouper/t410.gsh +++ /dev/null @@ -1,9 +0,0 @@ -System.out.println("************** t410.gsh starting **************"); - -gs = GrouperSession.startRootSession() - -alumIncludesGroup = GroupFinder.findByName(gs, 'ref:affiliation:alum_includes') -wprice = SubjectFinder.findById('wprice', 'person', 'ldap') -alumIncludesGroup.addMember(wprice, false) - -System.out.println("************** t410.gsh done **************"); diff --git a/demo/grouper/tests/resources/rabbitmq/check-samplequeue.sh b/demo/grouper/tests/resources/rabbitmq/check-samplequeue.sh deleted file mode 100755 index e336a63..0000000 --- a/demo/grouper/tests/resources/rabbitmq/check-samplequeue.sh +++ /dev/null @@ -1,8 +0,0 @@ -count=$(rabbitmqctl list_queues | grep sampleQueue | awk '{print $2}') -if [[ -z $count || $count -eq 0 ]]; then - echo "ERROR: sampleQueue does not exist or is empty" - exit 1 -else - echo "OK: sampleQueue has $count message(s)" - exit 0 -fi diff --git a/demo/grouper/tests/resources/tasks/task-livesync-grouper-single.xml b/demo/grouper/tests/resources/tasks/task-livesync-grouper-single.xml deleted file mode 100644 index 365d007..0000000 --- a/demo/grouper/tests/resources/tasks/task-livesync-grouper-single.xml +++ /dev/null @@ -1,29 +0,0 @@ - - LiveSync from Grouper - - account - ri:AccountObjectClass - - 1535465478027-0-1 - - runnable - LiveSynchronization - http://midpoint.evolveum.com/xml/ns/public/model/synchronization/task/live-sync/handler-3 - - single - loose - diff --git a/demo/grouper/tests/resources/users/user-grouper-admin.xml b/demo/grouper/tests/resources/users/user-grouper-admin.xml deleted file mode 100644 index d785e47..0000000 --- a/demo/grouper/tests/resources/users/user-grouper-admin.xml +++ /dev/null @@ -1,20 +0,0 @@ - - grouper-admin - - - - - - Grouper admin - Grouper - Admin - - - password - - - - diff --git a/demo/grouper/update-bgasper-in-grouper.gsh b/demo/grouper/update-bgasper-in-grouper.gsh deleted file mode 100644 index b0ed0b2..0000000 --- a/demo/grouper/update-bgasper-in-grouper.gsh +++ /dev/null @@ -1,13 +0,0 @@ - -def add(gs,groupName,subject) { - GroupFinder.findByName(gs, groupName, true).addMember(subject, false) -} - -gs = GrouperSession.startRootSession() - -def bgasper = SubjectFinder.findById('bgasper', 'user', 'ldap') -add(gs, 'ref:affiliation:alum_excludes', bgasper) -add(gs, 'ref:affiliation:faculty_includes', bgasper) -add(gs, 'app:mailinglist:chess', bgasper) -add(gs, 'app:mailinglist:idm-fans', bgasper) -add(gs, 'test:volunteers', bgasper) diff --git a/demo/grouper/update-bgasper-in-grouper.sh b/demo/grouper/update-bgasper-in-grouper.sh deleted file mode 100755 index 31abf04..0000000 --- a/demo/grouper/update-bgasper-in-grouper.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -execute_gsh grouper_grouper_daemon_1 update-bgasper-in-grouper.gsh diff --git a/demo/grouper/upload-async-update-task.sh b/demo/grouper/upload-async-update-task.sh deleted file mode 100755 index bdf8ba2..0000000 --- a/demo/grouper/upload-async-update-task.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -upload_from_file midpoint-objects-manual/tasks/task-async-update-grouper.xml diff --git a/demo/grouper/upload-import-sis-persons.sh b/demo/grouper/upload-import-sis-persons.sh deleted file mode 100755 index 058c9af..0000000 --- a/demo/grouper/upload-import-sis-persons.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -upload_from_file midpoint-objects-manual/tasks/task-import-sis-persons.xml diff --git a/demo/grouper/upload-objects.sh b/demo/grouper/upload-objects.sh deleted file mode 100755 index 93f8a15..0000000 --- a/demo/grouper/upload-objects.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/bin/bash - -function upload () { - local filename=$1 - local regex="midpoint-objects/(.*)/(.*)" - if [[ $filename =~ $regex ]] - then - type="${BASH_REMATCH[1]}" - oid=`cat $filename | sed -n 's:.*oid=\"\([A-Za-z0-9\-]*\)\".*:\1:p' | sed -n '1 p'` - echo "Uploading $filename ($type, $oid)" - curl -k --user administrator:Password1 -H "Content-Type: application/xml" -X PUT "https://localhost:8443/midpoint/ws/rest/$type/$oid?options=overwrite&options=raw" --data-binary @$filename - else - echo "Skipping $filename" - fi -} - -find midpoint-objects -name "*.xml" | while read filename; do upload $filename; done diff --git a/demo/grouper/upload-recompute-users.sh b/demo/grouper/upload-recompute-users.sh deleted file mode 100755 index 42b5551..0000000 --- a/demo/grouper/upload-recompute-users.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -upload_from_file midpoint-objects-manual/tasks/task-recomputation-users.xml diff --git a/demo/grouper/upload-reconcile-grouper-groups.sh b/demo/grouper/upload-reconcile-grouper-groups.sh deleted file mode 100755 index 94deb18..0000000 --- a/demo/grouper/upload-reconcile-grouper-groups.sh +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -source ../../library.bash - -upload_from_file midpoint-objects-manual/tasks/task-reconciliation-grouper-groups.xml diff --git a/container_files/httpd/conf/midpoint.conf.auth.shibboleth b/demo/shibboleth-apache-sp/apache/httpd/conf.d/midpoint.conf similarity index 52% rename from container_files/httpd/conf/midpoint.conf.auth.shibboleth rename to demo/shibboleth-apache-sp/apache/httpd/conf.d/midpoint.conf index e8fcc24..20aa6d2 100644 --- a/container_files/httpd/conf/midpoint.conf.auth.shibboleth +++ b/demo/shibboleth-apache-sp/apache/httpd/conf.d/midpoint.conf @@ -3,7 +3,7 @@ Timeout 2400 ProxyTimeout 2400 ProxyBadHeader Ignore -ProxyPass /midpoint ajp://localhost:9090/midpoint secret=s3cr3t timeout=2400 retry=0 +ProxyPass /midpoint ajp://midpoint_server:9090/midpoint secret=s3cr3t timeout=2400 retry=0 AuthType shibboleth @@ -19,3 +19,19 @@ ProxyPass /midpoint ajp://localhost:9090/midpoint secret=s3cr3t timeout=2400 ret AuthType None Require all granted + + + AuthType shibboleth + ShibRequestSetting requireSession 1 + ShibRequireSession on + ShibUseHeaders On + require shibboleth + + + + AuthType shibboleth + ShibRequestSetting requireSession false + ShibUseHeaders On + require shibboleth + + diff --git a/demo/shibboleth-apache-sp/apache/httpd/conf.d/ssl-enable.conf b/demo/shibboleth-apache-sp/apache/httpd/conf.d/ssl-enable.conf new file mode 100644 index 0000000..b529fa2 --- /dev/null +++ b/demo/shibboleth-apache-sp/apache/httpd/conf.d/ssl-enable.conf @@ -0,0 +1,18 @@ + + RewriteEngine on + RewriteRule "^/$" "/midpoint/" [R] + + + SSLEngine on + + SSLCertificateFile /etc/httpd/certs/host-cert.pem + + SSLCertificateKeyFile /etc/httpd/certs/host-key.pem + + # HSTS (mod_headers is required) (15768000 seconds = 6 months) + Header always set Strict-Transport-Security "max-age=15768000" + + RewriteRule "^/midpoint/$" "/midpoint/auth/shib" [R] + + + diff --git a/demo/shibboleth/configs-and-secrets/midpoint/shibboleth/attribute-map.xml b/demo/shibboleth-apache-sp/apache/shibboleth/attribute-map.xml similarity index 100% rename from demo/shibboleth/configs-and-secrets/midpoint/shibboleth/attribute-map.xml rename to demo/shibboleth-apache-sp/apache/shibboleth/attribute-map.xml diff --git a/demo/shibboleth/configs-and-secrets/midpoint/shibboleth/shibboleth2.xml b/demo/shibboleth-apache-sp/apache/shibboleth/shibboleth2.xml similarity index 100% rename from demo/shibboleth/configs-and-secrets/midpoint/shibboleth/shibboleth2.xml rename to demo/shibboleth-apache-sp/apache/shibboleth/shibboleth2.xml diff --git a/demo/shibboleth-apache-sp/beacon/Dockerfile b/demo/shibboleth-apache-sp/beacon/Dockerfile new file mode 100644 index 0000000..68339b6 --- /dev/null +++ b/demo/shibboleth-apache-sp/beacon/Dockerfile @@ -0,0 +1,14 @@ +FROM rockylinux:9.3 + +COPY container_files/* /opt/tier/ + +RUN dnf update -y --disablerepo=\* --enablerepo=baseos && \ + dnf install -y cronie-anacron crontabs cronie --disablerepo=\* --enablerepo=baseos && \ + dnf clean all -y ; \ + /opt/tier/setup-cron.sh ; + +ENV TIER_RELEASE=not-released-yet \ + TIER_MAINTAINER=tier \ + MP_VERSION=4.8 + +CMD [ "/usr/sbin/crond", "-n", "-i", "-m", "off" ] diff --git a/demo/shibboleth-apache-sp/beacon/container_files/sendtierbeacon.sh b/demo/shibboleth-apache-sp/beacon/container_files/sendtierbeacon.sh new file mode 100755 index 0000000..8f066f7 --- /dev/null +++ b/demo/shibboleth-apache-sp/beacon/container_files/sendtierbeacon.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +LOGHOST="collector.testbed.tier.internet2.edu" +LOGPORT="5001" + +if [ -s /opt/tier/env.bash ]; then + . /opt/tier/env.bash +fi + +messagefile="/tmp/beaconmsg" + +if [ -z "$TIER_BEACON_OPT_OUT" ]; then + cat > $messagefile </dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "TIER beacon sent" + else + echo "Failed to send TIER beacon" + fi + + rm -f $messagefile 1>/dev/null 2>&1 + +else + echo "TIER beacon skipped - scheduled but Opted out" +fi diff --git a/demo/shibboleth-apache-sp/beacon/container_files/setup-cron.sh b/demo/shibboleth-apache-sp/beacon/container_files/setup-cron.sh new file mode 100755 index 0000000..2d33d3a --- /dev/null +++ b/demo/shibboleth-apache-sp/beacon/container_files/setup-cron.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +CRONFILE=/opt/tier/tier-cron + +echo "#send daily \"beacon\" to central" > ${CRONFILE} +echo "" >> ${CRONFILE} +echo "# ┌───────────── minute (0–59)" >> ${CRONFILE} +echo "# │ ┌───────────── hour (0–23)" >> ${CRONFILE} +echo "# │ │ ┌───────────── day of the month (1–31)" >> ${CRONFILE} +echo "# │ │ │ ┌───────────── month (1–12)" >> ${CRONFILE} +echo "# │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday;" >> ${CRONFILE} +echo "# │ │ │ │ │ 7 is also Sunday on some systems)" >> ${CRONFILE} +echo "# │ │ │ │ │" >> ${CRONFILE} +echo "# │ │ │ │ │" >> ${CRONFILE} +echo "# * * * * * " >> ${CRONFILE} +echo "" >> ${CRONFILE} +echo "$(expr $RANDOM % 60) $(expr $RANDOM % 4) * * * /opt/tier/sendtierbeacon.sh 2>&1 | tee /proc/1/fd/1 >> /tmp/logcrond" >> ${CRONFILE} +echo "" >> ${CRONFILE} +echo "# List the current setting of the crontab to the log (when is the beacon scheduled)" >> ${CRONFILE} +echo "@reboot crontab -l >/proc/1/fd/1" >> ${CRONFILE} +echo "" >> ${CRONFILE} + +chmod 644 ${CRONFILE} +crontab ${CRONFILE} diff --git a/demo/shibboleth-apache-sp/directory/Dockerfile b/demo/shibboleth-apache-sp/directory/Dockerfile new file mode 100644 index 0000000..4880156 --- /dev/null +++ b/demo/shibboleth-apache-sp/directory/Dockerfile @@ -0,0 +1,35 @@ +FROM rockylinux:9.3 as baseinst + +RUN dnf update -y && \ + dnf install -y --enablerepo=devel openldap openldap-clients openldap-servers && \ + dnf clean all && \ + rm -rf /var/cache/dnf + +EXPOSE 389/tcp + +VOLUME /var/lib/ldap + +FROM baseinst + +#LABEL author="tier-packaging@internet2.edu " + +ARG ldapDomain="dc=internet2,dc=edu" +ARG ldapPw="password" + +COPY container_files/* /opt + +RUN cd /opt ; \ + /opt/slapd.sh -init ; \ + /opt/gen_config_update "${ldapDomain}" "${ldapPw}" "0" "0" ;\ + cat 999_schema-list | while read line ; do \ + ldapadd -H ldapi:/// -f /etc/openldap/schema/${line}.ldif ; \ + done ; \ + for s in 0 1 2 3 4 5 6 7 8 9 ; do \ + find -type f -name "${s}[0-4]?_*.ldif" -exec ldapmodify -H ldapi:/// -f /opt/\{\} \; ; \ + find -type f -name "${s}[5-9]?_*.ldif" -exec ldapadd -H ldapi:/// -f /opt/\{\} \; ; \ + done ; \ + rm /opt/[0-9]* && \ + /opt/slapd.sh -stop ; + +CMD [ "/opt/slapd.sh", "-limit", "1024", "-debug", "256" ] + diff --git a/demo/shibboleth-apache-sp/directory/container_files/gen_config_update b/demo/shibboleth-apache-sp/directory/container_files/gen_config_update new file mode 100755 index 0000000..a23fccc --- /dev/null +++ b/demo/shibboleth-apache-sp/directory/container_files/gen_config_update @@ -0,0 +1,203 @@ +#!/bin/bash +domain="${1:-dc=example,dc=com}" +if [ $(echo -n ${domain} | wc -c ) -eq $(echo -n ${domain} | tr -d "," | wc -c) ] +then + subDomain="${domain:4}" +else + subDomain="$(echo -n ${domain:4} | cut -d , -f 1)" +fi +userpw="${2:-change_me}" +cleartext="${3:-0}" +locDebug="${4:-0}" + +function genPass() { + retVal="userPassword:" + if [ "${cleartext}" != "1" ] + then + secPw="$(slappasswd -s ${userpw})" + secPw2="$(echo -n ${secPw} | base64 )" + [ "${locDebug}" != "0" ] && echo "${userpw} => ${secPw} => ${secPw2}" >&2 + retVal="${retVal}: ${secPw2}" + else + [ "${locDebug}" != "0" ] && echo "${userpw}" >&2 + retVal="${retVal} ${userpw}" + fi + while [ ${#retVal} -gt 78 ] + do + echo "${retVal:0:78}" + retVal=" ${retVal:78}" + done + if [ ${#retVal} -gt 2 ] + then + echo "${retVal}" + fi +} + +cat >999_schema-list <001_monitor-diff.ldif <101_mdb-diff.ldif <251_mod_config.ldif <151_default_structure.ldif <252_default_policy.ldif <851_default_structure.ldif <959_default_structure.ldif <&2 + ulimit -n ${localLimit} + exec /usr/sbin/slapd -4 -h "ldapi:///" -u ldap -g ldap + exit 0 + ;; + stop) + while read line + do + kill ${line} + count=0 + while [ -e /proc/${line} ] + do + [ ${count} -gt 10 ] && kill -9 ${line} + echo "Waiting to terminate the process" + count=$(( ${count} + 1 )) + sleep 1 + done + echo "Terminated..." + ${0} -stop + done < <( grep "^slapd$" /proc/*/comm | head -1 | cut -d / -f 3 ) + exit 0 + ;; + esac +done + +ulimit -n ${localLimit} + + +if [ -z ${LDAP_INIT+x} ] +then + [ ! -z ${LDAP_INFO+x} ] && echo "uLimit : ${localLimit} / debug level : ${debugLevel}" >&2 + exec /usr/sbin/slapd -h "ldap://0.0.0.0:389 ldapi:///" -u ldap -g ldap -d ${debugLevel} +else + [ ! -z ${LDAP_INFO+x} ] && echo "uLimit : ${localLimit}" >&2 + exec /usr/sbin/slapd -4 -h "ldapi:///" -u ldap -g ldap +fi + diff --git a/demo/shibboleth-apache-sp/docker-compose.yml b/demo/shibboleth-apache-sp/docker-compose.yml new file mode 100644 index 0000000..499eb50 --- /dev/null +++ b/demo/shibboleth-apache-sp/docker-compose.yml @@ -0,0 +1,328 @@ +version: "3.3" + +services: + prereq: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + command: > + bash -c " + echo ' - - - - - - -' ; + cd /mnt/security ; + if [ ! -e key.pem ] ; + then + echo 'Certificate has not been found. Generating of the new one...' ; + openssl req -newkey rsa:2048 -keyout key.pem -nodes -subj '/C=US/ST=MI/L=Ann Arbor/O=Internet2\\/TIER/CN=midpoint.sp.example.org' -addext 'subjectAltName = DNS:midpoint.sp.example.org, DNS:midpoint_server, DNS:directory, DNS:idp, DNS: localhost, DNS: localhost.localdomain, IP:127.0.0.1, IP:::1' -out cert.pem -days 1825 -x509 ; + openssl req -newkey rsa:3072 -keyout sp-encrypt-key.pem -nodes -subj '/CN=sptest.example.edu' -addext 'subjectAltName = DNS:sptest.example.edu' -out sp-encrypt-cert.pem -days 3650 -x509 ; + openssl req -newkey rsa:3072 -keyout sp-signing-key.pem -nodes -subj '/CN=sptest.example.edu' -addext 'subjectAltName = DNS:sptest.example.edu' -out sp-signing-cert.pem -days 3650 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-backchannel.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-backchannel.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-encryption.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-encryption.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-signing.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-signing.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-browser.key -nodes -subj '/CN=idp.ccc.local' -addext 'authorityKeyIdentifier = keyid:always,issuer:always' -out idp-browser.crt -days 10585 -x509 ; + openssl x509 -noout -fingerprint -sha256 -in cert.pem ; + openssl pkcs12 -export -in sp-signing-cert.pem -inkey sp-signing-key.pem -out signing-key.p12 -passout pass:password -name signing-key ; + openssl pkcs12 -export -in sp-encrypt-cert.pem -inkey sp-encrypt-key.pem -out encrypt-key.p12 -passout pass:password -name encrypt-key ; + openssl pkcs12 -export -in cert.pem -inkey key.pem -out keystore.p12 -passout pass:password -name selfsigned ; + keytool -importkeystore -srckeystore encrypt-key.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias encrypt-key -destkeystore shibboleth_sp_keys.jks -deststoretype jks -deststorepass changeit -noprompt -destalias encrypt-key ; + keytool -importkeystore -srckeystore signing-key.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias signing-key -destkeystore shibboleth_sp_keys.jks -deststoretype jks -deststorepass changeit -noprompt -destalias signing-key ; + keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias selfsigned -destkeystore keystore.jks -deststoretype jks -deststorepass password -noprompt -destalias selfsigned ; + keytool -list -keystore shibboleth_sp_keys.jks -storetype jceks -storepass changeit ; + keytool -list -keystore keystore.jks -storetype jceks -storepass password ; + openssl pkcs12 -export -in idp-backchannel.crt -inkey idp-backchannel.key -out idp-backchannel.p12 -passout pass:password -name idptestbed ; + openssl pkcs12 -export -in idp-browser.crt -inkey idp-browser.key -out idp-browser.p12 -passout pass:password -name myAlias ; + for s in *ert.pem *.crt ; do echo ' - - - - - ' ; echo $${s} ; openssl x509 -noout -fingerprint -sha256 -in $${s} ; echo ; openssl x509 -noout -subject -subject_hash -dates -in $${s} ; done ; + echo ' - - - - - ' ; + mkdir /mnt/httpd/certs ; + cp cert.pem /mnt/httpd/certs/host-cert.pem ; + cp key.pem /mnt/httpd/certs/host-key.pem ; + cp cert.pem /mnt/midpoint/var ; + cp -v /mnt/apache/httpd/conf.d/* /mnt/httpd/conf.d ; + cp -v /mnt/apache/httpd/conf.modules.d/* /mnt/httpd/conf.modules.d ; + cp -v /mnt/apache/shibboleth/* /mnt/shibboleth-sp ; + cp -v sp-encrypt-cert.pem /mnt/shibboleth-sp ; + cp -v sp-encrypt-key.pem /mnt/shibboleth-sp ; + cp -v sp-signing-cert.pem /mnt/shibboleth-sp ; + cp -v sp-signing-key.pem /mnt/shibboleth-sp ; + cp idp-backchannel.crt /mnt/shibboleth-idp/credentials ; + cp idp-backchannel.p12 /mnt/shibboleth-idp/credentials ; + cp idp-browser.p12 /mnt/shibboleth-idp/credentials ; + cp idp-encryption.crt /mnt/shibboleth-idp/credentials ; + cp idp-encryption.key /mnt/shibboleth-idp/credentials ; + cp idp-signing.crt /mnt/shibboleth-idp/credentials ; + cp idp-signing.key /mnt/shibboleth-idp/credentials ; + cp sp-signing-cert.pem /mnt/shibboleth-idp/credentials ; + cp sp-encrypt-cert.pem /mnt/shibboleth-idp/credentials ; + cp keystore.jks /mnt/shibboleth/certs ; + echo ' - - - - - ' ; + find -type f ; + echo ' - - - - - - -' ; + find /mnt/shibboleth-idp/ -type f ; + echo ' - - - - - - -' ; + find /mnt/shibboleth -type f ; + echo ' - - - - - - -' ; + find /mnt/midpoint/ -type f ; + echo ' - - - - - - -' ; + else echo 'certificate already exists... (skip new cert generation)' ; + fi ; + if [ ! -e /mnt/shared_pw/db_pass ] ; then + echo 'Generating password for DB connection...'; + dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d -c [0-9a-z] | cut -c 1-32 | tr -d [[:space:]] > /mnt/shared_pw/db_pass ; + fi ; + " + networks: + - net + volumes: + - security_object:/mnt/security + - shared_pw:/mnt/shared_pw + - idp_credentials:/mnt/shibboleth-idp/credentials + - idp_certs:/mnt/shibboleth/certs + - midpoint_home:/mnt/midpoint/var + - apache_conf:/mnt/httpd + - shibboleth_conf:/mnt/shibboleth-sp + - ./apache:/mnt/apache:ro + + midpoint_data: + image: postgres:16-alpine + depends_on: + prereq: + condition: service_completed_successfully + environment: + - POSTGRES_PASSWORD_FILE=/mnt/shared_pw/db_pass + - POSTGRES_USER=midpoint + - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -d midpoint -U midpoint" ] + interval: 1s + timeout: 5s + retries: 10 + networks: + - net + volumes: + - midpoint_data:/var/lib/postgresql/data + - shared_pw:/mnt/shared_pw + + data_init: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + depends_on: + prereq: + condition: service_completed_successfully + midpoint_data: + condition: service_healthy + command: > + bash -c " + cd /opt/midpoint ; + bin/midpoint.sh init-native ; + echo ' - - - - - - ' ; + bin/ninja.sh -B info >/dev/null 2>/tmp/ninja.log ; + grep -q \"ERROR\" /tmp/ninja.log && ( + bin/ninja.sh run-sql --create --mode REPOSITORY ; + bin/ninja.sh run-sql --create --mode AUDIT + ) || + echo -e '\\n Repository init is not needed...' ; + if [ $$(keytool -list -keystore /opt/midpoint/var/keystore.jceks -storetype jceks -storepass:file /opt/midpoint/var/keystorepw | grep -c 'local_gen_cert') -eq 0 ] ; + then + keytool -importcert -keystore /opt/midpoint/var/keystore.jceks -storetype jceks -storepass:file /opt/midpoint/var/keystorepw -trustcacerts -alias 'local_gen_cert' -file /opt/midpoint/var/cert.pem -noprompt ; + else + echo 'Certificate exists in the cert store' ; + fi ; + " + environment: + - MP_SET_midpoint_repository_jdbcUsername=midpoint + - MP_SET_midpoint_repository_jdbcPassword_FILE=/mnt/shared_pw/db_pass + - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint + - MP_SET_midpoint_repository_database=postgresql + - MP_INIT_CFG=/opt/midpoint/var + - MP_PW_DEF=/opt/midpoint/var/keystorepw + - MP_KEYSTORE=/opt/midpoint/var/keystore.jceks + networks: + - net + volumes: + - midpoint_home:/opt/midpoint/var + - shared_pw:/mnt/shared_pw + + midpoint_server: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + container_name: midpoint_server + hostname: midpoint-container + depends_on: + data_init: + condition: service_completed_successfully + idp_vol_init: + condition: service_completed_successfully + midpoint_data: + condition: service_healthy + command: [ "/opt/midpoint/bin/midpoint.sh", "container" ] + expose: + - 8080 + environment: + - MP_SET_midpoint_repository_jdbcUsername=midpoint + - MP_SET_midpoint_repository_jdbcPassword_FILE=/mnt/shared_pw/db_pass + - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint + - MP_SET_midpoint_repository_database=postgresql + - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/midpoint/var/keystorepw + - MP_SET_server_port=8080 + - MP_SET_server_tomcat_ajp_enabled=true + - MP_SET_server_tomcat_ajp_address="0.0.0.0" + - MP_SET_server_tomcat_ajp_port=9090 + - MP_SET_server_tomcat_ajp_secret=s3cr3t + - MP_SET_midpoint_administrator_initialPassword=Test5ecr3t + - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1 + - MP_NO_ENV_COMPAT=1 + - MP_ENTRY_POINT=/opt/midpoint-dirs-docker-entrypoint + networks: + - net + volumes: + - midpoint_home:/opt/midpoint/var + - shared_pw:/mnt/shared_pw + - ./midpoint_server/post-initial-objects:/opt/midpoint-dirs-docker-entrypoint/post-initial-objects:ro + - ./midpoint_server/shibboleth:/opt/midpoint-dirs-docker-entrypoint/shibboleth:ro + + directory: + build: ./directory/ + ports: + - 389:389 + networks: + - net + volumes: + - ldap:/var/lib/ldap + + idp_vol_init: + image: tier/shib-idp:3.4.6_20191002 + depends_on: + prereq: + condition: service_completed_successfully + ulimits: + nofile: + soft: 1024 + hard: 2048 + command: > + bash -c " + echo 'Updating configuration...' ; + if [ -e /mnt/shibboleth-diff/conf ] ; + then + cp -vu /mnt/shibboleth-diff/conf/* /opt/shibboleth-idp/conf ; + fi ; + if [ -e /mnt/shibboleth-diff/credentials ] ; + then + cp -vu /mnt/shibboleth-diff/credentials/* /opt/shibboleth-idp/credentials ; + fi ; + if [ -e /mnt/shibboleth-diff/metadata ] ; + then + cp -vu /mnt/shibboleth-diff/metadata/* /opt/shibboleth-idp/metadata ; + fi ; + echo ' - - - - - - -' ; + echo 'Updating idp-metadata.xml file...' ; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/idp-metadata.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/idp-metadata.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - idp-backchannel.crt - idp-signing.crt - idp-encryption.crt - idp-backchannel.crt - idp-signing.crt - idp-encryption.crt - ) ; + rm /opt/shibboleth-idp/metadata/idp-metadata.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/idp-metadata.xml >> /opt/shibboleth-idp/metadata/idp-metadata.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/idp-metadata.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + cp -v /opt/shibboleth-idp/metadata/idp-metadata.xml /mnt/shibboleth/idp-metadata.xml ; + echo ' - - - - - - -' ; + echo 'Updating midpoint-shib-sp.xml...'; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/midpoint-shib-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/midpoint-shib-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - sp-signing-cert.pem - sp-encrypt-cert.pem - ) ; + rm /opt/shibboleth-idp/metadata/midpoint-shib-sp.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/midpoint-shib-sp.xml >> /opt/shibboleth-idp/metadata/midpoint-shib-sp.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/midpoint-shib-sp.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + sed -i \"s/\\([[:space:]]\\).*$$/\\1/g;s/^[[:space:]]\\(\\).*$$/\\1/g\" /opt/shibboleth-idp/metadata/midpoint-shib-sp.xml ; + echo ' - - - - - - -' ; + echo 'Generating sealer key...' ; + rm /opt/shibboleth-idp/credentials/sealer.* ; + /opt/shibboleth-idp/bin/rotateSealerKey.sh ; + echo ' - - - - - - -' ; + echo 'DONE.' ; + " + volumes: + - idp_conf:/opt/shibboleth-idp/conf + - idp_credentials:/opt/shibboleth-idp/credentials + - idp_metadata:/opt/shibboleth-idp/metadata + - ./shibboleth-idp:/mnt/shibboleth-diff:ro + - shibboleth_conf:/mnt/shibboleth + + idp: + image: tier/shib-idp:3.4.6_20191002 + depends_on: + directory: + condition: service_started + idp_vol_init: + condition: service_completed_successfully + ports: + - 443:443 + ulimits: + nofile: + soft: 1024 + hard: 2048 + environment: + - JETTY_MAX_HEAP=64m + - JETTY_BROWSER_SSL_KEYSTORE_PASSWORD=password + - JETTY_BACKCHANNEL_SSL_KEYSTORE_PASSWORD=password + networks: + - net + volumes: + - idp_conf:/opt/shibboleth-idp/conf + - idp_credentials:/opt/shibboleth-idp/credentials + - idp_metadata:/opt/shibboleth-idp/metadata + - idp_certs:/opt/certs + + beacon: + build: ./beacon/ + networks: + - net + environment: + - TIER_RELEASE=not-released-yet + - TIER_MAINTAINER=tier + - MP_VERSION=4.8 + - TIER_BEACON_OPT_OUT=true + + proxy: + image: i2incommon/shibboleth_sp:3.4.1_06122023_rocky8_multiarch + depends_on: + idp: + condition: service_started + idp_vol_init: + condition: service_completed_successfully + midpoint_server: + condition: service_started + networks: + - net + ports: + - 8443:443 + volumes: + - apache_conf:/etc/httpd + - shibboleth_conf:/etc/shibboleth + +networks: + net: + driver: bridge + +volumes: + security_object: + midpoint_data: + midpoint_home: + idp_conf: + idp_credentials: + idp_metadata: + idp_certs: + apache_conf: + shibboleth_conf: + ldap: + shared_pw: diff --git a/demo/shibboleth-apache-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml b/demo/shibboleth-apache-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml new file mode 100644 index 0000000..8396297 --- /dev/null +++ b/demo/shibboleth-apache-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml @@ -0,0 +1,88 @@ + + Default Security Policy + + + + loginForm + + + httpBasic + + + httpHeader + REMOTE_USER + https://localhost:8443/Shibboleth.sso/Logout + + + + admin-gui-saml-internal + + Internal SAML2 GUI authentication sequence. + + + http://midpoint.evolveum.com/xml/ns/public/common/channels-3#user + true + saml-internal + + + httpHeader + 30 + sufficient + + + + admin-gui-emergency + + Special GUI authentication sequence that is using just the internal user password. + + + http://midpoint.evolveum.com/xml/ns/public/common/channels-3#user + false + emergency + + + + + loginForm + 30 + sufficient + + + + rest-default + + http://midpoint.evolveum.com/xml/ns/public/common/channels-3#rest + true + rest-default + + + httpBasic + 1 + sufficient + + + + actuator-default + + http://midpoint.evolveum.com/xml/ns/public/common/channels-3#actuator + true + actuator-default + + + httpBasic + 1 + sufficient + + + /actuator/health + + + + 0 + 3 + PT3M + PT15M + + + + diff --git a/demo/shibboleth/idp/shibboleth-idp/conf/attribute-filter.xml b/demo/shibboleth-apache-sp/shibboleth-idp/conf/attribute-filter.xml similarity index 100% rename from demo/shibboleth/idp/shibboleth-idp/conf/attribute-filter.xml rename to demo/shibboleth-apache-sp/shibboleth-idp/conf/attribute-filter.xml diff --git a/demo/grouper/idp/shibboleth-idp/conf/attribute-resolver.xml b/demo/shibboleth-apache-sp/shibboleth-idp/conf/attribute-resolver.xml similarity index 100% rename from demo/grouper/idp/shibboleth-idp/conf/attribute-resolver.xml rename to demo/shibboleth-apache-sp/shibboleth-idp/conf/attribute-resolver.xml diff --git a/demo/shibboleth/idp/shibboleth-idp/conf/idp.properties b/demo/shibboleth-apache-sp/shibboleth-idp/conf/idp.properties similarity index 99% rename from demo/shibboleth/idp/shibboleth-idp/conf/idp.properties rename to demo/shibboleth-apache-sp/shibboleth-idp/conf/idp.properties index 2470feb..cf0b2f8 100644 --- a/demo/shibboleth/idp/shibboleth-idp/conf/idp.properties +++ b/demo/shibboleth-apache-sp/shibboleth-idp/conf/idp.properties @@ -26,8 +26,8 @@ idp.scope= example.org #idp.sealer.aliasBase = secret idp.sealer.storeResource= %{idp.home}/credentials/sealer.jks idp.sealer.versionResource= %{idp.home}/credentials/sealer.kver -idp.sealer.storePassword= password -idp.sealer.keyPassword= password +idp.sealer.storePassword= changeit +idp.sealer.keyPassword= changeit # Settings for public/private signing and encryption key(s) # During decryption key rollover, point the ".2" properties at a second diff --git a/demo/grouper/idp/shibboleth-idp/conf/ldap.properties b/demo/shibboleth-apache-sp/shibboleth-idp/conf/ldap.properties similarity index 100% rename from demo/grouper/idp/shibboleth-idp/conf/ldap.properties rename to demo/shibboleth-apache-sp/shibboleth-idp/conf/ldap.properties diff --git a/demo/shibboleth-apache-sp/shibboleth-idp/conf/metadata-providers.xml b/demo/shibboleth-apache-sp/shibboleth-idp/conf/metadata-providers.xml new file mode 100644 index 0000000..4c760b3 --- /dev/null +++ b/demo/shibboleth-apache-sp/shibboleth-idp/conf/metadata-providers.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/shibboleth/configs-and-secrets/midpoint/shibboleth/idp-metadata.xml b/demo/shibboleth-apache-sp/shibboleth-idp/metadata/idp-metadata.xml similarity index 97% rename from demo/shibboleth/configs-and-secrets/midpoint/shibboleth/idp-metadata.xml rename to demo/shibboleth-apache-sp/shibboleth-idp/metadata/idp-metadata.xml index 28ae7d1..86de901 100644 --- a/demo/shibboleth/configs-and-secrets/midpoint/shibboleth/idp-metadata.xml +++ b/demo/shibboleth-apache-sp/shibboleth-idp/metadata/idp-metadata.xml @@ -101,12 +101,12 @@ p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - + - + + urn:mace:shibboleth:1.0:nameIdentifier urn:oasis:names:tc:SAML:2.0:nameid-format:transient - urn:mace:shibboleth:1.0:nameIdentifier diff --git a/demo/shibboleth/idp/shibboleth-idp/metadata/midpoint-shib-sp.xml b/demo/shibboleth-apache-sp/shibboleth-idp/metadata/midpoint-shib-sp.xml similarity index 61% rename from demo/shibboleth/idp/shibboleth-idp/metadata/midpoint-shib-sp.xml rename to demo/shibboleth-apache-sp/shibboleth-idp/metadata/midpoint-shib-sp.xml index fbd3655..58f384e 100644 --- a/demo/shibboleth/idp/shibboleth-idp/metadata/midpoint-shib-sp.xml +++ b/demo/shibboleth-apache-sp/shibboleth-idp/metadata/midpoint-shib-sp.xml @@ -29,62 +29,60 @@ and do *NOT* provide it in real time to your partners. - buildkitsandbox + 902a9863aa37 - CN=buildkitsandbox - MIID/zCCAmegAwIBAgIUVGDhD9M4yz9FoDaLK0CKO31Gwm4wDQYJKoZIhvcNAQEL -BQAwGjEYMBYGA1UEAxMPYnVpbGRraXRzYW5kYm94MB4XDTIzMDYxMjEzMTUwMVoX -DTMzMDYwOTEzMTUwMVowGjEYMBYGA1UEAxMPYnVpbGRraXRzYW5kYm94MIIBojAN -BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvTY3I7mkXCmRzb5otELFPWMwmlLv -+yUhgg6Vg9Id27ygNEhcOTqfy3b5lahmJLvQeA7yUwIIzt4MMnLMKxf9F41sL22s -TonwXDK75AhduR1F0EyyAeVsTOLmL/h7jTAt2Bv95SZ/Gd0bfcWsDdlMQbUofwZ9 -Wm9LpWj0//Iw7o5vUGBwrXygZPqdQ/6gFwpRdv437PT3Lki0G11AQuhYTJyGWXDS -UTqYUp2W+DOmm2jyCUsY+Ht43qsFbHqsR4w4iV93UA3bRCPFww+gKHU/mmxXoPpd -VDtAp/PB8qRm2sWQV8xY+AlSerBZZ8oHZfbUcsI0cYE/vQpGEgbYrq7V/widy/4Y -8WeuG/6kDgFFQXzl5IajjvvYzxX/Kii65/4ouYkT91v4DuWRSUE/g9Z66HeRJiiT -JyOHTkYawz/A8PwqrHc7dRRVP5uxwdt8nTyIOer+O0aWDqUKrfybByLxO+lOHJiz -BXmLet1Nh/A04Sa18WWwqcC950RvgaIZiVElAgMBAAGjPTA7MBoGA1UdEQQTMBGC -D2J1aWxka2l0c2FuZGJveDAdBgNVHQ4EFgQUglQr3VfgTCy4RHmUrl2KCK6WGgUw -DQYJKoZIhvcNAQELBQADggGBABm6pQD/zn4sGvYhDXKcKXVBK7rSKdG6bcVG+kTK -wUmEOEqJN6wcugjn//nKyhELG1/9huKumMFC+rRFpvwRYZ9LsfvRNxprAL8Vc7sh -O2AaXssUxh4g9YyW9enHkkU3FuZHuKMIsV/W2jkHxR0Xbs41ZBi7lpgFTOLGi/Jj -gLQndqIPFLZxUKor+/nc14CYqSVUDjWBiZ5N3BU1QV9AJVxX3tnJmUrvv6rWMwfp -uSsEKTE3z2udoK2h1xf5skeN0oJbWdHnBNhIo60lsQ65a9WSHCwphy8S4twiHsDF -wkDE1Kl+VOenbiY7CLK9QSkd8khAfywmIrXvFYGOk1nddPZtC3ACSUesvQbe08zv -oLBiJe12fzG4s76hSsM6m6qnnKhovhByzhDYlMqp7x5O9Mbqn5GeJvpgRKUY51TB -B2s7s9LudXKDBDKaw9lTvK56mmxWHTyxlx0YxzgMcVMvShQLeBdStDmHdDWK/HWu -bAcjyR/CDWHawvytoy7a1tzP2w== + CN=902a9863aa37 + MIID6zCCAlOgAwIBAgIJAJ+Xet5c0YjjMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV +BAMTDDkwMmE5ODYzYWEzNzAeFw0yMTEyMDIyMzAwMjBaFw0zMTExMzAyMzAwMjBa +MBcxFTATBgNVBAMTDDkwMmE5ODYzYWEzNzCCAaIwDQYJKoZIhvcNAQEBBQADggGP +ADCCAYoCggGBALMu8PXgzlNqUuNTamJ6U/jmqGacVetSLhb+/IbTl92NlFMt1ZGZ +n72Wb01gBHKXUMT9QHFUP0eTwDOTXyKRf8UrAdW3dwQDHthQ7MPWKEcHPApEKu5H +eo2JSEcyYGXqlr2Il62skfFudEY4xzgNrCc7KYAi8aUPsoqHICqzCGcU8Tw44/N0 +HU9leHBKIlTm5h0mxNX8+/GQCbQvhyIebUNdN12qWhn7wAY7wbgtc23lLKgD++df +jOywttrrBCojHXdytMunUjbSavET8k0y45+3/r/VeKJBd3CA7glG2fBUW5xizS01 +sfTJanuSL3FcE9lm3U1CCFblHEwAgip0z2cnu0MBy8WNYzDEyaZqE6VD2i0uRvf3 +zCmJ3V77+0/fScgRS7JttyFW20UTVWh3olSXU8ORM1GSab6qWNTZpdVySlHeIdWC +QicAlADNY9EchvfQCcWl1wgBxWEOl4nTNUzdtE+X/kIR/VXuO+OwXA7qbx/ytwZO +LqoFarhD5S3X0wIDAQABozowODAXBgNVHREEEDAOggw5MDJhOTg2M2FhMzcwHQYD +VR0OBBYEFOQ85hdOd14qPZFoKasCsUwh2ktxMA0GCSqGSIb3DQEBCwUAA4IBgQAp +8GtAv4ZplaSKSGRFSJHM5ozbG5vn9mf7fx4vMMchKbituHB0CsgUL8JWRE4iG6o/ +UKVfg93JaBqTTh8sGcBt9DEvufBsTY/oAQm3lUMk8xVWb6W00xCKOYcukXd8/i+B +rBbdCTdyYLb6JpdIUYEiUKKYypUiYAvgkiaSfz81Vf5R+X1TkPDvAIBlOzYS4XRG +zsDsadiiNJKjQbz3AEG/KEtail0L+EwYp+dAB0gMOPi/hfEaAHh7NfNbcHBp8SJZ +HkdQreNZXScPBmVx6XYv+SkRPHrE2arln3VCYbt2LwY7TVxL8U3Ii2Ui9+lUp18q +NcxxOBFkIDEJp8tUwxjh8sZRrl14NoYl688+d4oDmWd09VBr3Z3Gi7rPWzBvqDl9 +Cvzm7tk0J5CDJ/pgoJC0DoZw6gyM9d0Eetk5uguLtSyZdRsBdD9gHeDbxZ/zykpT +VOtn1CstTpGrIu//upz4d9NV+3RWcX8zRsK3mqk/eMBqjdZw0AKVKE4jzzSouZk= - buildkitsandbox + 902a9863aa37 - CN=buildkitsandbox - MIID/zCCAmegAwIBAgIUT3mnnjaGhi0ma3nulXpEQTNi7vowDQYJKoZIhvcNAQEL -BQAwGjEYMBYGA1UEAxMPYnVpbGRraXRzYW5kYm94MB4XDTIzMDYxMjEzMTUwMVoX -DTMzMDYwOTEzMTUwMVowGjEYMBYGA1UEAxMPYnVpbGRraXRzYW5kYm94MIIBojAN -BgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAuZ+JbwVk2U/ZYBLgPkS9ToZmDAOs -bC/weInnbgdkdmIp3cjBJaitxx2aCl3Pwcs/vM9WT1ou+n6/2dmwQrRCbyr1XjQg -4UAKYc28anKzwx5+ihcb+ReMiwSIU94mXfXL6iFuwQPKCD7AnibAmRUeZf/gkngT -cnaI9cRqQlyarM8nnkXsE3+cd2yA69y/zHTRsa2rJT/bM2rsOXe/Bi+NgpRoUBsp -V9sUvpXbiahtCVYXiHbrsKpIgqJ9y4OlD4RAqZxX9JX2mSRjHjLocIeOsjDK1DYe -6sAxsy29NSqIvhsNg7kdyx3wWZIokpLL2Z43GIaLYGzXMOP3a17ajtp8HlPtzvaK -KbN2P7hkfISmQ7IcOdhxkNPDvs7mEqy7XnGaWdY/7A5DlkACDG321wGzyDS+6qJO -R3B0AAMiwXYDqLyfM1lOWrzLTNZkgX+/d2roTrxwy5Sn3jJ4kD9hztErWWUxGJGk -DObkoF9QAj/7xQ4GfpZ0gGh1PfxL8PzHseSnAgMBAAGjPTA7MBoGA1UdEQQTMBGC -D2J1aWxka2l0c2FuZGJveDAdBgNVHQ4EFgQUJCkrVG620H8d9enYV7ajWsb+4o0w -DQYJKoZIhvcNAQELBQADggGBAJ9ArmkmB/aMiDN5K0Ze3MLz9CIvK9x+T8ri+hW5 -tnUQXI82DEDw3CFoQ4eqfI2P89NFJVWX/+68nPkHRoBI4vrD1VZRMF53PU95Mqvm -XhsGj6F2CRQkPLfITKAbQXeYMzkQaTf85KUGyihSIEfdyANxKBy+109NK0012mwT -ZIuIjTtao7b2KC+VWaknu2JSK7ScseOX8NUzxl09trRo5itl8ucljmAfh9jfVZfU -SwTqof/Nho42ZOg7t5MrFOMOi5UtOjG/c7v2TSYvc5Bz0dbxWlNglyNBQ4jfwYBR -A/sMGQ8kdng+AV7F+CZLvwCsmkOmPoj0yWuUCEOMWrI94dQRzk2knhURJEZNmtAQ -GQUN41h+e8+nTqd18a1yS/0ryzrEpf/jYNC+te1lya0oNoe0hm4HBAsNu58VYIVd -BcMc6UqGcj6lLYohLRXxzNc2BgjcRmheFRAGbx1WUIPGFGmAc6pjnVBiN9YGLfIb -iAUZBIyVQohCQmcS+NChw8ae7A== + CN=902a9863aa37 + MIID6zCCAlOgAwIBAgIJAPyhTN3IjNxAMA0GCSqGSIb3DQEBCwUAMBcxFTATBgNV +BAMTDDkwMmE5ODYzYWEzNzAeFw0yMTEyMDIyMzAwMjFaFw0zMTExMzAyMzAwMjFa +MBcxFTATBgNVBAMTDDkwMmE5ODYzYWEzNzCCAaIwDQYJKoZIhvcNAQEBBQADggGP +ADCCAYoCggGBALrIjRMDZivNAAEHazkPsOfZKQQ8ikxUlwex4W9jubXXIIKmQZBF +bU1or3GXSWQHjOmqM38elQ+pjZcyuGifGcT48inq4E57Mg0U6BWJChRwqbuUmF9t +t0I/oDqWkHfqx/UCP2poVT9b76ZLr9D+NCMFCZEw+eJukPV53c83baRdZUXM550X +YCNGbUXnifl9ZhlVkQ+teqsXayR+HBBljaJ7vE9pbv8yrVIR+sOsa68dJIMUFiBs +5OgZvfnto5BcwNwE1opaeORI0mkpZP1u/YOnlrHHIf5nSo5/MiF3gC9oGgWnRbnf +rWPwAvfcxlBURJsgjO/FSPWW/OmrtL8YafinPoFmWERpHXWmXfDecnHvOjhrwzSr +BjZciPxfDUfZZnpNX+ZRhZAhxR3IGwxN8tEHyNB6kJZHBY0PqaogcLUzhVbV7jUD +fWV4oQM14OkBx4bI5EYkTVaI966S1v/5fyltzhjkztC16M2xig3lBG5t+wFDsjUO +j86XM/lxm6R5CQIDAQABozowODAXBgNVHREEEDAOggw5MDJhOTg2M2FhMzcwHQYD +VR0OBBYEFP3RZINsIoxMe6LbKdaYexFlpR6XMA0GCSqGSIb3DQEBCwUAA4IBgQAx +ysr70luutkA31L0J4QF+JuS0UenIRwvlvnPusHqVU/0zS0PmE0gzZxRfdg1L3gNi +IqvpBk4nTpnL0nio/da+Grm+94DZRP0qalH+oPJaFK+cxGaSu2qaIWc1pZdgO5+8 +r08MBb4d9hHviZ1Ay3r8m9Gs9FeD/BumZKatvTxts+ydP5TiJenz261djyBqBiTC +XFIW866d90l4QQQwWClkfbEN7fj65ANaHXeaYKdYUeUXAPh6oSDmshVE8VFhkIr0 +JOpzj0wzn3Uy+Sqj9EqLxXxELZ0Ho3t9kwIVatNjbQEUd3yNsyDf8hmjCWJgHa5N +4PUHrjVIaqBQEE4f4NwKtAnNQ/bQ7EZiaXtPnJ9tMGGXZY1QztFa/Kv5j7zBgeyu +V5DuUo2gc+mm2oSYuicmZGA9tW6bGkwMM3Me90zNWMk68vFtB/mbGDPiKM7yODqT +3lF1Jj4UDI0oGK59Z06d9G03sAsDf9JDLQ9PfmEHSh7c2O+F9eEj3hrUMiYzDFA= diff --git a/demo/shibboleth-midpoint-sp/beacon/Dockerfile b/demo/shibboleth-midpoint-sp/beacon/Dockerfile new file mode 100644 index 0000000..256352c --- /dev/null +++ b/demo/shibboleth-midpoint-sp/beacon/Dockerfile @@ -0,0 +1,15 @@ +FROM rockylinux:9.3 + +COPY container_files/* /opt/tier/ + +RUN dnf update -y --disablerepo=\* --enablerepo=baseos && \ + dnf install -y cronie-anacron crontabs cronie --disablerepo=\* --enablerepo=baseos && \ + dnf clean all -y ; \ + rm -rf /var/cache/dnf ; \ + /opt/tier/setup-cron.sh ; + +ENV TIER_RELEASE=not-released-yet \ + TIER_MAINTAINER=tier \ + MP_VERSION=4.8 + +CMD [ "/usr/sbin/crond", "-n", "-i", "-m", "off" ] diff --git a/demo/shibboleth-midpoint-sp/beacon/container_files/sendtierbeacon.sh b/demo/shibboleth-midpoint-sp/beacon/container_files/sendtierbeacon.sh new file mode 100755 index 0000000..8f066f7 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/beacon/container_files/sendtierbeacon.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +LOGHOST="collector.testbed.tier.internet2.edu" +LOGPORT="5001" + +if [ -s /opt/tier/env.bash ]; then + . /opt/tier/env.bash +fi + +messagefile="/tmp/beaconmsg" + +if [ -z "$TIER_BEACON_OPT_OUT" ]; then + cat > $messagefile </dev/null 2>&1 + if [ $? -eq 0 ]; then + echo "TIER beacon sent" + else + echo "Failed to send TIER beacon" + fi + + rm -f $messagefile 1>/dev/null 2>&1 + +else + echo "TIER beacon skipped - scheduled but Opted out" +fi diff --git a/demo/shibboleth-midpoint-sp/beacon/container_files/setup-cron.sh b/demo/shibboleth-midpoint-sp/beacon/container_files/setup-cron.sh new file mode 100755 index 0000000..2d33d3a --- /dev/null +++ b/demo/shibboleth-midpoint-sp/beacon/container_files/setup-cron.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +CRONFILE=/opt/tier/tier-cron + +echo "#send daily \"beacon\" to central" > ${CRONFILE} +echo "" >> ${CRONFILE} +echo "# ┌───────────── minute (0–59)" >> ${CRONFILE} +echo "# │ ┌───────────── hour (0–23)" >> ${CRONFILE} +echo "# │ │ ┌───────────── day of the month (1–31)" >> ${CRONFILE} +echo "# │ │ │ ┌───────────── month (1–12)" >> ${CRONFILE} +echo "# │ │ │ │ ┌───────────── day of the week (0–6) (Sunday to Saturday;" >> ${CRONFILE} +echo "# │ │ │ │ │ 7 is also Sunday on some systems)" >> ${CRONFILE} +echo "# │ │ │ │ │" >> ${CRONFILE} +echo "# │ │ │ │ │" >> ${CRONFILE} +echo "# * * * * * " >> ${CRONFILE} +echo "" >> ${CRONFILE} +echo "$(expr $RANDOM % 60) $(expr $RANDOM % 4) * * * /opt/tier/sendtierbeacon.sh 2>&1 | tee /proc/1/fd/1 >> /tmp/logcrond" >> ${CRONFILE} +echo "" >> ${CRONFILE} +echo "# List the current setting of the crontab to the log (when is the beacon scheduled)" >> ${CRONFILE} +echo "@reboot crontab -l >/proc/1/fd/1" >> ${CRONFILE} +echo "" >> ${CRONFILE} + +chmod 644 ${CRONFILE} +crontab ${CRONFILE} diff --git a/demo/shibboleth-midpoint-sp/directory/Dockerfile b/demo/shibboleth-midpoint-sp/directory/Dockerfile new file mode 100644 index 0000000..4880156 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/directory/Dockerfile @@ -0,0 +1,35 @@ +FROM rockylinux:9.3 as baseinst + +RUN dnf update -y && \ + dnf install -y --enablerepo=devel openldap openldap-clients openldap-servers && \ + dnf clean all && \ + rm -rf /var/cache/dnf + +EXPOSE 389/tcp + +VOLUME /var/lib/ldap + +FROM baseinst + +#LABEL author="tier-packaging@internet2.edu " + +ARG ldapDomain="dc=internet2,dc=edu" +ARG ldapPw="password" + +COPY container_files/* /opt + +RUN cd /opt ; \ + /opt/slapd.sh -init ; \ + /opt/gen_config_update "${ldapDomain}" "${ldapPw}" "0" "0" ;\ + cat 999_schema-list | while read line ; do \ + ldapadd -H ldapi:/// -f /etc/openldap/schema/${line}.ldif ; \ + done ; \ + for s in 0 1 2 3 4 5 6 7 8 9 ; do \ + find -type f -name "${s}[0-4]?_*.ldif" -exec ldapmodify -H ldapi:/// -f /opt/\{\} \; ; \ + find -type f -name "${s}[5-9]?_*.ldif" -exec ldapadd -H ldapi:/// -f /opt/\{\} \; ; \ + done ; \ + rm /opt/[0-9]* && \ + /opt/slapd.sh -stop ; + +CMD [ "/opt/slapd.sh", "-limit", "1024", "-debug", "256" ] + diff --git a/demo/shibboleth-midpoint-sp/directory/container_files/gen_config_update b/demo/shibboleth-midpoint-sp/directory/container_files/gen_config_update new file mode 100755 index 0000000..a23fccc --- /dev/null +++ b/demo/shibboleth-midpoint-sp/directory/container_files/gen_config_update @@ -0,0 +1,203 @@ +#!/bin/bash +domain="${1:-dc=example,dc=com}" +if [ $(echo -n ${domain} | wc -c ) -eq $(echo -n ${domain} | tr -d "," | wc -c) ] +then + subDomain="${domain:4}" +else + subDomain="$(echo -n ${domain:4} | cut -d , -f 1)" +fi +userpw="${2:-change_me}" +cleartext="${3:-0}" +locDebug="${4:-0}" + +function genPass() { + retVal="userPassword:" + if [ "${cleartext}" != "1" ] + then + secPw="$(slappasswd -s ${userpw})" + secPw2="$(echo -n ${secPw} | base64 )" + [ "${locDebug}" != "0" ] && echo "${userpw} => ${secPw} => ${secPw2}" >&2 + retVal="${retVal}: ${secPw2}" + else + [ "${locDebug}" != "0" ] && echo "${userpw}" >&2 + retVal="${retVal} ${userpw}" + fi + while [ ${#retVal} -gt 78 ] + do + echo "${retVal:0:78}" + retVal=" ${retVal:78}" + done + if [ ${#retVal} -gt 2 ] + then + echo "${retVal}" + fi +} + +cat >999_schema-list <001_monitor-diff.ldif <101_mdb-diff.ldif <251_mod_config.ldif <151_default_structure.ldif <252_default_policy.ldif <851_default_structure.ldif <959_default_structure.ldif <&2 + ulimit -n ${localLimit} + exec /usr/sbin/slapd -4 -h "ldapi:///" -u ldap -g ldap + exit 0 + ;; + stop) + while read line + do + kill ${line} + count=0 + while [ -e /proc/${line} ] + do + [ ${count} -gt 10 ] && kill -9 ${line} + echo "Waiting to terminate the process" + count=$(( ${count} + 1 )) + sleep 1 + done + echo "Terminated..." + ${0} -stop + done < <( grep "^slapd$" /proc/*/comm | head -1 | cut -d / -f 3 ) + exit 0 + ;; + esac +done + +ulimit -n ${localLimit} + + +if [ -z ${LDAP_INIT+x} ] +then + [ ! -z ${LDAP_INFO+x} ] && echo "uLimit : ${localLimit} / debug level : ${debugLevel}" >&2 + exec /usr/sbin/slapd -h "ldap://0.0.0.0:389 ldapi:///" -u ldap -g ldap -d ${debugLevel} +else + [ ! -z ${LDAP_INFO+x} ] && echo "uLimit : ${localLimit}" >&2 + exec /usr/sbin/slapd -4 -h "ldapi:///" -u ldap -g ldap +fi + diff --git a/demo/shibboleth-midpoint-sp/docker-compose.yml b/demo/shibboleth-midpoint-sp/docker-compose.yml new file mode 100644 index 0000000..a3bd98b --- /dev/null +++ b/demo/shibboleth-midpoint-sp/docker-compose.yml @@ -0,0 +1,356 @@ +version: "3.3" + +services: + prereq: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + command: > + bash -c " + echo ' - - - - - - -' ; + cd /mnt/security ; + if [ ! -e key.pem ] ; + then + echo 'Certificate has not been found. Generating of the new one...' ; + openssl req -newkey rsa:2048 -keyout key.pem -nodes -subj '/C=US/ST=MI/L=Ann Arbor/O=Internet2\\/TIER/CN=midpoint.sp.example.org' -addext 'subjectAltName = DNS:midpoint.sp.example.org, DNS:midpoint_server, DNS:directory, DNS:idp, DNS: localhost, DNS: localhost.localdomain, IP:127.0.0.1, IP:::1' -out cert.pem -days 1825 -x509 ; + openssl req -newkey rsa:3072 -keyout sp-encrypt-key.pem -nodes -subj '/CN=sptest.example.edu' -addext 'subjectAltName = DNS:sptest.example.edu' -out sp-encrypt-cert.pem -days 3650 -x509 ; + openssl req -newkey rsa:3072 -keyout sp-signing-key.pem -nodes -subj '/CN=sptest.example.edu' -addext 'subjectAltName = DNS:sptest.example.edu' -out sp-signing-cert.pem -days 3650 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-backchannel.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-backchannel.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-encryption.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-encryption.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-signing.key -nodes -subj '/CN=idptestbed' -addext 'subjectAltName = DNS:idptestbed, URI:https://idptestbed/idp/shibboleth' -out idp-signing.crt -days 7300 -x509 ; + openssl req -newkey rsa:2048 -keyout idp-browser.key -nodes -subj '/CN=idp.ccc.local' -addext 'authorityKeyIdentifier = keyid:always,issuer:always' -out idp-browser.crt -days 10585 -x509 ; + openssl x509 -noout -fingerprint -sha256 -in cert.pem ; + openssl pkcs12 -export -in sp-signing-cert.pem -inkey sp-signing-key.pem -out signing-key.p12 -passout pass:password -name signing-key ; + openssl pkcs12 -export -in sp-encrypt-cert.pem -inkey sp-encrypt-key.pem -out encrypt-key.p12 -passout pass:password -name encrypt-key ; + openssl pkcs12 -export -in cert.pem -inkey key.pem -out keystore.p12 -passout pass:password -name selfsigned ; + keytool -importkeystore -srckeystore encrypt-key.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias encrypt-key -destkeystore shibboleth_sp_keys.jks -deststoretype jks -deststorepass changeit -noprompt -destalias encrypt-key ; + keytool -importkeystore -srckeystore signing-key.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias signing-key -destkeystore shibboleth_sp_keys.jks -deststoretype jks -deststorepass changeit -noprompt -destalias signing-key ; + keytool -importkeystore -srckeystore keystore.p12 -srcstoretype pkcs12 -srcstorepass password -srcalias selfsigned -destkeystore keystore.jks -deststoretype jks -deststorepass password -noprompt -destalias selfsigned ; + keytool -list -keystore shibboleth_sp_keys.jks -storetype jceks -storepass changeit ; + keytool -list -keystore keystore.jks -storetype jceks -storepass password ; + openssl pkcs12 -export -in idp-backchannel.crt -inkey idp-backchannel.key -out idp-backchannel.p12 -passout pass:password -name idptestbed ; + openssl pkcs12 -export -in idp-browser.crt -inkey idp-browser.key -out idp-browser.p12 -passout pass:password -name myAlias ; + for s in *ert.pem *.crt ; do echo ' - - - - - ' ; echo $${s} ; openssl x509 -noout -fingerprint -sha256 -in $${s} ; echo ; openssl x509 -noout -subject -subject_hash -dates -in $${s} ; done ; + echo ' - - - - - ' ; + mkdir /mnt/midpoint/var/shibboleth ; + cp shibboleth_sp_keys.jks /mnt/midpoint/var/shibboleth ; + cp cert.pem /mnt/midpoint/var ; + cp key.pem /mnt/midpoint/var ; + mkdir /mnt/nginx/certs; + cp cert.pem /mnt/nginx/certs ; + cp key.pem /mnt/nginx/certs ; + echo ' server {' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' listen 443 ssl default_server;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' server_name localhost;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo '' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' ssl_certificate /etc/nginx/certs/cert.pem;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' ssl_certificate_key /etc/nginx/certs/key.pem;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo '' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' location / {' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' rewrite ^/$ /midpoint/ last;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' rewrite ^/midpoint$ /midpoint/ last;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo '' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_set_header X-Real-IP $$remote_addr;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_set_header X-Forwarded-For $$proxy_add_x_forwarded_for;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_set_header X-Forwarded-Host: $$host;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_set_header X-Forwarded-Proto: $$scheme;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_pass http://midpoint-container:8080/;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo '' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' }' >> /mnt/nginx/conf.d/midpoint.conf ; + echo '' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' location /idp {' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_set_header Host localhost;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' proxy_pass https://idp:443/idp ;' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' }' >> /mnt/nginx/conf.d/midpoint.conf ; + echo ' }' >> /mnt/nginx/conf.d/midpoint.conf ; + cp idp-backchannel.crt /mnt/shibboleth-idp/credentials ; + cp idp-backchannel.p12 /mnt/shibboleth-idp/credentials ; + cp idp-browser.p12 /mnt/shibboleth-idp/credentials ; + cp idp-encryption.crt /mnt/shibboleth-idp/credentials ; + cp idp-encryption.key /mnt/shibboleth-idp/credentials ; + cp idp-signing.crt /mnt/shibboleth-idp/credentials ; + cp idp-signing.key /mnt/shibboleth-idp/credentials ; + cp sp-signing-cert.pem /mnt/shibboleth-idp/credentials ; + cp keystore.jks /mnt/shibboleth/certs ; + echo ' - - - - - ' ; + find -type f ; + echo ' - - - - - - -' ; + find /mnt/shibboleth-idp/ -type f ; + echo ' - - - - - - -' ; + find /mnt/shibboleth -type f ; + echo ' - - - - - - -' ; + find /mnt/midpoint/ -type f ; + echo ' - - - - - - -' ; + else echo 'certificate already exists... (skip new cert generation)' ; + fi ; + if [ ! -e /mnt/shared_pw/db_pass ] ; then + echo 'Generating password for DB connection...'; + dd if=/dev/urandom bs=128 count=1 2>/dev/null | base64 | tr -d -c [0-9a-z] | cut -c 1-32 | tr -d [[:space:]] > /mnt/shared_pw/db_pass ; + fi ; + " + networks: + - net + volumes: + - security_object:/mnt/security + - shared_pw:/mnt/shared_pw + - idp_credentials:/mnt/shibboleth-idp/credentials + - idp_certs:/mnt/shibboleth/certs + - proxy_conf:/mnt/nginx + - midpoint_home:/mnt/midpoint/var + + midpoint_data: + image: postgres:16-alpine + depends_on: + prereq: + condition: service_completed_successfully + environment: + - POSTGRES_PASSWORD_FILE=/mnt/shared_pw/db_pass + - POSTGRES_USER=midpoint + - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -d midpoint -U midpoint" ] + interval: 1s + timeout: 5s + retries: 10 + networks: + - net + volumes: + - midpoint_data:/var/lib/postgresql/data + - shared_pw:/mnt/shared_pw + + data_init: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + depends_on: + prereq: + condition: service_completed_successfully + midpoint_data: + condition: service_healthy + command: > + bash -c " + cd /opt/midpoint ; + bin/midpoint.sh init-native ; + echo ' - - - - - - ' ; + bin/ninja.sh -B info >/dev/null 2>/tmp/ninja.log ; + grep -q \"ERROR\" /tmp/ninja.log && ( + bin/ninja.sh run-sql --create --mode REPOSITORY ; + bin/ninja.sh run-sql --create --mode AUDIT + ) || + echo -e '\\n Repository init is not needed...' ; + if [ $$(keytool -list -keystore /opt/midpoint/var/keystore.jceks -storetype jceks -storepass:file /opt/midpoint/var/keystorepw | grep -c 'local_gen_cert') -eq 0 ] ; + then + keytool -importcert -keystore /opt/midpoint/var/keystore.jceks -storetype jceks -storepass:file /opt/midpoint/var/keystorepw -trustcacerts -alias 'local_gen_cert' -file /opt/midpoint/var/cert.pem -noprompt ; + else + echo 'Certificate exists in the cert store' ; + fi ; + " + environment: + - MP_SET_midpoint_repository_jdbcUsername=midpoint + - MP_SET_midpoint_repository_jdbcPassword_FILE=/mnt/shared_pw/db_pass + - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint + - MP_SET_midpoint_repository_database=postgresql + - MP_INIT_CFG=/opt/midpoint/var + - MP_PW_DEF=/opt/midpoint/var/keystorepw + - MP_KEYSTORE=/opt/midpoint/var/keystore.jceks + networks: + - net + volumes: + - midpoint_home:/opt/midpoint/var + - shared_pw:/mnt/shared_pw + + midpoint_server: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + container_name: midpoint_server + hostname: midpoint-container + depends_on: + data_init: + condition: service_completed_successfully + idp_vol_init: + condition: service_completed_successfully + midpoint_data: + condition: service_healthy + command: [ "/opt/midpoint/bin/midpoint.sh", "container" ] + ports: + - 8080:8080 + environment: + - MP_SET_midpoint_repository_jdbcUsername=midpoint + - MP_SET_midpoint_repository_jdbcPassword_FILE=/mnt/shared_pw/db_pass + - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint + - MP_SET_midpoint_repository_database=postgresql + - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/midpoint/var/keystorepw + - MP_SET_midpoint_administrator_initialPassword=Test5ecr3t + - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1 + - MP_NO_ENV_COMPAT=1 + - MP_ENTRY_POINT=/opt/midpoint-dirs-docker-entrypoint + networks: + - net + volumes: + - midpoint_home:/opt/midpoint/var + - shared_pw:/mnt/shared_pw + - ./midpoint_server/post-initial-objects:/opt/midpoint-dirs-docker-entrypoint/post-initial-objects:ro + - ./midpoint_server/shibboleth:/opt/midpoint-dirs-docker-entrypoint/shibboleth:ro + + directory: + build: ./directory/ + ports: + - 389:389 + networks: + - net + volumes: + - ldap:/var/lib/ldap + + idp_vol_init: + image: tier/shib-idp:3.4.6_20191002 + depends_on: + prereq: + condition: service_completed_successfully + ulimits: + nofile: + soft: 1024 + hard: 2048 + command: > + bash -c " + echo 'Updating configuration...' ; + if [ -e /mnt/shibboleth-diff/conf ] ; + then + cp -vu /mnt/shibboleth-diff/conf/* /opt/shibboleth-idp/conf ; + fi ; + if [ -e /mnt/shibboleth-diff/credentials ] ; + then + cp -vu /mnt/shibboleth-diff/credentials/* /opt/shibboleth-idp/credentials ; + fi ; + if [ -e /mnt/shibboleth-diff/metadata ] ; + then + cp -vu /mnt/shibboleth-diff/metadata/* /opt/shibboleth-idp/metadata ; + fi ; + echo ' - - - - - - -' ; + echo 'Updating idp-metadata.xml file...' ; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/idp-metadata.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/idp-metadata.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - idp-backchannel.crt - idp-signing.crt - idp-encryption.crt - idp-backchannel.crt - idp-signing.crt - idp-encryption.crt - ) ; + rm /opt/shibboleth-idp/metadata/idp-metadata.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/idp-metadata.xml >> /opt/shibboleth-idp/metadata/idp-metadata.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/idp-metadata.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + cp -v /opt/shibboleth-idp/metadata/idp-metadata.xml /opt/midpoint/var/shibboleth/idp-metadata.xml ; + echo ' - - - - - - -' ; + echo 'Updating midpoint-sp.xml...'; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/midpoint-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/midpoint-sp.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - sp-signing-cert.pem - ) ; + rm /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/midpoint-sp.xml >> /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + sed -i \"s/\\([[:space:]]\\).*$$/\\1/g;s/^[[:space:]]\\(\\).*$$/\\1/g\" /opt/shibboleth-idp/metadata/midpoint-sp.xml ; + echo ' - - - - - - -' ; + echo 'Updating midpoint-sp-ssl.xml...'; + grep -n 'X509Certificate' /mnt/shibboleth-diff/metadata/midpoint-sp-ssl.xml | sed \"s/\\([0-9]*\\).*/\\1/\" > /tmp/checkpoints ; + wc -l /mnt/shibboleth-diff/metadata/midpoint-sp-ssl.xml | sed \"s/\\([0-9]*\\).*/\\1/\" >> /tmp/checkpoints ; + current_line=1 ; + id=0 ; + file_path=( - sp-signing-cert.pem - ) ; + rm /opt/shibboleth-idp/metadata/midpoint-sp-ssl.xml ; + cat /tmp/checkpoints | while read line ; do + if [ \"$${file_path[$${id}]}\" == \"-\" ] ; then + sed -n \"$${current_line},$${line}p\" /mnt/shibboleth-diff/metadata/midpoint-sp-ssl.xml >> /opt/shibboleth-idp/metadata/midpoint-sp-ssl.xml ; + else + sed '1d;$$d' /opt/shibboleth-idp/credentials/$${file_path[$${id}]} >> /opt/shibboleth-idp/metadata/midpoint-sp-ssl.xml ; + fi ; + current_line=$${line}; + id=$$(( $${id} + 1 )) ; + done ; + sed -i \"s/\\([[:space:]]\\).*$$/\\1/g;s/^[[:space:]]\\(\\).*$$/\\1/g\" /opt/shibboleth-idp/metadata/midpoint-sp-ssl.xml ; + echo ' - - - - - - -' ; + echo 'Generating sealer key...' ; + rm /opt/shibboleth-idp/credentials/sealer.* ; + /opt/shibboleth-idp/bin/rotateSealerKey.sh ; + echo ' - - - - - - -' ; + echo 'DONE.' ; + " + volumes: + - idp_conf:/opt/shibboleth-idp/conf + - idp_credentials:/opt/shibboleth-idp/credentials + - idp_metadata:/opt/shibboleth-idp/metadata + - ./shibboleth-idp:/mnt/shibboleth-diff:ro + - midpoint_home:/opt/midpoint/var + + idp: + image: tier/shib-idp:3.4.6_20191002 + depends_on: + directory: + condition: service_started + idp_vol_init: + condition: service_completed_successfully + ulimits: + nofile: + soft: 1024 + hard: 2048 + environment: + - JETTY_MAX_HEAP=64m + - JETTY_BROWSER_SSL_KEYSTORE_PASSWORD=password + - JETTY_BACKCHANNEL_SSL_KEYSTORE_PASSWORD=password + networks: + - net + volumes: + - idp_conf:/opt/shibboleth-idp/conf + - idp_credentials:/opt/shibboleth-idp/credentials + - idp_metadata:/opt/shibboleth-idp/metadata + - idp_certs:/opt/certs + + beacon: + build: ./beacon/ + networks: + - net + environment: + - TIER_RELEASE=not-released-yet + - TIER_MAINTAINER=tier + - MP_VERSION=4.8 + - TIER_BEACON_OPT_OUT=true + + proxy: + image: nginx:stable + depends_on: + prereq: + condition: service_completed_successfully + midpoint_server: + condition: service_started + idp: + condition: service_started + ports: + - 8180:80 + - 443:443 + networks: + - net + volumes: + - proxy_conf:/etc/nginx + +networks: + net: + driver: bridge + +volumes: + security_object: + midpoint_data: + midpoint_home: + idp_conf: + idp_credentials: + idp_metadata: + idp_certs: + proxy_conf: + ldap: + shared_pw: diff --git a/demo/shibboleth/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy/SecurityPolicy.xml b/demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml similarity index 82% rename from demo/shibboleth/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy/SecurityPolicy.xml rename to demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml index cb2cfed..65c6fa7 100644 --- a/demo/shibboleth/midpoint_server/container_files/mp-home/post-initial-objects/securityPolicy/SecurityPolicy.xml +++ b/demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/SecurityPolicy.xml @@ -8,11 +8,6 @@ httpBasic - - httpHeader - REMOTE_USER - https://localhost:8443/Shibboleth.sso/Logout - mySamlSso My internal enterprise SAML-based SSO system. @@ -21,7 +16,7 @@ true - /etc/pki/mp/sp-shibboleth-keys.jks + /opt/midpoint/var/shibboleth/shibboleth_sp_keys.jks changeit @@ -34,7 +29,7 @@ https://idptestbed/idp/shibboleth - /etc/shibboleth/idp-metadata.xml + /opt/midpoint/var/shibboleth/idp-metadata.xml Shibboleth urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST @@ -50,7 +45,7 @@ http://midpoint.evolveum.com/xml/ns/public/common/channels-3#user - false + true saml-internal @@ -77,23 +72,6 @@ sufficient - - admin-gui-default - Default gui sequence - - Special GUI authentication sequence that is using Shibboleth SP - - - http://midpoint.evolveum.com/xml/ns/public/common/channels-3#user - true - shib - - - httpHeader - 1 - sufficient - - rest-default diff --git a/demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/public-url.xml b/demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/public-url.xml new file mode 100644 index 0000000..d353b5e --- /dev/null +++ b/demo/shibboleth-midpoint-sp/midpoint_server/post-initial-objects/public-url.xml @@ -0,0 +1,44 @@ + + + + + + + c:SystemConfigurationType + + modify + + delta + + + add + infrastructure + + https://localhost/midpoint + + + + + + diff --git a/demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/attribute-map.xml b/demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/attribute-map.xml new file mode 100644 index 0000000..f0a5f19 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/attribute-map.xml @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/shibboleth2.xml b/demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/shibboleth2.xml new file mode 100644 index 0000000..9ed72c2 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/midpoint_server/shibboleth/shibboleth2.xml @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + SAML2 + + + + SAML2 Local + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-filter.xml b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-filter.xml new file mode 100644 index 0000000..c7a14c7 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-filter.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-resolver.xml b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-resolver.xml new file mode 100644 index 0000000..ee9519f --- /dev/null +++ b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/attribute-resolver.xml @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/idp.properties b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/idp.properties new file mode 100644 index 0000000..cf0b2f8 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/idp.properties @@ -0,0 +1,195 @@ +# Load any additional property resources from a comma-delimited list +idp.additionalProperties= /conf/ldap.properties, /conf/saml-nameid.properties, /conf/services.properties + +# Set the entityID of the IdP +idp.entityID= https://idptestbed/idp/shibboleth + +# Set the scope used in the attribute resolver for scoped attributes +idp.scope= example.org + +# General cookie properties (maxAge only applies to persistent cookies) +#idp.cookie.secure = false +#idp.cookie.httpOnly = true +#idp.cookie.domain = +#idp.cookie.path = +#idp.cookie.maxAge = 31536000 + +# Set the location of user-supplied web flow definitions +#idp.webflows = %{idp.home}/flows + +# Set the location of Velocity view templates +#idp.views = %{idp.home}/views + +# Settings for internal AES encryption key +#idp.sealer.storeType = JCEKS +#idp.sealer.updateInterval = PT15M +#idp.sealer.aliasBase = secret +idp.sealer.storeResource= %{idp.home}/credentials/sealer.jks +idp.sealer.versionResource= %{idp.home}/credentials/sealer.kver +idp.sealer.storePassword= changeit +idp.sealer.keyPassword= changeit + +# Settings for public/private signing and encryption key(s) +# During decryption key rollover, point the ".2" properties at a second +# keypair, uncomment in credentials.xml, then publish it in your metadata. +idp.signing.key= %{idp.home}/credentials/idp-signing.key +idp.signing.cert= %{idp.home}/credentials/idp-signing.crt +idp.encryption.key= %{idp.home}/credentials/idp-encryption.key +idp.encryption.cert= %{idp.home}/credentials/idp-encryption.crt +#idp.encryption.key.2 = %{idp.home}/credentials/idp-encryption-old.key +#idp.encryption.cert.2 = %{idp.home}/credentials/idp-encryption-old.crt + +# Sets the bean ID to use as a default security configuration set +#idp.security.config = shibboleth.DefaultSecurityConfiguration + +# To default to SHA-1, set to shibboleth.SigningConfiguration.SHA1 +#idp.signing.config = shibboleth.SigningConfiguration.SHA256 + +# Configures trust evaluation of keys used by services at runtime +# Defaults to supporting both explicit key and PKIX using SAML metadata. +#idp.trust.signatures = shibboleth.ChainingSignatureTrustEngine +# To pick only one set to one of: +# shibboleth.ExplicitKeySignatureTrustEngine, shibboleth.PKIXSignatureTrustEngine +#idp.trust.certificates = shibboleth.ChainingX509TrustEngine +# To pick only one set to one of: +# shibboleth.ExplicitKeyX509TrustEngine, shibboleth.PKIXX509TrustEngine + +# If true, encryption will happen whenever a key to use can be located, but +# failure to encrypt won't result in request failure. +idp.encryption.optional = true + +# Configuration of client- and server-side storage plugins +#idp.storage.cleanupInterval = PT10M +#idp.storage.htmlLocalStorage = false + +# Set to true to expose more detailed errors in responses to SPs +#idp.errors.detailed = false +# Set to false to skip signing of SAML response messages that signal errors +#idp.errors.signed = true +# Name of bean containing a list of Java exception classes to ignore +#idp.errors.excludedExceptions = ExceptionClassListBean +# Name of bean containing a property set mapping exception names to views +#idp.errors.exceptionMappings = ExceptionToViewPropertyBean +# Set if a different default view name for events and exceptions is needed +#idp.errors.defaultView = error + +# Set to false to disable the IdP session layer +#idp.session.enabled = true + +# Set to "shibboleth.StorageService" for server-side storage of user sessions +#idp.session.StorageService = shibboleth.ClientSessionStorageService +idp.session.StorageService = shibboleth.StorageService + +# Size of session IDs +#idp.session.idSize = 32 +# Bind sessions to IP addresses +#idp.session.consistentAddress = true +# Inactivity timeout +#idp.session.timeout = PT60M +# Extra time to store sessions for logout +#idp.session.slop = PT0S +# Tolerate storage-related errors +#idp.session.maskStorageFailure = false +# Track information about SPs logged into +idp.session.trackSPSessions = true +# Support lookup by SP for SAML logout +idp.session.secondaryServiceIndex = true +# Length of time to track SP sessions +#idp.session.defaultSPlifetime = PT2H + +# Regular expression matching login flows to enable, e.g. IPAddress|Password +idp.authn.flows= Password + +# Regular expression of forced "initial" methods when no session exists, +# usually in conjunction with the idp.authn.resolveAttribute property below. +#idp.authn.flows.initial = Password + +# Set to an attribute ID to resolve prior to selecting authentication flows; +# its values are used to filter the flows to allow. +#idp.authn.resolveAttribute = eduPersonAssurance + +# Default lifetime and timeout of various authentication methods +#idp.authn.defaultLifetime = PT60M +#idp.authn.defaultTimeout = PT30M + +# Whether to prioritize "active" results when an SP requests more than +# one possible matching login method (V2 behavior was to favor them) +#idp.authn.favorSSO = true + +# Whether to fail requests when a user identity after authentication +# doesn't match the identity in a pre-existing session. +#idp.authn.identitySwitchIsError = false + +# Set to "shibboleth.StorageService" or custom bean for alternate storage of consent +#idp.consent.StorageService = shibboleth.ClientPersistentStorageService + +# Set to "shibboleth.consent.AttributeConsentStorageKey" to use an attribute +# to key user consent storage records (and set the attribute name) +#idp.consent.userStorageKey = shibboleth.consent.PrincipalConsentStorageKey +#idp.consent.userStorageKeyAttribute = uid + +# Flags controlling how built-in attribute consent feature operates +#idp.consent.allowDoNotRemember = true +#idp.consent.allowGlobal = true +#idp.consent.allowPerAttribute = false + +# Whether attribute values and terms of use text are compared +#idp.consent.compareValues = false +# Maximum number of consent records for space-limited storage (e.g. cookies) +#idp.consent.maxStoredRecords = 10 +# Maximum number of consent records for larger/server-side storage (0 = no limit) +#idp.consent.expandedMaxStoredRecords = 0 + +# Time in milliseconds to expire consent storage records. +#idp.consent.storageRecordLifetime = P1Y + +# Whether to lookup metadata, etc. for every SP involved in a logout +# for use by user interface logic; adds overhead so off by default. +#idp.logout.elaboration = false + +# Whether to require logout requests be signed/authenticated. +#idp.logout.authenticated = true + +# Message freshness and replay cache tuning +#idp.policy.messageLifetime = PT3M +#idp.policy.clockSkew = PT3M + +# Set to custom bean for alternate storage of replay cache +#idp.replayCache.StorageService = shibboleth.StorageService + +# Toggles whether to allow outbound messages via SAML artifact +#idp.artifact.enabled = true +# Suppresses typical signing/encryption when artifact binding used +#idp.artifact.secureChannel = true +# May differ to direct SAML 2 artifact lookups to specific server nodes +#idp.artifact.endpointIndex = 2 +# Set to custom bean for alternate storage of artifact map state +#idp.artifact.StorageService = shibboleth.StorageService + +# Name of access control policy for various admin flows +idp.status.accessPolicy= AccessByIPAddress +idp.resolvertest.accessPolicy= AccessByIPAddress +idp.reload.accessPolicy= AccessByIPAddress + +# Comma-delimited languages to use if not match can be found with the +# browser-supported languages, defaults to an empty list. +idp.ui.fallbackLanguages= en,fr,de + +# Storage service used by CAS protocol +# Defaults to shibboleth.StorageService (in-memory) +# MUST be server-side storage (e.g. in-memory, memcached, database) +# NOTE that idp.session.StorageService requires server-side storage +# when CAS protocol is enabled +idp.cas.StorageService=shibboleth.StorageService + +# CAS service registry implementation class +#idp.cas.serviceRegistryClass=net.shibboleth.idp.cas.service.PatternServiceRegistry + +# Profile flows in which the ProfileRequestContext should be exposed +# in servlet request under the key "opensamlProfileRequestContext" +#idp.profile.exposeProfileRequestContextInServletRequest = SAML2/POST/SSO,SAML2/Redirect/SSO + +# F-TICKS auditing - set salt to include hashed username +#idp.fticks.federation=MyFederation +#idp.fticks.algorithm=SHA-256 +#idp.fticks.salt=somethingsecret diff --git a/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/ldap.properties b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/ldap.properties new file mode 100644 index 0000000..726f145 --- /dev/null +++ b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/ldap.properties @@ -0,0 +1,58 @@ +# LDAP authentication configuration, see authn/ldap-authn-config.xml + +## Authenticator strategy, either anonSearchAuthenticator, bindSearchAuthenticator, directAuthenticator, adAuthenticator +#idp.authn.LDAP.authenticator = anonSearchAuthenticator + +## Connection properties ## +idp.authn.LDAP.ldapURL = ldap://directory:389 +idp.authn.LDAP.useStartTLS = false +idp.authn.LDAP.useSSL = false +#idp.authn.LDAP.connectTimeout = 3000 + +## SSL configuration, either jvmTrust, certificateTrust, or keyStoreTrust +#idp.authn.LDAP.sslConfig = certificateTrust +## If using certificateTrust above, set to the trusted certificate's path +idp.authn.LDAP.trustCertificates = %{idp.home}/credentials/ldap-server.crt +## If using keyStoreTrust above, set to the truststore path +idp.authn.LDAP.trustStore = %{idp.home}/credentials/ldap-server.truststore + +## Return attributes during authentication +## NOTE: this is not used during attribute resolution; configure that directly in the +## attribute-resolver.xml configuration via a DataConnector's element +idp.authn.LDAP.returnAttributes = cn,businessCategory,mail + +## DN resolution properties ## + +# Search DN resolution, used by anonSearchAuthenticator, bindSearchAuthenticator +# for AD: CN=Users,DC=example,DC=org +idp.authn.LDAP.baseDN = ou=people,dc=internet2,dc=edu +#idp.authn.LDAP.subtreeSearch = false +idp.authn.LDAP.userFilter = (uid={user}) +# bind search configuration +# for AD: idp.authn.LDAP.bindDN=adminuser@domain.com +idp.authn.LDAP.bindDN = cn=admin,dc=internet2,dc=edu +idp.authn.LDAP.bindDNCredential = password + +# Format DN resolution, used by directAuthenticator, adAuthenticator +# for AD use idp.authn.LDAP.dnFormat=%s@domain.com +idp.authn.LDAP.dnFormat = uid=%s,ou=people,dc=internet2,dc=edu + +# LDAP attribute configuration, see attribute-resolver.xml +idp.attribute.resolver.LDAP.ldapURL = %{idp.authn.LDAP.ldapURL} +idp.attribute.resolver.LDAP.baseDN = %{idp.authn.LDAP.baseDN} +idp.attribute.resolver.LDAP.bindDN = %{idp.authn.LDAP.bindDN} +idp.attribute.resolver.LDAP.bindDNCredential = %{idp.authn.LDAP.bindDNCredential} +idp.attribute.resolver.LDAP.useStartTLS = %{idp.authn.LDAP.useStartTLS:true} +idp.attribute.resolver.LDAP.trustCertificates = %{idp.authn.LDAP.trustCertificates} +idp.attribute.resolver.LDAP.searchFilter = (uid=$requestContext.principalName) + +# LDAP pool configuration, used for both authn and DN resolution +#idp.pool.LDAP.minSize = 3 +#idp.pool.LDAP.maxSize = 10 +#idp.pool.LDAP.validateOnCheckout = false +#idp.pool.LDAP.validatePeriodically = true +#idp.pool.LDAP.validatePeriod = 300 +#idp.pool.LDAP.prunePeriod = 300 +#idp.pool.LDAP.idleTime = 600 +#idp.pool.LDAP.blockWaitTime = 3000 +#idp.pool.LDAP.failFastInitialize = false diff --git a/demo/shibboleth/idp/shibboleth-idp/conf/metadata-providers.xml b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/metadata-providers.xml similarity index 97% rename from demo/shibboleth/idp/shibboleth-idp/conf/metadata-providers.xml rename to demo/shibboleth-midpoint-sp/shibboleth-idp/conf/metadata-providers.xml index 2a44b8d..684b387 100644 --- a/demo/shibboleth/idp/shibboleth-idp/conf/metadata-providers.xml +++ b/demo/shibboleth-midpoint-sp/shibboleth-idp/conf/metadata-providers.xml @@ -27,8 +27,6 @@ - - - + @@ -23,34 +23,34 @@ and do *NOT* provide it in real time to your partners. - + - - + + - sp.example.org + midpoint.sp.example.org - CN=sp.example.org,O=Internet2/TIER,L=Ann Arbor,ST=MI,C=US - MIIDPDCCAiQCCQDNZe8r0hVtuTANBgkqhkiG9w0BAQUFADBgMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxFzAVBgNVBAMMDnNwLmV4YW1wbGUub3JnMB4XDTE3MDkyMjE5 -NTAzNVoXDTI3MDkyMDE5NTAzNVowYDELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1J -MRIwEAYDVQQHDAlBbm4gQXJib3IxFzAVBgNVBAoMDkludGVybmV0Mi9USUVSMRcw -FQYDVQQDDA5zcC5leGFtcGxlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC -AQoCggEBAMTNJmsNpTpR4NrDJwOgK/o3UYlNdi1c6xBflt+liLAsQc160QReV4dS -SGK8LZvN58a/BTIsH8dLhQlUQ8qQUY2AfolVrNxb7Waumeh/POzYUTRylnoGpU3W -bGMEPxE/AdgP5U/adYvyu4XI5epv7wjZJOTqcVag15SalY+aso+ZC/5l+UzRxmWB -ZxKTsSL1y7PFehY4/Zl3Y3oGVsVl/zspt5lteoZQeeVxUX29S3Af11yHY4xpEp+7 -rvAzY/nlsTiHAsUoCFK/NFQ2evvSRx52B9Fk1cWP1MDVDm2QjQqD9xBGYSnX6bhQ -ejVx7JUJHlblu2Q5p5XdW0BihgFluoECAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -n/qhYnIviPs4tglCdrw+M7gbqKNWadDC3F9HDYzlJMFeS/ae2turhEUgQPbYPDQQ -eO3oOILtvCXNFUPM58jf8V5YFRrOqrTgx44kexQDaHO5YYNft5tF5TdvBYE2gOVr -GdYrH2iSP8WX+Yy7JH5uqkfwWzEntWHJdey39rCWKAUCCB35+/2b4N53Qmlv2+ug -CpNJYFtXInd4YMmM5HjXLyoWXtjnKiwDqYUCeYPSwAajnCqRqRXUX0gYTFDRiwRP -HbmO9We0nqoc/71nikmGGoSRMO/zWVMFjwmAx1fGiWdU61sjGX8sHifzmVyJVEBI -Z75p+JrWYZJYrx/vpWxL8g== + CN=sptest.example.edu,O=Internet2/TIER,L=Ann Arbor,ST=MI,C=US + MIID/TCCAmWgAwIBAgIJAJZqOL69C6nRMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNVBAMTEnNwdGVz +dC5leGFtcGxlLmVkdTAeFw0xODEyMjAyMjM4NDhaFw0yODEyMTcyMjM4NDhaMB0xGzAZBgNVBAMT +EnNwdGVzdC5leGFtcGxlLmVkdTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBANJ1OC6Q +l4te2/7PArBkuM/EF1NcQILv7bJaecJDGYBVoWgL0a2KQ0XMESusgkVmVjj/jcbtvwIiXI/6BEu8 +15OF6eSZIwxWdQBpeKbrWTbt07GiGgdXoXot6oMs5a9YXuWLt8pTXrFVMmwXU+ZfWJtuU8OIgm9e +sAEIQBHvDVOJtdKdBMWJFa5nUzkaVvA0Fr8r+/FHUvSCnlKOMaUIfTgtoS9AQnaRQ1dVl39Z2KAh +87JYvRIxvbaPaKgar2eGQ+PQD8rqsB5K5wgnADAxYM9Vo0YXSpPH+FvwN3EJgURUSEY2E0Jx8JOx +368ERNLXx3kfnRxCiZRDkTZF9WP6lBnDwc1WXRwpVCDTRnF+SIh6IC1Bj/qpkpCD3nri7tycejoe +AtVj1YZHWarf9iqdcLYOAWmeyGbFl3hjv6qcXnIfy1KyHLCAdIrg1TymLovXXKW09pEbVLdsHmLz +0h+DxPs4FsinK2AQBMn16u8BJJ/+spCzIQ2QNPcGORh6XemBpQIDAQABo0AwPjAdBgNVHREEFjAU +ghJzcHRlc3QuZXhhbXBsZS5lZHUwHQYDVR0OBBYEFPC8rkASWHQxrtCQ4wwtnsJRy6K5MA0GCSqG +SIb3DQEBCwUAA4IBgQCks2nY7YzdIKV02NHD9STWD3yPtEwPYZZ3NBno0WW20rS6cU+fxFx37nY8 +ULve4cFQkLR8fOO44e1qIuTgLGCauSGTx/Ts/tbmZXbpGTwV7cjZDCfC7yEFAVrfQFOMNKeQEssu +LFj+d4STGLorxsM+2YygdOgohJz0e3xOcmCNHqEuC9RbzrnLc/A4/mOHKwnwCCg71zA1/Ew9NUoR +m2n8IfaONIUaMg9opNiHxX4eu3UFaaPmn/mInuWYYMXzbIbdlU/XhKvXrujWYWj7anTDWvGQmNEe +csQH92SrO0pf+9WwcWUQTQiWUdq8/OxjXfzs1PrQnSlp0eizgcdKHDKbCUaSuK1i2wdxfEsu5sbZ +AIW0+dXJ2IyzM+0sv2g4DOsXsnSvinGqjr82A54mXGSr7edhPdlQhILFkJfhTwLq+mjnyQSNe3s2 +4VNeGc76jbHIrkEWuA460QGqz1Fa2CsQo5SH1IkxNIKpBZWt+w2LdAza/NzYyDruY5IJCrZa9Qw= @@ -64,15 +64,8 @@ Z75p+JrWYZJYrx/vpWxL8g== - - - - - - - - - + + diff --git a/demo/shibboleth/idp/shibboleth-idp/metadata/midpoint-sp.xml b/demo/shibboleth-midpoint-sp/shibboleth-idp/metadata/midpoint-sp.xml.bck similarity index 100% rename from demo/shibboleth/idp/shibboleth-idp/metadata/midpoint-sp.xml rename to demo/shibboleth-midpoint-sp/shibboleth-idp/metadata/midpoint-sp.xml.bck diff --git a/demo/shibboleth/.env b/demo/shibboleth/.env deleted file mode 100644 index f99ab0c..0000000 --- a/demo/shibboleth/.env +++ /dev/null @@ -1,6 +0,0 @@ -# These parameters can be overridden by setting environment variables before calling docker-compose up -ENV=demo -USERTOKEN= -MP_MEM_MAX=2048m -MP_MEM_INIT=1024m -TIMEZONE=UTC diff --git a/demo/shibboleth/configs-and-secrets/midpoint/httpd/00-shib.conf b/demo/shibboleth/configs-and-secrets/midpoint/httpd/00-shib.conf deleted file mode 100644 index 0e5c7b2..0000000 --- a/demo/shibboleth/configs-and-secrets/midpoint/httpd/00-shib.conf +++ /dev/null @@ -1 +0,0 @@ -LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so diff --git a/demo/shibboleth/configs-and-secrets/midpoint/httpd/host-cert.pem b/demo/shibboleth/configs-and-secrets/midpoint/httpd/host-cert.pem deleted file mode 100644 index 9b1021b..0000000 --- a/demo/shibboleth/configs-and-secrets/midpoint/httpd/host-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAMOSkn4oS2aAMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRcwFQYDVQQK -DA5JbnRlcm5ldDIvVElFUjEgMB4GA1UEAwwXbWlkcG9pbnQuc3AuZXhhbXBsZS5v -cmcwHhcNMTgwOTE0MDU1OTQ1WhcNMTkwOTE0MDU1OTQ1WjBpMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxIDAeBgNVBAMMF21pZHBvaW50LnNwLmV4YW1wbGUub3JnMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApj/b7MEUSfu3oXMfNgRwTse7 -a5UV7Jswf1M/ZN/ZZkAkIxNBevZgozjesvLPWrmsTgONi7XigJUJvCjdjmlW9eDM -lri/rkD8HuOR1DQCVKL9nvoS2c3D7sq5Emda3V8Tlj82VqfEmePd3sajx7mcTfbH -8jwAL9NhkC+WMib5IpjLGpG0FEAC0ha7Lxb+7jIiqHVJaqLXJGCyGN4mh6c1Q9S1 -f8RVTiW2a8x22G+9wnZYbkiA2Kxls177imHlhSz8EdvV4IpGw1amrEWhhuDEum7B -vZ1xQDLatgRqh4qAKLIVYeRnJ8H1FelMa90qB4G08MIPifmTsQwqJyBYaEdgWQID -AQABo1MwUTAdBgNVHQ4EFgQUqb9BteODF6wv5R57aEON/wGXMiowHwYDVR0jBBgw -FoAUqb9BteODF6wv5R57aEON/wGXMiowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG -9w0BAQsFAAOCAQEAAcKhxI+tSItrXmqC0PSmgWyAYpqbkz6W/cefTutXqhIgY09f -h0LSv7ogTahoGpyiZk9vy6u3OE9bYwxapEfa4KBjO6HxBMIVBBb3RegVjoPzjElN -BDwAx0VGFcZTXwMxDWycWdG8ql7rCZBvS50w04uTaIgnGmqXAdWWmBgfJ9cRbxW+ -JwO/mOl1QM1lR/5142NpvuUVWlmZSKEGydE5A1qPz2wpDbBR1ym1BQNS4NEqw6Kp -GSB8jKyCS1Ve0v2wVze2038Wukz02dq9uKPTIO3T+B+ibZmxn6Op/kFCc1/kK5NS -Q6JdO1B6KquGAYdGmKAcQ19mv+jqGktqWEEf0g== ------END CERTIFICATE----- diff --git a/demo/shibboleth/configs-and-secrets/midpoint/httpd/host-key.pem b/demo/shibboleth/configs-and-secrets/midpoint/httpd/host-key.pem deleted file mode 100644 index 5746e59..0000000 --- a/demo/shibboleth/configs-and-secrets/midpoint/httpd/host-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmP9vswRRJ+7eh -cx82BHBOx7trlRXsmzB/Uz9k39lmQCQjE0F69mCjON6y8s9auaxOA42LteKAlQm8 -KN2OaVb14MyWuL+uQPwe45HUNAJUov2e+hLZzcPuyrkSZ1rdXxOWPzZWp8SZ493e -xqPHuZxN9sfyPAAv02GQL5YyJvkimMsakbQUQALSFrsvFv7uMiKodUlqotckYLIY -3iaHpzVD1LV/xFVOJbZrzHbYb73CdlhuSIDYrGWzXvuKYeWFLPwR29XgikbDVqas -RaGG4MS6bsG9nXFAMtq2BGqHioAoshVh5GcnwfUV6Uxr3SoHgbTwwg+J+ZOxDCon -IFhoR2BZAgMBAAECggEAEIRBpjjceiku6jRUwnoYaks/nIWYQwR8AfpUTwJKR/VR -Yca097Fokm7A+UhUP3A45RtHQb0VPq8P44iv0kk24YCu8r5yFK7SHYOAZnOwU5ZJ -2jSAEPF3aM7tKh3okhuzB3dKP7u1NZDE5zAW723KUJiW7sL1RcsbY0bHBj6G+9/H -NplmsjuGt684vRBB0qOBfKF7EiG7mT69tHuNj4gRza9SMY31UtKbZdt2fNY6mp5V -HscMba7egZP+Ke0pVX4+go9j7K8GG8hYaQDLjrzlPqrxZ2c5X9cC+CRDI/CHuL/s -V/2yGZJ6n6UabwZoH83RdFrbQ94rU8Hkli6EvxXvMQKBgQDRpheNW5jDG5TfeJKh -yfKTDQqH2Tk3BsBYYBN7Hf3m7vbkzlxnAKJAoSLmtRMuoeXvI5MrhzaHGsNIUS76 -LDIZnvB7DLUxhFUZsCPkpAA1QHuTWY96oR3PHnPjpk8lSUvtbOPwDLdzVApeFJgZ -VqMNArZ7AHsK3Kkyi+f4WVQjbQKBgQDLAWiGb5dx6fAM2W6B6HjNmzjBWOuVEXa2 -76to9jzupBZmETfZgxtWUaWUDuNS+f7dtVUTE+p6v/w8clrHEhEZYkqunIOLo/UA -LFPiuoTfEsWb1rh+nsCjCgy4uimixj/bSkf7NC6NyKTvCygA1mGnVVJUEPegYlDy -LXCkaKWxHQKBgQCmyHSKL2lrJkEcOwakEU2acNCE3Gno/cT9SYmV83kvQ8JEqmrW -QqnRsp9aXIljGscapPmKsmnNt5vNp1AxFAHTYh88NRLczsMIyZj0ZwgHVUI6KhC7 -5Psa78YQQBlMt2/g9TSsnuE+rYgF6mpKFiNm0Vasqeg47uzn2mdzqlUGTQKBgE04 -JutkTUY+h1pL5vYxWKpVDfy19z7H2tFxT1FowPrBneeLSyRI88Ac5I/yLdRlVeY9 -0LOmEr5Igwj3MsKgg7KVKfVLgdo/LrW3Jt2Kt3onKNXDkoBPoNUjwH0QC0Boiue+ -VK0gR0kVdm+bXccbxR+im+NwZNE0NLg6Qqu3RredAoGBALuVoqbPPmTCZXYG328H -bzOs2aiR7BzPSVByV+qG6jW7w03RAnFPJZp7HMU+ViI5VY0wabUscMSvz5163+gM -4KwY3v9ZjZzZGukIfLuudkdqtaiVOx/KeAC0n+nG21YU+wpZww8gkfHh1/sa2CME -CWYCgOnmiTHcj83UaTqEXtmv ------END PRIVATE KEY----- diff --git a/demo/shibboleth/configs-and-secrets/midpoint/httpd/midpoint-shib.conf b/demo/shibboleth/configs-and-secrets/midpoint/httpd/midpoint-shib.conf deleted file mode 100644 index a383349..0000000 --- a/demo/shibboleth/configs-and-secrets/midpoint/httpd/midpoint-shib.conf +++ /dev/null @@ -1,14 +0,0 @@ - - AuthType shibboleth - ShibRequestSetting requireSession 1 - ShibRequireSession on - ShibUseHeaders On - require shibboleth - - - - AuthType shibboleth - ShibRequestSetting requireSession false - ShibUseHeaders On - require shibboleth - diff --git a/demo/shibboleth/configs-and-secrets/midpoint/httpd/vhosts.conf b/demo/shibboleth/configs-and-secrets/midpoint/httpd/vhosts.conf deleted file mode 100644 index a434bd8..0000000 --- a/demo/shibboleth/configs-and-secrets/midpoint/httpd/vhosts.conf +++ /dev/null @@ -1 +0,0 @@ -RewriteRule "^/midpoint/$" "/midpoint/auth/shib" [R] diff --git a/demo/shibboleth/configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks b/demo/shibboleth/configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks deleted file mode 100644 index af2e8f4419d077e8ae227c37281051c1c19e226f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5886 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 VdZCw`awABr^XhLh;y>pK{sTX1z~2A> diff --git a/demo/shibboleth/configs-and-secrets/shibboleth/shibboleth2.xml b/demo/shibboleth/configs-and-secrets/shibboleth/shibboleth2.xml deleted file mode 100644 index ee05a97..0000000 --- a/demo/shibboleth/configs-and-secrets/shibboleth/shibboleth2.xml +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - SAML2 - - - - SAML2 Local - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-cert.pem b/demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-cert.pem deleted file mode 100644 index 7a66196..0000000 --- a/demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-cert.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID/TCCAmWgAwIBAgIJAINng1bI63LGMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNV -BAMTEnNwdGVzdC5leGFtcGxlLmVkdTAeFw0xODEyMjAyMjM4MDJaFw0yODEyMTcy -MjM4MDJaMB0xGzAZBgNVBAMTEnNwdGVzdC5leGFtcGxlLmVkdTCCAaIwDQYJKoZI -hvcNAQEBBQADggGPADCCAYoCggGBAOjmPSBzRsjbPBBA6jYVW+QtsYM5fvIuNErG -VDRvKHyCTNbmdFZ37qEl/fwsrdF4hn4V7fAZ6jW6R1aMGFl1vQyJ289B8l5HOPjf -GuB2gL9IxulOmrkYVN8nfgjlbFNNktMQJ8NprYEyl3o786xCCxx3AiA5Mgdv400L -6vlmEfNHIwsOHAUTNRyCwMS9P6jBJ5IIxD0Mef+3oUjAvVsPZu24EJnzTUasZnI0 -F8aC/YzVbxObBNcymtA2Ipec/gLe1B09eDZUduXPL/as57QWvgJrWj8bCK+Ldj0P -MPSvWzr4BnN58dxaYgCgRH7tnhZudPvCjBakQzkxo/njsRIKtm3lN9UmUYiXbl+e -bu0DSQFUaFfO2hOOUTNAr/QuC+GQL+U7VAdybTbP+KcH5LbNUSqYkxSwhbFz5aym -o5KppnYB9K5iySRWvGIhnwXHNv5yFrmUbet2BPJlMzv7NaePaZ76ypobzNjjNBbg -aNECsQ1ZD9fe2Q8UBe0m2gQP5Yux5QIDAQABo0AwPjAdBgNVHREEFjAUghJzcHRl -c3QuZXhhbXBsZS5lZHUwHQYDVR0OBBYEFGcLIl5kg+GFIh9HXeZyLzsv5e7qMA0G -CSqGSIb3DQEBCwUAA4IBgQAf8/iZXUWtWGMBw2OfonDDWbuhgLnNWddpllcVx7v/ -Yu75+wgfIdNXg6XM4WkGkpbhlkpDLRt2c6rMQpxrQtq/5G3OKEXKyjUOl5pZsYkG -asVENYPSCfuu3rlK85XaW3H1SSJqSax/UKcYXyB1TIW6mNy3OxuvHak6y4LzFnug -CO7p/W2jvffwmxfqjbO7wQfXUQz3SZS04sHMqQoStOwy2N5xxQ3uTF34EoXBto+n -XIEOptKPhV2NkEzj+UUIi1588dck8T0SstbSElbTnJ4sNZFriX6JOPFNW08fezot -izerOHuAFpFQvtugWoZT87YYaFwG+Zr5QNa4fNOcAL+FHvbOfEqIGs+H6GSf0dZV -lkcJyzWZvuK/4RGqWbLvfAYRm0PAGTQSLdO8QJSYWdJtJvZFEMgddQ2HoIzeO5wo -B42FKDSHottI9avilApQBdRCtust8XRPtEAzDB/t/1jbO7u2tkzgY3614mX5xgut -Ileaae5eVCjw4uYbkh+Mt5M= ------END CERTIFICATE----- diff --git a/demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-key.pem b/demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-key.pem deleted file mode 100644 index 1622ef3..0000000 --- a/demo/shibboleth/configs-and-secrets/shibboleth/sp-encrypt-key.pem +++ /dev/null @@ -1,40 +0,0 @@ ------BEGIN PRIVATE KEY----- -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 -/oz8xKl5PKwOrvk2DH+FwaAg ------END PRIVATE KEY----- diff --git a/demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-cert.pem b/demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-cert.pem deleted file mode 100644 index 73aaaab..0000000 --- a/demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-cert.pem +++ /dev/null @@ -1,24 +0,0 @@ ------BEGIN CERTIFICATE----- -MIID/TCCAmWgAwIBAgIJAJZqOL69C6nRMA0GCSqGSIb3DQEBCwUAMB0xGzAZBgNV -BAMTEnNwdGVzdC5leGFtcGxlLmVkdTAeFw0xODEyMjAyMjM4NDhaFw0yODEyMTcy -MjM4NDhaMB0xGzAZBgNVBAMTEnNwdGVzdC5leGFtcGxlLmVkdTCCAaIwDQYJKoZI -hvcNAQEBBQADggGPADCCAYoCggGBANJ1OC6Ql4te2/7PArBkuM/EF1NcQILv7bJa -ecJDGYBVoWgL0a2KQ0XMESusgkVmVjj/jcbtvwIiXI/6BEu815OF6eSZIwxWdQBp -eKbrWTbt07GiGgdXoXot6oMs5a9YXuWLt8pTXrFVMmwXU+ZfWJtuU8OIgm9esAEI -QBHvDVOJtdKdBMWJFa5nUzkaVvA0Fr8r+/FHUvSCnlKOMaUIfTgtoS9AQnaRQ1dV -l39Z2KAh87JYvRIxvbaPaKgar2eGQ+PQD8rqsB5K5wgnADAxYM9Vo0YXSpPH+Fvw -N3EJgURUSEY2E0Jx8JOx368ERNLXx3kfnRxCiZRDkTZF9WP6lBnDwc1WXRwpVCDT -RnF+SIh6IC1Bj/qpkpCD3nri7tycejoeAtVj1YZHWarf9iqdcLYOAWmeyGbFl3hj -v6qcXnIfy1KyHLCAdIrg1TymLovXXKW09pEbVLdsHmLz0h+DxPs4FsinK2AQBMn1 -6u8BJJ/+spCzIQ2QNPcGORh6XemBpQIDAQABo0AwPjAdBgNVHREEFjAUghJzcHRl -c3QuZXhhbXBsZS5lZHUwHQYDVR0OBBYEFPC8rkASWHQxrtCQ4wwtnsJRy6K5MA0G -CSqGSIb3DQEBCwUAA4IBgQCks2nY7YzdIKV02NHD9STWD3yPtEwPYZZ3NBno0WW2 -0rS6cU+fxFx37nY8ULve4cFQkLR8fOO44e1qIuTgLGCauSGTx/Ts/tbmZXbpGTwV -7cjZDCfC7yEFAVrfQFOMNKeQEssuLFj+d4STGLorxsM+2YygdOgohJz0e3xOcmCN -HqEuC9RbzrnLc/A4/mOHKwnwCCg71zA1/Ew9NUoRm2n8IfaONIUaMg9opNiHxX4e -u3UFaaPmn/mInuWYYMXzbIbdlU/XhKvXrujWYWj7anTDWvGQmNEecsQH92SrO0pf -+9WwcWUQTQiWUdq8/OxjXfzs1PrQnSlp0eizgcdKHDKbCUaSuK1i2wdxfEsu5sbZ -AIW0+dXJ2IyzM+0sv2g4DOsXsnSvinGqjr82A54mXGSr7edhPdlQhILFkJfhTwLq -+mjnyQSNe3s24VNeGc76jbHIrkEWuA460QGqz1Fa2CsQo5SH1IkxNIKpBZWt+w2L -dAza/NzYyDruY5IJCrZa9Qw= ------END CERTIFICATE----- diff --git a/demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-key.pem b/demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-key.pem deleted file mode 100644 index 9e979fe..0000000 --- a/demo/shibboleth/configs-and-secrets/shibboleth/sp-signing-key.pem +++ /dev/null @@ -1,40 +0,0 @@ ------BEGIN PRIVATE KEY----- -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 -iDjt9rDlIwDYeGWk4KFgsKM7 ------END PRIVATE KEY----- diff --git a/demo/shibboleth/directory/Dockerfile b/demo/shibboleth/directory/Dockerfile deleted file mode 100644 index ada659b..0000000 --- a/demo/shibboleth/directory/Dockerfile +++ /dev/null @@ -1,30 +0,0 @@ -FROM centos:centos7 - -LABEL author="tier-packaging@internet2.edu " - -RUN yum install -y epel-release \ - && yum update -y \ - && yum install -y 389-ds-base 389-admin 389-adminutil \ - && yum clean all \ - && rm -rf /var/cache/yum - -COPY container_files/seed-data/ /seed-data/ - -RUN useradd ldapadmin \ - && rm -fr /var/lock /usr/lib/systemd/system \ - # The 389-ds setup will fail because the hostname can't reliable be determined, so we'll bypass it and then install. \ - && sed -i 's/checkHostname {/checkHostname {\nreturn();/g' /usr/lib64/dirsrv/perl/DSUtil.pm \ - # Not doing SELinux \ - && sed -i 's/updateSelinuxPolicy($inf);//g' /usr/lib64/dirsrv/perl/* \ - # Do not restart at the end \ - && sed -i '/if (@errs = startServer($inf))/,/}/d' /usr/lib64/dirsrv/perl/* \ - && setup-ds.pl --silent --file /seed-data/ds-setup.inf \ - && /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-dir \ - && while ! curl -s ldap://localhost:389 > /dev/null; do echo waiting for ldap to start; sleep 1; done; \ - ldapadd -H ldap:/// -f /seed-data/users.ldif -x -D "cn=Directory Manager" -w password - -EXPOSE 389 - -# temporary! - -CMD rm -rf /var/lock/dirsrv/slapd-dir/server/* && /usr/sbin/ns-slapd -D /etc/dirsrv/slapd-dir && sleep infinity diff --git a/demo/shibboleth/directory/container_files/seed-data/ds-setup.inf b/demo/shibboleth/directory/container_files/seed-data/ds-setup.inf deleted file mode 100644 index 96c29a1..0000000 --- a/demo/shibboleth/directory/container_files/seed-data/ds-setup.inf +++ /dev/null @@ -1,28 +0,0 @@ -[General] -AdminDomain = internet2.edu -ConfigDirectoryAdminID = admin -ConfigDirectoryAdminPwd = admin -ConfigDirectoryLdapURL = ldap://localhost:389/o=NetscapeRoot -FullMachineName = localhost -ServerRoot = /usr/lib64/dirsrv -SuiteSpotGroup = nobody -SuiteSpotUserID = nobody - -[admin] -Port = 9830 -ServerAdminID = admin -ServerAdminPwd = admin -ServerIpAddress = 0.0.0.0 -SysUser = nobody - -[slapd] -AddOrgEntries = No -AddSampleEntries = No -InstallLdifFile = suggest -RootDN = cn=Directory Manager -RootDNPwd = password -ServerIdentifier = dir -ServerPort = 389 -SlapdConfigForMC = yes -Suffix = dc=internet2,dc=edu -UseExistingMC = No diff --git a/demo/shibboleth/directory/container_files/seed-data/users.ldif b/demo/shibboleth/directory/container_files/seed-data/users.ldif deleted file mode 100644 index 1d57238..0000000 --- a/demo/shibboleth/directory/container_files/seed-data/users.ldif +++ /dev/null @@ -1,24 +0,0 @@ -dn: cn=admin,dc=internet2,dc=edu -objectClass: simpleSecurityObject -objectClass: organizationalRole -cn: admin -userPassword: password -description: LDAP administrator - -dn: cn=users,ou=Groups,dc=internet2,dc=edu -objectClass: groupOfUniqueNames -objectClass: top -uniqueMember: uid=banderson,ou=People,dc=internet2,dc=edu -uniqueMember: uid=jsmith,ou=People,dc=internet2,dc=edu -cn: users - -dn: uid=administrator,ou=People,dc=internet2,dc=edu -objectClass: organizationalPerson -objectClass: person -objectClass: top -objectClass: inetOrgPerson -givenName: Administrator -uid: administrator -sn: Administrator -cn: Administrator -userPassword: password diff --git a/demo/shibboleth/docker-compose-tests.yml b/demo/shibboleth/docker-compose-tests.yml deleted file mode 100644 index 5f58d39..0000000 --- a/demo/shibboleth/docker-compose-tests.yml +++ /dev/null @@ -1,162 +0,0 @@ -# Version for running Bats tests. -# Minimizes the number of ports mapped to localhost, to avoid collisions during testing. - -version: "3.3" - -services: - data_init: - image: i2incommon/midpoint:${tag:-4.8.2} - command: > - bash -c " - chmod 777 /opt/mp-pw/ ; - touch /opt/mp-pw/db_init_in_progress ; - echo -e '#!/bin/sh\ntouch /opt/mp-pw/db_init' >/opt/db-init/000-start.sh ; - echo -e '#!/bin/sh\necho DB structure init process has finished...\nrm -f /opt/mp-pw/db_init_in_progress /opt/mp-pw/db_init' > /opt/db-init/999-finish.sh ; - /opt/midpoint/bin/midpoint.sh init-native - " - environment: - - MP_INIT_DB_CONCAT=/opt/db-init/init.sql - - MP_DB_PW=/opt/mp-pw/dbpassword - - MP_PW_DEF=/opt/mp-pw/keystorepw - volumes: - - db_init:/opt/db-init - - mp_pw:/opt/mp-pw - - midpoint_data: - image: postgres:13-alpine - command: > - bash -c " - rm -f /var/lib/postgresql/data/postmaster.pid ; - while [ ! -s /opt/mp-pw/dbpassword -o -e /opt/mp-pw/init_in_progress ] ; do - echo 'Waiting to the end of the init process...'; - sleep 1; - done ; - { - sleep 2 ; - if [ ! -e /opt/mp-pw/db_init -a -e /opt/mp-pw/db_init_in_progress ] ; - then echo 'DB init did not start...' ; - rm -f /opt/mp-pw/db_ini*; - echo 'The lock files has been removed...'; - fi ; - } & - docker-entrypoint.sh postgres - " - user: "70:70" - depends_on: - - data_init - environment: - - POSTGRES_PASSWORD_FILE=/opt/mp-pw/dbpassword - - POSTGRES_USER=midpoint - - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 - ports: - - 5432:5432 - networks: - - net - volumes: - - midpoint_data:/var/lib/postgresql/data - - db_init:/docker-entrypoint-initdb.d/ - - mp_pw:/opt/mp-pw - - midpoint_server: - build: - context: ./midpoint_server/ - args: - tag: ${tag:-4.8.2} - command: /usr/local/bin/startup.sh - depends_on: - - data_init - - midpoint_data - ports: - - 8443:443 - environment: - - ENV - - USERTOKEN - - MP_SET_midpoint_administrator_initialPassword=Password1 - - MP_SET_midpoint_repository_jdbcUsername=midpoint - - MP_SET_midpoint_repository_jdbcPassword_FILE=/opt/mp-pw/dbpassword - - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint - - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/mp-pw/keystorepw - - MP_SET_server_tomcat_ajp_enabled=true - - MP_SET_server_tomcat_ajp_port=9090 - - MP_SET_server_tomcat_ajp_secret=s3cr3t - - MP_SET_logging_path=/tmp/logtomcat - - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1 - - MP_NO_ENV_COMPAT=1 - - MP_MEM_MAX - - MP_MEM_INIT - - MP_JAVA_OPTS - - TIER_BEACON_OPT_OUT - - TIMEZONE - networks: - net: - aliases: - - midpoint-server - secrets: - - mp_host-key.pem - - mp_shibboleth_sp_keys.jks - volumes: - - midpoint_home:/opt/midpoint/var - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/idp-metadata.xml - target: /etc/shibboleth/idp-metadata.xml - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/shibboleth2.xml - target: /etc/shibboleth/shibboleth2.xml - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/attribute-map.xml - target: /etc/shibboleth/attribute-map.xml - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/host-cert.pem - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/cachain.pem - - type: bind - source: ./configs-and-secrets/midpoint/httpd/00-shib.conf - target: /etc/httpd/conf.modules.d/00-shib.conf - - type: bind - source: ./configs-and-secrets/midpoint/httpd/midpoint-shib.conf - target: /etc/httpd/conf.d/midpoint-shib.conf - - type: bind - source: ./configs-and-secrets/midpoint/httpd/vhosts.conf - target: /etc/httpd/conf.d/vhosts/vhosts.conf - - mp_pw:/opt/mp-pw - - directory: - build: ./directory/ - ports: - - 389:389 - networks: - - net - volumes: - - ldap:/var/lib/dirsrv - - idp: - build: ./idp/ - depends_on: - - directory - ports: - - 443:443 - environment: - - JETTY_MAX_HEAP=64m - - JETTY_BROWSER_SSL_KEYSTORE_PASSWORD=password - - JETTY_BACKCHANNEL_SSL_KEYSTORE_PASSWORD=password - networks: - - net - -networks: - net: - driver: bridge - -secrets: - mp_host-key.pem: - file: ./configs-and-secrets/midpoint/httpd/host-key.pem - mp_shibboleth_sp_keys.jks: - file: ./configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks - -volumes: - db_init: - mp_pw: - midpoint_data: - midpoint_home: - ldap: diff --git a/demo/shibboleth/docker-compose.yml b/demo/shibboleth/docker-compose.yml deleted file mode 100644 index e083b78..0000000 --- a/demo/shibboleth/docker-compose.yml +++ /dev/null @@ -1,159 +0,0 @@ -version: "3.3" - -services: - data_init: - image: i2incommon/midpoint:${tag:-4.8.2} - command: > - bash -c " - chmod 777 /opt/mp-pw/ ; - touch /opt/mp-pw/db_init_in_progress ; - echo -e '#!/bin/sh\ntouch /opt/mp-pw/db_init' >/opt/db-init/000-start.sh ; - echo -e '#!/bin/sh\necho DB structure init process has finished...\nrm -f /opt/mp-pw/db_init_in_progress /opt/mp-pw/db_init' > /opt/db-init/999-finish.sh ; - /opt/midpoint/bin/midpoint.sh init-native - " - environment: - - MP_INIT_DB_CONCAT=/opt/db-init/init.sql - - MP_DB_PW=/opt/mp-pw/dbpassword - - MP_PW_DEF=/opt/mp-pw/keystorepw - volumes: - - db_init:/opt/db-init - - mp_pw:/opt/mp-pw - - midpoint_data: - image: postgres:13-alpine - command: > - bash -c " - rm -f /var/lib/postgresql/data/postmaster.pid ; - while [ ! -s /opt/mp-pw/dbpassword -o -e /opt/mp-pw/init_in_progress ] ; do - echo 'Waiting to the end of the init process...'; - sleep 1; - done ; - { - sleep 2 ; - if [ ! -e /opt/mp-pw/db_init -a -e /opt/mp-pw/db_init_in_progress ] ; - then echo 'DB init did not start...' ; - rm -f /opt/mp-pw/db_ini*; - echo 'The lock files has been removed...'; - fi ; - } & - docker-entrypoint.sh postgres - " - user: "70:70" - depends_on: - - data_init - environment: - - POSTGRES_PASSWORD_FILE=/opt/mp-pw/dbpassword - - POSTGRES_USER=midpoint - - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 - ports: - - 5432:5432 - networks: - - net - volumes: - - midpoint_data:/var/lib/postgresql/data - - db_init:/docker-entrypoint-initdb.d/ - - mp_pw:/opt/mp-pw - - midpoint_server: - build: - context: ./midpoint_server/ - args: - tag: ${tag:-4.8.2} - command: /usr/local/bin/startup.sh - depends_on: - - data_init - - midpoint_data - ports: - - 8443:443 - environment: - - ENV - - USERTOKEN - - MP_SET_midpoint_administrator_initialPassword=Password1 - - MP_SET_midpoint_repository_jdbcUsername=midpoint - - MP_SET_midpoint_repository_jdbcPassword_FILE=/opt/mp-pw/dbpassword - - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint - - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/mp-pw/keystorepw - - MP_SET_server_tomcat_ajp_enabled=true - - MP_SET_server_tomcat_ajp_port=9090 - - MP_SET_server_tomcat_ajp_secret=s3cr3t - - MP_SET_logging_path=/tmp/logtomcat - - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1 - - MP_NO_ENV_COMPAT=1 - - MP_MEM_MAX - - MP_MEM_INIT - - MP_JAVA_OPTS - - TIER_BEACON_OPT_OUT - - TIMEZONE - networks: - net: - aliases: - - midpoint-server - secrets: - - mp_host-key.pem - - mp_shibboleth_sp_keys.jks - volumes: - - midpoint_home:/opt/midpoint/var - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/idp-metadata.xml - target: /etc/shibboleth/idp-metadata.xml - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/shibboleth2.xml - target: /etc/shibboleth/shibboleth2.xml - - type: bind - source: ./configs-and-secrets/midpoint/shibboleth/attribute-map.xml - target: /etc/shibboleth/attribute-map.xml - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/host-cert.pem - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/cachain.pem - - type: bind - source: ./configs-and-secrets/midpoint/httpd/00-shib.conf - target: /etc/httpd/conf.modules.d/00-shib.conf - - type: bind - source: ./configs-and-secrets/midpoint/httpd/midpoint-shib.conf - target: /etc/httpd/conf.d/midpoint-shib.conf - - type: bind - source: ./configs-and-secrets/midpoint/httpd/vhosts.conf - target: /etc/httpd/conf.d/vhosts/vhosts.conf - - mp_pw:/opt/mp-pw - - directory: - build: ./directory/ - ports: - - 389:389 - networks: - - net - volumes: - - ldap:/var/lib/dirsrv - - idp: - build: ./idp/ - depends_on: - - directory - ports: - - 443:443 - environment: - - JETTY_MAX_HEAP=64m - - JETTY_BROWSER_SSL_KEYSTORE_PASSWORD=password - - JETTY_BACKCHANNEL_SSL_KEYSTORE_PASSWORD=password - networks: - - net - -networks: - net: - driver: bridge - -secrets: - mp_host-key.pem: - file: ./configs-and-secrets/midpoint/httpd/host-key.pem - mp_shibboleth_sp_keys.jks: - file: ./configs-and-secrets/midpoint/shibboleth/shibboleth_sp_keys.jks - -volumes: - db_init: - mp_pw: - midpoint_data: - midpoint_home: - ldap: diff --git a/demo/shibboleth/idp/Dockerfile b/demo/shibboleth/idp/Dockerfile deleted file mode 100644 index 4968448..0000000 --- a/demo/shibboleth/idp/Dockerfile +++ /dev/null @@ -1,5 +0,0 @@ -FROM tier/shib-idp:3.4.6_20191002 - -LABEL author="tier-packaging@internet2.edu " - -COPY shibboleth-idp/ /opt/shibboleth-idp/ diff --git a/demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.crt b/demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.crt deleted file mode 100644 index c1f8fab..0000000 --- a/demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.crt +++ /dev/null @@ -1,19 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= ------END CERTIFICATE----- diff --git a/demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.p12 b/demo/shibboleth/idp/shibboleth-idp/credentials/idp-backchannel.p12 deleted file mode 100644 index 112540ac0718da62464ec2f31d7916a923e3c531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2500 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 diff --git a/demo/shibboleth/idp/shibboleth-idp/credentials/sealer.kver b/demo/shibboleth/idp/shibboleth-idp/credentials/sealer.kver deleted file mode 100644 index d64b0e4..0000000 --- a/demo/shibboleth/idp/shibboleth-idp/credentials/sealer.kver +++ /dev/null @@ -1,2 +0,0 @@ -#Fri Dec 11 02:20:32 UTC 2015 -CurrentVersion=1 diff --git a/demo/shibboleth/idp/shibboleth-idp/metadata/idp-metadata.xml b/demo/shibboleth/idp/shibboleth-idp/metadata/idp-metadata.xml deleted file mode 100644 index 65db47e..0000000 --- a/demo/shibboleth/idp/shibboleth-idp/metadata/idp-metadata.xml +++ /dev/null @@ -1,207 +0,0 @@ - - - - - - - - example.org - - - - - - - -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= - - - - - - - - - -MIIDFDCCAfygAwIBAgIVAN3vv+b7KN5Se9m1RZsCllp/B/hdMA0GCSqGSIb3DQEB -CwUAMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwHhcNMTUxMjExMDIyMDE0WhcNMzUx -MjExMDIyMDE0WjAVMRMwEQYDVQQDDAppZHB0ZXN0YmVkMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAh91caeY0Q85uhaUyqFwP2bMjwMFxMzRlAoqBHd7g -u6eo4duaeLz1BaoR2XTBpNNvFR5oHH+TkKahVDGeH5+kcnIpxI8JPdsZml1srvf2 -Z6dzJsulJZUdpqnngycTkGtZgEoC1vmYVky2BSAIIifmdh6s0epbHnMGLsHzMKfJ -Cb/Q6dYzRWTCPtzE2VMuQqqWgeyMr7u14x/Vqr9RPEFsgY8GIu5jzB6AyUIwrLg+ -MNkv6aIdcHwxYTGL7ijfy6rSWrgBflQoYRYNEnseK0ZHgJahz4ovCag6wZAoPpBs -uYlY7lEr89Ucb6NHx3uqGMsXlDFdE4QwfDLLhCYHPvJ0uwIDAQABo1swWTAdBgNV -HQ4EFgQUAkOgED3iYdmvQEOMm6u/JmD/UTQwOAYDVR0RBDEwL4IKaWRwdGVzdGJl -ZIYhaHR0cHM6Ly9pZHB0ZXN0YmVkL2lkcC9zaGliYm9sZXRoMA0GCSqGSIb3DQEB -CwUAA4IBAQBIdd4YWlnvJjql8+zKKgmWgIY7U8DA8e6QcbAf8f8cdE33RSnjI63X -sv/y9GfmbAVAD6RIAXPFFeRYJ08GOxGI9axfNaKdlsklJ9bk4ducHqgCSWYVer3s -RQBjxyOfSTvk9YCJvdJVQRJLcCvxwKakFCsOSnV3t9OvN86Ak+fKPVB5j2fM/0fZ -Kqjn3iqgdNPTLXPsuJLJO5lITRiBa4onmVelAiCstI9PQiaEck+oAHnMTnC9JE/B -DHv3e4rwq3LznlqPw0GSd7xqNTdMDwNOWjkuOr3sGpWS8ms/ZHHXV1Vd22uPe70i -s00xrv14zLifcc8oj5DYzOhYRifRXgHX - - - - - - - - - -MIIDEzCCAfugAwIBAgIUG6Nn1rlERS1vsi88tcdzSYX0oqAwDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMTRaFw0zNTEy -MTEwMjIwMTRaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCBXv0o3fmT8iluyLjJ4lBAVCW+ZRVyEXPYQuRi7vfD -cO4a6d1kxiJLsaK0W88VNxjFQRr8PgDkWr28vwoH1rgk4pLsszLD48DBzD942peJ -l/S6FnsIJjmaHcBh4pbNhU4yowu63iKkvttrcZAEbpEro6Z8CziWEx8sywoaYEQG -ifPkr9ORV6Cn3txq+9gMBePG41GrtZrUGIu+xrndL0Shh4Pq0eq/9MAsVlIIXEa8 -9WfH8J2kFcTOfoWtIc70b7TLZQsx4YnNcnrGLSUEcstFyPLX+Xtv5SNZF89OOIxX -VNjNvgE5DbJb9hMM4UAFqI+1bo9QqtxwThjc/sOvIxzNAgMBAAGjWzBZMB0GA1Ud -DgQWBBStTyogRPuAVG6q7yPyav1uvE+7pTA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAFMfoOv+oISGjvamq7+Y4G7ep5vxlAPeK3RATYPYvAmyH946qZXh98ni -QXyuqZW5P5eEt86toY45IwDU5r09SKwHughEe99iiEkxh0mb2qo84qX9/qcg+kyN -jeLd/OSyolpUCEFNwOFcog7pj7Eer+6AHbwTn1Mjb5TBsKwtDMJsaxPvdj0u7M5r -xL/wHkFhn1rCo2QiojzjSlV3yLTh49iTyhE3cG+RxaNKDCxhp0jSSLX1BW/ZoPA8 -+PMJEA+Q0QbyRD8aJOHN5O8jGxCa/ZzcOnYVL6AsEXoDiY3vAUYh1FUonOWw0m9H -p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - - - - - - urn:mace:shibboleth:1.0:nameIdentifier - urn:oasis:names:tc:SAML:2.0:nameid-format:transient - - - - - - - - - - - - - localhost - - - - - - -MIIDEzCCAfugAwIBAgIUS9SuTXwsFVVG+LjOEAbLqqT/el0wDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMjZaFw0zNTEy -MTEwMjIwMjZaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCMAoDHx8xCIfv/6QKqt9mcHYmEJ8y2dKprUbpdcOjH -YvNPIl/lHPsUyrb+Nc+q2CDeiWjVk1mWYq0UpIwpBMuw1H6+oOqr4VQRi65pin0M -SfE0MWIaFo5FPvpvoptkHD4gvREbm4swyXGMczcMRfqgalFXhUD2wz8W3XAM5Cq2 -03XeJbj6TwjvKatG5XPdeUe2FBGuOO2q54L1hcIGnLMCQrg7D31lR13PJbjnJ0No -5C3k8TPuny6vJsBC03GNLNKfmrKVTdzr3VKp1uay1G3DL9314fgmbl8HA5iRQmy+ -XInUU6/8NXZSF59p3ITAOvZQeZsbJjg5gGDip5OZo9YlAgMBAAGjWzBZMB0GA1Ud -DgQWBBRPlM4VkKZ0U4ec9GrIhFQl0hNbLDA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAIZ0a1ov3my3ljJG588I/PHx+TxAWONWmpKbO9c/qI3Drxk4oRIffiac -ANxdvtabgIzrlk5gMMisD7oyqHJiWgKv5Bgctd8w3IS3lLl7wHX65mTKQRXniG98 -NIjkvfrhe2eeJxecOqnDI8GOhIGCIqZUn8ShdM/yHjhQ2Mh0Hj3U0LlKvnmfGSQl -j0viGwbFCaNaIP3zc5UmCrdE5h8sWL3Fu7ILKM9RyFa2ILHrJScV9t623IcHffHP -IeaY/WtuapsrqRFxuQL9QFWN0FsRIdLmjTq+00+B/XnnKRKFBuWfjhHLF/uu8f+E -t6Lf23Kb8yD6ZR7dihMZAGHnYQ/hlhM= - - - - - - - - - -MIIDFDCCAfygAwIBAgIVAN3vv+b7KN5Se9m1RZsCllp/B/hdMA0GCSqGSIb3DQEB -CwUAMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwHhcNMTUxMjExMDIyMDE0WhcNMzUx -MjExMDIyMDE0WjAVMRMwEQYDVQQDDAppZHB0ZXN0YmVkMIIBIjANBgkqhkiG9w0B -AQEFAAOCAQ8AMIIBCgKCAQEAh91caeY0Q85uhaUyqFwP2bMjwMFxMzRlAoqBHd7g -u6eo4duaeLz1BaoR2XTBpNNvFR5oHH+TkKahVDGeH5+kcnIpxI8JPdsZml1srvf2 -Z6dzJsulJZUdpqnngycTkGtZgEoC1vmYVky2BSAIIifmdh6s0epbHnMGLsHzMKfJ -Cb/Q6dYzRWTCPtzE2VMuQqqWgeyMr7u14x/Vqr9RPEFsgY8GIu5jzB6AyUIwrLg+ -MNkv6aIdcHwxYTGL7ijfy6rSWrgBflQoYRYNEnseK0ZHgJahz4ovCag6wZAoPpBs -uYlY7lEr89Ucb6NHx3uqGMsXlDFdE4QwfDLLhCYHPvJ0uwIDAQABo1swWTAdBgNV -HQ4EFgQUAkOgED3iYdmvQEOMm6u/JmD/UTQwOAYDVR0RBDEwL4IKaWRwdGVzdGJl -ZIYhaHR0cHM6Ly9pZHB0ZXN0YmVkL2lkcC9zaGliYm9sZXRoMA0GCSqGSIb3DQEB -CwUAA4IBAQBIdd4YWlnvJjql8+zKKgmWgIY7U8DA8e6QcbAf8f8cdE33RSnjI63X -sv/y9GfmbAVAD6RIAXPFFeRYJ08GOxGI9axfNaKdlsklJ9bk4ducHqgCSWYVer3s -RQBjxyOfSTvk9YCJvdJVQRJLcCvxwKakFCsOSnV3t9OvN86Ak+fKPVB5j2fM/0fZ -Kqjn3iqgdNPTLXPsuJLJO5lITRiBa4onmVelAiCstI9PQiaEck+oAHnMTnC9JE/B -DHv3e4rwq3LznlqPw0GSd7xqNTdMDwNOWjkuOr3sGpWS8ms/ZHHXV1Vd22uPe70i -s00xrv14zLifcc8oj5DYzOhYRifRXgHX - - - - - - - - - -MIIDEzCCAfugAwIBAgIUG6Nn1rlERS1vsi88tcdzSYX0oqAwDQYJKoZIhvcNAQEL -BQAwFTETMBEGA1UEAwwKaWRwdGVzdGJlZDAeFw0xNTEyMTEwMjIwMTRaFw0zNTEy -MTEwMjIwMTRaMBUxEzARBgNVBAMMCmlkcHRlc3RiZWQwggEiMA0GCSqGSIb3DQEB -AQUAA4IBDwAwggEKAoIBAQCBXv0o3fmT8iluyLjJ4lBAVCW+ZRVyEXPYQuRi7vfD -cO4a6d1kxiJLsaK0W88VNxjFQRr8PgDkWr28vwoH1rgk4pLsszLD48DBzD942peJ -l/S6FnsIJjmaHcBh4pbNhU4yowu63iKkvttrcZAEbpEro6Z8CziWEx8sywoaYEQG -ifPkr9ORV6Cn3txq+9gMBePG41GrtZrUGIu+xrndL0Shh4Pq0eq/9MAsVlIIXEa8 -9WfH8J2kFcTOfoWtIc70b7TLZQsx4YnNcnrGLSUEcstFyPLX+Xtv5SNZF89OOIxX -VNjNvgE5DbJb9hMM4UAFqI+1bo9QqtxwThjc/sOvIxzNAgMBAAGjWzBZMB0GA1Ud -DgQWBBStTyogRPuAVG6q7yPyav1uvE+7pTA4BgNVHREEMTAvggppZHB0ZXN0YmVk -hiFodHRwczovL2lkcHRlc3RiZWQvaWRwL3NoaWJib2xldGgwDQYJKoZIhvcNAQEL -BQADggEBAFMfoOv+oISGjvamq7+Y4G7ep5vxlAPeK3RATYPYvAmyH946qZXh98ni -QXyuqZW5P5eEt86toY45IwDU5r09SKwHughEe99iiEkxh0mb2qo84qX9/qcg+kyN -jeLd/OSyolpUCEFNwOFcog7pj7Eer+6AHbwTn1Mjb5TBsKwtDMJsaxPvdj0u7M5r -xL/wHkFhn1rCo2QiojzjSlV3yLTh49iTyhE3cG+RxaNKDCxhp0jSSLX1BW/ZoPA8 -+PMJEA+Q0QbyRD8aJOHN5O8jGxCa/ZzcOnYVL6AsEXoDiY3vAUYh1FUonOWw0m9H -p+tGUbGS2l873J5PrsbpeKEVR/IIoKo= - - - - - - - - - - - - - - diff --git a/demo/shibboleth/midpoint_server/Dockerfile b/demo/shibboleth/midpoint_server/Dockerfile deleted file mode 100644 index 11ab497..0000000 --- a/demo/shibboleth/midpoint_server/Dockerfile +++ /dev/null @@ -1,11 +0,0 @@ -ARG tag=4.8.2 - -FROM i2incommon/midpoint:${tag} - -MAINTAINER info@evolveum.com - -ENV MP_DIR /opt/midpoint - -VOLUME ${MP_DIR}/var - -COPY container_files/mp-home/ ${MP_DIR}/var/ diff --git a/demo/shibboleth/midpoint_server/container_files/httpd/host-cert.pem b/demo/shibboleth/midpoint_server/container_files/httpd/host-cert.pem deleted file mode 100644 index 9b1021b..0000000 --- a/demo/shibboleth/midpoint_server/container_files/httpd/host-cert.pem +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIDqDCCApCgAwIBAgIJAMOSkn4oS2aAMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV -BAYTAlVTMQswCQYDVQQIDAJNSTESMBAGA1UEBwwJQW5uIEFyYm9yMRcwFQYDVQQK -DA5JbnRlcm5ldDIvVElFUjEgMB4GA1UEAwwXbWlkcG9pbnQuc3AuZXhhbXBsZS5v -cmcwHhcNMTgwOTE0MDU1OTQ1WhcNMTkwOTE0MDU1OTQ1WjBpMQswCQYDVQQGEwJV -UzELMAkGA1UECAwCTUkxEjAQBgNVBAcMCUFubiBBcmJvcjEXMBUGA1UECgwOSW50 -ZXJuZXQyL1RJRVIxIDAeBgNVBAMMF21pZHBvaW50LnNwLmV4YW1wbGUub3JnMIIB -IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApj/b7MEUSfu3oXMfNgRwTse7 -a5UV7Jswf1M/ZN/ZZkAkIxNBevZgozjesvLPWrmsTgONi7XigJUJvCjdjmlW9eDM -lri/rkD8HuOR1DQCVKL9nvoS2c3D7sq5Emda3V8Tlj82VqfEmePd3sajx7mcTfbH -8jwAL9NhkC+WMib5IpjLGpG0FEAC0ha7Lxb+7jIiqHVJaqLXJGCyGN4mh6c1Q9S1 -f8RVTiW2a8x22G+9wnZYbkiA2Kxls177imHlhSz8EdvV4IpGw1amrEWhhuDEum7B -vZ1xQDLatgRqh4qAKLIVYeRnJ8H1FelMa90qB4G08MIPifmTsQwqJyBYaEdgWQID -AQABo1MwUTAdBgNVHQ4EFgQUqb9BteODF6wv5R57aEON/wGXMiowHwYDVR0jBBgw -FoAUqb9BteODF6wv5R57aEON/wGXMiowDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG -9w0BAQsFAAOCAQEAAcKhxI+tSItrXmqC0PSmgWyAYpqbkz6W/cefTutXqhIgY09f -h0LSv7ogTahoGpyiZk9vy6u3OE9bYwxapEfa4KBjO6HxBMIVBBb3RegVjoPzjElN -BDwAx0VGFcZTXwMxDWycWdG8ql7rCZBvS50w04uTaIgnGmqXAdWWmBgfJ9cRbxW+ -JwO/mOl1QM1lR/5142NpvuUVWlmZSKEGydE5A1qPz2wpDbBR1ym1BQNS4NEqw6Kp -GSB8jKyCS1Ve0v2wVze2038Wukz02dq9uKPTIO3T+B+ibZmxn6Op/kFCc1/kK5NS -Q6JdO1B6KquGAYdGmKAcQ19mv+jqGktqWEEf0g== ------END CERTIFICATE----- diff --git a/demo/shibboleth/midpoint_server/container_files/httpd/host-key.pem b/demo/shibboleth/midpoint_server/container_files/httpd/host-key.pem deleted file mode 100644 index 5746e59..0000000 --- a/demo/shibboleth/midpoint_server/container_files/httpd/host-key.pem +++ /dev/null @@ -1,28 +0,0 @@ ------BEGIN PRIVATE KEY----- -MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCmP9vswRRJ+7eh -cx82BHBOx7trlRXsmzB/Uz9k39lmQCQjE0F69mCjON6y8s9auaxOA42LteKAlQm8 -KN2OaVb14MyWuL+uQPwe45HUNAJUov2e+hLZzcPuyrkSZ1rdXxOWPzZWp8SZ493e -xqPHuZxN9sfyPAAv02GQL5YyJvkimMsakbQUQALSFrsvFv7uMiKodUlqotckYLIY -3iaHpzVD1LV/xFVOJbZrzHbYb73CdlhuSIDYrGWzXvuKYeWFLPwR29XgikbDVqas -RaGG4MS6bsG9nXFAMtq2BGqHioAoshVh5GcnwfUV6Uxr3SoHgbTwwg+J+ZOxDCon -IFhoR2BZAgMBAAECggEAEIRBpjjceiku6jRUwnoYaks/nIWYQwR8AfpUTwJKR/VR -Yca097Fokm7A+UhUP3A45RtHQb0VPq8P44iv0kk24YCu8r5yFK7SHYOAZnOwU5ZJ -2jSAEPF3aM7tKh3okhuzB3dKP7u1NZDE5zAW723KUJiW7sL1RcsbY0bHBj6G+9/H -NplmsjuGt684vRBB0qOBfKF7EiG7mT69tHuNj4gRza9SMY31UtKbZdt2fNY6mp5V -HscMba7egZP+Ke0pVX4+go9j7K8GG8hYaQDLjrzlPqrxZ2c5X9cC+CRDI/CHuL/s -V/2yGZJ6n6UabwZoH83RdFrbQ94rU8Hkli6EvxXvMQKBgQDRpheNW5jDG5TfeJKh -yfKTDQqH2Tk3BsBYYBN7Hf3m7vbkzlxnAKJAoSLmtRMuoeXvI5MrhzaHGsNIUS76 -LDIZnvB7DLUxhFUZsCPkpAA1QHuTWY96oR3PHnPjpk8lSUvtbOPwDLdzVApeFJgZ -VqMNArZ7AHsK3Kkyi+f4WVQjbQKBgQDLAWiGb5dx6fAM2W6B6HjNmzjBWOuVEXa2 -76to9jzupBZmETfZgxtWUaWUDuNS+f7dtVUTE+p6v/w8clrHEhEZYkqunIOLo/UA -LFPiuoTfEsWb1rh+nsCjCgy4uimixj/bSkf7NC6NyKTvCygA1mGnVVJUEPegYlDy -LXCkaKWxHQKBgQCmyHSKL2lrJkEcOwakEU2acNCE3Gno/cT9SYmV83kvQ8JEqmrW -QqnRsp9aXIljGscapPmKsmnNt5vNp1AxFAHTYh88NRLczsMIyZj0ZwgHVUI6KhC7 -5Psa78YQQBlMt2/g9TSsnuE+rYgF6mpKFiNm0Vasqeg47uzn2mdzqlUGTQKBgE04 -JutkTUY+h1pL5vYxWKpVDfy19z7H2tFxT1FowPrBneeLSyRI88Ac5I/yLdRlVeY9 -0LOmEr5Igwj3MsKgg7KVKfVLgdo/LrW3Jt2Kt3onKNXDkoBPoNUjwH0QC0Boiue+ -VK0gR0kVdm+bXccbxR+im+NwZNE0NLg6Qqu3RredAoGBALuVoqbPPmTCZXYG328H -bzOs2aiR7BzPSVByV+qG6jW7w03RAnFPJZp7HMU+ViI5VY0wabUscMSvz5163+gM -4KwY3v9ZjZzZGukIfLuudkdqtaiVOx/KeAC0n+nG21YU+wpZww8gkfHh1/sa2CME -CWYCgOnmiTHcj83UaTqEXtmv ------END PRIVATE KEY----- diff --git a/demo/shibboleth/midpoint_server/container_files/mp-home/config.xml b/demo/shibboleth/midpoint_server/container_files/mp-home/config.xml deleted file mode 100644 index 0fc3410..0000000 --- a/demo/shibboleth/midpoint_server/container_files/mp-home/config.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - - ${midpoint.home}/import - - - native - jdbc:postgresql://localhost:5432/midpoint - midpoint - password - - - - com.evolveum.midpoint.audit.impl.LoggerAuditServiceFactory - - - com.evolveum.midpoint.repo.sqale.audit.SqaleAuditServiceFactory - - - - true - ${midpoint.home}/icf-connectors - - - ${midpoint.home}/keystore.jceks - changeit - default - - - diff --git a/demo/shibboleth/tests/main.bats b/demo/shibboleth/tests/main.bats deleted file mode 100755 index e48527e..0000000 --- a/demo/shibboleth/tests/main.bats +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/env bats - -load ../../../common -load ../../../library - -@test "000 Cleanup before running the tests" { - (cd ../simple ; docker-compose down -v) - (cd ../grouper ; docker-compose down -v) - run docker-compose down -v -} - -@test "010 Initialize and start containers" { - docker-compose -f docker-compose-tests.yml build --pull midpoint_data directory idp - # Sometimes the tier/midpoint:xyz is not yet in the repository, causing issues with --pull - docker-compose -f docker-compose-tests.yml build midpoint_server - docker-compose -f docker-compose-tests.yml up -d -} - -@test "012 Wait for Shibboleth to start up" { - wait_for_shibboleth_idp_start shibboleth_idp_1 -} - -@test "014 Wait for midPoint to start up" { - wait_for_midpoint_start shibboleth_midpoint_server_1 -} - -@test "030 Check health (midPoint)" { -# docker logs shibboleth_midpoint_server_1 - check_health -} - -@test "035 Check health (Shibboleth IdP)" { - check_health_shibboleth_idp -} - -@test "040 Check internal SAML redirection (/midpoint/auth/saml-internal)" { - curl -k --write-out %{redirect_url} --silent --output /dev/null https://localhost:8443/midpoint/auth/saml-internal/ | grep 'https:\/\/localhost:8443\/midpoint\/auth\/saml-internal\/mySamlSso\/authenticate\/midpointdemo-shibboleth' -} - -@test "041 Check internal SAML redirection action (midpoint/..../discovery?...)" { - TMPFILE=$(mktemp /tmp/samlForm.XXXXXX) - curl -k https:\/\/localhost:8443\/midpoint\/auth\/saml-internal\/mySamlSso\/authenticate\/midpointdemo-shibboleth >$TMPFILE || (rm $TMPFILE ; return 1) - if (grep -q " - bash -c " - chmod 777 /opt/mp-pw/ ; - touch /opt/mp-pw/db_init_in_progress ; - echo -e '#!/bin/sh\ntouch /opt/mp-pw/db_init' >/opt/db-init/000-start.sh ; - echo -e '#!/bin/sh\necho DB structure init process has finished...\nrm -f /opt/mp-pw/db_init_in_progress /opt/mp-pw/db_init' > /opt/db-init/999-finish.sh ; - /opt/midpoint/bin/midpoint.sh init-native - " + midpoint_data: + image: postgres:16-alpine environment: - - MP_INIT_CFG=/opt/mp-home - - MP_INIT_DB_CONCAT=/opt/db-init/init.sql - - MP_DB_PW=/opt/mp-pw/dbpassword - - MP_PW_DEF=/opt/mp-pw/keystorepw + - POSTGRES_PASSWORD=db.secret.pw.007 + - POSTGRES_USER=midpoint + - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 + networks: + - net volumes: - - db_init:/opt/db-init - - mp_pw:/opt/mp-pw - - midpoint_home:/opt/mp-home + - midpoint_data:/var/lib/postgresql/data - midpoint_data: - image: postgres:13-alpine + data_init: + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux command: > - bash -c " - rm -f /var/lib/postgresql/data/postmaster.pid ; - while [ ! -s /opt/mp-pw/dbpassword -o -e /opt/mp-pw/init_in_progress ] ; do - echo 'Waiting to the end of the init process...'; - sleep 1; - done ; - { - sleep 2 ; - if [ ! -e /opt/mp-pw/db_init -a -e /opt/mp-pw/db_init_in_progress ] ; - then echo 'DB init did not start...' ; - rm -f /opt/mp-pw/db_ini*; - echo 'The lock files has been removed...'; - fi ; - } & - docker-entrypoint.sh postgres - " - user: "70:70" + bash -c " + cd /opt/midpoint ; + bin/midpoint.sh init-native ; + echo ' - - - - - - ' ; + bin/ninja.sh -B info >/dev/null 2>/tmp/ninja.log ; + grep -q \"ERROR\" /tmp/ninja.log && ( + bin/ninja.sh run-sql --create --mode REPOSITORY ; + bin/ninja.sh run-sql --create --mode AUDIT + ) || + echo -e '\\n Repository init is not needed...' ; + " depends_on: - - data_init + - midpoint_data environment: - - POSTGRES_PASSWORD_FILE=/opt/mp-pw/dbpassword - - POSTGRES_USER=midpoint - - POSTGRES_INITDB_ARGS=--lc-collate=en_US.utf8 --lc-ctype=en_US.utf8 - ports: - - 5432:5432 + - MP_SET_midpoint_repository_jdbcUsername=midpoint + - MP_SET_midpoint_repository_jdbcPassword=db.secret.pw.007 + - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint + - MP_SET_midpoint_repository_database=postgresql + - MP_INIT_CFG=/opt/midpoint/var networks: - net volumes: - - midpoint_data:/var/lib/postgresql/data - - db_init:/docker-entrypoint-initdb.d/ - - mp_pw:/opt/mp-pw + - midpoint_home:/opt/midpoint/var midpoint_server: - image: i2incommon/midpoint:${tag:-4.8.2} + image: evolveum/midpoint:${MP_VER:-4.8.3}-rockylinux + container_name: midpoint_server + hostname: midpoint-container depends_on: - - data_init - - midpoint_data + data_init: + condition: service_completed_successfully + midpoint_data: + condition: service_started + command: [ "/opt/midpoint/bin/midpoint.sh", "container" ] ports: - - 8443:443 + - 8080:8080 environment: - - ENV - - USERTOKEN - - MP_SET_midpoint_administrator_initialPassword=Password1 - MP_SET_midpoint_repository_jdbcUsername=midpoint - - MP_SET_midpoint_repository_jdbcPassword_FILE=/opt/mp-pw/dbpassword + - MP_SET_midpoint_repository_jdbcPassword=db.secret.pw.007 - MP_SET_midpoint_repository_jdbcUrl=jdbc:postgresql://midpoint_data:5432/midpoint - - MP_SET_midpoint_keystore_keyStorePassword_FILE=/opt/mp-pw/keystorepw - - MP_SET_server_tomcat_ajp_enabled=true - - MP_SET_server_tomcat_ajp_port=9090 - - MP_SET_server_tomcat_ajp_secret=s3cr3t - - MP_SET_logging_path=/tmp/logtomcat + - MP_SET_midpoint_repository_database=postgresql + - MP_SET_midpoint_administrator_initialPassword=Test5ecr3t - MP_UNSET_midpoint_repository_hibernateHbm2ddl=1 - MP_NO_ENV_COMPAT=1 - - MP_MEM_MAX - - MP_MEM_INIT - - MP_JAVA_OPTS - - TIER_BEACON_OPT_OUT - - TIMEZONE + - MP_ENTRY_POINT=/opt/midpoint-dirs-docker-entrypoint networks: - net: - aliases: - - midpoint-server - secrets: - - mp_host-key.pem + - net volumes: - midpoint_home:/opt/midpoint/var - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/host-cert.pem - - type: bind - source: ./configs-and-secrets/midpoint/httpd/host-cert.pem - target: /etc/pki/tls/certs/cachain.pem - - mp_pw:/opt/mp-pw networks: net: driver: bridge -secrets: - mp_host-key.pem: - file: ./configs-and-secrets/midpoint/httpd/host-key.pem - volumes: - db_init: - mp_pw: midpoint_data: midpoint_home: diff --git a/demo/simple/tests/main.bats b/demo/simple/tests/main.bats deleted file mode 100755 index 2445dd5..0000000 --- a/demo/simple/tests/main.bats +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env bats - -load ../../../common -load ../../../library - -@test "000 Cleanup before running the tests" { - (cd ../grouper ; docker-compose down -v) - (cd ../shibboleth ; docker-compose down -v) - docker-compose down -v -} - -@test "010 Initialize and start midPoint" { - docker-compose up -d - wait_for_midpoint_start simple_midpoint_server_1 -} - -@test "010 Check health" { - check_health -} - -@test "100 Get 'administrator'" { - check_health - get_and_check_object users 00000000-0000-0000-0000-000000000002 administrator -} - -@test "110 And and get 'test110'" { - check_health - echo "test110" >/tmp/test110.xml - add_object users /tmp/test110.xml - rm /tmp/test110.xml - search_and_check_object users test110 -} - -@test "300 Check repository preserved between restarts" { - check_health - - echo "Creating user test300 and checking its existence" - echo "test300" >/tmp/test300.xml - add_object users /tmp/test300.xml - rm /tmp/test300.xml - search_and_check_object users test300 - - echo "Bringing the containers down" - docker-compose down - - echo "Re-creating the containers" - docker-compose up --no-start - docker-compose start - wait_for_midpoint_start simple_midpoint_server_1 - - echo "Searching for the user again" - search_and_check_object users test300 -} - -@test "999 Clean up" { - docker-compose down -v -} diff --git a/download-midpoint.sh b/download-midpoint.sh deleted file mode 100755 index 7ebc712..0000000 --- a/download-midpoint.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash - -DIR=`dirname "$0"` -source $DIR/common.bash -if [[ -n "$1" ]]; then - MP_VERSION=$1 -else - if [[ $tag == "latest" ]]; then - # Normally we use last released midPoint version number here, e.g. "4.1". - # But if we need to incorporate interim changes to I2 distribution during - # midPoint development cycle, we can specify concrete file from "midpoint-tier" - # download directory by using its name (like "latest-stable"). - MP_VERSION="4.8.2" - else - MP_VERSION=$tag - fi -fi - -if [[ $MP_VERSION =~ ^[0-9]+(\.[0-9]+)+$ ]]; then - URL_BASE="https://download.evolveum.com/midpoint/$MP_VERSION/" -else - URL_BASE="https://download.evolveum.com/midpoint-tier/" -fi - -echo "Downloading midPoint $MP_VERSION from $URL_BASE" -echo "-----------------------------------------" -curl --output $DIR/midpoint-dist.tar.gz "$URL_BASE/midpoint-$MP_VERSION-dist.tar.gz" -echo "-----------------------------------------" -echo "Checking the download..." -if tar -tf $DIR/midpoint-dist.tar.gz >/dev/null; then - echo "OK" - exit 0 -else - echo "The file was not downloaded correctly" - exit 1 -fi diff --git a/library.bash b/library.bash deleted file mode 100644 index 7254b64..0000000 --- a/library.bash +++ /dev/null @@ -1,596 +0,0 @@ -#!/bin/bash - -# -# Contains common functions usable for midPoint system tests -# - -MP_USERPWD='administrator:Password1' - -# do not use from outside (ugly signature) -function generic_wait_for_log () { - CONTAINER_NAME=$1 - MESSAGE="$2" - WAITING_FOR="$3" - FAILURE="$4" - ADDITIONAL_CONTAINER_NAME=$5 - ATTEMPT=0 - MAX_ATTEMPTS=30 - DELAY=10 - - until [[ $ATTEMPT = $MAX_ATTEMPTS ]]; do - ATTEMPT=$((ATTEMPT+1)) - docker ps - ( docker logs $CONTAINER_NAME 2>&1 | grep -F "$MESSAGE" ) && return 0 - echo "Waiting $DELAY seconds for $WAITING_FOR (attempt $ATTEMPT) ..." - sleep $DELAY - done - - echo "$FAILURE" in $(( $MAX_ATTEMPTS * $DELAY )) seconds in $CONTAINER_NAME - echo "========== Container log ==========" - docker logs $CONTAINER_NAME 2>&1 - echo "========== End of the container log ==========" - if [ -n "$ADDITIONAL_CONTAINER_NAME" ]; then - echo "========== Container log ($ADDITIONAL_CONTAINER_NAME) ==========" - docker logs $ADDITIONAL_CONTAINER_NAME 2>&1 - echo "========== End of the container log ($DATABASE_CONTAINER_NAME) ==========" - fi - return 1 -} - - -function wait_for_log_message () { - generic_wait_for_log $1 "$2" "log message" "log message has not appeared" -} - -# Waits until midPoint starts -function wait_for_midpoint_start () { - generic_wait_for_log $1 "INFO (com.evolveum.midpoint.web.boot.MidPointSpringApplication): Started MidPointSpringApplication in" "midPoint to start" "midPoint did not start" $2 -} - -# Waits until Shibboleth IDP starts -function wait_for_shibboleth_idp_start_old () { - generic_wait_for_log $1 "INFO:oejs.Server:main: Started" "shibboleth idp to start" "shibboleth idp did not start" $2 -} - -# Waits until Shibboleth IDP starts -function wait_for_shibboleth_idp_start () { - generic_wait_for_log $1 "[main] INFO org.apache.catalina.startup.Catalina- Server startup in" "shibboleth idp to start" "shibboleth idp did not start" $2 -} - -# Waits until Grouper UI starts -function wait_for_grouper_ui_start () { - generic_wait_for_log $1 "INFO org.apache.catalina.startup.Catalina- Server startup in" "grouper ui to start" "grouper ui did not start" $2 -} - -# Checks the health of midPoint server -function check_health () { - echo Checking health... - (set -o pipefail ; curl -k -f https://localhost:8443/midpoint/actuator/health | tr -d '[:space:]' | grep -q "\"status\":\"UP\"") - status=$? - if [ $status -ne 0 ]; then - echo Error: $status - docker ps - return 1 - else - echo OK - return 0 - fi -} - -# Checks the health of Shibboleth IDP server -function check_health_shibboleth_idp_old () { - echo Checking health of shibboleth idp... - status="$(curl -k --write-out %{http_code} --silent --output /dev/null https://localhost:4443/idp/)" - if [ $status -ne 200 ]; then - echo Error: Http code of response is $status - docker ps - return 1 - else - echo OK - return 0 - fi -} - -function check_health_shibboleth_idp () { - echo Checking health of shibboleth idp... - status="$(curl -k --write-out %{http_code} --silent --output /dev/null https://localhost/idp/)" - if [ $status -ne 200 ]; then - echo Error: Http code of response is $status - docker ps - return 1 - else - echo OK - return 0 - fi -} - -# Result is in OUTFILE -function get_object () { - local TYPE=$1 - local OID=$2 - OUTFILE=$(mktemp /tmp/get.XXXXXX) - echo out file is $OUTFILE - #FIXME workaround for MID-6721 bug - if [ "$TYPE" == "tasks" ]; then - PARAM='?include=result' - fi - - curl -k --user $MP_USERPWD -H "Content-Type: application/xml" -X GET "https://localhost:8443/midpoint/ws/rest/$TYPE/$OID$PARAM" >$OUTFILE || (rm $OUTFILE ; return 1) - return 0 -} - -# Retrieves XML object and checks if the name matches -# Object is deleted before return -function get_and_check_object () { - local TYPE=$1 - local OID=$2 - local NAME=$3 - local TMPFILE=$(mktemp /tmp/get.XXXXXX) - echo tmp file is $TMPFILE - curl -k --user $MP_USERPWD -H "Content-Type: application/xml" -X GET "https://localhost:8443/midpoint/ws/rest/$TYPE/$OID" >$TMPFILE || (rm $TMPFILE ; return 1) - if (grep -q "$NAME" <$TMPFILE); then - echo "Object $TYPE/$OID '$NAME' is OK" - rm $TMPFILE - return 0 - else - echo "Object $TYPE/$OID '$NAME' was not found or not retrieved correctly:" - cat $TMPFILE - rm $TMPFILE - return 1 - fi -} - -# Adds object from a given file -function add_object () { - local TYPE=$1 - local FILE=$2 - TMPFILE=$(mktemp /tmp/addobject.XXXXXX) - echo "Adding to $TYPE from $FILE..." - - curl -k -sD - --silent --write-out "%{http_code}" --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/$TYPE" -d @$FILE >$TMPFILE - local HTTP_CODE=$(sed '$!d' $TMPFILE) - sed -i '$ d' $TMPFILE - - if [ "$HTTP_CODE" -eq 201 ] || [ "$HTTP_CODE" -eq 202 ]; then - - OID=$(grep -oP "Location: \K.*" $TMPFILE | awk -F "$TYPE/" '{print $2}') || (echo "Couldn't extract oid from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - - echo "OID of created object: $OID" - rm $TMPFILE - return 0 - else - echo "Error code: $HTTP_CODE" - if [ "$HTTP_CODE" -ge 500 ]; then - echo "Error message: Internal server error. Unexpected error occurred, if necessary please contact system administrator." - else - echo $(sed '1,/^\s*$/d' $TMPFILE) >$TMPFILE - local ERROR_MESSAGE=$(xmllint --xpath "/*/*[local-name()='message']/text()" $TMPFILE) || (echo "Couldn't extract error message from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - echo "Error message: $ERROR_MESSAGE" - fi - rm $TMPFILE - return 1 - fi -} - -# parameter $2 (CONTAINER) is just for diagnostics: it is the container whose logs we want to dump on error (might be omitted) -function execute_bulk_action () { - local FILE=$1 - local CONTAINER=$2 - echo "Executing bulk action from $FILE..." - TMPFILE=$(mktemp /tmp/execbulkaction.XXXXXX) - - (curl -k --silent --write-out "%{http_code}" --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/rpc/executeScript" -d @$FILE >$TMPFILE) || (echo "Midpoint logs: " ; ([[ -n "$CONTAINER" ]] && docker logs $CONTAINER ) ; return 1) - local HTTP_CODE=$(sed '$!d' $TMPFILE) - sed -i '$ d' $TMPFILE - - if [ "$HTTP_CODE" -eq 200 ]; then - - local STATUS=$(xmllint --xpath "/*/*/*[local-name()='status']/text()" $TMPFILE) || (echo "Couldn't extract status from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - if [ $STATUS = "success" ]; then - local CONSOLE_OUTPUT=$(xmllint --xpath "/*/*/*[local-name()='consoleOutput']/text()" $TMPFILE) || (echo "Couldn't extract console output from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - echo "Console output: $CONSOLE_OUTPUT" - rm $TMPFILE - return 0 - else - echo "Bulk action status is not OK: $STATUS" - local CONSOLE_OUTPUT=$(xmllint --xpath "/*/*/*[local-name()='consoleOutput']/text()" $TMPFILE) || (echo "Couldn't extract console output from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - echo "Console output: $CONSOLE_OUTPUT" - rm $TMPFILE - return 1 - fi - - else - echo "Error code: $HTTP_CODE" - if [[ $HTTP_CODE -ge 500 ]]; then - echo "Error message: Internal server error. Unexpected error occurred, if necessary please contact system administrator." - else - local ERROR_MESSAGE=$(xmllint --xpath "/*/*[local-name()='message']/text()" $TMPFILE) || (echo "Couldn't extract error message from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - echo "Error message: $ERROR_MESSAGE" - fi - rm $TMPFILE - return 1 - fi -} - -# parameter $2 (CONTAINER) is just for diagnostics: it is the container whose logs we want to dump on error (might be omitted) -function run_task_now () { - local OID=$1 - local CONTAINER=$2 - echo "Running task $1 now..." - TMPFILE=$(mktemp /tmp/runtasknow.XXXXXX) - - (curl -k --silent --write-out "%{http_code}" --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/tasks/$OID/run" >$TMPFILE) || (echo "Midpoint logs: " ; ([[ -n "$CONTAINER" ]] && docker logs $CONTAINER ) ; return 1) - local HTTP_CODE=$(sed '$!d' $TMPFILE) - sed -i '$ d' $TMPFILE - - if [[ $HTTP_CODE -ge 200 && $HTTP_CODE -lt 300 ]]; then - rm $TMPFILE - return 0 - else - echo "Error code: $HTTP_CODE" - cat $TMPFILE - rm $TMPFILE - return 1 - fi -} - -# parameter $2 (CONTAINER) is just for diagnostics: it is the container whose logs we want to dump on error (might be omitted) -function suspend_task () { - local OID=$1 - local CONTAINER=$2 - echo "Suspending task $OID..." - TMPFILE=$(mktemp /tmp/suspendtask.XXXXXX) - - (curl -k --silent --write-out "%{http_code}" --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/tasks/$OID/suspend" >$TMPFILE) || (echo "Midpoint logs: " ; ([[ -n "$CONTAINER" ]] && docker logs $CONTAINER ) ; return 1) - local HTTP_CODE=$(sed '$!d' $TMPFILE) - sed -i '$ d' $TMPFILE - - if [[ $HTTP_CODE -ge 200 && $HTTP_CODE -lt 300 ]]; then - rm $TMPFILE - return 0 - else - echo "Error code: $HTTP_CODE" - cat $TMPFILE - rm $TMPFILE - return 1 - fi -} - -function delete_object_by_name () { - local TYPE=$1 - local NAME=$2 - search_objects_by_name users $NAME - local OID=$(xmllint --xpath "/*/*[local-name()='object']/@oid" $SEARCH_RESULT_FILE | awk -F"\"" '{print $2}' ) || (echo "Couldn't extract oid from file:" ; cat $SEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE; return 1) - delete_object $TYPE $OID -} - -function delete_object () { - local TYPE=$1 - local OID=$2 - echo "Deleting object with type $TYPE and oid $OID..." - TMPFILE=$(mktemp /tmp/delete.XXXXXX) - - curl -k --silent --write-out "%{http_code}" --user $MP_USERPWD -H "Content-Type: application/xml" -X DELETE "https://localhost:8443/midpoint/ws/rest/$TYPE/$OID" >$TMPFILE - local HTTP_CODE=$(sed '$!d' $TMPFILE) - sed -i '$ d' $TMPFILE - - if [ "$HTTP_CODE" -eq 204 ]; then - echo "Object with type $TYPE and oid $OID was deleted" - rm $TMPFILE - return 0 - else - echo "Error code: $HTTP_CODE" - if [[ $HTTP_CODE -ge 500 ]]; then - echo "Error message: Internal server error. Unexpected error occurred, if necessary please contact system administrator." - else - local ERROR_MESSAGE=$(xmllint --xpath "/*/*[local-name()='message']/text()" $TMPFILE) || (echo "Couldn't extract error message from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - echo "Error message: $ERROR_MESSAGE" - fi - #rm $TMPFILE - return 1 - fi -} - -# Tries to find an object with a given name -# Results of the search are in the $SEARCH_RESULT_FILE -# TODO check if the result is valid (i.e. not an error) - return 1 if invalid, otherwise return 0 ("no objects" is considered OK here) -function search_objects_by_name () { - local TYPE=$1 - local NAME="$2" - TMPFILE=$(mktemp /tmp/search.XXXXXX) - - curl -k --write-out %{http_code} --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/$TYPE/search" -d @- << EOF >$TMPFILE || (rm $TMPFILE ; return 1) - - - - name - $NAME - - - -EOF - local HTTP_CODE=$(sed '$!d' <<<"$(cat $TMPFILE)") - sed -i '$ d' $TMPFILE - # cat $TMPFILE - - if [ "$HTTP_CODE" -eq 200 ]; then - SEARCH_RESULT_FILE=$TMPFILE - return 0 - else - echo "Error code: $HTTP_CODE" - if [[ $HTTP_CODE -ge 500 ]]; then - echo "Error message: Internal server error. Unexpected error occurred, if necessary please contact system administrator." - else - local ERROR_MESSAGE - ERROR_MESSAGE=$(xmllint --xpath "/*/*/*/*[local-name()='message']/text()" $TMPFILE) || (echo "Couldn't extract error message from file:" ; cat $TMPFILE ; rm $TMPFILE; return 1) - echo "Error message: $ERROR_MESSAGE" - fi - rm $SEARCH_RESULT_FILE - return 1 - fi -} - -# Searches for object with a given name and verifies it was found -function search_and_check_object () { - local TYPE=$1 - local NAME="$2" - search_objects_by_name $TYPE "$NAME" || return 1 - if (grep -q "$NAME" <$SEARCH_RESULT_FILE); then - echo "Object $TYPE/'$NAME' is OK" - rm $SEARCH_RESULT_FILE - return 0 - else - echo "Object $TYPE/'$NAME' was not found or not retrieved correctly:" - cat $SEARCH_RESULT_FILE - rm $SEARCH_RESULT_FILE - return 1 - fi -} - -# Tests a resource -function test_resource () { - local OID=$1 - local TMPFILE=$(mktemp /tmp/test.resource.XXXXXX) - - curl -k --silent --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/resources/$OID/test" >$TMPFILE || (rm $TMPFILE ; return 1) - if [[ $(xmllint --xpath "/*/*[local-name()='status']/text()" $TMPFILE) == "success" ]]; then - echo "Resource $OID test succeeded" - rm $TMPFILE - return 0 - else - echo "Resource $OID test failed" - cat $TMPFILE - rm $TMPFILE - return 1 - fi -} - -function recompute () { - local TYPE=$1 - local OID=$2 - local TMPFILE=$(mktemp /tmp/recompute.XXXXXX) - - curl -k --silent --write-out "%{http_code}" --user $MP_USERPWD -H "Content-Type: application/xml" -X POST "https://localhost:8443/midpoint/ws/rest/$TYPE/$OID" -d @- << EOF >$TMPFILE || (rm $TMPFILE ; return 1) - -EOF - local HTTP_CODE=$(sed '$!d' $TMPFILE) - sed -i '$ d' $TMPFILE - if [[ $HTTP_CODE -ge 200 && $HTTP_CODE -lt 300 ]]; then - echo "Object $TYPE/$OID recomputation succeeded" - rm $TMPFILE - return 0 - else - echo "Object $TYPE/$OID recomputation failed: $HTTP_CODE" - cat $TMPFILE - rm $TMPFILE - return 1 - fi -} - -function assert_task_success () { - local OID=$1 - get_object tasks $OID - TASK_STATUS=$(xmllint --xpath "/*/*[local-name()='resultStatus']/text()" $OUTFILE) || (echo "Couldn't extract task status from task $OID" ; cat $OUTFILE ; rm $OUTFILE ; return 1) - if [[ $TASK_STATUS = "success" ]]; then - echo "Task $OID status is OK" - rm $OUTFILE - return 0 - else - echo "Task $OID status is not OK: $TASK_STATUS" - cat $OUTFILE - rm $OUTFILE - return 1 - fi -} - -function wait_for_task_completion () { - local OID=$1 - local ATTEMPT=0 - local MAX_ATTEMPTS=$2 - local DELAY=$3 - - until [[ $ATTEMPT = $MAX_ATTEMPTS ]]; do - ATTEMPT=$((ATTEMPT+1)) - echo "Waiting $DELAY seconds for task with oid $OID to finish (attempt $ATTEMPT) ..." - sleep $DELAY - get_object tasks $OID - TASK_EXECUTION_STATUS=$(xmllint --xpath "/*/*[local-name()='executionState']/text()" $OUTFILE) || (echo "Couldn't extract task status from task $OID" ; cat $OUTFILE ; rm $OUTFILE ; return 1) - if [[ $TASK_EXECUTION_STATUS = "suspended" ]] || [[ $TASK_EXECUTION_STATUS = "closed" ]]; then - echo "Task $OID is finished" - rm $OUTFILE - return 0 - fi - done - rm $OUTFILE - echo Task with $OID did not finish in $(( $MAX_ATTEMPTS * $DELAY )) seconds - return 1 -} - -function get_task_execution_status () { - local NAME=$1 - - search_objects_by_name tasks "$NAME" - TASK_EXECUTION_STATUS=$(xmllint --xpath "/*/*/*[local-name()='executionStatus']/text()" $SEARCH_RESULT_FILE) || (echo "Couldn't extract task status from task $NAME" ; cat $SEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; return 1) - echo "Task execution status: $TASK_EXECUTION_STATUS" - return 0 -} - -function search_ldap_object_by_filter () { - local BASE_CONTEXT_FOR_SEARCH=$1 - local FILTER="$2" - local LDAP_CONTAINER=$3 - TMPFILE=$(mktemp /tmp/ldapsearch.XXXXXX) - - docker exec $LDAP_CONTAINER ldapsearch -h localhost -p 389 -D "cn=Directory Manager" -w password -b "$BASE_CONTEXT_FOR_SEARCH" "($FILTER)" >$TMPFILE || (echo "Couldn't search $FILTER" ;rm $TMPFILE ; return 1) - LDAPSEARCH_RESULT_FILE=$TMPFILE - return 0 -} - -function get_ldap_user () { - local USER_UID="$1" - local LDAP_CONTAINER=$2 - search_ldap_object_by_filter "ou=people,dc=internet2,dc=edu" "uid=$USER_UID" $LDAP_CONTAINER || return 1 - if ! grep -F "uid: $USER_UID" $LDAPSEARCH_RESULT_FILE; then - echo "Couldn't find user '$USER_UID'" - rm $LDAPSEARCH_RESULT_FILE - return 1 - else - return 0 - fi -} - -function assert_ldap_user_has_value () { - local USER_UID="$1" - local TYPE=$2 # Entitlement or Affiliation - local VALUE="$3" - local LDAP_CONTAINER=$4 - get_ldap_user "$USER_UID" $LDAP_CONTAINER || return 1 - if ! grep -F "eduPerson$TYPE: $VALUE" $LDAPSEARCH_RESULT_FILE; then - echo "'$USER_UID' has no $TYPE of '$VALUE'" - cat $LDAPSEARCH_RESULT_FILE - rm $LDAPSEARCH_RESULT_FILE - return 1 - else - rm $LDAPSEARCH_RESULT_FILE - return 0 - fi -} - -function assert_ldap_user_has_no_value () { - local USER_UID="$1" - local TYPE=$2 # Entitlement or Affiliation - local VALUE="$3" - local LDAP_CONTAINER=$4 - get_ldap_user "$USER_UID" $LDAP_CONTAINER || return 1 - if grep -F "eduPerson$TYPE: $VALUE" $LDAPSEARCH_RESULT_FILE; then - echo "'$USER_UID' has an $TYPE of '$VALUE' although it should not have one" - cat $LDAPSEARCH_RESULT_FILE - rm $LDAPSEARCH_RESULT_FILE - return 1 - else - rm $LDAPSEARCH_RESULT_FILE - return 0 - fi -} - -function check_ldap_account_by_user_name () { - local NAME="$1" - local LDAP_CONTAINER=$2 - search_ldap_object_by_filter "ou=people,dc=internet2,dc=edu" "uid=$NAME" $LDAP_CONTAINER - search_objects_by_name users $NAME - - local MP_FULL_NAME=$(xmllint --xpath "/*/*/*[local-name()='fullName']/text()" $SEARCH_RESULT_FILE) || (echo "Couldn't extract user fullName from file:" ; cat $SEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - local MP_GIVEN_NAME=$(xmllint --xpath "/*/*/*[local-name()='givenName']/text()" $SEARCH_RESULT_FILE) || (echo "Couldn't extract user givenName from file:" ; cat $SEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - local MP_FAMILY_NAME=$(xmllint --xpath "/*/*/*[local-name()='familyName']/text()" $SEARCH_RESULT_FILE) || (echo "Couldn't extract user familyName from file:" ; cat $SEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - - local LDAP_CN=$(grep -oP "cn: \K.*" $LDAPSEARCH_RESULT_FILE) || (echo "Couldn't extract user cn from file:" ; cat $LDAPSEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - local LDAP_GIVEN_NAME=$(grep -oP "givenName: \K.*" $LDAPSEARCH_RESULT_FILE) || (echo "Couldn't extract user givenName from file:" ; cat $LDAPSEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - local LDAP_SN=$(grep -oP "sn: \K.*" $LDAPSEARCH_RESULT_FILE) || (echo "Couldn't extract user sn from file:" ; cat $LDAPSEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - - rm $SEARCH_RESULT_FILE - rm $LDAPSEARCH_RESULT_FILE - - if [[ $MP_FULL_NAME = $LDAP_CN ]] && [[ $MP_GIVEN_NAME = $LDAP_GIVEN_NAME ]] && [[ $MP_FAMILY_NAME = $LDAP_SN ]]; then - return 0 - fi - - echo "User in Midpoint and LDAP Account with uid $NAME are not same" - return 1 -} - -function check_ldap_courses_by_name () { - local NAME="$1" - local LDAP_CONTAINER=$2 - search_objects_by_name orgs $NAME - - local MP_ORG_IDENTIFIER=$(xmllint --xpath "/*/*/*[local-name()='identifier']/text()" $SEARCH_RESULT_FILE) || (echo "Couldn't extract user identifier from file:" ; cat $SEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; return 1) - - search_ldap_object_by_filter "ou=courses,ou=groups,dc=internet2,dc=edu" "cn=$MP_ORG_IDENTIFIER" $LDAP_CONTAINER - - local LDAP_CN=$(grep -oP "cn: \K.*" $LDAPSEARCH_RESULT_FILE) || (echo "Couldn't extract user cn from file:" ; cat $LDAPSEARCH_RESULT_FILE ; rm $SEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - - rm $SEARCH_RESULT_FILE - rm $LDAPSEARCH_RESULT_FILE - if [[ $MP_ORG_IDENTIFIER = $LDAP_CN ]]; then - return 0 - fi - - echo "Orgs $NAME in Midpoint and LDAP Group(Course) with cn $MP_ORG_IDENTIFIER are not same" - return 1 -} - - -function check_of_ldap_membership () { - local NAME_OF_USER="$1" - local BASE_CONTEXT_FOR_GROUP="$2" - local NAME_OF_GROUP="$3" - local LDAP_CONTAINER=$4 - search_ldap_object_by_filter "ou=people,dc=internet2,dc=edu" "uid=$NAME_OF_USER" $LDAP_CONTAINER - - local LDAP_ACCOUNT_DN=$(grep -oP "dn: \K.*" $LDAPSEARCH_RESULT_FILE) || (echo "Couldn't extract user dn from file:" ; cat $LDAPSEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - - search_ldap_object_by_filter "$BASE_CONTEXT_FOR_GROUP" "cn=$NAME_OF_GROUP" $LDAP_CONTAINER - - local LDAP_MEMBERS_DNS=$(grep -oP "uniqueMember: \K.*" $LDAPSEARCH_RESULT_FILE) || (echo "Couldn't extract user uniqueMember from file:" ; cat $LDAPSEARCH_RESULT_FILE ; rm $LDAPSEARCH_RESULT_FILE ; return 1) - - rm $LDAPSEARCH_RESULT_FILE - - if [[ $LDAP_MEMBERS_DNS =~ $LDAP_ACCOUNT_DN ]]; then - return 0 - fi - - echo "LDAP Account with uid $NAME_OF_USER is not member of LDAP Group $NAME_OF_GROUP in base context $BASE_CONTEXT_FOR_GROUP" - return 1 -} - -function get_messages () { - local QUEUE="$1" - MESSAGES=$(curl -s -i -u guest:guest "http://localhost:15672/api/queues/%2f/$QUEUE" | sed 's/,/\n/g' | grep '"messages"' | sed 's/"messages"://g') - if [ -z "$MESSAGES" ]; then - echo "Unable to get number of messages in $QUEUE" - return 1 - fi - return 0 -} - -function upload_from_file () { - local FILENAME=$1 - local OPTIONS_TO_ADD=$2 - local REGEX="midpoint-objects.*/(.*)/(.*)" - if [[ $FILENAME =~ $REGEX ]] - then - TYPE="${BASH_REMATCH[1]}" - OID=`cat $FILENAME | sed -n 's:.*oid=\"\([A-Za-z0-9\-]*\)\".*:\1:p' | sed -n '1 p'` - echo "Uploading $FILENAME ($TYPE, $OID)" - curl -k --user $MP_USERPWD -H "Content-Type: application/xml" -X PUT "https://localhost:8443/midpoint/ws/rest/$TYPE/$OID?options=overwrite$OPTIONS_TO_ADD" --data-binary @$FILENAME - else - echo "Skipping $FILENAME" - fi -} - -function execute_gsh () { - local CONTAINER=$1 - local FILE=$2 - docker cp $FILE $CONTAINER:/tmp/ - docker exec $CONTAINER bash -c "/opt/grouper/grouper.apiBinary/bin/gsh /tmp/$FILE" -} diff --git a/tests/main.bats b/tests/main.bats deleted file mode 100755 index d04ed36..0000000 --- a/tests/main.bats +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bats - -load ../common - -@test "010 Image is present" { - docker image inspect $maintainer/$imagename:$tag -} - -@test "020 Check basic components" { - docker run -i $maintainer/$imagename:$tag \ - find \ - /usr/local/bin/startup.sh \ - /opt/midpoint/var/ \ - /etc/shibboleth/ \ - /etc/httpd/ -} - -@test "100 Cleanup before further tests - demo/simple" { - docker ps -a - cd demo/simple ; docker-compose down -v ; true -} - -@test "110 Cleanup before further tests - demo/shibboleth" { - docker ps -a - cd demo/shibboleth ; docker-compose down -v ; true -} - -@test "130 Cleanup before further tests - demo/grouper" { - docker ps -a - cd demo/grouper ; docker-compose down -v ; true -} - -# not much more to check here, as we cannot start midpoint container without having a repository -# so continuing with tests in demo/plain directory

    I?G7{z-I! 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 z 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 z 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 z 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≤wtt-y#6=Kc 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%0D_fU&xXP=_*W3IDrs7zKR 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∨{OU>S$$Rr|WgV~9)Qkzr7}lopt@00ux(sFW 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≶0eLgpz@_Ax#HFd`YA__^FFu-L~ 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≫Q$dTsW0-QIP9=NU!&!#l>t`J)&%%boLMa%p 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