From daa75722531f8d7f5f1cac3afcafec67b454fc94 Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Sat, 28 Mar 2020 16:11:03 +0200 Subject: [PATCH 1/4] add draft template for ocp --- ocp/README.md | 53 +++ ocp/template-fevermap.yaml | 723 +++++++++++++++++++++++++++++++++++++ 2 files changed, 776 insertions(+) create mode 100644 ocp/template-fevermap.yaml diff --git a/ocp/README.md b/ocp/README.md index 9f9504b..bc7ef9e 100644 --- a/ocp/README.md +++ b/ocp/README.md @@ -20,6 +20,59 @@ Images are built once, and the URLs and some start options may be given them as environment variables and config map to make them adapt to different runtime locations. +# Setting up test environment + +There are different ways of setting up instances onto OpenShift. The /ocp +-directory contains yamls for different components. You can check the absolutely +necessary ones from +[/ocp/install.sh](https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/install.sh). + +Absolutely easies way is to use the template. It asks you few parameters, and +lets OpenShift bring up all the components. If you want to use GUI, import the +template first (need admin for this): + +```curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/template-fevermap.yaml|oc create -n openshift``` + +Then you'll find it from the OpenShift Catalog. It will ask you with parameters, +and provides the samples. + +Another way is to provision it from command line. Here are two examples, the second +one omits some parameters that are not necessary: + +``` +curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/template-fevermap.yaml| \ + oc new-app \ + -p NAME=test \ + -p NAMESPACE=fever-template \ + -p MEMORY_FRONT_LIMIT=512Mi \ + -p MEMORY_API_LIMIT=512Mi \ + -p MEMORY_MYSQL_LIMIT=512Mi \ + -p VOLUME_CAPACITY=1Gi \ + -p SOURCE_REPOSITORY_URL=https://gitlab.com/fevermap/fevermap.git \ + -p SOURCE_REPOSITORY_REF=master \ + -p APPLICATION_FRONT_DOMAIN=front.apps.ocp4.konttikoulu.fi \ + -p APPLICATION_API_DOMAIN=api.apps.ocp4.konttikoulu.fi \ + -p DATABASE_SERVICE_NAME=db \ + -p DATABASE_NAME=feverdb \ + -p DATABASE_USER=fever \ + -p DATABASE_PASSWORD=fever \ + -p DATABASE_ROOT_PASSWORD=feverr +``` + +from local file: + +``` + oc new-app \ + -f template-fevermap.yaml \ + -p NAME=test \ + -p NAMESPACE=fever-template \ + -p SOURCE_REPOSITORY_URL=https://gitlab.com/fevermap/fevermap.git \ + -p SOURCE_REPOSITORY_REF=master \ + -p APPLICATION_FRONT_DOMAIN=front.apps.ocp4.ocp.ninja \ + -p APPLICATION_API_DOMAIN=api.apps.ocp4.ocp.ninja +``` + + # Storage Both web frontend and API service are static images, which won't need persistent diff --git a/ocp/template-fevermap.yaml b/ocp/template-fevermap.yaml new file mode 100644 index 0000000..49350af --- /dev/null +++ b/ocp/template-fevermap.yaml @@ -0,0 +1,723 @@ +apiVersion: template.openshift.io/v1 +kind: Template +labels: + app: fevermap-mysql-persistent + template: fevermap-mysql-persistent +message: |- + The following service(s) have been created in your project: ${NAME} ${NAME}-api, ${DATABASE_SERVICE_NAME}. + + For more information about using this template, including OpenShift considerations, see https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/README.md. +metadata: + annotations: + description: An example Fevermap application with a MySQL database. For more information + about using this template, including OpenShift considerations, see https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/README.md. + iconClass: icon-python + openshift.io/display-name: Fevermap + openshift.io/documentation-url: https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/README.md + openshift.io/long-description: This template defines resources needed to develop + a Fevermap application, including a build configurations, application deployment + configurations, and database deployment configuration. + openshift.io/provider-display-name: Red Hat, Inc. + openshift.io/support-url: https://gitlab.com/fevermap/fevermap/-/issues + samples.operator.openshift.io/version: "0.1" + tags: quickstart,python,nodejs,fevermap + template.openshift.io/bindable: "false" + labels: + samples.operator.openshift.io/managed: "false" + name: fevermap-mysql-persistent +parameters: +- description: The name prefix assigned to frontend objects defined in this template. + displayName: Name + name: NAME + required: true + value: fevermap-mysql-persistent +- description: The OpenShift Namespace where the ImageStream resides. + displayName: Namespace + name: NAMESPACE + required: true + value: fevermap +- description: Version of Python image to be used (3.6 or latest). + displayName: Python Version + name: PYTHON_VERSION + required: false + value: "3.6" +- description: Maximum amount of memory the frontend container can use. + displayName: Memory Limit Frontned + name: MEMORY_FRONT_LIMIT + required: true + value: 512Mi +- description: Maximum amount of memory the API container can use. + displayName: Memory Limit API + name: MEMORY_API_LIMIT + required: true + value: 512Mi +- description: Maximum amount of memory the MySQL container can use. + displayName: Memory Limit (MySQL) + name: MEMORY_MYSQL_LIMIT + required: true + value: 512Mi +- description: Volume space available for data, e.g. 512Mi, 2Gi + displayName: Volume Capacity + name: VOLUME_CAPACITY + required: true + value: 1Gi +- description: The URL of the repository with your application source code. + displayName: Git Repository URL + name: SOURCE_REPOSITORY_URL + required: true + value: https://gitlab.com/fevermap/fevermap.git +- description: Set this to a branch name, tag or other ref of your repository if you + are not using the default branch. + displayName: Git Reference + name: SOURCE_REPOSITORY_REF +- description: The exposed hostname that will route to the Fevermap frontend service, + if left blank a value will be defaulted. + displayName: Application Frontend Hostname + name: APPLICATION_FRONT_DOMAIN +- description: The exposed hostname that will route to the Fevermap API service, + if left blank a value will be defaulted. + displayName: Application API Hostname + name: APPLICATION_API_DOMAIN +- description: GitLab trigger secret. A difficult to guess string encoded as part + of the webhook URL. Not encrypted. + displayName: GitLab Webhook Secret + from: '[a-zA-Z0-9]{40}' + generate: expression + name: GITLAB_WEBHOOK_SECRET +- displayName: Database Service Name + name: DATABASE_SERVICE_NAME + required: true + value: mariadb +- displayName: Database Name + name: DATABASE_NAME + required: true + value: fevermap +- displayName: Database User + name: DATABASE_USER + required: true + value: fevermap +- displayName: Database Password + from: '[a-zA-Z0-9]{16}' + generate: expression + name: DATABASE_PASSWORD +- displayName: Database Root Password + from: '[a-zA-Z0-9]{16}' + generate: expression + name: DATABASE_ROOT_PASSWORD +objects: +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-api + annotations: + description: Defines how to build the application + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + selector: + app: ${NAME} + name: ${NAME}-api +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-build + annotations: + description: Defines how to build the application + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME} + annotations: + description: The run-time image for frontend (second stage) + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-runtime + annotations: + description: The run-time image for API (second stage) + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + tags: + - annotations: null + from: + kind: DockerImage + name: centos/nginx-112-centos7:latest + name: latest + referencePolicy: + type: Source + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ubi8-s2i-web-app + annotations: + description: Defines how to build the application + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + tags: + - annotations: null + from: + kind: DockerImage + name: nodeshift/ubi8-s2i-web-app:10.x + name: latest + referencePolicy: + type: Source + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: v1 + stringData: + database-name: ${DATABASE_NAME} + database-password: ${DATABASE_PASSWORD} + database-root-password: c${DATABASE_ROOT_PASSWORD} + database-user: ${DATABASE_USER} + kind: Secret + metadata: + annotations: + template.openshift.io/expose-database_name: '{.data[''database-name'']}' + template.openshift.io/expose-password: '{.data[''database-password'']}' + template.openshift.io/expose-root_password: '{.data[''database-root-password'']}' + template.openshift.io/expose-username: '{.data[''database-user'']}' + name: ${NAME}-db + type: Opaque +- apiVersion: build.openshift.io/v1 + kind: BuildConfig + metadata: + name: ${NAME}-api + labels: + app: ${NAME} + app.kubernetes.io/component: ${NAME}-api + app.kubernetes.io/instance: ${NAME}-api + app.kubernetes.io/name: python + app.kubernetes.io/part-of: ${NAME} + app.openshift.io/runtime: python + app.openshift.io/runtime-version: ${PYTHON_VERSION} + annotations: + app.openshift.io/vcs-ref: ${SOURCE_REPOSITORY_REF} + app.openshift.io/vcs-uri: ${SOURCE_REPOSITORY_URL} + spec: + output: + to: + kind: ImageStreamTag + name: '${NAME}-api:latest' + successfulBuildsHistoryLimit: 5 + failedBuildsHistoryLimit: 5 + strategy: + type: Source + sourceStrategy: + from: + kind: DockerImage + name: registry.redhat.io/ubi8/python-36 + pullSecret: + name: registry-redhat-io-secret + ### XXX ^ what about the pull secret ^ + source: + type: Git + git: + uri: ${SOURCE_REPOSITORY_URL} + ref: ${SOURCE_REPOSITORY_REF} + contextDir: /api + triggers: + - gitlab: + secret: ${GITLAB_WEBHOOK_SECRET} + type: GitLab + - type: ImageChange + imageChange: + - type: ConfigChange + runPolicy: Serial + selector: + app: ${NAME} + name: ${NAME}-api +- apiVersion: build.openshift.io/v1 + kind: BuildConfig + metadata: + name: ${NAME}-build + labels: + app.kubernetes.io/component: ${NAME} + app.kubernetes.io/instance: ${NAME} + app.kubernetes.io/name: nodejs + app.kubernetes.io/part-of: ${NAME} + app.openshift.io/runtime: nodejs + spec: + failedBuildsHistoryLimit: 5 + output: + to: + kind: ImageStreamTag + name: '${NAME}-build:latest' + resources: + limits: + memory: 2Gi + runPolicy: Serial + source: + contextDir: app + git: + uri: ${SOURCE_REPOSITORY_URL} + ref: ${SOURCE_REPOSITORY_REF} + type: Git + strategy: + sourceStrategy: + env: + - name: NPM_BUILD + value: >- + webpack --mode production --env.NODE_ENV=production + - name: OUTPUT_DIR + value: dist + from: + kind: ImageStreamTag + name: 'ubi8-s2i-web-app:latest' + type: Source + successfulBuildsHistoryLimit: 5 + triggers: + - gitlab: + secret: ${GITLAB_WEBHOOK_SECRET} + type: GitLab + - type: ConfigChange + - imageChange: + type: ImageChange + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: build.openshift.io/v1 + kind: BuildConfig + metadata: + name: ${NAME}-runtime + labels: + app.kubernetes.io/component: ${NAME} + app.kubernetes.io/instance: ${NAME}-build + app.kubernetes.io/name: ${NAME}-runtime + app.kubernetes.io/part-of: ${NAME} + app.openshift.io/runtime: nginx + app: ${NAME} + spec: + failedBuildsHistoryLimit: 5 + nodeSelector: null + output: + to: + kind: ImageStreamTag + name: ${NAME}:latest + runPolicy: Serial + source: + images: + - as: null + from: + kind: ImageStreamTag + name: ${NAME}-build:latest + paths: + - destinationDir: . + sourcePath: /opt/app-root/output/. + type: Image + strategy: + sourceStrategy: + from: + kind: ImageStreamTag + name: ${NAME}-runtime:latest + incremental: true + type: Source + successfulBuildsHistoryLimit: 5 + triggers: + - type: ConfigChange + - imageChange: + type: ImageChange + - imageChange: + from: + kind: ImageStreamTag + name: ${NAME}-build:latest + type: ImageChange + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: v1 + kind: Service + metadata: + labels: + app: ${NAME} + name: ${NAME} + spec: + ports: + - name: 8080-tcp + port: 8080 + protocol: TCP + targetPort: 8080 + - name: 8443-tcp + port: 8443 + protocol: TCP + targetPort: 8443 + selector: + deploymentconfig: ${NAME} + sessionAffinity: None + type: ClusterIP + selector: + app: ${NAME} + name: ${NAME} +- apiVersion: v1 + kind: Service + metadata: + labels: + app: ${NAME} + app.kubernetes.io/component: ${NAME}-api + app.kubernetes.io/instance: ${NAME}-api + app.kubernetes.io/name: "${NAME}-api" + app.kubernetes.io/part-of: ${NAME} + name: ${NAME}-api + spec: + ports: + - name: 9000-tcp + port: 9000 + protocol: TCP + targetPort: 9000 + sessionAffinity: None + type: ClusterIP + selector: + app: ${NAME} + deploymentconfig: ${NAME}-api + name: ${NAME}-api +- apiVersion: v1 + kind: Service + metadata: + annotations: + template.openshift.io/expose-uri: mysql://{.spec.clusterIP}:{.spec.ports[?(.name=="mariadb")].port} + labels: + app: ${NAME} + app.kubernetes.io/component: ${NAME}-db + app.kubernetes.io/instance: ${NAME}-db + app.kubernetes.io/name: "${NAME}-db" + app.kubernetes.io/part-of: ${NAME} + name: ${NAME}-db + spec: + ports: + - name: mariadb + port: 3306 + protocol: TCP + targetPort: 3306 + selector: + app: ${NAME} + name: ${NAME}-db + sessionAffinity: None + type: ClusterIP +- apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + annotations: + template.alpha.openshift.io/wait-for-ready: "true" + creationTimestamp: null + generation: 1 + labels: + app: ${NAME} + app.kubernetes.io/component: ${NAME}-db + app.kubernetes.io/part-of: ${NAME} + name: ${NAME}-db + spec: + replicas: 1 + revisionHistoryLimit: 5 + selector: + # app: ${NAME} + # name: ${NAME}-db + strategy: + activeDeadlineSeconds: 21600 + recreateParams: + timeoutSeconds: 600 + type: Recreate + template: + metadata: + creationTimestamp: null + labels: + name: ${NAME}-db + spec: + containers: + - env: + - name: MYSQL_USER + valueFrom: + secretKeyRef: + key: database-user + name: ${NAME}-db + - name: MYSQL_PASSWORD + valueFrom: + secretKeyRef: + key: database-password + name: ${NAME}-db + - name: MYSQL_ROOT_PASSWORD + valueFrom: + secretKeyRef: + key: database-root-password + name: ${NAME}-db + - name: MYSQL_DATABASE + valueFrom: + secretKeyRef: + key: database-name + name: ${NAME}-db + image: openshift/mariadb@latest + imagePullPolicy: IfNotPresent + livenessProbe: + failureThreshold: 3 + initialDelaySeconds: 30 + periodSeconds: 10 + successThreshold: 1 + tcpSocket: + port: 3306 + timeoutSeconds: 1 + name: mariadb + ports: + - containerPort: 3306 + protocol: TCP + readinessProbe: + exec: + command: + - /bin/sh + - -i + - -c + - MYSQL_PWD="$MYSQL_PASSWORD" mysql -h 127.0.0.1 -u $MYSQL_USER -D $MYSQL_DATABASE + -e 'SELECT 1' + failureThreshold: 3 + initialDelaySeconds: 5 + periodSeconds: 10 + successThreshold: 1 + timeoutSeconds: 1 + resources: + limits: + memory: 2Gi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /var/lib/mysql/data + name: ${NAME}-data + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + terminationGracePeriodSeconds: 30 + volumes: + - name: ${NAME}-data + persistentVolumeClaim: + claimName: ${NAME}-mariadb-storage + test: false + triggers: + - imageChangeParams: + automatic: true + containerNames: + - mariadb + from: + kind: ImageStreamTag + name: mariadb:10.2 + namespace: openshift + type: ImageChange + - type: ConfigChange +- apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + annotations: + app.openshift.io/connects-to: ${NAME}-db + labels: + app: ${NAME}-api + app.kubernetes.io/component: ${NAME}-api + app.kubernetes.io/instance: ${NAME}-api + app.kubernetes.io/part-of: ${NAME} + name: ${NAME}-api + spec: + replicas: 2 + revisionHistoryLimit: 5 + selector: + # deploymentconfig: ${NAME}-api + # app: ${NAME} + # name: ${NAME}-api + strategy: + activeDeadlineSeconds: 21600 + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + creationTimestamp: null + labels: + app: ${NAME}-api + deploymentconfig: ${NAME}-api + spec: + containers: + - env: + - name: FEVERMAP_API_DATABASE_URI + value: 'mysql://${DATABASE_USER}:${DATABASE_PASSWORD}@${NAME}-db/${DATABASE_NAME}?charset=utf8mb4' + - name: FLASK_ENV + value: kube + - name: APP_SCRIPT + value: entrypoint.sh + - name: APPDIR + value: /opt/app-root/src + - name: UWSGIPLUGINLINE + image: ${NAME}-api:latest + imagePullPolicy: IfNotPresent + name: ${NAME}-api + ports: + - containerPort: 8080 + protocol: TCP + resources: + limits: + memory: 1Gi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + terminationGracePeriodSeconds: 30 + test: false + triggers: + - imageChangeParams: + automatic: true + containerNames: + - ${NAME}-api + from: + kind: ImageStreamTag + name: ${NAME}-api:latest + type: ImageChange + - type: ConfigChange +- apiVersion: v1 + data: + window-settings.js: |+ + window.URLS = { + API_URL: '${APPLICATION_FRONT_DOMAIN}', + APP_URL: '${APPLICATION_API_DOMAIN}', + }; + + kind: ConfigMap + metadata: + name: ${NAME}-window-settings +- apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + labels: + app: ${NAME} + app.kubernetes.io/component: ${NAME} + app.kubernetes.io/instance: ${NAME} + app.kubernetes.io/part-of: ${NAME} + name: ${NAME} + spec: + replicas: 2 + revisionHistoryLimit: 10 + selector: + # deploymentconfig: ${NAME} + # app: ${NAME} + # name: ${NAME} + strategy: + activeDeadlineSeconds: 21600 + rollingParams: + intervalSeconds: 1 + maxSurge: 25% + maxUnavailable: 25% + timeoutSeconds: 600 + updatePeriodSeconds: 1 + type: Rolling + template: + metadata: + labels: + deploymentconfig: ${NAME} + spec: + containers: + - image: ${NAME}:latest + imagePullPolicy: Always + name: ${NAME} + ports: + - containerPort: 8080 + protocol: TCP + - containerPort: 8443 + protocol: TCP + resources: + limits: + memory: 1Gi + terminationMessagePath: /dev/termination-log + terminationMessagePolicy: File + volumeMounts: + - mountPath: /opt/app-root/src/window-settings.js + name: ${NAME}-window-settings + readOnly: true + subPath: window-settings.js + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + terminationGracePeriodSeconds: 30 + volumes: + - configMap: + defaultMode: 420 + name: ${NAME}-window-settings + name: ${NAME}-window-settings + test: false + triggers: + - type: ConfigChange + - imageChangeParams: + automatic: true + containerNames: + - ${NAME} + from: + kind: ImageStreamTag + name: ${NAME}:latest + type: ImageChange +- apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + finalizers: + - kubernetes.io/pvc-protection + name: ${NAME}-mariadb-storage + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +- apiVersion: route.openshift.io/v1 + kind: Route + metadata: + labels: + app: ${NAME}-api + name: ${NAME}-api + spec: + host: ${APPLICATION_API_DOMAIN} + # path: /api + port: + targetPort: 9000-tcp + # tls: + # insecureEdgeTerminationPolicy: Allow + # termination: edge + to: + kind: Service + name: ${NAME}-api + weight: 100 + wildcardPolicy: None +- apiVersion: route.openshift.io/v1 + kind: Route + metadata: + labels: + app: ${NAME} + name: ${NAME} + spec: + host: ${APPLICATION_FRONT_DOMAIN} + port: + targetPort: 8080-tcp + # tls: + # insecureEdgeTerminationPolicy: Allow + # termination: edge + to: + kind: Service + name: ${NAME} + weight: 100 + wildcardPolicy: None -- GitLab From cd5634f30b8fef4c92740371ec3c32d968365fe7 Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Sat, 28 Mar 2020 16:13:15 +0200 Subject: [PATCH 2/4] fix branch for ocp pic --- ocp/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ocp/README.md b/ocp/README.md index bc7ef9e..510f3c6 100644 --- a/ocp/README.md +++ b/ocp/README.md @@ -14,7 +14,7 @@ be individually scaled according to load. Each component has service for them (kubernetes service discovery/dns). This handles load balancing as well in case pods gets scaled up'n down. -![app in ocp](https://gitlab.com/fevermap/fevermap/-/raw/feature-ocp-staging/ocp/ocp-app.png) +![app in ocp](https://gitlab.com/fevermap/fevermap/-/raw/master/ocp/ocp-app.png) Images are built once, and the URLs and some start options may be given them as environment variables and config map to make them adapt to different runtime -- GitLab From d767bf6ef43dfa8d67a26ca5bb163a79f3d36cae Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Sat, 28 Mar 2020 21:47:20 +0200 Subject: [PATCH 3/4] verified and documented template --- ocp/README.md | 32 +- ocp/ocp-app.png | Bin 41376 -> 43279 bytes ocp/ocp-template.png | Bin 0 -> 87966 bytes ...yaml => template-fevermap-persistent.yaml} | 699 +++++++++--------- 4 files changed, 359 insertions(+), 372 deletions(-) create mode 100644 ocp/ocp-template.png rename ocp/{template-fevermap.yaml => template-fevermap-persistent.yaml} (87%) diff --git a/ocp/README.md b/ocp/README.md index 510f3c6..d9407fe 100644 --- a/ocp/README.md +++ b/ocp/README.md @@ -22,25 +22,24 @@ locations. # Setting up test environment -There are different ways of setting up instances onto OpenShift. The /ocp --directory contains yamls for different components. You can check the absolutely -necessary ones from -[/ocp/install.sh](https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/install.sh). - -Absolutely easies way is to use the template. It asks you few parameters, and +The easiest way is to use the template. It asks you few parameters, and lets OpenShift bring up all the components. If you want to use GUI, import the template first (need admin for this): -```curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/template-fevermap.yaml|oc create -n openshift``` +``` +curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/template-fevermap.yaml|oc create -n openshift +``` -Then you'll find it from the OpenShift Catalog. It will ask you with parameters, -and provides the samples. +After that you'll find it from the OpenShift Catalog. It will ask you with parameters, +and provides the samples. See partial screenshot: + +![app in ocp](https://gitlab.com/fevermap/fevermap/-/raw/master/ocp/ocp-template.png) Another way is to provision it from command line. Here are two examples, the second one omits some parameters that are not necessary: ``` -curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/template-fevermap.yaml| \ +curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/template-fevermap-persistent.yaml| \ oc new-app \ -p NAME=test \ -p NAMESPACE=fever-template \ @@ -62,17 +61,14 @@ curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/templa from local file: ``` - oc new-app \ - -f template-fevermap.yaml \ - -p NAME=test \ +oc new-app \ + -f template-fevermap-persistent.yaml \ + -p NAME=fevermap \ -p NAMESPACE=fever-template \ - -p SOURCE_REPOSITORY_URL=https://gitlab.com/fevermap/fevermap.git \ - -p SOURCE_REPOSITORY_REF=master \ - -p APPLICATION_FRONT_DOMAIN=front.apps.ocp4.ocp.ninja \ - -p APPLICATION_API_DOMAIN=api.apps.ocp4.ocp.ninja + -p APPLICATION_FRONT_DOMAIN=front.apps.ocp4.konttikoulu.fi \ + -p APPLICATION_API_DOMAIN=api.apps.ocp4.konttikoulu.fi ``` - # Storage Both web frontend and API service are static images, which won't need persistent diff --git a/ocp/ocp-app.png b/ocp/ocp-app.png index 672d8d172d73abca235fc77618f783934a401ca8..8973fc47eb3dc5e56a41ffe6d61b3d389c5541af 100644 GIT binary patch literal 43279 zcmeAS@N?(olHy`uVBq!ia0y~yU@Tx@U@YZeV_;zTcx7V`0|Ns~v6E*A2L}g74M$1` z0|SF(iEBhjaDG}zd16s2Lwa6*ZmMo^a#3n(UU5c#$$RGgb_@&*dLTv4MX8A;nfZAN zA(^?U3^|DkMizPsxrvE6nZ?TZo=ic+i{=Vg* z;qzD7Jzx9%&$h!ne0*IS5)ZfWN(=M#eavg%l{U+{v4YpE@%Dzq!^c=!eIJcmSIH2~yuuV*Jwqo||3%Nb4 zTRNg{{@>EKxwGy~g76Owr<)H?X8-&h_5X6*?G1+WCI}n9t=}Z-8tD4SY-K-R4%2$! z43{*bKkM(@ z+F&?Mz*VqG!Q=nr{Xr{Rf>yFP3TSQ9IUOdj^P2nuwfx=n*V$$tSluvb%Tui=ftIfC zC$jh7=bwI>b^2-6<(D;c=lVUbh;8GQUUtC1C-iTKh--n2`roNusv_O41v1Np)ZM!7 zwprd_$z#yH6ehG)fuq1e=EKjLg57rucHjL_VPh6}`$qNw10EYWej7ReqrYv=FOJah zs&`pwEyJg^@ODa`Tu*H81U}v3jyW4R1BEwztFS3+-<)`up(r&@LuA7F=c-1_XY%G6 zU2pS!V00npX3-(FZTku=c=q4t-+$kJ(R=0RD)monXH~Yn*`AoJ^Ps>&YukYhGY`Kk zSyf~5>G3Mo^Pf*V|C|sR=K9R5)$dl~VxHLt9K&yW74fn)fB0F$!NL?;s^BPapm5Hs znwAM~&t)VlHTTFmz2R$LoD{v5bK;DMh-t1111_i(f0|ou{Vj_rT*y3d|B=n_KL1p? zWOiGS)sf-+=LeN>O7F6)XWcc-jS#)swyA3o$Mn;z+i&Yyem=V>Kto~nS*6J*J@{E> zDT~~wK7J<7^MT2uX|p|;8X1}nF3=R_{J2N>lHOFW((?hgqpg?sestH}$zFBym`cvI zr$sZrNq)5HkI`$7(PQs>tkSw(^x`J-#Pv!Ax{uVltVOsKC3p_K{wg(Zb%2J)!=S4| z-|pSGnB!CTV&dMgASuP7?YDC?+{Il3m5QdN<|-YJb9zv9cw=hh2b=r|v&(I~(u=v* z8l6rPsoWUhVl;Ego5w9D)E7(5H(~Kp&YSoA;)M$fvh@@r6N(;fySj~6`q}}H4x7m* z6(*l-cwQ+wadNRwiBAPn__EoPU8IzYI~6!iJpZgA)_q03#OTisvm76>7lJ#_KflcL zS9hvc$MMG}o)(FwO+C5jn7T=0w(E2kB|#S@!L#QlhQu<>-jRD_hQtM>qV~g$4hjoq zzMOe7WrE*wMGmH`CoKaF6FFltjUHCY=}qUJ=;31AyeUFQY5w`u^B#O!%PVcRhF@2y zeD~cCzyDsbDC&DW!9(T1rZrnSy7mZMcX`sl>HZ)}O?dzP{s|0V5(x1&3R=Ju7w*n29~b5l#(R8ombi{BkRul@4>!WJ7f4h zR>&}DEec_H{i!20eChIu<<8E`S0hgr$`tLKlWVjw@vs}~6d8psrB6TiY$@oLN!jW0 z=#Gll-G>DZBCg(_I#oGiJnzXISCr}vnq0hPQqh`<&AB%=7}_OBxG5zDiUjJ21!_$d z;A+*{ap?W`!!JvcGBP-9&WG2;?c2(g74KCwWkE?;kxcutWolZLlc%m>3~6DAe5-bQ zLt^rug(?q&RS)?YDJxCu{I0ZWGdReQ+u%WRb?ArAu31*`9k^ zq#?q^u;zEkmc+wtTNgax3KUr?Qf+A?$3JV1=E{bm zSmsR^ntbnpDlxWGH?0&4cb;U?ur``KYgUMt%!=HN&o4Hpa>R7+$>g;9B%M1M6l__o zbL?FLr+A$|^{~WhX^pVcBd@J?^CZfdmLIKjR}ySF{IKgWi=%_p+--+ha&K%1G}owf zvD>X)u={RCPEO0=hZ8vFtodeoPa>RYx#s%>0}o!&Gbu)*PjaobL8|#RJZ+|*Ug zrH=WjPrlQG$G(pqyFJ))D5P%x{8@>b)KnkMqT|mh z5@R@Gb_y_`|2*k>IA?0vQn0rqcr`p@B6;{5QWPiLK74%gk>jC_!k@}^-_6L&3!7Sd z=4sIb3%-Wj*V_^gAA8aK>_&){uJS~Vrh^Mq4{;x#b6{#&{_@M7u^o-6k=7v>+IXdt z`BXcXU(OV@Jf37&vG*QVFqgr%hpow854LnnZfj$^dg!ps@z9irQ`^DqfLjYR3oT{% z+O>>QZA5;|xau@fzg2C$jsy>zcAxUrJ&d#Ws53p;$FtOSLgI|BQua*k#Wyx2iWPlS zH;)#$KV#4QtIft7mCT1v8=Vs7zME&RG?9aijZN#8gPpaQ#O0*0PbQV?uXji2EW4FI z`MW{Sycdrv^EoobyIm{x##PwJRqT!HSfsI3e)9dL4u{(QKZ{- z$>q$K5z8-Ird{PezC><^(W92f7F)J$TO}r|Iy0bJxKf+lZ|!A+r+cN=Rxek1=b+%Q zcCC-I-t@_G7xK2>4ttW^aq(4p)cdQE+#ajO)5{f79$XevRP*;s_|(RowRVB;ZLR;y9kZ`0 zu4RAV@qVR7*8>Z_MH)&neA(-M<(Bk?Xtl=Zsq^Yde|0ylT{~;$yqWvL`ZsEGFmbgq z&GA#8HEULuRr__4!x1wt z^X1nn!_-q#x{_HO9kixunP*Izxc%OOi@zqnzs{7)koouIcWwLlv!x>4t_D2Lr8eQ+ zC04y5TCENW36m@4CR{n5@qVUa;bOaGcb5P0*{U(sDOzC$VTpb zM_TQt>ZfJ9L;vkgG3sqGVLp0S;-{oX^xDCra1smlREi&7_7 zyfqMFDLTGMfrEps`N}>v2h+Fe^BLQk`JdG9jPd)`v#EdL^`htvGxw=+INd!VEurUT zYGA<7_xQobimYdnJA)@bwkVKc-+o*7ZNH0>h6tC22-m9L22m2Bta{~9V%@GLW@f9p zLMHBFo_z4#TK5}I&c7@<^!TI4xd{{f-ew4}Fdj_`e3hbeI;`S(X3M(kZ1bK^^jm)M z)~&2t_j1KPR>Vkc*yel3W=gHE9@mNa*I!TlB^lWImF;D+%yG{?w!J9eT4o!LV zu|lBNZKBuGS5lW&v<9jcI3+YGtmyg25Te*D%xm&!+Ig!#b@omR16*%hu5j>sab%yz zvZ@p-UG*YMj}U>k-;EDl2$12o`QdSN)>8Ao*ZBo`_>NyP;$hx@zrV!FR*ipqC)cIx z8D6)a79D*5{qXb8SC8&76*|GWH$cNf@~W58^nUiXM3v>KDngB?Lv3}}#%&fm|L?2i z%dZE!#UHMYx7_|{MuA07jh+71)Ga=myu7@Z4xRk;Ub1(etrp9=Ewz(x_*$OO`Xqd@ zWRdHgCyAn5tq;EcKJLO8%Dwz@XM%yo(e-JYBcFV(T=h0q1k@1xQDgUN!K;@qk6u3i z&-d%U?fXj&85V3bY+IT>ukrZ&Ka=xjOG!yxxP6;@|9$&+EGecMqTBbZ7j&13^u3$) zp=xhXo`c@>$tUJ~F}9re8Qki9_AKqyPPzI=nmk8^Mc>O-ok)@?d!fkC@VL)XO1^#% zU-Y)T%Q^jrA37)qI4Dh=@aRZ3>(2X6ZavAm|FA$ohA+9GARu+y8uM3v54=9T^VTZGqH^1E-ne!@b<3{!VUR#|qUa<*hrcOxnKJmoc?XmSlKye)#UB>T z*p)O@@Y7Ktvy#m>Zp=NtEKW>%*JlZzVvpynDL0DhPm8j&)bO>``nCM=tBB!QW?pT$ z_GEXa@4Qd{&p!Rn9QSzNIfI@r3r;>QI`RDTgUWqM50^&hWSvu}n0NfQcDSNg_o9hH zEQ}2A>o){V-@~~lZvB+NNdEZ@f>t`G!#b`6XsE2c?Opuh8u#L52RIwu7Y9xiI{UPU zK~1i3^4b{Ak2d`d3JbX2U3b!c9jREA{(Mx6Wa@4xQ8K zoW7Pj>-4UPO)`iZz5v5?hbc4=nu3!~oZ==f_Y#Oz%Za@7r=%!z%a<0-$zbVXK z>spj1c4$72Q#$=PfAyn^Z+{i{>^9_0oRU=kYm&^o{|1fE?REUk|H`rZ#R(j|bXcnJ z(Vq^znY-`i9Z52LQe>HV%G>Gas>Vrs_Wxbm{qXzmkN3_0PJdS}&c&)3l%CJxt0J(7 zlZA<+)oEE>_to2*E1vyT{8Rc=pz6^bjcwu)TXnlbZ*Tf>a(-Fj!ybln78Y&#GPgQ1 z&;CkQlHl>$*Pmk4S!1`}^FdX>r0Ws&Ug-|tocR3nPpWr`I8l^J}{v_viCJ*xElS`9hTGCs)SvbpppX z%O4T^VpVYLpkd6Hn=35}c5Un8W?}m9vqnR#`^AeFD_;HHa^f}zU%PXc>3!*iszMx` z5-o5L1pV+lGClb&0$>ja?7Jugd`SF^=vp#Hn94+waqWlTI zcIJs5EP2~^FPhd7dEvxuo)c$w%B8F-$@pXw|4=_GBV)p}W)tB}(YmkP9(e6G*m(J* zqsTQE#XJVB;?DEWot>SV*Lmr1D$T2_=lHJk{$N{P*ykM^-L@$_=qzXdcw~38Mc#k5 zn8GOOzFXnZUs;$Kuik2?S}}DG=abT@-_hTtT4)`2WPSXbqyP8XHq>0S zTD`P>k8yv0`MX1RPgj5VD!lB$rSrb7Iv&fVr=JcjZHid?gm;F%VgT z4;LqTtz6ACUAsNQWL4G@n>lArsjO4U7dn6I!i5Bjv%eqTX8v(Be)mOLd3n(kvHUgu z4|~6A%GhXkNbkGRsr-Fme0X^H^i^LNd7YgLeLvmXR4ScxQA0}lC7%XE=|)dKmkS~0 zhPJN+Z#i@w&OKl9@OwUQPh$3Jccbt_vFE=(_&2?}@L-|tkL|{{FFpvr+-I})K1bA( zx#yo>ynDI(+qN+0hXztl&KmR_5&a|?Y#}o(?3?2CNd14Sy$d!K{d!)sGo(*!TB`fe zj`(~Hc9HX+3oK+Zva&9zzV9!8R&Y!Ab-~&9+oI>~c?wF0`hSy{_5Pm?`=Y9?+&sr` z`O6u1-p!NqefszHZ@B}H{q2_iu6$&%wd(&0^^DryHFfJ;@5Oi?usvN}aE1SWYUQVC z%}-ryK4jVV{d?&C<8btDZH_4|H#05erv6BHs>P7?^zXCi_Ybarw{3X$PVVmc$vGFR zzM1~q`NT<7!`iR;;DZ%w7Dk2(bG_`C=;87-M^l9B(*H2oC0^C$8`E7E2l^^WpDNh# z^L%W@pSg^|_i9%^n)$u`!>3y;>#X+j-nXjMx^u3mssHxdu+-TX3m*Jo{;+rTzV2fY zYnFZ3=Cp7_c&mVxuUbl@@ZOe{+pjGzc$;j!A$h@q%ATu+QyzY7b}xVM@cQqM-RsXD zX_9;@v{7%mw`)z*k7L)*9S^YS>-+X?)&BX9ExvsFc5TYrOg5KR?c9eC3nHRacFs$i zA}G8g$aO-KWswLM>*>|`v!p&%*mN9CnliP6m7^psS(>kv_S$sm8w?|54&b!o&E2kfQ zHm~SU#r1$fm!{Oa>umh?m)e3u)q1a}TtEBmZMn|H#hVu%zV`n6;>Bze85mZEczOA( zHka2t%;mgr!j|*TKPw7wg#2K9eXz4M@Ild4DZchl`-ZDm&3pIM+R2xyF;1B~WxM_5 z*4^=MWCPXbNfkbR!YVjtk3rYtZ}|k87V_yOr7f%m?L}K1x!(t7NvP%=-WLb)JEZ`dThkM;keJ1p$e| zo##6lQeA|P7k0QUp2dIS?e55$&*8J(pYW6$95}eSIbxGSSFo6?;r6RD{z(1NGdaO$ zT@&~8aH>WyUwCa^s?7TwkLLA?dSN1s*7IH;v^QJ!@$>p^N+Mi}bNv=?+_>?P#ijRg zRZm0rd^xqc?fKWATVG%K{{8#m_usEiS(h)ybGYGoW?t*W zsDLM|d;WS#>96yA@N_HZ7qwOW>|(Br&t(OVRJL=>xOTH|*|KF_e_N9TcbC00DqZ*O zo7t+&r6F3N0dE0U!Qf>+E33CUYddORa>-8YdAj=Xk9Win9C|>=jqPUhTW@VLEC#%byPe(cUGKv$9^+;+7-ne>~*DU{!K=IDl z8HTl1rS~sf5V*EBx;^vqGD){dy(~}4!>;j&yMo&Cm-bbKXvqjRPHvmDs!6V&eeK${ zqQ_G*6fF6yDwh4#5DiBc~*@|d61jZ#IE<9#~*tv4GQvn zIq{l@q+#Rf>pOF@vQ};QJz;9unicz=E^I1V?wp*gJay0ZZyPOsfAcq(uZ0KB3=SNZNBB7dUTHa`J;xv&#v{Ru(Pvo zEPCqYGv7|Ox3~90)!u2Zl)pAj+S4mD&AxgWce(9)dC!F{ml@|&rx@35*diOO{5W19 zCtJRIzU}4K=V3>EXG)$CJ4%_mNynLM{{-CCtp z9jJXGUr+xv&y=$#@7}#D)YxD0@aZhhn3XZIeC)Sw-3obVqH{VbtoHO`-#LEE)3%&c zkFBhEDK0H=ewObK(|;Gd_uku9Rum}0xRGVyjDv3q zxW32MDe&DWKi9#2;J^Wfd$r$VL7vjp)#YGentbWsT9b=~GRwX1+1F*MzpLK4e${)6 z+(ME6bz$nywp=SO3*ldLbKcRj_4iu0n=j$*7jNdmEZa`v$nQYLxk&+lC-i`uC)-8`jc=SF+sle&~xo6Mw*pT zYh50EYUiJ6yJgFkfVb?^q;cv-Vrg+)gR0zJlgPOoBxIBCh4E!43r!8 z$L*KzyJ^p~{IJyZ)$IF^HwyFjJUH@GP$z!!g_3E8Jj@0>67Ag0mI-&a-OUiQbJY-8 z<7K%#NHgc|E>UT-90zyzc9(mTEgRiu1}_ku_Uni>^AG*WX8CQ5|31(0`|~H;c(sWs5xlEt-a2HEm z>Nx)R(xOvKrtOef8N%i4?0jQWDtFkr7|uYEi`TBTEnB9xQf>3qU+%UJ#S@Mv8D_OT z)y@{)@y9$mF-_}Dp<%^~+r@?N0>8BKuid@8@o8=hBYp7nWJtFrohd1-0l<72%)zFhVfq4VXTdX+QvdCn9i<6>gqq-31=~elaT{X$c%2(%A|BIFW`0Kc4@N?VuGt&Ni*&|ut z!*F$Nd&s=wKg)A3g?b!O)BD64Q&_~3uKP)0s+Z#AlM3@e({G?TskwfKUw`$w`bA1g zN}$u_!i5V8M{E4AbqFWiIOu=ET81xJxYVrddEqVH*9VG@9X60Ecyv+w`NId1$?_*d z^7niT6qlB{dK!#^Ay#;nodg%1P}HF=!iZ1{(I@JKTGDH3_m8N z&!;r!@%P`_K3l-UZsAc)eml?1iM-eWBm7b4PVXkE8BK$H9TD8@!XOpH9};k5ChwS4AK76jmI|dC+=rgjQ_jrBCFql zsr>ne?}r^L?H6`s)Z_SZSk!pq`H=Q4=hQSW&pes31=80$WmBdc2vQMeKP}TCXSES{@T)*Y781G%Z%IYYfb9a@w2#$kD>H7H<0+qa`q5|m*!)*>%HvJA)9cfo1ghn)eScK?b=8Kd+YGzfH>I8u zJ8B!v$fI1ZJBj<&WyQ5bw;SEVB$nrGcbi-B(*B$K zjpq|i9h|iP;6X>tDP1ahKF2(SRi8L5jL=!MbLUJc`}&{x+dz$7p7Y!Dck}zlZhpT) z?QxHI8LwEux3|(f+y^=rb!hu#AN_8Bf7Pq>pEYuwE>2O+m!B3z9@Eq-Pct(y3HkDW z;X=hFmtP7VZMp99Kv?&eOQw~kSa(KtcJSX5CuRC4=lznfRTC;*_t(jKoz>!Rx8xZ< zJlhp_=j$K$7rp78&P%`XO*Z{0eUCrz=e-aA*KSnMiz*WEv(EX}aZ9aBXcDX zg!TVFui0YWSD*7e~=Yzwc(eY?Gyhg~r;IR+ld9sd7Hu zGwEcCfq_AQpm1F7>})CDPs`^Ued$}XDoON{+5~=`wH5EB=ikWe+B03Jr*Fm{`KnUp zydQtS^KGAJRJoV(vl=2DO6J_mv?mhWz>nwTa&yU?Ze*V8F8TebG?cm<&XO7KT zd2Hj+^>tH@Jbu5zdo~*rBMVbwpyuLCR}JMkbNtjz@9nlf`LMm-q|c(zTGHmz+{($b z_An;w=d*ve^G3xpjV@3scHXyQovb`pt4jK=(BCsRJ=+T!CiPmIyKdHjsdGatO`q(z z7~Q;HOyjWZ)UTWz*K*E3>MUpHJ#St=OMd^Zij-I1&X(@2__39DMZmd0`(AL;<7wx^eZKoE~^!iQ(jw_-^*1A1#czVie%Z}7Qk;1d@w@J@i zuKDKB;_x%g_l=E=4;)^fzarq0dCkiNo6@(M6|Z&$7kvKN-rP9vlUTsA3e%IPJ!J$w zK9PRCapmb7$5ypV>c-jB{EW%aQPWQ}IQw{8`mT`o{b`2P+K!qcCw8s$0u2tO+g~Ub zU_M~(Kc}gfZ+o2B`;14kjBgjdQhI#mG<)33!+c&9`icdW@tcJ_?rK=p*v-F^pLMXq zN5ku@Z{Dm>AN5laG23tZ_F7eb>Af3qf9mo%i4t+*&G&1|<6>X=K2@u_Daa z&$?nq)vdzMw+mlAdKvWl`yXZvkJx=vrfKVdFa$0PgymhFC6*>}&pNBaC+Gq1H<^d#C2-W5N4tnTeEPU{%Y zBU}4(!}q=~+pW9u(9@a~Dg{YylEK1UKb=wy_QupkcOLo57CKSo zn#5gMFsqEwAv@%5GkdF|o*9cOo?Ycy-iS1{|Zxzi{f_V$42 z_q7iGHqn#MMq5WMwY#zYaQ}Llwe}la1Va{ms@luJ!le9dSG1tlMhES#Z;xiNZ2R_7 z{mqqF4WERV`Y?8;xW9(qzn5yRxxG}cZ)s1>CZ;E1oJ;2ysFZz}CA#C%KVPW?)ythV z0T+cd=S7Q}$2>@wZx(;o`%u`iN@nTZk9Yh$`MvP-^YpYWi*#4z`~A9oN>N3F^@d0M<|O%Gp&h56O4SN;1*|+U_2b&GP4&!& zbFa?2#J9}yu+nF5F}K1ecE9>|&$?xH$s+&N^P`DR*9E-!dThH7&zj|$nvcNiG%_wt z*nUZUiRtCvk8i(HQCH3T`Ksq)#-ou#@PWOOHZwG;`k z>Y4wXk-Pq76XU6KS*gFb@0q(LMVX=E(Ot(Eca@hj|5&eoHO%84$NoJ}EKW={J#5gW ztN7X|)>vbI{nPdFlK1$daz)&#>t!9;u3hcVxo(pdUC*e!J*D8poKr3$`|rnppStt7 z@TYxZT&*FMf{Qey)H-^n1Tw(L!_umJV zaj&vddV0lA{8)B#*Wrf-5!>GUS-))VGLD#kAqw@U`m#iSZ@*OY==<-LW}eESC5QfS zr1?tDRb3@^eqHXWoLkRywM1+f3jPZGtP`rUTXW`a@TvOHN8aux50Cr5Jrv;f`{3W@ z-`PT0{FZGiN=<34GZuQm*}C1{Q`*fkwj}B6_xk)puJh+E(iRKLJ)IP7zglX2+x~1eSM6Mp`hS`~ z=NbcnUXD4_7#19n3|*(Rf2De-wA^p?D&d`6?n^>$yA*jjJ>Af9>|f$+bFFXuxA!RK zUcIRGNN)A15APTD)J=?gzMWzBKk1GdKA+>?ed0e)Y7LBKdhcI&$jGg#}G z78or)!MR5&M3mjnZ(WGg)@L94*`|EUpQTmxTe$Z5(?v5Gk2pP>pR2#-RwsA;PNuz` zb7skW*GPYxF}dnUWp>RxMu#bTIi?zgYkoa)TA=!!Y3*J0GoVo|dxea?r2gZ{k*OiP zPilLgX~=sN-nfx$a5;KG+`02@QtJ8_<_rE$PL^s4xHFqF9&8oay2^^H zb;`*phqVMXKFNCuu$;{*SYN*;{&Cewr_ZmdgZ+idZNIO#P03Vq7BVu8U2c)TG}7(c zhY1Hl_W9e#v9Qf=oDrM->egR5^}d__v3j9>eO~oq`uW-xp3@hnewH{^89rfi&zhwM1vi~rUAAUSs`#J0Z2kWfX4ap_ zs!Tg4iXM9^d(Er%1kaSD#%tGm(yH9w3A^2}ue{E>R{hzQUj}<4_fL>{TNizmZ(Ya( zzIJEVM`^dBCv&=nrk+*el35Yry2Z8ldeFQ}MLxYdHrBWAO5@^{&yzjSew*zIS46nw zWzR~N!h51mY}V{?4V24Ul*}By&u=~Br)ZzM%*yHcO3_Z=Cs=7;epwRbCmG6p={!Tg z?^{yM`@&W)uE{@|$yTQswPNArmvam@+wR<19^#|%lp9?d-y?;B!>QGTg zu*3gW{_>y`7fw7|o4om$LFe_X&(o%SpLbq=-tOfd`#5HPlB?s$xOwF0!s$MDo3E{4 z4_5x=X&e3fYFWb11G6$F+%LX#K7(sc*cI2H0!=UEPN@r9U0kqb!E+bY zjjyh5xjNy%)MvthA}gm}Tl3&(F9?VL- zaz2CKr~NQv|M6tc;<=Z4g1FnmWZC_GE3LjGz;sD&me#F((ea{N-OlRXxL`VEYR>&v zJMv6_dT~iwJy|(5ai#F{*lm@@Q~okBuq~J0nE%t{r!JRqx1)8@?8I%>TitATZMECx z&yX6zU6NkK=G2%NaP^Ube}1)a{rkAy$G62Fu8BOJCAT>(!FXNN2UVB7hc`ae-eq^> z{_gN#`^_6F*S)GS-}}Gd=x_7A{|y%16Id6up{J_vD)a0Qw|P$+8sF(!EvDnVXu>gH zd7CEJv&A33*7`55ORHYRUjFa3=H1tUhca@+Dg^g-E_!9L{(5xqw8t6FH@|0}^jW9L z7xTLN*ym#!`E6m=zbF0j-Y04Mlylp+Wm+E6pVoR+UVgOY>8ahHq}p=tP1u%I-0rbs z?y5bE4{op;U$_?1CzMzuzw)+s<%^IS|Bd1wB*I&accpKs_Pf;8o8}YN7PtHNq+g+W zvk&X-nDcD?_cu??85rJ0{AT(0{e^bH*QR3AenG`Y#}4n)+*|+f_4cIdsNGVJwtb#= z;7r@5mAS6h+jo3yZa?+>=eOCS>&4B^9_5tn*0$Td=(Y2lA8)2!dfn<DT+Lez!^R+YIzL@j>&#mXD zo}XI7sx)8jpPk@Te!;*(yNNaZmQ9(xFYj+QN!|FkGmhOg-;Ikwa+}@Xp0@XU|9ac( zed`;1{N9g$&O(*(r5B9;ytu%v=1G@F?ap%;K8Mw*7LWTk{{DsCec5{ZlKr0=BmYs@$FF7`ip!%eQDp+nE~+ zFV-bkp1Gy^c&5|S?%{vCbC(P65Dg79y%79B^OWi7#Ij|}Te;(Rvl>so*Xnxqvq`_F$fX^{ zZznUHa;ZFS7#{W}{)!EMy8eDf?Opaqy4LZBzKY`SbdnO^SGU^bNYR;`jKf_^%OAF+ zuXEWnn`amT9#sTTWcC%SA3%;z}1UH{Ofna5vjdkoTYm3cP9 zh0rgHo>fL{{IZTqb>EMZ`C${jE6)#IU9P-E@{al9-+8JRL@Kr}T9&20?CSD;OXhCb z5u>cs$u@V{+etjkUxVi^+H>;v;Zv12p4l$f?b4U8XSkK*c;Q4I7*KAVtQ^Z(}N{=+vn_fNJnHons}n{T(rc3$y) zW!zyU^&AX8E-n;*)bj1aG{f4E@wNMc7Y93} zS82Xnq+-AG)3rV`&GID^?l=GcacZK)y9F<&s;6G}R0-S2YB_&X-i|f@%;z%(-(Z_~ ze#%Mf{gJWpb6hq%e2m&ze?EJ&>9n4A*`AO0MHL2wafd2qqG+jlG=KHmH~lrA_AI%!f8YDe z9UnL3C%Im4-}N^1Ue`pMMZCXnvApv8`ry(k&YDFH(`2Q-ytIE9^iycZB!=yme|WA? zd;c&)aMxMspgG^~PM_aXDck$>yx4YUA6tIIzg17285%Y`pHsD7a$^y9pzPK~w`Of= zT`l3j>^9L>vH7>%MMv#tVqab@Kk;4qj9M|U*9l@rZte?pT|D8#p{2(C2RUWCOHWp~esACLvbmjc%3|Ml7QeXe znrX>SV|l{pQ2j#U;D+^q*Rr>+@(2+6u|hw~=eN*mzsk=)_q^IW;ot(MhIu=7HeS89 zLtT5#p^2FyxlA?1Cz(3;96b^&u&a(CB`jppzB6jMU#fomVM^Vv^e(#PUv|hme!b$z zm9?CItHr*od~ZF|F=Ffg8LeTzo7uSS`==aWd@%9+y@pob)JOmB-QFMac7N4DqmyxU zkAL$&UK4pd>FA|+uX=MiE19f{;}?&eb8)&S=+B`&?Ov#0_Bs~bTTc$B@@Kj&pV7K8 zV#bcGsacg5u1xXDPkpg`mC=WtUpWuIIq<1E#%T8T6^r+@d)mGzeY_}GoQdJc8Lp0x z$4zrDEdCU=au4qm3z=s@dwbtWzCGyq+FiKy%vqmW=46Kl3>%VO#s*m|5DLtX2s&B* z@3p7RW_8JqKNCM3T>rj$mI!+ui}91W8cRZ-{5_GLzre~Yza~C+|MljJwTnAhH{IyD z`YYVlM`Lo|0Zxgwg?^q)Y+83-aQX{yPhA}9v86Mrl3P@TufyWqg3PD<+?E}?-%q@` zsw}-m0C#q4{i!G_GB_ zzUEY<3Df#-j=@`bZKhxLn<(A2j!M(Xf7vI>f?i7yRe(0HQ z_=O2a>laU%dhhzCK=0o(wWeAH|J*03>TkOK$Qe-yriQrYUGl{mDaSt796fxEt9C`y z1heIrU!}~tw&M7OiIMuor|vb~YpJteY->_E&wXRWmK6EmZS7}7R%Nc%WSYL3w=!x~ znDa5=PuE%5hXIezZFOSI04%+F$} zPk0@coniG&T~o7mZ=e=IZ<9#2<)Qs2_R6 z-TJHO55XzFee1+me=$BZ*NbWW)g>01!B0-`CPa!IU34q2?1;_Z##9%tA{m=rxt`V zKTTM?a(VK%>!rzZiEp1=k%f!}hdqzFF|<;QC9V zn}f6pZe1zMTP<%qYwwMPkJrTPvkDY#WOj&7<_MqrSMsqL(<@V*-niXS4`vj_g}#;a z?O2qtqRXznz~`&n`OhcPHh=h8GcDNls>99mGJNb)4@}qTd9=}--Q@h_Q`0}(TgG!W zJYg|t-NvrIA_j}k7u>E^7X{C~npRb%HYKZLj~3JPbc-m-PX~`~(&1`t%1WsH`6BJk zH=pUxEaU!$GtK7{S<%U;+^Q+P&B&_db^DF~)kSO}VO%QfmnJy8G<}@OI?He6Z&RD! zjxrzDl(}g$)V$>Q$~+-8(qgWkx8|aW4t|e**2pakSSnHxv+qTin9JjhybW#$3zrjF?U zo4mizczIS%#w^@+?b+v_Ma?`{^RCHS@MY(cAk8C58@mp^EHSY7{Xxy!P~J!T=4C2`5u@EH5u^6<8LeS+V!ts^iYFivrec z@#5cE@$*V&SkyM#X9p*;UDN=rg#5Mc*Y!F>(dTP#b?usexmRzcv0Qbsc^TiU^rO1g zLAEO@=D8cqY`Oe$%beIvVH#&Ow(Q&XrbF%U=Q}^1oV%EDuf@$%pz!tOUrq<#rhGVh z`06uZqsyCv?3Eu!uiWQ8NjOmWv!9A^*Wrf_X0w;xI<)`iP0hCFzdla>CA(tTH^=sz z)k^8fLE$%|+!(mN7Gs}NF zEt{{~dG&<}tE>F`@r?mAq;IiK?-|#NmG*uvV{42wKe+Knr~&spMq$gS z(iq#q|Jt>?zQr(DJnwMJ`j%=pe|t)Z!`c8Y*5#KwL$q9dU;R9%`DNDKqC20S|LSh- zjVU%47AKXSkHg$wr)Ybopo{{&t}b&+B1FF^roNQ)VwO} z#8IY7gQb@TB-(!LP1vPf_Ga3A*;QvT{r1TRZTe-a?&*tld#DIa zlMPXB4bu5w;~)DY*wus(5p`Dkab@9(ugHD_pf%0oiihBr)SZL{Eo{nTTVZ9+8D9KFaNylD#`A& zSK)oqr#}36HCK9~cF&$40>ZzU8eSP0ZT+_RzrR3r9rqJ6XP-T+g{S$o`&TbAm?~!W z^-1AF+u6L6HTCQ=xze_*sO9?P=qmCfrFqVQPTe_XetG*7mOb2A_x=0bA7@wJN^GAj zY5()G-kwci_h-H?HQe!2`*P^}Vwv_3tx&~VYg9yB0z+o{yUofm$(%cbrResO%P*IR z-DhvOtv`cvvG?sOhaWA9&zJluVqPFH2oA1Xqtp3KcpGp0}pWS8))$?L*ymmir_3-;OvSXpuXPUMBf~`+l_ARzLxt3w=kM}_< zLEAKoS-1>5PoF%saLz5Oxqd1_oU10kY=2&o6gBzR$#q8_zvr11#MPENyGU+EC4X~g zZC*->?)|D|2MmATKPdBK!pqR7nF6kY;Wk@%vw6ZC85@M3n?G1{enqJ2=}n@qZf6DG zs&aaHretT#iRYg^RIYqYl5)7R( z-Sa-X^xXX~PyB3R`zPq14>6FvexUF`u*38Hjh%COexxxPc-}gvAP~i|?5}jfv;S;; zt^Q1BpN0RrcBtNN-{p`ezV3_JzsK0j-lad$x-_PGJ+ScO zy8H6Yo0jv-`6_q62d|td_7n}Dcdspb{{=g%>$*h(-OZw3GfqV_^j+u>*(O%hDx|kF zpF6B3XU~O((+3~SeEsdPk{54(h*s;}-Q|a0e+BL4Vm|GaD(=R-NW)2h<%5m>*R2i; z4VuAMBKQAH;#B{iBD?LYwEn~EQl*c#-=Epetl2H*6S8N!W-oXBR>_ld3KI?_7CZg; z{QdjVYk%Ioe(k(5qUHA6w%c#F$#e?u-m~e#&2w|D1GT0u`54&UTwm0`%vQnNRe+`Q zh-II1dAa$emnKC!Wj_71={l-ZG4J@&`Lnx{zZs`n?|c1IuIBH%vnQl1er9FwknY*O zbQqM4Sqe#xevkhC{rlqO zOGmxw&U(|CPj7m9X|o>N{+&5|HhPbLUz+`3!ph3cY3^Po5r*d-v}-05ob#CbYnjN7puNYE3|$rnX4Y?vaM7E-`AV;{ z!jiL_beaw-*vR#NIT9@A{;%t((v3;N&;Pwo%XwkA{lLdNVe)djljN55I{m!4(ZMu} zL*x2_9q%vQTy=l8#v-SM4BKz>_8$*^cwo*Ng(YVTWn}o+@8p^9iPJA_3)h+&pfy!x zQ~W-&-uHGp=B`)*r6epP4CNo5$8)pC2z{<*pmC z>88%E-Mh8ZD#MJgPP}g+)ETlR^ZUEI9!rCS6;Cz2p+qV^mr<|=X*6#)_sxCLbwmt7u!~!W( z7KY>U7aHPY*Qn()KsUXA^U&s9agjkWZ{Bl3uGR~8?(}%5IH~3@nA7|GV+Ck;U5QoU ztwU^gK0P(-ShQ2Au-qnm-dEo(tP|NU%S^lXtuymenN>r(-h6M>{JzHq78Wa%^0dF1 zPCp%bQO!{R#IL$>|(;~$e#gCRSAFjxIs<6rRvGkcDrGH=UDO3r&g7#Z9TwhuJr{eMCbvAnY z%DMl2xW;hi*HZDbJP-K8-!k`m*Vv@>k#CR{B$87w^htYj}HC%sRpTiL-n( zCVH^+_8vB^umaXPt{U`W`EAFfF>6ah2JNbKdihC(oJeE4rS>lX})(^{*Ve zp8ZnM>GLmf$*aD}wApBV^x?JrZw@_vA0qC$xgt$q|Nbnwtu>(CvGw)#ERGZAc(%-G z=$y`w#ne*x`_K0OO_GdvcH~I$nXkyVm;3Sh zl;WQ^FZF`^qAcsG?(xJF$k^&9XJl}Etk`o%Cd>4;IfLeh1q&B0eDrtTJh>;ID=Tc| zGUr^m^=%c$oadDy-L5T%6HQEc+Z{gI^!un8zcZgOp?qbCla83QVWsc~n||5a$e4oj zVma~}p{2dKhUV++R|`Lvxo7ciu6Ddg!TC>ecYYVie>(aqYnS})dS`)2q(aXRQ_y1y~;>)J2PBHgYz zx3}@y&G(m5SJu=wTnX~clFOMsGmVxWIugt;!o~XKjo;%*?7KIv+x=@%*zc{sKVJTv z7VtR2UAjr((Z_POg5R6(zF4iO`Q&r^5m1#C9Panrf^T>E`)PBgo$||^${6b3u}DKT z(ZtmB>R+kioihKn8THBkS;$^9HGBDvxjg&oYPk1(|5@hJoV-7+GJjD=^#4n(_Iu4U zZt1uSe6sv-qWsyz6SXglJ5!80|NX1es*GN{KGRbFDZheIwZvu(5pCfe8eJ!z7JaC& z5zW1PC}5TN&6u6nTnq#plbZ`yp7&8}X5#;IJ-D{w*WX*GPM^#EoOrTHW13FSqX&_W zSs5X=0S{RA?6hm0eof`Wsr{2o1-G9*2x>z{)Asq-pzF=5P%IrjGbt*zWL$5+<4Y+aGp+aIoIjlb|m=lo|0DJdr%vBUH4`#);4ui=`u zy0&uXvJKqovJwX;wFb^H*w0vZ{=}Sl&6#|Vy%wH(cG`t*o$1oIZG|*{jG1_M`bF_u zx*}W>GBPZuH)%c1-TE@e*0H7O^2;S^&jnJ7IPZLap8fHXy-gWNU*jL$vyWX}y)OIQetGY{9S+6y zMl(Ux_x<= zJgd@GUa^8HMVv9!*H_-yl->KRa+%rL1G(Y*I<75~oOR#W!lL8YF}EFe^ZtBlmHYE0 z^Reo&GYSt%7c9Qme9n#EYWALt`=9@BQPa1QvK5{Bk1a@M+n0?u?wn2v*6%)RTbc7J z^`dFWnp-Z5TF$>caQ1(`)xM%FRewX84jy#m;p02>`fHTcBNx84XHNh7SGVNy%P#hd z9_troF+I27tJ}Z7=>RL}NC2tr(otGdC-|rdb|2LW`tvkm^Gn{C>gSrv&XwN|)lYi3 z=kbc)Ml*XvIv)A~@Wp8dQ^s#DnbP+aH{jm+vU<&${*|qzEf482)iF+ z#=d`lk-YDxXBK?5wY45R|)WK?PRljiYNS9##K-^#1jv zA3rzWjo5njmsV%uDb0`9Yxc?hexb9&drnrTOOw^qxo^^hnIKljoimdDi;M`Tw7~cy{5jgNAqhd&$>*&XNzR ze4U=M&16TxPtDvPzdq_-DcZpDvnI~#(#(t}y8d@2D$hT!Jk#gU>#x^pJrB;3d%Q*I z>tjx%4O>D2)$I3dI(f2ve!q`hXZiJip;f*oe&4e8U;Bfn_kgWjf7-%228(|U9DVi* zP2vBi9?<`HD|gkrZxPLj4Z-5Bg>S{JN;;)A{Qt7Cvrjz#d?^P*>Z_ukbFRsRd}Vo= z?sa>aOs(_NuR6{DIP|Qam)-fjTwY^%^%tzWb!Q_Qx;IV3WC1SUy(B{Qdh^bmku6 z);*kCu9yp2f8|@h_OwmTo^BCA>AjLMW#`^PU(D1X;=n@Y<{_)0a=8CtAKgP>xKPY{0#yM%nlj7iw_3d>kO$r=AcXTBKysqvw zpJ*NssdbHm`?+kts(Va>Bq{l3nIs_f7L$c!1NQFL-J$OT)3YhbN|FzqbQ@Lf2KcC z=)U^x+czf>*CR=WzL$9!=4{ev3l=*%;l!tkyil3*d+b}v&6gQoN;N%u=zSq*1>A-& z8{FoU1hhmQcInJ9>#nfTTbZ|0XqHD-#+Cz{);!x6`Ih}rbE*Erxm(Xa67P@g0+qS@ ze}80SSTO1P6}Ku8t^l>x9JB7&-DQcVrf7D!D9uXJ6f1c+%lLNT*_m%6HrsZm+esYS zEYCADif_GKfmOrd=WT_r9%=YR%Q#n`vEbenqNO;|BjNkIyIK<$yh#sxm;Fig@)Z7C z6*lXlF6^Fn-N?{Zk;{NbSy#ndxuE}cJL~7ZqqltXr*T&EcYf!6yI|7yiQMO|_-sp% zV6&UgZ#SR+W{y~=3zM#{Zin0AUE3~ZTxk8=mwT}C__hR%!w-8)HTV20y8HLhza%|Uplp9$`ji_wksKpUyNbi8zYCo(_7*d{e1 zQ*E-N+GI)7ue>3WZXQCF5^V>+yu7U4=cyv}*lYuLD^pcf)rCu!nzosJZCdUSnfd?0 zx!?(RllkZ0GGV?M6Xbf&v7TlBu79>?f81HOPVdXNZ;Mv0XB;+zv#uu4-6(en{Wztq{JJ|ueU_X6yFppy(m_YDoFG?(z|U2 zd+xCpv-sqx$Q`}GduP}z@Pbj$QZ~s@sUAA<}GO2%GgY75e z++p};p?lTui?aBfPHFvGr_aCRDxZp$l$9w7aD<3V>2^`#Xg}QMvd+aS{?Mzpk#A&l z7O0E>ORSr0R>+AyAqaa{Cx%FM-IoqPi|s)A2^Y&iU|;rw%Fz2$EW z=3L$>aNqua-Jd@jy(gYk51l!~VdkFtl9$4>p72hY>Z~9z!RFM`AkSOx?(LOsZf@>y zTg=gZcv*Mm+4*7z{$wWa4+*oI?`}2s*o6xMF?!*xLW^d4s~u{P@-^UL-hP{R{`vM0 zt)-ETA8yC*lD%2Oq`&{W1Vg~d>VtcdKmPsv{`#MFAzG~o1|0kE^Upu8&Z)8dGAPfb z7*+5Lz~|0xc4JyWeaHY;Le?qlP#8Seb@b%Ke8>yu5sT&*#|$0*itXZ zALMM;IlMpqhsLuqy(@qEa?HBdMsN4x^Vw-M)%xqEn>uZ6ZA(P!?&NJxwNg1=cp}B9 ziNDPyOe=h_o3#YN?w&%}(yy|N2(8 z;>=p(nU&AyrO*4WdFP1CqxXC*c5HdurNz2c7tCRqzVNU50)zF&uf9CZ*mA{iz4)`K zkN&-Wp8Se;eaqU;px9X6Mu&zubLKSsGWx>**2rY`*$ubf_9zOj>v7psXdz=T`)o!= zM#IUJq*u)wo=ci9(wv+1V#DOJ9sbE*zkX#nuv*@mODW>1-{Cmy_Mfks#1;x8{Rt1r;2 zv)JpL?vY->}cxDis+S8K5djm7TRa!PLlLH(x)YorTG9 zb!x_?{%tpJ-dwR_g+p0cnMb_E?2K0F46Q@=Zrtebn``B$HPuN&#EA9w&9EIFDqK4b z97!^)v6Js{Q~pwAdnCzl)22-d(@!f-^-`RE`mtT%P4g%#m+pNTPl_r%EzrJKXdG^d{VF1gP$BWMUuh{wQ^Unt*Rx_O< zws5zJ&2-_|b^2-3?YC{GpEg~7*>W{2_1QG1g$ds#?>+w}o6X~X<+0~hg%&bBiZeUT zcch=ql*{;Rz{fBbQ7B5-C6139f#heRmLbm5$ z9P+FwKKuBiL8|{o`%cE>XejPe>@}y&6prGG8o6bv@g0|$#@46IeVq#*lV9_Eb zS69~)Cr@(jSaDy!2jU9q0s-=s3m ziF7^Rd@keQvtQ4Dvdrcv|18MW8lW{bED~HMF@npVi`t&Av6KINL_BLD zwXrQzcidEU@R;v`=*z86&e0DmD=RZHG7h}EyW241g2I$3Q;wL#xw^7~;$+e!p(jtD z8uqs=d=Qtwz@%sJtG(8-Fh2Re?DvXOPq{2){Fcqp{ce0y+-C*1#$>%^*P6<1uDqHh zA}YFY+cq(FemR%-_x3tZo59sleP?1m7pJl1smQDLy}Ht!E=(V1vPf4k zweH&Rqh(h9e2$Hd_8&7%q&QfZu3W#K{QBBj34;U%FE6h{Y0ocR`1kI9{eRik*47sn z7BUwV70udu;jF3Dk0W#P<65gPaetS5_$*AV+pHk$_KvLu8P`2m^gMMDn%toNdx^>Q zP2!y{J{h2a?Slyi=Gj&+xR`Nap)Bs!gQUA8%&BvYdUG?X2u{1RtUF)%b=l{Or-!pU{nSOut@o%QLjk-E}(nblc zRwi}7IS2OD{=Tp|-Csmp+*r)Adfm+&vlm~hWbA4rDl02r+}f&LR9rlh_2M+Uvzw0E z+>z;a+w=0{j{kjS>z2N@dF)irzt1VnYObEbGi$lheT$dgWIDG^P1w~!u=`taru5KWBKgsY(Azdt^~8oaMctb(a32w!OT(w&6~$DI2zTs&AR9 zJJDmt`Q&>3Z*`Y{yLkBisk48)ZpnJfg&S4|PYPR|s`D;|+uZj|_l!H9*DuMYcbm^; zaK7%?7v7V*tN3{C|E#yM9-J>+R5#x|bEY>y>0Dp`vRLsqUzwQ{#om-zs|ayk_Gr`p zr6ze~%I%pQvP)R!EYjd$VM<9)H?C7hzo9(t`O;TR2*s)J`#T^d%@2cTMnE5|kN`6k?RQt)aatq+>b1&CRR7I9_tgUOQU4 zxZrxoi8)FtOjbd?YB$3w?gYO~7A)HK^~m${J#DS?-yWSfIZDRr;um4+>>=bsiW3|{URxI577 ze+f_U^L6jWKR_v^nor_lU= z3D5L|uOxoO!w7n|nup zd_3^7rN`gHZtcuFQ?~UvF235iviQ3C)6HUQZ{J?SeeUtc2Q$;>AD>Zp{o&N>_dM?O zr5fTf~(hD|20c|`2DwFXAGyL^}Qpy!p1l6{4aXJ{ov)v@CSX_`VBW< zwZy0$Jeg%HS6{9DZ&gmhHo@+eiXZWZ3yyCUKk)qX;e>6EznbpekobK5o@BqdyXEY4 z_u6aC|M8ERJuo=B+xPYLr6K)?N*+C%o#%30FLu(m%85Kp>*MD4H0{v|n8NSXDq{U@ z?h)hndCe!w%J}Bp-z%W+znjh0YHRc5w@1(Yt$+OUd-;Nc8QfCqW3rEUpWc7`j^uTh zt@X3b@*U^fJx_eOyL;CEr$!z8;cJe3$^8EK)9E(#H^$G-)r;2tn$!Luv2#9hmD*w?CO=j$*xV>Hq)rk z;NSK?)%QM%t-US1wc+;LZ8KiqN*6NQEh}sFVY_$F^*`S$E-m+QjhfYd_N)9m+n`SO z`?s3J-%0m+ZoZ!IX6fFCAAfy#b7^z`qR_8ucRroD)iGb%^MHKi8_qeue&^rFDZ5j3 zJSE1eL}S@qd)BQ{x^cB{d8f$!=Z@48U3Sl&bvmzn+uQr^4*cq!z2U*x>oX1c0#>P&>s>?(V++#vXAwsvoLfBpW0uR#InD-B*ZO1`+hJwN2J-M=gQ3*VY9E*CVNmP4b{)NMjzb2eG zD*pIjq_JY!*_(;e`HsG`txnt+QTX-6#2v5CofK$~Ou4tUnqN$}PJHXus6W-;Hc#+S zt;qcsv**{b=ok05>wo+EP5OwEVBE~_Mz3DI{&;M5{^Ji5?G>haedvF!_8@+{Pm_6YWd-)yyz4sdK*WK>lDqr6ud3l-I-5D8t zfxizpU)}hu+Wz8^O&LG$<}Wu`QO?eAU~2QO){?1Pz7)sLwHM!<=68I7qjAQZT;r)zUTHnL@wKfVA0KDR zsG74_L*DLp1+QJySH-@mvd3TbpSzc_B}%vI>zmG_-S^Vuw56q_4C?M|jrj2F^^Ct? zf~6$yl_=m%U?Qc#@Ky{O3mY$BV1@Kc1X*^+ilnSNXkIp$~KS z#OdFQ-y|`A-CvH{bJqO*_Fvz3aGNJ>lxWu9BXIg&e3$>VHHV)3-z|II?!Qy_abJ;* zXIA>!%N|W--mRn`&ABw@P)B+3iVISQ_syR^z5A;6wB#=<1b4i>R-gE_>nS)16<$uu zx&2LdnqFKB@BI3%OPBn9oG<>*%HShm&lkP#m(>H!%G1~K4HEzC*ibz2+4sNf22bbh z{&;Wq`vnhtgs0596=n19g>uBFb51=wUU~V<|EZw2KSv_2I#ur3{y+A6K3-#bQR1t2 z>f75-A3ikmC!BpH8nN>a^BkK}uK3zgGl2!`*2ztesWF_kf4_+Q+Ft^pp;sd|J=weA z_`^#Jr-S0<#f^c*gHbGJA~Pr-I_^$A@GIt1m)1e;ygv z{5V)`QSyUhnr^(H!MvcQhyKU?(YLF}=RA|fZTIs@@QJ5IYvMM_Oy`qr+Wmf?@ak|K z|ICkUmnsA|FI5RvFMEHl`O>AJV@@wGEM$JS_qpDh-!-->LY&89Y^7#zuVG!Va`jjL z-QN<|fp@Zh7n{J~xN`x1`nX=ogo(5=t)W6z&IH6yN+uRP^Q5P3Fp-JAb6!U(e9M%+BvPcd65PIom_$TxWH&@w){ECLVbH z_1)FUFO5u!o`in*S@YuVYH?$?@9*vwdZ_knGZCFFky4|Ex7@-q%^TdM^Hz zc(?qlaCd~AID?k<>VUYoK6knLNtI_`e{|5xj}nlzuhU7h`ylXc@AJHx?|=DsWPE5n zaqir)hlkxCeE2BB8{hbsozF>c z`ob++f-isPE1tONxUbpYbDD?z+5OF5=O2r`CB2(}>fwZKhu?i!;J@AJPvNS{u!_u{ zj}JiU_t!mkhSzFJV%-Zbn=bHver|?AqKsMnPF82VeH`(5Ke>dD^)m}p>M>1xE>doH zas9=8kCRhVez?|ZojzEUHuA zWA!@9XV%>(RX>WZ8{V-?W0_xVRKi=A3 z$7LC|#tk%rk>)eIYhCQ_5Buytta{&s(P zp6xSX-&^&K!8Nd={N?Wrw|}nJZ16i~q-<|5pEQwUe*Le)GxOtPVp?)<@8^}e|FFPe z@yX80J0YrhdQ(#D{rdKr)Ra9b{@!;)U*6~N!mFD<9Fd)#eCf?r4ejfO@9%$mqh7FM z?~l}*B{EUA+}Uw6TF#fraBALL+Bz#O_DRmVJ&%e)!orgNw)OfPd-*ND+#t;0!jtWP z5`MOCh|uj}oi+cy+;kqvrl0Hgu1)!Kt3D_$ zl8)cmJTq8)?sdWIXQJ4a?|zw?djF!<9oy%{Hs$9%rqq5isEaogcK$sr>F2Zi&VA-@ ze<>Qie;+&f{Q>Xd=L?r@6JrPnjqROZ|Fg9+eqq3aQ`+key!mg_e!4CGR7i49n%*{+ z{rCC%j~_mxY0t3Q)L_->Wy{2@>;G`t&F2^EW-X4J)!lhLR$N^9Y1e6e=e1$oyy-DU zZi@v$647dRkDNK`aU!MYS*AkRcE3#>nmrqq`i4I~_()y-(I3xzmLm@@{mK9NUD0`a z#-1ts#o>P%c52sky!w1?kA>#5T^dOnCD!jV;?Li=mBIUdJX@<%pQCt8LnAZ0fhx0} zv>i|Wp08$k`@ddm*kAjhQ8MD&L$5nUw`B#mT3=k-s=e$^ak9R9xh7D-l1oLDhY`N8L( zA3iMZKb*H++1}p%#My$oKMEuECn~4emtKn%IvbP2>9kN_^ZYuY|CQhNPdJ%+;%df( z>C@ZQH1ij2*uYRPXWLaSrr&rp>uAfzgD39KkMqmZ4xn>DPtb< zzkh?Cgx>YOol@ujes`_;ca+WM?~}(8Ri1CmZ@CDU>Wb_#*mwPP>+QE~QET0Hm%W|w zeQ%upny~Edtc4d!wQp_Dm%p0w>*ImUJ4V&I>pPB5p1wT3`K9@icb+~fi;wplRnN9> zQd8g8KmVhYd62Hi_S?MEPq$vWbZJG_LYs{V+Mxd4qS`K(KCeFAe4oCXwUf?WNNmxb zw)g(6-9q9qdg5Bz+ReXat98$?*A)HrgIE3n>+XBIyMVaF%UEOn$#9O>e=Hx`D+}Uu?V$(NAonJZmmusvRy1K^xsCZkz^ZGvP-*cKy_lvs< zZksNdqoY`7a=P`==btl*HhC=-Vr6AL^V@Ddf7)itmrqkTb7#9unXD?XNLBarNwp-w z$-2K*KA5MtguUc1x835#I$cq*yPPvQ*M??ZzG5M0eQMu@7jo?^P9_z5?=}29{O|0) z?drb5rW`AKufJ{$(8$?(?u+K;4o`W8g#jGxhZ)zK*O)0ZJ}9tA*nV44gllGZN1N?@ z7p1^EkLGZ)n3>JiO?amoeIz(daB}U&opQytYN3*J{%WLSTld--L~xqj@O zE=&_WL@xbGIt zE?%OmxiNxg`DM=4SGl?tIRu8BIooH*wFNwR>{OjV2wj?wRug z`ZwHpyEaU_$4z-poWAk=TfgRbrN1avpMF}=Huy}}vDaT0ty{;Jw_Q4EyqY1f~JI4Na%`HFY7_+*ttH_a1fYGhEF*zxn> z?ur{?mgRn(N0W?}Uy}K?$8+hW2B#PXhd>c2X=z0PjtNtziWV%+@4T>yb&go!ul73q z+!&3{E~ka^xi6WIZk=-L6RY~<#+RR*r+>@QE)d^!Q#@#gtID?3En>x1Dq}{($@YJ++vc`WxA52fwT@?)^0wc8yi=ax2fu*eJBM4V8ZK{W zo%8$fcHOtLlFzFrRW8^6QaRZ}B|vMc$Y~R=C_H9SGnUlUDLNZ*;PkuexdeH1rfJ!IpfJ0o&P8Oojor& zx7Kc{aNU0UB^Bl-CI>Q1oYW?N)YCim*=G5rIhoTMisj>X#x4+^`f-{U`shN3r@xNnIr3tQcMFFPm4#o3v8Nl<3P)4Q`c%}y?Iomc+p$IO}+9bA*v zdSz%|Xj7X1G}mnQ!mC-gmsBvj9N=Ve;&RUR2@4AgSkitr%{eqw^s$lWlG`ewicIs; zF61r`+Iv;F@j_5WZQ#lf$475VtOCQsuczte&)UJJ-_|9gc!d9vlj0WE4BkMksXi}s zdT+mN3tP?V8ps*H!KXAytY9DO>1`zsqPUeFwD`1N6K!=8yy8A}uG0Ckxm!$58^tP$ z)?VV7ID^ANv3TLp+3yTbwk^`g*cxRa!{@Q|62s};x?ScMn%ejnGWR$r2s~o9K0PV= zev9A4?Kg9JDvoQr+Rg3!HG8?!HNl5(l+>Q8idiTYcT7==kB{f?J}RVgFE@7jqpH_g zr^^qeC@KYNwD2^~Rg(AGn7MdOT)$?`lU_5$N3tGwPM<8&77$+z=d2nog-Sh8__Yxe|hMoTX z@1wB#!gE23Yj>A<-ZN%e_;Z5D&mT@=hL;<-^(8v~vh#i1xBdSC#~6zYhe_W%95U=w zTdb3;6^NFWi?Cz4b5GB`}@#+u0{|*d}=AM4K zS8uMj=k!viQ$oI7dv4~aX?`-iv?wX;;y%9)xu~9(^7GFh|HHFufqmWYT>C$D_TT>g zvS#CbBVQE#&Vt2hQ|A<=^_O2Jm`Hhc)o^#LTxs|>KZt)%>V|&#zwZO~GcHiDmsgs| zasTfIVYkJccXyYzUVoi>?|GE&oBK5n=RTPwef*ZnxOG3rBTtp$H?Z^__hVbYlDwIW38nE729zt?kqtUlKHcq^aG`qD*S@0(8g9elJT zp)|nY)@&)OEy3LrRfQG36<82bgcT|HYiwPJ4^$jYm)R(9Ob9R+)q69q)$#783)@3DXR7S^-6mGF zGze4~FTZ?}!*cHnP65IE*Aw(Ut@Yo0n4{KCUf69#h*n@gz=1vffg(C$-p77#-65!2 zvSXf)TC>;Eu2mbGEjJu6Wd*qoA3n&L@ZV#Z(;D?iEe4AZ-h6$;Z&2S!Ak z*z^AL&jhpC#=lrT{@i&Kd=bZcmuH`zzVD6Ly_(UwZ-!Fd?2Hg2#ba?3x_7VFI`VVr z!IkH7{?ys83DcJ0WB*fE-{3m$M*myP+=>(`wX>YX!K?!5kb=xv#^+T?{RR&-R_2eZ!6zE@(FRaR#9UL|dF zSvYgt-H_&4Zsj-L2DNhUTJ_^A_%(e*Ss$$&{wU4;x&R6!oT>x$MyKo_w-p z)-0(@e7c=mJPs@k((H;n%krnr-bXFiZLUsU3#V(~nZ?TG58KYlPc5_A^~r>9>g~xp zwtsxQ>tJQYw_|-8XC}7YIhM5Xz{3Ithkzws%jVP{iuCBJc_kRm$UckfYRW0j$G>*( zjnhApWN0Gg8?cF~_u#98bIz~+`0*XvlIjV4L25_VWOos=5m$NYm{$hm ze{;zGvf$nm$GIzCmQTIcdf)G6)E;?;g1k;9@AvQf*0KKam(iQfE!N$-^WemzXU{av zRXT4PGsjOoD?6K6O0f7jgJR(pj{~ksf>vd3BsTb}aahc+IQ_Kf$&)7^y3C(`PX5=H zrSl`|w$kd|2JTIPe~S!O?Pr@lcQ)_J9jPBTxy=^8FK760HnUsJ_jXRR@HetkHa&6L zQ{^t+BR%E#Z&0V@Vup&+yu=N`Pj*I5%iAu!b?a7@)0;#yCpK`iFin{@jV)*LJ0>}= zJvUQ}Z@xGqcjxOl&OdUCx87deEVKA`ra@H$8}sfJLS=XE#L1V*Zhr8(*)7L9rRCa- z&dfR1>vay)=e;;lUA$0(OKoyzrIqr#DPP*=rk;#_|FLTCg{-X`ZofUVNYz}cb3#Ru zP{FQaTTVZ9IzP{rd7EcC<8!@;DjT^IDMlG4QgNquFFM#-f5u*Hvc$LdYmRVF_A*=% zT_BUY=;QCdKmLd_Kg(a?wshami-ykCt2QR3@oOwOc>KuYj|VbLjFuLiWSu*&ML6He z^~B=1U(JKRonKYt5{i!db2bf2^w$C))%qm!Bvl zc>UTnqu!348}B*%iv9i4r<-+;d%ql`y3SnIIkLG*LY+=-vt?G7J!lI*eIcVe?u*qE zua8HL2;DJQ5^Ga#t#>0<(E6#+SojnURtom z*Xfmz=bqQEUO_72t_wMg%cIM7-p$()qgV3&p6vlA)7fYD@RkHiZo7R1yrE9P-hTe} zWu80FwQ?5syX96sPwh1PJWI)E-=+meyC-!nyZGv;bo{l1qkgh??!8!c^njjL&9@Bw z6O~!3BG!h@IGYyq-_kdseByKOiTN2B33;bfP8*qec)!P=nNBWH1oex=& zS03G6zgfuM=01C{o9NO#70eEK(*p>dxLiUvY^u)=jhh!uORmf4g{imBj??e9QvKIuck{=ijrUHR z_S&n)H}S=N*H&Hsx!vzt7aIHCtohz9$*=o=_V>MW=E!s$ObvLeWLR8CZrF^5A zOuJ4@7WsKa@g37VKlRDdMjB$>6DLnTy!-86Z$G!#j#t+b-)<~&vuPpW;q0m}1wQ)m z3aLGKSgKZ_T{_B_mmGhh{Yg3R_1B+;?{}*wY+_$82akT zt|#Jl@QA+udq;ihie9DDMJ4sTX}xbJblmlkWMN_yyMJ4ERqNUO{uv)WzH3`>eX5u0 z6ff0{hoWa@>^@Pfn?I>%YSodH#^s+qpG4gk>TKCAdh6h2vzkrr@`Zcs=88m=_-}W4 zlXYt0r0xwxY5W->6K9*A|G9@NOkLE5?KGD<)4ZCbmrDLpg3I-E?X>OU6Q0Fc&B-WB zmt7hpx#fJ_e);}27P5tN%CZc@+E#E*T3K>#dg9G3#R7|LESm2b zdv}^VDm%S@{qc{p9z6Eow%B-RGW+gsoBMOtuV0`3YIZ?(74ysTwcAB+^}VcM+xENV z{I9a=+KSX*-y?;f%C|x9;!%%urOE3x4lEUvQV6zt@bv2uE`L!MCBgN(1D0Ptm|@Zu zvq9z2++AB{`uN!0H=nP%sVv<2$f+7vDb8iFu_9%&w;ia@*K=J`@I9YTvM@+`4#Ux{ zhd4W%-zmv!xyG%(KDpqa$&gCsk6v zYPyEO%S+!9w}1TI*cyMGZLi+slM6z$m@mEVoN!#;>hz@ZpOytb@tl_WYtjUtGa-8f zc8XcVyZ_X$&+obMU_tsu8&&T^+r<21!kL!p{4t5ze!U@To|KW%%$^?yg*}$&eY$$} z>Jp34S(hKVo+;V!;l^318aw$XMV9$n4~E*mQtJDPH;!cVXA{`h$P@r|A9d7fV7wFn90 zTzs?d-(Ks5d))XJ-|UD`w0 zE;dnqOY}ZP{5Lkpl1q=9v?nC%gjnMAxrxzy6x{m6HDvYul4Qe0H;leF4Wz$sSyJ~7{ZRhx@drmyB5GB)k z=Ps`+i*|>-(f*2a`p2R9U!6rRJVu5_>F zMY7sdFXyz#TW`xIDa}vZVkyowzu|w0PSM);8#OPu?o*XGTW0g?k`&0EFYoV8alN^7 ziLG5-v6WSMM*BI{w-b}MIco?U$SF;@*1h_}iMz=QPV)6leN^lV6>co3pBT zk@RwfX)a2QmtU$Jl2v{qQrYSx_@yp3R(4I8cK#903A5b96|H8~{!X2rvrl76$ZVdN z|Jz-J?mWu5zVSo%bmmgUa2D;=4Vrzs}~k~2J38Bi{`X%IGVlB z{o{}Q3=9eko-U3dhd=ZGG0wQ{5pz*pI;il+=kwbGbf$WF?%pbqXs*O})pg#I6X|-A zfB(4n=S3Zu>ZO{0^Tzvs2CcH`CI7!{+gJWh`|!d|UT1dXrrdZNmV2Xjdw9;_Q{nHj zr#QiYY|4;Pt1c@%b*{8XAdg96M^0vEqSKIFXcsM;d!s_`tvD$kp>K^uAJ-7HE zlb%@j!T=4XBi2`+hiVC|o38p&>Au;CAIpyAh;zm7KkfYVpsmbJk!KzSd7huwUJOY* zxa#eUf~yS2d=I(1_R8t&+-dmf@00cMxogxL(_0!>B$_rGxhe^Ex@59VloFh*_bIoz zr)=Sc3yTgs|8KXpxb^StgU?yw6<#`3mNJX2yVbXRxgW>wyT@dI8&=6y4mtq&B}EyN`iv#H9D6G8m`R0WR?*qk+@1fsp#*jn%`x+?DjN>XCLYg)GGeG zrnTaGtF5JB{6lk3 z>rLk_EiLs~BD!(UZ8qJ$-p6X6mT<)=F346YUTNH#A0=~gmXB-Ly8EqXt-mF|X76{s zvu%-E|F@kVONCvn(rS*+shidP<;az=#N{W7V;f79llqT4?>e#F@KIjl@>?m1+)VQu zqGccEJG@M5%>Pqn4+@*L@-|{q{eM5$$n_;VZBMyMSJ7d4V{ZS=$&&;nW)*0D5^;50 zeRYz^PcttcF^lS;CA;|N{GH8jXP6i~WwxByj*B_R|KGdW@ky%o$|GKrpZkx;irzeX zNk(a{bcDcEtC?B))AYebib`L^1$WPq7A{l zJ6(i?dc9aSYJA=I{9v*uxG?_mw(iLa(HVumHO_P^w%tzIs2shv$NPuEY!ADF?3U$n zv$nlq@1Fu5MVx%nCFsd*i`-=kndK)wt5~(>yqrx~<5_FI2LX|)|JGev=Au$A+}BJL;x0{$TFuztC0BDN^P<<)pObYCEjy?!M_jW!{{cb(6QLc}xs?qOGmn`P7$V!O`v+HB9rmCVMIfeE1d{ za>}KkYLDW7y-C&zayk)PW$oW-XJ@UO;LvUTz&Jeb_zsQROHHRo#Aw*fU+=4bpw)X~ zxz${sLan4q;Tv04sH@pl25ns{6)x~&lbf=u&x~WHA7itEUG69a?vm$%1?#U%7i`Yuessid;`EbD z*CT7}3z4|%(LFM*89$ygvm$ydhfq` z?t3b7XPx+|>@O8H@1pkX$WRVef4b@5-hvMit}%A=&t7NmRTM5|SfCKybZAb3{EpL4 zvy88q@7`0mLdW}3#|!~p-F2-@3LX+K54o%~xR~K6z|~r?v#E7QcB71|6z7)2r0Lt` z43bWrI3)J=c>nKH0db3uH%+~5@ORt9J+k-tr-mjy-)A%<;+moEDa)H)UtVABEPrE} zuJdN!obSG3)?#aJ@h!gDw>>=X_$AA7L-XE`%4|uO`u&gA&p8d<%=U*m-oHvpnNMYZVQ3H+&uh5&$YEL#+w8w@&SpH{XXGPcXmDZ?DDiFD zECQ-M4AU>V=|t@0wajAGlfJ{f-B+SZ(cG^8G~4&CXsf-qUmxyMKIq$hljo(R&V#(| zvp>FNnwgt;DYe(xRO#C5uRc2zIxQ4k79D+>!pg*GGtc3*X(-E_+Q|!9o5BxNw~2q4 z?;nx4p=!c(QM)Gv=N9#z2-E)X<;sg+-g*&RWv##c=}b@eJFk1ADx0v#G+Rl}w z%zRTrlWf#gJ{+%2wTQjiFyFpLewoYnC^h5GegO72tcz0aRxopR``^WpZp zyz+Orz3qQ8y8mD0=oy&j5%{k#UUFXi208vahEntOYZQLzA9}dy;NA_wzSC@XFFUz# zlh+-SY{hMLA2f=UFQ#Z4R^MVd!&kbvgE^XC>hQkxft?k~0Wo^v$98kx(EL;rIqmAz zt9wlM8h@=2c;wt&`+%uYVZ}KQEnlm3tnW(Lz9-u(_h>x#HdTXvbHvWC4Tg&v;>~u1 zPu^d7)V$)+zKxFW<+WBHX_|UF(d71ro41W0Z|eB@D>4dP*K`+sUeo#`?Pl_d6&DvTa_j#j zWy>eK`oJ++_6zI7-Ouc(4Y?B|uCI6N#E%WySzju0-bLm7*|yRlbkC#Hi&G!3@6FiK zs^`hTV9vw2kI`zbpV}cM;iFx1mE_k68k%3T4(?}H+_zK}bj z+!Pzi*WPStKJ%Fq=X6j%TKJLUneG{HKF!~fAGy$C_Eim`&Ie_?qidBe{XTUrq1ZwO zw0r5sI_GsF)4v2He=qbtvC-_`tq%5eTOZ$pya}!K%fBbTV zbB2MEVX5z;#H)U?T3;V-*3aLg@?+VfuT_agGnwwFueFVTIOEbW@7{J}{fj>$lukgZbUM)m(?TEExWLzpS;U(!ek^V)kM6{IeNvV;LB3#EQh- zju9@C-Wbpj-OkRvi_qtuhr0rHbT{8|KX$E6tZ<^oksX0M zVvHS{^I9L)-m&hV_3?D)2c`SdA~x;id_2d(n7;hP=J_6( z9?D5hHklW7=f8E@c>ArRykG{A%cDDv-v|P=4s(Z-v@vKK3k8QturaFByzMHY7 za^r{W+#9(pOdsTemtW@WK6>a*fU)C|#knqL*5*$-x$%9=5g~KN=iM8ZvD%1AT`dwf zvX$ds6PA6U?0Wniy`i}epdgO@^RaN+40v7yyKG3G$~8a+x2nEo2^l68JVVO zK2jCxJY=S{OxkFINTria$87G_K9@vgq0S(uJ()L{^hCH4&1N@$^Vbo2(D~X+sqgEP zS4CG$mX%rWblLQL2djKdxO|y(r$@u`|2GX^ly1MxyZEBS2bU@Dl*HCeSH0UYWBsOt zUG@1+uZ7IH=d6#I;v#f!lCRpETG37yf$pOPyYFte*>w8oJ(DfAY$crXpVBu}eOzze zfB0QibuY)iRizKkwW=QqlVxeBb`x1pT=!vC)6t|vm!7vy9^r>Nx8KZB>+Rs=RMvZ% zlF68#lf&~#d-)`3R*To{%a0yTdKf=pPJOkw%dTzzR+T<_SMJyJY3Z?YZ#K5o?A!NL z%7~@^kPdg;#?s%zUpMJvg-u3I4v)b560uDly&bDpt?GE{>mgCt8NEndCEmnqRpi4j z`B6t?`PkR%|Jl>$b;r!c{?QCjyx%x=`QyE-Q;t0S_;B0ye@?l{PxM^R-@75mmHFX| z(d@I5!ry(Q1cjq!@7NX4;*=N=E7IvQ$>^H7fX2Nq{TDNy;QCy@^oFl<&m|pOm+u5JwR^|T zfQG4i z7kBN^JUKb(q3zv@`^HkeJ*ua~wv;r_RXSgLNTs)f^Q4O2sZ-}plvv0(cF!!)DqI!u z=*|+ki5@J?2M^4?W4xf7>;Fzgi%CuWFW>*~-6_2)_*wNa=H17?Jgl-(s|{^y&`PTYKR#_Y6RQHvi2J@Hgda@y26yP;kCrj}TDu-BCxh7Y$)O)-(G z)YiCXzKY{;6}!38gU4%ixBl4As-Doj;ly;lke9JL(#{3e{CEGMXKm6Sd!3Pa7mK-e z!Oj>1sou=@UJAV(oGaa8Vl*5QO4!X!`nT-};@u{yC)S;~{r1HhC*G??6vdZ+c_%PO z>g@6D?mj!dEnU2#r`Y&O%BRoqVm);q{pYOVuG4y${DyVsjJndm3$N|w^RqQG+RfKr ztNm`{(b*5{Hy+Rx^S-qs@J8Xoq>U22y}f%Dwpw}_UbDL*tXery+?4S_%eBtz zXMZ|v1-p`$DtYf;d$@P~)PpJg?=&BM`n+l5i+Oo_l&;>m!Lj?U+yg65^Kz#pB9*%Y z3s-E~@bXJ6=S$Z+XOh+_6ghuRF^W9ZVb1$|nKO5fi&Epkga>aE=FitXsLuc0rLL^R zG_I$N%Y1)an|j#XwtGUBU)F84410UvNagVlchsi}PA_GUroD0U;-O!E)_nL`^P$3~VE0{tP8SVb-ZkC1n{Ph&S{0lX^!sn! zkH2+4YV0cZ#-;s#T4ed@^XE$LBH7ht50+g&y`Vp!wZGR%>&TYX-3D)8DVy zOxuc=-C8w!c2@?PFz;Tmp(>33o~!rt)2+XLRsE>h*I<#c>r8>x*~Wqkk<)J8yy^H} zve)g(wQG|i@|{)-nlq+%FSrfb@ayF1>FL0p*MIzQi{!FPPnNmPS+s&dFkC}KLqp@i z+T6IC4-V<(%N@V}_3Y?fl%^uO)rlW@T~bY<9i*pF24^ z^XvHDpY0IKUw>UXVdk>g8(Onna<)bV1_mCy^2P7^dk>HNM_LcIaO}F92U@{-HA_T9 zgeAvae1g|fPQTq{HFoh6I?_{9747ZkmkVyY`0D5q^S;L(sZXAW>Fu@F`0#1%+{)WM zs#5dM_xG2ZC;U4mb!FzP_qQa?HN?B$y=0qc@I$7`M(#z4)sC2T4X3JKhLuj3C!Do) z)^@?d($e7nR|2lGa<-%hm@~37-PMrmXV;s~9lN`Xw_|$g&KRE=iCVrTzu1m!J8~Da zD!@NNuzW{tMb6XAnvdOz%g(9f@Tnuorl7Ls$Hx_t_hn3yekTU| z9MToz`tZfxyWswc2N}W(G&`5>+h?~RbcTzP=kC_i1-%_}A+v&;bS{5nb3MTW3JK}f z+}7vMo-K;qePGM0kS&KA69kv%yU6vkXKj^wduuEAO|5s2@A6jsTFhl(d$!nhL*{a^ zVCGN&IYyV1dR?Llzw%U8Nc|E_>#Pg=#g}d*rSi83M_FFy?&UB```Za?U&yco_gRk^+5bBBv}obFb$oH_&6STtt4(HAeO0kHE@NxdjkjgT*3W;Z%EcleVZPNm0F6+`) zA`hJXQnh6`L<+aX&+l7v;_O-8jtvisqMjdly!zC}*Ac%|KXI@g$esT5@ySlrJ&H{x zYLh#+M>_86Dqo><`qr%|wbMqi^Yu7pdfs7`VNiasMgPvzqJ7H~^Y;5d>?~sV|oY7FcwxH9cY0{)gTQ(hPd?4Wb z%lcxHpMIWOR?Nq@iOO+zLxe+Z-=-)FFkI)k@Zck-YGSK&hE;miUOCVblKXT09`TyY zye?Ql@x(Ttt(md3 zw3M;a%4HAdN;fCgIoYk;EKDV@u4pQ3yY{xsIJPF}=c0sei`z?`{#V$@rKG1To12Rp zMHVQ>>$%MqkN*<2SDRahYYVrQO4Nle=80J2v_At$Q)KdEwqGf!C7?ci#my zSypX1{@lx>z1UsYZ%?k7^r_RQnUBm)i4+Q&+QMyNt_e!k(cAMFJ%vPE4X<)ve#n%l zpSP*@aoqapKi3(}y zceey*7A(BrbYSbTn@;b(Rw;^bExeeqAZ&HB(eEJM_QQcyGT3dF4K=&(U0Pc;bCJgv6B7t>C=J$jRip~gO)i9#wuRQ+kQC3$WcekS#P?t zh6o#{x%Fd%yDYtPmClRi?-Ja2{4wXvDUA*uu0nZ@%m+<_Ui2K}leJ=rk%?PBJ@fc9 zKXKmMQqMP^(Cp&+Fg;kLwW*0|MTpjklub*zEnNc(EMzv^etY5dSH|3@FQj#KZ{3;k zyu?c15dq^E&2EDGz8UTlMXuzdY!nL zbnfr|2pzYuFtH~^mP>*(pA=Qz*>CO|Sg=}8m(RPMAo9lpMA&AN4bUQ3M*XiYl(v|#t$%*S4dhxgsMxlVch zdG?7OA`16%3b#k-7|irJ^S`*bxH5SyBg;;s7aQEZRlMnt=s(W9`KHW+dkbS#av0P9 z7p#3-B5GLHWfQ)qahcl@vF_F@=88*nJvSd{eDFlB|2T82Q{$sYj~L9IcDXKXY093s zS+{uIi=z1CeE0twjz2jh8oMoi-f!zU3F%D*%#FPrKR4;Te*OC5jT8-6C&4FVpp&ewuZzU;Cp+j~d>FYK2bdC_btt zdsJPhCh3w)V`9E{cT{m6+e)5txefp2^<4LD+B7NRUQ5rSP@RHx+O6-NC7I1uoan*y z=b_U=0j^div)R0M@xlJbJ-Dl8dTkM_Fu9$^RFkK;G)PkAp5Joe($dl+pVU%h)+#+P z`LbwMgihL@hgNg>igwPaWLYL|qbkHH!{@$P$(Um%XY_`f-J2sLBhOSZ?d^rF4(|Et zdt~+m%`LMUF86bXL=Tp!UPn`AGo|-7 z@7iT$A=9UDdUl7oVsJ*OY07c!%aXH%I$6wS^MYnj-U@WOI31ZSAhfGMqIUE8)vKGY zX7Oe@I6f0loSYHLJ%=~?Naps=n>lUgpF79J#RafhGBtLGXtBBmUU*ruA!@DTS6?H; z$j%GfJUNS7Y7;MpS>$$_o0&N+zr6L6oX{oKvM!tW$Oxr-Ej~)AXQIBfy6R_L;%zRq zk}WDOo;Z2(M(#{wy8KU-N=n9y0HG5FgI(@Lb9FOtPR* z`^Aiwxb^KpD^)h$YcX>S>W*|}-pwn0_rr~}&5HK+^0L-tJy|_PYXyU!uRGq)?svTQ zze!}#9+SUPcgoH-?CAH+kUZWm-+uUEL(s|=r-d9^0j>%uQkoB)5)a2-N!k9TtIb(` zi$vM`M=c%Z3=(VoeCFmY) zrciIg)7SZ7>;7>(UiVvF?S83$(>E>K$`=!lCs+pCRXkh6 zp1ApTvXr}u&_o??r`bxWH4kE5bobwVr7fhd``>QK`rl-4^FPdH!{Iw^&i7g~z3JSi z?PD7Kudj2Ai_1Immh)`;`j1A96HYE!)4<#~t-^$9U)Afz4e#x@msnrRvu0tCD5_Jh zv3V|b=g<5858+GY7&g56IXfWiUPJf07>?bSoBLQTXV@3>e3M)0F!!L8$-IlNj=WmS zZt%BFQSkfOhb2y0Q`KVkT;4gas#x)nZ$|c#Ee*^ES-YJA*O?wl>AqLG>AQ!jTx~XY z+>U$`wX<=}8>fG3JO29cX7BCBw?nSZE;wzReYh`pp{d)SHQ(>Wx8;}DuuY}o;*2#W5c_?@xLuAzb9XQrk`jw`{M3!eVb1g zbTUjPE-sGAGoPkY$sfJ{X4{-OIX%0}cy=t!sr!{F9=86cgj=$*o{WjctBsy36c(Kkv2&OI+E_%<$lp<6Wm+UWWvID<0XF-|s9J+snH&sPU@yw8wAF zS|*3$ZRYV~^Oe1iv*O;>+-$o}4O?p)s4XT>)7#@5<`%_KvB@JX@bKN;-xqAzA`;#&$I1XY_6N%zWrhL^nIDXMR-gk(T~4 z^Y1Uy$O~Cpr9gXB@9r*57HeO>>ywv^ZP>9K>o=DcPVijH(D3kZ+rhNWhf|CU-}lQD zihh3YX?~yM$6t$@CmuK6=a@)stUe!S^Yh2zfR!N=JX9p?zeS~_u4LM_```Tk4dA^m z2d7lOYdZe8)56TbNQX1Ge@gj67w`MUU9zZ;OIe-JggvH4hZ;RG+{5O5>IrW9(-WCkX2$T4Zo+ieIi;teTO&5GjjEtTu{aP7X!r|`)~W7-y7=R zFRhue`w{z@*pJR3^SA#v*%^4W;j^Mx_s3V-pFcc{=HBq-Z|eX1_ilbM^J^*mvtC2# zY;>^us$J?w64yK2-dhl{x z4`ojdtPS0rIptVpR=UyC3$ocplInf4r+a?-?>TL*Mdh1aSI=KgmpiX8KmOp{e0TZ$Dxn~+J^vpbx3IK4`0JNd-0e!!tCcq@J{~K* z^Y4-Oo{!gVe^@2A&D>mhruH?h)fLb0&bHW7&L6&Qd%^F|=Y^gwu>bYIw&wHO@`{&J zWkXhn#?(KIis#!CwRTyT?}<$h??h;DnaX)Bzw9W{_Q6I!Q1fQ||96jnM%(v<1kGr> zn{NK`ue!Nf6;F8Ovz^&Lp1$*skS;9P=viD)&``Ep_H6aZPU#biHV0^mJlGTbasKY@ z1z#_=s|oE7iaB_G{yUwudpH%}Z3xg5IU1G8y8m9Ku>HSp?Em)JPkHmc{@-+~d(G0> z6+b?y+7$g1%G>uR;?)*T#g?AQt=tLn6OF3qX1GP2tH|bbt z7t}6FHg!*18`k{(cTVr*4g;RR_18D<-+$kHj*hFJnC$Y^0be33mrUVkVyLdJ7I1R# z;?zuC6!@y-%ADC*frY#7>g~F#w`59S&H2v(T2m*Sf8KsX`Q=H{^H8N{ zrDxMN2iATyIAqZB{&$9nlz`J0pTcEou>t#Un{2wef3e!13+azMjmm5kyBju#YA{r( ztY%r=9ro5=_>}Vu0TCK)vaKT2qBiI(l^)@GO>Y>|5<*zJ9UY+*qMZ=I4vm z%x3$_$jZ9@H{}&JpYU$h3*p)q$AgZ0OHZFrc__1y`9-$oYu)_VBaiLc^a^8NNlQy> zh;?_mUkQFX!Kou7H#urk=k74Cy2U<;>~s3L?`3VhkhS$fhDp_<7mu!ezAXMX^6Zyc z`wVKGrg1)J<@>VS_Lyp(?Y=sh&uNLml}m#hH%7QD3^>62{rFkGu6fG>KTeu*;HYQj zl-CO`@p-LUd?HG5Y0r|_)mN)r)}FTVyYqO`YQ5KLx8^We|xsl1gW9F#~!7{rp7WLg;wuN)1u1E#fqadAaA>MbYt9W<+^4S{I`)cOYE4fUe-MVv)S9G~` zN;QNYN#jbHu;#26f7k2@FCTwtwpq7myV==kJ0qj#effIxrew|i_pf)zTuaP;eZkn; z_-dKn^w*O&=XTysm+QZzma;A2f%uUrJEPK#Bv<#a>;8J4bNkn=vYM^i_NKq z1_lPn64!{5;QX|b^2DN4hV;Dr+*IA-U^7S;)Ykz~JfP7*a9k z&D_d4!e4(Lx1V|Edzycl__W_bjx0x`18usR#8xj_yXbGE>)NYPYrAfB<*qG{UK{4R z)+>5zC^uJ}M%UFa#}K_%(TH<<*XO)DlQQYP{Og{{C(k_bQ@i>8_t#t3->FTWc{0VW za^LySwfoL5e);xoZ=-{P00)cHt$?F;j7%VomuQj;Cks=f!wCUAjM$C-4HKf144@Z;x`|I`IIe!Au;EdBSqL^IW=voTcvNXIG} z%f~1F&V8Bx@jeTa;&u++`B(0H?LXRoG|BMhU%@VJ!$n%o=K{L^Px}@BBY9(lL!gMh zN3R=m*P5kB8%P=|hU+kZ3_fY|^Rt5#X)sN&Ketxun=YP(l zjS_*P3TAWe{GW5;i2cP3k*Kv|Y|V^TbNQmyidoI&vzp6SwRavzmxG33#57kGA;!Z7 z9WF|L{y!|RNL0{CO=+E{b+JBC(QS)|hos-eg-_~c`>5UXC~6B@t}HLx7@(K2H7a9k zltk~b9mg$`wM;hE?YCE)rDC$~$O17j-j#EsBc2@E@Tj2wW=`A5l%|UrEe8`cK1B+1 zuxu6Rbra-j72s-hxNIWPHgV3fiL;AUpNJ*7a5q@2beCB6v`6jqrVUYR4QBf6dG4to zz~NO;yy{_r#KHiNiwlI3XUU&1FO{44$;xu^$-g&p%p`i&NPrn*nT^4W5g!2IXb65+28rc$>Q{K;pLYV$;+>1J?6<_-7`YkLK{AlhoHlcH81&b7;6L(xo+IS#q>!-!XN*)UFw6Iymc0_QrJeqKFSB~C8 z4e7&Doh}c){}$w7J80lD$5Hi|Np*+dS;inwr#tsA!%{9x}j zVfK6n4gM)Tx~_pW)9Q8wu8Gh&CLO#pK;LlLOXr>pF^;|d3m>LLin%SG_}%96PQ}F+ zHTH-3oV$GHDz9IQlfskfF(ItMx7rJCMq9NwDY7sz{;1ivWMN#B(UFd{hDjeyW}nS$ z&)I39d)Q!7ljqkoHFMj>fLlwlN|tVW{4C^aRqd(7_-UyRKmRl^Fc1*8dL}fF;nUtp zJV`E>U9@seZ_+8TlFc!b&M}KV^?PBal!>pm-TIQplV;Cykg!U*G_!M&h6GRB6x)!t zL<0kZ1_uR!=?_%SyimPweMvxhmQoO>bBw6q^2?m^cxF?T#qk~7= zq(D*o<$~I>iNF*3YOsZRdB+0PCM(#(A9m50TX3vgrsU#QC30!yGlqT*d zop+L>{V-?o+#+*@orat&PRmY6hJ1W%HJ6XASuwLLUqz_#_S_bw`p6?Iuq@ zGgU}gs@cOl>=|FdCvI&}iApmWs$}uJ!fyO$QSW#b_FQ+4s6_ zkDzFK{>~?gn{V<=KfToA=RBPf>nnL`OpO6n8j_booc82xmzL{ik6Js;e3`T19_uB& zD=dCbi~gRu{r1D6og(qmbxN$KAqk>c~-_6QP zirFqppV@16HQmh%pYy-RMTvv0`Op6&6+#>>LF$nm;VXMy2FzENo#Ymh|fILjexw zW~g~vaj`IcsIaL??kh51@^ZVUe&7+dDTy^^svewhasI_6P%u;;qKc!t|uB)?6aZuo4eX{TO5xzEw#TPre zy143Y7nv|mX~tSwS^}Le zr*2Kqx?Z7Gc*%6Z#SD=~2Zg-3BJ76qSeOzu7GKN|+9#d7QKISKf;ToRuV%3_eEIT) zK_W&kIL~+A>1!Qck^z%XwyavEb&|hdIU|^W}UqyhUB}A~jJb9ypMBBsDtX+jxb32YENk~XM zh!5s-eSP{=2iNS(V!0Iu6DIIJJeFj*&t47``b>(pOL#P=Pti>E*x3`?fBbO$`Dwcp zb+whb6!cnFU(E`Pj67NIk+efaDanD8g-Ox)36G|0;H0CkwY9Vax{p5i{PV|gubUI5 zot?9yLT<_;jU6$1H~CoZNU1}VTQAw?esu1-mK`yAGknzQUUnOFMPyBB6`bm&Qe+`x zFw_Fn3k%#y?kfPg_k7>k=vGB@1M2@lzPl&`)->% z^MkYQ_OD(nOpO6POL#IB1SXg)v6{=r*UmiAL*?9rX|oJ*p0D=ROYI_2egSc0!T zHF~Dt6;}0}JX^`@VV%`_GJK!U*0+0|cVbeE=31$}GG%ds!HIAKp+`kK9WI;fw{hF? zWvPfpq_URiv9+sKP0Cp%+v}#9{g7{|{yiVJvetceF(!_SFFGv0d@#l6uXBN4$GRti(n0IiF4?haqT6D})Kt}7yLKJelr!g}9;@y2HG-^N zh#jpANXU=~SlYI0C0AU8c<_(?KYqp>tnFJEz#-PHn)x`M;lk^$HP1>F1RN}6`d-I- zC_E8bwE9ems-Cb!r^^8YpF^uSn-4N9zkG5!o6b@v9@U#uW`B0txo?4p>%w*G{64Wg zeCBxiYJ*p2q{V*4@6nteH3G6yW~_cK*?shfNqP5CrP+aVPu1PYGmn_odND(#ZOQ~u zm+<><)uUrQW4&jeRr~pG*Y4edJZuZEzkbZKeb)ZX-sd{Hynh+;G{1V4buz;GutAOP z@gOdKjfE=jLh39GIh{=&>9-eH@I0`d$nDK9^wo52JzH5=n{>_ooT+7SNl_ql7r?38&Ict*1A}8i7v)O^c z!OA;j!vz=1?75I~=$X-*MHe-E)P(ClcM7uxxz1=fkb3s#-@1QoV*mZjR!yt2k8z9B zYtg%tUte#Zv{9nRE%{{Ky_Q1`B~zt#UYL4g!l|wP+^tS8-n?n?Ti!i;a_H)5-lsa2 z2_JiUO>OEX#;IJAoUUj87Cd_P%=pvGMnfLvw!|NfJkv$zcKvAGpu@fXI`{I+n%2|j zYEJZE`TO_p9uDuf#p+MQ7p*>XqIKPo>-Vy@dc}orzs=i!Tv+^C=;}Uit&JXYCcZAQ zQsvbs7oN6?ajKLo_tCSQcM=Rfm`5%YP?KY5_HMWMSp3zf)jnuGqxdbOnLd)7e>eBe zU%Ym2^Z)u^iNS`OR(Af6Uw-*uhRLDlpFiGXYIG=B>Z4dXHRopc<(E&mA9ozSo3%Kl zXT^;MDIT_y(yC(Js$aGQKW?4wtTjia=Db+9YiOsj+v17*CktMFw42}0U+LL7FE#SV z-#Q*?Go8ne>%M%f|GEFHTJW43jR%jg=H+gf<-QRTWRK9%z-1!q)?av&N?rG|C zNi@y`A@krBTT<=X5A`lPn`Yc}P{DqdSeG2b`~?bA4JDRk{(1NPyOKnYJV$KpQ-6c9 zHxdjE&d#=H(t;0}Iql#RYIJC5DQP!w32$EE8U83$-^BO0Xx)PiH*-Gxtod_A_Pf>A z%$+JdD&=s$_Hs^^*0m^#dG%0H@AJ7FGi4F3kKNlXCwl1ac$SdCb})g%{mh(3 zuj$?OcfP*8zcx3wBI)L34mRh4omv;}zn^By-+ZuP-#)tt9kHtw5-o=uOTNlxT@_82 za9%heCE|MC_QlJWvtP^*5pfk%o~7xeZz9!uC~v!W-tkb?M*+8wiXHAf)}r+M)&E;> zzin~ZSGit({<|-aK8x9#z4^50w({L34bfdTJiBao?Cw46t^V^NFzk#>@=?LZITkMk z*k#h5-fmx{QP&%#An-tX0eiFKKFjqo?&szl?4MxS;*`H){qd{a^-a0)wX)xrDjZ4L zs35`Pb?uGH6n&TQPb*x*gA!v`D)EG^7PXt-KVLj-vH7YhWi2`1S!dI3nl4Pz4>`-> z>=RSLDZ!H%p)+mDw~c#E8?M{GKKxqx_r~qkbIxC8WvJPCyN96yH71I7|Ub;lv>+X&<xy@=!UX&Zjzid-Ud; zz3g%MzLj~K19(_tJNI4;&`_~_P-r3Z=T`mJ%EhXQE~gXqLNXjI*Uws{VIkAE#Qgnc z`I3kI`CArVpZ&AON3r8*gZciF$7l8L&M>~(d0#K*(1}?`&KxgU)qjGs_WL`rH}^KP zFQ0Ga{_*SHy?c*zOfxKE4qknAR>|5Y$E|I4{pv*Xpu#jAWHMf!Di-qcp67vj}57EjmZ?s&ZP?<(^JN!RjZ z54>4=`@`>gd6x0dKO9iRk zLoZ9b@>ZAWhy01#ap+Xp?pQO<1=$S;-^bZDgkS&u^z9z4HBnbAziybh<%LW_!3Oj1 zib+;Nhm+rzJecZVUHJT`a>2QYQx|A(u{A5EZj7%uSScxg|Mk~H2?i6M>ZW!~S*Ov} zboyyf%=e$S!}%U`mRo-=i*pITx$sGE(c4Qqx;(Q!x`k%CFsf863@R+zTD|a*OS^{( z)807#-FNk@%Rm0x#u)QCgnQ4zH^yG>A(95)3&h>7Nd&&Wu=w0c_t;js!>gC;C@z>)9{O!IEGi<#}_zk@Dom%=Oa`iu%7h_G|9GHU0i2Q>$Y=Q(sB( zw6(l1TYZ(Q|M+45_LYpGQh_T|b%SoNxXCRV?kTt~c=E3g$r~l)Vy?Ee-_LPh7Rcqr zEMs@8%b0KV0m;kS26+*$I+++AY^WU)=2LVS6Y3sfqoR{pe4f{kJzao0lz9OL95Q zp~<}J`s;@U7AgBf%-?-`*ri^!`1IkF5}!q@-)pq2Yq__gg6n*S$)Oyx=4F}t7?{7$ zN?N!}PtU3Gf(dW0Tl2AF$6C5YxLOYw^k{JlcTeuvF>%x7ms3Q4JyI`E{wjXby)kHx z&C$lin+@_vZf-pX_@4(ZN z;oB4m9=1ru?OV1Sc>X!@#)iZV5jv}O*>lXC*tu@n-rJ44<1A-f{MfNh=;ZcwE#3@_ z9%_@TY~;Rt|NhyR=~Axy^z4vK7t8a#%Q7uw`1YAh6Ens!w=cf;uN9H)c3qgy-zJ7YLM%iQVk%4M74Y{7mi z^`Teqo2tD$=V}Ys&EE1Z+4|qvJ>tWYM}|B8ongCT(Uq>SWeS_|@f#anERo94t8_ z9^HJs=lGL{M>!3bHXU7YRI}Zx@L3Pnn!8pE`2lu^D?S)sW|+bk&EK++w{+1#&ZB2i zEhDD6y1TR6{eEM7<89fMD_0I=Z57+H(n!%hWzp)rcUMXWEYhy*TB`l=`%bsTo)*jE z)<5TdU#$CZNnA8XNV3b)BSE2|Q$HNMY{EM&HS~Ea)5p)IV%@Gq2g^G;lOD>?-niFv z>(>}F;a2taGTo=2Uuj%)<#XKB6@@Q0e%PUvV=oaRqmf}EvS8tYi?22o=1XjSroeV< z)=#_7fgB`6dHP^%@-|N#58s4)D>&iJkfR#wT|weAld;n}~2N z+`Ctnt-101C0#d<@KCoY!rZ=>YhE~ToZiI2!nDeG!K32!Yu8TYsl4;`6QfSG{?;r_ zdz*by`*&~PblYnsCX()~_4-TFMhSuB#H)rCKYvZ!5TN*@#*T%FvE^{0i<01vzjgcc zRvk5(VUoE0_RnK1ORNHaI+RSEQ*?dmg^pJxRwt_%-@biYvt90-x89c6fL1|KuC_#p zBT0rPW@c(N1$Qz$bKOEBwqH)$>?xM^FX1+W-oMZ1mi#t;scEw#Lq+V&s#C{biuK0n zHy=G6HA(Mj=g~zo?xh^+zTWFNB~^g0{h$F){J)E@zdEhH`pLJm*G+kT#Dccpji7J{ zT0Eyz)z83dTiTY0=c`v)2Kt#4@s>0nT(C;0>xgLQmZ-HUz4!C@n?L`*&{Hr;D1HiC z#k=K?4Zat=?EAE|=je)~{C(>VrSGoonmJjjmu;?`n2yGrvI^b%EqBv4e{4N!D#fc` z_Rz}Esd7SgtYnGQpTD~}E&dw(^s-s%W%=5xCZ}tW(6i#LQMz~X$^)Ofh6-O6nD%qB zmV)lOEeqT9eLv3Wz2adh)e9>8lNBcH5qtOcIp6U&nwMI?oo3WsdN4S=_vi_cXN%@l zZ0G);{mpUt<%0E{IR*g&ZVD~~1@zBzJd&GZmuXV>tc zyRju!vTMS$?<>eS96TQ_>J}2C9iH`9{BTOxccb`@&7Eh{HmBVByZQC54>#XEab5rX zY{|n_m)oB{4hd~Nyyo!zIy1Sjccp(nvbFlrh6tSw7o}C%oh~Ql#k_vC&~q_So&z9`E6l2a|xaeQEUIy^hL4wpO_c( zD(j-B>5d0CUe(N5rX|U>Yf{lN3uUb@Zrq((VT-xl=LaqJ`}ktdyEmthRM%2Ci(Uih{>Go{L_dnPk^3GSjWTmm_LtF2k&&ML&85npbt2@|d zGWl#ybGm+G!t`Rxrvd8IYW556k6-vF^~aOlb9ekWB4rYGtbNs)G~+*Y_V z78n~lSK(W%tmB!uUsIE!jTiehhi>;fHbwB~>S<2-`EB)2vsms$vv1p~`}TUav~)tW zf&4Yr&!3e3te$_X_qw@O`FhLGAGmBvukL6$&d$arz}5O=ov@1Y_AMu;t}~H(@HF1% zh@tQ&bN*Fjv47vp6#G-{JpYkd`q_fSn~yef_OJF0cX}VR_@c+TiSjlT6XtVWd0E05 zJ1MwC`4ngSvdjx6y}y3_YWeDr6?ID~RK!WE_`|2; z+VI1R;6mj`IUDt6@IT)g{w(B6qd|A1_cpb+VISYE=R2sl=u(b}@8adl+uuJ6IP+^} z%bOER*R8W!%eUW3-#$*`VrZd&-|xbiN1Q+-C>$)0dNLNiY0=tO*pjy+CT-m;8=k^P z%`=#76ZcGB!W!Hf+O6%s_Vmx47jMtLxHH3WmzeIkl@}Nf>`xNC_3VuMe_MXVSDyPz zXN!m}7PFr{+h*abi`%V*CTHi(fj7d9xT;76&mhUyg2Ks z=xH@IS5f1gD^|FL{8;vM)mP?^g&&ft7dkDR?W1OQ6&uKV1)b;Te#QW@aWwPlTV!jL7!Dw zzE1Xz{hO93%(LrG-P);}*WLTENd9-V(CZJYBEy5+Le^jBzxyVJp(}316;^GvLvI{c zet!Ge@W=7vwq3th6u&Bd)#_#&R}x>Xd}n{Xz($$gl*tFTZCjXpkpE%yMy=PiGrx%B z*+g4T5$$E{UqA7iTd7s7QxfCCEhk#nrS)ulR$}`i;NsQE@2B;x+p$zHsmDz@{{wgJ zI#=^WC$F`y$`nzt3E%m-_UYt%OMdSxtb6y&Zjqe6m40l`gX-5s+s>D~h~6Z!*Lzyp z-uc~qtNnIG{F(p%HRIu9_xVL!kM_>Gs!-xo^~5Xu`gz|swsSO{J;T@6+*(}~%c(r! z(IIPwACp=iy+~6G2(<`bwPQ<^P2j^LW~Vo8h|rnzIx;?Tz0S8~SjJiICpW*tOZWIX*q{3Ky34vD9AWP-5CKt90s` z7fyEl0B8?NH4d&Oc`P*E&pZy(=Tyz0Y?+ix@SCco$0ndB`0?ChGJ>K^SGXG5bH7wr0)%TigiaP{k=7p+3E zyo=Ie3tvaHifHd#k>M8dBW>};6)CAg469zsYOU!|6fdf>^gMBL!Q}_lmy3gA>K)xAT~{^b7w4Z0YU!;q*}s|1`hFGn z!32iG%l(e-F%Q0fyeTqtNBPn}P9L{Mvp@Le9+23(zm%7a`F{4c8?SG1temVJJJ+#f zsmIQjU8y%)I$HgfcN;HgHTvN?U-+rU)PQvbj_YTny!@^%_o(6KgukltF{`)fJbgR& zdR*tRt*amIDJwjceNkumyq;Cn?+$Gc)jwd7op$MMbaw2G1^thn9_`-v^!|D!DXxWK z*)56g+)eD0r)NC2(Dn4_OHBUpV0B~5@vl{TwGR8SRCcWESZCz8_@c)=Zr4C({f!!t zGu5`LifZ;wtG3}OD?QQf&G4W{W^2-`*rIT++b`994}ff|e47-|cV?3q?_~8wc|VOp zbaom(+<9Y0;Ezj-j#?kI%el8%_#LCU)>gKjE71l{>21xI8ks(PJ-dB*%^uI*G?P&E zxOm0?*?woHJTc;bU33qt~-d z4&0GxnNy=3wlpNo$3Bzk)inLn5l_TJFG#`G0wl>y|0l5PSQU@WE}mtP#)+{8@@*%D zKVH4_bHn$q2iF-NTG1&#`Q@9kD|77FO_!hbd>ygefAxXO@5@ix>8qFNosG@?Yz_;L zQ)UHQ>$qhv>Asq?;=}u-dJV6F=cjs4EIBf7&E`K37q2O}xoP*Ez<%++-)*Lp?2h4{ zd${P;$qjR=itZ$*@7u~Xe_p9x&F%6J{a5Fdab@|V?`G`$|pX*iK z3Z48;JD$+oP!@a1^}f_@UekWtDa8x54WBmd-uSj_{-TecP6rhKl9|z-9$xl#MrWDD znW&1UPsNY^-+Xtl(mnjBty-LnUx2+!_$PtbrTr&U9?dT2UwK4nr}^qOejf?3j-yGF zB9A1hb=k&tF5TSnBxkiU+nNqjkfvQ6|xsH zH)r4WvoqQFW5MI`0+Fgd%q9r5~SvE#+YL{FB>@ zZrz^y;o9ueGMEpLxafde+ue8i8&evWv7A zt@fE1{VeE36Sphp^RCHVPh6Hvdvhm6`B|+{tUybL`YU6_9c6PLeU{p-yMA$MZ1UlR zqoS=lmD8$=&qZ0P?oRt%{eop;!B@MZH!E36ol0Cwrt*5ZZJDql$xmd$HZ?&}E_+BW{m@{)BqmbxwqWs<$G)>{Geo9} zpJtzCxp{J)u%DvMG_I8~#`PM3E_Y&jqgwm|+Fo?M(3;M1c&9_+x$Q4RyBjXe;D1`@ z?YrXlp;L*^Qx@+}xnMm>{O~o?Ylq7}C|tW=ByG3SfjK3j7zZD!7EdTpaRi{RKHtgNpHGkCtg|Lc^z@KMtQ#ewK4| zUe7wg!yj&*&v*FV_?Mw!<8is^+mmOeo%P8Ksrj(5{o>DC(h?cDM>TivKlLJ_cPiV- z97n$WN2afdTF%OGNg$Tjsbs2Mk=vFFD-LydEi_X;rD&SOcj=V!Gb#6XN8d?@HP5v( z-?hv7;JX)$OD`Vqd--6&mrBvy$Mp8!unDr~*{fTBlF(b|M^)t4ww7IpDx*#X2dgD zZBgOdtbJ`7pC8PBG;e!Q)C~>YIaeOoY`?fNCe5cWLZ?kG-=%Q2R&?F-BOI;Gpd=$M za@aexRWQ{1bFS)?pgpTq-SV6^$r^SS%9g5>lv%$z|JzQg?nCX3%@R|Wb?;!J9_nCg zKA1G$$?L??$J&!y=1$U;@^3$ItF&WHMC)O(dHmON&7bD%pDB=;>s;H@Mix_!&)iqe!$sor}Y-=KMtH`{B|Ki@vT?Vn61b6c`9G0yN= zHc8-5K>G_XsYR=woCw{i<#u_}BFVsayj-qJj&1dL#IGdeImds(tPb%@QxD$pz4BUC z$LH@os|`Zjt7pDF+p%Sv=o;I}Ggch$K5&a)bo<2{xiy#Ec9p2@Obfa`CsE>G9n%%- z^?nMwCN;m%vbONwGU53usnturrRv>bS2nGm?ek{uJr1iorz8uLZp^c*m|yQ0^g`yJ z=;}+i()B*-h1;1c?B2CF`n&2kQxT=7OA8d$AJ#5jR^2gy<6@|dOZdvg)8wwKGF+5( z?t*CB+&%Y>M9t>aW1b`S)UGT)zi4@>&)*jlFWkuOx?M4C|BTJ=_+C2X=eMc1x*hxG zI&=Gks>j?S%QdinbR$edcoITVvsKWj@61H}f16O&M+|PB0{gMfN*tsmIb#}lfg&1RljiKVOe}hI zR{cr+**F%}Q<<6*Pjy`0pJZCI=)>iM?Q+NV-JZ6rbWKP{)t(o7N(^VbJ;_~ey?(FJ zOg8FLzn8mG|!Tds8M|=-r%lXo@TM%JS_z8g};8UXQl+xh?)swbwwZca^lE zu#n;|sg@U7#Y@h$CQ96V{>e4aHgIFZk&LZTS9J>)YH&R)Nc#Bf;#M`2FfDV=b1Gk! zn0!jf)_N!#*I%2k@#newi?UyD+rf18?){qPukG@aOP%BIcZFuee>gm)g^wZhyUy7k z5p$VMw#jm63(2W!oBk6iQ5nEN|0llCADGqR?)Y* zx*V4~CA-4By4mJ3esz?J?G{^HelqBSX4h2Z4P~-c;<|44CoT1So@Jpm?aqv=pBl=8 zJVYkW+MX!U_P^$eSeeoZXHf0P8FX4PbC%wz%2kVQIBBYiWp0fM5MkYapMUp?+KZf% zWh)*&mb+Q|<)>1_{>$x))iu<;I|_Aoat8MEKMPJjY?N-M(Js5|yq)`Z*XhS%%@?;h zwT7`vFKw;(@i2ZP*FVwK3+CGhPP5$1E-a$v+o5ePmYK`E_px+~d5zxgK0nUaO_c>P zvnrn{Fs!+`2HeS!iupLtQ%9`%{`=?l(x$yLI8QzC3ZMV>TjDi~McS69e8YpDD^7Kd z>G*v0%eQZ0s&P`?M?uRHJ6#+un>Z~LQ1h8F;lncKMu)&l(~i0<4s=-@Xu#84V8OHa zV#ljjuXf}*`G^GP{SZ=g`!`9>>{63?zO{<_^DAG^hkyJk>z&xlrngpa;l4D*i~h43 zc0D~Ul-028@UgpgbBh1-9nD>5zgf5 zUN4^ur_A>UH6O1m)7HBs(0w$)Z1%#-M}If`{rmUD`}ge!6B^>yKku#I7kGA#hHKyg z)kEr8oG-i1Uw!^rwPk^Cl~!ic;b*msd!`?h=@Z$?UEh!#U(Z@9x^9xV6~mp6m;Noe z9a9lgdMMe%_j8ltvCUgfOkHPp>)pX)clXViBYg3yLe{mZHyW5gD?E13=PKQ|YKHLB zx+Ox~Ey|rq>XMw#^EJAhG(@~^Jo}R@l<#KvechSZ;`qZ)I#)#R(|O7CsU~rrv9-EW zefehT=K)4+ci$~) zncKb3&qUOJ%Z+2g9zHFXvbIig``>bs&nL@c%`e52>TH4aHMeGOE;ja&d*hmMW`joQ zGK=+lg+Q(5trr$wl&Jgss&UEf*gCJ=L&*yRI35;Qm~eeYr`1$buf)_XJMaNn+{ zrvo-VIku;N-q*=$3(9^@E{NN0q5ix2>E*aBC2DnrT#|9A2S7vqHhLnvX1x=2di5kI zoPXV^x#nB~u`2^XBMviMc@i>OiY;3bnfBk;kKF2_`+1SWpN^S}H0oj}O(^bLail}* z>DJu0e|i3WODsQk{(Rv}{);=xOy6|to%*?NYwy<;5k<8ayu_wb-!&J@wGDk-1+_&t9I-XQWMpzTy&Jf za`mZ>Q>`UeFDd!Hv3y-(Rbex)CCgi6=|R)JQTUR5O-|F7^`e}29|E0$pE-gFEdOSqc=H2(-2RE(J3jV;k za&mU;-=d#(C45V+-&GYod9Qp5YajPN%LK3 zXy}R+D>`ng33Vz+@T^L6Iihw)2kp`EF;l?aP&sl`{UO!yO_Tr z-k09W?MYG5v$BhOqjMUR=Qc+0xGfg6n%gIDy4v$Y%as#b*Y(XzIDUG+M~u<*?2dI@ z%+EWsOr#>#UTb;2@8`4Gi*%1_?h@=hnzTo7X{MA|H*0BWDd+8rMwzbG-^ zQ--Ux;K2dLe{;C!@+{r^bXxQ@u_qp$9d3&|jwU5Yu<^AkKV&NC-qiR=D)8gR@=Nm zC&RPi&g-wAZZ>Dl-L9D8wrW>Y)xVAn-_{PNXOZB6TT{C4WO|6V^! ztngy*3X6>$i!?lyS6zP{nrPGbW9!;EH%hH!_uM;@bcuH=o6g<@mrJ$Bk`7Gue|OG% z(ZpFl&You9kQn}HYmM?Mo*jShJml(`IPrbqcq1&iG6N<@+Lzi|WN>uE<*Rn{Ub;%1ikq+}EQESEQ=KEht@QOW>q^Mfae_VOytoo0f zra%5o?9ASHq@qbjuP#OXTglYrinUMHmf8HR3-`KhSNzrDhRUS1Hgf#`pRPJ~(MZwy z)56tu@hsf`Z}^n7Ub;N>0-s0ifA;2si{`J^>e2WRE8)KQV#Bgb&-@TyH<6Bbm2-D1 z{{H>j;i8lfIc@%P)&_R*-Xkw=9k~>h^sS`T@cX;BsiL=djRRvo9?`oqJ!$9R>be^( zn#w|leeLG+*X@rlby9yat>(q5rITN*x>BktdWx5Y$<;pns$`&_#Yv}KNBQ0s-E4^w zmjW;K?Z`0cN-*f~P!XEGZvFD4imZd$31d3JZV zY<}I$sEdC=v-pc93!R=|$fIl>r8b4%C48mfm6D~`Ukl51yC~J{y_0n9yY4R`alS-v z6+P|zCnqLy-ezrftP?ETXqWNMW~YwX;)@zT6^mVz1YH&fUNGtHpWXc9D#vgBKyj_dI9n{{91wr`Nt~oK%l~2^8B?^w?zv??>fx5jt)2=E<=zG5(7Z zSLW`Y5Z|#bD0#&TuNNAiIXeFQcl@_ zpC7Wk_ePGH>q6${=Q#!v2^%8{J}u$|7e@Q&ZY<=Oe=e*M8YH{~( zv=_g-KXKCqb+Z{C4t*6CYT;vGW@i5I`|q9;SFNJdQrIqrzT$C>E!=68)O0Z6qVvv% zu4|n|1rKG`xh*;>B!BpN*49GJ_pQ4M=3H2OQR7XSwT_tgt>f1+OfI}EnQtySj9R5e*r@ucspI@qQ_17<6J?6OGl|ov% zo$<389T@K3y?f#H*Hz-yps}5x$KSdmBSx?z!-T8-@WhgqIb0^bk6)Uy7kqzxw?XY|%gSY0%z2i}1)s}A zuI!pUck%7R5B5!6`{TO0t!B3j!?9~KKV0G!zVN_HM@NpY{o>`z%^4=MF075~?c{Iy za$@>Axu~7&^>y3jrMh0M3Mo}JS!5QS^j&6aOA+H#$-uXp!|^kYee zKWg?hUA^@5n$p#)R}Urxyi=OUcQ8R<{o413&gz#n`5JGsOKp)XkGBwV@6-0XoWK{~ zaWpx9`{R{cV>vFp+*)RxvxHUut^p(8<}bh2zk8Qwz%$t(ezDj>;Z4f(cU4tAIw~R-0R%c4LaSRgxY-2V&UqA0%nTlB2MAA`B)0iZf3vu(C`00 zm0enLheRd9R+}mcNpi4&YK0j-YIZWQXAHKi0+kPrRf$r+I|P-5p1Cc)sPU(+K5p;D z2%WY93!Z7Ifzh*P$mtysFL*q8?dpxG&+9K-+|8fdF5i~<*#E%B%g?m;=?Qf%Sihd% zR#AA}&)5H!e06xbV*Q23S29H{{%+usu|GL)`kKSr?4xcFz(Ga=X|J1Pgk$8i@)<*+kWz8x)=mi@oY`r}C)1VcCzwP3yn^{@Zah>B0-29Z%(dZ%lG7 z^KI32<5HJ>bl~M>t%6r3%TtmZwT>hi)?9pae3owBp4~@#pKW`iwJ+pWNyVd6h8B5? zwmd($N$1zEUq5;r*LAa~mo%8%(PQUYtG)PS&+oYG!;iB!Maz4YOs#JzUZ^%%bKwC# z-^&@9nVp}VT6+(7H@@o85SX8Eq;m0M_kO>OM&V8u0j}C|=4Zd0+72gz7SR0p@p04Z zW!GwcncIB%t}XgK**N^czt{JtiPmU{G#!5oT9jR4B^&o|3A=aPjrreVI%Gt{bYIP> z;#qC5;MhX<+E%%(=MKv6j_md`Z$8(UUw_Bs|M!FU?p&3&&08efA7{t5)$gUg+^l66 zZ{O}Nu$ZIpB}sRY+LQLAm#=#De-$1su71ET9J?|!+^g1^al!WO)AO&Y%{#9vw#sCY zQ~s1?nJtGCL&Cxqty-m(7@fC;^U1Z2V@ZZ~F*@Q!uU_13_kKTT%B6qD`0RP=cYX~% z`Fznujc@Po_y77;RkxsEgL#kj|5Aqhe6O`iolz^dyev5VUHaqV$E#EA<@KT`B+jr{ zD86}xiK4wobhvDu6#t%kZPPEGDGQZ;xpaZF!vp?LwFWc4azha{3>hsT?AuGG} zWwu`bppxRZvD9?Up@w#`-b1(I{SQjEho<~<>pBu}aq5-74?q8W#Kw5^n}g+*(2KDR z8>$3d0~cgU$@Q~~iheZT7q_0>_p;^sIF*>gYVO{z({4ULX5x34`TBllh7av*3=F?- zZBIV7#B$Q@%{r&k)w%O~lGSc(%zL@;$M;`xHhHcS6Z_kPFu9$!;P$%Ixktb zYbT`Z*D-Fm{kBh9b+zRcmlJYZUu4znm8{>JCbRFx4OUVhK%(dL2I1>(L%KaUb~^j+Vrr0F zoEuU3S!K`mqrKH(Taw(PlU80#G7>3OecoD>s@NTw6UTK`D)8YY(ZuxWPSuNJHdbpM zGx2lwel3<^BGn^XCn2}vpRCQtSNes|MgKDyXneWLzF#`joOkm4=bS7|94t%*GkrEm zc3Z7wdoCZ``?-JRG3od($xqwvP1$Yngn7AZ_vZc;NA}Frld;$Q8MQw`hpqoO^Y+`l z5jxWhy!2ET3LClS?qX^PULN}3N~WkwxT}Jwen~=t!n?g9)p8*nS-l$V8*HV_&7(B( zO>Wv9Us~ zys`dOq;ZTzb{qFUfo}8tZ;ro~{{3-(8o!fI-RC2(Vyos@ZDm^STby+6%9ZC+{?ysC zL6#L9dN}9A(T9?zTyrN_cdP@AF}a-T`1QB$M~&SKAGJ`u(}AgF>jVlvwia0Q+`4s( zC12!3?y@`;A;KpNIcG}Iy zxwp6V>KBT3A6;M!;OTODK|8Vnp`{Rc`pL;6q*X`_+B^@gC ziTh$`*{(&IQg!>~ZEbD$%=3y2Kgo6W_uo1hn~DkgChM2gEtgrv|D4M`I3{BH=e#5L zG{XOBiWe^yas9ZLYj2$Xo3hp<^)n?1k4~ z6C$U{`+^z*A=3{(Y&e?ax$}1GO^3vqy^@b#3wx(O<<8?4G7h1+GyDq&fF_7vlJhoY+RQ1oiX}iD8S-$q!Qp;7}T^L^;`qKKr z?eIebD{Je8mtPvx{i!&bTP}a6$8`QbS>3g>A9C{?NGp7FBlC0Nt-$FA(k9M-oFKs_ zU;9PStyhY5`f1j+VW+F_>74$wIQ`*$z3JR(nft~PuiwW8SRxr?pAgM-O`~s~>Ash;Xf&H0A#L=hyQ&rz;oQ zzhC#4;rBQB0~3wY6Ru4(4z--5A|kd(yE5qN)Emayrm>xS0}4IE88Wi7yQ9}F-nKJ< z?`nH-Yk_&NiB#yBE2dJtd(3C~F4J=jG?;yM#hNuo{{8)(Xf#u0H&=>Re7tlb^+Zv@?|88SMPyPL*gZw-^3)Zji&(Fy*k@~r7($0(`o(B6g3mG>H8Mpj= z{r`~xB1h-%u1N6-6zQ}2#PP1bjPQ!Z1&f}$T{^TuM7`qO`v8q2<=Y;*-4zuT{iES$lYfZUZb!k+ z52bUi%k#B^svs7fJsVpWO&6-j&E-ATBiFk3_qXKN*VY$25j5VkudL-#+Y7Dg*r}U7 z>P+7m&^O6&k<7}f#ca)r>GxI~O>!(PHNAD~)`3krZoN`dFWfhgt*WlxSpGil%Ju7q zpB8-#wK&3Yex|f#v63iP$PeYZp4q_RV$HJr=SHnb(|*PKJ=okgqZ4HB z=WDq$%-#k_h`w4T)W+r#e)IJz8I4kX5sihGfqW}>UYs>c>SX2An6J`LXK{c+eeq)E zs=ac_$9g8d(OS%Mdee(HZ;pt^*EF`Zv4Iwu=57BRd35DG?(fm>+%>8`79XnZm?*s4 zU|GT5^{}-7)={tWH||(^?{xJ0J>9m|-yfcsY20D%#o$mfl{ zr#EG>O7Du0W$!*bJS=?3ap##UPj~rO?2Y^K<;#NAtGSikdJcSec=%y~g@|*YiSOe5 z`{i|YbwB*9S+RPxb7-jOny~CBCvl}cl27+B9O*x~m(N3Ht~O`kG}j&+-^hOP|Mlica#b*_Wye&ymrb&IcFy}Dw}8lM|x;rBGkW7-l0 zI9MKhthjLfdi%eBbrm*pKJ)El{gxZ&RqJsV9`BPau#j1?W=+fKr%iYBo?m`ZtSV&r z@wBaad&HNb{?7k?tdDwymMH8xJ(MgS0UX29z>Nhul8IF63E>-p-Zh}-4%B;sfnMRcFsER$aLdUhm%r)e46Uv1i$>;`i4hRn-pXXX@E1fF-#x;yWKrBj}O zKEL3)?IL#m0rF0ZHO-1vX1QeQP5JE9S{vZqI>~I2Oj7=pw`HI2tq9mKXX4XSo`PM+ zKOUE3o|gLXBcB=f1gV8$T)l41875r?7Bb;{>te3I5@kN;(51~-cv_-^QI~hoMGd8i z9;a%(gFia4v$1(y<7V|L>Fky`=i#O#c)^5s*0R9RP}b?EkJ=yKr1QV=`Kkt!g?l=V zCULMZaj-RWel~7-BQWi3GWZaI_v@TAbTekT8Av?&y;)1r?p%k~TJER6c1iKHO^OiL zT9)%JVWIh|t62}rb_;g82=!Xtwrp?2~95Kyzg_rXQo`=) zlmC<#8@?Dy^>(-@aelrPH05=ShI^z$Am2vCx369?9X9B2Tdex?p+Fb2Yv3M1)hB%C zgjLac~2b$44m_}Drrf5m~1m)%pp zRyjR}iD{HW4>O(JF5`bwL5 zn?5)-8W}B;dE|3<-8#J)KFeB47q9&A`}wtpt>tEk@nVZajdJf8oUyJGnigYat^Qm2 z3H!=*vMpy$eyhs6d9|^6UVMAM`P)|O(+72qb6$2&Jh^mpA(P~twAKrcpY$yFV5q4q z#lv>-{{8q%k~^JFDOrbenBPhTkANRc5D@ETJ>16Id^5){Q$D(^^uep&VM(Xg_3fGS zcuV2o4?lG8t1Bl>72<2Zc=hU0@k7sA{7&%bZR~&jKRPsY>LxMy>ZieXe*f7uN7CQW z-u8XQovN2PAvb&~Z`NC0zI~g!E%8y;(c+^L4F|mn)q)?DzJ2qi<@#&gmpw6xsXxyu z%#(im@+IS81I@i<@$J&-cR$43X!<};~cd$5FegcKUwd42B&1Pg}>-}=| z``Rv%A%qf+)p)jgDRlX#b3XE?OI>? zW~%?j((PN=s}6k${Bb;AY|-N5+-s*fb@V+budkKQul?kEr;Izz|KQqgzowfj+%?WT zc=~<&!+!m`9*)^FUjDqeY;VPzss0}?f9~^pX=}UxPyUaWrr{5l2>W|vRy*0K&#S08 z)vW1Mxbs!qPsV4t)6X7TWSoBBG55igE6L^A`gyf)WKG_`eztw(x($!Y!{@f$G(M&v zkhEd>TK;m|y17ruNTYyd}+MS$k1!bXH$B6XTi<06^Uol7!G{p?mznRvirl| z=Kp!$+Q!Z3t-ABEUj6YD7%Wf=p@MzTC zZM9*4aOJAxm%;BJE-l~Az|c3#h)Mt7Hz%Dve_h|$TxjN+&6)rAqtTuJ-~T^Y{(V26 znbgsVliMHvYCZn&)9(1Gcjn&~KlG2U+{?{G;KSl=+qOMm+Y++HV#=O?1wOqR?Kh-- zk6kl)<`})(c1Oy~{Tse*oc~}d|F(sf5)UpiPJi%2d%lZ-jm3W{9^)Nf!lpC)dOHNp+x->E%3AgD=`!Dn9~0d#-oD=d@UV2@=idDX zUR+$vz+kSwQ?}iAZr6Fc|1wr<#rW^l>*vK4Ss&|_ZN9rZ`ogt)eG`3scRYJ_wBp^* zry04q?iwOT&hFpCDXiYZ&hV%DXm&;I*Q|a0uU)zI4_Kz3fBxM*^AStU$D`9{tl1xbSHC|#C)n?p`usJ=UB%-XcI}F~Q+vMF;@^(P z8%l4Refj$J;i>sCeFnbCZ-2`#Si4qsbKjiK`G3DiWtd29*}DC)zQ4}lcd@$#6O|=y zUTKN0s}#=4TE)n){Jbsq^_W`Gu(fr}a{cU+)%=e1n#c5abvA`_0}y<;_^NqgHW8t>V!) z2Ojs?vK^PL<`Mh*qv+48Z>kdZc`^(S*4@9yyZUNZ_`jb@Gdx)K|9pG*$8m1`#EYu- zhY~L@OMLrVKH=Y<%?u2$|9uu*CRe4Am9+}g0KW6}_Wj5Is^1@L`S^I_!_B=rK0b^7 z@MrV+19_Vn8O-wUcKv?0(|Vn6q=Ced+V6LIGfcW}*Y6eC{{NNVpO*{SACy>qy!TuF z!Mo~rM?a;{XJqJ+vlXhZ`B1kbMh_G;T}Q7!`0(=b#VaOE3b# zVs~mz=T`h$sU8p;y0l{Nq_^eQ*NNGDIk0!dx^-^p;o^C_euhQph{;s@WZkn{_##rMToZazrne@k3U7`#Po1dRQ zyvqFElkN4N&u%aH_NS7ep?-Z0FSou$|Mx#>vXv}-*54x5#QwJ1|M$C}z3#&E&l4{% zW0KIxFns>x=8Dy8TQ9$4VK`&=(&f$l{qw&I@XxoC)tk=Ea3LVRUo)7`@$@{~Kl}Ww zK33Ensk*Tx)8g-z;E%^<=d0G2vz7-oJPIV1j`B|L?+QY#)DFBE{Bl>z0*F?Ugk<9$&q3 zWx>PSfBKx&{GEJ#O_%vtvK)92^Q7>&Z1Y>|S&R%}t3}<GE z^Y#*K2Eo+*en&e7DX@5sr$E7QN5y7@M-G?$?u<$r~!4FDSGBv4=H%zJa9w-fxjn zzh}&Pxa)07)hzq}I)C2mk}f#vuXmjNwcU|5%KZ(8A0D{2_O^&AkIHpLgA9x0jTv|T z-+BG}*RPL9HZ8w!?Hb$UlP!sdUkM~Ccm2-J$~tuLnwigRE7PsqA9S5Baox@nL$_afz4_4B!zK4+D!SI_(E^=retHxYAo zKbX_gH@9b+ZS{xi&!;{9cwEl0^>U|!Lc{Foch>!w6}!89@y3mU2OgY=u&_Fpw_o>9 z9p_TVU7;;~b|oxwyZ-saR2=taXsDha-)`FfNB-Ad$2Ae(P3K3H{Iqn}Nc)?%>S#)p zlwpm9Td!2-|G)2r_k4VIJEG?4Q-+|+1>637eCTeF`zqv4+3T|mY@fCF-PscP(R6oo zRKd6H51*x|e0Dngu;Avo)*_zHg1lAow960KR&DcSeFS-HItQR zb*br@Rqq}@#lQd9 zDgOO_FZWD~F|&SLDZ%jLXX*7vH=qA+>(+~7=~`rv_9Y|c=j78rpRZoMy70vm%|G{L zdV6_)+|7S?#O>Av$6hXPN}Mt0OY~feLZ*G?$1-<3T9y5v#L6(~N5PFX z*LLI{>z8j=-F~<6+BP$u)vKj_*t{l%OgUAj?mw#|eg1#xZTa^ZbzL8x($+g}=q^9? zYqgTdwA*^W|9?AYeWv$S*5ma{Cc2ew-5pmwdv|XxkKO|(4L&}zyUWxTw$2K8%)-H9 z$LuLn<=Y@(Fd<+L3kM_5jfO%_fk_O<*e>5G*uLHTtCdu3{Tlb4G`CA0t7ChYe6E(W zjmut_=BE5|-{*PN?=3fPd}JRjqU>C5|K09g-MhbA*1s=ezqHHG&~LV+_rLc&F@C}g zyY659o-W(mF8^0pZ_k6KCD+q_@qVAmYQJCVyZsM#o$9~7At4q9nUi8K1NRFN5-R4HKNFKeljD65OEEz00b!e3rR> zT<7ulzdPd3zn`^vfBSE-Ia78fau!`a6kT}AQ$69^#^cXQ_y3GKstM;)^>Fz*Ud*;W`2A$_xZG3rC-8+cB1`v{zAJ9q9Jv)}b;8k_XQPW1Kh z?YNsa!$(b`_t=s@yOz4#{K9jyrr^7-1!w;Mk3u}_&)!vCmQ<0edhg$3)l}^TEDNWd zOn&|0+u`XCW^MkRUU_MyyZ?df`my2Lm}co;+Ib;p?nLcnI)`@dG{}DC@#p*b@Q174 zuKn@*)V`_C#d0eWEwW#E_((;&iz;(CsZK33eivOJq-T+tm9MrqOx*6y4(sQCedVIt zJ(FJ>{5;V7LOLt$3D;_6uRw=JBd+IBI$}JMMoTU%cNJlLSRf%QE1Liw5jeE7)`jDF zk<4_C=UP)wD0OwOTer?-r*Yv5Goj9e=jY~jJ`~tEW17;^pX*#W%I#&Q*X4>ha&!dG znELAOX9wkdeKz{~#~eiDZO&_3`E0*ESLB#(syNq_9UWZqbK=&!8%U@qs)igajJfo~ zSF@afx$%e9tFKj8x7KpLRr=$$Bzf*c50<%e=c?{sjQ#8$J(TA zRy`$g^zp|d&8d+``R5$+ztzxx{Nl}J zU~YZj#>2)e(dL+)t-WgXYT>@t3w9qXWMqyjO7Ji-oJlL56yUZvu%xW))T`EMR;t>I zn5y>5eXNjSYi9gdA=Bub6i!;+C^z%%MLy{n}}`w0U9kg8vm?$`eEq>qxhPi zqGokJO+f>>$$hVWUt%wOzV7<#$!bnhswA=&2=K4w*nhafrf=Rnxg$x2A8h#NJ)bQ0 zUig;doUdoW11kp~7M!?N%XPE!$kffJ9-4<-QqubOk*hVSmH$SDiCW8*3=<`xP6Zi0 z=jE4Artxjk>2^?1xUFyaL8k0RNX_nK^>1(UolK-!4?lcy`QH*(t|h`sEoLtF1=nr< z5N#sC!zn1*GWCMqq5MM+3slZViN|EPySv}q8L;4pYlwr)_Uo^|cFOA>Ht3W$JZz94 z!8XyuWuwB{xb^-%K3dcD+ruWDz0I^N$b=h+&Pd5Gnr`4RIi zm!kHoEI8Wex19N~K|-Y2%W|eE>$zD^Ik=Qs$v*m6@yJ>9AKSiYZ!Mpz*Is`G4b84x zIdNxTTjGh{td_(4^SjPQZ%;gbul7U59#7RfMXpgR7Q|RJG`dvfwk{MC3dmKiv9p@X z7q&Xo?22Ib(Nou2nNk%NIc$2sS$RLxg0t`Xy2<~Og! z-@K;nyjfl2WPh7|=YNO%>J#{>em8&O1+_!Zm3f*uIp)tl{ZuPjoNG#F2iKBU8m;^> zJG9Go-(9h4)uf$)n{WE$g(&;XwUUgl-OO42?VWRZxqsXp4a0&9zTSljel|%PBU0vz z9xvn+)O8o8+>fyqu(tnXd>DJ}T%Gy78RKj%@7=$FwwD}n@!$y~=~t)IfLf)PNx^XC{y!raa~fh*lC@I;S;y5 zho78mKa{m~g0yOfjl#S0M~WR-Eczx-wbpk3D54-Zb-@!iTe!QWC8cb&v+?b-t z0J3ABz?l}2{^QLNI&OMj7*rMso#+))Z}*wwkT*r)SI4Z40n<;r>V>d$u3+-YyYjS1 zbDOgHDqe{;kfSS`VpddnxQGT6Eza9M`_77EAimUa zl&bhDhRzHrkc*n6bMrDm=1ZQ~qBkWbqsqg@7-q%I$y)k5ZohR?5mFSN#Uyl*XM(h@ zAINWMS9V<}T7P8{pHQG^%44^qQ}1^ka?G2eaK%~Aq};0-8KM!A0WMhAy$(~h}qW!@RsG{ITVq<%t2 zTH}r0E_F#w$Gi|}1D@uWm-*O1;kRT-(L%X?_J;))7q4^H%5$!i5xS`3@zm{a-TpPY zI|JVu6dtMw2??1Xt;(^Ycwydl>yxcoqR-T-7HUscU8x2!4%Do%uhC*CTFj#8pl4z~ zp(BlR=fy`UcN~*X_6nu)@4WEGIb5CnM6a0q6F1IB)^{1;b*4#ypB9NPn)>^eU&VXm~ zi^CfJd1Vtio-r0JKFYo`aM2u(r%rq0^qUSQT-p_|&~_o8&_x@VZ;Wn+WC>ntnZ$io zPUxbIBP5chFt3bRasIh?(ZWM1NE=Nqm;Nhs$T4ofjXq+|dZkS`sbp1x^OfBvl2!{;c^>wRh9D zC*TCKNF?B~Q|lX-Cr+Q4J2UJR#DW%9)vT&o{7Bzw=fy)xWs7aji~q>sP%6K)^MZqd zgPuwMgpO~_H+NhNDepdVK)G!3?R|ISUR+k}Sfd~wCE?-nn^V<%R#wiGJ1fdOc3eDf zHc48wOQ>ieGk0f({lX`1f9vdb2KFlN2<$)ZoHs>7>O`v;pU}lRkRP1#rf8%EJw2f+ ze#?GB$2V9k7%J|2>1X;lewOld7Ent5X8gph8x%c;lTNk%sN^mPDAJ zIC1lLzF>gHhKTSJCvN7>7Yq|l^=hdmD44I3J<%%^<#x6wrfA_`kivye+=8!4gCb#H z`H>QaCvKd%i&Yjqabjl^y2$8svX`ydv1qYW`i~8X87tPSn|oz&6)n8g=u*OP@>p+| zI_CswT^-|P@_Y?X;N>L0!I|EhQo%2GhRqniKJAa@s zrty56M)?$%EAPKg=9W$HaN%~)GJo~?XG-qL-YoWmy=+X5HJdZN7y7qr7+=`|E)z={ z6a{q!K$aftt^0RW{E1s<)5LSFQao%$3z<1OGa5nJVuG|PSL2UomZ9|uJ*|@(_;gej zv8sgn#TG5Tr8ZYOH!H8vec=uU$0yuNT|PSnau+RR=I_j4^nB_zRcp@#>8pHRd0STQ zWL>|1CsV#oJ$KxCn^_J5JDv1GZX2}PH5R#_?5(nqvykC?@%7|)3!T$SGJMQ0{w7}R zUs7;pMxDjIh<{?&>c3f*y}QM`{(Sf0Wqu1a7%#40QoK;-^rQ|k2BC{g%B72K&a2;9 zarvcBR~L_ zCyw>b@=+^V%(`UdPS*MB{`1JKXTQ8$exAVjn2B9WfBesC4f(;x@pkEb&R=~~*q%6T zg9RAmfqM`%YJBL$E)j{ zN+&l_ZO-}6@1`?ZI@f_0a+Pf#g_f&} z`pg3@dGt{WJ{0L?e>+CNCFssWE1A9)ZBgsEjSIN`ckOrn5_?I^OV31rUSv_|FAb!6H$<&nv0{ZoXsD=`mev6SpP(1htqaawD$oyyIU>LTg1`o)Zw<6fnoE_ zo>Qm1Lc+ohWo>Or@x@N$CF z&RY$Kc1k(R1TEee_*O~o^_;pNi7RA{ShVlQ^6H5les{Op;N60a8zOXS%VzBh;JKH; z^RIyCo!A*^jMDccV_T*yT@|!(zjn|1@2ne^YIfx6D(2+#KAK(Y7`k3IDDlV+He!h&7*0YrdKldUs~+#@qe<`@bd~ z_Orj1`+d>j$^SQHwfAm$_~D}28Hw!U8-=w45(C96x?GevSeQCzo2#aKec?Y;ekQ|2 ztF0(HD(b;^(CVB7qnVTJq!$@X=*XIqb4TO&*S^D?7x=aQd)!^FFi+?7p|s5_rC$Hp zrrL4+TIu7n{<}BsR-Uu5*3Qt-O2&F4Q~H?|$2fzv5>t64ftQvmH zege0ypNESn&(6Ty1tPmrCD?RMA4=MoQuEjT-}TPrVcQeEH}Cq8Q=e@1${;_=w63zq z_Slt~m$yBwl(U(%^+T0{zD)PjZ|v;Te0;!lT@sptfn0M9XW9 zviUN{52kI_EGtTySG!)ezGk&#?7ctz#oxq>)hr8-TOKw{+Hi-Fvp@#4bTGrjD_i6< z&&~^vT3tdOPmq?aIKrgWQ_FQy=*+V#56_=3`&sb#(%l=kWV~*=ot_~fTW7Xh?E3tu z`9)_!WbQ33?fU5`^KrxNx0_yj=!M*#&>_a?l~?lN!9h^hWGgQVQ|A$$D=Sm`E0`u0 zoRw^AJp9nZvU0^;*`ssUzdO8oe#!USm7%wIR+LI5noD1J)|XTt{=c;&d#>A`ckYJ^ ze)YVXl3QaZ|EI1#$f!o>(w!4eoNnK`_26sO$<{0pp^HiiQ>A6CN;G)dQjR<1nUpUP z?y%@4m~m zf$aYI&bzI<%F0F7uH(3MH*n4Um&f;;R|<5UGLA_-?HR27@x;=_3Fg|ngBDI(dND&q z@vLCc!lV41850#cGIYeer<`21a;0PG);qcrq|eH!vS*n{iBA5{{Z>BeUQhe|JjZpM zi@#Vs*brzo$6~3Fy5HI(H+G#duDvSI_vy!XHU4{l54B#6-*w?;`^K9OP1ST_3k3L9 zh1+dUFyPpJ+t+E9a#M#9&ti)Z2fdKr6FS5=z4AhqUrzk-;o%dv-yJ19Asi2_=AN5U z{wLgSE3>xQmnS8AZnl3}cYTiW$(hBs_T@zEKioc5y86Sf<##h)cBcKUl3sm$v%P%x z;^W~OdE(qFC-n8Tm>55j+-Wx3w`{M|LV>dP_k8t29#7~H6LeZJ@v%kG;!34xMqan1 z9UuH}f4pdxf9?3J(gN1H?~4~&>@fUWH0htxp^p{s{_@%UD&wyDb8~0#V#oI5^=4Ab zW%T6R*{hs)+s)_aIXq#)s+O3HOb4YXmkH8m?H?HiB))75(DU({Zr=4-?&dP9u}^VoUwm{WrxA9PO{2eYN6c>~r4Zs+-$2 z@?O7u>Dh90<>%?jWedGrxmmpb6UqT-#a-Q4BwivxGu&5Mjq%;^en zv*F9y8YRkVBJ#BGpYrVx?iHOEA5Qdke|V4EO{BGf>44(lH4(M96)kGE_T(>=ims$RNsBZpLd+M*>)VT*YNvl8DB(JgCTl1sE zh6m?&f0(Z;chjsbF=6}dgM~7jD_K6821uE4v^u?b`EucwE?1V$48cjKdaG2@xeLrQdI`VLFZp7c&oil8l_RhX6)#KQ1eNMK|T~C%( zc=FE6&wg0c{W?;1l;yWrH*45xQJLeaE>nK+6)jxK{B@mc&z0U?F?vOdwFJ6XTz(l+ z!UD?9lULskdHep*d;Vjaq}3B9EdGDJhL6Sm&pic@Z?0Gw@0XA7I4a$8Ar4J3UW)(l_pz+fGdUHtE&(7auD$R@MtT z*=A2v77Z#|ymI0-)=;5U!q~2*a!Vb2TLsVm{iAT>#+kcE zCSA>q_&wG8+n%FIjW=`jes8?!qh})2xnT9`?wAZgC#9$(6Qo1?ue5T_-96>`z5L_L zt!pH|m!B};mivG6#XpNsU&DnLn^ePl8fWeM^XqxJvcyF7N8-oak~c=&>{`(6^>&@snHue`=DQ|g>#5-PJDFwVV(!f;jBl3V`S+{4Il*x1@$=7j zIM4m@_0O5U-KS4Ke7HR-<@{_PwHrCxHkB@Z;^Zy;^p~H@MTI{XjwnfWx;!Y`ZI}`8 zDTw(acKd2o^^G`z4N`_D=uy=5S;b= z%=^s^U7gi?3iRuQe2bqS-uq+ap10*CYbBq{#ZKOMSNQ$5Q}cxHteBv?>dJAqt2-{7 zJLea5E$GRFj%gg1X6~xmYd4WEplie4D-(AGY`(eX#!TI~n@v8oKV6UW9bBRK>E@nV z#SPDFP0pTOU*RQqWXsbtp9KR2<-!i1U2cA8R^rXmx95LP$X~wa5%1|usoT>`E=R0* z;Bc~4OnvG7$ z$uN54^4aFRc3Im0KRdJ^*VR>e*{*u?bGF@utp$R6&hMYF{qIWEcOMs3KU}nj<7Mda z>x+&}{5NaQFHiABlN!_Z#_4Dh-9$cO>B2++>&pZ?GspUaV^JardL%= z$e+3?i{vMIu*k~FK5_D9nKd^$$s_$0mt|6{o_JQ)B=we#%`#J!lGImSnOS>V$Y*y9 zGsD04J#HJ0{kfC;&oX5;n|5VuSbY5T-k+COO`ew=X=Z4qweO~;siLBIl-z`lX&OQ1 zw=Q06?CRo*^q8C)$-=bPDacE9X2qV~=asJFzr5JQvyw_?s0%j4eAJDeH?`rFOj*S9 zb8TZ$JlEA_D|oKeO0UE&FyYOciG;@{}rQxQ?LYBs?Tfe_9;MZ{XMTPV zQ=mG-t#tCtFQR-QF*SBtdUo;)OJ9SMevA3$oAMHgKBV_*ny4AZ`<#l$iTk^@a;>Ig_SDqG4Hp8y>W|9w_bB0St9wM$FZiYy@GBpHhi9V zJVZXfrkV9{_NCB;zS!a(+Ujsdxx3+!nSU&2_^7coADnbz@#_%C(U+|+KK?9l>Z@*aUqtY;OIgk0_EX9keOos!VrsW3Fqdd&KCHJ_z?GU{^jLVvjfBzYg^-(vP?_K`? z1CFN72LH^tAI_*KnEyTV!s~)N3(sxI-FHtr-b+Pgq5ii5y`2|6wH?~2>bI+OaWgx= zUskl1ap}?1(My&-U`TL}{>ACq6W7k!`^n|&%>$;U=`!4=Cf61}di42siHvE>wYBZ_ zH@R4@?VCR(?ZWn)ojP}BYfpBM`1ou2UCr(9!%i&DHjwZ-)j5e<*WbhCG>fWvRAgl2 zrsTy=$Jbn0`Szv9d#Bf{pFF&u!?~u?K3V#CllJeLIUyh9^!Iqj`$z}zt*f-pSBiS= zQ-5~Kx}7`LWo(?J>8^LYa8ptG(OyC34W<*u?kzu4rHp(_<9DHcyCefOqrzR!|lFWW+N_6IsI z%Rct8a0m0JM5eaHt}utI>$p|Lqi#*;n8tZCq(X3;sPW4~E&l?38Q!n4xahOFs8{$` zz0pLe<+FWf9Vl6`Gwt7oKfAciEsv@#NIKCv&0J+sYDjy@vrr%pDZWbqHXi==(88){oB8UEyWzU*+gxkPsT zXX`(yPb6x-EVoa5zv}AWGM(3VZmzmjdGEhK{Jek3H3b)z%;`5R3HUX;-{<;X2}N-) zk$ip6CoLvxvJE6IT)oP={Icfk*bJkYLZu$vrOVb`vSe3&IX7cj(&e23QX#EjljUxg zzjsM-S7$h|EIlAK!LTN(F6gi3!r~=zw!EgkUpSttV5I#G}|IbWBrx`owLjOkc0>{+8uu=hl78Q=4&&?TSvFLEwid^Vj!R zm`FUlVCZ@BUgNzzTW_k>oM$b2W^&`)oc_J~e}&J^*XqA{>kFHObg}nec81(_U#_3c zo7OKUI+>Z(Xgw%-)J^D^rU{;?OFS__(erKB-CnKIOJQbzLmK*QI#%qMa&w9NKZBKf zBpw$m_}8Ak;NctNPm{{@WtVY2zPO>R@=?tq|9_T0V@j<;BqeU}TO^kq`7ozXxc~UY zhrac9r{u+T`MR(Mos}%ueHU`H1ti>-Y3#iC?p>b6T)&$Z{)W2(AIgZ%U9q!%?h28E znS6HtEUwJ2Rco7LpuYaMfBU{e6Sv4+-JNg$#Y$G|3tPww$r-BiRWC=(zg&3BHZbLq z^X@~X;&$_se)z2{T^ORjWsicOZt@Z(tsNI{-MY1;?C2}EVBPr=F%#>)DO8FMW0Tc{RqWz{S>F?{FE4-i=1ivLTkFdeFE%)?d30n^f`P{Gb(s@=^rk$oELxb# z)tNCNB3B6@FnP^9@%zF42_{m#YxHr>HiJD!D==*KM4Sip2|sea1V^EHnIcRmVP z;d^Gmk#MfBPDguW*6f)Vq-7E%B3rc3#md8_b4p&w%2>k`Lm_MF_2F?#k7T9>qpAl+g_U%b=ah6i(O0-m>Z&Z z&v($O+t9CiBH{L%f8DsH-dY)OLyP()C*ZzBoMgk z!g5~*4PA4sk`qqt%TyM*_xjtL{d}m#f9T>HBk`4mMfaBKpAx!Keeb`(Z@C(a)yXTD zYCCsCF35VwYbpOYK7Q%`hY6Ch%lbE-o+qC6jBEb%uvQTTajzwAxA!Uxs`c zd*bvXrd?h0Vgk476^Hp26BmTsSrOszwaWHTVr9@5P34>osV8Elczaym`Jijd?Z1bm zFA8-(nmj+geXsU?U#~y=o;TMg-|dNfVC2Ja$|d7&)s{Jx`?MHCi_g9Mz+$=P_B-#} z&sKaC-Sk{(qQ|4p7gu#~E%~)?GPf#&P@q%Gm0lyB;4R6EA8l!~o9}PtJ>Bqy(XKO7 zrK>mDt*d-i5}|T*!_AqOA4nPt-QH<1Yg>N%a`%1lVatyv9P2oEk73sHGwszMgCqT& z9?hC{apMEFE%7C($7b$eI>#FR#72yZ;eGAflQUMn_;K>nYnfg*;rabyhj)T!pjBD6 zWUF^HDU>bV7@_lYSKz~UF{fX<9raTe>O7FNQ6<+tJIypK$3u6Du5DmWHeXUqvudie z>Z-h*jC-zgpPqAb!@0S<%QiB;`TgJRb!xck*5nea8(-N%Bxks|iZgzHr2a7Ok4jGZ zId3-M;sQk%@38o5p59{a`m7rS=t+LEr^(RApuO~pKS6Dd~{DOU}VLmh(3 zDM}*!#~*(GE&Ts_5c{FeHc1;L7G2ah^w2Z?G`G(a2T0FhHtLCO@^#~tZSoSiw*6ZJeOTq^yZm(<2 z&?yx!x}3?o$5L$X)yeGu|n!*aTE8|Ull86Z44+{$kM5y zsC@NCMt}*Yo5Shk#gD!Va5X#7efut#Yfps<_q`^;5z^fld>X$`@Zs)njXBY;PV zZ{6t~`(5>)pYLVb>lF3>S9d{7NnG6b)h*`|-OoN^4=g?1TY2;TFIl@aXD1{izEBYM zn;)lJ9rwm*tJ;FBm=)Jw`}RBxnis>QAgFq2!4tPwy`MQ}LdxGpIp{31Ij<}*LEXzf zx5^YWPBtrP-wojtR`b_Mt;*Xe$eTU=^t7W-nCBkmd)}mdVMm$k{7IS~JKrwdD|uVT zVx?S_=gZ9%Hhm5X3f#?EzAZtu^O06U1n!&AA*2~tv^Z~j^u^w;_jk5Fa%22i{o!ZL zCaJ|$d-<-&~N zP1>KM>fYY%wUyM~7IIs1PVtnQHI@P#3L;#Yn?fSYrbcafwWRZqgLh2FmLrcp9x0j# zo=0VxeYWk_ud2w~1r|LSTg(M_hFOU}{A1bYtRm#7A>!og%lqbA%EGQ=6*9kX=WkdZ zJnyc@nXSvOJYIHL`uFE42dnpRtc~t}aO=BZ)ON;=%cgC4Tgqqc!`|Os`OGBZ*_p5y z|5^OE?gq}Oc)qOXYnc3w0+w_3X$6;xKUT=RefzenKIlN^(&C=uk3F;9dfk-UcqEmq_y5oN_Fzu? z_S8GiCuzGS|1$lv&v|KK(b-SJS{CDqfrI#h%P!J1tKPBs3Zz$k2 zvoGFev-aYKS0x9W#rs3ny$aVkzRHd}Rc z=B@+fsTUL&0|uU z*zsuB^{C~X`~QF3(DVDvr=lGn{O>DCoLu)TW8=nW-r{mG^DLb&ZE#e(Q}!+3=I4zO zIuqwO$Q-&li(_fDxD*fDd8t*p^*h+FO2~Iv)GuqVsKm zuC%ZVyU$DaIk#(vXT5y+a^g;lwG+>^dL1wFbm7!gS=5p>rN!e##*&PSy-X*CdsqZT z&ufTnn8EYo^ws1+L@e?|PA{EOPKiaTP=+W+KU5=F&q6=>HZri$5QD)kD ze%bp82PcR3G&&w#zvS}ihiBNgJ=p4hNj>$t(L08A`M-(U^ZqYz4*k7Sd2Pj;^u;3E zzkd00;Qe>?Y0Vj_mfa#n3ti$B1ywgWMJ1g{FgWn|qsmoLQGwloYZdIu9bJ0el&h+$ zL_WVdH#er!T|ZQeOH)t}l*YKr_w8CAZzTOy-8#zI;^8^pA5WrpYKJG)G)wBoSo4WZ zu93O&{PV%LW$KfJI@E&Zof~^I(w{>NF(c5RUWgf?m_uZj5bIB|xhS^dxK&yD61hlN*1eSE$( z_e1;D^LlcYGmhHlORSGjHxcVzxOubi!T^tHa{k&%Q#7pw8B9z~6-BrL%aoi%RTjDU zbriqiQcBqxW&G?4>lVc&PU%{AI5^CiCwj1$nwqXyu_B=6uJrt}$G6hU6{SwUOE-S~ zfa^}#wSc3MYnVL^4n4m4{np1DyLAhGK7IJQ#78pm=>7Gw?OL<%G#*PbEGaEj6yQ+d zTygDMYnN-ttc_eRN*A6zd)8p~*(u7?16VsXCK@k&;5IdnO=%)WR(7_ibtJ=&gvrwO z(VLhXb!6roxO37krrOJvPyXt5FWsAuc#nNJ_ABpCVx{q|J2#i7+LR@+{ww+_anvwi zV*}SaUl}geEgxr2=2rd1EEK4e-gUQ^>7_>tUf;f=K2+vv*g#`YrY!4>%+yZE^F{{Im=ZSUT_I}#-JaA7H<=}e!l%|$0$g?2h9d41tjHP14eees6I`kgC7 z&ABwVGgX8fO{83XeSJ@zbaTiro8PMc=A`DH)hCr5tHaryHv1wuG z-hv38jAGY|&+I-FxC+&;o*TQmP5HRxhaczNk~@MUFDOss*tKhy(9)+%6k~KbH5~M& zys!s(F_z%jGXyt&iC@xjW6c^{&4R3t@vw``m(H>XZz(J@lU(D zq-OoY0*SeE=XSU)_Ed~nyKbe5xYrkTl|?S|1B(`mb+hvF@^0F8=!h)i+R~sP#itf} zic8F9^IpArHDSh;)C&7s&yKGDze{@et*4R`w)8mi$NczvaL3Ocw~&aS{r2?4$^52|j6{>A?nR0@ADX4*vvN%Gg%|nH$?{R{ORA6W*>uS@l zL85wM$Ft{`Je;^adc$t#+euj$m_h3~zJ8W6$m+06-CbeR_wHTZj+k{SA9chSSs6Cp zTvNg9qBrFQx5^@yxD&^E-4JbZSgAKayu6)vF}JwQ%3QxWcm4_uu<-ZO#wxHA)d8mQB4z;6)lxH zzHrwrDN#|;%;R3He-=uF)jd4)`t`1l``5~aezp32YDScC-~2a6{=B?8!z!rq?rM?! z_xZQq?hVkGGG#^liRn6GQo8kJ4*7L4OOrV6-o5+c&6_DpHB`jCQkXk6CWbG`Gm+t2 zylffU)vH%GZEJL3u(`im$7Qvw;ehwQI~`| zT{hJIE}L=oSqt~oqD3`MyC-xARl3^j4lP*xus{NI2#l`ogG#%V3$|ag*3Ya6*I9Px zaN1^7xtmtA5?YS`TW1herIb(cMj#KA4 z)-Dy~y{dL4d{)5v2{LxV6Fpe!_RG(mJD2lg2-n>#%NlJrfr}w8|K7TF>%qqgA@8^& zou4?Bq(R}YJnyEKPG+Hn%!<{kCvUx4#Kfi=v@>YqjAKclzD-C-$bqb_T4j%-6a_dG z1UMEfU#_k=Bk7~aoaJKI>z65Ao-_@zm`a5uY*uQg!Y0Mf3Ve=F8ZLY^;$fcm{9)0~ z2L%=>bEQsidSKxfyw&ZpV#y}())1SIc1O2{vMRoP^~xzaT6)#0RS6p-K*->P@D6^H zi5@Hm69nw$^B+tQU~6X7IjzRIJV^FJl7K|!q)OFYyLV5%mu+}gLEu)i%ajw=Necy8 z+7czceEFhb#oT>#631(KXK=h0n>~TaV~_t_zxE0nzUG4yO!Bn;ye->(@$OyTdCvm_0~x2KPCnH2 z)4>9Is8V=%xYM1bhcxTrwB}v<9^s>*Yb~UtPg`oD(`UxFEf7>ElS|_Xv_`7)9wy!ARzvaz0bEb7Jx%9s~)`IoOb+?H3nyNB< zr;j;#I&{{6ssQaI!KamWhGto2vqcZ@(mAab#3Z(O0@KMyYGRHXou{f53jAN~=CJg5 zU{yz}(cBEN$EIOUKmK_at&HUdj;zA19evvu7u6j7Z6L z?{!O7GT{_iKY`2Rt|r6G4PLCqQyaSePkU!RcR|9Yz}aX#j1J-jqArs)K`$|9Hj z%6yqz-filUQdZ`N5oLnuH(Ui1>vG^v*^p$>0Vv{el? zN*gDvV-Jn0KMkHi3<{g8*Z~R)9*##F)*0AknMhr{c8zWEMUM8viq*YGK}!bM1Elgy zWS?rZ>{OcTF(oTAz}?+F$!uMPj>v*+?Hd&-!qYE>3fgPFC0o*HTqLtynE+XUS6)GEz(-p`LD%gibTMX#MlSB{S0OJ7O!2) z`}OPBO}SNj<)~;R4 z$*$E>lxe1SasGr3Ay#LZIN_FyPm2yF7$jU+;OIHChKJ2LNwRsv7ghyDUG^o}j-^(z z7Jc5Q4jn0!iHeS9R9Lx3l2ha2eUN6yJ!_l`7CYpB`tt2t*^94L7BYMi~1F7K~~q5m%1PLL`OxfU{<;G=xf!*%aK!eIFhk zyL)1*v}{;-r(o&SS}VJY|20H!sIhzTsHiMzSthXiV$8M1bwAFF+5CHT{71p#cYEfX zU$au#F#DB<&Yp_0xNq)H#6JcwSOzQ-0F8)c9JN}=*)nU^#SD|c;F2pV0$0Vo{?uCV zwRU~-(fVy)PVWTmYE;j&W1f8c+Sk+nI`0(hzMGMq4LUDp4gXR_h9rfB`O*t5kGyl@ z)r;pi9Cwe&*~e-hK1KNA=eq9vAB$IQiMnJv%$ves1K)jXye7Z~Qnq zouOg-y~xh+>AI&Y<5d>8C@wS%blSY)rG)*R9n$^#e-)m38@sx$S@!pCzBSrc9{=2K zcX)o>KMupdxtBbXUlp7;RZl8OHgyu@`~Nq|Jg@#){EHVKPk;OV^jp}SzjuD`csl9k zs(Xh&d;jm6A73om_xGPp=-bXW3XG~;yq1BBR-6<$boc(dV`omw9q;j$KOATu-PAUV z>(9$$KRe&L%NX(0@B6Cr=iN)w85Qs34c|UG`s2mwy+2<5d8zsR=e7E)?Y(~+8Kk6M zg>FC3K4r#y1vb8-MJ|Dp&q|~k$QyaH;NQA+YenhJ*A*X^)+@;LB^>*b zx#Qoh_yZ3M9yE399pt?p-+q{X_N*J{*XQlwTt27B=$YJi=9+zl%5s$@hP!rE8-MBmOFVy+9A-0MW0u?VKkm+!4`DsB#!}X0Z(NGKx!ri=`?A;V z6FP6ZU&Pl}m!q|5$II*HNq=@UGcc^zt!B<&7cp_gwBmb~_Qzf>|9Y=r&yW7;8*6`; z6~ypZm%n8?e)Pj-Z~bF;ERV0;^(|j7zVZ3=f4mF^$;ZC9WLh)MKi}`V{eI_HX|n@a z8y|I@u3uGkpC!=4!=-c4GyC{A=YE;y|IgRnXJ0DvZQHIyGeb_svu*t5?~bimsT`bV z|7(SE;g>-7M~l4cyYAoFCBWV*%e^4nCv1IO_wwmBe9JF)F0KDPywS3G&x4%%0szwZxMciw*Em1oUon>{>tU;oge`}f-3T9-YV zcDrtM)_s=142?P7BBp+`ixQueJW1xst?28N`1kWw_KtVASXZoC)fBh>xT<(;$GLTS zZ|-eoSD#zKWcTZbaK+v@h6C2`*Bt3opTn^DV#oEkdgkYUezZ%J2dvMYW0`E#XZK2D zP3-UWNA~$!J^Z1<$l9PeS)K94+$E;Z**6DTr*O>iQ)fu{w(<9&K>`1<-XG?-@p zZ#_QUX6BaKi~0G7pLkBbaOFyi;bQmneHKc`dgSKbFn7$56bf9lVy0>7k}Sck8{FvPahUsm;GOeJ>{Mb_ ztX_S%DSMq?PpX$??mwG9A1B%;KIst5$XIcF!$N09hOb}0N?51yoU{7;WlsOxzPY>0 z9?pC|?NR4(IoG9-Q!>Qv&H83~yZntyaLGpPOru^61E#bM9bw zay=JvJnnXp*6K)S>G_yu|M`C{?S7rUdgJ=DW9Q%38*lu3`Rwn)pLb7x_*?qzJKjv{E;wKNeeuqvtPC6WujHJ+CVKh}yVOr9 z1u;C`^7Ty1&(HsU_qWaam_L7yPTx?N{CJLAJ{a4*GcNCEVmAb}@)(Lt4d(SiH`|Rl=+xe{?_VxV!k>#%a?Cys> zs~*P|fBSyPPvg{)kHya$o>%^Pb!@f(2a7?)hlDxx?<_rY{pQ>A*Z=)}-|+Q}#lq)J z&CDL0yItSzE?3L*d-k`(4_6%MR6pZtBGq~^`F0w#ZLb+M;^77<2 zGYma*)%~K*skl>N1QkXNdbGG<;pV=jf@-oJ$ zDsg*0$AsM4JpW9{8&Dy9@z$-b*X#eLF7#LBoPWN3+cvWeI^2sd&Y1qno@FBMmt1A9 zrr%<7TEyR5m@mJ%Yi7Z%GdsRNSARISU0>6iQI$iI&Z!PX@Y}uFF zvP?kTiG!_q3i~tJ<4^!oe%t=^}Jrw4r5+M1_Y7 z=UIh!9HmyWJZ#K1a{i6yyDn%QOc2Q1ZvApuw*s5gtO%D3E=Py2RkmNMZ1;c$mz(eA zu^%@0doA$T!V7$jXaui{pwdg`+UvcCwT0P zwY7Dk(aZz`i52TK0u4ZRDt2fb{!(Y#d{ALeoPN?qi66{Iw|rK#OHve;Yx3xj-x#6u z(O~x34Y%KJh*}HUxMbJv^L+ZNTD~VwW(H`qBp7r!C@{=FKmA9}m#W%F$DIBMu;|`T z(%N@0NkVO-UWf&|P|zZQ3vXhaiaU<_2D(T}Z|BoUQ+%%6cc`12`a0vxE6>}_76E({0*lOReD-&KL z7i1{jt#x|ShMPGFkz!)qtZI{2W=xCvVABuTGgV;0v;Tg7fyJDlHAnavJRjY>ucRg# zr20{ zL8qrTTl2#6&rcW1SoAsThXFFh(7nkHn+<= zeTDRze((teHl1iJIi0xV@%Ec`OMd&ePEwxCwQQ1r7U!xU>6dk!O%t5GV>p!9mn>5H zV=ve5y#D%f*~`A)=gcT^TBVY;(#7EN|Ed3cOL>|UCMgQ4cGxM2$|-U-HUvpTyu2TB zKGka3mz^PerdPL>{8r&mvQ=5cGBJJ15l^i(4KW&1TY~@0k(wB++@ms$Wg=*FaniC2 zo2#!*$h~29dEbh9_Vil}pYEsy#q3Yq%IY~M6*S^LR6)sEM zGiUZ%d=_*Rkycsc;;AU+mH79`wYAY7@Bgps`S#7sWk~ z8+PRJN0&vMLP3jeEGPwO@+&(~C=<3WruF&%Z`+;bi!E%p9NGK({Z84bQ>TV>wrWIm zDLb1vu5fwd)O=9k-^Wwht#+zPta;_;({!taWsa*Jddm`+GoeFBwRsDZcW|(_)53tp z^Iaat-|elQ9HcDdve7XaWDVbQGgH&2TlnWnUbxA)SN4Ks^?%>5-Vb9P?yw&@>~M$m z!@fJ`_sV4E=TGNEewytAYm9(z&T!@}@Q0EKcR*Bb)wLGw-+f zI{no*>wVWBu3EZl6_>x=KZ$Ak|4H%9wsQT;&Do?Op|Z#&a`ATNHo;f7>hkYQys;x& zxo=(p4^Nfzv2Rw!2@)&+#iX6L6Wjg$&A~s$=MFuW-XHMasY!v0ty3fLT8eT}vD*2A zU0?H)++Xwg$Xh$#{U?2OcVPF?re)94zN)(jxEx&A>FN@>c=O8a=Nm#2Y7Vp9+4#DQ zr|8Oq9iGJ>PHyYJDtq|e?mw!s{r^7lgCcps<%cahiwplZ^FN%OzwhAE=`lUQ{+5z5 z#~;poKJU1-_Wh%p>hoJN+vWSL-|e#g_$ylcpS)SkH_5PlySeOV)atC;^QdS>r17;i zvE8cvw!D3h3yz$Tw8;Huv%^-dN7k5a|DJc@JAN$UPTUv~@N&(86%!Y4s5{KIXK#_J z-p&_JSFT@A{ya_h$6uy7%x+p!MO{QbR4>))Pb+xleV(I4O2 z<&%!}NM__@9QbedPom%cAB)n(6}z~71YEf+0~h67G~BBgZYooKV&jjB+wL774gZv% zt~W@2!xP~n7P>yv_~47_*Z*_<|M6VA;_21vA0~I}ADkXv+xq#uJ->51-%-owu?_QM z3q{Xa{53f7 z;KGfK3=QYb>E+zp!^-gB^Un`2fALC~W~C(A%m4Z9%)oH|GpHdoqxeo?Czmcu;Hm(N z=^F7NYA!2QuR6Y?t#C)#y;6a&q=-oF9yYe@eGzj%e*Gw8#4pwB7Gk0OVRp2*+B{(F~aaqjutFVc)km1X@ztOqSexe79+Mt@{l%x^TIJ&XZ(V<`wCG}nNNjBE zkGG3%3v#fe+_t~JL(u&1FSZ^@W2wXK{N87tC&-1N| z6KnRoO+I6nQWn>@@W||Zz2k>w=QrI=YmQrgd`)tno2#qqd%MSlYa%y`?ce(~?9c1? z_o|ab_x!r`I-=lgsDxFC21CN19fcMz7Hr%(w}EAvsiMFe(GppP)uxp`757#yKagT{ zFvaL$`1RQCtJ&AomVQ?52x^(55qRy$-v05Z^Tv4bq;qR~WA6_K)FRktEWAt%f za6eCd=URs~TkF5ARh?$DP2#)#4}r3Gx29fw{p!`Lg6nU)4{Xx$Q4^METX^V>OQ7S! zm_=(ki}#*<^qYC#Y8#d*3a3E5rZ*3*8zb_Tx(6R-yfe+_{bU7>vyRD&SQr~_-?L`a zm>sof<%8W-tXt+}b;W)C%-U+l+N8muvWTUyAtL*|io)Xxhw0vu#(l3kgj{wyDtS$j zIdo)7j917pXNM;ajH0!v`B4XaRx(zGukY4Xe?HT{<$SlAu;5XSPL05z4(msP%5C2= z<9F)$DqabWj%ME*=g;INqHD6TL&LJfO7=^YEgP>?OQ*29$gh$P6PfBW6FCJ{-MvJV zRTjCNR46%6wO6icuN+%5n<#J^DvM+Yw>!`X2a4~SB^Y)edH;kJSC@5 zL-WzcihR~d5j+<&L}ZRDO7$Lk{BgnFy|NDtrh80u=g~Rj>*v}E8e)YUevlx+#&h^U zg24n~)h<3MVO1}_gS|#PlYi7hHvJ3qANO?O?s#Cq%f`&Z=Ims1R57+mLk(1&I=yIV zwVKwnK#Hf$#i&H+;vt0^vr7}KTZ=lAKtqw1N1T4$Et>vbMx!(1p;2JbSq27%J)SO( zArt%*gjhmvxCtBu)pV0OV*5XA53%v|Vdq=v&}A>b^es!E4ycCrUe!1I0^65Lfu#(c w8iAhz(tQP7>K$LZa5gD$D7kyknf@n#r-wf^ewt7l0|Nttr>mdKI;Vst09ozNj{pDw diff --git a/ocp/ocp-template.png b/ocp/ocp-template.png new file mode 100644 index 0000000000000000000000000000000000000000..9ec4de607bf3a09f3bf49a2be05cbad19a5185cd GIT binary patch literal 87966 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�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 NdAj4iW literal 0 HcmV?d00001 diff --git a/ocp/template-fevermap.yaml b/ocp/template-fevermap-persistent.yaml similarity index 87% rename from ocp/template-fevermap.yaml rename to ocp/template-fevermap-persistent.yaml index 49350af..fdfd46d 100644 --- a/ocp/template-fevermap.yaml +++ b/ocp/template-fevermap-persistent.yaml @@ -3,13 +3,14 @@ kind: Template labels: app: fevermap-mysql-persistent template: fevermap-mysql-persistent + application: ${NAME} message: |- The following service(s) have been created in your project: ${NAME} ${NAME}-api, ${DATABASE_SERVICE_NAME}. For more information about using this template, including OpenShift considerations, see https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/README.md. metadata: annotations: - description: An example Fevermap application with a MySQL database. For more information + description: An example Fevermap application with a MariaDB database. For more information about using this template, including OpenShift considerations, see https://gitlab.com/fevermap/fevermap/-/blob/master/ocp/README.md. iconClass: icon-python openshift.io/display-name: Fevermap @@ -20,7 +21,7 @@ metadata: openshift.io/provider-display-name: Red Hat, Inc. openshift.io/support-url: https://gitlab.com/fevermap/fevermap/-/issues samples.operator.openshift.io/version: "0.1" - tags: quickstart,python,nodejs,fevermap + tags: quickstart,fevermap,python,nodejs,nginx,mariadb template.openshift.io/bindable: "false" labels: samples.operator.openshift.io/managed: "false" @@ -105,87 +106,9 @@ parameters: generate: expression name: DATABASE_ROOT_PASSWORD objects: -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: ${NAME}-api - annotations: - description: Defines how to build the application - template.alpha.openshift.io/wait-for-ready: "true" - spec: - lookupPolicy: - local: false - selector: - app: ${NAME} - name: ${NAME}-api -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: ${NAME}-build - annotations: - description: Defines how to build the application - template.alpha.openshift.io/wait-for-ready: "true" - spec: - lookupPolicy: - local: false - selector: - app: ${NAME} - name: ${NAME} -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: ${NAME} - annotations: - description: The run-time image for frontend (second stage) - template.alpha.openshift.io/wait-for-ready: "true" - spec: - lookupPolicy: - local: false - selector: - app: ${NAME} - name: ${NAME} -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: ${NAME}-runtime - annotations: - description: The run-time image for API (second stage) - template.alpha.openshift.io/wait-for-ready: "true" - spec: - lookupPolicy: - local: false - tags: - - annotations: null - from: - kind: DockerImage - name: centos/nginx-112-centos7:latest - name: latest - referencePolicy: - type: Source - selector: - app: ${NAME} - name: ${NAME} -- apiVersion: image.openshift.io/v1 - kind: ImageStream - metadata: - name: ubi8-s2i-web-app - annotations: - description: Defines how to build the application - template.alpha.openshift.io/wait-for-ready: "true" - spec: - lookupPolicy: - local: false - tags: - - annotations: null - from: - kind: DockerImage - name: nodeshift/ubi8-s2i-web-app:10.x - name: latest - referencePolicy: - type: Source - selector: - app: ${NAME} - name: ${NAME} +# +# Database +# - apiVersion: v1 stringData: database-name: ${DATABASE_NAME} @@ -201,220 +124,18 @@ objects: template.openshift.io/expose-username: '{.data[''database-user'']}' name: ${NAME}-db type: Opaque -- apiVersion: build.openshift.io/v1 - kind: BuildConfig - metadata: - name: ${NAME}-api - labels: - app: ${NAME} - app.kubernetes.io/component: ${NAME}-api - app.kubernetes.io/instance: ${NAME}-api - app.kubernetes.io/name: python - app.kubernetes.io/part-of: ${NAME} - app.openshift.io/runtime: python - app.openshift.io/runtime-version: ${PYTHON_VERSION} - annotations: - app.openshift.io/vcs-ref: ${SOURCE_REPOSITORY_REF} - app.openshift.io/vcs-uri: ${SOURCE_REPOSITORY_URL} - spec: - output: - to: - kind: ImageStreamTag - name: '${NAME}-api:latest' - successfulBuildsHistoryLimit: 5 - failedBuildsHistoryLimit: 5 - strategy: - type: Source - sourceStrategy: - from: - kind: DockerImage - name: registry.redhat.io/ubi8/python-36 - pullSecret: - name: registry-redhat-io-secret - ### XXX ^ what about the pull secret ^ - source: - type: Git - git: - uri: ${SOURCE_REPOSITORY_URL} - ref: ${SOURCE_REPOSITORY_REF} - contextDir: /api - triggers: - - gitlab: - secret: ${GITLAB_WEBHOOK_SECRET} - type: GitLab - - type: ImageChange - imageChange: - - type: ConfigChange - runPolicy: Serial - selector: - app: ${NAME} - name: ${NAME}-api -- apiVersion: build.openshift.io/v1 - kind: BuildConfig - metadata: - name: ${NAME}-build - labels: - app.kubernetes.io/component: ${NAME} - app.kubernetes.io/instance: ${NAME} - app.kubernetes.io/name: nodejs - app.kubernetes.io/part-of: ${NAME} - app.openshift.io/runtime: nodejs - spec: - failedBuildsHistoryLimit: 5 - output: - to: - kind: ImageStreamTag - name: '${NAME}-build:latest' - resources: - limits: - memory: 2Gi - runPolicy: Serial - source: - contextDir: app - git: - uri: ${SOURCE_REPOSITORY_URL} - ref: ${SOURCE_REPOSITORY_REF} - type: Git - strategy: - sourceStrategy: - env: - - name: NPM_BUILD - value: >- - webpack --mode production --env.NODE_ENV=production - - name: OUTPUT_DIR - value: dist - from: - kind: ImageStreamTag - name: 'ubi8-s2i-web-app:latest' - type: Source - successfulBuildsHistoryLimit: 5 - triggers: - - gitlab: - secret: ${GITLAB_WEBHOOK_SECRET} - type: GitLab - - type: ConfigChange - - imageChange: - type: ImageChange - selector: - app: ${NAME} - name: ${NAME} -- apiVersion: build.openshift.io/v1 - kind: BuildConfig - metadata: - name: ${NAME}-runtime - labels: - app.kubernetes.io/component: ${NAME} - app.kubernetes.io/instance: ${NAME}-build - app.kubernetes.io/name: ${NAME}-runtime - app.kubernetes.io/part-of: ${NAME} - app.openshift.io/runtime: nginx - app: ${NAME} - spec: - failedBuildsHistoryLimit: 5 - nodeSelector: null - output: - to: - kind: ImageStreamTag - name: ${NAME}:latest - runPolicy: Serial - source: - images: - - as: null - from: - kind: ImageStreamTag - name: ${NAME}-build:latest - paths: - - destinationDir: . - sourcePath: /opt/app-root/output/. - type: Image - strategy: - sourceStrategy: - from: - kind: ImageStreamTag - name: ${NAME}-runtime:latest - incremental: true - type: Source - successfulBuildsHistoryLimit: 5 - triggers: - - type: ConfigChange - - imageChange: - type: ImageChange - - imageChange: - from: - kind: ImageStreamTag - name: ${NAME}-build:latest - type: ImageChange - selector: - app: ${NAME} - name: ${NAME} -- apiVersion: v1 - kind: Service - metadata: - labels: - app: ${NAME} - name: ${NAME} - spec: - ports: - - name: 8080-tcp - port: 8080 - protocol: TCP - targetPort: 8080 - - name: 8443-tcp - port: 8443 - protocol: TCP - targetPort: 8443 - selector: - deploymentconfig: ${NAME} - sessionAffinity: None - type: ClusterIP - selector: - app: ${NAME} - name: ${NAME} - apiVersion: v1 - kind: Service - metadata: - labels: - app: ${NAME} - app.kubernetes.io/component: ${NAME}-api - app.kubernetes.io/instance: ${NAME}-api - app.kubernetes.io/name: "${NAME}-api" - app.kubernetes.io/part-of: ${NAME} - name: ${NAME}-api - spec: - ports: - - name: 9000-tcp - port: 9000 - protocol: TCP - targetPort: 9000 - sessionAffinity: None - type: ClusterIP - selector: - app: ${NAME} - deploymentconfig: ${NAME}-api - name: ${NAME}-api -- apiVersion: v1 - kind: Service + kind: PersistentVolumeClaim metadata: - annotations: - template.openshift.io/expose-uri: mysql://{.spec.clusterIP}:{.spec.ports[?(.name=="mariadb")].port} - labels: - app: ${NAME} - app.kubernetes.io/component: ${NAME}-db - app.kubernetes.io/instance: ${NAME}-db - app.kubernetes.io/name: "${NAME}-db" - app.kubernetes.io/part-of: ${NAME} - name: ${NAME}-db + finalizers: + - kubernetes.io/pvc-protection + name: ${NAME}-mariadb-storage spec: - ports: - - name: mariadb - port: 3306 - protocol: TCP - targetPort: 3306 - selector: - app: ${NAME} - name: ${NAME}-db - sessionAffinity: None - type: ClusterIP + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi - apiVersion: apps.openshift.io/v1 kind: DeploymentConfig metadata: @@ -423,16 +144,18 @@ objects: creationTimestamp: null generation: 1 labels: - app: ${NAME} - app.kubernetes.io/component: ${NAME}-db - app.kubernetes.io/part-of: ${NAME} + app.kubernetes.io/component: database + app.kubernetes.io/instance: ${NAME}-db + app.kubernetes.io/name: mariadb + app.kubernetes.io/part-of: fevermap + app.openshift.io/runtime: mariadb name: ${NAME}-db spec: replicas: 1 revisionHistoryLimit: 5 selector: - # app: ${NAME} - # name: ${NAME}-db + deploymentconfig: ${NAME}-db + #name: ${NAME}-db strategy: activeDeadlineSeconds: 21600 recreateParams: @@ -441,8 +164,9 @@ objects: template: metadata: creationTimestamp: null + name: ${NAME}-db labels: - name: ${NAME}-db + deploymentconfig: ${NAME}-db spec: containers: - env: @@ -516,29 +240,125 @@ objects: containerNames: - mariadb from: - kind: ImageStreamTag - name: mariadb:10.2 - namespace: openshift - type: ImageChange - - type: ConfigChange + kind: ImageStreamTag + name: mariadb:10.2 + namespace: openshift + type: ImageChange + - type: ConfigChange +- apiVersion: v1 + kind: Service + metadata: + annotations: + template.openshift.io/expose-uri: mysql://{.spec.clusterIP}:{.spec.ports[?(.name=="mariadb")].port} + labels: + app.kubernetes.io/component: ${NAME}-db + app.kubernetes.io/instance: ${NAME}-db + app.kubernetes.io/name: "${NAME}-db" + app.kubernetes.io/part-of: ${NAME} + name: ${NAME}-db + spec: + ports: + - name: mariadb + port: 3306 + protocol: TCP + targetPort: 3306 + selector: + deploymentconfig: ${NAME}-db + sessionAffinity: None + type: ClusterIP +# +# API +# +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ubi8-python-36 + annotations: + description: Base image to build API onto + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + tags: + - annotations: null + from: + kind: DockerImage + name: ubi8/python-36 + name: latest + referencePolicy: + type: Source +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-api + annotations: + description: Defines how to build the application + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false +- apiVersion: build.openshift.io/v1 + kind: BuildConfig + metadata: + name: ${NAME}-api + labels: + app.kubernetes.io/component: api + app.kubernetes.io/instance: ${NAME} + app.kubernetes.io/name: python + app.kubernetes.io/part-of: fevermap + app.openshift.io/runtime: python + app.openshift.io/runtime-version: ${PYTHON_VERSION} + annotations: + app.openshift.io/vcs-ref: ${SOURCE_REPOSITORY_REF} + app.openshift.io/vcs-uri: ${SOURCE_REPOSITORY_URL} + spec: + output: + to: + kind: ImageStreamTag + name: '${NAME}-api:latest' + successfulBuildsHistoryLimit: 5 + failedBuildsHistoryLimit: 5 + strategy: + type: Source + sourceStrategy: + from: + kind: DockerImage + name: registry.redhat.io/ubi8/python-36 + pullSecret: + name: registry-redhat-io-secret + ### XXX ^ what about the pull secret ^ + source: + type: Git + git: + uri: ${SOURCE_REPOSITORY_URL} + ref: ${SOURCE_REPOSITORY_REF} + contextDir: /api + triggers: + - gitlab: + secret: ${GITLAB_WEBHOOK_SECRET} + type: GitLab + - type: ImageChange + imageChange: + - type: ConfigChange + runPolicy: Serial - apiVersion: apps.openshift.io/v1 kind: DeploymentConfig metadata: annotations: app.openshift.io/connects-to: ${NAME}-db labels: - app: ${NAME}-api - app.kubernetes.io/component: ${NAME}-api + app.kubernetes.io/component: api app.kubernetes.io/instance: ${NAME}-api - app.kubernetes.io/part-of: ${NAME} + app.kubernetes.io/name: python + app.kubernetes.io/part-of: fevermap + app.openshift.io/runtime: python + app.openshift.io/runtime-version: ${PYTHON_VERSION} name: ${NAME}-api spec: replicas: 2 revisionHistoryLimit: 5 selector: - # deploymentconfig: ${NAME}-api - # app: ${NAME} - # name: ${NAME}-api + deploymentconfig: ${NAME}-api strategy: activeDeadlineSeconds: 21600 rollingParams: @@ -552,8 +372,8 @@ objects: metadata: creationTimestamp: null labels: - app: ${NAME}-api deploymentconfig: ${NAME}-api + name: ${name}-api spec: containers: - env: @@ -592,6 +412,192 @@ objects: name: ${NAME}-api:latest type: ImageChange - type: ConfigChange +- apiVersion: v1 + kind: Service + metadata: + labels: + app.kubernetes.io/component: api + app.kubernetes.io/instance: ${NAME} + app.kubernetes.io/name: python + app.kubernetes.io/part-of: fevermap + name: ${NAME}-api + spec: + ports: + - name: 9000-tcp + port: 9000 + protocol: TCP + targetPort: 9000 + sessionAffinity: None + type: ClusterIP + selector: + deploymentconfig: ${NAME}-api +- apiVersion: route.openshift.io/v1 + kind: Route + metadata: + name: ${NAME}-api + spec: + host: ${APPLICATION_API_DOMAIN} + # path: /api + port: + targetPort: 9000-tcp + # tls: + # insecureEdgeTerminationPolicy: Allow + # termination: edge + to: + kind: Service + name: ${NAME}-api + weight: 100 + wildcardPolicy: None +# +# Front +# +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ubi8-s2i-web-app + annotations: + description: Base image to build front 1 stage onto + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + tags: + - annotations: null + from: + kind: DockerImage + name: nodeshift/ubi8-s2i-web-app:10.x + name: latest + referencePolicy: + type: Source +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-build + annotations: + description: 2nd Stage builder image for the front + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-runtime + annotations: + description: The run-time base image for API (second stage) + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false + tags: + - annotations: null + from: + kind: DockerImage + name: centos/nginx-112-centos7:latest + name: latest + referencePolicy: + type: Source +- apiVersion: image.openshift.io/v1 + kind: ImageStream + metadata: + name: ${NAME}-front + annotations: + description: The final run-time image for frontend + template.alpha.openshift.io/wait-for-ready: "true" + spec: + lookupPolicy: + local: false +- apiVersion: build.openshift.io/v1 + kind: BuildConfig + metadata: + name: ${NAME}-build + labels: + app.kubernetes.io/component: front + app.kubernetes.io/instance: ${NAME}-front + app.kubernetes.io/name: nodejs + app.kubernetes.io/part-of: fevermap + app.openshift.io/runtime: nodejs + spec: + failedBuildsHistoryLimit: 5 + output: + to: + kind: ImageStreamTag + name: '${NAME}-build:latest' + resources: + limits: + memory: 2Gi + runPolicy: Serial + source: + contextDir: app + git: + uri: ${SOURCE_REPOSITORY_URL} + ref: ${SOURCE_REPOSITORY_REF} + type: Git + strategy: + sourceStrategy: + env: + - name: NPM_BUILD + value: >- + webpack --mode production --env.NODE_ENV=production + - name: OUTPUT_DIR + value: dist + from: + kind: ImageStreamTag + name: 'ubi8-s2i-web-app:latest' + type: Source + successfulBuildsHistoryLimit: 5 + triggers: + - gitlab: + secret: ${GITLAB_WEBHOOK_SECRET} + type: GitLab + - type: ConfigChange + - imageChange: + type: ImageChange +- apiVersion: build.openshift.io/v1 + kind: BuildConfig + metadata: + name: ${NAME}-runtime + labels: + app.kubernetes.io/component: front + app.kubernetes.io/instance: ${NAME}-front + app.kubernetes.io/name: nginx + app.kubernetes.io/part-of: fevermap + app.openshift.io/runtime: nginx + spec: + failedBuildsHistoryLimit: 5 + nodeSelector: null + output: + to: + kind: ImageStreamTag + name: ${NAME}-front:latest + runPolicy: Serial + source: + images: + - as: null + from: + kind: ImageStreamTag + name: ${NAME}-build:latest + paths: + - destinationDir: . + sourcePath: /opt/app-root/output/. + type: Image + strategy: + sourceStrategy: + from: + kind: ImageStreamTag + name: ${NAME}-runtime:latest + incremental: true + type: Source + successfulBuildsHistoryLimit: 5 + triggers: + - type: ConfigChange + - imageChange: + type: ImageChange + - imageChange: + from: + kind: ImageStreamTag + name: ${NAME}-build:latest + type: ImageChange - apiVersion: v1 data: window-settings.js: |+ @@ -607,18 +613,18 @@ objects: kind: DeploymentConfig metadata: labels: - app: ${NAME} - app.kubernetes.io/component: ${NAME} - app.kubernetes.io/instance: ${NAME} - app.kubernetes.io/part-of: ${NAME} - name: ${NAME} + app.kubernetes.io/component: front + app.kubernetes.io/instance: ${NAME}-front + app.kubernetes.io/name: nginx + app.kubernetes.io/part-of: fevermap + app.openshift.io/runtime: nginx + app.openshift.io/runtime-version: '1.12' + name: ${NAME}-front spec: replicas: 2 revisionHistoryLimit: 10 selector: - # deploymentconfig: ${NAME} - # app: ${NAME} - # name: ${NAME} + deploymentconfig: ${NAME}-front strategy: activeDeadlineSeconds: 21600 rollingParams: @@ -631,10 +637,10 @@ objects: template: metadata: labels: - deploymentconfig: ${NAME} + deploymentconfig: ${NAME}-front spec: containers: - - image: ${NAME}:latest + - image: ${NAME}-front:latest imagePullPolicy: Always name: ${NAME} ports: @@ -670,44 +676,29 @@ objects: - ${NAME} from: kind: ImageStreamTag - name: ${NAME}:latest + name: ${NAME}-front:latest type: ImageChange - apiVersion: v1 - kind: PersistentVolumeClaim - metadata: - finalizers: - - kubernetes.io/pvc-protection - name: ${NAME}-mariadb-storage - spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 1Gi -- apiVersion: route.openshift.io/v1 - kind: Route + kind: Service metadata: - labels: - app: ${NAME}-api - name: ${NAME}-api + name: ${NAME}-front spec: - host: ${APPLICATION_API_DOMAIN} - # path: /api - port: - targetPort: 9000-tcp - # tls: - # insecureEdgeTerminationPolicy: Allow - # termination: edge - to: - kind: Service - name: ${NAME}-api - weight: 100 - wildcardPolicy: None + ports: + - name: 8080-tcp + port: 8080 + protocol: TCP + targetPort: 8080 + - name: 8443-tcp + port: 8443 + protocol: TCP + targetPort: 8443 + selector: + deploymentconfig: ${NAME}-front + sessionAffinity: None + type: ClusterIP - apiVersion: route.openshift.io/v1 kind: Route metadata: - labels: - app: ${NAME} name: ${NAME} spec: host: ${APPLICATION_FRONT_DOMAIN} @@ -718,6 +709,6 @@ objects: # termination: edge to: kind: Service - name: ${NAME} + name: ${NAME}-front weight: 100 wildcardPolicy: None -- GitLab From f1cd47fa8821f86772cd3259ff70b9855984c5cf Mon Sep 17 00:00:00 2001 From: Ilkka Tengvall Date: Sun, 29 Mar 2020 13:03:20 +0300 Subject: [PATCH 4/4] fix API_URL and APP_URL and path in ocp --- ocp/README.md | 6 ++++-- ocp/template-fevermap-persistent.yaml | 10 +++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/ocp/README.md b/ocp/README.md index d9407fe..848a23f 100644 --- a/ocp/README.md +++ b/ocp/README.md @@ -50,7 +50,8 @@ curl https://gitlab.com/fevermap/fevermap/-/blob/feature/ocp-template/ocp/templa -p SOURCE_REPOSITORY_URL=https://gitlab.com/fevermap/fevermap.git \ -p SOURCE_REPOSITORY_REF=master \ -p APPLICATION_FRONT_DOMAIN=front.apps.ocp4.konttikoulu.fi \ - -p APPLICATION_API_DOMAIN=api.apps.ocp4.konttikoulu.fi \ + -p APPLICATION_API_DOMAIN=front.apps.ocp4.konttikoulu.fi \ + -p APPLICATION_API_PATH=/api \ -p DATABASE_SERVICE_NAME=db \ -p DATABASE_NAME=feverdb \ -p DATABASE_USER=fever \ @@ -66,7 +67,8 @@ oc new-app \ -p NAME=fevermap \ -p NAMESPACE=fever-template \ -p APPLICATION_FRONT_DOMAIN=front.apps.ocp4.konttikoulu.fi \ - -p APPLICATION_API_DOMAIN=api.apps.ocp4.konttikoulu.fi + -p APPLICATION_API_DOMAIN=api.apps.ocp4.konttikoulu.fi \ + -p APPLICATION_API_PATH=/api \ ``` # Storage diff --git a/ocp/template-fevermap-persistent.yaml b/ocp/template-fevermap-persistent.yaml index fdfd46d..a3e0e10 100644 --- a/ocp/template-fevermap-persistent.yaml +++ b/ocp/template-fevermap-persistent.yaml @@ -79,6 +79,10 @@ parameters: if left blank a value will be defaulted. displayName: Application API Hostname name: APPLICATION_API_DOMAIN +- description: The exposed http path part that will route to the Fevermap API service, + can be left blank if no path is used. E.g. /api + displayName: Application API path + name: APPLICATION_API_PATH - description: GitLab trigger secret. A difficult to guess string encoded as part of the webhook URL. Not encrypted. displayName: GitLab Webhook Secret @@ -437,7 +441,7 @@ objects: name: ${NAME}-api spec: host: ${APPLICATION_API_DOMAIN} - # path: /api + path: ${APPLICATION_API_PATH} port: targetPort: 9000-tcp # tls: @@ -602,8 +606,8 @@ objects: data: window-settings.js: |+ window.URLS = { - API_URL: '${APPLICATION_FRONT_DOMAIN}', - APP_URL: '${APPLICATION_API_DOMAIN}', + API_URL: 'http://${APPLICATION_API_DOMAIN}', + APP_URL: 'http://${APPLICATION_FRONT_DOMAIN}', }; kind: ConfigMap -- GitLab